2016-06-13 11 views
0

Ich versuche mein PHP-Projekt mit gettext zu übersetzen, aber es funktioniert nicht. PHP gibt gettext-String-Namen aus und nicht die eigentliche Übersetzung. .PO-Dateien in POeditor kompiliert.PHP gettext übersetzt nicht

Einstellung locale:

// $language = 'en'; 
// $domain is the same as .mo file name 
putenv("LANG=" . $language); 
putenv("LANGUAGE=" . $language); 
setlocale(LC_ALL, $language); // Also tried with .utf8 at the end 
bindtextdomain($domain, 'locale'); // Also tried full path 
textdomain($domain); 

PO-Datei: (in locale/de/LC_MESSAGES/filename.po)

msgid "SETUP_UI" 
msgstr "User Interface" 

msgid "SETUP_ACCOUNT" 
msgstr "Account and Login" 

... and so on 

in PHP In Anlehnung an:

<?= gettext('SETUP_UI') ?> 

Ja, ich probiert alles aus Stackoverflow - Googeln für mehr als 3 Stunden. Ich habe getText in PHP installiert, auch versucht, Apache neu zu starten, neu kompilieren .po-Dateien ...

Das Ergebnis in Browser ist:

SETUP_UI 

Vielen Dank für Ihre Antworten.

Antwort

0

Sie benötigen .po Dateien .mo zu kompilieren (was gettext verbraucht)

+0

Ja, ich weiß, aber POeditor kompiliert, während Dateien zu speichern. –

+0

@SamuelIllo Befinden sich die .mo-Dateien im selben Gebietsschema/de/LC_MESSAGES/-Ordner? –

+0

Ja, sie waren im selben Ordner ... aber ich löste das Problem tatsächlich, indem ich json-Dateien anstelle von gettext verwendete. Vielleicht wurde auch POedit Compiler beschädigt oder etwas ... –