NL (голландский) локаль в Swing не работает - PullRequest
4 голосов
/ 20 сентября 2011

У меня есть Java-приложение с поддержкой нескольких языков. Когда я меняю язык (в диалоге настроек), меняется язык всего приложения, включая язык компонентов Swing, таких как JFileChooser. Это идеально подходит для английского, испанского и французского языков. Но когда я выбираю нидерландский язык, язык компонентов Swing (JFileChooser, диалоги подтверждения и т. Д.) Меняется на английский.

Ниже приведен код, который меняет язык на голландский. Примечание: для других языков я использую тот же код (за исключением, конечно, строки "NL"), и он отлично работает.

Locale locale = new Locale("nl");
Locale.setDefault(locale);
JComponent.setDefaultLocale(locale);

Я также пытался создать локаль, используя new Locale("nl", "BE"); и new Locale("nl", "NL");, но ни один из них не работал. Есть ли проблема с голландским языком? Или я тут что-то не так делаю?

Ответы [ 2 ]

7 голосов
/ 20 сентября 2011

Как указано здесь Голландский не поддерживается для переводов интерфейса пользователя:

Перевод пользовательского интерфейса Java SE Runtime Environment Элементы пользовательского интерфейса, предоставляемые Java SE Runtime Environment 6, включают в себя диалоговые окна Swing, сообщения, записанные средой выполнения в стандартный поток вывода и стандартные потоки ошибок, а также сообщения, создаваемые инструментами, поставляемыми с JRE. Эти элементы пользовательского интерфейса локализованы на следующие языки:

Language Locale ID Китайский (упрощенный) zh_CN
Китайский (традиционный) zh_TW
Английский en
Франц.
Немецкий де
Итальянский это
Японский язык
Корейский ко
Португальский (бразильский) pt_BR
Испанский es
Шведская св

1 голос
/ 24 января 2018

Несколько лет спустя ... Но вы также можете создать класс-оболочку, подобный этому

public class DutchLocale {
    static public final Locale NL = new Locale("nl", "NL");
}
...