WordPressの”__()”関数は国際化対応のため

この記事は次のブログに引っ越しました。

WordPressプラグイン内で使われるPHPの"__()"関数や"_e()"関数は何に使うのか?

WordPressプラグインのソースを見ていたら__($hogehoge)のような記述を随所で見かけた。

どうやら、__()関数は国際化対応のためのWordPressのユーザ関数のようで、PHP独自の関数ではないようだ。このスタイルはCakePHPなどでも利用される手法らしく、GNUのgettextという手法というか国際化のフレームワークを採用しているとのこと。

どういうことかというと、別途、用語の言語対応表があって、__()関数に基本となる用語(主に英語)を引数で渡すと、該当する言語の用語が返されるという仕組みらしい。当然、対応表に該当言語の該当用語がなくてはならないが。

> /* ローケルが日本であった場合は、「ハローワールド」が返される。*/ $message = __('Hello World'); //$messageに結果を出力 _e('Hello World'); //これはechoで結果を出力

どうもこの手法はオープンソース業界では、デファクトスタンダードらしい。スペイン語や英語対応を得意としていたのに知らなかった。恥ずかしい。

なるほど、これは面白い使い方だ。というより、"_"(アンダースコア)だけの関数って作れたのか。さらに恥ずかしい。

■参考サイト http://codex.wordpress.org/Localizing_WordPress