機能プラグイン料金リソース
言語を変更
リソースWordPressで翻訳が表示されない理由(トラブルシューティングガイド)

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

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

WordPressの開発で「サイレントな失敗」ほどイライラすることはありません。

すべて正しい手順を踏んだはずです。.poファイルを翻訳し、.moファイルにコンパイルしました。FTPでサーバーにアップロードし、キャッシュをクリアしました。

そして、ページを更新すると、スペイン語、フランス語、ドイツ語が表示されるはずです。 しかし、そこには…英語が表示されています。

エラーメッセージも、白い画面も表示されず、ただ頑固に翻訳されないテキストがあるだけです。腹を立てる前に、このガイドをお読みください。ここでは、WordPressで翻訳が読み込まれない5つの最も一般的な理由と、その修正方法をご紹介します。

1. ファイル名の命名が間違っている

WordPressはファイル名の命名に関して非常に厳格です。1文字でも間違えると、ファイルは読み込まれません。

標準的な形式は次のとおりです:{テキストドメイン}-{ロケール}.mo

  • テキストドメイン: これは、テーマまたはプラグインの一意のIDです(例:woocommercetwentytwentyfourmy-custom-plugin)。
  • ロケール: 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はバイナリの.moファイルを読み取ります。これは.poテキストファイルからコンパイルされたものです。.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のような変数をロックして、壊れないようにします。
  • 完璧なフォーマット: クリーンで標準的な.poファイルを生成し、常に動作する.moファイルにコンパイルされます。
  • プラグイン不要: ファイルをダウンロードすれば、それが動作することがわかります。正しいフォルダにアップロードするだけです。
  • WordPressプラグイン: 手動アップロードを完全にスキップしたいですか?私たちの公式SimplePoTranslate WordPressプラグインは、テーマとプラグインの.potファイルを自動的に検出し、クラウドで翻訳し、正しいファイル名で正しいディレクトリに結果をデプロイします。ファイル名の誤りや間違ったフォルダパスはもうありません。これは翻訳が表示されない最も一般的な2つの理由です。

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

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