En una aplicación Flask , recientemente actualizamos Werkzeug a 1.0.1 (para que pudiéramos configurar el mismo sitio en cookies), lo que obligó a algunas dependencias, entre las que Flask-BabelEx==0.9.4 .
Después de esta actualización, el manejo del % escapado (signos de porcentaje) cambió de una manera muy preocupante. Donde gettext('foo %%') solía devolver *"foo %"* , ahora devuelve *"foo %%"* , en otras palabras, parece que no se maneja el escape del signo %. Pensé, ok, un poco de incompatibilidad ascendente, solo tenemos que reemplazar todo el %% por % en las cadenas de babel (en el idioma de referencia, así como en todas las traducciones, eso ya es un gran problema).
Pero ese no es el final de la historia, porque para todas las cadenas de babel usadas dentro de las plantillas Jinja2 , como {{ _("This is a percent sign: %") }} , el escape de los signos % aún se maneja, por lo que todavía debe ser {{ _("This is a percent sign: %%") }} . Entonces, ¿tenemos que manejar tanto el % de las cadenas de Babel con escape como las que no lo están dependiendo de dónde se usen? ¿Hay alguna configuración en alguna parte que alivie este problema de escape?