Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membuat objek lokal.
Sintaks
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parameter
category
Kategori.
locale
Penentu lokal.
Nilai hasil
Jika valid locale dan category diberikan, fungsi mengembalikan pengaturan lokal yang ditentukan sebagai _locale_t objek. Pengaturan lokal program saat ini tidak diubah.
Keterangan
Fungsi ini _create_locale memungkinkan Anda membuat objek yang mewakili pengaturan khusus wilayah tertentu, untuk digunakan dalam versi khusus lokal dari banyak fungsi CRT (fungsi dengan akhiran _l ). Perilaku ini mirip setlocaledengan , kecuali bahwa alih-alih menerapkan pengaturan lokal yang ditentukan ke lingkungan saat ini, pengaturan disimpan dalam _locale_t struktur yang dikembalikan. Struktur _locale_t harus dibebaskan menggunakan _free_locale ketika tidak lagi diperlukan.
_wcreate_locale adalah versi karakter luas dari _create_locale; locale argumen ke _wcreate_locale adalah string karakter lebar. _wcreate_locale dan _create_locale berulah secara identik jika tidak.
Argumen category menentukan bagian perilaku khusus lokal yang terpengaruh. Bendera yang digunakan untuk category dan bagian program yang mereka pengaruhi seperti yang ditunjukkan dalam tabel ini:
category bendera |
Mempengaruhi |
|---|---|
LC_ALL |
Semua kategori, seperti yang tercantum di bawah ini. |
LC_COLLATE |
Fungsi strcoll, , wcscoll_stricoll, _wcsicoll, strxfrm_strncoll, _strnicoll, , _wcsncoll, _wcsnicoll, dan wcsxfrm . |
LC_CTYPE |
Fungsi penanganan karakter (kecuali isdigit, , isxdigit, mbstowcsdan mbtowc, yang tidak terpengaruh). |
LC_MONETARY |
Informasi pemformatan moneter yang dikembalikan oleh localeconv fungsi . |
LC_NUMERIC |
Karakter titik desimal untuk rutinitas output yang diformat (seperti printf), untuk rutinitas konversi data, dan untuk informasi pemformatan non-moneter yang dikembalikan oleh localeconv. Selain karakter titik desimal, LC_NUMERIC mengatur pemisah ribuan dan string kontrol pengelompokan yang dikembalikan oleh localeconv. |
LC_TIME |
Fungsi strftime dan wcsftime . |
Fungsi ini memvalidasi category parameter dan locale . Jika parameter kategori bukan salah satu nilai yang diberikan dalam tabel sebelumnya atau jika locale adalah NULL, fungsi mengembalikan NULL.
Argumen locale adalah penunjuk ke string yang menentukan lokal. Untuk informasi tentang format locale argumen, lihat Nama lokal, Bahasa, dan string Negara/Wilayah.
Argumen locale dapat mengambil beberapa jenis nilai: nama lokal, string bahasa, string bahasa dan kode negara/wilayah, halaman kode, atau kombinasi string bahasa, kode negara/wilayah, dan halaman kode. Set (nama lokal, bahasa, kode negara/wilayah, dan halaman kode yang tersedia) mencakup semua yang didukung oleh Windows NLS API. Kumpulan dukungan nama _create_locale lokal dijelaskan dalam string Nama lokal, Bahasa, dan Negara/Wilayah. Kumpulan string bahasa dan negara/wilayah yang didukung oleh _create_locale tercantum dalam String bahasa dan string Negara/Wilayah.
Untuk informasi selengkapnya tentang pengaturan lokal, lihat setlocale, _wsetlocale.
Nama sebelumnya dari fungsi ini, __create_locale (dengan dua garis bawah terkemuka), telah ditolak.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Lihat juga
Nama lokal, Bahasa, dan string Negara/Wilayah
String bahasa
String Negara/Wilayah
_free_locale
_configthreadlocale
setlocale
Lokal
localeconv
_mbclen, , mblen_mblen_l
strlen, , wcslen_mbslen, _mbslen_l, , _mbstrlen,_mbstrlen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
_setmbcp
setlocale, _wsetlocale
strcoll Fungsi
strftime, , wcsftime_strftime_l,_wcsftime_l
strxfrm, , wcsxfrm_strxfrm_l,_wcsxfrm_l
wcstombs, _wcstombs_l
wctomb, _wctomb_l