# gt-next: General Translation Next.js SDK: getMessages URL: https://generaltranslation.com/ja/docs/next/api/strings/get-messages.mdx --- title: getMessages description: getMessages() 文字列翻訳関数の API リファレンス --- ## 概要 `getMessages` 関数は、`msg` でエンコードされた文字列をビルド時に翻訳するための非同期関数です。 ```jsx const m = await getMessages();

{ m(encodedString) }

; ``` **ビルド時翻訳:** `getMessages` の翻訳は、アプリのデプロイ前、ビルド時に実行されます。 `msg` のエンコード済み文字列を渡すと、ユーザーの優先言語に翻訳されます。 ## リファレンス ### パラメータ なし ### 戻り値 `msg` から渡されたエンコード済みコンテンツを翻訳するコールバック関数 `m` を返す Promise。 ```jsx Promise<(encodedContent: string, options?: Record) => string> ``` | 名前 | 型 | 説明 | | ---------------- | --------------------- | ------------------------------- | | `encodedContent` | `string` | `msg` から取得した、翻訳対象のエンコード済み文字列。 | | `options?` | `Record` | エンコード済み文字列に変数を渡すための省略可能なパラメーター。 | *** ## 挙動 ### 本番環境 CD プロセスでは、`msg` 関数内のコンテンツはすべて、アプリケーションのデプロイ前に翻訳されます。 これにより、すべてのロケールで高速に読み込めますが、翻訳できるのはビルド時に確定しているコンテンツに限られます。 生成された翻訳は、設定に応じて (1) CDN に保存されるか、(2) アプリのビルド出力に保存されます。 その後、翻訳済みコンテンツがユーザーに配信されます。 翻訳が見つからない場合は、元のコンテンツにフォールバックします。 必ず[こちらのデプロイガイド](/docs/next/tutorials/quickdeploy)に従ってください。 ### 開発 開発中は、`m` 関数がコンテンツを on-demand で翻訳します。 これは、アプリがさまざまな言語でどのように表示されるかを試す際に役立ちます。 この動作を有効にするには、環境変数に Dev API キーを追加してください。 開発中に on-demand 翻訳を行う際は、遅延が発生します。 これは、本番ビルドではコンテンツが明示的に on-demand で翻訳されている場合、 つまり [`tx`](/docs/next/api/strings/tx) または [``](/docs/next/api/components/tx) を使用している場合を除き、発生しません。 *** ## 例 ### 基本的な使い方 `msg` でエンコードされた文字列を翻訳するには、`getMessages` を使用できます。 ```javascript copy import { msg, getMessages } from 'gt-next/server'; const encodedGreeting = msg('Hello, Alice!'); export default async function TranslateGreeting() { const m = await getMessages(); return (

{m(encodedGreeting)}

); } ``` 注: "Alice" はユーザーの優先言語に翻訳されます。 ### 変数を使用する [#variables] エンコード済みの文字列に変数を渡せます。 ```javascript copy import { msg, getMessages } from 'gt-next/server'; const encodedGreeting = msg('Hello, {name}!'); export default async function TranslateGreeting() { const m = await getMessages(); return (

{m(encodedGreeting, { name: 'Bob' })} {/* これは "Hello, Bob!" と表示されます */}

); } ``` ### `msg` の変数は `m` の変数より優先されます `msg` と `m` の両方に変数を渡した場合は、`msg` に渡した変数が `m` に渡した変数より優先されます。 ```javascript copy import { msg, getMessages } from 'gt-next/server'; const encodedGreeting = msg('Hello, {name}!', { name: 'Alice' }); export default async function TranslateGreeting() { const m = await getMessages(); return (

{m(encodedGreeting, { name: 'Bob' })}

); } ``` 注: これは "Hello, Alice!" と表示されます。変数はレンダリング時には上書きされません。 ### ICU メッセージ形式を使う `gt-next` は ICU メッセージ形式をサポートしており、変数の書式設定も行えます。 ```javascript copy import { msg, getMessages } from 'gt-next/server'; const encodedMessage = msg('There are {count, plural, =0 {no items} =1 {one item} other {{count} items}} in the cart', { count: 10 }); export default async function TranslateGreeting() { const m = await getMessages(); return (

{m(encodedMessage)}

); } ``` ICU メッセージ形式は、変数を柔軟に書式設定できる強力な記法です。 詳細は、[ICU メッセージ形式のドキュメント](https://unicode-org.github.io/icu/userguide/format_parse/messages/)を参照してください。 *** ## 注記 * `getMessages` 関数は、`msg` によってエンコードされた文字列を翻訳するサーバーサイドの関数です。 * `getMessages` を使った文字列の翻訳は、runtime ではなくビルドプロセス中に行われます (development 環境を除く) 。 ## 次のステップ * ビルド時にエンコードした文字列をクライアント側で翻訳するには、[`useMessages`](/docs/next/api/strings/use-messages)を参照してください。 * 文字列を翻訳用にエンコードするには、[`msg`](/docs/next/api/strings/msg)を参照してください。 * runtime での翻訳については、[`tx`](/docs/next/api/strings/tx)と[``](/docs/next/api/components/tx)を参照してください。