Быстрый старт для Next.js (App Router)
Как настроить компилятор Lingo.dev с Next.js (App Router)
Введение
Lingo.dev Compiler — это инструмент на базе ИИ, который позволяет локализовать приложения на React без внесения изменений в существующие компоненты. Вам нужно лишь настроить несколько параметров, обернуть приложение в провайдер контекста — и всё, ваше приложение локализовано.
В этом руководстве объясняется, как настроить Lingo.dev Compiler с Next.js, полнофункциональным React-фреймворком для создания веб-приложений.
Чему вы научитесь
- Как инициализировать Lingo.dev Compiler в проекте Next.js
- Как настроить компилятор для совместимости с Next.js
- Как настроить переключатель локалей для смены языков
Шаг 1. Настройка API-ключа
Lingo.dev Compiler использует большие языковые модели (LLM) для локализации приложений с помощью ИИ. Чтобы использовать одну из этих моделей, вам нужен API-ключ от поддерживаемого провайдера.
Чтобы начать как можно быстрее, мы рекомендуем использовать Lingo.dev Engine — нашу собственную платформу, которая предоставляет 10 000 токенов бесплатного ежемесячного использования.
Для настройки API-ключа:
-
Перейдите на страницу Projects.
-
Нажмите API key > Copy.
-
Сохраните API-ключ в переменной окружения:
export LINGODOTDEV_API_KEY="<your_api_key>"
Альтернатива: пользовательские LLM-провайдеры
Вы не обязаны использовать Lingo.dev Engine. Вы можете настроить компилятор для интеграции с рядом пользовательских LLM-провайдеров, включая:
- Groq
- Mistral
- Ollama
- OpenRouter
Шаг 2. Установка пакета
Lingo.dev Compiler распространяется как часть npm-пакета lingo.dev
. Для установки используйте предпочитаемый менеджер пакетов:
npm install lingo.dev
Шаг 3. Инициализация компилятора
Компилятор Lingo.dev интегрируется с Next.js и запускается во время сборки. Чтобы подключиться к процессу сборки, внесите следующие изменения в файл next.config.ts
:
-
Импортируйте компилятор:
import lingoCompiler from "lingo.dev/compiler";
-
Инициализируйте компилятор с помощью метода
next
:const withLingo = lingoCompiler.next({ sourceRoot: "app", lingoDir: "lingo", sourceLocale: "en", targetLocales: ["es"], rsc: true, useDirective: false, debug: false, models: "lingo.dev", });
Для маршрутизатора App в Next.js убедитесь, что:
sourceRoot
установлен в значение"app"
rsc
установлен в значениеtrue
Чтобы узнать больше о доступных опциях, смотрите Опции компилятора.
-
Объедините конфигурацию компилятора с существующей конфигурацией и экспортируйте её:
export default withLingo(config);
С этой конфигурацией Компилятор Lingo.dev будет:
- Обходить абстрактное синтаксическое дерево (AST) кода
- Находить локализуемый контент (например, текст в элементах JSX и определённых значениях атрибутов)
- Использовать настроенные AI-модели для генерации переводов
- Сохранять оригинальный и переведённый контент в файл
dictionary.js
- Заменять локализованный контент на плейсхолдеры
Шаг 4. Загрузка локализованного контента
После того как компилятор обработает ваше приложение и создаст переводы, необходимо загрузить и предоставить этот локализованный контент вашим пользователям. Это включает:
- Загрузку соответствующего словаря на основе предпочтений локали пользователя
- Предоставление загруженных переводов вашему приложению через провайдер контекста
В файле app/layout.tsx
оберните приложение в компонент LingoProvider
и передайте в него функцию loadDictionary
:
import { LingoProvider, loadDictionary } from "lingo.dev/react/rsc";
export default function RootLayout({
children,
}: Readonly<{ children: React.ReactNode }>) {
return (
<LingoProvider loadDictionary={(locale) => loadDictionary(locale)}>
<html lang="en">
<body>{children}</body>
</html>
</LingoProvider>
);
}
Функция loadDictionary
:
- Извлекает текущую локаль из cookie
lingo-locale
(по умолчанию"en"
) - Загружает локализованный контент из файла
dictionary.js
Компонент LingoProvider
является провайдером контекста React, который заменяет созданные компилятором плейсхолдеры на локализованный контент.
Шаг 5. Настройка переключателя локалей
Чтобы пользователи могли переключаться между локалями, импортируйте LocaleSwitcher
из пакета lingo.dev
. Это не стилизованный компонент, который:
- Отображает выпадающий список доступных локалей
- Позволяет пользователям выбирать локаль
- Запоминает выбранную локаль для последующих посещений
Чтобы использовать компонент, вставьте его в любое место вашего приложения и установите свойство locales
в массив, содержащий настроенные исходную и целевые локали:
import { LocaleSwitcher } from "lingo.dev/react/client";
<LocaleSwitcher locales={["en", "es"]} />;
Альтернатива: пользовательский переключатель локалей
Вы не обязаны использовать компонент LocaleSwitcher
. Вы можете реализовать собственную логику и интерфейс для переключения локалей. Единственное требование — читать и записывать активную локаль в cookie lingo-locale
.
Шаг 6. Запуск приложения
Чтобы убедиться, что Lingo.dev Compiler настроен правильно:
-
Запустите сервер разработки:
npm run dev
-
Перейдите по адресу localhost:3000.
-
Используйте компонент
LocaleSwitcher
, чтобы переключаться между локалями.
Страница должна перезагрузиться и отобразить локализованный контент.
Альтернатива: ручная настройка cookie
Если вы не используете компонент LocaleSwitcher
, альтернативный способ проверки работы локализации — это ручная настройка cookie lingo-locale
.
Если вы используете Google Chrome, выполните следующие действия:
- Перейдите в Вид > Разработчик > Инструменты разработчика.
- Откройте вкладку Приложение.
- В левой панели, в разделе Хранилище, разверните Cookies и выберите URL сайта.
- В таблице cookie щелкните правой кнопкой мыши в любом месте и выберите Добавить.
- В столбце Имя введите
lingo-locale
. - В столбце Значение введите нужную локаль (например,
es
). - Нажмите Enter, чтобы сохранить cookie.
- Обновите страницу, чтобы применить cookie.
Дополнительное чтение
- Чтобы понять, как работает компилятор, см. Как это работает.
- Чтобы узнать, как настроить компилятор, см. Параметры компилятора.