1

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吗?

4

2 回答 2

1

你需要LC_TIME_MASK;您不需要LC_MESSAGES_MASK您声明的要求。

LC_MESSAGES控制错误消息,而不是时间格式。要查看“未屏蔽”名称(例如LC_TIME含义)的含义,请参阅手册页以获取setlocale(3). 它们是标准的 C 语言(尽管链接到的 POSIX 页面包括一些扩展——尤其是"POSIX"语言环境)。

于 2013-01-08T01:15:01.887 回答
0

您可以在此处找到 POSIX 中语言环境的详细说明

定义了不同的类型

  1. LC_CTYPE 字符分类和大小写转换。
  2. LC_COLLATE 整理顺序。
  3. LC_MONETARY 货币格式。
  4. LC_NUMERIC 数字,非货币格式。
  5. LC_TIME 日期和时间格式。
  6. LC_MESSAGES 信息和诊断消息以及交互式响应的格式。
于 2013-01-08T03:27:47.977 回答