Die Funktion `` gettext wurde entwickelt, um die Übersetzung des gesamten Betriebssystems GNU / Linux zu ermöglichen. Genau aus diesem Grund ist es 100% kompatibel mit einer Vielzahl von Programmiersprachen und Skriptsprachen: C, C + +, C #, Bash, Python, GNU clsip, Emacs Lisp, GNU Smalltalk, Java, GNU awk, Pascal, wxWidgets, YCP , Tcl, PHP, Pike und andere.

Lassen Sie uns zunächst sehen, wie man `` gettext im Quellcode zu verwenden. Die Durchführungsbestimmungen je nach Programmiersprache für Ihr Projekt eingesetzt, aber die Syntax ist fast immer das gleiche, zumindest bei gängigen Programmiersprachen: Die Funktion enthält einfach die Nachricht String übersetzt werden. Anzumerken ist, dass fast immer verwendet die Kurzform, das entspricht einfach ein Unterstrich sein. Auf diese Weise wird der folgende Code in C:

printf(gettext("My name is %s\n"), mio_nome);

wird:

printf(_("My name is %s\n"), mio_nome);

Später wird der Befehl xgettext filtern Sie den Code, um die Funktion gettext nur eingefügt zu finden, um die Vorlage zu erstellen. Pot auf der Basis der extrahierten Strings aus dem Quellcode. . Ein Beispiel einer Datei Topf für eine Code mit der obigen Zeilen ist wie folgt:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr ""

So starten Sie die Übersetzung im Programm verwendet wird `` msginit. Verschieben Sie die Datei. Kleine `auf` msginit ist möglich, eine neue Datei mit dem Skelett der neuen. Bit in der Zielsprache zu generieren. Zum Beispiel, um die Datei zu übersetzen, ins Italienische en_EN.po einfach den folgenden Befehl ausführen:

locale = de_DE-msginit-Eingang = en_EN.po

Das Programm erstellt die Datei it_IT.po, deren Inhalt sein wird wie die folgende:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "My name is %s\n"

An diesem Punkt, der Übersetzer nicht tun müssen, ist die Zeichenfolge übersetzen nach dem msgstr. Die Übersetzung kann mit einem beliebigen Editor getan werden direkt von der Kommandozeile oder über spezielle Programme wie poEdit . Das Ergebnis sieht wie folgt aus:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "Mi chiamo %s\n"

. Sobald die Übersetzung Dateien Po sollte in die Binär-Datei kompiliert werden durch die `Mo` msgfmt.:

msgfmt it_IT.po

Diese Seite mitteilen:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter