From a5e861cd019eb7770b8524ecdb6237f33fd18d12 Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Sat, 26 Mar 2022 12:21:34 -0400 Subject: Set userLanguage cookie when setting interface language --- src/services/locale/locale.service.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'src/services') diff --git a/src/services/locale/locale.service.js b/src/services/locale/locale.service.js index 5be99d81..8cef2522 100644 --- a/src/services/locale/locale.service.js +++ b/src/services/locale/locale.service.js @@ -1,12 +1,35 @@ +import languagesObject from '../../i18n/messages' +import ISO6391 from 'iso-639-1' +import _ from 'lodash' + const specialLanguageCodes = { 'ja_easy': 'ja', - 'zh_Hant': 'zh-HANT' + 'zh_Hant': 'zh-HANT', + 'zh': 'zh-Hans' } const internalToBrowserLocale = code => specialLanguageCodes[code] || code +const internalToBackendLocale = code => internalToBrowserLocale(code).replace('_', '-') + +const getLanguageName = (code) => { + const specialLanguageNames = { + 'ja_easy': 'やさしいにほんご', + 'zh': '简体中文', + 'zh_Hant': '繁體中文' + } + const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code) + const browserLocale = internalToBrowserLocale(code) + return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1) +} + +const languages = _.map(languagesObject.languages, (code) => ({ code: code, name: getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name)) + const localeService = { - internalToBrowserLocale + internalToBrowserLocale, + internalToBackendLocale, + languages, + getLanguageName } export default localeService -- cgit v1.2.3-70-g09d2 From d39de3022108c4a42d20fe2a38265179ae0062f9 Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Sat, 26 Mar 2022 12:39:26 -0400 Subject: Add config opts for email language --- .../interface_language_switcher.vue | 16 +++++++-- src/components/settings_modal/tabs/general_tab.vue | 1 + src/components/settings_modal/tabs/profile_tab.js | 38 ++++++++++++++-------- src/components/settings_modal/tabs/profile_tab.vue | 7 ++++ src/services/api/api.service.js | 1 + 5 files changed, 46 insertions(+), 17 deletions(-) (limited to 'src/services') diff --git a/src/components/interface_language_switcher/interface_language_switcher.vue b/src/components/interface_language_switcher/interface_language_switcher.vue index 757ec01f..078535dc 100644 --- a/src/components/interface_language_switcher/interface_language_switcher.vue +++ b/src/components/interface_language_switcher/interface_language_switcher.vue @@ -1,7 +1,7 @@