Расширенная конфигурация

Компилятор Lingo.dev предоставляет обширные возможности настройки для кастомизации поведения перевода и оптимизации вашего рабочего процесса локализации.

Настройки конфигурации

При внедрении компилятора в ваш проект вы можете передать объект настроек со следующими параметрами:

// Конфигурация по умолчанию
const compilerConfig = {
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es"],
  rsc: false,
  debug: false,
  models: {
    // Настройка пользовательской модели
    "*:fr": "mistral-saba-24b",
    "en:es": "meta-llama/llama-4-maverick-17b-128e-instruct",
    "*:*": "mistral-saba-24b",
  },
  prompt:
    "Вы — AI переводчик. Вы переводите с {SOURCE_LOCALE} на {TARGET_LOCALE}.",
};

// Next.js
lingoCompiler.next(compilerConfig)(nextConfig);

// Vite/React Router
lingoCompiler.vite(compilerConfig)(viteConfig);

Параметры конфигурации

  • sourceRoot - Путь к вашему исходному каталогу, где будет храниться директория lingo/
  • lingoDir - Название директории, содержащей файлы перевода (по умолчанию: "lingo")
  • sourceLocale - Исходный язык вашего приложения (по умолчанию: "en")
  • targetLocales - Массив целевых языков для перевода
  • rsc - Включить поддержку React Server Components (по умолчанию: false)
  • debug - Включить отладочный режим для устранения неполадок (по умолчанию: false)
  • models - Настройка пользовательских моделей ИИ для определённых языковых пар (опционально)
  • prompt - Пользовательская подсказка для перевода с заполнителями (опционально)

Рекомендуемые модели Groq

Для достижения наилучших результатов мы протестировали и подтвердили качество следующих моделей GROQ для определённых локалей:

mistral-saba-24b

  • ar - арабский
  • de - немецкий
  • fr - французский
  • pt-BR - португальский (Бразилия)

meta-llama/llama-4-maverick-17b-128e-instruct

  • es - испанский
  • ja - японский
  • ko - корейский
  • ru - русский
  • zh - китайский

Управление обработкой файлов

Пропуск переводов

Добавьте атрибут data-lingo-skip к элементам, которые вы не хотите переводить:

<div data-lingo-skip>Этот контент не будет переведён</div>

Переопределение переводов

Переопределяйте переводы для определённых локалей с помощью атрибутов data-lingo-override-:

<button data-lingo-override-es="¡Hola!" data-lingo-override-fr="Bonjour!">
  Hello
</button>

Настройка пользовательских моделей

Вы можете настраивать AI модели и подсказки прямо в конфигурации компилятора:

const compilerConfig = {
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de"],
  models: {
    "*:fr": "mistral-saba-24b",
    "en:es": "meta-llama/llama-4-maverick-17b-128e-instruct",
    "es:fr": "meta-llama/llama-4-maverick-17b-128e-instruct",
    "*:*": "mistral-saba-24b",
  },
  prompt:
    "Вы профессиональный переводчик, специализирующийся на технической документации. Переводите с {SOURCE_LOCALE} на {TARGET_LOCALE}, сохраняя техническую точность.",
};

Конфигурация моделей

  • Определяйте пары локалей как source-locale:target-locale
  • Используйте * как подстановочный знак для любой локали
  • Используйте *:* как резервный вариант для всех переводов
  • Ознакомьтесь с моделями GROQ для доступных опций

Пользовательские подсказки

Вы можете задать пользовательские подсказки для перевода с заполнителями:

  • {SOURCE_LOCALE} - Код исходного языка
  • {TARGET_LOCALE} - Код целевого языка

Для создания пользовательских глоссариев включите терминологию в вашу подсказку. Ознакомьтесь с подсказкой компилятора по умолчанию для лучших практик.

Нормализация сборки

Всегда выполняйте локальную сборку для продакшена перед фиксацией изменений:

npm run build

Это гарантирует, что файлы meta.json и dictionary.js в директории lingo/ содержат только строки, присутствующие в вашем приложении, и имеют правильный формат.

Настройка pre-commit hook

Настройте автоматическую нормализацию с использованием husky:


# Установите husky

npm install --save-dev husky

# Добавьте pre-commit hook

npx husky add .husky/pre-commit "npm run build"

Конфигурация для конкретной среды

Разработка

const isDev = process.env.NODE_ENV === "development";

const compilerConfig = {
  debug: isDev,
  targetLocales: isDev ? ["es"] : ["es", "fr", "de", "ja"],
};

Интеграция CI/CD

Для автоматизированных сборок убедитесь, что ваша среда CI имеет доступ к ключу API GROQ:


# GitHub Actions

GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}

# Vercel

GROQ_API_KEY=gsk_...

# Netlify

GROQ_API_KEY=gsk_...

Оптимизация производительности

Инкрементальные сборки

Компилятор автоматически:

  • Отслеживает изменения контента через отпечатки файлов
  • Переводит только новый или изменённый контент
  • Повторно использует существующие переводы для неизменённого контента

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

  • Пакеты для каждого языка - Загружайте переводы только для активного языка
  • Tree shaking - Удаляйте неиспользуемые переводы из сборок для продакшена
  • Разделение кода - Загружайте переводы по запросу для приложений с маршрутизацией

Устранение неполадок

Режим отладки

Включите ведение журнала отладки для устранения проблем:

const compilerConfig = {
  debug: true,
  // ... другие параметры
};

Распространенные проблемы

Отсутствующие переводы: Убедитесь, что вы локально выполнили команду npm run build и закоммитили директорию lingo/. Если вы используете NextJS, возможно, потребуется удалить директорию .next/, чтобы все файлы были пересобраны.

Ошибки сборки: Проверьте, что ваш GROQ_API_KEY правильно настроен в переменных окружения.

Проблемы с производительностью: Включите режим отладки, чтобы выявить узкие места в процессе компиляции.

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