I18nとは
国際化という意味で、「Internationalization」の略です。
18の部分は"I"と"n"の間に18文字あることから由来しています。
これを利用することで様々な国の言語に対応させることができます!
使い方
####tメソッド(tはtranslateの頭文字からきている。)
日本語のアクセスと英語のアクセスに応じて対応可能となる。
<%= I18t("sports.soccer") %>
config/locales/ja.yml
ja:
sports:
soccer: "サッカー"
config/locales/en.yml
en:
sports:
soccer: "soccer"
####lメソッド(Localizeの頭文字である)
lメソッドは日付や時刻を表す際に用います。
config/locales/ja.yml
ja:
date:
formats:
default: "%Y/%m/%d"
long: "%Y年%m月%d日(%a)"
short: "%m/%d"
time:
formats:
default: "%Y/%m/%d %H:%M:%S"
long: "%Y年%m月%d日(%a) %H時%M分%S秒 %z"
short: "%y/%m/%d %H:%M"
実行結果
> I18n.l(Date.today)
=> "2020/04/26" # 指定がない場合はdefaultを使う
> I18n.l(Date.today, format: :short)
=> "04/26"
> I18n.l(Time.now)
=> "2020/04/26 18:22:54"
> I18n.l(Time.now, format: :long)
=> "2020年04月26日(日) 18時22分54秒 +0900"