mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-16 16:47:24 +00:00
parent
f3dd063e92
commit
0dfdcc727a
@ -5,50 +5,11 @@ QtObject {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
property var languageModule
|
property var languageModule
|
||||||
property string locale: localAppSettings.locale
|
|
||||||
property bool isDDMMYYDateFormat: localAccountSensitiveSettings.isDDMMYYDateFormat
|
|
||||||
property bool is24hTimeFormat: localAccountSensitiveSettings.is24hTimeFormat
|
|
||||||
|
|
||||||
// TODO: That definition should be moved to backend.
|
readonly property var languageModel: languageModule ? languageModule.model : null
|
||||||
property ListModel languageModel: ListModel {
|
readonly property string currentLocale: languageModule ? languageModule.currentLocale : null
|
||||||
ListElement {key: "en"; shortName: "English"; name: "English"; category: ""; imageSource: "../../assets/twemoji/svg/1f1ec-1f1e7.svg"; selected: false}
|
readonly property bool isDDMMYYDateFormat: localAccountSensitiveSettings.isDDMMYYDateFormat
|
||||||
ListElement {key: "zh"; shortName: "普通话"; name: "Chinese (Mainland China)"; imageSource: "../../assets/twemoji/svg/1f1e8-1f1f3.svg"; category: ""; selected: false}
|
readonly property bool is24hTimeFormat: localAccountSensitiveSettings.is24hTimeFormat
|
||||||
ListElement {key: "ko"; shortName: "한국어"; name: "Korean"; category: ""; imageSource: "../../assets/twemoji/svg/1f1f0-1f1f7.svg"; selected: false}
|
|
||||||
ListElement {key: "pt_BR"; shortName: "Português"; name: "Portuguese (Brazil)"; category: ""; imageSource: "../../assets/twemoji/svg/1f1e7-1f1f7.svg"; selected: false}
|
|
||||||
ListElement {key: "ru"; shortName: "Русский Язык"; name: "Russian"; category: ""; imageSource: "../../assets/twemoji/svg/1f1f7-1f1fa.svg"; selected: false}
|
|
||||||
ListElement {key: "ar"; shortName: "اَلْعَرَبِيَّةُ"; name: "Arabic"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1f8-1f1e6.svg"; selected: false}
|
|
||||||
ListElement {key: "zh_TW"; shortName: "臺灣華語"; name: "Chinese (Taiwan)"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1f9-1f1fc.svg"; selected: false}
|
|
||||||
ListElement {key: "de"; shortName: "Nederlands"; name: "Dutch"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1f3-1f1f1.svg"; selected: false}
|
|
||||||
ListElement {key: "fil"; shortName: "Wikang Filipino"; name: "Filipino"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1f5-1f1ed.svg"; selected: false}
|
|
||||||
ListElement {key: "fr"; shortName: "Français"; name: "French"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1eb-1f1f7.svg"; selected: false}
|
|
||||||
ListElement {key: "id"; shortName: "Bahasa Indonesia"; name: "Indonesian"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1ee-1f1e9.svg"; selected: false}
|
|
||||||
ListElement {key: "it"; shortName: "Italiano"; name: "Italian"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1ee-1f1f9.svg"; selected: false}
|
|
||||||
ListElement {key: "es"; shortName: "Español"; name: "Spanish"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1ea-1f1f8.svg"; selected: false}
|
|
||||||
ListElement {key: "tr"; shortName: "Türkçe"; name: "Turkish"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1f9-1f1f7.svg"; selected: false}
|
|
||||||
ListElement {key: "ur"; shortName: "اُردُو"; name: "Urdu"; category: qsTr("Beta Languages"); imageSource: "../../assets/twemoji/svg/1f1f5-1f1f0.svg"; selected: false}
|
|
||||||
}
|
|
||||||
|
|
||||||
onLocaleChanged: {
|
|
||||||
initializeLanguageModel()
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: That logic should be moved to backend.
|
|
||||||
function initializeLanguageModel() {
|
|
||||||
var isSelected = false
|
|
||||||
for(var i = 0; i < languageModel.count; i++) {
|
|
||||||
if(localAppSettings.locale === root.languageModel.get(i).key) {
|
|
||||||
isSelected = true
|
|
||||||
root.languageModel.get(i).selected = true
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
root.languageModel.get(i).selected = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set default:
|
|
||||||
if(!isSelected)
|
|
||||||
root.languageModel.get(0).selected = true
|
|
||||||
}
|
|
||||||
|
|
||||||
function changeLocale(locale) {
|
function changeLocale(locale) {
|
||||||
root.languageModule.changeLocale(locale)
|
root.languageModule.changeLocale(locale)
|
||||||
|
@ -8,12 +8,15 @@ import shared.popups 1.0
|
|||||||
|
|
||||||
import StatusQ.Core 0.1
|
import StatusQ.Core 0.1
|
||||||
import StatusQ.Core.Theme 0.1
|
import StatusQ.Core.Theme 0.1
|
||||||
|
import StatusQ.Core.Utils 0.1 as StatusQUtils
|
||||||
import StatusQ.Components 0.1
|
import StatusQ.Components 0.1
|
||||||
import StatusQ.Controls 0.1
|
import StatusQ.Controls 0.1
|
||||||
|
|
||||||
import "../popups"
|
import "../popups"
|
||||||
import "../stores"
|
import "../stores"
|
||||||
|
|
||||||
|
import SortFilterProxyModel 0.2
|
||||||
|
|
||||||
SettingsContentBase {
|
SettingsContentBase {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
@ -25,7 +28,6 @@ SettingsContentBase {
|
|||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
root.currencyStore.updateCurrenciesModel()
|
root.currencyStore.updateCurrenciesModel()
|
||||||
root.languageStore.initializeLanguageModel()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function setViewIdleState() {
|
function setViewIdleState() {
|
||||||
@ -111,16 +113,48 @@ SettingsContentBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inputList: SortFilterProxyModel {
|
||||||
|
id: languageModel
|
||||||
|
|
||||||
|
sourceModel: root.languageStore.languageModel
|
||||||
|
|
||||||
|
function imageSourceForEmoji(emoji) {
|
||||||
|
return StatusQUtils.Emoji.iconSource(emoji)
|
||||||
|
}
|
||||||
|
|
||||||
|
proxyRoles: [
|
||||||
|
ExpressionRole {
|
||||||
|
name: "key"
|
||||||
|
expression: model.locale
|
||||||
|
},
|
||||||
|
ExpressionRole {
|
||||||
|
name: "shortName"
|
||||||
|
expression: model.native
|
||||||
|
},
|
||||||
|
ExpressionRole {
|
||||||
|
name: "category"
|
||||||
|
expression: ""
|
||||||
|
},
|
||||||
|
ExpressionRole {
|
||||||
|
name: "selected"
|
||||||
|
expression: model.locale == root.languageStore.currentLocale
|
||||||
|
},
|
||||||
|
ExpressionRole {
|
||||||
|
name: "imageSource"
|
||||||
|
expression: languageModel.imageSourceForEmoji(model.flag)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
z: root.z + 1
|
z: root.z + 1
|
||||||
width: 104
|
width: 104
|
||||||
height: parent.height
|
height: parent.height
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
inputList: root.languageStore.languageModel
|
|
||||||
placeholderSearchText: qsTr("Search Languages")
|
placeholderSearchText: qsTr("Search Languages")
|
||||||
maxPickerHeight: 350
|
maxPickerHeight: 350
|
||||||
|
|
||||||
onItemPickerChanged: {
|
onItemPickerChanged: {
|
||||||
if(selected && localAppSettings.locale !== key) {
|
if(selected && root.languageStore.currentLocale !== key) {
|
||||||
// TEMPORARY: It should be removed as it is only used in Linux OS but it must be investigated how to change language in execution time, as well, in Linux (will be addressed in another task)
|
// TEMPORARY: It should be removed as it is only used in Linux OS but it must be investigated how to change language in execution time, as well, in Linux (will be addressed in another task)
|
||||||
if (Qt.platform.os === Constants.linux) {
|
if (Qt.platform.os === Constants.linux) {
|
||||||
linuxConfirmationDialog.active = true
|
linuxConfirmationDialog.active = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user