2014-04-09 2 views
1

나는 내 자신의 파이썬 응용 프로그램을 작성 중이며 소스 배포판에 현지화를 포함시키는 올바른 방법이 무엇인지 궁금합니다. 나는 setuptools의 문서로 어려움을 겪었다. 로컬 리 제이션은 거기도 언급되지 않습니다. 내 메시지 카탈로그를 추출하고 컴파일하려면 pypabel을 사용합니다.파이썬 패키지에 현지화를 포함시키는 올바른 방법은 무엇입니까?

질문

  • setup.py와 소스 패키지를 만들기 전에 *.po*.mo에를 자동으로 컴파일 할 수있는 가능성이? 현재 각 언어에 대해 수동으로 모든 것을 컴파일해야합니다 ...
  • 여기에 *.mo - 파일을 포함해야합니까? 몇몇 리눅스 배포판은 그 파일들에 대해 다른 장소를 가지고 있습니다. 제 의견으로는 제가 이렇게 말하고 있습니다. setup.py

    data_files=[('share/locale/de/LC_MESSAGES', ['locale/de/LC_MESSAGES/project.mo']) 
    

    실제로 의미가 없습니다. 그것은 pip와 함께 설치할 때 특정 리눅스 머신에서 작동합니다. 그러나 ... BSD 또는 Windows에 처음 들어

답변

1

을 깰 수있을 파이썬에서 포-파일을 처리하기위한 도구입니다 당신은 당신이 extra commands for setup.py를 얻을 Babel 들여다 좋습니다.

compile_catalogs을 소스 빌드에 필요한 것으로 연결할 수도 있지만, 처음 컴파일하지 않으면 python setup.py develop과 연결된 패키지에서 메시지를 테스트 할 수 없으므로 필요하지 않습니다. . 또한 바벨이 필요한 경우 소스 빌드에 .mo이 전혀 필요하지 않을 수도 있습니다.

두 번째를 들어

: 우리의 애플 리케이션 피라미드 웹 프레임 워크를 사용하는이 대회는 package_data를 사용하는이 :

setup(
    # ... 
    package_data={'yourpackage': ['i18n/*/LC_MESSAGES/*.mo' ]}, 
    # ... 

당신의 지방화가 yourpackage/i18n/에있는 경우 다음 예를 들어, 경로를 찾을 pkg_resources을 사용할 수 있습니다 :

pkg_resources.resource_filename('yourpackage', 'i18n') 

은 번역 위치를 가리 킵니다.

관련 문제