vue-i18n国际化实例

demo 场景需求分析

需求很简单,左上角 ‘’网易云音乐‘’就是一个中英文切换的按钮,点击弹出提示框,确认切换语言后,实现英文版本。

切换成英文版本:

三、实现国际化

1、我们得先有开发环境,先有项目跑起来,我推荐如果是喜欢用 vue 的小伙伴,可以尝试 vue-cli 官方脚手架

2、我们需要安装 vue-i18n, 推荐 npm 包依赖:

$ npm install vue-i18n

当然你也可以这样:

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>

3、注入 vue 实例中,项目中实现调用 api 和 模板语法

这边我是顺着使用 npm 安装依赖进行。先在 main.js 中引入 vue-i18n。

import VueI18n from ‘vue-i18n‘

Vue.use(VueI18n) // 通过插件的形式挂载

const i18n = new VueI18n({
    locale: ‘zh-CN‘,    // 语言标识
    //this.$i18n.locale // 通过切换locale的值来实现语言切换
    messages: {
      ‘zh-CN‘: require(‘./common/lang/zh‘),   // 中文语言包
      ‘en-US‘: require(‘./common/lang/en‘)    // 英文语言包
    }
})

/* eslint-disable no-new */
new Vue({
  el: ‘#app‘,
  i18n,  // 不要忘记
  store,
  router,
  template: ‘<App/>‘,
  components: { App }
})

上面的代码正式将 vue-i18n 引入 vue 项目中,创建一个 i18n 实例对象,方便全局调用。我们通过 this.$i18n.locale 来进行语言的切换,同样的我这边的例子里就是通过点击事件,点击‘’网易云音乐‘’,来触发事件,切换locale 的值。

4、ok, 引入的事情就是这样,那么既然实现国际化,这边简单的是中英文切换,那么自然我们需要中英文两套语言的文件,vue-i18n中相对简单,只需要两个 js 文件,通过 require 的形式引入到 main.js。

en.js 英文语言包:

export const m = {
  music: ‘Music‘,//网易云音乐
  findMusic: ‘FIND MUSIC‘,//发现音乐
  myMusic: ‘MY MUSIC‘,//我的音乐
  friend: ‘FRIEND‘,//朋友
  musician: ‘MUSICIAN‘,//音乐人
  download: ‘DOWNLOAD‘//下载客户端
}

zh.js中文语言包:

export const m = {
  music: ‘网易云音乐‘,
  findMusic: ‘发现音乐‘,
  myMusic: ‘我的音乐‘,
  friend: ‘朋友‘,
  musician: ‘音乐人‘,
  download: ‘下载客户端‘
}

最后我们只需要通过触发事件的形式,来控制 locale 的值,去调用对应的语言包就可以实现国际化。

5、组件中如何去切换 locale 的值,实现语言切换。

locale: ‘zh-CN‘,    // 语言标识
    messages: {
      ‘zh-CN‘: require(‘./common/lang/zh‘),   // 中文语言包
      ‘en-US‘: require(‘./common/lang/en‘)    // 英文语言包
    }

在 main.js 中的代码中,可以看到,当 locale 的值为‘zh-CN’时,版本为中文;当 locale 的值为‘en-US’,版本为英文。当然你也可以换成 zh 和 en,这个不固定,只需要对应上。

好了,现在来看一下,我组件中的一个点击事件中如何进行切换。

/**
 * 切换语言
 */
 changeLangEvent() {
   this.$confirm(‘确定切换语言吗?‘, ‘提示‘, {
       confirmButtonText: ‘确定‘,
       cancelButtonText: ‘取消‘,
       type: ‘warning‘
    }).then(() => {
       if ( this.lang === ‘zh-CN‘ ) {
          this.lang = ‘en-US‘;
          this.$i18n.locale = this.lang;//关键语句
       }else {
          this.lang = ‘zh-CN‘;
          this.$i18n.locale = this.lang;//关键语句
       }
    }).catch(() => {
       this.$message({
           type: ‘info‘,
       });
    });
}

这边的重点就是,点出的‘’关键语句‘’:this.$i18n.locale,当你赋值为‘zh-CN’时,导航栏就变成中文;当赋值为 ‘en-US’时,就变成英文。效果图就是文章前面的样子。

6、到这,前端 vue-i18n 国际化插件在 vue-cli 模块化环境中的开发实践就全部完成了。

四、vue-i18n 数据渲染的模板语法

我们知道 vue 中对于文字数据的渲染,有以‘’{{}}‘’或者 v-text、v-html等的形式,同样的使用国际化后,依旧可以沿用,但需要一点修改。

v-text:

<span v-text="$t(‘m.music‘)"></span>
{{}}:
<span>{{$t(‘m.music‘)}}</span>

原文地址:https://www.cnblogs.com/both-eyes/p/10122221.html

时间: 2024-11-05 18:59:28

vue-i18n国际化实例的相关文章

vue i18n 国际化 使用方法

1 先安装 npm install vue-i18n 2  新建文件assets/js/i18n.js 3  引入vue-i18n并注册到vue上 import VueI18n from 'vue-i18n' import Vue from 'vue' Vue.use(VueI18n) let locale = 'zh-CN' // 我这里进行了sessionStoraage配置 // sessionStorage.getItem('vuex') ? sessionStorage.getItem

【转】i18n实现前端国际化(实例)

源地址:https://www.jianshu.com/p/ea93efef5155 i18n实现前端国际化(实例) 0.1442018.08.27 16:25:10字数 246阅读 10563 在今日的需求中需要利用 i18n 这个框架来实现前端的国家化操作,下图是实现效果: 点击选择框实现网页上语言的切换: 下面开始实现过程: 所需工具:- jquery-3.3.1.js 下载地址:jquery- jquery.i18n.properties.js jquery.i18n.propertie

Django1.9开发博客(12)- i18n国际化

国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指定他们哪些app应该被翻译或被格式化为本地形式. 允许用户根据自己的偏好来实现本地化显示.翻译依据语言,格式化依据国家, 这些信息由浏览器中的Accept-Language头来决定.不过目前为止时区还未能实现. 参考官方文档:https://docs.djangoproject.com/en/1.9

Struts1国际化实例

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. Struts1国际化实例

vue四、实例

1.new Vue创建根实例 2.data对象,所有的属性加入到 Vue 响应式系统-值发生改变时,视图自动变更为新值 只有实例被创建时存在的属性才会响应式改变,后增加的不会 vue定义的实例属性和方法用$修饰,以区分用户定义的 new Vue({ el:'#app', data:{ msg1:'', msg2:'' } }) 3.生命周期钩子函数,created,mounted,updated,destroved.生命周期钩子的this上下文指向调用它的Vue实例 new Vue({ el:'

vue 项目的I18n国际化之路

I18n (internationalization ) ---未完善 产品国际化是产品后期维护及推广中重要的一环,通过国际化操作使得产品能更好适应不同语言和地区的需求 国际化重点:1. 语言语言本地化2. 文化颜色.习俗等3. 书写习惯日期格式.时区.数字格式.书写方向备注:项目中会兵分两路,一路是语言的国际化,另一路主要为文化国际化 产品设计之初引入国际化标准,符合项目的开发流程.国内主要主要三点,一个是港澳台采用中文繁体+英文,内陆通俗中文简体,新疆等地区采用文化标准. Vue-I18nV

应用九:Vue之国际化(vue-i18n)

vue-i18n是一款针对Vue.js 的国际化插件,具体应用步骤如下: 一.安装插件 npm install vue-i18n --save 二.在main.js中引入插件 import VueI18n from 'vue-i18n' Vue.use(VueI18n) 三.创建i18n实例 const i18n = new VueI18n({  // 默认语言  locale: 'zh', // 引入对应的语言包文件  messages: {        'zh': require('@/a

Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库

前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库. SUN公司制定的一套标准标签库的规范. JSTL标签库,是由一些Java类组成的. JSTL组成: JSTL –Core 核心标签库. 重点 JSTL – I18N - 国际化标签库.Internationalization- I18N JSTL – SQL – 数据库操作标签(有悖于MVC设计模式),现在都不用这个. JSTL - Fu

给iview项目加一个i18n国际化翻译

看了上一篇博客吗?我们就根据那一篇博客来,用里面的项目,进行我们接下来国际化翻译项目. 我们安装vue-i18n和js-cookie npm install vue-i18n npm install js-cookie --save 第一步在main.js的js引入i18n 第二步建立src/locale文件夹, //en-US.js export default { "components": { // "langChange": 'Language switch