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、注意:语言包文件的数据持久化。 

相关内容

热门资讯

华策影视:《西游记》系列首作《... 6月23日消息,华策影视日前发布精品微短剧《西游记》《资治通鉴》等一批重大IP项目。华策影视集团制片...
涉及零食、饮料等,37批次食品... 6月23日消息,市场监管总局近日组织食品安全监督抽检1865批次样品,检出37批次样品不合格。对抽检...
格力电器:与珠海格力供应链管理... 6月23日消息,格力电器在互动平台表示,珠海格力供应链管理有限公司与珠海格力电器股份有限公司没有任何...
常润股份:拟收购湖北达峰73.... 6月23日消息,常润股份公告称,公司与湖北正奥、巨港国际签署股权收购框架协议,拟以现金收购湖北达峰7...
俄外长称随时准备恢复与乌克兰的... 6月23日消息,俄罗斯外长拉夫罗夫当地时间23日表示,俄方随时准备从中断的地方恢复与乌克兰的谈判,并...
创业板指半日涨1.58% 创业... 2026.07.03作者 |一财阿驴11:31 A股午盘丨创业板指半日涨1.58%沪指涨0.69%,...
SpaceX盘前转涨 6月23日消息,SpaceX盘前转涨,此前一度跌近5%。(科股宝播报)
世界最大清洁能源走廊腾出358... 6月23日消息,从三峡集团获悉,为全力保障长江流域汛期安全,由乌东德、白鹤滩、溪洛渡、向家坝、三峡和...
兆丰股份:拟募资不超14亿元用... 6月23日消息,兆丰股份公告称,公司董事会审议通过向不特定对象发行可转换公司债券预案,拟发行总额不超...
芯联集成:签署芯联先进增资协议... 6月23日消息,芯联集成公告称,公司与芯联先进、绍兴柯桥芯合先进集成创业投资基金合伙企业(有限合伙)...