Mailinglisten-Archive |
Hi Ralf, Zitat von Ralf Eggert: > für ein neues Projekt möchte ich Teile der Website mehrsprachig > anbieten. Die Mehrsprachigkeit bezieht sich auf folgende Textelemente: > > 1. Komplette Artikel > 2. Fehlermeldungen, Feldbezeichnungen > 3. Stammdatentabellen > > Lösung zu 1.: > Ich erweitere die Datenbanktabelle, in der ich meine Artikel speichere, > um eine Spalte mit dem Sprachschlüssel (z.B. DE oder EN). > > Lösung zu 2.: > Die Texte (Fehlermeldungen, Feldbezeichnungen bei Formularen, > Überschriften, etc.) werden in einem Array vorgehalten. Zu 2.: Ich habe das bei mir anders geloest. Ich habe fuer jede Sprache eine Datei mit Texten, die ich inkludiere. Beispiel: Datei fuer de (text_de.php): $sLand = 'Deutschland'; Datei fuer en (text_en.php): $sLand = 'Germany'; Deine und meine Loesungen haben natuerlich beide ihre Vor- und Nachteile. :-) Die Loesung mit den Arrays gefaellt mir persoenlich nicht. Sie ist mir zu unuebersichtlich, kompliziert und fehleranfaellig. Da bevorzuge ich, bei Erweiterungen eben einmal kurz mit Kopieren und Einfuegen 10 Sprachdateien anfassen zu muessen. Das ist fuer mich der einzige Nachteil meiner Loesung. > Lösung zu 3.: > Hier kommt nun mein Problem. Und zwar habe ich in der Datenbank mehrere > Tabellen, die Stammdaten enthalten, z.B. eine Tabelle mit Hobbys. Wenn > ich dies wie unter 1. aufbaue, sähe meine Tabelle in etwa wie folgt aus. > > ------------------------- > h_id h_spr h_name > ------------------------- > 1 de Reisen > 2 de Wandern > 3 en travelling > 4 en hiking > ------------------------- > > Damit könnte ich mir problemlos die passende Auswahllisten für > mehrsprachige Formulare basteln. Problem: Wenn jemand "Reisen" auswählt, > soll einem englischsprachigen Besucher natürlich "traveling" angezeigt > werden. Ich bekomme mit der Lösung also Probleme bei der Referenzierung. > > Meine Idee wäre nun, in dieser Stammdatentabelle nur eine Sprache (z.B. > deutsch) aufzunehmen und die Übersetzungen ebenfalls aus einem > Spracharray wie unter 2. zu holen. Fuer meinen Geschmack zu kompliziert und inkonsistent. Ich habe es fuer meine Website so geloest: ------------------------- h_id h_spr h_name ------------------------- 1 de Reisen 2 de Wandern 1 en travelling 2 en hiking ------------------------- D.h. h_id gruppiert die Begriffe die zusammen gehoeren, h_spr bezeichnet die Sprache. Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive