mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-28 17:57:48 +02:00
50 lines
1.5 KiB
Text
50 lines
1.5 KiB
Text
---
|
|
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`](../../../cli.mdx#docusaurus-write-translations-sitedir) 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 {#details}
|
|
|
|
Examples of **incorrect** code for this rule:
|
|
|
|
```js
|
|
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:
|
|
|
|
```js
|
|
// 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 {#when-not-to-use}
|
|
|
|
If you're not using the [i18n feature](../../../i18n/i18n-introduction.mdx), you can disable this rule.
|
|
|
|
## Further Reading {#further-reading}
|
|
|
|
- https://docusaurus.io/docs/docusaurus-core#translate
|
|
- https://docusaurus.io/docs/docusaurus-core#translate-imperative
|