在Django CMS中使页面支持多种语言的最佳方法
在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)