Доступна ли страна отображения локали, когда для inLocale задано значение Turkish (JDK 1.6.0_29)? - PullRequest
3 голосов
/ 21 декабря 2011

Согласно Javadoc для Locale.getDisplayLanguage(Locale inLocale),

Возвращает название страны локали, которая подходит для отображать пользователю. Если возможно, возвращенное имя будет локализовано в соответствии с inLocale. Например, если локаль fr_FR и inLocale - это en_US, getDisplayCountry () вернет "France"; если локаль en_US и inLocale fr_FR, getDisplayCountry () вернется "Etats-Unis". Если возвращенное имя не может быть локализовано в соответствии с inLocale. (скажем, у нас нет японского названия для Хорватии), это функция возвращается к английскому имени и, наконец, к коду ISO в качестве крайней меры. Если в локали не указана страна, это Функция возвращает пустую строку.

Итак, когда я выполняю следующий фрагмент кода:

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 Ответ

3 голосов
/ 21 декабря 2011

Я думаю, что ваш код правильный. Я получил такое же поведение при запуске кода на моей машине. Похоже, что у JDK нет переводов на турецкий язык для названий этих стран, кроме самой Турции.

...