├── Gemfile
├── example
├── .bundle
│ └── config
├── .gitignore
├── Gemfile
├── _i18n
│ ├── en
│ │ ├── about.md
│ │ └── lorem.txt
│ └── de
│ │ ├── about.md
│ │ └── lorem.txt
├── _layouts
│ ├── bare.html
│ ├── page.html
│ ├── post.html
│ └── skeleton.html
├── about.md
├── 404.html
├── _includes
│ ├── site-footer.html
│ └── site-header.html
├── _config.yml
├── index.html
├── root-index.html
├── js
│ └── language-redirect.js
├── _plugins
│ └── lang.rb
├── _posts
│ ├── 2015-06-22-willkommen-bei-jekyll.md
│ └── 2015-06-22-welcome-to-jekyll.md
└── _data
│ └── lang
│ ├── de.yml
│ └── en.yml
├── images
└── jekyll-i18n-logo.png
├── lib
├── jekyll
│ ├── patches.rb
│ ├── patches
│ │ └── jekyll
│ │ │ ├── site.rb
│ │ │ └── renderer.rb
│ ├── language-plugin
│ │ ├── version.rb
│ │ ├── plugin_error.rb
│ │ ├── filters.rb
│ │ ├── loaders.rb
│ │ ├── tags.rb
│ │ ├── tags
│ │ │ ├── language_name.rb
│ │ │ ├── language_include.rb
│ │ │ ├── language_name_native.rb
│ │ │ └── language.rb
│ │ ├── filters
│ │ │ └── language_date.rb
│ │ ├── loaders
│ │ │ ├── builtin_data_loader.rb
│ │ │ ├── jekyll_data_loader.rb
│ │ │ └── base_loader.rb
│ │ ├── language_data.rb
│ │ ├── date_localizer.rb
│ │ └── liquid_context.rb
│ ├── drops
│ │ └── language_url_drop.rb
│ ├── language_properties.rb
│ ├── language_document.rb
│ ├── language-plugin.rb
│ ├── language_reader.rb
│ ├── readers
│ │ ├── language_post_reader.rb
│ │ ├── language_page_reader.rb
│ │ └── language_collection_reader.rb
│ └── language_page.rb
└── jekyll-language-plugin.rb
├── LICENSE.md
├── jekyll-language-plugin.gemspec
├── README.md
└── data
└── lang
├── zh.yml
├── ko.yml
├── ja.yml
├── am.yml
├── ti.yml
├── mn.yml
├── he.yml
├── ur.yml
├── pa.yml
├── ca.yml
├── eo.yml
├── et.yml
├── ms.yml
├── hu.yml
├── id.yml
├── uz.yml
├── hi.yml
├── gl.yml
├── th.yml
├── en.yml
├── oc.yml
├── fi.yml
├── ne.yml
├── az.yml
├── lv.yml
├── tl.yml
├── or.yml
├── mt.yml
├── pt.yml
├── gu.yml
├── wo.yml
├── es.yml
├── fa.yml
├── lo.yml
├── cy.yml
├── mr.yml
└── af.yml
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 | gemspec
3 |
--------------------------------------------------------------------------------
/example/.bundle/config:
--------------------------------------------------------------------------------
1 | ---
2 | BUNDLE_PATH: .vendor
3 | BUNDLE_DISABLE_SHARED_GEMS: '1'
4 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | *.old
3 | _site
4 | .sass-cache
5 | .vendor
6 | .jekyll-metadata
7 | Gemfile.lock
8 |
9 |
--------------------------------------------------------------------------------
/images/jekyll-i18n-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vwochnik/jekyll-language-plugin/HEAD/images/jekyll-i18n-logo.png
--------------------------------------------------------------------------------
/example/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | gem 'jekyll', '3.7.3'
3 | gem 'jekyll-sitemap'
4 | gem 'jekyll-language-plugin', '1.3.5'
5 |
--------------------------------------------------------------------------------
/example/_i18n/en/about.md:
--------------------------------------------------------------------------------
1 | We are a fictitious company who is developing modern state-of-the-art web sites using the most cutting-edge technology including Jekyll.
2 |
--------------------------------------------------------------------------------
/lib/jekyll/patches.rb:
--------------------------------------------------------------------------------
1 | # Frozen-string-literal: true
2 | # Encoding: utf-8
3 |
4 | require_relative 'patches/jekyll/site'
5 | require_relative 'patches/jekyll/renderer'
6 |
--------------------------------------------------------------------------------
/example/_layouts/bare.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: skeleton
3 | ---
4 |
{% t 'slogan' %}
12 | -------------------------------------------------------------------------------- /lib/jekyll/language-plugin/plugin_error.rb: -------------------------------------------------------------------------------- 1 | # Frozen-string-literal: true 2 | # Encoding: utf-8 3 | 4 | module Jekyll 5 | module LanguagePlugin 6 | class PluginError < RuntimeError 7 | end 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /lib/jekyll/language-plugin/filters.rb: -------------------------------------------------------------------------------- 1 | # Frozen-string-literal: true 2 | # Encoding: utf-8 3 | 4 | module Jekyll 5 | module LanguagePlugin 6 | module Filters 7 | require_relative 'filters/language_date' 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /lib/jekyll/drops/language_url_drop.rb: -------------------------------------------------------------------------------- 1 | module Jekyll 2 | module Drops 3 | class LanguageUrlDrop < UrlDrop 4 | def language 5 | @obj.language 6 | end 7 | 8 | def subset 9 | @obj.subset 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /example/_includes/site-footer.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /example/_config.yml: -------------------------------------------------------------------------------- 1 | # Site meta data 2 | email: example@example.org 3 | url: "http://example.org" 4 | 5 | # not used by plugin but by liquid template 6 | languages: ['en', 'de'] 7 | 8 | # Build settings 9 | markdown: kramdown 10 | 11 | gems: 12 | - jekyll-sitemap 13 | - jekyll-language-plugin 14 | 15 | language_data: data.lang.%% 16 | language_includes_dir: _i18n 17 | -------------------------------------------------------------------------------- /lib/jekyll/language-plugin/loaders.rb: -------------------------------------------------------------------------------- 1 | # Frozen-string-literal: true 2 | # Encoding: utf-8 3 | 4 | module Jekyll 5 | module LanguagePlugin 6 | module Loaders 7 | require_relative 'loaders/base_loader.rb' 8 | require_relative 'loaders/jekyll_data_loader.rb' 9 | require_relative 'loaders/builtin_data_loader.rb' 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /lib/jekyll/language-plugin/tags.rb: -------------------------------------------------------------------------------- 1 | # Frozen-string-literal: true 2 | # Encoding: utf-8 3 | 4 | module Jekyll 5 | module LanguagePlugin 6 | module Tags 7 | require_relative 'tags/language' 8 | require_relative 'tags/language_include' 9 | require_relative 'tags/language_name' 10 | require_relative 'tags/language_name_native' 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /lib/jekyll/patches/jekyll/renderer.rb: -------------------------------------------------------------------------------- 1 | # Frozen-string-literal: true 2 | # Encoding: utf-8 3 | 4 | module Jekyll 5 | class Renderer 6 | def permalink_ext 7 | if document.permalink && !document.permalink.end_with?("/") 8 | ext_match = document.permalink.match(/\.[\w+-]+$/) 9 | ext_match[0] unless ext_match.nil? 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /example/_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: skeleton 3 | --- 4 | {% include site-header.html %} 5 |{% t 'post.published' %}:
8 | {{ content }} 9 |{% t 'slogan' %}
11 |{% t 'description' %}
12 |{% tinclude lorem.txt %}13 |
{% t 'custom_loader_test' %}: {% t 'custom_test' %}
15 |{% t 'description' %}
10 |