Mailinglisten-Archive |
Hallo! Die Idee finde auch sehr schön, aber zum einen fehlt mir der Shell-Zugang, andererseits wird bereits mod_rewrite auf der Seite eingesetzt und da ist es praktischer, auch dabei zu bleiben. Aber für spätere Projekte werd ich mir das merken. MfG, Mathias Andi Voss schrieb: > 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