Vue如何基于vue-i18n實(shí)現(xiàn)多國語言兼容
vue中使用 vue-i18n 兼容多國語言
1.安裝:npm install vue-i18n --save-dev
2.在main.js文件中引入:
import VueI18n from 'vue-i18n' Vue.use(VueI18n) // 通過插件的形式掛載,通過全局方法 Vue.use() 使用插件const i18n = new VueI18n({ locale: 'zh', // 語言標(biāo)識 //this.$i18n.locale // 通過切換locale的值來實(shí)現(xiàn)語言切換 messages: { 'zh': require('./VueI18n/language-zh'), // 'en': require('./VueI18n/language-en') } }) Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, i18n, components: { App }, template: '<App/>' })
3.在src下新建文件夾VueI18n(文件名字可自己定) 然后在文件夾下建立兩個(gè)文件language-zh.js和language-en.js
你也可以創(chuàng)建的是兩個(gè)json文件 如language-zh.json但是里面的格式也改成json格式
json 格式:
{ "lang":{ "home": "HHHHHHHHome", "name": 'Chinese' } }
在main.js中引入這兩個(gè)文件
Vue.use(VueI18n) // 通過插件的形式掛載,通過全局方法 Vue.use() 使用插件const i18n = new VueI18n({ locale: 'zh', // 語言標(biāo)識 //this.$i18n.locale // 通過切換locale的值來實(shí)現(xiàn)語言切換 messages: { 'zh': require('./VueI18n/language-zh'), //引入language-zh.js language-en,js 'en': require('./VueI18n/language-en') } })
language-zh.js
language-en.js
4.在組件中開始使用
<template> <div class="content"> <span>{{ $t('lang.home')}}</span> <span>{{ $t('lang.name')}}</span> <span @click="changeLaguages()">切換語言</span> <!-- <span v-if="lang==='zh'" @click="changezh" style="display:block" class="color">中文</span> --> <!-- <span v-else ="lang==='en'" @click="changeen" style="display:block">english</span> --> </div> </template> <script> export default { data () { return { lang: 'zh' } }, methods: { changeLaguages () { console.log(this.$i18n.locale) let lang = this.$i18n.locale === 'zh' ? 'en' : 'zh' this.$i18n.locale = lang } // changezh () { // this.lang = '中文' // this.$i18n.locale = 'zh' // }, // changeen () { // this.lang = 'english' // this.$i18n.locale = 'en' // } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped lang="scss"> @import '@/assets/scss/index.scss'; </style>
點(diǎn)擊切換語言 這樣就完成了一個(gè)簡單的國際化。language-en.js language-zh.js這兩個(gè)文件是要翻譯的內(nèi)容,通過$t(' ') 完成調(diào)用。
Ps:親測可用,只為備忘,僅供參考
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue組件之間通信實(shí)例總結(jié)(點(diǎn)贊功能)
這篇文章主要介紹了vue組件之間通信,結(jié)合實(shí)例形式分析了vue父子組件、兄弟組件之間通信的原理、實(shí)現(xiàn)方法,并給出了一個(gè)類似點(diǎn)贊功能的總結(jié)實(shí)例,需要的朋友可以參考下2018-12-12在vue中使用防抖和節(jié)流,防止重復(fù)點(diǎn)擊或重復(fù)上拉加載實(shí)例
今天小編就為大家分享一篇在vue中使用防抖和節(jié)流,防止重復(fù)點(diǎn)擊或重復(fù)上拉加載實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Vue項(xiàng)目的網(wǎng)絡(luò)請求代理到封裝步驟詳解
這篇文章主要介紹了Vue項(xiàng)目的網(wǎng)絡(luò)請求代理到封裝步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04vue.js實(shí)例todoList項(xiàng)目
本篇文章主要介紹了vue.js實(shí)例todoList項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07Vue.js bootstrap前端實(shí)現(xiàn)分頁和排序
這篇文章主要為大家詳細(xì)介紹了Vue.js結(jié)合bootstrap前端實(shí)現(xiàn)分頁和排序效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03