cor*_*tin 6 java localization resourcebundle
我正在使用java.util.ResourceBundle类和属性文件本地化Web应用程序.
我有两个语言环境,fr_FR和en_US,我想使用en_US作为默认值,所以我写了以下文件:
messages_fr_FR.properties 使用fr_FR消息messages.properties 使用en_US消息我的问题是,ResourceBundle.getBundle(BUNDLE_NAME,语言环境)方法依傍Locale.getDefault()使用默认的属性文件,这意味着如果JVM区域设置为fr_FR,则之前
ResourceBundle.getBundle("name", new Locale("en", "US"))返回fr_FR时捆绑.
我可以重命名该messages.properties文件,但这可能会返回一个MissingResourceException以及其他所需和默认的语言环境.
如何在不复制属性文件或调用的情况下忽略系统区域设置Locale.setDefault?
cor*_*tin 13
您可以通过使用自定义来实现ResourceBundle.Control,可以通过getFallbackLocale显式重载,也可以使用:
ResourceBundle.getBundle("name", new Locale("en", "US"), ResourceBundle.Control.getNoFallbackControl(ResourceBundle.Control.FORMAT_PROPERTIES))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2650 次 |
| 最近记录: |