我使用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=
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的解决方案。
答案 0 :(得分:2)
我猜想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