在java中获取OS语言

Red*_*arp 7 java resourcebundle internationalization

我在这里遇到了一个问题.

我是法国人,正在使用英文版的Windows XP.因此,我将区域选项设置为法语,但仍然具有英语UI.

我正在开发一个小型Java SE应用程序,并决定使用资源包将其国际化.

要显示正确的语言,我使用此函数创建包:

private static ResourceBundle bundle = ResourceBundle
          .getBundle("locale.Strings", Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)

但是Locale.getDefault()函数返回区域设置(意思是:法语),而不是系统UI语言.因此,我的UI在英语环境中默认为法语.好吧,那不是我所期待的......

有谁知道恢复系统UI语言的独立于平台的方式?提前致谢 !

编辑:修复本地到区域设置,谢谢.

Bal*_*usC 7

这是Windows中的错误配置.该Locale#getDefault()返回系统语言环境,而不是日期/时间格式化区域或位置.

在下面的Windows XP特定屏幕截图中,您可以将区域选项语言设置为法语或任何您喜欢的." 高级"菜单中的下拉列表实际上设置了系统区域设置,在您的情况下应设置为英语.

在此输入图像描述

不可否认,这在Windows XP中得到了很好的解释,Windows 7做得更好一些:

在此输入图像描述