国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue使用vue-i18n實現國際化的實現代碼

2024-05-06 15:20:03
字體:
來源:轉載
供稿:網友

需求

公司項目需要國際化,點擊按鈕切換中文/英文

1、安裝

npm install vue-i18n --save

2、注入 vue 實例中,項目中實現調用 api 和 模板語法

import VueI18n from 'vue-i18n'Vue.use(VueI18n) ;const i18n = new VueI18n({  locale: 'zh-CN',  // 語言標識, 通過切換locale的值來實現語言切換,this.$i18n.locale   messages: {   'zh-CN': require('./common/lang/zh'),  // 中文語言包   'en-US': require('./common/lang/en')  // 英文語言包  }})new Vue({ el: '#app', i18n, // 最后 router, template: '<App/>', components: { App }})

3、對應語言包

zh.js中文語言包:

export const lang = { homeOverview:'首頁概覽', firmOverview:'公司概述', firmReports:'財務報表', firmAppendix:'更多附錄', firmIndex:'主要財務指標', firmAnalysis:'對比分析', firmNews:'新聞事件檔案', firmOther:'其他功能',}

en.js 英文語言包:

export const lang = { homeOverview:'Home overview', firmOverview:'firmOverview', firmReports:'firmReports', firmAppendix:'firmAppendix', firmIndex:'firmIndex', firmAnalysis:'firmAnalysis', firmNews:'firmNews', firmOther:'firmOther'}

4、按鈕控制切換語言

this.$i18n.locale,當你賦值為‘zh-CN'時,導航欄就變成中文;當賦值為 ‘en-US'時,就變成英文:

<div class="top_btn" @click="changeLangEvent">中文</div>
changeLangEvent() {  console.log('changeLangEvent');  this.$confirm('確定切換語言嗎?', '提示', {   confirmButtonText: '確定',   cancelButtonText: '取消',   type: 'warning'  }).then(() => {   if ( this.$i18n.locale === 'zh-CN' ) {    this.$i18n.locale = 'en-US';//關鍵語句    console.log('en-US')   }else {    this.$i18n.locale = 'zh-CN';//關鍵語句    console.log('zh-CN')   }  }).catch(() => {   console.log('catch');   this.$message({    type: 'info',   });  }); }

5、模板渲染

靜態渲染:

<span v-text="$t('lang .homeOverview')"></span><span>{{$t('lang .homeOverview')}}</span>

如果是element-ui 的,在要翻譯的前面加上冒號

比如:label="用戶姓名" 就改成 :label="$t('order.userName')"

動態渲染:

<span class="el-dropdown-link">{{navCompany}}</span> computed:{   navCompany:function(){    if(this.nav_company){     let str = 'lang'+this.nav_company;     return this.$t(str);    }   }},     <el-submenu      v-for="(value, title1, one) in navList"      :key="one+1"      :index="(one+1).toString()">   <template slot="title">    <router-link :to="linkList[title1]">{{ getTitle(title1) }}</router-link>   </template>       </el-submenu>methods: {  getTitle(title){    let str = 'lang.'+title;    return this.$t(str);  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 西安市| 渑池县| 开鲁县| 宽城| 宁晋县| 朝阳市| 阿克陶县| 大邑县| 嘉定区| 宁阳县| 平南县| 彰化县| 运城市| 哈尔滨市| 临江市| 虞城县| 崇礼县| 蒙自县| 黄石市| 土默特右旗| 集安市| 托里县| 平邑县| 兴安县| 凤山市| 河曲县| 信阳市| 高密市| 延川县| 偏关县| 沙田区| 娄烦县| 改则县| 靖州| 江北区| 万全县| 秦皇岛市| 潢川县| 嘉祥县| 张北县| 木里|