跳到正文
全部工具 价格 博客

聊天与语音消息

文档

音频与视频

登录

语言

本地化文件翻译工具

翻译应用本地化文件,键和占位符原样保留

上传 JSON、PO、strings.xml、.strings、.xcstrings 或 XLIFF 文件,选择语言,即可拿回格式不变的译文文件,直接放进项目就能用。键、注释、顺序和格式都与原文件完全一致,每条字符串里的 {name}、{{count}}、%1$s 等占位符都会逐一检查。前段字符串免费,无需注册;完整任务最多 20 个文件、5,000 条字符串,一次付费 $5,无需订阅。AI聊天机器人翻译十几条字符串没问题,但面对成千上万个键的文件,往往会中途截断,还可能改掉键名或占位符。

翻译字符串文件

语气
术语表和需保留的名称(可选)

品牌和产品名称,用逗号分隔。每个名称都会在所有译文中逐一检查。

每行一个术语:术语 = 译文。

无需注册。不超过300条字符串的任务完整免费。更长的:前几条字符串免费,任务内所有文件$5,一次付费。

继续即表示您同意我们的服务条款和隐私政策。

  • 最多 300 条字符串可完整免费翻译,较大任务前段免费,无需注册
  • 完整任务 $5,一次付费:最多 20 个文件、5,000 条字符串
  • 保留键、嵌套结构、注释和顺序,只翻译值
  • 逐条检查占位符、ICU 复数和行内标签
  • 按目标语言生成对应的复数形式(PO、Android、Xcode)
  • 支持 41 种语言,可选正式或非正式语气,可设置术语表和需保留的名称
打开演示

查看 PDF 示例 输出示例

85 条字符串 · 键名不变

{

"home.greeting": "Good morning, {name}Buenos días, {name}",

"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",

"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",

"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",

"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."

}

黄色:占位符和 ICU 复数语法,逐条检查。青色:标签、转义符和表情符号,原样保留。

键名不变。占位符不变。换成新语言。

只改动值。文件以相同的嵌套结构和顺序返回,命名为 es.json;任何丢失占位符的字符串,都会先重新翻译,再进入你的构建。

本页专门编写的演示应用;西班牙语字符串为该工具的真实输出,来自一个含 85 条字符串的文件。

你会得到什么

译文文件格式不变,命名和存放位置也符合各平台的要求:en.json 变成 es.json,strings.xml 放进 values-es 文件夹,Localizable.strings 放进 es.lproj。多个文件会打包成一个 ZIP 一起下载。下载前,每条译文都会与原文并排显示在屏幕上,你可以随时修改。

  • JSON 和 ARB:嵌套键、数组、键的顺序、缩进和空格都与原文件一致。{count, plural, one {# item} other {# items}} 这类 ICU 消息会保留原有结构。ARB 文件中的 "@" 元数据会保留,并设置 @@locale。
  • PO 和 POT:msgid 和 msgctxt 绝不改动;空白条目和 fuzzy 条目会被翻译,已有译文的条目保持不变。复数条目会按目标语言所需生成相应数量的 msgstr[n],文件头会写入 Language 和 Plural-Forms。
  • Android strings.xml:支持 <string>、<string-array> 和 <plurals>;跳过 translatable="false";撇号和引号按 Android 的要求转义;<xliff:g> 中的内容不会被翻译。
  • iOS 和 macOS:.strings 文件保留注释和编码(通常为 UTF-16);.xcstrings 字符串目录会为你的语言新增本地化,包含复数变体,已翻译的字符串予以保留。
  • XLIFF 1.2 和 2.0:在每个未翻译的 <source> 后添加 <target>,保留 <g>、<x/>、<ph>、<pc> 等行内代码,并在文件中设置目标语言。

用AI聊天机器人翻译字符串文件,与用本工具有何不同

AI聊天机器人翻译简短的界面文字效果不错,把十几条字符串贴进对话框,通常没什么问题。真正的本地化文件麻烦在于篇幅和语法:成千上万个键、占位符、复数规则和转义字符,只要错一个字符,编译器或库就会报错。

你的情况 AI聊天机器人 本工具
十个按钮文字 通常翻译得不错 翻译后直接还你文件
含 3,000 个键的文件 回复的篇幅得和文件一样长,所以往往写到一半就停了 按每块最多 60 条分块翻译全部字符串,每个任务最多 5,000 条
键和嵌套结构 整个文件重写一遍,键可能被翻译、改名或丢失 键从不送去翻译,文件以你的原文件为基础重建
{name}、%1$s 或 :attribute 之类的占位符 通常会保留,但没有任何检查 逐条检查;丢失占位符的字符串会重新翻译,仍不通过则保留原文并列入清单
俄语、波兰语或阿拉伯语的复数 常常直接照搬英语的两种形式 写出目标语言所需的每一种复数形式,并为每种形式附上示例数字
Android 字符串中的撇号 可能留下未转义的撇号,导致构建失败 撇号和引号按 Android 的要求转义

如何翻译本地化文件

  1. 1

    上传文件并选择语言

    放入同一项目的一个或多个文件:JSON、ARB、PO 或 POT、strings.xml、.strings、.xcstrings 或 XLIFF。选择目标语言和语气,并列出需要保留的产品名称。

  2. 2

    免费查看前段字符串

    前段字符串会显示在屏幕上,键与原文并排呈现。可直接修改任意一条。这一步无需账号。

  3. 3

    解锁并下载

    对前段字符串满意?$5 解锁完整任务,然后下载译文文件;如有需要留意的地方,还会附上一份警告清单。

为什么长字符串文件会难倒通用AI助手

本地化文件既是文本,也是代码。要在聊天中翻译它,AI助手得把整个文件重新写出来,包括键、括号和转义字符;而一个有几千条字符串的文件,比单次回复能容纳的篇幅还要长。它会写到一半停下,或者让你继续,最后你还得自己把几段拼起来。

语法是第二个难题。误翻的键、变成 {cuenta} 的 {count}、丢了美元符号的 %1$s、strings.xml 里未转义的撇号:每一处都只是长篇回复里的微小改动,却都可能导致构建失败,或让用户看到原始的占位符。

本工具从不让模型重写你的文件。它把文件读取为一条条字符串,只发送文本,并附上键和开发者注释作为上下文,每块最多 60 条,并要求每条字符串都给出一个答复。行内标签会先替换成简短的标记。每个答复都会经过检查:占位符相同、\n 等转义相同、标记相同、你列出的名称保持不变,每种复数形式齐全。未通过的字符串会重新翻译;若两次都不通过,则保留原文,并把该字符串列入清单供你查看。最后,文件以你的原文件为基础重建。

大家都在翻译什么

  • React、Vue、Angular 和 Next.js 应用:i18next、vue-i18n、react-intl 和 ngx-translate 的 JSON 文件
  • Flutter 应用:.arb 文件,@metadata 中的描述会用作上下文
  • WordPress 插件和主题、Django 及其他 gettext 项目:.pot 模板和 .po 文件
  • Android 应用:带字符串数组和复数形式的 res/values/strings.xml
  • iOS 和 macOS 应用,支持 Localizable.strings 和 String Catalogs (.xcstrings)
  • 从翻译平台或 Xcode 导出的 XLIFF 文件

不支持的内容

暂不支持读取 YAML、.properties、.resx 或 .stringsdict 文件;源文件中缺少的 i18next 复数键(key_one、key_few)也不会自动补充:工具只翻译你已有的键。在 .xcstrings 文件中,使用替换项或设备变体的字符串会保持原样。

已有的译文不会被覆盖:已填写的 PO 条目、标记为已翻译的 XLIFF 目标文本,以及字符串目录中已有你所选语言的条目,都会原样保留。一次付费最多可处理 20 个文件、5,000 条字符串;无限版每个任务最多可处理 15,000 条字符串。

这是带结构校验的机器翻译,很适合快速上线某种语言的第一个版本,也适合让项目保持同步。应用商店介绍、法律文本或带有品牌调性的内容,建议请母语人士审校。

如何获得好的效果

上下文决定了翻译质量:同样是“Save”,可能是“保存”,也可能是“节省”。像 settings.save_button 这样的键,以及文件中的注释(PO 中的 #.、ARB 中的 @key 描述、.strings 中的 /* 注释 */),都会随每条字符串一并发送,所以键名有意义、带少量注释的文件翻译效果更好。

请把应用名和产品名列入“不翻译”,对于有正式和非正式称呼之分的语言,请选择其一。先用免费的字符串试一下效果,解锁完整结果后再查看警告列表:每一条都会显示键、问题,以及模型返回的内容。

按语言和场景

价格

小任务与前段免费

免费

不超过 300 条字符串的任务可完整免费翻译,含下载,结果直接在屏幕上显示,无需注册。未注册每天 1 个任务,注册免费账户后每天 3 个。

完整任务

$5

一次付费,最多可处理 20 个文件、5,000 条字符串。无需订阅,永不过期。

无限版

每周 $19

全站所有工具通用,单个任务最多可处理 15,000 条字符串。

常见问题

ChatGPT 能翻译 JSON 本地化文件吗?

小文件通常可以。但包含数千个键的文件必须在一次回复中完整返回,AI聊天机器人往往会中途截断,而且没有任何机制检查每个键和占位符是否都完好保留。本工具会分块翻译这些值,检查每一个占位符,并以你的原文件为基础重建文件。

支持哪些格式?

JSON(i18next、vue-i18n、react-intl、ngx-translate 及类似格式)、Flutter ARB、gettext PO 和 POT、Android strings.xml、iOS 和 macOS 的 .strings 和 .xcstrings,以及 XLIFF 1.2 和 2.0。每个文件最大 10 MB,一个任务最多 20 个文件。

键和占位符会保留吗?

键绝不会被送去翻译。每条字符串中的占位符(如 {name}、{{count}}、%s、%1$d、%@、:attribute 和 %{name})、转义字符(如 \n)、行内标签和 emoji 都会被检查。如果某条字符串丢失了其中任何一项,会重新翻译;若仍然不通过,则保留源文本,并将该字符串列入警告列表。

复数是如何处理的?

ICU 消息会保持原有结构,并采用目标语言使用的复数类别。带 msgid_plural 的 PO 条目会生成目标语言所需数量的 msgstr[n] 形式,文件头也会写入对应的 Plural-Forms。Android 的 <plurals> 和 Xcode 的复数变体会按目标语言的类别写入,例如俄语的 one、few、many 和 other。

已经翻译过的字符串会怎样?

会保留。只有空的或 fuzzy 的 PO 条目、没有完成目标文本的 XLIFF 单元,以及没有你所选语言的字符串目录条目才会被翻译。在 JSON、.strings 和 strings.xml 中,每个值都会被视为源文本。

可以翻译成哪些语言?

共 41 种语言,包括西班牙语、法语、德语、意大利语、葡萄牙语(巴西和葡萄牙)、荷兰语、波兰语、俄语、乌克兰语、土耳其语、阿拉伯语、希伯来语、印地语、印尼语、越南语、泰语、日语、韩语和中文(简体和繁体)。

免费吗?

每个任务的前几条字符串免费翻译,并直接显示在屏幕上,无需注册。完整任务连同下载文件,一次付费 $5。无限版每周 $19,全站所有工具通用。小任务例外:不超过 300 条字符串的任务全部免费,下载也不收费。

我的文件是保密的吗?

只有你本人能打开你的任务。字符串仅为翻译之目的发送给 AI 模型服务商,且所用线路不会将你的数据用于训练。无需注册上传的任务会在 7 天后删除,你也可以随时自行删除任何任务。

更新于 2026年10月23日 · APPFACT STUDIO LTD

更多我们能处理的任务

我们使用分析类 Cookie 来了解哪些页面对用户有帮助。是否同意?