WordPressのテーマをxgettextとPoeditで日本語化[追記あり]
前から、「やろう、やろう」とは思っていたのですが、やっとできました。テーマのローカライズ(日本語化)です。
次のページなどを参考にしています。ありがとうございます。
手順としては、次の様になります。
- xgettextを使って、".pot"ファイルを作る
- OS XでPoeditを使って翻訳
- 結果をja.po, ja.moとして保存
- テーマのlanguagesにコピー
1. xgettextを使って、".pot"ファイルを作る
(追記 2014-06-07 00:00 すでに、テーマのlanguageディレクトリに、正しい".pot"ファイルが用意されていれば、このステップは飛ばして構いません。)
WordPressのテーマが入っているディレクトリで、次の様にして".pot"ファイルを作ります。
# xgettext --language=php --keyword=__ --keyword=_e --keyword=_n:1,2 --keyword=_x -o theme.pot *.php
“–keyword=_n:1,2″がミソです。"_n()"は、複数形がある時の処理です。この指定をしないと、正しく".pot"を抽出できません。次の所で知りました。ありがとうございます。
ちなみに、xgettextは、FreeBSDで動かしています。次のコマンドでインストールできます(pkgngに移行済みの場合)。
# pkg install gettext
2. OS XでPoeditを使って翻訳
“.pot"ファイルを翻訳して、".po"ファイルと、それをバイナリ化した".mo"ファイルを作る必要があります。Poeditと言うソフトが便利です。
OS X以外にも用意されています。
メニューの で、先ほど作成した".pot"を開きます。開く時に、設定をする必要があります。設定例です。
「複数形」の所は、次の記事に従い、"nplurals=1; plural=0;"とします。
開いた後は、次の様に、ひたすら翻訳して行きます。
ところが、複数形の入力の所でつまづきました。入力欄が開いていません。
→ で、複数形の設定を、一旦次の様に(nplurals=1; plural=1;)変更しました。
そうしたら、入力できる様になりました!
ですが、この複数形の設定が、出力の".po"と".mo"に書き込まれてしまうので、最初の設定に戻しておきます。
この設定(nplurals=1; plural=0;)に戻しても、複数形の入力欄は消えません。
それと、何故だかわからないのですが、"“%2$s”に“%1$s”個のコメント"の様に、"%1$s"の前後を"“"と"”"でくくらないと、文字化けしました。
3. 結果をja.po, ja.moとして保存
→ で保存します。
説明が前後しますが、".pot"ファイルを開いた時に、保存先を聞かれたと思います。この時に、"ja.po"を指定しておきます。
4. テーマのlanguagesにコピー
“ja.po"と"ja.mo"が保存されるので、テーマのlanguagesディレクトリにコピーします。
これで完成です。
ディスカッション
コメント一覧
まだ、コメントがありません