LoginSignup
0
0

More than 3 years have passed since last update.

Rails I18nを便利に使おう

Posted at

アプリケーションを色々な国に展開する場合やメッセージを日本語化する際にI18nを使用すると思います。

下記のようなパターンではuser_nameをtranslateに渡すと、"太郎"が返ってきます。

config/locales/ja.yml
ja:
  user_name: "太郎"
> I18n.t(:user_name)
=> "太郎"

しかし、userが、太郎だけであればこれでも良いのですが、複数いる場合がたいていのパターンだと思います。
これを少し拡張させて、どのuserでも対応できるようにしていきます。

config/locales/ja.yml
ja:
  user_name: "%{name}"
> I18n.t(:user_name, name: "太郎")
=> "太郎"
> I18n.t(:user_name, name: "次郎")
=> "次郎"

上記のように変更すると、引数に名前を渡せば、どんな名前でも表示できるようになりました。
これで使いやすくなりました。

さらにtranslateではこのようなこともできます。

config/locales/ja.yml
ja:
  user_name_html: <span class="user">"%{name}"</span>

このように最後に_htmlをつけることで、htmlごと(今回はspanタグごと)返すこともできます。
view自体が複雑でごちゃごちゃしている場合,こうゆうパターンで書くのも一つの手かもしれません。

translateは調べるといろんなことができるので、色々試してやってみましょう!!
案外今やりたいことと合致するかもしれません

 参考記事

あなたはいくつ知っている?Rails I18nの便利機能大全!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0