プラグインやテーマの国際化を少し楽に

すっかり忘れていたのですが

と思い出させてもらったので、ここに書いておきましょう。

これは世界で人気のプラグインやテーマの開発者向けの情報です。もとより私はプラグインもテーマも書かないし、したがって世界中から言語ファイルを送られて「大変だー」なんて思いをしたことはないのですが、たまたまその声を聞いて 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 特有の設定を加えたものです。私ができるのはこの程度です。あとは誰かすばらしいプラグインやテーマを作ってくださいね。

ejabberd 2.1.11

Jabber/XMPP のサーバー ejabberd 2.1.11 がリリースされたようです。 今回は事前に「翻訳を送って」と連絡があったので、以前の版にずいぶん手を入れた日本語訳を同梱してもらいました。どれほどの人が日本語版を利用しているのかさっぱり不明ですけれども。

『本格ビジネスサイトを作りながら学ぶ WordPressの教科書』

著者のプライム・ストラテジーさんが『本格ビジネスサイトを作りながら学ぶ WordPressの教科書』を、「日本語作成チームに感謝の気持を込めて」と、この私にもご恵贈くださいました。ありがとうございました。

自分にできることを少しだけやったことが、巡り巡って還ってくるというのを実感できるというのは嬉しいものです。

それはさておき。

最近この種の本を手にすることはあまりなかったのですが、まずきれい。全ページカラーで見やすい。情報量はかなり多そうですが、全体の流れが掴みやすく工夫されていて、通読しやすそうです。一方で、目次がとても充実しており(実際には出版社のページにあるものよりもう一段深く、目次だけで10ページもあります)、あとで辞書的に調べたいところを探すのにも便利そうです。書籍というものの特長をあらためて感じました。

これからじっくり読んで、ここや自分が関わっているサイトももう少し見直してみようという気になりました。

Automattic製テーマ Coraline と Pilcrow の日本語化

Automattic は言わずと知れた WordPress の開発元、そしてブログサービス WordPress.com の運営元です。WordPress 公式テーマディレクトリで、その Automattic 製のテーマが公開されています。

Coraline は、TwentyTen の双子のようなテーマで、むしろこちらのほうが柔軟性があると私は勝手に思っています。Pilcrow は2012年になって登場し、Coraline の後継じゃないかとこれまた勝手に思っていますが、配布版 WordPress のデフォルトとなってもおかしくないと思える作りのテーマです。

たぶん WordPress.com のサービスでは、これらのテーマが様々な言語に対応して提供されているのでしょうが、この公式ディレクトリで配布されているものには言語リソースが(日本語に限らずどの言語のものも)同梱されていません。

「非公式」日本語リソース

そこでこの Coraline と Pilcrow の日本語リソースを作成したので公開します。と言っても、デフォルトのテーマ TwentyEleven とほとんど同じメッセージですのでそれを取り込んで、独自に訳す必要があったのはほんの数個です。

中身はそれぞれの ja.po と ja.mo だけです。テーマをインストールしたディレクトリの languages/ 以下に ja.mo を置いてください。

「公式」日本語リソース

Twitter でひょんなことからこの Automattic 製テーマの日本語リソースの話になったところ、Nao さんから

Naoko McCracken
@mako0901 @urepko こちらもよかったらどうぞー。http://t.co/SqfNQ51P WP.com アカウントでログインすればページの下の方からエクスポートできますが。。。 このやり方どっかに書いたほうが良いですね。
2012年3月20日 – 22:02

というリプライがありました。「公式」リソースが、普通には気付けないこんなところに隠れていました。「このやり方」をここに書いてみます。この短縮されているけれど本当は長い URL には、次のようにしてたどりつけます。

まず、http://translate.wordpress.com/にアクセスします。Projects の WordPress.com に進みます。さらに日本語の Japanese に進みます。ここで、右上の Log in で、WordPress.com のアカウントを使ってログインしておきます。

左端にある Filter↓ をクリックします。Term: に、絞り込みたい語を入力します。ここでは、coraline と入力します。その右側の選択肢は、Either と Current/waiting/fuzzy のままでかまいません。そして「Filter」ボタンをクリックすると、テーマ coraline に関するメッセージだけが抽出されます。

画面の一番下に行き、only matching the filter を po として、Export すれば、目的のものが手に入ります。テーマ pilcrow のものだったら、検索語を pilcrow にするだけです。

これで po が手に入りますので、ja.mo に変換して、適切な場所に配置します。


【追記】 Nao さんのところに、より詳しい解説が出ました。「GlotPress から WordPress.com の無料テーマの翻訳をエクスポートする

Gajim 0.15

XMPPクライアント Gajim の0.15 が公開されました。日本語化ファイルは大幅に見直したので、以前より隨分よくなったと思っています。お気づきの点がありましたら、メール mako(あっと)pasero.net または XMPP でも同じ形の mako(あっと)pasero.net までお知らせください。

日本語スタイルガイド項目別比較一覧表

JTF日本語標準スタイルガイド」というのを見つけました。

2012年1月30日1.0版です。簡潔にまとめられていてわかりやすいです。迷うようなところは両論併記であとは使う方に任せるとなっているところもあるため、これだけで、というよりこれをベースにしてローカルルールを補うというものになるのかもしれません。「商業目的を含む翻訳作業時の日本語表記ガイドラインとして自由に配布、複製、使用できます。」と明記されているので安心です。

基本ルールの 原則として記号類は全角で表記する。 を「半角」とすればそれだけで、いま私が関わっている翻訳作業のルールにほぼ合致しそうです。ただし具体例があまり多くないので、その点は以前に見つけた日本語スタイルガイド」(PDF)のほうが参考になります。

さて、そのあとも検索を続けていたら、このJTF日本語標準スタイルガイド作成する過程にまとめられたと思われる、「日本語スタイルガイド項目別比較一覧表」を見つけました。これはすごい。とても個人でできる作業ではありません。標準ガイドの付録としてでも公表しないのはもったいないくらいに思います。ぜひ参考にしたいと思います。

Firefox に新しいプロトコルを教える

前の記事のようにして、WordPress の記事に xmpp: のリンクを書けるようになりました。しかし、それを読む側のブラウザが「そんなの知らん」と言っては役に立ちません。

手元の環境は Linux (Debian) 上の Firefox (Debian では Iceweasel という名前) ですので、それについて書きます。その他の環境については、wiki.xmpp.org に情報があります (ただし Firefox の例を見てもやや古い情報のようです)。

ブラウザ

Firefox について、mozillaZine の Register protocol を参考にしました。

  1. ロケーションバーに about:config と入力します。
  2. 右クリック→新規作成→真偽値 とします。
  3. 「設定名」を network.protocol-handler.expose.xmpp とし、値を false とします。
  4. 次にこの xmpp: のリンクをクリックしたときに、どのアプリケーションでこのリンクを開くか、聞いてきます。これはあとで 編集→設定→プログラム のところで変更できます。

Chromium (Chrome) については、常用していないので詳しくありません。ヘルプを見ると、設定→高度な設定→コンテンツの設定 の「ハンドラ」あたりでどうにかするのでしょうか。

XMPPクライアント

ところで、この方法ではアプリケーションに URL が渡されるのですが、それを受け取って開きながら起動できる XMPP アプリケーションを2つ紹介します。

ひとつは Gajim です。ただし gajim-remote handle_uri %s という形で呼び出すのですが、Firefox から URL 以外の引数を渡せないようなので、ラッパーを介することにしました。

もうひとつは、ウェブアプリの Jappix です。Jappix の オプション→一般→XMPPリンク の「JappixでXMPPリンクを開く」をクリックすると、Firefox の、どのアプリケーションでこのリンクを開くかという選択肢に Jappix が入ります。