翻訳
プロジェクトを翻訳する方法
使い方
本番ビルドの前に、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-intl、react-i18next、next-i18next などの i18n ライブラリを使用している場合は、この方法でプロジェクトの JSON ファイルを翻訳できます。
翻訳は自動的にコードベースに保存されます。
CLI ツールでプロジェクトの JSON ファイルを翻訳するには、gt.config.json の files プロパティに 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-next と gt-react は、General Translation のパブリック CDN の利用に加えて、ローカル配信にも対応しています。
レイテンシ低減、パフォーマンス向上、バンドルサイズ削減のため、CDN の利用をおすすめします。
詳しくは、CLI の設定ドキュメントをご覧ください。
方法 3: プロジェクトの <T> コンポーネントと dictionary ファイルを検証する
この方法は、プロジェクトの <T> コンポーネントと dictionary ファイルを検証するのに有用です。
これにより、プロジェクトが正しく構成され、翻訳が妥当かつ正確であることを確認できます。
--dry-run フラグが指定されている場合、翻訳は生成されません。
npx gtx-cli translate --dry-runフラグ
| パラメーター | 説明 | 型 | 任意 | デフォルト |
|---|---|---|---|---|
--api-key | 本番用の APIキーを指定する | string | true | |
--project-id | プロジェクト ID を指定する | string | true | |
--version-id | バージョン ID を指定する(デフォルトではコンテンツのハッシュ) | string | true | |
--config <path> | GT の設定ファイルへのパスを指定する | string | true | "gt.config.json" |
--tsconfig, --jsconfig <path> | TS または JS の設定ファイルへのパスを指定する | string | true | |
--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 ファイルへのパスを指定する | string | true | |
--inline | dictionary に加えてインラインの <T> タグを含める | boolean | true | true |
--timeout | 翻訳リクエストのタイムアウト(秒) | number | true | 600 |
--new, --locales <locales> | プロジェクトを翻訳する対象の対応ロケール | [string] | true | |
--default-locale <locale> | プロジェクトのソース locale | string | true | en |
--ignore-errors | エラーを無視して有効なコンテンツを強制的に翻訳する | flag | true | false |
--dry-run | コマンドをドライランで実行する | flag | true | false |
--force | プロジェクトの再翻訳を強制する | flag | true | false |
--force-download | プロジェクトのすべての翻訳のダウンロードを強制する | flag | true | false |
これらのパラメーターはすべて任意です。
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 ファイルを指定できます。
このガイドはいかがですか?