Polyglot 1.12 - 重定向改进和社区贡献

Jekyll-Polyglot 1.12.0 已发布!此版本专注于改进重定向处理,并包含多项社区贡献。

重定向改进

此版本包含了 Polyglot 重定向工作方式的重要改进:

  • PR #275:重定向中的锚点标签保留 - 感谢 @GruberMarkus 的解决方案,重定向 URL 现在可以正确保留锚点标签,确保用户准确到达他们想要的位置。

  • PR #293:jekyll-redirect-from 插件的子语言重定向支持 - 由 @rathboma 建议,Polyglot 现在可以正确地在子语言之间限定 redirect_from frontmatter 的范围,防止重复重定向并确保非默认语言页面的正确路由。

使用 page.rendered_lang 检测回退页面

  • PR #283:新的 page.rendered_lang 变量 - 由 @rathboma 贡献,这个新的 liquid 变量可以让您检测页面何时作为回退呈现。当 page.rendered_lang != site.active_lang 时,您知道页面内容尚未翻译。

/about 页面已更新,提供了如何最好地使用这个 page.rendered_lang 便利 liquid 变量的说明。

新语言支持

  • PR #280:意大利语和土耳其语支持已添加到 Polyglot 文档站点,扩展了我们的多语言覆盖范围。

社区贡献

多位社区成员为项目贡献了改进:

  • PR #277:更新了侧边栏富文本定义,改善了站点的多语言展示。

  • PR #288@manabu-nakamura 贡献了日语富文本字符串,增强了日语体验。

特别感谢 @PanderMusubi 提供的 jekyll-minimal-mistakes-polyglot 演示,展示了如何将 Polyglot 与流行的 Minimal Mistakes 主题集成。

感谢所有使此版本成为可能的贡献者!

Polyglot 1.11 - 杂项修复版本

Jekyll Polyglot 1.11.0 已发布。它包含了对最近才得以解决的棘手错误的修复。这个版本得益于像您这样的贡献者和用户。

修复了与 jekyll 主题的冲突

其他 jekyll 主题如 minimal-mistakeschirpyexclude: 配置中使用 glob 模式,这些模式之前会与使用 URL 相对化的网站的 polyglot 处理产生冲突。@mattions 贡献了一个修复,在将这些值应用到相对化正则表达式之前使用 regex.escape 处理它们。

这个调整应该有助于与其他常见 jekyll 主题开箱即用地使用 polyglot。

其他杂项修复

支持日语和阿拉伯语

polyglot 网站现在有 阿拉伯语日语 的翻译支持版本。这些网站翻译是在 AI 的帮助下完成的;如果有任何翻译错误,请贡献更好的修正!

Polyglot 1.10 - i18n_headers 优化

Jekyll-Polyglot 1.10 现已发布。本次发布对 liquid 插件 i18n_headers 进行了大量优化和改动以提升 SEO 效果,并对并行构建的幂等性做了些许调整。社区贡献者和 Vibe Coding 在本次发布的诸多功能、测试,以及博客撰写中发挥了重要作用。

现版本的 polyglot 需要更新 ruby 至 3.1 及以上版本,可能会破坏您现有的构建系统。

i18n_headers 改进

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 构建出现问题,请及时反馈。

Polyglot 1.9.0 - 教程优化

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 配置中。

Polyglot 1.8.1 - 社区 Bug 修复发布

Jekyll-Polyglot 1.8.1 版本已经发布,其中包含了一些功能改进,并修复了社区发现的 Bug。

社区提供的 Bug 修复

hacketiwack 提供了用于更严格检查设置文档永久链接的代码,防止因空的前置字段导致的下游问题。

Github 用户 blackpill 提交了针对 i18n headers 标签的单字符错误修复,用于渲染默认语言链接的替代链接(href)。