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 をつけているわけです。
[1] | FML::Process::Kernel を参照 |
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >