bsw@932: function format.interval_text(value, options) bsw@1099: if not value then bsw@1099: return nil bsw@1099: end bsw@932: bsw@932: local options = options or {} bsw@932: bsw/jbe@1309: value = value:match("^([^ ]* *[^ ]* *[^ ]* *[^ ]*)") bsw/jbe@1309: bsw@932: value = value:gsub("%..*", "") bsw@932: :gsub("days", "{DAYS}") bsw@932: :gsub("day", "{DAY}") bsw@932: :gsub("mons", "{MONS}") bsw@932: :gsub("mon", "{MON}") bsw@1045: :gsub("years", "{YEARS}") bsw@932: :gsub("year", "{YEAR}") bsw@932: bsw@932: if (options.mode == "time_left") then bsw@932: bsw@932: local interval_text = value bsw@932: :gsub("{DAYS}", _"days [interval time left]") bsw@932: :gsub("{DAY}", _"day [interval time left]") bsw@932: :gsub("{MONS}", _"months [interval time left]") bsw@932: :gsub("{MON}", _"month [interval time left]") bsw@932: :gsub("{YEARS}", _"years [interval time left]") bsw@932: :gsub("{YEAR}", _"year [interval time left]") bsw@932: return _("#{interval_text} left", { interval_text = interval_text }) bsw@932: bsw@932: elseif (options.mode == "ago") then bsw@932: local interval_text = value:gsub("years", _"years [interval ago]") bsw@932: :gsub("{DAYS}", _"days [interval ago]") bsw@932: :gsub("{DAY}", _"day [interval ago]") bsw@932: :gsub("{MONS}", _"months [interval ago]") bsw@932: :gsub("{MON}", _"month [interval ago]") bsw@932: :gsub("{YEARS}", _"years [interval ago]") bsw@932: :gsub("{YEAR}", _"year [interval ago]") bsw@932: return _("#{interval_text} ago", { interval_text = interval_text }) bsw@932: bsw@932: else bsw@932: local interval_text = value:gsub("years", _"years [interval]") bsw@932: :gsub("{DAYS}", _"days [interval]") bsw@932: :gsub("{DAY}", _"day [interval]") bsw@932: :gsub("{MONS}", _"months [interval]") bsw@932: :gsub("{MON}", _"month [interval]") bsw@932: :gsub("{YEARS}", _"years [interval]") bsw@932: :gsub("{YEAR}", _"year [interval]") bsw@932: return _("#{interval_text} [interval]", { interval_text = interval_text }) bsw@932: bsw@932: end bsw@1045: end