区域设置和语言

术语“语言”表示用于口语和书面通信的属性集合。 每种语言都有一个语言名称和一个语言标识符,用于指示特定 代码页 (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