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

我使用OS X Yosemite。

当我运行locale我得到了这个:

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

LANGLC_ALL空虚是否/正常/偏好?

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

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

当我使用GTK ( 这里是我之前关于此问题的链接 )。

人们一直在用许多语言( 例如Python )和不同的OS( 例如Ubuntu )来解决这个问题。

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

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

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

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

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

 export LANG=pl_PL.UTF-8