Projeleri geliştirirken çoklu dil için çalışma yapıyor olabilirsiniz globalleşen dünyada tek dil tek millet gibi kavramlar yok, bunun yerine çoklu dil ve herkese hizmet etmek var. Bu bağlamda kişinin dil ayarlarını tarayıcısına kayıt etmek için aşağıdaki yolu kullanabilirsiniz.
- 10 yıl geçerli olacak şekilde kayıt edilir.
- Session’a ayrıca eklenir.
import datetime
from django.utils.translation import LANGUAGE_SESSION_KEY, get_language
from django.conf import settings
class LanguageCookieMiddleware:
def __call__(self, request, response):
language = get_language()
if hasattr(request, 'session'):
session_language = request.session.get(LANGUAGE_SESSION_KEY, None)
if session_language and not session_language == language:
request.session[LANGUAGE_SESSION_KEY] = language
request.session.save()
if settings.LANGUAGE_COOKIE_NAME in request.COOKIES and \
request.COOKIES[settings.LANGUAGE_COOKIE_NAME] == language:
return response
max_age = 365 * 24 * 60 * 60 # 10 yıl
expires = datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age)
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language, expires=expires)
return response