本项目利用  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 = new VueI18n({
locale: currentLang, // 语言标识
// this.$i18n.locale // 通过切换locale的值来实现语言切换
messages: {
'zh-CN': require('./lang/zh'), // 中文语言包
'en-US': require('./lang/en') // 英文语言包
}
})

 2.   创建语言包文件

      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')
}
},
<a @click="changeLangEvent()" style="float:right; color:#fff;">切换语言</a>
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'
}
return config
},
err => {
return Promise.reject(err)
})

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

二、文字显示调用方式:

  1.  直接显示

  

        <router-link to="/index">{{$t('m.home_page')}}</router-link>

 2. 绑定方式调用:

<span v-text="$t('m.home_page')"></span>

  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)
}

  

前端框架Vue.js——vue-i18n ,vue项目中如何实现国际化的更多相关文章

  1. 前端架构之路:使用Vue.js开始第一个项目

    Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式.本文通过一个简单的实例开始上手Vue.js开发.   一.技术准备 笔者建议在开始项目前,对以下两个技术点进行了解. ...

  2. Vue.js——60分钟webpack项目模板快速入门

    概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...

  3. Vue.js开始第一个项目

    前端架构之路:使用Vue.js开始第一个项目   Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式.本文通过一个简单的实例开始上手Vue.js开发. 一.技术准备 使用 ...

  4. Vue.js——60分钟webpack项目模板快速入门

    概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...

  5. 新建一个基于vue.js+Mint UI的项目

    上篇文章里面讲到如何新建一个基于vue,js的项目(详细文章请戳用Vue创建一个新的项目). 该项目如果需要组件等都需要自己去写,今天就学习一下如何新建一个基于vue.js+Mint UI的项目,直接 ...

  6. 4.VUE前端框架学习记录四:Vue组件化编码2

    VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  7. 3.VUE前端框架学习记录三:Vue组件化编码1

    VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  8. vue.js+webpack在一个简单实例中的使用过程demo

    这里主要记录vue.js+webpack在一个简单实例中的使用过程 说明:本次搭建基于Win 7平台 Node.js 安装官网提供了支持多种平台的的LTS版本下载,我们根据需要来进行下载安装.对于Wi ...

  9. Vue.js 2 vs Vue.js 3的实现 – 云栖社区

    Vue.js 2 vs Vue.js 3的实现 – 云栖社区 vue.js核心团队已经讨论过将在Vue3实现的变化.虽然API不会改变,但是数据响应机制(译者注:对数据改变的监听和通知)发生了变化.这 ...

  10. 在使用vue+webpack模版创建的项目中使用font-awesome

    前言:最近使用vue+webpack进行一个小项目的开发,按照官方模版文档完成项目初始化后打算引入ont-awesome字体图标库进行使用,引入过程中遇到一些问题并解决,现记录如下. 一开始进展很顺利 ...

随机推荐

  1. MapperFacade自动导入失败

    MapperFacade自动导入失败 添加以下代码并且保证项目可以扫描到: @Configuration public class OrikaConfig { @Bean public MapperF ...

  2. 腾讯云下的CentOS7 安装最新版Python3.7.0

    第一步下载Python3.7.0 刚开始我是在windows上下载之后 传到FTP服务器上的 后来发现使用以下命令可以更快捷地下载到服务器 *  wget https://www.python.org ...

  3. 【linux】如何开放防火墙端口

    linux默认大部分端口的是关闭的.而我们在开发.部署环境时,需要用到大量的服务,如mysql.tomcat.redis.zk等,需要开放指定的端口号. 以mysql端口3306为例 首先编辑服务器的 ...

  4. 玩游戏 学Flex布局

    大家好,今天推荐一个学习Flex布局的网页小游戏,非常不错,是国外的牛人开发的,值得一试,重复几次,就会大概了解Flex的属性了! 地址: http://flexboxfroggy.com/#zh-c ...

  5. Android星球效果实现

    在项目中看着这个旋转效果挺炫的,就抽取出来做个记录.主要是使用CarrouselLayout 稍微修改 CarrouselLayout代码Demo下载z地址:GitHub https://github ...

  6. android build 编译打印详细过程

    我们在make otapackage编译android代码的时候,有时候需要跟踪详细的过程,包括所有的过程,可以修改build/core/Makefile,赋值hide := 为空即可

  7. LeetCode题解之 Assign Cookies

    1.题目描述 2.问题分析 使用贪心算法. 3 代码 class Solution { public: int findContentChildren(vector<int>& g ...

  8. peewee基本操作

    本文将简单的介绍Peewee,一览它的主要特点,主要涉及到: 模型定义 存储数据 检索数据 注意:如果你偏爱稍微高级一点的教程, peewee建立类似twitter应用 是一篇结合Flask框架与pe ...

  9. iOS application/json上传文件等

    在和sever后台交互的过程中.有时候.他们需要我们iOS开发者以“application/json”形式上传. NSString *accessUrl = [NSString stringWithF ...

  10. LeetCode算法题-Number of 1 Bits(Java实现)

    这是悦乐书的第186次更新,第188篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第45题(顺位题号是191).编写一个带无符号整数的函数,并返回它所具有的"1 ...