知っておくと便利な 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 名に一括置換します。似た機能がある他のエディタも多くありますので、試してみてください。

作成者: 高野直子

東京在住の Automattic 社 Globalizer、高野直子の個人ブログです。WordPress、リモートワーク、イベント参加レポート、子育てのことなど不定期に書いています。

2件のコメント

  1. ピンバック: links for 2008-09-07

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください