Hier ist eine Lösung für Windows. Installieren Sie zunächst gettext und suchen Sie in der GnuWin32 Tools-Sammlung.
Sie können anschließend folgenden Befehl ausführen:
%Vor%Die Ausgabedatei muss vor dem Ausführen des Befehls vorhanden sein, damit die neuen Definitionen mit ihr zusammengeführt werden können.
Dies ist die Lösung, die ich für die rekursive Suche auf Mac gefunden habe:
%Vor%Erzeugt Einträge für alle Verwendungen der Methode gettext in Dateien mit der Erweiterung php einschließlich Unterordnern und fügt sie in translations / messages.pot ein.
Dies kann nicht mit einem einzigen Befehl erreicht werden. Die xgettext Option --files-from
ist dein Freund.
Wenn Sie sicher sind, dass Sie nicht zu viele Quelldateien haben, können Sie auch find
mit xargs
:
Wenn Sie jedoch zu viele Quelldateien haben, ruft xargs
xgettext
mehrmals auf, sodass die maximale Befehlszeilenlänge Ihrer Plattform nicht überschritten wird. Um sich vor diesem Fall zu schützen, müssen Sie die xgettext-Option -j
, --join-existing
verwenden, zuerst die veraltete Nachrichtendatei entfernen und dann mit einer leeren Nachricht beginnen, damit xgettext nicht freigibt:
Vergleichen Sie das mit der einfachen Lösung, die Sie zuerst mit der Liste der Quelldateien in POTFILES
!
Die Verwendung von find
mit --exec
ist sehr ineffizient, da% code_% für jede Quelldatei einmal aufgerufen wird, um nach übersetzbaren Zeichenfolgen zu suchen. Im speziellen Fall von xgettext -j
ist es sogar noch ineffizienter, da xgettext die stetig wachsende Ausgabedatei xgettext -j
bei jedem Aufruf lesen muss (also bei jeder Eingabequelldatei).