在金字塔 Web 框架中重新加载翻译文件



我在基于金字塔的应用程序中开发了一个翻译帮助页面。新翻译通过以下方式保存在.po.mo文件中:

po = polib.pofile(join(root, 'locale', lang, 'LC_MESSAGES', 'myapp.po'))
.....
po.save(join(root, 'locale', lang, 'LC_MESSAGES', 'myapp.po'))
po.save_as_mofile(join(root, 'locale', lang, 'LC_MESSAGES', 'myapp.mo'))

但是新的翻译在我重新启动应用程序之前不会生效。

我需要在保存新的翻译文件后立即重新加载翻译文件,而无需重新启动 wsgi 应用程序。

为了在金字塔中提高性能,可以设置保存以在文件更改时自动重新启动 wsgi 服务器。只需将watch_files指令添加到您的 ini 文件中即可。观察程序使用 python glob 模块,因此支持的内容取决于您使用的是 python2 还是 python3,但您可以尝试找到有效的正则表达式。(例如,** 在 python 2 上不受支持(。

[pserve]
watch_files = myapp/locales/**/*

最新更新