_create_locale, _wcreate_locale
Yerel ayar nesnesi oluşturur.
_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 bir locale ve category verilirse, _locale_t nesnesi olarak belirtilen yerel ayarlar döndürür.Programın geçerli yerel ayarları değiştirilmez.
Notlar
_create_locale işlevi, birçok CRT işlevinin bölgesel ayara özgü sürümlerinde ( _l soneki olan işlevlerde) kullanmak için bölgeye özgü belirli ayarları temsil eden bir nesne oluşturmanıza izin.Davranış, belirtilen yerel ayarların geçerli ortama uygulanması yerine bunların döndürülen bir _locale_t yapısına kaydedilmesi dışında setlocale işlevine benzer._locale_t yapısı, yapıya artık gerek kalmadığında _free_locale kullanılarak bellekten kaldırılmalıdır.
_wcreate_locale geniş karakterli bir _create_locale sürümüdür; locale ile ilgili biçim bağımsız değişkenler _wcreate_localegeniş karakterli dizelerdir.Aksi takdirde, _wcreate_locale ve _create_locale aynı şekilde davranır.
category bağımsız değişkeni, yerel ayara özgü davranışın etkilenen kısımlarını belirtir.category için kullanılan bayraklar ve etkiledikleri programın kısımları aşağıdaki tabloda gösterilmektedir.
LC_ALL
Tüm kategoriler aşağıda listelendiği gibidir.LC_COLLATE
strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll ve wcsxfrm işlevleri.LC_CTYPE
Karakter işleme işlevleri (etkilenmeyen isdigit, isxdigit, mbstowcs ve mbtowc hariç).LC_MONETARY
localeconv işlevi tarafından döndürülen para biçimli bilgiler.LC_NUMERIC
Biçimlendirilen çıkış rutinleri (printf) için, veri dönüştürme rutinleri için ve localeconv tarafından döndürülen parasal olmayan biçimlendirme bilgileri için ondalık nokta karakteri.Ondalık ayırıcı karakterinin yanı sıra, LC_NUMERIC seçeneği de binlik ayırıcıyı ve localeconv tarafından döndürülen gruplama denetimi dizesini ayarlar.LC_TIME
strftime ve wcsftime işlevleri.
Bu işlev, category ve locale parametrelerini doğrular.Kategori parametresi önceki tabloda verilen değerlerden biri değilse veya locale parametresi NULL ise, işlev NULL döndürür.
locale bağımsız değişkeni yereli belirten bir dizeyi gösterir.locale bağımsız değişkeninin biçimi hakkında bilgi için, bkz. Yerel Ayar Adları, Diller ve Ülke/Bölge Dizeleri.
locale bağımsız değişkeni bir yerel ad, bir dil dizesi, bir dil dizesi ve ülke/bölge kodu, bir kod paketi veya bir dil dizesi, ülke/bölge kodu ve kod sayfası alabilir.Kullanılabilen yerel veri adları, diller, ülke/bölge kodları ve kod sayfaları paketleri örneğin UTF-7 ve UTF-8 gibi karakter başına iki bayttan fazlasını gerektiren kod sayfaları dışında Windows NLS API tarafından desteklenenlerin tamamını içermektedir.UTF-8 ya da UTF-7 gibi bir kod sayfası sağlarsanız, _create_locale başarısız olur ve NULL değeri döndürür._create_locale tarafından desteklenen yerel veri ad paketleri Yerel Ayar Adları, Diller ve Ülke/Bölge Dizeleri içerisinde açıklanmıştır._create_locale tarafından desteklenen dil ve ülke/bölge dize kümesiDil Dizeleri and Ülke/Bölge Dizeleri içerisinde listelenmiştir.
Yerel ayarlar hakkında daha fazla bilgi için bkz. setlocale, _wsetlocale.
Bu işlevin bir önceki adı __create_locale (önünde iki adet alt çizgi ile) kullanım dışı kalmıştır.
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> veya <wchar.h> |
Ek uyumluluk bilgileri 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 (<ime);
_gmtime64_s(&thetime, <ime);
// %#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 (<ime);
_gmtime64_s(&thetime, <ime);
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);
}
Örnek Çıktı
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
.NET Framework Eşdeğeri
System::Globalization::CultureInfo Sınıfı
Ayrıca bkz.
Başvuru
Yerel Ayar Adları, Diller ve Ülke/Bölge Dizeleri
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
strftime, wcsftime, _strftime_l, _wcsftime_l