【发布时间】:2021-10-09 17:30:41
【问题描述】:
我有一个包含多种语言的网站。但是,这些语言绝不应该由访问者选择,而是 a) 根据域名决定(同一站点在不同域下运行,每种语言一个),或 b) 从数据库中检索,具体取决于确切的页面打开了。
从manual 我了解到我应该使用 django.utils.translation.activate() 函数来明确设置语言。但是,我没有运气。
如果我是正确的,这就是我需要的代码(我不需要设置cookie,所以这是我隔离的):
from django.utils import translation
translation.activate("fr")
这是对的吗?我应该把这个放在哪里?我可以使用站点框架将语言链接到特定语言吗?这是我在 views.py 文件中尝试过的,但它不起作用。没有错误 - 只是没有翻译。有没有办法可以调试它以找出问题所在?
# views.py
from .models import *
from django.shortcuts import render
from django.utils import translation
from django.conf import settings
# I am trying to activate a default setting for the site, based on the domain of the site
if settings.SITE_ID == 1:
translation.activate("fr")
else:
translation.activate("en")
def homepage(request)
return render(request, "index.html")
def listing(request, id)
listing = Listing.objects.get(pk=id)
language = listing.language
translation.activate(language) # For particular pages, I need a different language, based on a value from the database. This is what I tried.
return render(request, "index.html")
【问题讨论】:
标签: django internationalization