Как i18n работает с Docusaurus src/components?

У меня i18n отлично настроен и работает с темами и плагинами сайта Docusaurus.

Но для домашней страницы у меня есть компонент Foo.js, расположенный в src/components/Foo.js.

Он содержит const Bar = 'happy';

Это текстовая строка, которая будет частью HTML, возвращаемого компонентом, и я хочу, чтобы она была переведена.

Я думаю, это должно быть возможно; в документации указано:

JSON используется для перевода: Ваш код React: автономные страницы React в src/pages или других компонентах

и

code.json # Any text label present in the React code

Текст Bar не извлекается с помощью docusaurus write-translations.

Должен ли я добавить вручную в code.json? Если да, то какой правильный ключ использовать?

Спасибо заранее за вашу помощь.


50
1

Ответ:

Решено

Вам нужно импортировать компонент Translate и использовать его для переноса переводимых строк в ваш собственный код.

Подробности и примеры можно найти в разделе Переведите код React в документации Docusaurus i18n.

В вашем примере вы получите что-то вроде:

import Translate from '@docusaurus/Translate';
const Bar = <Translate id = "mcall.foo.bar">happy</Translate>