Você pode verificar quais locales são gerados e configurados em seu sistema usando o comando locale:
- locale ... lista a configuração de localidade atual
- locale -a ... lista todas as localidades geradas em seu sistema
- locale -a -v ... lista todos os códigos do idioma e mostra informações adicionais úteis (como nomes de diretório que contêm os arquivos de dados de informações do código do idioma)
O último comando acima faz você ver que todas as localidades geradas estão localizadas em /usr/lib/locale/
, você pode remover qualquer uma delas se for desnecessária. Cada pacote de informações de localidade é um diretório contendo arquivos de texto e outros diretórios.
Todas as localidades que você deseja que seu sistema suporte estão listadas nos arquivos de texto em /var/lib/locales/supported.d/
. Esses arquivos têm duas colunas, tag de idioma e mapa de caracteres.
Eu quero que meu sistema conheça apenas o inglês dos EUA, portanto, só tenho um arquivo chamado en, que contém apenas uma única linha:
en_US UTF-8
Mensagens de erro
Se mensagens de erro forem exibidas ao emitir o comando locale, por exemplo:
locale: Cannot set LC_ALL to default locale: No such file or directory
verifique se o arquivo /etc/default/locale
existe e tem conteúdo adequado, como:
LANG="en_US"
LANGUAGE="en_US:en"
Livre-se dos dados de localidade desnecessários - Passo a passo -
Agora sabemos todos os detalhes necessários para começar a limpar as informações de localidade do nosso sistema:
- Edite o (s) arquivo (s) de localidade em
/var/lib/locales/supported.d/
e remova todas as localidades desnecessárias (uma localidade por linha) - Crie e edite
/etc/default/locale
(veja acima para um exemplo) - Excluir todos os dados de localidade gerados:
rm -rfv /usr/lib/locale/*
- Gere novamente novos locais:
locale-gen
Isso é tudo! Reinicialize sua máquina para que suas alterações entrem em vigor. Em seguida, execute um ou mais exemplos de comando de localidade acima para garantir que o resultado seja o esperado.
~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
~#
~# locale -a -v
locale: en_US.utf8 directory: /usr/lib/locale/en_US.utf8
-------------------------------------------------------------------------------
title | English locale for the USA
source | Free Software Foundation, Inc.
address | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
email | [email protected]
language | English
territory | USA
revision | 1.0
date | 2000-06-24
codeset | UTF-8
Existe um pacote para Debian / Ubuntu que pode remover arquivos locais e locais (por exemplo, páginas man): localepurge
. Você pode instalar / executar o problema:
sudo apt-get install localepurge
uma vez instalado, você deve executar isto:
dpkg --configure localepurge
para garantir que suas configurações de idioma estejam definidas corretamente.
para executá-lo manualmente uma vez instalado (embora você não precise realmente como ele deve ser executado após cada dpkg
executar automaticamente) você pode fazer:
sudo localepurge
Leia a man page antes de usá-la. Se você puder fazer suas coisas sem isso, é provavelmente mais seguro deixar ir.
ref:
1. LocaleConf na documentação oficial
2. Página man do Linux
3. Local no wikipeadia
4. man localepurge