Mehrsprachige Community

sigma-ws

Aktives Mitglied
Hallo zusammen

Habe wieder einmal eine Frage:
Ich arbeite zurzeit an einer relativ grossen Community (neu Programmierung einer bestehenden, relativ grossen Partycommunity)...
Jetzt meine Frage: Wie würdet ihr die Mehrsprachigkeit aufbauen?
Hier meine Ideen:
die fixen Wörter/Sätze in einer "Language-Datei", in welcher die Sprachkomponenten in je eine globale Variable gespeichert werden...

Nun meine eigentliche Frage: Wie würdet ihr das Ganze in der Datenbank aufbauen? 1 Languagetabelle pro Funktion (Bsp: News --> NewsL für die Sprache, Help --> HelpL für die Sprache) oder 1 Languagetabelle für alle Funktionen, in welcher zentral alle Sprachinhalte abgespeichert werden?


Vielen Dank für eure Hilfe


Gruss
sigma
 
Das kommt drauf an. Ich habs auf beide Arten schon implementiert, weil das Konzept unterschiedlich war. Wenn die Mehrsprachigkeit "nur" die vorgegebenen Texte betrifft, also z.B. Feld-Beschriftungen, Linktexte, Bestätigungstexte, Hilfetext, dann würd ichs in einer zentralen Tabelle halten. Bei Verwendung von ASP.Net ist es nicht mal nötig, das in die Datenbank auszulagern, sondern kann komfortabel im Visual Studio in allen Sprachen direkt eingegeben werden.

Falls aber auch Texte, welche online erfasst werden (von Usern oder Admins), mehrsprachig sein sollen, würd ich den ersten Ansatz wählen, je eine Sprachtabelle pro Funktion. Das bläst zwar das DB-Modell ziemlich auf, aber ist meines Erachtens der einzig sinnvolle Ansatz.

Denkbar ist auch eine Kombination von beidem: eine zentrale Sprachtabelle für "fixe" Texte, und je eine für alle online-editierbaren Texte.

Griessli
Irene
 
Wir haben eine Zeit lang mit include-Dateien gearbeitet. Hat aber den nachteil, dass man alles 2 eingeben muss. Mittlerweile sind wir auf gettext umgestiegen, mit einer Klasse die automatisch die Sprache erkennt und einer kurzen Funktion die als Wrapper dient.

Jetzt kann man jeden text dahin schreiben wo man ihn haben will und statt echo 'text'; macht man einfach echo t('text');

Hat auch einen weiteren Vorteil: es geht auch ohne Übersetzungen, da die Funktion t einfach nur übersetzt wenn es geht und wenn nicht gibt sie einfach den Eingabetext aus.
 
Zurück
Oben