Несколько способов сделать это, которые приходят на ум. Возможно, наиболее «совместимым со стандартами» способом было бы использовать заголовок HTTP Accept-Language
, который доступен для представлений как request.META['HTTP_ACCEPT_LANGUAGE']
, чтобы определить язык, на котором пользователь предпочитает получать ресурсы, и просто вернуть переведенный HttpResponse
в соответствующий язык.
Другой распространенный способ, более похожий на то, что вы описываете, - попросить пользователя выбрать язык при его первом поступлении и сохранить выбор в сеансе. Как только пользователь сделает выбор, перенаправьте браузер в соответствующий языковой подкаталог и используйте относительные ссылки в своих представлениях, чтобы не беспокоиться о пересечении языков. Вы можете настроить свой URLconf так, чтобы он передавал ключевое слово языка вашему представлению следующим образом:
urlpatterns = patterns('',
(r'^(?P<lang>[a-zA-Z]{2})/ ...
На сайте документации Django есть страница Интернационализация / Локализация , которая может помочь вам начать работу.