You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hugo仓库i18n键管理:求荐识别清理未使用/重复键的工具

Hugo i18n未使用/重复键清理方案

一、自动识别工具与扩展方案

  • Hugo内置检查:执行hugo --printI18NWarnings命令,构建时会输出未被模板调用的i18n键,但默认只覆盖layouts目录,需要配合自定义脚本补充content和data文件的扫描。
  • 扩展现有JS脚本:针对不同目录的文件格式调整正则,覆盖所有i18n引用场景:
    • content目录(Markdown/HTML):匹配短代码格式的引用,比如{{< t "keyID" >}}或{{% t "keyID" %}},正则可写为{{<\s*t\s*['"]([^'"]+)['"]\s*>}}和{{%\s*t\s*['"]([^'"]+)['"]\s*%}},兼容带参数的写法(如{{< t "keyID" "param" >}})。
    • data目录(YAML/TOML/JSON):匹配模板语法的引用,比如YAML中的label: "{{ T "keyID" }}",正则用{{\s*T\s*['"]([^'"]+)['"]\s*}},同时兼容单引号和双引号的字符串写法。
  • 第三方工具辅助:使用i18n-unused工具,配置扫描路径包含content、layouts、data三个目录,它能自动识别多类型文件中的i18n引用,生成未使用键的清单,部分版本支持自动清理(操作前务必备份i18n文件)。

二、重复键处理方法

  1. 提取所有i18n文件中的键:用脚本遍历i18n目录下的YAML/TOML/JSON文件,将键和对应翻译内容整理为键值对字典。
  2. 统计重复键:对比字典中的键,标记出现多次的条目,结合Hugo的i18n优先级规则(语言专属目录下的文件优先级高于根目录),保留有效翻译,删除冗余重复的键。
  3. 合并相同翻译的键:如果多个键对应完全相同的翻译,可以考虑合并为一个键,同时替换所有引用位置的旧键。

三、实操流程建议

  • 第一步:备份所有i18n文件,防止误操作丢失数据。
  • 第二步:用扩展后的脚本扫描三个目录,收集所有已使用的i18n键,存入一个集合。
  • 第三步:遍历i18n文件,逐一对比集合,移除不在集合内的未使用键。
  • 第四步:运行hugo build测试,检查是否有缺失i18n键的报错,确保网站功能正常。
  • 第五步:处理重复键,完成后再次测试验证翻译显示无误。

内容的提问来源于stack exchange,提问作者Monish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:51:07