位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享React-intl 实现多语言的示例代码(react either),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react either,reactcli,react constructor,react操作dom,react-immutable,react操作dom,react操作dom,react操作dom,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在项目中添加了语言国际化的功能。

语言国际化,也有人说成是语言本地化,其实就是为Web App添加多语言,我们的项目当前包含了中文版和英文版,按理来说『逐字替换』也不是多大事儿,但是,这么Low的做法,有钱途吗?

一开始的时候,我考虑的是传统的为整个项目添加config文件,根据不同的语言和地区,加载不同的config文件,就能够达到界面语言切换的目的。当然,也正是因为这个想法太过于幼稚,所以才被称为『一开始』的想法。语言的国际化不仅仅是将界面上的UI文字翻译成另一种语言,还包括了日期&时间显示,数字显示(英文环境下每隔3位一个逗号:1,),量词的显示(一个苹果是apple,两个苹果就应该是apples),甚至还有一个字符串中间插了一个变量的情况("今天午饭吃了{count}个鸡腿")...

所以这并不只是一个简单的字符替换问题,并且,我们要很方便的导出一个目录,放到word或者page当中,给到其他同事对照着进行翻译工作,这个非常重要!!难道你要让产品经理直接在代码里改么?或者你想一个一个搜索替换?不考虑清楚就干的话,相信我,You'll pay for this。

作为一个有追求的代码家,你肯定不希望在index.html当中增加一行<Script>引用吧?另外,UI中的文字全部都是使用图片的那个同学,请起立,滚。如果想要在一个React项目中,优雅的import something from somewhere,然后将界面中的文字用<首字母大写 /> 组件替代,最后通过简单的配置实现语言的国际化,那我们就用React-intl吧。

React 做国际化,我推荐使用 React-intl , 这个库提供了 React 组件和Api两种方式来格式化日期,数字和字符串等。知道这个库了,那让我们开始使用它

组件用法

为了和React 比较融和,我们可以使用组件的方式

1.安装

2.添加引用

3.添加 locale 配置文件

zh-CN.js

en-US.js

4.使用<IntlProvider />

这个组件用于设置 in 的上下文,它将包装应用程序的根组件,以便整个应用程序将配置在 in 的上下文中.最主要的两个配置项是: loacle 当前的语言环境 messages 当前语言的内容。

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

我们要动态切换语言,需要动态改这两个配置。

5.使用<FormattedMessage />

基础用法

如果当前语言环境是 中文,它会显示你好 ,如果是英文环境,会显示Hello.

动态传值

我们定义 intl.name 的时候模板里用到了{name} ,这个代表我们可以动态传值,我们可以通过FormattedMessage中的 values 属性传一个JSON对象,这是就会动态显示我们的内容了。

6.其它组件用法

Ract-intl 为我们提供了丰富的组件,可以帮我们很好的处理字符串,时间,日期 ,大家可以自己查看 API,如有不明白的地方,我可以留言。

API用法

有时候我们可能需要在代码中动态做 国际化,这就需要动态API 了。下面我简单介绍下怎么用

1.导入 injectIntl

2.在组件中注入

我在项目中用到了Redux,注入的时候应该向上面那样,如果你没有用Redux ,只需要 export defuault injectIntl(App)

3.使用 intl 对象

我们通过第二步的注入,现在在我们在 组件的 props 上会得到一个 intl 对象,它提供的方法和咱们上边介绍的组件基本相对应,这时候我们想要显示字符串,可以使用formatMessage 方法:

formatMessage的第一个参数可以传入Id, 第二个参数传入 values ,更详细的了解,请查看API

结束语

教程的代码,我已放到github 上,大家如果需要,自行查看 React-intl

标签: react either

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

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

下一篇:基于ES6作用域和解构赋值详解(edxposed 作用域)

  • 视同内销增值税怎么申报
  • 税种核定在电子版怎么查
  • 个人在境外取得收入纳税办法
  • 纳税调整增加额在报表的哪里
  • 关税的完税价格是什么意思
  • 什么是商业汇票和银行汇票
  • 定期定额个体工商户怎么报税
  • 合并报表成本法和权益法区别
  • 已经作为损失的资产以后纳税年度收回的会计处理
  • 固定资产融资租出计入什么科目
  • 企业所得税减免政策2023
  • 主营业务收入计入什么明细账
  • 公司发工资是私账
  • 暂估进项税额
  • 进项税转出企业所得税账务怎么处理
  • 公司组织游玩员招聘
  • 公司给员工的奖品是否要扣税
  • 企业申请核定征收的要求
  • 二手房房产税税率
  • 为什么增值税发票综合服务平台进不去
  • 对公人民币转账、汇款(含退汇)分录
  • 小微企业的资产总额看哪里判断的
  • 研发产品样品对我出售账务处理
  • 土地出让金返还流程
  • 小规模收到增值税专用发票咋处理
  • 建筑业进项税抵扣不足
  • 哪些发票备注栏必须注明
  • 租赁发票多少点
  • 公司股权转让协议标准范本
  • 职工食堂对外经营合法吗
  • 公允价值变动借方是增还是减
  • 完成产值怎么算
  • 生产工人工资和福利费是产品成本项目
  • microsoft edge怎么改成ie11
  • 多交的所得税退回来账务处理
  • vue中的组件有几类
  • 金银首饰消费税计税依据
  • thinkphp6调用模型的方法
  • vue3官方教程
  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)
  • 2022前端面试题及答案
  • iperf3命令和iperf2
  • 小微企业所得税优惠政策2023
  • php中array用法
  • 工程公司收到工程款会计分录
  • 外国人在中国工作签证
  • 机动车发票哪几联 做帐
  • 运输发票计算抵扣怎么报税
  • sql server备份数据还原不了怎么办
  • 车辆保险费如何缴纳印花税的
  • 以红字冲回
  • 装修费用应该计入什么科目
  • 应收账款收不回来
  • 公司购轿车会计分录怎么做
  • 结转生产成本是负数怎么办
  • 发票隔年还能做账吗
  • 主营业务毛利率和毛利率
  • 工程施工中购买的设备一直未入账需要评估吗
  • 百旺金赋领回来的发票怎么读入
  • 加快Vista中多线程下载速度
  • win7开关机时间设置
  • win8系统连接vpn失败提示错误代码807的解决方法
  • linux系统的电脑如何共享
  • 怎么用U盘装系统
  • 如何解决windows无法连接到打印机
  • ubuntu系统怎么修改root密码
  • rtos用什么语言
  • win7打开文件总是询问
  • win8注册表损坏进不了系统
  • gta4支持win10
  • js如何使用
  • jQuery插件实现静态HTML验证码校验
  • ftp命令操作
  • linux启动过程流程图
  • python如何获取
  • 举例讲解水生花卉栽培管理
  • python仿站软件官网
  • 城市垃圾处理费会计分录
  • 社保卡手机缴费怎么交不了
  • 各种税费申报日期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设