* Martin Schmitt wrote/schrieb:
> Also ich wei� ja nicht, wie ihr �blicherweise arbeitet, aber anstatt das
> Rad neu zu erfinden, w�rde ich mir f�r eine so einfache Anwendung erstmal
> die vorhandenen Tools anschauen.
Jetzt hab ich mirs angeschaut. Die Sache mit Gettext macht mir einen
ziemlich simplen Eindruck. Hier mal ein schnell zusammengekn�ultes Beispiel
in Perl, anhand des PHP-Tutorials aus meiner vorigen Mail:
#!/usr/bin/perl -w
use Locale::gettext;
use strict;
my $domain = "messages";
bindtextdomain($domain, "/home/martin/testarea/locale");
textdomain($domain);
print gettext("Hello, World!"), "\n";
exit();
Das Ding compiliert so, ohne zu murren. Wenn man es internationalisieren
will, generiert man zu Anfang mit xgettext erstmal eine Ausgangsdatei, die
aus dem Code die Aufrufe von gettext() rausholt. Unter Perl gibt das zwar
Fehlermeldungen, weil die Datei nicht auf ".c" endet, aber es klappt
trotzdem. Sp�ter d�rfte die Verwendung von xgettext vermutlich nicht mehr
so uneingeschr�nkt empfehlenswert sein, keine Ahnung. Da kommt dann wohl
auch msgmerge zum Einsatz.
In dieser entstandenen Datei schreibt man dann die �bersetzung rein,
verteilt sie in die entsprechenden Locale-Verzeichnisse, und compiliert sie
mit msgfmt. Und ab gehts:
[martin@fry testarea]$ LANG="" ./hw.pl
Hello, world!
[martin@fry testarea]$ LANG="de_DE" ./hw.pl
Hallo, Welt!
[martin@fry testarea]$ LANG="en_GB" ./hw.pl
Hello, world!
[martin@fry testarea]$ LANG="fr_FR" ./hw.pl
Bonjour le monde!
Das war ja einfach. Unter PHP wird es wohl nicht nennenswert schwieriger
oder anders sein. Der Vorteil dabei: Das Programm bleibt lesbar, weil man
nicht mit irgendwelchen Nummern hantieren mu�.
Ciao,
-martin
--
Schmitt Systemberatung Tel. +49(64 03)9 69 08 78
Giessener Str. 18 Fax +49(64 03)9 69 08 79
35415 Pohlheim/Germany http://www.scsy.de
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org