もふもふ技術部

IT技術系mofmofメディア

【Rails I18n】localeのYAMLファイルで式展開する

Railsで多言語化する時、yamlファイルに日本語訳や英語訳を追加していくと思います。
そのyamlファイルに追加した訳文で式展開ができることをご存知ですか?

事前準備

config/application.rb に以下の設定を追加します。

config.i18n.default_locale = :ja
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

使ってみる

1.yamlファイルを追加する

config/locales/views/ja.yml

ja:
  welcom: "ようこそ %{user_name} さん"

式展開したい箇所を %{} で囲みます。
今回は user_name にしました。

2. viewsで使う

app/views/top.html.erb

<%= t('welcom', user_name: "もふもふ") %>

yamlに設定した名前をキーに、値を指定します。

ようこそ もふもふ さん と表示されます!

ログインユーザー(current_user)の名前を指定したい場合は以下のようにします。

<%= t('welcom', user_name: current_user.name) %>

終わり

色々な所で使える便利技なので、ここぞの時に使ってみたいです!