로캘 이름, 언어 및 국가/지역 문자열Locale Names, Languages, and Country/Region Strings

setlocale_create_locale 함수에 대한 locale 인수는 Windows NLS API에서 지원하는 로캘 이름, 언어, 국가/지역 코드 및 코드 페이지를 사용하여 설정할 수 있습니다.The locale argument to the setlocale and _create_locale functions can be set by using the locale names, languages, country/region codes, and code pages that are supported by the Windows NLS API. locale 인수 형식은 다음과 같습니다.The locale argument takes the following form:

locale :: "locale_name"locale :: "locale_name"
    | "language[_country-region][.code_page]]"    | "language[_country-region][.code_page]]"
    | ".code_page"    | ".code_page"
    | "C"    | "C"
    | ""    | ""
    | NULL    | NULL

로캘 이름 형식(예: 영어(미국)의 경우 en-US 또는 보스니아어(키릴 자모, 보스니아 헤르체고비나)의 경우 bs-Cyrl-BA)을 사용하는 것이 좋습니다.The locale name form is preferred; for example, use en-US for English (United States) or bs-Cyrl-BA for Bosnian (Cyrillic, Bosnia and Herzegovina). 로캘 이름 집합은 Locale Names(로캘 이름)에 설명되어 있습니다.The set of locale names is described in Locale Names. Windows 운영 체제 버전에서 지원되는 로캘 이름 목록을 보려면 National Language Support (NLS) API Reference(국가별 언어 지원(NLS) API 참조)문화권 이름열을 참조하세요.For a list of supported locale names by Windows operating system version, see the Culture Name column of the National Language Support (NLS) API Reference. 이 리소스는 로캘 이름의 지원되는 언어, 스크립트 및 영역 부분을 나열합니다.This resource lists the supported language, script, and region parts of the locale names. 비-기본 정렬 순서를 사용하는 지원되는 로캘 이름에 대한 정보는 Sort Order Identifiers(정렬 순서 식별자) 에서 로캘 이름열을 참조하세요.For information about the supported locale names that have non-default sort orders, see the Locale name column in Sort Order Identifiers. 버전별 Windows 운영 체제의 언어 및 위치 지원에 대한 자세한 내용은 [MS-LCID]: Windows LCID(언어 코드 식별자) 참조의 부록 A: 제품 동작(영문)을 참조하세요.For additional information about language and location support in the Windows operating system by version, see Appendix A: Product Behavior in [MS-LCID]: Windows Language Code Identifier (LCID) Reference. Windows 10 이상에서는 유효한 BCP-47 언어 태그에 해당하는 로캘 이름을 사용할 수 있습니다.Under Windows 10 or later, locale names that correspond to valid BCP-47 language tags are allowed. 예를 들어 jp-US는 유효한 BCP-47 태그이지만 로캘 기능의 경우 US만 유효합니다.For example, jp-US is a valid BCP-47 tag, but it is effectively only US for locale functionality.

language[_country_region[.code_page]] 양식은 언어 문자열 또는 언어 문자열과 국가/지역 문자열이 로캘을 만드는 데 사용되는 경우 범주에 대한 로캘 설정에 저장됩니다.The language[_country_region[.code_page]] form is stored in the locale setting for a category when a language string, or language string and country/region string, is used to create the locale. 지원되는 언어 문자열 집합은 Language Strings에 설명되어 있고, 지원되는 국가/지역 문자열은 Country/Region Strings에 나열되어 있습니다.The set of supported language strings is described in Language Strings, and the list of supported country/region strings is listed in Country/Region Strings. 지정된 언어가 국가/지역과 연결되어 있지 않으면 지정된 국가/지역에 대한 기본 언어가 로캘 설정에 저장됩니다.If the specified language is not associated with the specified country/region, the default language for the specified country/region is stored in the locale setting. 이러한 문자열은 로캘 이름 형식보다 운영 체제 업데이트에 의해 변경될 가능성이 높기 때문에 코드에 포함되거나 저장소로 직렬화된 로캘 문자열에는 이 양식을 사용하지 않는 것이 좋습니다.We do not recommend this form for locale strings embedded in code or serialized to storage, because these strings are more likely to be changed by an operating system update than the locale name form.

코드 페이지는 로캘과 연관된 ANSI/OEM 코드 페이지입니다.The code page is the ANSI/OEM code page that's associated with the locale. 언어 또는 언어와 국가/지역만으로 로캘을 지정하면 코드 페이지가 결정됩니다.The code page is determined for you when you specify a locale by language or by language and country/region alone. 특수 값 .ACP 가 국가/지역에 대한 ANSI 코드 페이지를 지정합니다.The special value .ACP specifies the ANSI code page for the country/region. 특수 값 .OCP 가 국가/지역에 대한 OEM 코드 페이지를 지정합니다.The special value .OCP specifies the OEM code page for the country/region. 예를 들어, "Greek_Greece.ACP" 를 로캘로 지정하는 경우 로캘이 Greek_Greece.1253 (그리스어의 ANSI 코드 페이지)으로 저장되고, "Greek_Greece.OCP" 를 로캘로 지정하는 경우 로캘이 Greek_Greece.737 (그리스어의 OEM 코드 페이지)로 저장됩니다.For example, if you specify "Greek_Greece.ACP" as the locale, the locale is stored as Greek_Greece.1253 (the ANSI code page for Greek), and if you specify "Greek_Greece.OCP" as the locale, it is stored as Greek_Greece.737 (the OEM code page for Greek). 코드 페이지에 대한 자세한 내용은 Code Pages를 참조하세요.For more information about code pages, see Code Pages. Windows에서 지원되는 코드 페이지 목록을 보려면 Code Page Identifiers(코드 페이지 식별자)를 참조하세요.For a list of supported code pages on Windows, see Code Page Identifiers.

로캘을 지정하는 데 코드 페이지만 사용하는 경우 시스템 기본 언어 및 국가/지역이 사용됩니다.If you use only the code page to specify the locale, the system default language and country/region are used. 예를 들어, 영어(미국)로 구성된 시스템에서 ".1254" (ANSI 터키어)를 로캘로 지정하는 경우 저장되는 로캘은 English_United States.1254입니다.For example, if you specify ".1254" (ANSI Turkish) as the locale on a system that's configured for English (United States), the locale that's stored is English_United States.1254. 일관되지 않은 동작이 발생할 수 있으므로 이 양식을 사용하지 않는 것이 좋습니다.We do not recommend this form, because it could lead to inconsistent behavior.

Clocale 인수 값은 C 번역에 대한 최소 ANSI 표준에 맞는 환경을 지정합니다.A locale argument value of C specifies the minimal ANSI conforming environment for C translation. C 로캘은 모든 char 데이터 형식이 1바이트이고, 해당 값이 항상 256보다 작은 것으로 간주합니다.The C locale assumes that every char data type is 1 byte and its value is always less than 256. locale에서 빈 문자열을 가리키면 로캘은 구현에서 정의된 네이티브 환경입니다.If locale points to an empty string, the locale is the implementation-defined native environment.

setlocale 범주를 사용하여 _wsetlocaleLC_ALL 함수에 대해 동시에 모든 로캘 범주를 지정할 수 있습니다.You can specify all of the locale categories at the same time for the setlocale and _wsetlocale functions by using the LC_ALL category. 범주를 모두 동일한 로캘로 설정하거나 이 양식을 사용하는 로캘 인수를 사용하여 범주를 각각 설정할 수 있습니다.The categories can all be set to the same locale, or you can set each category individually by using a locale argument that has this form:

LC_ALL_specifier :: localeLC_ALL_specifier :: locale
    | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]    | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]

세미콜론으로 구분된 여러 범주 형식을 지정할 수 있습니다.You can specify multiple category types, separated by semicolons. 지정되지 않은 범주 형식에서 현재 로캘 설정을 사용합니다.Category types that are not specified use the current locale setting. 예를 들어 이 코드 조각에서는 모든 범주에 대한 현재 로캘을 de-DE로 설정한 다음, LC_MONETARY 범주를 en-GB로, LC_TIME 범주를 es-ES로 설정합니다.For example, this code snippet sets the current locale for all categories to de-DE, and then sets the categories LC_MONETARY to en-GB and LC_TIME to es-ES:

_wsetlocale(LC_ALL, L"de-DE");  
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");  

참고 항목See Also

C 런타임 라이브러리 참조 C Run-Time Library Reference
_get_current_locale _get_current_locale
setlocale, _wsetlocale setlocale, _wsetlocale
_create_locale, _wcreate_locale _create_locale, _wcreate_locale
언어 문자열 Language Strings
국가/지역 문자열Country/Region Strings