Быстрый старт для React Router (v7)
Как настроить компилятор Lingo.dev с React Router (v7)
Введение
Lingo.dev Compiler — это инструмент на базе ИИ, который позволяет локализовать приложения на React без внесения изменений в существующие компоненты. Вам нужно лишь настроить несколько параметров, обернуть приложение в провайдер контекста — и всё, ваше приложение локализовано.
В этом руководстве объясняется, как настроить Lingo.dev Compiler с версией 7 React Router, полнофункционального фреймворка для React. Если вы используете версию 6, смотрите Краткое руководство по React Router (v6).
Чему вы научитесь
- Как инициализировать Lingo.dev Compiler в React Router
- Как настроить компилятор для совместимости с React Router
- Как настроить переключатель локалей для смены языков
Шаг 1. Настройка API-ключа
Lingo.dev Compiler использует большие языковые модели (LLM) для локализации приложений с помощью ИИ. Чтобы использовать одну из этих моделей, вам нужен API-ключ от поддерживаемого провайдера.
Чтобы начать как можно быстрее, мы рекомендуем использовать Lingo.dev Engine — нашу собственную платформу, которая предоставляет 10 000 токенов бесплатного ежемесячного использования.
Для настройки API-ключа:
-
Перейдите на страницу Проекты.
-
Нажмите API-ключ > Копировать.
-
Сохраните 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 интегрируется с Vite и запускается во время сборки. Чтобы подключиться к процессу сборки Vite, внесите следующие изменения в файл vite.config.ts
:
-
Импортируйте компилятор:
import lingoCompiler from "lingo.dev/compiler";
-
Инициализируйте компилятор с помощью метода
vite
:const withLingo = lingoCompiler.vite({ sourceRoot: "app", lingoDir: "lingo", sourceLocale: "en", targetLocales: ["es"], rsc: false, useDirective: false, debug: false, models: "lingo.dev", });
Для совместимости с React Router убедитесь, что:
sourceRoot
установлен в значение"app"
rsc
установлен в значениеfalse
Чтобы узнать больше о доступных параметрах, см. Опции компилятора.
-
Оберните вашу существующую конфигурацию Vite с помощью компилятора:
const viteConfig: UserConfig = { plugins: [tailwindcss(), reactRouter(), tsconfigPaths()], }; export default withLingo(viteConfig);
С этой конфигурацией Компилятор Lingo.dev будет:
- Обходить абстрактное синтаксическое дерево (AST) кода
- Находить локализуемый контент (например, текст в элементах JSX и определённых значениях атрибутов)
- Использовать настроенные AI-модели для генерации переводов
- Сохранять оригинальный и переведённый контент в файл
dictionary.js
- Заменять локализованный контент на плейсхолдеры
Шаг 4. Загрузка локализованного контента
После того как компилятор обработает ваше приложение и создаст переводы, необходимо загрузить и предоставить этот локализованный контент вашим пользователям. Это включает:
- Загрузку соответствующего словаря на основе предпочтений пользователя по языку
- Предоставление загруженных переводов вашему приложению через провайдер контекста
Загрузка словаря
В файле app/root.tsx
:
-
Импортируйте функцию
loadDictionary
изlingo.dev/react/react-router
:import { loadDictionary } from "lingo.dev/react/react-router";
Эта функция:
- Получает текущую локаль из cookie
lingo-locale
- Использует
"en"
по умолчанию, если локаль не определена - Загружает локализованный контент из файла
dictionary.js
- Получает текущую локаль из cookie
-
Вызовите функцию
loadDictionary
из функцииloader
:export async function loader({ request }: Route.LoaderArgs) { const lingoDictionary = await loadDictionary(request); return { lingoDictionary, }; }
Предоставление переводов
В файле app/root.tsx
:
-
Импортируйте компонент
LingoProvider
изlingo.dev/react/client
:import { LingoProvider } from "lingo.dev/react/client";
Этот компонент является провайдером контекста React, который заменяет созданные компилятором заполнители локализованным контентом.
-
В компоненте
Layout
получите данные из загрузчика данных:const data = useLoaderData<typeof loader>();
-
Оберните приложение в компонент
LingoProvider
:<LingoProvider dictionary={data?.lingoDictionary}> {/* Существующий код приложения */} </LingoProvider>
Шаг 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:5173.
-
Используйте компонент
LocaleSwitcher
, чтобы переключаться между локалями.
Страница должна перезагрузиться и отобразить локализованный контент.
Альтернатива: ручная настройка cookie
Если вы не используете компонент LocaleSwitcher
, альтернативным способом проверить, что локализация работает, является ручная установка cookie lingo-locale
.
Если вы используете Google Chrome, выполните следующие действия:
- Перейдите в Вид > Разработчик > Инструменты разработчика.
- Откройте вкладку Приложение.
- В левой боковой панели, в разделе Хранилище, разверните Cookies и выберите URL сайта.
- В таблице cookies щелкните правой кнопкой мыши в любом месте и выберите Добавить.
- В столбце Имя введите
lingo-locale
. - В столбце Значение введите нужную локаль (например,
es
). - Нажмите Enter, чтобы сохранить cookie.
- Обновите страницу, чтобы применить cookie.
Дополнительные материалы
- Чтобы понять, как работает компилятор, см. Как это работает.
- Чтобы узнать, как настроить компилятор, см. Параметры компилятора.