YAML翻译
源语言: 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 会处理您的内容。此 YAML 翻译页面实时进行翻译,不会在我们的服务器上存储您的内容。对于大型 YAML 文件,我们建议使用 国际化文件翻译 页面以获得更可靠的交付。在翻译完成之前,请不要离开此页面。

如何在线翻译 YAML 文件

使用我们的 AI 驱动工具,翻译 YAML 本地化文件非常简单。按照以下步骤,在几分钟内即可获得完全翻译的 YAML 文件:

  1. 将您的 .yaml.yml 文件内容粘贴到上面的编辑器中。
  2. 设置源语言(或留空以自动检测)并输入目标语言代码(例如 esdejazh)。
  3. 点击 翻译 并等待 AI 处理您的 YAML 内容。对于大型文件,翻译可能需要几分钟时间。
  4. 复制翻译后的输出或将其下载为 .yaml 文件,准备提交到您的存储库。

什么是 YAML 文件?

YAML (YAML Ain't Markup Language) 是一种人类可读的数据序列化格式,广泛用于现代软件开发中的配置文件和本地化。与 JSON 或 XML 相比,其简洁的、基于缩进的语法使其更易于阅读和编写。

YAML 文件使用 .yaml 或 .yml 扩展名,是 Ruby on Rails、Symfony (PHP)、Vue i18n、Flutter ARB、Spring Boot 和许多其他框架的标准本地化格式。单个 YAML 文件通常包含一种语言的所有已翻译字符串。

由于 YAML 支持嵌套键、列表和内联注释,它特别适合以分层结构组织大量 UI 字符串,该结构反映了应用程序的组件树。

本地化的 YAML 文件结构

典型的 YAML 本地化文件使用嵌套的键值对按功能或组件组织字符串。以下是常见 YAML 结构的示例:

# Application configuration
app:
  name: "My Application"
  version: "2.0.0"
  description: "A powerful tool for managing your workflow"

navigation:
  home: "Home"
  about: "About Us"
  contact: "Contact"
  login: "Sign In"
  logout: "Sign Out"

messages:
  welcome: "Welcome back, {{name}}!"
  error: "An unexpected error occurred. Please try again."
  success: "Your changes have been saved successfully."

buttons:
  save: "Save"
  cancel: "Cancel"
  delete: "Delete"
  confirm: "Confirm"
  • 键值对 — YAML 的基础:key: "Translated string"
  • 嵌套键 — 将相关字符串分组在共同的父级下:button.save: "Save"
  • 列表 — 使用 - 前缀的有序值序列。
  • 注释 — 以 # 开头的行提供翻译上下文,并可选择性地保留。
  • 插值占位符 — 像 {{name}}%{count} 这样的变量会被原样保留,绝不会被翻译。

YAML 本地化文件示例

下面是一个真实的 YAML 本地化文件,展示了生产环境 Rails 和 Vue i18n 项目中常见的嵌套键、插值和注释用法:

# en/messages.yaml
user:
  greeting: "Hello, {{name}}!"
  farewell: "Goodbye, {{name}}. See you soon!"
  profile:
    title: "Your Profile"
    subtitle: "Manage your account settings"
    avatar: "Profile Picture"

errors:
  notFound: "The page you are looking for does not exist."
  unauthorized: "You are not authorized to view this page."
  serverError: "A server error occurred. Please contact support."

forms:
  required: "This field is required."
  email: "Please enter a valid email address."
  minLength: "Must be at least {{min}} characters."

我们的 AI 会翻译所有字符串值,同时完全保持键、插值变量和结构缩进不变。结果是一个可直接替换目标语言的文件。

软件本地化中的 YAML 文件

YAML 是最受欢迎的软件本地化格式之一,因为它在 人类可读性机器可解析性 之间取得了良好的平衡。开发人员无需特殊工具即可直接编辑 YAML 文件,而自动化管道可以可靠地处理它们。

在典型的本地化工作流程中,您可以在 locales 或 i18n 目录中为每种语言维护一个 YAML 文件(例如 en.yml、de.yml、ja.yml)。源语言文件被视为参考,并为每个目标区域设置生成翻译副本。

使用 YAML 进行本地化的框架和工具

YAML 本地化文件受到多种语言和平台中广泛流行的框架的支持:

  • Ruby on Rails — 使用 YAML 作为其原生国际化格式 (config/locales/en.yml)。Rails i18n gem 开箱即用地支持嵌套键、复数形式和插值。
  • Symfony (PHP) — 支持 YAML 翻译文件以及 XLIFF。translations/messages.en.yaml 中的 YAML 文件驱动 Symfony 翻译组件。
  • Spring Boot (Java) — 虽然 Spring 通常使用 .properties 文件,但 application.yml 中的 Spring YAML 支持和像 i18n4java 这样的社区库将 YAML 扩展到了本地化。
  • Flutter / Darteasy_localization 包和类似的 Flutter 国际化库使用 YAML 文件来管理移动和桌面应用的翻译。
  • Vue i18n — 官方 Vue.js 国际化插件支持 YAML 消息文件。Vite-plugin-vue-i18n 允许直接将 .yaml 文件作为 Vue 组件导入。
  • React / Next.js — 像 next-i18nextreact-i18next 这样的库可以通过自定义后端加载 YAML 翻译文件,使其成为 Next.js 本地化的热门选择。

用于 YAML 翻译的 AI 词汇表生成

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

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

为什么要使用 L10n.dev 进行 YAML 翻译?

  • AI 驱动的准确性 — 我们的翻译引擎理解 YAML 本地化上下文,而不仅仅是原始文本。它翻译人类可读的字符串,同时忽略键、锚点、别名和结构语法。
  • 结构保持 — 缩进、嵌套和 YAML 层级始终被保留。翻译后的文件是一个有效的 YAML 文档,无需修改即可解析。
  • 插值支持 — 像 {{name}}%{count}:variable 和 ICU消息格式 变量这样的占位符在翻译过程中会被检测到并保持不变。
  • 嵌套键感知 — AI 理解深度嵌套 YAML 文件的层级结构,并根据每个字符串在树中的位置保持准确的上下文。
  • 多框架兼容性 — 输出与 Ruby on Rails、Symfony、Vue i18n、Flutter、Spring Boot 以及任何其他使用标准 YAML 本地化文件的框架兼容。
  • 免费翻译最多 10,000 个字符。付费计划为大型项目提供可扩展的定价。查看定价
  • 针对大型文件优化 — 对于非常大的 YAML 文件(数百 KB),请使用 国际化文件翻译 页面,该页面支持最大 5 MB 的文件上传。

常见 YAML 翻译用例

YAML 翻译被用于各种应用类型和开发工作流程中:

  • Ruby on Rails 应用 — 将 config/locales/en.yml 翻译成其他语言文件,用于多语言 Rails 应用。
  • Symfony PHP 项目 — 本地化 translations/messages.en.yaml 和用于 Symfony 网站和 API 的领域特定翻译文件。
  • Vue.js / Nuxt.js 应用 — 翻译 Vue i18n YAML 消息文件,为 Vue 单页应用和 Nuxt.js 静态网站添加语言支持。
  • Flutter 移动应用 — 为针对多个市场的跨平台 Flutter 应用翻译 assets/lang/en.yaml 本地化文件。
  • 配置和 CMS 内容 — 翻译静态网站生成器(如 Jekyll、Hugo 或 Gatsby)使用的 YAML 配置文件,用于多语言站点内容。
  • 静态网站生成器 — Jekyll 使用 _data/ YAML 文件存储全站字符串,Hugo 使用 i18n/ YAML 文件,Gatsby 通过 gatsby-plugin-react-i18next 支持 YAML。
  • CI/CD 和 DevOps 管道 — 使用 L10n.dev REST API 将 YAML 翻译集成到您的部署管道中,作为发布工作流程的一部分实现本地化自动化。

YAML 与 JSON 本地化对比

YAML 和 JSON 都被广泛用于本地化文件,但它们各有优势。YAML 的人类可读语法、对注释的支持以及紧凑的多行字符串使其在 Ruby 和 PHP 等社区中更受欢迎,因为开发人员经常手动编辑翻译文件。

JSON 在 JavaScript 生态系统(React、Angular、Vue)中得到更普遍的支持,并且更容易以编程方式解析。如果您的项目同时使用这两种格式,L10n.dev 支持这两种格式——您可以在 JSON 翻译页面翻译 JSON 文件,在这里翻译 YAML 文件。

对于大多数项目,格式的选择取决于您使用的框架。如果您使用 Rails、Symfony 或 Vue i18n,YAML 是自然的选择。如果您使用 Angular i18next、React i18next 或 Next.js,JSON 更为常见。L10n.dev 对两者处理得同样出色。

常见问题解答

在翻译过程中,我的 YAML 文件的哪些部分会被保留?

所有 YAML 结构元素都会被保留:键、缩进、嵌套、锚点 (&)、别名 (*)、注释 (#) 和列表语法 (-)。像 {{variable}}%{name}:symbol 这样的插值占位符总是保持不变。只有人类可读的字符串值会被翻译。

插值变量和占位符在翻译过程中安全吗?

是的。我们的 AI 会检测 Rails (%{name})、Vue i18n ({name})、Symfony (%variable%)、Flutter ({name}) 和 ICU消息格式 使用的常见插值模式。这些变量会按原样保留,绝不会被翻译或修改。

如何翻译 YAML 文件?

将您的 .yaml.yml 文件内容粘贴到上面的编辑器中,设置目标语言代码(例如 frdejazh),然后点击翻译。AI 将返回一个完全翻译的 YAML 文件,其中所有键和结构都已保留。将结果下载为 .yaml 文件。

AI 词汇表生成如何帮助 YAML 翻译?

启用 生成并保存词汇表 允许您将现有的已翻译 YAML 内容与源文件一起粘贴。AI 会提取重复出现的术语并将其用作翻译指南,确保产品名称、功能标签和领域术语在整个文件和未来的翻译中保持一致。

我可以翻译大型 YAML 本地化文件吗?

此页面适用于单个几百 KB 的 YAML 文件。对于批量 YAML 翻译或非常大的文件,请使用 国际化文件翻译 页面,该页面支持最大 5 MB 的文件上传,并为大规模本地化项目提供更可靠的交付。