docusaurus/website/versioned_docs/version-2.0.0-beta.21/api/misc/eslint-plugin/string-literal-i18n-messages.md
Sébastien Lorber 613d938cfc
chore: prepare v2.0.0-beta.21 release (#7513)
* add beta 21 version

* v2.0.0-beta.21

* typo
2022-05-27 18:29:11 +02:00

1.5 KiB

slug
/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages

string-literal-i18n-messages

Enforce translate APIs to be called on plain text labels.

Docusaurus offers the docusaurus write-translations API, which statically extracts the text labels marked as translatable. Dynamic values used in <Translate> or translate() calls will fail to be extracted. This rule will ensure that all translate calls are statically extractable.

Rule Details

Examples of incorrect code for this rule:

const text = 'Some text to be translated'

// Invalid <Translate> child
<Translate>{text}</Translate>

// Invalid message attribute
translate({message: text})

Examples of correct code for this rule:

// Valid <Translate> child
<Translate>Some text to be translated</Translate>

// Valid message attribute
translate({message: 'Some text to be translated'})

// Valid <Translate> child using values object as prop
<Translate values={{firstName: 'Sébastien'}}>
  {'Welcome, {firstName}! How are you?'}
</Translate>

// Valid message attribute using values object as second argument
translate({message: 'The logo of site {siteName}'}, {siteName: 'Docusaurus'})

When Not To Use It

If you're not using the i18n feature, you can disable this rule.

Further Reading