<!-- -*- mode:text coding:euc-jp -*-
   $FML: language.sgml,v 1.9 2010/03/18 20:28:05 fukachan Exp $
-->


<sect1 id="message.nl">
	<title>
	メッセージの多国語化問題: reply_message_nl() の使い方
	</title>

<para>
&fml8; では、メッセージの多国語化のために、
reply_message_nl()
	<footnote>
	<para>
	FML::Process::Kernel を参照
	</para>
	</footnote>
メソッドを使い、
<screen>
$curproc->reply_message_nl('error.already_member',
			   'already member',
			   { _arg_address => $address });
</screen>
のような呼び出し方をすることにしています。
</para>

<para>
この関数は
/usr/local/share/fml/バージョン/message/言語名/error/already_member
というテンプレートを用いてメッセージを構築します。
</para>

<para>
メッセージ中の $_arg_変数名、たとえば、
<screen>
$_arg_address
</screen>
は
reply_message_nl()
メソッドの引数として与えられたハッシュリファレンス内の値へ展開されます。
上の例でいえば、メッセージテンプレート中の
$_arg_address 
がメソッドの引数にある
_arg_address
の値で展開されます。
</para>

<para>
また config.cf 中で定義されている変数はメッセージ中でも展開可能です。
たとえばテンプレート中の $ml_name は 
config.cf 中と同様にＭＬ名に自動展開されます。
</para>

<para>
このため、
つまり config.cf の変数群とぶつからないようにするため、
渡す引数に $_arg_ などという prefix をつけているわけです。
</para>

</sect1>
