Helper pluralize pro češtinu

Pomocná metoda pluralize je skvělý pomocník pro výpis počtu položek jakéhokoliv druhu. Čestina je ovšem trochu složitější jazyk než angličtina a u skloňování číslovek nerozlišuje jen 1 a více (jako angličtina), ale také zda je položek 2, 3 nebo 4.

Příklad:
0 položek
1 položka
2|3|4 položky
5 a více položek

nebo
0 koťat
1 kotě
2|3|4 koťata
5 a více koťat

Abychom mohli metodu pluralize používat v českých aplikacích, je potřeba tuto metodu trochu přepsat. Následující kus kódu můžete rovnou přidat do aplikace.

module ActionView
  module Helpers
    module TextHelper
      def pluralize(count, singular, plural = nil, even_more = nil)
          "#{count || 0} " + if count == 1 || count == '1'
           singular
         elsif plural
           if [2, 3, 4].include?(count.to_i)
             plural
           elsif even_more
             even_more
           else
             plural
           end
         elsif Object.const_defined?("Inflector")
           Inflector.pluralize(singular)
         else
           singular + "s"
         end
       end
    end
  end
end

Metoda se pak volá podobně jako její anglický protějšek a funguje pro čísla i řetězce číslic.

pluralize(0, 'kotě', 'koťata', 'koťat')
pluralize(1, 'kotě', 'koťata', 'koťat')
pluralize('2', 'kotě', 'koťata', 'koťat')
pluralize('5', 'kotě', 'koťata', 'koťat')