Как заставить китайский язык отображаться на китайском языке как специально упрощенный или традиционный

Я создаю список локалей и распечатываю их локальные языки отображения (т. е. распечатываю ja_JP как 日本語), используя java.util.Locale. Я заметил, что и zh_CN (китайский упрощенный), и zh_TW (китайский традиционный) локализуются как 中文, а не как 简体中文 и 繁体中文. Есть ли способ заставить эти локали включать символы префикса для упрощенного и традиционного без жесткого кодирования, что zh_CN должно быть 简体中文, а zh_TW должно быть 繁体中文? Я знаю, что могу распечатать язык + страна (например, 中文 (中国), но это не совсем то же самое.

Вот фрагмент Java, демонстрирующий, что они одинаковы:

import java.util.Locale;

public final class test {
  public static void main(String[] args) {
    Locale locale1 = new Locale("zh", "cn");
    System.out.println( locale1.getDisplayLanguage(locale1));
    System.out.println( locale1.getDisplayLanguage(Locale.TRADITIONAL_CHINESE));
    System.out.println( locale1.getDisplayLanguage(Locale.SIMPLIFIED_CHINESE));
    System.out.println( locale1.getDisplayCountry(locale1));

    System.out.println( "");

    Locale locale2 = new Locale("zh", "tw");
    System.out.println( locale2.getDisplayLanguage(locale2));
    System.out.println( locale2.getDisplayLanguage(Locale.TRADITIONAL_CHINESE));
    System.out.println( locale2.getDisplayLanguage(Locale.SIMPLIFIED_CHINESE));
    System.out.println( locale2.getDisplayCountry(locale2));
  }
}

person EvilAmarant7x    schedule 02.12.2014    source источник


Ответы (1)


Создание объектов Locale следующим образом должно решить вашу проблему:

Locale locale1 = new Locale("zh", "CN");

Locale locale2 = new Locale("zh", "TW");
person Lokesh R    schedule 07.04.2017
comment
Они не чувствительны к регистру, по крайней мере, не с Java 8. - person Chloe; 16.11.2018