多语言,I18n的原生及element UI 使用(vue2)

一 多语言原生的实现逻辑

 1.给定两个按钮,点击实现切换语言 ,

详细需求:1 点击中文按钮,页面展示内容亲,欢迎回来, 需求2 :点击英文按钮,页面显示

要素1 当前语言设定, locale,zh代表中文,en代表英文

要素2 字典文字材料,message

要素3 翻译函数

以下代码:

<div>{{ t('sayHi') }} </div>

<el-button  @click='local='zh'>中文</el-button>

<el-button  @click='local='en'>English</el-button>

以下js部分 

data(){

     return{

             locale: 'zh'

            message: {

               zh:{ sayHi:'亲,欢迎回来' },

               en: { sayHi:'Dear,welcome back' }

}

methods: {

        t(str){

    const dict = this.messages[this.locale]   //根据语言设定拿出字典

    const  res  = dict[str]    //在字典中找到对应翻译并返回

    return res

    }

二: i18n

1.安装npm i vue-i18n

2.在<main.js>引入注册 

import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

3.const i18n = new VueI18n({    //创建实例

    locale:'zh'

    messages:{

    zh:{

          goodday:'祝你开心每一天',

        student:{

                    id:'学号'

                    }

        },

    en:{

        goodday:'have a good day'

      }

  }

})

4.挂载

new Vue({

  el: '#app',

  router,

  store,

  i18n,

  render: h => h(App)

})

5.使用

          <div class="headInfoTip">

            <p class="firstChild">早安,管理员,{{ $t('goodday') }}!{{$t('student.id')}}</p>

            <p class="lastChild">早安,管理员,{{ $t('goodday') }}!</p>

          </div>


三: 饿了么UI 的恢复默认中文显示

注意,i18n后,如果之前用引饿了么UI 组件,我们发现:饿了么的确定按钮,以及日历都变成了英文显示

解决方法: 查看饿了么文档,国际化-> 兼容下包 vue-i18n@6.x

<main.js>

在引入i18n 的下面 引入

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

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

2.在字典中,将饿了么的字典与我们自己的字典合并

const i18n = new VueI18n({    //创建实例

    locale:'zh'

    messages:{

    zh:{

          goodday:'祝你开心每一天',

        student:{

                    id:'学号'

                    },

          ...elementZH                  //合并字典

        },

    en:{

        goodday:'have a good day' ,

      ...elementEN                        //合并字典

      }

  }

})

3.将Vue.use(ElementUI)替换为

Vue.use(ElementUI, {

  i18n: (key, value) => i18n.t(key, value)

})

四:考虑到main.js 内容太多,将i18n拆分出来

<src\i18n\index.js>

// 引入库

// 四步操作做完以后, 国际化插件会在 this 里面放入两个数据

// $i18n 国际化插件实例

// $t 翻译函数

import Vue from 'vue'

import VueI18n from 'vue-i18n'

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

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

import menuZH from './zh' 

import menuEN from './en'

// vue插件安装

Vue.use(VueI18n)

// 创建实例

export default new VueI18n({

  locale: localStorage.getItem('lang') || 'zh',

  messages: {

    zh: {

      goodday: '祝你开心每一天',

      switchSuccess: '切换语言成功',

      ...elementZH,

      ...menuZH

    },

    en: {

      goodday: 'have a good day',

      switchSuccess: 'Success !!!',

      ...elementEN,

      ...menuEN

    }

  }

})

<main.js> 引入注册

import i18n from '@/i18n/index.js'

Vue.use(ElementUI, {

  i18n: (key, value) => i18n.t(key, value)

})

以上,即实现了i18n多语言的引入

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容