需求:根據瀏覽器語言自動切換語言html
yarn安裝vue
$ yarn add vue-i18n
npm安裝ios
$ npm install vue-i18n
src下建立lang文件夾,定義zh.js,en.js……
zh.jsnpm
export default{ part1 : { name:'姓名', nation:'地區' } part2 : { gender:'性別' } }
en.js瀏覽器
export default{ part1 : { name:'name', nation:'nation' } part2 : { gender:'gender' } }
定義兩個文件,一個是i81n.js,一個是lang.js
app
import Vue from 'vue'; import VueI18n from 'vue-i18n'; Vue.use(VueI18n); //導入語言包 import Zh from '../lang/zh.js'; // 中文語言包 import En from '../lang/en.js'; // 英文語言包 const messages = { zh: Zh, // 中文語言包 en: En, // 英文語言包 } export default new VueI18n({ locale: 'zh', // set locale 默認顯示中文 fallbackLocale: 'en', //若是語言包沒有,則默認從英語中抽取 messages: messages // set locale messages });
export default function lang() { let lang = navigator.language; //瀏覽器語言判斷 lang = lang.substr(0, 2); switch (lang) { case 'zh': //中文 lang = 'zh'; break; case 'en': //英文 lang = 'en'; break; default: lang = 'en'; } return lang; }
//引入多語言支持 import i18n from './tools/i18n.js' import lang from './tools/lang.js' window.lang = lang new Vue({ i18n, //掛載i18n router, store, Axios, render: h => h(App) }).$mount('#app')
掛載到頁面this
<p>{{$t('part1.name')}}</p> <p>{{$t('part2.gender')}}</p>
js中使用code
document.title = this.$t("part1.nation");
頁面使用語言router
created: function() { //切換語言 this.$i18n.locale = lang(); }