Django - 使用语言代码替换所有网址

时间:2015-10-10 07:45:37

标签: django django-urls django-middleware

我正在使用多语言网站,因此我希望使用当前的双字符语言代码为所有网址添加后缀。如果没有指定语言,我想默认为英语。

例如:

mysite.com/ - > mysite.com/en

mysite.com/location - > mysite.com/locations/en

mysite.com/ar将显示阿拉伯网站

由于我不想在我的所有网址中添加(?P<language>[a-x]{2})$,我猜我应该编写一些中间件来检查后缀并将其删除?

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

正如上面@Bogdan的评论中指出的那样,我使用了django中的内置前缀功能。

  • 我在var imap = new Imap({ user: nconf.get('IMAP_USER'), password: nconf.get('IMAP_PASS'), host: nconf.get('IMAP_HOST'), port: nconf.get('IMAP_PORT'), connTimeout: 10000000, tls: true }); 设置中添加了LocaleMiddleware

  • 我添加了一个LANGUAGES设置来指定我网站中的语言,在我的情况下,它只是英语和阿拉伯语,所以我的语言看起来像

    MIDDLEWARE_CLASSES

  • 在我的观看中,我使用 LANGUAGES = ( ('ar', _('Arabic')), ('en', _('English')), ) 访问语言代码并在我的模板中显示相应的语言