5

Ich habe ein Multi-Modul Spring-Projekt mit Maven. Ich benutze Spring 3.2.3 mit Annotation Config.Spring Multi-Modul i18n, mit Modulen die Nachricht erweitern Quelle Inhalt

Ich habe folgendes Layout:

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

Ich brauche das common, module1 und module2 ihre eigenen i18n Eigenschaften angeben können (und die webapp sammelt diese Dateien und bietet ihnen irgendwie?!):

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

ich versuchte

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

Aber es scheint wie Frühling wird nur eine dieser Übersetzungsdateien verwenden, aber stattdessen sollte es alle verwenden.

Eine andere Möglichkeit wäre, einen eindeutigen Dateinamen für jedes Modul anzugeben, aber dann weiß ich nicht, Basisname über messageSource.setBasename(...) festgelegt werden.

Danke für Ihre Hilfe!

+0

ich das gleiche Problem haben, zu verwenden. = ( –

Antwort

0

Ich habe eine Nachricht in einem Modul und in dem übergeordneten Basisnamen Array habe ich den Classpath

 <property name="basenames"> 

     <array> 

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

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

     </array> 
    </property> 
+0

Ok du hast diese Nachricht, aber was damit zu tun? Bitte erkläre deine Antwort (sollten sie das zu ihrer mvn config Datei hinzufügen? Benutze etwas ähnliches? ...?) – NatNgs

0

Ich werde mich besser erklären.

Normalerweise haben wir eine Datei mit der URL der Dateien des neuen Moduls. Zum Beispiel com.prueba.test.J2EEDeclarations

public final class J2EEDeclarations { public static final String MESSAGES_BASENAME = "/WEB-INF/resources/pruebaUtils.i18n";

Mit diesem Modul wir ein Glas in unserem Maven-Repository

Und in der Mutter importieren wir diese jar erstellen.

Danach müssen wir nur den Basisnamen ändern Sie die Eigenschaften oder das neue Modul

<array> 

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

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

    </array>