react-intl复合消息

时间:2017-08-24 12:56:52

标签: intl react-intl formatjs messageformat.js

我正在努力找出构建消息的最佳方法,其中一个动态值也需要翻译。

例如,如果我有“输入西班牙语...”消息,我希望在我的应用支持的所有语言的每个不同组合中使用此消息。

假设只支持en / es,那么我需要一个可以输出以下组合的函数:

Type in Spanish...
Type in English...
Escribir en español...
Escribir en ingles...

有3种支持的语言,有9种可能的组合等...

我能想到的唯一方法就是按如下方式撰写消息:

const messages = defineMessages({
    language: {
        id: 'language',
        description: 'The name of the language',
        defaultMessage: 'English'
    },
    typeInLanguage: {
        id: 'typeInLanguage',
        description: 'instructs the user to type their message in a specific language',
        defaultMessage: 'Type in { language }'
    }
})

FormattedMessage
 {...messages.typeInLanguage}
 values={{
    language: <FormattedMessage {...messages.language} />
}} />

我感觉这不是最佳方式。也许在某些语言中,“英语”一词的独立形式在“英语输入...”一词中使用时并不相同

我想这是一个假设的问题,我对语言知之甚少,不知道这是不是问题。

上述撰写邮件的方法是否有效?

0 个答案:

没有答案