Zagnieżdżanie tłumaczeń?

Dla przykładu mam tłumaczenie dla słownej ilości godzin.

hours_in_words: one: "one hour" other: "{{count}} hours"
Pytanie: czy da radę jakoś zagnieździć to tłumaczenie w innym, tak żeby wykorzystać to mniej więcej tak:

my_translation: "Your thing expires in #{t(hours_in_words, :count => %{hours}}"

Próbowałem na kilka sposobów ale nie mogłem znaleźć odpowiedniej składni. Jest możliwe takie coś w ogóle ?

ja robiłem poprostu coś takiego

w pliku z localami:

i w widoku lub kontrolerze

t('my_translation', :when => t('hours_in_words', :count => 12))

Też właśnie o czymś takim myślałem, ale byłem ciekaw czy da radę to zrobić trochę sprytniej.

I18n obsługuje lambda expressions jako dane do tłumaczenia. Można je dodać w plikach .rb dodanych do i18n load path albo w tłumaczeniach .yml zserializowane do json.

Kod ruby bedzie mniejwiecej taki:

{ :en => { :my_translation => lambda { |hours| "Your thing expires in #{t(hours_in_words, :count => hours)}" } } }