2014-01-17 7 views
3

첫째, 내 문제는 두 유사합니다피 .properties의 파일 GNU의 gettext 자바

JAVA gettext commons

error reading .po file in java

  • 내가 내 응용 프로그램을 internationnalizing을위한 GNU의 gettext 유틸리티를 사용하고 싶습니다. 적절한 키 - 값 쌍을 사용하여 translations.properties 파일을 만들어 작동 시키지만, 명시 적으로 fr_CA 또는 Locale.CANADA_FRENCH 로케일을 설정하더라도 내 translations_fr_CA.properties을 얻지 못할 것입니다. 이것은 나의 첫 번째 문제였다.

  • 두 번째이자 가장 중요한 문제 : 좋은 gettext complete msgid를 사용할 수 없어서 .properties 파일을 제거 할 수 없습니다. 내 .po 파일을 .class에 msgfmt --java2 [...]으로 컴파일했지만 ResourceBundle은 .properties 파일 없이는로드되지 않습니다.

    java_gettext_testing.zip 내가 그것을 간단하게 압축에 gnu.gettext.GettextResource을 포함 : 여기

내 현재 테스트 프로젝트의 우편 번호입니다. javac test/*.java을 사용하여 컴파일하고 java test.test

도와 주셔서 감사합니다!

답변

4

나는 그것을 결국 알아 냈습니다. 이유는 모르겠지만 .class 파일을 패키지에 넣지 않고 사용할 수 없습니다. 내 구조를 재생산하고 마침내 그것을 적절한 패키지 정보를 제공하는 테스트 할 ./translations.po 파일을 컴파일합니다

msgfmt --java2 -d . -r test.translations translations.po 

/translations.class 내와 .po 파일을 컴파일 할 수 있습니다.

지금은 아직이

ResourceBundle myRes = ResourceBundle.getBundle("test.translations"); // load my test/translations.class file 

GettextResource.gettext(myRes, "message id to translate"); 

을 작업 로케일을 가야하지만 필수는 지금 나에게있다 할 수 있습니다.

편집이 질문은 내가 그 msgfmt에서이 "진짜"자바로 파일을와 .po 컴파일 된 객체 이해하는 데 도움이 How to use ResourceBundle