i18n 在 spring-boot / thymeleaf 项目中它没有检索本地化消息
Posted
技术标签:
【中文标题】i18n 在 spring-boot / thymeleaf 项目中它没有检索本地化消息【英文标题】:i18n in spring-boot / thymeleaf project it's not retrieving localized messages 【发布时间】:2015-12-06 14:24:54 【问题描述】:我正在尝试将我当前的 spring-boot / thymeleaf 项目的观点国际化。到目前为止,我这样做了:
在 html 文件中,我将对文本的引用更改为:
h2 th:text="#about.title"
我将此行添加到我的application.properties
文件中:
spring.messages.basename=i18n/messages
将文件*.properties
(与默认语言环境的html文件同名,葡萄牙语言环境的后缀_pt_BR放在我项目的文件夹/src/main/resources/templates/i18n/messages
中。
但是当我运行项目并在浏览器中打开它时,我看到的不是正确的消息,而是>??about.title??
。
我在这里做错了什么?
【问题讨论】:
你能不能试着把你的属性文件放在这里/src/main/resources/i18n/messages。 @GUISSOUMAIssam 我解决了这个问题,将所有消息放在/src/main/resources
目录中的单个message.properties
中(并从application.properties
中删除行spring.messages.basename=i18n/messages
。但现在我得到了一个像这样的本地化消息问题:logo.welcome=Welcome, <a th:href="@/login">log in</a> or <a th:href="@/account">register</a>
(带有@...
变量)。
【参考方案1】:
你可以把你的属性文件放在这里/src/main/resources/i18n/messages
而不是/src/main/resources/templates/i18n/messages
【讨论】:
我解决了这个问题,将所有消息放在/src/main/resources
目录中的单个 message.properties
中(并从 application.properties
中删除行 spring.messages.basename=i18n/messages
。但现在我遇到了问题像这样的本地化消息:logo.welcome=Welcome, <a th:href="@/login">log in</a> or <a th:href="@/account">register</a>
(带有@...
变量)。
不要在你的属性文件上放置 thymleaf 标签,如果可以的话,可以使用简单的 href,例如 logo.welcome=Welcome, log in 或注册.
或者你可以创建更多的属性 logo.welcome=Welcome, logo.login= login , logo.register= register,然后在你的 html 模板上使用 th:href 标签。以上是关于i18n 在 spring-boot / thymeleaf 项目中它没有检索本地化消息的主要内容,如果未能解决你的问题,请参考以下文章
Mobilefirst 移动应用和 THyM 移动应用的建议