WordPressで日本語言語ファイル(.mo .po)が認識されない

WordPressの外国語のテーマやプラグインを使うとき、自分で翻訳をしたりします。

しかし翻訳ファイルに、日本語の正しいロケーションコード「ja_JP」を使うとなぜかWordPressは認識しません。

その原因と対象方をまとめました。

なぜja_JPを受け付けないか

これはWordPressの wp-config.php で

define (‘WPLANG’, ‘ja’);

と指定されてしまっているからです。

 

image
これは WordPress/wp-content/languages の中身です。ja.po, ja.mo が存在していますね。

 

define (‘WPLANG’, ‘ja’); を define (‘WPLANG’, ‘ja_JP’); 指定に変更すれば、正しいロケーションコードで受け付けるようになりますが、逆にWordPress本体の言語ファイルが認識しなくなり管理画面もろとも英語になってしまいます。

もちろんさらに本体の言語ファイル名を ja.mo から ja_JP.mo に変えればいいんですが、WordPressのバージョンアップのたびにファイル名を変更しなければいけなくなります。

 

自分で翻訳ファイルを作るときは ja_JP.po ではなく ja.po (ja.mo) としてアップロードすればOKです。これが一番手軽です。

 

翻訳するのに便利なソフト

WordPressのプラグインにも翻訳が簡単にできるものがあります。

image

Codestyling Localization

 

ただ、このプラグインも「正しい」ロケーションコード(日本語ならja_JP)でファイルを作ろうとします。つまり作成した翻訳ファイルは自動認識してくれません。

翻訳ファイルを作成 > FTPでログイン > ファイル名を ja_JP.mo から ja.mo に変更

という手順が必要になります。

なので私は使ってません。

PoEdit

私がよく使っているのは「PoEdit」

image

ダウンロード先 PoEdit
(リンク先のDownloadメニューにあるWindows用、Mac用などのをダウンロードしてください)

 

PoEditを起動し、「.po」ファイルを読みこむとこんな画面になります。

image

 

画面の解説

image

 

  1. 上部のリストから翻訳したい文章を選択
  2. 下のSource text: に元の文章が入ります
  3. 自分で翻訳した文章を Translation: に入力していきます。

 

「保存」をするとpoファイルは上書き保存され、さらに「(元のファイル名).mo」が出来上がります。元が ja.po なら ja.mo が同時に作成されます。

ややこしいですが、この「ja.mo」の方が使用されるファイルです。サイトにはja.moをアップロードしてください。ja.poでは翻訳は適用されませんのでご注意ください。(.moファイルは検索速度を上げるためにコンパイルされています)