Интеграция с Next.js
Компилятор Lingo.dev легко интегрируется с маршрутизатором приложений Next.js, обеспечивая локализацию на этапе сборки без необходимости изменения ваших React-компонентов.
Следуйте этим шагам, чтобы добавить поддержку нескольких языков в ваше приложение Next.js.
Или изучите демо-проект Next.js, чтобы попробовать Компилятор в действии.
Предварительные требования
- Next.js 13+ с маршрутизатором приложений
- React 18+
- Node.js 18 или выше
Шаг 1. Установите пакет
Установите пакет lingo.dev:
npm install lingo.dev
Шаг 2. Настройте Next.js
Импортируйте и настройте компилятор в вашем next.config.js
:
import lingoCompiler from "lingo.dev/compiler";
/** @type {import('next').NextConfig} */
const nextConfig = {
// Ваша существующая конфигурация Next.js
};
export default lingoCompiler.next({
sourceLocale: "en",
targetLocales: ["es", "fr", "de"],
})(nextConfig);
Шаг 3. Настройте аутентификацию
Создайте бесплатный аккаунт на groq.com и добавьте ваш API-ключ:
# .env.local
GROQ_API_KEY=gsk_...
Шаг 4. Добавьте провайдер
Импортируйте провайдер в вашем корневом макете (app/layout.tsx
):
import { LingoProvider, loadDictionary } from "lingo.dev/react/rsc";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<LingoProvider loadDictionary={(locale) => loadDictionary(locale)}>
<html>
<body>{children}</body>
</html>
</LingoProvider>
);
}
Шаг 5. Необязательно: добавьте переключатель языка
Создайте компонент переключателя языка:
import { LocaleSwitcher } from "lingo.dev/react/client";
export function Header() {
return (
<header>
<nav>
<LocaleSwitcher locales={["en", "es", "fr", "de"]} />
</nav>
</header>
);
}
Шаг 6. Сборка и тестирование
Запустите сервер разработки:
npm run dev
Компилятор автоматически:
- Сканирует ваши React-компоненты на наличие контента для перевода
- Извлекает ключи перевода
- Генерирует переводы с помощью ИИ
- Создает оптимизированные файлы перевода в директории
lingo/
Перейдите на http://localhost:3000
, чтобы увидеть ваше многоязычное приложение в действии.
Параметры конфигурации
Вы можете настроить поведение компилятора:
export default lingoCompiler.next({
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja"],
sourceRoot: "app", // По умолчанию для Next.js
lingoDir: "lingo", // Директория файлов перевода
rsc: true, // Включить поддержку React Server Components
debug: false, // Включить отладочный лог
})(nextConfig);
Серверные и клиентские компоненты
Компилятор Lingo.dev работает как с серверными, так и с клиентскими компонентами:
Серверные компоненты
Серверные компоненты обрабатываются на этапе сборки с полной поддержкой перевода:
// app/page.tsx
export default function HomePage() {
return (
<div>
<h1>Добро пожаловать в наше приложение</h1>
<p>Этот контент переводится автоматически</p>
</div>
);
}
Клиентские компоненты
Клиентские компоненты получают оптимизированные пакеты переводов:
"use client";
import { useState } from "react";
export function InteractiveComponent() {
const [count, setCount] = useState(0);
return (
<div>
<p>Вы нажали {count} раз(а)</p>
<button onClick={() => setCount(count + 1)}>Нажмите меня</button>
</div>
);
}
Развертывание в продакшн
-
Соберите ваше приложение:
npm run build
-
Закоммитьте файлы перевода:
git add lingo/ git commit -m "Добавить переводы"
-
Разверните приложение, используя предпочитаемую платформу (Vercel, Netlify и т.д.)
Ваше приложение Next.js будет автоматически предоставлять локализованный контент на основе предпочтений пользователя или шаблонов URL.
Следующие шаги
- Расширенная конфигурация: Параметры настройки
- Часто задаваемые вопросы: Общие вопросы и устранение неполадок
- Как это работает: Понимание процесса сборки