O arquivo /etc/default/locale
define padrões uhm ... "globais". Isso significa que esses padrões são lidos por qualquer shell de "nível superior" quando ele é inicializado e, em seguida, são herdados por processos executados.
Para encurtar a história, isso significa que esses padrões são aplicados a:
- Todos os daemons (programas em segundo plano) à medida que são iniciados usando scripts de shell localizados em
/etc/init.d
. - Shells interativos que você executa em sua sessão de login.
Portanto, apenas alterar esse arquivo requer uma reinicialização.
Mas, como o conteúdo desse arquivo é apenas um script de shell que define um monte de variáveis de ambiente , para efetuar um programa em particular você só precisa fazer com que o programa veja diferentes conteúdos dessas variáveis.
A maneira mais simples de conseguir isso é apenas colocar sua tarefa antes do programa ser executado, ou seja, no prompt do seu shell, você pode fazer:
$ LANG=en exif -h
e veja exif
falando com você em inglês (o caractere $
aqui denota um prompt de shell - não o digite).
A segunda maneira é fazer com que todos os programas no shell atual vejam o novo conteúdo das variáveis; isso é feito "exportando" eles, como @clarkw mostrou: uma variável exportada e seu conteúdo é herdado pelo ambiente de todos os processos executados a partir do shell, portanto, o seguinte também funciona:
$ export LANG=en
$ exif -h
ou
$ LANG=en
$ export LANG
$ exif -h
Essas variáveis de ambiente são descritas no locale(1)
página do manual .
E a última dica: não mude o conteúdo de /etc/default/locale
manualmente - use o modo Debian para gerenciá-lo: execute
# dpkg-reconfigure locales
que primeiro perguntará a você quais localidades compilar e instalar (você pode pular este passo) e então qual escolher como padrão.
Atualização: aqui uma página no wiki do Debian dedicada a localidades que praticamente explica tudo o que é necessário incluindo as variáveis de ambiente.