web-dev-qa-db-ja.com

debian / ubuntuのロケールと言語設定

この自己回答の質問は、次の問題を解決します。

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

およびその他のロケール関連の問題。

編集:これを私自身の答えに制限することは、振り返ってみると、かなり非効率的であるように思われます。お気軽に2セント追加してください。またはあなたが惜しまない限り多く....

5
AndreasT

私たちは完全にシェル(bash)で作業しています。

誰もが最初にすべきことは

Sudo dpkg-reconfigure locales

出力は、上記のエラーと、スクリプトが生成するロケールのリストである可能性があります。そこに生成されたロケールは、システムに有効なロケールのみであることに注意してください。ご覧のとおり、言語設定は単なる環境変数の集まりです。楽しみのために、次のような別の言語のbashを試すことができます。

LANG=es_NI.UTF-8 bash
ls somedirectorynamethatdoesnotexistonyoursystem

Tu hablas espaniol? :-)(es_NI.UTF-8があなたのロケールのリストになかった場合は別のものを選択してください)

OK。明らかに、LANG環境変数は残りの設定に役立ちます。これは、スペイン語のbashで実行できるようになったためです。

dpkg-reconfigure locales

または、エラーメッセージがここに表示されたコマンドであれば、エラーは発生しないはずです。ある場合は、この投稿ではカバーされない、もっと不吉な問題があります。

では、この変数LANGをどこに設定しますか? /etc/ディレクトリ(rgrep LANG /etc/*を含む)をすばやく検索すると、ファイル/etc/default/localeが表示されます。そこで、変数の値を別の/正しいものに設定できます。例えば

LANG=en_US.UTF-8

(これは常に機能するはずです)これを完了するには:エラーメッセージに記載されている変数はすべてLANGから「派生」します。つまり、デフォルトではLANGが設定されているものになりますが、シェルが必要な場合は好みに設定できます。別の言語を話す。パッケージlanguage-envはこれに役立ちます。

Sudo apt-get install language-env
set-language-env

このスクリプトは、.bashrcなどのエントリを自動的に作成することを目的としています。

自分で試したことはありません。

これが誰かに役立つことを願っています。

ところで:

  1. 生成されたロケールはls usr/share/localeの下にあります。
10
AndreasT

私は多くの解決策を試しましたが、Debian7ではどれもうまくいきませんでした。

そこで、export LC_ALL=en_US.UTF-8/etc/default/localeに追加しましたが、警告は消えました。

1
sekrett

ドイツ語のVPSを使用していましたが、英語の言語パックがインストールされていなかったため、ロケールを変更できませんでした。

インストール後、ようやくロケールを変更できました

aptitude install language-pack-en
0
valentt

短い答え:

実行dpkg-reconfigure localesルートとして。

(ダイアログで、言語が見つかるまでEnterを押しながら、その番号を確認し、番号を求められるまでもう一度Enterを押します。言語の番号を入力します。Enter、完了。よくわからない場合は、UTF8バージョンの言語を使用してください)

リソース: https://wiki.debian.org/Locale

0
Boris Däppen