Django中的语言中立URL

2023-04-11 00:00:00 django 语言 中立

在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/。如果浏览器设置为中文,则会自动使用中文页面。

相关文章