Referencia de la API de Transliterate

Simple transliteración

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 un texto determinado del idioma de origen al de destino. La API muestra el resultado de forma asíncrona a la función callback determinada como objeto result. Los parámetros de este método son los siguientes:

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

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

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

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

Los objetos de resultado se producen con una codificación JSON de las solicitudes del servidor. En consecuencia, elegimos no implementar objetos de JavaScript formales y, en su lugar, creamos los objetos result de forma dinámica a partir de su formulario serializado.

Si bien no hay una implementación formal de los objetos, existen, y los documentamos como si hubiera una implementación de JavaScript de respaldo. El impacto de todo esto es mínimo. Eso quiere decir que no hay un constructor con nombre. Para cada resultado, es como si el sistema llamara un objeto Object() nuevo y, luego, configurara propiedades formales en ese objeto. Estas propiedades se muestran a continuación.

  • <result>
    • error?
      Presenta si se produjo un error de transliteración.
    • transliterations
      Un arreglo de tamaño igual al de la wordsArray de entrada.
      • transliteratedWords
        Un arreglo de tamaño máximo 5, con transliteraciones para la palabra correspondiente en wordsArray.

Referencia de JavaScript del control de transliteración

El siguiente constructor y métodos te permiten realizar 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) permite la transliteración en un conjunto de elementos editables de DOM de HTML y proporciona una serie de métodos que te permiten controlar la transliteración en esos elementos. El argumento options puede tener los siguientes campos:

  • sourceLanguage es una string obligatoria que especifica el idioma de origen mediante la enumeración LanguageCode (como en google.elements.transliteration.ENGLISH). Actualmente, el único idioma de origen es el inglés.
  • destinationLanguage es un array obligatorio que especifica el idioma de destino mediante la enumeración LanguageCode (como en google.elements.transliteration.HINDI).

    En la IU, los idiomas de destino disponibles aparecen en el menú, y el primer idioma del array está 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 habilita la transliteración de forma predeterminada. Si deseas habilitar la transliteración de forma predeterminada, especifica este campo con un valor de true. El valor predeterminado es false.
  • shortcutKey es un campo de strings opcional que especifica una combinación de teclas para activar o desactivar la transliteración. Para especificar la combinación de teclas, especifica una string que contenga modificadores, como 'Ctrl', 'Alt' o 'Mayúsculas' junto con una letra alfabética. Por ejemplo, Ctrl+g&b y Ctrl+Mayúsculas+a son combinaciones de teclas de acceso directo válidas.

    Nota: No puedes usar Mayúsculas como el único modificador. Sin embargo, puedes usarlo en combinación con Alt o Control.

Este método crea excepciones en las siguientes circunstancias:

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

El siguiente fragmento de código 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 particular, se llama al objeto de escucha con el objeto de evento. El contenido del objeto del evento depende del tipo de evento. Los parámetros de este método son los siguientes:

  • eventType es el evento al 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 objeto de escucha para el evento.
  • opt_listenerScope llama al objeto de escucha con this configurado 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 muestra 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 de este método son los siguientes:

  • elementIds es un array que contiene strings de ID de elementos editables o referencias de elementos para los que deseas habilitar la transliteración. Un elemento editable puede ser uno de los siguientes:

    • Un campo de texto
    • Un área de texto
    • Un &div;div&gt con contentEditable="true"
    • Un iframe con designMode="on"
    • Un iFrame con el cuerpo contentEditable="true" Asegúrate de que el iFrame esté cargado 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 del elemento y de la fuente para que se adapten de forma óptima a los caracteres de idioma de destino. El valor predeterminado es true. Esta opción solo afecta a 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.

Para 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 configurar la dirección del texto en un elemento de entrada mediante 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 las API con idiomas que se leen de derecha a izquierda en el ejemplo de transliteración á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, en el que se ilustra lo siguiente:

  • Este argumento toma su valor de la enumeración 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 al 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 utiliza el control de transliteración, en el que se ilustra lo siguiente:

  • 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() muestra 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 un valor para mostrar.

.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, en la que 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 de carga del elemento del cuerpo (<body onload="OnLoad()">). Si bien esta es una buena forma cuando tienes control total de la página y todo el código cargado por esta página, este enfoque puede causar problemas con algunos entornos de ejecución que destruyen tu controlador body.onload. setOnLoadCallback() no tiene estos problemas, por lo que es el método recomendado para registrar una devolución de llamada que llame a 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 muestra un mapa de idiomas de destino para los que se admite la transliteración para la sourceLanguage determinada. El mapa que se muestra contiene 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 muestra es similar al que se describe en la enumeración LanguageCode.

Enumeradores

Enumeración de 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: Se obtiene cuando se habilita o inhabilita la transliteración en el control de transliteración mediante
    • Una combinación de teclas
    • Los métodos enableTransliteration, disableTransliteration o toggleTransliteration
    • Haz clic con el mouse en el control de transliteración que generó 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 falsa.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: resultados cuando se cambia el par de idiomas de transliteración en el control de transliteración mediante:
    • El método setLanguagePair
    • El control de transliteración que utiliza 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 se produce un error al intentar comunicarse con el servidor para transliterar el texto.

enum. LanguageCode

google.elements.transliteration.LanguageCode asigna constantes de nombres a códigos de idioma que puedes usar para especificar los idiomas de origen y de 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'
};

Enumeración de idiomas de destino admitidos

La enumeración google.elements.transliteration.SupportedDestinationLanguages asigna constantes de nombres a arreglos 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, haz lo siguiente:

  • Busca errores de ortografía. Recuerda que JavaScript es un lenguaje en el que se distinguen mayúsculas y minúsculas.
  • Usar un depurador 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 Microsoft Script Debugger.
  • Busca en el grupo de discusión. Si no puedes encontrar una publicación que responda a tu pregunta, publícala junto con un vínculo a una página web que demuestre el problema.