mehrsprachige webseiten
mehrsprachige webseiten
ich denk schon länger drüber nach wie man auf ne anständige weise mehrsprachigen dynamischen inhalt in eine webseite bringt ..
(der phpbb ansatz mit einem array von sprachfetzen ist nicht geeignet da es sich nunmal um dynamischen inhalt handelt)
wie setzt man sowas in einer datenbank um ..
mir fallen eigentlich nur 2 möglichkeiten ein:
1) den text direkt in die tabelle mit rein .. (also ne extra spalte für die einzelnen sprachen)
-> führt zu unter umständen seehr großen tabellen .. (bzw .. halt sehr viel overhead der nicht benötigt wird)
2) jedes textstückchen in eine seperate tabelle die dann verlinkt wird
-> führt zu überaus komplizierten queries .. und auch schnell zu inkonsistenten datenbanken ..
gibts da vielleicht noch ne 3te möglichkeit ? .. bzw .. hat jemand schonmal sowas gemacht und kann mir sagen wie eines der beiden sachen bei ihm funktioniert hat ..
(der phpbb ansatz mit einem array von sprachfetzen ist nicht geeignet da es sich nunmal um dynamischen inhalt handelt)
wie setzt man sowas in einer datenbank um ..
mir fallen eigentlich nur 2 möglichkeiten ein:
1) den text direkt in die tabelle mit rein .. (also ne extra spalte für die einzelnen sprachen)
-> führt zu unter umständen seehr großen tabellen .. (bzw .. halt sehr viel overhead der nicht benötigt wird)
2) jedes textstückchen in eine seperate tabelle die dann verlinkt wird
-> führt zu überaus komplizierten queries .. und auch schnell zu inkonsistenten datenbanken ..
gibts da vielleicht noch ne 3te möglichkeit ? .. bzw .. hat jemand schonmal sowas gemacht und kann mir sagen wie eines der beiden sachen bei ihm funktioniert hat ..
ich will mein auto polieren ! ..
ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das
ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das

- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
Möchtest Du alle Inhalte in allen Sprachen haben oder nur Teile?
Reden wir tatsächlich vomn Inhalten oder von Steuerelementen der Site?
BTW, schau Dir mal meinen Blog an: http://www.itst.org/web/ und schalte dabei in Deinen Browser die Sprache um.
Reden wir tatsächlich vomn Inhalten oder von Steuerelementen der Site?
BTW, schau Dir mal meinen Blog an: http://www.itst.org/web/ und schalte dabei in Deinen Browser die Sprache um.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
phpBB.de Ehrenadministrator

es sollten alle inhalte in mehreren sprachen sein .. (natürlich falls mal ein text nochnicht übersetzt wurde .. sollte der dann in ner default sprache angegeben werden)
ich denk da an tabellen die unter umständen 5 oder mehr spalten hat für eine sprache (also doch etwas komplexer als ein normales weblog) ..
und wenn ich jetzt noch will das man noch sprachen im nachhinein einfach (bzw mit angemessenem aufwand) einfügen können soll .. wird wohl nurnoch lösung 2 übrig bleiben ..
ich denk da an tabellen die unter umständen 5 oder mehr spalten hat für eine sprache (also doch etwas komplexer als ein normales weblog) ..
und wenn ich jetzt noch will das man noch sprachen im nachhinein einfach (bzw mit angemessenem aufwand) einfügen können soll .. wird wohl nurnoch lösung 2 übrig bleiben ..
ich will mein auto polieren ! ..
ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das
ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das

- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
Nimm doch pro Sprache eine Tabelle, in der die Inhalte drinstehen.
Für die Strukturbegriffe wie die Navigation würde ich das hardcoded mit Spracharrays machen, ähnlich wie phpBB.
Also:
Tabelle 'articles'
id, title, author, publishdate, ...
Tabelle lang_de
id (siehe id aus articles), title, text, ...
Tabelle lang_en
id (siehe id aus articles), title, text, ...
Tabelle lang_es
id (siehe id aus articles), title, text, ...
Dann eine Weiche, mittels HTTP_ACCECP_LANGUAGE oder per Auswahlformular, und im Code noch eine Defaultsprache eingestellt.
Für die Strukturbegriffe wie die Navigation würde ich das hardcoded mit Spracharrays machen, ähnlich wie phpBB.
Also:
Tabelle 'articles'
id, title, author, publishdate, ...
Tabelle lang_de
id (siehe id aus articles), title, text, ...
Tabelle lang_en
id (siehe id aus articles), title, text, ...
Tabelle lang_es
id (siehe id aus articles), title, text, ...
Dann eine Weiche, mittels HTTP_ACCECP_LANGUAGE oder per Auswahlformular, und im Code noch eine Defaultsprache eingestellt.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
phpBB.de Ehrenadministrator

Ich habe das auch mit nem Sprach-Array gelöst.
Bzw mit 20-30 Arrays.
Jede Seite bekommt ein eigenes Array in einer eigenen Datei.
Die Dateien liegen dann z.B. so:
/lang/deu/home.php
/lang/deu/faq.php
Und dann ist in jeder Datei ein anderes Array. Jetzt includet man die Dateien (Für die Sprache einfach den Pfad anpassen).
Jetzt kann ich Dynamsich für "Das ist ist die FAQ, herzich willkommen" echo $lang_faq("das_ist_faq"); ausgeben.
Wenn ich ne neue Seite mache, bekommen alle Projekte erst die Deutsche Sprachdatei, bis die weiteren dann fertig sind.
Gut, auf MySQL-Basis würde das bestimmt genau so gehen... MySQL lädt dann ein Array voll.
Grüße
Dennis
Bzw mit 20-30 Arrays.
Jede Seite bekommt ein eigenes Array in einer eigenen Datei.
Die Dateien liegen dann z.B. so:
/lang/deu/home.php
/lang/deu/faq.php
Und dann ist in jeder Datei ein anderes Array. Jetzt includet man die Dateien (Für die Sprache einfach den Pfad anpassen).
Jetzt kann ich Dynamsich für "Das ist ist die FAQ, herzich willkommen" echo $lang_faq("das_ist_faq"); ausgeben.
Wenn ich ne neue Seite mache, bekommen alle Projekte erst die Deutsche Sprachdatei, bis die weiteren dann fertig sind.
Gut, auf MySQL-Basis würde das bestimmt genau so gehen... MySQL lädt dann ein Array voll.
Grüße
Dennis
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
Für jede Sprache ne Table.....Wieviele Sprachen gibts?itst hat geschrieben:Nimm doch pro Sprache eine Tabelle, in der die Inhalte drinstehen.
Für die Strukturbegriffe wie die Navigation würde ich das hardcoded mit Spracharrays machen, ähnlich wie phpBB.
Also:
Tabelle 'articles'
id, title, author, publishdate, ...
Tabelle lang_de
id (siehe id aus articles), title, text, ...
Tabelle lang_en
id (siehe id aus articles), title, text, ...
Tabelle lang_es
id (siehe id aus articles), title, text, ...
Dann eine Weiche, mittels HTTP_ACCECP_LANGUAGE oder per Auswahlformular, und im Code noch eine Defaultsprache eingestellt.
dann lieber:
lang_var
var_id | var_name
language
lang_id | lang_name
lang_mapping
lang_id | var_id | lang_value
was auch noch Verbesserungspotential hat...
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
ehm irgendwo muss ich ja sagen bzw. eine Zuweisung treffen das gehört zu dem und das zu dem......itst hat geschrieben:Und so willst Du Texte/Artikel/Inhalte verwalten? Viel Spaß...
Wenn ich von n Landessprachen ausgehe kann ich nicht n Tables anlegen die alle das selbe aussagen....
Genausowenig kann ich n Spalten anlegen für n Sprachen, dass wäre keine relationelle DB mehr, des weiteren wird MySQL dann träge bzw. langsam.......
Vom Prinzip würde ich bei Templates für jede Landessprache einen Unterordner erstellen darin dann eine File die überall gleichaufgebaut ist ins Template einbinden.....
Den restlichen Teil der aus der DB generiert wird sollte in dieser Form ungefähr ablaufen.....
Um z.B. ermitteln zu können welche Language Text habe ich im spanischen noch nicht gesetzt o.Ä.
Jede Lösung hat seine Schattenseiten....
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten: