ドキュメント

ローカライゼーション・ワークベンチ

各プロジェクトの言語対応状況を確認し、作業が必要な文字列を見つけて、不足している部分を翻訳し、それを単一のpull requestとしてコミットします。

Coroidは、自社製品の13言語向け翻訳に使用するのと同じエンジンで貴社の製品を翻訳します。カタログはリポジトリ内のファイルのままです。これらのファイルへの変更はすべてタスクおよびpull requestとして通知され、新規、変更済み、または破損した文字列のみがモデルに送信されます。

ローカライゼーションはその第二の工程です。グローバリゼーションメインメニューにある「プロジェクト」を開くと、ワークベンチが表示されます。左側に各セクションがあり、その隣に開いているセクションが並びます。まだ多言語対応していないプロジェクトは、最初に「国際化ウィザード」から開始します。国際化ウィザード。

ワークベンチ

セクションその用途
概要各言語の対応状況と、不足している部分を翻訳するための単一の操作
文字列各言語におけるすべての文字列で、作業が必要なものだけがフィルタリングされます。
提案貢献者からの修正案で、承認を待っています。
交換代理店や翻訳ツール、スプレッドシート用のファイルと、それらの翻訳結果
貢献者誰が文言を提案でき、どの言語で可能か
自動化処理Coroid外でマージされた文字列の翻訳と、毎晩適用される修正内容
設定言語、グローバリゼーションチェック、アクセス権限と利用料、および設定ファイル

提案、貢献者、自動化処理については以下で詳述します。提案機能を使って翻訳を維持するこれらのセクションの上、国際化の下にあるサイドバーには世界対応性と文化。

ワークベンチはデフォルトブランチ上のカタログを読み取ります。カタログが変更されると、次にプロジェクトを開いた際にCoroidが再読み込みします。それまでの間は、概要に「読み込み中」と表示されます。Coroidはこの処理のためにリポジトリ内のコードを実行することはありません。カスタムアダプターを使用するカタログは表示されませんが、その文字列は引き続きタスクとしてチェックされます。

概要:言語ごとに1行ずつ

概要には最初に4つの合計値が表示されます:文字列数、言語数、翻訳済み割合、作業が必要な文字列数です。その下には、各言語が3つのステージを経て進む様子が1行で示されます。

  1. 国際化該当言語のカタログが存在し、文字列が格納されています。
  2. ローカライゼーションすべての文字列が現在のソーステキストから翻訳されます。
  3. 検証いずれの文字列も破損しておらず、すべてが正しくパースされ、ソースのプレースホルダーが保持され、該当言語に必要な複数形も含まれています。

言語の次のステージは、その行が止まっている位置で決まります。緑色の停止マークは完了、水色のリングは作業が必要な停止点、琥珀色のマークは破損した文字列があることを示します。

ローカライゼーション
ストアフロント
英語ソース · 5言語 · 確認済み 2 時間前 で 3f2c9a1
  • ワールド・レディネス
  • カルチャー
  • 概要
  • 文字列
  • 提案
  • 交換
  • 貢献者
  • 自動化
  • 設定
概要

各言語は3つのステージを経て処理されます。次のステップは、処理が停止した箇所から続行されます。

翻訳する 135 文字列
文字列1,240に3カタログ
言語4プラス 1派生
翻訳済み97.2%1,020人がレビュー
修正が必要135複数の3言語にわたって
  1. English英語 · en · ソース

    1,240文字列に含まれる3カタログ

  2. Deutschドイツ語 · de
    100%
    完了
    合格
  3. Françaisフランス語 · fr
    98%
    18 文字列が見つかっていません
    合格
  4. 日本語ja
    96.3%
    42 文字列が見つかっていません
    3 破損した文字列たち
  5. العربيةアラビア語 · ar
    94.6%
    64 文字列が見つかっていません
    合格
  6. British Englishイギリス英語 · en-GB · 英語から派生
    100%
    派生済みで最新
    合格

ワークベンチの概要:各言語が国際化、ローカライゼーション、検証の各段階を経て表示され、それを妨げるギャップが示されます。参考用のデータです。

「ローカライゼーション」の下にあるバーローカライゼーションバーは先頭から読み取られます:人がレビューした文字列は濃緑色、モデルが作成した文字列は薄緑色、注意が必要な文字列は琥珀色、不足している文字列の部分は空白です。バーの下のテキストには「42文字列が不足」といったギャップが記載され、該当する文字列が開かれます。42文字列が不足そして、その文字列が正確に開かれます。

米国英語から英国英語など、別の言語からルールに基づいて派生した言語には、「Derived and up to date」と表示されます。Derived and up to dateルールがすべての文字列に適用された場合に表示されます。

不足している部分を翻訳する

オーナーと管理者には概要の上部に単一の操作が表示されます。翻訳作業が必要な文字列数(不足、ソースで変更された、または破損したもの)が併記されています。これらの文字列はワークベンチで2回に分けて翻訳されます。

  1. 翻訳メモリ貴社の別のプロジェクトで既に同じソーステキストで翻訳された文字列は、その翻訳が再利用されます。人の翻訳がモデルの翻訳より優先されます。これによりモデルへの呼び出しが不要で、コストもかかりません。
  2. 翻訳モデル残りの文字列は、リポジトリに格納されているエンジンが翻訳ゲートウェイを通じて翻訳し、返答内容をプレースホルダーや複数形と照合してチェックします。

実行中は、合計値の下のパネルに書き込まれた文字列数と消費されたリソース量が表示され、各言語のバーには文字列が届くにつれて縞模様のインクが塗りつぶされていきます。翻訳を停止これにより実行が終了し、書き込まれた内容は保持されます。

ローカライゼーション
ストアフロント
英語ソース · 5言語 · 確認済み 2 時間前 で 3f2c9a1
  • ワールド・レディネス
  • カルチャー
  • 概要
  • 文字列
  • 提案
  • 交換
  • 貢献者
  • 自動化
  • 設定
概要

各言語は3つのステージを経て処理されます。次のステップは、処理が停止した箇所から続行されます。

翻訳を停止
機械翻訳が実行中です

これまでに書き込まれた文字列数: 71 / 133

翻訳メモリから無料で再利用:26 · $0.04を消費しました。$5.00の上限に達しています。

  1. Deutschドイツ語 · de
    完了
  2. Françaisフランス語 · fr
    翻訳がコミット可能な状態:24
  3. 日本語ja
    翻訳中: 28 / 45 件がすでに翻訳済み
  4. العربيةアラビア語 · ar
    翻訳中: 19 / 64 件がすでに翻訳済み

機械翻訳が実行中の概要:プレスが作動し、各言語のテキストがストライプ状のインクで描かれながら届き、翻訳メモリが他のプロジェクトで既に使用された表現を提示します。これはあくまで例示的なデータです。

翻訳結果はすぐにリポジトリに反映されるわけではありません。以下で待機します。コミット他の変更内容と共に、機械翻訳としてマークされ、『文字列』で確認できるようになります。文字列すでに誰かが編集した文字列や、貢献者が提案した文字列は、その人に任されます。

文字列

文字列『文字列』には、各言語におけるソーステキストとその値がすべて一覧表示されます。このページは「作業が必要」から開かれます。作業が必要:不足している文字列、ソースが変更されたもの、破損しているもの、またはソースと同一のものです。別の言語やカタログを選択するか、キーやテキストを検索してください。

ステータス意味
不足その文字列には翻訳がありません
ソースが変更されました文字列が翻訳された後にソーステキストが変更されました
破損解析できない、プレースホルダーがソースと異なる、または複数形の形式が言語に合っていません
ソースと同一ソーステキストと完全に一致します
機械生成モデルが作成し、人によるレビューが行われていません
レビュー済み人が作成または修正しました
派生別の言語からルールによって生成されました

文字列を選択すると、すべての言語での表示を確認できます。プレースホルダーやマークアップはロックされたチップとして表示され、翻訳中に正確に維持される必要があります。選択した言語の詳細では、値を作成した人物、問題点、複数形メッセージでその言語が必要とする複数形の形式も確認できます。

ローカライゼーション
ストアフロント
英語ソース · 5言語 · 確認済み 2 時間前 で 3f2c9a1
  • ワールド・レディネス
  • カルチャー
  • 概要
  • 文字列
  • 提案
  • 交換
  • 貢献者
  • 自動化
  • 設定
文字列

あらゆる言語におけるすべての文字列です。フィルターを使えば重要な作業から優先的に処理できます。

日本語すべてのカタログキーとテキストを検索…
未対応45未記載42ソースが変更されました0不備があります3ソースと同じ内容です0機械翻訳1,035確認済み160すべて1,240
ソース日本語
Total: {amount}合計: {price}不備があります
Your cart is emptyまだ翻訳されていません未記載
Welcome back, {name}まだ翻訳されていません未記載
Prices include <b>VAT</b>価格には<b>消費税</b>が含まれます不備があります
Weekly dealsまだ翻訳されていません未記載
checkout.total
カタログ ui · label
ソース · 英語
Total: {amount}
  1. 日本語 · 日本語不備があります
    合計: {price}

    モデルが作成した内容 · プレースホルダーがソースと異なります

  2. Deutsch確認済み
    Gesamt: {amount}
  3. Français機械翻訳
    Total : {amount}
  4. العربية機械翻訳
    الإجمالي: {amount}
  5. British English派生翻訳
    Total: {amount}

ワークベンチ内の文字列:日本語で未対応の文字列のみをフィルタリングした結果、開いている文字列にはロックされたチップ状のプレースホルダーと各言語の値が表示されます。参考用のデータです。

編集してコミット

オーナーおよび管理者は、で翻訳を修正します文字列。文字列を選択し、編集で言語ごとに編集し、変更内容を保存します。エディターではソースのプレースホルダーが挿入可能なチップとして表示され、入力中に変更内容がチェックされます。プレースホルダー、言語が必要とする複数形の形式、用語集に登録された用語、文字数などが確認できます。保存時にはCoroidがデフォルトブランチと照らし合わせて再度チェックします。

提案エディターでその文字列の翻訳を提案します。他のプロジェクトで使用されている場合は翻訳メモリから、そうでなければ翻訳モデルから取得します。これを使用をクリックしてエディターに挿入します。変更内容を保存するまで何も保存されません。

保存された変更内容は文字列の下のバーに表示され、それぞれをレビューまたは破棄できます。コミットにより、承認済みの貢献者からの提案や機械翻訳を含むすべての変更内容が1つのタスクにまとめられます。そのタスクでは指定されたエンジンを使って正確にそれらの値が適用され、1つのpull requestが開かれます。1回のコミットで最大5,000件の変更が処理され、残りは次回の処理を待ちます。そのpull requestがマージされるまで、文字列には未コミットまたは適用中。

コミットされた機械翻訳はエンジンのキャッシュ内で引き続き機械翻訳として保持されるため、依然として機械生成と表示されますが、人がレビューするまで変わりません。

編集機能を利用するには設定ファイルで貢献機能を有効にする必要があります。国際化ウィザードによりデフォルトで有効になります。貢献者もより良い表現を提案できます自分のサイトで利用できます。

ファイルの交換

「交換」の下で、代理店や翻訳ツール、スプレッドシート用の文字列をダウンロードし、翻訳結果をインポートできます。

フォーマットファイルごとの言語数用途
XLIFF 1.2および2.01種類翻訳ツールや代理店向け。プレースホルダーはロックされたタグとして渡されます
Gettext PO1種類Poedit、Weblateなどのgettextツール向け
CSVおよびExcelすべての言語スプレッドシート向け。すべての言語が横並びで表示されます
JSON1種類キーと翻訳
Apple String Catalogすべての言語Xcode
Apple .strings1種類Xcodeプロジェクト向け
Android strings.xml1種類Android Studio
Flutter ARB1種類Flutter

エクスポートでは作業が必要な文字列またはすべての文字列が抽出されます。プレースホルダーや複数形メッセージは記述通りに正確に渡されます。

インポートでは、何も保存される前にすべての行が表示されます。新しい翻訳や変更内容を承認できます。Coroidは、プロジェクトに存在しないキー、ソースが変更された後に作成された翻訳、破損したプレースホルダー、言語が必要とする複数形の形式が欠けている複数形メッセージを除外します。承認された行は、コミットされる変更内容となり、文字列。

JSON、.strings、Androidファイルには含まれる言語が記載されていません。Coroidはファイル名から言語を判断します。例えばstorefront-de.json、または確認を求めます。

すべての変更を確認

このグローバリゼーションチェックタスクのQAおよびプルリクエストで実行されます。変更が対象とする各言語の文字列と、変更によって追加されるコードをチェックします。概要画面では、直近のチェック結果を表示の下に検証最新の実行結果が開きます。翻訳の不一致がタスクをブロックする場合、開発者エージェントがそのタスク専用の翻訳セッションを通じて修正を実施し、他の言語のカタログを手動で編集することはありません。

翻訳モデル

翻訳機能はAIプロファイル内で独自の役割を持ち、翻訳者として、アーキテクト、開発者、QA、レビュアーの隣に配置されます。デフォルトでは翻訳モデルであるHy-MT2を使用し、組織のポリシーで許可されている場合はGPT-6 Lunaをフォールバックとして利用します。このマッピングは他の役割と同様にAIプロファイルで変更可能です。

エンジンは文字列をサイズ別にバッチ処理し、すべての返答をプレースホルダーや複数形ルールに基づいて検証し、失敗した文字列に対しては再試行またはエスカレーションを行います。

費用

翻訳機能はすべてのプランで利用可能です。翻訳リクエストはCoroidの翻訳ゲートウェイを経由し、エージェントの実行と同様に組織へのモデル利用料として課金されます。翻訳タスクも他のタスクと同様にプランのエージェント利用時間にカウントされます。

デフォルトの翻訳者ルートを使用した場合、翻訳費用は1言語あたり1,000文字につき約2セントです。2,000文字のカタログを10言語に翻訳する場合の費用は、測定結果では約0.33ドルでした。

  • 変更された内容のみに費用が発生します。エンジンはソーステキストをキーにしたキャッシュを保持するため、変更されていない文字列は再度送信されません。
  • 各タスクおよび各実行には翻訳制限が設けられています。タスクのセッションは支出上限に達すると停止し、デフォルトでは1ドルです。翻訳ワークベンチでの実行は5ドルで停止します。プロジェクトでは「設定→アクセスと支出」でより低い上限を設定できます。設定→アクセスと支出。
  • 翻訳メモリの利用には費用がかかりません。組織が既に他で翻訳した文字列は、モデル呼び出しなしで再利用されます。
  • 参照時の費用は無料です。ワークベンチおよびグローバリゼーションチェックはカタログを読み取るだけで、モデル呼び出しは行いません。

Coroid外での翻訳

エンジンはコマンドラインツールであり、coroid-i18n。自社のCI環境で同じ固定バージョンを独自のOpenRouterキーと共に実行可能です。Coroid内ではタスクが常に翻訳ゲートウェイを利用するため、支出と制限が一元管理されます。