快速入门

Lingo.dev CLI 的核心优势在于通过单个 CLI 命令高效地将应用程序和 Markdown 内容本地化为目标语言。

本快速入门指南假设您即将使您的应用程序支持多语言,或者已经配置了支持两种或更多语言的功能。因此,本指南设计得足够简短,可以在 10 分钟内完成,但又足够详细以便理解其内部工作原理。

完成本指南后,您将能够:

  1. 使用 AI 翻译引擎将应用内容本地化为西班牙语和日语;
  2. 理解源文件、目标文件和配置如何协同工作;
  3. 设置一个本地化工作流,使您的应用程序和 Markdown 内容能够扩展到数十种语言和数万字。

让我们开始吧!

前置条件

Markdown

Markdown 文件是结构化文档,这意味着无需进行任何预先设置。Lingo.dev CLI 可以直接处理 .md 文件,在本地化内容的同时保持格式,因此您可以直接进入 步骤 1

应用程序

要使应用程序支持多语言,现代 Web 和移动应用程序需要开发人员首先设置国际化 (i18n) 配置。

在本快速入门中,我们将创建一个独立的 JSON 文件,演示 Lingo.dev CLI 如何本地化应用程序内容。

在与您的实际应用程序集成时,请参考我们推荐的框架指南:

步骤 1:初始化项目

Lingo.dev CLI 使用标准的 i18n.json 配置文件来声明您的本地化设置。要以交互方式创建它,请运行:

bash npx lingo.dev@latest init


它会询问您有关项目的问题,然后在项目根目录中创建一个 `i18n.json` 文件。

文件内容应如下所示:

```json
{
  "locale": {
    "source": "en",
    "targets": ["es", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

让我们逐一解析每个配置元素:

  • locale.source — 您的团队编写内容所使用的语言。此设置标识哪些文件包含权威内容。所有本地化流程都从源语言流向目标语言。

  • locale.targets — 一个 ISO 639-1 语言代码数组,表示您的目标市场。每个代码对应一个单独的文件(或文件中的一个部分,具体取决于格式)。您可以从一种或两种语言开始,随着扩展添加更多语言。

  • buckets.json.include — 类似 Glob 的模式,告诉 CLI 在哪里查找和创建语言文件。特殊的 [locale] 标记会扩展为每种语言代码。使用模式 locales/[locale].json,CLI 会查找 locales/en.json 作为源文件,并生成 locales/es.jsonlocales/ja.json 作为目标文件。您可以指定多个模式,甚至在单个配置中混合使用多种格式。

随着项目的增长,您将发现以下高级功能:

  • 针对不同文件类型或应用程序部分的多个存储桶
  • exclude 模式以跳过某些文件
  • lockedKeys 用于防止特定值被翻译

创建英文源文件

在本快速入门中,我们将创建一个语言环境文件:

mkdir -p locales
echo '{"greeting":"Hello, world!","button.submit":"Submit"}' > locales/en.json

这将创建一个 locales 目录和一个包含两个翻译键的英文源文件。像 greeting 这样的键适用于扁平结构,而像 button.submit 这样的命名空间键有助于组织更大的应用程序。

嵌套对象也被支持。您可以在其余文档中找到有关不同文件格式的更多详细信息。

第 2 步. 身份验证

Lingo.dev CLI 将您的内容发送到 AI 翻译引擎进行本地化,因此我们需要先进行身份验证。

选项 1. 原始 LLM API 访问

Lingo.dev CLI 帮助您使用 LLM 模型(如 OpenAI 或 Anthropic)进行本地化和翻译。

这意味着您将按处理的令牌计费,您可以控制模型选择、系统提示和所有模型参数。

要进行身份验证,请在项目根目录中创建一个 .env 文件并添加您的 API 密钥:


# 如果您使用的是 OpenAI

OPENAI_API_KEY=sk-...

# 如果您使用的是 Anthropic

ANTHROPIC_API_KEY=sk-...

或者,您可以在当前 shell 会话中导出变量,而不是使用 .env 文件:

export ANTHROPIC_API_KEY=sk-ant-...

想为其他提供商添加支持?Lingo.dev CLI 是开源的,欢迎贡献!Fork 此存储库并提交拉取请求:github.com/lingodotdev/lingo.dev

选项 2. Lingo.dev Engine

或者,您可以创建一个免费的 Lingo.dev Engine 账户,并将其用作您的 AI 翻译引擎。

它提供动态模型选择、针对每种语言对的自动路由、自动模型回退、考虑过去翻译的翻译记忆,以及支持您项目领域特定术语的术语表。提供免费和付费选项,免费 Hobby 计划应该足以完成本教程。

要进行身份验证,请运行:

npx lingo.dev@latest login

重要细节。 如果您使用的是 Brave 浏览器,或者您的浏览器扩展阻止了身份验证流程,您可以通过在 .env 文件中添加 LINGODOTDEV_API_TOKEN 环境变量手动进行身份验证:

LINGODOTDEV_API_TOKEN=...

您可以在 Lingo.dev Engine 项目设置中找到该令牌。

第 3 步:设置 AI 翻译引擎

现在您已完成身份验证,接下来需要配置要使用的 AI 翻译引擎。

选项 1:原始 LLM API 访问

要使用 OpenAI,请更新您的 i18n.json 配置以使用 openai 提供程序:

{
  "locale": {
    "source": "en",
    "targets": ["es", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  },
  "provider": {
    "id": "openai",
    "model": "gpt-4o-mini",
    "prompt": "Act as a professional software localization expert. Translate each key from {source} to {target}. Preserve ICU message format placeholders like {name} and {{count}}. Maintain Markdown formatting including links and code blocks. Match the tone and formality of the source text. Technical terms that are typically untranslated in the industry should remain in English."
  }
}

您可以尝试不同的提示词以自定义本地化行为,但我们发现以上提示是一个不错的起点!

provider 配置控制直接的 LLM 访问:

  • id — 可以是 openaianthropic
  • model — 使用的具体模型版本。例如:gpt-4o-minigpt-4o(OpenAI),或 claude-3-haikuclaude-3-sonnet(Anthropic)。
  • prompt — 指导翻译行为的系统提示。{source}{target} 占位符将在运行时替换为实际的语言代码。此提示是您强制术语、风格和领域特定规则的机会。

选项 2:Lingo.dev 引擎

如果您使用 Lingo.dev 引擎 作为 AI 翻译引擎,可以完全跳过 provider 节点。

该引擎会根据 Lingo.dev 团队的研究和引擎设置自动选择模型和提示。

您的 i18n.json 配置:

{
  "locale": {
    "source": "en",
    "targets": ["es", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

注意:使用 Lingo.dev 引擎时,请完全省略 provider 节点。引擎会自动选择模型和提示。

第 4 步. 翻译

要本地化您的应用程序,请运行:

npx lingo.dev@latest i18n

CLI 将创建目标文件,并更新用于跟踪内容指纹的 i18n.lock 文件。这确保了后续运行时的增量更新。

现在,您的应用内容已经完成本地化!

下一步

您已完成核心本地化工作流程。您的代码库现在包含了本地化文件,可以像其他代码工件一样进行提交、审查和部署。

接下来,您可以:

  • 自动化工作流程CI/CD 集成 — 设置 CI/CD 集成,在每次推送时自动进行本地化,并通过拉取请求或直接提交将更改自动提交回您的代码库;
  • 了解内部原理工作原理 — 了解算法、性能优化和架构决策。