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


16

如何为计算机设置全局语言环境?

我最近用英语安装了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").

Answers:



8

我已按照以下步骤解决了这个问题。我一直在研究语言环境的工作方式以及某些发行版之间的不同配置集(最初基于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,并将系统语言设置为英语。

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


1

您将要使用update-locale命令。访问该页面以了解如何使用它。基本上,您可以使用参数来设置语言环境(使用sudo),以设置您希望的语言环境。此“修改全局语言环境设置”可满足您的要求。

编辑1:如果以前的版本对您不起作用,您也可以查看locale-gen


谢谢。我已经尝试过了。dpkg-reconfigure locales生成了英语和西班牙语的所有可能组合。对于所有已安装的语言组合,似乎都调用locale-gen。我还呼吁locale-gen提供几种语言环境,以防万一。问题是,en_ES不存在
Calabacin

很好,我将继续寻找解决方案。很长一段时间以来我都没有看到过这样的问题。
Zzzach ... 2014年

1

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

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


1

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

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


即使这只是一种解决方法,我也认为它很聪明,而且我喜欢它。它最有可能也起作用:)
Calabacin

0

如上所述,我设法通过将系统语言从美式英语更改为英式英语来暂时解决此问题。我是通过“ KDE系统设置”>“语言环境”>“语言”对话框完成的。有趣的是,它显示一条错误消息,指出不允许替换当前语言,但实际上是因为当我按下“应用”按钮并重新启动机器后,新设置才被应用。


0

我的系统中遇到了同样的问题:Kubuntu 16.04 LTS(内核:4.4.0-31-generic(x86_64))。但是我以非常简单的方式解决了它:

在“ 个性化 ”选项卡下的“ 系统设置 ”中,单击“ 区域设置 ”。从右键菜单中选择“ 格式 ”。在左侧,选中“ 详细设置 ”,然后将每个详细信息(例如数字或时间)更改为所需的语言和地区。

(系统设置>区域设置>格式>详细设置)

我知道这是基本知识,但对某人有用。


-3

伙计们你们为什么要疯了?您所需要做的就是转到搜索栏或Unity Lens(如果是Ubuntu),键入“语言”,您将找到“国家/地区和语言”应用程序。在“国家/地区”标签中,选择所需的语言环境。

如果要保留当前的语言环境并更改其他一些选项,例如日期格式或英制到公制,只需使用其他选项卡即可!:)

在Ubuntu发行版14.04 LTS和更高版本中可用。


4
Ubuntu默认情况下具有Unity。这是一个KDE问题。完全无关。此外,如上所述,更改区域设置并不能解决问题。仍然感谢您抽出宝贵时间尝试解决此问题。
Calabacin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.