GNU/Linux >> Linux の 問題 >  >> Linux

Debian でロケールをインストール/変更するには?

解決策 1:

/etc/default/locale を編集 内容を次のように設定します:

LANG="nl_NL.UTF-8"

以下を使用して、現在生成しているロケールを確認できます:

locale -a

/etc/locale.gen を編集することでさらに生成できます 有効にするロケールの行のコメントを外します。次に、コマンドを実行してそれらを生成できます:

locale-gen

サポートされているロケールのリストは /usr/share/i18n/SUPPORTED にあります

詳細については、Debian wiki を参照してください。

解決策 2:

locales をインストールする必要があるかもしれません パッケージ。これにより、生成するロケールを尋ねられます。すでにインストールされている場合は dpkg-reconfigure locales より多くのロケールを生成できます。

解決策 3:

ここでの回答は、他のほとんどの場合と同様に不完全です。いくつかの場所からの情報をつなぎ合わせた後、私にとってうまくいったのは、(1) 必要なロケールが利用可能であることを確認し (利用できない場合は生成する)、(2) ロケール関連の環境変数を目的のロケールに設定することでした。

私の場合、 en_US.UTF-8 が必要でした プログラムによって (つまり、非対話的に) Docker コンテナーにインストールされます。 ff は私が必要としているものを達成しましたが、インタラクティブ シェルでは問題なく動作するはずです。

apt-get update

# Install locales package
apt-get install -y locales

# Uncomment en_US.UTF-8 for inclusion in generation
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen

# Generate locale
locale-gen

# Export env vars
echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
echo "export LANG=en_US.UTF-8" >> ~/.bashrc
echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc

同じシェルで、 source ~/.bashrc を実行する必要があります 環境変数がすぐに有効になるようにします。 locale を呼び出して、ロケールが正しく構成されていることを確認できます。 .

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
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

このテーマに関して多くの Q&A エントリがありましたが、実際に役立つものはごくわずかでした。クレジットが必要なクレジット:

  • https://unix.stackexchange.com/a/247019/21289
  • https://perlgeek.de/en/article/set-up-a-clean-utf8-environment

解決策 4:

以下がインストールされた LXC コンテナーでは、これらの回答はどれもうまくいきませんでした:

lxc-create -n sse-master -t download -n sse-master -- \
    -d debian -r jessie --arch i386

locale-gen から常に次の出力を取得しました 、つまり、ロケールを生成しない (リストにない):

$ sudo locale-gen
Generating locales (this might take a while)...
Generation complete.

dpkg-reconfigure locales を実行中 一部のロケールを選択しても /etc/locale.gen が更新されませんでした

ただし、そのファイルを手動で変更し、必要なロケールのコメントを外したところ、 locale-gen 正常に動作し始めました:

$ sudo locale-gen
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

次のように手動でロケールを生成することもできました:

sudo localedef -i en_US -f UTF-8 en_US.UTF-8
sudo localedef -i en_GB -f UTF-8 en_GB.UTF-8

しかし、これは恒久的な解決策ではありませんでした:locale-gen を実行していることがわかりました --keep-existing なし オプションは、そのような手動で生成されたロケールをすべて削除します。つまり、/etc/locale.gen にリストされていない (およびコメント解除された) すべてのロケールです。 .

解決策 5:

Web アプリケーションの場合は、setlocale を使用した方がよい場合があります () 内側 システムのデフォルトロケールを外部で適切に設定する必要はありません。そうすることで、未解決の問題が少なくなります。


Linux
  1. Debianでホスト名を変更する方法

  2. Debian 11 に MariaDB をインストールする方法

  3. Debian 11 に MySQL をインストールする方法

  1. Debian9にRをインストールする方法

  2. Debian10にRをインストールする方法

  3. Debian11のインストール方法

  1. Debian10にGoをインストールする方法

  2. Debianにifconfigをインストールする方法

  3. Debian7にLEMPをインストールする方法