File: index.html

package info (click to toggle)
ruby-jekyll-polyglot 1.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,196 kB
  • sloc: xml: 1,500; ruby: 947; sh: 10; makefile: 4
file content (414 lines) | stat: -rw-r--r-- 17,082 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
<!DOCTYPE html>
<html lang="en-us">

  <head>
  
  <link href="http://gmpg.org/xfn/11" rel="profile">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="title" content="Home &middot; Polyglot">
  <meta name="description" content="A i18n support plugin for Jekyll that makes multi-language support fast and intuitive, for blogs big and small.">
  <meta name="keywords" content="multilingual, i18n, jekyll, polyglot, fast, intuitive, untra, github, pages, blog, plugin, ruby, gem, internationalization, localization, translation, language, support, multi-language, multi-lingual">
  <meta http-equiv="Content-Language" content="en">
<link rel="alternate" hreflang="en" href="https://polyglot.untra.io/"/>
<link rel="alternate" hreflang="es" href="https://polyglot.untra.io/es/"/>
<link rel="alternate" hreflang="de" href="https://polyglot.untra.io/de/"/>
<link rel="alternate" hreflang="fr" href="https://polyglot.untra.io/fr/"/>
<link rel="alternate" hreflang="ru" href="https://polyglot.untra.io/ru/"/>
<link rel="alternate" hreflang="nl" href="https://polyglot.untra.io/nl/"/>
<link rel="alternate" hreflang="he" href="https://polyglot.untra.io/he/"/>
<link rel="alternate" hreflang="ko" href="https://polyglot.untra.io/ko/"/>
<link rel="alternate" hreflang="zh-CN" href="https://polyglot.untra.io/zh-CN/"/>
<link rel="alternate" hreflang="pt-BR" href="https://polyglot.untra.io/pt-BR/"/>

  <title>
    
      Polyglot &middot; Straightforward I18n for Jekyll Blogs
    
  </title>

  <!-- CSS -->
  <link rel="stylesheet" href="/public/css/poole.css">
  <link rel="stylesheet" href="/public/css/syntax.css">
  <link rel="stylesheet" href="/public/css/hyde.css">
  <link rel="stylesheet" href="/public/css/custom.css">
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700|Abril+Fatface">

  <!-- Icons -->
  <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/public/apple-touch-icon-144-precomposed.png">
                                 <link rel="shortcut icon" href="/public/favicon.ico">

  <!-- RSS -->
  <link rel="alternate" type="application/rss+xml" title="RSS" href="/atom.xml">
</head>


  <body theme-base-08>

    
<div class="sidebar">
  <div class="container sidebar-sticky">
    <div class="sidebar-about">
      <p class="speech">Hello!</p>
    </br>
      <h1>
        <a href="">
          Polyglot
        </a>
      </h1>
      <p class="lead">A i18n support plugin for <a href="http://jekyllrb.com" target="_blank">Jekyll</a> that makes multi-language support fast and intuitive, for blogs big and small. Made by <a href="https://github.com/untra" target="_blank">@untra</a>.</p>
    </div>

    <nav class="sidebar-nav">
      <a class="sidebar-nav-item" href="/">Home</a>

      
      
      
        
        
          
          
        
      
        
        
          
            <a class="sidebar-nav-item" href="/about/">About</a>
          
          
        
      
        
        
          
            <a class="sidebar-nav-item" href="/a-really-long/permalink/">A really long permalink</a>
          
          
        
      
        
        
          
          
        
      
        
        
      
        
        
          
            <a class="sidebar-nav-item" href="/sample/">Sample rich text data</a>
          
          
        
      
        
        
          
            <a class="sidebar-nav-item" href="/seo/">SEO Recipes</a>
          
          
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
        
      
        
          
        
          
        
          
        
          
      <a class="sidebar-nav-item" href=""></a>

      <a class="sidebar-nav-item" href="https://rubygems.org/gems/jekyll-polyglot">Ruby Gem</a>
      <a class="sidebar-nav-item" href="https://github.com/untra/polyglot">GitHub project</a>
      <a class="sidebar-nav-item" href="https://github.com/untra/polyglot/tree/master/site/index.html"><small>view this page source on github</small></a>
      <small class="sidebar-nav-item">Currently v1.9.0</small>
    </nav>

    <p><small>&copy; 2025 Samuel Volin</small><br/><small>MIT Licensed</small></p>
<p>
  <!-- jekyll-polyglot will process ferh= into href= through the static_href liquid block tag without relativizing the url; useful for making language navigation switchers  -->
  
<a style="font-weight: bold;" href="/page4/" >en</a> •
<a  href="/es/page4/" >es</a> •
<a  href="/de/page4/" >de</a> •
<a  href="/fr/page4/" >fr</a> •
<a  href="/ru/page4/" >ru</a> •
<a  href="/nl/page4/" >nl</a> •
<a  href="/he/page4/" >he</a> •
<a  href="/ko/page4/" >ko</a> •
<a  href="/zh-CN/page4/" >zh-CN</a> •
<a  href="/pt-BR/page4/" >pt-BR</a>
</p>
  </div>
</div>


    <div class="content container">
      <div class="posts">
  
  <div class="post">
    <h1 class="post-title">
      <a href="/2016/12/16/Polyglot-1.2.4/">
        Polyglot 1.2.4
      </a>
    </h1>

    <span class="post-date">16 Dec 2016</span>

    <p>A new version of Polyglot has been released! Give it a try!</p>

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">gem install jekyll-polyglot</span></code></pre></figure>

<p>This release was made possible due to the kind support of github user <a href="https://github.com/vlsi">vlsi</a>, who helped fix a few bugs and added new features:</p>

<h3 id="support-translation-of-absolute-urls">Support translation of absolute URLs</h3>
<p>Polyglot will now translate your <code class="language-plaintext highlighter-rouge">site.url</code>, so absolute urls will now get translated as well.</p>

<h3 id="translation-of-all-jekyll-collections">Translation of all Jekyll Collections</h3>
<p><a href="https://jekyllrb.com/docs/collections/">Jekyll collections</a> are a fairly new feature. This update translates all registered collections, not just site posts and pages.</p>

<h3 id="use-language-specific-_data-for-sitedata-rich-text-when-sitedatalang-is-present">Use language-specific <code class="language-plaintext highlighter-rouge">_data</code> for <code class="language-plaintext highlighter-rouge">site.data</code> rich text when <code class="language-plaintext highlighter-rouge">site.data[:lang]</code> is present</h3>
<p>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:</p>

<figure class="highlight"><pre><code class="language-html" data-lang="html">{{ site.data[site.active_lang].richTextString }}</code></pre></figure>

<p>Now rich text can be rendered with just:</p>

<figure class="highlight"><pre><code class="language-html" data-lang="html">{{ site.data.richTextString }}</code></pre></figure>

<h3 id="the-i18n_headers-tag-now-defaults-to-siteurl-when-left-blank">The <code class="language-plaintext highlighter-rouge">I18n_Headers</code> tag now defaults to <code class="language-plaintext highlighter-rouge">site.url</code> when left blank</h3>
<p>Users can now use</p>

<figure class="highlight"><pre><code class="language-html" data-lang="html">{% I18n_Headers %}</code></pre></figure>

<p>without specifying a url, defaulting it to your <code class="language-plaintext highlighter-rouge">site.url</code></p>

  </div>
  
  <div class="post">
    <h1 class="post-title">
      <a href="/2016/04/20/Polyglot-1.2.0/">
        Polyglot 1.2.0
      </a>
    </h1>

    <span class="post-date">20 Apr 2016</span>

    <p>A new version of Polyglot has been released! Give it a try!</p>

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">gem install jekyll-polyglot</span></code></pre></figure>

<p>and list <code class="language-plaintext highlighter-rouge">jekyll-polyglot</code> among your listed gems in your <code class="language-plaintext highlighter-rouge">_config.yml</code></p>

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

<h2 id="-i18n_headers-">{% I18n_Headers %}</h2>

<p>Put this tag with the <a href="https://github.com/untra/polyglot/blob/site/_includes/head.html#L6">url of your website</a> in your <code class="language-plaintext highlighter-rouge">head.html</code> includes file to get the maximum SEO provided by having a multilingual website. It’s the same as the following liquid code:</p>

<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">"Content-Language"</span> <span class="na">content=</span><span class="s">"{{site.active_lang}}"</span><span class="nt">&gt;</span>
<span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span>
      <span class="na">hreflang=</span><span class="s">"{{site.default_lang}}"</span>
      <span class="na">href=</span><span class="s">"http://yoursite.com{{page.permalink}}"</span> <span class="nt">/&gt;</span>
{% for lang in site.languages %}
{% if lang == site.default_lang %}
  {% continue %}
{% endif %}
<span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"alternate"</span>
    <span class="na">hreflang=</span><span class="s">"{{lang}}"</span>
    <span class="na">href=</span><span class="s">"http://yoursite.com/{{lang}}{{page.permalink}}"</span> <span class="nt">/&gt;</span>
{% endfor %}</code></pre></figure>

<p>In your header, but faster and cleaner! For more information, see <a href="/seo">the SEO page</a></p>

  </div>
  
  <div class="post">
    <h1 class="post-title">
      <a href="/2015/11/14/polyglot-version-1-1/">
        Polyglot Version 1.1.0
      </a>
    </h1>

    <span class="post-date">14 Nov 2015</span>

    <p>Polyglot now fully supports <a href="https://jekyllrb.com/news/2015/10/26/jekyll-3-0-released/">Jekyll 3.0</a> blogs! Go <a href="https://github.com/untra/polyglot">give it a try!</a></p>

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="s">gem 'jekyll-polyglot', '~&gt; 1.1.0'</span></code></pre></figure>


  </div>
  
  <div class="post">
    <h1 class="post-title">
      <a href="/2015/09/19/presenting-polyglot/">
        Presenting Polyglot
      </a>
    </h1>

    <span class="post-date">19 Sep 2015</span>

    <p>After months of work and refinement, I am proud to present <strong>Polyglot</strong>: a i18n plugin for <a href="http://jekyllrb.com">Jekyll</a> sites that <em>need</em> to cater their content to multiple languages and audiences.</p>

<h3 id="features">Features</h3>

<p>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.</p>

<h2 id="relativized-links">Relativized Links</h2>

<p>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.</p>

<p>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.</p>

<h2 id="fallback-support">Fallback Support</h2>

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

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

<h2 id="rich-content-translation">Rich Content Translation</h2>

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

<p><em>Except when it’s this easy</em>. In your config.yml, just store your strings as:</p>

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">hello</span><span class="pi">:</span>
  <span class="na">en</span><span class="pi">:</span> <span class="s">Hello!</span>
  <span class="na">es</span><span class="pi">:</span> <span class="s">¡hola!</span>
  <span class="na">fr</span><span class="pi">:</span> <span class="s">Bonjour!</span>
  <span class="na">de</span><span class="pi">:</span> <span class="s">Guten Tag!</span></code></pre></figure>

<p>and in your liquid, just call:</p>

<figure class="highlight"><pre><code class="language-html" data-lang="html">{{ site.hello[site.active_lang]}}</code></pre></figure>

<p>produces:</p>
<p class="message">

</p>

<h2 id="fast-asynchronous-zero-overhead-builds">Fast, Asynchronous, Zero-Overhead Builds</h2>

<p>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 <em>simultaneously</em> 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.</p>

<h3 id="download">Download</h3>

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

<figure class="highlight"><pre><code class="language-bash" data-lang="bash">  gem <span class="nb">install</span> <span class="s1">'jekyll-polyglot'</span>
  </code></pre></figure>


  </div>
  
  <div class="post">
    <h1 class="post-title">
      <a href="/2013/12/28/introducing-hyde/">
        Introducing Hyde
      </a>
    </h1>

    <span class="post-date">28 Dec 2013</span>

    <p>Hyde is a brazen two-column <a href="http://jekyllrb.com">Jekyll</a> theme that pairs a prominent sidebar with uncomplicated content. It’s based on <a href="http://getpoole.com">Poole</a>, the Jekyll butler.</p>

<h3 id="built-on-poole">Built on Poole</h3>

<p>Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by <a href="https://twitter.com/mdo">@mdo</a>. Poole, and every theme built on it (like Hyde here) includes the following:</p>

<ul>
  <li>Complete Jekyll setup included (layouts, config, <a href="/404">404</a>, <a href="/atom.xml">RSS feed</a>, posts, and <a href="/about">example page</a>)</li>
  <li>Mobile friendly design and development</li>
  <li>Easily scalable text and component sizing with <code class="language-plaintext highlighter-rouge">rem</code> units in the CSS</li>
  <li>Support for a wide gamut of HTML elements</li>
  <li>Related posts (time-based, because Jekyll) below each post</li>
  <li>Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter)</li>
</ul>

<h3 id="hyde-features">Hyde features</h3>

<p>In addition to the features of Poole, Hyde adds the following:</p>

<ul>
  <li>Sidebar includes support for textual modules and a dynamically generated navigation with active link support</li>
  <li>Two orientations for content and sidebar, default (left sidebar) and <a href="https://github.com/poole/lanyon#reverse-layout">reverse</a> (right sidebar), available via <code class="language-plaintext highlighter-rouge">&lt;body&gt;</code> classes</li>
  <li><a href="https://github.com/poole/hyde#themes">Eight optional color schemes</a>, available via <code class="language-plaintext highlighter-rouge">&lt;body&gt;</code> classes</li>
</ul>

<p><a href="https://github.com/poole/hyde#readme">Head to the readme</a> to learn more.</p>

<h3 id="browser-support">Browser support</h3>

<p>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.</p>

<h3 id="download">Download</h3>

<p>Hyde is developed on and hosted with GitHub. Head to the <a href="https://github.com/poole/hyde">GitHub repository</a> for downloads, bug reports, and features requests.</p>

<p>Thanks!</p>

  </div>
  
</div>

<div class="pagination">
  
    <a class="pagination-item older" href="/page5">Older</a>
  
  
    
      <a class="pagination-item newer" href="/page3">Newer</a>
    
  
</div>

    </div>

  </body>
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-HWC3D32MT8"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
  
    gtag('config', 'G-HWC3D32MT8');
  </script>
</html>