本家WordPressの日本語化のお手伝いをしていて、WordPressがどの言語ファイルを、何をキーとして参照しているか今頃になって初めて気づいたので覚書。
前提~言語ファイルとは~
WordPressは元々すべてのメッセージ(メニュー項目やら表示されるメッセージやら)を英語で表示していて、これにgettextを使って言語ファイルと呼ばれるローカライズファイルで英語を置き換えて、各国語の表示にしています。言語ファイルは.po(こっちがテキスト)と.mo(こっちがバイナリ)の拡張子の二つからなっていて、/wordpress/wp-includes/languages/に置きます。
どの言語ファイルを選ぶのか
キーとなるのはwordpressインストールフォルダにあるwp-config.php。この中の18行目位にdefine ('WPLANG', 'ja');
などという一文があると思います。WordPressは/wordpress/wp-includes/languages/の中から「この赤字のファイル名」.moというファイルを探して、ファイルがあればそれを参照します。WordPress MEで文字コードUTF-8なら、この赤字のところがja_UTFとなっており、ja_UTF.moを参照しています。
WordPress Japan DB ≫ ME 2.1.1 リリースより
尚 2.1 系から、言語ファイルの置き場が wp-includes/languages から wp-content/languages に変更になっています。双方に言語ファイルがある場合には、wp-content/languages が優先されます。
とのことで、2.1からはwp-content/languagesのようです。ががーんΣ(゜д゜lll)
言語ファイルを導入したのに、うまくローカライズされないな、という場合はwp-config.phpと言語ファイル名をチェックして、記載を合わせてやればOKです。
なんでこんなことに今さら気づいたかというと、ME→本家とクロスアップグレードしたときに、ja_UTFになっていたため、MEのリソースを見に行ってしまって日本語化されないところが多々あったからなのでしたorz(本家日本語リソースはja.po、ja.moで提供されている)
“[WordPress メモ] wp-config.phpと言語ファイルの関係” への3件のフィードバック
おでさん、私も最近WP2.1にアップグレードして、文字化け発生して初めて言語ファイルの構造について知りました。恥かしいことに、今になってネットで文字コードの種類と構造を調べまくってますよ(笑)で、改めてWPの奥深さを実感してます。おでさん、ME開発ご苦労様です!MEのリリースを首長くして待ってますよ!
あ、一緒ですね~。奇遇奇遇~(‘∇’)
ちなみに私がお手伝いしてるのは、MEじゃなくて本家の日本語化のほうなんですよ~。
まだまだ駆け出しなので、こんなのはどうですか?って意見を出せるくらいですけど。
MEのほうにも何か恩返しができたらいいんですけどねぇ。
しまった!またしてもいつもの早とちり!失礼しました…(汗)
とにかく、ガンバってくださいね!