国际化文件翻译
源文件:
接受ZIP归档或单个文件:JSON、JSONC、XML、YAML、ARB、PO/POT、XLIFF、Properties、CSV/TSV、MD、TXT。最大限制为5 MB。
源语言: en-US (English, United States)
源语言的代码。例如:fr, fr-FR, fil, zh-Hans-CN。输入以搜索。
生成并保存词汇表:
仅翻译新条目:
指示是仅翻译新条目还是重写目标文件中的现有条目。
目标语言:
de (German), zh-Hans-CN (Chinese, Simplified Chinese, China)
生成复数形式:
翻译元数据:

支持的文件格式

我们的国际化文件翻译服务支持跨不同平台和框架使用的多种文件格式。

格式使用方 支持仅翻译新字符串 支持注释 支持元数据翻译控制
JSON / JSONCJavaScript, TypeScript · i18next, React, Vue, Angular
XMLAndroid strings.xml · iOS plist · 通用XML · .NET ResX
YAML / YMLRuby on Rails · Node.js · 配置文件
ARBFlutter · Dart
PO / POTGNU Gettext · PHP, Python, WordPress, Ruby
XLIFF专业CAT工具 · 本地化平台 · Angular
.propertiesJava · Spring Boot · Android
CSV / TSV电子表格 · 自定义本地化工作流程
MD文档 · README文件 · Jekyll, Hugo, Docusaurus
TXT用于应用本地化的纯文本文件

如何翻译国际化文件

翻译国际化文件是我们的服务所提供的简单直接的过程。请按照以下步骤翻译您的国际化文件,并确保项目间的一致性。

  1. 上传文件: 使用“源文件”部分上传您的国际化文件或ZIP归档。支持的格式:JSON、JSONC、XML、YAML、ARB、PO/POT、XLIFF、Properties、CSV/TSV、MD、TXT。如果文件名包含语言代码,它将自动用作源语言。
  2. 设置源语言和目标语言:
    选择您的源语言(例如 en-US)。添加一种或多种目标语言(例如 fr-FRde-DE),并配置翻译选项,如缩写形式、缩写、术语和文件关联。

    重要提示: 如果您启用了 “仅翻译新字符串”,则您上传的 目标文件必须已经包含该语言先前翻译好的字符串(例如,您的法语文件应该已经包含了所有旧的法语翻译)。系统随后将 仅翻译缺失/未翻译的字符串

    如果您只是上传与源文件相同的文件作为目标文件(且该文件没有法语内容),则 不会翻译任何内容,因为系统无法检测哪些字符串是新的,哪些是旧的。

    注意: 上传目标文件是可选的。如果您不上传任何目标文件,无论是否启用了 “仅翻译新字符串”所有字符串都将被翻译

    文件命名规则:
    如果上传的文件名不是确切的语言代码(例如 fr.jsonde.json),则它们的文件名必须与源文件的名称匹配,以便系统知道它们包含不同语言的相同字符串。例如:

    /en/common.json
    /fr/common.json
    /de/common.json

    这确保了翻译能够正确对齐。如果文件名与源文件名不同,系统将把它们视为属于 不同的命名空间。在国际化中,命名空间只是一个用于按应用程序部分组织字符串的独立文件(例如:用于通用字符串的 common.json,用于登录的 auth.json,用于仪表板的 dashboard.json)。

    每个命名空间在每个语言文件夹中都应有一个对应的文件:

    /en/common.json
    /en/auth.json
    /fr/common.json
    /fr/auth.json

    对每种语言使用相同的文件名可确保系统能够正确匹配字符串。

  3. 开始翻译: 点击“翻译”按钮开始。我们的服务会仔细管理文件以保留字符串顺序,防止不必要的更改。进度将实时显示。
  4. 下载已翻译文件: 翻译完成后,点击“下载已翻译文件”按钮以获取翻译内容。下载的文件是一个 以作业ID命名的ZIP归档(例如:0196e881-fb54-7150-a292-5b1e8f70a8ae.zip)。该归档包含每种目标语言的已翻译文件,并按语言代码组织到单独的文件夹中。

为什么选择我们的国际化翻译服务

  • AI驱动的上下文感知翻译: 我们的AI能智能解析国际化格式占位符,并根据语言代码中指定的语言、脚本和地区,将翻译调整为符合当地文化规范的内容。
  • 广泛的格式支持: 我们的服务处理所有主要的国际化文件格式。它能准确管理复数形式,保留HTML标签和注释,保留换行符,并保持文件结构完整。
  • 特定区域设置调整: 文本中的数字和日期会自动转换为符合目标区域设置的格式。
  • 错误处理: 我们会检测AI错误并在必要时重新翻译,确保高质量的结果。
  • 高性价比: 我们的服务比其他机器翻译解决方案更实惠。用户每月可获得 30,000个字符的免费额度查看定价
  • 针对大文件优化: 我们的系统通过将大文件拆分为可管理的块来高效处理国际化文件,确保每个片段都在AI的输出窗口范围内。这种方法通过利用预定义的术语和上下文,即使对于大文件也能保持翻译的一致性。

我们的平台通过先进的AI驱动翻译简化了您的国际化文件本地化流程,在保留文件结构和上下文的同时,提供准确高效的结果。

什么是国际化?国际化与本地化详解

国际化 (i18n) 是指设计软件以便在不更改代码的情况下适应不同语言和地区的过程。本地化 (l10n) 是指为特定区域设置实际调整软件的过程——翻译字符串、调整日期格式、货币和文化参考。i18n中的“18”代表“internationalization”中“i”和“n”之间的18个字母。

国际化文件翻译是本地化工作流程的核心。开发者不再将文本硬编码在源代码中,而是将所有用户可见的字符串外部化到资源文件中——JSON、YAML、PO、XLIFF、ARB或Properties文件。这些文件成为所有翻译的唯一事实来源,并与应用程序一起进行管理、版本控制和部署。

对于全球化产品,国际化文件可能需要翻译成数十种语言。大规模管理此过程需要自动化、一致性和格式感知工具——这正是我们的AI驱动国际化文件翻译服务所提供的。

国际化文件格式:您应该使用哪一种?

国际化文件格式的选择通常取决于您的技术栈。每种格式在结构、工具和平台支持方面都有不同的优势:

  • JSON — Web应用程序中最流行的格式。被i18next、React Intl、ngx-translate和Vue i18n使用。支持嵌套键和插值。推荐用于React、Angular (ngx-translate)、Vue和Next.js项目。
  • YAML — Ruby on Rails国际化的原生格式,广泛用于Symfony (PHP)和Vue i18n。人类可读,支持注释、嵌套键和多行字符串。
  • PO / Gettext — WordPress插件、PHP应用程序、Python (Django, Flask)和Linux桌面软件的标准。内置对复数形式、译者注释和源文件引用的支持。
  • XLIFF — 专业翻译工作流程的行业标准。被Angular内置的国际化、iOS/Xcode以及所有主流CAT工具(SDL Trados, memoQ, Memsource)使用。非常适合涉及翻译代理机构的企业项目。
  • ARB — Flutter的应用程序资源包格式。基于JSON,带有本地化元数据。是Flutter和Dart应用本地化的标准,由 flutter gen-l10n 编译。
  • Properties — Java的原生本地化格式。被Spring Boot、Android(旧版)以及使用 ResourceBundle 的企业级Java应用程序使用。

增量翻译:仅翻译新字符串

我们国际化文件翻译服务最强大的功能之一是 增量翻译——即仅翻译新字符串或已更改的字符串,而无需重新翻译已本地化的内容。这显著降低了活跃开发项目的翻译成本和处理时间。

要使用增量翻译,请为每种语言上传您的源文件和现有的目标文件。我们的系统会比较两个文件中存在的键,并仅翻译目标文件中缺失的字符串。这在持续开发周期中特别有价值,因为每次冲刺或发布都会添加新的字符串。

增量翻译支持的格式列在上表中。对于其他格式,上传目标文件对于词汇表上下文仍然有用,可确保翻译运行间术语的一致性。

国际化文件翻译的常见用例

我们的国际化文件翻译服务处理各种现代本地化场景:

  • Web应用程序本地化: 为React、Angular、Vue、Next.js和Nuxt.js单页应用翻译JSON、YAML和Properties文件。对i18next命名空间结构的支持允许通过单次ZIP上传翻译所有语言文件。
  • 移动应用本地化: 翻译Flutter应用的ARB文件、Android的Properties文件,以及从Xcode导出的用于iOS和macOS应用本地化的XLIFF文件。
  • 文档和内容: 为Docusaurus、VitePress、Jekyll和Hugo等静态站点生成器翻译Markdown文件,以提供多语言文档网站。
  • WordPress和PHP项目: 为WordPress主题和插件、Symfony应用程序以及其他使用基于gettext本地化的PHP项目翻译PO/POT文件。
  • Angular应用程序: 翻译由 ng extract-i18n 生成的XLIFF 1.2和2.0文件,用于Angular的内置国际化系统。
  • 企业和CAT工作流程: 使用我们保留结构的AI翻译,处理与专业翻译代理机构和CAT工具(SDL Trados, memoQ, Memsource)交换的XLIFF文件。
  • 开源项目: 为基于GNU gettext的开源项目、桌面应用程序(GTK/GNOME/KDE)以及分发到各个语言社区的开发者工具翻译PO文件。
  • CI/CD自动化: 使用L10n.dev REST API将国际化文件翻译集成到您的发布管道中,以便在每次合并或部署时自动翻译新字符串。

常见问题解答

支持哪些国际化文件格式?

我们支持 JSON / JSONCXML (Android strings.xml, .NET ResX, 通用)、YAML / YMLARB (Flutter)、PO / POT (GNU Gettext)、XLIFF 1.2和2.0.properties (Java)、CSV / TSVMarkdown (.md)纯文本 (.txt)。文件可以单独上传,也可以作为最大5 MB的ZIP归档上传。

我可以一次翻译成多种语言吗?

是的。您可以在一个作业中添加多个目标语言。我们的服务会处理所有语言对,并将结果打包在按语言代码(例如 fr/, de/, ja/)组织的ZIP归档中。

“仅翻译新字符串”是如何工作的?

为每种语言上传您的源文件和现有的目标文件(已包含您之前的翻译)。我们的系统会识别源文件中存在但目标文件中缺失的字符串,并仅翻译这些字符串——避免重新翻译您已经付费的内容,并防止覆盖手动编辑。

最大文件大小是多少?

每个文件或ZIP归档的最大上传大小为 5 MB。对于非常大的项目,请考虑按命名空间拆分文件或上传多个作业。您可以在此页面实时监控作业进度,并在“文件”页面访问所有已完成的作业。

文件命名空间是如何工作的?

不同语言文件夹中名称相同的文件被视为同一个命名空间(例如 /en/common.json/fr/common.json)。名称不同的文件被视为独立的命名空间。在所有语言文件夹中使用一致的文件名,以确保正确的字符串匹配。