весенние локальные данные - PullRequest
3 голосов
/ 26 ноября 2010

У меня проблемы с настройкой веб-приложения для языковых настроек удаленного пользователя. Я использовал ResourceBundleMessageSource для этого. Это выглядит так:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="resources/messages" /> </bean>

И у меня есть два файла .properties:

  • messages.properties

  • messages_ru.properties

Они расположены в src / resources / messages.

Я хочу настроить свое приложение таким образом, чтобы, когда языковые настройки браузера удаленных пользователей содержали русский, мое приложение должно использовать русские сообщения (messages_ru), в противном случае (если язык не настроен или не русский), оно должно использовать сообщения. свойства (содержит английские сообщения).

Когда я настраиваю русский язык в своем браузере, он работает нормально. Когда я стираю все настройки, он также показывает русский язык (я думаю, что это зависит от настроек локали системы). И когда я устанавливаю другой язык, он также показывает мне русские сообщения.

Единственный способ заставить мое приложение отображать английские сообщения - переименовать messages.properties в messages_en.properties и установить в браузере english lang. Но я хочу, чтобы мое приложение было адаптировано для всех языковых настроек (когда оно использует русский, если нужно, и английский для любых других настроек и любых других стран).

Есть идеи?

1 Ответ

5 голосов
/ 26 ноября 2010

Вам необходимо установить

<bean id="messageSource" 
     class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    <property name="basename" value="resources/messages" />
    <property name="fallbackToSystemLocale" value="false" />
</bean> 

. В этом случае Spring будет использовать messages.properties в качестве запасного варианта, поэтому он должен содержать сообщения в локали «по умолчанию» для вашего приложения.

...