WordPressのテーマやプラグインで翻訳が適用されない。
これには、いろんなケースがあると思います。
- 翻訳がまったく適用されない
- 翻訳が一部のみ適用されない
- 新規インストール時なのか?
- 更新後なのか?
その他にも、日本語対応していないテーマ・プラグインに自分で翻訳ファイルを作った…
基本的に翻訳ファイルになんらかの原因がある可能性が高いです。
WordPress翻訳の基本のキ
WordPressのテーマ・プラグインのベース言語は通常英語です。
そして、翻訳ファイルを用いた多言語対応により、WordPress自体の言語設定に合わせて複数の言語に翻訳されています。
テーマ・プラグインを日本語で表示させる条件
- 言語設定が日本語であること
- 日本語用の翻訳ファイル
WordPressで言語を追加するには?
基本的な言語設定はWordPressの管理画面にログインし、メニューから「設定」を選択、「一般」設定ページで「サイトの言語」オプションより、使用言語を指定します。
翻訳ファイルとは
テーマ・プラグインの翻訳は以下の2つのファイルで構成されます。
通常、テーマ・プラグインのインストール時に言語設定に合わせた翻訳ファイルが自動的に追加されます。
基本的には、WordPress.orgのGlotPressなどの翻訳プラットフォームを使用した翻訳プロジェクトで提供されます。
開発者だけでなく、WordPressコミュニティメンバーや利用者も各言語の翻訳に貢献できます。
.po ファイル
Portable Object File(可搬可能オブジェクトファイル)の略で人間が読みやすいテキスト形式の翻訳ファイルです。
開発者や翻訳者はこれを用いてソースコード内のテキストを他の言語に翻訳できます。
編集には、Poeditというアプリが使われることが多いですが、テキストエディタでも編集できます。
https://poedit.net/download
.mo ファイル
Machine Object File(マシンオブジェクトファイル)の略でバイナリ形式の翻訳ファイルです。
最終的にテキストの翻訳には、この.mo ファイルが使用されます。
.mo ファイルは.po ファイルをコンパイル(変換)することで生成されます。
.po ファイルは人間が読みやすいが、実際に翻訳で使用するのは.mo ファイルです。
関連として、.pot ファイルがあります。
翻訳可能な文字列のテンプレートであり、これに基づいて翻訳者が具体的な言語の翻訳を行います。
翻訳ファイルの場所
翻訳ファイルのインストール先はload_plugin_textdomain
関数により、以下のいずれかを指定します。
WordPressでの読み込みには優先順位があり、対応する翻訳ファイルが見つかると、それ以降の場所は読み込まれません。
- プラグイン、あるいはテーマ内の
languages
フォルダ - 上記の場所に翻訳ファイルが見つからない場合、
wp-content/languages/plugins
orthemes
フォルダ
もともと、wp-content/languages/plugins
に翻訳ファイルが存在している場合、プラグイン内にlanguages
フォルダを作成してコピーすると、こちらを優先します。
ただし、次にプラグインの更新が発生した際には、wp-content/languages
内に再度、翻訳ファイルがインストールされ、プラグイン内の翻訳ファイルも削除されてしまいます。
一方でプラグインをダッシュボードで削除してもこのファイルは消えず、不完全な削除となるので、注意が必要です。
翻訳が適用されない理由
翻訳ファイルが存在するか?
まずは翻訳ファイルが存在しているか?
上で解説した2か所のlanguages
フォルダを確認ください。
翻訳ファイルがない場合は以下の2つの対処が考えられます。
1.日毎更新を待つ
WordPressは定期的にWordPress.orgサーバと通信して更新情報を確認します。
この自動更新(Automatic Updates)はセキュリティや機能の向上を目的として導入されており、通常、1日に一度、ランダムな時間にこの通信を行います。
ただし、テーマ・プラグインをインストールしてから、すでに数日が経過している場合は自動更新でインストールされる可能性は低いです。
次の手順で手動で入手しましょう。
2.翻訳ファイル単独で入手する
Aurora Heatmapを例に解説します。
WordPressのプラグインページにアクセスします。
言語タブを開き、プラグイン翻訳をクリックします。
翻訳ページより、Language Packs
を選択
希望の言語パックをダウンロードします。
圧縮ファイルを解凍して、翻訳ファイルを所定の位置にアップロードします。Aurora Heatmapの翻訳ファイルのURLとしては下記です。
https://translate.wordpress.org/projects/wp-plugins/aurora-heatmap/language-packs/
更新直後ではないか?
新規インストールではなく、テーマ・プラグインの更新後に一部が翻訳されないケースです。
この場合はGlotPressでの翻訳ファイルが間に合っていない可能性があります。
数時間~数日様子を見ましょう。
また、部分的に翻訳箇所のgettext
関数が抜けているケースもあるでしょう。
こちらはテーマ・プラグイン側の問題になるため、作者側での対応が必要になります。
類似の問題がないか、WordPressコミュニティなどでの確認をおすすめします。
パーミッションが適切か?
翻訳ファイルには、最低限444など読み込み可能なパーミッションが必要です。
400などのではWordPress側で読み込めません。
更新で翻訳に問題が生じた場合はこの原因は考えにくいです。
新規のインストールで翻訳ファイルが存在しているにもか関わらず、適用されない場合は確認してみましょう。
ホスティングの問題
可能性は低いものの、サーバの側のキャッシュなどが影響している場合もあるでしょう。
ほとんどの場合で再起動することでキャッシュがクリアされ、最新の設定とファイルが読み込まれます。
念のために.htaccessファイルも更新してみましょう。
パーマリンク設定を変更せず保存することで更新されます。