diff options
| author | Shpuld Shpludson <shp@cock.li> | 2021-01-21 13:41:36 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2021-01-21 13:41:36 +0000 |
| commit | 0358284ebf2accf6e0a20ec04e0448437827fadc (patch) | |
| tree | fda7343b8de88b0c5ee60571a6b69e5479ffccf4 /src/components/interface_language_switcher | |
| parent | f614da2abb0f89d4a27474d7287f62968f8b3c56 (diff) | |
| parent | 11c7355749b6e0180841dd02604a06dd924dd217 (diff) | |
Merge branch 'feat/language-picker-native-names' into 'develop'
Use native language names in the language picker
See merge request pleroma/pleroma-fe!1302
Diffstat (limited to 'src/components/interface_language_switcher')
| -rw-r--r-- | src/components/interface_language_switcher/interface_language_switcher.vue | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/components/interface_language_switcher/interface_language_switcher.vue b/src/components/interface_language_switcher/interface_language_switcher.vue index 524ec5e9..dc3bd408 100644 --- a/src/components/interface_language_switcher/interface_language_switcher.vue +++ b/src/components/interface_language_switcher/interface_language_switcher.vue @@ -12,11 +12,11 @@ v-model="language" > <option - v-for="(langCode, i) in languageCodes" - :key="langCode" - :value="langCode" + v-for="lang in languages" + :key="lang.code" + :value="lang.code" > - {{ languageNames[i] }} + {{ lang.name }} </option> </select> <FAIcon @@ -29,6 +29,7 @@ <script> import languagesObject from '../../i18n/messages' +import localeService from '../../services/locale/locale.service.js' import ISO6391 from 'iso-639-1' import _ from 'lodash' import { library } from '@fortawesome/fontawesome-svg-core' @@ -42,12 +43,8 @@ library.add( export default { computed: { - languageCodes () { - return languagesObject.languages - }, - - languageNames () { - return _.map(this.languageCodes, this.getLanguageName) + languages () { + return _.map(languagesObject.languages, (code) => ({ code: code, name: this.getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name)) }, language: { @@ -61,12 +58,13 @@ export default { methods: { getLanguageName (code) { const specialLanguageNames = { - 'ja': 'Japanese (日本語)', - 'ja_easy': 'Japanese (やさしいにほんご)', - 'zh': 'Simplified Chinese (简体中文)', - 'zh_Hant': 'Traditional Chinese (繁體中文)' + 'ja_easy': 'やさしいにほんご', + 'zh': '简体中文', + 'zh_Hant': '繁體中文' } - return specialLanguageNames[code] || ISO6391.getName(code) + const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code) + const browserLocale = localeService.internalToBrowserLocale(code) + return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1) } } } |
