使用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”); ,但是没有用。