JSON格式翻译
源语言: en-US (English, United States)
源语言的代码。例如:fr, fr-FR, fil, zh-Hans-CN。输入以搜索。
目标语言: zh-Hans-CN (Chinese, Simplified Chinese, China)
目标语言的代码。例如:en, en-US, fil, zh-Hans-CN。输入以搜索。
生成复数形式:
翻译元数据:
生成并保存词汇表:
仅翻译新条目:
AI翻译需要时间(最多5分钟),因为AI需要处理您的内容。此JSON翻译页面可实时翻译,且不会在我们的服务器上存储您的JSON或翻译内容。对于大型内容,我们建议使用国际化文件翻译页面以获得更可靠的交付。请在翻译完成前不要离开此页面。

如何翻译JSON

使用我们的服务翻译JSON简单高效。请按照以下步骤进行翻译,同时确保准确性并维护JSON结构的完整性。

  1. 粘贴您的JSON: 在“源字符串”部分,粘贴您的JSON内容。确保JSON有效且格式正确。我们的服务支持深度嵌套的JSON对象,在翻译过程中保留其结构。
  2. 设置目标语言: 输入翻译的目标语言(例如 'fr-FR')。
  3. 开始翻译: 点击“翻译”按钮开始。我们的服务会仔细处理JSON结构,在翻译值的同时保留键和格式。
  4. 复制或保存: 翻译完成后,您可以将已翻译的JSON复制到剪贴板或将其保存为文件。保存的文件将自动使用目标语言代码作为名称,确保易于识别和组织。

什么是JSON,为什么它被用于本地化?

JSON (JavaScript Object Notation) 是一种轻量级、人类可读的数据交换格式,它将数据组织为键值对和嵌套对象。最初为JavaScript数据交换而设计,JSON现在是一种通用的格式,被每种主流编程语言、运行时和浏览器原生支持。

JSON已成为Web和移动应用本地化的主导格式,因为它简单、具有原生浏览器支持,并与JavaScript生态系统深度集成。像 i18nextReact Intlngx-translateVue i18nnext-i18next 等库都使用JSON作为其主要或默认的翻译文件格式。

JSON本地化文件将字符串存储为嵌套的键值对,其中键作为代码中引用的标识符,值包含以特定语言显示给用户的可读文本。

JSON国际化文件结构

结构良好的JSON本地化文件使用嵌套对象分层组织字符串。以下是一个典型示例:

{
  "greeting": "Hello, World!",
  "user": {
    "name": "John Doe",
    "welcome": "Welcome back, {{name}}!"
  },
  "nav": {
    "home": "Home",
    "about": "About Us",
    "contact": "Contact"
  }
}
  • 字符串键 — 在代码中引用翻译的人类可读标识符(例如 t('nav.home'))。键永远不会被翻译;只有字符串值会被翻译。
  • 嵌套对象 — 将相关字符串分组在共享命名空间(例如 auth, errors)下,使大型文件易于组织并易于团队维护。
  • 插值占位符 — 像 {{name}}{{count}} 这样的变量嵌入在字符串值中。我们的AI会在翻译过程中检测并保留所有占位符格式。
  • 复数形式键 — i18next使用特殊的键后缀(_one, _other, _few, _many)来处理特定语言的复数规则。我们的服务识别这些模式并为每种目标语言生成正确的形式。
  • 内联HTML和特殊字符 — 字符串可能包含内联HTML标签或转义字符。我们的AI会完全按照源文件中的方式保留所有标记和转义。

JSON本地化文件示例 (i18next)

这是一个兼容i18next的真实JSON本地化文件,展示了命名空间、插值和复数形式键:

{
  "app": {
    "title": "My Application",
    "description": "A powerful tool for your workflow"
  },
  "auth": {
    "login": "Log in",
    "logout": "Log out",
    "welcome": "Welcome, {{name}}!",
    "itemCount_one": "{{count}} item",
    "itemCount_other": "{{count}} items"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong. Please try again."
  }
}

此结构与i18next、React Intl、next-i18next和ngx-translate直接兼容。同一个文件可以用作使用我们的服务翻译成法语、德语、日语或任何其他目标语言的源文件。

现代国际化工作流程中的JSON

JSON本地化文件是大多数现代国际化 (i18n) 工作流程的基础。该格式的灵活性既支持小型项目的简单扁平键值结构,也支持企业级应用中带有数百个翻译键的深度嵌套、命名空间层次结构。

由于JSON文件是纯文本,它们与Git版本控制系统、CI/CD管道和翻译管理平台自然集成。团队可以使用L10n.dev REST API自动化整个本地化管道——从提取新字符串到部署已翻译版本。

使用JSON进行本地化的框架和库

JSON翻译文件几乎被所有主流Web和移动框架支持:

  • i18next / react-i18next — 最广泛使用的JavaScript国际化库。使用按语言和命名空间组织的JSON文件(例如 public/locales/en/common.json)。开箱即用支持插值、复数、上下文和嵌套。
  • next-i18next — Next.js应用程序的标准国际化解决方案。基于i18next构建,它使用 public/locales/ 目录中的JSON文件,并支持具有自动区域设置检测的服务器端渲染。
  • Angular (ngx-translate) — 流行的 ngx-translate 库加载JSON翻译文件,并为Angular应用程序提供 translate 管道和服务。支持运行时语言切换,无需重新加载应用程序。
  • Vue i18n — 官方Vue.js国际化插件支持JSON消息文件。JSON通常是Vue 3和Nuxt.js项目中程序化生成和API驱动本地化工作流程的首选。
  • Flutter / Dart (ARB) — Flutter的 intl 包使用ARB文件(应用程序资源包),这是带有本地化元数据的JSON文件。flutter gen-l10n 命令将它们编译为强类型的Dart代码。
  • React Native — React Native应用使用带有JSON翻译文件的 react-i18nexti18n-js,从单个共享资源进行跨平台iOS和Android本地化。

为JSON翻译生成AI词汇表

我们的AI词汇表生成功能可帮助您在所有JSON本地化文件中保持术语一致。通过在翻译选项中切换生成并保存词汇表来启用保存和重用功能:

  • 术语一致性 — AI会分析您的源JSON和现有的目标翻译,以构建关键术语词汇表,确保产品名称、UI标签和技术术语在整个应用程序中以相同方式翻译。
  • 领域专用词汇 — 在目标字符串字段中提供已翻译JSON内容的样本。AI会学习您的首选术语,并自动将其应用于新字符串。
  • 如何使用 — 将您已翻译的JSON内容粘贴到启用词汇表生成后出现的“目标字符串”可选字段中。AI将提取重复出现的术语并将其用作翻译指南。如果未提供目标字符串,AI将仅从源内容中生成词汇表,这仍然可以提高一致性。

为什么选择我们的JSON翻译服务

  • AI驱动的上下文感知翻译: 我们先进的AI能够理解JSON结构,无缝处理占位符,并根据目标语言的文化细微差别调整翻译。
  • i18next翻译: 我们的服务全面支持i18next格式的JSON文件。它确保了对复数形式的准确处理,保留了HTML标签和换行符,并维护了翻译的完整性,使其成为本地化工作流程的理想选择。
  • 区域设置调整: 自动转换数字、日期和其他对区域设置敏感的数据,以匹配目标地区的格式。
  • 错误处理: 检测并纠正AI翻译错误,确保始终如一的高质量结果。
  • 高性价比: 享受实惠的定价,每月享有 30,000 个免费字符额度。查看定价
  • 针对大型JSON内容优化: 通过将大型JSON文件拆分为可管理的块来高效处理,确保翻译与预定义的术语和上下文保持一致。

JSON翻译与其他格式的对比

JSON翻译专注于在保留结构的同时,针对特定语言和区域调整键值对。我们的服务确保翻译后的JSON保持有效,并可随时用于您的应用程序。

我们的服务专注于使用AI驱动的本地化来翻译JSON文件,在管理JSON文件结构的同时确保准确性和效率。

常见JSON本地化用例

JSON翻译文件被用于各种项目类型和开发工作流程:

  • React和Next.js应用程序 — 使用react-i18next或next-i18next为React单页应用和Next.js应用翻译 public/locales/en/common.json 和其他命名空间文件。
  • Angular应用程序 — 翻译ngx-translate JSON文件,为Angular企业级仪表板和单页应用程序添加多语言支持。
  • Vue.js / Nuxt.js应用程序 — 为Vue 3单页应用和Nuxt.js服务器渲染站点本地化Vue i18n JSON消息文件。
  • React Native应用 — 为使用React Native和react-i18next构建的跨平台iOS和Android移动应用程序翻译JSON本地化文件。
  • 桌面应用 (Electron) — Electron应用程序使用带有i18next或自定义加载器的JSON本地化文件来交付多语言桌面软件。
  • CI/CD和自动化管道 — 使用L10n.dev REST API将JSON翻译集成到您的发布工作流程中,以作为CI/CD管道的一部分自动化本地化。
  • 无头CMS和静态站点 — 为使用Gatsby、Next.js或Astro构建的多语言静态站点,翻译来自Contentful、Sanity或Strapi等无头CMS平台的内容导出。

重要提示:在JSON中使用数组

使用“仅翻译新字符串”时:如果您的JSON包含数组(不仅仅是对象),请确保目标文件中的数组索引与源文件中的索引匹配。这可以确保翻译保持一致。添加新字符串时,请务必将其追加到数组末尾。

示例:

// ✅ CORRECT: New items added at the end
// source.json
["Apple", "Banana", "Orange"]

// target.json (existing)
["Manzana", "Plátano"]

// After translation (new item appended)
["Manzana", "Plátano", "Naranja"]
// ❌ INCORRECT: Items inserted in the middle
// This will cause misalignment!
["Apple", "Cherry", "Banana", "Orange"]

对于基于对象的JSON结构(推荐用于国际化),无需担心此问题,因为翻译是按键名匹配的。

常见问题解答

JSON翻译过程中会保留什么?

所有JSON键、结构嵌套、插值占位符({{variable}}{variable})、内联HTML标签、转义字符以及复数键后缀都会被保留。仅翻译人类可读的字符串值。

像 {{name}} 这样的插值占位符会被完整保留吗?

是的。我们的AI会自动检测并保留i18next ({{variable}})、React Intl ({variable})、Vue i18n ({variable}) 等所使用的所有常见插值格式。占位符名称和语法将与源文件完全保持一致。

该服务支持深度嵌套的JSON结构吗?

是的。我们的服务可以处理任意深度的JSON嵌套。每个字符串值的翻译都会考虑到其层级路径,且输出的JSON将保持与输入文件完全相同的结构。

i18next复数形式是如何处理的?

我们的AI能够识别i18next复数键后缀(_one_other_zero_few_many)并为目标语言生成正确的复数形式。翻译成波兰语或阿拉伯语等语言时,将自动生成所有必需的复数形式条目。

如果我的JSON文件非常大怎么办?

对于非常大的JSON文件(数百KB),我们建议使用国际化文件翻译页面,该页面支持最大5 MB的文件上传,提供更可靠的大型内容交付,并允许同时翻译成多种目标语言。