我的主 jar 中打包了一些资源包
widget_en.properties
widget_de.properties
我根据我的默认语言环境检索资源包,如下所示
ResourceBundle.getBundle("widget", Locale.getDefault());
但我想向用户展示支持的可用语言列表,以便可以选择可能与其计算机默认设置不同的语言
但是我在 ResourceBundle 中找不到列出可用语言环境的方法,我不想对列表进行硬编码,因为在添加另一个资源包时我可能会忘记更新它。
编辑
因为我只有不同语言的资源包(我没有国家细化),所以我通过遍历所有已知的语言代码生成了一个列表,并将每个语言代码检查为资源。
String[]langs = Locale.getISOLanguages();
for(String lang:langs)
{
URL rb = ClassLoader.getSystemResource("widget_"+lang+".properties");
if(rb!=null)
{
System.out.println("Found:"+rb.toString());
}
}