国際化ウィザードによりプロジェクトは多言語対応になります。リポジトリを読み取り、検出した内容に基づいて各ステップを開始し、最終的に1つのタスクとして1つのpull requestが作成されます。言語コードを入力したりJSONを編集したりする必要はありません。変更したい部分のみを指定すれば、マージするまでリポジトリには一切の変更が反映されません。
オーナーや管理者がウィザードを実行します。以下から起動してください:ローカライゼーション:選択してくださいプロジェクトを国際化する、またはウィザードを開始するプロジェクトの行で実行できます。すでに多言語対応のプロジェクトの場合は、設定 → 言語を変更と選ぶと、同じウィザードが開いて変更を提案します。
手順
1. スキャン
Coroidはコードを実行せずにデフォルトブランチを読み取ります。カタログやその言語、使用しているフレームワーク、コード内に直接記載されたテキストをファイルごとに特定します。
- カタログが見つかりました。ウィザードはこれらを保持します:Coroidがチェックを追加し、不足している部分を翻訳します。これを「採用」と呼びます。
- まだカタログがありません。Coroidがコード内のテキストをカタログに移行し、参照処理に置き換えます。これを「導入」と呼びます。
- すでに設定済みです。プロジェクトにはすでにCoroidの設定が存在し、ウィザードがその変更を提案します。
2. ソース言語
製品が開発された言語で、他のすべての言語はこの言語から翻訳されます。ウィザードはカタログから自動検出するか、コード内のテキストから推測します。どの言語もソース言語になり得ます。例えばスウェーデン語の製品を英語やドイツ語に翻訳する場合も同様の仕組みです。
3. 言語
言語を1つずつ選択するか、市場全体を一括で追加できます:話者数が最も多い言語、ヨーロッパ、北欧、東アジア、アメリカ大陸、または右から左へ書く言語。各言語には独自の名称、右から左へ書くかどうか、必要な複数形の数が表示されます。
地域別バリアントは翻訳ではなく派生させることができます。例えば英国英語は米国英語から英国式の綴りに派生し、スイスドイツ語はドイツ語からスイス式の綴りに派生するため、コストがかからず親言語と同期し続けます。
各ステップはリポジトリに既に存在する内容から開始されます。変更したい部分のみを調整でき、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. 品質と自動化
デフォルトで有効で、後から個別に変更可能です:
- 変更ごとに翻訳をチェックする品質管理の「翻訳」チェック機能が、文字列が欠落または破損している場合に変更を差し戻します。
- Coroid外でマージされた文字列を翻訳するCoroidを介さずに新しいテキストがマージされた場合、タスクがそれを翻訳します。
- 毎晩修正を適用する寄稿者からの承認済みの提案が毎晩1つのpull requestとして反映されます。
- 招待された人に表現の提案をさせる招待したネイティブスピーカーがサイト上で翻訳を修正できます。詳細は 提案機能で翻訳を管理する。
設定ファイルには最後に有効だった項目が保存されます。Coroidは、pull requestがマージされた後にオーナーや管理者がローカライゼーションを開いた際に、それらの項目を一度だけ有効にします。後で無効にしてもその設定は維持されます。
7. レビュー
プロジェクトの概要、タスクの内容、ソース言語、言語とその派生関係、翻訳量、そのまま維持される用語、マージ後に有効になる機能が示されます。翻訳にかかる費用は他のエージェント作業と同様にモデル利用料として請求され、タスクごとに上限が設定されます。
「国際化」を選択してください。Coroidが仕様と受け入れ基準を含む1つのタスクを作成し、すぐに開始します。
タスクの内容
- 採用ウィザードが作成した通りに設定ファイルを書き出し、不足している文字列を翻訳します。
- ご紹介しますフレームワークを接続し、選択したファイルのテキストをカタログに移行してから、言語ルーティングやフォールバック、右から左への表示に対応させ、その後で翻訳を行います。
- 変更内容新しい設定を書き出し、変更の影響を受ける翻訳を修復します。
このタスクはひとつのpull requestで完了します。それがデフォルトブランチにマージされると、すべての言語がローカライゼーションに表示されます。
フォーマット
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.9.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)."
}
}cliエンジンの正確なバージョンとチェックサムを指定します。Coroidは実行前に必ずそのバージョンをダウンロードして検証するため、更新によって予期せぬ出力の変化が生じることはありません。derivedLocalesルールに基づいて生成される地域別バリアントを一覧表示します。protectedTermsおよびlocaleInstructionsには、選択した内容が格納されます。 スタイルと用語。
このファイルには、用語集、製品の文脈、言語ごとの翻訳ルート、寄稿者向けの提案バインディングも記載できます。
設定 → 設定ファイルワークベンチでは、デフォルトブランチ上の該当ファイルを確認できます。そこで変更するには、提案を編集して変更を提案:Coroidは、そのファイルを適用し、変更の影響を受ける翻訳を修復するタスクを開始します。言語やスタイルの設定には、ウィザードを利用する方が簡単です。