Ich versuche mein PyQt-Programm zu internationalisieren. Ich habe kein Problem damit, meine eigenen Übersetzungen zu laden, aber ich habe bemerkt, dass Dateidialoge immer noch das Systemgebietsschema verwenden. Antworten wie this schlagen vor, dass ich in der Lage sein sollte, eingebaute Qt-Widgets zu übersetzen, indem ich die mit Qt gelieferten Übersetzungsdateien installiere.Übersetzungen für Qt-Datei-Dialog laden
Ich habe versucht, die deutschen Übersetzungen, die Qt bietet, zu laden, aber mein Dateidialog wird immer noch in Englisch angezeigt. Funktioniert das mit den statischen Funktionen QFileDialog
? Mache ich etwas falsch?
from PyQt5 import QtCore, QtWidgets
class Window(QtWidgets.QWidget):
def __init__(self):
super(Window, self).__init__()
button = QtWidgets.QPushButton('Show dialog')
button.clicked.connect(self.showdialog)
layout = QtWidgets.QVBoxLayout(self)
layout.addWidget(button)
def showdialog(self):
QtWidgets.QFileDialog.getOpenFileName()
if __name__ == '__main__':
app = QtWidgets.QApplication([])
translator = QtCore.QTranslator()
if translator.load('qt_de', QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)):
app.installTranslator(translator)
print 'qt translations installed'
win = Window()
win.show()
app.exec_()
Aber sicher für native Dialoge, die Übersetzung bereits behandelt wird durch das Betriebssystem arbeiten gemacht werden, so dass Sie nicht tun müssen, um etwas. Das einzige Mal, dass Sie eine Diskrepanz sehen, ist, wenn Sie Ihre Anwendung zwingen, einen Übersetzer zu verwenden, der nicht mit dem aktuellen Gebietsschema übereinstimmt - und diese Situation sollte niemals für den Endbenutzer entstehen. Wenn Sie die Dinge während der Entwicklung richtig testen möchten, müssen Sie Ihr eigenes Systemgebietsschema ändern und sicherstellen, dass Ihre Anwendung den richtigen Übersetzer erkennt und lädt. – ekhumoro