newlocale(3)的手册页部分说明:
The mask is the logical OR of the following:
LC_COLLATE_MASK Collation
LC_CTYPE_MASK Character type
LC_MESSAGES_MASK Messages
LC_MONETARY_MASK Monetary
LC_NUMERIC_MASK Numeric
LC_TIME_MASK Time
LC_ALL_MASK The logical OR of all of the above
但它并没有说明每个掩码位的具体含义。在我的例子中,我需要
AM_STR
、PM_STR
、月份缩写(ABMON_1
,…)、月份全名(MON_1
,…)、工作日缩写(ABDAY_1
,…)和工作日全名(DAY_1
,…)的本地化字符串。作为一个有根据的猜测,我认为我需要
LC_MESSAGES_MASK
——但我是否也需要LC_TIME_MASK
? 最佳答案
你需要LC_TIME_MASK
;你不需要LC_MESSAGES_MASK
来满足你的要求。LC_MESSAGES
控制错误消息,而不是时间格式。要查看“未屏蔽”名称(如LC_TIME
)的含义,请参阅手册页中的setlocale(3)
。它们是标准的C(尽管链接到的POSIX页面包含一些扩展,特别是"POSIX"
区域设置)。