音訳 API リファレンス

単純な音訳

次の方法では、JavaScript を操作して UI なしで簡単な音訳を行うことができます。

メソッド 説明

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 名前空間を使用します(Transliterate API の他のすべてのメソッドの名前空間である google.elements.transliteration ではありません)。

google.language.transliterate()result オブジェクトを出力します。

結果オブジェクトは、サーバー リクエストの JSON エンコードを使用して生成されます。そのため、正式な JavaScript オブジェクトは実装せず、代わりにシリアル化された形式から result オブジェクトを動的に作成することにしました。

オブジェクトの正式な実装はありませんが、オブジェクトは存在します。Google は、バッキング JavaScript 実装があるかのようにオブジェクトをドキュメント化しています。これらの影響は最小限に抑えられます。これは、名前付きコンストラクタがないことを意味するだけです。各結果について、システムが new Object() を呼び出し、そのオブジェクトに正式なプロパティを設定したかのように動作します。これらのプロパティは次のとおりです。

  • <result>
    • error?
      音訳でエラーが発生した場合に表示されます。
    • transliterations
      入力 wordsArray のサイズと同じサイズの配列。
      • transliteratedWords
        最大サイズ 5 の配列。wordsArray 内の対応する単語の音訳が含まれます。

音訳コントロールの JavaScript リファレンス

次のコンストラクタとメソッドを使用すると、API が提供する UI 内で音訳を実行できます。

コンストラクタ - 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 のように)目的言語を指定する必須の配列です。

    UI では、使用可能な目的言語がメニューに表示され、配列内の最初の言語がデフォルトで選択されます。特定の言語の有効な変換先言語について詳しくは、getDestinationLanguages をご覧ください。
  • transliterationEnabled は、デフォルトで音訳を有効にするかどうかを指定するオプションのフィールドです。デフォルトで音訳を有効にする場合は、このフィールドに true の値を指定します。デフォルト値は false です。
  • shortcutKey は、音訳のオンとオフを切り替えるショートカット キーを指定する省略可能な文字列フィールドです。ショートカット キーを指定するには、アルファベット文字とともに「Ctrl」、「Alt」、「Shift」などの修飾子を含む文字列を指定します。たとえば、'Ctrl+g' と 'Ctrl+Shift+a' はどちらも有効なショートカット キーの組み合わせです。

    注: Shift キーを単独で修飾キーとして使用することはできませんが、Alt キーまたは Control キーと組み合わせて使用することはできます。

このメソッドは、次のような状況で例外を作成します。

  • sourceLanguage または destinationLanguage が無効です
  • 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 は、opt_listenerScope で指定されたオブジェクトに設定された this を使用してリスナーを呼び出します。

.addEventListener() は戻り値を返しません。

.disableTransliteration()

.disableTransliteration() は、文字変換コントロールの文字変換を無効にします。このメソッドには引数も戻り値もありません。

.enableTransliteration()

.enableTransliteration() は、文字変換コントロールで文字変換を有効にします。このメソッドには引数も戻り値もありません。

.isTransliterationEnabled()

.isTransliterationEnabled() に引数はありません。音訳コントロールで音訳が有効になっているかどうかを示すブール値を返します。

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) は、指定された HTML 要素で音訳を有効にします。このメソッドのパラメータは次のとおりです。

  • elementIds は、音訳を有効にする編集可能な要素 ID または要素参照の文字列を含む配列です。編集可能な要素は次のいずれかになります。

    • テキスト フィールド
    • テキスト領域
    • contentEditable="true" を含む <div>
    • designMode="on" を含む <iframe>
    • contentEditable="true" 本体を含む iFrame。変換を有効にする前に、iFrame が読み込まれていることを確認してください。
  • opt_options は、これらの要素に適用されるオプションを指定するオプションの引数です。この引数には次のフィールドを含めることができます。
    • adjustElementStyle は、API が要素とフォントのサイズをターゲット言語の文字に最適に合うように自動的に調整するかどうかを制御するブール値フィールド(省略可)です。デフォルト値は true です。このオプションは、プレーン テキスト要素にのみ影響します。
    • adjustElementDirection は、destinationLanguage の方向に応じて編集可能な要素の方向を制御するオプションのブール値フィールドです。デフォルト値は true です。

アラビア語などの右から左に書く言語の場合、API は、書かれたスクリプトの方向と入力要素の内容に応じて、入力要素の方向を自動的に調整します。direction を使用して、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 の 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 メソッドによって描画される文字変換コントロール
    リスナーに渡されるイベント オブジェクトには、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 を使用できます。
  • ディスカッション グループを検索します。質問の回答が見つからない場合は、問題を示すウェブページのリンクとともに、グループに質問を投稿してください。