Frage

Ich habe eine Sprachdatei in poedit für die Verwendung der PHP gettext Funktion, jetzt auf der Seite habe ich es zu testen auf versuche, ich kann es nicht bekommen, um die .po oder .mo-Datei / laden I erstellt, hat jemand sehen, was ich falsch mache?

$locale = "en_US";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("default", "/includes/locale");
textdomain("default");

//my .po ad .mo file is located here /includes/locale/en/default.mo

Auch wenn ich versuche, die Standard-Englisch lang-Datei zu laden, habe ich einen Text in der Datei geändert, um sicherzustellen, es wird aus einer Sprachdatei zu lesen und zur Zeit wird es nur den Standardtext zeigt und keine Übersetzung zu machen, ich vielleicht denke ich den falschen Weg haben

War es hilfreich?

Lösung

Ich habe es endlich zu arbeiten, ich bin Entsendung hier so vielleicht kann es jemand anderes helfen, es ist etwas verwirrend, wie es dokumentiert ist, denke ich.

Ich werde für französisch verwenden FR für diese Demo

$locale = "fr_fr";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("default", "/includes/locale");
textdomain("default");

bindtextdomain Funktion oben, ist der erste param der Name der .po Sprachdatei minus der Erweiterung. Der zweite param ist der Pfad zu dem Ordner, das ist, wo bekommt ist ein wenig knifflig / undokumentierte ... In den Ordner, den Sie hier einstellen Sie damit einen Ordner für jede Sprache erstellen haben sind 2-stellige Ländercode, dann in diesem Ländercode Ordner ich hatte diesen Ordner mit dem Namen hinzufügen LC_MESSAGES , innerhalb LC_MESSAGES ist, wo Ihre default.po Datei geht.

Dies war die einzige Art, wie ich es, eine Art verwirrend an der Arbeit könnte der Pfad zu dem Ordner lang, da nichts über den fettgedruckten Teil erwähnt hier:

  

langfolder / fr_FR / LC_MESSAGES /default.po

Es ist noch wirklich seltsam aber default.po für mich funktioniert, aber wenn ich es auf etwas anderes in dem obigen Code und dann die Dateinamen ändern der .po ändern und .mo Dateien, die es zu entsprechen, wird nicht mehr funktionieren, funktioniert nur mit default Namen für mich, ich beginne vielleicht zu denken gettext tut eine Art von hinter den Kulissen Caching

Andere Tipps

Ich vermute, es ist dein Weg.

Ist "/ includes / locale" das richtige Verzeichnis auf Ihrem Rechner? Oder ist der in Bezug auf etwas? Hinweis: Sie müssen den vollständigen Pfad, nicht in Bezug auf Ihr Home-Verzeichnis oder das Verzeichnis installieren. das könnte so sein, so etwas wie:

  • C: / xampp / htdocs / include / locale
  • / var / www / include / locale
  • / home / username / include / locale
  • etc

Was ist das vollständige Verzeichnis, in dem es gefunden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top