翻訳

プロジェクトを翻訳する方法

使い方

本番ビルドの前に、CI パイプラインでこれを実行してください。

npx gtx-cli translate

注記: このコマンドの実行には本番用のAPIキーが必要です。プラットフォームで取得してください。

概要

gtx-cli translate コマンドは、プロジェクトを翻訳します。 プロジェクトのファイルツリーを走査し、<T> コンポーネントでラップされたコンテンツや useGT 関数を使用しているコンテンツを翻訳します。

さらに、dictionary ファイル(提供されている場合)の内容も取り込みます。

このコマンドは、General Translation API および関連サービスを利用するための主要な手段です。

本番環境でのみ使用してください!

このコマンドは本番ビルド向けであり、開発環境では使用しないでください。 実行前に、本番に使用するブランチにいることを確認してください。 また、環境変数で本番の APIキー(GT_API_KEY)と Project ID(GT_PROJECT_ID)を設定することも忘れないでください。

使い方

translate コマンドの使い方は3通りあります。方法1と2には本番用の APIキー が必要です:

translate コマンドを実行する前に、プロジェクトの設定を支援するセットアップウィザードの実行をおすすめします: npx gtx-cli configure。 プロジェクトの構成に応じて、translate コマンドの動作は変わる場合があります。

方法 1: プロジェクトの JSON ファイルを翻訳する

next-intlreact-i18nextnext-i18next などの i18n ライブラリを使用している場合は、この方法でプロジェクトの JSON ファイルを翻訳できます。

翻訳は自動的にコードベースに保存されます。

CLI ツールでプロジェクトの JSON ファイルを翻訳するには、gt.config.jsonfiles プロパティに json を追加してください。 詳しくは CLI 設定ドキュメント を参照してください。

npx gtx-cli translate

このCLI(コマンドラインインターフェース)ツールは、package.json を読み込み、使用しているi18nライブラリを自動検出します。検出したライブラリの構文に従い、JSONを翻訳します。

方法 2: GT プロジェクトを翻訳する

プロジェクトで gt-next または gt-react を使用している場合、この方法でプロジェクトの翻訳を生成できます。

npx gtx-cli translate

デフォルトでは、翻訳は GT CDN(コンテンツ配信ネットワーク)に保存されます。

ただし、翻訳をコードベースに保存したい場合は、gt.config.json ファイルの files オブジェクトに gt プロパティを追加してください。

gt-nextgt-react は、General Translation のパブリック CDN の利用に加えて、ローカル配信にも対応しています。 レイテンシ低減、パフォーマンス向上、バンドルサイズ削減のため、CDN の利用をおすすめします。

詳しくは、CLI の設定ドキュメントをご覧ください。

方法 3: プロジェクトの <T> コンポーネントと dictionary ファイルを検証する

この方法は、プロジェクトの <T> コンポーネントと dictionary ファイルを検証するのに有用です。

これにより、プロジェクトが正しく構成され、翻訳が妥当かつ正確であることを確認できます。

--dry-run フラグが指定されている場合、翻訳は生成されません。

npx gtx-cli translate --dry-run

フラグ

パラメーター説明任意デフォルト
--api-key本番用の APIキーを指定するstringtrue
--project-idプロジェクト ID を指定するstringtrue
--version-idバージョン ID を指定する(デフォルトではコンテンツのハッシュ)stringtrue
--config <path>GT の設定ファイルへのパスを指定するstringtrue"gt.config.json"
--tsconfig, --jsconfig <path>TS または JS の設定ファイルへのパスを指定するstringtrue
--src <paths>ソースファイルにマッチする glob パターンのスペース区切りリスト。ルートディレクトリからの相対パスで指定してください。[string]true[ 'src/**/*.{js,jsx,ts,tsx}', 'app/**/*.{js,jsx,ts,tsx}', 'pages/**/*.{js,jsx,ts,tsx}', 'components/**/*.{js,jsx,ts,tsx}', ]
--dictionary <path>dictionary ファイルへのパスを指定するstringtrue
--inlinedictionary に加えてインラインの <T> タグを含めるbooleantruetrue
--timeout翻訳リクエストのタイムアウト(秒)numbertrue600
--new, --locales <locales>プロジェクトを翻訳する対象の対応ロケール[string]true
--default-locale <locale>プロジェクトのソース localestringtrueen
--ignore-errorsエラーを無視して有効なコンテンツを強制的に翻訳するflagtruefalse
--dry-runコマンドをドライランで実行するflagtruefalse
--forceプロジェクトの再翻訳を強制するflagtruefalse
--force-downloadプロジェクトのすべての翻訳のダウンロードを強制するflagtruefalse

これらのパラメーターはすべて任意です。

gt.config.json ファイルに APIキー を追加しないでください! 代わりに環境変数として設定してください。CLI は設定されていれば自動的に GT_API_KEY を読み込みます。

いくつかの重要なパラメーター:

パラメーター説明
--dry-runこのフラグを指定すると、CLI はプロジェクトの解析と検証のみを行い、GT の API とは通信しません。コードベースの検証に有用です。
--api-key--dry-run を使用しない場合は、本番用の APIキー を指定する必要があります。
--project-id同様に、--dry-run を使用しない場合は、プロジェクト ID を指定する必要があります。
--new, --locales <locales>プロジェクトを翻訳する対象の対応ロケール。gt.config.json ファイルで指定された locales に追加されます。
--forceプロジェクトの再翻訳を強制し、既存のすべての翻訳を上書きします。
--force-downloadすべての翻訳のダウンロードを強制し、ローカルで行った翻訳への変更を上書きします。

設定ファイル

初めて CLI ツールを実行すると、プロジェクトのルートに gt.config.json ファイルの作成を試みます。 このファイルには、コンテンツの翻訳に使用されるプロジェクトのメタデータが含まれています。

gt.config.json ファイルの詳細はこちらをご覧ください。

重要なポイント

コンテンツソース

translate コマンドは、プロジェクト内の翻訳対象コンテンツを再帰的に検索します。

既定では、以下のディレクトリを検索します:

  • ./src
  • ./app
  • ./pages
  • ./components

--src フラグを使用するか、gt.config.json ファイルの src プロパティを変更することで、検索対象の別ディレクトリを指定できます。

翻訳の上書き

既定では、ソースコンテンツに変更がない限り、CLI ツールはローカルで加えた翻訳の変更を上書きしません。

すでに翻訳済みのプロジェクトコンテンツを再翻訳したい場合は、--force フラグを使用できます。

--force を使用すると、既存の翻訳はすべて上書きされ、ローカルで加えた翻訳の変更は保持されません。

すでに最新のプロジェクト翻訳を取得済みで、もう一度ダウンロードしたい場合は、--force-download フラグを使用できます。

--force-download を使用すると、ローカルで加えた翻訳の変更は上書きされ、最新の翻訳が取得されます。コンテンツの再翻訳は行われません。

dictionary ファイル

translate コマンドは、プロジェクト内の dictionary ファイルを自動的に検出します。

既定では、次のディレクトリで dictionary.[json|ts|js] という名称のファイルを探します:

  • ./src
  • ./

--dictionary フラグを使用するか、gt.config.json ファイルの dictionary プロパティを変更して、別の dictionary ファイルを指定できます。

このガイドはいかがですか?