Django - 用语言代码为所有网址添加后缀
Django - Suffix all urls with language code
我在一个多语言网站上工作,所以我想用当前的 2 字符语言代码为我的所有网址添加后缀。如果未指定语言,我想默认为英语。
例如:
mysite.com/
--> mysite.com/en
mysite.com/location
--> mysite.com/locations/en
mysite.com/ar
将显示阿拉伯语站点
由于我不想将 (?P<language>[a-x]{2})$
添加到我的所有网址中,我猜我应该编写一些中间件来检查后缀并将其删除?
实现此目标的最佳方法是什么?
正如上面@Bogdan 的评论中所指出的,我求助于使用 django 中的内置前缀功能。
我在 MIDDLEWARE_CLASSES
设置中添加了 LocaleMiddleware
我添加了一个 LANGUAGES 设置来指定我网站中的语言,在我的例子中它只有英语和阿拉伯语所以我的语言看起来像
LANGUAGES = (
('ar', _('Arabic')),
('en', _('English')),
)
在我看来,我使用 request.LANGUAGE_CODE
访问语言代码并在我的模板中显示适当的语言
我在一个多语言网站上工作,所以我想用当前的 2 字符语言代码为我的所有网址添加后缀。如果未指定语言,我想默认为英语。
例如:
mysite.com/
--> mysite.com/en
mysite.com/location
--> mysite.com/locations/en
mysite.com/ar
将显示阿拉伯语站点
由于我不想将 (?P<language>[a-x]{2})$
添加到我的所有网址中,我猜我应该编写一些中间件来检查后缀并将其删除?
实现此目标的最佳方法是什么?
正如上面@Bogdan 的评论中所指出的,我求助于使用 django 中的内置前缀功能。
我在
MIDDLEWARE_CLASSES
设置中添加了LocaleMiddleware
我添加了一个 LANGUAGES 设置来指定我网站中的语言,在我的例子中它只有英语和阿拉伯语所以我的语言看起来像
LANGUAGES = ( ('ar', _('Arabic')), ('en', _('English')), )
在我看来,我使用
request.LANGUAGE_CODE
访问语言代码并在我的模板中显示适当的语言