我在.po和.mo文件中准备了翻译。如何让django 1.2显示这些?我可以使用内置的trnanslations,现在我想在[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为谷歌应用引擎启用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
答案 0 :(得分:1)
将区域设置文件放在:
APP_DIR/locale/LANG_CODE/LC_MESSAGES/django.po
APP_DIR/locale/LANG_CODE/LC_MESSAGES/django.mo
我遇到了同样的问题并改变了工作路径
答案 1 :(得分:1)
首先你应该使用
'django.middleware.locale.LocaleMiddleware'
在您的设置文件中,但我认为您已经意识到这一点。接下来,我建议您在视图中使用ugettext_lazy
进行翻译(即视图中的每个字符串'test'
都应由ugettext_lazy('test')
传递。在使用{% trans "text" %}
的模板中应该有效(请记住,模板需要加载{% load i18n %}
)。然后使用脚本:
django-admin makemessages
在APP_DIR
中。最后编辑django.po
个文件并使用
django-admin compilemessages
翻译后。就这样。你试过这个吗?是否有效?