【问题标题】:i18n on google app engine 1.4.3 and django 1.2谷歌应用引擎 1.4.3 和 django 1.2 上的 i18n
【发布时间】:2011-08-20 00:25:36
【问题描述】:

我找到了一些教程,展示了如何在 gae 上使用 i18n,但它们假设 django 0.96。现在我没有例如单独的 makemessages 脚本,我无法运行 manage.py。有没有人最近尝试过使用 i18n 并且可以向我解释一下,这是怎么做到的?

编辑

我已经设法生成po 文件并编译它们。我收到语言标题,并且可以设置翻译语言。 self.request.LANGUAGE_CODE 设置为 pl 这很好。然而,在呈现网页时并没有使用这些翻译。您知道为什么会发生这种情况吗?

EDIT2

好的,做了一些我设法发现的试验/错误,您需要从 django.conf 导入设置并重新加载它们(setting._target = None)。它终于奏效了。

【问题讨论】:

标签: python django google-app-engine internationalization


【解决方案1】:

我们让它工作了,或者至少我们认为我们做到了。我们使用 django 0.96 中的脚本 compile-messages 来编译 .po 文件,并使用 I18NRequestHandler 升级到 django 1.2,所以我想确认它是否有效。您可以在http://montao.googlecode.com 上查看我们的代码,我们不使用manage.py,因为我们不使用所有的django。我希望这会有所帮助。我需要添加一个导入说 from django.utils.translation import gettext_lazy as _ 否则大多数 django 0.96 很容易升级到 1.2。为了激活翻译,我们现在可以在 HTTP 查询中使用 hl 参数,例如希腊语翻译:http://classifiedsmarket.appspot.com/?hl=el,希腊语文本显示来自使用脚本 compile-messages.py 编译的 .mo 文件

【讨论】:

  • 谢谢尼克拉斯。我赞成您的回答并尝试实现这一点。如果它有效,我会接受它。祝我好运:-)
  • 我正在运行django-admin makemessages --all,但它无法在我的模板目录中检测到翻译。你知道为什么吗?
  • 请参阅我的编辑。我已经生成并编译了消息,但仍然没有得到我需要的。
  • 祝你好运!如果您认为我的应用程序以您应该的方式更改语言,您可以从我这里获取代码。我花了很长时间研究如何去做,而实施它只用了 5 分钟,所以我认为你有很好的改变,如果你遇到困难,你可以看看其他人是如何做到的。
猜你喜欢
  • 2018-07-02
  • 2012-03-21
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多