Aracılığıyla paylaş


_create_locale, _wcreate_locale

Bir yerel ayar nesnesi oluşturur.

Sözdizimi

_locale_t _create_locale(
   int category,
   const char *locale
);
_locale_t _wcreate_locale(
   int category,
   const wchar_t *locale
);

Parametreler

category
Kategori.

locale
Yerel ayar tanımlayıcı.

Dönüş değeri

Geçerli locale ve category verilirse, işlevler belirtilen yerel ayar ayarlarını nesne _locale_t olarak döndürür. Programın geçerli yerel ayar ayarları değiştirilmez.

Açıklamalar

_create_locale işlevi, birçok CRT işlevinin yerel ayara özgü sürümlerinde (soneki olan işlevler) kullanmak üzere belirli bölgeye özgü ayarları temsil eden bir nesne oluşturmanıza _l olanak tanır. Davranışı ile benzerdir setlocale, ancak belirtilen yerel ayar ayarlarını geçerli ortama uygulamak yerine, ayarlar döndürülen bir _locale_t yapıya kaydedilir. Yapı _locale_t artık gerekli olmadığında kullanılarak _free_locale serbest olmalıdır.

_wcreate_locale , öğesinin _create_localegeniş karakterli bir sürümüdür; locale bağımsız değişkeni _wcreate_locale geniş karakterli bir dizedir. _wcreate_locale ve _create_locale aksi takdirde aynı şekilde davran.

category bağımsız değişkeni, etkilenen yerel ayara özgü davranışın bölümlerini belirtir. bu tabloda gösterildiği gibi, için category kullanılan bayraklar ve programın etkilediği bölümler şunlardır:

category Bayrak Etkiledi -ğini
LC_ALL Aşağıda listelendiği gibi tüm kategoriler.
LC_COLLATE strcoll, , _stricoll, wcscoll, _wcsicoll, , strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicollve wcsxfrm işlevleri.
LC_CTYPE Karakter işleme işlevleri (etkilenmeyen , isxdigit, mbstowcsve mbtowcdışındaisdigit).
LC_MONETARY İşlev tarafından localeconv döndürülen parasal biçimlendirme bilgileri.
LC_NUMERIC Veri dönüştürme yordamları ve tarafından localeconvdöndürülen parasal olmayan biçimlendirme bilgileri için biçimlendirilmiş çıkış yordamlarının (örneğinprintf), ondalık nokta karakteri. Ondalık nokta karakterine ek olarak, LC_NUMERIC binlik ayırıcısını ve tarafından localeconvdöndürülen gruplandırma denetim dizesini ayarlar.
LC_TIME strftime ve wcsftime işlevleri.

Bu işlev ve locale parametrelerini doğrularcategory. Kategori parametresi önceki tabloda verilen değerlerden biri değilse veya ise localeNULLişlevi döndürür NULL.

locale Bağımsız değişken, yerel ayarı belirten bir dize işaretçisidir. Bağımsız değişkenin locale biçimi hakkında bilgi için bkz . Yerel ayar adları, Diller ve Ülke/Bölge dizeleri.

Bağımsız locale değişken birkaç tür değer alabilir: yerel ayar adı, dil dizesi, dil dizesi ve ülke/bölge kodu, kod sayfası veya dil dizesi, ülke/bölge kodu ve kod sayfası birleşimi. Küme (kullanılabilir yerel ayar adları, diller, ülke/bölge kodları ve kod sayfaları) Windows NLS API'sinin desteklediği tüm öğeleri içerir. Desteklenen yerel ayar adları _create_locale kümesi Yerel ayar adları, Diller ve Ülke/Bölge dizelerinde açıklanmıştır. Tarafından desteklenen _create_locale dil ve ülke/bölge dizeleri kümesi, Dil dizeleri ve Ülke/Bölge dizelerinde listelenir.

Yerel ayar ayarları hakkında daha fazla bilgi için bkz setlocale. , _wsetlocale.

Bu işlevin __create_locale önceki adı (başında iki alt çizgi olan) kullanım dışı bırakıldı.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Yordam Gerekli başlık
_create_locale <locale.h>
_wcreate_locale <locale.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.

#include <stdio.h>
#include <locale.h>
#include <time.h>

int main(void)
{
    time_t ltime;
    struct tm thetime;
    unsigned char str[100];
    _locale_t locale;

    // Create a locale object representing the German (Switzerland) locale
    locale = _create_locale(LC_ALL, "de-CH");
    time (&ltime);
    _gmtime64_s(&thetime, &ltime);

    // %#x is the long date representation, appropriate to
    // the current locale
    if (!_strftime_l((char *)str, 100, "%#x",
                     (const struct tm *)&thetime, locale))
    {
        printf("_strftime_l failed!\n");
    }
    else
    {
        printf("In de-CH locale, _strftime_l returns '%s'\n", str);
    }

    _free_locale(locale);

    // Create a locale object representing the default C locale
    locale = _create_locale(LC_ALL, "C");
    time(&ltime);
    _gmtime64_s(&thetime, &ltime);

    if (!_strftime_l((char *)str, 100, "%#x",
                     (const struct tm *)&thetime, locale))
    {
        printf("_strftime_l failed!\n");
    }
    else
    {
        printf("In 'C' locale, _strftime_l returns '%s'\n", str);
    }

    _free_locale(locale);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'

Ayrıca bkz.

Yerel ayar adları, Diller ve Ülke/Bölge dizeleri
Dil dizeleri
Ülke/Bölge dizeleri
_free_locale
_configthreadlocale
setlocale
Yerel ayar
localeconv
_mbclen, mblen, _mblen_l
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
_setmbcp
setlocale, _wsetlocale
strcoll işlevleri
strftime, wcsftime, _strftime_l, _wcsftime_l
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
wcstombs, _wcstombs_l
wctomb, _wctomb_l