i18n插件实现多语言支持,本文以中英文为例记录一下配置过程。

1.配置

1.1安装:npm install vue-i18n --save
1.2创建中英文配置项文件
src/lang目录下创建以下文件:
 
en.js  // 配置英文显示的内容
 export default {
'home': {
'route': 'Tour Route',
'report': 'Issue Report'
}
}

zh.js  // 配置中文显示的内容

 export default {
'home': {
'route': '游览路线',
'report': '问题上报'
}
}

1.3配置i18n

i18n.js  //这里面配置i18n插件

引入Vue, vue-i18n,导入中英文内容文件zh.js 和en.js

(项目使用了iview组件,所以有iview相关的文件引入)

 import Vue from 'vue'
import I18n from 'vue-i18n'
import zh from './zh'
import en from './en'
import iviewEn from 'iview/dist/locale/en-US'
import iviewZh from 'iview/dist/locale/zh-CN' Vue.use(I18n)
const messages = {
en: Object.assign(en, iviewEn),
zh: Object.assign(zh, iviewZh)
} function getLocal () {
let lang = 'en'
if (Vue.env && Vue.env.language) {
lang = Vue.env.language
}
return lang
} const i18n = new I18n({
locale: getLocal(),
messages
}) export default i18n
 
main.js中导入i18n,放入Vue的实例中,这样所有组件都可以使用了。
(  项目使用了iview组件,所以有如下配置
13 Vue.use(iView, {
14 i18n: (key, value) => i18n.t(key, value)
15 })
) 
 import Vue from 'vue'
import App from './App'
import router from './router'
import './assets/iconfont/iconfont.css'
import iView from 'iview'
import './assets/css/mapbox-gl-v0.54.0.css'
import './assets/iview-styles/iview.css'
import axios from 'axios'
import i18n from './lang/i18n' Vue.config.productionTip = false Vue.use(iView, {
i18n: (key, value) => i18n.t(key, value)
}) new Vue({
el: '#app',
router,
i18n,
components: {App},
template: '<App/>'
})

2.使用:

html中直接使用 $t("home.report") 即可获取zh.js或en.js中home对象的report属性

 <i-col span="11" >
<Button size="large" type="text" custom-icon="iconfont icon-shangbaowenti" @click="report">
{{$t("home.report")}}
</Button>
</i-col>

js中通过Vue实例的$t获取

 mounted () {
console.info(this.$t("home.report"))
}

切换语言时只需要改变$i18n.locale的值即可。

 switchLanguage () {
this.$i18n.locale = 'zh' // 'en'
}

使用vue-i18n插件做语言切换比较方便,记录一下,欢迎留言交流~

Vue多语言支持的更多相关文章

  1. 分享两种实现Winform程序的多语言支持的解决方案

    因公司业务需要,需要将原有的ERP系统加上支持繁体语言,但不能改变原有的编码方式,即:普通程序员感受不到编码有什么不同.经过我与几个同事的多番沟通,确定了以下两种方案: 方案一:在窗体基类中每次加载并 ...

  2. EnumHelper.cs枚举助手(枚举描述信息多语言支持)C#

    C#里面经常会用到枚举类型,枚举是值类型对象,如果你想用枚举类型的多属性特性,或者你想在MVC页面上通过简单的值类型转换,将某字段值所代表的含义转换为文字显示,这时候必须要将枚举扩展,是它支持文本描述 ...

  3. ios调用系统相册、相机 显示中文标题、本地化多语言支持

    因为调用系统相册.相机需要显示中文,所以搞了半天才知道是在Project->info->Custom ios Target Properties 添加 Localizations 并加入C ...

  4. (视频)《快速创建网站》 3.3 国际化高大上 - WordPress多语言支持

    本文是<快速创建网站>系列的第7篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  5. tp 多语言支持

    tp支持多语言 通过get来改变语言的 http://localhost/tp/index.php/Admin/User/add/hl/zh-cn http://localhost/tp/index. ...

  6. iOS-生成国际化包-配置App多语言支持

      标签: ios国际化 ios多语言支持 xcode多语言支持 xcode生成多语言 国际化 it 分类: 功能知识   如果你的App需要支持多国语言.那么,就应该为你的App应用添加“国际化”支 ...

  7. Zend Framework 入门(2)—多国语言支持

    如果你的项目想要支持多语言版本,那么就需要用到 Zend_Translate.Zend_Translate 的详细文档在这里,不过如果想偷懒的话,也很简单,在View Helpers 文档中介绍了如何 ...

  8. 【转】解析JDK 7的动态类型语言支持

    http://www.infoq.com/cn/articles/jdk-dynamically-typed-language Java虚拟机的字节码指令集的数量自从Sun公司的第一款Java虚拟机问 ...

  9. Windows Phone 8本地化多语言支持

    原文 Windows Phone 8本地化多语言支持 在WP8平台处理本地化多语言的支持还是比较容易的,大部分工作都有VS IDE处理,开发者只需简单操作,并翻译本地资源即可实现. 无论您目前的应用是 ...

随机推荐

  1. Python 发送微信小程序的模板消息

    在小程序的开发过程中,会存在模板消息的发送,具体文档见 这里,模板消息的发送是和语言无关的,这里将简要写一下怎么用 Python 给用户发送模板消息.     通过文档可以知道,发送的时候,需要使用小 ...

  2. js 自定义加减乘除方法(防止js自身计算错误)

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. Jmeter之分布式测试/压测

    Jmeter做分布式测试的原因: 测试机器的配置低,对服务器进行压测时,造成不了压力. jmeter并发10000后,测试机就已经卡顿了,而且测试结果有大量失败(忽略了jmeter自身问题=.=||| ...

  4. Mock常用占位符一览

    1.随机字符串(类型 , 位数)@string(lower,10) lower : 小写字母upper : 大写字母number : 数字 2.随机int(下限 , 上限)@integer(60, 1 ...

  5. centos 7 配置pytorch运行环境

    华为云服务器,4核心8G内存,没有显卡,性能算凑合,赶上双11才不到1000,性价比还可以,打算配置一套训练densenet的环境. 首先自带的python版本是2.7,由于明年开始就不再维护了,所以 ...

  6. C# DataGridView 动态添加列和行

    https://blog.csdn.net/alisa525/article/details/7350471 dataGridView1.ReadOnly = true ;      //禁用编辑功能 ...

  7. SqlServer2008 / SqlServer2012 禁用windows登录,sa忘记密码或密码过期如何登陆

    以管理员身份运行cmd 1.cmd 下  停止SqlServer服务,net stop mssqlserver: 2.新建windows账号test,加入administrators组里,授予管理员权 ...

  8. 配置java环境遇到的问题及解决方案

    第一个问题: 安装SDK过程中有过报错,就要注意文件是否齐全,我看了下sdk文件夹下的platforms里面是空的.打开sdk里面的SDK Manager.exe,勾选一个安卓版本进行下载即可. 第二 ...

  9. An incompatible version [1.2.10] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

    这个链接的博主写的很详细,直接推荐:https://blog.csdn.net/zhoukikoo/article/details/80532483

  10. dubbo和mq的使用场景

    MQ:消息队列.生产者消费者模式,可用于对消息实时性要求不高的场景.多进程之间间接调用关系 Dubbo:RPC实现.多进程之间直接调用关系 dubbo 1,rpc的分布式集群支持:负载均衡是对外提供一 ...