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

时间:2017-04-12 13:16:33

标签: translation pyramid mo

我在基于金字塔的应用程序中开发了一个翻译帮助页面。 新的翻译通过以下方式保存在.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应用程序。

1 个答案:

答案 0 :(得分:0)

在Pyramid中缓存翻译以提高性能,但您可以设置pserve以在文件更改时自动重新启动wsgi服务器。只需将watch_files指令添加到您的ini文件即可。观察者使用python glob模块,所以支持的取决于你是在python2还是python3上,但是你可以尝试找到一个有效的正则表达式。 (例如,python 2不支持**。)

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