![]() |
Webseite mehrsprachig gestalten
Moin,
ich bin gerade dabei, eine mehrsprachige Webseite zu erstellen. Die Beschriftungen, die immer fest sind, kann ich leicht in eine php-Datei auslagern, die immer so aufgebaut ist:
Code:
Also nur als Beispiel. Je nach gewählter Sprache binde ich per include() dann die zugehörige Sprachdatei ein. So habe ich mir das zumindest vorgestellt und ich denke, das geht auch so ohne Probleme. Doch wie löst man das mit dynamischen Texten? Momentan werden diese in der Datenbank abgelegt, doch ich möchte eigentlich nicht pro Sprache eine extra Spalte anlegen. Geht das irgendwie einfacher und elegenater oder ist das bereits eine elegante Lösung?
$lang['wellcome'] = 'Willkommen';
$lang['firm'] = 'Firma'; |
Re: Webseite mehrsprachig gestalten
Ich würde die Tabelle um ein weiteres Feld erweitern, dort das land ablegen, und die where-Clause der Abfrage um dieses Feld erweitern.
|
Re: Webseite mehrsprachig gestalten
Zitat:
|
Re: Webseite mehrsprachig gestalten
Um eine Erweiterung der Tabelle wirst du wohl nicht herumkommen. Aber du kannst vermeiden pro Sprache ein weiteres Feld anzulegen. dafür hast du aber pro Sprache und String einen Datensatz.
|
Re: Webseite mehrsprachig gestalten
Hi
Zitat:
Code:
Das müsste schon gehen, aber ob das nun eine so gute Lösung ist, kann ich gerade nicht beurteilen, aber schlecht wäre das sicher auch nicht. :)
id | lang | title | text
------------------------------------------------------- 1 | de | Der Titel | Text auf Deutsch 2 | en | The title | Text in English |
Re: Webseite mehrsprachig gestalten
Die Datensatze brauchen nur noch einen Kenner, das sie zusammengehören:
Code:
id | str | lang | title | text
--------------------------------------------------------- 1 | TITLE | de | Der Titel | Text auf Deutsch 2 | TITLE | en | The title | Text in English 3 | WELCOME | de | Willkommen | Herlich willkommen 4 | WELCOME | de | Welcome | ...
SQL-Code:
Abfrage dann select tirle, text from tabelle where str = :strname and lang = :lang;
|
Re: Webseite mehrsprachig gestalten
Moin
Danke. Also jeden String werde ich dann nicht in die DB schreiben, das wäre wohl übertrieben, aber die Texte, die dynamisch über's Adminpanel angelegt werden können, werde ich dann so verwalten. :) |
Re: Webseite mehrsprachig gestalten
Also das WoltLab Burning Book, das ja multilingual ist, macht das genauso. Optional gäbe es noch die Möglichkeit, eine PHP-Sprachdatei dynamisch zu erstellen, jedesmal wenn die Texte geändert werden.
|
Re: Webseite mehrsprachig gestalten
nur nebenbei - welcome mit einem l
grüße Nico |
Re: Webseite mehrsprachig gestalten
Hi
@3_of_8: Danke, dann löse ich das so wie das WoltLab Burning Book. Dynamische Dateien anlegen ist erstens langsam und zweitens gefällt's mir nicht. *g* @Nicodius: :oops: Das mache ich immer wieder falsch. |
Re: Webseite mehrsprachig gestalten
Hoppala, ich meinte Burning Board.
|
Re: Webseite mehrsprachig gestalten
beim Beispiel von mkinzler würde ich "str" und "lang" durch eine ID ersetzen und diese mit anderen Tabellen verknüpfen. Denn es macht nicht wirklich sinn den Titel 2 mal zu schreiben wenn man diesen per ID mit einer anderen Tabelle verknüpfen kann und somit platz spaart. Auch die Sprache würde ich per ID mit einer Tabelle verknüpfen in welcher die Sprachen sind.
|
Re: Webseite mehrsprachig gestalten
Es war auch nur als Bsp zur Verdeutlichung gedacht.
|
Re: Webseite mehrsprachig gestalten
@Jens: Danke, so habe ich das auch gemacht. Das hat auch den Vorteil, dass man Sprachen dynamisch anlegen kann. :)
|
Re: Webseite mehrsprachig gestalten
Genau deswegen würd ich es auch so machen. Da kann man jederzeit eine neue Sprache hinzufügen ohne die Struktur der Datenbank ändern zu müssen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz