Freemarker(默认情况下)uses the locale to build the file names it looks for。例如,使用tos.ftl
区域设置加载en_US
(模板)会查找:
当页面在不同语言之间完全不同时,这对于翻译整个页面非常有用。例如,“服务条款”页面可能主要是静态的,因此不同的语言将具有完全不同的内容。在这种情况下,将整个内容外部化为从消息包加载的消息是一件麻烦事。
我现在正在学习Thymeleaf,无法找到有关类似功能的任何信息。我知道Thymeleaf使用localized message bundles来填充th:text
元素,但是它可以加载模板文件的本地化版本吗?
注意:我正在使用Spring Boot
答案 0 :(得分:1)
Thymeleaf的行为与Spring 4 MVC Internationalization相同(我猜你使用Thymeleaf和Spring?),它使用messages.properties
来实现这一点。
例如,您有一个带有#{hello}
消息的模板:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<title></title>
</head>
<body>
<span th:text="#{hello}">
</body>
#{hello}
文字将绑定到messages.properties
个hello
。
如果您locale
是另一个,例如ru_RU
您只需添加messages_ru_RU.properties
并更改应用的locale
即可。
之后,您的消息将从本地化的属性文件中获取。
请注意,如果您使用本地化消息文件,则必须才能拥有messages.properties
文件。