i18n

소프트웨어 스크린 샷:
i18n
소프트웨어 정보:
버전: 0.1
업로드 날짜: 14 Apr 15
개발자: Antonio Cuni
라이센스: 무료
인기: 67

Rating: 3.0/5 (Total Votes: 1)

.

국제화는 워크 플로우와 국제화 된 응용 프로그램의 개발 및 NBSP을 단순화하려고 패키지입니다, 그것은 특히 gettext를하고 바벨에 주위에 얇은 래퍼 기존 도구입니다.
기본 사용법
# 1 demo.py
#
i18n.translator 수입 번역기에서
supported_languages​​ = [ 'it_IT', 'fr_FR의', 'De_DE 만']
# 이탈리아어 번역을 활성화
TR = 번역기 ( '/ 경로 / / 루트', supported_languages​​을, 'it_IT')
인쇄 TR ._ ( '안녕하세요 세계!')
위치 / 경로 / / 루트 / 프로젝트의 루트 디렉토리입니다. 인스턴스화 할 때, 번역기 클래스는 자동으로 생성라는 디렉토리 / 경로 /에 / 루트 / 번역이 저장되는 언어.
메시지를 추출
실제 번역 작업을 수행하기 전에, 당신은 pybabel 추출물과 pybabel 업데이트 래퍼는 국제화 모듈에서 추출 명령을 호출하여, 소스 파일에서 메시지를 추출해야합니다 :
& NBSP; 파이썬 -m 국제화 --root = / 경로 /에가 / 루트 --languages​​ = it_IT, fr_FR의 경우, De_DE 만 추출
추출물은 내부에 싸여 모든 메시지 호출을 찾습니다에 _ ()에서 gettext () 또는 ngettext ()와 파일이라는 언어 / template.pot을 생산하고 있습니다. 이 응용 프로그램에있는 모든 메시지를 포함하는 표준 gettext를 포 file`입니다.
또한,도 $ 코드는 위의 예에서 supported_languages​​ (it_IT,이 fr_FR와 De_DE 만에 나열된 언어 중 하나입니다 언어 / $ 코드 / LC_MESSAGES / messages.po 같은 지원되는 각 언어에 대한 메시지 카탈로그 파일을 만듭니다) (추출 ).
카탈로그 파일은 예 QT 언어 학자 또는 Poedit을 위해, 지금은 많은 기존 도구 중 하나를 사용하여 번역 할 준비가 된 것입니다. 애플리케이션의 정확한 기능을 위해, 전체 언어 / 계층은 유지 될 필요가있다. 우리는 응용 프로그램에 속하는 다른 파일과 함께 버전 제어 시스템의 다양한 messages.po 파일을 추적하는 것이 좋습니다.
메시지를 업데이트
응용 프로그램의 개발하는 동안, 당신은 분명히 새로운 메시지를 추가 할 것은 번역합니다. 이 (기존의 번역 포함) 기존 카탈로그 파일, 콘텐츠를 발견하면 새로 추출 된 메시지와 함께 병합 : 추출 명령은 자동으로이 사건을 처리 할 수​​ 있습니다.
카탈로그를 컴파일
그것은 gettext를 함께 사용하기 전에 카탈로그 파일을 컴파일 할 필요가있다. 기본적으로, 우리의 번역기 객체는 자동으로 .mo 해당 파일을 생성 언어 /에있는 모든 카탈로그를 컴파일합니다. 컴파일은 카탈로그 파일이 수정 된 경우에만 수행됩니다. 이것은 대부분의 경우는 카탈로그의 컴파일에 대해 걱정할 필요가 없습니다.
이 단계에 대한 자세한 제어 할 원하는 경우 번역기 생성자 거짓 autocompile을 = 전달하고 명령 줄에서 수동으로 컴파일 할 수 있습니다 :
& NBSP; 파이썬 -m 국제화 --root = / 경로 /에가 / 루트 --languages​​ = it_IT, fr_FR의 경우, De_DE 만 컴파일
데이터베이스에 번역을 저장
일부 응용 프로그램은 새로운 번역을 정의 및 / 또는 기본 사람을 대체 할 수있는 사용자를 할 때 유용합니다. 국제화는 번역기의 하위 클래스 인 DBTranslator 클래스,이 사용 케이스를 지원합니다. 번역 할 때, 먼저 DBTranslator 데​​이터베이스에 보인다 : 메세지가 발견되지 않으면, 표준의 gettext 동작에 위임한다.
DBTranslator은 SQLAlchem​​y의 기반으로합니다. 생성자는 추가 엔진 매개 변수를 :
i18n.dbtranslator 수입 DBTranslator에서
SQLAlchem​​y의 수입 create_engine에서
엔진 = create_engine ( 'SQLite는 : ///db.sqlite')
ROOT = '/ 경로 /에 / 루트'
국어 = [ 'it_IT', 'fr_FR의']
DEST_LANGUAGE = 'it_IT'
TR = DBTranslator (ROOT, 언어 DEST_LANGUAGE, 엔진 = 엔진)
인쇄 TR ._ ( "안녕하세요 세계")
DBTranslator 자동으로 DB의 테이블 translation_entries을 만듭니다. 그리고, 표를 조작하는 사용자 인터페이스를 제공하는 애플리케이션에 달려있다. 테스트를 위해, 당신은 DB에 새로운 번역을 삽입 할 add_translation () 메서드를 사용할 수 있습니다 :
tr.add_translation ( "it_IT", "안녕하세요!", "챠오 몬도")
인쇄 TR ._ ( "안녕하세요!") # 인쇄 "챠오 몬도"
글로벌 번역기를 사용하는 방법
디자인으로 국제화는 완전히 전역 상태를 방지하기 위해 시도합니다. 이것은 당신이 원하는만큼 번역기 및 DBTranslator, 다른 디렉토리 및 / 또는 데이터베이스를 참조하여 각각의 하나의 인스턴스를 할 수 있음을 의미합니다. 이 테스트에 특히 유용합니다.
그러나 실제로 대부분의 프로젝트는 프로젝트의 모든 구성 요소의 메시지에 대해 알고 글로벌 번역기를 사용하고 싶습니다. 데모 애플리케이션 translate.py 모듈에 할 수있는 방법을 도시한다 :
수입 평
i18n.translator 수입 번역기에서
#이 파일이있는 디렉토리로 프로젝트의 루트를 설정
ROOT = py.path.local (__ 파일 __). dirpath ()
국어 = [ 'it_IT', 'fr_FR의', 'De_DE 만']
TR = 번역기 (ROOT, 언어 'it_IT')
_ = tr._
ngettext = tr.ngettext
__name__ == '__main__'의 경우 :
& NBSP; tr.cmdline (sys.argv에)
이 방법은 응용 프로그램의 나머지 부분은 단순히 가져 translate.py에서 _ ()와 ngettext ()를 사용할 수 있습니다. 또는, 환경 설정, 수입 직접 TR 객체와 사용 TR ._ ()와 tr.ngettext에서 () 메시지를 번역합니다.
코드의 마지막 두 줄은 수동으로 루트 디렉터리 및 지원되는 언어를 지정하지 않고도 추출물을 호출하고 명령 줄에서 컴파일 할 수있는 편리한 방법을 할 수 있습니다. 그냥 실행
& NBSP; 파이썬 translate.py 추출물 # ... 또는 컴파일

이 요구 사항 :

이 파이썬

유사한 소프트웨어

speaklater
speaklater

20 Feb 15

gtranslator
gtranslator

14 Apr 15

potpie
potpie

14 Apr 15

개발자의 기타 소프트웨어 Antonio Cuni

pdbpp
pdbpp

11 May 15

코멘트 i18n

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!