reactjs - React Intl,如何在消息中添加数字?
问题描述
我有一个en.json
文件如下:
{
"doorClosing": {
"defaultMessage": "Doors closing",
"description": "Elevator doors are being closed"
},
"floorSelected": {
"defaultMessage": "Floor selected: {floorSelected}",
"description": "`The floor ${lift.floorSelected} has been selected`"
},
"floorSelectedInvalid": {
"defaultMessage": "Invalid floor",
"description": "The selected floor is not valid"
},
"idle": {
"defaultMessage": "",
"description": ""
},
"init": {
"defaultMessage": "Initialisation",
"description": "The system is being initialized"
},
"liftMoving": {
"defaultMessage": "Elevator moving",
"description": "Elevator is being moved to the floor selected"
}
}
然后在代码的后面,我使用let dashboardMsg = intl.formatMessage({id:msg});
where msg 是 json 文件中包含的键之一。
关于 key floorSelected
,当我使用它时,它${lift.floorSelected}
不会被此变量中包含的数字转换。
怎么了?还有其他方法还是我必须手动执行?
解决方案
您可以通过values
prop 传递变量:
"floorSelected": {
"id": "selected.floor",
"defaultMessage": "Floor selected: {floorSelected}",
}
//...
let dashboardMsg = intl.formatMessage({id:msg, values: {floorSelected: 5})
不确定这是否适用于描述。
推荐阅读
- laravel - 根据 laravel 6 中的本地化/语言加载 word/pdf/text 文件
- math - a 模 b = c ,我有 b 和 c ,我怎样才能找到 a?
- arangodb - Foxx arangodb 遇到内存限制
- soap - 如何更改 Password_Digest 并在 JMeter 中添加地址?
- reactjs - Ant Design - 选择 - OnPopupScroll - React.js
- openedge - 填写哪个是日期类型可以留空吗?
- javascript - 时间死区——什么时候结束?
- java - 如何在 Spring 数据中存储对象的数量
- nestjs - 如何在控制器中忽略来自@UseGuards() 的某些路由?
- php - 用 WooCommerce 中的按钮替换缺货文本