| Module | Globalize::CoreExtensions::Date |
| In: |
vendor/plugins/globalize/lib/globalize/localization/core_ext.rb
|
Acts the same as strftime, but returns a localized version of the formatted date/time string.
# File vendor/plugins/globalize/lib/globalize/localization/core_ext.rb, line 147
147: def localize(format)
148: # unabashedly stole this snippet from Tadayoshi Funaba's Date class
149: o = ''
150: format.scan(/%[EO]?.|./o) do |c|
151: cc = c.sub(/^%[EO]?(.)$/o, '%\\1')
152: case cc
153: when '%A'; o << "#{::Date::DAYNAMES[wday]} [weekday]".t(::Date::DAYNAMES[wday])
154: when '%a'; o << "#{::Date::ABBR_DAYNAMES[wday]} [abbreviated weekday]".t(::Date::ABBR_DAYNAMES[wday])
155: when '%B'; o << "#{::Date::MONTHNAMES[mon]} [month]".t(::Date::MONTHNAMES[mon])
156: when '%b'; o << "#{::Date::ABBR_MONTHNAMES[mon]} [abbreviated month]".t(::Date::ABBR_MONTHNAMES[mon])
157: when '%c'; o << ((Locale.active? && !Locale.active.date_format.nil?) ?
158: localize(Locale.active.date_format) : strftime('%Y-%m-%d'))
159: when '%p'; o << if hour < 12 then 'AM [Ante Meridiem]'.t("am") else 'PM [Post Meridiem]'.t("am") end
160: when '%P'; o << if hour < 12 then 'AM [Ante Meridiem]'.t("AM") else 'PM [Post Meridiem]'.t("PM") end
161: else; o << c
162: end
163: end
164: strftime(o)
165: end