index.vue
1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<template>
<el-dropdown trigger="hover" @command="handleLanguageChange">
<div>
<!-- <svg-icon icon-class="language" class-name="language-icon" style="width: 36px;" /> -->
<span>{{ changeChinese(appStore.language) }}</span>
</div>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
v-for="(item, index) in definition"
:key="index"
:disabled="appStore.language === item.value"
:command="item.value"
> {{ item.label }} </el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</template>
<script setup name="Language">
import useAppStore from '@/store/modules/app'
import { useI18n } from 'vue-i18n'
const appStore = useAppStore()
const { locale } = useI18n()
const definition = [
{ label: '中文', value: 'zh_CN'},
{ label: '英文', value: 'en_US'},
{ label: '俄文', value: 'ru_RU'},
]
function handleLanguageChange(lang) {
locale.value = lang
appStore.changeLanguage(lang)
if (lang == 'en') {
ElMessage.success('Switch Language Successfully!')
} else {
ElMessage.success('切换语言成功!')
}
}
function changeChinese(en) {
return definition.find(i => i.value == en)?.label || definition[0].label
}
</script>
<style lang='scss' scoped>
</style>