加载Java消息属性以进行内部化
我有以下Java i18n消息类:加载Java消息属性以进行内部化,java,localization,internationalization,translation,properties-file,Java,Localization,Internationalization,Translation,Properties File,我有以下Java i18n消息类: public class Messages { private static final String BUNDLE_NAME = "languages.message"; private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); private Messages() { } publi
public class Messages {
private static final String BUNDLE_NAME = "languages.message";
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private Messages() {
}
public static String getI18n(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
public static String getI18n(String key, Object... params ) {
try {
return MessageFormat.format(RESOURCE_BUNDLE.getString(key), params);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}
我已创建以下邮件属性文件:
message.properties
message_de.properties
message_de_DE.properties
在我的程序中,我根据系统的默认语言环境获得翻译。如果是de_de
,则会加载德语邮件属性message_de_de.properties
如果默认区域设置为de_CH
,则没有消息属性文件。那么,消息的属性是作为后备加载的还是我需要自己实现它?根据博客文章,你是对的
因此,当系统的默认区域设置为de_de,并且您为区域设置en_US请求资源时,属性文件的查找顺序为:
MyApp_en_美国酒店
MyApp_en.properties
MyApp_de_de.properties
MyApp_de.properties
MyApp.properties