diff --git a/app/SysTray-X/SysTray-X.pro b/app/SysTray-X/SysTray-X.pro
index f1dcb87..fe7e278 100644
--- a/app/SysTray-X/SysTray-X.pro
+++ b/app/SysTray-X/SysTray-X.pro
@@ -33,8 +33,8 @@ TEMPLATE = app
# Translations
#
TRANSLATIONS = \
- languages/$${TARGET}_en.ts \
- languages/$${TARGET}_nl.ts
+ languages/$${TARGET}.en_US.ts \
+ languages/$${TARGET}.nl.ts
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
@@ -218,7 +218,7 @@ HEADERS += \
FORMS += \
debugwidget.ui \
preferences.ui \
- aboutdialog.ui
+ aboutdialog.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
diff --git a/app/SysTray-X/SysTray-X.qrc b/app/SysTray-X/SysTray-X.qrc
index 31354b2..f4df356 100644
--- a/app/SysTray-X/SysTray-X.qrc
+++ b/app/SysTray-X/SysTray-X.qrc
@@ -12,5 +12,7 @@
files/icons/mail-unread.png
files/icons/help-about.png
files/icons/dialog-warning.png
+ languages/SysTray-X.en_US.qm
+ languages/SysTray-X.nl.qm
diff --git a/app/SysTray-X/debugwidget.cpp b/app/SysTray-X/debugwidget.cpp
index 6a159e9..f186a76 100644
--- a/app/SysTray-X/debugwidget.cpp
+++ b/app/SysTray-X/debugwidget.cpp
@@ -36,6 +36,18 @@ DebugWidget::DebugWidget( Preferences* pref, QWidget* parent ) : QWidget( parent
}
+/*
+ * Handle the language change event
+ */
+void DebugWidget::changeEvent( QEvent* event )
+{
+ if( event->type() == QEvent::LanguageChange )
+ {
+ m_ui->retranslateUi( this );
+ }
+}
+
+
/*
* Set the number of unread mail
*/
diff --git a/app/SysTray-X/debugwidget.h b/app/SysTray-X/debugwidget.h
index 825cac8..0797c07 100644
--- a/app/SysTray-X/debugwidget.h
+++ b/app/SysTray-X/debugwidget.h
@@ -38,6 +38,13 @@ class DebugWidget : public QWidget
*/
explicit DebugWidget( Preferences* pref, QWidget* parent = nullptr );
+ /**
+ * @brief changeEvent. Override the change event.
+ *
+ * @param event The event.
+ */
+ void changeEvent( QEvent *event );
+
/**
* @brief setUnreadMail. Set the number of unread mails.
*
diff --git a/app/SysTray-X/languages/SysTray-X_en.qm b/app/SysTray-X/languages/SysTray-X.en_US.qm
similarity index 62%
rename from app/SysTray-X/languages/SysTray-X_en.qm
rename to app/SysTray-X/languages/SysTray-X.en_US.qm
index d072705..f633bc9 100644
Binary files a/app/SysTray-X/languages/SysTray-X_en.qm and b/app/SysTray-X/languages/SysTray-X.en_US.qm differ
diff --git a/app/SysTray-X/languages/SysTray-X_en.ts b/app/SysTray-X/languages/SysTray-X.en_US.ts
similarity index 91%
rename from app/SysTray-X/languages/SysTray-X_en.ts
rename to app/SysTray-X/languages/SysTray-X.en_US.ts
index 58d385f..1128f87 100644
--- a/app/SysTray-X/languages/SysTray-X_en.ts
+++ b/app/SysTray-X/languages/SysTray-X.en_US.ts
@@ -227,14 +227,24 @@
Display debug window
-
-
+
+ Save
+ Save
+
+
+
+ Cancel
+ Cancel
+
+
+
+
Open Image
Open Image
-
-
+
+
Image Files (*.png *.jpg *.bmp)
Image Files (*.png *.jpg *.bmp)
@@ -242,24 +252,29 @@
SysTrayX
-
+
&Show/Hide
&Show/Hide
-
+
&Preferences
&Preferences
-
+
&About
&About
-
+
&Quit
&Quit
+
+
+ Close
+ Close
+
diff --git a/app/SysTray-X/languages/SysTray-X_nl.qm b/app/SysTray-X/languages/SysTray-X.nl.qm
similarity index 74%
rename from app/SysTray-X/languages/SysTray-X_nl.qm
rename to app/SysTray-X/languages/SysTray-X.nl.qm
index 39b8ba9..04369b2 100644
Binary files a/app/SysTray-X/languages/SysTray-X_nl.qm and b/app/SysTray-X/languages/SysTray-X.nl.qm differ
diff --git a/app/SysTray-X/languages/SysTray-X_nl.ts b/app/SysTray-X/languages/SysTray-X.nl.ts
similarity index 91%
rename from app/SysTray-X/languages/SysTray-X_nl.ts
rename to app/SysTray-X/languages/SysTray-X.nl.ts
index e44ea2e..ba6e297 100644
--- a/app/SysTray-X/languages/SysTray-X_nl.ts
+++ b/app/SysTray-X/languages/SysTray-X.nl.ts
@@ -227,14 +227,24 @@
Toon debug venster
-
-
+
+ Save
+ Bewaren
+
+
+
+ Cancel
+ Annnuleren
+
+
+
+
Open Image
Open afbeelding
-
-
+
+
Image Files (*.png *.jpg *.bmp)
Afbeeldingsbestanden (*.png *.jpg *.bmp)
@@ -242,24 +252,29 @@
SysTrayX
-
+
&Show/Hide
&Tonen/Verbergen
-
+
&Preferences
&Opties
-
+
&About
O&ver
-
+
&Quit
&Afsluiten
+
+
+ Close
+ Sluiten
+
diff --git a/app/SysTray-X/preferencesdialog.cpp b/app/SysTray-X/preferencesdialog.cpp
index fd72867..1bd6a58 100644
--- a/app/SysTray-X/preferencesdialog.cpp
+++ b/app/SysTray-X/preferencesdialog.cpp
@@ -111,8 +111,8 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi
*/
connect( m_ui->chooseCustomDefaultIconButton, &QPushButton::clicked, this, &PreferencesDialog::slotDefaultFileSelect );
connect( m_ui->chooseCustomButton, &QPushButton::clicked, this, &PreferencesDialog::slotFileSelect );
- connect( m_ui->buttonBox, &QDialogButtonBox::accepted, this, &PreferencesDialog::slotAccept );
- connect( m_ui->buttonBox, &QDialogButtonBox::rejected, this, &PreferencesDialog::slotReject );
+ connect( m_ui->savePushButton, &QPushButton::clicked, this, &PreferencesDialog::slotAccept );
+ connect( m_ui->cancelPushButton, &QPushButton::clicked, this, &PreferencesDialog::slotReject );
connect( m_ui->numberColorPushButton, &QPushButton::clicked, this, &PreferencesDialog::slotColorSelect );
/*
@@ -127,6 +127,18 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi
}
+/*
+ * Handle the language change event
+ */
+void PreferencesDialog::changeEvent( QEvent* event )
+{
+ if( event->type() == QEvent::LanguageChange )
+ {
+ m_ui->retranslateUi( this );
+ }
+}
+
+
/*
* Set the debug state
*/
@@ -358,6 +370,31 @@ void PreferencesDialog::slotReject()
* Close it
*/
// QDialog::reject();
+
+ /*
+ * Restore values
+ */
+ setDefaultIconType( m_pref->getDefaultIconType() );
+ setDefaultIcon( m_pref->getDefaultIconMime(), m_pref->getDefaultIconData() );
+ setHideDefaultIcon( m_pref->getHideDefaultIcon() );
+
+ setIconType( m_pref->getIconType() );
+ setIcon( m_pref->getIconMime(), m_pref->getIconData() );
+
+ setMinimizeType( m_pref->getMinimizeType() );
+ setStartMinimized( m_pref->getStartMinimized() );
+ setMinimizeOnClose( m_pref->getMinimizeOnClose() );
+
+ setShowNumber( m_pref->getShowNumber() );
+ setNumberColor( m_pref->getNumberColor() );
+ setNumberSize( m_pref->getNumberSize() );
+ setCountType( m_pref->getCountType() );
+
+ setDebug( m_pref->getDebug() );
+
+ /*
+ * Hide it
+ */
hide();
}
diff --git a/app/SysTray-X/preferencesdialog.h b/app/SysTray-X/preferencesdialog.h
index 17171c9..44481b2 100644
--- a/app/SysTray-X/preferencesdialog.h
+++ b/app/SysTray-X/preferencesdialog.h
@@ -39,6 +39,13 @@ class PreferencesDialog : public QDialog
*/
PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWidget *parent = nullptr );
+ /**
+ * @brief changeEvent. Override the change event.
+ *
+ * @param event The event.
+ */
+ void changeEvent( QEvent *event );
+
private:
/**
diff --git a/app/SysTray-X/systrayx.cpp b/app/SysTray-X/systrayx.cpp
index 2d41a71..a0437ed 100644
--- a/app/SysTray-X/systrayx.cpp
+++ b/app/SysTray-X/systrayx.cpp
@@ -18,6 +18,7 @@
#include
#include
+
/*
* Constants
*/
@@ -38,6 +39,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
m_tray_icon_menu = nullptr;
m_unread_mail = 0;
+ m_locale = QString();
/*
* Setup preferences storage
@@ -149,6 +151,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
connect( m_link, &SysTrayXLink::signalTitle, m_win_ctrl, &WindowCtrl::slotWindowTitle );
connect( m_link, &SysTrayXLink::signalVersion, this, &SysTrayX::slotVersion );
connect( m_link, &SysTrayXLink::signalKdeIntegration, this, &SysTrayX::slotSelectIconObject );
+ connect( m_link, &SysTrayXLink::signalLocale, this, &SysTrayX::slotLoadLanguage );
/*
* SysTrayX
@@ -159,6 +162,12 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
* Request preferences from add-on
*/
getPreferences();
+
+/*
+ slotLoadLanguage( "nl" );
+ //slotLoadLanguage( "en_US" );
+ slotSelectIconObject( false );
+*/
}
@@ -587,6 +596,11 @@ void SysTrayX::slotAbout()
ui.hash->setText( m_preferences->getHash() );
ui.branch->setText( m_preferences->getBranch() );
+ /*
+ * Set the translation for the button box
+ */
+ ui.buttonBox->button( QDialogButtonBox::Close )->setText( tr( "Close" ) );
+
dialog.exec();
}
@@ -624,3 +638,27 @@ void SysTrayX::slotSetUnreadMail( int unread )
{
m_unread_mail = unread;
}
+
+
+/*
+ * Handle a change in locale
+ */
+void SysTrayX::slotLoadLanguage( QString locale )
+{
+ if( m_locale != locale)
+ {
+ m_locale = locale;
+
+ if (!m_translator.isEmpty())
+ {
+ qApp->removeTranslator( &m_translator );
+ }
+
+ QString locale_path = "SysTray-X."+ locale;
+ bool status = m_translator.load( locale_path, ":/languages/" );
+ qApp->installTranslator( &m_translator );
+
+
+ emit signalConsole( QString( "Language loaded %1").arg(status));
+ }
+}
diff --git a/app/SysTray-X/systrayx.h b/app/SysTray-X/systrayx.h
index 6a3a6b4..209007f 100644
--- a/app/SysTray-X/systrayx.h
+++ b/app/SysTray-X/systrayx.h
@@ -12,6 +12,7 @@
* Qt includes
*/
#include
+#include
#include
/*
@@ -130,6 +131,13 @@ class SysTrayX : public QObject
*/
void slotSetUnreadMail( int unread );
+ /**
+ * @brief slotLoadLanguage. Handle locale change signal.
+ *
+ * @param locale The requested locale.
+ */
+ void slotLoadLanguage( QString locale );
+
private slots:
/**
@@ -219,6 +227,16 @@ class SysTrayX : public QObject
* @brief m_unread_mail. Number of unread mails
*/
int m_unread_mail;
+
+ /**
+ * @brief m_translator. The translator object.
+ */
+ QTranslator m_translator;
+
+ /**
+ * @brief m_locale. Storage for the current locale.
+ */
+ QString m_locale;
};
#endif // SYSTRAYX_H
diff --git a/app/SysTray-X/systrayxlink.cpp b/app/SysTray-X/systrayxlink.cpp
index ac438c2..8615015 100644
--- a/app/SysTray-X/systrayxlink.cpp
+++ b/app/SysTray-X/systrayxlink.cpp
@@ -374,6 +374,13 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
#endif
}
+ if( jsonObject.contains( "locale" ) && jsonObject[ "locale" ].isString() )
+ {
+ QString locale = jsonObject[ "locale" ].toString();
+
+ emit signalLocale( locale );
+ }
+
if( jsonObject.contains( "platformInfo" ) && jsonObject[ "platformInfo" ].isObject() )
{
DecodePlatform( jsonObject[ "platformInfo" ].toObject() );
diff --git a/app/SysTray-X/systrayxlink.h b/app/SysTray-X/systrayxlink.h
index 0092c05..5917db3 100644
--- a/app/SysTray-X/systrayxlink.h
+++ b/app/SysTray-X/systrayxlink.h
@@ -198,6 +198,11 @@ class SysTrayXLink : public QObject
*/
void signalKdeIntegration( bool state );
+ /**
+ * @brief signalLocale. Signal the locale.
+ */
+ void signalLocale( QString locale );
+
/**
* @brief signalUnreadMail. Signal numder of unread mails.
*
diff --git a/webext/background.js b/webext/background.js
index f1c42a7..bca6081 100644
--- a/webext/background.js
+++ b/webext/background.js
@@ -22,6 +22,9 @@ SysTrayX.Messaging = {
// Lookout for storage changes
browser.storage.onChanged.addListener(SysTrayX.Messaging.storageChanged);
+ // Send the platform info to app
+ SysTrayX.Messaging.sendLocale();
+
// Send the platform info to app
SysTrayX.Messaging.sendPlatformInfo();
@@ -154,6 +157,16 @@ SysTrayX.Messaging = {
});
},
+ sendLocale: function () {
+ const locale = browser.i18n.getUILanguage();
+
+ console.log("Locale: " + locale);
+
+ SysTrayX.Link.postSysTrayXMessage({
+ locale: locale,
+ });
+ },
+
sendPreferences: function () {
const getter = browser.storage.sync.get([
"debug",