From 481184df253a24d1f45428f7bdab08206b23c56f Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Wed, 28 Jul 2021 13:54:40 -0400 Subject: [PATCH] fix: disable dynamic translations on linux --- src/nim_status_client.nim | 4 +-- .../Profile/Sections/LanguageModal.qml | 27 ++++++++++++++++++- vendor/DOtherSide | 2 +- vendor/nimqml | 2 +- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/nim_status_client.nim b/src/nim_status_client.nim index d14d165fa1..c4f6add6d2 100644 --- a/src/nim_status_client.nim +++ b/src/nim_status_client.nim @@ -141,9 +141,9 @@ proc mainProc() = proc changeLanguage(locale: string) = if (locale == currentLanguageCode): return - currentLanguageCode = locale - engine.setTranslationPackage(joinPath(i18nPath, fmt"qml_{locale}.qm")) + let shouldRetranslate = not defined(linux) + engine.setTranslationPackage(joinPath(i18nPath, fmt"qml_{locale}.qm"), shouldRetranslate) var profile = profile.newController(status, changeLanguage) defer: profile.delete() diff --git a/ui/app/AppLayouts/Profile/Sections/LanguageModal.qml b/ui/app/AppLayouts/Profile/Sections/LanguageModal.qml index b632d984b6..cbbc99fc2e 100644 --- a/ui/app/AppLayouts/Profile/Sections/LanguageModal.qml +++ b/ui/app/AppLayouts/Profile/Sections/LanguageModal.qml @@ -22,6 +22,26 @@ ModalPopup { id: languageGroup } + ConfirmationDialog { + id: languageChangeConfirmationDialog + property string newLocale + + title: qsTr("Change language") + confirmationText: qsTr("Display language has been changed. You must restart the application for changes to take effect.") + showCancelButton: true + confirmButtonLabel: qsTr("Close the app now") + cancelButtonLabel: qsTr("I'll do that later") + onConfirmButtonClicked: { + console.log("NEW LOCALE?", newLocale) + profileModel.changeLocale(newLocale) + Qt.quit(); + } + onCancelButtonClicked: { + languageChangeConfirmationDialog.close() + popup.close() + } + } + ScrollView { width: parent.width anchors.top: parent.top @@ -49,8 +69,13 @@ ModalPopup { checked: globalSettings.locale === modelData.locale onRadioCheckedChanged: { if (checked && globalSettings.locale !== modelData.locale) { - profileModel.changeLocale(modelData.locale) globalSettings.locale = modelData.locale + if (utilsModel.getOs() === Constants.linux) { + languageChangeConfirmationDialog.newLocale = modelData.locale + languageChangeConfirmationDialog.open() + } else { + profileModel.changeLocale(modelData.locale) + } } } } diff --git a/vendor/DOtherSide b/vendor/DOtherSide index a838753904..702dcaa0d2 160000 --- a/vendor/DOtherSide +++ b/vendor/DOtherSide @@ -1 +1 @@ -Subproject commit a838753904615610667e704efec5864e0d27e7c2 +Subproject commit 702dcaa0d2f8c0603fd1dc1e822f7c447cd81157 diff --git a/vendor/nimqml b/vendor/nimqml index 8ca765ca11..53d89149f3 160000 --- a/vendor/nimqml +++ b/vendor/nimqml @@ -1 +1 @@ -Subproject commit 8ca765ca11a9fde6a43d60289afcea312d3e6ed8 +Subproject commit 53d89149f3cafbe7d7b507bdfcba2544ff091ede