@@ -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 755 src/*.py $(DESTDIR)$(PREFIX)/share/cadence/src/ | install -m 755 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 | ||||
@@ -2383,6 +2384,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 = DBusQtMainLoop(set_as_default=True) | gDBus.loop = DBusQtMainLoop(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 | ||||
@@ -1308,6 +1309,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 | ||||
@@ -1393,6 +1394,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 | ||||
@@ -2750,6 +2751,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) | ||||
@@ -1352,6 +1353,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 | ||||
@@ -924,6 +925,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)) |