メッセージの多国語化問題: reply_message_nl() の使い方

fml8 では、メッセージの多国語化のために、 reply_message_nl() [1] メソッドを使い、

$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 をつけているわけです。

Notes

[1]

FML::Process::Kernel を参照

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.