Vue项目通过vue-i18n实现国际化方案
admin
2024-03-05 00:41:47
0

Vue I18n官网 :Vue I18n   

1、安装:

npm install vue-i18n --save

 说明:直接下载最新版本的时候,出现了一个报错,后来换回了低一点的版本(如:8.22.1版本),就没出现把报错了,具体的报错如下:

Uncaught TypeError: Cannot read properties of undefined (reading ‘install‘) 页面一片空白 

(具体原因目前还没排查处理,如果大家有解决方案,欢迎评论留言~) 

2、配置:

在src文件夹下,新建plugins文件夹,里边有两个语言文件包:en.json(英文语言包) 、zh.json(中文语言包)目录如图:

 en.json文件:

{"login": {"loginBtn": "LOGIN","loginTitle": "User Login","userName": "Please enter username!","password": "Please enter password!"}
}

 zh.json文件:

{"login": {"loginBtn": "登录","loginTitle": "用户登录","userName": "请输入用户名","password": "请输入密码"}
}

 i18n.js文件:

import Vue from 'vue'
import VueI18n from 'vue-i18n'Vue.use(VueI18n)function loadLocaleMessages() {const locales = require.context('./lang', true, /[A-Za-z0-9-_,\s]+\.json$/i) // 在vue项目中使用require.context()引入某个文件夹下所有文件console.log('locales:', locales)const messages = {}locales.keys().forEach(key => {const matched = key.match(/([A-Za-z0-9-_]+)\./i)if (matched && matched.length > 1) {const locale = matched[1]messages[locale] = locales(key)}})return messages
}export default new VueI18n({locale: process.env.VUE_APP_I18N_LOCALE || 'zh', // 设置页面的默认语言fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'zh',messages: loadLocaleMessages()
})

 此外,还要在vue.config.js文件中,配置以下内容:

  pluginOptions: {i18n: {locale: 'en',fallbackLocale: 'en',localeDir: 'i18n',enableInSFC: true}},

main.js文件引入i18n

import i18n from './plugins/i18n/i18n.js' // 使用i18n实现国际化
console.log('i18n:', i18n)
i18n.locale = 'zh' // 初始化i18n,默认英文显示new Vue({router,store,i18n,render: h => h(App)
}).$mount('#baseApp')

3、使用:

  {{ $t('login.loginBtn') }}

4、注意:语言包文件的数据持久化。 

相关内容

热门资讯

解码宁波银行成长底色:风控打底... 本文来源:时代周报 作者:黄宇昆8月19日晚,宁波银行2026年半年报出炉,数据显示,截至6月末,该...
最高36348元,最低7270... 本文来源:时代周报据北京市人力资源和社会保障局官网8月21日消息,为确保本市参保单位和参保个人按时足...
直击业绩交流会:上半年亏60亿... 本报(chinatimes.net.cn)记者徐芸茜 北京报道8月20日,牧原股份(002714.S...
牧原股份半年巨亏60亿元,“猪... 20日晚间,牧原股份(002714.SZ;02714.HK)发布了2026年半年报,营业收入594....
半年暴涨500%!超级大牛股,... 2026年上半年,A股AI产业链一枝独秀,老登股跌跌不休。下半年伊始,AI股大崩,老登股趁机反弹。一...
财政部:1—7月全国一般公共预... 8月21日,财政部最新消息,今年1—7月,全国一般公共预算收入14.37万亿元,同比增长5.8%,增...
阿莱德:筹划取得源宝精密不低于... 8月21日,阿莱德公告称,公司拟通过支付现金受让及增资方式取得惠州市源宝精密五金压铸有限公司不低于5...
Keep发布运动健康大模型评测... 8月21日,运动科技公司Keep发布运动健康大模型评测基准MoveBench,该评测基准联合首都体育...
新质生产力发展提速!2026 ... 8月19日,2026世界机器人大会(WRC)在北京亦庄正式开幕。据悉,本次大会以“人机共生,产需共融...
收购终止两个月后重启 兴业银锡... 中经记者 陈家运 北京报道时隔两个多月,兴业银锡(000426.SZ)再度向*ST威领(002667...