Problem with QTranslator (by GNU gettext user)
Unsolved
General and Desktop
-
Hello,
usually I do use GNU gettext to localize my Python applications. Today I realized that Qt (PyQt) do not localize; e.g. Yes/No buttons.I found code using QTranslator and tried it out. But the buttons in my test application are not translated (to German). I checked the docu but I don't understand the background of it.
I assume that Qt do need a po/mo file. But how do I know where it is? I assume it was installed while I installed Qt. Shouldn't Qt know for itself where to find its translation and selected it by default based on the current locale?
Here is my minimal (not so) working Python example.
#!/usr/bin/env python3 from PyQt5.QtWidgets import QApplication, QDialogButtonBox from PyQt5.QtCore import QTranslator, QLocale, QLibraryInfo def get_translator(): translator = QTranslator() locale = QLocale.system().name() print(f'{locale}') # <-- de_DE translator.load('qt_%s' % locale, QLibraryInfo.location(QLibraryInfo.TranslationsPath)) return translator if __name__ == '__main__': app = QApplication([]) t = get_translator() app.installTranslator(t) buttonBox = QDialogButtonBox( QDialogButtonBox.Ok | QDialogButtonBox.Cancel | QDialogButtonBox.Yes | QDialogButtonBox.No ) buttonBox.show() app.exec()
-