2011-11-25 8 views
2

PyQt의 QPlaintTextEdit에서 컨텍스트 메뉴를 번역 (지역화)하는 가장 좋은 방법은 무엇입니까? 예를 들어PyQt의 StandardContextMenu 다국어 화

: 여기

popup_menu = self.createStandardContextMenu() popup_menu.insertMenu(popup_menu.actions()[0], QMenu(self.tr("My menu")))

, 나는 "내 메뉴"(pylupdate4, 다음 lrelease)가 아닌 다른 모든 기준, "과거" "컷"같은 항목, ...

를 번역 할 수 있습니다

답변

0

QPlaintTextEdit에 대한 상황에 맞는 메뉴는 클래스 (다른 위젯 인 QTextEdit에서도 사용됨)에서 제공되며 각 메뉴 항목의 텍스트는 이미 tr 전화로 포장되어 있습니다. 따라서이 문자열들을 번역하고자하는 모든 응용 프로그램은 Qt 라이브러리 자체에 적합한 번역 파일을로드해야합니다.

Qt는 일반적으로 Qt 라이브러리와 함께 설치해야하는 20 개 이상의 언어에 대한 번역 파일을 제공합니다. 이 파일의 위치는 다음과 같이 프로그램 결정될 수있다

>>> from PyQt4 import QtCore 
>>> print QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath) 
/usr/share/qt/translations 

언어에 대한 번역 파일이없는 경우, 템플릿에서 하나를 만들 필요가있을 것입니다. 템플릿은 Qt의 lconvert 도구를 사용하여 기존 번역 파일을 제거 방법 : 자세한 내용은

lconvert --drop-translations -o qt_xx.ts qt_fr.qm 

생산 및 번역을 사용하여, here를 참조하십시오.