Django中的多语言路由
Django中的多语言路由是指在同一网站中使用多种语言,在URL中通过语言代码区分不同语言版本的方式。通常,一个多语言网站的URL会像这样:
https://www.pidancode.com/en/home/ https://www.pidancode.com/zh/home/
其中,en
和zh
分别代表英语和中文。
使用Django的多语言路由功能,可以通过以下步骤实现:
- 在
settings.py
中设置语言列表和默认语言
LANGUAGE_CODE = 'en-us' LANGUAGES = [ ('en', 'English'), ('zh', '中文'), ]
- 在
urls.py
中使用django.conf.urls.i18n
中的i18n_patterns()
方法,为每种语言版本设置URL前缀
from django.conf.urls import url, include from django.conf.urls.i18n import i18n_patterns urlpatterns = [ url(r'^admin/', admin.site.urls), ] urlpatterns += i18n_patterns( url(r'^$', views.home, name='home'), url(r'^about/$', views.about, name='about'), )
- 在视图函数中使用
django.utils.translation
中的get_language()
方法获取当前语言版本,并使用相应语言版本的翻译内容。
from django.utils.translation import gettext as _ def home(request): lang = get_language() if lang == 'zh': message = _('欢迎来到皮蛋编程!') else: message = _('Welcome to Pidan Coding!') return render(request, 'home.html', {'message': message})
以上就是使用Django的多语言路由功能的基本步骤。需要注意的是,为了方便管理翻译内容,通常会使用Django的国际化(i18n)功能,将翻译内容保存在.po
文件中,并通过makemessages
和compilemessages
命令生成和编译语言文件。如果需要使用字符串作为范例,请在.po
文件中添加相应的翻译内容。
相关文章