区域设置和语言

术语“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