mehrsprachige webseiten

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
k-5
Mitglied
Beiträge: 166
Registriert: 05.06.2003 23:21
Wohnort: soa kaff
Kontaktdaten:

mehrsprachige webseiten

Beitrag von k-5 »

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 ..
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 :)
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

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.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
k-5
Mitglied
Beiträge: 166
Registriert: 05.06.2003 23:21
Wohnort: soa kaff
Kontaktdaten:

Beitrag von k-5 »

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 will mein auto polieren ! ..

ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das :)
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

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.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

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
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

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.
Für jede Sprache ne Table.....Wieviele Sprachen gibts?

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...
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Und so willst Du Texte/Artikel/Inhalte verwalten? Viel Spaß...
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

itst hat geschrieben:Und so willst Du Texte/Artikel/Inhalte verwalten? Viel Spaß...
ehm irgendwo muss ich ja sagen bzw. eine Zuweisung treffen das gehört zu dem und das zu dem......

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....
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

So isses. Und von wegen Relationalität, Normalform und so... Das ist alles nur nützlich, wenns nützlich ist. Ansonsten ist es hinderlich ;)
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

itst hat geschrieben:So isses. Und von wegen Relationalität, Normalform und so... Das ist alles nur nützlich, wenns nützlich ist. Ansonsten ist es hinderlich ;)
I.d.R. sollte man aber zumindest die ersten drei Normalformen beherzigen.....Die gibt es schließlich nicht ohne Grund....
Antworten

Zurück zu „Coding & Technik“