单次通过中的五层分析
医生同时运行代码扫描、覆盖率分析、质量验证、性能审计和CDN同步检查——所有操作均以统一评分呈现。
代码 — 硬编码字符串检测
基于AST的扫描可检测所有未用t()包裹的用户可见字符串。涵盖JSX文本、属性、三元本地化逻辑、提示消息及字符串变量。
覆盖范围 — 缺失的翻译
将源语言环境中的键与每个目标语言环境进行比对。若目标语言环境中存在缺失的键,将报告其精确的命名空间和路径。
质量 — 占位符不匹配
验证插值占位符在所有区域设置中保持一致。支持命名{}, 双花括号{{}}, printf%s, 模板${}以及位置{0}等格式。
性能 — 孤儿键检测
检测翻译文件中存在但代码中从未引用的键。孤立键会增加有效负载大小并产生维护债务。
同步 — CDN 比较
将您代码中提取的密钥与CDN中发布的密钥进行比对。在问题影响生产环境之前,提前发现远程缺失密钥和未使用远程密钥的情况。
您翻译健康的单一评分
医生根据检测结果计算出0到100分的评分。每个错误扣3.0分,而每条规则的警告贡献上限为20分——这能防止某条规则因数千条警告导致整体评分归零。
默认通过阈值为70分(B级)。使用--ci参数可使低于此阈值的构建失败,或先使用--report参数建立基准线,再强制执行评分规则。
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)等级阈值
CI/CD集成——在发布前拦截劣质翻译
在 CI 管道中添加 Doctor,确保每次推送都能捕获翻译回归问题。GitHub Actions 中的自动 OIDC 认证意味着无需管理任何密钥。
GitHub Actions 与 OIDC
使用 GitHub Actions OIDC 实现无需 API 密钥的自动认证。只需添加 id-token: write 权限,并运行 doctor --ci --report 命令。
阈值门控
设置通过阈值(默认:70),当分数低于该阈值时构建失败。使用 --report 开始跟踪,随后通过 --ci 强制执行。
机器可读JSON
使用 --format json 参数生成结构化输出,可将其通过管道传输至 jq 工具、自定义仪表板或部署管道中的下游自动化流程。
仪表板报告
使用 --report 参数将结果上传至 Better i18n 仪表板,以实现历史追踪、趋势分析,并让整个团队能够查看国际化健康状况。
何时使用哪个命令
Doctor 是综合性选项。当您需要特定检查或希望在提交前钩子中获得更快的反馈时,请使用专注命令。
医生完整健康评分,包含五层分析——您项目国际化状态的唯一可信数据源。
扫描专注于硬编码字符串检测。支持通过--staged参数用于预提交钩子。
检查交互式检查工具,用于检测缺失或未使用的翻译键,并提供引导式提示。
同步完整的本地与远程比较,同时显示缺失和未使用的键。
专为真实世界的国际化工作流而打造
健康评分 0–100
单项评分附带分类细分及CI通过/失败阈值。追踪翻译质量随时间的变化趋势。
词法作用域追踪
智能命名空间检测,同时适用于useTranslations和getTranslations。每次t()调用都会映射到正确的命名空间。
服务器组件支持
全面支持 Next.js App Router 的异步服务器函数。服务器端的 getTranslations 调用将被检测并审计。
可配置规则
在 i18n.config.ts 中禁用或降低规则级别。根据项目需求将规则设置为 "error"、"warning" 或 "off"。
智能过滤
自动忽略CSS类名、URL、导入路径和开发者常量。仅保留可操作结果。
详细审计日志
使用 --verbose 选项实现深度透明。提供作用域摘要、计时信息和命名空间解析跟踪以供调试。