阿里飞冰(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,因而后续过程中的项目如果考虑到国际化场景,需要提前留出预备量,任何的框架设计与实现需要做好度的把控,过渡设计和缺少设计都不能很好的达到业务效果,后期的反复工作就会增加,做好系统设计是每一个工程师都应该提升的能力。

相关文章
|
2天前
|
消息中间件 存储 NoSQL
阿里开源中间件一览
阿里开源中间件一览
12 2
|
23天前
|
小程序 数据安全/隐私保护
极客SaaS框架开源包
听说后边要出saas去水印小程序 saas短视频去重小程序
31 2
|
8月前
|
自然语言处理 Java 物联网
TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
为了帮助开发者更好地进行 SpringBoot 的开发,避免开发盲点,我们将 TDengine 资深研发所做的内部分享——《SpringBoot 多语言支持方案》进行了相关整理,给到有需要的开发者参考。
131 1
|
IDE 前端开发 小程序
阿里 & 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源
阿里 & 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源
252 0
|
网络协议 物联网 数据处理
RISC-V生态全景解析(十二):YoC组件介绍系列二:AT组件
自上期开始,我们开启了YoC组件系列内容的介绍,并带大家了解了YoC的CSI组件。本期将为大家介绍的是YoC的AT组件。本文将详细阐述AT组件的使用原理,开发所需要的其他依赖组件资源,以及在网络方面的应用,以帮助广大开发者熟悉AT组件的使用。
524 0
RISC-V生态全景解析(十二):YoC组件介绍系列二:AT组件
|
JSON Oracle 安全
推荐腾讯开源的零代码、全功能、强安全API架构
APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
491 0
推荐腾讯开源的零代码、全功能、强安全API架构
|
前端开发 JavaScript IDE
云原生开发必备:首个通用无代码开发平台 iVX 编辑器
未来一定是一个“全民编程时代”,STEM教育的流行,也从侧面证明了这一点。
云原生开发必备:首个通用无代码开发平台 iVX 编辑器
|
开发框架 前端开发 小程序
专注性能的多端研发框架 - ice.js 3 正式发布!
ice.js 框架在之前的版本中,主要服务于中后台 / PC 的项目研发,而随着无线端以及多端能力的拓展,ice.js 3 将成为一套面向大淘宝技术的终端应用框架。因此在 ice.js 3 的版本中除了「开发者体验」之外,还围绕「用户体验」探索了大量技术方案。 ice.js 3 地址:https://v3.ice.work/
1187 0
|
自然语言处理 运维 监控
阿里云中间件发展历程和开源现状 | 学习笔记
快速学习阿里云中间件发展历程和开源现状
498 2
阿里云中间件发展历程和开源现状 | 学习笔记
|
消息中间件 Cloud Native 容灾
阿里云中间件发展历程和开源现状
中间件已经发展多年,其目的主要为通过标准接口和协议解决异构网络环境下分布式应用软件互联和互操作问题。近几年,随着云原生技术的高速发展,云时代对中间件的定义又进行了扩充。2020 年由信通院牵头组织的云原生中间件白皮书对于云原生中间件又提出了 10 项新要求,主要分为底层资源、设计原则、运行时和呈现状态四个维度。阿里巴巴中间件已经有 15 年的发展历史,它与阿里业务一起成长,也是阿里巴巴云原生实践 15 年全程见证者。
阿里云中间件发展历程和开源现状

热门文章

最新文章