位置: 编程技术 - 正文

详解React-Native全球化多语言切换工具库react-native-i18n(react native community)

编辑:rootadmin

推荐整理分享详解React-Native全球化多语言切换工具库react-native-i18n(react native community),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react-native-elements,react-native-reanimated,react native realm,react-native-elements,react native realm,react-native-fs,react native realm,react-native-reanimated,内容如对您有帮助,希望把文章链接给更多的朋友!

开篇??篓C阶段感悟

最近2 -3个月基本都因为一些私事没怎么系统的工作和学习,途中看了几天Kotlin的东西写了些demo并且整了个小项目,但是整体状态不是很好,这些天看到些后码农的强势细思极恐。

现在大多数醒来就已经是中午,起得早去一下健身房,起的晚就家里宅一天。公司有事或者有其他家事就去协调/沟通/处理下,整个人感觉都提前进入养老状态(当然这个锅有一半是沉迷王者荣耀不可自拔,不太好)

最近项目上基本没啥事情了,然后让手下的小伙伴们对之前做的一些内容进行二次封装,然后他们引用了一个第三方国际化的库我觉得不错,然后看了看源码就分享下,希望大家用得上(虽然现在产品的受众群都是国内的,但是准备下好像没毛病?)

废话??峦炅耍?瞎婢兀?a rel="external nofollow" target="_blank" href=" (虽然我不怎么工作了,但是git还是每天会花时间看看)

库属性介绍:

项目地址: 属性 解释 支持RN版本 所有版本 支持平台 iOS+Android 是否需要NativeModule 是 是否可移植 是 是否含有jni模块 否

使用:

1.install (略,git里都写着了,就是npm那些事)

2.项目中使用

因为是一些静态属性引用,所以你用redux做储存替换也可以,直接做饮用也可以(本文拿en,zh为例)。

首先是建英文版本的配置文件,en/index.js

然后是中文的zh/index.js

属性名,结构是一致的只是属性不同,当然这里是静态的2个文件,如果场景需要可以服务端下发json,那就是完全动态的了,这部分看业务需求了。

2.1 默认的语言环境

我们在上面写了2种语言配置,那么哪种作为初始化的呢?在业务层调用前,我们可以先进行预设

in/index.js

这边进行了一些预设,默认语境为en,允许fallbacks状态(为true时,顺序向下遍历翻译),预设转换的文件就2个,一个en一个zh,这个你也可以自行后续添加根据需求而定。

详解React-Native全球化多语言切换工具库react-native-i18n(react native community)

2.2 业务层调用

先是倒包

import {in} from '你预设的index的目录';

调用(拿一个Toast做个例子)

两种输出结果如下:

源码分析

这个库的实现分为2部分,一部分是Native的版本判断等功能以及js部分的核心实现fnando/in-js

in-js是一个轻量级的js翻译库,他支持各种格式和内容的换算和语言内容的切换,地址如下: In.js做的那么Native做了些啥呢?我们来一探究竟(以安卓为例,苹果看不懂,抱歉)

Native代码就两个类,所以我之前说你直接把Native代码copy走然后项目依赖In.js也能达到这个效果

RNInPackage是一个普通的Package类,它的作用就是把我们的module加到主应用的getPackages()方法中的列表里,然后一起打进包里而已。

具体功能都在RNInModule里

加一个toast看下locale会出现什么

效果如下:

本想一探究竟内部的实现,结果是个不公开的类

总结:

首先Native那里获取本手机的LocaleList然后格式化取第一个元素交由In.js处理,然后In.js根据key选用一套有效的语言规则,再之后流程就和使用时候的顺序一样了。 整个库集成难度较低,使用起来比较简便,使用下来没碰到大坑,配合redux更美味。

标签: react native community

本文链接地址:https://www.jiuchutong.com/biancheng/369717.html 转载请保留说明!

上一篇:js 客户端打印html 并且去掉页眉、页脚的实例(js浏览器打印)

下一篇:React-intl 实现多语言的示例代码(react either)

  • 投资性房地产采用成本模式计量
  • 什么情况下一般纳税人可以简易征收
  • 以经营房产投资合营收固定收益如何开发票?
  • 购销合同需要盖合同章吗
  • 投资性房地产在非货币性资产交换怎么处理
  • 资产负债表中的流动资产包括什么
  • 收到货款做账
  • 票据占比不得超过各项贷款的
  • 生产过程半成品报废
  • 溢价收购怎么做账
  • 报销定额备用金什么意思
  • 增值税是先交税还是先开票
  • 增值税应交税费科目
  • 未结清全额是逾期吗
  • 货币基金可以投资
  • 周转材料低值易耗品怎么摊销
  • 个人所得税可以抵扣哪些费用
  • 项目部临时设施平面图
  • 月底结账哪些科目有余额
  • 为什么盈利的企业也有可能发生债务危机
  • 实收资本印花税最新政策2023年
  • 代开的发票没有打印怎么作废
  • 旅行社代订住宿发票能报销吗
  • 关税征收目的
  • 在建工程和工程物资在资产负债表
  • 企业收到党建经费 所得税
  • 生物制品的生产过程及设备
  • 考试资格的工作有哪些
  • 报销怎么打
  • mac开机按command+r没反应
  • linux如何使用
  • linux硬链接命令
  • windows10右键刷新有点卡
  • 五彩鲍鱼的做法
  • 缴纳个税时怎么做分录
  • 资产负债所有者权益损益类会计科目
  • 担保公司未到期责任准备金会计及税务处理案例
  • vue.config.js 中 devServer.proxy 配置说明,以及配置正确不生效问题
  • 软件研发支出计入什么科目
  • 【第三趴】uni-app页面搭建与路由配置(了解工程目录结构、学会搭建页面、配置路由并成功运行)
  • PHP mysqli_free_result()与mysqli_fetch_array()函数详解
  • c语言中数组越界
  • mysql启动器
  • 丢失增值税发票已报税证明单取消
  • 简述sql server 2008的新增功能
  • 毛利率在餐饮中的应用
  • 小微企业免税销售额是多少2023年
  • 代扣代缴境外增值税怎么申报
  • 暂估入库的会计分录怎么写
  • 坏账准备需要计提增值税吗
  • 生产成本可以结转到主营业务成本吗
  • 管理费用多了怎么办
  • 年末计提企业所得税的依据
  • 进项税留抵怎么做分录
  • 为什么留存收益不考虑筹资费用
  • 会计账簿的作用之一是编报和输出会计信息
  • 股东权益净资产收益率计算公式
  • 在MySQL中使用STRAIGHT_JOIN的教程
  • sql语言包括哪三种类型
  • 修改mysql数据库字符集
  • 修改注册表解决画面撕裂
  • 主板升级bios失败怎么办
  • ubuntu设置默认编辑器
  • windows7回收站图标没了
  • windows8无线网络
  • win7运行速度
  • batch批处理
  • jquery实现(textarea)placeholder自动换行
  • node性能优化
  • shell中的-le
  • python爬虫全套教程
  • bash脚本加密
  • python从入门到精通
  • node如何使用
  • js正则匹配数字
  • 福建省税务报税系统官网
  • 成都高新区办理社保在哪里?
  • 美国各地区消费水平
  • 契税含不含精装修
  • 动物大联盟是国内品牌吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设