当“inLocale”设置为土耳其语(JDK 1.6.0_29)时,可用的语言环境显示国家/地区?

时间:2011-12-21 14:31:54

标签: java locale jdk1.6 turkish

根据Locale.getDisplayLanguage(Locale inLocale)的javadoc,

  

返回适合的语言环境国家/地区的名称   显示给用户。如果可能,返回的名称将被本地化   根据inLocale。例如,如果语言环境是fr_FR和   inLocale是en_US,getDisplayCountry()将返回“France”;如果   locale是en_US,inLocale是fr_FR,getDisplayCountry()将返回   “Etats-紫光”。如果返回的名称无法根据本地化   inLocale对。 (比如,我们没有克罗地亚的日本名字),这个   函数依赖于英文名称,最后是ISO代码   作为最后的手段。如果区域设置未指定国家/地区,则为此   function返回空字符串。

因此,当我执行以下代码片段时:

final class TurkishDemo 
{
    public static void main(String[] args) 
    {
        final Locale l = new Locale("tr");
        for(Locale locale: Locale.getAvailableLocales())
        {
            System.out.println(locale.getDisplayCountry(l));
        }
    }
}

我得到以下输出:

  

日本秘鲁

     

日本巴拿马波斯尼亚和黑塞哥维那

     

危地马拉阿拉伯联合酋长国挪威阿尔巴尼亚

     

伊拉克也门

     

葡萄牙塞浦路斯卡塔尔马其顿

     

瑞士美国芬兰

     

马耳他斯洛文尼亚斯洛伐克

     

Türkiye的

     

沙特阿拉伯

     

英国塞尔维亚和黑山

     

新西兰挪威立陶宛尼加拉瓜

     

爱尔兰比利时西班牙黎巴嫩

     

加拿大爱沙尼亚科威特塞尔维亚美国墨西哥苏丹印度尼西亚

     

乌拉圭拉脱维亚

     

巴西叙利亚

     

多米尼加共和国瑞士印度委内瑞拉巴林菲律宾   突尼斯

     

奥地利

     

荷兰厄瓜多尔台湾约旦

     

冰岛哥伦比亚哥斯达黎加智利埃及南非泰国希腊   意大利

     

匈牙利

     爱尔兰乌克兰波兰卢森堡比利时印度西班牙摩洛哥玻利维亚   澳大利亚

     

新加坡

     

萨尔瓦多俄罗斯韩国

     

阿尔及利亚越南黑山

     

利比亚

     

中国白俄罗斯香港

     

以色列保加利亚

     

马耳他巴拉圭

     

法国捷克共和国瑞士罗马尼亚波多黎各加拿大德国

     

卢森堡

     

阿根廷

     

马来西亚克罗地亚新加坡

     

阿曼

     

     

瑞典丹麦洪都拉斯

您会注意到几乎所有(土耳其除外)都会回到英文显示国家/地区名称。这是预期的,还是我做错了什么?

1 个答案:

答案 0 :(得分:3)

我认为你的代码是正确的。我在我的机器上运行代码的行为相同。除土耳其本身外,似乎JDK没有这些国家名称的土耳其语翻译。