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」ファイルが出来上がります。