多语言切换vue2+vue-i18n

环境:vue: 2.6.10,vue-i18n: 8.28.2

安装插件

npm install vue-i18n@8

在package.json中检查

 

 在main.js中引入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import VueI18n from 'vue-i18n';
Vue.use(VueI18n);
 
const i18n = new VueI18n({
  locale: localStorage.getItem('lang') || 'zh', // 语言标识 //this.$i18n.locale // 通过切换locale的值来实现语言切换
  messages: {
     'zh': require('@/assets/VueI18n/language-zh'),
     'en': require('@/assets/VueI18n/language-en'),
     'fn': require('@/assets/VueI18n/language-fn')
  }
})
 
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})

  assets/VueI18n/language-en.js中定义对应几种语言的展示内容,每个文件变量名需要一样

复制代码
module.exports =  {
  langage:{
    ch:"CH",
    en:"EN",
    fn:"FN"
  },
  login: {
    title:"Login",
    message: "Welcome Sign In",
  }
.....几个语言就几个js
}
复制代码

 

使用

几个切换语言的按钮

 <div class="langages">
      <span @click="changeLaguageZhEnFn('zh')">{{$t('langage.ch')}}</span>
      <span @click="changeLaguageZhEnFn('en')">{{$t('langage.en')}}</span>
      <span @click="changeLaguageZhEnFn('fn')">{{$t('langage.fn')}}</span>
    </div>
1
2
3
4
changeLaguageZhEnFn(lang) {
    this.$i18n.locale = lang;
    this.lang = lang;
  },

  

其他的文字展示

<div class="title-container">
<h3 class="title">{{$t("login.title")}}</h3>
</div>
<input :placeholder="$t(login.username)" maxlength="24">

 

防止当页面刷新 语言切换成初始状态 需要

localStorage.setItem('lang',"zh");

 

https://kazupon.github.io/vue-i18n/

posted @   明媚下雨天  阅读(883)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2016-12-21 解决谷歌浏览器中的input背景色默认是黄色
2016-12-21 改变按钮在iPhone下的默认风格
2016-12-21 毕业论文—使用js将canvas保存为图片文件,并且自定义文件名
2016-12-21 毕业论文中使用的技术—FileReader接口
点击右上角即可分享
微信分享提示