vue使用国际化(切换不生效)
1.使用npm安装npm install vue-i18n2.在main.js中引用import VueI18n from 'vue-i18n'Vue.use(VueI18n)3.准备中英文数据中英文文件中示例代码module.exports = {navigation: {home:"Home",productCenter:"prod...
·
1.使用npm安装
npm install vue-i18n
2.在main.js中引用
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
3.准备中英文数据
中英文文件中示例代码
module.exports = {
navigation: {
home:"Home",
productCenter:"productCenter",
},
homePage:{
VDIcloudDesktop:"VDIcloudDesktop",
}
}
module.exports = {
navigation: {
home:"首页",
productCenter:"产品中心",
},
homePage:{
VDIcloudDesktop:"VDI云桌面",
}
}
4.创建带有选项的 VueI18n 实例,在main.js中
通过session来存储lang标志,页面初次进入没有session时,lang为zh,显示内容中文
const i18n = new VueI18n({
locale: sessionStorage.getItem('lang') || 'zh', // 语言标识
//this.$i18n.locale // 通过切换locale的值来实现语言切换
messages: {
'zh': require('./i18n/lang/zh'), // 中文语言包
'en': require('./i18n/lang/en') // 英文语言包
}
})
5.在导航栏中编写用来切换的标签
<li v-if="lang ==='English'">
<span @click="changeCn" style="display: block">中文</span>
</li>
<li v-else="lang ==='中文'">
<span @click="changeEn" style="display: block">English</span>
</li>
data (){
return{
lang: (sessionStorage.getItem('lang') === 'en') ? "English" : "中文",
}
},
methods:{
changeCn(){
this.lang = "中文";
this.$i18n.locale = 'zh';
sessionStorage.setItem('lang','zh');
},
changeEn(){
this.lang = "English";
this.$i18n.locale = 'en';
sessionStorage.setItem('lang','en')
},
}
6.在组建中使用数据
<li @click="getBottom" class="bottomClass"> {{ $t("navigation.home") }}</li>
点击时就可以实现中英文切换
用data中的国际化数据进行for循环操作时,国际化切换不生效,在computed中设置整个值
computed:{
message(){
return this.$t('products.Advantages')
},
}
更多推荐
已为社区贡献15条内容
所有评论(0)