# gt-node: General Translation Node.js SDK: getGT
URL: https://generaltranslation.com/ja/docs/node/reference/functions/get-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
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<GTFunctionType>

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<GTFunctionType>`

`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) を使用します。

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
