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

このサイト内の関連おすすめ記事

  1. 第3回 WordPress プラグイン・コンペ 2009
  2. 2007 WordPressプラグインコンペの全エントリー発表
  3. Gravatar ホバーカードを WordPress に追加する一行コード
  4. WordPress プラグイン・コンペ 2009 がスタート
  5. WordPress 2.9 の新機能紹介

タグ, , ,

知っておくと便利な WordPress プラグイン国際化のコツ」への2件のフィードバック

  1. [...] 知っておくと便利な WordPress プラグイン国際化のコツ | detlog.org (tags: WordPress) [...]

  2. [...] WordPress プラグイン日本語化ガイド | detlog.org 知っておくと便利な WordPress プラグイン国際化のコツ | detlog.org 有料プラグイン&テーマ販売サイト運営者と WordPress [...]

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">