|
文档
预约演示平台
平台MCPCLIAPI工作流
指南
更新日志

本地化

  • 概览
  • 翻译 API
  • Web 应用本地化
  • 移动应用本地化
  • iOS 与 String Catalogs
  • Android 与 strings.xml
  • 邮件本地化
  • 静态内容(如 .md、.json)
  • Next.js + Markdoc
  • Rails + i18n

工作流

  • 通过 MCP 配置引擎
  • Jira 智能分诊
  • CI/CD

静态内容本地化

Lingo.dev CLI 可通过已配置的 本地化引擎 翻译仓库中的静态文件——包括 Markdown、MDX、Markdoc、JSON、YAML、字幕等。只需指向你的内容,运行一次,即可在源文件旁生成对应的译文文件。

支持的内容类型#

内容类型格式CLI bucket示例路径
文档Markdownmarkdowndocs/[locale]/getting-started.md
文档MDXmdxdocs/[locale]/getting-started.mdx
文档Markdocmarkdocdocs/[locale]/getting-started.mdoc
结构化数据JSONjsondata/[locale].json
结构化数据YAMLyamldata/[locale].yaml
博客文章Markdown / MDXmarkdown / mdxblog/[locale]/post-slug.md
字幕SRTsrtsubs/[locale]/intro.srt
字幕VTTvttsubs/[locale]/intro.vtt
电子表格CSVcsv-per-localedata/[locale].csv
配置字符串Propertiespropertieslang/[locale].properties
配置字符串Gettext POpolocale/[locale]/messages.po
纯文本TXTtxtcontent/[locale]/readme.txt

前置条件#

每次运行 CLI,内容都会经过一个 本地化引擎——也就是决定使用哪种 LLM 模型、术语表、品牌语调和指令的配置。你可以在 Lingo.dev 控制台中创建引擎,并生成 API 密钥。

文档站点#

大多数文档框架都会按语言区域目录组织翻译内容。CLI 的 markdown、mdx 和 markdoc buckets 可在保留 frontmatter、代码块和组件语法的同时翻译这些文件。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "markdown": {
      "include": ["docs/[locale]/getting-started.md"]
    },
    "mdx": {
      "include": ["docs/[locale]/setup.mdx"]
    }
  }
}

调整 include 模式,以匹配你所用框架的目录约定:

框架语言区域目录约定参考资料
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/Docusaurus i18n 指南
Nextra按语言区域拆分的页面或 JSON 字典Nextra 文档
Hugocontent/[locale]/Hugo 多语言指南
Astrosrc/content/[locale]/ 或 JSON 字典Astro i18n 指南
VitePress[locale]/ 目录前缀VitePress i18n
MkDocs配合 i18n 插件使用按语言区域划分的 docs/MkDocs i18n 插件

MDX 组件

mdx bucket 会在翻译过程中保留 JSX 组件语法。像 <Callout>、<Tabs> 和 <CodeBlock> 这样的自定义组件都会原样保留——只有其中的文本内容会被翻译。

结构化数据#

JSON 和 YAML 文件可通过 json 和 yaml buckets 翻译。使用 锁定键 可防止不可翻译的值(如 ID、URL、配置标志)被改动。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["content/[locale].json"],
      "lockedKeys": ["id", "slug", "url"]
    },
    "yaml": {
      "include": ["data/[locale].yaml"]
    }
  }
}

对于以语言区域代码作为根键的 YAML 文件(常见于 Rails 和 Hugo),请改用 yaml-root-key bucket——它会从源语言区域键读取内容,并在同一文件中写入目标语言区域键。

字幕#

SRT 和 VTT 字幕文件可通过 srt 和 vtt buckets 翻译。CLI 会保留所有时间数据、字幕序号和格式标签——只翻译文本内容。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "srt": {
      "include": ["subs/[locale]/intro.srt"]
    }
  }
}

处理大型内容#

静态内容仓库中可能包含数千个文件。CLI 通过以下三种机制高效处理:

机制作用
Lockfile跟踪源内容的 SHA-256 指纹。后续运行时,只有新增或修改过的文件才会触发翻译。
并行处理将翻译任务分配给并发工作进程。可通过 run --concurrency 20 进行配置。
定向运行仅处理特定 bucket 或语言区域:run --bucket markdown 或 run --target-locale es。

后续步骤#

支持的格式
查看 CLI 支持翻译的全部 25+ 文件格式完整参考
键锁定
防止特定值被翻译
CI/CD 工作流
在每次推送时自动执行静态内容翻译
Lockfile
了解增量翻译追踪的工作机制

这个页面对你有帮助吗?

Max PrilutskiyMax Prilutskiy·已更新 4 个月前·2 分钟阅读