在OS X Yosemite上运行`locale -a`时,LANG和LC_ALL是否为空是不是很糟糕?

我使用OS X Yosemite.

当我运行语言环境时,我得到了这个:

locale 
LANG= 
LC_COLLATE="C" 
LC_CTYPE="UTF-8" 
LC_MESSAGES="C" 
LC_MONETARY="C" 
LC_NUMERIC="C" 
LC_TIME="C" 
LC_ALL=

LANG和LC_ALL的空虚是否/正常/偏好?

通常情况下,我对此并不在意,但我有一个警告

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

当我使用GTK(here’s a link to my previous quesiton on this)时.

人们一直在用许多语言(Python for example)和不同的操作系统(Ubuntu for example)来解决这个问题.

关键是我找不到任何C语言和OS X的解决方案.

最佳答案 我猜想GTK警告是因为GTK实际上是在尝试使用系统偏好设置中的Mac语言和区域设置来创建一个区域设置标识符字符串,使用该字符串和setlocale(),并被告知C库不支持那个地方.结果,它默认为“C”语言环境.如果它没有尝试找到更好的语言环境,那么没有理由警告它正在使用“C”语言环境,因为这是LANG和LC_ALL未设置时的预期.

OS X在高级框架(Cocoa等)中支持许多语言和语言环境,但并非所有这些语言和语言环境都支持在C库的级别. “系统偏好设置”中的语言和区域设置是什么?您希望语言和区域设置具有哪些区域设置标识符?看看它是否来自locale -a的输出(或类似地,如果在/usr/share / locale中有一个目录).

另一件要检查的是终端的偏好.在“设置”窗格的“高级”选项卡下,“设置启动时设置区域设置环境变量”是否设置?如果没有,那么默认情况下不会设置这些环境变量,这可能会解释您所看到的内容.如果设置已启用但您仍未获得这些环境变量,则表明终端无法找到与您的系统设置匹配的合适C库区域设置.

最后,您可以尝试将LANG设置为您要使用的内容.例如:

export LANG=pl_PL.UTF-8
点赞