ResourceBundle.class.php

Josh

Legendäres Mitglied
hallo alle!

heut war ich grade so richtig in programmierlaune und drauf und dran, viel neues und nützliches zu lernen.
cool.gif


neben dem "statische klassen in php" thread (url) nun auch noch folgendes...

ich habe mich lange gefragt, wie man wohl sinnvoll websiten in mehreren sprachen veröffentlichen könnte. für kleine, nicht db-abhängige sites habe ich nun eine lösung programmiert, die php klasse

ResourceBundle().

einigen von euch ist sowas evtl schon von java oder vielleicht auch einer anderen oo sprache bekannt. das grundprinzip ist einfach:

man erstelle für jede sprache ein textfile mit demselben aufbau, für deutsch (ch) also etwa:

datei "properties/language_de-ch.properties"
CODE
BEGRUESSUNGS_TEXT=Hallo und willkommen auf meiner Website!
UEBER_MICH=Ich bin der Hans, dampfe gerne und wohne in allen Gassen.
TSCHUESS=Ich hoffe man sieht sich mal wieder!


für englisch

datei "properties/language_eg-us.properties"

CODE
BEGRUESSUNGS_TEXT=Hello and welcome eto my website
UEBER_MICH=I am Hans...
...


und so weiter für jede sprache, die man möchte.

nun braucht man bloss noch eine Instanz von ResourceBundle zu erstellen und die einzelnen Variablen abzufragen:


CODE
$resourceBundle = new ResourceBundle(); // neue instanz
$resourceBundle->setPropertiesFilePath("./properties"); // pfad zu den .properties files
$resourceBundle->parsePropertiesFile("language_"); // praefix für die files, also hier eben für die language_xx-xx.properties files
echo $resourceBundle->getVar("BEGRUESSUNGS_TEXT"); // irgendeine var ausgeben


btw. die klasse ermittelt automatisch die browser-sprache und liest das entsprechende file ein.
soweit ist das ja noch nicht ganz so berauschend.
unsure.gif
das nützliche dabei aber ist, dass wenn entweder eine variable in einem vorhandenen .properties-file nicht vorhanden ist oder wenn das gewünschte .properties-file fehlt, dann automatisch das standard .properties-file (eg-us) als ersatz gebraucht wird. also muss man nur die englische version des files up-to-date halten und kann dann später die vars übersetzen ohne angst zu haben, dass der user überhaupt nichts sieht! und auch können so sehr einfach neue sprachen hinzugefügt werden: einfach neues file erstellen und die variablen ersetzen.
smile.gif


das ganze funktioniert schon, aber hat noch nicht viele schnörkel aufzuweisen. werde's noch umarbeiten, dass man auch eine db anzapfen und die standard-sprache festlegen kann.

wenn jm interessiert an der klasse ist dann einfach melden.
smile.gif


gruss
j0sh
 
Das hört sich sehr interessant an. Das wäre glaub ich was für meine Medikamentenseiten. Ich habe da sechs Sprachen und bei jedem Update muß ich in jede Sprache gehen .... und immer schön auf der Hut sein, damit ich ja nicht irgendwo etwas vergesse.
 
Zurück
Oben