首页 > 解决方案 > ResourceBundle getLocale().getDisplayLanguage() 返回空字符串

问题描述

我正在尝试使我的应用程序国际化,并开始使用ResourceBundleand s 练习一个简单的函数,该函数使用机器的默认值Locale创建 a并在打印语言之后:ResourceBundle rbLocale

private void loadView() {
    ResourceBundle rb = ResourceBundle.getBundle("languages_"+Locale.getDefault());
    System.out.println("Language: "+rb.getLocale().getDisplayLanguage());
}

我有不同的资源包属性文件以language_开头: 属性文件

当我调用函数loadView时,它不会打印语言。它什么也不打印。

可能是什么问题?

标签: javastringlocaleresourcebundle

解决方案


您的代码应该根本不指定语言环境以允许 Java 解析当前的语言环境

ResourceBundle rb = ResourceBundle.getBundle("languages");

或使用Locale参数而不是字符串连接

ResourceBundle rb = ResourceBundle.getBundle("languages", Locale.getDefault());

推荐阅读