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) %>
終わり
色々な所で使える便利技なので、ここぞの時に使ってみたいです!