4

有没有办法用 django 和子域创建多语言站点?

我想要这个:

en.mysite.com -> 英文网站 it.mysite.com -> 意大利文网站

我听说过 localeurl 应用程序,但它主要用于像 /en/index.html 或 /it/index.html 这样的 url 路径。

4

1 回答 1

4

您可以使用域框架来获取当前域:

from django.contrib.sites.models import Site
domain = Site.objects.get_current().domain
language = domain.split('.')[0]

或者从HTTP_HOST META获取:

domain = request.META['HTTP_HOST']
language = domain.split('.')[0]

然后激活语言:

from django.utils import translation
translation.activate(language)

您可以使用此代码编写自己的中间件。

于 2012-09-02T22:51:58.787 回答