2009-02-23 2 views
9

누구나 국제화를 위해 GNU gettext를 사용하여 대규모 Java 응용 프로그램을 개발 한 경험이 있습니까? 나는 내 소스 코드에 영어 텍스트가 있다는 것을 정말로 좋아하지만, 내가하고있는 일이 내가 속한 상대적으로 큰 소프트웨어 프로젝트에 실용적인지 확인하고 싶다.국제화를위한 Java 및 GNU gettext

경험이 있으신 분은 Java로 리소스를 찾으려면 무엇을 사용하고 계십니까? 현재 Gettext Commons (http://code.google.com/p/gettext-commons/)을 시도하고 있는데, 지금까지 잘 작동하는 것 같습니다.

원본 텍스트를 원본 코드로 유지하는 gettext 대신 사용할 수있는 다른 방법은 무엇입니까? Windows에서 지원되는 유사한 도구가 유용 할 것입니다.

답변

6

JSOM 오픈 소스 OpenStreetMap Java 편집기 프로젝트는 Gettext 라이브러리를 사용하여 모든 번역을 처리하며 사람들이 KBabel, poedit, launchpad와 같은 다양한 번역 도구를 사용할 수 있기 때문에 잘 작동합니다.) po 파일을 사용하여 플랫폼 제한이 없도록하십시오. 당신이 언급 한 설정이 모든 플랫폼에서 사용할 수 없습니다 생각하는 이유 이 또한 내가 확실히 표시되지 않습니다 - 당신은 확실히 Windows에서 gettext를 사용하는 것은 다음을 참조하십시오 here 또는 나는 확실히 그것을 추천 할 것입니다 얼마나 인기 gettext를 감안할 때

here.

+0

답변 해 주셔서 감사합니다. gettext의 Windows 버전을 제대로 작동시키려는 데 문제가 있었지만 이러한 문제는 좀 더 많은 노력으로 해결할 수있었습니다. Cygwin을 사용하여 Windows 바탕 화면에서 GNU 버전을 실행했는데 제대로 작동했습니다. – dcstraw

3

대신 plain old Java message resource bundles을 사용할 수 있습니다.

편집 : 실제로 개발 팀에서 사용하는 것은 TMX format 표준으로 XML 파일에 현지화 문자열을 지정할 수 있습니다. 이것은 번역 도구에서 일반적으로 사용되는 형식입니다. Here is a free one을 사용하면 이러한 파일을 더 쉽게 편집 할 수 있습니다.

그럼에도 불구하고 XML 처리 도구 덕분에 더 나은 인코딩 처리를 제외하고는 메시지 자원 번들에 실질적인 이점이나 기능을 제공하지 않기 때문에 이전에 언급하지 않았습니다 (국제화를 처리 할 때 인코딩이 목에 실제로 고통을 줄 수 있음). 영어와 다른 언어로 된 리터럴).

우리가 실제로 사용하는 것은 소프트웨어가이 XML 형식을 구문 분석하고 HTML 페이지 또는 스윙 프레임의 언어를 응용 프로그램을 다시 시작하지 않고 변경할 수있는 자체 프레임 워크입니다. 이런 방식으로 리터럴 변환을 처리하는 간단한 라이브러리를 개발하는 것은 어렵지 않지만 구현해야하는 단점이 있습니다.

+2

Java 내장 I18N 기능을 옵션으로 평가 중이지만 gettext가 리소스 번들에 비해 몇 가지 장점 (예 : 복수형 처리, 코드 가독성)을 가지고 있기 때문에 유용한 대안인지 알고 싶습니다. – dcstraw

관련 문제