• vue+elementUI+vue-i18n 实现国际化


    需求:实现语言的国际化

    在main.js同级建i18n文件夹,并里面建i18n.js、langs文件夹,langs文件夹下建en.js、cn.js
    目录如下:

    .
    ├── App.vue
    ├── assets
    │   └── logo.png
    ├── components
    │   └── HelloWorld.vue
    ├── i18n
    │   ├── i18n.js
    │   └── langs
    │       ├── cn.js
    │       ├── en.js
    │       └── index.js
    ├── main.js
    └── store.js 
    //i18n.js
     
    import Vue from 'vue'
    import VueI18n from 'vue-i18n'
    import messages from './langs'
     
    Vue.use(VueI18n)
    const i18n = new VueI18n({
      locale: localStorage.lang || 'cn',
      messages
    })
     
    export default i18n
    //langs/index.js
     
    import en from './en'
    import cn from './cn'
    export default {
      en,
      cn
    }
     
    //en.js
    const en = {
        message: {
            'hello': 'hello, world',
        }
    }
     
    export default en
    //cn.js
    const cn = {
        message: {
            'hello': '你好,世界',
        }
    }
     
    export default cn
    //main.js
     
    import Vue from 'vue'
    import App from './App'
    import store from './store'
    import i18n from './i18n/i18n'
    Vue.config.productionTip = false
     
    window.app = new Vue({
      store,
      i18n,
      render: h => h(App)
    }).$mount('#app')

    接下来是在页面中使用、切换语言。

    //html: 
    <p>{{$t('message.hello')}}</p> // hello, world
    //js切换语言
    data() {
        return {
            lang: 'en'
        }
    },
    methods: {
        switchLang()  {
            this.$i18n.locale = this.lang 
        }
    }

    通过改变this.$i18n.locale的值就可以自动切换页面的语言了

    接下来是将elementUI国际化,更改的地方不多,代码如下

    //i18n.js
    import Vue from 'vue'
    import locale from 'element-ui/lib/locale'
    import VueI18n from 'vue-i18n'
    import messages from './langs'
     
    Vue.use(VueI18n)
    const i18n = new VueI18n({
      locale: localStorage.lang || 'cn',
      messages
    })
    locale.i18n((key, value) => i18n.t(key, value)) //重点:为了实现element插件的多语言切换
     
    export default i18n
    //en.js
     
    import enLocale from 'element-ui/lib/locale/lang/en'
    const en = {
        message: {
            'hello': 'hello, world',
        },
        ...enLocale
    }
     
    export default en
    //cn.js
     
    import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
    const cn = {
        message: {
            'hello': '你好,世界',
        },
        ...zhLocale
    }
     
    export default cn

    main.js保持不变,现在切换中英文,elementUI内部语言也会改变。

  • 相关阅读:
    Delphi利用Windows GDI实现文字倾斜
    再学 GDI+文本输出文本样式
    GDI+在Delphi程序的应用 Photoshop色相饱和度明度功能
    GDI+图像与GDI位图的相互转换
    走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
    走进JavaWeb技术世界11:单元测试框架Junit
    走进JavaWeb技术世界10:从JavaBean讲到Spring
    走进JavaWeb技术世界9:Java日志系统的诞生与发展
    走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
    随笔总和
  • 原文地址:https://www.cnblogs.com/cczhao06/p/12938439.html
Copyright © 2020-2023  润新知