イケメンのためのWordPress翻訳環境構築方法

先日、WordBench Osakaで翻訳祭を行って、とてもいい感じでイベントが終了しました。

あずまっくす氏が、Automatticの中の人に Cool ! とか言われちゃった時は、ほんとに胸熱でした。

翻訳まつりー!

今回の記事では、当日あまり説明しなかったテキストの抽出方法について、黒い画面が好きな人向けの説明を補足させて頂きます。

ちなみに、あんまイケメンじゃない人は、こちらのスライドで。笑

イケメンは WordPress i18n Toolsを使う!

多くのイケメンは、GUIのアプリなんてめんどくさくて使いません。おらおらー黒い画面持って来い!っていうのが真のイケメンです。

なので、poeditなんか使い方わかんないもんね。ふんって感じです。

あと、真のイケメンはめんどくさがりです。

xgettextコマンドの引数を並べたりしません。多くのイケメンはちょっとアホなので、覚えられないからです。

なので、WordPress i18n Toolsを使います。

インストール方法

イケメン向けのネタなので、Mac限定です。

Xcodeをインストール

Mac App StoreからXcodeを入手して下さい。

https://itunes.apple.com/jp/app/xcode/id497799835

Homebrewをインストール

次は、イケメン御用達のツール、Homebrewをインストールしましょう。

ターミナルで以下のコマンドを入力して下さい。

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

このコマンドは、Homebrewのサイトにでっかく書いてあるから念のため確認してね。

ちなみに、おおくのイケメンはここまではすでに完了済みのはずです。

今日はじめてやった方は、今日からイケメンです。おめでとうございます。

ちなみに、前にHomebrewをインストールしたけど、そのあと放置してた元イケメンのみなさんは、XcodeとHomebrewをアップデートしましょう。

Homebrewのアップデートは以下のような感じ。

$ brew update
$ brew upgrade

Homebrewを使ってgettextをインストール

コマンドラインで翻訳を行うには以下の要領でgettextをインストールする必要があります。

$ brew install gettext
$ brew link gettext --force

のちのちbrew doctorでgettextについて警告が出ますが、それは気にしない。笑

WordPress i18n Toolsをインストール

$ cd # homeディレクトリへ移動
$ mkdir wordpress-i18n-tools
$ cd wordpress-i18n-tools
$ svn co http://i18n.svn.wordpress.org/tools/trunk/ .

以上で WordPress i18n Toolsのインストールは完了しました。

.potをつくってみる!

まず翻訳したいプラグインのディレクトリに移動して下さい。

$ cd wp-content/plugins/example-plugin

多言語化対応してるプラグインのディレクトリ内には、翻訳ファイルを置くためのディレクトリがあるはずです。

このディレクトリ名は、WordPressのデフォルトでは、 languages ですが、lang だったり langs だったりするプラグインも多いです。

もし、それっぽいディレクトリがない場合は、load_textdomain() という関数がプラグインのディレクトリ内で定義されていますので、その第三引数をみましょう。

load_plugin_textdomain(
    "wp-total-hacks",
    false,
    dirname(__FILE__).'/languages' // ここ!
);

ちなみに第三引数がない場合は、languages です。

cd languages # languagesに移動

では、実際に .pot を作ってみましょう。
ターミナルで以下のようにコマンドを実行すればオッケーです。

/usr/bin/php ~/wordpress-i18n-tools/makepot.php wp-plugin ..

ちなみにテーマの場合は以下の様な感じ。

/usr/bin/php ~/wordpress-i18n-tools/makepot.php wp-theme ..

ちなみに僕はボスキャラ級にイケメンなので、以下の様なエイリアスを .bash_profile に書き込んであります。

alias makepot="/usr/bin/php ~/wordpress-i18n-tools/makepot.php wp-plugin"

こうしておくと、以下のコマンドでオッケーになります。

makepot ..

あっ、そうそう、引数で指定するパスは、.potの置き場所じゃなくて、phpのファイルがあるパスです。(テーマの場合はfunctions.phpがあるディレクトリのパス。指定したパスから下の階層をだだーっと探してくれます。)

/usr/bin/php っていう風にphpまでのパスをフルパスで指定してるのは、makepot.php がHomebrewのphp5.4とかだと盛大に警告を吐くからです。

さらにイケメンのみなさんのために

僕のようなスーパーボスキャラ級のイケメンは、プラグインを公式ディレクトリに登録してて、すでにいろんな国の人に翻訳されてたりします。

そんなときに、プラグインにタイポとか見つかって、あとから修正したりすると、全部の言語の .po や .mo をなおさなきゃいけなくなって、タイポを放置したくなったりします。(笑)

そんなプラグイン開発者向けには、日本語開発チームのイケメン @mako0901 さん作のMakefileを仕込んで置くと超絶便利です。

使い方は、Makoさんの以下のページで。

http://pasero.net/~mako/blog/s/377

これを使うと以下の様な感じでほいほいと翻訳ファイルのメンテができるので超絶便利です!

$ make pot # .potを作成
$ make po # .poに新しい.potをマージして、.poを生成しなおす。
$ make # .moを作成

.moを作成するのが make コマンド一発だなんて、はじめて教えてもらった時は感動しました。

追記

そうそう、大事なこと。

僕は、このMakefileも含めてgithubにコミットしちゃってますが、本番の公式ディレクトリに登録するときとか、配布するバージョンでは除外しないとダメですよ。

https://github.com/miya0001/wp-total-hacks/tree/master/languages

僕は、以下の行を ~/.subversion/config に入れてあります。

global-ignores = .DS_Store Thumbs.db .git Makefile LINGUAS