美文网首页
vue-i18n+elementui国际化

vue-i18n+elementui国际化

作者: 指尖架构141319 | 来源:发表于2020-04-21 17:51 被阅读0次

1.搭建国际化

1.1 安装vue-i18n
npm install vue-i18n

安装成功package.json显示:

image.png
1.2 创建配置文件
image.png
  • cn.js
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
const cn = {
  usm:{
    role:{
      new:'新建',
      update:'修改',
      del:'删除',
      queryUser:'查看人员'
    }
  },
  ...zhLocale
}
export default cn;
  • en.js
import enLocale from 'element-ui/lib/locale/lang/en'
const en = {
    usm:{
        role:{
            new:'new',
            update:'update',
            del:'delete',
            queryUser:'queryUser'
        }
    },
  ...enLocale
}
export default en;
  • ja.js
import jaLocale from 'element-ui/lib/locale/lang/ja'
const ja = {
    usm:{
        role:{
            new:'追加',
            update:'変更',
            del:'削除',
            queryUser:'照会員'
        }
    },
  ...jaLocale
}
export default ja;
  • index.js
import en from './en'
import cn from './cn'
import ja from './ja'
export default {
  en,
  cn,
  ja,
}
  • 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,
})
//兼容element插件的多语言切换
locale.i18n((key, value) => i18n.t(key, value)) 

export default i18n
1.3 main.js
import Vue from 'vue'
import ElementUI from 'element-ui'
import i18n from './i18n/i18n'//引入国际化
import App from './App'
import store from './store'
import router from './router'

new Vue({
    el: '#app',
    router,
    i18n,//国际化
    store,
    render: h => h(App)
})

1.4 页面代码
  • vue变量{{$t('usm.role.new')}}
<el-button
     key="0102010401"
     ref="creatRole"
     v-permission:0102010401="userPermissions"
     type="primary"
     @click="createRole"
     >{{$t('usm.role.new')}}</el-button>
  • js控制
<span style="display:block;" @click="handleCommand('cn')">中文</span>
<span style="display:block;" @click="handleCommand('en')">English</span>
<span style="display:block;" @click="handleCommand('ja')">日本語</span>
handleCommand(lang){
        this.$i18n.locale = lang;
        localStorage.setItem("lang", lang);
     }

2. 项目

xiang_workspace --> vuei18n

相关文章

  • vue-i18n+elementui国际化

    1.搭建国际化 1.1 安装vue-i18n 安装成功package.json显示: image.png 1.2 ...

  • App语言的国际化之跟随系统语言(一)

    本将要国际化的内容是: App国际化的配置 App名称国际化 代码中字符串国际化 国际化语言的配置 在项目中打开如...

  • 【整理】前端国际化小结

    近期在做国际化的改造,做了相应的调研,简单做下项目前端国际化的小结 国际化可以分为前端国际化和后端国际化,也可以是...

  • App语言的国际化之跟随系统语言(二)

    本将要国际化的内容是: 图片国际化 storyboard/xib国际化 (一)图片的国际化 方式一: 对于同一张图...

  • iOS-应用名称和内容国际化

    iOS应用的国际化,主要分为3个部分:Info.plist 文件的国际化.xib文件的国际化.m文件的国际化 In...

  • 东方国际化的符合高科技

    东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方...

  • iOS工程项目国际化

    项目国际化有两种情况,分别是应用内容国际化,还有一种是StoryBoard或Xib国际化;本文国际化(英语和简体中...

  • iOS 启动图国际化

    一、使用launchImage 国际化方法 对图片进行国际化,由于Image.xcassets无法国际化图片,所以...

  • Day18 - Flutter - 国际化

    概述 国际化的认识 国际化的适配 国际化的工具 一、国际化的认识 开发一个App,如果我们的App需要面向不同的语...

  • 国际化(i18n)

    title: vue国际化date: 2016-11-17 国际化 本文介绍vue国际化的思路与实现。 vue国际...

网友评论

      本文标题:vue-i18n+elementui国际化

      本文链接:https://www.haomeiwen.com/subject/rqjpihtx.html