用途:用于检查项目的国际化覆盖情况,发现硬编码字符串并核对各语言翻译是否完整。触发场景包括检查 i18n、查找硬编码字符串、验证翻译覆盖率。
主要能力:先读取 package.json 判断使用的 i18n 库(react-i18next / i18next、next-intl、vue-i18n、react-intl(FormatJS)),再读取语言文件了解键结构(如 src/locales/en.json)。随后在 JSX/TSX/Vue 文件中搜索面向用户的硬编码字符串,包括 JSX 文本(如 <p>Hello world</p>)、字符串属性(placeholder="Search..."、label="Submit")、aria-label 等。最后对比语言文件,找出基准语言存在、其他语言缺失的键。
输出格式:硬编码字符串按“文件:行号 + 原文 + 建议键名”列出,例如 src/components/Header.tsx:12 "Welcome back" → 建议键 header.welcomeBack;缺失翻译按“键 + 缺失的语言”列出,例如 Key: dashboard.emptyState missing in: pt-BR, es。
规则:只标记用户可见字符串,跳过内部 ID、CSS 类名、URL 和枚举值;建议的键名采用 camelCase 并符合项目约定;绝不自动修改语言文件,只输出报告。
错误处理:未检测到 i18n 库时,报告项目可能未使用 i18n,但仍列出发现的硬编码字符串;未找到语言文件时,跳过缺失键对比,仅报告硬编码字符串;语言文件非 JSON(如 .po、.yaml)时,仍读取并调整键对比逻辑。
限制:工具仅做静态审计与报告,不执行替换或修复;对字符串是否为“用户可见”的判断依赖规则,可能需人工复核;详细安装与调用方式暂未提供。