IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue + ElementUi 使用多语言(包含element-ui切换多语言) -> 正文阅读

[JavaScript知识库]vue + ElementUi 使用多语言(包含element-ui切换多语言)

1.安装vue-i18n(切记:vue2x的版本,一定要安装8.9.0以下的版本)

npm install vue-i18n@8.9.0 --save

2.在src中,新建lang文件

--src
 + lang
  + index.js
  + en_us.js
  + zh_cn.js

3.index.js

import Vue from 'vue'
import Element from 'element-ui'
import VueI18n from 'vue-i18n'
import locale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
import enLocale from './en_us'
import zhLocale from './zh_cn'
import Cookies from 'js-cookie'
Vue.use(VueI18n)

const messages = {
  zh: {
     language: '简体中文',
     ...enLocale,
    ...zhLocale
  },
  en: {
    language: 'English',
    ...enLocale ,
    ...enLocale
  }
}
const i18n = new VueI18n({
  locale: Cookies.get('language') || 'en', // set locale
  messages // set locale messages
})

locale.use(Element, {
  i18n: (key, value) => i18n.t(key, value)
})
// 导出messages 给切换语言的时候用
export { i18n, messages }

4.zh_cn.js文件

export default {
   test: '测试',
   tabel: {
     label: '中文'
   }
}

5.en_us文件

export default {
   test: 'Test',
   tabel: {
     label: 'Chinese'
   }
}
// zh_cn与 en_us的key值需要保持一致

6.main.js

import Vue from 'vue'
import Cookies from 'js-cookie'
import 'normalize.css/normalize.css'
import Element from 'element-ui'
import App from './App'
import store from './store'
import router from './router/routers'
import { i18n } from '@/lang'
Vue.use(Element, {
  i18n: (key, value) => i18n.t(key, value), // 这里会根据选的语言切换Element-ui的语言
  size: Cookies.get('size') || 'small' // set element-ui default size
})
Vue.config.productionTip = false
new Vue({
  el: '#app',
  router,
  i18n,
  store,
  render: h => h(App)
})

7.如何使用及切换语言,比如在App.vue上进行多语言的切换

<template>
  <div id="app">
    <p>{{ $t('test')}}</p>
    <p>{{$t('tabel.label')}}</p>
      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click" @command="choose">
        <span class="language">{{ language }}<i class="el-icon-caret-bottom" /></span>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item v-for="(item, key ,i) in messages" :key="i" :command="key">{{ item.language }}</el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
    <router-view />
  </div>
</template>

<script>
import { messages } from '@/lang'
export default {
  name: 'App',
  data() {
    return {
      messages: messages,
      language: '',
      test: this.$t('test') // 如果在非temlate模版中取多语言的值的话,去使用this.$t('xxx')
    }
  },
  created() {
    this.setLanguage()
  },
  methods: {
     setLanguage() {
      const lang = Cookies.get('language') || 'en'
      this.language = this.messages[lang].language
    },
    choose(lang) {
      this.$i18n.locale = lang
      Cookies.set('language', lang)
      this.setLanguage()
    }
  }
}
</script>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:34:53  更:2022-04-07 22:35:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:17:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码