音译 API 参考文档

简单的音译

以下方法可让您在没有用户界面的情况下操作 JavaScript 执行简单的音译。

方法 说明

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

google.language.transliterate(wordsArray, srcLang, destLang, callback) 是一种全局方法,用于将指定文本音译为源语言。API 将结果作为 result 对象异步返回给指定的 callback 函数。此方法的参数如下:

  • wordsArray 以数组形式提供要进行音译的文本。
  • srcLang 以语言代码的形式提供源语言。如需查看示例,请参阅 LanguageCode 枚举
  • destLang 以语言代码的形式提供目标语言。如需查看示例,请参阅 LanguageCode 枚举
  • callback 是接收 result 的回调函数。

google.language.transliterate() 没有返回值。

此简化的音译方法使用 google.language.transliterate 命名空间(而不是 Transl 迭代 API 中所有其他方法的命名空间 google.elements.transliteration)。

google.language.transliterate() 会输出 result 对象。

结果对象是使用服务器请求的 JSON 编码生成的。因此,我们选择不实现正式的 JavaScript 对象,而是通过它们的序列化形式动态创建 result 对象。

虽然这些对象没有正式实现,但它们是存在的,我们会将它们记录为存在后备 JavaScript 实现。这对应用的影响极小。这只是表示不存在已命名的构造函数。对于每个结果,这就好像是系统调用了新的 Object(),然后为该对象设置了正式属性。这些属性如下所示。

  • <result>
    • 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 结合使用。

此方法会在以下情况创建异常:

  • sourceLanguagedestinationLanguage 无效
  • sourceLangaugedestinationLanguage 语言对中不受支持的语言
  • 快捷键组合无效

以下代码段演示了如何创建音译控件的实例:

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 是一个数组,其中包含您希望启用音译的可编辑元素 ID 或元素引用字符串。可修改的元素可以是:

    • 文本字段
    • 文本区域
    • 具有 contentEditable="true" 的 &div;
    • 一个带有 designMode="on" 的 <iframe&gt
    • 包含 contentEditable="true" 正文的 iframe。启用音译之前,请确保 iframe 已加载。
  • opt_options 是一个可选参数,用于提供应用于这些元素的选项。此参数可包含以下字段:
    • adjustElementStyle 是一个可选的布尔值字段,用于控制 API 是否自动调整元素和字体大小以尽可能适合目标语言字符。默认值为 true。此选项只会影响纯文本元素。
    • adjustElementDirection 是一个可选的布尔值字段,根据 destinationLanguage 的方向控制可修改元素的方向。默认值为 true

对于从右到左书写的系统(如阿拉伯语),该 API 会根据写入的脚本方向和输入元素的内容自动调整输入元素的方向。您可以使用带有 direction 的 HTML 和 JavaScript 设置输入元素中的文本方向,其值为 '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 的 ID。此方法没有返回值。

.toggleTransliteration()

.toggleTransliteration() 用于在音译控件中启用或停用音译。此方法没有参数和返回值。

静态方法

以下静态方法在 google.language 命名空间上实现。

静态方法 说明

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) 是一个静态函数,它会注册包含此调用的网页后要调用的指定处理程序函数,其中 callback 是在包含的文档加载且 API 可供使用时(例如 onLoad 之后)调用的必需函数。此函数在 google 命名空间(即google.setOnLoadCallback(callback);

.setOnLoadCallback() 没有返回值。

注意:以前的文档建议您使用 body 元素的 onload 属性 (<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:通过以下方式在音译控件中启用或停用音译时:
    • 快捷键
    • enableTransliterationdisableTransliterationtoggleTransliteration 方法
    • 用鼠标点击 showControl 方法绘制的音译控件。
    传递给监听器的事件对象包含字段 transliterationEnabled。如果音译为 'on' 则为 true,否则为 false。
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED:通过以下方法在音译控件中更改音译语言对时:
    • setLanguagePair 方法
    • showControl 方法绘制的音译控件
    传递给监听器的事件对象包含字段 sourceLanguagedestinationLanguage
  • 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 调试程序
  • 搜索论坛。如果您找不到能够解答您的问题的帖子,请在论坛中发布您的问题以及指向此问题演示网页的链接。