5

У меня есть проект с несколькими модулями Spring с Maven. Я использую Spring 3.2.3 с конфигурацией аннотаций.Spring multi module i18n, с модулями, расширяющими сообщение. Содержимое источника

У меня есть следующий макет:

parent 
    common (depends on parent) 
    webapp (depends on parent, common, module1, module2) 
    module1 (depends on parent) 
    module2 (depends on parent) 

мне нужно что common, module1 и module2 может указать свои собственные свойства i18n (а webapp собирает эти файлы и предоставляет их как-то?!):

common: src/main/resources/i18n/messages_en.properties 
module1: src/main/resources/i18n/messages_en.properties 
module2: src/main/resources/i18n/messages_en.properties 

Я попытался с помощью

@Bean 
public MessageSource messageSource() { 
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); 
    messageSource.setBasename("classpath:/i18n/messages"); 
    messageSource.setDefaultEncoding("UTF-8"); 
    messageSource.setUseCodeAsDefaultMessage(true); 
    return messageSource; 
} 

Но, похоже, Spring просто использует один этих файлов перевода, но вместо этого он должен использовать все.

Другой возможностью было бы указать уникальное имя файла свойств для каждого модуля, но тогда я не знаю, что basename для установки через messageSource.setBasename(...).

Благодарим за помощь!

+0

У меня есть та же самая проблема. = ( –

ответ

0

У меня есть сообщение в модуле и в массиве родительского базового каталога я поставил

классам
 <property name="basenames"> 

     <array> 

     <value>/WEB-INF/resources/xxx.i18n</value> 

      <value>#{T(com.prueba.test.J2EEDeclarations).MESSAGES_BASENAME}</value> 

     </array> 
    </property> 
+0

У вас есть это сообщение, но что с ним делать? Пожалуйста, объясните свой ответ (должны ли они добавить это в свой файл конфигурации mvn? Используйте что-то подобное? ...?) – NatNgs

0

Я собираюсь объяснить мне лучше.

Обычно у нас есть файл с URL-адресом файлов нового модуля. Например com.prueba.test.J2EEDeclarations

общественного J2EEDeclarations конечного класса { общественность статической конечная строка MESSAGES_BASENAME = "/WEB-INF/resources/pruebaUtils.i18n";

С помощью этого модуля мы создаем баночку в нашем Maven хранилище

И в родительских мы импортируем эту банку.

После того, что мы имеем только изменить базовое имя, чтобы использовать свойства или новый модуль

<array> 

    <value>/WEB-INF/resources/xxx.i18n</value> 

     <value>#{T(com.prueba.test.J2EEDeclarations).MESSAGES_BASENAME}</value> 

    </array> 

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

  • Нет связанных вопросов^_^