【问题标题】:How to make GAE+ django pick up my .po and .mo translations如何让 GAE+ django 获取我的 .po 和 .mo 翻译
【发布时间】:2011-03-11 10:24:19
【问题描述】:

我在 .po 和 .mo 文件中准备好了翻译。我怎样才能让 django 1.2 显示这些?我可以使用内置的翻译,现在我想启用我保留在 [application-name]/conf/locale/[Language_Code]/LC_MESSAGES' 中的翻译

有办法吗?它曾经与 django 0.96 一起工作,升级后只有内置翻译工作。

更新:我尝试移动到 APP_DIR/locale/LANG_CODE/LC_MESSAGES/django.po,但它对我不起作用。也许我错过了什么。我必须重新编译 .po 文件吗?

更新:按照此处的说明,我将 .po 和 .mo 文件放入

APP_DIR/locale/LANG_CODE/LC_MESSAGES/django.po

还是不行。我正在考虑为什么并欢迎更多建议或建议如何使用 django for google app engine 启用 i18n 功能。

编辑:Here's a link 我们在 GAE python 小组讨论这个问题。

更新:现在它可以工作了。我们不必移动 conf 目录中的目录。我们只是使用:

from google.appengine.dist import use_library
use_library('django', '1.2')

# Force Django to reload settings
from django.conf import settings
os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings'
settings._target = None

【问题讨论】:

    标签: django google-app-engine localization locale


    【解决方案1】:

    将您的语言环境文件放在:

    APP_DIR/locale/LANG_CODE/LC_MESSAGES/django.po
    APP_DIR/locale/LANG_CODE/LC_MESSAGES/django.mo
    

    我遇到了同样的问题,改变了路径

    【讨论】:

      【解决方案2】:

      首先你应该使用

      'django.middleware.locale.LocaleMiddleware'
      

      在您的设置文件中,但我认为您已经意识到这一点。接下来我建议在您的视图中使用ugettext_lazy 进行翻译(即视图中的每个字符串'test' 都应该由ugettext_lazy('test') 传递)。在使用{% trans "text" %} 的模板中应该可以工作(记住模板需要加载{% load i18n %})。然后使用脚本:

      django-admin makemessages
      

      在您的APP_DIR 中。最后编辑django.po文件并使用

      django-admin compilemessages
      

      翻译后。就这样。你试过这个吗?到底好不好用?

      【讨论】:

      • 感谢您的回答。但由于我使用的是谷歌应用引擎,我不确定它是否完全适用。我会尽我所能尝试这些说明。我将 'django.middleware.locale.LocaleMiddleware' 添加到 conf/settings.py 没有效果。
      • 哦,对不起。不知何故,我没有意识到您正在使用 GAE。 :) 在这种情况下我没有这样做,所以我想我帮不了你。不过祝你好运。
      • 我们让它像更新的信息一样工作。感谢 cmets。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      相关资源
      最近更新 更多