Hallo zusammen,
ich arbeite derzeit an einem CMS-System und bin nun beim Thema mehrsprachigkeit angekommen. In der vergangenheit habe ich bereits mehrsprachigkeit implementiert, bin aber jedesmal auf Probleme gestoßen die zum teil sogar nicht mehr zu bewältigen wahren.
Nachtrag: Die erwähnte mehrsprachigkeit bezieht sich auf die vom user eingegeben Texte und nicht auf die CMS Oberfläche selbst.
Ein Modell das zu jeder sprache den text in separate, den sprachen zugeordneten, felder speichert.
Problem:
Bei größeren projekten ist eine erweiterung der sprachen mit enormen aufwand verbunden.
Eine weitere Idee war es die Sprachen zentral zu speichert.
lang_titel
lang_text
irgendeine_tabelle
Problem:
Als irgendwann eine Suchfunktion zur Debatte stand, musste ich feststellen dass ich über alle Tabellen gehen muss um z.b. herauszufinden wo der lang_text mit der id 5 verknüpft ist. Also auch Schrott!
Eine weitere Idee war es für jede Tabelle in der übersetzungstexte auftauchen, eine eigene lang tabelle einzubinden. Diese Konzept habe ich aber nie umgesetzt da es das volumen der DB verdoppel bzw. verdreifachen würde.
Somit stehe ich nun wieder da und überlege wie ich ein sprachenmodell umsetzen soll.
Am liebsten würde ich bei der zentralen speicherung bleiben und diese dann um 2/3 Felder erweitern, in dennen ich speichern kann wo der text verwendet wird.
lang_titel
Somit währe das ganze beliebig um sprachen erweiterbar und sollte mein damaliges Problem mit der Suche abfangen.
Da ich aber nicht wieder auf die schnauze fallen will, dachte ich mir ich Stelle das hier mal zu Diskussion und höre mir eure Ansätze an, sofern ihr diese teilen möchtet.
Über Links die sich mit diesem Thema befassen würde ich mich natürlich auch freuen.
Schönen Gruß
Squall
ich arbeite derzeit an einem CMS-System und bin nun beim Thema mehrsprachigkeit angekommen. In der vergangenheit habe ich bereits mehrsprachigkeit implementiert, bin aber jedesmal auf Probleme gestoßen die zum teil sogar nicht mehr zu bewältigen wahren.
Nachtrag: Die erwähnte mehrsprachigkeit bezieht sich auf die vom user eingegeben Texte und nicht auf die CMS Oberfläche selbst.
Ein Modell das zu jeder sprache den text in separate, den sprachen zugeordneten, felder speichert.
Code:
+----+----------+----------+---------+---------+ | id | titel_de | titel_en | text_de | text_en | +----+----------+----------+---------+---------+
Bei größeren projekten ist eine erweiterung der sprachen mit enormen aufwand verbunden.
Eine weitere Idee war es die Sprachen zentral zu speichert.
lang_titel
Code:
+-----+---------+---------+ | id | lang | titel | +-----+---------+---------+ | int | varchar | varchar | +-----+---------+---------+
Code:
+-----+---------+------+ | id | lang | text | +-----+---------+------+ | int | varchar | text | +-----+---------+------+
Code:
+-----+---------------+--------------+ | id | lang_titel_id | lang_text_id | +-----+---------------+--------------+ | int | int | int | +-----+---------------+--------------+
Als irgendwann eine Suchfunktion zur Debatte stand, musste ich feststellen dass ich über alle Tabellen gehen muss um z.b. herauszufinden wo der lang_text mit der id 5 verknüpft ist. Also auch Schrott!
Eine weitere Idee war es für jede Tabelle in der übersetzungstexte auftauchen, eine eigene lang tabelle einzubinden. Diese Konzept habe ich aber nie umgesetzt da es das volumen der DB verdoppel bzw. verdreifachen würde.
Somit stehe ich nun wieder da und überlege wie ich ein sprachenmodell umsetzen soll.
Am liebsten würde ich bei der zentralen speicherung bleiben und diese dann um 2/3 Felder erweitern, in dennen ich speichern kann wo der text verwendet wird.
lang_titel
Code:
+-----+---------+---------+---------+-------------+---------------+ | id | lang | titel | tabelle | tabellen_id | tabellen_feld | +-----+---------+---------+---------+-------------+---------------+ | int | varchar | varchar | varchar | int | varchar | +-----+---------+---------+---------+-------------+---------------+
Da ich aber nicht wieder auf die schnauze fallen will, dachte ich mir ich Stelle das hier mal zu Diskussion und höre mir eure Ansätze an, sofern ihr diese teilen möchtet.
Über Links die sich mit diesem Thema befassen würde ich mich natürlich auch freuen.
Schönen Gruß
Squall
Kommentar