1: A
2-4: B
5-0: C
Npr:
1 tjedan
2 tjedna
5 tjedana
Iznimka je kad je N između 11-14, kad je uvijek forma C umjesto A i B. Npr.: 11 tjedana.
Za neke riječi su 2 forme jednake, npr: 2 dana, 5 dana. Neka te to ne zbunjuje. Najbolje je za svaku riječ imati spremljeno 3 oblika, pa čak i ako su dva jednaka.
Da, u "i18n" libraryu postoji mogućnost za unošenje plural formi pod imenima "one", "few" i "many".
Ali, pošto je za implementirati ovo potrebno samo 4 linije koda, ponekad se ne isplati dovoditi cijeli 3rd party library u skriptu/projekt.
Hmmm,
to bi otprilike bilo ovako:
def rule
return :many if (11..14).include?(@amount % 100)
return :few if (2..4).include?(@amount % 10)
(@amount % 10) == 1 ? :one : :many
end
Thanks2012/1/8 Kresimir Bojcic <kresimi...@gmail.com>Cool, samo cini mi se da treba gledati prvo N % 100 da bi dobili (11-14) za "many" iznimku, a onda N % 10 za ostalo.
Ja sam u medjuvremenu to malo zakomlicirao... https://github.com/drKreso/amount_inflector nije puno preko 4 reda, ali nisam uocio ovo pravilo o kojem govoris.
Sad cu isprobati, pa ako prodju testovi... good to go :)