Fix #386: Autoselect best language based on browser configuration

This commit is contained in:
Eliot Berriot 2018-07-22 17:46:00 +02:00
parent b58da3e944
commit 92fde6444b
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
2 changed files with 19 additions and 0 deletions

View File

@ -0,0 +1 @@
Autoselect best language based on browser configuration (#386)

View File

@ -93,6 +93,8 @@ import axios from 'axios'
import _ from 'lodash'
import {mapState} from 'vuex'
import translations from '@/translations'
import Sidebar from '@/components/Sidebar'
import Raven from '@/components/Raven'
import ServiceMessages from '@/components/ServiceMessages'
@ -115,6 +117,7 @@ export default {
},
created () {
let self = this
this.autodetectLanguage()
setInterval(() => {
// used to redraw ago dates every minute
self.$store.commit('ui/computeLastDate')
@ -138,6 +141,21 @@ export default {
if (confirm) {
this.$store.commit('instance/instanceUrl', null)
}
},
autodetectLanguage () {
let userLanguage = navigator.language || navigator.userLanguage
let available = _.keys(translations)
let matching = available.filter((a) => {
return userLanguage.replace('-', '_') === a
})
let almostMatching = available.filter((a) => {
return userLanguage.replace('-', '_').split('_')[0] === a.split('_')[0]
})
if (matching.length > 0) {
this.$language.current = matching[0]
} else if (almostMatching.length > 0) {
this.$language.current = almostMatching[0]
}
}
},
computed: {