我正在将网站国际化,我似乎无法找到存储包含其他标签的大段落的方法。
例如,假设我有这个:( 称这个例子为1 )
<h1> the title </h1>
<p>
... A very large paragraph ... <h:link value="click me" outocme="newPage"/> ... more text...
</p>
或者类似的东西:(称这个例子2 )
<h1> check this list out </h1>
<ul>
<li> ... text here </li>
<li> ... text here </li>
<!-- more items -->
</ul>
我在JSF 2.0中并使用bundeled资源来对我的页面进行国际化,并且工作正常,因为有许多示例如何执行此操作。
但我喜欢能够做的就是示例1 (msg是我的变量链接到我的包)
<h1> #{msg['page.title']} </h1>
<p> #{msg['page.largeParagraph']} </p>
示例2 看起来像这样:
<h1> #{msg['page2.title']} </h1>
<ul>
#{msg['page2.myList']}
</ul>
有没有办法做到这一点,或者我必须求助于这样的事情(使用示例1 )
<h1> #{msg['page.title']} </h1>
<p>
#{msg['page.largeParagraph.part1']} <h:link value="#{msg['page.largeParagraph.link']} #{msg['page.largeParagraph.part2']}
</p>
同样适用于示例2 ,其中我需要为每个<li>
添加不同的条目。
当我们做这类事情时,最佳做法是什么?
感谢您的任何意见。
我发现默认情况下会转义字符。因此我尝试过:
<p><h:outputText value="#{msg['page.paragraphWithLink']}" escape="false"/></p>
不幸的是,这对我没用。
使用escape="false"
确实适用于<strong>
,但绝对不适用于<h:link>
。
答案 0 :(得分:2)
您无法在捆绑文件中指定JSF组件。它们不会被解析为组件树的一部分。 webbrowser也不了解JSF标签,它只能理解HTML。简单的HTML应该与<h:outputText escape="false">
一起使用。
page.paragraphWithLink=lorem ipsum <a href="newPage.xhtml">click me</a> dolor sit amet