在我的应用程序中,我使用java资源包来翻译其标签。 我目前有两个文件:英语加载了错误的Java资源包
- resources.properties用标签(默认语言)
- resources_fr.properties与标签在法国
然后,我用下面的加载包的属性命令:
ResourceBundle.getBundle(RESOURCE_BUNDLE_NAME, locale);
...其中locale
是用户的语言环境。
当我使用法语网络浏览器工作时,没关系,我用法语收到了所有消息,因为我的语言环境正确设置为fr。 但是,当我将浏览器切换到英语美国时,他们仍然是法语!
的locale
变量的设置是否正确与en_US区域设置,但getBundle
方法返回我与FR语言环境,而不是仅仅返回默认包捆...
它是一个正常的行为?我很惊讶,因为我期待的resources.properties
英语值时,该区域具有连接到它(如法国)没有具体的资源包使用...
您是否尝试设置英文区域设置? – Lenymm
好吧,我想通过这种方法会发生什么: - 首先,检查提供的区域设置(“en_US”和“en”)的捆绑 - 如果它们不可用,系统的默认区域设置(这里是法文) - 最后,如果没有找到,则使用带有基本名称(即没有任何语言或国家代码)的包文件 因此,即使我可以保留我的'resources.properties'文件作为默认文件,我应该将其复制到'resources_en.properties'文件以避免使用系统区域设置(fr)。 –
很好的工作,找出自己。如果您还有其他问题,请务必阅读下面的链接。 – Lenymm