相关疑难解决方法(0)

使用 gettext 和 jinja2 以及金字塔翻译 %%

使用 Jinja2 和 Pyramid 与 Python 进行 i18n 工作。似乎不知道如何翻译%%。 我开始怀疑这个 bug 是在 Jinja2 中。


所以我做了更多的调查,看来问题更多的是 gettext 而不是 jinja2,如 repl 所示

>>>gettext.gettext("98%% off %s sale") % ('holiday')
'98% off holiday sale'
>>>gettext.gettext("98%% off sale")
'98%% off sale'

>>>gettext.gettext("98% off %s sale") % ('holiday')
Traceback (most recent call last):
  Python Shell, prompt 13, line 1
TypeError: %o format: a number is required, not str
Run Code Online (Sandbox Code Playgroud)

这似乎是一个先有鸡还是先有蛋的问题。

  • 如果 gettext 翻译 %% -> % 则格式化程序会在参数替换期间对其进行处理。
  • 如果 gettext 不翻译 %% -> % 那么当未调用格式化程序(没有要插入的参数)时 %% 会泄漏。

所有这些意味着翻译人员(其中大多数不是计算机程序员)必须非常小心地进行翻译,每个人都需要非常小心包含 …

gettext internationalization jinja2 python-2.7 pyramid

6
推荐指数
1
解决办法
1412
查看次数