Qt를 사용하여 파이썬 응용 프로그램에 대한 번역 파일을 만드는 방법을 알아내는 데 어려움이 있습니다.Qt 국제화에 대한 질문
저는 파이썬 2.7, Qt 버전 5.9.1 및 PyQt4 4.12.1을 사용하여 OSX 10.11.6에서 내 GUI를 만듭니다.
지금은 단지 내 코드에서 몇 마디를 번역하고 싶었습니다.
내가 이해하는 한, QtLinguist를 사용하여 .ts 파일을 열고 단어를 번역하고 .qm 파일을 만든 다음 파이썬에서 사용합니다. pylupdate4
로 읽을 수 있습니다 나는이 .PRO 프로젝트 파일을 사용할 필요가 있음을 얻을 Qt Linguist page에서
, 등등 ... 이제
, 나는 내가 .PRO 파일을 만들려면 어떻게해야합니까?
내가 실행 시도 :
$ qmake -project myfile.py
$ pylupdate4 myfile.pro -ts file.ts
을하지만 결과 .PRO 파일이 Tutorial에서 pylupdate4
(XML error: Parse error at line 1, column 1 [...]
)
읽을 수 없습니다, 나는 시도 :
$ pylupdate4 myfile.py -ts file.ts
어떤 Qt 언어학자가 열 수없는 빈 .ts 파일을 만듭니다.
내 브라우저에서 열어 본 15 개의 탭이 도움이되지 않는 것일 수 있습니다. 당신이 문자열을 통과해야합니다 당신 self.tr 사용하는 경우
import sys
import os.path as osp
import os
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QWidget):
def __init__(self):
super(MainWindow,self).__init__()
# Set MainWindow geometry, use settings of last session. If it's first session,
# use defaulted settings
self.settings = QtCore.QSettings('Paul',QtCore.QSettings.NativeFormat)
self.resize(self.settings.value("size", QtCore.QSize(500, 300)).toSize())
self.move(self.settings.value("pos", QtCore.QPoint(5, 5)).toPoint());
self.initUI()
def closeEvent(self, e):
#Save MainWindow geometry session when closing the window
self.settings.setValue("size",self.size())
self.settings.setValue("pos",self.pos())
e.accept()
def initUI(self):
self.hbox = QtGui.QVBoxLayout(self) # Create Vertival box layout to put the buttons
self.myButtons = QtGui.QPushButton('button',self) #create push button
self.myButtons.setStyleSheet("""QPushButton { background-color: red; font:bold 20px}""")
self.myButtons.setToolTip('Push this button')
self.myButtons.setText(self.tr(QtCore.QString('yes')))
comboBox=QtGui.QComboBox(self) #create drop down menu
comboBox.addItem('Portugues')
comboBox.addItem('English')
self.hbox.addWidget(comboBox,1,QtCore.Qt.AlignRight) #add drop down menu to box layout
self.hbox.addStretch(3) # set separation between buttons
self.myButtons.clicked.connect(self.buttonClicked) # what should the button do
self.hbox.addWidget(self.myButtons,1,QtCore.Qt.AlignRight) #add button to box layout
self.setWindowTitle('Test2')
self.show()
def buttonClicked(self):
msbox= QtGui.QMessageBox()
choice=msbox.warning(self,'ok',"This button doesn't do anything!!!")
if choice == QtGui.QMessageBox.No:
print('nanan')
else:
print('Bye')
self.settings.setValue("size",self.size());
self.settings.setValue("pos",self.pos());
sys.exit()
def main():
app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
translator.load("~/basefiles/translations/qt_pt.qm")
app.installTranslator(translator)
ex = MainWindow()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
pyqt4의 버전은 무엇입니까? – eyllanesc
버전 4.12.1, 최신 버전 Riverbank 다운로드 페이지 – Elcook