| @@ -29,6 +29,9 @@ ui_*.py | |||||
| src/resources_rc.py | src/resources_rc.py | ||||
| qrc_resources*.cpp | qrc_resources*.cpp | ||||
| # Translation files | |||||
| *.qm | |||||
| # Binaries | # Binaries | ||||
| c++/jackmeter/cadence-jackmeter | c++/jackmeter/cadence-jackmeter | ||||
| c++/xycontroller/cadence-xycontroller | c++/xycontroller/cadence-xycontroller | ||||
| @@ -10,6 +10,8 @@ DESTDIR = | |||||
| LINK = ln -s | LINK = ln -s | ||||
| PYUIC ?= pyuic5 | PYUIC ?= pyuic5 | ||||
| PYRCC ?= pyrcc5 | PYRCC ?= pyrcc5 | ||||
| PYLUPDATE ?= pylupdate5 | |||||
| LRELEASE ?= lrelease | |||||
| # Detect X11 rules dir | # Detect X11 rules dir | ||||
| ifeq "$(wildcard /etc/X11/Xsession.d/ )" "" | ifeq "$(wildcard /etc/X11/Xsession.d/ )" "" | ||||
| @@ -19,8 +21,13 @@ else | |||||
| endif | endif | ||||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | # ----------------------------------------------------------------------------------------------------------------------------------------- | ||||
| # Internationalization | |||||
| all: CPP RES UI | |||||
| I18N_LANGUAGES := | |||||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | |||||
| all: CPP RES QM UI | |||||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | # ----------------------------------------------------------------------------------------------------------------------------------------- | ||||
| # C++ code | # C++ code | ||||
| @@ -41,6 +48,19 @@ RES: src/resources_rc.py | |||||
| src/resources_rc.py: resources/resources.qrc | src/resources_rc.py: resources/resources.qrc | ||||
| $(PYRCC) $< -o $@ | $(PYRCC) $< -o $@ | ||||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | |||||
| # Translations | |||||
| TS: $(patsubst %,resources/translations/cadence_%.ts,$(I18N_LANGUAGES)) | |||||
| QM: $(patsubst %,resources/translations/cadence_%.qm,$(I18N_LANGUAGES)) | |||||
| resources/translations/%.ts: | |||||
| @install -d resources/translations | |||||
| $(PYLUPDATE) src/*.py resources/ui/*.ui -ts $@ | |||||
| resources/translations/%.qm: resources/translations/%.ts | |||||
| $(LRELEASE) $< -qm $@ | |||||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | # ----------------------------------------------------------------------------------------------------------------------------------------- | ||||
| # UI code | # UI code | ||||
| @@ -74,7 +94,7 @@ src/ui_%.py: resources/ui/%.ui | |||||
| clean: | clean: | ||||
| $(MAKE) clean -C c++/jackmeter | $(MAKE) clean -C c++/jackmeter | ||||
| $(MAKE) clean -C c++/xycontroller | $(MAKE) clean -C c++/xycontroller | ||||
| rm -f *~ src/*~ src/*.pyc src/ui_*.py src/resources_rc.py | |||||
| rm -f *~ src/*~ src/*.pyc src/ui_*.py src/resources_rc.py resources/translations/*.qm | |||||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | # ----------------------------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -99,6 +119,7 @@ install: | |||||
| install -d $(DESTDIR)$(PREFIX)/share/cadence/pulse2loopback/ | install -d $(DESTDIR)$(PREFIX)/share/cadence/pulse2loopback/ | ||||
| install -d $(DESTDIR)$(PREFIX)/share/cadence/icons/ | install -d $(DESTDIR)$(PREFIX)/share/cadence/icons/ | ||||
| install -d $(DESTDIR)$(PREFIX)/share/cadence/templates/ | install -d $(DESTDIR)$(PREFIX)/share/cadence/templates/ | ||||
| install -d $(DESTDIR)$(PREFIX)/share/cadence/translations/ | |||||
| install -d $(X11_RC_DIR) | install -d $(X11_RC_DIR) | ||||
| # Install script files and binaries | # Install script files and binaries | ||||
| @@ -161,6 +182,11 @@ install: | |||||
| # Install main code | # Install main code | ||||
| install -m 644 src/*.py $(DESTDIR)$(PREFIX)/share/cadence/src/ | install -m 644 src/*.py $(DESTDIR)$(PREFIX)/share/cadence/src/ | ||||
| # Install translations | |||||
| $(foreach l,$(I18N_LANGUAGES),install -m 644 \ | |||||
| resources/translations/cadence_$(l).qm \ | |||||
| $(DESTDIR)$(PREFIX)/share/cadence/translations/) | |||||
| # Install addtional stuff for Cadence | # Install addtional stuff for Cadence | ||||
| install -m 644 data/pulse2jack/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2jack/ | install -m 644 data/pulse2jack/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2jack/ | ||||
| install -m 644 data/pulse2loopback/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2loopback/ | install -m 644 data/pulse2loopback/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2loopback/ | ||||
| @@ -41,6 +41,7 @@ import ui_cadence_rwait | |||||
| from shared_cadence import * | from shared_cadence import * | ||||
| from shared_canvasjack import * | from shared_canvasjack import * | ||||
| from shared_settings import * | from shared_settings import * | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Import getoutput | # Import getoutput | ||||
| @@ -2362,6 +2363,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/cadence.svg")) | app.setWindowIcon(QIcon(":/scalable/cadence.svg")) | ||||
| setup_i18n() | |||||
| if haveDBus: | if haveDBus: | ||||
| gDBus.loop = DBusMainLoop(set_as_default=True) | gDBus.loop = DBusMainLoop(set_as_default=True) | ||||
| @@ -42,6 +42,7 @@ import ui_catarina_connectports | |||||
| import ui_catarina_disconnectports | import ui_catarina_disconnectports | ||||
| from shared_canvasjack import * | from shared_canvasjack import * | ||||
| from shared_settings import * | from shared_settings import * | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Try Import OpenGL | # Try Import OpenGL | ||||
| @@ -1307,6 +1308,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/catarina.svg")) | app.setWindowIcon(QIcon(":/scalable/catarina.svg")) | ||||
| setup_i18n() | |||||
| # Show GUI | # Show GUI | ||||
| gui = CatarinaMainW() | gui = CatarinaMainW() | ||||
| @@ -22,6 +22,7 @@ | |||||
| import ui_catia | import ui_catia | ||||
| from shared_canvasjack import * | from shared_canvasjack import * | ||||
| from shared_settings import * | from shared_settings import * | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Try Import DBus | # Try Import DBus | ||||
| @@ -1384,6 +1385,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/catia.svg")) | app.setWindowIcon(QIcon(":/scalable/catia.svg")) | ||||
| setup_i18n() | |||||
| if jacklib is None: | if jacklib is None: | ||||
| QMessageBox.critical(None, app.translate("CatiaMainW", "Error"), app.translate("CatiaMainW", | QMessageBox.critical(None, app.translate("CatiaMainW", "Error"), app.translate("CatiaMainW", | ||||
| @@ -42,6 +42,7 @@ import ui_claudia_projectproperties | |||||
| import ui_claudia_runcustom | import ui_claudia_runcustom | ||||
| from shared_canvasjack import * | from shared_canvasjack import * | ||||
| from shared_settings import * | from shared_settings import * | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Try Import DBus | # Try Import DBus | ||||
| @@ -2742,6 +2743,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/claudia.svg")) | app.setWindowIcon(QIcon(":/scalable/claudia.svg")) | ||||
| setup_i18n() | |||||
| if not haveDBus: | if not haveDBus: | ||||
| QMessageBox.critical(None, app.translate("ClaudiaMainW", "Error"), app.translate("ClaudiaMainW", | QMessageBox.critical(None, app.translate("ClaudiaMainW", "Error"), app.translate("ClaudiaMainW", | ||||
| @@ -34,6 +34,7 @@ else: | |||||
| import claudia_database as database | import claudia_database as database | ||||
| import ui_claudia_launcher | import ui_claudia_launcher | ||||
| from shared import * | from shared import * | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Carla) | # Imports (Carla) | ||||
| @@ -1357,6 +1358,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/claudia-launcher.svg")) | app.setWindowIcon(QIcon(":/scalable/claudia-launcher.svg")) | ||||
| setup_i18n() | |||||
| # Do not close on SIGUSR1 | # Do not close on SIGUSR1 | ||||
| signal(SIGUSR1, SIG_IGN) | signal(SIGUSR1, SIG_IGN) | ||||
| @@ -34,6 +34,7 @@ else: | |||||
| # Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
| import ui_settings_jack | import ui_settings_jack | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Try Import DBus | # Try Import DBus | ||||
| @@ -934,6 +935,7 @@ if __name__ == '__main__': | |||||
| # App initialization | # App initialization | ||||
| app = QApplication(sys_argv) | app = QApplication(sys_argv) | ||||
| setup_i18n() | |||||
| # Connect to DBus | # Connect to DBus | ||||
| if dbus: | if dbus: | ||||
| @@ -33,6 +33,7 @@ else: | |||||
| import ui_logs | import ui_logs | ||||
| from shared import * | from shared import * | ||||
| from shared_i18n import * | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Fix log text output (get rid of terminal colors stuff) | # Fix log text output (get rid of terminal colors stuff) | ||||
| @@ -451,6 +452,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/cadence.svg")) | app.setWindowIcon(QIcon(":/scalable/cadence.svg")) | ||||
| setup_i18n() | |||||
| # Show GUI | # Show GUI | ||||
| gui = LogsW(None) | gui = LogsW(None) | ||||
| @@ -33,6 +33,7 @@ else: | |||||
| import ui_render | import ui_render | ||||
| from shared import * | from shared import * | ||||
| from shared_i18n import * | |||||
| from jacklib_helpers import * | from jacklib_helpers import * | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -442,6 +443,7 @@ if __name__ == '__main__': | |||||
| app.setApplicationVersion(VERSION) | app.setApplicationVersion(VERSION) | ||||
| app.setOrganizationName("Cadence") | app.setOrganizationName("Cadence") | ||||
| app.setWindowIcon(QIcon(":/scalable/cadence.svg")) | app.setWindowIcon(QIcon(":/scalable/cadence.svg")) | ||||
| setup_i18n() | |||||
| if jacklib is None: | if jacklib is None: | ||||
| QMessageBox.critical(None, app.translate("RenderW", "Error"), app.translate("RenderW", | QMessageBox.critical(None, app.translate("RenderW", "Error"), app.translate("RenderW", | ||||
| @@ -0,0 +1,49 @@ | |||||
| #!/usr/bin/env python3 | |||||
| # -*- coding: utf-8 -*- | |||||
| # Common/Shared code related to Internationalization | |||||
| # Copyright (C) 2019 Filipe Coelho <falktx@falktx.com> | |||||
| # | |||||
| # This program is free software; you can redistribute it and/or modify | |||||
| # it under the terms of the GNU General Public License as published by | |||||
| # the Free Software Foundation; either version 2 of the License, or | |||||
| # any later version. | |||||
| # | |||||
| # This program is distributed in the hope that it will be useful, | |||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| # GNU General Public License for more details. | |||||
| # | |||||
| # For a full copy of the GNU General Public License see the COPYING file | |||||
| # ------------------------------------------------------------------------------------------------------------ | |||||
| # Imports (Global) | |||||
| import os, sys | |||||
| if True: | |||||
| from PyQt5.QtCore import QCoreApplication, QTranslator, QLocale, QLibraryInfo | |||||
| else: | |||||
| from PyQt4.QtCore import QCoreApplication, QTranslator, QLocale, QLibraryInfo | |||||
| def setup_i18n(): | |||||
| app = QCoreApplication.instance() | |||||
| locale = QLocale() | |||||
| syspath = sys.path[0] | |||||
| qmpath = os.path.join(syspath, "..", "translations") | |||||
| # Load translations from Cadence resources | |||||
| translator = QTranslator() | |||||
| if not translator.load(locale, "cadence", "_", qmpath): | |||||
| return False | |||||
| app.installTranslator(translator) | |||||
| app.fAppTranslator = translator | |||||
| # Load translations from Qt libraries | |||||
| translator = QTranslator() | |||||
| if not translator.load(locale, "qt", "_", qmpath): | |||||
| translator.load(locale, "qt", "_", QLibraryInfo.location(QLibraryInfo.TranslationsPath)) | |||||
| app.installTranslator(translator) | |||||
| app.fSysTranslator = translator | |||||
| return True | |||||
| @@ -49,6 +49,8 @@ try: | |||||
| except: | except: | ||||
| TrayEngine = "Qt" | TrayEngine = "Qt" | ||||
| from shared_i18n import * | |||||
| print("Using Tray Engine '%s'" % TrayEngine) | print("Using Tray Engine '%s'" % TrayEngine) | ||||
| iActNameId = 0 | iActNameId = 0 | ||||
| @@ -680,6 +682,7 @@ if __name__ == '__main__': | |||||
| QDialog.closeEvent(self, event) | QDialog.closeEvent(self, event) | ||||
| app = QApplication(sys.argv) | app = QApplication(sys.argv) | ||||
| setup_i18n() | |||||
| gui = ExampleGUI() | gui = ExampleGUI() | ||||
| gui.show() | gui.show() | ||||
| sys.exit(gui.systray.exec_(app)) | sys.exit(gui.systray.exec_(app)) | ||||