「初めての 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 名に一括置換します。似た機能がある他のエディタも多くありますので、試してみてください。
コメントを残す