vue项目中英文切换

官网项目用的别人的项目,自己改吧改吧就用了,
[企业官网: 坚冰,采用Vue搭建,Vue-Router做路由处理。 (gitee.com)](https://gitee.com/xudaile/fastice-tech?_from=gitee_search)这是别人创建好的项目
这个项目中没有中英文切换,而我也是第一次做中英文切换,下面记录一下吧

问了同学和百度之后最终选择了利用第三方插件

  1. 下载vue-i18n插件
    yarn add vue-i18n 或者 npm install vue-i18n --save-dev

2.在src下新建文件夹language,在文件夹language下新建zh.js及en.js及文件各模块文件夹如about、footer,如图

image.png

【src/components/language/zh.jsimport Header from "./data/header/index"  

import Footer from "./data/footer/index"

 import Home from './data/home/index'
 import CompanyProfile from "./data/companyProfile/index"
 import aboutUs from "./data/aboutUs/index"
 import mix from "./data/mix/index"
 import smapp from "./data/smapp/index"
 import softwareproduct from "./data/softwareproduct/index"
 import zhengqihezuo from "./data/zhengqihezuo/index"
 import zhaopinxinxi from "./data/zhaopinxinxi/index"
const zh = {
    language: {
        name: 'English'
    },
    user: {
        header: Header.header.ZH,
        footer:Footer.footer.ZH,
        home:Home.home.ZH,
        companyProfile:CompanyProfile.companyProfile.ZH,
        aboutUs:aboutUs.aboutUs.ZH,
        mix:mix.mix.ZH,
        smapp:smapp.smapp.ZH,
        softwareproduct:softwareproduct.softwareproduct.ZH,
        zhengqihezuo:zhengqihezuo.zhengqihezuo.ZH,
        zhaopinxinxi:zhaopinxinxi.zhaopinxinxi.ZH
        

    },
   
}
export default zh  

【src/components/language/en.jsimport User from "./data/header/index"

import Footer from "./data/footer/index"
import Home from './data/home/index'
import CompanyProfile from "./data/companyProfile/index"
import aboutUs from "./data/aboutUs/index"
import mix from "./data/mix/index"
import smapp from "./data/smapp/index"
import softwareproduct from "./data/softwareproduct/index"
import zhengqihezuo from "./data/zhengqihezuo/index"
import zhaopinxinxi from "./data/zhaopinxinxi/index"
const en = {
    language: {
        name: '中文'
    },
    user: {
        header: User.header.EN,
        footer:Footer.footer.EN,
        home:Home.home.EN,
        companyProfile:CompanyProfile.companyProfile.EN,
        aboutUs:aboutUs.aboutUs.EN,
        mix:mix.mix.EN,
        smapp:smapp.smapp.EN,
        softwareproduct:softwareproduct.softwareproduct.EN,
        zhengqihezuo:zhengqihezuo.zhengqihezuo.EN,
        zhaopinxinxi:zhaopinxinxi.zhaopinxinxi.EN

        
    },
}
export default en
一、aboutUs文件夹下新建aboutUs.js,index.js
【aboutUs.jsconst info={
    ZH: {  
     title:'愿景',
     text:'自由、健康、潜能',
     content:
     "解放有形的身体,尊重生命,心灵自由",
     title1: "使命",
     text1:'效率、精度、可持续',
     content1:
       "用人工智能来改变传统的建筑产业的发展,打造创新平台",
       name:'创新',
       name1:'责任',
       name2:'专业'
    },
    EN: {  
        title:'Vision',
        text:'Freedom, Health, Potential',
        content:
        "Liberate the physical body, respect life, and free the mind",
        title1: "Mission",
        text1:'Efficiency, Accuracy, sustainable',
        content1:
          "Use artificial intelligence to transform the traditional construction industry and create an innovative platform",
          name:'Innovation',
          name1:'Responsibility',
          name2:'Professionalism'
    }
}
export default info  



【aboutUs/index.jsimport aboutUs from "./aboutUs"
export default{
    aboutUs
 
}
  1. 在main.js下引入及挂载vue-i18n,挂载根实例后即可全局使用


import ZH from '@/components/language/zh.js'  
import EN from '@/components/language/en.js'  
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const i18n=new VueI18n({
    locale:localStorage.getItem('languageSet')||'zh',   
    messages:{
      'zh': ZH,
        'en': EN
    }
})

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

4.在dom里使用 $t(' '),若在js里使用则 this.$t(' ')

image.png

5.页面中添加点击事件(做个状态管理)


 <script>
export default {
  data() {
    return {
      language: localStorage.getItem("language"),
     }, 
  mounted() {
    if (this.$i18n.locale == "zh") {
      this.language = false;
      document.title = "lalala";
    } else {
      this.language = true;
    }
  },

  methods: {
    
    changeLanguage() {
      this.$i18n.locale == "zh"
        ? (this.$i18n.locale = "en")
        : (this.$i18n.locale = "zh");
      
      if (this.$i18n.locale == "zh") {
        this.language = false;
      } else {
        this.language = true;
      }
      console.log(this.$i18n.locale, "this.$i18n.locale");
      localStorage.setItem("languageSet", this.$i18n.locale); 
      localStorage.setItem("language", this.language);
      location.reload();
    },
   
};
script>

以上就是VUE项目中引入vue-i18n的全部过程

中英翻译是自己用的翻译软件,后续领导说要给外国人看,我就找她寻求支持,说英文还需要找专业的人看,以我的水平只能翻译成这个样子了,她压根都没听懂我的意思,还很生气,还说和我沟通苦难是因为我思维局限,呵呵,给我气笑了。

阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=20956,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?