mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.01.2003, 23:31   #1
TP-Junior
 
Registriert seit: Jan 2003
AnoToto macht alles soweit korrekt

Wie realisiere ich am Besten eine mehrsprachige Seite?


Ich habe eine bestehende Seite (mit Mitgliederbereich, realisiert über PHP/MySQL - aber ohne CMS). Nun besteht Bedarf die Seite mehrsprachig anzubieten. Was mir momentan als Lösung vorschwebt, wäre alle Texte (und Wörter) die auf der Seite vorkommen, in eine DB zu packen, und dann bei Aufruf (mit der gewünschten Sprache als Parameter) die entsprechende Seite zu generieren.
Nur stelle ich mir das etwas aufwendig vor, dies für die gesamte Seite so umzusetzen (dabei ist sie noch nicht einmal sonderlich umfangreich). Außerdem würde es da wohl sicherlich auch Probleme mit dem Layout geben, da die Länge der einzelnen "Textbausteine" von Sprache zu Sprache variieren wird.
Für jede Sprache eine eigene (statische) HTML-Seite zu erstellen, ist wohl ähnlich aufwendig und auch nicht der Weisheit letzter Schluß.
An anderer Stelle wurde mir geraten für jede Sprache eine PHP-Datei anzulegen, in der für alle vorkommenden Texte eine Variable definiert wird, und diese "Sprachdatei" dann über includes in die jeweilige Seite einzubinden.
Bei beiden Lösungen sehe ich aber das Problem, das auf der Seite auch längere - bildschirmfüllende Texte vorkommen, die auch in verschiedenen Sprachen erscheinen müssen (plus die span-Tags zum Formatieren mit css). Wenn ich mir dann so etwas "on-the-fly" generieren lasse, ist das wohl eher schlecht für die Geschwindigkeit.

Bei den bisher erwähnten Lösungen (außer dem Fall "1 statische HTML-Seite für jede Sprache") sehe ich zwei (größere?) Probleme:
1. Layoutkonflikte. Ich möchte das Layout möglichst nur einmal machen, und den Content davon getrennt (ja, ich weiß, CMS) machen - nur sehe ich bei vielen verschiedenen Sprache ein Problem der Übertragbarkeit, da sich da doch schon größere Unterschiede im Platzbedarf von Ausdrücken ergeben könnten.
2. Geschwindigkeit / Bandbreite / Transfervolumen. Sowohl die Lösung mit der DB, wie auch mit der "Sprachdatei" gehen wohl zu Lasten der Geschwindigkeit

Wie würdet Ihr denn an das Problem herangehen, bzw. kennt Ihr Beispiele wie so etwas realisiert wurde?
AnoToto ist offline   Mit Zitat antworten


Alt 26.01.2003, 23:59   #2
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
zu1:
Ein Layout sollte immer Content unabhängig sein! d.h. Egal, wie viel Text oder sonstwas im Content Bereich steht, es darf sich nichts verschieben oder ändern. Das ist halt der Job des Webmasters.

zu2:
Wenn sich die Ladezeiten durch den gebrauch von Datenbanken verändern, solltest du deinen Provider wechseln!!! Ob du nun eine Sprache aus einer Datenbank ziehst oder 80, die Übertragungsgeschwindigkeit und Menge sollte sich nicht verändern. Du übertragst ja auch nicht immer alle Sprachen, sondern nur das eine Ergebnis deiner Datenbankabfrage.

Fazit: Sowas geht nur über eine Datenbank oder das includen von verschiedenen Spachseiten in dein Design! Zumindest, wenn man es einfach haben möchte! Dazu erstellst du eine Datei mit dem Design und über Variablen lädst du dann andere Inhalte in die Seite! Beispiele gibt es dazu überall (hier im TP oder z.B. bei mir www.bushidoalfeld.de )
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!
the0bone ist offline   Mit Zitat antworten
Alt 27.01.2003, 00:23   #3
TP-Junior
 
Registriert seit: Jan 2003
AnoToto macht alles soweit korrekt
Wegen dem Layout, ich meine z.B. folgenden Fall:
Eingabeformular mit Abfrage eines Codes.
Auf englisch schreibe ich da jetzt unter Code einfach: "Please note that the input is casesensitive." Wenn ich das jetzt auf deutsch (oder französisch) ausdrücken möchte, "zerreißt" es mir das Layout (d.h. den Abstand zwischen Eingabefeldern) weil der Text einfach viel länger wird. (z.B. müßte ein vordefinierter Bereich für solche Hilfstexte entsprechend größer sein, was dann aber wieder für alle anderen Fälle (mit "kleinen" Hilfstexten schlecht aussehen würde).

Und wegen der Datenbank: wie sollte denn die Struktur von so einer DB aussehen? So wie mir das vorschwebt, müßte ich doch dann für jede Sprache eine Tabelle machen, und dann für jeden Textbaustein ein (z.B. durchnumeriertes) Feld. Und das wirkt sich dann nicht (spürbar) negativ auf die Seite aus, wenn ich meinetwegen 30 Abfragen (für 30 Textbausteine) auf einer Seite habe?
Tut mir leid, wenn die Frage blöd klingt, aber damit habe ich keine Erfahrung, und bevor ich mich da an eine konkrete Umsetzung mache, wollte ich mich eben erst einmal informieren.
(Mit PHP und mySQL habe ich schon Erfahrung, aber eben nicht bei der Umsetzung von so etwas...).

Könnte ich dann evtl. ein Beispiel für den Aufbau einer solchen DB sehen (wenn man Ansatz falsch ist)?

Und sorry, falls die Frage zu blöd war. :-/
AnoToto ist offline   Mit Zitat antworten
Alt 27.01.2003, 01:03   #4
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
hab selbst schon mal mit der materie zu tun gehabt und dies in einem mix aus db und php gelöst:
für die sprachabhängigen Dinge, die im Layou vorkamen, habe ich ein zweidimensionales assoziatives Array verwendet, das in etwa so aussieht:

$translate[menu][de]='Hauptmenü';
$translate[menu][en]='Main menu';
$translate[menu][..]='...;

$translate[anschnallen][de]='Bitte schnallen Sie sich an';
$translate[anschnallen][en]='Fasten your seatbelts';
$translate[anschnallen][..]=...;
....

das array wird dann entsprechend des Länderkürzels einfach in das Layout eingebunden.

für den Content wurde die db entsprechend angepasst, das ich überall da, wo sprachabhängiger content war, zwei tabellen erstellt hab.
eine mit der id und den sprachunabhängigen dingen (user, anlagedatum, fremdschlüsseln,...)
und eine tabelle, die ebenfalls die id & das sprachkennzeichen als key haben. hier kommt dann der ganze sprachquargel rein.

alternativ könntest du auch noch eine big-mamma tabelle machen, die sich alle deine texte merkt und du mit einem kombischlüssel aus id,sprache und tabellenid einen uniqe key erzeugst. so hättest eine fette tabelle für einen einfachen aufbau einer volltext suche generiert.

aber ansätze gibt viele...

schau dir einfach mal - so wie bone meinte - ein paar open source projetke an, die ebenfalls mehrsprachig programmiert wurden (os-commerce z.b.)
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 27.01.2003, 11:55   #5
TP-Junior
 
Registriert seit: Jan 2003
Bill Gosper macht alles soweit korrekt
musst ja nicht jeden textbaustein einzeln abfragen.
lies gleich den kompletten datensatz für die gewählte seite aus where sprache = $auswahl order by (von anfang der seite bis ende).

das mit dem includen geht auch recht einfach:
bau dein gerüst für die seite, bestücke alle multilingualen textfelder mit switch ($sprache) { case en: include 'english.php'; echo $textbaustein1; break; case ger: ... }
und in der english.php speicherst du die texte in variablen.
so musst du dir keine probleme um etwaige seitenlayouts machen. hast ein sprachunabhängiges gerüst und musst das nur einmal textlängenkompatibel machen.
mach dir bloß keine sorgen um deine ladezeiten, dann lass lieber ein JPEG weg.
Bill Gosper ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Wie realisiere ich am Besten eine mehrsprachige Seite? Wie realisiere ich am Besten eine mehrsprachige Seite?
« Wer macht mir ein wbboard Style? | Abfrage »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:21 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67