我正在努力找出构建消息的最佳方法,其中一个动态值也需要翻译。
例如,如果我有消息“输入西班牙语...”,我想在我的应用程序支持的所有语言的每个不同组合中使用此消息。
假设只支持 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...”这个短语的上下文中使用时是不一样的。
我想这是一个假设的问题,我对语言的了解还不够,无法知道这是否是一个问题。
上述编写消息的方法是否有效?