Справочник по 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 , которое является пространством имен для любого другого метода в Transliterate API).

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) .
  • targetLanguage предоставляет тип языка для транслитерированного текста.

.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

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 Script Debugger .
  • Найдите группу обсуждения . Если вы не можете найти сообщение, отвечающее на ваш вопрос, опубликуйте свой вопрос в группе вместе со ссылкой на веб-страницу, демонстрирующую проблему.