阿里飞冰(ice)框架下国际化实践

简介: 阿里飞冰国际化方案

基本思路

阿里飞冰采用的是React基本框架,因而国际化方案采用yahoo的React-Intl包,其提供了IntlProvider的类,用于包裹组件。因而基本思路就是通过localStorage存储一个lang值,用于提供给IntlProvider的属性locale进行语言的识别,在locales模块目录下维护各个不同的语言配置即可,通过按钮的选择改变lang值,即可对全局环境进行语言切换。

目录结构

  • 语言配置文件: src/locales
  • 设置lang工具函数: src/utils/locale.js
  • 配置转换函数: src/utils/localeConfig.js
  • 全局语言包裹组件: src/components/LocaleProvider
  • 语言选择框组件: src/components/LocaleSelect

踩坑案例

飞冰ice的Dialog组件导致的上下文丢失

[bug描述] 在PageHead中按钮点击,是通过jsx传输的包裹格式,在飞冰Dialog点击后会出现导致包裹在全局最外层的<LocaleProvider></LocaleProvider>丢失,错误为Uncaught Error:[React Intl] Could not find required 'intl' object <IntlProvider> heads to exit in the component ancestry.

[bug分析] jsx和js中的ast转换中造成场景性质的bug,原因在于项目书写过程中的js和jsx混合使用,对于前期未考虑到国际化场景

[解决方案] 在工具函数库localeConfig中实现confirmLocale函数,用于在js中的字符串转换

总结

相较于Vue的国际化Vue-i18n来说,React的国际化较为复杂,其依赖包也有很多,如'React i18n'、'Intl'等,本次国际化过程较为繁复,其本身难度倒不大,关键在于前期未考虑到要做国际化的需求,导致js和jsx混合使用,有的需要在config.js转换,而有的则需要在jsx中做转换,在某些场景中还会出现bug,因而后续过程中的项目如果考虑到国际化场景,需要提前留出预备量,任何的框架设计与实现需要做好度的把控,过渡设计和缺少设计都不能很好的达到业务效果,后期的反复工作就会增加,做好系统设计是每一个工程师都应该提升的能力。

相关文章
|
3天前
|
存储 消息中间件 Java
基于Springboot框架+云计算的区域HIS云平台源码
基于云计算技术的B/S架构的HIS系统,为基层医院机构提供标准化的、信息化的、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准管理信息系统的功能。系统利用健康云计算平台的技术优势,建立统一的健康档案存储平台,有效实现医院数据共享与交换,解决数据重复采集及信息孤岛等问题,为实现区域卫生信息化平台奠定了基础。
43 8
|
3天前
|
监控 Java 中间件
蚂蚁金服:开源增强版 SpringBoot 的研发框架
蚂蚁金服:开源增强版 SpringBoot 的研发框架
31 1
|
7月前
|
自然语言处理 Java 物联网
TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
为了帮助开发者更好地进行 SpringBoot 的开发,避免开发盲点,我们将 TDengine 资深研发所做的内部分享——《SpringBoot 多语言支持方案》进行了相关整理,给到有需要的开发者参考。
114 1
|
10月前
|
机器学习/深度学习 人工智能 资源调度
隐语1.0正式发布|MVP部署体验包、资源调度框架Kuscia全新亮相!
隐语1.0正式发布|MVP部署体验包、资源调度框架Kuscia全新亮相!
232 0
|
网络协议 物联网 数据处理
RISC-V生态全景解析(十二):YoC组件介绍系列二:AT组件
自上期开始,我们开启了YoC组件系列内容的介绍,并带大家了解了YoC的CSI组件。本期将为大家介绍的是YoC的AT组件。本文将详细阐述AT组件的使用原理,开发所需要的其他依赖组件资源,以及在网络方面的应用,以帮助广大开发者熟悉AT组件的使用。
522 0
RISC-V生态全景解析(十二):YoC组件介绍系列二:AT组件
|
开发框架 前端开发 小程序
专注性能的多端研发框架 - ice.js 3 正式发布!
ice.js 框架在之前的版本中,主要服务于中后台 / PC 的项目研发,而随着无线端以及多端能力的拓展,ice.js 3 将成为一套面向大淘宝技术的终端应用框架。因此在 ice.js 3 的版本中除了「开发者体验」之外,还围绕「用户体验」探索了大量技术方案。 ice.js 3 地址:https://v3.ice.work/
1168 0
|
Web App开发 开发框架 前端开发
面向企业级前端应用的开发框架 UI5 的发展简史介绍
在移动应用已经无缝融合到我们日常生活的今日,我们的工作和生活几乎时时刻刻都在和 2C(即 To Customer) 应用打交道。比如手机支付,在线购物,生活缴费,天气和交通线路查询等等。
238 0
面向企业级前端应用的开发框架 UI5 的发展简史介绍
|
移动开发 JavaScript 小程序
干货分享|APICloud多端架构与开发实践解析
随着内容/媒体/智能设备的极速丰富,app需求出现井喷。移动设备屏幕碎片化、系统版本分散、厂商定制竞争加剧等各种开发适配痛点导致app开发成本和周期问题凸显,这与企业的低成本、高人效诉求相矛盾。
199 0
|
前端开发 开发者
RISC-V生态开发套件解析(九):Waft UI基础教学(上)
随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。
553 0
RISC-V生态开发套件解析(九):Waft UI基础教学(上)
|
存储 JSON 前端开发
RISC-V生态开发套件解析(十):Waft UI基础教学(下)
随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。
432 0
RISC-V生态开发套件解析(十):Waft UI基础教学(下)