otwarchive-symphonyarchive/app/helpers/translation_helper.rb

43 lines
1.4 KiB
Ruby
Raw Permalink Normal View History

2026-03-11 22:22:11 +00:00
module TranslationHelper
def time_ago_in_words(from_time, include_seconds = false)
to_time = Time.now
if from_time.respond_to?(:to_time)
from_time = from_time.to_time
else
return
end
to_time = to_time.to_time if to_time.respond_to?(:to_time)
distance_in_minutes = (((to_time - from_time).abs)/60).round
distance_in_seconds = ((to_time - from_time).abs).round
case distance_in_minutes
when 0..1
return (distance_in_minutes==0) ? 'less than 1 minute ago' : '1 minute ago' unless include_seconds
case distance_in_seconds
when 0..5 then "less than 5 seconds ago"
when 6..10 then "less than 10 seconds ago"
when 11..20 then "less than 20 seconds ago"
when 21..40 then "half a minute ago"
when 41..59 then "less than a minute ago"
else "1 minute ago"
end
when 2..45 then "#{distance_in_minutes} minutes ago"
when 46..90 then "1 hour ago"
when 90..1440 then "#{(distance_in_minutes.to_f / 60.0).round} hours ago"
when 1441..2880 then "1 day ago"
else "#{(distance_in_minutes / 1440).round} days ago"
end
end
alias distance_of_time_in_words_to_now time_ago_in_words
# Take some text and add whatever punctuation, symbols, and/or spacing
# we use to separate a metadata property from its value, e.g., "Property: ",
# "Propriété : ".
def metadata_property(text)
text.html_safe + t("mailer.general.metadata_label_indicator")
end
end