语言环境设置不正确。如何重置它们?


43

我遇到语言环境问题。和其他程序中
的整理顺序nautilus已更改。
启动GUI应用程序时,终端上出现区域设置错误。

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

locale命令产生错误消息

    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_AU
    LANGUAGE=en_AU:en
    LC_CTYPE="en_AU"
    LC_NUMERIC="en_AU"
    LC_TIME="en_AU"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU"
    LC_NAME="en_AU"
    LC_ADDRESS="en_AU"
    LC_TELEPHONE="en_AU"
    LC_MEASUREMENT="en_AU"
    LC_IDENTIFICATION="en_AU"
    LC_ALL=

正如askubuntu问题中所建议的那样,我已经运行了以下命令,但是没有任何变化。

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales

我也尝试过在askubuntu问题中的建议...也没有改变。

    apt-get install --reinstall locales

认为这是从我通过IBus.. 临时安装和卸载Urdu语言输入法编辑器开始的,它肯定是在同一天发生的。

也许与IBus有关,但在此之前我没有遇到任何问题。

  • 操作系统是10.04

Answers:


27

我设法使事情再次“正常”运行。

在尝试了许多软件包的重新安装等之后,包括完全删除了IBus(全部无效),我开始认为这可能是由配置设置引起的,该设置不会重新安装。

我已经注意到,localeUTF-8分配的输出相当混乱,因此我在最近安装的VM中检查了此情况……所有LC_ *条目(除了LC_ALL都覆盖了所有其他条目)都设置了.UTF-8后缀。因此,我手动设置了LC_ *值,如下所示。

我可能只是用过LC_ALL="en_AU.UTF-8",但是在阅读有关内容时,我发现了如何自定义系统日期和时间格式LC_ALL并将覆盖我的自定义设置。

我不知道我是否使用了最合适的方法,但是它有效!

修改后的文件为: /etc/default/locale

  • 这显示了mod之前的内容:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
    
  • 这显示了mod 之后的内容:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_CTYPE="en_AU.UTF-8"
    LC_NUMERIC="en_AU.UTF-8"
    LC_TIME="en_AU.UTF-8"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU.UTF-8"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU.UTF-8"
    LC_NAME="en_AU.UTF-8"
    LC_ADDRESS="en_AU.UTF-8"
    LC_TELEPHONE="en_AU.UTF-8"
    LC_MEASUREMENT="en_AU.UTF-8"
    LC_IDENTIFICATION="en_AU.UTF-8"
    

VM中的同一文件仅包含以下这一行:

    LANG="en_AU.UTF-8" 


谢谢你的帖子。出于记录,我必须重新启动系统才能使该修复程序起作用。(也许可以使用emacs eval-buffer吗?)
David LeBauer 2011年

19

重新定义语言环境并重新配置可能足以解决问题:

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales

运行时sudo dpkg-reconfigure locales,可以通过单击并在之前按spacebar和移动来选择所需的语言环境。Enter


也许值得一提的是您使用空格键选择了想要的语言。
Daniel Kmak

@丹尼尔,我听不懂:空格键?
Guillaume Vincent

1
运行时,dpkg-reconfigure您将获得带有复选框的列表,并且要选择语言,您必须使用空格键。控制台程序中没有此类信息,因此我认为将其写在答案下会有所帮助。我不知道该如何选择这些语言。
Daniel Kmak

1
@丹尼尔完成了:)
纪尧姆·文森特

15

我也遇到了这个问题,如您所见,您LC_ALL是空的。我做了以下工作,它会有所帮助:

$ sudo vim /etc/environment

并设置LC_ALL成类似en_US.UTF-8,我的是:

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"

然后重新启动,然后运行locale,应该是这样的:

LANG=zh_CN.utf8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

此解决方案在Ubuntu 12.04 LTS精确版上很有效
speciousfool

LC_ALL不鼓励设置。“强烈建议不要使用LC_ALL,因为它会覆盖所有内容。请仅在测试时使用它,切勿在启动文件中进行设置。” wiki.debian.org/Locale
gertvdijk 2014年

4

如果通过ssh(例如从macosx设备)远程连接到计算机,则需要在要连接的计算机上设置这些变量

将以下内容添加到〜/ .bash_profile

#fix for locale issues when connecting to ubuntu servers
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"

1
从OS X连接时这是否是已知故障?
MindTooth

不知道这是设计
使然

2

我只想补充一点,我也需要编辑我的家庭资料:

gedit ~/.profile

因此,在您的情况下,它看起来像:

...
LANG="en_AU.UTF-8"
LANGUAGE="en_AU:en"

注销+登录。一切都如预期。


export每行的开头都需要输入,然后放入~/.bashrc
Sparhawk

2

我几个月来一直遇到相同的问题,许多软件工具警告过语言环境设置已损坏,有些甚至拒绝运行。我想使用英语,但是使用瑞典的货币和数字设置。

最终对我有用的是编辑/etc/default/locale删除该文件中所有内容的位置。然后,我开始设置Unity语言(Settings -> Language Support),进行所有设置(Ubuntu想安装一些缺少的组件),并"Apply System-wide"在完成后按下。

/etc/default/locale现在看起来像这样。

LC_NUMERIC =“ sv_SE.UTF-8”
LC_TIME =“ sv_SE.UTF-8”
LC_MONETARY =“ sv_SE.UTF-8”
LC_PAPER =“ sv_SE.UTF-8”
LC_IDENTIFICATION =“ sv_SE.UTF-8”
LC_NAME =“ sv_SE.UTF-8”
LC_ADDRESS =“ sv_SE.UTF-8”
LC_TELEPHONE =“ sv_SE.UTF-8”
LC_MEASUREMENT =“ sv_SE.UTF-8”
LANGUAGE =“ zh-CN”
LANG =“ en_US.UTF-8”

此文件与我的原始文件之间的最大区别是LANGUAGE="en"


我的救生员...
约翰·乔

2

自从发布以来已经有一段时间了,但是最近我遇到了“区域设置”变量的问题,没有答案给我任何结果。也许我自己的经验可以帮助其他人。

我的LANG变量为空,这给我带来了问题。

$locale

输出:

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

我尝试了一些命令,例如:

sudo locale-gen
sudo dpkg-reconfigure locales

没有成功。我尝试编辑/ etc / default / locale,发现它已经可以了:

$cat /etc/default/locale

输出:

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

我的.pam_environment文件似乎也是正确的:

$cat .pam_environment

输出:

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

我不想在配置文件或bash文件中添加其他内容,主要是因为尽管它可以解决问题,但我不知道原因,这让我很烦。

最后,我想知道是否某些东西已经覆盖了“ locale”变量,然后运行了下一个命令:

$cat .bashrc | grep LANG

输出:

unset LANG

所以我在我的.bashrc文件上找到了两行来找出原因所在(我没有粘贴整个文件):

unset LANG
export LC_ALL=POSIX

我不知道这些行如何或何时结束在我的bash文件中,但是我完全确定我没有写它们,也许当我处理某些Web开发内容时,.bashrc被替换了,我真的不知道不知道,但是由于我知道这是无意的,而且外面有些人不知道是什么导致了“区域设置”行为异常,因此也许可以帮助他们。无论如何评论这些行并重新启动为我解决了这个问题。 在这里,我回答了同样的问题,主要关注有关LANG变量的sublimeT3投诉。


1

似乎以某种方式更新了油炸区域设置。我发现的解决方法是注销,更改登录前选择的语言并再次登录。

它也可能有助于以突触方式重新安装语言环境,尽管我无法确认这对我来说是固定的,我认为它正在注销或其他原因。


重新登录并更改语言。我看不到登录时更改语言的实际方法。.我看到提到更改语言的文本,但是没有选择(按钮或类似按钮)..也许是因为我只启用了澳大利亚英语....并且我已经运行上面的所有命令..所以目前
还很

@ red.bear:尝试安装language-pack-enlanguage-support-en,然后重复上述过程。
RolandiXor

1

我尝试编辑语言环境文件并在登录时选择其他语言。

使用Synaptic过滤损坏的软件包并完全删除9个有问题的软件包(libreoffice和python uno)。

但是,我无法安装LibreOffice而不会破坏软件包管理器。但是,确实可以安装。

我在11.04 i386上。免责声明:在我的安装的最后一部分出现电源故障,因为Ubuntu正在下载更新。



0

export LC_ALL="zh_CN.utf8"
ibus-setup

然后根据需要选择一种输入法选项。


0

我在此处的en_AU示例中遇到了类似的问题(在Thunderbird中最明显)-但我来自en_NZ-并且在Ubuntu 17.10中进行了反复试验后,我的解决方法是更新〜/ .pam_environment,替换所有其他条目(大多为en_AU和en_US),然后重新启动。

令人遗憾的是,您不能仅设置您的语言环境并使其按照自己的意愿做-最令人失望的是,运行dpkg-configure语言环境实际上并没有做任何有用的事情。

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.