vue切换中英语言制作方法(Element+i18n的使用)

介绍: Vue I18n 是 Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中。

1、安装Element ui

npm i element-ui -S

2、全局引用Element ui
在 main.js 中写入以下内容:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';

Vue.use(ElementUI);

new Vue({
  el: '#app',
  render: h => h(App)
});

3、安装vue-i8n

npm install vue-i18n

4、引入Vue-i18n,element处理语言

import VueI18n from 'vue-i18n';
//引入element处理语言
import ElementLocale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
import CN from "@/languages/Chinese"
import EN from "@/languages/English"

Vue.use(VueI18n)

const i18n=new VueI18n({
  locale:localStorage.getItem("wms-local")||"zh",
  messages:{
    zh:{
      ...zhLocale,//elementui中文包
      ...CN
    },
    en:{
      ...enLocale,//elementui英文包
      ...EN
    }
  },
  silentTranslationWarn: true
})
ElementLocale.i18n((key, value) => i18n.t(key, value))

new Vue({
  i18n,
  store,
  render: h => h(App)
}).$mount('#app')

完整代码如下:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
//全局引用Element ui
import ElementUI from 'element-ui'; 
import 'element-ui/lib/theme-chalk/index.css';
//引入vueI18处理语言切换
import VueI18n from 'vue-i18n';
//引入element处理语言
import ElementLocale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
import CN from "@/languages/Chinese"
import EN from "@/languages/English"

Vue.config.productionTip = false
Vue.use(ElementUI);
Vue.use(VueI18n)

const i18n=new VueI18n({
  locale:localStorage.getItem("wms-local")||"zh",
  messages:{
    zh:{
      ...zhLocale,//elementui中文包
      ...CN
    },
    en:{
      ...enLocale,//elementui英文包
      ...EN
    }
  },
  silentTranslationWarn: true
})
ElementLocale.i18n((key, value) => i18n.t(key, value))

new Vue({
  i18n,
  router,
  store,
  render: h => h(App)
}).$mount('#app')

5、在项目中创建language文件夹
在这里插入图片描述
创建中文包(Chinese.js)

export default {
  //常规
  loading:"加载中",
  quantity:"数量",
  name:"名称",
  all:"全部",
  yes:"是",
  no:"否",
  delete:"删除",
  edit:"编辑",
  confirm:"确认",
  print:"打印",
  Check_the_details:"查看",
  successful_operation:"操作成功!",
  The_query_is_successful:"查询成功",
  operation_failed:"操作失败!",
  more:"更多",
  //登录
  Chinese:"中文",
  English:"English",
  WMS_system:"WMS系统",
  UserAccount:"用户账号",
  password:"密码",
  RememberPassword:"记住密码",
  ForgotPassword:"忘记密码",
  RegisterAccount:"注册账号",
  login:"登录",
  Please_enter_a_user_account:"未输入用户账号",
  Please_enter_the_user_password:"未输入密码",
  SignIn:"登录中",
  LoginSuccessful:"登录成功",
}

英文包(English.js)

export default {
  //登录
  Chinese:"Ch",
  English:"En",
  Overseas_warehouse_system:"Overseas warehouse system",
  UserAccount:"User account",
  password:"password",
  RememberPassword:"Remember the password",
  ForgotPassword:"Forgot password",
  RegisterAccount:"Register an account",
  login:"login",
  Please_enter_a_user_account:"The user account number was not entered",
  Please_enter_the_user_password:"The password was not entered",
  SignIn:"Sign in",
  LoginSuccessful:"Login successful",
}

6、在组件中使用

<div class="AllWidth LoginLang">
	<span :class="{'weight':isChinese}" @click="toggleLanguage('zh')">{{$t('Chinese')}}</span>
	<span style="margin:0 5px 0 5px">|</span>
	<span :class="{'weight':!isChinese}" @click="toggleLanguage('en')" style="font-size:16px">{{$t('English')}}</span>
</div>

export default {
  data(){
    return{
      isChinese:true, //控制语言切换
    }
  },
  watch:{
    "$i18n.locale"(){
      this.loginText=this.$t('login')
    }
  },
   methods:{
   toggleLanguage(language){//切换语言
     this.isChinese=language=='ZN'?true:false
     this.$i18n.locale=language
     localStorage.setItem("wms-local",language)
   },
 },
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3 TS Vite Element Plus I18n开源项目是一个基于Vue3和TypeScript的快速开发框架,它集成了Element Plus组件库和国际化功能。 Vue3是目前最新的Vue版本,它带来了很多新的特性和改进,比如更好的性能、更强大的类型推断和优化的渲染逻辑。使用Vue3可以让开发者拥有更好的开发体验和更高效的编码方式。 TS是TypeScript的缩写,它是JavaScript的超集,为JavaScript添加了静态类型检查和其他新特性。使用TypeScript可以更早地发现代码错误,并提供更好的代码提示和重构能力,提高了代码的可维护性和可读性。 Vite是一个由Evan You(Vue的创造者)开发的新一代前端构建工具,它具有极快的冷启动和热重载能力,能够大大提升开发效率。使用Vite可以快速搭建起整个项目的开发环境。 Element Plus是一套基于Vue3的UI组件库,它提供了丰富的常用组件和样式,可以帮助开发者快速搭建精美的界面。Element Plus基于Vue3的语法进行了优化,提供了更好的性能和更丰富的功能。 I18n是国际化的缩写,它是指将应用程序适配到不同的语言和地区。开源项目的I18n功能可以帮助开发者轻松实现多语言支持,提供了翻译和切换语言的功能。 综上所述,Vue3 TS Vite Element Plus I18n开源项目是一个强大的开发框架,它集成了最新的Vue版本、TypeScript、快速开发工具Vite、Element Plus组件库和国际化功能。使用这个项目可以大大提高前端开发的效率和质量,特别适合构建大型和多语言的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wh1T3ZzT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值