diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2022-05-22 16:41:16 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2022-05-22 16:41:16 +0000 |
| commit | 68a2c5db9829a2efaa1bf9bc29f180a77d8b9f32 (patch) | |
| tree | c44cc8357b9c04c6d87337ee81badfd10bc0f004 /src/components/interface_language_switcher/interface_language_switcher.vue | |
| parent | 3b6d72ef3b57877587e48e35744954945c44a217 (diff) | |
| parent | 9725443e60bc6e147fdc8d195dab048d1d5aa461 (diff) | |
Merge branch 'revert-3b6d72ef' into 'develop'
Revert "Merge branch 'revert-a88abc7e' into 'develop'"
See merge request pleroma/pleroma-fe!1528
Diffstat (limited to 'src/components/interface_language_switcher/interface_language_switcher.vue')
| -rw-r--r-- | src/components/interface_language_switcher/interface_language_switcher.vue | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/components/interface_language_switcher/interface_language_switcher.vue b/src/components/interface_language_switcher/interface_language_switcher.vue index 6d1f83c4..7ad1fe2e 100644 --- a/src/components/interface_language_switcher/interface_language_switcher.vue +++ b/src/components/interface_language_switcher/interface_language_switcher.vue @@ -1,12 +1,12 @@ <template> <div> <label for="interface-language-switcher"> - {{ $t('settings.interfaceLanguage') }} + {{ promptText }} </label> {{ ' ' }} <Select id="interface-language-switcher" - v-model="language" + v-model="controlledLanguage" > <option v-for="lang in languages" @@ -20,39 +20,43 @@ </template> <script> -import languagesObject from '../../i18n/messages' import localeService from '../../services/locale/locale.service.js' -import ISO6391 from 'iso-639-1' -import _ from 'lodash' import Select from '../select/select.vue' export default { components: { Select }, + props: { + promptText: { + type: String, + required: true + }, + language: { + type: String, + required: true + }, + setLanguage: { + type: Function, + required: true + } + }, computed: { languages () { - return _.map(languagesObject.languages, (code) => ({ code: code, name: this.getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name)) + return localeService.languages }, - language: { - get: function () { return this.$store.getters.mergedConfig.interfaceLanguage }, + controlledLanguage: { + get: function () { return this.language }, set: function (val) { - this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val }) + this.setLanguage(val) } } }, methods: { getLanguageName (code) { - const specialLanguageNames = { - 'ja_easy': 'やさしいにほんご', - 'zh': '简体中文', - 'zh_Hant': '繁體中文' - } - const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code) - const browserLocale = localeService.internalToBrowserLocale(code) - return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1) + return localeService.getLanguageName(code) } } } |
