在Babel中使用Jed翻译库可以解决这个问题。Jed库使得字符串国际化和本地化变得非常容易,并且支持使用 msgid_plural 进行复数翻译。 在Jed库中,我们只需要指定我们的原始字符串并为其定义一个“domain”,这样我们就可以将其用作翻译的关键字。只要我们确保没有重复的静态字符串,我们就可以同时使用 msgid 和 msgstr 进行翻译。以下是示例代码:
import Jed from 'jed';
const i18n = new Jed({
domain: 'messages',
locale_data: {
messages: {
'': {
domain: 'messages',
lang: 'en',
plural_forms: 'nplurals=2; plural=(n !== 1);',
},
// Add your translation mappings here.
// Example:
// 'Hello, world!': 'Bonjour, monde!'
'Hello': ['Bonjour'],
'World': ['monde'],
},
},
});
i18n.translate('Hello') // 'Bonjour'
i18n.translate('World') // 'monde'
在上面的示例中,我们使用了 msgid Hello 和 World,并且在 msgstr 中对其进行了翻译。我们可以使用 i18n.translate() 方法以获取翻译后的字符串。