Inline Translations

getGT

getGT() 文字列翻訳関数のAPIリファレンス

概要

getGT 関数は、ビルド時に文字列を翻訳するための非同期関数です。

const t = await getGT();

<p>{  t('このテキストは翻訳されます。')  }</p>;

Buildtime Translation: getGT の翻訳はビルド時、アプリをデプロイする前に実行されます。 翻訳済みの文字列に variables を渡すことはできますが、ビルド時点で判明しているコンテンツのみ翻訳できます。

リファレンス

パラメータ

なし

戻り値

指定したコンテンツを翻訳するコールバック関数 t を解決する Promise。

Promise<(content: string, options?: InlineTranslationOptions) => string>
名称Type説明
contentstring翻訳する文字列コンテンツ。
options?InlineTranslationOptionst の動作をカスタマイズするための options。

挙動

本番環境

CDプロセス(継続的デリバリー/継続的デプロイ)の間、t 関数内のコンテンツは、アプリケーションのデプロイ前に翻訳されます。 これにより、すべての対応ロケールで高速な読み込みが実現しますが、翻訳できるのはビルド時点で既知のコンテンツに限られます。

生成された翻訳は、設定に応じて (1) CDN(コンテンツ配信ネットワーク)に保存するか、(2) アプリのビルド成果物に同梱します。 その後、翻訳済みコンテンツがユーザーに配信されます。 翻訳が見つからない場合は、元のコンテンツにフォールバックします。

こちらのデプロイガイドに従ってください。

開発

開発中は、t 関数が必要に応じてコンテンツを翻訳します。 これは、アプリを各言語で表示したときの見え方を試作するのに便利です。 この動作を有効にするには、環境に Dev APIキー を追加することを忘れないでください。

開発時のオンデマンド翻訳では遅延が発生します。 これは、本番ビルドではコンテンツを明示的にオンデマンド翻訳していない限り発生しません。 つまり、tx<Tx> を使用している場合です。


基本的な使い方

getGT を使って文字列を翻訳できます。

import { getGT } from 'gt-next/server';

export default async function TranslateGreeting() {
  const t = await getGT();

  return (
    <p>
      {t('こんにちは、アリス!')}
    </p>
  );
}

Note: 「Alice」はユーザーの優先言語に翻訳されます。

変数の使用

dictionary の翻訳に variables を渡せます。

import { getGT } from 'gt-next/server';

export default async function TranslateGreeting() {
  const t = await getGT();

  return (
    <p>
      {t('こんにちは、{name}!', { name: 'Alice' })}
    </p>
  );
}

Note: 「Alice」はVariableであるため、ユーザーの希望する言語には翻訳されません。

ICU メッセージ形式の使用

gt-next は ICU メッセージ形式をサポートしており、variables の書式設定も行えます。

import { getGT } from 'gt-next/server';

export default async function TranslateGreeting() {
  const t = await getGT();
  return (
    <p>
      {t('カートに{count, plural, =0 {商品はありません} =1 {商品が1点あります} other {{count}点の商品があります}}', { count: 10 })}
    </p>
  );
}

ICU message format は、variables をフォーマットするための強力な手段です。 詳細は、ICU message format のドキュメントをご覧ください。


注意事項

  • getGT 関数は、文字列を翻訳するサーバーサイド関数です。
  • getGT による翻訳は、実行時ではなくビルド時に行われます(開発環境を除く)。

次のステップ

  • ビルド時にクライアントサイドで文字列を翻訳する場合は、useGT を参照してください。
  • 実行時の翻訳については、tx<Tx> を参照してください。

このガイドはいかがですか?