Řetězce s názvy národních prostředí, jazyků a zemí/oblastí
Argument locale funkcí setlocale a _create_locale lze nastavit pomocí názvů národního prostředí, jazyků, kódů zemí nebo oblastí a znakových stránek podporovaných rozhraním API Windows NLS.Argument locale má následující tvar:
locale :: "locale_name"
| "language[_country_region[.code_page]]"
| ".code_page"
| "C"
| ""
| NULL
Je upřednostňována forma názvu národního prostředí, například en-US pro angličtinu (Spojené státy) nebo bs-Cyrl-BA pro bosenštinu – cyrilice (Bosna a Hercegovina).Sada názvů národních prostředí je popsána v tématu Názvy národních prostředí.Seznam názvů národních prostředí podporovaných v dané verzi operačního systému Windows naleznete ve sloupci Název jazykové verze v Referenční příručce rozhraní API národní jazykové podpory (NLS).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ích prostředí, která mají jiné než výchozí pořadí řazení, naleznete ve sloupci Název národního prostředí v tabulce Identifikátory pořadí řazení.
Tvar language[_country_region[.code_page]] je uložen v nastavení národního prostředí pro kategorii v případě, že se k vytvoření národního prostředí používá řetězec jazyka nebo řetězec jazyka a řetězec země/oblasti.Sada podporovaných řetězců jazyka je popsána v tématu Řetězce jazyků, seznam podporovaných řetězců země/oblasti je uveden v tématu Řetězce zemí/oblastí.Pokud zadaný jazyk není spojen se zadanou zemí nebo oblastí, uloží se v nastavení národního prostředí výchozí jazyk pro zadanou zemi nebo oblast.Tuto formu řetězců národního prostředí vložených do kódu nebo serializovaných do úložiště nedoporučujeme, protože tyto řetězce s větší pravděpodobností podlehnou změně při aktualizaci operačního systému než u formy s názvem národního prostředí.
Znaková stránka je znaková stránka ANSI/OEM spojená s daným národním prostředím.Znakovou stránku za vás určíme, pokud zadáte národní prostředí pouze pomocí jazyka nebo jazyka a země či oblasti.Zvláštní hodnota .ACP určuje znakovou stránku ANSI pro danou zemi nebo oblast.Zvláštní hodnota .OCP určuje znakovou stránku OEM pro danou zemi nebo oblast.Pokud například zadáte jako národní prostředí Greek_Greece.ACP, uloží se národní prostředí jako Greek_Greece.1253 (znaková stránka ANSI pro řečtinu). Jestliže jako národní prostředí zadáte Greek_Greece.OCP, uloží se jako Greek_Greece.737 (znaková stránka OEM pro řečtinu).Další informace o znakových stránkách naleznete v tématu Znakové stránky.Seznam znakových stránek podporovaných v systému Windows naleznete v tématu Identifikátory znakových stránek.
Pokud určíte národní prostředí pouze pomocí znakové stránky, použije se výchozí jazyk a země/oblast v systému.Jestliže například zadáte .1254 (turečtina ANSI) jako národní prostředí v systému, který je nakonfigurován pro angličtinu (Spojené státy), bude uloženo národní prostředí English_United States.1254.Tuto formu ukládání nedoporučujeme, protože může způsobit nekonzistentní chování.
Hodnota locale určuje minimální prostředí vyhovující standardu ANSI pro překlad C.Národní prostředí C předpokládá, že všechny datové typy char mají 1 bajt a jejich hodnota je vždy menší než 256.Pokud argument locale odkazuje na prázdný řetězec, je národní prostředí definováno implementací nativního prostředí.
Všechny kategorie národního prostředí pro funkce setlocale a _wsetlocale můžete zadat najednou pomocí kategorie 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 zadány, používají aktuální nastavení národního prostředí.Tento kód například nastaví aktuální národní prostředí pro všechny kategorie na de-DE a pak 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");
Viz také
Referenční dokumentace
_create_locale, _wcreate_locale