java - ResourceBundle getLocale().getDisplayLanguage() 返回空字符串

标签 java string locale resourcebundle

我正在尝试国际化我的应用程序,我开始使用 ResourceBundleLocale 进行练习,使用一个创建 ResourceBundle rb 的简单函数> 使用机器的默认 Locale 并在打印语言后:

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

我有不同的资源包属性文件,以语言_开头: Properties files

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

可能是什么问题?

最佳答案

您的代码应该要么根本不指定区域设置,以允许 Java 解析当前区域设置

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

或使用Locale参数代替字符串连接

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

关于java - ResourceBundle getLocale().getDisplayLanguage() 返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51322831/

相关文章:

java - Flink Streaming 在计算求和时抛出异常

c++ - 如何使用动态调整大小的字符串数组?

internationalization - 是否有特定于语言环境的静态文件的命名约定?

ruby-on-rails - Rails - 查找不同语言环境之间丢失的键(.yml 文件)

java - 如何将SNMP与spring框架集成?

java - 当我告诉它运行 Java 14 时,为什么 Gradle 会尝试使用 Java 8?

c - strcpy执行可能出现的错误

c# - C#中的子串词

android - 非拉丁语言环境中的 PatternSyntaxException

java - 从命令行运行 Eclipse 项目