blog-locale-audit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Blog Locale Audit, Multilingual Quality Control

博客本地化审计:多语言质量管控

Audits a directory of multilingual blog content to ensure every language version is complete, consistent, correctly tagged, and SEO-optimized. Catches international content issues before they hurt rankings.
Adapted from
claude-blog-multilingual
by Chris Mueller (Pro Hub Challenge, March 2026). Original: https://github.com/Chriss54/multilingual-int
对多语言博客内容目录进行审计,确保每个语言版本内容完整、一致、标签正确且符合SEO优化要求,在国际内容问题影响排名前及时发现问题。
改编自Chris Mueller的
claude-blog-multilingual
(Pro Hub挑战赛,2026年3月)。原项目地址:https://github.com/Chriss54/multilingual-int

Workflow

工作流程

Phase 1: Discovery

第一阶段:发现

  1. Scan the target directory. Group blog posts by language using:
    • Subdirectory names (
      en/
      ,
      de/
      ,
      fr/
      ).
    • Frontmatter
      lang
      and
      translatedFrom
      fields.
    • hreflang-map.json
      if present.
  2. Build a content matrix mapping which post exists in which languages.
  3. Detect the source language (most common
    translatedFrom
    target, or the
    sourceLanguage
    field in
    hreflang-map.json
    if present).
  1. 扫描目标目录,通过以下方式按语言分组博客文章:
    • 子目录名称(
      en/
      de/
      fr/
    • Frontmatter中的
      lang
      translatedFrom
      字段
    • 若存在
      hreflang-map.json
      文件则以此为准
  2. 构建内容矩阵,映射哪些文章存在对应语言版本
  3. 检测源语言(最常见的
    translatedFrom
    目标语言,或若存在
    hreflang-map.json
    则以其中的
    sourceLanguage
    字段为准)

Phase 2: Completeness Audit

第二阶段:完整性审计

Show which translations are missing:
undefined
展示缺失的翻译版本:
undefined

Translation coverage matrix

翻译覆盖矩阵

Post (EN)DEFRESJA
how-to-avoid-ai-slopokokmissingmissing
content-marketing-2026okmissingokmissing
Coverage: 60% (6 of 10 expected translations present) Missing: 4 translations needed
undefined
文章(英文)德语法语西班牙语日语
how-to-avoid-ai-slopokokmissingmissing
content-marketing-2026okmissingokmissing
覆盖度:60%(10个预期翻译版本中已存在6个) 缺失:需补充4个翻译版本
undefined

Phase 3: Content Parity Audit

第三阶段:内容一致性审计

For every post that exists in multiple languages:
CheckWhatSeverity
Section countSame number of H2 and H3 sectionsCritical
FAQ countSame number of FAQ itemsHigh
Image countSame number of imagesHigh
Chart countSame number of charts (SVG figures)High
Word count ratioWithin expected band for language pair (DE +20% to +30%, JA -20%, ES +10%)Medium
Link countSimilar internal and external link countsMedium
Citation capsule countSame number per H2 across versionsMedium
Frontmatter parityAll required fields present per versionHigh
Flag every significant deviation as an issue.
针对存在多语言版本的每篇文章:
检查项检查内容严重程度
章节数量H2和H3章节数量一致关键
FAQ数量FAQ条目数量一致
图片数量图片数量一致
图表数量图表(SVG图形)数量一致
字数比例符合语言对的预期范围(德语+20%至+30%,日语-20%,西班牙语+10%)中等
链接数量内部和外部链接数量相近中等
引用框数量各版本每个H2下的引用框数量一致中等
Frontmatter一致性各版本均包含所有必填字段
将所有显著偏差标记为问题。

Phase 4: SEO Parity Audit

第四阶段:SEO一致性审计

For every language version verify:
ElementCheckSeverity
Title tagPresent, correct length for the languageCritical
Meta descriptionPresent, correct length, contains a statCritical
lang
attribute or frontmatter
lang
Present, valid ISO 639-1Critical
Schema
inLanguage
Matches
lang
High
Schema
translationOfWork
Points to the source URLHigh
Alt textTranslated (no English alt in non-EN posts)High
SlugLocalized (no English slug in non-EN posts)Medium
TagsLocalizedMedium
KeywordsLocalizedMedium
验证每个语言版本的以下元素:
元素检查内容严重程度
标题标签存在且符合对应语言的长度要求关键
元描述存在、长度符合要求且包含数据统计关键
lang
属性或Frontmatter的
lang
字段
存在且为有效的ISO 639-1编码关键
Schema的
inLanguage
字段
lang
字段匹配
Schema的
translationOfWork
字段
指向源语言URL
替代文本(Alt text)已翻译(非英文文章中不得出现英文替代文本)
路径别名(Slug)已本地化(非英文文章中不得出现英文路径别名)中等
标签(Tags)已本地化中等
关键词(Keywords)已本地化中等

Phase 5: Hreflang Audit

第五阶段:Hreflang审计

If
hreflang-tags.html
,
hreflang-sitemap.xml
, or
hreflang-map.json
exists in the directory:
CheckWhatSeverity
Self-referencingEach page references itselfCritical
Return tagsEvery relationship is bidirectionalCritical
x-default
Present, points to source languageCritical
Language codesValid ISO 639-1 (with optional region)High
URL consistencySame protocol, same trailing-slash conventionMedium
CompletenessEvery language version representedHigh
If no hreflang files exist, report it as a critical gap and offer: "Run
/blog multilingual <topic> --languages ...
to regenerate, or create hreflang-tags.html manually."
If
seo-hreflang
from claude-seo is installed, suggest running it for deeper validation.
若目录中存在
hreflang-tags.html
hreflang-sitemap.xml
hreflang-map.json
文件:
检查项检查内容严重程度
自引用每个页面均引用自身关键
双向标签所有关联关系均为双向关键
x-default
标签
存在且指向源语言版本关键
语言编码为有效的ISO 639-1编码(可附带地区编码)
URL一致性协议一致、尾斜杠规则一致中等
完整性所有语言版本均已覆盖
若不存在hreflang文件,将其报告为关键缺口,并提供建议: "运行
/blog multilingual <topic> --languages ...
重新生成,或手动创建hreflang-tags.html。"
若已安装claude-seo中的
seo-hreflang
工具,建议运行该工具进行深度验证。

Phase 6: Freshness Audit

第六阶段:新鲜度审计

For posts with
translatedDate
in frontmatter:
CheckWhatSeverity
Source updated after translationSource modified after
translatedDate
Critical
Translation older than 90 daysMay need refreshMedium
lastUpdated
mismatch across versions
Versions out of syncMedium
File mtime newer than
translatedDate
Content changed without frontmatter updateWarning
Emit actionable commands per stale file:
3 translations are stale:
- de/ki-trends-2026.md (source updated 2 days ago)
  -> Run: /blog translate en/ai-trends-2026.md --to de
- fr/ki-trends-2026.md (source updated 2 days ago)
  -> Run: /blog translate en/ai-trends-2026.md --to fr
- es/tendencias-ia-2026.md (translation > 90 days old)
  -> Run: /blog translate en/ai-trends-2026.md --to es
针对Frontmatter中包含
translatedDate
字段的文章:
检查项检查内容严重程度
源语言版本更新晚于翻译版本源语言版本在
translatedDate
之后被修改
关键
翻译版本超过90天可能需要更新中等
各版本
lastUpdated
字段不一致
版本不同步中等
文件修改时间晚于
translatedDate
内容已修改但未更新Frontmatter警告
针对每个过时文件输出可执行命令:
3个翻译版本已过时:
- de/ki-trends-2026.md(源语言版本2天前更新)
  -> 运行:/blog translate en/ai-trends-2026.md --to de
- fr/ki-trends-2026.md(源语言版本2天前更新)
  -> 运行:/blog translate en/ai-trends-2026.md --to fr
- es/tendencias-ia-2026.md(翻译版本已超过90天)
  -> 运行:/blog translate en/ai-trends-2026.md --to es

Phase 7: Report

第七阶段:报告

Output as markdown by default. If the user passes
--html
, also write the report to
locale-audit-report.html
with the same content.
undefined
默认以Markdown格式输出。若用户传入
--html
参数,同时将报告内容写入
locale-audit-report.html
文件。
undefined

Multilingual content audit report

多语言内容审计报告

Summary

摘要

  • Posts audited: [N] across [N] languages
  • Overall health: [score] / 100
  • Critical issues: [N]
  • Warnings: [N]
  • 审计文章数量:[N]篇,涉及[N]种语言
  • 整体健康评分:[score] / 100
  • 关键问题:[N]个
  • 警告:[N]个

Translation coverage

翻译覆盖情况

[Matrix from Phase 2]
[第二阶段的矩阵内容]

Issues found

发现的问题

Critical

关键问题

  • [Issue with file references]
  • [带文件引用的问题描述]

Warnings

警告

  • [Issue with file references]
  • [带文件引用的问题描述]

Passed

通过检查项

  • [Checks that passed]
  • [已通过的检查项]

Prioritized fixes

优先级修复建议

  1. [Highest-impact action]
  2. [...]
  1. [影响最高的操作]
  2. [...]

Stale-translation alerts

过时翻译提醒

[Runnable commands from Phase 6]
[第六阶段的可运行命令]

Quick fixes

快速修复

  • Run
    /blog translate <file> --to <missing-langs>
    for [N] missing translations.
  • Run
    /blog multilingual
    to regenerate hreflang assets.
  • Run
    /blog localize <file> --locale <code>
    for weak cultural adaptations.
undefined
  • 针对[N]个缺失翻译版本,运行
    /blog translate <file> --to <missing-langs>
  • 运行
    /blog multilingual
    重新生成hreflang资源
  • 针对文化适配不足的内容,运行
    /blog localize <file> --locale <code>
undefined

Error Handling

错误处理

ScenarioAction
Empty directory"No blog posts found in [path]"
Only one language presentReport coverage, suggest target languages
No hreflang filesFlag as critical gap, offer regeneration
Unrecognized file formatSkip with a warning
场景操作
空目录提示:“在[路径]中未找到博客文章”
仅存在一种语言版本报告覆盖情况,建议目标语言
无hreflang文件标记为关键缺口,提供重新生成建议
无法识别的文件格式跳过并发出警告

Cross-References

交叉引用

  • Fill missing translations:
    /blog translate <file> --to <missing-codes>
  • Deepen weak adaptations:
    /blog localize <file> --locale <code>
  • Regenerate hreflang assets:
    /blog multilingual <topic> --languages <codes>
  • 补充缺失翻译:
    /blog translate <file> --to <missing-codes>
  • 优化弱适配内容:
    /blog localize <file> --locale <code>
  • 重新生成hreflang资源:
    /blog multilingual <topic> --languages <codes>