Referência da API de transliteração

Transliteração simples

O método a seguir permite que você realize transliterações simples, sem interface de usuário, manipulando o JavaScript.

Método Descrição

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

google.language.transliterate(wordsArray, srcLang, destLang, callback) é um método global que translitera o texto fornecido do idioma de origem para o idioma de destino. A API retorna o resultado de forma assíncrona à função callback fornecida como o objeto result. Os parâmetros desse método são:

  • wordsArray fornece o texto a ser transliterado como uma matriz.
  • srcLang fornece o idioma de origem como um código de idioma. Consulte a enumeração LanguageCode para ver exemplos.
  • destLang fornece o idioma de destino como um código de idioma. Consulte a enumeração LanguageCode para ver exemplos.
  • callback é a função de callback que recebe o result.

google.language.transliterate() não tem valor de retorno.

Esse método simplificado de transliteração usa o namespace google.language.transliterate (e não google.elements.transliteration, que é o namespace para todos os outros métodos na API de transliteração).

google.language.transliterate() gera o objeto result.

Objetos de resultado são produzidos usando-se uma codificação JSON de solicitações do servidor. Consequentemente, escolhemos não implementar objetos JavaScript formais. Em vez disso, criamos dinamicamente os objetos result usando o formulário serializado.

Embora não haja implementação formal dos objetos, eles existem e são documentados como se existisse uma implementação JavaScript de apoio. O impacto desta operação é mínimo. Tudo isso significa que não há construtor nomeado. Para cada resultado, é como se o sistema chamou o novo Object() e definia propriedades formais nesse objeto. Essas propriedades estão abaixo.

  • <result>
    • error?
      Presente se houver um erro na transliteração.
    • transliterations
      Uma matriz de tamanho igual ao tamanho da wordsArray de entrada.
      • transliteratedWords
        Uma matriz de tamanho máximo 5, com transliteração para a palavra correspondente em wordsArray.

Referência de JavaScript para o controle de transliteração

O construtor e método a seguir permitem que você realize uma transliteração com interface de usuário fornecida pela API.

Construtor – google.elements.transliteration.TransliterationControl(options)

Construtor Descrição

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) permite a transliteração em um conjunto de elementos HTML DOM editáveis e fornece vários métodos que permitem que você controle a transliteração nesses elementos. O argumento options pode ter os seguintes campos:

  • sourceLanguage é uma string obrigatória que especifica o idioma de origem usando a LanguageCode enum (como em google.elements.transliteration.ENGLISH). Atualmente, a linguagem é a única compatível com inglês.
  • destinationLanguage é uma matriz obrigatória que especifica o idioma de destino usando a enumeração LanguageCode como em google.elements.transliteration.HINDI.

    Na IU, os idiomas de destino disponíveis aparecem no menu, com o primeiro idioma na matriz selecionado por padrão. Consulte getDestinationLanguage para saber mais sobre os idiomas de destino válidos em um determinado idioma de origem.
  • transliterationEnabled é um campo opcional que especifica se a transliteração é ativada por padrão. Se você quiser ativar a transliteração por padrão, especifique esse campo com um valor de true. O valor padrão é false.
  • shortcutKey é um campo opcional de string que especifica uma tecla de atalho para ativar ou desativar a transliteração. Para especificar a tecla de atalho, especifique uma string que contenha modificadores como 'Ctrl', 'Alt' ou 'Shift' além de uma letra alfabética. Por exemplo, 'Ctrl+g' e 'Ctrl+Shift+a' são combinações válidas de teclas de atalho.

    Observação: não é possível usar Shift como o único modificador. No entanto, você pode usá-lo em combinação com Alt ou Control.

Este método cria exceções nas seguintes circunstâncias:

  • sourceLanguage ou destinationLanguage inválido
  • Idiomas não compatíveis no par de idiomas sourceLangauge e destinationLanguage
  • Combinação de teclas de atalho inválida

O seguinte snippet de código demonstra como criar uma instância do controle de transliteração:

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 controle de transliteração

Os métodos a seguir são implementados no namespace google.elements.transliteration.TransliterationControl.

Método Descrição

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) adiciona um listener ao controle de transliteração para o tipo de evento especificado. Quando o tipo de evento em particular é acionado, o ouvinte é chamado com o objeto do evento. O conteúdo do objeto de evento depende do tipo do evento. Os parâmetros desse método são:

  • eventType é o evento a que o listener será adicionado. Esse argumento recebe o valor da enumeração eventType (como google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener fornece uma função de listener para o evento.
  • opt_listenerScope chama o listener com this definido como o objeto especificado em opt_listenerScope.

.addEventListener() não tem valor de retorno.

.disableTransliteration()

.disableTransliteration() desativa a transliteração no controle de transliteração. Este método não tem argumentos e nem valor de retorno.

.enableTransliteration()

.enableTransliteration() ativa a transliteração no controle de transliteração. Este método não tem argumentos e nem valor de retorno.

.isTransliterationEnabled()

.isTransliterationEnabled() não tem argumentos e retorna um booleano indicando se a transliteração está ativada no controle de transliteração.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) permite a transliteração nos elementos HTML fornecidos. Os parâmetros desse método são:

  • elementIds é uma matriz contendo strings de IDs de elementos editáveis ou referências de elementos em que você quer ativar a transliteração. Um elemento editável pode ser:

    • Um campo de texto
    • Uma área de texto
    • Um <div> com contentEditable="true"
    • Um <iframe> com designMode="on"
    • Um iFrame com corpo contentEditable="true". Verifique se o iFrame está carregado antes de ativar a transliteração.
  • opt_options é um argumento opcional que fornece as opções aplicadas a esses elementos. Esse argumento pode conter os seguintes campos:
    • adjustElementStyle é um campo booleano opcional que controla se a API ajusta automaticamente os tamanhos de elementos e fontes para se adequar melhor aos caracteres do idioma de destino. O valor padrão é true. Esta opção afeta apenas os elementos de texto sem formatação.
    • adjustElementDirection é um campo booleano opcional que controla a direção do elemento editável, dependendo da direção do destinationLanguage. O valor padrão é true.

Para sistemas de escrita da direita para a esquerda como o árabe, a API ajusta automaticamente a direção do elemento de entrada, de acordo com a direção do script escrito e o conteúdo do elemento de entrada. Você pode definir a direção do texto em um elemento de entrada usando HTML e JavaScript com direction, que pode ter o valor 'ltr' (da esquerda para a direita) ou 'rtl' (da direita para a esquerda). O uso deste método afeta o cursor e o alinhamento de texto na área de entrada.

Veja um exemplo da compatibilidade da API com idiomas da direita para a esquerda no exemplo de transliteração em árabe.

Esse método criará exceções se algum dos elementIds especificados for inválido.

.makeTransliteratable() não tem valor de retorno.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope) remove um listener de eventos do controle de transliteração, em que:

  • Esse argumento usa o valor da enumeração eventType (como google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)).
  • listener é a função do evento que precisa ser removida.
  • opt_listenerScope é o escopo em que o listener foi registrado ao adicionar o listener.

.removeEventListener() não tem valor de retorno.

.setLanguagePair(sourceLanguage, destinationLanguage)

O .setLanguagePair(sourceLanguage, destinationLanguage) permite alterar dinamicamente o par de idiomas usado pelo controle de transliteração, em que:

  • sourceLanguage fornece o tipo de idioma a ser transliterado. Esse argumento recebe o valor da enumeração LanguageCode (como google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH).
  • destinationLanguage fornece o tipo de idioma do texto transliterado.

.setLanguagePair() retorna um booleano indicando se a ação setLanguage foi bem-sucedida.

.showControl(divElement)

.showControl(divElement) mostra o controle de transliteração no DIV especificado, em que divElement é o ID do DIV. Esse método não tem valor de retorno.

.toggleTransliteration()

.toggleTransliteration() ativa ou desativa a transliteração no controle de transliteração. Este método não tem argumentos e nem valor de retorno.

Método estático

O método estático a seguir é implementado no namespace google.language.

Método estático Descrição

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) é uma função estática que registra a função de gerenciador especificada para ser chamada quando a página que contém essa chamada é carregada. Ela é necessária em callback quando o documento que está sendo carregado e a API está pronta para uso (por exemplo, depois de onLoad). Essa função é implementada no namespace google, ou seja, google.setOnLoadCallback(callback);).

.setOnLoadCallback() não tem valor de retorno.

Observação: a documentação anterior recomendou que você usasse o atributo onload do elemento do corpo (<body onload="OnLoad()">). Essa é uma boa opção quando o controle total da página e todo o código carregados pela página são, mas essa abordagem pode causar problemas com alguns tempos de execução que destroem o gerenciador body.onload. O setOnLoadCallback() não tem esses problemas. Portanto, é o método recomendado para registrar um callback que chame seu código quando a API estiver totalmente carregada e pronta para uso.

O método estático a seguir é implementado no namespace google.elements.transliteration.

Método estático Descrição

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) é um método global que retorna um mapa de idiomas de destino para os quais a transliteração é compatível com o sourceLanguage especificado. O mapa retornado contém os idiomas de destino suportados, em que a chave é o nome do idioma e o valor é o código do idioma. O mapa retornado é semelhante ao descrito no LanguageCode enumeração.

Enums

EventType enum

A enumeração google.elements.transliteration.TransliterationControl.EventType lista os eventos possíveis durante a transliteração. É possível fornecer manipuladores personalizados para esses eventos no seu 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: resulta quando a transliteração é ativada ou desativada no controle de transliteração via:
    • Uma tecla de atalho
    • Os métodos enableTransliteration, disableTransliteration ou toggleTransliteration
    • Um clique do mouse no controle de transliteração desenhado pelo método showControl.
    O objeto do evento transmitido ao listener contém o campo transliterationEnabled. Este campo será verdadeiro se a transliteração for 'on' caso contrário, será falso.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: resulta quando o par de idiomas da transliteração é alterado no controle de transliteração via:
    • Método setLanguagePair
    • O controle de transliteração desenhado pelo método showControl
    O objeto do evento transmitido ao listener contém os campos sourceLanguage e destinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: resulta quando você entra em contato com o servidor para transliterar o texto.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE resulta de uma falha de tentativa de contato com o servidor para transliterar o texto.

LanguageCode enum

O google.elements.transliteration.LanguageCode mapeia constantes de nome para códigos de idioma que você pode usar para especificar os idiomas de origem e de destino nos métodos de transliteração.

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'
};

SupportedDestinationLanguages enum

Os mapas de enumeração google.elements.transliteration.SupportedDestinationLanguages nomeiam constantes para matrizes de códigos de idioma que podem ser usadas para especificar grupos de idiomas de destino no controle de transliteração.

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]
};

Solucionar problemas

Se encontrar problemas:

  • Procure erros de digitação. Lembre-se de que a linguagem JavaScript diferencia maiúsculas de minúsculas.
  • Use um depurador de JavaScript. O Google Chrome tem um conjunto completo de ferramentas para desenvolvedores. No Firefox, use o Console JavaScript ou o Firebug. No IE, você pode usar o Microsoft Script Debugger.
  • Pesquise no grupo de discussão. Se não conseguir encontrar uma postagem que responda a sua pergunta, poste a pergunta no grupo, juntamente com um link para uma página da web que demonstre o problema.