行业知识
Vue3修改Element-plus语言与项目国际化
2026-10-30 01:10:17
来源:互联网转载
修改Element-plus默认语言
Element-plus默认��言是英语,可修改为其它语言;
()此处 Element-plus 为自动按需导入方式配置;
更多导入方式:Vue3使用Element-plus-CSDN博客
()全局配置默认语言参考:国际化 | Element Plus
统一固定设置
在 App.vue 引入 Element-plus 语言包,并使用 el-config-provider 标签
import { RouterView } from 'vue-router'import { ElConfigProvider } from 'element-plus'import zhCn from 'element-plus/dist/locale/zh-cn.mjs' 动态切换(示例)
仅作学习
import { ref, computed } from 'vue'import zhCn from 'element-plus/dist/locale/zh-cn.mjs'import en from 'element-plus/dist/locale/en.mjs'const language = ref(zhCn)const locale = computed(() => (language.value === 'zh-cn' ? zhCn : en))const toggle = () => { language.value = language.value === 'zh-cn' ? 'en' : 'zh-cn'} Switch Language
项目国际化
使用 vue-i18n 模块
安装依赖
npm i vue-i18n
创建文件
在 src 目录下创建 locales 目录,里面创建文件:en.js、zh-cn.js、index.js
// en.jsexport default { login: { title: 'Login Form', logIn: 'Login', username: 'Username', password: 'Password' }} // zh-cn.jsexport default { login: { title: '系统登录', logIn: '登录', username: '账号', password: '密码' }} // index.jsimport { createI18n } from 'vue-i18n'import elEnLocale from 'element-plus/es/locale/lang/en'import elZhLocale from 'element-plus/es/locale/lang/zh-cn'import enLocale from './en'import zhLocale from './zh-cn'const messages = { en: { ...enLocale, ...elEnLocale }, 'zh-cn': { ...zhLocale, ...elZhLocale }}export const getLocale = () => { // 获取缓存 const storLanguage = localStorage.getItem('language') // 存在返回当前语言 if (storLanguage) return storLanguage // 不存在 获取系统语言 const language = (navigator.language || navigator.browserLanguage).toLowerCase() const locales = Object.keys(messages) for (const locale of locales) { if (language.indexOf(locale) > -1) { return locale } } // 默认返回简体中文 return 'zh-cn'}const i18n = createI18n({ globalInjection: true, legacy: false, locale: getLocale(), messages: messages})export default i18n 编辑 main.js
挂载 locales/index.js
import { createApp } from 'vue'import App from './App.vue'import router from './router'import i18n from '@/locales/index'const app = createApp(App)app.use(router)app.use(i18n)app.mount('#app') 编辑 App.vue
在 App.vue 使用 el-config-provider 标签配置
import { RouterView } from 'vue-router'import { ElConfigProvider } from 'element-plus'import { useI18n } from 'vue-i18n'const { locale, messages } = useI18n() 创建组件
在 components 创建一个 language.vue 组件
import { useI18n } from 'vue-i18n'const { locale } = useI18n()const languages = [ { name: 'English', value: 'en' }, { name: '中文', value: 'zh-cn' }]const handleSetLanguage = (lang) => { locale.value = lang localStorage.setItem('language', lang)} {{ item.name }} 使用组件
在页面 home.vue 使用 language.vue 组件并使用前面配置好的语言;
import LangSelect from '@/components/lang_select/langSelect.vue'import { reactive } from 'vue'import { useI18n } from 'vue-i18n'const { t } = useI18n()const form = reactive({ name: ''}) {{ t('login.title') }}
上一篇:个人的网站怎么制作?
下一篇:服务器怎么对服务铃?