首页 > 解决方案 > Flask Babelex 0.9.4 和 % 转义

问题描述

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 字符串?是否有某个地方可以缓解这个逃逸问题。

标签: pythonflaskwerkzeugflask-babel

解决方案


推荐阅读