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

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

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

我最近安装了英文版的 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").

答案1

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

我使用 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并将系统语言设置为英语。

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

答案2

错误报告在这里:https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968- “更改国家/地区会导致语言环境无效”

解决方法:

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

答案3

另一个解决方案是将英语(西班牙)别名为英语(美国):

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

答案4

就像 Freddy Vulto 在他的回答中所评论的那样,这是一个已知的错误,此处报告:https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

如果您需要手动修复,请查看错误报告。可以通过调用 ~/.kde/env/setlocale.sh(可能在修改后)进行修复,以及其他可能的修复。

相关内容