blog
初めての Middleman シリーズ初めてのMiddleman:多言語化 - 言語ファイルの作成とヘルパーの埋め込み
この記事は書かれてから1年以上経過しており、内容が古い場合があります。
今回は多言語化について試してみたいと思います。Middlemanの多言語化は結構複雑なので何回かに分けて紹介していこう思います。まずはデフォルトの言語を設定し、翻訳ファイルをヘルパーから呼び出しについてです。
多言語化の有効化
Middlemanの多言語化は特にプラグイン等を入れずに利用することができます。
########################
#
# i18n setting
#
########################
activate :i18n
翻訳ファイルの作成
続いて翻訳ファイルを作ります。まずrootにlocales
というフォルダを作ります。このフォルダの中に<言語>.yml
ファイルを作ります。今回は以下のようにja.yml
とen.yml
の2つを用意します。
ja.yml
ja:
blog: ブログ
en.yml
en:
blog: Blog
ヘルパーを使いテンプレートに埋め込む
テンプレートに埋め込むには以下のようにヘルパーを使います。
<h1><%= t(:blog) %></h1>
このような書き方も可能です。
<h1><%= t :blog %></h1>
表示してみる
$ middleman server
でプレビューしてみてください。
== The Middleman is loading
== Locales: en, ja (Default en)
== LiveReload accepting connections from http://192.168.11.3:35729
== The Middleman is standing watch at http://0.0.0.0:4567
== Inspect your site configuration at http://0.0.0.0:4567/__middleman/
コンソールを見るとLocales: en, ja (Default en)
となっており英語がデフォルトになっています。表示もBlog
と表示されているはずです。
デフォルト言語を設定する
デフォルト言語を設定するには設定に:mount_at_root
を加えます。
########################
#
# i18n setting
#
########################
activate :i18n do |options|
options.mount_at_root = :ja
end
改めてプレビューしてみます。
$ middleman server
== The Middleman is loading
== Locales: en, ja (Default ja)
== LiveReload accepting connections from http://192.168.11.3:35729
== The Middleman is standing watch at http://0.0.0.0:4567
== Inspect your site configuration at http://0.0.0.0:4567/__middleman/
サイトの表示もブログ
となっているはずです。これで言語を切り替えられるようになりました。
その他の設定
今回の内容と直接関係ありませんが、その他の設定についてメモしておきます。
:data = "locales"
The directory holding your locale configurations
:lang_map = {}
Language shortname map
:langs = nil
List of langs, will autodiscover by default
:mount_at_root = nil
Mount a specific language at the root of the site
:no_fallbacks = false
Disable I18n fallbacks
:path = "/:locale/"
URL prefix path
:templates_dir = "localizable"
Location of templates to be localized
今回はここまで。
次回はテンプレートを用意して言語別のページを作ってみたいと思います。
シリーズ
- 初めてのMiddleman:rbenv, bundler 環境でMiddlemanを使ったHello World
- 初めてのMiddleman:レイアウト機能でレイアウトとコンテンツを分離する
- 初めてのMiddleman:パーシャルを使ったコンテンツのモジュール化
- 初めてのMiddleman:SCSSのコンパイルとテンプレートの基礎
- 初めてのMiddleman:Sass MixinライブラリのBourbon, Neatを導入してみる
- 初めてのMiddleman:データファイルとデータファイルを使った動的ページ生成
- 初めてのMiddleman:サイトにブログ機能を追加する
- 初めてのMiddleman:Amazon S3にビルドされたファイルを同期する
- 初めてのMiddleman:HTML/CSS/JS/画像をビルド時に圧縮する
- 初めてのMiddleman:設定について
- 初めてのMiddleman:静的サイトのキャッシュとasset_hash拡張を使ったキャッシュのパージ
- 初めてのMiddleman:Middleman::S3Syncで使うAWS IAMユーザーのアクセスキー管理方法について
- 初めてのMiddleman:Helperを使ってGravatarのアイコンを表示する
- 初めてのMiddleman:アセットパイプラインを使った外部アセットファイルの読み込みと結合
- 初めてのMiddleman:Bowerを使ってjQueryなどのライブラリをロードする
- 初めてのMiddleman:スケルトンを自作する方法
- 初めてのMiddleman:Middleman Blogの記事データを使いやすく管理する方法
- 初めてのMiddleman:Middleman-blogのシングルブログを前提としたSkeletonを作った
- 初めてのMiddleman:Middleman-blogでマルチブログを試してSkeletonを作った
- 初めてのMiddleman:Markdown EngineをkramdownからRedcarpetに切り替える
- 初めてのMiddleman:RedcarpetとMiddleman::Rougeを使ったシンタックスハイライト
- 初めてのMiddleman:Middleman-Syntaxを使ったシンタックスハイライト
- 初めてのMiddleman:Middleman-Blogで記事毎に画像を管理する方法
- 初めてのMiddleman:Gulpを使ってサムネイル画像を生成する
- 初めてのMiddleman:Middleman-OGPのOGP画像指定を相対パスで設定する
- 初めてのMiddleman:Middleman-OGPでMiddleman-BLogにOGPを設定する
- 初めてのMiddleman:Middleman-Titleでタイトルタグを手軽に設定する
- 初めてのMiddleman:多言語化 - 言語ファイルの作成とヘルパーの埋め込み
- 初めてのMiddleman:Middleman-blogにカテゴリやシリーズなどのカスタムコレクションを追加する方法
- 初めてのMiddleman:Bowerで管理されているフォントファイルをインポートする