区域设置不正确。我怎样才能重置它们?

Pet*_*r.O 44 locale

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

    Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.
Run Code Online (Sandbox Code Playgroud)

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=
Run Code Online (Sandbox Code Playgroud)

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

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

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

    apt-get install --reinstall locales
Run Code Online (Sandbox Code Playgroud)

它是从我通过IBus..临时安装和卸载乌尔都语输入法编辑器开始的。它肯定发生在同一天。

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

  • 操作系统是 10.04

Pet*_*r.O 28

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

在尝试了很多软件包重新安装等之后,包括完全删除 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"
    
    Run Code Online (Sandbox Code Playgroud)
  • 这显示了 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"
    
    Run Code Online (Sandbox Code Playgroud)

虚拟机中的同一个文件只包含这一行:

    LANG="en_AU.UTF-8" 
Run Code Online (Sandbox Code Playgroud)


Gui*_*ent 22

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

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

当您运行时,sudo dpkg-reconfigure locales您可以通过点击并在点击之前spacebar移动来选择您想要的语言环境。??Enter

  • 当运行 `dpkg-reconfigure` 时,你会得到带有复选框的列表,要选择语言,你必须使用空格键。控制台程序中没有此类信息,因此我认为将其写在答案下会有所帮助。我不知道如何选择这些语言。 (2认同)

小智 15

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

$ sudo vim /etc/environment
Run Code Online (Sandbox Code Playgroud)

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

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

然后重新启动,然后运行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
Run Code Online (Sandbox Code Playgroud)


小智 5

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

将以下内容添加到 ~/.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"
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

146521 次

最近记录:

5 年,11 月 前