forTeesSake Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 hi und hallo, ich hab vor langer zeit mal einen kundenauftritt erstellt. dieser hat die vorgabe sowohl in deutsch als auch französisch und englisch dargestellt zu werden. es gibt ca 60 verschiedene seiten. es ist ein drei spalten layout. und diese drei spalten sind genau mein problem ich habe das ganze ziemlich umständlich gelöst und wollte nun fragen, wie man da am besten vorgeht. im moment siehts bei mir so aus, dass ich für jede seite ein include habe in dem ich dann in den einzelnen spalten die aktuelle sprache abfrage und je nachdem den text ausgebe. beispiel: <table> <tr> <td> <font> <? if($lang == "e"){ ?> Hello Spalte1 <? }else{ ?> <? if($lang == "f"){ ?> Bonjour Spalte1 <? }else{ ?> Hallo Spalte1 <? } ?> <? } ?> </font> </td> <td> <font> <? if($lang == "e"){ ?> Hello Spalte2 <? }else{ ?> <? if($lang == "f"){ ?> Bonjour Spalte2 <? }else{ ?> Hallo Spalte2 <? } ?> <? } ?> </font> </td> <td> <font> <? if($lang == "e"){ ?> Hello Spalte3 <? }else{ ?> <? if($lang == "f"){ ?> Bonjour Spalte3 <? }else{ ?> Hallo Spalte3 <? } ?> <? } ?> </font> </td> </tr> </table> und das sieht alles mistig aus und ist auch nicht schön zu pflegen. der content ist ja hier nicht so kurz wie oben dargestelllt, sondern da komen schon mal 500 wörter in einer spalte vorkommen. plus formatierungen plus tabellencode...da dauert das anlegen und ändern ewig. nun wollte ich gerne wissen wie man da am besten vorgeht. ich hatte zwei ideen, die aber nicht wirklich gut funktionieren. 1.content in die datenbank schreiben. -> das klappt aber nur gut, wenn im content selbst keine formatierungen und/oder tabellen drin sind. denn wenn sich da was am layout verändert ist es ja der reinste horror alles in der datenbank anzupassen. 2. language includes auch nicht gerade einfach zu handeln. im grunde müsste man ja dann für für jede der drei spalten in einer seite ein include erstellen (z.b. e_indexSpalte1 e_indexSpalte2 e_indexSpalte3 usw.) da enstehen dann ca 180 dateien alleine für den content 3.language packs variablen mit content für jede spalte anlegen. also z.b. $e_indexSpalte1 = "<table><tr><td>Content english 1</td></tr></table>"; $e_indexSpalte2 = "<table><tr><td>Content english 2</td></tr></table>"; $e_indexSpalte3 = "<table><tr><td>Content english 3</td></tr></table>"; und dann an den entsprechenden stellen <?php echo $e_indexSpalte1;?> etc. aber so richtig gefälllt mir das auch nicht. hat da jemand nen link zum thema? oder vielleicht möchte auch gerne jemand ein paar ansätze anbringen. ich wäre für jeden tipp dankbar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyCats Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 Hmm ich hätte das evtl so gelöst: urlbla.de/de/index.htm Sprich das du für jede Sprache nen eigenes Verzeichnis mit kopien anlegst. Läßt sich dann auch einfach um eine weitere sprache erweitern. Das Layout packst in eine css Datei um da nur einmal was ändern zu müssen, zb Farben und es für alle Sprachen gilt. Allerdings kann man nur noch schwer tabellen strukturen ändern. Ich denke den perfekten vorschlag wird es nicht geben, jeder Vorschlag hat so seine vor und nachteile. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 Benutze ein Template-System. Z.B. das IT-Template-System von PEAR. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 benutzte das SmartyTemplateSystem mit Config Files: SmartyTemplateSystem: http://smarty.php.net/ Config Files: http://smarty.php.net/manual/en/config.files.php siehe auch: http://www.phpinsider.com/smarty-forum/viewtopic.php?t=84 für solche eine "größere" Sache ist es eigentlich immer schöner mit Templates zu arbeiten! Ich verwende Smarty bei allen Scripten, bei denen ich HTML ausgebe. Solche gedanken sollte man sich aber vor einem Projekt machen, nicht mittendrinn.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 13. Juli 2004 Autor Teilen Geschrieben 13. Juli 2004 ja, an smarty hatte ich ganz kurz gedacht. hab auch schonmal ne seite damit gemacht, aber die idee hab ich gleich wieder verworfen, da ich offensichtlich nicht genug darüber wusste wozu smarty in der lage ist. ich werde mir die ganze sache nochmal näher anschauen! trotzdem bin ich noch skeptisch wie das so funktionieren soll. dann muss ich ja in einer template datei massig variablen angeben, z.b. (pseudo) <table> <tr> <td> $spalte1Zeile1Text <table> <tr> <td> $spalte1Zeile1TextInnerZeile1 </td> </tr> <tr> <td> $spalte1Zeile1TextInnerZeile2 </td> </tr> </table> </td> <td> $spalte2Zeile1Text <table> <tr> <td> $spalte2Zeile1TextInnerZeile1 </td> </tr> <tr> <td> $spalte2Zeile2TextInnerZeile2 </td> </tr> </table> </td> </tr> </table> oder wieder formatierungscode in die config bzw variablen schreiben.... aber mal sehn. wahrscheinlich sollte ich erstmal alles in ruhe durchlesen alles wird gut Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 anstatt von <table> <tr> <td> <font> <? if($lang == "e"){ ?> Hello Spalte1 <? }else{ ?> <? if($lang == "f"){ ?> Bonjour Spalte1 <? }else{ ?> Hallo Spalte1 <? } ?> <? } ?> </font> </td> <td> <font> <? if($lang == "e"){ ?> Hello Spalte2 <? }else{ ?> <? if($lang == "f"){ ?> Bonjour Spalte2 <? }else{ ?> Hallo Spalte2 <? } ?> <? } ?> </font> </td> <td> <font> <? if($lang == "e"){ ?> Hello Spalte3 <? }else{ ?> <? if($lang == "f"){ ?> Bonjour Spalte3 <? }else{ ?> Hallo Spalte3 <? } ?> <? } ?> </font> </td> </tr> </table> dann so <table> <tr> <td> <font> { #Hello# } Spalte1 </font> </td> <td> <font> { #Hello# } Spalte2 </font> </td> <td> <font> { #Hello# } Spalte1 </font> </td> </tr> </table> variablen aus configurationen unterscheiden sich darin von normalen variablen, dass sie mit #VarName# anstatt $VarName geschrieben werden. dann haste deine CFG-Files: (für jede Sprache eine) EN: Hello = "Hello" . . . DE: Hello = "Hallo" . . . FR: Hello = "Bonjour" . . . dann einfach je nach sprachwahl die cfg files auslesen und fertig... siehe: http://smarty.php.net/manual/en/config.files.php http://smarty.php.net/manual/en/language.function.config.load.php Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.