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 つの対処が考えられます。
日毎更新を待つ
WordPress は定期的に WordPress.org サーバーと通信して更新情報を確認します。この自動更新(Automatic Updates)はセキュリティや機能の向上を目的として導入されており、通常、 1 日に一度、ランダムな時間にこの通信を行います。
ただし、テーマ・プラグインをインストールしてから、すでに数日が経過している場合は自動更新でインストールされる可能性は低いです。
次の手順で手動で入手しましょう。
翻訳ファイル単独で入手する
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 側で読み込めません。
更新で翻訳に問題が生じた場合はこの原因は考えにくいです。新規のインストールで翻訳ファイルが存在しているにもか関わらず、適用されない場合は確認してみましょう。
wp-config の設定
wp-config.php の設定によって、自動更新が無効化されている可能性があります。以下の定数が設定されている場合は WordPress 本体の自動更新が無効になります。
define('WP_AUTO_UPDATE_CORE', false);
wp-cron は動作しているか
更新などの WordPress のスケジュール処理は wp-cron.php を通じて実行されます。 wp-config で無効になっている場合はサーバー cron で wp-cron.php にトリガーしない限り、スケジュール処理は実行されません。
define('DISABLE_WP_CRON', true);
wp-cron に直接アクセスして、エラーが出ないか確認います。
https://example.com/wp-cron.php
翻訳更新だけでなく、プラグインやコアの自動更新、または予約投稿などのスケジュール処理も止まっている場合は wp-cron が原因の可能性が高いです。
ホスティングの問題
最後に可能性は低いものの、サーバーの側のキャッシュなどの影響を挙げておきます。ほとんどの場合、再起動でキャッシュがクリアされ、最新の設定とファイルが読み込まれます。
念のために.htaccessファイルも更新してみましょう。パーマリンク設定を変更せず保存することで更新されます。
この記事が役に立ったら「いいね」!