跳到主要内容

string-literal-i18n-messages

强制要求翻译 API 只能用于纯文本标签。

道格龙(Docusaurus)提供了 docusaurus write-translations API,可静态提取被标记为可翻译的文本标签。如果 <Translate>translate() 调用中使用了动态值,将无法被正确提取。此规则可确保所有翻译调用都能被静态提取。

规则详情

错误示例:

const text = 'Some text to be translated'

// 非法的 <Translate> 子节点
<Translate>{text}</Translate>

// 非法的 message 属性
translate({message: text})

正确示例:

// 合法的 <Translate> 子节点
<Translate>Some text to be translated</Translate>

// 合法的 message 属性
translate({message: 'Some text to be translated'})

// 合法的 <Translate> 子节点,使用 values 对象作为 prop
<Translate values={{firstName: 'Sébastien'}}>
{'Welcome, {firstName}! How are you?'}
</Translate>

// 合法的 message 属性,使用 values 对象作为第二参数
translate({message: 'The logo of site {siteName}'}, {siteName: 'Docusaurus'})

何时不应使用

如果你未启用i18n 功能,可以禁用此规则。

延伸阅读