From 93439da4300d6a5c61c777978db040a7288cc6dd Mon Sep 17 00:00:00 2001 From: Ximi1970 Date: Sun, 14 Jun 2020 23:20:29 +0200 Subject: [PATCH] Update for translations --- app/SysTray-X/SysTray-X.pro | 6 +-- app/SysTray-X/SysTray-X.qrc | 2 + app/SysTray-X/debugwidget.cpp | 12 +++++ app/SysTray-X/debugwidget.h | 7 +++ .../{SysTray-X_en.qm => SysTray-X.en_US.qm} | Bin 3904 -> 4078 bytes .../{SysTray-X_en.ts => SysTray-X.en_US.ts} | 31 +++++++++---- .../{SysTray-X_nl.qm => SysTray-X.nl.qm} | Bin 4206 -> 4398 bytes .../{SysTray-X_nl.ts => SysTray-X.nl.ts} | 31 +++++++++---- app/SysTray-X/preferencesdialog.cpp | 41 +++++++++++++++++- app/SysTray-X/preferencesdialog.h | 7 +++ app/SysTray-X/systrayx.cpp | 38 ++++++++++++++++ app/SysTray-X/systrayx.h | 18 ++++++++ app/SysTray-X/systrayxlink.cpp | 7 +++ app/SysTray-X/systrayxlink.h | 5 +++ webext/background.js | 13 ++++++ 15 files changed, 197 insertions(+), 21 deletions(-) rename app/SysTray-X/languages/{SysTray-X_en.qm => SysTray-X.en_US.qm} (62%) rename app/SysTray-X/languages/{SysTray-X_en.ts => SysTray-X.en_US.ts} (91%) rename app/SysTray-X/languages/{SysTray-X_nl.qm => SysTray-X.nl.qm} (74%) rename app/SysTray-X/languages/{SysTray-X_nl.ts => SysTray-X.nl.ts} (91%) 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 d0727056553f1f17f69aca72c63cec6efb7309cb..f633bc93cabc051a726345e9b8d3bfa85c78a77c 100644 GIT binary patch delta 530 zcmYk2QAiX~6o&shbMMUTIy;+bi3mw1O7vhUNeDr*C|MZBS}Z;Y(>75sD!3t7ph6Vp zmK96uB2pwp&|7VYgiwf559vc}FGamn5B4A=)yf9Zzdb}34)@-3{&T+n-WNO8t8bQ% zW&rGE6c=}G3()-%2)u?Y^a92pRAw0{d5k^RBoLZKQ&}msJ8`7>HsAzs^!PT``*7^) zGv*8EYHtIqPSJdE76@Jvx!-v}rL~9YCH6OJ8)v7;*{6rszX3hgXC5{PjOlaVCjh-% zI;VbcKvIt7#{jWgW;zy_pOG`#1p;2lyJra2bMlSmC5o zzV)_xv`Z}~&ja>zLrv!BV$*1_p0YS)wANPgb@z>XCr{ATs(IkiB4J<6mBu@)|FkB; zG@%Yz*K7C-=9j>DM}hEE@O{}X!d6Nek|Q+z%ienWGNE<$w0OtPa>o4koQ+m5vtLe2t^PP_!vOqKbea70}0P$)rt-$ Ox(D6im>B0x6XFl%mU%(| delta 405 zcmWlVODIHP6vzMf-tRt`J9oSzCn# z3VyP0pZ<&bY0B~UBv7Tq39I{ug=XOk`2Z9uMW=!uGVs~t NIx}Q_oH<#N{s8H~U+w?^ 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 39b8ba9757db37d08d9582127fd4af198120543e..04369b24c0cef30a1b8904bfece6d583c09628a5 100644 GIT binary patch delta 542 zcmZ9IUr3Wt7{;IP`_B3HZEokQTw!QbW-aK#GFlRbm`t!J(wRsX!P14oSfH-3Xxc^K zpBfI)hD4ztN>Dc&BGFBv)lD~{1Qy+NwE`hoEOsG1>#ok><(%`L=Y4+fIhzMwR*riI zQvi-Lii4}Z1892(xK_{>;}O`PJE1f<=QRx6cj-nvOHS_cx>5uWDXEV zlk58j<8pPZpUJE#6Ki};t66Pjc)4yiRP6;EW#&x#6?V1lsC~Xn*muW=ny2ix)*7|h zgdDdXRq_|Cd(PqJ0^v#5=h8!j{V1s(i?ivxdso*3zP`>qt!=PA;|W~M()WcDi)p~8 zeCq77K|oT4i-n$qicc-ksL6JpNziy-5C1Thp4OI(!(KEX`gg_w|#M(97G2!?J=+;>%^PpKOHG~rMP(lCY|^#5Zi8zVRS!VW5| R;6PtnZ)l)H8|F#Zv_B=wd*J{8 delta 395 zcmZ3d^iE-dNPPnX1A_q&g8-0b5@28mInKbq)xyB?D~^GIZ4QHW4+{eWUjT!#upm&4 zB7=9JC<6nJCxc(-E+GF0Lx7tr0|Uo)MziWg3=G_fj931BXJBC6!nAza5e5d{H%y;0 zrUT72WafYOk%56T14w@Y(%+c3ed%IgaAFo=;Y<1oG~ho=!}kUT21a$3IZRbRgO9Py zPn*iXz`TX!QqDafoxv*hiw|gl1grE*6`%vAvnH!81&Y6z_*TB&j`e7F3DCAeHrBo? zKvxT~>2qvhU|^Zb=BOeG!4$oge%O`T(7FGsYwwhbNyABu{+j)diT7mpOJhK>Y0rhX;b@hG8z`&l%$FglR z1A{v6dOq7j%s>ky`BFg|dBynZrtJV4Toon 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",