Bolt

Bolt 是由 StackBlitz 提供支持的基于浏览器的 AI 开发平台。本指南解释了如何在 Bolt 中使用 Lingo.dev Compiler 本地化基于 React 的应用程序。

已知限制

Bolt 使用 web containers 在浏览器中运行 Web 应用程序。这是一项强大的技术,但在与 Lingo.dev 配合使用时存在一些兼容性问题:

  • 您只能使用 API 密钥来与 Lingo.dev Engine 进行身份验证,而不能使用 CLI 的 login 命令。
  • 在 Bolt 中,Lingo.dev Compiler 仅与基于 Vite 的应用程序兼容。您无法使用 Next.js。
  • <LocaleSwitcher /> 组件无法在 Bolt 的嵌入式 Preview 窗口中工作。
  • Bolt 不支持 Ollama,因为 Ollama 需要在本地运行。

第 1 步:获取 API 密钥

Lingo.dev Compiler 使用大型语言模型(LLM)通过 AI 本地化应用程序。要使用这些模型之一,您需要从支持的提供商处获取 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 密钥的具体说明取决于提供商。

注意: 在 Compiler 中使用 LLM 提供商之前,请确保激活您的账户并接受其服务条款。

第 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 密钥,这些 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. 生成 AI 驱动的翻译
  4. lingo/ 目录中创建优化的翻译文件

下一步