【问题标题】:Using babel/i18n with webapp2 and deferred tasks in google appengine在 google appengine 中将 babel/i18n 与 webapp2 和延迟任务一起使用
【发布时间】:2017-08-24 16:16:16
【问题描述】:

我有一个相对昂贵的电子邮件一组人员任务,我正在尝试使用 Google AppEngine 中的“延迟”库。我想向处理程序发送收件人列表和一些详细信息,并让处理程序将电子邮件格式化为每个人的正确语言。我正在使用 Babel。

如果我不延迟就这样做,效果很好 - 内容加载的翻译,一切都很好。但是,如果我推迟并将内容的获取移至处理程序,则 i18n 库未正确加载 - i18n.get_i18n().translations 是 NullTranslations 对象。因此,延迟任务处理程序在启动时显然没有获得上下文 - 有没有办法初始化 i18n 以使其正确重新加载?或者以某种方式告诉 AppEngine 保留一些上下文?

谢谢!

【问题讨论】:

  • 我们需要查看一些代码来帮助您。似乎 i18n 不应该关心它是从处理程序还是从延迟任务中调用的。您如何将语言环境传递给延迟任务?

标签: google-app-engine internationalization webapp2 babeljs


【解决方案1】:

啊。如果我使用常规任务队列而不是延迟库,它可以正常工作。 'deferred' 库应该只是任务队列系统的包装器,但它显然与 i18n 库的行为不同。 i18n 确实想要“请求”对象;也许延迟处理程序对它做了一些奇怪的事情。没关系 - 直接使用队列几乎一样简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多