リソースWordPressで翻訳が表示されない理由(トラブルシューティングガイド)

WordPressで翻訳が表示されない理由(トラブルシューティングガイド)

SimplePoTranslateチーム2025年12月5日

WordPress開発において、「サイレント障害」ほどイライラすることはありません。

あなたはすべてを正しく行いました。.poファイルを翻訳しました。それを.moファイルにコンパイルしました。FTP経由でサーバーにアップロードしました。キャッシュをクリアしました。

ページを更新して、スペイン語、フランス語、またはドイツ語が表示されることを期待します。 代わりに、表示されるのは...英語です。

エラーメッセージも、白い画面もありません—ただ頑固で翻訳されていないテキストだけです。髪を引き抜く前に、このガイドを読んでください。WordPressで翻訳が読み込まれない最も一般的な5つの理由と、その修正方法は次のとおりです。

1. ファイル名の付け方が間違っています

WordPressはファイル名に関して信じられないほど厳格です。1文字でも間違えると、ファイルは読み込まれません。

標準形式は次のとおりです:{text-domain}-{locale}.mo

  • テキストドメイン(Text Domain): テーマまたはプラグインの一意のIDです(例:woocommercetwentytwentyfourmy-custom-plugin)。
  • ロケール(Locale): WPロケールコード(例:スペインのスペイン語の場合はes_ES、フランス語の場合はfr_FR)。

よくある間違い:

  • ファイルにes_ES.moという名前を付けるだけ(これはグローバルなWordPressコアファイルでのみ機能し、プラグインでは機能しません)。
  • 間違ったダッシュを使用する:my-plugin-es_ES.mo(ハイフン)ではなくmy_plugin_es_ES.mo(アンダースコア)。
  • テキストドメインを推測する。正確なスラッグを見つけるには、プラグインのコード(style.cssヘッダーまたはload_plugin_textdomain関数)を確認する必要があります。

2. ファイルを間違ったフォルダに入れました

ファイルをアップロードする場所は、ファイルへの名前の付け方と同じくらい重要です。WordPressは特定の順序で特定のディレクトリを探します。

  • 「安全な」システムフォルダ: /wp-content/languages/plugins/または/wp-content/languages/themes/
    • 長所: プラグインの更新から安全です。
    • 短所: ファイルにtextdomain-locale.moという名前を付ける必要があります。
  • 作成者フォルダ: /wp-content/plugins/plugin-name/languages/
    • 長所: 見つけやすい。
    • 短所: 危険。 プラグインを更新すると、このフォルダは完全に消去されます。翻訳は消えます。

ベストプラクティス: 更新中のデータ損失を防ぐために、カスタム.moファイルを常にグローバル/wp-content/languages/ディレクトリに配置してください。

3. 「サイレントキラー」:.poファイルの構文破損

これはデバッグが最も難しい問題であり、一般的なAI翻訳ツールで頻繁に発生します。

WordPressは、.poテキストファイルからコンパイルされたバイナリ.moファイルを読み取ります。.poファイルに構文エラーがある場合、.moファイルは生成される可能性がありますが、内部的に「壊れて」います。

これはどのように起こりますか? 翻訳者(人間またはAI)がGettextのフォーマットを台無しにすると、文字列は無効になります。

  • 例: 閉じ引用符"がありません。
  • 例: 変数を壊す(%s% sに変更する)。
  • 例: msgid_pluralカウントを台無しにする。

WordPressが.moファイルで壊れたエントリに遭遇すると、多くの場合、それをスキップするか、ファイルの読み取りを完全に停止し、元の英語に戻ります。

4. コンパイルするのを忘れました(.po vs .mo)

WordPressは.poファイルを直接読み取ることはできません。これはよくある誤解です。

  • .po = 人間が読める(Portable Object)。
  • .mo = 機械が読める(Machine Object)。

my-theme-es_ES.poファイルをアップロードしたが、一致する.moファイルを生成するのを忘れた場合、何も起こりません。コンパイルする必要があります。

5. キャッシュ(いつもの容疑者)

キャッシュプラグイン(WP Rocket、LiteSpeed)またはサーバー側キャッシュ(Varnish、Redis)を使用している場合、サイトは翻訳をアップロードするのキャッシュされたHTMLバージョンを提供している可能性があります。

修正: ブラウザのキャッシュやオブジェクトキャッシュを含むすべてのキャッシュをクリアします。

究極の修正:最初から有効なファイル

ファイルパスと名前のトラブルシューティングは簡単です。破損した構文(理由#3)のトラブルシューティングは悪夢です。

コード変数を壊したり、Gettext構造を破損したりするツールを使用すると、ファイル自体が「汚染されている」ことに気付かずに、ファイルが機能しない理由を何時間も考え続けることになります。

これが私たちがSimplePoTranslateを構築した理由です。

  • 構文ロック: ダウンロードする前に、すべての単一の文字列が構文的に有効であることを確認します。%sなどの変数をロックして、壊れないようにします。
  • 完璧なフォーマット: 100%の確率で機能する.moファイルにコンパイルされる、クリーンで標準的な.poファイルを生成します。
  • プラグイン不要: ファイルをダウンロードすれば、それが機能することがわかります。正しいフォルダにアップロードするだけです。

翻訳が表示されない理由を推測するのをやめましょう。信頼できるファイルから始めましょう。

頭痛の種なしに翻訳する準備はできましたか? SimplePoTranslate.comで無料で始めましょう