Polyglot 1.2.4

A new version of Polyglot has been released! Give it a try!

gem install jekyll-polyglot

This release was made possible due to the kind support of github user vlsi, who helped fix a few bugs and added new features:

Support translation of absolute URLs

Polyglot will now translate your site.url, so absolute urls will now get translated as well.

Translation of all Jekyll Collections

Jekyll collections are a fairly new feature. This update translates all registered collections, not just site posts and pages.

Use language-specific _data for site.data rich text when site.data[:lang] is present

Top level rich text organized by language will be assigned to the site.data when building. Before, when rendering rich text, you would have to use:

{{ site.data[site.active_lang].richTextString }}

Now rich text can be rendered with just:

{{ site.data.richTextString }}

The I18n_Headers tag now defaults to site.url when left blank

Users can now use

{% I18n_Headers %}

without specifying a url, defaulting it to your site.url

Polyglot 1.2.0

A new version of Polyglot has been released! Give it a try!

gem install jekyll-polyglot

and list jekyll-polyglot among your listed gems in your _config.yml

It involves mostly groundwork to prepare for new features and better multilingual content management. It does have a new feature:

{% I18n_Headers %}

Put this tag with the url of your website in your head.html includes file to get the maximum SEO provided by having a multilingual website. It’s the same as the following liquid code:

<meta http-equiv="Content-Language" content="{{site.active_lang}}">
<link rel="alternate"
      href="http://yoursite.com{{page.permalink}}" />
{% for lang in site.languages %}
{% if lang == site.default_lang %}
  {% continue %}
{% endif %}
<link rel="alternate"
    href="http://yoursite.com/{{lang}}{{page.permalink}}" />
{% endfor %}

In your header, but faster and cleaner! For more information, see the SEO page

Polyglot Version 1.1.0

Polyglot now fully supports Jekyll 3.0 blogs! Go give it a try!

gem 'jekyll-polyglot', '~> 1.1.0'

Presenting Polyglot

After months of work and refinement, I am proud to present Polyglot: a i18n plugin for Jekyll sites that need to cater their content to multiple languages and audiences.


While there are other multi-language plugins for Jekyll, Polyglot is special. Polyglot takes care of the typical cruftwork normally left to developers to manage (such as wrangling urls and ensuring consistent sitemaps) while providing efficient and simple tools Jekyll developers can utilize into SEO and fast-tracked content aggregation.

In the past, a multi-language static site or blog had to keep delicate track of what language each relative link the site was serving. It was all too easy for a developer to stumble, and foreign language visitors would quickly get lost in untranslated content.

Polyglot automatically relativizes the urls for each language you want your site to build for. This allows website visitors to stay isolated on one language while browsing your website.

Fallback Support

When you don’t have translated or multilingual content, Jekyll will still build with the content you do have. When you do have translated or multilingual content, Jekyll will build using that content. Simple as that.

Sitemaps stay consistent across all languages, and translated stays in the site it was built for.

Rich Content Translation

Rich language content is normally hard to implement. Short strings or language dependent banners are typically hard for a Jekyll website to keep consistent.

Except when it’s this easy. In your config.yml, just store your strings as:

  en: Hello!
  es: ¡hola!
  fr: Bonjour!
  de: Guten Tag!

and in your liquid, just call:

{{ site.hello[site.active_lang]}}



Fast, Asynchronous, Zero-Overhead Builds

Polyglot will build your multi-language website just as fast as it will build your default language website. Polyglot runs with a minimal overhead by simultaneously building all languages of your website as separate process. This means your website build time won’t be a function of how many languages you need to support.


Polyglot is available as a gem, or as a Jekyll plugin. It can be installed with:

  gem install 'jekyll-polyglot'

Introducing Hyde

Hyde is a brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. It’s based on Poole, the Jekyll butler.

Built on Poole

Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by @mdo. Poole, and every theme built on it (like Hyde here) includes the following:

  • Complete Jekyll setup included (layouts, config, 404, RSS feed, posts, and example page)
  • Mobile friendly design and development
  • Easily scalable text and component sizing with rem units in the CSS
  • Support for a wide gamut of HTML elements
  • Related posts (time-based, because Jekyll) below each post
  • Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter)

Hyde features

In addition to the features of Poole, Hyde adds the following:

  • Sidebar includes support for textual modules and a dynamically generated navigation with active link support
  • Two orientations for content and sidebar, default (left sidebar) and reverse (right sidebar), available via <body> classes
  • Eight optional color schemes, available via <body> classes

Head to the readme to learn more.

Browser support

Hyde is by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above.


Hyde is developed on and hosted with GitHub. Head to the GitHub repository for downloads, bug reports, and features requests.