当前位置: 首页 > Web前端 > HTML5

VUE实战3:支持多国语言国际化(vue-i18n),后台管理Admin界面

时间:2023-04-05 18:04:29 HTML5

第一个版本的RXEditor是英文版,有些小伙伴好像不习惯,后来因为惯性,不愿意了修改旧代码加入中文版,这次提前解决了这个问题。克服惰性最好的方法就是想到就去做,避免拖延。本来打算在界面右上角做一个选择语言的下拉菜单。下拉菜单的工作量有点大,几乎不需要随时切换界面语言。Finalize获取浏览器区域设置,并使用浏览器的语言设置。也就是说用中文浏览器打开就是中文版,用英文浏览器打开就是英文版。这样可以无感切换,工作量小,好用(嗯,言外之意就是我的决定是最好的)。确定实现方法,立即开始工作:1、安装vue-i18n插件:npmivue-i18n-S2。在assets目录下新建一个locales,用来存放字典相关的文件。语言和文本内容放在.json文件index.html中。js文件用于引用vue-i18n并初始化一些基本设置:3.写两个语言版本的json文件:en.json`{"toolbar":{"new":"New","open":"打开","save":"Save","download":"Download","about":"About","github":"Github"}}`zh.json`{"toolbar":{"new":“新建”,“打开”:“打开”,“保存”:“保存”,“下载”:“下载”,“关于”:“关于”,“github”:“Github”}}`注意,jsonfile需要双引号,单引号无效。3.写index.js`importVuefrom'vue'importVueI18nfrom'vue-i18n'//引入Vue-i18nVue.use(VueI18n)//引入语言资源文件constlocales={zh:require('./zh.json'),en:require('./en.json'),}//构建vuei18n实例,稍后导出consti18n=newVueI18n({locale:getDefaultLang(),messages:locales,})//获取浏览器locale,截取lang的前2个字符,因为浏览器语言的返回值可能是://zh-cnChinese(PRC)//zh-twChinese(TaiwanRegion)//zh-hk中文(中国香港特别行政区)//zh-sg中文(新加坡)//en-us英文(美国)//en英文functiongetDefaultLang(){letlang=navigator.language||navigator.userLanguagelang=lang.substr(0,2)returnlang}//做一些基本配置exportconstsetup=()=>{letlang=getDefaultLang()Object.keys(locales).forEach(lang=>{document.body.classList.remove(\lang\-${lang}\)})document.body.classList.add(lang-${lang})document.body.setAttribute('lang',lang)Vue.config.lang=langi18n.locale=lang}`4.加载VUE实例`importi18nfrom'./assets/locales'newVue({el:'#app',i18n,渲染:h=>h(App)})`5.调用:`{{$t('toolbar.new')}}

`这样就完成了,运行结果:本作品,大量参考文章:https://segmentfault.com/a/1190000017762753,感谢作者分享如此优质的内容,说说也许他能感受到我的感激之情:)对于整个项目在这个历史节点的代码,请到我的Github查看:https://github.com/vularsoft/studio-ui这个历史节点的查找方式:RXEditor是一个Boostrap代码可视化编辑工具,这个系列记录了软件的开发过程,有问题可以在ithub上给我留言。