Como alterar / corrigir a localidade do sistema quando você configura em um idioma não oficial no seu país?

16

Como configuro um código de idioma global para o computador?

Instalei recentemente o Kubuntu 14.04LTS em inglês, mas como estou na Espanha, escolhi a Espanha como país e alterei as opções de localidade para obter todas as configurações específicas do país, como agrupamento de dígitos, separador decimal, formato de data etc. adicionou o idioma espanhol.

Agora, todos os aplicativos reclamam que o código do idioma está errado. check-language-supportdiz que estou usando en_ES.UTF-8como local do sistema e que esse local está realmente errado, não há local para o idioma inglês na Espanha.

Tentei usar as configurações de país / região e idioma do Kubuntu, mas ele não o corrige. Eu tentei usar export LANG=en_GB.UTF-8e, em export LC_ALL=en_GB.UTF-8seguida, sudo dpkg-reconfigure localese isso causou check-language-supportdizer que agora tenho uma configuração correta, mas se for, é apenas nessa sessão do konsole. Este problema também impede que o konsole mostre caracteres unicode e não posso usar chaves mortas nem inserir nenhum 'caractere internacional' como ñ ou ç (aqueles funcionam em outros aplicativos como o Firefox, que estou usando para postar esta pergunta).

Portanto, a pergunta é: como faço para configurar um código de idioma global para o computador?

Este não é um relatório de erro, provavelmente reinstalarei o computador se não conseguir corrigi-lo. Mas eu realmente quero saber como posso executar esta tarefa REALMENTE básica.

Obrigado.

$ check-language-support
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
hunspell-en-ca libreoffice-help-en-gb libreoffice-l10n-en-gb libreoffice-l10n-en-za mythes-en-au wspanish

$ cat /etc/default/locale
LANG="en_US.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"


$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_ES.UTF-8
LANGUAGE=en:es:en
LC_CTYPE="en_ES.UTF-8"
LC_NUMERIC=en_ES.UTF-8
LC_TIME=en_ES.UTF-8
LC_COLLATE="en_ES.UTF-8"
LC_MONETARY=en_ES.UTF-8
LC_MESSAGES="en_ES.UTF-8"
LC_PAPER=en_ES.UTF-8
LC_NAME=en_ES.UTF-8
LC_ADDRESS=en_ES.UTF-8
LC_TELEPHONE=en_ES.UTF-8
LC_MEASUREMENT=en_ES.UTF-8
LC_IDENTIFICATION=en_ES.UTF-8
LC_ALL=
$ update-locale
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Calabacin
fonte

Respostas:

9

O bug é relatado aqui: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 - "Alterar país leva a localidade inválida"

Soluções alternativas:

  1. Selecione o país Inglês britânico - não inglês americano (e depois o idioma Espanha)
  2. Ou edite manualmente ~/.kde/env/setlocale.shdepois de alterar as configurações de país / região e idioma
Freddy Vulto
fonte
8

Resolvi esse problema seguindo as etapas abaixo. Eu estudei como as localidades funcionam e os diferentes conjuntos de configurações entre algumas distribuições (originalmente baseadas no Debian).

Eu uso o Linux Mint como minha distribuição primária de sistema e o Debian como meus servidores de sistema.

Apesar de o Ubuntu ser derivado do Debian, as configurações de localidade são um pouco diferentes.

1) Verifique quais localidades estão instaladas e geradas no seu sistema:

sudo locale -a

2) remova localidades indesejadas usando o seguinte comando:

sudo localedef --delete-from-archive <YOUR DESIRED LOCALE HERE>

por exemplo:

sudo localedef --delete-from-archive en_AG

A configuração padrão localizada em /etc/default/localeé substituída pelas configurações pessoais (somente usuário local) geradas pelo aplicativo de idioma do sistema. Essas configurações estão localizadas em $HOME/.pam_environment($HOME = O local da sua pasta pessoal).

Esvazie este arquivo e escreva as configurações que você pode precisar.

Meu .pam_environmentarquivo:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
LC_PAPER=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_CTYPE=pt_BR.UTF-8

A variável LANG define o LC_ * não configurado para o valor configurado lá. Por exemplo:

Se o sistema pesquisar a variável LC_TIME e não estiver definido, ele usará o valor LANG como padrão para essa variável (neste caso, LC_TIME).

Meu .pam_environmentbasicamente diz: defina quase todas as variáveis pt_BR.UTF-8e o idioma do sistema para inglês.

Espero que esta informação seja útil.

Girol
fonte
1

Você deseja usar o comando update-locale . Visite essa página sobre como usá-lo. Basicamente, você o executa (com sudo) com argumentos que definem a localidade como você deseja que seja. Esta "Modifica as configurações globais de localidade" para seus requisitos.

Editar 1: você também pode procurar a locale-gen se a anterior não funcionar para você.

Zzzach ...
fonte
Obrigado. Eu já tentei isso. dpkg-reconfigure localesgerou todas as combinações possíveis para inglês e espanhol. Parece chamar locale-gen para todas as combinações de idiomas instaladas. Também locale-genpedi vários locais apenas por precaução. O problema é que en_ES não existe
Calabacin
Muito bem, continuarei procurando soluções. Não vejo um problema como esse há muito tempo.
Zzzach ... 22/07
1

Como Freddy Vulto comentou em sua resposta, este é um bug conhecido relatado aqui: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

Por favor, dê uma olhada no relatório de erros, se você precisar corrigi-lo manualmente. Pode ser corrigido chamando ~ / .kde / env / setlocale.sh (possivelmente após a modificação), entre outras correções possíveis.

Calabacin
fonte
1

Outra solução é alias inglês (Espanha) para inglês (EUA):

echo en_ES.UTF-8 en_US.UTF-8 >> /etc/locale.aliases

al.
fonte
Mesmo que seja apenas uma solução alternativa, acho que é inteligente e gosto. Ele provavelmente funciona também :)
Calabacin
0

Consegui corrigir temporariamente o problema alterando o idioma do sistema de inglês americano para inglês britânico, conforme sugerido acima. Eu fiz isso na caixa de diálogo Configurações do sistema KDE> Local> Idiomas. Divertidamente, ele exibiu uma mensagem de erro dizendo que não era permitido substituir o idioma atual, mas, na prática, foi desde que as novas configurações foram aplicadas quando eu apertei o botão "aplicar" e reiniciei a máquina.

Yngvefaen
fonte
0

Eu tive o mesmo problema no meu sistema: Kubuntu 16.04 LTS (kernel: 4.4.0-31-generic (x86_64)). Mas eu resolvi isso de uma maneira muito simples:

em " configurações do sistema " na guia " personalização ", clique em " configurações regionais ". escolha " Formatos " no menu à direita. À esquerda, verifique " configurações detalhadas " e altere todos os detalhes, como Números ou Hora, para o idioma e a região desejados.

(configurações do sistema> configurações regionais> formatos> configurações detalhadas)

Eu sei que é elementar, mas pode ser útil para alguém.

Jesmi
fonte
-3

Caras caras por que você está ficando louco? Tudo que você precisa é ir para a barra de pesquisa ou para o Unity Lens (se o Ubuntu), tipo "Language", você encontrará o aplicativo "Country / Region & Language". Na guia "País", escolha o idioma desejado.

Se você deseja manter a localidade atual e alterar algumas outras opções, como formato de data ou medidas imperiais para métricas, basta usar as outras guias! :)

Está disponível na distro Ubuntu 14.04 LTS e posterior.

Dave Marksmen
fonte
4
O Ubuntu tem Unity por padrão. Este é um problema do KDE. Completamente não relacionado. Além disso, a alteração das configurações regionais não resolveu o problema, conforme declarado na op. Ainda assim, obrigado por dedicar seu tempo para tentar corrigir esse problema.
Calabacin