Internacionalizar una aplicación Python 2.6 a través de Babel
internationalization translation (2)
Estamos evaluando Babel 0.9.5 [1] en Windows para utilizarlo con Python 2.6 y tenemos las siguientes preguntas que no hemos podido responder al leer la documentación o buscar en Google.
1) Me gustaría utilizar una _ como abreviatura para ungettext. ¿Hay un foco sobre si uno debería usar n_ o N_ para esto?
n_ no parece funcionar. Babel no extrae texto.
N_ parece funcionar parcialmente. Babel extrae texto como lo hace para gettext, pero no formatea para ngettext (falta el argumento plural y msgstr [n]).
2) ¿Hay alguna manera de establecer los campos iniciales de msgstr como los siguientes al crear un archivo POT?
Sospecho que puede haber una forma de hacerlo a través de los archivos de Babel cfg, pero no he podido encontrar la documentación en el formato de archivo Babel cfg.
"Project-Id-Version: VERSIÓN DEL PROYECTO / n" "Language-Team: en_US / n"
3) ¿Hay alguna manera de preservar ''obsoletos'' msgid / msgstr''s en nuestros archivos PO? Cuando uso el comando de actualización de Babel, las cadenas obsoletas recién creadas se marcan con # ~ prefijos, pero las cadenas de mensajes obsoletas existentes se eliminan.
Gracias, Malcolm
Por defecto, el pybabel extract
reconoce las siguientes palabras clave: _
, gettext
, ngettext
, ugettext
, ungettext
, dgettext
, dngettext
, N_
. Use la opción -k
para agregar otros. N_
se usa a menudo para traducciones NULL (también llamadas traducciones diferidas).
Actualización : la opción -k
puede enumerar argumentos de función para poner en catálogo. Entonces, si usas n_ = ngettext
prueba con pybabel extract -k n_:1,2 ...
Para responder la pregunta 2):
Si ejecuta Babel mediante pybabel extract
, puede establecer Project-Id-Version
través de las opciones --project
y --version
.
Si ejecuta Babel a través de setup.py extract_messages
, Project-Id-Version
se toma de la distribución (nombre del proyecto y versión en el archivo setup.py).
Ambas formas también admiten las opciones --msgid-bugs-address
y --copyright-holder
para establecer los metadatos POT.