Babel: compile los archivos de traducción cuando llame a la instalación setup.py
Estoy desarrollando una aplicación Flask usando Babel. Gracias aIntegración de Distutils / Setuptools, todos los parámetros de compilar / extraer / ... funciones se almacenan ensetup.cfg
y compilar los archivos i18n es tan fácil como
./setup.py compile_catalog
Excelente. Ahora me gustaría que esto se haga automáticamente al ejecutar
./setup.py install
Enmake
las palabras, eso sería dejarinstall
objetivo depende decompile_catalog
objetivo.
Almacenamos solo traducción (.po
) archivos en el repositorio de código..gitignore excluye.mo
y.pot
archivos de ser rastreados.
Cuando un desarrollador saca una nueva revisión del código, ejecuta
pip install -r requirements.txt
para actualizar dependencias e instalar el proyecto en modo de desarrollo. Luego, usando la línea de comando anterior, compila el binario de traducción (.mo
) archivos.
¿Existe una manera simple y recomendada de modificarsetup.py
hacer ambas operaciones en un solo paso? ¿O estoy tratando de usar malsetuptools
?
Usar un script como este funcionaría para fines de desarrollo:
#!/bin/sh
./setup.py compile_catalog
pip install -r requirements.txt
pero me gustaría una solución que también funcione cuando el paquete se instala con la habitualsetup.py
instrucciones de instalación, como si se instala desde PyPi.
Debería entender esosetuptools
no están destinados a ser utilizados de esta manera, y las personas que distribuyen software compilan sus archivos de traducción de forma manual o usando scripts personalizados al crear sus archivos, en lugar de confiar ensetup.py
para compilarlos en el momento de la instalación?
No encontré muchas publicaciones en Internet que trataran esto. Los que encontré involucrados corriendopybabel
interfaz de línea de comando desde una función ensetup.py
, lo que suena como una pena, ya que pierde el punto de integración de las herramientas de configuración.