Empfehlungen: Erweiterte Suche

Deutsche Modelnamen?

Datenbankobjekte strukturieren und validieren

Deutsche Modelnamen?

Beitragvon bytenirvana » Di 2. Jun 2009, 19:06

Hallo zusammen,
freue mich 'mal 'ne richtige Frage stellen zu können!

Die Konventionen für die Datenbanktabellen/Modelnamen sind ja (gezwungenermassen) alle englisch. Mit der $use-Variable kann man zwar die Tabelle angeben, aber der Plural ist oft (fast immer) falsch (z.B. 'firmas' statt 'firmen' etc). Bei den Controllernamen ist es genauso.

Kurz gesagt: deutsche Namen zu verwenden ist mit dem jetzigem Stand ziemlich unbenutzbar. :roll:

Auf der Wiki konnte ich noch nichts finden ob oder wie eine Lokalisierung klappen könnte. Meines Wissens nach arbeiten die Entwickler auch nicht an einer 'i18n' von Tabellennamen.

Kennt ihr eine Möglichkeit trotzdem deutsche Namen zu verwenden?
Der Plural muss doch an einer zentralen Stelle gebildet werden, wenn man CakePHP an dieser Stelle beibringt deutsch zu reden (bzw. den korrekten Plural zu bilden), sollte das doch klappen, oder gibt es da noch andere Hindernisse?
bytenirvana
 
Beiträge: 4
Registriert: Mi 4. Jun 2008, 22:28
CakePHP-Version: 1.2
OS: Gentoo Linux

Re: Deutsche Modelnamen?

Beitragvon havanna » Di 2. Jun 2009, 21:58

Hallo Bernd,

ich glaube CakePHP den deutschen Plural beizubringen, dürfte ein ziemlich hoffnungsloses Unterfangen sein. i18n hat eigentlich auch nichts mit der Pluralform zu tun sondern bietet die Möglichkeit, Felder als übersetzungsrelevante Felder zu definieren.
Der deutsche Plural ist auch "etwas" komplexer als der englische. Eine einfach Ableitung, wie im englischen, ist kaum möglich: Hund, Hunde, Mann, Männer, Kind, Kinder, Fabrik, Fabriken, etc.
Du siehst, wir haben in der deutschen Sprache weit mehr, als in der englischen - dort gibt es eigentlich nur zwei (oder täusche ich mich :?: ).

Aus Kompatibilitätsgründen habe ich in meiner Anwendung ebenfalls teilweise noch deutsche Tabellennamen. Die Uses-Anweisung und die Variable name finde ich nicht so tragisch.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Deutsche Modelnamen?

Beitragvon euromark » Mi 3. Jun 2009, 09:34

machbar (wenn auch sicher nicht wirklich schön meiner Meinung!) mit:
/config/inflections.php

gruß mark
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Deutsche Modelnamen?

Beitragvon bytenirvana » Mi 3. Jun 2009, 15:36

Ich sehe man könnte in app/config/inflections.php eigene Regeln angeben, danke.

Deutsch hat anscheinend 5 verschiedene Pluralformen (http://www.clip2go.de/deutsch-englisch/wl_Plural+forms+in+German_3126_0.htm). Ist aber komplizierter, den Deutsch ist sehr unregelmässig :|

Gestern habe ich etwas angefangen zu schreiben, das Plural Worte erstellen kann, ich bin aber sehr unzufrieden mit der Lösung und sie ist auch sehr dumm :/

Besser wäre es das Geschlecht zu erkennen und dann ein paar Sonderfälle abzuarbeiten, aber da das Geschlecht von Worten mMn zufällig ist, ist das leider ausgeschlossen.

In cake/libs/inflector.php gibt es die Funktionen die ein Wort entweder in Plural oder Singular zurückgeben. Mein Ansatz wäre dort die Internas auszutauschen, damit das passende deutsche Word zurückgegeben werden kann. Er ist aber ein ganz anderer als die Erstellung der Pluralformen in CakePHP selbst. Eventuell wäre es möglich die verschiedenen Arten der Pluralbildung die CakePHP benutzt an die deutsche Grammatik anzupassen. Das habe ich mir noch nicht angeschaut.

Hier mal eine Liste mit den Singular/Plural Kombinationen die mein Script ableiten kann:

Code: Alles auswählen

Buch - Buecher
Maus - Maeuse
Tisch - Tische
Kind - Kinder
Auto - Autos
Schuessel - Schuesseln
Ding - Dinge
Hund - Hunde
Tier - Tiere
Pferd - Pferde
Haus - Haeuser
Computer - Computer
Kunde - Kunden
Artikel - Artikel
Rechnung - Rechnungen
Portfolio - Portfolios
Garten - Gaerten
Firma - Firmen
Messe - Messen
Ring - Ringe
Kette - Ketten
Junge - Jungen
Maedchen - Maedchen
Taube - Tauben
Stuhl - Stuehle
Flasche - Flaschen
Taste - Tasten
Bier - Biere
Kirche - Kirchen
Fluss - Fluesse
Bach - Baeche
See - Seen
Katze - Katzen
Kuh - Kuehe
Ort - Orte
Karte - Karten
Stadt - Staedte
Zaun - Zaeune
Fenster - Fenster
Loch - Loecher
Kraut - Kraeuter
Plan - Plaene
Form - Formen
Eintrag - Eintraege
Kommentar - Kommentare
Fabrik - Fabriken
Mann - Maenner
Frau - Frauen
Dose - Dosen
Baum - Baeume
Wald - Waelder
 


Vielleicht könnt ihr ein paar Testworte posten die ich testen kann, um meinen (recht kruden) Ansatz zu zerstören. :P
Wäre nett, danke.
bytenirvana
 
Beiträge: 4
Registriert: Mi 4. Jun 2008, 22:28
CakePHP-Version: 1.2
OS: Gentoo Linux

Re: Deutsche Modelnamen?

Beitragvon Alex » Do 11. Jun 2009, 09:37

Wie Mark schon angedeutet hat, kann man Plural- und/oder Singularformen die Cake nicht kennt, in der /config/inflections.php ergänzen. Das ist der "native Way", soweit ich weiss.

PS: Es gibt im Englischen sicher auch Plurals (?) die Cake nicht kennt.

Greetz,
Alex
Alex
 
Beiträge: 120
Registriert: Di 13. Mai 2008, 13:39
Wohnort: Bremen
CakePHP-Version: 1.x.x
OS: OSX / Win 7 / Debian

Re: Deutsche Modelnamen?

Beitragvon Jörg » Mo 15. Jun 2009, 09:57

Moin Alex,
es gibt zum Beispiel den Ausnahmefall, dass Cake die Übersetzung / Konventions in den Plural von "Objektiv" im Englischen nicht richtig erkennt.

Objekt = lens (engl.)
Objektive = lenses (engl.)

Genau für diese Fälle benötigte ich z.B. die Inflections.

Gruß
Jörg
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Deutsche Modelnamen?

Beitragvon euromark » Fr 12. Nov 2010, 20:16

und es geht doch! :)

ich brauchte für ein wörterbuch die möglichkeit, wörter mit singularize() und pluralize() anzupassen.
die cake inflector functions gehen natürlich nicht.
hab daher meinen eigenen "deutschen" inflector geschrieben.

das funktioniert (mit hunderten von regeln) auch ziemlich gut...^^
http://cakephp.dereuromark.de/tests/tests/inflector/de

findet irgendjemand noch wörter, die bisher NICHT gehen?
am einfachsten so checken:
"Auto - Autos" - pro zeile 1 Begriff mit Lösung dahinter (leerzeichen minus leerzeichen dazwischen), dann sieht man direkt ob es funktioniert

Wenn es soweit stabil ist, kann ich es ja hier veröffentlichen

PS: erfolgreich getestet sind bisher
Code: Alles auswählen
Adresse - Adressen
Ärztin - Ärztinnen
Apfel - Äpfel
Apfelsine - Apfelsinen
Arm - Arme
Artikel - Artikel
Arzt - Ärzte
Ast - Äste
Auge - Augen
Ausweis - Ausweise
Auto - Autos
Baby - Babys
Bach - Bäche
Ball - Bälle
Bart - Bärte
Bau - Bauten
Baum - Bäume
Becher - Becher
Bein - Beine
Beschreibung - Beschreibungen
Bett - Betten
Bier - Biere
Bild - Bilder
Birne - Birnen
Bluse - Blusen
Boss - Bosse
Brille - Brillen
Bruder - Brüder
Buch - Bücher
Bus - Busse
Chaos - Chaos
City - Citys
Cola - Colas
Computer - Computer
Dach - Dächer
Decke - Decken
Ding - Dinge
Diskette - Disketten
Dolmetscherin - Dolmetscherinnen
Dose - Dosen
Drucker - Drucker
Eimer - Eimer
Eintrag - Einträge
Embryo - Embryonen|Embryos
Ergebnis - Ergebnisse
Erlebnis - Erlebnisse
Etage - Etagen
Fabrik - Fabriken
Fass - Fässer
Fehler - Fehler
Fenster - Fenster
Fernseher - Fernseher
Finger - Finger
Firma - Firmen
Flasche - Flaschen
Flugzeug - Flugzeuge
Fluss - Flüsse
Form - Formen
Frage - Fragen
Frau - Frauen
Freundin - Freundinnen
Füller - Füller
Funktion - Funktionen
Fuß - Füße
Fußboden - Fußböden
Gardine - Gardinen
Garten - Gärten
Gast - Gäste
Gitarre - Gitarren
Haus - Häuser
Heft - Hefte
Hemd - Hemden
Hose - Hosen
Huhn - Hühner
Hund - Hunde
Hut - Hüte
Information - Informationen
Junge - Jungen
Kaffee - Kaffees
Kapitän - Kapitäne
Karte - Karten
Kassette - Kassetten
Katze - Katzen
Kenntnis - Kenntnisse
Kette - Ketten
Kind - Kinder
Kirche - Kirchen
Kleid - Kleider
Kleiderhaken - Kleiderhaken
Kognak - Kognaks
Kommentar - Kommentare
Kran - Kräne
Kraut - Kräuter
Kreide - Kreiden
Kuchen - Kuchen
Kugel - Kugeln
Kugelschreiber - Kugelschreiber
Kuh - Kühe
Kultur - Kulturen
Kunde - Kunden
Kuss - Küsse
Lampe - Lampen
Landkarte - Landkarten
Lehrer - Lehrer
Lehrerin - Lehrerinnen
Loch - Löcher
Locher - Locher
Mädchen - Mädchen
Mandarine - Mandarinen
Mann - Männer
Maschine - Maschinen
Maus - Mäuse
Mensch - Menschen
Messe - Messen
Museum - Museen
Name - Namen
Nase - Nasen
Oma - Omas
Ordnung - Ordnungen
Organismus - Organismen
Ort - Orte
Park - Parks
Pass - Pässe
Passant - Passanten
Pferd - Pferde
Pflanze - Pflanzen
Pharao - Pharaonen
Plan - Pläne
Polizistin - Polizistinnen
Portfolio - Portfolios
Postkarte - Postkarten
Prinzip - Prinzipien
Projektor - Projektoren
Prüfung - Prüfungen
Radiergummi - Radiergummis
Radio - Radios
Rechnung - Rechnungen
Regal - Regale
Reparatur - Reparaturen
Restaurant - Restaurants
Ring - Ringe
Rock - Röcke
Schiff - Schiffe
Schinken - Schinken
Schlaf - Schlaf
Schnaps - Schnäpse
Schrank - Schränke
Schüssel - Schüsseln
Schuh - Schuhe
Schule - Schulen
See - Seen
Sessel - Sessel
Socke - Socken
Sofa - Sofas
Stadt - Städte
Star - Stars
Status - Statusse
Steak - Steaks
Straße - Straßen
Strauß - Sträuße
Stuhl - Stühle
Tasche - Taschen
Taste - Tasten
Taube - Tauben
Taxi - Taxis
Team - Teams
Tee - Tees
Telefon - Telefone
Test - Tests
Tier - Tiere
Tisch - Tische
Tochter - Töchter
Tonbandgerät - Tonbandgeräte
Tür - Türen
Übung - Übungen
Ufo - Ufos
Uhr - Uhren
Ventil - Ventile
Visum - Visa
Wald - Wälder
Wand - Wände
Wein - Weine
Weltall - Weltall
Werkstatt - Werkstätte
Wochenende - Wochenenden
Wüste - Wüsten
Wurst - Würste
Zaun - Zäune
Zeiger - Zeiger
Zeit - Zeiten
Zeitung - Zeitungen
Zeugnis - Zeugnisse
Zuschauer - Zuschauer

gruß mark
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Deutsche Modelnamen?

Beitragvon mbrod » Sa 13. Nov 2010, 00:16

der Test ergab bei mir:
Schloss - Schlosse
Gott - Gotte
Vogel - Vogeln :lol:
Gut - Güte
Gans - Ganse
Volk - Volks
Leben - Lebene
Bügel - Bügeln

Ganz gemein:
der Band - die Bände
das Band - die Bänder
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: Deutsche Modelnamen?

Beitragvon euromark » Sa 13. Nov 2010, 00:32

hab deine wörter nun übernommen. gehen nun.
vielen dank :)

aber mit den doppelbedeutungen hab ich in der tat probleme.
wie soll man damit umgehen, wenn man den fall (das/der) nicht hat?
momentan ergibt Band immer "Bände"... Ohne Kontext wird auch daraus nie "Bänder".
irgendwelche ideen?

oder neue Wörter? bin gespannt^^
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Deutsche Modelnamen?

Beitragvon mbrod » Sa 13. Nov 2010, 09:36

euromark hat geschrieben:aber mit den doppelbedeutungen hab ich in der tat probleme.
wie soll man damit umgehen
Ich habe mich mit dem Thema überhaupt nicht befasst, sodass ich da auch keine Idee habe. Ich weiß nur, dass mich Software-Fehler magisch anziehen, ich intuitiv immer ins Fettnäpfchen trete. (In diesem Fall sind es natürlich keine richtigen Softwarefehler.) z.B. war das erste Wort, was ich in deinem Inflector probiert habe "Band".

Also, gefunden habe ich noch:
Vermögen - Vermögene
Verdienst - Verdiensten
Fahrt - Fahrte
Schlauch - Schlaücher :!:
Sohn - Sohne

Und dann gibt es wohl auch Substantive, wo es anscheinend keinen Plural gibt: Vernunft.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Nächste

Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron