routes statt Fremdsprachen beim rails-Programmieren

Da les ich grad flips Plan deutschsprachige Model- und Controllernamen zu verwenden und weiß gleich: So geht das nicht! Nichts gegen die deutsche Sprache, aber beim Programmieren und anderen Dingen (Über Sex kann man nur auf Englisch singen ist eine alte Weisheit) sollte man drauf verzichten. Zu schnell wird daraus dann ein Scheunentor und der halbe Code ist nicht mehr Englisch. Und bei Rails, wo es heißt Konvention vor Konfiguration ist eine einheitliche Sprache wichtige. Aber Rails erlaubt es flip seine deutschsprachigen Pfade zu haben, ist nur Konfigurationssache ;-). In der config/routes.db fügt man eine route vor den Standard-Routen ein die wie die folgende aussehen kann:
map.connect 'testDE/:action/:id', :controller => 'test'
Diese Regel gilt dann nicht für den einzelnen Request sondern auch für den Controller der zwar weiterhin test heißt aber wenn's daran geht einen Link zu erzeugen dann greift die spezielle route und man erhält immer (selbst dann wenn man über /test/ kommt) einen Link der nach /testDE/ geht. Im Beispiel selbst dann wenn man den Controller noch mit seinem internen Namen anspricht.
link_to "link", {:controller => "test", :action => "view" }

4 Responses to “routes statt Fremdsprachen beim rails-Programmieren”

  1. # flipkick Says:
    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.
  2. # flipkick Says:
    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.
  3. # TomK32 Says:
    Naja, eine Konvention ist halt dass man den Controller den gleichen Namen gibt wie dem dazugehörigen Model. Wiegt für mich stärker. Anyways, spätestens wenn's man raus auf den internationalen Markt geht wirst du mit routes anfangen. Ich find's immer schade dass nur wenige Projekte von Anfang an auf Mehrsprachigkeit (ja i18n, ist nur die halbe Miete) ausgelegt sind.
  4. # flipkick Says:
    Die Konvention würde man eben einfach ändern, so ist eben Rails. Diese sind ja nicht fix, das tolle ist ja gerade, dass sie angepasst werden können. Routes fallen übrigens ganz eindeutig unter Konfiguration (sieht man schon am Verzeichnis ;) ). Unser Projekt macht für uns nur in Deutschland Sinn, es ist auch ein gemeinnütziges und kein kommerzielles. Bei letzterem ist man sicher darauf aus, seine Anwendung weltweit zu vertreiben (es lebe der Kapitalismus). Wenn man es jedoch ehrenamtlich tut, muss für die anderen Länder soviel mehr freiwillige und ehrenamtliche Arbeit getan werden, wozu fähige Frewillige in den entsprechenden Ländern erst einmal gefunden und geschult werden müssen. Insbesondere da die zu lieferenden Informationen der Webseite in jedem Land vollkommen unterschiedlich sind und die Korrektheit dazu noch irgendwie überprüft werden muss. Und das muss alles koordiniert werden. Klar, die Rails-Anwendung kann man relativ leicht umbiegen, aber die gesamte Infrastruktur eines Webprojekts nicht, wie die Redaktion mit redaktionellen, auf einzele Länder begrenzte Artikeln, Foren- und Chatteams für die einzelnen Länder und so weiter. Da wäre meine Grenze der sozialen Arbeit bei mir aber wirklich überschritten, ist es so schon schwer genug, fähige Leute zu finden, die entgeltfrei und längerfristig etwas für eine gute Sache tun wollen. Im Endeffekt bleibt es am elegantesten, im englischen zu bleiben. Nur wer sicher ist, dass die Seite auf deutsch bleiben wird, wie bei uns, dem kann ich mein Vorgehen mit deutschen Controller-Namen empfehlen.

Einen Kommentar hinterlassen