Клиент и сервер с разными локалями - механизм отката - PullRequest
0 голосов
/ 13 марта 2012

У меня есть сервер jboss, работающий с локалью fr_CH, и клиент приложения, работающий с локалью de_CH. У меня есть два пакета - messages.properties (root) и messages_fr_CH.properties. Это странно, но, находясь на стороне сервера, ResourceBundle.getBundle ("bundleLocation", new Locale ("de", "CH")) возвращает пакет для локали fr_CH вместо корневого пакета.

Единственное, о чем я мог подумать, это о том, что на стороне сервера Locale.getDefault () - это "fr_CH", но, если я правильно понял, из-за концепции постепенной деградации стандартному механизму аварийного восстановления Java не следует заботиться об этом ...

есть еще мысли, в чем может быть проблема?

Спасибо, Jan

1 Ответ

1 голос
/ 13 марта 2012

Вы правы, это поведение из-за локали по умолчанию.Посмотрите на javadoc ResourceBundle.getBundle:

getBundle использует базовое имя, указанную локаль и локаль по умолчанию (полученную из Locale.getDefault) для генерации последовательности имен пакетов-кандидатов.Если язык, страна и вариант указанного языкового стандарта являются пустыми строками, то базовое имя является единственным подходящим именем пакета.В противном случае следующая последовательность генерируется из значений атрибутов указанного языкового стандарта (язык1, страна1 и вариант1) и языкового стандарта по умолчанию (язык2, страна2 и вариант2):

baseName + "_" + language1 + "_" + country1 + "_" + variant1
baseName + "_" + language1 + "_" + country1
baseName + "_" + language1
baseName + "_" + language2 + "_" + country2 + "_" + variant2
baseName + "_" + language2 + "_" + country2
baseName + "_" + language2
baseName

Итакваш случай baseName + "_" + language2 + "_" + country2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...