2017-08-02 5 views
1

Ich habe die Anweisungen von How to load language with gettext in PHP?Wie gegettext auf Linux in PHP zu verwenden?

ich erstellt habe ./locale/pl_PL/LC_MESSAGES/default.po mit file:

msgid "categories" 
msgstr "kategorie" 

I mo-Datei generiert haben:

msgfmt default.po -o default.mo 

und ich habe Code wie folgt:

$lang = 'pl_PL'; 
    $this->root = __DIR__ . DIRECTORY_SEPARATOR; 
    echo $lang . "\n" . $this->root . "locale\n"; 
    putenv("LC_ALL=$lang"); 
    setlocale(LC_ALL, $lang); 
    bindtextdomain("default", $this->root . "locale"); 
    textdomain("default"); 

    echo _("categories"); 

aber Ich habe nicht übersetzten Text bekam, ist die Ausgabe:

pl_PL 
/home/kuba/projects/jcubic/cataloger/locale 
categories 

Ich habe auch versucht, Schrägstrich am Ende der locale zu verwenden, aber das hat nicht geholfen.

Was ist los? Wie kann ich gettext verwenden, um Text zu übersetzen? Ich führe PHP von Apache 2 auf GNU/Linux. Ich verwende Slim und Twig Frameworks.

Antwort

2

Ich musste .utf8 zum Gebietsschema hinzufügen (so ist es pl_PL.utf8) und es funktioniert.