# gt-node: General Translation Node.js SDK: getGT URL: https://generaltranslation.com/ja/docs/node/reference/functions/get-gt.mdx --- title: getGT description: 現在のリクエストのロケール用の General Translation 関数を取得し、インライン文字列を翻訳します。getGT の API リファレンス。 --- 現在のリクエストのロケールに対応する翻訳関数を返す非同期関数です。General Translation コンパイラによってビルド時に登録された翻訳を解決し、翻訳が見つからない場合はソース文字列にフォールバックします。 ## 概要 [#overview] [`withGT`](/docs/node/reference/functions/with-gt) のスコープ内で `getGT` を await して同期的な `gt(message, options?)` 関数を取得し、それを使って文字列を翻訳します。 ```ts import { getGT } from 'gt-node'; const gt = await getGT(); const greeting = gt('Hello, world!'); ``` シグネチャ: ```ts getGT(): Promise type GTFunctionType = (message: string, options?: GTTranslationOptions) => string; ``` *注: `getGT` は、使用するロケールを判別できるよう、[`withGT`](/docs/node/reference/functions/with-gt) の callback 内で呼び出す必要があります。また、開発時の hot reload のために compiler が使用する内部引数 `_messages` も受け取りますが、これを直接渡す必要はありません。* ## 仕組み [#how-it-works] * **ビルド時の翻訳。** `getGT` はビルド時に使う翻訳関数を返します。文字列はデプロイ前の CD プロセス中に翻訳されるため、本番環境のリクエストではネットワーク往復なしでキャッシュ済みの翻訳を返せます。 * **開発。** 開発時の翻訳はオンデマンドで行われ、Dev API キーが必要です。 * **フォールバック。** 翻訳が見つからない場合は、元の (補間後の) ソース文字列が返されます。 * **補間。** 文字列内で `{variableName}` プレースホルダーを使い、オプションオブジェクトで値を渡します。`gt-node` は高度な書式設定のために [ICU message format](https://unicode-org.github.io/icu/userguide/format_parse/messages/) をサポートしています。 ## パラメータ [#parameters] `getGT` はパラメータを受け取りません。返される `gt` 関数は、次の引数を受け取ります。 | パラメータ | 説明 | 型 | 省略可 | デフォルト | | --------------------- | ------------------------- | ---------------------- | --- | ----- | | [`message`](#message) | 翻訳する文字列。 | `string` | いいえ | — | | [`options`](#options) | 補間 変数と翻訳オプション。 | `GTTranslationOptions` | はい | `{}` | ### `message` [#message] **型** `string` · **必須** 翻訳対象の文字列です。ICU補間用の `{variable}` プレースホルダーを含めることができます。 ### `options` [#options] **Type** `GTTranslationOptions` · **任意** 翻訳オプションと補間に使用する変数: * `$context?: string` — 翻訳の曖昧さを解消するための追加コンテキスト。 * `$id?: string` — 翻訳エントリのカスタム ID。 * `$locale?: string` — この呼び出しのリクエスト ロケールを上書きします。 * `$format?: string` — メッセージ形式。既定値は `'ICU'` です。 * `$maxChars?: number` — 翻訳の最大文字数。 * `$requiresReview?: boolean` — 使用前に翻訳の承認が必要かどうか。 * その他のキーはすべて、`{key}` 構文を使って文字列に補間する値として扱われます。 ## 戻り値 [#returns] **型** `Promise` `gt` 翻訳関数を返します。`gt(message, options?)` を呼び出すと、翻訳済みの文字列が返されます。翻訳が見つからない場合は、元の (補間された) 文字列が返されます。 ## 例 [#examples] ```ts title="handler.js" // シンプルな翻訳 import { withGT, getGT } from 'gt-node'; function handleRequest(locale) { return withGT(locale, async () => { const gt = await getGT(); return gt('Hello, world!'); }); } ``` ```ts title="handler.js" // 変数を使用する場合 — 文字列に {name} を記述し、options object に値を渡す import { withGT, getGT } from 'gt-node'; function handleGreeting(locale, name) { return withGT(locale, async () => { const gt = await getGT(); return gt('Hello, {name}!', { name }); }); } ``` ```ts title="handler.js" // ICU message formatを使用する場合 const gt = await getGT(); const balance = gt( 'Your balance: {amount, number, ::currency/USD}', { amount: 1234.56 } ); ``` ## メモ [#notes] * `getGT` はビルド時の翻訳関数を返します。文字列はデプロイ前の CD プロセス中に翻訳されます。 * 開発環境では、翻訳はオンデマンドで行われ、Dev APIキーが必要です。 * 翻訳が見つからない場合は、フォールバックとして元の文字列が返されます。 * 実行時にしかわからない文字列には [`tx`](/docs/node/reference/functions/tx) を使用し、モジュールスコープで登録される文字列には [`getMessages`](/docs/node/reference/functions/get-messages) とともに [`msg`](/docs/node/reference/functions/msg) を使用します。