phpbar.de logo

Mailinglisten-Archive

OT:Multilanguage was: i18n

OT:Multilanguage was: i18n

Patrick Bierans mysql_(at)_lists.phpcenter.de
Wed, 11 Apr 2001 14:12:12 +0100


> mach doch einfach ein $LANG flag und und oeffne dann die language datei
> $datei = "$LANG" . ".inc.php";

Meine Lösung (PHP):

1. Benutzer laden -> $USER["language"]

2. default Languagepackage laden
   z.B: include("lang/lg_pack_".DEFAULT_LANGUAGE)

   So sehen die Languagepackages aus:
   <?php
     $language=array // english package
     (
       "LG_SHOPPING_CART" => "Your shopping cart",
       "LG_SHOPPING_CART_ORDER" => "checkout"
     );
   ?>


3. Languagepack des Benutzers laden, wenn vorhanden und
   wenn nicht $USER["language"]=DEFAULT_LANGUAGE
   z.B: include("lang/languagepack_".$USER["language"])

4. Array nach Konstanten schreiben:
   while (list($key,$value)=each($language)) 
   {
     define($key,$value);
   }

5. Ausgabe
   
   <h2><?php echo LG_SHOPPING_CART ?></h2>
   <form>
     <input type="submit name="checkout" 
       value="<?php echo LG_SHOPPING_CART_ORDER ?>">
   </form>

Wenn du keine Konstanten nehmen willst, kannst du auch das Array als 
global angeben und dann immer $language["LG_SHOPPING_CART"] schreiben. 

Ich glaube, daß Variablen etwas schneller sind als Konstanten. Must
du benchmarken.

Du kannst auch HTML und PHP wird vermischen in wahnwitzigen echo-Zeilen.
Aber das ist nicht gerade schön, wenn das HTML-Layout mit wysiwyg 
editiert werden soll. Also mache ich lieber etwas mehr Code. Performance
ist dabei so gut wie gleich.

Patrick Bierans / LYNET Kommunikation AG/ pbierans_(at)_lynet.de
---------------------------------------------------------------
Das Internet-Systemhaus fuer Multimedia- und Netzwerkloesungen.
Zentrale Luebeck: Fon +49-451-6131-0, Fax -333
Niederlassung Hamburg:  Fon +49-40-65738-0, Fax -333

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive