31 lines
944 B
Vue
31 lines
944 B
Vue
<script lang="ts" setup>
|
|
import { useSettingsStore } from '@/store/modules/settings'
|
|
import getPageTitle from '@/utils/pageTitle'
|
|
const { locale } = useI18n()
|
|
|
|
const route = useRoute()
|
|
|
|
const settingsStore = useSettingsStore()
|
|
const { theme } = storeToRefs(settingsStore)
|
|
const { changeLanguage } = settingsStore
|
|
|
|
const handleCommand = (language: string) => {
|
|
changeLanguage(language)
|
|
locale.value = language
|
|
document.title = getPageTitle(route.meta.title)
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<el-dropdown v-if="theme.showLanguage" @command="handleCommand">
|
|
<vab-icon icon="translate" />
|
|
<template #dropdown>
|
|
<el-dropdown-menu>
|
|
<el-dropdown-item command="zh">简体中文</el-dropdown-item>
|
|
<el-dropdown-item command="zh-TW">繁体中文</el-dropdown-item>
|
|
<el-dropdown-item command="en">English</el-dropdown-item>
|
|
</el-dropdown-menu>
|
|
</template>
|
|
</el-dropdown>
|
|
</template>
|