Spring 升级到最新版本时引导国际化不起作用
Spring boot internationalization not working when upgrading to latest version
我在将 Spring 引导版本升级到最新版本时遇到了一个小问题。未检测到我的 message.properties 并且未加载国际化,但是当我在版本 1.3.0.RC1 上 运行 时一切正常并且我的消息加载。我没有更改 application.properties 的内容或消息本身的位置。我在这个问题上做了很多谷歌搜索,但从未找到答案。我当前的 application.properties 看起来像这样:
spring.thymeleaf.cache=false
server.session.cookie.http-only=true
spring.resources.cache-period=0
spring.application.name=Cardinal
spring.messages.basename=internationalization/base
spring.mvc.locale=sv_SE
spring.messages.fallback-to-system-locale=true
spring.messages.encoding=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
如您所见,它们位于一个名为 internationalization 的文件夹中,文件的前缀为 base。我不知道该怎么办,非常感谢您的帮助。祝各位编码员愉快,愿代码永远对您有利。
我设法通过使用默认 messages.properties 作为后备来解决此问题,如本博客 post https://spring.io/blog/2016/01/22/spring-boot-1-3-2-released 和@Andy Wilkinson 所述,我的消息配置如下所示:
messages.properties:
index.page.title=Welcome
page.brand=Cardinal
signin.header=Please sign in
signin.email.placeholder=Email
signin.password.placeholder=Password
signin.button.text=Sign in
forgot.password.link.text=Forgot password
rememberme.checkbox.text=Remember me
navbar.header.loginbutton.text=Sign in
messages_sv.properties:
index.page.title=Välkommem
page.brand=Cardinal
signin.header=Vänligen logga in
signin.email.placeholder=E-postadress
signin.password.placeholder=Lösenord
signin.button.text=Logga in
forgot.password.link.text=Glömt Lösenord?
rememberme.checkbox.text=Kom ihåg mig
navbar.header.loginbutton.text=Logga in
和application.yml
server:
context-path: /Cardinal
session:
cookie:
http-only: true
tomcat:
uri-encoding: UTF-8
port: 8082
spring:
thymeleaf:
cache: false
mode: HTML5
encoding: UTF-8
resources:
cache-period: 0
application:
name: Cardinal
messages:
basename: internationalization/messages
encoding: utf-8
mvc:
locale: sv_SE
http:
encoding:
charset: UTF-8
debug: true
希望这可以帮助遇到类似问题的人。
我在将 Spring 引导版本升级到最新版本时遇到了一个小问题。未检测到我的 message.properties 并且未加载国际化,但是当我在版本 1.3.0.RC1 上 运行 时一切正常并且我的消息加载。我没有更改 application.properties 的内容或消息本身的位置。我在这个问题上做了很多谷歌搜索,但从未找到答案。我当前的 application.properties 看起来像这样:
spring.thymeleaf.cache=false
server.session.cookie.http-only=true
spring.resources.cache-period=0
spring.application.name=Cardinal
spring.messages.basename=internationalization/base
spring.mvc.locale=sv_SE
spring.messages.fallback-to-system-locale=true
spring.messages.encoding=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
如您所见,它们位于一个名为 internationalization 的文件夹中,文件的前缀为 base。我不知道该怎么办,非常感谢您的帮助。祝各位编码员愉快,愿代码永远对您有利。
我设法通过使用默认 messages.properties 作为后备来解决此问题,如本博客 post https://spring.io/blog/2016/01/22/spring-boot-1-3-2-released 和@Andy Wilkinson 所述,我的消息配置如下所示:
messages.properties:
index.page.title=Welcome
page.brand=Cardinal
signin.header=Please sign in
signin.email.placeholder=Email
signin.password.placeholder=Password
signin.button.text=Sign in
forgot.password.link.text=Forgot password
rememberme.checkbox.text=Remember me
navbar.header.loginbutton.text=Sign in
messages_sv.properties:
index.page.title=Välkommem
page.brand=Cardinal
signin.header=Vänligen logga in
signin.email.placeholder=E-postadress
signin.password.placeholder=Lösenord
signin.button.text=Logga in
forgot.password.link.text=Glömt Lösenord?
rememberme.checkbox.text=Kom ihåg mig
navbar.header.loginbutton.text=Logga in
和application.yml
server:
context-path: /Cardinal
session:
cookie:
http-only: true
tomcat:
uri-encoding: UTF-8
port: 8082
spring:
thymeleaf:
cache: false
mode: HTML5
encoding: UTF-8
resources:
cache-period: 0
application:
name: Cardinal
messages:
basename: internationalization/messages
encoding: utf-8
mvc:
locale: sv_SE
http:
encoding:
charset: UTF-8
debug: true
希望这可以帮助遇到类似问题的人。