国際化ウィザードを使うとプロジェクトを多言語対応にできます。リポジトリを読み込み、検出した内容をもとに各ステップを実行し、最終的にpull requestを開くタスクが生成されます。言語コードを入力したりJSONを編集したりする必要はありません。変更したい箇所のみを指定すればよく、マージするまでリポジトリの内容は変更されません。
オーナーや管理者がこのウィザードを実行します。開始場所はグローバリゼーション → 国際化:「プロジェクトを国際化する」またはウィザードを 開始するをプロジェクトの行で選択します。すでに多言語対応済みのプロジェクトの場合は、設定 → 言語を変更をワークベンチで選ぶと、同じウィザードが開いて変更を提案します。
手順は以下の通りです。
1. スキャン
Coroidはコードを実行せずにデフォルトブランチを読み込み、カタログとその言語、使用しているフレームワーク、コード内に直接記述されたテキストをファイルごとにカウントします。
- カタログが検出されました。ウィザードはこれらを保持し、Coroidがチェックを追加して不足している部分を翻訳します。これを「採用」と呼びます。
- カタログはまだありません。Coroidがコード内のテキストをカタログに移動させ、参照処理に置き換えます。これを「導入」と呼びます。
- すでに設定済みです。プロジェクトには既にCoroidの設定が存在し、ウィザードがその変更を提案します。
2. ソース言語
製品が作成された言語で、他のすべての言語はこれを基に翻訳されます。ウィザードはカタログから自動検出するか、コード内のテキストから推測します。どの言語もソース言語になり得ます。例えばスウェーデン語の製品を英語やドイツ語に翻訳する場合も同様の仕組みが適用されます。
3. 言語
言語を一つずつ選択するか、市場全体を一度に追加できます:話者数が最も多い言語、ヨーロッパ、北欧、東アジア、アメリカ大陸または右から左へ書く言語。各言語には独自の名称、書字方向、必要な複数形の数が表示されます。
地域別バリアントは翻訳ではなく派生させることも可能です。例えば英国英語は米国英語から英国式綴りで派生し、スイスドイツ語はドイツ語からスイス式綴りで派生するため、コストはかからず親言語と同期を保てます。
各ステップはリポジトリに既に存在する内容から開始されます。変更したい部分のみを調整でき、pull requestがマージされるまで何も変更されません。
- スキャン
- ソース言語
- 言語
- 文字列
- スタイルと用語
- カルチャー
- 品質と自動化
- レビュー
言語を個別に選択するか、特定の市場向けに一括で追加します。英国英語などの地域バリアントは、翻訳を行う代わりにルールに基づいて生成可能です。
- Deutschドイツ語 · de · 2複数形
- Françaisフランス語 · fr · 3複数形
- 日本語ja · 1複数形
- العربيةアラビア語 · ar · 右から左へ · 6複数形
- British Englishイギリス英語 · en-GB · 2複数形英国英語ベース
国際化ウィザードの「言語」ステップ:各言語の文字方向や複数形のルール、ルールに基づいて生成される英国英語、そして一括で追加できる市場が表示されます。参考用のデータです。
4. 文字列
導入時には、Coroidが翻訳を保持するカタログを選択します。そのキーや構造はそのまま維持されます。新規導入の場合は、Coroidがカタログに移行するテキストを含むファイルを選択し、除外したファイルは元のまま残ります。
5. スタイルと用語
すべては任意で、かつすべての言語で適用されます。
- 丁寧な表現またはくだけた表現。ドイツ語など、読者に対して丁寧またはくだけた表現を用いる言語ではSieおよびdu。デフォルトでは、それぞれソーステキストのトーンに従います。
- 用語はそのままの形で保持される。製品名、ブランド名、機能名はすべての言語で同一のままです。
- 製品について製品とその利用者に関する数文で、各翻訳で適切な単語を選ぶ際の参考になります。
6. 文化
各市場では日付、数字、価格の表記方法が異なります。コードが読者向けにフォーマットする方法を選択します。ウィザードでは検出されたフレームワーク(next-intlやreact-intlなど)に合ったフォーマッターを提案しますが、独自のものを指定することも可能です。次に、各市場で使用される通貨を選択し、それぞれ地域固有の通貨から開始します。各市場のサンプル日付や数字、週の始まりとなる曜日、用紙サイズも確認できます。Coroidのエージェントはこれらの設定に従って作業を進めます。詳細は文化。
7. 品質と自動化
デフォルトで有効になっており、後から個別に変更可能です:
- 変更のたびに翻訳内容を確認します。の グローバリゼーション確認文字列が欠落または破損している場合や、カタログではなくコードにテキストが追加されている場合に変更内容を反映します。
- Coroid以外でマージされた文字列を翻訳します。誰かが新しいテキストをCoroidなしでマージすると、そのテキストの翻訳タスクが作成されます。
- 毎晩修正内容を適用します。貢献者からの承認済みの提案は、毎晩1つのpull requestとして届きます。
- 招待された人に文言の提案をさせます。招待したネイティブ話者があなたのサイト上で翻訳を修正できます。詳細はこちらをご覧ください。 提案機能を使って翻訳を管理します。。
設定ファイルには直近の設定が保存されています。pull requestがマージされた後にオーナーまたは管理者がグローバリゼーション画面を開くと、Coroidが他の設定を有効にします。ただし、これは1回のみです。後から該当設定を無効にしても、その設定は引き続き無効のままです。
8. レビュー
プロジェクトの概要、タスクの内容、ソース言語、対象言語とその派生関係、翻訳量、そのまま使用する用語、フォーマッターや通貨、マージ後に有効になる機能などが記載されます。翻訳料金は他のエージェント作業と同様にモデル利用分として課金され、タスクごとに上限が設定されています。
選択してください国際化。 Coroid は仕様書と受け入れ基準を含むタスクを1つ作成し、すぐに実行を開始します。
タスクの内容
- 採用はウィザードが生成した通りに設定ファイルを書き込み、不足している文字列を翻訳します。
- 導入はフレームワークを接続し、選択したファイルのテキストをカタログに移動させ、言語ルーティング、フォールバック、右から左への表示を設定した上で翻訳を行います。
- 変更は新しい設定を書き込み、変更の影響を受ける翻訳を修正します。
タスクは1つの pull request で完了します。それがデフォルトブランチにマージされると、すべての言語がローカライゼーションに表示され、World readinessが依然として単一言語を前提としたコードを読み取るようになります。
フォーマット
Coroid が読み取るカタログのフォーマットは以下の通りです:
| フォーマット | 用途 |
|---|---|
| ICU JSON | ICUの複数形・選択文を含むメッセージファイル |
| i18next JSON | 複数形接尾辞を含むi18nextおよびreact-i18nextのカタログ |
| Vue i18n JSON | リンク付きメッセージやパイプ式複数形を含むvue-i18nのメッセージ |
| Rails YAML | config/locales/*.yml、%{name}補間処理および複数形キーを含む |
| gettext PO | .poファイルと.potテンプレートを含む、Plural-Forms言語ごとに |
| MarkdownおよびMDX | 言語フォルダー内のドキュメンテーションページ(docs/en/…):テキスト、画像説明、選択したフロントマター項目。コードとマークアップはそのまま保持されます。 |
| カスタム | リポジトリ内の小さなアダプターコマンドを通じて、その他のあらゆるフォーマットに対応します。 |
設定ファイル
ウィザードが書き込むのは.coroid/i18n.json。これはリポジトリの構造を記述するもので、リポジトリ内に保存され、プルリクエストを通じて変更されます:
{
"version": 1,
"cli": { "version": "1.16.0", "sha256": "…" },
"sourceLocale": "en",
"targetLocales": ["de", "fr", "ja", "ar"],
"derivedLocales": [
{ "locale": "en-GB", "from": "en", "rules": "en-gb-spelling" }
],
"catalogs": [
{
"id": "ui",
"format": "i18next-json",
"source": "messages/{locale}.json"
}
],
"protectedTerms": ["Storefront"],
"localeInstructions": {
"de": "Address the reader informally (du)."
},
"world": {
"formatter": "useFormatter from next-intl",
"currencies": { "de": "EUR", "fr": "EUR", "ja": "JPY", "ar": "SAR" }
}
}cliエンジンの正確なバージョンとチェックサムが指定されます。 Coroid は実行前に必ずそのバージョンをダウンロードして検証するため、更新によって予期せぬ出力の変化が生じることはありません。derivedLocalesルールによって生成される地域別バリアントを一覧表示します。protectedTermsとlocaleInstructionsには選択した内容が格納されます。 スタイルと用語、そしてworld選択した内容が格納されるのは文化。その グローバリゼーションチェックでは残りのworld。
このファイルには用語集、製品の背景情報、言語別翻訳ルート、コントリビューター向けの提案バインディングも含めることができます。
設定 → 設定ファイルワークベンチのではデフォルトブランチ上の該当ファイルを確認できます。ここで変更するには、提案を編集して変更を提案: Coroid がそのファイルを適用し、変更の影響を受ける翻訳を修正するタスクを開始します。言語やスタイルに関しては、ウィザードを利用する方が簡単です。