Como consertar arquivos de localidade ausentes no Manjaro?

Como consertar arquivos de localidade ausentes no Manjaro?

Estou executando o Manjaro Gnome e instalei algumas atualizações com o gerenciador de pacotes. Desde então, continuo recebendo estas mensagens no console:

manpath: can't set the locale; make sure $LC_* and $LANG are correct
(anon):12: character not in range
manpath: can't set the locale; make sure $LC_* and $LANG are correct

Correr localeme dá esta saída:

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_US.UTF-8
LC_CTYPE=
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=

Quando executo sudo locale-genrecebo uma mensagem de erro informando que arquivos ou diretórios não existem

Generating locales...
  de_DE.UTF-8...failed to set locale!
[error] cannot open locale definition file `i18n_ctype': No such file or directory

de_DE.UTF-8 UTF-8quando comento /etc/locale.gen(então a única linha não comentada é en_US.UTF-8 UTF-8), recebo:

Generating locales...
  en_US.UTF-8...failed to set locale!
[error] cannot open locale definition file `en_GB': No such file or directory

Este é o conteúdo de /usr/share/i18n/locales:

de_DE                  translit_combining
en_US                  translit_compat
i18n                   translit_font
iso14651_t1            translit_fraction
iso14651_t1_common     translit_hangul
iso14651_t1_pinyin     translit_narrow
translit_circle        translit_neutral
translit_cjk_compat    translit_small
translit_cjk_variants  translit_wide

Parece que os arquivos en_GBestão i18n_ctyperealmente faltando (embora eu não tenha certeza se eles deveriam estar nesta pasta)

Além disso, se eu for aoConfigurações->Região e Idioma, não posso mudar oLinguagem(diz Unspecified [ANSI_X3.4-1968]. Se eu clicar nele, não há nada para selecionar noSelecione o idiomaAparecer.

Descobri online que o problema poderia ser glibc(e de acordo com o histórico glibcfoi reinstalado durante a atualização que executei [2020-08-11T18:49:33+0200] [ALPM] reinstalled glibc (2.31-5)). No entanto, não sei como consertar isso. Não há botão de reinstalação do glibc no gerenciador de pacotes, e não quero fazer nenhum experimento onde possa acabar em uma bagunça maior.

Existe uma maneira de reinstalar/redefinir os arquivos de idioma?

Atualizar

Eu uso NoExtractpara /etc/pacman.confeconomizar espaço no disco rígido, conforme descrito no [Arch wiki] (https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installing_only_content_in_required_languages)

NoExtract = usr/share/help/* !usr/share/help/en*
NoExtract = usr/share/gtk-doc/html/*
NoExtract = usr/share/locale/* usr/share/X11/locale/* usr/share/i18n/* opt/google/chrome/locales/*
NoExtract = !*locale*/en*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*
NoExtract = !usr/share/*locales/en_US !usr/share/*locales/i18n !usr/share/*locales/iso*
NoExtract = !usr/share/*locales/trans*
NoExtract = !*locale*/de*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*
NoExtract = !usr/share/*locales/de_DE !usr/share/*locales/i18n !usr/share/*locales/iso*
NoExtract = !usr/share/*locales/trans*
NoExtract = usr/share/qt4/translations/*
NoExtract = usr/share/man/* !usr/share/man/man*
NoExtract = usr/share/vim/vim*/lang/*
NoExtract = usr/lib/libreoffice/help/en-US/*

Eu me pergunto se isso é parte do problema, talvez quando o glibc foi reinstalado alguns arquivos tenham sido ignorados.

Responder1

  1. Editar /etc/locale.gen:

    Remova o comentário da linha com o seu:

    locale en_US.UTF-8
    
  2. corrersudo locale-gen

Crédito:https://nanxiao.me/en/fix-locale-configuration-issue-on-arch-linux/

Responder2

Encontrei uma solução agora. Não acho que essa seja a melhor maneira, mas parece funcionar para mim.

eu baixei opacote glibce copiei manualmente os arquivos ausentes ( en_GBe i18n_ctype) para /usr/share/i18n/locales/.

E então corrasudo locale-gen

Responder3

Você pode recuperá-lo /etc/locale.genreinstalando o glibcpacote. Isso irá gerar um novo arquivo na instalação.

Responder4

No meu caso, o problema foi causado por KDE Plasma Settings Manager- que configurou a localidade para uma configuração não existente.

Durante a instalação do Manjaro, escolhi Finland/Englishlá, porque estava disponível. Por que não? Resolve o fi_EN.UTF-8que acaba sendo no mínimo um absurdo, já que glibcnão contém tal combo.

Você pode listar os glibcidiomas verificando seus arquivos de pacote assim:

pacman -Ql glibc | grep fi_

Que no meu caso mostrou esses dois:

glibc /usr/share/i18n/locales/fi_FI
glibc /usr/share/i18n/locales/fi_FI@euro

fi_FIé o adequado, não fi_ENnenhum dos dois fi_US. Que vergonha, Plasma.

Substitua grep fi_no comando acima para encontrar seu idioma, como para polonês:, grep pl_alemão: grep de_e assim por diante.

Em seguida, compare-o com o resultado da localechamada de comando. No meu caso precisei corrigir editando o arquivo /etc/locale.gen. Você pode seguir a solução de problemas do Manjaro:

https://wiki.manjaro.org/index.php/Locale

Ou melhor, no Holly Arch Wiki:

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

informação relacionada