Как были выбраны локальные константы?
Класс Java java.util.Locale
имеет набор полей public static final
для языков/стран для прямых ссылок на определенные локали. Другие локали могут быть легко использованы с помощью соответствующих конструкторов.
Однако выбор значений кажется мне довольно произвольным.
Языки (в том порядке, в котором они появляются в источнике): английский, французский, немецкий, итальянский, японский, корейский, китайский, упрощенный китайский, традиционный китайский
Страны: Франция, Германия, Италия, Япония, Корея, Китай, КНР, Тайвань, Великобритания, США, Канда и Канада, Франция (для региона fr_CA).
Есть ли у кого-нибудь идея (или даже догадка) о том, как выбираются эти языки/страны?
Ответы
Ответ 1
Эти коды определяются стандартами ISO 3166 для кодов стран и 639 для кодов языков. См. Также страница W3C по интернационализации.
Edit:
Перечитав вопрос, ОП уже знал это:-)
Согласно статье Sun Интернационализация: понимание языка в платформе Java эти значения выбраны в качестве примеров, и это даже говорит нам:
Так как существует так мало готовых локалей, вы, вероятно, должны просто избегать этих статические объекты вообще.
Ответ 2
Я бы предположил, что это просто наиболее часто используемые локали в качестве удобства для разработчиков.
Из Javadoc:
Класс Locale предоставляет ряд удобных констант, которые можно использовать для создания объектов Locale для обычно используемых локалей.
Ответ 3
Я предполагаю, что они используют свои языки уровня 1 - те, для которых JRE локализована. Что касается стран, я думаю, что они просто сопоставляются с языками. Ну, мы, вероятно, никогда не узнаем, если кто-то из участников не выскажется.