App.vue:
<template><el-config-provider :locale="appStore.locale" :size="size"><router-view /></el-config-provider>
</template>
<script setup lang="ts">import useAppStore from '@/store/modules/app';
const appStore = useAppStore();
</script>
appStore.locale的定义如下:
import zhCn from 'element-plus/es/locale/lang/zh-cn';
import en from 'element-plus/es/locale/lang/en';
import enLocale from '../../lang/en';
import zhCnLocale from '../../lang/zh-cn';
import jaLocale from '../../lang/ja';
import arLocale from '../../lang/ar';
import thLocale from '../../lang/th';
import frLocale from '../../lang/fr';
import idLocale from '../../lang/id';
import plLocale from '../../lang/pl';
import ruLocale from '../../lang/ru';
export const useAppStore = defineStore('app', () => {const language = ref(Cookies.get('language'));const locale = computed(() => {if (language?.value == 'en') {return Object.assign({},en,enLocale);}else if (language?.value == 'zh-cn') {return zhCn;}else if (language?.value == 'ja') {return Object.assign({},en,jaLocale);}else if (language?.value == 'ar') {return Object.assign({},en,arLocale);}else if (language?.value == 'th') {return Object.assign({},en,thLocale);}else if (language?.value == 'fr') {return Object.assign({},en,frLocale);}else if (language?.value == 'id') {return Object.assign({},en,idLocale);}else if (language?.value == 'pl') {return Object.assign({},en,plLocale);}else if (language?.value == 'ru') {return Object.assign({},en,ruLocale);} else {return zhCn;}});return {language,locale,};
});
export default useAppStore;