I18n とは
みなさん、I18nとは何のことかご存知ですか。
あまり馴染みがないかもしれませんが、実はこれ Internationalization の略なのです。
日本語でいう 国際化ですね。
"I"と"n"の間に18文字あるので、こう略されています。
プロダクトを国際化するとなったときに、こんなに長いスペルの単語を何回もタイプしたくないですもんね笑
ちょっとかっこいいネーミングです。
今回は、そんなI18nに欠かせない存在であるtメソッドとlメソッドを簡単に紹介します。
t メソッド
まずはtメソッドです。
tはtranslateの頭文字からきています。
早速コードを見てみましょう。
ビューファイルに次のように書くと、
<%= t("fruits.apple") %>
<%= t("fruits.orange") %>
ロケールの設定がja(日本語)であればja.ymlを、en(英語)であればen.ymlを読み込みます。
ja:
fruits:
apple: "りんご"
orange: "みかん"
en:
fruits:
apple: "Apple"
orange: "Orange"
こうすることで、日本語でアクセスされたときは日本語で、英語のときは英語で表示されます。
l メソッド
次はlメソッドです。
ややこしいですがI(アイ)ではありませんよ。Localizeの頭文字であるl(エル)です。
lメソッドは日付や時刻を表す際に用います。
国や地域によって時刻は異なりますが、lメソッドを使えば現地時間に対応できます。
例えば
<%= l(Time.current) %>
上のようにして日付を表示したい場合、
ja:
time:
current: "%Y年%m月%d日"
en:
time:
current: "%m %d, %Y"
とすればそれぞれの現地時間を、現地の言葉や表記方法で表示できます。
参考
以上、tメソッドとlメソッドの超簡単な紹介でした。
もっと詳しく知りたい方は、これらの記事をおすすめします!
rails での config/locales 配下の扱い
i18nについて
【Rails】国際化機能使い方