From 2849c021b660212999c63a062a53c4890a67e6b6 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Mon, 30 Jan 2023 12:52:50 +0100 Subject: [PATCH] qml: add gettext-wrapping QTranslator --- electrum/gui/qml/__init__.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/electrum/gui/qml/__init__.py b/electrum/gui/qml/__init__.py index 11c6354cc..fdbca3980 100644 --- a/electrum/gui/qml/__init__.py +++ b/electrum/gui/qml/__init__.py @@ -15,11 +15,11 @@ try: except Exception: sys.exit("Error: Could not import PyQt5.QtQml on Linux systems, you may try 'sudo apt-get install python3-pyqt5.qtquick'") -from PyQt5.QtCore import (Qt, QCoreApplication, QObject, QLocale, QTimer, pyqtSignal, +from PyQt5.QtCore import (Qt, QCoreApplication, QObject, QLocale, QTranslator, QTimer, pyqtSignal, QT_VERSION_STR, PYQT_VERSION_STR) from PyQt5.QtGui import QGuiApplication -from electrum.i18n import set_language, languages +from electrum.i18n import set_language, languages, language from electrum.plugin import run_hook from electrum.util import profiler from electrum.logging import Logger @@ -32,6 +32,16 @@ if TYPE_CHECKING: from .qeapp import ElectrumQmlApplication, Exception_Hook +class ElectrumTranslator(QTranslator): + def __init__(self, parent=None): + super().__init__(parent) + + def translate(self, context, source_text, disambiguation, n): + if source_text == "": + return "" + return language.gettext(source_text) + + class ElectrumGui(Logger): @profiler @@ -61,6 +71,8 @@ class ElectrumGui(Logger): self.gui_thread = threading.current_thread() self.plugins = plugins self.app = ElectrumQmlApplication(sys.argv, config, daemon, plugins) + self.translator = ElectrumTranslator() + self.app.installTranslator(self.translator) # timer self.timer = QTimer(self.app)