网站首页 > 技术文章 正文
1.使用vue-i18n实现语言切换,需要安装vue-i18n,使用cookie记录用户选择的语言,需要安装cookie
npm install vue-i18n
npm install js-cookie
2.新建lang文件,然后在该文件夹新建lang.js,封装setLang()和getLang()方法,用来把用户选择的语言存取到cookie
export default {
setLang (lang) {
window.localStorage.setItem('user_lang', lang)
},
getLang (defaultLang) {
let localLang = window.localStorage.getItem('user_lang')
if (localLang === null) {
return defaultLang
} else {
return localLang
}
}
}
3.在lang文件夹新建zh.js和en.js语言包
module.exports = {
layout: {
home: '首页',
scan: '扫一扫',
person: '个人'
}
}
module.exports = {
layout: {
home: 'home',
scan: 'scan',
person: 'person'
}
}
4.在main.js引入vue-i18n和lang.js
import VueI18n from 'vue-i18n'
import LangStorage from './lang/lang'
Vue.use(VueI18n)
const i18n = new VueI18n({
locale: LangStorage.getLang('zh'),//调用lang.js的getLang()方法获取语言
// locale: 'zh',
messages: {
'zh': require('./lang/zh'),//引入语言包
'en': require('./lang/en'),//引入语言包
}
})
new Vue({
el: '#app',
i18n,//使用i18n
components: { App },
template: '<App/>'
})
5.在页面使用
<mt-header :title="$t('layout.home')" >
<span>{{$t('layout.home')}}</span>
<select slot="left" v-model='lang' class="lang">//语言切换
<option value="zh">中文</option>
<option value="en" >English</option>
</select>
</mt-header>
<!--在js使用-->
<script>
alert(this.$t('layout.home'))
</script>
6.wacth方法监听语言切换
watch: {
lang (val, olfval) {
this.$i18n.locale = val//切换语言
LangStorage.setLang(this.$i18n.locale)//把语言存到cookie
}
},
7.参考
- https://www.jianshu.com/p/b022535713c3
- https://www.cnblogs.com/listen9436/p/10525532.html
- https://kazupon.github.io/vue-i18n/started.html#html
猜你喜欢
- 2024-09-27 利用Vue中keep-alive,快速实现页面缓存
- 2024-09-27 Node + Express + Mysql: Todo List项目让你成全栈
- 2024-09-27 vue仓库、组件间通信、前后台数据交互、前端储存数据大汇总
- 2024-09-27 多人群聊实现其实很简单:Nodejs+WebSocket+Vue轻松实现Web IM
- 2024-09-27 Todo List:Node+Express 搭建服务端连接Mysql - 第五章(第1节)
- 2024-09-27 推荐一个Vue3搭建的低代码数据可视化开发平台
- 2024-09-27 Vue认知及使用 vue了解
- 2024-09-27 Vue项目中实现用户登录及token验证
- 2024-09-27 vue3+ts项目搭建和封装(下篇) vue2.0 ts
- 2024-09-27 Vue + Element UI 如何动态全局主题颜色?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)