i18n國際化
----剛過完年,老闆十萬火急的告訴我,要把項目做成國際化(即:中英文切換)。。
打勞工打工魂打工成為人上人,雖然咱之前沒接觸過i18國際化,但既然老闆有需求,咱也得執行啊,要不飯碗不保,剛過完年就丢了飯碗,不吉利啊。。。(話不多說,開搞)
--------------------分割線----------------------
1.npm i vue-i18n --save-dev 下載下傳i18n語言包
2.在main.js中導入挂載
3.在i18n檔案夾中,建立lang檔案夾,在lang檔案夾中再建立兩個js本地語言封包件(zh.js中文語言包,en.js英文語言包)
4.i18n中index.js中的代碼配置:
import Vue from ‘vue’;
import Element from ‘element-ui’
import VueI18n from ‘vue-i18n’;
// 引入各個語言配置檔案
import zh from ‘./lang/zh’;
import en from ‘./lang/en’;
// 建立vue-i18n執行個體i18n
Vue.use(VueI18n)
const i18n = new VueI18n({
// 設定預設語言
locale: localStorage.getItem(‘locale’) || ‘zh’, // 語言辨別
// 添加多語言(每一個語言标示對應一個語言檔案)
messages: {
zh,
en,
}
})
Vue.use(Element, {
i18n: (key, value) => i18n.t(key, value)
});
// 暴露i18n
export default i18n;
//new Vue({ i18n }).$mount(’#app’)
5.語言包裡的内容,都是一個個手寫的(很苦逼),簡單的例子,大家對照參考
兩個語言包裡的變量名必須一一對應
6.如何在代碼中使用
template 中用法:
{{ $t("login.wms") }}
1 2 js 中的用法
// 使用語言
alert(this. t ( ′ l o g i n . w m s ′ ) ) / / 切 換 語 言 , l a n g 參 數 可 為 : c n / e n / k o 等 t h i s . t('login.wms')) //切換語言,lang參數可為:cn/en/ko等 this. t(′login.wms′))//切換語言,lang參數可為:cn/en/ko等this.i18n.setUserLanguage(lang);