在Django CMS中使页面支持多种语言的最佳方法

2 投票
1 回答
780 浏览
提问于 2025-04-17 18:52

在Django中,怎样才能让一个页面支持多种语言呢?我看过文档,使用了LANGUAGES,但是我还是看不到翻译后的页面。

我现在有点困惑。我是不是应该自己管理/en/de等这些网址呢?

谢谢大家的帮助。

1 个回答

1

使用Django的国际化功能,它在Django里已经有了。首先,在你的Django项目里创建一个“locale”文件夹,然后在settings.py文件中添加这个文件夹的路径。例如:LOCALE_PATHS="项目路径/locale"

接下来,在settings.py中把这个添加到中间件里 - 'django.middleware.locale.LocaleMiddleware',并且把USE_I18N设置为True。

然后在settings.py中,把"django.core.context_processors.i18n"添加到模板上下文处理器里。

对于HTML文件:首先你需要在文件顶部包含国际化的模板标签,然后你就可以在HTML文件的所有静态元素中使用这些模板标签。比如:在你的HTML文件最上面加上{% load i18n %},然后试试这个。

{% trans "在这里放你的静态文本" %},在页面上任何静态文本的地方都可以使用。

如果你在Django的模板变量中使用,可以这样写 - {% blocktrans %}这是你的翻译 {{ object }}{% endblocktrans %}

现在,对于Django视图,你需要这样做:

从django.utils.translation导入ugettext作为_

def view(request): output = _("这是翻译后的文本") return HttpResponse(output)

撰写回答