this post was submitted on 03 Mar 2024
8 points (90.0% liked)

Linux Brasil

781 readers
2 users here now

Comunidade Lusófona de entusiastas Linux.

Bem vindo ao nosso agregado de links sobre Linux.


Geral

Wiki do c/Linux

Megathread do c/Linux

Chat

founded 2 years ago
MODERATORS
8
submitted 9 months ago* (last edited 9 months ago) by Sou_Puro_Osso to c/linux
 

O problema aconteceu depois do pós install do archlinux, depois de configurar o xorg.

Aqui no firefox, e em outros aplicativos, tudo funciona normalmente, consigo digitar todos os acentos normalmente (ãẽĩõũáéíóú).

Mas, não no terminal, nem nos terminais em GUI, como o konsole que tô usando agora, nem no ttui.

Quando eu fiz a instalação, eu acabei escrevendo errado a lingua do locale, ficou: LANG=pr_BR-UTF-8 ao invés de: LANG=pt_BR-UTF-8. Agora no pós install, eu corrigi e gerei os locales novamente, será que eu esqueci alguma coisa?

O layout de teclado tá setado direitinho nas configurações do kde.

top 5 comments
sorted by: hot top controversial new old
[–] BaalInvoker 3 points 9 months ago (1 children)

Como você fez a correção do locale?

Roda o comando $ locale e verifica a saída, se está tudo correto

[–] Sou_Puro_Osso 3 points 9 months ago* (last edited 9 months ago) (1 children)
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=pt_BR
LC_CTYPE="pt_BR"
LC_NUMERIC="pt_BR"
LC_TIME="pt_BR"
LC_COLLATE="pt_BR"
LC_MONETARY="pt_BR"
LC_MESSAGES="pt_BR"
LC_PAPER="pt_BR"
LC_NAME="pt_BR"
LC_ADDRESS="pt_BR"
LC_TELEPHONE="pt_BR"
LC_MEASUREMENT="pt_BR"
LC_IDENTIFICATION="pt_BR"
LC_ALL=

Esses erros aí em cima eu corrigi com: export LC_ALL="pt_BR.UTF-8" Agora vai sem erros:

LANG=pt_BR
LC_CTYPE="pt_BR.UTF-8"
LC_NUMERIC="pt_BR.UTF-8"
LC_TIME="pt_BR.UTF-8"
LC_COLLATE="pt_BR.UTF-8"
LC_MONETARY="pt_BR.UTF-8"
LC_MESSAGES="pt_BR.UTF-8"
LC_PAPER="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_IDENTIFICATION="pt_BR.UTF-8"
LC_ALL=pt_BR.UTF-8

Mas no próximo boot, LC_ALL não está setado

Eu corrigi o locale naquele arquivo, /etc/locale.conf, eu tinha escrito errado, e corrigi agora a pouco.

De acordo com esse passo na arch wiki:

Create the locale.conf(5) file, and set the LANG variable accordingly:

/etc/locale.conf
---------------------
LANG=en_US.UTF-8

No meu tá assim: LANG=pt_BR.UTF-8

[–] Sou_Puro_Osso 2 points 9 months ago (1 children)

Opa! O problema era o LC_ALL mesmo echo "LC_ALL=pt_BR.UTF-8" | sudo tee -a /etc/environment

Isso aí resolveu, valeu!

[–] BaalInvoker 3 points 9 months ago* (last edited 9 months ago) (1 children)

Você não deve usar LC_ALL como variável de ambiente. LC_ALL é só pra debug

Faz o seguinte:

Vai em /etc/locale.gen e tenha certeza que pt_BR.UTF-8 UTF-8 está descomentado

Então rode

# locale-gen

Depois roda o seguinte comando:

# localectl set-locale LANG=pt_BR.UTF-8

Pra aplicar imediatamente, roda os comandos

$ unset LANG
$ source /etc/profile.d/locale.sh

Imagino que com isso você conseguirá fazer funcionar direitinho

Qualquer coisa dá uma lida no Arch Wiki referente a locales

https://wiki.archlinux.org/title/locale


Edit:

O problema reside no fato de que não existe locale pt_BR. O correto é pt_BR.UTF-8

Quando você usa o LC_ALL ele sobrescreve todos os outros locales. Inclusive é por isso que ele não deve ser usado fora de ambiente de debug. A questão aqui é que no LC_ALL você colocou o locale correto, então pareceu uma solução. Mas a solução mesmo é você alterar todas as variáveis para o locale correto, pt_BR.UTF-8, desativando o LC_ALL

[–] macacoprego 4 points 9 months ago

Ahhhh, por isso que não funcionava no meu também. Vou poder tirar a minha gambiarra do sistema