你好,我正在努力使用我的语言切换器。
设置.py:
LANGUAGE_CODE = 'en'
LANGUAGES = [
('de','Deutsch'),
('en','English')
]
urls.py:
path('setlang', views.setlang, name='setlang'),
index.html:
<a href="{% url 'setlang' %}">{% trans "English" %}</a>
views.py
def setlang(request):
logger.error(get_language())
if get_language() == 'de':
activate('en')
else:
activate('de')
logger.error(get_language())
return redirect('index')
logger.error(get_language()) 的输出 -> 'de' 比 'en'。
每次都是“德”!即使我设置LANGUAGE_CODE = 'en'!我不知道“德”从何而来。
问题可能是重新加载,这是由返回重定向('index')强制的?
一般作品的翻译。
有谁知道如何坚持选择的语言而不是退回到默认语言?
activate(…)
[Django-doc] 不应该是持久的。事实上,正如文档所说:
线程完成后它就会“死亡”。获取给定语言的翻译对象并将其激活为当前线程的当前翻译对象。
您可以设置 设置的 cookie [Django-doc] 来激活不同的语言:
from django.conf import settings
def setlang(request):
logger.error(get_language())
if get_language() == 'de':
lang = 'en'
else:
lang = 'de'
response = redirect('index')
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang)
return response