在Flask
我们最近升级Werkzeug
到 1.0.1 的应用程序中(因此我们可以在 cookie 上设置相同的站点),这强制了一些依赖项,其中Flask-BabelEx==0.9.4
.
在这次升级之后,转义 %(百分号)的处理方式发生了非常令人不安的变化。gettext('foo %%')
以前是 return的地方*"foo %"*
,现在是 return ,*"foo %%"*
也就是说 % 符号的转义似乎没有处理。我想,好吧,有点向上不兼容,我们只需要替换 babel 字符串中的所有%%
by %
(在参考语言以及所有翻译中,这已经很重要了)。
但这还不是故事的结局,因为对于Jinja2 模板中使用的所有 babel 字符串,例如{{ _("This is a percent sign: %") }}
,仍然处理符号的转义%
,所以仍然需要 {{ _("This is a percent sign: %%") }}
. 那么我们是否必须%
根据它们的使用位置来处理 - 转义和非转义的 babel 字符串?是否有某个地方可以缓解这个逃逸问题。