Subj : 가능합니까? 예를 들어 QtGui.QFileDialog().getSaveFileName()
버튼을 "저장"버튼을 "Conservare"로 바꾸고 "취소"를 "무시"로 번역 할 수 있습니까? 속도를 발명하지 않고 QFileDialog/QFontDialog
을 기반으로 수업을 만들 수 있습니까? 누군가는 시스템 로케일에 따라 이러한 기능이 항상 번역 될 것이라고 말했습니다. 믿지 마라. OpenSUSE의 러시아어 버전은 그것이 거짓말이라고 말한다. :-) 러시아어 Windows 7은 이러한 동작을합니다. 내 시스템에서 볼 수있는 모든 문자열은 영어입니다. 나는 민족 주의자가 아니지만 다른 언어로 된 문자열을 사용하고 싶습니다. :-) 감사!PyQt4 : QFileDialog 및 QFontDialog 현지화
0
A
답변
2
표준 Qt 설치에는 Qt 라이브러리 자체에 대해 20 개 정도의 번역 파일이 포함되어야합니다.
Qt i18n 문서의 this section에서 사용법에 대한 설명을 볼 수 있습니다.
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.buttons = QtGui.QDialogButtonBox(self)
button = self.buttons.addButton(QtGui.QDialogButtonBox.Open)
button.clicked.connect(self.handleOpen)
button = self.buttons.addButton(QtGui.QDialogButtonBox.Close)
button.clicked.connect(self.close)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.buttons)
def handleOpen(self):
dialog = QtGui.QFileDialog()
dialog.exec_()
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
if len(sys.argv) > 1:
locale = sys.argv[1]
else:
locale = QtCore.QLocale.system().name()
translator.load('qt_%s' % locale,
QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath))
app.installTranslator(translator)
window = Window()
window.show()
sys.exit(app.exec_())
0
이미 해결책을 찾았습니다 : qm 개의 파일. lrelease
을 사용하여 ts 개의 파일을 가져올 수 있습니다.
감사 :
여기에 기본 PyQt4 예입니다! 정말 유용했습니다. 단 하나의 질문 : 다른 번역 (기본 Qt와 내 번역)을 함께 사용할 수 있습니까? – ghostmansd
QTranslator.translate와 함께 다른 qm 파일을 통해 번역 된 앱의 일부 요소가 있습니다. – ghostmansd
@ghostmansd. 네, 여러 번역사를 설치할 수 있습니다. 번역을위한 검색은 역순으로 이루어 지므로 자신의'qm' 파일 _last_ ([here] (http://developer.qt.nokia.com/doc/qt-4.8/qcoreapplication .html # installTranslator)). – ekhumoro