i18n

プラグインの国際化

(1)プラグインと同じ名前のディレクトリを作る

「NP_」は取って、小文字で揃えます。たとえば「NP_AbcDE」という名前のプラグインなら「abcde」という名前のディレクトリを作ります。

(2)ディレクトリの中に、開発環境と同じ言語用の言語ファイルを作る

UTF-8なら「japanese-utf8.php」、EUC-JPなら「japanese-euc.php」です。エンコードはそれぞれutf-8はutf-8、euc-jpはeuc-jpで合わせてください。また、english.phpは該当の言語ファイルがない場合のデフォルトとなるため、これがないと、想定した言語環境以外ではメッセージの出力ができません。なるべく作るようにしてください。

(3)言語ファイル内の記述

<?php
define('_ABCDE_MESSAGENAME',                  '実際のメッセージ');
	・
	・
	・
?>

といった形で行ごとにエントリーを作り、プログラム中の日本語メッセージを定義します。これに合わせ、プラグイン本体内のメッセージを _ABCDE_MESSAGENAME などに置き換える。メッセージはグローバルな名前になるので、他の定数とのバッティングを避けるため、プラグイン名を最初に付けるといいでしょう。

(4)プラグイン本体のinit関数内に、言語ファイルを読み込む記述を加える

$language = preg_replace( '@\|/@', '', getLanguageName());
if  (file_exists($this->getDirectory().'language/'.$language.'.php'))
{
	include_once($this->getDirectory().'language/'.$language.'.php');
} else {
	include_once($this->getDirectory().'language/'.   'english.php');
}

上記のとおりコピーしてしまってもかまいません。この場合、言語ファイルは abcde/language/ ディレクトリ内に置いてください。

具体的には、既存のプラグインを参考にしていただければと思います。init関数内の記述は作者さんによって微妙に表現が違うことがありますが、基本的には同じアプローチをとっているケースがほとんどです。

 
i18n.txt · 最終更新: 2011/03/23 21:28 (外部編集)