从Java代码访问外部化字符串



我目前在一个经典的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为自己提供了正确的区域设置集,但不幸的是我没有时间搜索。

最新更新