|
Документация
Заказать демоПлатформа
ПлатформаMCPCLI
APIПроцессы
РуководстваЖурнал изменений

Обзор

  • @lingo.dev/cli

Начало работы

  • Быстрый старт
  • Конфигурация

Справочник

  • lingo push
  • lingo pull
  • Другие команды
  • lingo purge

Конфигурация

  • Управление ключами
  • Форматы
  • Локали

Руководства

  • Добавление локали
  • Существующие переводы
  • Повторный перевод
  • Примечания для переводчика
  • Запуски, состояние и восстановление
  • CI/CD
  • Монорепозитории
  • Крупные проекты

Ищете CLI прежней версии (v0)? См. документацию по CLI прежней версии

Форматы

CLI поддерживает шесть форматов файлов. Формат определяется по расширению файла, но это можно переопределить: задайте format в записи files[].

ФорматРасширенияЗначение formatПримечания
JSON.jsonjsonПары ключ-значение. Поддерживает управление ключами.
JSONC.jsoncjsoncJSON с комментариями. Комментарии сохраняются и могут использоваться как заметки для переводчика.
Markdown.mdmdОсновной текст переводится, frontmatter — только при явном включении.
MDX.mdxmdxMarkdown + JSX. Свойства компонентов — только при явном включении.
Markdoc.mdocmarkdocMarkdown + теги. Frontmatter + атрибуты тегов.
OpenAPI YAML.yamlyaml-openapiСпецификации OpenAPI. Всегда явно задавайте format.

Посмотрите весь процесс целиком

В демо-проекте есть по одному файлу для каждого формата — с точной конфигурацией, которая для него нужна. Клонируйте проект через npx degit lingodotdev/lingo.dev/demo/new-cli my-lingo-demo и выполните push.

bash
npx degit lingodotdev/lingo.dev/demo/new-cli my-lingo-demo
cd my-lingo-demo

JSON и JSONC#

Базовый перевод пар ключ-значение. Переводится каждое строковое значение, если управление ключами не задаёт иное.

json
{ "pattern": "content/en/app.json", "lockedKeys": ["meta.version"] }

В JSONC также сохраняются комментарии, которые движок использует как контекст — см. заметки для переводчика.

json
{ "pattern": "content/en/settings.jsonc", "preservedKeys": ["featureFlags"] }

Markdown, MDX и Markdoc#

Основной текст переводится по умолчанию. Frontmatter и встроенные компоненты не переводятся, если вы явно не включите их перевод.

Frontmatter#

Чтобы указать, какие поля frontmatter нужно переводить, перечислите их в translateFrontmatterFields:

json
{
  "pattern": "content/en/guide.md",
  "translateFrontmatterFields": ["title", "description"]
}

Свойства компонентов MDX#

В MDX можно переводить конкретные свойства у конкретных компонентов с помощью translateComponentProps:

json
{
  "pattern": "content/en/landing.mdx",
  "translateFrontmatterFields": ["title"],
  "translateComponentProps": [{ "component": ["Hero", "Callout"], "props": ["title", "body"] }]
}

Это переведёт свойства title и body у <Hero> и <Callout>, а все остальные свойства останутся без изменений.

Markdoc#

Markdoc работает так же, как Markdown, но при этом сохраняет frontmatter и атрибуты тегов:

json
{
  "pattern": "content/en/changelog.mdoc",
  "translateFrontmatterFields": ["title"]
}

OpenAPI YAML#

Обычный YAML неоднозначен, поэтому для спецификаций OpenAPI нужно явно задать format:

json
{ "pattern": "content/en/api.yaml", "format": "yaml-openapi" }

Движок переводит поля, предназначенные для чтения людьми, — summary, description и другие, — и не затрагивает ключи схем, пути и ID операций.

Пути вывода#

Целевые файлы записываются с подстановкой сегмента локали из шаблона исходного пути — content/en/app.json → content/de/app.json. Сохраняйте исходную локаль в пути, чтобы CLI понимал, куда записывать целевые файлы. См. Конфигурация.

Переходите с legacy CLI?#

legacy CLI поддерживал около 25 форматов (CSV, PO, XLIFF, строки Android/Xcode, Flutter ARB, HTML и другие). Поддержка этих форматов постепенно добавляется в текущий CLI по мере спроса; пока ваш формат ещё не появился, обратитесь к документации legacy CLI.

Эта страница была полезной?

Max PrilutskiyMax Prilutskiy·Обновлено 4 дня назад·2 минуты чтения