Django中的语言中立URL
在Django中,可以使用语言中立URL(Language-neutral URLs)来使网站支持多种语言,在URL中不包含语言信息,而是使用浏览器设置中的Accept-Language头信息来动态决定使用哪种语言。
例如,我们可以创建一个语言中立的URL,如下所示:
url(r'^about/$', views.about, name='about'),
在模板中使用该URL时,可以将其作为静态URL使用:
<a href="{% url 'about' %}">About us</a>
当用户访问网站时,服务器会根据浏览器发送的Accept-Language头信息来动态判断要显示哪种语言的内容。
下面是一个使用语言中立URL的完整示例代码,其中包括了英文和中文两种语言的支持:
views.py:
from django.shortcuts import render def about(request): return render(request, 'about.html') def about_cn(request): return render(request, 'about_cn.html')
urls.py:
from django.conf.urls import url from . import views urlpatterns = [ url(r'^about/$', views.about, name='about'), url(r'^about_cn/$', views.about_cn, name='about_cn'), ]
about.html:
<h1>About us</h1> <p>pidancode.com is a programming tutorial website.</p>
about_cn.html:
<h1>关于我们</h1> <p>皮蛋编程是一个编程教程网站。</p>
使用语言中立URL的网站示例可以访问:http://pidancode.com/about/ 或者 http://pidancode.com/about_cn/。如果浏览器设置为中文,则会自动使用中文页面。
相关文章