fix(i18n): language switch is reset (#215)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
This commit is contained in:
parent
08fe00df6d
commit
22e90b5ffd
|
@ -1,12 +1,15 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import type { LocaleObject } from '@nuxtjs/i18n/dist/runtime/composables'
|
|
||||||
import type { ComputedRef } from 'vue'
|
import type { ComputedRef } from 'vue'
|
||||||
|
import type { LocaleObject } from '#i18n'
|
||||||
import { STORAGE_KEY_LANG } from '~/constants'
|
import { STORAGE_KEY_LANG } from '~/constants'
|
||||||
|
|
||||||
const { locale, t } = useI18n()
|
const { locale, t, setLocale } = useI18n()
|
||||||
|
const { locales } = useI18n() as { locales: ComputedRef<LocaleObject[]> }
|
||||||
useLocalStorage(STORAGE_KEY_LANG, locale)
|
useLocalStorage(STORAGE_KEY_LANG, locale)
|
||||||
|
|
||||||
const { locales } = useI18n() as { locales: ComputedRef<LocaleObject[]> }
|
const handleLocale = async (locale: string) => {
|
||||||
|
await setLocale(locale)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -21,7 +24,7 @@ const { locales } = useI18n() as { locales: ComputedRef<LocaleObject[]> }
|
||||||
v-for="item in locales"
|
v-for="item in locales"
|
||||||
:key="item.code"
|
:key="item.code"
|
||||||
:checked="item.code === locale"
|
:checked="item.code === locale"
|
||||||
@click="locale = item.code"
|
@click="handleLocale(item.code)"
|
||||||
>
|
>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</CommonDropdownItem>
|
</CommonDropdownItem>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
"@iconify-json/logos": "^1.1.19",
|
"@iconify-json/logos": "^1.1.19",
|
||||||
"@iconify-json/ri": "^1.1.4",
|
"@iconify-json/ri": "^1.1.4",
|
||||||
"@iconify-json/twemoji": "^1.1.6",
|
"@iconify-json/twemoji": "^1.1.6",
|
||||||
"@nuxtjs/i18n": "8.0.0-beta.5",
|
"@nuxtjs/i18n": "^8.0.0-beta.6",
|
||||||
"@pinia/nuxt": "^0.4.5",
|
"@pinia/nuxt": "^0.4.5",
|
||||||
"@tiptap/extension-character-count": "2.0.0-beta.204",
|
"@tiptap/extension-character-count": "2.0.0-beta.204",
|
||||||
"@tiptap/extension-code-block": "2.0.0-beta.204",
|
"@tiptap/extension-code-block": "2.0.0-beta.204",
|
||||||
|
|
|
@ -7,7 +7,7 @@ specifiers:
|
||||||
'@iconify-json/logos': ^1.1.19
|
'@iconify-json/logos': ^1.1.19
|
||||||
'@iconify-json/ri': ^1.1.4
|
'@iconify-json/ri': ^1.1.4
|
||||||
'@iconify-json/twemoji': ^1.1.6
|
'@iconify-json/twemoji': ^1.1.6
|
||||||
'@nuxtjs/i18n': 8.0.0-beta.5
|
'@nuxtjs/i18n': ^8.0.0-beta.6
|
||||||
'@pinia/nuxt': ^0.4.5
|
'@pinia/nuxt': ^0.4.5
|
||||||
'@tiptap/extension-character-count': 2.0.0-beta.204
|
'@tiptap/extension-character-count': 2.0.0-beta.204
|
||||||
'@tiptap/extension-code-block': 2.0.0-beta.204
|
'@tiptap/extension-code-block': 2.0.0-beta.204
|
||||||
|
@ -65,7 +65,7 @@ devDependencies:
|
||||||
'@iconify-json/logos': 1.1.19
|
'@iconify-json/logos': 1.1.19
|
||||||
'@iconify-json/ri': 1.1.4
|
'@iconify-json/ri': 1.1.4
|
||||||
'@iconify-json/twemoji': 1.1.6
|
'@iconify-json/twemoji': 1.1.6
|
||||||
'@nuxtjs/i18n': 8.0.0-beta.5
|
'@nuxtjs/i18n': 8.0.0-beta.6
|
||||||
'@pinia/nuxt': 0.4.5_typescript@4.9.3
|
'@pinia/nuxt': 0.4.5_typescript@4.9.3
|
||||||
'@tiptap/extension-character-count': 2.0.0-beta.204
|
'@tiptap/extension-character-count': 2.0.0-beta.204
|
||||||
'@tiptap/extension-code-block': 2.0.0-beta.204
|
'@tiptap/extension-code-block': 2.0.0-beta.204
|
||||||
|
@ -1072,8 +1072,8 @@ packages:
|
||||||
- vti
|
- vti
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@nuxtjs/i18n/8.0.0-beta.5:
|
/@nuxtjs/i18n/8.0.0-beta.6:
|
||||||
resolution: {integrity: sha512-UGyo80GDd8eYLCYPc+/XKPOQ0MUy7OLbSp5Zud95no6E9yAFxDNrgjaolTKV/f7U/QhSF0+xUOUC32TE8uj5Pg==}
|
resolution: {integrity: sha512-aZJ1cYmRR/r92O33PTmL8czMq2lBMliyPFzLCOB5BA3oFKY0WafTAPxi8f/VYtlWf+8JT22oZ2UeZRhpxdFPuw==}
|
||||||
engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
|
engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/bundle-utils': 3.4.0_vue-i18n@9.3.0-beta.10
|
'@intlify/bundle-utils': 3.4.0_vue-i18n@9.3.0-beta.10
|
||||||
|
|
Loading…
Reference in a new issue