Mailinglisten-Archive |
Hallo, die unten beschriebene Methode kann man gut aufbohren, wenn man nicht auf verschiedene Templates geht, sondern nur Variablen nutzt. Das Problem ist doch, das ich bei 20 Sprachen 20 Templates habe, die bei Änderungen gepflegt werden müssen. Ich habe nun eine Datei "lang.inc.php3", die ich einbinde. Dort steht: $msgWelcomeFirstTxt["de"] = "Willkommen in unseren Shop, $1"; $msgWelcomeFirstTxt["en"] = "Welcome to our shop, $1"; usw., das geht so weit, das man auch gut: $msgWelcomeFirstTxt["jp"] = "<img src=\"images\japan\welco.gif\">"; schreiben kann, je nach Geschmack also. Sinnvoll ist eine Teilung nach Sprachen in Segmente (zur besseren Übersicht) Die Namen sind systematisch vergeben: $xxx = Typ (msg = Message, btn = Buttonbeschriftung usw.) $___Xxxxxxx = Name der Seite, wo die Variable vorzugsweise genutzt wird usw., je nach Anwendung Nun programmiere ich die Skripte einmal, statt der Texte steht dort aber immer ein Variablenaufruf: <table> <tr><td><? display("msgWelcomeFirstTxt", $namefield) ?></tr></td> </table> Dis Funktion Display holt die Variable (Name ist Parameter, prüft die gewünschte Sprache, ersetzt die Platzhalter $1 usw. gegen die variablen Parameter und gibt alles per echo aus. So kann man auch gut auf sprachspezfische Dinge wie den Satzbau achten. Auch lassen sich HTML-Codes einbauen, wie <SPAN DIR=LANG> oder so. Das ist zwar am Anfang mühevoll, aber man hat alle Sprachen in einer Datei, die nicht programmiert aussieht, also nur eine Liste von Variablendefis enthält. Die macht man für Deutsch und gibt sie einem Übersetzer, der macht dann 20 Sprachen draus - einbinden - fertig. Nüchtern betrachtet sind auch solche austauschbaren Elemente nicht in Unmengen vorhanden, bei einem Shop hatte ich mal 85(pro Spr.). Dazu kommen noch allgemeine längere Texte (AGBs...), die sollte man extra ablegen. Die Texte aus der Datenbank zu holen hat keinen positiven Effekt. Man kann die Liste dann auch nicht so gut rausgeben zum Übersetzen/Korrigieren. -----Ursprüngliche Nachricht----- Von: andreas kempf aka 'amalesh' <aka_(at)_bigfoot.de> An: <php_(at)_solix.wiso.Uni-Koeln.DE> Gesendet: Freitag, 21. Januar 2000 16:36 Betreff: Re: [php] Mehrere Sprachversionen? > On Fri, 21 Jan 2000 14:50:55 +0100, Stefan Schwardt > <Schwardt_(at)_Euro-Auto-Boerse.net> wrote: > > To get the different language files use this code: > > // Switch languages > switch ($strLang) > { > // language selection > case "de": > include ("inc/german.inc.php3"); > break; > > case "en": > include ("inc/english.inc.php3"); > break; > > default: > include ("inc/english.inc.php3"); > $strLang = "en"; > } > > To get the different images use this: > > <img src="img/<? echo $strLang ?>/graphics.gif"> > > Inside the language files is also a switch construct which is used to ... > -- end of description > > ciao > > amalesh
php::bar PHP Wiki - Listenarchive