qq_40377912 2019-07-16 17:28 采纳率: 0%
浏览 244

用thymeleaf做国际化为什么会这样?

图片说明图片说明

图片说明
显示的值不是配置文件中设置的

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-10 19:28
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    从您提供的图片和文本描述来看,使用Thymeleaf做国际化时出现的问题是:

    1. 配置文件中的语言信息(如messages_en_US.properties)没有被正确加载到Spring Boot应用中。这可能导致在视图中看到的语言不匹配实际的配置。

    2. 在Thymeleaf模板中尝试获取locale变量时遇到问题。由于默认情况下Thymeleaf不支持国际化处理,所以可能无法正常解析locale变量。

    解决方法包括:

    1. 将配置文件中的语言信息复制到resources/lang目录下,并重命名为.properties格式。

    2. 在Thymeleaf模板中使用${message}标签来动态获取语言资源文件中的语言信息。例如:

    <h1 th:text="${message.hello}"></h1>
    

    或者

    <h1 th:text="${locale.messages.hello}"></h1>
    
    1. 如果需要使用自定义的localeConfig类,可以在application.propertiesapplication.yml等配置文件中添加相应的配置,比如:
    # application.properties
    spring.thymeleaf.locale-config-class=com.example.MyLocaleConfig
    
    # application.yml
    spring:
      thymeleaf:
        locale-config-class: com.example.MyLocaleConfig
    

    请注意,上述解决方案依赖于您已经创建了适当的MyLocaleConfig类以实现语言资源管理功能。如果尚未创建此类,请参考Thymeleaf文档了解如何创建一个适应性好的国际化处理器。

    评论

报告相同问题?