|Labs
Заказать демоПлатформа
React (Lingo Compiler)
Альфа
React (MCP)React (i18n)CLI прежней версии (v0)
Устаревшее

Lingo.dev Compiler

  • Как это работает
  • Настройка
  • Быстрый старт Compiler

Фреймворки

  • Интеграция с Next.js
  • Vite + React

Руководства

  • Переключение локали
  • Автоматическая обработка множественного числа
  • Ручные переопределения
  • Режимы сборки
  • Структура проекта
  • Провайдеры перевода
  • Пользовательские резолверы локали
  • Инструменты для разработки

Справочник

  • Лучшие практики
  • Справочник по конфигурации
  • Устранение неполадок
  • Руководство по миграции
  • Оптимизация
  • Форматы вывода

Lingo.dev Compiler

Альфа

Lingo.dev Compiler находится в альфа-версии. Он пока нестабилен, не рекомендуется для production, а API могут меняться от релиза к релизу.

Lingo.dev Compiler — это бесплатная open-source система перевода на этапе сборки для React-приложений. Она находит переводимый текст в JSX, генерирует переводы с помощью ИИ с полным контекстом компонента и встраивает их в отдельные бандлы для каждой локали в процессе сборки. Исходный код остаётся неизменным: не нужно вручную поддерживать файлы с ключами перевода и отдельно загружать словари во время выполнения.

Посмотрите в действии: живое демо на X

До и после#

tsx
// Your code - unchanged
export function Welcome() {
  return <h1>Welcome to our app</h1>;
}
// Renders "Bienvenido a nuestra aplicacion" in Spanish

Никаких изменений в коде. Переводы определяются на этапе компиляции, а для каждой локали создаются оптимизированные бандлы.

Чем отличается от традиционных i18n-библиотек#

Традиционные i18n-библиотекиLingo.dev Compiler
Управление переводамиВручную — вы создаёте и поддерживаете файлы с ключамиАвтоматически — Compiler извлекает переводимые строки из JSX
Нужны ли изменения в кодеНужно оборачивать каждую строку в вызовы t()Нет — просто пишите обычный JSX
Как загружаются переводыОтдельные файлы словарей загружаются во время выполненияВстраиваются в бандлы для каждой локали на этапе сборки
Источник переводовВручную или через внешний TMSГенерируются ИИ с полным контекстом компонента
Загрузка словарейЗапрос или импорт файлов перевода во время выполненияБез отдельной загрузки — переводы уже входят в бандл

Пайплайн сборки#

1

Анализ AST

Compiler разбирает ваш React-код в Abstract Syntax Tree с помощью Babel. Он определяет переводимый контент: текстовые узлы, строковые атрибуты (alt, aria-label, placeholder) и шаблонные выражения.

2

Извлечение контента

Каждая переводимая строка получает стабильный идентификатор на основе хеша. Compiler сохраняет контекст компонента, структуру форматированного текста (вложенные <strong>, <em>) и плейсхолдеры интерполяции. Метаданные сохраняются в .lingo/metadata.json.

3

Генерация переводов

В разработке pseudotranslator мгновенно генерирует тестовые переводы без API-вызовов. В CI настроенный провайдер LLM создаёт реальные переводы с полным контекстом компонента — расположением файла, окружающими элементами и семантикой интерполяции. Переводятся только новые или изменённые строки: Compiler использует хеширование содержимого, чтобы пропускать неизменившиеся строки.

4

Инъекция кода

В ваш JSX внедряются обращения к переводам. Compiler добавляет лёгкие вызовы поиска по хешу к встроенному словарю для каждой локали. Исходный код при этом никогда не изменяется.

5

Оптимизация бандла

Создаются отдельные бандлы для каждой локали. В них попадают только те переводы, которые используются конкретным компонентом. Удаление мёртвого кода и tree-shaking помогают сохранить минимальный размер бандлов.

Поддерживаемые фреймворки#

ФреймворкИнтеграция
Next.js (App Router)Обёртка для конфигурации withLingo() — поддерживает RSC, Webpack и Turbopack
Vite + ReactlingoCompilerPlugin — плагин для Vite с полной поддержкой HMR

Ключевые возможности#

  • Автоматически по умолчанию — весь текст в JSX переводится, если только вы не включите режим директив 'use i18n'
  • Без загрузки словарей — переводы встраиваются в бандлы для каждой локали, без отдельных файлов для загрузки
  • Режимы сборки — pseudotranslator в dev, реальные переводы в CI, только кэш в production
  • Ручные переопределения — атрибут data-lingo-override для точного контроля
  • Пользовательские резолверы локали — реализуйте собственную логику определения и сохранения локали
  • Автоматическая плюрализация — поддержка ICU MessageFormat для форм множественного числа
  • Инструменты разработки — pseudotranslator и редактор переводов прямо в браузере

Следующие шаги#

Настройка
Добавьте поддержку нескольких языков меньше чем за 5 минут
Next.js
Руководство по интеграции для этого фреймворка
Справочник по конфигурации
Все параметры конфигурации
Режимы сборки
Процессы для dev, CI и production

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

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