React Application i18n支持

时间:2019-01-23 17:55:58

标签: reactjs internationalization react-i18next

我们有一个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中没有太多更改

1 个答案:

答案 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