Mehrsprachige Webseite - womit setzt man es am besten um? Gettext, xml, Datenbank ...
Was ich auf keinen Fall möchte ist dieser Anhang an der URL (lang=de)....
In einem anderen (kleineren) Projekt habe ich das mal mit php-Dateien (und eben dieser get-Variante) gemacht, fand aber die Pflege der php-Datein sehr unübersichtlich und aufwändig.
Tipps?
Mehrsprachigkeit
-
-
In einem anderen (kleineren) Projekt habe ich das mal mit php-Dateien (und eben dieser get-Variante) gemacht, fand aber die Pflege der php-Datein sehr unübersichtlich und aufwändig.
Ein wunderbares Beispiel für den Einsatz von Sessions -
hängt davon ab, ob du die texte in der datenbank haben willst oder in php-dateien
-
Ich drück es mal so aus:
bei der Datnbankvariante könnte ich auf Anhieb sehen, wo in welcher Sprache noch keine "Variable" hinterlegt ist (da das Feld dann einfach leer wäre), bei der php-Variante käme schneller ein copy&paste Fehler rein (wenn ich z.B. um 20 Variablen erweitere aber nur 19 kopiere).
Oder hab ich da so einen grundsätzlichen Denkfehler?XML oder gettext (also) lieber nicht?
-
also in punkto fehleranfälligkeit würd ich eher zu xml greifen bei statischen texten
sollen die texte per cm pflegbar sein dann datenbank
und bei der php-variante empfiehlt sich konstanten zu definieren und je nach sprachauswahl die entsprechende datei einzubinden -
per modrewrite umschreiben später
folgende url:
Und wenn ich jetzt über das Menu die Sprache ändern möchte? Auf einer "normalen" Seite funktioniert das mit
hier aber nicht, da ja noch die id dranhängt...
Im Menu kann ich ja nicht im Link die id dranhängen, hab auch noch andere Seiten
Geht das überhaupt? -
also der eigentlich gängige weg ist die sprachauswahl separat zu machen und die auswahl in der session zu speichern.
oder du prüfst was beim seitenaufbau in $_GET steht und hängst die variablen beim sprachwechsel automatisch hinten dran.
so dass beim sprachwechsel auf egal welcher seite die anderen parameter immer mitgeschleift werden -
Bandit hat dir dazu im Posting Nr.2 schon den entscheidenden Hinweis geliefert: Sessions. Dort legst du ab was du wiederkehrend brauchst, also zum Beispiel die Sprachauswahl oder eben die id oder Beides.
- - - Aktualisiert - - -
Bandit hat dir dazu im Posting Nr.2 schon den entscheidenden Hinweis geliefert: Sessions. Dort legst du ab was du wiederkehrend brauchst, also zum Beispiel die Sprachauswahl oder eben die id oder Beides.
-
Das Problem war nicht, die Session-Variable zu setzen, sondern das umschreiben wenn eine weitere Variable dranhängt.
Codeaus http://www.bla.com/dog.php?lang=en&id=14444 sollte werden http://www.bla.com/dog.php?lang=de&id=14444
und das es nicht auf zwei Sprachen begrenzt ist
Die Variante mit der zweiten Variablen benötige ich auf der gesamten Seite zwei mal. Alle anderen Seiten haben nur die Sprachauswahl "dran". Ich habe eine Lösung gefunden:
PHPif ($_SERVER['PHP_SELF'] == "/dog.php") {echo '<dd><a href="'.$_SERVER['PHP_SELF'].'?lang=en&id='.$givenid.'">English</a></dd>';} else {echo '<dd><a href="'.$_SERVER['PHP_SELF'].'?lang=en">English</a></dd>';}
ok, nicht ok, ganz böse?? -
ich persönlich bin kein freund von php_self. ich greife lieber auf den scriptpfad zu und hol mir da die benötigten infos oder was besser is: man baut sich ein objekt "activePage" zusammen wo durch die konfig direkt bekannt is, wo man sich befindet.
hat mein anderer vorschlag von heut früh nicht geklappt?
-
nee, hat er so gar nicht ...
-
check mal deine mails und folge dem kaninchen^^
-
habs dir jetzt mal so gelöst
PHP
Alles anzeigen$arrAvailableLanguages = array( 'de' => 'Deustch', 'en' => 'English', 'nl' => 'Nederlands', 'fr' => 'Français', ); $strGet = $_SERVER['SCRIPT_NAME']; foreach($_GET as $k=>$v){ if($k != 'lang'){ $strGet .= $k .'='. $v . '&'; } } $strDD = ''; foreach($arrAvailableLanguages as $langCode => $langName){ if($langCode != $_GET['lang']){ $strDD .= '<dd><a href="'.$strGet.'lang='.$langCode.'">'.$langName.'</a></dd>'; } } echo $strDD;
-
-
ja kein ding, wenn so viel eigeninitiative da is, dann helf ich immer und gerne!
du bist ja keine die sich des teil coden lässt und dann sagt: guckt ma was ich gemacht hablg
*b