当前位置: 首页 > news >正文

(切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包

最近项目有多语言设置
h5使用的是vantUI,vant的组件方法挺好的 可以自定义组件文字显示,
但是!一旦有些自定义不注意的,还是会显示中文
所以就使用国际化,统一更改一下吧

而且由于i18n.js只会加载一次,所以vant的组件文字不会及时更新(与elementUI不同,elementUI国际化点这里)

1.i18n.js文件
  • getLang是获取到缓存的值,,可以设置为store的值,只要能判别语言就可以,
  • ||‘zh’预设没有获取到语言,给个默认的
  • 将切换vant的方法进行封装使用(确保能及时更新vant文字显示和新增语种
import Vue from 'vue'
import VueI18n from "vue-i18n";
import {changeLang} from '@/utils/methods'

Vue.use(VueI18n)
import {getLang} from "../common/cookies";

changeLang(getLang()||'zh')
const i18n = new VueI18n({
  locale: getLang() || 'zh', // 语言标识
  messages: {
    'en': require('@/locales/en.json'),
    'zh': require('@/locales/zh.json'),

  }
})
export default i18n

main.js文件
  • vant我个人是按需引入,方式应该差别不大
import i18n from '@/plugins/i18n.js'
const app=new Vue({
  el: '#app',
  router,
  i18n,
  store,
  render: h => h(App)
})
封装切换的方法
  • …/locales/nl是自己拿vant的中文翻译文件进行翻译后的,也就是要新增nl这个语种,路径 :vant/lib/locale/lang/zh-CN
  • 新增语种需要设定 语种名:语种文件
  • 然后添加到vant语言里(这点真棒)
  • 在更改语言后进行使用该方法即可
import ens from 'vant/lib/locale/lang/en-US'
import nls from '../locales/nl'
import zhs from 'vant/lib/locale/lang/zh-CN'
import { Locale } from 'vant'

//进行更改语言后 更新vant组件语言
export const changeLang=(val)=>{
  let loc={
    en:"en-US",
    nl:"nl-NL",
    zh:"zh-CN",

  }
  let locs={
    en:ens,
    nl:nls,
    zh:zhs,
  }

  let messages={
    'nl-NL': nls
  }
  Locale.add(messages)

  console.log('获取的值:'+val)
  Locale.use(loc[val||'zh'],locs[val||'zh'])
}

相关文章:

  • 基于界面交互展开的用例设计思路
  • 实例分享:低投资也可实现的企业信息化综合运维管理
  • python进阶系列 - 11 python随机数
  • 数据库2-mysql环境搭建
  • Postman中的Pre-request Scrip详解
  • 知识变现海哥:如何把知识卖的更贵、更多、更酷
  • 中小商业银行主动安全纵深防御体系解决方案
  • 【HTML】表格标签,语义化
  • 如何从零开始解读什么叫产品经理
  • 基于竞争学习的粒子群优化算法-附代码
  • 猿创征文|忘记背后,努力面前【开学季flag】
  • 使用bloodyAD对域属性进行查询与修改
  • python——装饰器深入研究(二)
  • 前端面试谈:简历通用注意事项
  • Inveigh结合DNS v6配合NTLM Relay 的利用
  • 【RocksDB】TransactionDB源码分析
  • 【刷算法】从上往下打印二叉树
  • Angularjs之国际化
  • Apache Spark Streaming 使用实例
  • ECMAScript入门(七)--Module语法
  • ES2017异步函数现已正式可用
  • IDEA常用插件整理
  • javascript 哈希表
  • MySQL数据库运维之数据恢复
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Python 基础起步 (十) 什么叫函数?
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 阿里云购买磁盘后挂载
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 深入浅出webpack学习(1)--核心概念
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 小程序开发中的那些坑
  • 一个JAVA程序员成长之路分享
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (附源码)ssm高校实验室 毕业设计 800008
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)jdk与jre的区别
  • (转载)从 Java 代码到 Java 堆
  • ***原理与防范
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net mvc部分视图
  • .NET Project Open Day(2011.11.13)
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • /run/containerd/containerd.sock connect: connection refused
  • /var/log/cvslog 太大
  • ??javascript里的变量问题
  • @ConditionalOnProperty注解使用说明
  • [ 转载 ] SharePoint 资料
  • [Android]使用Android打包Unity工程