如何在 Plone 中调试 Zope 的翻译机制

How to debug Zope's translation machinery in Plone

我有一个 Plone 4.3 插件,它设置了一个站点并使用它自己的构建配置安装了一些依赖项,我需要在其中本地化一些 Plone 翻译。

我正在使用一个分布式配置,一个 ZEO 服务器和 2 个 ZEO 客户端 运行 多个 Plone 实例。

我已经尝试了其他 , blog posts and presentations 中推荐的所有方法,但没有成功:

我将以下内容添加到我的构建配置中,并且在我启动我的实例时看到正在创建的 .mo 文件:

[instance]
recipe = plone.recipe.zope2instance
environment-vars =
    PTS_LANGUAGES en, es, pt-br
    zope_i18n_allowed_languages en, es, pt_BR
    zope_i18n_compile_mo_files true
zcml = my.addon

其他翻译工作正常;唯一失败的来自 one template that is overridden in one of the add-ons (specifically, the label_filed_under 模板中的名称)。

我做错了什么?我该如何调试?

这个特定问题是由一个非常简单的问题引起的:我忘记将 i18n 名称 space 声明添加到模板中:

<html
    ...
    xmlns:i18n="http://xml.zope.org/namespaces/i18n"
    ...
    >

同事看了一下才发现。

这就是为什么始终进行代码审查很重要的原因。