【发布时间】:2017-06-23 14:46:50
【问题描述】:
我有 3 个资源包 (RB) 属性文件:RB_en, RB_fr and RB。我将默认区域设置为“en_US”,现在我使用getBundle("RB", new Locale("fr")) 来获取键“key1”的值。我知道 Java 会首先查找属性文件 RB_fr,但是如果在 RB_fr 中找不到键“key1”,那么它将继续在哪个 oder 中查找? RB_en 文件还是 RB 文件?
所以这里有一些演示代码:
RB.properties: key1 = valueRB
RB_en.properties: key1 = valueRB_en
RB_fr.properties:key2 = valueRB_fr
Locale fr = new Locale("fr");
Locale.setDefault(new Locale("en", "US"));
ResourceBundle b = ResourceBundle.getBundle("RB", fr);
b.getString("key1");
我看了一本书,OCP Java SE 8 Programmer II,上面说订单是RB_fr -> RB_en -> RB。但是当我运行测试时,它显示的顺序是RB_fr -> RB,RB_en 甚至没有考虑到。所以这让我有点困惑,谁能解释一下哪个顺序是正确的?
【问题讨论】:
-
你能告诉我们你的测试代码吗?顺序实际上应该如书中所述。您假设您的默认语言环境是
en_US还是您知道? -
嗨,我将默认语言环境设置为“en_US”
-
嗨@Marvin,我只是编辑帖子以使其更清晰
标签: java resourcebundle