class Time

Public Instance Methods

tr(format = :default, options = {})
Alias for: translate
translate(format = :default, options = {}) click to toggle source
# File lib/tr8n_core/ext/time.rb, line 34
def translate(format = :default, options = {})
  language = Tr8n.session.target_language

  label = (format.is_a?(String) ? format.clone : Tr8n.config.default_date_formats[format].clone)
  symbols = label.scan(/(%\w)/).flatten.uniq

  selected_tokens = []
  using_tokens = label.index('{')

  if using_tokens
    selected_tokens = Tr8n::Tokens::Data.parse(label).collect{ |token| token.name(:parens => true) }
  else
    symbols.each do |symbol|
      token = Tr8n.config.strftime_symbol_to_token(symbol)
      next unless token
      selected_tokens << token
      label.gsub!(symbol, token)
    end
  end

  tokens = {}
  selected_tokens.each do |token|
    case token
      when "{days}"                 then tokens[:days] = options[:with_leading_zero] ? day.with_leading_zero : day.to_s
      when "{year_days}"            then tokens[:year_days] = options[:with_leading_zero] ? yday.with_leading_zero : yday.to_s
      when "{months}"               then tokens[:months] = options[:with_leading_zero] ? month.with_leading_zero : month.to_s
      when "{week_num}"             then tokens[:week_num] = wday
      when "{week_days}"            then tokens[:week_days] = strftime("%w")
      when "{short_years}"          then tokens[:short_years] = strftime("%y")
      when "{years}"                then tokens[:years] = year
      when "{short_week_day_name}"  then tokens[:short_week_day_name] = language.tr(Tr8n.config.default_abbr_day_name(wday), "Short name for a day of a week", {}, options)
      when "{week_day_name}"        then tokens[:week_day_name] = language.tr(Tr8n.config.default_day_name(wday), "Day of a week", {}, options)
      when "{short_month_name}"     then tokens[:short_month_name] = language.tr(Tr8n.config.default_abbr_month_name(month - 1), "Short month name", {}, options)
      when "{month_name}"           then tokens[:month_name] = language.tr(Tr8n.config.default_month_name(month - 1), "Month name", {}, options)
      when "{am_pm}"                then tokens[:am_pm] = language.tr(strftime("%p"), "Meridian indicator", {}, options)
      when "{full_hours}"           then tokens[:full_hours] = hour
      when "{short_hours}"          then tokens[:short_hours] = strftime("%I")
      when "{trimed_hour}"          then tokens[:trimed_hour] = strftime("%l")
      when "{minutes}"              then tokens[:minutes] = strftime("%M")
      when "{seconds}"              then tokens[:seconds] = strftime("%S")
      when "{since_epoch}"          then tokens[:since_epoch] = strftime("%s")
      when "{day_of_month}"         then tokens[:day_of_month] = strftime("%e")
    end
  end

  language.tr(label, nil, tokens, options)
end
Also aliased as: tr
trl(format = :default, options = {}) click to toggle source
# File lib/tr8n_core/ext/time.rb, line 83
def trl(format = :default, options = {})
  tr(format, options.merge!(:skip_decorations => true))
end