Polyglot 1.14 - More languages, redirect fixes, community updates

Jekyll-Polyglot 1.14.0 has been released! This version extends regional language support, fixes redirect edge cases, and adds a new option for compatibility with parallel-unsafe Jekyll plugins.

support for zh-TW and pt-PT

  • PR #316: Polyglot website now supports Traditional Chinese (zh-TW) and European Portuguese (pt-PT) as site languages. The Polyglot documentation site now serves translated pages for both, alongside the existing zh-CN and pt-BR translations. As always, these translations were made with the help of AI, corrections and improvements are welcome!

redirect_from duplicate prefix fixes

  • PR #317: Fixes for how Polyglot handles redirect_from frontmatter with the jekyll-redirect-from plugin. User-defined redirects are now preserved instead of overwritten, correctly scoped language, and already language-prefixed redirects are no longer double-prefixed, so a redirect like /fr/old-page will not become /fr/fr/old-page.

serial_default_lang for parallel-unsafe plugins

  • PR #310: @rathboma contributed a new serial_default_lang option. When parallel_localization is enabled, Polyglot forks one process per language, which can race against plugins like jekyll-assets that initialize shared caches on first use. Setting serial_default_lang: true makes Polyglot build the default language first in the parent process before forking the rest, so such plugins initialize exactly once and the language forks inherit the warmed state. If Polyglot’s parallel builds have ever collided with another Jekyll plugin, this option can help ensure they run solo.

ruby dependency updates

This release also keeps the ruby dependencies updated.

Polyglot 1.13 - new liquid vars, SEO and redirect improvements

Jekyll-Polyglot 1.13.0 has been released! This release is made possible thanks to support and many contributions from @rathboma and Beekeeper Studio.

better hreflang generation

  • PR #282: @rathboma merged improvements to hreflang tag generation, adding a fallback option for unconfigured languages. This improves SEO and correctness of the generated headers on multilingual sites.

warnings on mismatched language codes

  • PR #287: @rathboma added build-time warnings when a post’s lang: value does not match any configured site language. Language matching is now case-insensitive, so EN and en are treated the same.

  • PR #290: @rathboma filtering now properly excludes posts written in languages that are not in the languages: config, preventing unconfigured content from leaking into builds.

localize Netlify _redirects

  • PR #285: @rathboma added a new localize_redirects option. When enabled, Polyglot automatically generates language-prefixed copies of the Netlify _redirects rules, so a redirect like /github also works for /fr/github, /de/github, and so on. See the SEO recipes page for setup details.

new liquid variables for translation status

  • PR #305: Two new liquid variables — page.missing_languages and page.available_languages — let your templates see which languages a page has been translated into, and which are still missing. Useful for building richer language switchers and sidebars.

new language translations

  • PR #303: The Polyglot documentation site now has Ukrainian (uk) and Hindi (hi) translations, with help from AI-assisted translation. Corrections are welcome!
  • PR #297: @manabu-nakamura contributed corrections to the Japanese (ja) site translations. Thank you!

AI development tooling support

  • PR #298: Polyglot now ships with first-class engineering support for GitHub Copilot, Claude Code, and the shared AGENTS.md convention. AI is part of the workflow now, and contributions made with these tools are welcome.
  • Additional CI quality checks were added, including htmlproofer and rubocop adjustments.

The documentation site sidebar now flags pages that do not yet have a translation in the active language, making gaps easier to spot for readers and contributors.

Thank you to @rathboma and everyone who contributed to this release!

Polyglot 1.12 - redirect improvements and community contributions

Jekyll-Polyglot 1.12.0 has been released! This release focuses on improving redirect handling and includes several community contributions.

redirect improvements

This release includes important improvements to how redirects work with Polyglot:

  • PR #275: Anchor tag preservation in redirects - thanks to a solution from @GruberMarkus, redirect URLs now properly preserve anchor tags, ensuring users land exactly where they intended.

  • PR #293: Sublanguage redirect support for the jekyll-redirect-from plugin - suggested by @rathboma, Polyglot now correctly scopes redirect_from frontmatter across sublanguages, preventing duplicate redirects and ensuring proper routing for non-default language pages.

detect fallback pages with page.rendered_lang

  • PR #283: New page.rendered_lang variable - contributed by @rathboma, this new liquid variable lets you detect when a page is being rendered as a fallback. When page.rendered_lang != site.active_lang, you know the page content hasn’t been translated yet.

The /about page has been updated with instructions on how to best use this page.rendered_lang convenience liquid variable.

new language support

  • PR #280: Italian and Turkish language support has been added to the Polyglot documentation site, expanding our multilingual reach.

community contributions

Several community members contributed improvements to the project:

  • PR #277: Updated sidebar rich text definitions, improving the site’s multilingual presentation.

  • PR #288: Japanese rich text strings contributed by @manabu-nakamura, enhancing the Japanese language experience.

A special thanks to @PanderMusubi for the jekyll-minimal-mistakes-polyglot demo, showing how to integrate Polyglot with the popular Minimal Mistakes theme.

Thank you to all contributors who made this release possible!

Polyglot 1.11 - miscellaneous fixes release

Jekyll Polyglot 1.11.0 has been released. It has fixes for tricky bugs that have been challenging to solve until recently. This release is possible thanks to fellow contributors and users like you.

fixed conflicts with jekyll themes

Other jekyll themes such as miminal-mistakes or chirpy use glob patterns in exclude: configurations which would previously conflict with polyglot processing websites with url relativization. @mattions contributed a fix to regex.escape these values before being applied to the relativization regexes.

This adjustment should help with using polyglot out-of-the-box with other common jekyll themes.

other miscellaneous fixes

support for japanese and arabic

The polyglot website now has translated support versions in arabic and japanese. These site translations were made with the help of AI ; if anything is mistranslated please contribute better corrections!

Polyglot 1.10 - i18n_headers improvements

Jekyll-Polyglot 1.10 is now available. It has vast improvements and changes to the i18n_headers liquid plugin for SEO improvements, and minor adjustments for parallel build idempotency. Community Contributions and Vibe Coding helped with a large portion of these release features, testing and blog post.

This version of polyglot now requires ruby >= 3.1 , which may break in build systems.

i18n_headers improvements

the i18n_headers plugin now has extended capabilities as part of this release:

  • it will add <link rel="canonical" ...> for each page language, so indexing is unique across sites.
  • it will add <link rel="alternate" hreflang="x-default" ...> to point to default language version of a site, when no matching language is requested by the browser.
  • it will correctly define <link rel="alternate" hreflang="..." > for pages and posts in collections with custom permalinks.
  • the default url will now include the site.baseUrl if defined

this additionally fixes a bug noticed that caused absolute url relativization to mangle these tags unintentionally.

vibe-coded contributions

Using certain vibe coding tools have helped find, measure and verify bug fixes and features for this release. This is a new approach for software development, and it created advanced ruby tests against jekyll plugin code running against many built site languages.

The tests written with vibe coding helped ensure the code coverage remained high, and complex features could be added with confidence. Ensuring the test automation was in place ensured tricky features could be built correctly.

Additionally vibe coding tools helped translate this blog post into many languages.

community contributions

Jekyll-Polyglot has been supported by humans. Human language documentation is contributed by humans who want to see this plugin documented in their native tongue. Humans contributing bug fixes and documentation are what have helped this plugin reach thousands of downloads a release. AI assisted programming, in my hands or yours, will shape the software we use, and in the many languages we write and speak.

ruby >= 3.1 required

Ongoing security updates to jekyll-polyglot build-time dependencies required a major version upgrade to ruby 3.1 . This may affect build systems that build their docs with jekyll-polyglot. But now is a good time to upgrade to the latest ruby major by now. Speak up if these changes cause complications with jekyll builds.