使用Freemarker在春季进行本地化

时间:2018-12-12 19:26:43

标签: spring spring-mvc freemarker

使用Spring + Freemarker进行本地化时遇到问题。当我将浏览器语言设置为es(Spanish)时,它可以正常工作。但是,当我将浏览器语言保留为默认语言(en-US)时,它不会加载西班牙语文本。实际上,它会加载英文文本。

我们正在基于服务器端的语言标记来控制本地化(到目前为止,这可能不是正确的方法,但现在还是这样)。

我的 FreeMarkerConfigurer 设置为

@Bean
public FreeMarkerConfigurer freemarkerConfigurer() throws ParseException {
    FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
    freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/freemarker/");
    freeMarkerConfigurer.setDefaultEncoding("UTF-8");
    Properties properties = new Properties();
    //Hardcoded locale just to test Spanish by default
    properties.put("locale", "es");
    configurer.setFreemarkerSettings(properties);
    Map<String, Object> variables = new HashMap<String, Object>();
    variables.put("utils", new FreemarkerUtils());
    configurer.setFreemarkerVariables(variables);
    return configurer;
}

我有两个名为 test.ftl test_es.ftl 的模板。因此,我在想的是默认情况下应该选择 test_es.ftl 。如果我将浏览器首选项语言更改为 es ,它将自动启动,但默认情况下不会启动。我还尝试设置 properties.put(“ localized_lookup”,“ false”); ,但是没有用。

0 个答案:

没有答案