当您使用您所在国家/地区的非官方语言进行设置时,如何更改/修复系统的区域设置?

Cal*_*cin 17 language locale kubuntu 14.04

如何为计算机设置全局区域设置?

我最近安装了英文版 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").
Run Code Online (Sandbox Code Playgroud)

小智 9

这里报告了错误:https : //bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 - “更改国家/地区导致无效区域设置”

解决方法:

  1. 选择国家英国英语 - 不是美国英语(然后语言西班牙)
  2. ~/.kde/env/setlocale.sh在更改国家/地区和语言设置后手动编辑


小智 8

我已经按照以下步骤解决了这个问题。我一直在研究语言环境的工作方式以及某些发行版(最初基于 Debian)之间的不同配置集。

我使用 Linux Mint 作为我的主要系统发行版,使用 Debian 作为我的系统服务器。

尽管 Ubuntu 源自 Debian,但语言环境设置略有不同。

1) 验证在您的系统中安装和生成了哪些语言环境:

sudo locale -a
Run Code Online (Sandbox Code Playgroud)

2) 使用以下命令删除不需要的语言环境:

sudo localedef --delete-from-archive <YOUR DESIRED LOCALE HERE>
Run Code Online (Sandbox Code Playgroud)

例如:

sudo localedef --delete-from-archive en_AG
Run Code Online (Sandbox Code Playgroud)

位于 中的默认配置/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
Run Code Online (Sandbox Code Playgroud)

LANG 变量将未配置的 LC_* 设置为在那里配置的值集。例如:

如果系统查找 LC_TIME 变量,但未设置,它将使用 LANG 值作为该变量的默认值(在本例中为 LC_TIME)。

.pam_environment基本上说:将几乎所有变量设置pt_BR.UTF-8为英语,并将系统语言设置为英语。

我希望这些信息可能有用。