gpt4 book ai didi

python - django {% trans "Hello"%} 不工作

转载 作者:行者123 更新时间:2023-11-28 18:41:19 25 4
gpt4 key购买 nike

我知道,这件事被问了好几亿次,但我仍然无法翻译我的 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'))
)

并添加到 TEMPLATE_CONTEXT_PROCESSORS

'django.core.context_processors.i18n',

并进入 MIDDLEWARE_CLASSES

'django.middleware.locale.LocaleMiddleware',

现在:我将其添加到我的 index.html

{% load i18n %}
{% trans "it is me" as me %}
<title>Newsportal {{ me }}</title>

并做了:

python manage.py makemessages -a

并将“it is me”翻译成“das bin ich”(这是德语)并做了

python manage.py compilemessages

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

然后我将 chrome 浏览器的语言更改为德语。

但是:它仍然将文本显示为“it is me”

我做错了什么?

解决方案:首先,感谢 Liarez 在这个可怕的时刻支持我,我终于找到了我的错误。

我在做:

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 更改事件语言的简单方法:

在 urls.py 中添加:

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

在你的 views.py 中:

def set_language(request, language_code):
''' Change language '''

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

在任何模板中:

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

关于python - django {% trans "Hello"%} 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com