Compartilhar via


_create_locale, _wcreate_locale

Cria um objeto de localidade.

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

Parâmetros

  • category
    Categoria.

  • locale
    Especificador de localidade.

Valor de retorno

Se um locale válido e category fornecidos, as configurações de localidade especificadas serão retornadas como um objeto de _locale_t. As configurações de localidade atuais do programa não são alteradas.

Comentários

A função _create_locale permite que você crie um objeto que representa determinadas configurações específicas da região para uso em versões específicas do local de muitas funções de CRT (funções com o sufixo _l). O comportamento é semelhante a setlocale, exceto pelo fato de que em vez de aplicar as configurações de localidade especificadas ao ambiente atual, as configurações são salvas em uma estrutura _locale_t que é retornada. A estrutura _locale_t deve ser liberada usando _free_locale quando não for mais necessária.

_wcreate_locale é uma versão de caractere longo de _create_locale; o argumento locale para _wcreate_locale é uma cadeia de caractere longo. Caso contrário, _wcreate_locale e _create_locale, ao contrário, se comportam de forma idêntica.

O argumento category especifica as partes do comportamento específico do local que são afetadas. Os sinalizadores usados pelo argumento category e as partes do programa que eles afetam são conforme mostrado na tabela a seguir.

  • LC_ALL
    Todas as categorias, como listadas a seguir.

  • LC_COLLATE
    As funções strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll e wcsxfrm.

  • LC_CTYPE
    As funções de manipulação de caracteres (exceto isdigit, isxdigit, mbstowcs e mbtowc, que não são afetadas).

  • LC_MONETARY
    Informações de formatação monetária retornadas pela função localeconv.

  • LC_NUMERIC
    Caractere de ponto decimal para rotinas de saída formatadas (como printf), para rotinas de conversão de dados, e para informações não monetárias de formatação retornados por localeconv. Além do caractere de ponto decimal, LC_NUMERIC define o separador de milhares e a cadeia de caracteres de controle de agrupamento retornada por localeconv.

  • LC_TIME
    As funções strftime e wcsftime.

Essa função valida os parâmetros category e locale. Se o parâmetro de categoria não for um dos valores dados na tabela anterior ou se locale for NULL, a função retorna NULL.

O argumento locale é um ponteiro para uma cadeia de caracteres que especifica a localidade. Para obter informações sobre o formato do argumento de locale , consulte Nomes de localidades, idiomas e cadeias de caracteres de país/região.

O argumento locale pode ter um nome de localidade, uma cadeia de caracteres de idioma, uma cadeia de caracteres de idioma e código de país/região, uma página de código ou uma cadeia de caracteres de idioma, código de país/região e página de código. O conjunto disponível de nomes de localidade, idiomas, códigos de país/região e páginas de código inclui tudo o que é suportado pela API NLS do Windows, exceto as páginas de código que exigem mais de dois bytes por caractere, por exemplo, UTF-7 e UTF-8. Se você fornecer uma página de código como UTF-7 ou UTF-8, _create_locale falhará e retornará NULL. O conjunto de nomes de localidade com suporte de _create_locale é descrito em Nomes de localidades, idiomas e cadeias de caracteres de país/região. O conjunto de cadeias de caracteres de país/região e idioma com suporte de _create_locale está listado em Cadeias de caracteres de idioma e Cadeias de caracteres de país/região.

Para obter mais informações sobre configurações de localidade, consulte setlocale, _wsetlocale.

O nome anterior dessa função, __create_locale (com dois sublinhados à esquerda), foi preterido.

Requisitos

Rotina

Cabeçalho necessário

_create_locale

<locale.h>

_wcreate_locale

<locale.h> ou <wchar.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade.

Exemplo

// 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);
}

Saída de Exemplo

In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'

Equivalência do .NET Framework

Classe System::Globalization::CultureInfo

Consulte também

Referência

Nomes de localidades, idiomas e cadeias de caracteres de país/região

Cadeias de caracteres de idioma

Cadeias de caracteres de país/região

_free_locale

_configthreadlocale

setlocale

Localidade

localeconv

_mbclen, mblen, _mblen_l

strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

_setmbcp

setlocale, _wsetlocale

Funções strcoll

strftime, wcsftime, _strftime_l, _wcsftime_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l