phpbar.de logo

Mailinglisten-Archive

[php] Mehrsprachigkeit mod_rewrite

[php] Mehrsprachigkeit mod_rewrite

Mathias Siegmund mathix at gmx.net
Son Aug 14 13:05:16 CEST 2005


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