メインコンテンツにスキップ
バージョン: 1.x

翻訳への貢献

WCPOSは現在10のロケールの翻訳を同梱しており、さらに多くの言語に対応する余地があります。翻訳の貢献を歓迎します。すべてを翻訳する必要はなく、開発者である必要もありません。このページでは、翻訳対象と翻訳方法について説明します。

翻訳が格納される4つの場所

WCPOSの翻訳可能な文字列は4つのリポジトリに分散しており、それぞれ独自の貢献フローがあります。どれか1つだけに貢献することも可能です。

WordPressプラグイン(PHP文字列)

管理者通知、設定ページのラベル、エラーメッセージ、WP管理画面のUI。**translate.wordpress.org**でGlotPressを使用して翻訳します(WordPress標準の翻訳フローです)。コーディングは不要です。

POSアプリ(React/i18next)

レジでスタッフが目にするすべての要素 — ボタン、ダイアログ、エラーメッセージ、カートや会計画面のUI。翻訳ファイルはwcpos/monorepoリポジトリにあり、プルリクエストで貢献できます。GitHubの基本的な操作に慣れていると便利です。

WP管理画面のReact画面

新しいReactベースの設定画面、店舗エディタ、テンプレート、拡張機能、ログページ。翻訳はJSONファイルとしてwcpos/woocommerce-pos(Pro画面はwoocommerce-pos-pro)に格納されています。GitHubの基本的な操作に慣れていると便利です。

このドキュメント(Docusaurus)

現在ご覧になっているこのドキュメントサイトです。翻訳済みの MDX ファイルは wcpos/docs リポジトリの i18n/<locale>/に配置されています。プルリクエストで貢献できます。Markdown の知識があると役立ちます。

WordPress プラグインの文字列(最も手軽に始められる方法)

WordPress プラグインの翻訳が初めての方には、最もスムーズに始められる方法です:

  1. translate.wordpress.org/projects/wp-plugins/woocommerce-pos/お使いの言語を探してください — WordPress がサポートするすべてのロケールにサブプロジェクトがあります。
  2. WordPress.org アカウント(サポートフォーラムへのコメントに使用するものと同じ)でサインインしてください。アカウントをお持ちでない場合は無料で作成できます。
  3. サブプロジェクトを選択してください — 通常、以下が表示されます:
    • Stable(最新リリース) — 現在の公開バージョンに含まれる文字列です。ここでの翻訳は、プラグインを更新したすべてのサイトに反映されます。
    • Development(trunk) — 次のリリースに含まれる文字列です。次バージョンのリリース前に翻訳を済ませておくことができます。
    • Stable Readme / Development Readme — WordPress.org に表示されるプラグインの説明文です。
  4. GlotPress の UI から文字列を1つずつ翻訳を送信してください。送信された翻訳はプロジェクト翻訳エディター(PTE)が承認するまで提案ステータスとなります。
  5. PTEになる — いくつかの翻訳が承認された後、WordPress polyglots Slackで申請してください。PTEはレビューを待たずに翻訳を直接承認できます。

翻訳が承認されると、そのロケールのすべてのWCPOSユーザーに自動的に配信されます。コード変更もPRも不要です。

POSアプリの翻訳(React UI)

レジ担当者向けUIは、翻訳にi18nextを使用するReactアプリで、v1.8.8で刷新されました。翻訳ファイルはwcpos/monorepoリポジトリ(クロスプラットフォームPOSコア)にJSONとして格納されています。

このセットアップには2つの便利な機能があります:

  • オンデマンド読み込み — アクティブなロケールのみが実行時に(jsDelivrのCDNから)取得されるため、言語を追加しても他のユーザーのダウンロードサイズが増加することはありません。
  • 地域フォールバック — i18nextのJSONファイル名にはアンダースコアが使用されます:pt_BRpt に、es_MXes にフォールバックします。ドキュメントやWebの言語タグにはハイフンが使用され、pt-BRes-MX のようになります。翻訳JSONファイルにはアンダースコア形式を、言語タグが必要な箇所にはハイフン形式を使用してください。

貢献するには:

  1. enソースファイルを見つけるwcpos/monorepo の翻訳パッケージディレクトリ内にあります(正確なパスは異なります。新しい翻訳を始めるには、リポジトリでIssueを作成し、コピーすべきファイルを確認するのが最も簡単です)。
  2. コピー en.json<your-locale>.json:i18nextのJSONロケール規則に従います(fr.jsonde.jsonpt_BR.jsonなど、地域別ファイル名にはアンダースコアを使用します)。
  3. 値を翻訳してください。キーおよび {{interpolation}} プレースホルダーはそのまま残してください。
  4. モノレポに対してプルリクエストを送信してください。CIがJSON構造を検証します。

既存の翻訳を軽微に修正する場合は、GitHub上で鉛筆アイコンからJSONファイルを直接編集できます — GitHubが自動的にPRを作成します。

WP Admin React画面

WordPress管理設定、店舗エディター、テンプレートページ、拡張機能カタログ、およびログは、すべてPOSアプリと同じ翻訳パターンを使用しますが、2つの別々のリポジトリに格納されています:

  • 無料版管理画面wcpos/woocommerce-pos リポジトリ、 packages/settings/src/translations/locales/<locale>/wp-admin-settings.json (他の管理パッケージにも同様のパスがあります。地域別JSONロケールには、 pt_BR のようなアンダースコアのロケールフォルダーを使用してください)。
  • Pro管理画面wcpos/woocommerce-pos-pro リポジトリにあり、同じパターンです(例: packages/store-edit/src/translations/locales/<locale>/wp-admin-store-edit.json、アンダースコア区切りのロケールフォルダは pt_BR)。

貢献の流れはPOSアプリと同じです: en.json<your-locale>.jsonにコピーし、翻訳してPRを作成します。

ドキュメント(このページ)

ドキュメントサイトではDocusaurusの標準i18nセットアップを使用しています。翻訳済みのMDXファイルはwcpos/docsリポジトリの i18n/<locale>/docusaurus-plugin-content-docs/current/以下に配置されています。 versioned_docs/version-1.x/ 内の各英語ページには、有効な翻訳ロケールごとに対応するページがあります。

サイトにはすでに自動翻訳ツールが用意されています。pnpm translateスクリプトがOpenAI / Anthropic APIを使用して英語から翻訳の下書きを作成し、人間のレビュアーが仕上げを行います。一般的な貢献の流れは以下のとおりです:

  1. 翻訳や改善が必要なページを選択してください。サイトフッターの言語セレクターで、有効な言語を確認できます。
  2. 以下のディレクトリにある対応する MDX ファイルを編集してください。 i18n/<locale>/... 各ページ下部のEdit this pageリンクから GitHub 上で直接編集できます。
  3. プルリクエストを送信してください。 レビュー担当者が翻訳の正確性を確認し、マージします。

大規模な貢献(セクション全体の翻訳や新しいロケールの追加など)の場合は、チームと調整するために先に Issue を作成してください。

WCPOS で使用されるロケールコード

WCPOS は現在、以下の 10 ロケールに対応しています。ドキュメントの表では地域ロケールにハイフン付きの言語タグを使用していますが、i18next の JSON ファイルでは同等のアンダースコア形式を使用してください(例:pt_BRpt-BRzh_CNzh-CN)。

コード言語
arアラビア語 (右から左)
deドイツ語
esスペイン語
frフランス語
hi-INヒンディー語(インド)
itイタリア語
ja日本語
ko韓国語
pt-BRポルトガル語(ブラジル)
zh-CN中国語(簡体字)

お使いの言語がリストにない場合は、翻訳を始めたいリポジトリで Issue を作成してください。ロケールの設定を行います。

翻訳者向けのヒント

  • プレースホルダーはそのまま維持してください。 文字列には多くの場合 {{variable}}%s%d、または <strong> タグ — 周囲のテキストは翻訳しますが、プレースホルダーはそのまま残してください。WCPOSは実行時にこれらのプレースホルダーに実際の値を挿入します。
  • 既存のトーンに合わせてください。 WCPOSのドキュメントとUIは、意図的に実用的で簡潔なスタイルです。英語で*「Add Coupon」*と表記されている場合、翻訳はそのロケールで同様のボタンに使用される動詞形にしてください — 名詞形ではありません。
  • 可能であれば実際の画面で確認してください。 WordPressサイトを対象のロケールに設定し、プラグインをインストールして、実際のUIで文字列が正しく表示されるか確認してください。コンテキストが重要です — ある画面では収まる文字列でも、別の画面では不自然に折り返されることがあります。
  • コード、URL、技術的なIDは翻訳しないでください。 クーポンコード、ゲートウェイID、ロケールコード、ファイルパス、ショートコードは英語のままにしてください。判断に迷う場合は、翻訳せずにそのまま残してください — システムが依存するものを壊すよりも安全です。
  • 右から左(RTL)の言語 — アラビア語、ヘブライ語、ペルシア語、ウルドゥー語 — では、レシートテンプレートもRTL対応に設定する必要があります。WCPOSにはRTLレシートテンプレートがバンドルされています。ギャラリーについてはレシートのカスタマイズを参照してください。

ヘルプの問い合わせ先

  • WordPress.org polyglots Slack — GlotPress関連の質問向け
  • WCPOS Discord — WCPOS固有の翻訳に関する議論向け(招待リンク
  • GitHubイシュー — リポジトリ固有の質問は、該当するリポジトリ(woocommerce-poswoocommerce-pos-promonorepo、またはdocs)に提出してください