useGT
`useGT` 文字列翻訳関数のAPIリファレンス
概要
useGT 関数は、ビルド時に文字列を翻訳するためのフックです。
const t = useGT();
<p>{ t('このテキストは翻訳されます') }</p>;Buildtime Translation:
useGT の翻訳はビルド時、アプリをデプロイする前に実行されます。
翻訳済みの文字列に variables を渡すことはできますが、ビルド時点で判明しているコンテンツのみ翻訳できます。
リファレンス
パラメータ
なし
戻り値
渡されたコンテンツを翻訳するコールバック関数 t。
(content: string, options?: InlineTranslationOptions) => string| 名称 | Type | 説明 |
|---|---|---|
content | string | 翻訳対象の文字列。 |
options? | InlineTranslationOptions | t の動作をカスタマイズするための options。 |
挙動
本番環境
CDプロセス(継続的デリバリー/継続的デプロイ)の間、t 関数内のコンテンツはアプリケーションのデプロイ前に翻訳されます。
これにより、すべての対応ロケールで高速な読み込みが実現しますが、ビルド時点で既知のコンテンツのみ翻訳されます。
生成された翻訳は、設定に応じて (1) CDN(コンテンツ配信ネットワーク)に保存されるか、(2) アプリのビルド成果物に保存されます。 そこから翻訳済みコンテンツがユーザーに配信されます。 翻訳が見つからない場合は、元のコンテンツが使用されます。
デプロイガイドに従ってください。
開発
開発中は、t 関数がリクエストに応じてコンテンツを翻訳します。
これにより、アプリが各言語でどのように表示されるかを試作・確認できます。
この動作を有効にするには、環境に Dev APIキー を追加することを忘れないでください。
開発時のオンデマンド翻訳では遅延が発生します。 これは本番ビルドでは発生しません。
例
基本的な使い方
文字列の翻訳には useGT を使用します。
import { useGT } from 'gt-react';
export default function TranslateGreeting() {
const t = useGT();
return (
<p>
{t('こんにちは、アリス!')}
</p>
);
}注: 「Alice」はユーザーの優先言語に翻訳されます。
変数の使用
dictionary の翻訳に variables を渡せます。
import { useGT } from 'gt-react';
export default function TranslateGreeting() {
const t = useGT();
return (
<p>
{t('こんにちは、{name}さん!', { name: 'Alice' })}
</p>
);
}注: "Alice" は Variable のため、ユーザーの希望する言語には翻訳されません。
ICU メッセージ形式の使用
gt-react は ICU メッセージ形式をサポートしており、variables の書式設定も行えます。
import { useGT } from 'gt-react';
export default function TranslateGreeting() {
const t = useGT();
return (
<p>
{t('カートに{count, plural, =0 {商品はありません} =1 {商品が1件あります} other {商品が{count}件あります}}。', { count: 10 })}
</p>
);
}ICU message format は、variables をフォーマットする強力な方法です。 詳細は、ICU message format のドキュメントをご覧ください。
注意事項
useGT関数は、文字列を翻訳するためのフックです。useGTフックは、<GTProvider>コンポーネントでラップされたコンポーネント内でのみ使用できます。useGTによる翻訳は、(開発時を除き)実行時ではなくビルド時に行われます。
次のステップ
- dictionary を使って文字列を翻訳する方法については、
useTranslationsを参照してください。
このガイドはいかがですか?