Wiederkehrender xgettext?

8

Wie kann ich eine .po -Datei mit xgettext mit PHP-Dateien mit einem einzigen Befehl rekursiv kompilieren?

Meine PHP-Dateien existieren in einer Hierarchie und der direkte Befehl xgettext scheint nicht rekursiv zu graben.

    
neezer 08.12.2009, 02:32
quelle

5 Antworten

17

Verstanden:

%Vor%

Ich habe versucht, -exec vorher zu verwenden, aber das würde nur eine Datei gleichzeitig ausführen. Dies führt sie auf dem Haufen.

Yay Google!

    
neezer 08.12.2009, 02:58
quelle
6

Für die WINDOWS-Kommandozeile ist eine simple Lösung:

%Vor%     
Antonio 20.02.2011 23:30
quelle
0

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.

    
Unambiguous 10.12.2009 16:20
quelle
0

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.

    
lanzalibre 05.11.2015 20:12
quelle
0

Dies kann nicht mit einem einzigen Befehl erreicht werden. Die xgettext Option --files-from ist dein Freund.

%Vor%

Wenn Sie sicher sind, dass Sie nicht zu viele Quelldateien haben, können Sie auch find mit xargs :

verwenden %Vor%

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:

%Vor%

Vergleichen Sie das mit der einfachen Lösung, die Sie zuerst mit der Liste der Quelldateien in POTFILES !

erhalten haben

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).

    
Guido Flohr 25.09.2016 22:57
quelle

Tags und Links