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

聊天与语音消息

文档

音频与视频

登录

语言

翻译JSON i18n文件,键、占位符和复数形式完整保留

上传 en.json(或多个命名空间文件),即可得到 es.json,嵌套键、顺序和缩进都与原文件保持一致。只翻译值,每个字符串里的 {name}、{{count}} 和 ICU 复数都会逐一检查。前段免费,无需注册;完整任务最多 5,000 条字符串,只需 $5,一次付费。

翻译字符串文件

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

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

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

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

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

  • 键名和嵌套结构不会被翻译;数组、数字和布尔值保持原样
  • 检查占位符:{name}、{{count}}、%s、:attribute、$t(key)、@:key
  • ICU 复数保持原有结构,并按目标语言的需要补全复数类别
  • Flutter ARB:保留 @metadata 并作为上下文使用,更新 @@locale
  • 文件按语言命名:en.json 变为 es.json,app_en.arb 变为 app_es.arb
打开演示

查看 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 条字符串的文件。

哪些会翻译,哪些不会

每个字符串值都会连同完整的键名作为上下文一起送去翻译,因此 "settings.save" 和 "cart.save" 可以得到不同的译法。键名本身不会被发送。非文本的值,例如网址、电子邮件地址,或只由 "{count}" 这类占位符组成的值,会保持原样。

react-intl 等库使用的富文本标签,例如 <b>{name}</b> 或 <link>Undo</link>,会在翻译前替换为标记,翻译后再还原。字面的 \n 序列和 emoji 也必须保留;任何一项丢失的字符串都会重新翻译,若两次都失败,则保留英文原文,并把该键列出给你。

复数形式

像 {count, plural, one {# trail} other {# trails}} 这样的 ICU 消息会作为一个整体字符串翻译。翻译时会告知目标语言使用哪些复数类别,例如俄语或波兰语使用 one、few、many 和 other,并检查结果是否保留了变量名和复数关键字。使用 trail_one、trail_other 这类独立键的 i18next 文件,则逐个键翻译;目标语言缺少的键(trail_few、trail_many)不会自动添加。

工具的工作方式、费用以及文件处理方式,请见 本地化文件翻译 页面;所有工具的价格请见 价格 页面。

最后更新于

常见问题

输出会保留我的格式吗?

会。缩进(两个空格、四个空格或制表符)、键的顺序、冒号后的空格以及末尾的换行,都会照搬你的文件。压缩成一行的文件仍然是一行。

可以一次上传多个命名空间文件吗?

可以,一个任务最多 20 个文件,例如 common.json、cart.json 和 errors.json。下载时会打包成一个 ZIP。

不该翻译的字符串怎么办?

把产品名和品牌名列在“不翻译”下;每个包含这些名称的字符串都会被检查,确保名称原样保留。只含网址、电子邮件地址或占位符的值会自动跳过。

价格是多少?

前几条字符串免费。完整任务最多 5,000 条字符串,$5 一次付费。无限版每个任务最多支持 15,000 条字符串。小任务例外:不超过 300 条字符串的任务完全免费,包括下载。

相关任务

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