Es lag an der Erzeugung der .res Dateien.
So funktioniert es bei mir:
1. Für jede Sprache eine Übersetzungsdatei erzeugen. Inhalt analog:
Code:
de {
say_hi { "Hallo Welt" }
}
Dabei ist de die locale, say_hi der Key und "Hallo Welt" die Übersetzung. Wichtig scheinen hier die blanks vor und nach den Klammern zu sein.
2. .res Dateien erzeugen (bei mir landes alles im Verzeichnis "simple")
Code:
genrb -d simple simple/de.txt simple/de_DE.txt simple/en.txt simple/en_GB.txt simple/root.txt
3. eine res_index.txt mit folgendem Inhalt:
Code:
res_index:table(nofallback) {
InstalledLocales {
en {""}
en_GB {""}
de_DE {""}
de {""}
root {""}
}
}
Hier die verwandten locales eintragen
4.
Code:
genrb -s simple -d simple res_index.txt
Beispielhafter Aufruf in PHP:
PHP-Code:
define('BUNDLE', dirname(__FILE__)."/simple");
$r= resourcebundle_create('de', BUNDLE,false);
echo resourcebundle_get($r,'say_hi');
Sicherlich kann beim Aufruf in PHP noch einiges opimiert werden. Auch kann das ":table(nofallback)" in der res_index.txt wohl entfallen.
Falls noch jemand PHP 5.3.6 im Einsatz hat, empfehle ich, die php_intl.dll aus der 5.3.8 zu verwenden (Achtung, diverse weitere .dlls werden auch gebraucht) da erstere eine ICU 3.x nutzt. Aktuell ist ICU 4.8.1, die .dll in den Windowsbinaries für PHP 5.3.8 findet sich ICU 4.6.1
Viele Grüße
Thomasch