Eu tenho a seguinte estrutura de diretórios:
webiste/
locale/
en/
LC_MESSAGES/
translation.po
de/
LC_MESSAGES/
translation.po
fr/
LC_MESSAGES/
translation.po
Estou usando o comando find
para acessar todos os arquivos .po
e aplicar o comando msgfmt
a eles.
Então, quando eu executo este comando:
find . -name \*.po
A saída é
./locale/fr/LC_MESSAGES/translation.po
./locale/de/LC_MESSAGES/translation.po
./locale/en/LC_MESSAGES/translation.po
Assim como esperado, mas agora eu adiciono isso:
find . -name \*.po -exec msgfmt "{}" \;
Não produz nada e não cria os arquivos .mo que deve (se eu fizer isso para cada arquivo individualmente, o comando msgfmt
funciona como esperado).
Isso é estranho, pois se eu mudar o comando para isso:
encontre. -name * .po -exec echo "{}" \;
Exibe os nomes dos arquivos corretamente.
Eu meio que resolvi assim:
find . -name \*.po -exec msgfmt "{}" -o {}.mo \;
Mas gera um translation.po.mo
Como isso pode ser feito?