PyQt4: QFileDialog и QFontDialog локализация - PullRequest
0 голосов
/ 03 февраля 2012

Subj: это возможно?Например, можно ли перевести QtGui.QFileDialog().getSaveFileName() кнопку «Сохранить» в «Сохранение» и «Отмена» в «Пропустить»?Можно ли создать мой класс на основе QFileDialog/QFontDialog, не изобретая скорость?Кто-то сказал, что эти функции всегда будут переводиться, в зависимости от локали системы.Не верьте, моя русская версия OpenSUSE говорит, что это ложь.:-) И русская Windows 7 имеет такое поведение.Все строки, которые я вижу в моих системах, являются английскими.Я не националист, но я хочу использовать строки на других языках.:-) Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Стандартная установка Qt должна включать около 20 файлов перевода для самой библиотеки Qt.

Объяснение того, как их использовать, можно найти в этом разделе документации Qt i18n.

Вот базовый пример PyQt4:

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 голосов
/ 03 февраля 2012

Я уже нашел решение: qm файлов.Вы можете получить их из ts файлов, используя lrelease.

...