Vue+Element中英文切换---精准使用

1、在main.js里配置如下:
import Vue from ‘vue’
import App from ‘./App’
import router from ‘./router’
import store from ‘./store’
import ElementUI from ‘element-ui’;
import Cookies from ‘js-cookie’
import i18n from ‘./lang’

Vue.use(ElementUI, {
  size: Cookies.get('size') || 'small',
  i18n: (key, value) => i18n.t(key, value)
})

new Vue({
  el: '#app',
  i18n,
  render: h => h(App)
})

2、创建对应的lang文件,这里是在同级目录下
在这里插入图片描述
3、lang目录下的index.js文件配置如下:
import Vue from ‘vue’
import VueI18n from ‘vue-i18n’
import Cookies from ‘js-cookie’
import elementEnLocale from ‘element-ui/lib/locale/lang/en’
import elementZhLocale from ‘element-ui/lib/locale/lang/zh-CN’//
import enLocale from ‘./en’
import zhLocale from ‘./zh’

Vue.use(VueI18n)

const messages = {
en: {
…enLocale,
…elementEnLocale
},
zh: {
…zhLocale,
…elementZhLocale
}
}
export function getLanguage() {
const chooseLanguage = Cookies.get(‘language’)
if (chooseLanguage) return chooseLanguage

// if has not choose language
const language = (window.navigator.language || window.navigator.browserLanguage).toLowerCase()
const locales = Object.keys(messages)
for (const locale of locales) {
    if (language.indexOf(locale) > -1) {
        return locale
    }
}
return 'en'

}
const i18n = new VueI18n({
// set locale
// options: en | zh | es
locale: getLanguage(),
// set locale messages
messages
})

export default i18n

需安装vue-i18n和js-cookie
npm install vue-i18n --save
npm install js-cookie --save

4、此时还需配置相应的store
store目录层级
index.js文件里的配置如下:
import Vue from ‘vue’
import Vuex from ‘vuex’
import look from ‘./modules/look’
import app from ‘./modules/app’
import getters from ‘./getters’

Vue.use(Vuex)

const store = new Vuex.Store({
modules: {
look,
app
},
getters
})

export default store

getters.js文件里的配置:
const getters = {
language: state => state.app.language,
size: state => state.app.size,
number: state => state.look.number
}
export default getters

app.js里的配置:
import Cookies from ‘js-cookie’
import { getLanguage } from ‘@/lang/index’

const state = {
language: getLanguage(),
size: Cookies.get(‘size’) || ‘medium’
}

const mutations = {
SET_LANGUAGE: (state, language) => {
state.language = language
Cookies.set(‘language’, language)
},
SET_SIZE: (state, size) => {
state.size = size
Cookies.set(‘size’, size)
}
}

const actions = {
setLanguage({ commit }, language) {
commit(‘SET_LANGUAGE’, language)
},
setSize({ commit }, size) {
commit(‘SET_SIZE’, size)
}
}

export default {
namespaced: true,
state,
mutations,
actions
}

5、zh.js和en.js文件export出去就可以了
export default {
page: {
jump: ‘跳转’
}
}

6、创建切换中英文的vue文件
在这里插入图片描述

项目实战,希望能帮到有需要的人!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值