Быстрый старт для TanStack Start
Как настроить компилятор Lingo.dev с TanStack Start
Введение
Lingo.dev Compiler — это инструмент на базе ИИ, который позволяет локализовать приложения на React без внесения изменений в существующие компоненты. Вам нужно лишь настроить несколько параметров, обернуть приложение в провайдер контекста — и всё, ваше приложение локализовано.
В этом руководстве объясняется, как настроить Lingo.dev Compiler с TanStack Start.
Чему вы научитесь
- Как инициализировать Lingo.dev Compiler в проекте TanStack Start
- Как настроить компилятор для вашего приложения на TanStack Start
- Как настроить переключатель локалей для смены языков
Шаг 1. Настройка API-ключа
Lingo.dev Compiler использует большие языковые модели (LLM) для локализации приложений с помощью ИИ. Чтобы использовать одну из этих моделей, вам нужен API-ключ от поддерживаемого провайдера.
Чтобы начать как можно быстрее, мы рекомендуем использовать Lingo.dev Engine — нашу собственную платформу, которая предоставляет 10 000 токенов бесплатного ежемесячного использования.
Для настройки API-ключа:
-
Перейдите на страницу Проекты.
-
Нажмите API key > Копировать.
-
Сохраните 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 интегрируется с TanStack Start и работает на этапе сборки. Чтобы подключиться к процессу сборки TanStack Start, внесите следующие изменения в файл vite.config.ts
:
-
Импортируйте компилятор:
import lingoCompiler from "lingo.dev/compiler";
-
Инициализируйте компилятор с помощью метода
vite
:const withLingo = lingoCompiler.vite({ sourceRoot: "src", lingoDir: "lingo", sourceLocale: "en", targetLocales: ["es"], rsc: false, useDirective: false, debug: false, models: "lingo.dev", });
Чтобы узнать больше о доступных параметрах, смотрите Опции компилятора.
-
Примените конфигурацию компилятора к вашей базовой конфигурации:
export default defineConfig(withLingo(baseConfig));
С этой конфигурацией Компилятор Lingo.dev будет:
- Обходить абстрактное синтаксическое дерево (AST) кодовой базы
- Находить локализуемый контент (например, текст в элементах JSX и определённых значениях атрибутов)
- Использовать настроенные AI-модели для генерации переводов
- Сохранять оригинальный и переведённый контент в файл
dictionary.js
- Заменять локализованный контент на плейсхолдеры
Шаг 4. Загрузка локализованного контента
После того как компилятор обработает ваше приложение и создаст переводы, необходимо загрузить и предоставить этот локализованный контент вашим пользователям. Это включает:
- Загрузку соответствующего словаря на основе предпочтений пользователя по языку
- Предоставление загруженных переводов вашему приложению через провайдер контекста
В файле src/routes/__root.tsx
:
-
Импортируйте компонент
LingoProviderWrapper
и функциюloadDictionary
изlingo.dev/react/client
:import { LingoProviderWrapper, loadDictionary, } from "lingo.dev/react/client";
Компонент
LingoProviderWrapper
— это провайдер контекста, который заменяет созданные компилятором плейсхолдеры на локализованный контент.Функция
loadDictionary
:- Получает текущую локаль из cookie
lingo-locale
- Использует значение по умолчанию
"en"
, если локаль не определена - Загружает локализованный контент из файла
dictionary.js
- Получает текущую локаль из cookie
-
Оберните содержимое вашего приложения в компонент
LingoProviderWrapper
внутри компонентаRootDocument
:function RootDocument({ children }: { children: React.ReactNode }) { return ( <html> <head> <HeadContent /> </head> <body> <LingoProviderWrapper loadDictionary={(locale) => loadDictionary(locale)} > {children} </LingoProviderWrapper> <Scripts /> </body> </html> ); }
Шаг 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.
Дополнительное чтение
- Чтобы понять, как работает компилятор, см. Как это работает.
- Чтобы узнать, как настроить компилятор, см. Параметры компилятора.