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 项目中它没有检索本地化消息的主要内容,如果未能解决你的问题,请参考以下文章

在使用 JSR-303 验证表单时使用 I18n 消息

Mobilefirst 移动应用和 THyM 移动应用的建议

Spring websocket在线聊天室

带有 Cordova 默认应用程序 XML 错误的 Eclipse THyM

在 I18n 插值中使用另一个 I18n 键

Magnolia:如何在多值复合字段中启用 I18N?