# 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) を参照してください。