21 Aug 2026
Jekyll-Polyglot 1.14.0 已发布!此版本扩展了区域语言支持,修复了重定向的边缘情况,并新增了一个与不支持并行的 Jekyll 插件兼容的选项。
支持 zh-TW 和 pt-PT
- PR #316:Polyglot 网站现在支持繁体中文(
zh-TW)和欧洲葡萄牙语(pt-PT)作为站点语言。Polyglot 文档站点现在为这两种语言提供翻译页面,与现有的 zh-CN 和 pt-BR 翻译并列。与往常一样,这些翻译是在 AI 的帮助下完成的,欢迎提出更正和改进!
redirect_from 重复前缀修复
- PR #317:修复了 Polyglot 与 jekyll-redirect-from 插件配合处理
redirect_from frontmatter 的方式。用户定义的重定向现在会被保留而不是被覆盖,并正确限定到对应语言,已带有语言前缀的重定向不会再被重复添加前缀——例如 /fr/old-page 这样的重定向不会变成 /fr/fr/old-page。
为不支持并行的插件提供 serial_default_lang
- PR #310:@rathboma 贡献了新的
serial_default_lang 选项。当启用 parallel_localization 时,Polyglot 会为每种语言 fork 一个进程,这可能与 jekyll-assets 等在首次使用时初始化共享缓存的插件产生竞争条件。设置 serial_default_lang: true 后,Polyglot 会先在父进程中构建默认语言,然后再 fork 其余语言进程,这样此类插件只会初始化一次,各语言进程则继承已准备好的状态。如果 Polyglot 的并行构建曾与其他 Jekyll 插件发生冲突,这个选项可以帮助避免冲突。
ruby 依赖更新
此版本还保持了 ruby 依赖的最新状态。
13 May 2026
Jekyll-Polyglot 1.13.0 已发布!本次发布得益于 @rathboma 和 Beekeeper Studio 的支持与诸多贡献。
更好的 hreflang 生成
- PR #282:@rathboma 合并了对 hreflang 标签生成的改进,为未配置的语言添加了回退选项。这提升了多语言站点上生成的头部的 SEO 与正确性。
对不匹配语言代码的警告
本地化 Netlify _redirects
- PR #285:@rathboma 添加了新的
localize_redirects 选项。启用后,Polyglot 会自动为 Netlify 的 _redirects 规则生成带语言前缀的副本,因此像 /github 这样的重定向也可用于 /fr/github、/de/github 等等。设置细节请参见 SEO 配方页面。
用于翻译状态的新 liquid 变量
- PR #305:两个新的 liquid 变量 ——
page.missing_languages 和 page.available_languages —— 让你的模板可以看到某个页面已被翻译为哪些语言,以及哪些语言尚未翻译。可用于构建更丰富的语言切换器和侧边栏。
新语言翻译
AI 开发工具支持
- PR #298:Polyglot 现在为 GitHub Copilot、Claude Code 以及共享的
AGENTS.md 约定提供了一流的工程支持。AI 现在已是工作流的一部分,欢迎使用这些工具完成的贡献。
- 还增加了其他 CI 质量检查,包括 htmlproofer 与 rubocop 调整。
侧边栏显示缺失的翻译
文档站点的侧边栏现在会标记尚未翻译为当前活动语言的页面,让读者和贡献者更容易发现翻译缺口。
感谢 @rathboma 以及为本次发布做出贡献的每一位!
31 Jan 2026
Jekyll-Polyglot 1.12.0 已发布!此版本专注于改进重定向处理,并包含多项社区贡献。
重定向改进
此版本包含了 Polyglot 重定向工作方式的重要改进:
-
PR #275:重定向中的锚点标签保留 - 感谢 @GruberMarkus 的解决方案,重定向 URL 现在可以正确保留锚点标签,确保用户准确到达他们想要的位置。
-
PR #293:jekyll-redirect-from 插件的子语言重定向支持 - 由 @rathboma 建议,Polyglot 现在可以正确地在子语言之间限定 redirect_from frontmatter 的范围,防止重复重定向并确保非默认语言页面的正确路由。
- PR #283:新的
page.rendered_lang 变量 - 由 @rathboma 贡献,这个新的 liquid 变量可以让您检测页面何时作为回退呈现。当 page.rendered_lang != site.active_lang 时,您知道页面内容尚未翻译。
/about 页面已更新,提供了如何最好地使用这个 page.rendered_lang 便利 liquid 变量的说明。
新语言支持
- PR #280:意大利语和土耳其语支持已添加到 Polyglot 文档站点,扩展了我们的多语言覆盖范围。
社区贡献
多位社区成员为项目贡献了改进:
特别感谢 @PanderMusubi 提供的 jekyll-minimal-mistakes-polyglot 演示,展示了如何将 Polyglot 与流行的 Minimal Mistakes 主题集成。
感谢所有使此版本成为可能的贡献者!
20 Sep 2025
Jekyll Polyglot 1.11.0 已发布。它包含了对最近才得以解决的棘手错误的修复。这个版本得益于像您这样的贡献者和用户。
修复了与 jekyll 主题的冲突
其他 jekyll 主题如 minimal-mistakes 或 chirpy 在 exclude: 配置中使用 glob 模式,这些模式之前会与使用 URL 相对化的网站的 polyglot 处理产生冲突。@mattions 贡献了一个修复,在将这些值应用到相对化正则表达式之前使用 regex.escape 处理它们。
这个调整应该有助于与其他常见 jekyll 主题开箱即用地使用 polyglot。
其他杂项修复
支持日语和阿拉伯语
polyglot 网站现在有 阿拉伯语 和 日语 的翻译支持版本。这些网站翻译是在 AI 的帮助下完成的;如果有任何翻译错误,请贡献更好的修正!
07 Jul 2025
Jekyll-Polyglot 1.10 现已发布。本次发布对 liquid 插件 i18n_headers 进行了大量优化和改动以提升 SEO 效果,并对并行构建的幂等性做了些许调整。社区贡献者和 Vibe Coding 在本次发布的诸多功能、测试,以及博客撰写中发挥了重要作用。
现版本的 polyglot 需要更新 ruby 至 3.1 及以上版本,可能会破坏您现有的构建系统。
i18n_headers 插件现已具备更多功能:
- 其会为每种语言的页面添加
<link rel="canonical" ...>,以确保各站点的索引唯一。
- 其会添加
<link rel="alternate" hreflang="x-default" ...>。当浏览器未请求匹配语言时,该标签会指向默认站点语言版本。
- 对于具有自定义永久链接的集合中的页面和文章,该插件会正确地生成
<link rel="alternate" hreflang="...">。
- 如果
site.baseUrl 具有定义值,默认 URL 也会包含该变量。
此外还修复了一个会导致绝对 URL 相对化时意外破坏这些标签的 bug。
vibe-coded 贡献
在本次更新发现、衡量,以及验证 bug 修复和新功能的过程中,使用了某些 vibe coding 工具。vibe coding 是一种全新的软件开发方式,有它的助力,我们创建了可以在多个已构建的多语言站点中针对 jekyll 插件代码进行的高级 ruby 测试。
通过 vibe coding 的方式编写的测试还保持了高测试覆盖率。自动化测试有了保障,我们由此得以自信地添加复杂的新功能和特性。
此外,vibe coding 工具还帮助将这篇博客文章翻译成了多种语言。
社区贡献
一直以来,Jekyll-Polyglot 得到了社区里的人类用户的大力支持。本项目的人类语言文档均由那些希望能看到本插件以自己母语获得文档记录的人类用户贡献。是人类用户们贡献了 bug 修复和文档,本插件因而得以在每次新版本发布时都获得数千次下载。而 AI 辅助编程——无论是经由在下之手还是诸君之手——都将以我们书写和交流的各种语言,塑造我们所使用的这款软件。
ruby 版本更新需求
jekyll-polyglot 构建时依赖的持续安全更新需要将 ruby 升级到 3.1 及以上主版本。这一更新可能会影响使用了 jekyll-polyglot 构建文档的构建系统。不过,现在也是升级到最新 ruby 主版本的绝好时机。如果这些更改导致了 Jekyll 构建出现问题,请及时反馈。