Header
2018-07-07
2019-03-03

Ruby On Railsでi18を使ってDate型の項目を年月日形式に変換する

Date pic2131212

Ruby On Railsで多言語化対応する際に、利用するi18nですが、 小技として、日付の情報を日本語の年月日形式に変換する際に利用することが可能です。

今回はその方法を紹介します。

ymlファイルを作成

以下パスでjaファイルパスを作成します。 date型の場合は、date:以下のフォーマットが呼び出され、 time型の場合はtime:以下のフォーマットが呼び出されます。

なおymlファイルはインデントで階層を認識するため、インデントがずれると全体でエラーが発生します。

また 英語の項目と翻訳する日本語の項目には半角スペースが必要です。スペースがない場合はこちらもエラーが発生します。

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"

ymlの内容はこちらの 記事を参考にしました

application.rbへ以下を追加

application.rbへi18を読み込む設定を記載します。

config.i18n.default_locale = :ja

viewで読み込む

ymlファイルで指定した内容に自動で変換されます。

<%=  l(Time.now, format: :long) %>
#出力形式 "2018年07月7日(土) 14時00分00秒 +0900
"

<%=  l(Time.now)%>
#変換形式を指定しない場合はデフォルトの内容が変換
#2018/07/07 21:49:50

注意点として、 format: :shortが正しく、

formats: :shortではdefaultの内容が呼び出されます。ご注意ください。

以上になります

その他関連記事

Ruby On Railsのデバッグツール byebugの紹介

【初心者・独学者向け】Ruby On Railsのviewを劇的に変える?!Slim入門

【初心者・独学者向け】Ruby on Railsで使いやすいメソッド.present?の紹介

Ruby On Railsで検索機能を実装する|ransack

Ruby on RailsでAction名やController名を取得する

SEO対策の前に学ぼう!検索エンジンの歴史

初心者向けに解説|SEOの内部対策(内部リンク対策)とは?

初心者向けに解説|SEOの外部リンク対策(外部リンク対策)とは?

前の記事
次の記事