diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 56dbe4fab6..32f7a32efa 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -508,14 +508,21 @@ class ResizableDialog(QDialog): gui_thread = None - +qt_app = None class Application(QApplication): def __init__(self, args): qargs = [i.encode('utf-8') if isinstance(i, unicode) else i for i in args] QApplication.__init__(self, qargs) - global gui_thread + global gui_thread, qt_app gui_thread = QThread.currentThread() + self._translator = None + self.load_translations() + qt_app = self + + def load_translations(self): + if self._translator is not None: + self.removeTranslator(self._translator) self._translator = QTranslator(self) if set_qt_translator(self._translator): self.installTranslator(self._translator) diff --git a/src/calibre/gui2/wizard/__init__.py b/src/calibre/gui2/wizard/__init__.py index 13222861ef..adde8c7fde 100644 --- a/src/calibre/gui2/wizard/__init__.py +++ b/src/calibre/gui2/wizard/__init__.py @@ -492,7 +492,9 @@ class LibraryPage(QWizardPage, LibraryUI): import __builtin__ __builtin__.__dict__['_'] = lambda(x): x from calibre.utils.localization import set_translators + from calibre.gui2 import qt_app set_translators() + qt_app.load_translations() self.emit(SIGNAL('retranslate()')) self.init_languages() @@ -627,7 +629,7 @@ def wizard(parent=None): return w if __name__ == '__main__': - from PyQt4.Qt import QApplication - app = QApplication([]) + from calibre.gui2 import Application + app = Application([]) wizard().exec_()