# gt: General Translation CLI tool: JSON
URL: https://generaltranslation.com/ja/docs/cli/formats/json.mdx
---
title: JSON
description: General Translation で JSON ファイルを自動翻訳する方法
---
## 概要
`gt` を使うと、使用している i18n ライブラリに関係なく、プロジェクトの JSON ファイルを自動翻訳できます。
**注:** 現在、以下のサードパーティ製 i18n ライブラリでは、カスタム文字列構文と書式設定をサポートしています: `next-intl`, `i18next`。別の
i18n ライブラリを使用している場合、カスタム構文や書式設定を含む
文字列 (たとえば ICU メッセージ) では、翻訳結果が正確にならない可能性があります。お使いのライブラリが
見当たりませんか? [ぜひお知らせください](https://github.com/generaltranslation/gt/issues)。できるだけ早く
対応を追加します。
以下の 4 つの手順で進めます:
環境変数を追加する
[`gt`](/docs/cli) をインストールする
`gt.config.json` ファイルを作成する
[`gt translate`](/docs/cli/translate#translate) を実行する
**ヒント:**
[`` コンポーネント](/docs/react/guides/t) を使えば、翻訳ファイルを使う手間を省けます。
***
## ステップ 1: 環境変数を追加する
本番用の API キーとプロジェクト ID を環境変数に追加します。
これは `gt` ツールを使用するために必要です。
これらは [General Translation ダッシュボード](https://generaltranslation.com/dashboard) で確認できます。
```bash title=".env"
GT_API_KEY=
GT_PROJECT_ID=
```
## ステップ 2: `gt` をインストール
プロジェクトに `gt` ツールをインストールします。
```bash
npm i gt
```
```bash
yarn add --dev gt
```
```bash
bun add --dev gt
```
```bash
pnpm add --save-dev gt
```
## ステップ3: `gt.config.json` ファイルを作成
プロジェクトのルートに `gt.config.json` ファイルを作成します。
```json title="gt.config.json" copy
{
"defaultLocale": "en",
"locales": ["zh", "es", "ja"],
"files": {
"json": {
"include": ["i18n/[locale]/*.json"]
}
}
}
```
必要に応じて、`gt.config.json` ファイルを自由にカスタマイズしてください。詳しくは、[設定](/docs/cli/reference/config) のドキュメントを参照してください。
`include` パスがプロジェクト構成に合うように、`json` ファイルを更新してください。
翻訳では、元の文字列構文が保持されます。
## ステップ 4: ビルドプロセスに `gt translate` コマンドを追加する
プロジェクトに翻訳を自動で追加するには、ビルドコマンドの前に `gt translate` コマンドをビルドまたは CI のプロセスに追加します。
```json title="package.json"
{
"scripts": {
"translate": "npx gt translate",
"build": "npm run translate && "
}
}
```
これにより、すべてのロケール向けの翻訳が生成され、プロジェクトに保存されます。
これらのファイルをリポジトリにコミットしたい場合は、代わりにコミットする前にこのコマンドを実行してください。
これで完了です。以降は、プロジェクトに変更があるたびに、すべての翻訳 JSON ファイルが自動的に更新されます。
***
## キーごとのメタデータ
各文字列には、付随する `.metadata.json` ファイルを使って、キーごとの翻訳指示を設定できます。これにより、ソースファイルを変更せずに、特定のキーに対してコンテキスト、文字数制限、ソースコード内のコンテキストを指定できます。
```json title="translations.json"
{
"nav": {
"home": "Home",
"bank": "Bank",
"save": "Save"
}
}
```
```json title="translations.metadata.json"
{
"nav": {
"bank": {
"context": "Riverbank — the side of a river. NOT a financial institution."
},
"save": {
"context": "Sports term — a goalkeeper preventing a goal. NOT saving data.",
"maxChars": 12
}
}
}
```
すべてのキーにメタデータが必要なわけではありません。個別の翻訳指示が必要なキーに対してのみ、エントリを指定してください。
サポートされているフィールドの一覧については、[キーごとのメタデータ リファレンス](/docs/cli/reference/keyed-metadata)を参照してください。
***
## 注記
* [`gt translate`](/docs/cli/translate#translate) コマンドを使うと、翻訳をプロジェクトに自動で追加できます。
* 翻訳ファイルをコミットする場合は、コミット前に `gt translate` コマンドを実行してください。
* 翻訳の出力パスを設定する方法については、[設定](/docs/cli/reference/config) ドキュメントを参照してください。
## 次のステップ
* CLI の使用方法の詳細については、[translate コマンド](/docs/cli/translate)を参照してください。
* 各キーごとの翻訳指示については、[キーごとのメタデータ](/docs/cli/reference/keyed-metadata)を参照してください。