vue 使用vue-i18n实现中英文语言切换,以及动态添加中英文

本文介绍了如何在Vue.js项目中实现国际化(i18n)功能,包括安装vue-i18n插件,配置中文和英文语言包,根据浏览器系统语言自动设置默认语言,切换语言的方法,以及在组件中获取和使用翻译文本。同时,还展示了动态添加语言内容的技巧。
摘要由CSDN通过智能技术生成

一、安装。

npm install vue-i18n

二、使用。(这里只写了核心代码)

main.js引入:

// 引入插件和语言包
import VueI18n from 'vue-i18n'
import zh from '@/i18n/langs/zh'
import en from '@/i18n/langs/en'
Vue.use(VueI18n);

中文配置,i18n/langs/zh.js,zh文件:

export default {
    placeStopOrder:"下止损单",
}

英文配置,i18n/langs/zh.js,en文件:

export default {
    placeStopOrder:"Place Stop Order",
}

main.js,使用:


// 自动设置多语言 默认选择浏览器系统语言
const navLang       = navigator.language;    //判断当前浏览器使用的语言
const localLang     = (navLang === 'zh-CN' || navLang === 'en-US') ? navLang : false;
let lang            = localStorage.getItem('language') || localLang || 'en-US';    //如果有缓存,取缓存的语言
const i18n          = new VueI18n({
    locale: lang,
    messages:{
        'zh': zh, // 中文语言包
        'en': en // 英文语言包
    },
    silentTranslationWarn: true
});
localStorage.setItem('language',lang);    //最后缓存当前使用的语言

main.js,注册并挂载:

window._vm = new Vue({
    router,
    store,
    i18n,    //注意
    render: h => h(App)
}).$mount('#app');

“window._vm”:将new实例挂载到window,方便其他单独js文件中获取语言。

三、切换语言。

切换语言的核心代码:

        //切换语言
        changeLanguage(lang){
            this.$i18n.locale = lang;
            localStorage.setItem('language',lang);
        }

调用时,中文传:'en-US',英文传:'zh-CN',跟配置的时候一致就行了。

说明:先将内存的语言修改了,代码:this.$i18n.locale = lang;再将缓存的语言也修改了。

四、获取。

普通的页面渲染时:

<div>{{$t("placeStopOrder")}}</div>

当在某个js配置文件中时,没有this:

_vm.$t("placeStopOrder");

五、动态添加中英文(不需要此功能可以忽略)。

如果数据是从后端获取的,那么需要动态添加中英文,方法如下。

this.$i18n.mergeLocaleMessage('en',{language:'Language'})        //添加英文

this.$i18n.mergeLocaleMessage('zh',{language:'语言'})        //添加中文

res.data为后端返回的数据。

步骤简单,不说废话浪费大家阅读的事件。如果有什么其他问题,请跟我私信或者是评论。

官方网址:API参考 - VueI18n 类 - 《Vue I18n v8.x 使用手册》 - 书栈网 · BookStack

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值