すっかり忘れていたのですが
と思い出させてもらったので、ここに書いておきましょう。そういえば、makoさんに教えてもらった翻訳用のmakeファイルめっちゃ便利だよ。プラグイン作るときあれは必需品。
— Takayuki Miyauchi (@miya0001) June 2, 2012
これは世界で人気のプラグインやテーマの開発者向けの情報です。もとより私はプラグインもテーマも書かないし、したがって世界中から言語ファイルを送られて「大変だー」なんて思いをしたことはないのですが、たまたまその声を聞いて Makefile を miya さん に贈り、それがここで使われています。
WordPress の国際化
おさらいです。WordPress では gettext ライブラリおよびツールを使用して国際化します。
プラグインやテーマの開発者は、その中の翻訳されるべきメッセージに __()
や _e()
などのマークを付けておきます。こうしたプラグインやテーマから、マークされた文字列を抽出して POT ファイルと呼ばれる、翻訳者にとって原本となるものを作成します。この作業は WordPress の本家で配布されているスクリプト wordpress-i18n tools を入手して、これで行います。
翻訳者はこの POT ファイルを元に、メッセージをそれぞれの言語に翻訳した PO ファイルと呼ばれるものを作り、これを開発者に送ります。
開発者は PO ファイルを、実行時にすばやく読み込まれるようにバイナリ化された MO ファイルと呼ばれるものに変換して、これをプラグインやテーマに同梱して配布することになります。
少し楽に
完全に出来上がっていてメッセージが不変で、たまに「新しい言語に翻訳したよ」と送られてくるものを追加するだけなら、手作業でもさほどでもないのでしょう。しかし現時点で既に各言語の翻訳ファイルがあるところに、元のプラグインやテーマに手を加えてメッセージが変わってしまい POT が変更になって、これをいちいち各言語の PO に反映して、MO を作りなおすのがメンドクサー、という工程を自動化するのがこの Makefile です。
プラグインやテーマの開発者にとって詳しい説明は不要でしょうから、あとは簡単に紹介します。
POT の生成には上述の wordpress-i18n tools が必要です。
make potで POT を生成します。あとは外部ファイル LINGUAS に作成したい言語の locale を書いておき、適宜
make
で、必要な MO までが生成されます。
POT 生成の部分は本家のスクリプトですし、後半の部分も gettext 関連のところでよく見かけるものから拝借して、前半に WordPress 特有の設定を加えたものです。私ができるのはこの程度です。あとは誰かすばらしいプラグインやテーマを作ってくださいね。