我目前在一个经典的Maven项目中使用Thymeleaf(没有Spring),我无法在文档中找到一种简单的方法来从Java代码中访问外部化国际化字符串,例如Rails的t()
函数。
我找到了下面的教程,但对于我想做的事情来说,它似乎过于复杂了。
Thymeleaf文档(http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#a-multi-language-welcome)说默认配置是使用属性文件。
这个标准消息解析器期望在与模板相同的文件夹中的.properties文件中找到/WEB-INF/templates/home.html的消息,并且具有相同的名称,例如:
- /web - inf/模板/home_en。
- /web - inf/模板/home_es。属性。
- /web - inf/模板/home_pt_BR。葡萄牙房产(巴西)语言文字。
- /web - inf/home/模板。默认文本的属性(如果语言环境不匹配)。
属性文件home_es。属性有一个像
这样的条目home.welcome=¡Bienvenido a nuestra tienda de comestibles!
你可以这样使用:
<p th:text="#{home.welcome}">Welcome to our grocery store!</p>
我最终采用了一个原始的解决方案,通过读取属性文件并将它们提取到Properties
类中。
这是不理想的,因为这迫使我自己处理模板名称和区域设置,以找到正确的属性,但由于这是一个小项目,这不是什么大问题。我希望Thymeleaf为自己提供了正确的区域设置集,但不幸的是我没有时间搜索。