在 JSF 中国际化链接的模式

Pattern to internationalize links in JSF

我想将以下内容国际化:

Click here to view our privacy policy.

here 是超链接。这是我目前的处理方式:

#{msg.footer_privacyPolicy1}
<h:outputLink>
    #{msg.footer_privacyPolicy2}
</h:outputLink>
#{msg.footer_privacyPolicy3}

msg是在faces-config.xml注册的ResourceBundle,内容如下:

footer_privacyPolicy1 = Click
footer_privacyPolicy2 = here
footer_privacyPolicy3 = to view our privacy policy.

我认为必须有更好的模式来实现这一目标。以下是我喜欢我的方法的地方:

是否有更好的方法来国际化必须按表示标记机制划分的内容?

JSF 实用程序库 OmniFaces offers <o:param> 用于确切目的。

footer.privacyPolicy = Click {0} to view our privacy policy.
footer.privacyPolicy.link = here
<h:outputFormat value="#{i18n['footer.privacyPolicy']}" escape="false">
    <o:param><h:link outcome="privacyPolicy" value="#{i18n['footer.privacyPolicy.link']}" /></o:param>
</h:outputFormat>

<f:param>相反,它能够将子组件编码为参数值。