Hallo, ich möchte jetzt ein mehrsprachiges Projekt entwickeln und habe mich für gettext entschieden! Wenn ich so rum google, sehe ich oft das viele Probleme damit haben es zum laufen zu bekommen!
Bei mir läuft zwar soweit alles, das einzigste Problem ist, dass ich immer nur die deutschen Ausgaben ausgegeben bekomme - selbst wenn ich englisch als sprache übergebe.
So habe ich alles eingerichtet:
1. Die Sprachdateien liegen vom root-verzeichnis ausgesehen hier:
- ./languages/de_DE/LC_MESSAGES/mydomain.po
- ./languages/en_GB/LC_MESSAGES/mydomain.po
2. Der PHP-Code:
Hinter "label1" steht "Hallo Welt". Das bekomm ich auch ausgeben!
Wenn ich jetzt aber die "locale"-variable im aufruf mit "en_GB" übergeben, sollte die Ausgabe "Hello World" sein, ist es aber nicht sondern wieder nur "Hallo Welt". Auch wenn ich "en_GB" hart rein code, bleibt die Ausgabe deutsch. Die PO-Files haben die richtige Übersetzung, ein Fehler in der Hinsicht ist ausgeschlossen!
Weiß jemand, warum er das Sprachfile nicht ändert, und immer wieder das deutsche Sprachfile verwendet. Apache hab ich auch neu gestartet, gleiches ergebnis! Aber mit dem Cache darf es auch nicht zusammen hängen, denn das umschalten der Sprache muss ja sofort immer klappen!
Danke
Bei mir läuft zwar soweit alles, das einzigste Problem ist, dass ich immer nur die deutschen Ausgaben ausgegeben bekomme - selbst wenn ich englisch als sprache übergebe.
So habe ich alles eingerichtet:
1. Die Sprachdateien liegen vom root-verzeichnis ausgesehen hier:
- ./languages/de_DE/LC_MESSAGES/mydomain.po
- ./languages/en_GB/LC_MESSAGES/mydomain.po
2. Der PHP-Code:
PHP-Code:
if (isset($_GET['locale'])) {
$strLanguageCode = $_GET['locale'];
} else {
$strLanguageCode = 'de_DE';
}
setlocale(LC_ALL, $strLanguageCode);
setlocale(LC_TIME, $strLanguageCode);
setlocale(LC_CTYPE, $strLanguageCode);
setlocale(LC_NUMERIC, 'C');
bindtextdomain('mydomain', './languages');
bind_textdomain_codeset('mydomain', 'UTF-8');
textdomain('mydomain');
echo _('label1');
Wenn ich jetzt aber die "locale"-variable im aufruf mit "en_GB" übergeben, sollte die Ausgabe "Hello World" sein, ist es aber nicht sondern wieder nur "Hallo Welt". Auch wenn ich "en_GB" hart rein code, bleibt die Ausgabe deutsch. Die PO-Files haben die richtige Übersetzung, ein Fehler in der Hinsicht ist ausgeschlossen!
Weiß jemand, warum er das Sprachfile nicht ändert, und immer wieder das deutsche Sprachfile verwendet. Apache hab ich auch neu gestartet, gleiches ergebnis! Aber mit dem Cache darf es auch nicht zusammen hängen, denn das umschalten der Sprache muss ja sofort immer klappen!
Danke
Kommentar