# node: withGT URL: https://generaltranslation.com/ja/docs/node/api/with-gt.mdx --- title: withGT description: withGT リクエストラッパーの API リファレンス --- ## 概要 `withGT` 関数はコールバックをラップし、翻訳関数で使うロケールコンテキストを提供します。 Node.js サーバーでは、通常、リクエストごとに異なるロケールの異なるユーザーを処理します。 `withGT` は、コールバック内で呼び出されるすべての翻訳関数にロケールを設定します。 ```js import { withGT } from 'gt-node'; app.get('/api/greeting', (req, res) => { withGT(req.locale, () => { // ここ内の翻訳関数は req.locale を使用する }); }); ``` **リクエストコンテキスト:** `withGT` は内部で非同期ローカルストレージを使用し、ロケールを現在のリクエストに紐付けます。 コールバック内で `getGT` と `getMessages` を呼び出すと、いずれも指定されたロケールが使用されます。 ## リファレンス ### パラメータ T', optional: false, }, }} /> ### 説明 | パラメータ | 説明 | | -------- | -------------------------------------------------------------------- | | `locale` | コールバック内の翻訳に使用する[ロケールコード](/docs/core/locales) (例: `'es'`、`'fr-CA'`) 。 | | `fn` | 指定したロケールコンテキストで実行するコールバック関数。同期・非同期のどちらにも対応します。 | ### 戻り値 `T` — コールバック関数 `fn` が返す値です。 *** ## 例 ### Express ミドルウェア ```js title="server.js" import express from 'express'; import { initializeGT, withGT, getGT } from 'gt-node'; initializeGT({ defaultLocale: 'en-US', locales: ['en-US', 'es', 'fr'], projectId: process.env.GT_PROJECT_ID, }); const app = express(); app.use((req, res, next) => { const locale = req.headers['accept-language']?.split(',')[0] || 'en-US'; withGT(locale, () => { next(); }); }); app.get('/api/greeting', async (req, res) => { const gt = await getGT(); res.json({ message: gt('Hello, world!') }); }); ``` ### 非同期ハンドラをラップする ```js title="handler.js" import { withGT, getGT } from 'gt-node'; export async function handleRequest(locale: string) { return withGT(locale, async () => { const gt = await getGT(); return gt('Welcome to our app!'); }); } ``` *** ## 注記 * `withGT` を使う前に、`initializeGT` を呼び出しておく必要があります。呼び出していない場合はエラーになります。 * ロケールのコンテキストはコールバック内に限定され、同時実行中のほかのリクエストに漏れることはありません。 * `withGT` は同期・非同期どちらのコールバックでも動作します。 ## 次のステップ * 初期セットアップについては [`initializeGT`](/docs/node/api/initialize-gt) を参照してください。 * リクエストコンテキスト内で文字列を翻訳するには [`getGT`](/docs/node/api/get-gt) を参照してください。