区域设置名称
区域设置名称基于 IETF BCP 47 ( Windows Vista 及更高版本) 的语言标记约定,由LOCALE_SNAME表示。 通常,使用模式 <language>-<REGION>
。 此处,语言是一个小写的 ISO 639 语言代码。 ISO 639-1 中的代码在可用时使用。 否则,使用 ISO 639-2/T 中的代码。 REGION 指定大写 ISO 3166-1 国家/地区标识符。 例如,英语 (美国) 的区域设置名称为“en-US”, () 马尔代夫的区域设置名称为“dv-MV”。
注意
常量 LOCALE_NAME_MAX_LENGTH 提供区域设置名称的最大长度。 它包含终止 null 字符的空间。
如果区域设置是非特定区域设置, (没有区域) , 则LOCALE_SNAME 值遵循模式 <language>
。 如果它是一个中性区域设置,则脚本非常重要,则模式为 <language>-<Script>
。
如果区域设置必须使用不同的脚本区分同一语言区域设置和区域的另一区域设置,则LOCALE_SNAME值遵循模式 <language>-<Script>-<REGION>
,其中脚本是初始大写 ISO 15924 脚本代码。 例如,特定区域设置乌兹别克 (拉丁语LOCALE_SNAME值,乌兹别克斯坦) 为“uz-Latn-UZ”。 如果语言通常只用一个脚本编写,则不包括脚本组件。
使用 排序顺序标识符(例如,SORT_DEFAULT)指定区域设置的排序顺序。 若要区分同一语言和区域的两个或多个排序顺序,区域设置名称遵循模式 <language>-<REGION>\_<sort order>
。 如果必须区分脚本和排序顺序,则名称遵循模式 <language>-<Script>-<REGION>\_<sort order>
。 默认排序顺序从不显式指定,仅指定备用排序顺序。 例如,匈牙利 (匈牙利) SORT_DEFAULT或数字等效SORT_HUNGARIAN_DEFAULT被指定为“hu-HU”。 匈牙利 (匈牙利) 按排序顺序SORT_HUNGARIAN_TECHNICAL指定为“hu-HU_technl”。
对于 替换区域设置,区域设置名称必须与要替换的区域设置的名称相同。 对于补充区域设置,区域设置名称应遵循或<language>-<Script>-<REGION>-x-<custom>
(其中<custom>
特定于补充区域设置的字母数字字符串)的模式<language>-<REGION>-x-<custom>
。 例如,特定于名为 Fabricam 的公司补充区域设置可能称为“en-US-x-fabricam”。
应用程序可以使用 GetSystemDefaultLocaleName 和 GetUserDefaultLocaleName 函数检索当前区域设置名称。 虽然每个线程都可以使用 GetThreadLocale 检索和设置自己的区域设置标识符,并使用 SetThreadLocale 对其进行设置,但没有类似的函数可以按名称获取和设置区域设置。