9
votes

XgetText récursif?

Comment puis-je compiler un fichier .po à l'aide de fichiers PHP xgetext avec une seule commande récursivement?

Mes fichiers PHP existent dans une hiérarchie et la commande droite xgetext ne semble pas creuser de manière récursive.


0 commentaires

5 Réponses :


20
votes

obtenu:

find . -iname "*.php" | xargs xgettext


7 commentaires

Eh bien, ça ne travaille pas pour moi, mais vous m'avez montré un moyen de possibilité que sinon seriez accepté et vivez avec cela comme s'il n'y avait pas de meilleure façon que cela


Bonjour, beau travail, mais Bequareful pour ajouter -j à la fin de la commande, sauf si cela ne fonctionne pas


C'est faux, car s'il y a trop de fichiers pour s'adapter à une ligne de commande, Xargs exécutera XGetText plusieurs fois, ce qui entraîne des invocations précédentes. Il suffit d'ajouter -j n'a pas raison non plus, car vous devez d'abord supprimer le fichier ou vous rejoindre avec les anciennes données.


Et ajouter -j quand un fichier ne veut pas existe une erreur. xgetext n'est pas très mature ...


Voir aussi Répondre Stackoverflow.com/a/12692493/133408 avec - fichiers-de option Si de nombreux fichiers sont analysés


@GLENNMAYNARD J'essaie d'extraire des étiquettes GetTexted de mon projet qui compte plus de 3 000 fichiers .php et oui, certains fichiers sont ignorés. Comment puis-je obtenir toutes les étiquettes GetTexted? Merci d'avance


@Ivantxo S'il vous plaît poster votre question comme une question. Merci.



0
votes

Voici une solution pour Windows. Au début, installez GetText et trouvez à partir de la collection d'outils GNUWIN32.

  • http://gnuwin32.sourceforge.net/packages/getext.htm
  • gnuwin32.sourceforge.net/packages/findutils.htm

    Vous pouvez exécuter la commande suivante par la suite: xxx

    Le fichier de sortie doit exister avant d'exécuter la commande. Les nouvelles définitions peuvent donc être fusionnées avec il.


1 commentaires

Peut-être installer et utiliser Cygwin? Je sais que ce n'est pas une solution indigène, mais je devrais vous obtenir le même résultat.



7
votes

pour la ligne de commande Windows Une solution simple est la suivante:

 @echo off
echo Generating file list..
dir html\wp-content\themes\wpt\*.php /L /B /S > %TEMP%\listfile.txt
echo Generating .POT file...
xgettext -k_e -k__ --from-code utf-8  -o html\wp-content\themes\wpt\lang\wpt.pot -L PHP --no-wrap -D html\wp-content\themes\wpt -f %TEMP%\listfile.txt
echo Done.
del %TEMP%\listfile.txt


1 commentaires

Quelqu'un avertissement juste au cas où: pygettext.py ne prend pas en charge l'option -f .



0
votes

C'est la solution que j'ai trouvée pour une recherche récursive sur Mac: xxx

génère des entrées pour toutes les utilisations de la méthode GetText dans des fichiers dont l'extension est PHP, y compris des sous-dossiers et les insère dans des traductions / messages .pot.


1 commentaires

Laisser un petit texte descriptif



2
votes

Vous ne pouvez pas y parvenir avec une seule commande. L'option xgetext - fichiers-de code> est votre ami.

rm -f messages.po
echo >messages.po
find . -name "*.php" -print0 | xargs -0 xgettext --join-existing


0 commentaires