2

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

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

假设只支持 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} />
}} />

我有一种感觉,这不是最佳方式。或许在某些语言中,“English”这个词的独立形式在“Type in English...”这个短语的上下文中使用时是不一样的。

我想这是一个假设的问题,我对语言的了解还不够,无法知道这是否是一个问题。

上述编写消息的方法是否有效?

4

0 回答 0