2012-05-31 6 views
3

Я делаю приложение на Java. Это приложение может быть интернационализировано с использованием ResourceBundle. Я хочу разрешить пользователю выбирать язык, который он хочет использовать. И есть вопрос: как перечислить доступные языки для программы? Я не хочу использовать Locale.getAvailableLocales(), потому что я не знаю, получил ли приложение файл .properties для выбранного языка. Также есть второй вопрос: могу ли я добавить возможность добавлять дополнительные языковые файлы вне файла .jar? И последний вопрос: есть ли лучшее интернационализационное решение?Интернационализация - перечисление и добавление языков

С уважением

+0

* «Я хочу разрешить пользователю выбирать язык, который он хочет» * Он предоставляется бесплатно ОС. –

+0

Нет ... Я имею в виду: «Я хочу разрешить пользователю выбирать язык для МОИ ЗАЯВКИ, что он хочет» :) – m4tx

+0

Просто вопрос: почему вы хотите заставить пользователя выбирать свой язык вместо того, чтобы обнаруживать локаль ? Я действительно не знаю, почему так много людей совершают эту ошибку. –

ответ

2

Вы можете просто сохранить фиксированный список поддерживаемых локалей в некоторой константе вашего приложения. Если вам нужно сделать эту динамику, я вижу два решения:

  • перейдите по доступным локалям (или языкам), попробуйте загрузить соответствующий файл свойств пакета (используя Class.getResourceAsStream()) и учтите, что локаль поддерживается, если вы получаете InputStream и не поддерживаете, если вы получаете нуль.

Вы можете позволить пользователю добавить пакет, помещая некоторый каталог в путь к классам, в дополнение к вашей банке. Отбросьте файл свойств в этом каталоге (с учетом иерархии пакетов), et voilà.

Смежные вопросы