JSON 翻译

翻译 JSON 本地化文件而不修改键名。

键名保持不变。嵌套保持完整。仅翻译字符串值——且仅字符串值。其他所有属性类型均原样返回。

键名
始终保留
嵌套
递归处理对象
36
每次请求输出语言数
100K
免费令牌/月

标准翻译工具无法理解 JSON。

通用翻译 API 将您的 JSON 视为一大段文本。它们会同时翻译键名和对应值。它们会扁平化嵌套对象。它们会错误地连接字符串。返回的结果是结构破损的 JSON,需要手动修正后才能使用。如果您维护生产应用的本地化文件,您会知道将它们输入标准翻译 API 会带来更多工作而非节省。

问题不仅仅在于键名。标准翻译 API 还会破坏插值变量。像“Hello {name}, you have {count} messages”这样的字符串,返回时变量名被翻译成“Hola {nombre}, tienes {cuenta} mensajes”,这会破坏所有期望原始变量名的运行时环境,导致数小时调试。

对于维护多语言本地化文件的团队来说,这不是理论问题,已经发生过。问题是每次手动修复需要多长时间。

PolyLingo 在翻译前遍历您的 JSON。

PolyLingo 理解 JSON 结构。它递归遍历您的对象,识别包含可翻译文本的字符串值,仅将这些值发送给翻译模型。键名绝不修改。数字、布尔值、null 和非字符串类型原样通过。输出是有效 JSON,结构完全相同——只是字符串值被翻译。

插值变量——{name}、{{count}}、%s 及类似模式——在翻译过程中被识别并完整保留。它们在翻译前被替换为占位符,输出时恢复原样。翻译模型从未将它们视为可翻译文本。

数组处理正确:每个字符串元素被翻译,数字索引和数组结构保持不变。包含字符串和非字符串(数字、对象)的混合数组也被正确遍历,非字符串类型原样通过。

输入——扁平 JSON 本地化(英文)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
输出——法语(键名相同)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
输入——嵌套 JSON 本地化(英文)
{
  "nav": {
    "home": "Home",
    "pricing": "Pricing",
    "blog": "Blog"
  },
  "hero": {
    "title": "Grow your audience globally",
    "subtitle": "Translate in seconds.",
    "cta": "Get started for free"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong"
  }
}
输出——西班牙语(结构完整)
{
  "nav": {
    "home": "Inicio",
    "pricing": "Precios",
    "blog": "Blog"
  },
  "hero": {
    "title": "Expande tu audiencia globalmente",
    "subtitle": "Traduce en segundos.",
    "cta": "Comienza gratis"
  },
  "errors": {
    "notFound": "Página no encontrada",
    "serverError": "Algo salió mal"
  }
}
API 请求——一次调用翻译成 5 种语言
curl -X POST https://api.usepolylingo.com/v1/translate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
    "format": "json",
    "targets": ["es", "fr", "de", "ja", "zh"],
    "model": "standard"
  }'

# Response:
# {
#   "translations": {
#     "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
#     "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
#     ...
#   }
# }

PolyLingo 对每次 JSON 翻译的保证

  • 键名绝不修改
  • 递归处理嵌套对象和数组
  • 数字、布尔值、null 原样通过
  • 一次请求支持全部 36 种语言
  • 自动检测为 JSON,无需格式标志
  • 支持扁平及深度嵌套的本地化文件
  • 插值变量({name}、{{count}}、%s)完全保留
  • 输出为有效 JSON——无需修改即可解析

翻译本地化文件的三步法

1

粘贴 JSON 或调用 API

使用无代码翻译器进行一次性翻译:粘贴 JSON,选择语言,下载翻译文件。自动化请调用 POST /v1/translate,传入 JSON 内容和目标语言代码。

2

一次响应获取所有语言

API 返回一个 JSON 对象,每个目标语言一个条目,包含结构完全相同的完整翻译本地化文件。无需逐语言调用,无需循环,一次请求获取所有输出。

3

将输出文件放入 messages 目录

将每个翻译文件写入 messages/es.json、messages/fr.json、messages/de.json,或您的 i18n 库期望的位置。结构与源文件完全相同,无需额外处理。

JSON 翻译最重要的应用场景

🌐

使用 next-intl 或 i18next 的应用国际化

直接翻译 messages/*.json 或 locales/*.json 文件。键名保持不变,嵌套保留,插值变量不变。将文件放入 messages 目录并部署。

🗄️

CMS 内容导出

无头 CMS 平台通常以 JSON 格式导出结构化内容。PolyLingo 翻译字符串值,同时保留字段名、嵌套内容类型和非字符串值(如日期、布尔值、ID)。

⚙️

API 响应和配置文件

任何包含可翻译字符串值的 JSON 结构——产品描述、通知模板、通过 API 提供的应用内文案——都可在不修改应用依赖结构的情况下翻译。

关于 JSON 翻译的常见问题

插值变量如 {name} 或 {{count}} 会被保留吗?

会。PolyLingo 识别常见插值模式,包括 {variable}、{{variable}}、%(variable)s 和 %s,翻译前替换为稳定占位符,翻译文本,输出时恢复原变量名。翻译模型从未将变量名视为可翻译内容。

非字符串值(数字、布尔值、null)会怎样?

非字符串值完全原样通过。PolyLingo 仅翻译包含自然语言文本的字符串值。数字、布尔值、null 及非字符串数组均保持与源文件一致。

PolyLingo 能处理深度嵌套的 JSON 结构吗?

能。PolyLingo 递归遍历任意深度的对象结构,翻译结构中所有字符串值,无论嵌套多深。

如果某些键包含不可翻译内容如 slug 或代码怎么办?

PolyLingo 默认翻译所有字符串值。如果有不应翻译的字符串字段(slug、语言代码、技术标识符),建议从发送的 JSON 中排除,或使用即将推出的格式参数显式指定跳过字段。大多数本地化文件中所有字符串值均需翻译。

支持 JSON5 或 JSONC(带注释的 JSON)吗?

目前 PolyLingo 处理标准 JSON。JSON5 和 JSONC(带注释)应预先处理,去除注释并转换为标准 JSON 后再发送。这是构建流程中的常见步骤,开销极小。

一次请求最多支持多少语言?

一次请求最多支持全部 36 种语言。响应包含每个语言代码对应的翻译 JSON 对象。速率限制因套餐而异——免费套餐允许每分钟 10 次请求,Growth 和 Scale 套餐允许每分钟 200–600 次请求。

几秒钟内翻译您的本地化文件。

粘贴您的 JSON,选择语言,获取每种目标语言的有效本地化文件。

免费开始翻译

粘贴您的本地化 JSON,查看输出——免费,无需注册。

翻译 JSON 本地化文件而不修改键名 — PolyLingo | PolyLingo