로캘 및 언어

"언어"라는 용어는 음성 및 서면 통신에 사용되는 속성의 컬렉션을 나타냅니다. 각 언어에는 운영 체제에서 언어의 지리적 위치를 나타내는 데 사용되는 특정 코드 페이지(ANSI, DOS, Macintosh)를 나타내는 언어 이름과 언어 식별자가 있습니다. 중립 언어는 영어의 경우 "en"과 같은 이름으로 표시됩니다. 보다 지리적으로 특정한 언어는 로캘 및 국가/지역 정보를 모두 포함하는 이름으로 나타낼 수 있습니다. 예를 들어 로캘 영어(미국)의 언어 이름은 "en-US"입니다.

"로캘"은 값 목록으로 표시되는 언어 관련 사용자 기본 설정 정보의 컬렉션입니다. Windows XP는 150개 이상의 로캘을 지원하며 Windows Vista는 약 200개의 로캘을 지원합니다. 각 로캘은 언어 및 정렬 순서로 정의되며 로캘 이름과 로캘 식별자가 모두 있습니다. 독일어(독일)의 로캘 이름 예는 "de-DE_phonebook"입니다.

각 운영 체제에는 하나 이상의 설치된 로캘이 있으며 사용자가 선택할 수 있는 많은 로캘이 있는 경우가 많습니다. 각 로캘에는 이름과 식별자 이외의 다양한 정보가 연결되어 있습니다. 로캘 정보 유형은 로캘 정보 상수에 설명되어 있습니다.

운영 체제는 처음에 LOCALE_SYSTEM_DEFAULT 정의한 "시스템 기본 로캘"을 할당하여 각 스레드에 캘을 할당합니다. 이 로캘은 운영 체제가 설치되거나 사용자가 제어판 지역 및 언어 옵션 부분을 사용하여 선택할 때 설정됩니다. 사용자에 속한 프로세스에서 스레드를 실행할 때 운영 체제는 스레드에 "사용자 기본 로캘"을 할당합니다. 이 로캘은 LOCALE_USER_DEFAULT 정의됩니다. 애플리케이션은 SetThreadLocale 함수를 사용하여 스레드에 대한 로캘을 명시적으로 설정하여 기본값을 재정의할 수 있습니다.

언어를 구현하려면 해당 로캘이 필요합니다. 운영 체제는 특정 버전의 언어(일반적으로 가장 광범위한 로캘)와 연결된 로캘에 대한 데이터를 선택하여 중립 언어를 구현합니다.

Windows Vista부터 특정 언어가 사용자 지정 로캘 형식인 추가 로캘에 해당할 수 있습니다. 추가 로캘은 모두 단일 로캘 식별자를 공유하므로 애플리케이션은 식별자가 아닌 이름으로 이러한 로캘 및 해당 언어를 처리해야 합니다.

언어 개념은 로캘 개념과 밀접하게 관련되어 있지만 두 용어는 서로 교환할 수 없습니다. 일반적으로 다국어 사용자 인터페이스 와 관련된 함수는 언어를 처리하고 NLS 함수는 로캘에 따라 작동합니다.

이 섹션에서 다루는 토픽은 다음과 같습니다.

국가 언어 지원 정보

코드 페이지

로캘 정보 상수

다국어 사용자 인터페이스

지리적 위치 테이블

사용자 인터페이스 언어 관리

SetThreadLocale