我们有一个React应用程序,其中所有小部件的标签都是从属性文件中读取的,
属性文件:
export const properties = {
dashboardcrumb_label: 'DASHBOARD',
channelcrumb_label: 'CHANNELS',
jobcard_header: 'JOBS',
cancel_label: 'CANCEL'
}
js文件中的用法(示例):
import { properties } from '../../../../resources/label_property'
<FlatButton label={properties.cancel_label}
现在,我们需要使其兼容i18n。请提出一种更简单的方法来实现i18n,在该方法中我可以重复使用此属性文件,而在js中没有太多更改
答案 0 :(得分:0)
您可以使用withNamespace
hoc包装组件,如下所示:
import { withNamespaces } from 'react-i18next';
// it would add 't' and 'lng' in the props
const { t } =this.props;
<FlatButton label={t('cancel_label')}
我个人建议您使用reaact-intl