React-intl用于国际化react组件,提供react组件和api来格式化日期、数字,字符等等。其中一个很重要的功能是实现文本翻译,将你所做的中文版应用所有文字转为英文。
关于配置什么的,请参照:https://www.jianshu.com/p/574f6cea4f26,个人觉得讲的很详细。
下面只说说在react项目中的使用方式。
第一步 导入资源,初始化
第二步 在具体的组件中进行使用
方式一 FormattedMessage返回一个html tag
对于tag,直接使用FormattedMessage, 本方式返回的是一个tag对象.
注意FormattedMessage只适用没有attributes的tag,如果带有className或者style的话,请使用第二种方式.
js import { FormattedMessage, } from 'react-intl' return ( <FormattedMessage tagName="small" id="intl.xxx" default="" /> )
方式二 injectIntl 返回一段字符串
js import { intlShape, injectIntl, } from 'react-intl' class Comp extends Component { static propTypes = { intl: intlShape.isRequired, }; render() { const { formatMessage } = this.props.intl return ( <p className="cn">{formatMessage({ id: 'intl.xxx' })}</p> ) } }