Python Django i18n不工作
我无法为我的模板显示翻译。以下是我所做的:Python Django i18n不工作,python,django,internationalization,Python,Django,Internationalization,我无法为我的模板显示翻译。以下是我所做的: 在我的模板文件(index.html)中,我加载了i18n,并在需要翻译的地方使用了trans标记 在我的项目目录中,我rand/manage.py makemessages-l es 我的django.po文件位于/conf/locale/es/LC_MESSAGES/django.po 我用翻译编辑了这个文件 然后我运行了/manage.py compilemessages 我在settings.py中将我的语言\u code设置为“es” 在Se
trans
标记/manage.py makemessages-l es
/conf/locale/es/LC_MESSAGES/django.po
/manage.py compilemessages
语言\u code
设置为“es”中间件类中添加了django.middleware.locale.LocaleMiddleware
只有英文版本还在展出。我做错了什么?我错过什么了吗 Django的
localemidware
尝试根据给定的请求确定区域设置,并相应地替换语言\u代码。它将经历以下步骤:
检查会话中名为django\u language
的会话变量。在此会话中将语言设置为给定的区域设置。如果不存在,则转到2
检查cookies中是否有类似的变量集(您可以自己定义名称)。它不存在,它转到3
尝试从HTTP\u ACCEPT\u language
标头确定语言。如果不可能,它将转到4
最后,它将使用语言\u code
设置作为给定的区域设置
在除第4步之外的所有步骤中,它将检查您的语言设置中是否给出了语言,该设置是一个由两个元组组成的元组,表示语言代码和语言标题。确保设置/覆盖默认值,因为默认值是所有可用Django语言的元组
如果您的Django站点中有多种语言:
确保会话或cookie设置正确。您可以使用Django的内部视图来设置语言(Django.views.i18n.set\u language
)
如果您只有一种语言:
如果你只懂西班牙语,你通常不必为此烦恼。只需确保设置了LANGUAGES
和LANGUAGE\u code
。如果语言中未提供页面语言,它将不会尝试将页面语言设置为浏览器语言。此外,您应该确保使用_I18N=True
。不过这应该是默认设置,所以至少要确保没有在某个地方将其设置为False
好的,我发现了问题。。。我的po文件位于/conf/locale
中,而不是仅位于/locale
中
我之所以创建/conf/locale
,是因为当我randdjango-admin.py makemessages
时,它指示我这样做。但是,如果它在您的本地项目目录中,那么它只是/locale
您是否尝试过在设置文件中设置locale\u路径
?这为我解决了问题……有关更多信息,请查看django's。是的。我一直在关注这一切。。。我似乎还是无法把它翻译出来。这快把我逼疯了。我肯定我遗漏了一些不在清单上的东西或者一些模糊的东西。也许睡一觉后我会得到它。。。