2011-09-23 2 views
2

gettext를 사용하여 국제화를 지원하는 Python 응용 프로그램에서 * .mo 메시지 카탈로그의 경로를 기본값 localedir/language/LC_MESSAGES/domain.mo 대신 po/language.mo으로 변경하고 싶습니다. Launchpad의 번역 인터페이스를 사용하십시오.이 인터페이스는 적어도이 개념을 이해해야합니다.Gettext : 메시지 카탈로그의 다른 경로

그러나 모듈 설명서를 읽은 후에는 gettext 모듈을 원숭이 패치하지 않고이 작업을 수행 할 수있는 방법을 찾지 못하는 것 같습니다. 그것을 할 '공식적인'방법이 있습니까?

[1] https://help.launchpad.net/Translations/YourProject/Exports


편집 : 그것은 단지 *와 .po 파일에 대한 관심으로 잠시 동안 그것에 대해 생각 , 경로를 변경하면, 런치 패드 - 통합 실제로 필요하지 않습니다하지 않는 * .mo 파일을 컴파일합니다. 그래도 응용 프로그램이 시스템 디렉토리를 가능한 한 많이 엉망으로 만든다면 내 질문은 여전히 ​​남아 있습니다 (특히 * nix, Windows 및 OS X에서 실행되는 다중 플랫폼 응용 프로그램을 고려할 때).

답변

3

PHP에 대해 같은 질문을했지만 대답은 근본적인 gettext API에 있습니다. 카탈로그의 경로는 변경할 수 없습니다.

디렉토리 구조는 gettext로 고정됩니다.

여러 패키지에 대한 많은 다른 언어를 저장해야하므로이 정보를 파일 메시지 카탈로그 파일에 추가하는 방법이 필요합니다. Unix 환경에서 일반적으로 사용되는 방법은 파일 이름에이 인코딩을 사용합니다. 이것도 여기서 이루어집니다. 로케일, 로케일 범주 및 도메인 이름의 이름 다음에 bindtextdomains 두 번째 인수에 주어진 디렉토리 이름 (또는 기본 디렉토리)에 연결된다 :

만약 DIR_Name/로케일/LC_category/domain_name.mo

참조 : PHP Gettext: how to change the default MO path after setting the path of the domain?

+0

이것은 당신이 임의의 디렉토리에서이 작업을 수행 할 수 있습니다 워드 프레스와 비록 일관성, 알고 중대하다 : 만약 DIR_Name/domain-xx_XX.mo – daveagp