Справочник API транслитерации

Простая транслитерация

Следующий метод позволяет выполнить простую транслитерацию без пользовательского интерфейса, используя JavaScript.

Метод Описание

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

google.language.transliterate(wordsArray, srcLang, destLang, callback) — глобальный метод, который транслитерирует заданный текст с исходного языка на целевой. API асинхронно возвращает результат в указанную функцию callback в виде объекта result . Параметры этого метода:

  • wordsArray предоставляет текст для транслитерации в виде массива.
  • srcLang предоставляет исходный язык в виде кода языка. Примеры см. в перечислении LanguageCode .
  • destLang предоставляет целевой язык в виде кода языка. Примеры см. в перечислении LanguageCode .
  • callback — функция обратного вызова, которая получает result .

google.language.transliterate() не имеет возвращаемого значения.

Этот упрощенный метод транслитерации использует пространство имен google.language.transliterate (а не google.elements.transliteration , которое является пространством имен для всех остальных методов в API Transliterate).

google.language.transliterate() выводит объект result .

Объекты результатов создаются с помощью JSON-кодирования серверных запросов. Поэтому мы решили не реализовывать формальные объекты JavaScript, а вместо этого динамически создавать объекты result из их сериализованной формы.

Хотя формальной реализации объектов нет, они существуют, и мы документируем их так, как если бы существовала реализация JavaScript. Влияние всего этого минимально. Это означает лишь отсутствие именованного конструктора. Для каждого результата система как будто вызывает new Object() и затем устанавливает формальные свойства этого объекта. Эти свойства приведены ниже.

  • <результат>
    • error?
      Присутствует, если при транслитерации допущена ошибка.
    • transliterations
      Массив, размер которого равен размеру входного массива wordsArray .
      • transliteratedWords
        Массив максимального размера 5, с транслитерациями для соответствующего слова в wordsArray .

Справочник по управлению транслитерацией в JavaScript

Следующий конструктор и методы позволяют выполнять транслитерацию в пользовательском интерфейсе, предоставляемом API.

Конструктор - google.elements.transliteration.TransliterationControl(options)

Конструктор Описание

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) включает транслитерацию для набора редактируемых элементов HTML DOM и предоставляет ряд методов, позволяющих управлять транслитерацией в этих элементах. Аргумент options может содержать следующие поля:

  • sourceLanguageобязательная строка, указывающая исходный язык с помощью перечисления LanguageCode (например google.elements.transliteration. ENGLISH ). В настоящее время поддерживается только английский язык.
  • destinationLanguageобязательный массив, который определяет целевой язык с помощью перечисления LanguageCode , как в (как в google.elements.transliteration. HINDI ).

    В пользовательском интерфейсе доступные языки назначения отображаются в меню, при этом по умолчанию выбран первый язык в массиве. Подробнее о допустимых языках назначения для заданного исходного языка см. в разделе getDestinationLanguages .
  • transliterationEnabled — необязательное поле, указывающее, следует ли включать транслитерацию по умолчанию. Если вы хотите включить транслитерацию по умолчанию, укажите в этом поле значение true . Значение по умолчанию — false .
  • shortcutKey — необязательное строковое поле, которое задаёт сочетание клавиш для включения или выключения транслитерации. Чтобы указать сочетание клавиш, укажите строку, содержащую модификаторы, такие как «Ctrl», «Alt» или «Shift», а также букву алфавита. Например, «Ctrl+g» и «Ctrl+Shift+a» являются допустимыми сочетаниями клавиш.

    Примечание: клавишу Shift нельзя использовать как единственный модификатор; однако ее можно использовать в сочетании с Alt или Control.

Этот метод создает исключения в следующих случаях:

  • Неверный sourceLanguage или destinationLanguage
  • Неподдерживаемые языки в паре языков sourceLangauge и destinationLanguage
  • Недопустимое сочетание клавиш

Следующий фрагмент кода демонстрирует, как создать экземпляр элемента управления транслитерацией:

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

Методы контроля транслитерации

Следующие методы реализованы в пространстве имен google.elements.transliteration.TransliterationControl .

Метод Описание

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) добавляет прослушиватель к элементу управления транслитерацией для указанного типа события. При срабатывании события определенного типа прослушиватель вызывается с объектом события. Содержимое объекта события зависит от типа события . Параметры этого метода:

  • eventType — это событие, для которого добавляется прослушиватель. Этот аргумент берёт значение из перечисления eventType (например, google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED) .
  • listener предоставляет функцию прослушивания для события.
  • opt_listenerScope вызывает прослушиватель с this набором для объекта, указанного в opt_listenerScope .

.addEventListener() не имеет возвращаемого значения.

.disableTransliteration()

.disableTransliteration() отключает транслитерацию в элементе управления транслитерацией. Этот метод не имеет аргументов и не возвращает значение.

.enableTransliteration()

.enableTransliteration() включает транслитерацию в элементе управления транслитерацией. Этот метод не имеет аргументов и не возвращает значения.

.isTransliterationEnabled()

.isTransliterationEnabled() не имеет аргументов и возвращает логическое значение, указывающее, включена ли транслитерация в элементе управления транслитерацией.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) включает транслитерацию для предоставленных HTML-элементов. Параметры этого метода:

  • elementIds — это массив, содержащий строки редактируемых идентификаторов элементов или ссылок на элементы, для которых требуется включить транслитерацию. Редактируемый элемент может быть:

    • Текстовое поле
    • Текстовая область
    • <div> с contentEditable="true"
    • <iframe> с designMode="on"
    • iFrame с тегом contentEditable="true" . Перед включением транслитерации убедитесь, что iFrame загружен.
  • opt_options — необязательный аргумент, который задаёт параметры, применяемые к этим элементам. Этот аргумент может содержать следующие поля:
    • adjustElementStyle — необязательное логическое поле, определяющее, будет ли API автоматически корректировать размеры элементов и шрифтов для оптимального соответствия символам целевого языка. Значение по умолчанию — true . Этот параметр влияет только на элементы с обычным текстом.
    • adjustElementDirection — необязательное логическое поле, управляющее направлением редактируемого элемента в зависимости от направления, заданного в destinationLanguage . Значение по умолчанию — true .

Для систем письма справа налево, таких как арабский, API автоматически корректирует направление элемента ввода в соответствии с направлением письма и содержимым элемента ввода. Вы можете задать направление текста в элементе ввода с помощью HTML и JavaScript с помощью direction , который может иметь значение 'ltr' (слева направо) или 'rtl' (справа налево). Использование этого метода влияет на курсор и выравнивание текста в области ввода.

Пример поддержки API языков с письмом справа налево можно увидеть в примере транслитерации арабского языка .

Этот метод создает исключения, если какой-либо из указанных elementIds недействителен.

.makeTransliteratable() не имеет возвращаемого значения.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope) удаляет прослушиватель событий из элемента управления транслитерацией, где:

  • Этот аргумент берет свое значение из перечисления eventType (например, google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED) .
  • listener — это функция для события, которое необходимо удалить.
  • opt_listenerScope — область, в которой прослушиватель был зарегистрирован на момент добавления прослушивателя.

.removeEventListener() не имеет возвращаемого значения.

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) позволяет динамически изменять языковую пару, используемую элементом управления транслитерацией, где:

  • sourceLanguage указывает тип языка для транслитерации. Значение этого аргумента берётся из перечисления LanguageCode (например google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH) .
  • destinationLanguage указывает тип языка для транслитерированного текста.

.setLanguagePair() возвращает логическое значение, указывающее, было ли действие setLanguage успешным.

.showControl(divElement)

.showControl(divElement) отображает элемент управления транслитерацией в указанном DIV, где divElement — идентификатор DIV. Этот метод не возвращает значение.

.toggleTransliteration()

.toggleTransliteration() включает или выключает транслитерацию в элементе управления транслитерацией. Этот метод не имеет аргументов и не возвращает значения.

Статический метод

Следующий статический метод реализован в пространстве имен google.language .

Статический метод Описание

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) — статическая функция, регистрирующая указанную функцию-обработчик, которая будет вызвана после загрузки страницы, содержащей этот вызов. При этом callback — обязательная функция, вызываемая после загрузки содержащего её документа и готовности API к использованию (например, после onLoad ). Эта функция реализована в пространстве имён google (например, google.setOnLoadCallback(callback); ).

.setOnLoadCallback() не имеет возвращаемого значения.

Примечание: в предыдущей документации рекомендовалось использовать атрибут onload элемента body ( <body onload="OnLoad()"> ). Хотя это хороший способ, когда вы полностью контролируете страницу и весь загружаемый ею код, такой подход может вызвать проблемы в некоторых средах выполнения, которые уничтожают обработчик body.onload . setOnLoadCallback() лишен этих проблем и поэтому является рекомендуемым методом регистрации обратного вызова, который вызывает ваш код после полной загрузки API и готовности к использованию.

Следующий статический метод реализован в пространстве имен google.elements.transliteration .

Статический метод Описание

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) — глобальный метод, возвращающий карту целевых языков, для которых поддерживается транслитерация для заданного sourceLanguage . Возвращаемая карта содержит поддерживаемые целевые языки, где ключ — название языка, а значение — код языка. Возвращаемая карта аналогична описанной в перечислении LanguageCode .

Перечисления

EventType перечисление

Перечисление google.elements.transliteration.TransliterationControl.EventType содержит список событий, возможных во время транслитерации. Вы можете добавить собственные обработчики для этих событий в свой код.

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 : Возникает при включении или выключении транслитерации в элементе управления транслитерацией с помощью:
    • Сочетание клавиш
    • Методы enableTransliteration , disableTransliteration или toggleTransliteration
    • Щелчок мышью по элементу управления транслитерацией, нарисованному методом showControl .
    Объект события, переданный прослушивателю, содержит поле transliterationEnabled . Это поле имеет значение true, если транслитерация on , в противном случае — false.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED : Возникает при изменении языковой пары транслитерации в элементе управления транслитерацией с помощью:
    • Метод setLanguagePair
    • Элемент управления транслитерацией, созданный методом showControl
    Объект события, переданный прослушивателю, содержит поля sourceLanguage и destinationLanguage .
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE : Результат успешного соединения с сервером для транслитерации текста.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE возникает при неудачной попытке связаться с сервером для транслитерации текста.

LanguageCode enum

google.elements.transliteration.LanguageCode сопоставляет константы имен с языковыми кодами, которые можно использовать для указания исходного и целевого языков в методах транслитерации.

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

Перечисление google.elements.transliteration.SupportedDestinationLanguages сопоставляет константы имен с массивами языковых кодов, которые можно использовать для указания групп целевых языков в элементе управления транслитерацией.

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

Поиск неисправностей

Если у вас возникли проблемы:

  • Обратите внимание на опечатки. Помните, что JavaScript — язык, чувствительный к регистру.
  • Используйте отладчик JavaScript. В Google Chrome доступен полный набор инструментов разработчика . В Firefox можно использовать консоль JavaScript или Firebug . В IE можно использовать отладчик скриптов Microsoft .
  • Поищите в группе обсуждения . Если вы не нашли сообщение с ответом на свой вопрос, опубликуйте его в группе вместе со ссылкой на веб-страницу, иллюстрирующую проблему.