Java ResourceBundle更改为默认语言

Java ResourceBundle更改为默认语言,java,internationalization,resourcebundle,Java,Internationalization,Resourcebundle,我已经用Java创建了以下内容,它从正确的MessegesBundle\u en\u GB.properties文件读取: ResourceBundle标签= getBundle(“MessegesBundle”,新语言环境(“en”、“GB”); labels.getString(“测试”); 然而,当我尝试使用另一种语言(苏格兰盖尔语)时,它只是默认回到en_GB ResourceBundle标签= getBundle(“MessesBundle”,新语言环境(“gd”、“GB”); sy

我已经用Java创建了以下内容,它从正确的MessegesBundle\u en\u GB.properties文件读取:

ResourceBundle标签=
getBundle(“MessegesBundle”,新语言环境(“en”、“GB”);
labels.getString(“测试”);
然而,当我尝试使用另一种语言(苏格兰盖尔语)时,它只是默认回到en_GB

ResourceBundle标签=
getBundle(“MessesBundle”,新语言环境(“gd”、“GB”);
system.out.println(labels.getLocale());//返回en GB
labels.getString(“测试”);
查看
Locale.getAvailableLocales()中的可用区域设置列表和“gd”不会出现

这是否意味着我不能将
ResourceBundle
用于I18N,或者有没有办法添加Gaelic或强制
ResourceBundle
使用正确的属性文件


谢谢

通过
getAvailableLocales()
返回的区域设置不是很重要,因为您可以像以前那样创建新的区域设置:
新区域设置(“gd”、“GB”)

正如java文档中所述,区域设置的主要目的是标识资源:资源包、数字格式等。标识
locale
的字符串甚至在创建时都不会进行验证


我的猜测是,在类路径中没有可用的MessesBundle\u gd\u GB.properties资源。

getAvailableCales()
返回的区域设置不是很重要,因为您可以像以前那样创建新的区域设置:
新区域设置(“gd”,“GB”)

正如java文档中所述,区域设置的主要目的是标识资源:资源包、数字格式等。标识
locale
的字符串甚至在创建时都不会进行验证


我的猜测是类路径中没有可用的MessegesBundle\u gd\u GB.properties资源。

服务器需要安装该字符集语言才能加载它,我想您可以“强制”但是,在为页面提供服务时,您需要从用户处获取特定信息,作为分配该页面语言的请求。

服务器需要安装该字符集语言才能加载它,我想您可以“强制”但是,在为页面提供服务时,您可能需要从用户处获取特定信息,作为分配该页面语言的请求。

您是否创建了MessesBundle\u gd\u GB.properties文件并保存在ClassPath中?我在我的机器上尝试了此示例,它工作正常。是的,它在我的另一台计算机上工作好。你是否创建了MessesBundle\u gd\u GB.properties文件并保存在ClassPath中?我在我的机器上尝试了这个示例,它运行良好。是的,它在我的另一台计算机上运行。将在完成清理和构建后于明天重试。Yup将
MessesBundle\u gd\u GB.properties
文件拼写错误Yup将
MessesBundle\u gd\u GB.properties
文件拼写错误