1

次のようなコンポーネントがあるとします。

<FormattedMessage
    id='ui.widget.cycleOffsetSelector.timeCycle.label'
    defaultMessage="This {cycle}"
    values={{cycle: props.cycle}}
/>

この例の は実際には、、などprops.cycleの期間であるため、FormattedMessage で渡す前にそのテキストも翻訳する必要があります。翻訳内でこの種の翻訳を行う正しい方法は何ですか?dayweekmonth

私がこれを思い付くことができる最高:

const intlPeriod = {
  day: intl.formatMessage({id: 'timePeriod.week', defaultMessage: 'day'}),
  week: intl.formatMessage({id: 'timePeriod.week', defaultMessage: 'week'}),
  month: intl.formatMessage({id: 'timePeriod.month', defaultMessage: 'month'}),
};

<FormattedMessage
    id='ui.widget.cycleOffsetSelector.timeCycle.label'
    defaultMessage="This {cycle}"
    values={{cycle: intlPeriod[cycle]}}
/>

これが唯一の方法ですか?

ファイル内の の node-js パッケージ内に、 、 、 などの値が既に定義されていることがわかりますreact-intl。アプリでlib\locale-data\[lang].jsこれらの文字列に直接アクセス/使用する方法はありますか?dayweekmonth

v2のブランチを使用していreact-intlます。

4

1 に答える 1