Manjaro で不足しているロケールファイルを修正するにはどうすればよいですか?

Manjaro で不足しているロケールファイルを修正するにはどうすればよいですか?

私は Manjaro Gnome を実行しており、パッケージ マネージャーを使用していくつかのアップデートをインストールしました。それ以来、コンソールに次のメッセージが表示され続けています:

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

実行すると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_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=

実行すると、sudo locale-genファイルまたはディレクトリが存在しないというエラーメッセージが表示されます

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-8/etc/locale.genコメントアウトされていない行は だけですen_US.UTF-8 UTF-8)、次のようになります。

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

以下の内容です/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

したがって、ファイルen_GBとがi18n_ctype実際に欠落しているようです(ただし、このフォルダにあるべきかどうかはわかりません)

また、私が設定->地域と言語、変更できません言語(と表示されますUnspecified [ANSI_X3.4-1968]。クリックすると、選択できるものがありません。言語を選択するポップアップ。

オンラインで調べたところ、問題は にある可能性があることがわかりましたglibc(履歴によると、glibc実行したアップデート中に再インストールされました[2020-08-11T18:49:33+0200] [ALPM] reinstalled glibc (2.31-5))。ただし、修正方法がわかりません。パッケージ マネージャーには glibc の再インストール ボタンがないため、大きな混乱を招く可能性のある実験はしたくありません。

言語ファイルを再インストール/リセットする方法はありますか?

アップデート

私は[Arch wiki]で説明されているように、ハードドライブのスペースを節約するためにNoExtractinを使用します(/etc/pacman.confhttps://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#必要な言語でのみコンテンツをインストールする

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/*

これが問題の一部なのだろうか、おそらく glibc を再インストールしたときにいくつかのファイルがスキップされたのかもしれない。

答え1

  1. 編集/etc/locale.gen

    次の行のコメントを解除します:

    locale en_US.UTF-8
    
  2. 走るsudo locale-gen

クレジット:https://nanxiao.me/en/fix-locale-configuration-issue-on-arch-linux/

答え2

解決策を見つけました。これが最善の方法だとは思いませんが、私にとってはうまくいくようです。

ダウンロードしたglibc パッケージ不足しているファイル (en_GBおよびi18n_ctype) を に手動でコピーしました/usr/share/i18n/locales/

そして走るsudo locale-gen

答え3

/etc/locale.genパッケージを再インストールすることで元に戻すことができますglibc。これにより、インストール時に新しいファイルが生成されます。

答え4

私の場合、問題はKDE Plasma Settings Manager、ロケールを既存の構成に構成しなかったことが原因でした。

Manjaro のインストール中に、Finland/Englishそこが利用可能だったのでそれを選択しました。なぜでしょうか?fi_EN.UTF-8これは に解決されますが、そのような組み合わせは含まれていないため、少なくとも意味をなさないことがわかりますglibc

glibc次のようにパッケージ ファイルをチェックして言語を一覧表示できます。

pacman -Ql glibc | grep fi_

私の場合は次の 2 つが表示されました。

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

fi_FIは正しいです、fi_ENどちらでもありませんfi_US。恥を知れ、プラズマ。

上記のコマンドの を置き換えてgrep fi_、言語を見つけます。たとえば、ポーランド語の場合はgrep pl_、ドイツ語の場合grep de_は などです。

次に、コマンド呼び出しの結果と比較しますlocale。私の場合は、編集して修正する必要がありました/etc/locale.gen。Manjaro のトラブルシューティングに従ってください。

https://wiki.manjaro.org/index.php/ロケール

あるいは、Holly Arch Wiki では次のようになります:

https://wiki.archlinux.org/title/ロケール

関連情報