翻訳への貢献
WCPOSの翻訳はAIが担当しており、慎重にチューニングされたルールセットに従って生成されます。そして、皆さんのような方々の手でより良くなっていきます。文字列が変更されると、すぐに対応するすべての言語で完全かつ一貫性のある初期翻訳が生成されます。人間は、機械が見落とすニュアンス、文脈、地域の慣習を補います。アプリ全体を翻訳する必要はなく、開発者でなくても貢献できます。このページでは、翻訳の仕組みと変更を提案する方法を説明します。
WCPOSの翻訳の仕組み
翻訳対象のすべての文字列 — レジ担当者向けアプリ、デスクトップアプリ、WordPress管理画面、プラグインのPHP文字列、およびこのドキュメント — は、1つの自動パイプラインを通じて処理されます:
- ソース文字列はアプリ、プラグイン、ドキュメントから自動的に抽出され、中央の
wcpos/translationsリポジトリに集約されます(ドキュメントについてはwcpos/docsリポジトリも使用されます)。 - AIがすべての対応ロケールに翻訳します。プレースホルダー、コード、ブランド名、メニューパスを保持しながら、表示テキストをローカライズする厳密なルールセットに従います。
- 毎日の完全性チェックにより、未翻訳や古くなった文字列がスキャンされ、自動的に翻訳キューに追加されます。これにより、新規および変更された文字列が未翻訳のまま放置されることはありません。
- すべての翻訳バッチは、リリース前にプルリクエストとして人間のレビューに提出されます。承認された翻訳は自動的にリリースおよび配信されます — アプリにはCDN経由で、プラグインには組み込みの翻訳アップデーターを通じて届けられます。
プロセス全体が自動化されているため、コントリビューターとして空のファイルから翻訳を始めることはほとんどありません。主な役割は、既存の翻訳を改善することです。不自然な表現、ロケールのWooCommerceで使われている用語と一致すべき用語、文脈にそぐわないラベルを見つけたら、修正を提案してください。その修正はすべてのユーザーに届けられます。
WCPOS はかつて WordPress の翻訳サイト(GlotPress)を利用してプラグインの文字列を管理していました。現在は GlotPress の利用を完全に終了しています。 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>プレースホルダーはそのまま残してください。 - プルリクエストを開きます。 1行の修正であれば、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)の両方が含まれます。ドキュメントおよびWeb言語タグではハイフン形式(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に報告してください。