Mailinglisten-Archive |
Andi Voss schrieb: > Mathias Siegmund schrieb: > >> Hallo Liste! >> >> Hat jemand von euch schon Erfahrungen mit mod_rewrite in Bezug auf die >> Mehrsprachigkeit einer Webseite gemacht? >> Wenn ja, wäre es sehr nett, wenn ihr mir sagen könntet, wie ihr das >> gemacht habt. >> >> MfG, Mathias > > > Hi, > > willst du es unbedingt mit mod_rewrite machen? > Es gibt auf jedenfall noch eine sehr bequeme Lösung: > > gettext() mit den folgenden Funktionen: > ---------------------------------- > <?php > > setlocale( LC_MESSAGES, "de_DE" ); > > /* Übersetzungsdatei "german" im Ordner ".locale" > $translation = "german"; > bindtextdomain( $translation, ".locale" ); > textdomain( $translation ); > bind_textdomain_codeset( $translation, 'ISO-8859-1' ); > > ?> > ------------------------------------ > > wirft dir dann die Übersetzung raus, sofern du sie definiert und > übersetzt hast. > So kannst du ohne weiteres auf ausgewählte Sprachen einschränken. > > Die Übersetzungsdateien können dann so aussehen: > ------------------- > <?php > > $language = array(); > > /* Titel der Website */ > $language['TITLE'] = gettext("Testseite"); > > ?> > ------------------- > > Für jede Sprache eine Datei mit der entsprechenden Übersetzung drin. > > Die Verwendung von $language['TITLE'] wirft dann immer die "richtige" > Übersetzung ohne weiteres aus. > > Die Übersetzungsdateien lassen sich dann auch bequem über z.B. KBabel > bearbeiten. > > Hoffe geholfen zu haben. > Gruss Andi Habe eben eine Kleinigkeit vergessen. Man braucht einen Shell-Zugang um mit gettext arbeiten zu können. Auf der Shell dann folgendes: cd .locale xgettext -C ../gettext.php -o de_DE/LC_MESSAGES/german.po In gettext.php steht $language['TITLE'] = gettext("Testseite"); xgettext wandelt die php Datei in eine .po Datei, damit sie das richtige Format hat. Und diese Datei kann dann mit einem Editor wie zum Beispiel mit KBabel bearbeitet werden. Diese .po Datei muss aber auch noch nach erfolgter Übersetzung in eine .mo Datei gewandelt werden: msgfmt de_DE/LC_MESSAGES/german.po \ --output-file=de_DE/LC_MESSAGES/german.mo Default ist der Text, der in der gettext.php steht. Ansonsten passt sich dann der Text je nach Browserinfo an, sofern du die entsprechende Übersetzung dafür in LC_MESSAGES liegen hast. Falls weiter interessant, einfach nachfragen, dann auch gerne ausführlicher. Gruss Andi
php::bar PHP Wiki - Listenarchive