From 0137b03887a4eed377272e9517dade2e32226200 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 15 Oct 2017 08:26:22 +0100 Subject: [PATCH] Fix Portuguese language reference and DRY Former-commit-id: 3954a92011b3c1699236b32373688ce80f720179 [formerly 67bca685bac4e893f836b21f85f4369444f3e708] [formerly 9817c40128b6660be30ea48b5317d07d21b84ca0 [formerly 77df2034f53a75a94e8bc9e3e8096d9ac3b865b0]] Former-commit-id: 2681c1f068e8094f0f9593a4c21fc6f84d8a6353 [formerly 26986c2af1193a31e3abec64b829cb29aa97011c] Former-commit-id: c2813afc8de2e22ff9f3de0f55fbb26b3b954619 --- assets/src/i18n/index.js | 56 +++++++++++++++++++---------------- assets/src/store/mutations.js | 34 +++++---------------- 2 files changed, 37 insertions(+), 53 deletions(-) diff --git a/assets/src/i18n/index.js b/assets/src/i18n/index.js index 013c8d31..a2e09eb5 100644 --- a/assets/src/i18n/index.js +++ b/assets/src/i18n/index.js @@ -9,35 +9,39 @@ import zhTW from './zh-tw.yaml' Vue.use(VueI18n) -let locale = (navigator.language || navigator.browserLangugae).toLowerCase() -switch (true) { - case /^en.*/i.test(locale): - locale = 'en' - break - case /^fr.*/i.test(locale): - locale = 'fr' - break - case /^pt.*/i.test(locale): - locale = 'pr' - break - case /^ja.*/i.test(locale): - locale = 'ja' - break - case /^zh-CN/i.test(locale): - locale = 'zh-cn' - break - case /^zh-TW/i.test(locale): - locale = 'zh-tw' - break - case /^zh.*/i.test(locale): - locale = 'zh-cn' - break - default: - locale = 'en' +export function detectLocale () { + let locale = (navigator.language || navigator.browserLangugae).toLowerCase() + switch (true) { + case /^en.*/i.test(locale): + locale = 'en' + break + case /^fr.*/i.test(locale): + locale = 'fr' + break + case /^pt.*/i.test(locale): + locale = 'pt' + break + case /^ja.*/i.test(locale): + locale = 'ja' + break + case /^zh-CN/i.test(locale): + locale = 'zh-cn' + break + case /^zh-TW/i.test(locale): + locale = 'zh-tw' + break + case /^zh.*/i.test(locale): + locale = 'zh-cn' + break + default: + locale = 'en' + } + + return locale } const i18n = new VueI18n({ - locale: locale, + locale: detectLocale(), fallbackLocale: 'en', messages: { 'en': en, diff --git a/assets/src/store/mutations.js b/assets/src/store/mutations.js index 881850ee..cf608511 100644 --- a/assets/src/store/mutations.js +++ b/assets/src/store/mutations.js @@ -1,4 +1,4 @@ -import i18n from '@/i18n' +import * as i18n from '@/i18n' import moment from 'moment' const mutations = { @@ -27,34 +27,14 @@ const mutations = { setLoading: (state, value) => { state.loading = value }, setReload: (state, value) => { state.reload = value }, setUser: (state, value) => { - let locale = (value.locale || navigator.language || navigator.browserLangugae).toLowerCase() - switch (true) { - case /^en.*/i.test(locale): - locale = 'en' - break - case /^fr.*/i.test(locale): - locale = 'fr' - break - case /^pt.*/i.test(locale): - locale = 'pr' - break - case /^ja.*/i.test(locale): - locale = 'ja' - break - case /^zh-CN/i.test(locale): - locale = 'zh-cn' - break - case /^zh-TW/i.test(locale): - locale = 'zh-tw' - break - case /^zh.*/i.test(locale): - locale = 'zh-cn' - break - default: - locale = 'en' + let locale = value.locale + + if (locale === '') { + locale = i18n.detectLocale() } + moment.locale(locale) - i18n.locale = locale + i18n.default.locale = locale state.user = value }, setCSS: (state, value) => (state.css = value),