多言語プラグイン

2019-05-23

jekyllの多言語を対応するために使うプラグインを紹介します。多言語プラグインjekyll-polyglotのインストールと設定について確認します。

多言語プラグイン

jekyllの多言語を対応するためにプラグインのインストールと設定に関して紹介します。様々な多言語プラグインがありますが、ここにはjekyll-polyglotを紹介します。

他の多言語プラグインが知りたい方はawesome-jekyll-pluginsをご参考してください。

プラグインインストール

  • コンソールへ下記のコマンドを打ちてプラグインをインストールします。
gem install jekyll-polyglot
  • _config.ymlへプラグインをセッティングします。
plugins:
  - jekyll-polyglot

プラグインのグローバル設定

  • _config.ymlファイルへ下記のように設定します。
languages: ['ja', 'ko', 'en']
default_lang: 'ja'
exclude_from_localization: ['javascript', 'images', 'css']
parallel_localization: false
  • languages: サイトで対応する多言語リストです。
  • default_lang: 対応する多言語中でデフォルト言語を設定します。
  • exclude_from_localization: 多言語を対応したく無いフォルダリストを設定します。
  • parallel_localization: trueに設定するとjekyllがページをコンパイルする時fork()を使ってサイトを同時にコンパイルします。Windows OSはfork()が無いのでfalseで設定しないとエラーが出ます。

ページ設定

  • _postsフォルダへ下記のようにフォルダとファイルを作ります。
|-- _posts
|   |-- 2018-09-19-multi-languages-plugin
|   |   |-- common
|   |   |   |-- folder_structure.md
|   |   |-- 2018-09-19-multi-languages-plugin-en.md
|   |   |-- 2018-09-19-multi-languages-plugin-ja.md
|   |   |-- 2018-09-19-multi-languages-plugin-ko.md
  • 2018-09-19-multi-languages-plugin: 管理のために_postsフォルダ下へポストタイトルでフォルダを作ります。
  • common: 多言語ファイルで共通で使うファイルを保存します。例えば、今見てるフォルダ構造はfolder_structure.mdへ作成して{% include_relative common/folder_structure.md % }を使って表示してます。
  • 2018-09-19-multi-languages-plugin-[言語].md: _config.ymllanguagesへ設定した言語別ページを作成します。
  • 各言語ページ上部へ各ページの言語を設定します。
---
layout: 'post'
lang: 'ja'
...
---

確認

全ての設定を完了しました。各ページを確認する方法に関して紹介します。

  • ページ設定を通じて生成されたページは下記のようにURLでアクセスが可能です。
http://site_url/jekyll/multi-languages-plugin/
http://site_url/ko/jekyll/multi-languages-plugin/
http://site_url/en/jekyll/multi-languages-plugin/
  • _config.ymldefault_langへ設定した言語はhttp://site_url/pathで直接アクセスができます。
  • default_lang以外の言語はhttp://site_url/[言語]/pathで各言語のページへアクセスができます。
  • jekyllのテストサーバーを起動するとかビルドをしたら、_siteフォルダ下へ多言語フォルダを確認することができます。
    • サーバー起動コマンド: bundle exec jekyll serve
    • ビルドコマンド: bundle exec jekyll build
Buy me a coffeeBuy me a coffee
Posts