Python django{%trans";Hello";%}不工作

Python django{%trans";Hello";%}不工作,python,django,Python,Django,我知道,这个问题被问了上万亿次,但我仍然无法翻译我的django模板 我在项目树中创建了locale文件夹 我在settings.py中添加了 LOCALE_PATHS = ( os.path.join(PROJECT_PATH,'locale'), ) settings.py默认语言为英语: LANGUAGE_CODE = 'en-us' 我添加了更多语言,如: LANGUAGES = ( ('de', _('German')), ('fr', _('French')),

我知道,这个问题被问了上万亿次,但我仍然无法翻译我的django模板

我在项目树中创建了
locale
文件夹

我在settings.py中添加了

LOCALE_PATHS = (
  os.path.join(PROJECT_PATH,'locale'),
)
settings.py默认语言为英语:

LANGUAGE_CODE = 'en-us'
我添加了更多语言,如:

LANGUAGES = ( 
  ('de', _('German')),
  ('fr', _('French')),
  ('es', _('Spanish')),
  ('pt', _('Portuguese'))
)
并添加到
模板\u上下文\u处理器中

'django.core.context_processors.i18n',
并进入
MIDDLEWARE\u类

'django.middleware.locale.LocaleMiddleware',
现在:我将此添加到我的index.html

{% load i18n %}
{% trans "it is me" as me %}
<title>Newsportal {{ me }}</title>
并将“这就是我”翻译成了“das bin ich”(德语)并完成了翻译

它创建了.mo文件。一切看起来都很棒

我把chrome浏览器的语言改为德语

但是:它仍然将文本显示为
“是我”

我做错了什么

解决方案:首先,感谢利亚雷斯在这个可怕的时刻支持我,我终于发现了我的错误

我在做:

PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
LOCALE_PATHS = (
   os.path.join(PROJECT_PATH, 'locale'),
)
在有settings.py的项目树中更深入了一步

我把这个改成了

LOCALE_PATHS = (
   os.path.realpath('locale'),
) 

它的工作原理就像童话故事一样

这是一种管理语言和通过URL更改活动语言的简单方法:

在URL.py中添加:

url(r'^set_language/(?P<language_code>[\w-]+)/?', 'YOUR_PROJECT.views.set_language', name='set_language'),

在任何模板中:


您应该在模板的任何位置询问(仅用于测试):
{{{LANGUAGE\u code}
以了解哪种语言是实际语言,并检查翻译是否有效

检查是否没有其他“是我”。尝试使用
translation.activate(“de”)
@matousc更改该视图中的语言。您的意思是在.po文件中?您的实际语言是什么?“是我”是英语单词,你改变语言了吗?使用
翻译。激活(“de”)
?您可以使用`{{language\u CODE}}检查模板中的语言,以便检查翻译是否正确working@Liarez哦,不,我没有。我在哪里做?在settings.py?中,您需要一个视图来检测语言更改,比如
www.yourproject.com/de
,这应该调用一个视图来检测您要更改的语言,然后再进行更改。如果你需要的话,我可以给你展示一个简单的函数,谢谢,但我是这么做的。还是“是我”。我在视图中执行了
翻译。激活('de')
当您在模板中添加
{{LANGUAGE\u code}}
时,它是否显示
de
en
?模板内部
语言\u code
正在给我
de
。但是为什么字符串仍然是英文的呢?让我们谈谈,以避免每次都发表评论。我发现了这个问题:
PROJECT\u PATH
比settings.py更深一步。所以它在settings.py所在的文件夹中查找
locale
文件夹,这是错误的。我必须这样写:
LOCALE\u PATHS=(os.path.realpath('LOCALE'),)
它就像童话故事一样工作
LOCALE_PATHS = (
   os.path.realpath('locale'),
) 
url(r'^set_language/(?P<language_code>[\w-]+)/?', 'YOUR_PROJECT.views.set_language', name='set_language'),
def set_language(request, language_code):
    ''' Change language '''

    translation.activate(language_code)
    return HttpResponseRedirect('/')