phpbar.de logo

Mailinglisten-Archive

[php] Mehrere Sprachversionen?

[php] Mehrere Sprachversionen?

Joerg Krause joerg_(at)_krause.net
Sat, 22 Jan 2000 16:03:59 +0100


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