| Module | Globalize::CoreExtensions::Time |
| 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 123
123: def localize(format)
124: # unabashedly stole this snippet from Tadayoshi Funaba's Date class
125: o = ''
126: format.scan(/%[EO]?.|./o) do |c|
127: cc = c.sub(/^%[EO]?(.)$/o, '%\\1')
128: case cc
129: when '%A'; o << "#{::Date::DAYNAMES[wday]} [weekday]".t(::Date::DAYNAMES[wday])
130: when '%a'; o << "#{::Date::ABBR_DAYNAMES[wday]} [abbreviated weekday]".t(::Date::ABBR_DAYNAMES[wday])
131: when '%B'; o << "#{::Date::MONTHNAMES[mon]} [month]".t(::Date::MONTHNAMES[mon])
132: when '%b'; o << "#{::Date::ABBR_MONTHNAMES[mon]} [abbreviated month]".t(::Date::ABBR_MONTHNAMES[mon])
133: when '%c'; o << ((Locale.active? && !Locale.active.date_format.nil?) ?
134: localize(Locale.active.date_format) : strftime('%Y-%m-%d'))
135: when '%p'; o << if hour < 12 then 'AM [Ante Meridiem]'.t("AM") else 'PM [Post Meridiem]'.t("PM") end
136: else; o << c
137: end
138: end
139: strftime(o)
140: end