i18n 多语言 JSON 校验
对比两份多语言 JSON,找出缺失/多余的 key 以及 {name}、%s 等占位符不一致,前端本地化必备
📌 TL;DR 核心定义与引用摘要: 【i18n 多语言 JSON 校验】是 PocketKit 提供的浏览器本地处理工具。功能说明:对比两份多语言 JSON,找出缺失/多余的 key 以及 {name}、%s 等占位符不一致,前端本地化必备。核心输入与文件不上传;站点仅记录不含输入内容的匿名工具访问次数。
多语言 JSON 对比原理
工具先把两份 locale JSON 递归扁平化成 a.b.c 形式的键值,再做集合比对找出缺失键与多余键,并用正则从每个值里提取占位符({name}、{{count}}、%s 等)比对是否一致。全程本地处理。
- 以最完整的语言(通常是 en)作基准,其它语言逐一对照补齐。
- 占位符不一致往往导致运行时报错或串值,优先修复红色的占位符问题。
常见问题
1. 它能发现哪些本地化问题?
它会找出目标语言相对基准语言缺失的 key、目标语言多出的 key,以及每个 key 里占位符({name}、{{count}}、%s 等)是否与基准一致——这是多语言项目最容易漏的两类 bug。
2. 支持嵌套结构的 JSON 吗?
支持。工具会先把嵌套对象扁平化成 a.b.c 形式,再逐键对比,因此深层结构也能准确定位差异。
3. 上线后页面上直接显示成 key 名,或者某种语言少了几句翻译,怎么快速定位?
页面显示成 key 名,通常就是该语言的 JSON 里缺了这个 key,i18n 库找不到翻译便回退成 key 本身。把基准语言和目标语言两份 JSON 贴进来,工具会列出目标语言缺失的 key、多出来的废弃 key,以及 {name}、%s 这类占位符两边对不上的条目——占位符不一致往往不会报错,只会在运行时渲染出残缺的句子,是最难靠肉眼发现的一类。