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

Lingo.dev Compiler

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

Фреймворки

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

Руководства

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

Справочник

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

Справочник по конфигурации

Альфа

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

Объект конфигурации Lingo.dev Compiler определяет, как ваше React-приложение переводится во время сборки. На этой странице собраны все доступные параметры, их типы, значения по умолчанию и примеры использования.

Основные параметры#

ПараметрТипПо умолчаниюОписание
sourceRootstring"src"Каталог с компонентами, доступными для перевода. Указывается относительно корня проекта.
lingoDirstring".lingo"Каталог для метаданных перевода и файлов кэша.
sourceLocalestringобязательноКод языка исходного контента (например, "en").
targetLocalesstring[]обязательноМассив кодов целевых языков (например, ["es", "de", "fr"]).
useDirectivebooleanfalseЕсли true, переводятся только файлы с директивой 'use i18n'. Если false, переводятся все файлы в sourceRoot.
modelsstring | object"lingo.dev"Конфигурация провайдера перевода. Строка задаёт значение по умолчанию для всех пар локалей. Объект сопоставляет пары локалей с конкретными провайдерами.
promptstringundefinedПользовательский системный промпт для переводческой LLM. Поддерживает плейсхолдеры {SOURCE_LOCALE} и {TARGET_LOCALE}.
buildMode"translate" | "cache-only""translate"Определяет, будет ли Compiler генерировать новые переводы или использовать только переводы из кэша.

Параметры для разработки#

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

ПараметрТипПо умолчаниюОписание
dev.usePseudotranslatorbooleanfalseГенерирует мгновенные тестовые переводы (например, [!!! Welcome !!!]) вместо обращения к LLM. API-ключ не нужен.
dev.translationServerStartPortnumber60000Начальный порт для локального сервера перевода. Compiler автоматически находит свободный порт в диапазоне 60000-60099.
dev.translationServerUrlstringundefinedПереопределяет URL сервера перевода. Полезно для нестандартных конфигураций или удалённых серверов перевода.

Сохранение локали#

Параметры в localePersistence определяют, как выбранная пользователем локаль сохраняется и извлекается:

ПараметрТипПо умолчаниюОписание
localePersistence.typestring"cookie"Механизм сохранения. Сейчас поддерживается "cookie".
localePersistence.config.namestring"locale"Имя cookie, в котором хранится локаль.
localePersistence.config.maxAgenumber31536000Максимальный срок действия cookie в секундах (по умолчанию — 1 год).

Если вам нужна собственная логика сохранения (localStorage, URL, заголовки), см. Custom Locale Resolvers.

Плюрализация#

Параметры в pluralization управляют автоматическим определением и генерацией форм множественного числа:

ПараметрТипПо умолчаниюОписание
pluralization.enabledbooleantrueВключает или отключает автоматическое определение плюрализации.
pluralization.modelstring"groq:llama-3.1-8b-instant"LLM-модель, используемая для определения форм множественного числа в исходном тексте. Рекомендуется более компактная и быстрая модель, поскольку определение — более простая задача, чем перевод.

Подробнее о том, как работает определение множественного числа, см. в разделе Automatic Pluralization.

Переменные окружения#

Переменные окружения переопределяют конфигурацию или дополняют её:

ПеременнаяКогда требуетсяОписание
LINGO_BUILD_MODEНеобязательноПереопределяет параметр конфигурации buildMode. Установите значение "translate" или "cache-only".
LINGODOTDEV_API_KEYПри использовании моделей "lingo.dev"API-ключ для движка локализации Lingo.dev. Получить его можно через npx lingo.dev@latest login.
OPENAI_API_KEYПри использовании моделей "openai:*"API-ключ OpenAI.
ANTHROPIC_API_KEYПри использовании моделей "anthropic:*"API-ключ Anthropic.
GOOGLE_API_KEYПри использовании моделей "google:*"API-ключ Google AI.
GROQ_API_KEYПри использовании моделей "groq:*"API-ключ Groq.
MISTRAL_API_KEYПри использовании моделей "mistral:*"API-ключ Mistral.
OPENROUTER_API_KEYПри использовании моделей "openrouter:*"API-ключ OpenRouter.

Полный пример#

ts
// next.config.ts
import type { NextConfig } from "next";
import { withLingo } from "@lingo.dev/compiler/next";

const nextConfig: NextConfig = {};

export default async function (): Promise<NextConfig> {
  return await withLingo(nextConfig, {
    sourceRoot: "./app",
    lingoDir: ".lingo",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr", "ja"],
    useDirective: false,
    models: {
      "*:*": "lingo.dev",
      "*:ja": "anthropic:claude-3-5-sonnet",
    },
    prompt: "Translate UI text from {SOURCE_LOCALE} to {TARGET_LOCALE}. Keep it concise.",
    buildMode: "translate",
    dev: {
      usePseudotranslator: true,
      translationServerStartPort: 60000,
    },
    localePersistence: {
      type: "cookie",
      config: {
        name: "locale",
        maxAge: 31536000,
      },
    },
    pluralization: {
      enabled: true,
      model: "groq:llama-3.1-8b-instant",
    },
  });
}

Что дальше#

Провайдеры перевода
Все поддерживаемые LLM-провайдеры и сопоставление пар локалей
Режимы сборки
Процессы для dev, CI и production
Custom Locale Resolvers
Как реализовать собственное определение локали
Лучшие практики
Рекомендуемые подходы для production

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

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