【问题标题】:How get messageSource's message if the locale doesn't have a property file?如果语言环境没有属性文件,如何获取 messageSource 的消息?
【发布时间】:2023-04-01 12:31:01
【问题描述】:

我只定义了法语和美国英语文件(messages_en_US.propertiesmessages_fr.properties)。我还创建了一个 bean 语言环境解析器来将默认设置为 en-US:

@Configuration
public class LocalizationConfig
{    
    @Bean
    public LocaleResolver getLocaleResolver()
    {
        SessionLocaleResolver resolver = new SessionLocaleResolver();

        //Default to the US
        resolver.setDefaultLocale( Locale.US );

        return resolver;
    }
}

但是当我调用下面的方法时,它会抛出一个“NoSuchMessageException”:

messageSource.getMessage(
    "test.message",
    new Object[] {},
    Locale.GERMAN

);

如果请求的语言环境不存在,我如何让它使用默认值?

【问题讨论】:

    标签: java spring spring-boot internationalization


    【解决方案1】:

    您可以将 messages_en_US.properties 重命名为 messages.properties。在您的情况下,它将成为除“fr”之外的任何语言环境的默认消息包。

    【讨论】:

    • 问题是我需要为 MessageSource 添加一个 bean 并将基本名称设置为那里的正确目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多