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

本地化

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

工作流

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

移动应用本地化

Lingo.dev 的 CLI 可通过已配置的 本地化引擎 翻译原生移动端资源文件——Xcode .strings、Android XML、Flutter ARB 以及 React Native JSON。每个平台都有对应的 bucket 类型,能够识别文件格式、保留原有结构,并原生处理复数形式。

平台概览#

平台原生格式CLI bucket常见文件路径
iOS (Xcode).stringsxcode-strings[locale].lproj/Localizable.strings
iOS (Xcode).stringsdictxcode-stringsdict[locale].lproj/Localizable.stringsdict
iOS (Xcode).xcstringsxcode-xcstringsLocalizable.xcstrings
Androidstrings.xmlandroidapp/src/main/res/values-[locale]/strings.xml
Flutter.arbflutterlib/l10n/app_[locale].arb
React Native.jsonjsonsrc/locales/[locale].json

准备工作#

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

配置你的平台#

Xcode 支持三种本地化格式。请选择与你的项目配置相匹配的那一种。

String Catalogs(.xcstrings)——这是 Xcode 15 引入的现代格式。一个 JSON 文件即可包含所有语言区域,新增字符串时 Xcode 也会自动更新。CLI 会直接原位修改这个文件——无需 [locale] 占位符。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-xcstrings": {
      "include": ["MyApp/Localizable.xcstrings"]
    }
  }
}

传统 .strings 文件——每个语言区域对应 [locale].lproj/ 目录下的一个文件。如果你的项目也使用 .stringsdict 处理复数形式,请将两个 bucket 一并添加。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-strings": {
      "include": ["MyApp/[locale].lproj/Localizable.strings"]
    },
    "xcode-stringsdict": {
      "include": ["MyApp/[locale].lproj/Localizable.stringsdict"]
    }
  }
}

如需搭建 Xcode 的国际化基础设施,请参阅 Apple 的 本地化文档。

运行翻译#

只需一条命令,即可翻译所有资源文件:

bash
npx lingo.dev@latest run

CLI 会读取源语言区域文件,借助 lockfile 计算自上次运行以来的变更,只翻译增量内容,并将结果写入目标语言区域文件。

如果项目中包含多种资源类型,也可以只针对特定平台执行:

bash
npx lingo.dev@latest run --bucket android
npx lingo.dev@latest run --bucket xcode-xcstrings

复数形式与平台约定#

不同移动平台处理复数形式的方式各不相同——iOS 使用 .stringsdict 或 String Catalog 规则,Android 使用 <plurals> XML 元素,而 Flutter 则在 ARB 文件中使用 ICU MessageFormat。CLI 会在翻译过程中保留各平台原生的复数结构,并为每个目标语言区域生成正确的复数类别。

译者注释

移动端字符串通常较短,且高度依赖上下文。你可以在 Xcode 的 .xcstrings 文件中使用 译者注释,为本地化引擎补充字符串出现位置的上下文——例如“结账流程中的按钮标签”和“导航菜单项”,翻译方式就会不同。

平台深度指南#

iOS 与 String Catalogs
使用 CLI 和 GitHub Actions 处理 Xcode .xcstrings 的端到端指南
Android 与 strings.xml
使用 CLI 和 GitHub Actions 处理 Android XML 资源的端到端指南

下一步#

支持的格式
涵盖所有移动端文件格式与 bucket 类型的完整参考
术语表
锁定品牌名称和技术术语,避免被翻译
CI/CD 工作流
在每次推送时自动执行移动端翻译
键锁定
直接复制特定值,无需翻译

这个页面对你有帮助吗?

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