> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 지원되는 NLS 함수

> GDK에서 WINAPI_PARTITION_GAMES 하에 노출되는 National Language Support (NLS) 함수 레퍼런스로, Game OS 관련 주의 사항 및 사용 노트를 포함합니다.

National Language Support (NLS) 함수는 타이틀이 언어 및 로케일별 동작을 지원할 수 있도록 돕습니다. XBOX에서는 `WinNLS.h`의 `WINAPI_PARTITION_GAMES` 파티션 아래에 정의된 API 함수만 사용할 수 있습니다.

<Note>
  **DEPRECATED**로 표시된 API도 Microsoft Docs에 문서화된 주의 사항과 함께 GDK에서 여전히 동작합니다. 대체 API를 우선 사용하세요.
</Note>

## 사용 가능한 함수

| 함수                            | 상태            | 대체                         |
| ----------------------------- | ------------- | -------------------------- |
| `EnumSystemLocalesEx`         |               |                            |
| `FindNLSStringEx`             |               |                            |
| `FoldStringA`                 |               |                            |
| `GetACP`                      |               |                            |
| `GetCurrencyFormatEx`         |               |                            |
| `GetGeoInfoEx`                |               |                            |
| `GetLocaleInfoEx`             |               |                            |
| `GetNumberFormatEx`           |               |                            |
| `GetStringTypeA`              |               |                            |
| `GetStringTypeExA`            |               |                            |
| `GetThreadLocale`             |               |                            |
| `GetUserDefaultGeoName`       |               |                            |
| `GetUserDefaultLocaleName`    |               |                            |
| `GetUserPreferredUILanguages` | NOT SUPPORTED | 항상 `en-US`를 반환             |
| `IdnToAscii`                  |               |                            |
| `IdnToUnicode`                |               |                            |
| `IsValidCodePage`             |               |                            |
| `IsValidLocaleName`           |               |                            |
| `LCIDToLocaleName`            |               |                            |
| `LCMapStringEx`               |               |                            |
| `LocaleNameToLCID`            |               |                            |
| `ResolveLocaleName`           |               |                            |
| `SetThreadLocale`             |               |                            |
| `CompareString`               | DEPRECATED    | `CompareStringEx`          |
| `CompareStringA`              | DEPRECATED    | `CompareStringEx`          |
| `EnumSystemLocalesA`          | DEPRECATED    | `EnumSystemLocalesEx`      |
| `EnumSystemLocalesW`          | DEPRECATED    | `EnumSystemLocalesEx`      |
| `FindNLSString`               | DEPRECATED    | `FindNLSStringEx`          |
| `GetCPInfo`                   | DEPRECATED    | Unicode 사용                 |
| `GetCPInfoExA`                | DEPRECATED    | Unicode 사용                 |
| `GetCPInfoExW`                | DEPRECATED    | Unicode 사용                 |
| `GetCurrencyFormatA`          | DEPRECATED    | `GetCurrencyFormatEx`      |
| `GetCurrencyFormatW`          | DEPRECATED    | `GetCurrencyFormatEx`      |
| `GetGeoInfoA`                 | DEPRECATED    | `GetGeoInfoEx`             |
| `GetGeoInfoW`                 | DEPRECATED    | `GetGeoInfoEx`             |
| `GetLocaleInfoA`              | DEPRECATED    | `GetLocaleInfoEx`          |
| `GetLocaleInfoW`              | DEPRECATED    | `GetLocaleInfoEx`          |
| `GetNumberFormatA`            | DEPRECATED    | `GetNumberFormatEx`        |
| `GetNumberFormatW`            | DEPRECATED    | `GetNumberFormatEx`        |
| `GetUserGeoID`                | DEPRECATED    | `GetUserDefaultLocaleName` |
| `LCMapStringA`                | DEPRECATED    | `LCMapStringEx`            |
| `LCMapStringW`                | DEPRECATED    | `LCMapStringEx`            |

## Game OS 동작 참고 사항

Game OS의 NLS 함수는 Windows가 가지고 있는 전체 언어별 대소문자(casing) 테이블을 **포함하지 않습니다**. 정렬(collation) 및 대소문자 변환 연산은 로케일과 무관하게 항상 **ordinal** 값을 사용합니다.

**문화권을 인식하는 대소문자 변환과 정렬은 런타임이 아니라 현지화 프로세스의 일부로 수행하세요.**

영향을 받는 함수:

| NLS               |
| ----------------- |
| `LCMapStringEx`   |
| `CompareStringEx` |
| `CompareString`   |
| `CompareStringA`  |

### 정렬(Collation)

| Base           | Wide         | Multibyte    |
| -------------- | ------------ | ------------ |
| `std::collate` |              |              |
| `strcoll`      | `wcscoll`    | `_mbscoll`   |
| `_stricoll`    | `_wcsicoll`  | `_mbsicoll`  |
| `_strncoll`    | `_wcsncoll`  | `_mbsncoll`  |
| `_strnicoll`   | `_wcsnicoll` | `_mbsnicoll` |

### 대문자 변환

| Base           | Variant       | Wide variant  |
| -------------- | ------------- | ------------- |
| `std::toupper` | `toupper`     | `towupper`    |
| `_toupper`     | `_toupper_l`  | `_towupper_l` |
| `std::isupper` | `isupper`     | `iswupper`    |
| `_isupper_l`   | `_iswupper_l` |               |

### 소문자 변환

| Base           | Variant       | Wide variant  |
| -------------- | ------------- | ------------- |
| `std::tolower` | `tolower`     | `towlower`    |
| `_tolower`     | `_tolower_l`  | `_towlower_l` |
| `std::islower` | `islower`     | `iswlower`    |
| `_islower_l`   | `_iswlower_l` |               |

<Note>
  이 목록은 전부는 아닙니다. 다른 Standard C++ Library 함수들도 영향을 받는 API에 의존할 수 있습니다.
</Note>

## 관련 API 문서

* [XGameRuntime 기능 레퍼런스](/reference/system/xgameruntimefeature/xgameruntimefeature_members) — NLS를 보완하는 로케일 + 지역 GDK 표면


## Related topics

- [현지화 및 국제화 개요](/ko/build/game-principles/localization.md)
- [지원되는 언어](/ko/publishing/game-publishing/concepts/metadata-supported-languages.md)
- [지원되는 Azure 지역](/ko/services/playfab/multiplayer/networking/supported-azure-regions.md)
- [GDK에서 Clang/LLVM 사용하기](/ko/tools/tools-pc/visualstudio/gr-vs-clang.md)
- [콘솔용 GDK에서 Clang/LLVM 사용하기](/ko/tools/tools-console/visualstudio/vs-clang.md)
