Referencia de la API de Transliterate

Transliteración simple

El siguiente método te permite realizar una transliteración simple sin una IU manipulando JavaScript.

Método Descripción

google.language.transliterate(wordsArray, srcLang, destLang, callback)

google.language.transliterate(wordsArray, srcLang, destLang, callback) es un método global que translitera el texto proporcionado del idioma de origen al idioma de destino. La API devuelve el resultado de forma asíncrona a la función callback proporcionada como el objeto result. Los parámetros para este método son los siguientes:

  • wordsArray proporciona el texto que se transcribirá como un array.
  • srcLang proporciona el idioma de origen como un código de idioma. Consulta el enum LanguageCode para ver ejemplos.
  • destLang proporciona el idioma de destino como un código de idioma. Consulta el enum LanguageCode para ver ejemplos.
  • callback es la función de devolución de llamada que recibe el objeto result.

google.language.transliterate() no tiene valor de retorno.

Este método simplificado de transliteración usa el espacio de nombres google.language.transliterate (y no google.elements.transliteration, que es el espacio de nombres para todos los demás métodos de la API de Transliterate).

google.language.transliterate() genera el objeto result.

Los objetos de resultado se producen con una codificación JSON de las solicitudes del servidor. Por lo tanto, decidimos no implementar objetos JavaScript formales y, en cambio, creamos de forma dinámica los objetos result a partir de su forma serializada.

Si bien no hay una implementación formal de los objetos, estos existen y los documentamos como si hubiera una implementación de JavaScript de respaldo. El impacto de todo esto es mínimo. Lo único que significa es que no hay un constructor con nombre. Para cada resultado, es como si el sistema llamara a new Object() y, luego, estableciera propiedades formales en ese objeto. Estas propiedades se encuentran a continuación.

  • <result>
    • error?
      Se presenta si hubo un error en la transliteración.
    • transliterations
      Es un array de tamaño igual al tamaño del wordsArray de entrada.
      • transliteratedWords
        Es un array de tamaño máximo 5, con transliteraciones de la palabra correspondiente en wordsArray.

Referencia de JavaScript del control de transliteración

El siguiente constructor y los siguientes métodos te permiten realizar la transliteración dentro de una IU proporcionada por la API.

Constructor: google.elements.transliteration.TransliterationControl(options)

Constructor Descripción

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) habilita la transliteración en un conjunto de elementos DOM de HTML editables y proporciona varios métodos que te permiten controlar la transliteración en esos elementos. El argumento options puede tener los siguientes campos:

  • sourceLanguage es una cadena obligatoria que especifica el idioma de origen con el enum LanguageCode (como en google.elements.transliteration.ENGLISH). Actualmente, el inglés es el único idioma de origen admitido.
  • destinationLanguage es un array obligatorio que especifica el idioma de destino con el enum LanguageCode, como en (como en google.elements.transliteration.HINDI).

    En la IU, los idiomas de destino disponibles aparecen en el menú, con el primer idioma del array seleccionado de forma predeterminada. Consulta getDestinationLanguages para obtener más detalles sobre los idiomas de destino válidos para un idioma de origen determinado.
  • transliterationEnabled es un campo opcional que especifica si se debe habilitar la transliteración de forma predeterminada. Si deseas habilitar la transliteración de forma predeterminada, especifica este campo con el valor true. El valor predeterminado es false.
  • shortcutKey es un campo de cadena opcional que especifica una combinación de teclas para activar o desactivar la transliteración. Para especificar la combinación de teclas, incluye una cadena que contenga modificadores como "Ctrl", "Alt" o "Mayúsculas" junto con una letra alfabética. Por ejemplo, "Ctrl+G" y "Ctrl+Mayúsculas+A" son combinaciones de teclas de acceso directo válidas.

    Nota: No puedes usar Mayúsculas como único modificador, pero puedes combinarlo con Alt o Control.

Este método crea excepciones en las siguientes circunstancias:

  • sourceLanguage o destinationLanguage no válidos
  • Idiomas no admitidos en el par de idiomas sourceLangauge y destinationLanguage
  • Combinación de teclas de acceso directo no válida

En el siguiente fragmento de código, se muestra cómo crear una instancia del control de transliteración:

function onLoad() {
  var options = {
    sourceLanguage: 'en',
    destinationLanguage: ['hi'],
    shortcutKey: 'ctrl+g',
    transliterationEnabled: true
  };

  // Create an instance on TransliterationControl with the required
  // options.
  var control = new google.elements.transliteration.TransliterationControl(options);
}

Métodos de control de transliteración

Los siguientes métodos se implementan en el espacio de nombres google.elements.transliteration.TransliterationControl.

Método Descripción

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) agrega un objeto de escucha al control de transliteración para el tipo de evento especificado. Cuando se activa el tipo de evento específico, se llama al objeto de escucha con el objeto de evento. El contenido del objeto de evento depende del tipo de evento. Los parámetros para este método son los siguientes:

  • eventType es el evento para el que se agregará el objeto de escucha. Este argumento toma su valor de la enumeración eventType (como google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)).
  • listener proporciona una función de escucha para el evento.
  • opt_listenerScope llama al objeto de escucha con this establecido en el objeto especificado en opt_listenerScope.

.addEventListener() no tiene valor de retorno.

.disableTransliteration()

.disableTransliteration() inhabilita la transliteración en el control de transliteración. Este método no tiene argumentos ni valor de retorno.

.enableTransliteration()

.enableTransliteration() habilita la transliteración en el control de transliteración. Este método no tiene argumentos ni valor de retorno.

.isTransliterationEnabled()

.isTransliterationEnabled() no tiene argumentos y devuelve un valor booleano que indica si la transliteración está habilitada en el control de transliteración.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) habilita la transliteración en los elementos HTML proporcionados. Los parámetros para este método son los siguientes:

  • elementIds es un array que contiene cadenas de IDs de elementos editables o referencias de elementos para los que deseas habilitar la transliteración. Un elemento editable puede ser lo siguiente:

    • Un campo de texto
    • Un área de texto
    • Un elemento <div> con contentEditable="true"
    • Un <iframe> con designMode="on"
    • Es un iframe con un cuerpo contentEditable="true". Asegúrate de que el iframe se cargue antes de habilitar la transliteración.
  • opt_options es un argumento opcional que proporciona las opciones aplicadas a estos elementos. Este argumento puede contener los siguientes campos:
    • adjustElementStyle es un campo booleano opcional que controla si la API ajusta automáticamente los tamaños de los elementos y las fuentes para que se adapten de manera óptima a los caracteres del idioma de destino. El valor predeterminado es true. Esta opción solo afecta los elementos de texto sin formato.
    • adjustElementDirection es un campo booleano opcional que controla la dirección del elemento editable según la dirección de destinationLanguage. El valor predeterminado es true.

En el caso de los sistemas de escritura de derecha a izquierda, como el árabe, la API ajusta automáticamente la dirección del elemento de entrada, según la dirección de la secuencia de comandos escrita y el contenido del elemento de entrada. Puedes establecer la dirección del texto en un elemento de entrada con HTML y JavaScript con direction, que puede tener el valor 'ltr' (de izquierda a derecha) o 'rtl' (de derecha a izquierda). El uso de este método afecta el cursor y la alineación del texto en el área de entrada.

Puedes ver un ejemplo de la compatibilidad de la API con idiomas de derecha a izquierda en el ejemplo de transliteración al árabe.

Este método crea excepciones si alguno de los elementIds especificados no es válido.

.makeTransliteratable() no tiene valor de retorno.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope) quita un objeto de escucha de eventos del control de transliteración, donde:

  • Este argumento toma su valor del enum eventType (como google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)).
  • listener es la función del evento que se debe quitar.
  • opt_listenerScope es el alcance en el que se registró el objeto de escucha en el momento de agregarlo.

.removeEventListener() no tiene valor de retorno.

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) te permite cambiar de forma dinámica el par de idiomas que usa el control de transliteración, donde:

  • sourceLanguage proporciona el tipo de idioma que se transliterará. Este argumento toma su valor de la enumeración LanguageCode (como google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH)).
  • destinationLanguage proporciona el tipo de idioma para el texto transliterado.

.setLanguagePair() devuelve un valor booleano que indica si la acción setLanguage se realizó correctamente.

.showControl(divElement)

.showControl(divElement) muestra el control de transliteración en el DIV especificado, donde divElement es el ID del DIV. Este método no tiene valor de retorno.

.toggleTransliteration()

.toggleTransliteration() activa o desactiva la transliteración en el control de transliteración. Este método no tiene argumentos ni valor de retorno.

Método estático

El siguiente método estático se implementa en el espacio de nombres google.language.

Método estático Descripción

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) es una función estática que registra la función de controlador especificada para que se llame una vez que se cargue la página que contiene esta llamada, donde callback es una función obligatoria que se llama cuando se carga el documento contenedor y la API está lista para usarse (p. ej., después de onLoad). Esta función se implementa en el espacio de nombres google (es decir, google.setOnLoadCallback(callback);)

.setOnLoadCallback() no tiene valor de retorno.

Nota: En la documentación anterior, se recomendaba usar el atributo onload del elemento body (<body onload="OnLoad()">). Si bien esta es una buena opción cuando tienes el control completo de la página y de todo el código que carga la página, este enfoque puede causar problemas con algunos tiempos de ejecución que destruyen tu controlador body.onload. setOnLoadCallback() no tiene estos problemas y, por lo tanto, es el método recomendado para registrar una devolución de llamada que invoque tu código cuando la API esté completamente cargada y lista para usarse.

El siguiente método estático se implementa en el espacio de nombres google.elements.transliteration.

Método estático Descripción

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) es un método global que devuelve un mapa de los idiomas de destino para los que se admite la transliteración del sourceLanguage determinado. El mapa devuelto contiene los idiomas de destino admitidos, en los que la clave es el nombre del idioma y el valor es el código del idioma. El mapa que se devuelve es similar al que se describe en la enumeración LanguageCode.

Enumeraciones

Enum EventType

La enumeración google.elements.transliteration.TransliterationControl.EventType enumera los eventos que son posibles durante la transliteración. Puedes proporcionar controladores personalizados para estos eventos en tu código.

var google.elements.transliteration.TransliterationControl.EventType = {
   STATE_CHANGED : 'state_changed',
   LANGUAGE_CHANGED : 'language_changed',
   SERVER_REACHABLE : 'server_reachable',
   SERVER_UNREACHABLE : 'server_unreachable'
};
  • google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED: Resultados cuando la transliteración está habilitada o inhabilitada en el control de transliteración a través de lo siguiente:
    • Una tecla de acceso directo
    • Los métodos enableTransliteration, disableTransliteration o toggleTransliteration
    • Un clic del mouse en el control de transliteración dibujado por el método showControl.
    El objeto de evento que se pasa al objeto de escucha contiene el campo transliterationEnabled. Este campo es verdadero si la transliteración es "on"; de lo contrario, es falso.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: Resultados cuando se cambia el par de idiomas de transliteración en el control de transliteración a través de lo siguiente:
    • El método setLanguagePair
    • El control de transliteración que dibuja el método showControl
    El objeto de evento que se pasa al objeto de escucha contiene los campos sourceLanguage y destinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: Son los resultados cuando te comunicas correctamente con el servidor para transliterar texto.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE resultados después de un intento fallido de comunicarse con el servidor para transliterar texto.

Enumeración LanguageCode

El objeto google.elements.transliteration.LanguageCode asigna constantes de nombres a códigos de idioma que puedes usar para especificar los idiomas de origen y destino en los métodos de transliteración.

var google.elements.transliteration.LanguageCode = {
    ENGLISH: 'en',
    AMHARIC: 'am',
    ARABIC: 'ar',
    BENGALI: 'bn',
    CHINESE: 'zh',
    GREEK: 'el',
    GUJARATI: 'gu',
    HINDI: 'hi',
    KANNADA: 'kn',
    MALAYALAM: 'ml',
    MARATHI: 'mr',
    NEPALI: 'ne',
    ORIYA: 'or',
    PERSIAN: 'fa',
    PUNJABI: 'pa',
    RUSSIAN: 'ru',
    SANSKRIT: 'sa',
    SINHALESE: 'si',
    SERBIAN: 'sr',
    TAMIL: 'ta',
    TELUGU: 'te',
    TIGRINYA: 'ti',
    URDU: 'ur'
};

Enum SupportedDestinationLanguages

La enumeración google.elements.transliteration.SupportedDestinationLanguages asigna constantes de nombres a arrays de códigos de idioma que puedes usar para especificar grupos de idiomas de destino en el control de transliteración.

var google.elements.transliteration.SupportedDestinationLanguages = {
    // ALL includes all languages supported in the Transliterate API.
    // As support for more languages becomes available, this enum will be
    // automatically updated to include the new languages transparently.
    ALL: [
        google.elements.transliteration.LanguageCode.AMHARIC,
        google.elements.transliteration.LanguageCode.ARABIC,
        google.elements.transliteration.LanguageCode.BENGALI,
        google.elements.transliteration.LanguageCode.CHINESE,
        google.elements.transliteration.LanguageCode.GREEK,
        google.elements.transliteration.LanguageCode.GUJARATI,
        google.elements.transliteration.LanguageCode.HINDI,
        google.elements.transliteration.LanguageCode.KANNADA,
        google.elements.transliteration.LanguageCode.MALAYALAM,
        google.elements.transliteration.LanguageCode.MARATHI,
        google.elements.transliteration.LanguageCode.NEPALI,
        google.elements.transliteration.LanguageCode.ORIYA,
        google.elements.transliteration.LanguageCode.PERSIAN,
        google.elements.transliteration.LanguageCode.PUNJABI,
        google.elements.transliteration.LanguageCode.RUSSIAN,
        google.elements.transliteration.LanguageCode.SANSKRIT,
        google.elements.transliteration.LanguageCode.SERBIAN,
        google.elements.transliteration.LanguageCode.SINHALESE,
        google.elements.transliteration.LanguageCode.TAMIL,
        google.elements.transliteration.LanguageCode.TELUGU,
        google.elements.transliteration.LanguageCode.TIGRINYA,
        google.elements.transliteration.LanguageCode.URDU],
 
    // INDIC includes all Indic languages supported in the Transliterate API.
    // As support for more Indic languages becomes available, this enum will be
    // automatically updated to include the new languages transparently.
    INDIC: [
        google.elements.transliteration.LanguageCode.BENGALI,
        google.elements.transliteration.LanguageCode.GUJARATI,
        google.elements.transliteration.LanguageCode.HINDI,
        google.elements.transliteration.LanguageCode.KANNADA,
        google.elements.transliteration.LanguageCode.MALAYALAM,
        google.elements.transliteration.LanguageCode.MARATHI,
        google.elements.transliteration.LanguageCode.NEPALI,
        google.elements.transliteration.LanguageCode.ORIYA,
        google.elements.transliteration.LanguageCode.PUNJABI,
        google.elements.transliteration.LanguageCode.SANSKRIT,
        google.elements.transliteration.LanguageCode.SINHALESE,
        google.elements.transliteration.LanguageCode.TAMIL,
        google.elements.transliteration.LanguageCode.TELUGU,
        google.elements.transliteration.LanguageCode.URDU]
};

Solución de problemas

Si tienes problemas, sigue estos pasos:

  • Busca errores de ortografía. Recuerda que JavaScript es un lenguaje en el que se distinguen mayúsculas y minúsculas.
  • Usa un depurador de JavaScript. Google Chrome tiene un conjunto completo de herramientas para desarrolladores. En Firefox, puedes usar la consola de JavaScript o Firebug. En IE, puedes usar el depurador de secuencias de comandos de Microsoft.
  • Busca en el grupo de discusión. Si no encuentras una publicación que responda tu pregunta, publícala en el grupo junto con un vínculo a una página web que muestre el problema.