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.

Written on September 7, 2013

Share: