2015-10-10 26 views
0

我正在使用多語言網站,所以我想用當前的2個字符的語言代碼將所有網址後綴。如果沒有指定語言,我想默認爲英文。Django - 用語言代碼後綴所有網址

例如:

mysite.com/ - >mysite.com/en

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

mysite.com/ar將顯示阿拉伯語網站

由於我不希望添加(?P<language>[a-x]{2})$所有我的網站我猜我應該編寫一些中間件來檢查後綴並將其去掉?

達到此目的的最佳方法是什麼?

+2

使用標準方式並將它們與語言代碼前綴不是更容易嗎? Django提供了一個快速的方法:https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#module-django.conf.urls.i18n –

+0

@BogdanIulianBursuc謝謝,我不知道這存在!請添加它作爲答案,我會接受 – potatoes

回答

0

正如@Bogdan在上面的評論中指出的那樣,我使用了django中的內置前綴功能。

  • 我在MIDDLEWARE_CLASSES添加LocaleMiddleware設置

  • 我加入了語言設置在我的網站指定的語言,在我的情況下,它是唯一的英語和阿拉伯語,所以我的語言看起來像

    LANGUAGES = ( ('ar', _('Arabic')), ('en', _('English')), )

  • 在我的看法中,我使用request.LANGUAGE_CODE來訪問語言代碼並在我的模板中顯示相應的語言