Bolt

Bolt — это платформа для разработки на основе ИИ, работающая в браузере, от компании StackBlitz. В этом руководстве объясняется, как локализовать приложение на React с помощью Lingo.dev Compiler в Bolt.

Известные ограничения

Bolt использует веб-контейнеры для запуска веб-приложений прямо в браузере. Это мощная технология, но она имеет некоторые проблемы совместимости с Lingo.dev:

  • Вы можете использовать только API-ключ для аутентификации с Lingo.dev Engine, а не команду login в CLI.
  • В Bolt Lingo.dev Compiler совместим только с приложениями на основе Vite. Использование Next.js невозможно.
  • Компонент <LocaleSwitcher /> не работает в встроенном окне Preview Bolt.
  • Ollama не поддерживается в Bolt, так как Ollama необходимо запускать локально.

Шаг 1. Получите API-ключ

Lingo.dev Compiler использует большие языковые модели (LLM) для локализации приложений с помощью ИИ. Чтобы использовать одну из этих моделей, вам нужен API-ключ от одного из поддерживаемых провайдеров. Вы можете использовать Lingo.dev Engine или собственного провайдера LLM.

Lingo.dev Engine

Lingo.dev Engine — это наша собственная хостинговая платформа, которая предоставляет динамический выбор моделей, авто-маршрутизацию, память переводов и поддержку глоссариев. Регистрация бесплатна, и все пользователи получают 10 000 токенов в месяц для бесплатного использования.

Чтобы получить API-ключ:

  1. Войдите в Lingo.dev Engine.
  2. Перейдите на страницу Projects.
  3. Нажмите API key > Copy.

Собственный провайдер LLM

Lingo.dev Compiler также интегрируется с рядом сторонних провайдеров, включая:

Точные инструкции по настройке API-ключа зависят от провайдера.

Примечание: Убедитесь, что вы активировали свою учетную запись у провайдера LLM и приняли их Условия использования перед использованием в Compiler.

Шаг 2. Установите lingo.dev

Пакет lingo.dev содержит компилятор.

Чтобы установить пакет:

  1. Создайте или откройте проект в Bolt.

  2. Переключитесь на вкладку Code.

  3. Нажмите Terminal.

  4. Выполните следующую команду:

    npm install lingo.dev
    

Шаг 3. Настройте Vite

При использовании Vite Lingo.dev Compiler должен быть инициализирован в конфигурационном файле проекта:

  • Если вы используете TypeScript, конфигурационный файл — это vite.config.ts.
  • Если вы используете JavaScript, конфигурационный файл — это vite.config.js.

Вы можете настроить поведение компилятора во время инициализации. Именно эта конфигурация определяет, между какими локалями будет происходить перевод и какие модели будут использоваться для локализации.

Для полного списка доступных опций смотрите Compiler Options.

Движок Lingo.dev

Если вы используете движок Lingo.dev, установите models в значение "lingo.dev":

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";

const viteConfig = {
  plugins: [react()],
};

export default defineConfig(() =>
  lingoCompiler.vite({
    sourceRoot: "src",
    lingoDir: "lingo",
    sourceLocale: "en",
    targetLocales: ["es"],
    rsc: false,
    useDirective: false,
    debug: false,
    models: "lingo.dev",
  })(viteConfig),
);

Пользовательский провайдер LLM

Если вы используете пользовательский провайдер LLM, установите models как объект, который сопоставляет исходные и целевые локали с моделями, которые должны выполнять локализацию. Например, эта конфигурация локализует все строки с помощью "groq:mistral-saba-24b":

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";

const viteConfig = {
  plugins: [react()],
};

export default defineConfig(() =>
  lingoCompiler.vite({
    sourceRoot: "src",
    lingoDir: "lingo",
    sourceLocale: "en",
    targetLocales: ["es"],
    rsc: false,
    useDirective: false,
    debug: false,
    models: {
      "*:*": "groq:mistral-saba-24b",
    },
  })(viteConfig),
);

Шаг 4. Установите переменную окружения

Чтобы Lingo.dev Compiler мог получить доступ к API-ключам для настроенных моделей, эти ключи должны быть доступны как переменные окружения.

Для настройки переменных окружения в Bolt:

  1. Создайте файл .env.

    1. Щелкните правой кнопкой мыши по панели файлов.
    2. Выберите New file.
    3. Введите .env.
  2. Добавьте соответствующие переменные окружения в файл:

    # Lingo.dev Engine
    LINGODOTDEV_API_KEY="YOUR_API_KEY_GOES_HERE"
    
    # Google AI
    GOOGLE_API_KEY="YOUR_API_KEY_GOES_HERE"
    
    # GROQ
    GROQ_API_KEY="YOUR_API_KEY_GOES_HERE"
    
    # Mistral
    MISTRAL_API_KEY="YOUR_API_KEY_GOES_HERE"
    
    # OpenRouter
    OPENROUTER_API_KEY="YOUR_API_KEY_GOES_HERE"
    

Примечание: Bolt автоматически шифрует переменные окружения. Чтобы узнать больше, смотрите Environment Variables (developer.stackblitz.com).

Шаг 4. Добавьте провайдера

Пакет lingo.dev экспортирует компонент <LingoProviderWrapper />. Этот компонент отвечает за загрузку переводов и их доступность во всем приложении.

Чтобы использовать этот компонент, импортируйте его в файл src/main.tsx и оберните им компонент <App />:

import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App.tsx";
import { LingoProviderWrapper, loadDictionary } from "lingo.dev/react/client";

ReactDOM.createRoot(document.getElementById("root")!).render(
  <React.StrictMode>
    <LingoProviderWrapper loadDictionary={(locale) => loadDictionary(locale)}>
      <App />
    </LingoProviderWrapper>
  </React.StrictMode>,
);

(Опционально) Шаг 5. Добавьте переключатель локали

Пакет lingo.dev экспортирует неоформленный компонент <LocaleSwitcher />. Этот компонент отображает выпадающий список, который позволяет пользователям выбрать предпочитаемый язык и запоминает этот выбор при повторных посещениях.

Чтобы использовать компонент, включите его как потомка компонента <LingoProviderWrapper /> и установите свойство locales в массив, содержащий исходные и целевые локали:

import { LocaleSwitcher } from "lingo.dev/react/client";

function App() {
  return (
    <div className="App">
      <header>
        <LocaleSwitcher locales={["en", "es"]} />
      </header>
      <main>
        <h1>Добро пожаловать в ваше приложение</h1>
        <p>Этот контент переводится автоматически</p>
      </main>
    </div>
  );
}

export default App;

Предупреждение: Компонент <LocaleSwitcher /> не работает в встроенном Предпросмотре Bolt. Чтобы увидеть компонент в действии, нажмите на значок Открыть предпросмотр в отдельной вкладке.

Шаг 6. Сборка и тестирование

Если сервер разработки еще не запущен, запустите его с помощью следующей команды:

npm run dev

Компилятор автоматически:

  1. Сканирует ваши React-компоненты на наличие переводимого контента
  2. Извлекает ключи переводов
  3. Генерирует переводы с использованием ИИ
  4. Создает оптимизированные файлы переводов в директории lingo/

Следующие шаги