如何利用i18n实现国际化

1.首先新建i18.js文件

复制代码
// i18n配置
import { createI18n } from 'vue-i18n'
// import ElementPlus from 'element-plus'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import zh from './zh-cn'
import en from './en'
import ru from './ru'
const messages = {
  en_US: {
    ...en,
    // ...elementEnLocale
  },
  zh_CN: { 
    ...zh,
    ...zhCn
  },
  ru_RU: {
    ...ru,
    // ...elementZhLocale
  }
}
// 创建i18n
const i18n = createI18n({
  locale: localStorage.getItem('language') || 'zh_CN', // 语言标识
  globalInjection: true, // 全局注入,可以直接使用$t
  // 处理报错: Uncaught (in promise) SyntaxError: Not available in legacy mode (at message-compiler.esm-bundler.js:54:19)
  legacy: false,
  messages
})

export default i18n

注意:en_US、zh_CN、ru_RU必须按照固有格式

2.新建en.js文件

复制代码
export default {
  button: {
    confirm: 'Confirm',
    login: 'Login',
    search: 'Search',
    reset: 'Reset'
  }
}
相关推荐
爱上python的猴子31 分钟前
chrome中的copy xpath 与copy full xpath的区别
前端·chrome
Lysun0011 小时前
dispaly: inline-flex 和 display: flex 的区别
前端·javascript·css
山禾女鬼0011 小时前
Vue 3 自定义指令
前端·javascript·vue.js
麦麦大数据1 小时前
知识图谱中医知识问答系统|养生医案综合可视化系|推荐算法|vue+flask+neo4j+mysql
vue.js·知识图谱·推荐算法
啊卡无敌2 小时前
Vue 3 reactive 和 ref 区别及 失去响应性问题
前端·javascript·vue.js
北桥苏2 小时前
Spine动画教程:皮肤制作
前端
涵信2 小时前
第九节:React HooksReact 18+新特性-React 19的use钩子如何简化异步操作?
前端·javascript·react.js
Aaaaaaaaaaayou2 小时前
浅玩一下 Mobile Use
前端·llm
这个昵称也不能用吗?2 小时前
react-native搭建开发环境过程记录
前端·react native·cocoapods
hy_花花2 小时前
Vue3.4之defineModel的用法
前端·vue.js