web-dev-qa-db-ja.com

I18nの日の名前

翻訳がなければ、これは私に今日の日の名前を与えるでしょう:

Date.today.strftime("%A")

どのようにローカライズしますか?

つまり「マルディ」ifI18n.localefrに設定されます。

15
Fellow Stranger

ロケールファイルには、おそらく次のものがあります。

# example with fr
fr:
  date:
    day_names: [Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi]
#               ^^^^^^^^ a week starts with a Sunday, not a Monday

今日の名前を取得するには、次のようにします。

week_day = Date.today.wday # Returns the day of week (0-6, Sunday is zero)
I18n.t('date.day_names')[week_day]

または最終的に

I18n.l(Date.today, format: '%A')
27
MrYoshiji
l Date.today, format: "%A"

翻訳ファイルにday_namesが含まれている場合に機能します。

7
zwippie