This is an easily customizable time\_ago\_in\_words implementation in Swedish that will produce this output:
```ruby
< 5 minuter
< 45 minuter
< 1 timme
> 2 timmar
> 1 dag, 2 timmar
20 April 2010 (if more than 31 days ago)
```
The code:
```ruby
class Time
def time_ago_in_words
words = ''
timestamp = self
if timestamp
time_until = (Time.now.to_datetime - timestamp.to_datetime)
days = time_until.to_i
hours, minutes, seconds, frac = Date.day_fraction_to_time(time_until)
hours = hours % 24
if days == 0
if hours < 1
words = case minutes
when 0..4 then "< 5 minuter"
when 5..14 then "< 15 minuter"
when 15..29 then "< 30 minuter"
when 30..44 then "< 45 minuter"
when 45..59 then "< 1 timme"
end
else
words = "> #{hours} #{'timme'.inflect(hours)}"
end
elsif days < 31
words = "> #{days} #{'dag'.inflect(days)}"
if hours > 0
words += ", #{hours} #{'timme'.inflect(hours)}"
end
else
words = timestamp.l(:format => :daymonthyear)
end
end
words
end
end
```
You'll need this for inflections:
```ruby
class String
def inflect(count)
count > 1 ? ActiveSupport::Inflector.pluralize(self) : self
end
end
```
Add this to config/locales/sv-SE.yml for localizing the date in Swedish:
```ruby
time:
formats:
daymonthyear: "%d %B %Y"
```
Add this to config/initializers/inflections.rb for Swedish inflections:
```ruby
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'dag', 'dagar'
inflect.irregular 'vecka', 'veckor'
inflect.irregular 'månad', 'månader'
inflect.irregular 'timme', 'timmar'
inflect.irregular 'minut', 'minuter'
inflect.irregular 'sekund', 'sekunder'
end
```