テーマ・プラグインの翻訳が適用されない

ヘッダ画像

テーマ・プラグインの翻訳が適用されない

WordPressのテーマプラグインで翻訳が適用されない。
これには、いろんなケースがあると思います。

  • 翻訳がまったく適用されない
  • 翻訳が一部のみ適用されない
  • 新規インストール時なのか?
  • 更新後なのか?

その他にも、日本語対応していないテーマ・プラグインに自分で翻訳ファイルを作った...
基本的に翻訳ファイルになんらかの原因がある可能性が高いです。

WordPress翻訳の基本のキ

WordPressのテーマ・プラグインのベース言語は通常英語です。
そして、翻訳ファイルを用いた多言語対応により、WordPress自体の言語設定に合わせて複数の言語に翻訳されています。

テーマ・プラグインを日本語で表示させる条件

  1. 言語設定が日本語であること
  2. 日本語用の翻訳ファイル

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での読み込みには優先順位があり、対応する翻訳ファイルが見つかると、それ以降の場所は読み込まれません。

  1. プラグイン、あるいはテーマ内のlanguagesフォルダ
  2. 上記の場所に翻訳ファイルが見つからない場合、wp-content/languages/plugins or themesフォルダ

もともと、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/

ローカルで自前の翻訳ファイルを作っている場合はベースとした POT ファイルが古くなっているなどの理由でMO ファイルが正しく生成されていない可能性もあります。

更新直後ではないか?

新規インストールではなく、テーマ・プラグインの更新後に一部が翻訳されないケースです。
この場合はGlotPressでの翻訳ファイルが間に合っていない可能性があります。
数時間~数日様子を見ましょう。

また、部分的に翻訳箇所のgettext関数が抜けているケースもあるでしょう。
こちらはテーマ・プラグイン側の問題になるため、作者側での対応が必要になります。
類似の問題がないか、WordPressコミュニティなどでの確認をおすすめします。

パーミッションが適切か?

翻訳ファイルには、最低限444など読み込み可能なパーミッションが必要です。
400などのではWordPress側で読み込めません。
更新で翻訳に問題が生じた場合はこの原因は考えにくいです。
新規のインストールで翻訳ファイルが存在しているにもか関わらず、適用されない場合は確認してみましょう。

ホスティングの問題

可能性は低いものの、サーバの側のキャッシュなどが影響している場合もあるでしょう。
ほとんどの場合で再起動することでキャッシュがクリアされ、最新の設定とファイルが読み込まれます。
念のために.htaccessファイルも更新してみましょう。
パーマリンク設定を変更せず保存することで更新されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.



関連記事