メッセージの多国語化問題: reply_message_nl() の使い方
&fml8; では、メッセージの多国語化のために、
reply_message_nl()
FML::Process::Kernel を参照
メソッドを使い、
$curproc->reply_message_nl('error.already_member',
'already member',
{ _arg_address => $address });
のような呼び出し方をすることにしています。
この関数は
/usr/local/share/fml/バージョン/message/言語名/error/already_member
というテンプレートを用いてメッセージを構築します。
メッセージ中の $_arg_変数名、たとえば、
$_arg_address
は
reply_message_nl()
メソッドの引数として与えられたハッシュリファレンス内の値へ展開されます。
上の例でいえば、メッセージテンプレート中の
$_arg_address
がメソッドの引数にある
_arg_address
の値で展開されます。
また config.cf 中で定義されている変数はメッセージ中でも展開可能です。
たとえばテンプレート中の $ml_name は
config.cf 中と同様にML名に自動展開されます。
このため、
つまり config.cf の変数群とぶつからないようにするため、
渡す引数に $_arg_ などという prefix をつけているわけです。