Názvy národního prostředí UCRT, jazyky a řetězce země/oblasti

Argument můžete nastavit locale nasetlocale , _wsetlocale, _create_localea _wcreate_locale funkce několika způsoby. Národní prostředí lze nastavit pomocí názvů národních prostředí, jazyků, kódů zemí/oblastí a kódových stránek podporovaných rozhraním WINDOWS NLS API. Argument locale má jednu z následujících forem:

locale :: "locale-name"
 | "language[_country-region[.code-page]"
 | ".code-page"
 | "C"
 | ""
 | NULL

Formát názvu národního prostředí je krátký, standardizovaný řetězec IETF, například en-US pro angličtinu (USA) nebo bs-Cyrl-BA bosenštinu (cyrilice, Bosna a Hercegovina). Tyto formuláře jsou upřednostňované. Seznam podporovaných názvů národních prostředí podle verze operačního systému Windows naleznete ve sloupci Značka jazyka tabulky v dodatku A: Chování produktu v [MS-LCID]: Identifikátor kódu systému Windows (LCID). Tento materiál obsahuje seznam podporovaných částí názvů národních prostředí, jež udávají jazyk, způsob zápisu a oblast. Informace o podporovaných názvech národního prostředí, které mají jiné než výchozí pořadí řazení, najdete ve sloupci Název národního prostředí v identifikátorech pořadí řazení. V rámci Windows 10 nebo novějších jsou povoleny názvy národních prostředí, které odpovídají platným jazykovým značkám BCP-47 . Je to například jp-US platná značka BCP-47, ale efektivně se používá jenom US pro funkce národního prostředí.

Jazyk[_country-region[.Code-page]] formulář je uložen v nastavení národního prostředí pro kategorii, pokud se k vytvoření národního prostředí používá řetězec jazyka nebo řetězec jazyka a země nebo oblasti. Sada podporovaných řetězců jazyka je popsaná v řetězcích jazyků a seznam podporovaných řetězců zemí a oblastí je uvedený v řetězcích země/oblasti. Pokud zadaný jazyk není přidružený k zadané zemi nebo oblasti, je výchozí jazyk pro zadanou zemi nebo oblast uložen v nastavení národního prostředí. Tento formulář nedoporučujeme pro řetězce národního prostředí vložené do kódu nebo serializované do úložiště: Tyto řetězce budou pravděpodobně změněny aktualizací operačního systému než formulář názvu národního prostředí.

Znaková stránka je znaková stránka ANSI/OEM, která je přidružená k národnímu prostředí. Znakovou stránku za vás určíme, pokud zadáte národní prostředí pouze pomocí jazyka nebo jazyka a země či oblasti. Speciální hodnota .ACP určuje znakovou stránku ANSI pro zemi/oblast. Speciální hodnota .OCP určuje znakovou stránku OEM pro zemi/oblast. Pokud například zadáte "Greek_Greece.ACP" jako národní prostředí, národní prostředí se uloží jako Greek_Greece.1253 (znaková stránka ANSI pro řečtinu) a pokud zadáte "Greek_Greece.OCP" jako národní prostředí, uloží se jako Greek_Greece.737 (znaková stránka OEM pro řečtinu). Další informace o kódových stránkách naleznete v tématu Kódové stránky. Seznam podporovaných znakových stránek ve Windows najdete v tématu Identifikátory znakové stránky.

Pokud k určení národního prostředí použijete jenom znakovou stránku, použije se výchozí jazyk a země/oblast uživatele, které jsou hlášeny GetUserDefaultLocaleName . Pokud například zadáte ".1254" (ANSI Turečtina) jako národní prostředí pro uživatele, který je nakonfigurovaný pro angličtinu (USA), národní prostředí, které je uloženo, je English_United States.1254. Tento formulář nedoporučujeme, protože může vést k nekonzistentnímu chování.

Hodnota locale argumentu C určuje minimální prostředí odpovídající ANSI pro překlad jazyka C. Národní C prostředí předpokládá, že každý char datový typ je 1 bajt a jeho hodnota je vždy menší než 256. Pokud locale odkazuje na prázdný řetězec, národní prostředí je nativní prostředí definované implementací.

Pomocí této kategorie můžete určit všechny kategorie národního prostředí najednou pro setlocale funkce a _wsetlocale funkce LC_ALL . Všechny kategorie mohou být nastaveny na stejné národní prostředí nebo můžete nastavit každou kategorii samostatně pomocí argumentu národního prostředí, který má tento tvar:

LC-ALL-specifier :: locale
 | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]

Můžete zadat více typů kategorií oddělených středníky. Typy kategorií, které nejsou zadané, používají aktuální nastavení národního prostředí. Například tento fragment kódu nastaví aktuální národní prostředí pro všechny kategorie na de-DEa potom nastaví kategorie LC_MONETARY na en-GB a LC_TIME na es-ES:

_wsetlocale(LC_ALL, L"de-DE");
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");

Podpora UTF-8

Podporu UTF-8 je možné povolit pomocí znakové stránky UTF-8 v řetězci národního prostředí. Další informace naleznete v části podpory UTF-8 nástroje setlocale.

Viz také

Referenční informace k knihovně modulu runtime jazyka C
_get_current_locale
setlocale, _wsetlocale
_create_locale, _wcreate_locale
Řetězce jazyka
Řetězce zemí a oblastí