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

Локализация

  • Обзор
  • API локализации
  • Локализация веб-приложений
  • Локализация мобильных приложений
  • iOS и String Catalogs
  • Android и strings.xml
  • Локализация email-писем
  • Статический контент, например .md и .json
  • Next.js с Markdoc
  • Rails с i18n

Процессы

  • Настройка движка с MCP
  • Jira Triage
  • CI/CD

Локализация статического контента

Lingo.dev CLI переводит статические файлы в вашем репозитории — Markdown, MDX, Markdoc, JSON, YAML, субтитры и многое другое — через настроенный движок локализации. Просто укажите путь к контенту, запустите команду один раз и получите переведённые файлы рядом с исходниками.

Поддерживаемые типы контента#

Тип контентаФорматБакет CLIПример пути
ДокументацияMarkdownmarkdowndocs/[locale]/getting-started.md
ДокументацияMDXmdxdocs/[locale]/getting-started.mdx
ДокументацияMarkdocmarkdocdocs/[locale]/getting-started.mdoc
Структурированные данныеJSONjsondata/[locale].json
Структурированные данныеYAMLyamldata/[locale].yaml
Статьи блогаMarkdown / MDXmarkdown / mdxblog/[locale]/post-slug.md
СубтитрыSRTsrtsubs/[locale]/intro.srt
СубтитрыVTTvttsubs/[locale]/intro.vtt
ТаблицыCSVcsv-per-localedata/[locale].csv
Строки конфигурацииPropertiespropertieslang/[locale].properties
Строки конфигурацииGettext POpolocale/[locale]/messages.po
Обычный текстTXTtxtcontent/[locale]/readme.txt

Что понадобится#

При каждом запуске CLI контент проходит через движок локализации — конфигурацию, которая определяет, какая модель LLM, глоссарий, тональность бренда и инструкции будут использоваться. Создайте её в панели Lingo.dev и сгенерируйте API-ключ.

Сайты с документацией#

Большинство фреймворков для документации размещают переведённый контент по отдельным каталогам для каждой локали. Бакеты CLI markdown, mdx и markdoc переводят такие файлы, сохраняя frontmatter, блоки кода и синтаксис компонентов.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "markdown": {
      "include": ["docs/[locale]/getting-started.md"]
    },
    "mdx": {
      "include": ["docs/[locale]/setup.mdx"]
    }
  }
}

Подстройте шаблон include под принятую в вашем фреймворке структуру каталогов:

ФреймворкСтруктура каталогов локалейСправка
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/Руководство по i18n в Docusaurus
NextraОтдельные страницы для каждой локали или JSON-словариДокументация Nextra
Hugocontent/[locale]/Руководство по мультиязычности в Hugo
Astrosrc/content/[locale]/ или JSON-словариРуководство по i18n в Astro
VitePressПрефикс каталога [locale]/i18n в VitePress
MkDocsОтдельный docs/ для каждой локали с i18n-плагиномi18n-плагин для MkDocs

Компоненты MDX

Бакет mdx сохраняет синтаксис JSX-компонентов при переводе. Пользовательские компоненты вроде <Callout>, <Tabs> и <CodeBlock> остаются без изменений — переводится только текст внутри них.

Структурированные данные#

Файлы JSON и YAML переводятся через бакеты json и yaml. Используйте заблокированные ключи, чтобы не изменять непереводимые значения, такие как ID, URL и флаги конфигурации.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["content/[locale].json"],
      "lockedKeys": ["id", "slug", "url"]
    },
    "yaml": {
      "include": ["data/[locale].yaml"]
    }
  }
}

Для YAML-файлов, где код локали используется как корневой ключ, что часто встречается в Rails и Hugo, используйте вместо этого бакет yaml-root-key — он читает данные из ключа исходной локали и записывает их в ключи целевых локалей в том же файле.

Субтитры#

Файлы субтитров SRT и VTT переводятся через бакеты srt и vtt. CLI сохраняет все временные метки, индексы реплик и теги форматирования — переводится только текст.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "srt": {
      "include": ["subs/[locale]/intro.srt"]
    }
  }
}

Работа с большим объёмом контента#

Репозитории со статическим контентом могут содержать тысячи файлов. CLI эффективно справляется с этим благодаря трём механизмам:

МеханизмКак помогает
LockfileОтслеживает SHA-256-отпечатки исходного контента. При следующих запусках переводятся только новые или изменённые файлы.
Параллельная обработкаРаспределяет перевод между параллельными воркерами. Настраивается через run --concurrency 20.
Точечные запускиОбрабатывайте только нужный бакет или локаль: run --bucket markdown или run --target-locale es.

Что дальше#

Поддерживаемые форматы
Полная справка по всем 25+ форматам файлов, которые умеет переводить CLI
Блокировка ключей
Не переводите значения, которые должны оставаться без изменений
Рабочие процессы CI/CD
Автоматизируйте перевод статического контента при каждом push
Lockfile
Как работает отслеживание инкрементального перевода

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

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