# General Translation Knowledge Base: デプロイのたびに翻訳を最新の状態に保つにはどうすればよいですか？
URL: https://generaltranslation.com/ja/kb/translations-in-ci.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 本番環境のビルド前に、翻訳をパイプラインのステップとして毎回実行します。こうすることで、新しいテキストは追加されたデプロイと同時に翻訳済みの状態でリリースされます。General Translation の gt CLI では、CI シークレットとして保存したプロジェクトの APIキーとプロジェクトIDを使い、npx gt translate でこれを実現します。
Category: ワークフローツール
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

デプロイのたびに翻訳を最新の状態に保つ手法を、継続的ローカライゼーションと呼びます。各リリースのビルド前に翻訳をパイプラインのステップとして実行するため、あらゆる変更は、それが加えられたデプロイと同時に全言語でリリースされます。実現が難しいのは、このステップが CI (継続的インテグレーション) 上で実行されるからです。具体的には、誰もサインインしなくても使える認証情報が必要なこと、ビルド時間を短く抑えるために変更箇所だけを翻訳すべきこと、そしてビルドコマンドより前に完了させないと新しいテキストが未翻訳のままリリースされてしまうことが挙げられます。

## Video

The video is narrated in English, with English captions.

[How do I keep translations up to date on every deploy?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translations-in-ci.mp4) (48 秒)

General Translation keeps translations current when your CI runs `npx gt translate` before the build. Create an API key for CI with the file read, file write, context write and translation queue permissions, store it and your project ID as `GT_API_KEY` and `GT_PROJECT_ID` in your CI provider's secrets, put `npx gt translate` before the build command in your build script, and run that build on every push to main. Each build then translates new and changed text and ships current translations.

## 翻訳を最新の状態に保つ方法

| アプローチ                                                                                                                                           | 得意なこと                                                                                                                                                                                    | 翻訳のタイミング                                   | 自分で対応する必要があること                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 国際化 (i18n) ライブラリ単体 (`i18next`、`react-intl`、`next-intl`)                                                                                         | 翻訳のレンダリングと値のフォーマットを担う成熟したランタイム                                                                                                                                                           | 誰かがファイルを更新したとき (多くの場合、リリースの合間にまとめてバッチで実施)  | 新しい文字列をキーファイルに抽出し、各翻訳を言語ごとのファイルに追加し、リリース前にすべてのファイルの翻訳を済ませること                                                                                                        |
| [翻訳管理システム](/kb/general-translation-vs-tms)との同期 ([Crowdin](/kb/general-translation-vs-crowdin)、[Lokalise](/kb/general-translation-vs-lokalise))  | CLI または GitHub連携が新しい翻訳元文字列をアップロードし、完成した翻訳をダウンロードする                                                                                                                                       | 翻訳者の作業が終わったとき (多くの場合、文言を追加したデプロイの後)        | すべての文字列のキーファイル、同期の設定、そして翻訳が揃うまでリリースを保留するか、未翻訳の文言のままリリースするかの判断                                                                                                       |
| 機械翻訳または AI API (DeepL、OpenAI API、Claude API) を使うカスタムスクリプト                                                                                       | パイプライン内で、送信した分だけ翻訳できる                                                                                                                                                                    | 自分で作成・保守する CI ステップ内                        | 新規・変更された文字列の検出、各リクエストへの文脈と用語の統一の付与、結果の書き戻し、レビュー                                                                                                                     |
| General Translation (`gt` CLI)                                                                                                                  | [`npx gt translate`](/docs/cli/reference/commands/translate) が [`<T>`](/docs/react/reference/components/t) コンポーネント、`useGT` の呼び出し、`gt.config.json` に指定されたファイルをスキャンし、翻訳元が変更されたコンテンツだけを翻訳する | CI 内で、ビルドコマンドの前                            | 新しい UI の文言を [`<T>`](/docs/react/reference/components/t) でラップするか `useGT` が返す `gt` 関数に渡すこと、プロジェクトのAPIキーとプロジェクトIDを CI のシークレットとして保存すること、人の目で確認したい場合はダッシュボードで翻訳をレビューすること |

翻訳者が言語ファイルを管理し、リリースのたびに翻訳を待てる場合は i18nライブラリ単体を、出荷前に翻訳者がすべての文字列を承認する必要がある場合は翻訳管理システムとの同期を選びましょう。今後変更されない文言を一度だけ翻訳するなら、カスタムスクリプトで十分です。ほとんどのリリースで文言が変わるなら、CI に翻訳ステップを組み込みましょう。文言がたまにしか変わらない場合は、もっとシンプルなセットアップで構いません。`gt.config.json` に `projectId` を設定し、[`gt login`](/docs/cli/reference/commands/login) を実行してからローカルで [`npx gt translate`](/docs/cli/reference/commands/translate) を実行し、書き出されたファイルをコミットしてください。

## CI に翻訳ステップを追加する

General Translation の `gt` CLI では、このステップを [`npx gt translate`](/docs/cli/reference/commands/translate) で実行します。[`gt login`](/docs/cli/reference/commands/login) には人による承認が必要なため、CI ではプロジェクトキーを使用します。

1. **プロジェクト &gt; API キー** で、**Custom** 権限のキーを作成します。**Files** を **Write**、**Translation queue** を **Enabled** に設定します。パイプラインで文脈を生成する場合は、**Context** も **Write** に設定してください。
2. CI プロバイダーのシークレット設定に、キーを `GT_API_KEY`、プロジェクトIDを `GT_PROJECT_ID` として保存します。
3. ビルドの前に翻訳を実行します。

   ```json title="package.json"
   {
     "scripts": {
       "translate": "npx gt translate",
       "build": "npm run translate && <your build command>"
     }
   }
   ```

## 各実行の処理内容

General Translation では、実行のたびに翻訳元が変更されたコンテンツのみを翻訳し、プロジェクトに割り当てられたコンテキストグループ (用語集とカスタムプロンプト) を適用して、リリースをまたいで用語を統一します。翻訳結果はコードベースに保存され、ビルドに含めてリリースされます (`--publish` を指定した場合は General Translation の CDN に公開され、アプリが実行時に読み込みます) 。詳しい手順については、[翻訳の生成](/docs/cli/guides/generating-translations)ガイドを参照してください。

## Related questions

- [Cursor や Claude Code でアプリを国際化するには？](https://generaltranslation.com/ja/kb/ai-agent-i18n-setup.mdx): Cursor または Claude Code で General Translation の Setup for Agents プロンプトを使い、機能と対象言語を選んで、エージェントに実装と検証を任せます。ブラウザでのサインイン、機械可読なドキュメント、MCP ツールにより、セットアップから翻訳、レビューまでがシームレスにつながります。継続的なローカライゼーションは、Locadex を使ってプルリクエスト経由で自動化できます。
- [翻訳をレビュー・編集するにはどうすればよいですか？](https://generaltranslation.com/ja/kb/review-translations.mdx): 各翻訳を翻訳元や他のロケールと見比べ、不自然な箇所を修正します。General Translation では、ダッシュボードの翻訳ページで翻訳を編集し、ラベルとコメントでレビューの進捗を管理します。編集内容は、AIエージェントである Locadex による次回の翻訳実行でプルリクエストに取り込まれます。
- [Locadex エージェントは何をするのか？](https://generaltranslation.com/ja/kb/what-is-locadex.mdx): Locadex は General Translation の AI エージェントで、GitHub リポジトリ内のコードを国際化し、コンテンツを翻訳します。自動化はプルリクエストの作成時、コミットのプッシュ時、または手動で開始したときに実行され、すべての変更はプルリクエストとして届きます。
- [翻訳ファイルなしでi18nは実現できますか？](https://generaltranslation.com/ja/kb/i18n-without-translation-files.mdx): はい。General Translationの gt-react と gt-next ライブラリを使えば、翻訳キーも、言語ごとに管理するJSONファイルもなしで、ReactとNext.jsのi18nを実現できます。文言は `<T>` コンポーネント内のJSXにインラインで記述したままで、gt translate コマンドがコードから得た文脈をもとに、ビルド時に各言語の翻訳を生成します。さらにLocadexを使えば、プルリクエストを通じて翻訳を常に最新の状態に保てます。

## Previous and next questions

- Previous question: [Vue アプリを翻訳するにはどうすればよいですか？](https://generaltranslation.com/ja/kb/translate-vue-app.mdx)
- Next question: [ロケールごとに数値、日付、通貨を書式設定するにはどうすればよいですか？](https://generaltranslation.com/ja/kb/format-numbers-dates-currencies.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/ja/kb/sitemap.md) for every article.
