aboutsummaryrefslogtreecommitdiff
path: root/src/components/interface_language_switcher
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2021-01-20 23:49:34 +0300
committerrinpatch <rinpatch@sdf.org>2021-01-21 14:24:16 +0300
commit11c7355749b6e0180841dd02604a06dd924dd217 (patch)
tree3b6848986b50e51ad730460b50804f1979883ac7 /src/components/interface_language_switcher
parentfe78ed78fdc95bb5dac4d11136673da4e5e57f4b (diff)
Use native language names in the language picker
This seems more intuitive to me and is what I've seen in most other language pickers.
Diffstat (limited to 'src/components/interface_language_switcher')
-rw-r--r--src/components/interface_language_switcher/interface_language_switcher.vue28
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)
}
}
}