html引vue怎么实现国际化,前端框架Vue.js——vue-i18n ,vue项目中如何实现国际化...

本项目利用  VueI18n 组件进行国际化,使用之前,需要进行安装

$ npm install vue-i18n

一、框架引入步骤:

1. 先在 main.js 中引入 vue-i18n。

//国际化插件

import utils from '@/config/cookieUtils'

import VueI18n from 'vue-i18n'Vue.use(VueI18n)//通过插件的形式挂载

let currentLang= utils.get('CurrentLang')if (currentLang !== 'en-US') {

currentLang= 'zh-CN'}const i18n = newVueI18n({

locale: currentLang,//语言标识//this.$i18n.locale//通过切换locale的值来实现语言切换

messages: {'zh-CN': require('./lang/zh'), //中文语言包

'en-US': require('./lang/en') //英文语言包

}

})

c29b966ebea0302300ed75ec591ba925.png

2.   创建语言包文件

2aba12ed72c3e262b90a8e0a13f5e647.png

zh.js  代码:

export const m ={

home_page:'首页',

app_center:'应用中心',

document_center:'文档中心',

document:'文档',

plat_des:'平台概述',

API_des:'API 简介',

front_comp:'前端组件',

ability_comp:'能力组件',

jicheng_center:'集成中心',

common_problem:'常见问题',

api_interface:'API接口',

manager_controlle:'管理控制台',

service_controlle:'服务治理平台',

more:'更多',haopingRank:'好评排行',

visitRank:'访问排行',

downloadRank:'下载排行'}

en.js

export const m ={

home_page:'Home',

app_center:'App Center',

document_center:'Document',

document:'Document',

plat_des:'Introduction',

API_des:'API Introduction',

front_comp:'Front Component',

ability_comp:'Ability Component',

jicheng_center:'Integration Center',

common_problem:'Normal Problem',

api_interface:'API Interface',

manager_controlle:'Control',

service_controlle:'Service Manage Control',

more:'More',haopingRank:'Ping Rank',

visitRank:'Visit Rank',

downloadRank:'Download Rank'}

3. 实现语言切换

data () {return{

lang: utils.get('CurrentLang')

}

},

切换语言

changeLangEvent: function () {this.$confirm('确定切换语言吗?', '提示', {

confirmButtonText:'确定',

cancelButtonText:'取消',

type:'warning'}).then(()=>{//切换语言

if (this.lang === 'zh-CN') {this.lang = 'en-US'}else{this.lang = 'zh-CN'}this.$i18n.locale = this.lang //关键语句

utils.set('CurrentLang', this.lang)

}).catch(() =>{this.$message({

type:'info'})

})

}

4. 接口层面实现多语言,方案为: 在HTTP请求头中携带语言信息,接口服务根据语言,返回不同的语言环境响应体。

本项目  vue.js 使用了  axios  组件,实现的话就统一在HTTP请求request拦截器中处理,代码如下:

//http request 拦截器

axios.interceptors.request.use(

config=>{//语言环境设置

let currentLang = utils.get('CurrentLang')if (currentLang === 'en-US') {

config.headers['X-Client-Language'] = 'en-US'}else{

config.headers['X-Client-Language'] = 'zh-CN'}returnconfig

},

err=>{returnPromise.reject(err)

})

以上几个步骤就实现了前端的国际化框架引入。以下就是需要对每个有文字显示的地方进行处理。

二、文字显示调用方式:

1.  直接显示

{{$t('m.home_page')}}

2. 绑定方式调用:

3.JS调用字段值

this.$i18n.messages[this.$i18n.locale].m.manual

vm.$i18n.messages[vm.$i18n.locale].m.manual

三、Element-UI 组件的国际化

1. 在main.js中引入

import enLocale from 'element-ui/lib/locale/lang/en'

import zhLocale from 'element-ui/lib/locale/lang/zh-CN'

import locale from 'element-ui/lib/locale'

2. 语言包判断

if (currentLang === 'en-US') {

import('../static/css/en.css')

Vue.use(ElementUI, {enLocale})

locale.use(enLocale)

} else {

Vue.use(ElementUI, {zhLocale})

locale.use(zhLocale)

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值