如何为计算机设置全局区域设置?
我最近安装了英文版的 Kubuntu 14.04LTS,但由于我在西班牙,所以我选择西班牙作为国家,然后更改了区域设置选项,以便获得所有国家特定的配置,例如数字分组、小数分隔符、日期格式等。我还添加了西班牙语。
现在所有应用程序都抱怨语言环境错误。check-language-support
告诉我我正在使用en_ES.UTF-8
系统语言环境,并且该语言环境确实是错误的,西班牙没有英语语言环境。
我尝试使用 Kubuntu 的国家/地区和语言设置,但无法解决问题。我尝试使用export LANG=en_GB.UTF-8
和export 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- “更改国家/地区会导致语言环境无效”
解决方法:
- 选择国家 英国英语 - 不是 美国英语 (然后是语言 西班牙)
~/.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(可能在修改后)进行修复,以及其他可能的修复。