区域设置和语言

术语“language”表示在口语和书面通信中使用的属性的集合。 每种语言都有一个语言名称和一个语言标识符,指示特定 代码页 (ANSI、DOS、Macintosh) 用于表示操作系统上语言 的地理位置 。 中性语言由英语名称(如“en”)表示。 更地理上特定的语言可以通过包含区域设置和国家/地区信息的名称来表示。 例如,区域设置英语 (美国) 的语言名称为“en-US”。

“区域设置”是语言相关的用户首选项信息的集合,这些信息表示为值列表。 Windows XP 支持 150 多个区域设置,Windows Vista 支持约 200 个区域设置。 每个区域设置都由语言和排序顺序定义,并同时具有区域设置名称和区域设置标识符。 德语 (德国) 的区域设置名称示例为“de-DE_phonebook”。

每个操作系统至少有一个已安装的区域设置,并且通常有许多区域设置,用户可以从中选择这些区域设置。 每个区域设置都有与其关联的各种信息,而不是其名称和标识符。 区域设置信息类型在 区域设置信息常量中介绍。

操作系统为每个线程分配区域设置,最初分配 由LOCALE_SYSTEM_DEFAULT定义的“系统默认区域设置”。 安装操作系统或使用控制面板的区域和语言选项部分选择操作系统时,将设置此区域设置。 在属于用户的进程中运行线程时,操作系统会将“用户默认区域设置”分配给该线程。 此区域设置由 LOCALE_USER_DEFAULT定义。 应用程序可以使用 SetThreadLocale 函数显式设置线程的区域设置来替代任一默认应用程序。

语言的实现需要相应的区域设置。 操作系统通过为与特定语言版本关联的区域设置(通常是最广泛的区域设置)选择数据来实现中性语言。

从 Windows Vista 开始,特定语言可以对应于补充区域设置,这是一种自定义区域设置。 由于补充区域设置都共享单个区域设置标识符,因此应用程序应按名称而不是标识符处理这些区域设置和相应的语言。

语言概念与区域设置概念密切相关,但两个术语不可互换。 一般情况下,与多语言用户界面相关的函数处理语言,而 NLS 函数则处理区域设置。

本部分介绍以下主题:

关于国家语言支持

代码页

区域设置信息常量

多语言用户界面

地理位置表

用户界面语言管理

SetThreadLocale