WordPressのテーマを日本語化する(poファイルとmoファイル)

Wordpressのテーマで、某海外有料サイトのものをテスト導入していたところ、どうも上手く日本語が表示されない。。。たぶん、Fontが上手く読み込まれていないのか、はたまたテーマが日本語向けだと上手く動かないのか、悩んでいました。そのまま諦めて、日本語にちゃんと対応しているテーマを探すというのも考えたのですが、Wordpressを勉強している身として、そして国際化の波が進んでいることもあるので、とりあえず英語でサポートにメールを送り、日本語化する=ローカライズするにはどうしたらよいのか、考えてみました。

ちなみに、それにあたって、こちらのサイトを参考にさせてもらいました。

>プラグインとテーマをローカライズする | iDeasilo

WordPressのローカライズ

日本語化=ローカライズしたいので、色々と検索キーワードを変えて記事を探していたのですが、Wordpressには、gettextを利用したローカライゼーション(多言語化、現地語化)の仕組みが組み込まれているとのこと。確かに、私が使ったテーマにも、ドイツ語やロシア語にローカライズするためのファイルが含まれているのですが、日本語向けのファイルは入っていない(泣)

テーマの中に、langフォルダが入っていて、そこには”.po”や”.mo”らしき拡張子のファイルがそれぞれ入っている。

ちなみに、このpoやmoファイルのことを、メッセージカタログと言うらしいですが。「なんじゃそりゃ」ということだったのですが、ローカライズするのは、基本的には翻訳ファイルさえ手に入れば、簡単な設定できるとのこと。「そのファイルはどんなんじゃい!?」と思いつつ、参考のサイトを読み進めてみました。

それではテーマやプラグインの作者がローカライズのために考慮すべきポイントとは何でしょうか。テーマやプラグインにおいても gettext を使用してローカライズすることには変わりありません。テーマやプラグインではその内部で明示的に翻訳ファイル(.mo) をロードする必要があるわけですが、プラグインが翻訳ファイルをロードするために使うのが load__textdomain() という関数です。

なるほど、.moファイルというのは翻訳ファイルであり、この翻訳ファイルを明示的にロードさせるようにWordpressに指示してあげる必要があるとのことですね。プラグインのローカライズは、個人的にはいったん置いておいて、テーマのローカライズについて注目。

load__textdomain() でも同様に第1引数でドメインを指定しますが、翻訳ファイルのファイル名はドメインに関わりなく {ロケール}.mo で決定されます。従って日本語ロケール(ja) の翻訳ファイルは ja.mo です。

なお load_plugin_textdomain() と異なり、load_theme_textdomain() では第2引数のファイルパス指定がありません。翻訳ファイルの置き場所はテーマのディレクトリ(/wp-content/themes/theme-name/)直下に固定されます。

テーマにおける load_theme_textdomain() の呼び出しは普通、functions.php の内部で行なわれます。

つまり、翻訳ファイルを置いて、functions.phpでその呼び出しを記述すればよいのですね。じゃあ、その翻訳ファイルはどうやって作ればいいのでしょうか!?

WordPressの翻訳ファイルの作り方

また、こちらのサイトで作り方の説明を書かれていたので、参考にさせてもらいました。

>poEdit で翻訳ファイルを作る | iDeasilo

poEditというツールがWindows環境であれば使えるようなので、私もpoEditを使ってみたいと思います。(2011年12月23日現在見てみると、poEditは1.4.6が最新バージョンで、, Mac X, Linux向けのバイナリがそれぞれ公開されていました)

ソースコードから翻訳対象のテキストを自動抜粋、.po ファイルを生成する。
翻訳対象となるテキストは __() と _e() のところなので、poEdit はソースファイルをサーチして自動で収集してくれます。生成される .po ファイルはテキストフォーマットのファイルで、次の翻訳作業で編集に使われます。

.po ファイルを編集、翻訳作業を行なう。
この段階が実際の翻訳作業です。作業は poEdit のインタフェイスから行ないますが、.po ファイルは普通のテキストファイルなので他のエディタで編集することも可能です。

.po ファイルを保存、同時に .mo ファイルが生成される。
編集した .po ファイルを保存すると同時に .mo ファイルが自動生成されます。.po は人間が読み書きするのに適したテキストファイルであるのに対して、.mo はマシンが高速に読み込むことに適したバイナリファイルです。

■参考サイト : http://d.hatena.ne.jp/Artisan/20111031/1320092733
■参考サイト : http://ezorisu-web.com/web-design/archives/tag/poedit

テーマを日本語化するor国際化すること

よく、「WordPressのテーマを日本語で使おうとすると上手く動作しない」と語られているページを見かけます。まあ、そうですよね、日本人が作ったテーマより外国の方が作られたテーマの方が断然多いですし、クオリティが高いものも無料でたくさんありますもんね。世界的の人口比でも一目瞭然ですもんね(笑)

私の場合は、海外の有料テーマサイトを使って、この『日本語化』することにつまづいたのですが、ただ『日本語化』するのはそんなに難しくはないと感じたのですが、実際に記事を投稿して表示させた場合の挙動までを事前に確認するのは難しいと感じました。(ローカライズする対象は事前に決めておくものなので、記事そのものを書いた時の挙動をテストするのは、かなり大変です。)

英語だけならまだしも、フランス語・ドイツ語・イタリア語・スペイン語・中国語・・・などなど、んーもう、入力デバイスからして揃えるのが大変そう・・・。ただ、もはや日本だけでは情報だけでなく市場でも厳しくなってきているので、グローバルな視点を持つことが必要。ということで、いつかはローカライズ対応をしてみたいと思いますw

P.S. ちなみに、利用を諦めたテーマは『Elegant Themes』です。。。涙

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク