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;