From 9d0b87448879c935461023487e516871b8004e26 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Fri, 7 Jul 2023 23:48:32 +0800 Subject: [PATCH] code refactor --- src/lib/i18n.js | 27 +++++++++++++++++++ .../user/settings/UserBasicSettingTab.vue | 23 +--------------- src/views/mobile/users/UserProfilePage.vue | 23 +--------------- 3 files changed, 29 insertions(+), 44 deletions(-) diff --git a/src/lib/i18n.js b/src/lib/i18n.js index 8dcb5c30..ee4af165 100644 --- a/src/lib/i18n.js +++ b/src/lib/i18n.js @@ -153,6 +153,32 @@ function getAllLanguageInfos() { return allLanguages; } +function getAllLanguageInfoArray(translateFn, includeSystemDefault) { + const ret = []; + + if (includeSystemDefault) { + ret.push({ + code: '', + displayName: translateFn('System Default') + }); + } + + for (const code in allLanguages) { + if (!Object.prototype.hasOwnProperty.call(allLanguages, code)) { + continue; + } + + const languageInfo = allLanguages[code]; + + ret.push({ + code: code, + displayName: languageInfo.displayName + }); + } + + return ret; +} + function getLanguageInfo(locale) { return allLanguages[locale]; } @@ -746,6 +772,7 @@ export function translateError(message, translateFn) { export function i18nFunctions(i18nGlobal) { return { getAllLanguageInfos: getAllLanguageInfos, + getAllLanguageInfoArray: (includeSystemDefault) => getAllLanguageInfoArray(i18nGlobal.t, includeSystemDefault), getLanguageInfo: getLanguageInfo, getDefaultLanguage: getDefaultLanguage, getCurrentLanguageInfo: () => getCurrentLanguageInfo(i18nGlobal), diff --git a/src/views/desktop/user/settings/UserBasicSettingTab.vue b/src/views/desktop/user/settings/UserBasicSettingTab.vue index f3a52cbd..b803e1c4 100644 --- a/src/views/desktop/user/settings/UserBasicSettingTab.vue +++ b/src/views/desktop/user/settings/UserBasicSettingTab.vue @@ -270,28 +270,7 @@ export default { computed: { ...mapStores(useRootStore, useSettingsStore, useUserStore, useAccountsStore), allLanguages() { - const ret = []; - const allLanguageInfo = this.$locale.getAllLanguageInfos(); - - ret.push({ - code: '', - displayName: this.$t('System Default') - }); - - for (let code in allLanguageInfo) { - if (!Object.prototype.hasOwnProperty.call(allLanguageInfo, code)) { - continue; - } - - const languageInfo = allLanguageInfo[code]; - - ret.push({ - code: code, - displayName: languageInfo.displayName - }); - } - - return ret; + return this.$locale.getAllLanguageInfoArray(true); }, allCurrencies() { return this.$locale.getAllCurrencies(); diff --git a/src/views/mobile/users/UserProfilePage.vue b/src/views/mobile/users/UserProfilePage.vue index 1a5a7030..00551d9d 100644 --- a/src/views/mobile/users/UserProfilePage.vue +++ b/src/views/mobile/users/UserProfilePage.vue @@ -274,28 +274,7 @@ export default { computed: { ...mapStores(useRootStore, useSettingsStore, useUserStore, useAccountsStore), allLanguages() { - const ret = []; - const allLanguageInfo = this.$locale.getAllLanguageInfos(); - - ret.push({ - code: '', - displayName: this.$t('System Default') - }); - - for (let code in allLanguageInfo) { - if (!Object.prototype.hasOwnProperty.call(allLanguageInfo, code)) { - continue; - } - - const languageInfo = allLanguageInfo[code]; - - ret.push({ - code: code, - displayName: languageInfo.displayName - }); - } - - return ret; + return this.$locale.getAllLanguageInfoArray(true); }, allCurrencies() { return this.$locale.getAllCurrencies();