# gt-node: General Translation Node.js SDK: クイックスタート URL: https://generaltranslation.com/ja/docs/node/quickstart.mdx --- title: クイックスタート description: General Translationの`gt-node`ライブラリをインストールして、最初のNode.jsサービスを翻訳します。 related: links: - /docs/node/guides/translating-strings - /docs/node/guides/detecting-locale - /docs/node/guides/configuring - /docs/node/guides/storing-translations --- `gt-node`は、Node.jsのサーバーやサービスで文字列を翻訳するためのライブラリです。初期化は一度だけ行い、受信した各リクエストにロケールを紐付けて、handler内で文字列を翻訳します。 ExpressやFastifyのAPIなどのバックエンドサービスでは`gt-node`を使用してください。Reactアプリでは[`gt-react`](/docs/react/react-quickstart)、Next.jsでは[`gt-next`](/docs/react/nextjs-quickstart)を使用してください。 *注: `gt-node`を使用するにはNode.js 18以降が必要です。リクエストごとのロケールの紐付けには、`node:async_hooks`の`AsyncLocalStorage`を使用します。* ## gt-node でできること [#what-it-does] `gt-node` では、次のことができます。 * ハンドラー内で使うローカルな文字列向けの、[`getGT`](/docs/node/reference/functions/get-gt) による**文字列翻訳**。 * 共有定数やエラー向けの、[`msg`](/docs/node/reference/functions/msg) と [`getMessages`](/docs/node/reference/functions/get-messages) による**登録済みメッセージ**。 * 動的コンテンツ向けの、[`tx`](/docs/node/reference/functions/tx) による**ランタイム翻訳**。 * [`withGT`](/docs/node/reference/functions/with-gt) による**リクエスト単位のロケール**のバインディングと、リクエストのロケールを検出するためのヘルパー。 ## クイックスタート [#quickstart] ライブラリをインストールし、初期化して、リクエストごとにロケールをバインドし、文字列を翻訳します。 ### 1. `gt-node` をインストール 依存関係として `gt-node` と Express を、開発依存関係として [`gt` CLI](/docs/cli/quickstart) をインストールします。 ```bash npm install gt-node express && npm install gt --save-dev ``` ```bash yarn add gt-node express && yarn add --dev gt ``` ```bash bun add gt-node express && bun add --dev gt ``` ```bash pnpm add gt-node express && pnpm add --save-dev gt ``` *メモ: 以下のサーバーコードでは ES module の `import` 構文を使用しています。Node.js で実行できるように、`package.json` で `"type": "module"` を設定してください。* ### 2. ライブラリを初期化する 起動時に、リクエストを処理する前に [`initializeGT`](/docs/node/reference/functions/initialize-gt) を一度だけ呼び出します。ロケールは直接渡してください。認証情報のフィールドを省略した場合、`gt-node` は環境変数から `GT_PROJECT_ID`、`GT_API_KEY`、`GT_DEV_API_KEY` を読み込みます。 ```ts title="server.js" import { initializeGT } from 'gt-node'; initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'], }); ``` ### 3. リクエストのロケールを関連付ける 各リクエストを [`withGT`](/docs/node/reference/functions/with-gt) でラップし、翻訳関数が対象のロケールを認識できるようにします。検出には、`Accept-Language` header から判定する [`getRequestLocale`](/docs/node/reference/functions/get-request-locale) を使用します。 ```js title="server.js" import express from 'express'; import { withGT, getRequestLocale } from 'gt-node'; const app = express(); app.use((req, res, next) => withGT(getRequestLocale(req), () => next())); ``` ### 4. 文字列を翻訳する ハンドラー内で [`getGT`](/docs/node/reference/functions/get-gt) を await し、リクエストのロケールに対応する翻訳関数を取得してから、文字列を翻訳します。値の埋め込みには ICU プレースホルダーを使用します。 ```js title="server.js" import { getGT } from 'gt-node'; app.get('/api/greeting', async (req, res) => { const gt = await getGT(); res.json({ message: gt('Hello, {name}!', { name: 'Alice' }) }); }); app.listen(3000, () => console.log('Listening on http://localhost:3000')); ``` ### 5. 実行して確認する 手順2〜4のスニペットを1つの`server.js`ファイルにまとめてから、サーバーを起動します。翻訳を生成する前は、ハンドラーはソース文字列を返します。これにより、サービスが正しく設定されていることを確認できます。 ```bash node server.js ``` 別のターミナルで、リクエストを送信します。 ```bash curl http://localhost:3000/api/greeting ``` ```json title="Output" {"message":"Hello, Alice!"} ``` ### 6. 翻訳を生成する 本番環境にデプロイする前に CLI を実行し、ランタイムで翻訳を利用できるようにします。 ```bash npx gt translate ``` *注: [`gt translate`](/docs/cli/reference/commands/translate) は `gt.config.json` を読み込み、プロジェクト ID と API キーが必要です。これらを作成するには、先に [`npx gt init`](/docs/cli/reference/commands/init) を実行してください。* [`getGT`](/docs/node/reference/functions/get-gt)、[`msg`](/docs/node/reference/functions/msg)、[`tx`](/docs/node/reference/functions/tx) の使い分けについては [文字列の翻訳](/docs/node/guides/translating-strings) を、認証情報と配信については [gt-node の設定](/docs/node/guides/configuring) を参照してください。 ## Next steps - /docs/node/guides/translating-strings - /docs/node/guides/detecting-locale - /docs/node/guides/configuring - /docs/node/guides/storing-translations