2009-08-30 4 views
10

Ich habe ein paar Fragen:xgettext vs gettext

Ich weiß, was Gettext ist. Ich habe ein paar Posts gelesen, in denen sie Xgettext erwähnten und war neugierig, was der Unterschied zwischen den beiden ist.

Wie kann ich xgettext unter Windows installieren?

Und schließlich, hat jemand eine Anleitung zur Installation der Bibliothek php-gettext http://savannah.nongnu.org/projects/php-gettext/ (diese ist in der Regel nicht mit PHP kommen) Ich habe darüber in einem Artikel gelesen, aber ich bin mir nicht sicher, wie Lass es in Windows funktionieren. Die Sache ist, manchmal, wenn Sie Änderungen vornehmen, müssen Sie Apache neu starten, um die neuen Daten mit dem Gettext zu sehen, der mit PHP kommt (aber mit der Bibliothek müssen Sie ihn nicht neu starten), also wollte ich die Bibliothek für Entwicklung verwenden . Vielen Dank!

+0

Vielleicht möchten Sie den zweiten und dritten Teil zu ihren eigenen Fragen ausbrechen. –

Antwort

14

In Bezug auf die Frage:

Ich weiß, was gettext ist. Ich habe ein paar Posts gelesen, in denen sie Xgettext erwähnten und war neugierig, was der Unterschied zwischen den beiden ist.

Kurz gesagt, gettext() ist eine Funktion und xgettext ist ein Hilfsprogramm für Nachrichten aus dem Quellcode zu extrahieren.

in langen, SO answer zu Complete C++ i18n gettext() “hello world” example zeigt als Teil der C++ Quellcodedatei hellogt.cxx:

gettext("hello, world!") 

Die gettext() Funktion ist eine Zeichenkette übergeben, die als Index zu der Nachricht benutzt wird, um verwendet werden zu Laufzeit. Sie gibt die angegebene Nachricht für die Sprache zurück, die entweder im Code oder zum Zeitpunkt des Aufrufs des Programms angegeben ist.

Dann zeigt es:

xgettext --package-name hellogt --package-version 1.2 --default-domain hellogt --output hellogt.pot hellogt.cxx 

, die ein Hilfsprogramm ist zum Zeitpunkt der Erstellung verwendet, um die Quellcodedatei hellogt.cxx für Text-Strings zu gettext() weitergegeben zu untersuchen. Diese werden extrahiert und zum Erstellen der Portable Object Template-Datei hellogt.pot verwendet.

Die Dateivorlage .pot wird von Übersetzern verwendet, die die binär übersetzte Nachrichtendatei hellogt.mo liefern, die zur Laufzeit von gettext() verwendet wird.

+0

Das ist hilfreich, vielen Dank! – Kentor

-5

Die Online function reference Referenz sagt mir, dass es keine xgettext gibt.

Vielleicht meinen sie einen von

ngettext dgettext dngettext dcgettext dcngettext 

Behandlung der ‚x‘ wie ein Platzhalter

+0

ah ok, vielleicht hast du recht – Kentor

+0

'xgettext' ist eine Vorverarbeitungsfunktion, die aufgerufen wird, um deine Quellcode-Dateien zu analysieren und alle Strings aus der Funktion' gettext', 'ngettext',' dgettext' und den anderen zu extrahieren. "Xgettext" ist also keine Funktion, sondern ein Programm, das aufgerufen wird. –

0

xgettext Teil gettext ist, es ist ein Programm, das übersetzbaren Strings aus Programmquellen extrahiert. Siehe gettext's manual.

Ich weiß nicht über seine Verfügbarkeit unter Windows, Google tells me there's a port.

+0

könnte mir das helfen -> http://stackoverflow.com/questions/1351259/php-string-variables-in-gettext-forgot-one-case-scenario? – Kentor

4

Installieren Sie Cygwin und wählen Sie das gettext-devel-Paket aus.
Dies wird die xgettext.exe

installieren Das Zend-Framework hat eine gettext Zend_Translate adapter, die die PHP-Gettext-Erweiterung nicht erfordert.