带资源包的Freemarker - 如何避免转义撇号

时间:2016-07-28 04:37:26

标签: freemarker resourcebundle

我正在向这样的模型添加资源包:

b = o.b 

但是,我的l10n团队不希望在我的模板中转义撇号(单引号字符),如:

        Map<String, Object> root = new HashMap<String, Object>();

        Locale locale = org.apache.commons.lang3.LocaleUtils.toLocale(request.getLanguage());

        BeansWrapper beansWrapper = new BeansWrapperBuilder(Configuration.VERSION_2_3_21).build();

        ResourceBundle bundle = ResourceBundle.getBundle("templates/bundles/messages", locale);

        root.put("bundle", new ResourceBundleModel(bundle, beansWrapper));

我的配置中是否可以设置任何按原样输出文本的内容,避免使用单引号转义?

1 个答案:

答案 0 :(得分:1)

如果没有MessageFormat参数,则不必(实际上不必)转义撇号。例如,如果这是您的.properties文件:

m1={0}''s house
m2=Foo''s house
m3=Foo's house

这是你的模板:

${bundle.m1}
${bundle.m2}
${bundle.m3}

${bundle('m1', 'Bar')}

然后这将是输出:

{0}''s house
Foo''s house
Foo's house

Bar's house

如您所见,''仅在上一版本中是必需的。