WordPressのテーマをxgettextとPoeditで日本語化[追記あり]

2014年6月7日FreeBSD,Mac,WordPress

前から、「やろう、やろう」とは思っていたのですが、やっとできました。テーマのローカライズ(日本語化)です。

次のページなどを参考にしています。ありがとうございます。

手順としては、次の様になります。

  1. xgettextを使って、".pot"ファイルを作る
  2. OS XでPoeditを使って翻訳
  3. 結果をja.po, ja.moとして保存
  4. テーマの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ファイルを元に新しいカタログを作成します…で、先ほど作成した".pot"を開きます。開く時に、設定をする必要があります。設定例です。

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ディレクトリにコピーします。

これで完成です。

Posted by お市のかた