Polskie pluralize

Witam,

czy ktos moze spotkal sie z polskimi implementacjami funkcji z rodziny pluralize itd ?

W sumie nie bardzo mi przeszkadza brak tego ale przyzwyczailem sie do tworzenia tabel z polskimi nazwami.

Pozdrawiam

Zdaje sie, ze w environment.rb mozesz zdefiniowac dodatkowe reguly Inflectora:

[code ruby]# Add new inflection rules using the following format

(all these examples are active by default):

Inflector.inflections do |inflect|

inflect.plural /^(ox)$/i, ‘\1en’

inflect.singular /^(ox)en/i, ‘\1’

inflect.irregular ‘person’, ‘people’

inflect.uncountable %w( fish sheep )

end

[/code]

Sam zawsze i wszedzie trzymam sie nazewnictwa angielskiego. Co mnie zastanawialo to jak Rails podchodzi do nazw rzeczow. typu news, furniture, information itd. Z tego co wiem to takowe nie ulegaja pluralizacji.

DziĂŞki ale wÂłasnie chodzi mi o to Âżeby tego nie pisaĂŚ :slight_smile:
Problem pojawiÂł siĂŞ jak chciaÂłem napisaĂŚ front-end do istniejÂącej juÂż aplikacji.
Wy³¹czy³em wogole zmiane nazw i glupio mi sie klasy nazywaj¹ - jakoœ tak mnogo (Kategorie, Produkty itd) :slight_smile:

To chyba jest normalne gdy wylaczysz pluralizacje a nazwy w bazie sa l. mnogiej. Ja chyba stworzylbym klasy na piechote i ustawil nazwy poprzez set_table_name(“kategorie”).
Nie wiem czy scaffolding dziala poprawnie w takich przypadkach http://wiki.rubyonrails.org/rails/pages/HowtoDisableAutoTableNamePluralisation.
Tworca Rails ma opinie, ze : Scaffolding is reserved for the common case of following all the rules. There are a lot of exceptions we should otherwise think about honoring, like other names for ids for example. I think we’ll just let it rest as a limitation.

Chyba tak bĂŞdĂŞ robiĂŚ.
(narazie u tak musze ustawiac recznie primary_key i foreign_key bo nazwy nie pasuja do skladni RoR)

To akurat mnie “nie boli”, ale czy moge spodziewaĂŚ siĂŞ innych problemĂłw ?

Niestety, nie mam pojecia :slight_smile:

Z systemami “legacy” zawsze sa problemy. Nie wiem jaki ma Rails stosunek np. do “Composite Primary Key”. Teraz sie tego nie robi ale w starszych bazach czesto wystepuja. W hiberante nie jest to problemem.

Mi ActiveRecord (chociaz migrations to niezly patent) niezbyt pasuje i wolalbym widziec to w stylu Hibernate czy pythonowego SQLObject, ale wyszedlem zalozenia - albo podazam “zlota sciezka Rails” i akceptuje wszystko takim jakie jest, albo wracam do javy.

[quote=pawel]Zdaje sie, ze w environment.rb mozesz zdefiniowac dodatkowe reguly Inflectora:

[code ruby]# Add new inflection rules using the following format

(all these examples are active by default):

Inflector.inflections do |inflect|

inflect.plural /^(ox)$/i, ‘\1en’

inflect.singular /^(ox)en/i, ‘\1’

inflect.irregular ‘person’, ‘people’

inflect.uncountable %w( fish sheep )

end

[/code][/quote]
OK, czyli mogę sobie dodać na piechotę np:
inflect.irregular ‘głos’, ‘głosy’

Tylko jak w takim razie z 5, 10, 27? Wtedy już pasuje “głosów”, a nie głosy…
Nie ma polskiej funkcji pluralize, gdzie by się np. dawało parametry pluralize_pl(głos, głosy, głosów) i to odpowiednio by dobierało?

Powyzsze ma zastosowanie w przyp. gdy przyjeto (niefortunnie) polskie nazewnictwo dla tabel i odpowiadajacych im klas AR.

W Twoim przypadku ma sens uzycie jakiegos pluginu lokalizujacego aplikacje (InternationalizationComparison), kt. wspiera jezyki z 3 stopniowa pluralizacja albo daje sie latwo modyfikowac. Ja uzylem swego czasu GLoc (http://zdziechowicz.com/articles/tag/i18n).