From fbc801d1dadfdc0d38298e153facbb34f70af13c Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 12 Feb 2020 07:12:58 +0900 Subject: 言語切り替え MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/init.ts | 22 ++++++++++++---------- src/client/pages/settings/general.vue | 21 ++++++++++++++++++++- 2 files changed, 32 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/client/init.ts b/src/client/init.ts index 9a9ba8be6a..a3953dcd0f 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -61,20 +61,22 @@ if (localStorage.getItem('theme') == null) { } //#region Detect the user language -let lang = null; +let lang = localStorage.getItem('lang'); -if (langs.map(x => x[0]).includes(navigator.language)) { - lang = navigator.language; -} else { - lang = langs.map(x => x[0]).find(x => x.split('-')[0] == navigator.language); +if (lang == null) { + if (langs.map(x => x[0]).includes(navigator.language)) { + lang = navigator.language; + } else { + lang = langs.map(x => x[0]).find(x => x.split('-')[0] == navigator.language); - if (lang == null) { - // Fallback - lang = 'en-US'; + if (lang == null) { + // Fallback + lang = 'en-US'; + } } -} -localStorage.setItem('lang', lang); + localStorage.setItem('lang', lang); +} //#endregion // Detect the user agent diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue index 061838b44d..90803636b9 100644 --- a/src/client/pages/settings/general.vue +++ b/src/client/pages/settings/general.vue @@ -27,6 +27,13 @@ {{ $t('reduceUiAnimation') }} +
+ + + + + +
@@ -36,8 +43,9 @@ import { faImage, faCog } from '@fortawesome/free-solid-svg-icons'; import MkInput from '../../components/ui/input.vue'; import MkButton from '../../components/ui/button.vue'; import MkSwitch from '../../components/ui/switch.vue'; +import MkSelect from '../../components/ui/select.vue'; import i18n from '../../i18n'; -import { apiUrl } from '../../config'; +import { apiUrl, langs } from '../../config'; export default Vue.extend({ i18n, @@ -46,10 +54,13 @@ export default Vue.extend({ MkInput, MkButton, MkSwitch, + MkSelect, }, data() { return { + langs, + lang: localStorage.getItem('lang'), wallpaperUploading: false, faImage, faCog } @@ -72,6 +83,14 @@ export default Vue.extend({ }, }, + watch: { + lang() { + localStorage.setItem('lang', this.lang); + localStorage.removeItem('locale'); + location.reload(); + } + }, + methods: { onWallpaperChange([file]) { this.wallpaperUploading = true; -- cgit v1.2.3-freya