Das gettext-System gibt Strings aus einer Reihe von Binärdateien wieder, die aus Quelltextdateien erstellt wurden, die die Übersetzungen in verschiedenen Sprachen für denselben Satz enthalten.
Der Suchschlüssel ist der Satz in einer "Basis" -Sprache.
in Ihrem Quellcode Sie so etwas wie
echo _("Hello, world!");
für jede Sprache haben erhalten Sie eine entsprechende Textdatei mit dem Schlüssel und der übersetzten Version (beachten Sie die% s, die mit printf-Funktionen verwendet werden können) haben
french
msgid "Hello, world!"
msgstr "Salut, monde!"
msgid "My name is %s"
msgstr "Mon nom est %s"
italian
msgid "Hello, world!"
msgstr "Ciao, mondo!"
msgid "My name is %s"
msgstr "Il mio nome è %s"
Dies sind die wichtigsten Schritte, die Sie für die Erstellung Ihrer Lokalisierungen zu durchlaufen müssen
- alle Textausgabe müssen gettext Funktionen (gettext(), ngettext() _())
- Verwendung xgettext (* nix) Ihre PHP-Dateien zu analysieren und die Basis .po Textdatei
- Verwendung poedit erstellen Übersetzung hinzufügen Texte zu den .po Dateien
- Verwendung msgfmt (* nichts)
- setzten die .mo-Dateien in einer Verzeichnisstruktur zu erstellen, wie
locale/die binäre .mo-Datei aus der .po-Datei de_DE/LC_MESSAGES/myPHPApp.mo
locale/de_DE/LC_MESSAGES/myPHPApp.mo
locale/it_IT/LC_MESSAGES/myPHPApp.mo
dann Sie PHP-Skript muss das Gebietsschema festgelegt, die
Das Beispiel aus dem php verwendet werden müssen Handbuch ist sehr klar für den Teil
<?php
// Set language to German
setlocale(LC_ALL, 'de_DE');
// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");
// Choose domain
textdomain("myPHPApp");
// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now
// Print a test message
echo gettext("Welcome to My PHP Application");
// Or use the alias _() for gettext()
echo _("Have a nice day");
?>
immer aus dem pHP-Handbuch schauen here für ein gutes Tutorial
Aber die oben Das PHP-Handbuchbeispiel scheint die angegebene Zeichenfolge nicht zu übersetzen. Gibt es noch etwas anderes mit dem Beispiel zu tun? –