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 构建出现问题,请及时反馈。
18 Jan 2025
Jekyll-Polyglot 1.9.0 现已发布。更新内容包括少许依赖项更新,以及助您充分利用多语言网站特性的优化版教程。
社区提供的教程改进
感谢 aturret 帮助维护现有的简体中文 (zh-CN) 网站页面。谢谢!
george-gca 优化了可选的 derive_lang_from_path
配置。其可以更好地从路径推断中识别文档语言。他实用的功能优化 PR 中还包括了测试。此项改进有助于推断缺少 lang
前页内容字段的帖子和页面的语言,这些语言来自文档文件路径的任何部分。
Github 用户 yunseo-kim 提交了一份优化网站地图生成的教程。为适配 SEO 有关规范,一个网站应该只有一个根目录下的 sitemap.xml
,其他语言的子站点内不应包含该文件的副本。请务必将 sitemap.xml
添加到 exclude_from_localization
配置中。
18 Aug 2024
Jekyll-Polyglot 1.8.1 版本已经发布,其中包含了一些功能改进,并修复了社区发现的 Bug。
社区提供的 Bug 修复
hacketiwack 提供了用于更严格检查设置文档永久链接的代码,防止因空的前置字段导致的下游问题。
Github 用户 blackpill 提交了针对 i18n headers 标签的单字符错误修复,用于渲染默认语言链接的替代链接(href)。
17 Mar 2024
非常兴奋地宣布 Jekyll-Polyglot 1.8.0 版本发布了,这个版本增加了一些功能改进,并认可了来自社区的文档和贡献!
不同语言的专属永久链接
Polyglot 1.8.0 版本增加了一些新功能,可以为页面设置特定于语言的永久链接,并保留它们与其他相关页面的关联。这个新功能由一位绅士和学者—— antoniovazquezblanco 提供。
网站地图生成和 i18n SEO
这个版本还认可了 jerturowetz 提供的高质量 sitemap.xml 和 robots.txt 解决方案。本网站现在通过这些文件更好地展示和捕获了搜索引擎提供的 SEO 力量。可以在这里查看示例网站的文件。
jekyll :polyglot :post_write 钩子
GitHub 用户 obfusk 在几年前贡献了一个微小的 PR:
通过多语言 :site, :post_write
钩子,像这样为每个子进程运行:
Jekyll::Hooks.register :site, :post_write do |site|
...
end
这个版本增加了一个自定义 :post_write
钩子,它在所有语言处理完成后运行一次(无论是否使用 parallel_localization
):
Jekyll::Hooks.register :polyglot, :post_write do |site|
# do something amazing here!
end
这一特性对于使用了 Jekyll hook 插件的复杂的 Jekyll 静态站点非常有用。
她还为语言子进程崩溃时的额外日志记录提供了修复。感谢这个贡献!
本地化变量和葡萄牙语翻译
george-gca 是一个才华横溢的、很棒的家伙,他为如何最好地从站点数据本地化富文本贡献了一整篇博客文章。他还提供了本站的葡萄牙语翻译。