vue 使用vue-i18n做全局中英文切换的方法
时间:2021-07-01 08:51:41|栏目:vue|点击: 次
1、vue-i18n安装
npm install vue-i18n --save-dev
2、在main.js文件中引入
import VueI18n from 'vue-i18n'; Vue.use(VueI18n); const i18n = new VueI18n({ locale: localStorage.getItem('language')||'zh', //使用localStorage缓存到本地,当下次使用时可默认当前使用语言 messages: { ' zh': require('./common/lang/zh'), 'en': require('./common/lang/en') } }) new Vue({ el: '#app', router, i18n, template: '<App/>', components: { App } })
3、新建中英文语言文件
zh.js:
module.exports = { language: { name: 'English' }, navbar: { home: '首页', } }
en.js:
module.exports = { language: { name: '中文' }, navbar: { home: 'Home', } }
4、创建一个切换语言方法(写在App.vue可以全局控制);
changeLang() { let locale = localStorage.getItem('language')||'zh'; let temp=locale === 'zh' ? 'en' : 'zh'; this.$i18n.locale=temp;//改变当前语言 localStorage.language=temp; }
5、在template中的使用:
<p>{{ $t('language.name') }}</p> <p>{{ $t('navbar.contact') }}</p>
总结