Тема: это возможно? Например, могу ли я перевести QtGui.QFileDialog().getSaveFileName()
кнопку «Сохранить» на «Сохранить», а «Отменить» на «Игнорировать»? Можно ли создать свой класс на основе QFileDialog/QFontDialog
, не изобретая скорость? Кто-то сказал, что эти функции всегда будут переведены, в зависимости от локали ОС. Не поверите, моя русская версия OpenSUSE говорит, что это ложь. :-) И у русской Windows 7 такое поведение. Все строки, которые я вижу в своих системах, английские. Я не националист, но хочу использовать строки на других языках. :-) Спасибо!
PyQt4: локализация QFileDialog и QFontDialog
Ответы (2)
Стандартная установка 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_())
person
ekhumoro
schedule
03.02.2012
Спасибо! Это было действительно полезно. Только один вопрос: могу ли я использовать разные переводы (по умолчанию Qt и мой собственный) вместе?
- person ghostmansd; 04.02.2012
У меня есть некоторые элементы в моем приложении, переведенные через другой файл qm с помощью QTranslator.translate.
- person ghostmansd; 04.02.2012
@ghostmansd. Да, вы можете установить несколько переводчиков. Поиск переводов выполняется в обратном порядке, поэтому вы, вероятно, захотите установить свой собственный
qm
файл последним (см. здесь).
- person ekhumoro; 04.02.2012
Я уже нашел решение: файлы qm. Вы можете получить их из файлов ts, используя lrelease
.
person
ghostmansd
schedule
03.02.2012