Google AJAX Language API

Gracias a Google y una de sus múltiples APIs, la Google AJAX Language API, podemos jugar a detectar un idioma e incluso traducirlo con unas pocas líneas de código.

Como siempre digo, un ejemplo vale más que mil palabras (y más si son mías). En el siguiente ejemplo tenemos un textarea y dos botones:
- En el textarea escribimos un texto cualquiera en el idioma que queramos.
- El primer botón detectará el idioma en que está escrito el texto.
- El segundo botón traducirá del castellano al inglés. Podríamos haber hecho una detección automática de la lengua y que se tradujese al inglés, pero no quedaba tan claro como para una introducción al uso de esta API.

Language.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Introducción al Google </title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>

    <script type="text/javascript">
        google.load("language", "1");

        function GetLanguage() {
            var text = document.getElementById('Text').value;
            google.language.detect(text, function(result) {
                if (!result.error) {
                    var language = 'unknown';
                    for (l in google.language.Languages) {
                        if (google.language.Languages[l] == result.language) {
                            language = l;
                            break;
                        }
                    }
                    SetResultValue(language); 
                    return language;
                }
            });
        }

        function TranslateFromSpanishToEnglish() {
            var text = document.getElementById('Text').value;
            google.language.translate(text, "es", "en", function(result) {
            if (!result.error) {
                SetResultValue(result.translation);
                }
            });
        }

        function SetResultValue(result) {
            var resultDiv = document.getElementById('Results');
            resultDiv.innerHTML = result;
        }
    </script>
</head>
<body>
    <textarea cols="200" rows="7" id="Text"></textarea>
    <input type="button" value="¿En qué lengua está escrito?" onclick="GetLanguage()" />
    <input type="button" value="Traducir de castellano a inglés" onclick="TranslateFromSpanishToEnglish()" />
    <div id="Results"></div>
</body>
</html>


El primer paso es llamar y cargar la API de Google Traslation, lo que se consigue ubicando en el HEAD la llamado al fichero javascript:

    <script type="text/javascript" src="http://www.google.com/jsapi"></script>

Y cargando la API de idioma:

    <script type="text/javascript">
        google.load("language", "1");
        ...
    </script>

Una vez hecho esto, la magia la hacen dos funciones javascript: GetLanguage() y TranslateFromSpanishToEnglish().

En ambos casos se llama al método javascript correspondiente, google.language.detect y google.language.translate que aceptan los siguientes parámetros:

google.language.detect:
1.- Texto a detectar el idioma
2.- Función callback que recoge una variable json que llamamos result, y en la que usamos las propiedades "error" y "language".

google.language.translate:
1.- Text a traducir
2.- Lengua origen
3.- Lengua destion
4.- Función callback que recoge una variable json que llamamos result, y en la que usamos las propiedades "error" y "traslation".

Como veis es muy sencillo. Encontraréis la info que queráis en su documentación.