如何在freemarker中对本地化字符串进行替换

时间:2011-06-20 06:21:08

标签: spring localization freemarker

我正在使用spring和freemarker,并且有基本的工作。

我有一个像

这样的属性文件
help.text=For further information please see the <a href="{0}">help page</a>.

我目前正在使用

输出本地化消息
${rc.getMessage("help.text")}

但是我无法弄清楚如何传递我的替换变量。你能帮忙吗?

干杯, 彼得

4 个答案:

答案 0 :(得分:2)

如果我正确阅读了Spring API documentation about RequestContext(您的rc?),那么

${rc.getMessage("help.txt", ["yourHelpUrl"])}

可能会有效,因为getMessage可以通过消息参数获得额外的List参数,您可以通过FreeMarker sequence提供这些参数。

答案 1 :(得分:1)

<#import "/spring.ftl" as spring/>


<#assign args = ["yourHelpUrl"]>
<@spring.messageArgs "help.txt" args/>

答案 2 :(得分:0)

我总是在我的Java代码中的某个地方执行替换变量,然后将完全本地化的文本转储到一个地图中,由Freemarker访问它,如下所示:

${localizedValues["help.txt"]}

答案 3 :(得分:-2)

如果您在spring MVC上下文中正确配置freemarker,那么正确的方法是:

  1. 导入模板中的弹簧宏
  2. 使用mensaje macro
  3. <#import "/spring.ftl" as spring />
    <@spring.messageText "code", "Default message"/>

    请参阅文档:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/view.html#view-velocity