区域设置不正确。 我该如何重置它们?

我有一个语言环境问题。
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临时安装和卸载乌尔都语语言输入法编辑器IBus ……它当然发生在同一天。

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

  • 操作系统是10.04

我已经设法让事情“正常”再次运行。

在尝试了大量的软件包重新安装等之后,包括完全删除IBus(一切都没有效果),我开始认为它可能是由重新安装不修改的配置设置引起的。

我注意到locale的输出相当缺乏UTF-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" 

重新定义区域设置和重新配置可能足以解决问题:

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

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

我也遇到了这个问题,如你所见,你的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 

如果您通过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" 

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

 gedit ~/.profile 

所以在你的情况下,它看起来像:

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

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

几个月来我遇到了同样的问题,很多软件工具都警告说区域设置有问题,有些甚至拒绝运行。 我想使用英语,但瑞典货币和数字设置。

最终对我有用的是编辑/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 = “EN”
 LANG = “的en_US.UTF-8”

这和我原来的文件之间的最大区别是LANGUAGE="en"

自发布以来已经有一段时间了,但最近我遇到了“语言环境”变量的问题,没有回答给我任何结果。 也许我自己的经历可以帮助别人。

我的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文件上,但我完全确定我没有写它们,也许我的.bashrc在我处理一些web开发时被替换了,我真的不喜欢不知道,但是因为我知道这是无意的,并且有人在那里不知道是什么导致“现场”不当行为,也许这可以帮助他们。 无论如何评论这些线和重新启动解决了我的问题。 在这里,我回答了同样的问题,重点关注有关LANG变量的sublimeT3投诉。

似乎更新炒的语言环境。 我找到的修复方法是注销,更改登录前选择的语言,然后重新登录。

它也可能有助于重新安装synaptic中的语言环境,虽然我无法确认这是什么修复了它,我认为它是退出或其他东西。

我尝试编辑区域设置文件并在登录时选择不同的语言。

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

但是,如果没有明显破坏软件包管理器,我无法安装LibreOffice。 但它确实安装了。

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

我有同样的问题,但去系统>管理>语言支持可能会解决您的问题,因为它可能会要求您安装一些包,然后它会没事的! 它对我有用,所以我想它会对你做同样的事情!

 export LC_ALL="zh_CN.utf8" ibus-setup 

并根据需要选择输入方法的其中一个选项。

我有一个类似的问题(在Thunderbird中最引人注目)到这里的en_AU示例 – 但是我来自en_NZ – 并且在使用Ubuntu 17.10进行一些试错之后,我的修复是更新〜/ .pam_environment,替换所有其他条目(主要是en_AU和en_US)与en_NZ,然后重新启动。

遗憾的是,你不能只设置你的语言环境并让它做它声称要做的事情 – 最令人失望的是,运行dpkg-configure语言环境实际上似乎没有做任何有用的事情。