A Django site.
3月 12, 2008
» 知っておくと便利な WordPress プラグイン国際化のコツ

初めての WordPress プラグイン日本語化ガイド」に引き続き今回は、WordPressのプラグイン国際化(日本語化)を何度かやったことがある方向け。知らなくても大丈夫だけど知っておくとさらに便利な情報です。

Poeditの翻訳メモリ機能

Poeditの翻訳メモリ機能を使う(by taiさん)
翻訳メモリを使うとかなり楽できる場合もあります。WordPress本体、WordPress MU、その他メジャーなプラグインの言語ファイルなどをメモリに追加しておくのをおすすめ。

text domain名を自動追加するPHPスクリプト

Automatticの国際化担当Nikolay が先日メーリングリストに投稿した、text domain名を追加する手間を省くためのスクリプト。add-textdomain.php ファイルを保存してプラグインと同じディレクトリに置き、以下のコマンドで実行。

php add-textdomain.php plugin-name.php textdomain-name

表示されたデータをプラグインファイルにコピー&ペーストします。

< ?php _e('message'); ?>

のようだったコードが、以下のように書き換えられているはずです。

< ?php _e('message', 'textdomain-name'); ?>

複数形用&説明追加用の国際化関数

WordPressの国際化関数は __()_e() に加えてあと2つあります。__ngettext()_c() です(どちらも値を返すだけで文字列の出力はしません)。

日本語ではあまり問題ないですが、__ngettext() 関数は名詞の複数形の翻訳を分けられようにしてくれます。他の言語にも訳される可能性を考え、単数・複数で単語が違う場合はこの関数を使っておくと親切です。

__ngettext('%s post available', '%s posts available', $posts_count, 'plugin-name');

例えば Editor というラベルが役割グループの「編集者」を意味するのか、テキスト編集用のツールである「エディタ」を意味するのかの説明を付けたいとき、_c() 関数を使えば | 記号のあとにコメントを追加できます。 | 記号以下に書かれたものは翻訳する前と後の文字列には影響がありません。

_c('Editor | Role' 'plugin-name');
_c('Editor | Text editor' 'plugin-name');

テキストエディターへのスニペット追加

よく使うコードが挿入しやすいよう、私はテキストエディターにコードスニペットを登録してます。たとえばskEditなら、

< ?php _e('[*sel]','plugintextdomain'); ?>

と言うスニペットを登録しておくと、元のテキストを選択して右クリックでこのコードを挿入できます([*sel]< ?php _e('$TM_SELECTED_TEXT','plugintextdomain'); ?>

TextMateではタブキーでスニペットが呼び出しできてさらに便利。最後に plugintextdomain を実際の textdomain 名に一括置換します。似た機能がある他のエディタも多くありますので、試してみてください。

3月 11, 2008
» 初めての WordPress プラグイン日本語化ガイド

WordPressプラグインの日本語化に便利なソフト、Poeditがv1.4にアップグレードされたのを機に、WordPressプラグイン翻訳に関する情報を書いてみます。あちこちで十分詳しく書かれているんですが(とくにMasayanさんのpoEdit 取扱説明書があれば最強!)、私も最初はよく分からなかったので…。はじめてプラグインの翻訳をされる方のガイド的にまとめてみました。Masayanさんのページの詳細説明を見る前にぜひ目を通してみてください。

必要なスキル

  • 英語プラグインの元言語と日本語の読み書き能力
  • PHPの基本的な知識
  • WordPress、WordPressプラグインの基本的な知識

必要なツール

  • Poedit(日本語で使えます。Windows、Mac OS X、Linuxバージョンが揃っています)
  • 日本語化したいプラグインのファイル
  • インストールしたWordPress(ローカルサーバーがあると最適)

日本語化の方法

ステップを大まかにまとめると、以下のようになります。

  1. プラグイン内にtext domain指定を加える
  2. プラグイン内の文字列を、WordPressの国際化関数、 __() と _e() を使って出力するようにする
  3. 翻訳用の .pot ファイルを作成する
  4. 日本語の .po 言語ファイルを作成する
  5. poEditで翻訳、保存する(日本語化用の .mo ファイルが作成される)
  6. プラグインを有効化してテスト

すでに国際化済みのプラグインに日本語版を足すだけの場合、1〜3は不要です。ローカルサーバーがあれば、.mo ファイルを保存するごとにリロードして画面上で確認ができるので便利ですよ。さらに、

  1. プラグインの作者さんに国際化済みのプラグイン+言語ファイルを送ってあげて、今後の開発に組み込んでもらうようお願いする
  2. WordPress Plugins/JSeriesでの配布・告知をする

というところまで完了すれば、他のユーザーさんや翻訳者さんにも非常に便利です。特に7は世界中のWPユーザーさんたちにも喜んでもらえるはず(作者さんが採用してくれればですが)!

その他の日本語ドキュメント

次回は第2弾として、「初めて」の次の段階で知っておくと便利なプラグイン国際化についてのコツを書きますね。

(3/12追記)「知っておくと便利な WordPress プラグイン国際化のコツ」公開しました。