WordPressの__()と_e() の意味

WordPressのテーマをいじっていると現れる __(‘hoge’) や _e(‘hoge’) は国際化対応の関数です。

ただし、その国(ロケール)にあわせた翻訳ファイルが存在することが前提です。languageやi18nなどというフォルダに「ja.mo」というファイルがあれば、日本語対応できます。

この「.mo」というファイルについては後述します。

__()の使い方

__(‘hoge’); とすると、現在表示している国の言語に合わせて翻訳され、その結果が変数として返されます。

<?php
  $msg = __(<span class="str">'hoge', 'テーマ名'</span>);
?>

これで「hoge」が「ほげ」などと翻訳されて表示されます。

「テーマ名」の部分はテーマやシステムによっても変わります。標準の「twentyeleven」の場合は ‘twentyeleven’ となっています。テーマで翻訳を使っている他の部分を参考にしてください。

_e()の使い方

_e(‘hoge’)とすると、翻訳された言葉がそのまま表示されます。

<?php
  _e(<span class="str">'hoge', 'テーマ名'</span>);
?>

つまり  echo  __(‘hoge’); と同じ意味になります。

.mo、.poというファイルは何?

この.moや.poというファイルは、翻訳用の辞書ファイルです。

.moファイルは辞書の元となるテキストファイルで、翻訳前の言葉、翻訳後の言葉が並んでいます。
.poファイル(通称Potファイル)は翻訳した辞書を、コンピュータに読み取りやすく加工をしたファイルです。(専門的に言うとバイナリ化してある)

.poの状態にしないとWordPressなどのシステムは読み取ることができません。

これらのファイルは主に「Poedit」というエディタを使って編集します。Poeditはこちらから無償でダウンロードできます。Windows、Mac、Linuxとも対応しています。

共通のツールが使えるので便利ですね。開発者の方に感謝しましょう。

.moをPoeditに読み込み、保存すると同時に、同じ場所に「.po」ファイルが出来上がります。