如何从消息包中获取值?

How to get values from message bundle?

在我的应用程序配置 class 中,我有以下条目:

    @Bean(name = "messageSource")
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("/i18n/messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }

    @Bean
    public LocaleResolver localeResolver(){
        SessionLocaleResolver resolver = new SessionLocaleResolver();
        resolver.setDefaultLocale(new Locale("pt_BR"));
        return resolver;
    } 

message_pt_BR.properties根据附图定位。

我正在尝试使用 <span th:text="#{app.name}"></span> 文件访问此条目,但我得到的是:

??app.name_pt_br??

我在这里错过了什么?

您需要将 messages 包替换到 /resources 文件夹。
您还需要添加 messages.properties 包,这是必需的。

您的消息包名称应该是

messages_pt_BR.properties

区分大小写。

没有默认消息包也没关系(messages.properties)。我的工作正常只有 _en 和 _zh_TW.

如果您提供正确的路径来设置 basename,那么您将资源包放在任何地方都应该没问题。