合宿中の思いつきだったんですが、意外と便利っぽいので記事にしてみることにしました。
せっかく1ファイルで済んでいるプラグインが、多言語化のためだけに複数ファイルとなってしまうのは、もったいない。
ということで、こんな感じでどうでしょうか。
プラグインファイルは、UTF-8で書きます。(EUC版で使う場合でも)
で、以下のようなメソッドを用意しておいて、必要に応じて呼び出します。
下記例では、EUC版、UTF-8版、英語版の3つに対応していますが、別の言語を追加するのも簡単です。
function defineMultilanguage()
{
$multilang = array(
'_DEFINE_LANGUAGE' => array('English', '日本語'),
'_DEFINE_GOODMORNING' => array('Good morning', 'おっはー'),
'_DEFINE_APPLE' => array('apple', '林檎'),
);
switch (ereg_replace('[\\|/]', '', getLanguageName()))
{
case 'japanese-euc':
foreach ($multilang as $key => $value) define($key, mb_convert_encoding($value[1], 'EUC-JP', 'UTF-8'));
break;
case 'japanese-utf8':
foreach ($multilang as $key => $value) define($key, $value[1]);
break;
default:
foreach ($multilang as $key => $value) define($key, $value[0]);
}
}
別になにも変わったことしてないので、すでにやってる人もいる気がします。(あえてループの外でスイッチしてます)
↑このフィードをRSSリーダーに登録しておくと、この記事へのコメント追加をチェックすることができます。
コメント追加後の、返事待ちなどにお使い下さい。
なお、コメントチェックの必要がなくなった際には、このRSSを削除して下さいね。
不要なトラフィックを避けるために、ご協力お願いいたします。