2016-11-25 45 views
3

我使用Spring boot i18n。春季i18n的行爲在Windows和Linux之間是不同的

在windows中,如果選擇的區域設置沒有語句A,它將使用messages.properties中的語句。

在CentOS中,如果選擇的語言環境沒有句子A,它將首先使用messages_en_US.properties中的句子,如果messages_en也沒有句子,它將使用messages.properties中的句子。

爲什麼它不同?

@Bean 
public LocaleResolver localeResolver() { 
    CookieLocaleResolver clr = new CookieLocaleResolver();//also can use SessionLocaleResolver 
    clr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); 
    return clr; 
} 

@Bean 
public LocaleChangeInterceptor localeChangeInterceptor() { 
    LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); 
    lci.setParamName("locale"); 
    return lci; 
} 

@Override 
public void addInterceptors(InterceptorRegistry registry) { 
    registry.addInterceptor(localeChangeInterceptor()); 
} 

回答

0

我也解釋不清楚的行爲,但它可以通過ResourceBundle.Control.getFallbackLocale引起的。 Javadoc說:

如果給定語言環境不是默認語言環境,默認實現將返回默認語言環境。

因此,我建議檢查Java默認語言環境是否有所作爲。

相關問題