跳到主要内容
版本:Canary 🚧

string-literal-i18n-messages

确保翻译 API 只用于纯文本标签。

Docusaurus 提供了 docusaurus write-translations API。它会静态提取被标记为可翻译的文本标签。 <Translate>translate() 调用中的动态值将无法被提取。 这条规则确保了所有的翻译调用都可被静态提取。

规则详情

此规则的错误代码示例:

const text = '需要翻译的文本'

// 无效 <Translate> child
<Translate>{text}</Translate>

// 无效 message 属性
translate({message: text})

此规则的正确代码示例:

// 有效 <Translate> child
<Translate>需要翻译的文本</Translate>

// 有效 message 属性
translate({message: '需要翻译的文本'})

// 有效 <Translate> child,使用了一个 values 对象作为属性
<Translate values={{firstName: '思达'}}>
{'你好,{firstName}! 你好吗?'}
</Translate>

// 有效 message 属性,使用了一个 values object 作为第二个参数
translate({message: '{siteName} 网站图标'}, {siteName: 'Docusaurus'})

何时不使用它

如果你不使用 i18n 功能,你可以禁用这条规则。

延伸阅读