As configurações de localidade não estão corretas. Como posso redefini-los?

41

Eu tenho um problema local.
A sequência de intercalação em nautilus e outros programas foi alterada.
Eu recebo erros de localidade aparecendo no terminal quando eu inicio um aplicativo GUI.

    Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

O comando locale produz mensagens de erro

    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_AU
    LANGUAGE=en_AU:en
    LC_CTYPE="en_AU"
    LC_NUMERIC="en_AU"
    LC_TIME="en_AU"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU"
    LC_NAME="en_AU"
    LC_ADDRESS="en_AU"
    LC_TELEPHONE="en_AU"
    LC_MEASUREMENT="en_AU"
    LC_IDENTIFICATION="en_AU"
    LC_ALL=

Como sugerido na pergunta do askubuntu , executei os seguintes comandos, mas havia nenhuma mudança.

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales

Eu também tentei a sugestão em askubuntu question ... também sem alterações.

    apt-get install --reinstall locales

Eu acho que começou quando eu temporariamente instalei e desinstalei o Editor de Método de Entrada do idioma Urdu via IBus .. isso certamente aconteceu no mesmo dia.

Talvez seja IBus relacionado, mas eu não tive nenhum problema com isso antes disso.

  • O sistema operacional é 10.04
por Peter.O 01.04.2011 / 20:29

12 respostas

27

Eu consegui fazer as coisas funcionarem "normalmente" novamente.

Depois de tentar muitas reinstalações de pacotes, etc, incluindo a remoção completa do IBus (tudo sem efeito), comecei a pensar que isso pode ser causado por uma configuração que a reinstalação não modifica.

Eu tinha notado que a saída de locale estava bastante destituída, de atribuições UTF-8, então verifiquei isso em uma VM recentemente instalada ... todas as entradas de LC_ * (exceto LC_ALL, que substitui todas os outros) foram definidos com o sufixo .UTF-8 . então eu defino manualmente os valores LC_ * como mostrado abaixo.

Eu provavelmente poderia ter usado apenas LC_ALL="en_AU.UTF-8" , mas ao ler sobre isso, descobri como personalizar o formato de data e hora do sistema , e LC_ALL iria sobrepor minha configuração personalizada.

Não sei se usei o método mais adequado, mas funciona!

O arquivo modificado é: /etc/default/locale

  • Isto mostra o conteúdo antes do mod:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
    
  • Isto mostra o conteúdo após o mod:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_CTYPE="en_AU.UTF-8"
    LC_NUMERIC="en_AU.UTF-8"
    LC_TIME="en_AU.UTF-8"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU.UTF-8"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU.UTF-8"
    LC_NAME="en_AU.UTF-8"
    LC_ADDRESS="en_AU.UTF-8"
    LC_TELEPHONE="en_AU.UTF-8"
    LC_MEASUREMENT="en_AU.UTF-8"
    LC_IDENTIFICATION="en_AU.UTF-8"
    

O mesmo arquivo na VM continha apenas esta linha:

    LANG="en_AU.UTF-8" 
por Peter.O 02.04.2011 / 05:23
17

A redefinição dos códigos de idioma e a reconfiguração podem ser suficientes para corrigir o problema:

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales

Quando você executar sudo dpkg-reconfigure locales , você pode selecionar a localidade desejada clicando em barra de espaço e movendo com e antes de pressionar < kbd> Digite .

    
por Guillaume Vincent 09.01.2013 / 11:52
14

Também encontrei esse problema, como você pode ver, seu LC_ALL está vazio. Eu fiz o seguinte e ajuda:

$ sudo vim /etc/environment

e defina o LC_ALL para algo como en_US.UTF-8 , o meu é:

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"

depois reinicie e execute locale , e deve ser algo como:

LANG=zh_CN.utf8
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=en_US.UTF-8
    
por McKelvin 10.08.2012 / 15:20
4

Se você está conectado remotamente à máquina através do ssh (por exemplo, de um dispositivo macosx), você precisa definir estas variáveis na máquina que está conectando de

adicione o seguinte a ~ / .bash_profile

#fix for locale issues when connecting to ubuntu servers
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"
    
por Somatik 28.08.2012 / 13:22
2

Só quero adicionar que precisei editar meu perfil de usuário também:

gedit ~/.profile

Então, no seu caso, seria parecido com:

...
LANG="en_AU.UTF-8"
LANGUAGE="en_AU:en"

Saia + Efetue login. E tudo é o esperado.

    
por Aas 26.03.2012 / 11:28
2

Eu tive o mesmo problema por vários meses, muitas ferramentas de software avisaram sobre configurações locais quebradas, e algumas até se recusaram a rodar. Quero usar o idioma inglês, mas configurações monetárias e numéricas suecas.

O que finalmente funcionou para mim foi editar /etc/default/locale , onde eu removi tudo nesse arquivo. Eu então iniciei a configuração de idioma do Unity (Settings -> Language Support) , configurei tudo (o Ubuntu queria instalar alguns componentes ausentes) e pressionei "Apply System-wide" quando eu estava pronto.

Meu /etc/default/locale agora é assim.

LC_NUMERIC="sv_SE.UTF-8"
LC_TIME="sv_SE.UTF-8"
LC_MONETARY="sv_SE.UTF-8"
LC_PAPER="sv_SE.UTF-8"
LC_IDENTIFICATION="sv_SE.UTF-8"
LC_NAME="sv_SE.UTF-8"
LC_ADDRESS="sv_SE.UTF-8"
LC_TELEPHONE="sv_SE.UTF-8"
LC_MEASUREMENT="sv_SE.UTF-8"
LANGUAGE="en"
LANG="en_US.UTF-8"

A grande diferença entre este e meu arquivo original é LANGUAGE="en" .

    
por David A 14.11.2013 / 22:24
2

Já faz um tempo desde que isso foi postado, mas recentemente eu tive problemas com variáveis "locale" e nenhuma resposta me deu nenhum resultado. Talvez minha própria experiência possa ajudar alguém.

Minha variável LANG estava vazia, e isso estava me causando problemas.

$locale

Saída:

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

Eu tentei alguns dos comandos como:

sudo locale-gen
sudo dpkg-reconfigure locales

Sem sucesso. Eu tentei editar o / etc / default / locale e descobrir que já era O.K:

$cat /etc/default/locale

Saída:

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

Além disso, meu arquivo .pam_environment parecia estar certo:

$cat .pam_environment

Saída:

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

Eu não quero adicionar coisas extras a arquivos de perfil ou bash, principalmente porque, embora pudesse resolver o problema, eu não saberia a causa, e isso me incomodava.

Por fim, imaginei se algo já estava substituindo as variáveis "locale" e executei o próximo comando:

$cat .bashrc | grep LANG

Saída:

unset LANG

Então eu encontrei duas linhas no meu arquivo .bashrc onde a causa (não estou colando o arquivo inteiro):

unset LANG
export LC_ALL=POSIX

Eu não sei como ou quando essas linhas terminaram no meu arquivo bash, mas tenho certeza absoluta de que não as escrevi, talvez meu .bashrc tenha sido substituído quando eu estava trabalhando com algumas coisas de desenvolvimento web, Eu realmente não sei, mas desde que eu sei que isso não foi intencional e há pessoas lá fora sem idéia sobre o que está causando mau comportamento "local", talvez isso possa ajudá-los. De qualquer forma comentando essas linhas e uma reinicialização resolveu o problema para mim. Aqui eu respondi a mesma pergunta focada em sublimeT3 reclamações sobre o Variável LANG .

    
por smajtkst 15.08.2015 / 04:52
1

Parece uma atualização de locais fritos de alguma forma. A correção que encontrei foi sair, alterar o idioma selecionado antes de fazer o login e fazer login novamente.

Também pode ajudar a reinstalar as localidades no synaptic, embora eu não possa confirmar se foi isso que consertou para mim, acho que foi o logout ou algo assim.

    
por RolandiXor 01.04.2011 / 21:14
1

Eu tentei editar o arquivo de locale e escolher idiomas diferentes no login.

Filtrando pacotes quebrados com o Synaptic e removendo completamente os 9 pacotes problemáticos que funcionavam para mim (libreoffice e python uno).

Mas, não consigo instalar o LibreOffice sem corromper o gerenciador de pacotes. No entanto, instala.

Estou em 11.04 i386. Disclaimer: Houve uma falha de energia durante a última parte da minha instalação como o Ubuntu estava baixando atualizações.

    
por marajit 30.10.2011 / 17:53
1

Eu tive o mesmo problema, mas vou Sistema > Administração > Suporte de linguas pode resolver o seu problema porque pode pedir você instalar alguns pacotes e depois vai ficar bem!! Funcionou para mim, então eu acho vai fazer o mesmo com você !!

    
por Nickolas Pylarinos 16.11.2012 / 14:57
0

Executar

export LC_ALL="zh_CN.utf8"
ibus-setup

e selecione uma das opções para o método de entrada que você deseja.

    
por mobeyond 24.01.2013 / 05:27
0

Eu tive um problema semelhante (mais notado no Thunderbird) ao exemplo en_AU aqui - mas eu sou do en_NZ - e depois de algumas tentativas e erros com o Ubuntu 17.10 minha correção foi atualizar o ~ / .pam_environment, substituindo todos outras entradas (principalmente en_AU e en_US) com en_NZ, depois reiniciando.

É uma pena que você não possa simplesmente definir sua localidade e fazer com que ela faça o que alega - mais desapontado que a execução de localidades do dpkg-configure não pareça realmente fazer nada útil.

    
por BlakJak 10.11.2017 / 07:23

Tags