vue
需求:npm
公司項目須要國際化,點擊按鈕切換中文/英文app
咱們首先要進行安裝:ui
npm install vue-i18n --save
複製代碼
以後咱們要在咱們的main.js內引入this
import Vue from 'vue'
import App from './App'
import router from './router'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n) // 經過插件的形式掛載
const i18n = new VueI18n({
locale: 'zh', // 語言標識
//this.$i18n.locale // 經過切換 locale 的值來實現語言切換
messages: {
'zh': require('@/locale/zh.js'), // 中文語言包
'en': require('@/locale/en.js') // 英文語言包
}
})
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
i18n,
router,
components: { App },
template: '<App/>'
})
複製代碼
其中spa
messages: {
'zh': require('@/locale/zh.js'), // 中文語言包
'en': require('@/locale/en.js') // 英文語言包
}
複製代碼
咱們message內部引用的語言包要根據咱們自身的需求去進行更改,有的多是雙語言需求有的多是多語言,請根據自身進行調整。 (相似雙token/header)插件
這是我放語言包的地址和文件(看截圖就能看懂)eslint
這是en的
module.exports = {
language: {
name: 'English',
}
}
這是zh的
module.exports = {
language: {
name: '中文',
}
}
複製代碼
有的人可能用過i18認爲我可能寫的過於簡單了,其實不是內容就是一個格式的表。咱們要根據本身的需求去寫,因此在這裏我就不給一些18'萌新'留下一些先入爲主的觀念了.總用的諒解下哈~code
以後咱們就能夠在頁面當中去寫功能了-->首先咱們轉換文字確定是經過咱們觸發的某個功能纔會發生改變.因此咱們要觸發咱們的某個事件這裏咱們就用點擊事件代替了component
<p v-on:click="changeL" >
Language: CN/EN
</p>
或
<p @click="changeL" >
Language: CN/EN
</p>
簡單來講@就是v-on的縮寫,還有就是:是v-bind的縮寫
複製代碼
觸發事件
changeL(){
if ( this.lang === 'zh' ) {
this.lang = 'en';
this.$i18n.locale = this.lang; // 關鍵語句
}else {
this.lang = 'zh';
this.$i18n.locale = this.lang; // 關鍵語句
}
}
複製代碼
以後改變咱們頁面的內容
內容格式:
我的以爲統一一點用這種就好
{{ $t('language.name') }}
複製代碼
若是須要深度一些的i18n請關注我稍後的更新謝謝.