翻訳への貢献
WCPOSの翻訳は、慎重にチューニングされたルールセットに基づくAIによって行われ、皆さんのようなユーザーの手でさらに改善されています。文字列が変更されると、機械が対応するすべての言語で一貫性のある初回翻訳をすばやく生成し、機械では対応しきれないニュアンスや文脈、地域の慣習は人間が補います。アプリ全体を翻訳する必要はなく、開発者でなくても貢献できます。このページでは、翻訳の仕組みと変更を提案する方法を説明します。
WCPOSの翻訳の仕組み
翻訳対象のすべての文字列 — レジ担当者向けアプリ、デスクトップアプリ、WordPress管理画面、プラグインのPHP文字列、およびこのドキュメント — は、1つの自動化パイプラインを通じて処理されます:
- ソース文字列はアプリ、プラグイン、ドキュメントから自動的に抽出され、中央の
wcpos/translationsリポジトリに集約されます(ドキュメントについてはwcpos/docsリポジトリ)。 - AIがすべての対応ロケールに翻訳します。プレースホルダー、コード、ブランド名、メニューパスを保持しながら、表示テキストをローカライズする厳格なルールセットに従います。
- 毎日の完全性チェックにより、欠落または古くなった文字列がスキャンされ、自動的に翻訳キューに追加されるため、新規および変更された文字列が未翻訳のまま放置されることはありません。
- すべてのバッチはリリース前にプルリクエストとして人間のレビューに送られます。承認された翻訳は自動的にリリースおよび配信されます — アプリにはCDN経由で、プラグインには組み込みの翻訳アップデーターを通じて届けられます。
全体のプロセスが自動化されているため、コントリビューターの役割は空のファイルから翻訳することではなく、すでにある翻訳を改善することです。不自然な表現、ロケールのWooCommerceで使用されている用語と一致すべき用語、文脈に合わないラベルを見つけたら、修正を提案してください。その修正はすべてのユーザーに届きます。
WCPOS はこれまで WordPress の翻訳サイト(GlotPress)を利用してプラグインの文字列を翻訳していました。**現在は完全に移行済みです。**旧来のワークフローは遅く時代遅れで、何より機械翻訳が許可されていなかったため、ほとんどの言語の翻訳が完了することはありませんでした。チューニング済みの AI パイプラインにより、はるかに多くの言語をカバーし、自動的に同期を維持しながら、実用上より優れた翻訳を生成しています。以前 GlotPress で WCPOS の翻訳にご協力いただいた方には感謝しますが、現在の貢献先はそちらではありません。
貢献先
改善したい内容に応じて、貢献先は 2 つあります:
アプリとプラグイン
POS アプリ、デスクトップアプリ、WordPress 管理画面、プラグイン本体の JavaScript UI 文字列と PHP 文字列すべてが対象です。これらはすべて 1 つのリポジトリにまとめられています:wcpos/translations。GitHub の基本的な知識があると役立ちます。
このドキュメント
今ご覧になっているこのドキュメントサイトです。翻訳済みの MDX ファイルは wcpos/docs リポジトリの i18n/<locale>/にあります。Markdown の知識があると役立ちます。
アプリとプラグインの翻訳を改善する
アプリとプラグインの翻訳はすべて wcpos/translations リポジトリにあります。構成は以下のとおりです:
source/— アプリとプラグインから抽出された英語の原文文字列です。編集しないでください — これらはアプリとプラグインから自動生成されます。translations/js/<locale>/<project>/<namespace>.json— 翻訳済みの UI 文字列です。アプリや管理画面の翻訳を修正するにはこちらを編集します。translations/php/<locale>/— 翻訳済みのプラグイン文字列です。編集するのは.poファイルのみです。隣にある.moと.l10n.phpファイルは自動生成されるため、そのままにしてください。
JavaScript の文字列は 4 つの <project> フォルダに分かれています:
| プロジェクト | 対象範囲 |
|---|---|
monorepo | レジ担当者が使用するPOSアプリ — ボタン、カート、チェックアウト、ダイアログ、エラー。 |
electron | デスクトップ(Windows/macOS)アプリのシェル。 |
woocommerce-pos | 無料プラグインのWP Admin React画面 — 設定、テンプレート、ログなど。 |
woocommerce-pos-pro | ProプラグインのWP Admin React画面 — 店舗エディター、Pro設定。 |
修正を提案するには:
- ロケールとプロジェクトに対応するファイル内で文字列を探します。例えば、ドイツ語のアプリ文字列の場合は
translations/js/de_DE/monorepo/core.json、ドイツ語のプラグイン文字列の場合はtranslations/php/de_DE/woocommerce-pos-de_DE.poです。 - 翻訳値を編集します。 JSONキー、PHP
msgid、および{{interpolation}}、%s、%d、または<tag>プレースホルダーはそのまま残してください。 - プルリクエストを作成します。 一行の修正であれば、GitHub の鉛筆アイコンを使うだけで PR が自動的に作成されます。レビュアーが変更を確認し、マージします。
お使いの言語がまだ存在しない場合は、新しい言語の追加を参照してください。
このドキュメントの改善
このドキュメントサイトでは Docusaurus の標準的な i18n セットアップを使用しています。英語の原文は versioned_docs/にあり、AI による翻訳コピーは wcpos/docs の i18n/<locale>/docusaurus-plugin-content-docs/に格納されています。各英語ページには、すべての有効なロケールに対応するファイルがあります。
修正を提案するには:
- お使いの言語でページを開き、ページ下部のこのページを編集をクリックします。GitHub 上の翻訳済み MDX ファイルに直接移動できます。
- 翻訳を編集します。 Markdown/MDX の構文、リンク、コードスパン、フロントマターのキーはそのままにして、文章、見出し、表示ラベルを翻訳してください。
- プルリクエストを作成します。 翻訳を「修正」するために
versioned_docs/以下の英語ソースを編集しないでください。編集するのはi18n/<locale>/.
セクション全体の翻訳や新しいロケールの開始など、大規模な貢献の場合は、まず Issue を作成して調整しましょう。
新しい言語の追加
アプリとプラグインには50以上のロケールの翻訳がすでに含まれています(完全なリストは locales.json を参照)。ドキュメントは以下に示すより少ないセットで提供されています。お使いの言語がない場合、または一部しかカバーされていない場合は、該当リポジトリで Issue を作成してください。ロケールの設定を行います。AI パイプラインにより新しい言語を迅速に追加できます。その後はコミュニティによる改善が必要です。
ロケールコード
このドキュメントは現在、以下の言語で公開されています:
| コード | 言語 |
|---|---|
ar | アラビア語 (右から左) |
de | ドイツ語 |
es | スペイン語 |
fr | フランス語 |
hi-IN | ヒンディー語(インド) |
it | イタリア語 |
ja | 日本語 |
ko | 韓国語 |
nl | オランダ語 |
pt-BR | ポルトガル語(ブラジル) |
zh-CN | 中国語(簡体字) |
ロケールコード形式に関する注意事項: アプリおよびプラグイン(wcpos/translations)では、フォルダ名やファイル名にアンダースコア形式(de_DE、pt_BR、zh_CN)を使用し、基本言語(de、fr、es)と地域バリアント(de_AT、fr_CA、es_MX)の両方が含まれます。ドキュメントおよびウェブの言語タグではハイフン形式(pt-BR、hi-IN、zh-CN)を使用します。編集するリポジトリに合わせた形式を使用してください。
翻訳者向けのヒント
以下はAIパイプラインが従うルールと同じ内容であり、レビュアーが確認するポイントでもあります:
- プレースホルダーをそのまま維持してください。 文字列には多くの場合
{{variable}}、%s、%d、または<strong>タグ — 周囲のテキストは翻訳しますが、プレースホルダーはそのまま残してください。WCPOS は実行時にこれらのプレースホルダーに実際の値を挿入します。 - ブランド名・製品名は正確に保持してください。
WCPOS、WCPOS Pro、WooCommerce、WordPress、Stripe、Stripe Terminal、SumUpはそのまま使用します。ユーザー向けテキストでは WCPOS を使用してください。"WooCommerce POS" はスラッグや URL などの技術的な識別子でのみ使用します。 - 表示される UI ラベルはローカライズしてください。 メニューラベル、設定ラベル、ボタンテキストは、お使いの言語で自然に読めるようにしてください。WordPress および WooCommerce のお使いのロケールで使用されている表記に合わせます(例:
WP Admin > 設定 > 支払いのパンくずリストには、お使いのロケールの WordPress メニュー名を使用してください)。 - 既存のトーンに合わせてください。 WCPOS のドキュメントと UI は実用的かつ簡潔で、丁寧語・中立的な文体を使用しています。英語で "Add Coupon" と書かれている場合は、お使いのロケールで同様のボタンに使われる動詞形を使用してください。直訳の名詞形は避けてください。
- コード、URL、技術的な ID は翻訳しないでください。 クーポンコード、ゲートウェイ ID、ロケールコード、ファイルパス、ショートコードは英語のままにします。判断に迷う場合は、翻訳せずにそのまま残してください。システムが依存する文字列を壊すよりも安全です。
- 可能であれば実際の画面で確認してください。 サイトまたはアプリをお使いのロケールに設定し、実際の画面で文字列を確認します。ある画面では収まる文言でも、別の画面では不自然に折り返されることがあります。
- 右横書き(RTL)言語(アラビア語、ヘブライ語、ペルシア語、ウルドゥー語)では、レシートテンプレートにも RTL フラグを設定する必要があります。WCPOS には RTL 対応のレシートテンプレートが同梱されています。詳しくはレシートのカスタマイズのギャラリーを参照してください。
サポートの問い合わせ先
- WCPOS Discord — 翻訳に関する議論や質問はこちら(招待リンク)。
- GitHub Issues — アプリやプラグインについては
wcpos/translations、ドキュメントについてはwcpos/docsに報告してください。