支持的 NLS 函数

区域语言支持 (NLS) 函数可帮助应用程序支持全球用户语言特定的需求和区域设置特定的需求。 Xbox 上只能使用 WinNLS.h 头文件中 WINAPI_PARTITION_GAMES 分区下定义的 API 函数。 以下函数当前可通过 WinNls.h 头文件使用。

注意

标记为“已弃用”的 API 与 Microsoft 游戏开发工具包 (GDK) 配合使用,其中的注意事项可参见 Microsoft Docs。但是,我们强烈建议使用替代 API。

函数 状态 替代
EnumSystemLocalesEx
FindNLSStringEx
FoldStringA
GetACP
GetCurrencyFormatEx
GetGeoInfoEx
GetLocaleInfoEx
GetNumberFormatEx
GetStringTypeA
GetStringTypeExA
GetThreadLocalevoid);
GetUserDefaultGeoName
GetUserDefaultLocaleName
GetUserPreferredUILanguages 不支持 始终返回 en-US
IdnToAscii
IdnToUnicode
IsValidCodePage
IsValidLocaleName
LCIDToLocaleName
LCMapStringEx
LocaleNameToLCID
ResolveLocaleName
SetThreadLocale
CompareString 已弃用 CompareStringEx
CompareStringA 已弃用 CompareStringEx
EnumSystemLocalesA 已弃用 EnumSystemLocalesEx
EnumSystemLocalesW 已弃用 EnumSystemLocalesEx
FindNLSString 已弃用 FindNLSStringEx
GetCPInfo 已弃用 使用 Unicode
GetCPInfoExA 已弃用 使用 Unicode
GetCPInfoExW 已弃用 使用 Unicode
GetCurrencyFormatA 已弃用 GetCurrencyFormatEx
GetCurrencyFormatW 已弃用 GetCurrencyFormatEx
GetGeoInfoA 已弃用 GetGeoInfoEx
GetGeoInfoW 已弃用 GetGeoInfoEx
GetLocaleInfoA 已弃用 GetLocaleInfoEx
GetLocaleInfoW 已弃用 GetLocaleInfoEx
GetNumberFormatA 已弃用 GetNumberFormatEx
GetNumberFormatW 已弃用 GetNumberFormatEx
GetUserGeoID 已弃用 GetUserDefaultLocaleName
LCMapStringA 已弃用 LCMapStringEx
LCMapStringW 已弃用 LCMapStringEx

Xbox 游戏操作系统的功能说明

NLS 函数的游戏操作系统版本支持电脑上提供的完整功能。 特别是,游戏操作系统映像不包含 Windows 上的语言大小写区域设置数据表。 因此,无论区域设置如何,都始终使用序号值计算排序规则和大小写操作。

一般建议是在本地化过程中执行区域设置敏感大小写和排序,而不是依赖运行时 API 在 Xbox 上处理此问题。

这会影响以下函数的行为:

NLS
LCMapStringEx
CompareStringEx
CompareString
CompareStringA
Collation
std::collate
strcoll wcscoll _mbscoll
_stricoll _wcsicoll _mbsicoll
_strncoll _wcsncoll _mbsncoll
_strnicoll _wcsnicoll _mbsnicoll
Uppercasing
std::toupper toupper towupper
_toupper _toupper_l _towupper_l
std::isupper isupper iswupper
_isupper_l _iswupper_l
Lowercasing
std::toupper toupper towupper
_toupper _toupper_l _towupper_l
std::islower islower iswlower
_islower_l _iswlower_l

注意

上面的列表并不详尽,因为标准 C++ 库中的某些其他函数可能依赖于受影响的函数进行实现。

另请参阅

本地化和全球化(概述)