gpt4 book ai didi

java - Locale 和 ResourceBundle 之间有什么关系

转载 作者:行者123 更新时间:2023-12-01 15:07:41 25 4
gpt4 key购买 nike

有人可以解释一下JDK提供的Locale和ResourceBundle类之间的关系吗?和 difference between i18n vs l10n as given in this answer一样吗?

最佳答案

Locale和ResourceBundle的关系是,Locale用于读取正确的属性文件。基本上,ResourceBundle.Control 类采用一个 Locale 对象,并给定属性文件的基本名称,它会尝试找到最佳匹配的文件。例如:

ResourceBundle rb = ResourceBundle.getbundle("messages", Locale.forLanguageTag("zh-TW");

如果您这样做,ResourceBundle.Control将查找messages_zh_TW.properties、messages_zh-Hant-TW.properties、messages_zh-Hant.properties、messages_zh.properties,如果找不到任何消息,则最后回退到messages.properties具体资源文件的。

编辑

最后补充一件事。如果省略 Locale 参数,ResourceBundle.getBundle(String) 将根据您的默认 Locale 返回属性文件 - 您可以通过以下方式获取:

Locale default = Locale.getDefault(Locale.Category.DISPLAY);

尽管似乎没有必要进行过多的输入(在桌面应用程序的上下文中),但始终传递区域设置是一个很好的做法,因为它使代码更易于理解。

关于java - Locale 和 ResourceBundle 之间有什么关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12758644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com