2014-04-12 4 views
0

단일 모듈로 구성된 GWT maven webapp 프로젝트가 있습니다. 요구 사항이 진화 된 결과, 일부 코드를 별도의 모듈로 추출하여 재사용 할 수 있어야합니다. 지금까지이 프로세스는 다른 프로젝트에서 사용하기 위해 현지화 코드를 추출하기 전까지 잘 진행되었습니다.GWT 다중 모듈 프로젝트의 현지화

나는 을 통해 클라이언트 코드에서 사용되는 MyAppConstantsMyAppMessages 파일과 해당하는 .properties 파일의 인터페이스입니다. 나는, 별도의 모듈로 이동 Localization.gwt.xml 파일을 추가하고 pom.xml 내부에 다음과 같은 지정 : 나는 단순히 Localization.gwt.xml을 상속 기본 응용 프로그램 모듈에서

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <configuration> 
     <module>com.myapp.Localization</module> 
     <!-- Do not compile source files, just check them --> 
     <validateOnly>true</validateOnly> 
     <!-- i18n --> 
     <i18nConstantsBundle>com.myapp.client.MyAppConstants_ru</i18nConstantsBundle> 
     <i18nMessagesBundle>com.myapp.client.MyAppMessages_ru</i18nMessagesBundle> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>i18n</goal> 
       <goal>resources</goal> 
       <goal>compile</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

. 컴파일 결과, .cache.html 파일에는 현지화 된 상수와 메시지 (예 : \u0410\u043B...)가 포함되어 있지 않은 것으로 나타났습니다. GWT 컴파일러가 i18n 단계의 maven 플러그인을 성공적으로 실행 한 후 .generated 폴더에있는 소스 파일 (foo. com.myapp.client.MyAppConstants_ru.java)을 GWT 컴파일러에서 볼 수 없기 때문에 이러한 현상이 발생한다고 생각합니다. 대신 localization.jar에서 찾을 수 있습니다.

이것이 뭔가를 놓치고있는 것처럼 느껴지는 이유는 이것이 해결해야 할 사소한 작업처럼 보이지 않기 때문입니다. 그러한 시나리오를 처리하는 올바른 방법은 무엇입니까?

답변

1

적절한 로컬 리 제이션을 위해서는 GWT 컴파일시 클래스 경로에 .properties 개의 파일이 있어야합니다.

리 바인드 결과 'com.myapp.client.MyAppConstants_ru은'나는에 팠 클래스

해야합니다 : 자신의 존재가이 같은 메시지를 GWT 컴파일 오류를 발생하기 때문에 처음에, 나는 localization.jar에서 그들을 필터링 gwt-dev.jar 내용 및 컴파일러는 실제로 바인딩 경로를 결정하기 위해 클래스 경로에 현지화 속성 파일의 존재를 확인합니다. 어떤이의, 확인 .properties 파일 localization.jar 궁금한데

에 그들의 방법을

  • <goal>i18n</goal>을 제거하고 만드는 localization 모듈
  • 에서 구성을 해당 :

    그래서 내 문제는 해결되었다 i18n 목표는 gwt-maven-plugin입니까?

관련 문제