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

WordPressの開発で「サイレントな失敗」ほどイライラすることはありません。
すべて正しい手順を踏んだはずです。.poファイルを翻訳し、.moファイルにコンパイルしました。FTPでサーバーにアップロードし、キャッシュをクリアしました。
そして、ページを更新すると、スペイン語、フランス語、ドイツ語が表示されるはずです。 しかし、そこには…英語が表示されています。
エラーメッセージも、白い画面も表示されず、ただ頑固に翻訳されないテキストがあるだけです。腹を立てる前に、このガイドをお読みください。ここでは、WordPressで翻訳が読み込まれない5つの最も一般的な理由と、その修正方法をご紹介します。
1. ファイル名の命名が間違っている
WordPressはファイル名の命名に関して非常に厳格です。1文字でも間違えると、ファイルは読み込まれません。
標準的な形式は次のとおりです:{テキストドメイン}-{ロケール}.mo
- テキストドメイン: これは、テーマまたはプラグインの一意のIDです(例:
woocommerce、twentytwentyfour、my-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で無料で始めましょう