`Gtk-WARNING **:C库不支持语言环境。从命令行启动应用程序时


31

我没有得到答案,但是我什么也没做,这是一个有趣的话题。在Ubuntu 12.04中,在gedit中打开文件时,或者如果我在dpkg中使用命令行,则会返回错误“不支持语言环境,回退到默认的“ C”库”,并返回以下错误:

Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

您的语言环境似乎已损坏。您是如何确切安装Ubuntu的?似乎您以未正确配置语言环境的方式安装了它。请提供一些详细信息,你的问题(编辑)。不,C如果没有本地化可用,区域设置就是它的所在地。它来自C编程语言。
gertvdijk

谢谢回复。我的Ubuntu安装是Windows目录中的一个文件夹。我知道为什么要在这里安装它。我懒于安装,并允许Linux恶魔为我做这部分。
Diogenes Lantern

Answers:


30

首先确保您的库语言已安装

sudo apt-get install language-pack-en-base

例如。

然后,以超级用户身份通过​​允许Ubuntu自动配置它们来缩短工作时间:

sudo dpkg-reconfigure locales

检查您的设置,如果正确,那就好。但是,如果您将LANG=LANGUAGE=设置留空,请在命令行中运行以下命令:

locale -a

生成已安装并可供您使用的语言环境。

从生成的输出中选择适合您情况的语言环境,然后导出该设置以替换您的语言环境,例如:

export LC_ALL="en.utf-8"

对于手动安装,请手动export设置区域设置,以手动安装自定义区域设置,请首先按上述步骤运行设置。

然后,说你要安装"en_us-8"的语言,但有需要另一个区域设置NUMERICTIME,你不妨用"en_NZ.utf-8"(记住:这些都是区分大小写)或LANGUAGE="en_GB.utf-8"NUMERIC="en.dk.ISO-8859-15"。到新西兰旅行,我可以更改语言环境LANGUAGE="en.NZ"。对于德国,我只需要为其安装语言环境pkg并在终端中输入,如以下示例所示:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= 可能保持为空。


3

第一:

sudo apt-get purge locales

然后:

sudo aptitude install locales

和著名的:

sudo dpkg-reconfigure locales

这会摆脱语言环境系统,然后重新安装语言环境并将libc6从2.19降级到2.13,这就是问题所在。然后再次配置语言环境。


1
这是非常非常令人误解的。永远不要使用此答案,第一个命令会与它们的数据一起丢掉很多软件,例如postgresql
埃里克·王

@EricWang是正确的,它可能会删除其他软件,这将发生,因为该软件依赖于libc6 2.19库(或更高版本)。通常,该软件是对系统进行升级并使其处于C语言库不支持的这种语言环境的状态。无论如何,您应在确认之前查看要删除的内容。
tkjef

3

在我的基于Ubuntu 16.04的薄荷伴侣18上,我不止一次发生这种情况,所以我想分享我发现的解决方案,以防万一。

脚步:

(这些步骤适用于薄荷伴侣,但不确定Ubuntu可能具有类似的配置)

  • 打开“语言设置”。
  • 安装语言(如果缺少)。(对我来说,除了英语外,我还将安装中文和日语)
  • 对于选项LanguageRegion,请确保它们的默认语言正确,例如,设置为“英语,美国UTF-8”,
  • 如果进行任何更改,请重新引导。
  • 检查是否还可以。

0

使用语言环境时,您必须删除与系统冲突的语言,这对我有用,在ubunty kylin 16.04上,我已经在ubuntu 14.04上安装了它


0

通过进入gnome-terminal并输入命令apt --fix locales并重新启动linux,您对终端的错误结束了。这次肯定会在您的显示器上。


0
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc

fi_SE到您的LOCALE,然后查看UTF-8或utf8


0

在将主目录点文件迁移到新计算机时,我设法自己导致了这种情况,LC_但是由于搜索文件而没有找到原因,因此我未能找出原因LOC

~/.bashrc我复制的文件具有以下内容:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(此处的特殊值是由于先前在旧计算机上使用GNU Guix进行的实验所致;但相关的事实仅仅是环境变量设置为现在无效的路径。)

运行各种程序时,这导致以下错误:

Warning: locale not supported by C library, locale unchanged

而这些错误在运行时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

删除(或注释掉)该LOCPATH行解决了我的问题。

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.