2

アプリケーションの出力をローカライズするために、メッセージ バンドルを使用しています。複数形を追加したいのですが、メッセージ プロパティ ファイルとメッセージ パラメータを使用してそれを実現する方法はありますか?

そんな感じ:

<h:outputFormat value="#{msg['label.bean']}">
    <f:param value="#{someBean.someProp.size()}" />
</h:outputFormat>

結果として:

0 豆、1 豆、2 豆、...

もちろん、この形式label.bean={0} beanはカウントに対して機能しますが、の値に応じて複数の「s」を取得するにはどうすればよい{0}ですか?

4

2 に答える 2

2

カバーの下で<h:outputFormat>使用します。MessageFormatそのjavadocによると、これに使用できますChoiceFormat。さらなる使用法については、その javadoc で詳しく説明されています。

あなたの場合、次のメッセージ形式パターンでそれを行う必要があります。

label.bean = {0} bean{0,choice,0#s|1#|1<s}
于 2012-08-16T14:14:14.630 に答える
1

あなたはこのようなことをすることができます

<ui:param name="plu" value="#{(someBean.someProp.size() eq 1)?'single_key':'multi_key'}"/>

<h:outputFormat value="#{msg[plu]}">
    <f:param value="#{someBean.someProp.size()}" />
</h:outputFormat>

ラベルがこのように見える場所

single_key= {0} bean

multi_key= {0} beans
于 2012-08-16T12:33:52.203 に答える