getTranslations
サーバーサイド翻訳関数 getTranslations の APIリファレンス
概要
getTranslations は、サーバーサイドコンポーネント向けに translation dictionary から文字列の翻訳を取得するために使用します。
const d = await getTranslations(); // 翻訳関数を取得
d('greeting.hello'); // idを渡して翻訳を取得getTranslations は以下をサポートします:
- 文字列および JSX コンテンツの翻訳
- 翻訳内での Variable の挿入と条件分岐ロジック
- 任意の id のプレフィックス付与
 
クライアントサイドの翻訳については、useTranslations を参照してください。
getTranslations と useTranslations は、翻訳対象のすべてのコンテンツを保存するために dictionary を使用します。
これは、翻訳に <T> コンポーネントを使用する方法とは異なります。
翻訳に <T> コンポーネントのみを使用する場合、このドキュメントは対象外です。
リファレンス
Props
Prop
Type
説明
| Prop | 説明 | 
|---|---|
| id | すべての翻訳キーに前置する任意のプレフィックス。ネストされたdictionaryの値を扱う際に便利です。 | 
戻り値
id を受け取ると、対応する Entry の翻訳を返す翻訳関数 d を解決する Promise
Promise<(id: string, options?: DictionaryTranslationOptions) => React.ReactNode>| 名称 | Type | 説明 | 
|---|---|---|
| id | string | 翻訳対象の Entry の id | 
| options? | DictionaryTranslationOptions | dの動作をカスタマイズするための翻訳 options。 | 
例
dictionary の基本的な使い方
dictionary に含まれるすべての Entry が翻訳されます。
const dictionary = {
  greeting: <>こんにちは、Alice!</>, 
};
export default dictionary;サーバー側でこれらのエントリにアクセスする場合は、getTranslations を呼び出します。
これにより、dictionary の翻訳キーを受け取る関数が返されます。
import { getTranslations } from 'gt-next/server';
export default async function TranslateGreeting() {
  
  const d = await getTranslations(); 
  return (
    <p>
      {d('greeting')} // こんにちは、Alice // [!code highlight]
    </p>
  );
}variables の使用
値を渡すには、(1) 識別子を割り当て、(2) d 関数を呼び出す際にその識別子を参照する必要があります。
この例では、{} を用いて variables を翻訳に渡します。
dictionary では、識別子 {userName} を割り当てます。
const dictionary = {
  greeting: "こんにちは、{userName}さん!", 
};
export default dictionary;import { getTranslations } from 'gt-next/server';
export default async function TranslateGreeting() {
  const d = await getTranslations();
  
  // こんにちは、Alice!
  const greetingAlice = d('greeting', { userName: "Alice" }); 
  return (
    <p>
      {greetingAlice}
    </p>
  );
}プレフィックスの使用
dictionary の一部だけを取得するためにプレフィックスを利用できます。
const dictionary = {
  prefix1: { 
    prefix2: { 
      greeting: "こんにちは、Bob",
    }
  }
};
export default dictionary;getTranslations メソッドに 'prefix1.prefix2' を追加したため、すべてのキーに prefix1.prefix2 のプレフィックスが付きます。
import { getTranslations } from 'gt-next/server';
export default function UserDetails() {
  const d = await getTranslations('prefix1.prefix2'); 
  return (
    <div>
      <p>{d('greeting')}</p> // greeting => prefix1.prefix2.greeting // [!code highlight]
    </div>
  );
}注意
- getTranslations関数を使用すると、サーバー側で dictionary の翻訳にアクセスできます。
次のステップ
- クライアントサイド版の getTranslationsにあたるuseTranslationsを参照してください。
このガイドはどうでしたか?

