Rails 1.2: Deutsche Model-Namen in Rails

Die singularize und pluralize Funktionen von Rails können von Haus aus für die englische Sprache verwendet werden.

Für ein Projekt wollte ich erst deutsche Model-Namen nutzen und habe die Rails-Anwendung dementsprechend angepasst:

In der environment.rb:

Inflector.inflections do |inflect|

# die englischen vorgaben vergessen
inflect.clear

# worte im singular werden mit
# einem “e” für die plural-Form erweitert
inflect.plural /^([a-zA-z]*[^aoieukgh])$/i , ‘\1e

# worte, die im plurar auf e enden, werden
# für die singular-Form um das e gekürzt
inflect.singular /^([a-zA-z]*)e/i, ‘\1′

# spezial regeln für worte, die aus diesen
# regeln herausfallen
# (erstes wort singular, zweites plural)
inflect.irregular ‘mitglied’, ‘mitglieder’

end

Ich habe die Idee jedoch schnell verworfen, da wir besser englische Modelnamen (intern relevant) und deutsche Controllernamen (nach aussen hin, z.B. für Suchmaschinen relevant) verwenden, um so unnötige Routes zu ersparen. Daher können die Regeln sicher noch für einige andere Wörter erweitert werden, falls aus welchen Gründen auch immer, jemand Interesse an deutschen Model-Namen haben sollte.

3 Responses to “Rails 1.2: Deutsche Model-Namen in Rails”

  1. [...] les ich grad flips Plan deutschsprachige Model- und Controllernamen zu verwenden und weiß gleich: So geht das [...]

  2. Hi Tom,

    zu dem Schluss, dass deutsche Models (in Rails, nicht real) keinen Sinn machen bin ich am Ende auch gekommen. Da die Anwendung allerdings sehr groÃ. ist, wollte ich hunderte von Routes vermeiden, die dann Rails-unlike immer angepasst werden müssten, sobald sich etwas ändert (DRY). Daher habe ich die Lösung mit (halb) deutschen Controller Namen und englischen Models gewählt. So ein Ding heisst zwar z.B. TagebuchController, aber wer diesen Mix aus Sprachen seelisch verkraftet spart sich die Routes. Die Anwendung wird ewig auf deutsch bleiben, so dass ich mir auch keine Sorgen um eine Internationalisierung machen muss. Bei einer solchen würde ich wohl auch wieder darauf zurückkehren, gewohnt im englisch zu coden, und eben routes für die verschiedenen Sprachen einzuführen. Für das Projekt erscheint mir meine Lösung doch eleganter.

  3. Konvention (deutsche Controllernamen) vor Konfiguration (Routes für jeden neuen Controller anlegen und bei jeder Ã.nderungen anpassen), genau!.. und dazu noch DRY.. genau das hatte ich damit im Sinn.

Leave a Reply


linkboost