Cuidado com o LocaleMiddleware do Django
Depois de um tempo sem falar sobre Python/Django estou aqui de volta..
Estava trabalhando em um projeto Django hoje e me deparei com uma situação recorrente que gostaria de compartilhar.
Como está na documentação do projeto, o Django possui uma configuração para definirmos o idioma a ser utilizado em toda instalação através da variável LANGUAGE_CODE
, por padrão ela vem setada como "en-us", mas podemos alterá-la segundo nossa preferência (como "pt-br" para português do Brasil).
Até aqui tudo bem, só devemos tomar cuidado se nosso projeto possui o django.middleware.locale.LocaleMiddleware
ativo na tupla MIDDLEWARE_CLASSES
no arquivo settings.py
.
Caso esteja, o Django irá tentar usar o idioma de preferência do usuário baseado nas requisições, ou seja, se o usuário usar idioma inglês por exemplo e o Django tiver esse idioma então será utilizado ele.
Esse recurso é bom, mas as vezes queremos fixar um idioma sem levar em conta preferências dos usuários, para isso basta garantir que o LocaleMiddleware
não está entre os middlewares do projeto.
Até mais.