機能プラグイン料金リソース
言語を変更
リソースWordPressでRTL言語(アラビア語、ヘブライ語、ペルシア語)を翻訳する方法

WordPressでRTL言語(アラビア語、ヘブライ語、ペルシア語)を翻訳する方法

SimplePoTranslate Team2026年3月20日
WordPressでRTL言語(アラビア語、ヘブライ語、ペルシア語)を翻訳する方法

WordPressテーマのアラビア語への翻訳が完了しました。.moファイルをアップロードし、サイトの言語を切り替えると、判読不能な結果になります。テキストが左にオーバーフローし、ボタンが重なり、注意深く設計されたレイアウトが紙シュレッダーにかけられたかのようです。

右から左(RTL)言語の世界へようこそ。ここでは、翻訳は戦いの半分に過ぎません。

アラビア語、ヘブライ語、ペルシア語(ペルシャ語)は、地球上で最も広く話されている言語の1つです。アラビア語だけでも4億人以上のネイティブスピーカーがいます。WordPressサイトがこれらのオーディエンスを無視している場合、大きな収益を逃していることになります。しかし、彼らにサービスを提供するには、英語をアラビア語に置き換えるだけでは不十分です。レイアウトの方向性全体を再考する必要があります。

このガイドでは、RTLがWordPressでどのように機能するか、CSSを修正する方法、RTL文字列を含む.poファイルを処理する方法、および最も一般的な落とし穴を回避する方法など、知っておくべきすべてのことを網羅しています。

WordPressでのRTLの仕組み

WordPressにはRTLサポートが組み込まれています。サイトの言語をアラビア語(ar)、ヘブライ語(he)、またはペルシア語(fa)に設定すると、WordPressは自動的にdir="rtl"<html>タグに追加し、テーマにrtl.cssスタイルシートが用意されている場合はそれを読み込みます。

これは理論上の話です。実際には、ほとんどのテーマには最小限または破損したRTLサポートしかありません。

実際に何が変わるのか

RTLモードが有効になると、ブラウザはページレイアウト全体をミラーリングします。

  • テキストは右から左に流れます。
  • サイドバーが左右入れ替わります。
  • ナビゲーションメニューの順序が逆になります。
  • パディングとマージンの値が反転します(左が右になります)。
  • 方向性を示すアイコン(矢印、シェブロン)をミラーリングする必要があります。

テーマのCSSがLTR用にのみ記述されている場合、margin-leftpadding-rightfloat: left、およびtext-align: leftのすべての宣言が、ブラウザのRTLエンジンと競合するようになります。

RTL用にCSSを修正する:実践的なガイド

最もクリーンなアプローチは、ドキュメントの書き込み方向に自動的に適応するCSS論理プロパティを使用することです。leftrightの代わりに、inline-startinline-endを使用します。

変更前:物理プロパティ(RTLで破損)

/* LTR-only CSS -- breaks in Arabic */
.sidebar {
  float: left;
  margin-right: 20px;
}

.nav-arrow {
  padding-left: 10px;
  text-align: left;
}

.card {
  border-left: 3px solid #0073aa;
}

変更後:論理プロパティ(両方向で動作)

/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
  float: inline-start;
  margin-inline-end: 20px;
}

.nav-arrow {
  padding-inline-start: 10px;
  text-align: start;
}

.card {
  border-inline-start: 3px solid #0073aa;
}

論理プロパティを使用すると、CSSを一度記述するだけで、オーバーライドなしで英語とアラビア語の両方で正しく動作します。

[dir="rtl"]オーバーライドメソッド

スタイルシート全体をリファクタリングできない場合は、属性セレクターを使用してRTLを特にターゲットにすることができます。

[dir="rtl"] .sidebar {
  float: right;
  margin-left: 20px;
  margin-right: 0;
}

[dir="rtl"] .nav-arrow {
  padding-left: 0;
  padding-right: 10px;
  text-align: right;
}

これは機能しますが、メンテナンスの負担が2倍になります。LTRスタイルを更新するたびに、RTLオーバーライドも更新する必要があります。

RTL文字列を含むPOファイルを翻訳する

翻訳自体も、レイアウトを超える課題をもたらします。RTL言語には、ほとんどの自動化ツールを混乱させる独自の特徴があります。

POファイルの双方向テキスト(Bidi)

実際の複雑さは、RTLテキストとLTRテキストが1つの文字列に混在する場合に発生します。この一般的なWordPressパターンを考えてみましょう。

msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"

%sプレースホルダーは、「WooCommerce」のような英語の製品名に置き換えられます。レンダリングされた出力では、ブラウザはアラビア語のテキストを右から左に表示し、次に英語の単語の場合は左から右に切り替え、次に潜在的に元に戻す必要があります。

これは双方向テキスト(または「bidi」)と呼ばれ、Unicode双方向アルゴリズムによって処理されます。ほとんどの場合、これは自動的に機能します。ただし、複数のプレースホルダーまたは数字がRTLテキストに隣接している場合、視覚的な順序が予測できなくなる可能性があります。

よくある翻訳の間違い

一般的な翻訳ツールは、RTL固有のいくつかのエラーを発生させます。

  1. プレースホルダーの順序が逆になる。 %1$s out of %2$sのような文字列は、AIがアラビア語の文法に合わせて順序を変更するため、プレースホルダーが入れ替えられる可能性があります。これにより、「Page out of 10」ではなく「10 out of Page」のような不正な出力が生成されます。翻訳中にコード変数を保護する方法の詳細をご覧ください。

  2. HTMLの方向性が壊れる。 文字列に<span dir="ltr">のようなインラインHTMLが含まれている場合、単純な翻訳者はdir属性を削除または翻訳する可能性があります。

  3. 複数形がない。 アラビア語には6つの複数形(ゼロ、1つ、2つ、少数、多数、その他)があります。これは、WordPressがサポートするどの言語よりも複雑な複数形システムです。2つの形式(英語の単数形/複数形など)しか生成しないツールは、アラビア語の.poファイルを破損したままにします。Gettext複数形の仕組みの詳細については、WordPressでの複雑な複数形の詳細に関するガイドをご覧ください。

以下は、正しく翻訳されたアラビア語の複数形文字列が.poファイルでどのように見えるかです。

# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"

これらの6つの形式のいずれかが空であるか、正しくない場合、WordPressはその特定のカウントに対して英語の文字列にフォールバックします。ユーザーには、完全にアラビア語のインターフェイス全体に「5 comments」が英語で散在して表示されます。

RTL実装のテスト

CSSの翻訳と修正だけでは十分ではありません。実際の結果をブラウザで確認する必要があります。

簡単なテストチェックリスト

  • WordPressの言語を切り替える:設定 > 一般でアラビア語に設定します。dir="rtl"を手動で追加するだけでなく、実際の言語設定を使用して、WordPressが独自のRTLオーバーライドを読み込むようにします。
  • ナビゲーションメニューを確認する。 ミラーリングされていますか?ドロップダウンは正しい方向に開きますか?
  • フォームフィールドを検査する。 入力テキストは右から左に流れる必要があります。プレースホルダーテキストは右揃えにする必要があります。
  • 混合方向のコンテンツを確認する。 アラビア語と英語の両方を含む文字列(ブランド名やURLなど)は、正しい視覚的な順序でレンダリングされる必要があります。
  • モバイルでテストする。 RTLレイアウトのバグは、配置エラーの余地が少ない小さな画面でより深刻になることがよくあります。

翻訳が表示されない場合、問題はRTLとは関係がない可能性があります。最初に.moファイルのコンパイルとファイルパスを確認してください。

ブラウザ開発者ツールのトリック

Chrome DevToolsでは、WordPressの設定を変更せずに、任意のページでRTLを一時的に強制できます。

/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
  direction: rtl;
}

これにより、翻訳を開始する前に、テーマがRTLをどのように処理するかを簡単にプレビューできます。

RTL翻訳を正しく自動化する

RTL言語の手動翻訳は費用がかかり、時間がかかります。プロのアラビア語翻訳者はプレミアム料金を請求し、言語とWordPress固有のGettext構文の両方を理解している人を見つけるのは困難です。

SimplePoTranslateは、RTL固有の課題をネイティブに理解するコンテキスト対応AIエンジンでこれを解決します。

  • 6つのアラビア語の複数形すべてが自動的に生成されます。当社のエンジンは、.poファイルのPlural-Formsヘッダーを読み取り、ターゲット言語に必要な数の形式を正確に生成します。空のmsgstrスロットも、英語のフォールバックもありません。
  • プレースホルダーの安全性。 %s%d%1$sのような変数は、翻訳中にロックされます。AIは、アラビア語の文法が異なる単語順を示唆する場合でも、それらを並べ替えたり、削除したり、破損させたりすることはできません。構文ロックがコードを保護する方法の詳細をご覧ください。
  • 双方向コンテキスト。 AIは、混合方向の文字列には特別な処理が必要であることを理解し、HTMLの方向性属性を保持します。

ヘブライ語のオーディエンス向けのブログテーマをローカライズする場合でも、完全なWooCommerceストアをペルシア語に翻訳する場合でも、プロセスは同じです。.poファイルをアップロードし、ターゲット言語を選択して、翻訳されたファイルをダウンロードします。ワークフロー全体に数日ではなく、数分しかかかりません。

WordPressローカライズプロセスの完全なチュートリアルについては、WordPressローカライズの究極のガイドをご覧ください。

RTLを後回しにするのをやめましょう

右から左への言語は、10億人以上の潜在的なユーザーを表しています。アラビア語は、世界で5番目に多く話されている言語です。ヘブライ語とペルシア語は、中東および中央アジアの重要な市場にサービスを提供しています。

WordPressサイトが、洗練されたネイティブな感覚のエクスペリエンスでこれらのユーザーにサービスを提供できない場合、彼らはできる競合他社を見つけるでしょう。

良いニュース:WordPressにはすでにインフラストラクチャがあります。テーマに必要なのは適切なCSSだけであり、.poファイルにはRTL言語の複雑さを尊重する翻訳ツールが必要です。

WordPressサイトをアラビア語、ヘブライ語、またはペルシア語に翻訳する準備はできましたか?SimplePoTranslate.comで無料で開始してください