SuperAPI AI 工具集

i18n-rtl-audit

测试与质量

查看项目

更新于 10-16 08:19

技能介绍

用途

i18n-rtl-audit 用于审计一个页面是否具备国际化(i18n)就绪能力,即检查 UI 在翻译后是否仍能正常显示。它关注三类问题:长文本翻译导致的布局断裂(伪本地化)、RTL(从右到左)渲染问题,以及硬编码的 UI 字符串。该技能无需注册即可使用。

主要能力

  • 文档属性检查:检查 <html lang> 和 dir 属性。缺失 lang 会影响屏幕阅读器和翻译;没有 dir 处理意味着不支持 RTL。
  • 伪本地化(长字符串压力测试):将可见文本扩展约 40%(模拟英语到德语/芬兰语的典型增长),查找溢出或裁剪问题。
  • RTL 检查:将页面方向翻转为 dir=rtl 并截图,以发现未镜像的布局,例如本应镜像却仍左锚定的元素、方向错误的图标/箭头、仍左对齐的文本、损坏的内边距/外边距。
  • 硬编码字符串检查:标记直接写入标记中、没有 i18n 包装的用户可见文本(启发式,需对照 i18n 目录验证)。

使用方式

前置条件:Playwright MCP(随 Claude Code 提供)。

触发指令示例:

  • "i18n audit https://..."
  • "Will my layout break when translated?"
  • "Check RTL support on my site"

工作流程:

  1. 使用 mcp__playwright__browser_navigate 导航到目标 URL。
  2. 使用 browser_evaluate 检查文档属性(<html lang> 和 dir)。
  3. 执行伪本地化脚本,扩展可见文本约 40%,检测溢出元素,并返回页面是否变宽及溢出元素列表。
  4. 扩展后使用 browser_take_screenshot 截图,直观展示断裂情况。
  5. 执行 RTL 翻转脚本:() => { document.documentElement.setAttribute('dir','rtl'); },然后截图检查未镜像的布局。
  6. 记录硬编码字符串(启发式)。

伪本地化脚本示例:

() => {
  // Expand text nodes to simulate a longer language
  const before = document.documentElement.scrollWidth;
  document.querySelectorAll('button, a, label, h1, h2, h3, .btn, [class*=nav]').forEach(el => {
    if (el.children.length === 0 && el.textContent.trim())
      el.textContent = el.textContent + ' ' + el.textContent.slice(0, Math.ceil(el.textContent.length*0.4));
  });
  const overflow = [...document.querySelectorAll('*')]
    .filter(el => el.scrollWidth > el.clientWidth + 2 && el.clientWidth > 0)
    .slice(0, 20)
    .map(el => el.tagName.toLowerCase() + (el.className ? '.'+String(el.className).split(' ')[0] : ''));
  return { grewPage: document.documentElement.scrollWidth > before, overflowing: overflow };
}

RTL 翻转脚本:

() => { document.documentElement.setAttribute('dir','rtl'); }

输出格式

输出为 Markdown 报告,包含以下部分:

  • 标题:## i18n & RTL Audit: [URL]
  • 总体结论(例如“Not translation-ready — 3 blocking issues”)
  • Document 部分:列出 <html lang> 缺失、无 dir 处理等问题。
  • Long-string layout 部分:列出伪本地化后溢出的元素及建议(如使用灵活宽度/换行,而非固定像素)。
  • RTL 部分:列出未镜像的布局问题。
  • Hardcoded strings 部分:列出疑似硬编码的字符串,并提示对照 i18n 目录验证。

适用场景

  • 在发布多语言版本前,快速检查页面是否具备国际化基础。
  • 验证 RTL 语言(如阿拉伯语、希伯来语)的布局支持。
  • 发现长文本翻译可能导致的 UI 断裂。
  • 识别需要提取到 i18n 目录的硬编码字符串。

限制

  • 需要 Playwright MCP(随 Claude Code 提供)作为前置条件。
  • 硬编码字符串检查为启发式,结果需人工对照 i18n 目录验证。
  • 伪本地化仅模拟约 40% 的文本扩展,可能无法覆盖所有语言的实际增长情况。
  • 资料未提供关于收费、价格、平台兼容性等更多信息。