web-dev-qa-db-ja.com

あなたの国で公用語ではない言語でセットアップした場合、システムのロケールを変更/修正する方法は?

コンピューターのグローバルロケールを設定するにはどうすればよいですか?

最近、Kubuntu 14.04LTSを英語でインストールしましたが、スペインにいるのでスペインを国として選択し、ロケールオプションを変更して、数字のグループ化、小数点記号、日付形式など、すべての国固有の構成を取得しました。スペイン語を追加しました。

現在、すべてのアプリケーションはロケールが間違っていると文句を言います。 check-language-supportは、システムロケールとしてen_ES.UTF-8を使用していることを示し、そのロケールは実際に間違っています。スペインには英語のロケールがありません。

Kubuntuの国/地域と言語の設定を使用してみましたが、修正されません。 export LANG=en_GB.UTF-8export LC_ALL=en_GB.UTF-8を使用してからSudo dpkg-reconfigure localesを使用しようとすると、check-language-supportが正しい構成を持っていると言っていましたが、構成されている場合は、そのkonsoleセッションのみです。また、この問題により、konsoleがUnicode文字を表示できなくなり、デッドキーを使用したり、ñやç(この質問を投稿するために使用しているFirefoxなどの他のアプリケーションで動作する)などの「国際文字」を入力したりできません。

質問は次のとおりです。コンピューターのグローバルロケールを設定するにはどうすればよいですか。

これはバグレポートではありません。修正できない場合は、おそらく最終的にコンピューターを再インストールします。しかし、私は本当にこの基本的なタスクを実行する方法を知りたいです。

ありがとうございました。

$ check-language-support
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
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_COLLATE to default locale: No such file or directory
hunspell-en-ca libreoffice-help-en-gb libreoffice-l10n-en-gb libreoffice-l10n-en-za mythes-en-au wspanish

$ cat /etc/default/locale
LANG="en_US.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"


$ 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_ES.UTF-8
LANGUAGE=en:es:en
LC_CTYPE="en_ES.UTF-8"
LC_NUMERIC=en_ES.UTF-8
LC_TIME=en_ES.UTF-8
LC_COLLATE="en_ES.UTF-8"
LC_MONETARY=en_ES.UTF-8
LC_MESSAGES="en_ES.UTF-8"
LC_PAPER=en_ES.UTF-8
LC_NAME=en_ES.UTF-8
LC_ADDRESS=en_ES.UTF-8
LC_TELEPHONE=en_ES.UTF-8
LC_MEASUREMENT=en_ES.UTF-8
LC_IDENTIFICATION=en_ES.UTF-8
LC_ALL=
$ update-locale
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
16
Calabacin

バグはここに報告されます: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 -「国を変更するとロケールが無効になる」

回避策:

  1. 国を選択してください-イギリス英語-アメリカ英語ではなく(そして言語スペイン)
  2. または、国/地域と言語の設定を変更した後、~/.kde/env/setlocale.shを手動で編集します
9
Freddy Vulto

以下の手順に従ってこの問題を解決しました。私はロケールがどのように機能するか、いくつかのディストリビューション間で異なる設定セットを研究してきました(Debian Based元々)。

Linux Mintをプライマリシステムディストリビューションとして使用し、Debianをシステムサーバーとして使用しています。

UbuntuはDebianから派生しているという事実にもかかわらず、ロケール設定はわずかに異なります。

1)システムにインストールおよび生成されているロケールを確認します。

Sudo locale -a

2)次のコマンドを使用して、不要なロケールを削除します。

Sudo localedef --delete-from-archive <YOUR DESIRED LOCALE HERE>

例えば:

Sudo localedef --delete-from-archive en_AG

/etc/default/localeにあるデフォルトの構成は、システム言語アプリによって生成された個人(ローカルユーザーのみ)設定によって上書きされます。これらの設定は$HOME/.pam_environment$HOME =ホームフォルダーの場所)にあります。

このファイルを空にして、必要な構成を記述します。

私の.pam_environmentファイル:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
LC_PAPER=pt_BR.UTF-8
LC_IDENTIFICATION=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_CTYPE=pt_BR.UTF-8

LANG変数は、構成されていないLC_ *をそこに構成されている値セットに設定します。例えば:

システムがLC_TIME変数を検索し、設定されていない場合、その変数のデフォルトとしてLANG値(この場合はLC_TIME)が使用されます。

私の.pam_environmentは基本的に、ほぼすべての変数をpt_BR.UTF-8に設定し、システム言語を英語に設定します。

この情報が役に立つことを願っています。

8
Girol

別の解決策は、英語(スペイン)を英語(米国)にエイリアスすることです。

echo en_ES.UTF-8 en_US.UTF-8 >> /etc/locale.aliases

1
al.

pdate-locale コマンドを使用します。使用方法については、そのページをご覧ください。基本的には、ロケールを設定する引数を使用して(Sudoで)実行します。この「Modif [ies] global locale settings」を要件に合わせます。

編集1:前の方法がうまくいかない場合は、 locale-gen を調べることもできます。

1
Zzzach...

Freddy Vultoが答えでコメントしたように、これはここで報告されている既知のバグです。 https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

手動で修正する必要がある場合は、そのバグレポートをご覧ください。他の可能な修正の中でも、〜/ .kde/env/setlocale.shの呼び出し(おそらく変更後)で修正できます。

1
Calabacin

私のシステムにも同じ問題がありました:Kubuntu 16.04 LTS(kernel:4.4.0-31-generic(x86_64))。しかし、私は非常に簡単な方法でそれを解決しました:

システム設定」の下の「パーソナライゼーション "タブ、「regional settings」をクリックします。右メニューから「Formats」を選択します。左で「detailed settings」をチェックし、数字や時間などの詳細を目的の言語と地域に変更します。

(システム設定>地域設定>形式>詳細設定)

私はそれが初歩的であることを知っていますが、誰かに役立つことができます。

0
Jesmi

上記のように、システム言語をアメリカ英語からイギリス英語に変更することで、一時的に問題を解決できました。 KDEシステム設定>ロケール>言語ダイアログで行いました。面白いことに、現在の言語の置き換えは許可されていないというエラーメッセージが表示されましたが、実際には「適用」ボタンを押してマシンを再起動すると新しい設定が適用されたためです。

0
Yngvefaen