NLS 용어
이 항목에서는 NLS 기능을 사용할 때 중요한 용어를 정의합니다.
로캘 및 언어 용어
다음 표에는 로캘 및 언어 용어가 요약되어 있습니다. 로캘 및 언어도 참조하세요.
언어 그룹 | 유니코드를 지원하지 않는 프로그램용 언어(Language for non-Unicode programs) | 표준 및 형식 | |
---|---|---|---|
용도 | 모든 키보드 레이아웃, IME(입력 방법 편집기), TrueType 글꼴, 글꼴 링크, 라이선스 패키지 파일(LPK), 비트맵 글꼴 및 운영 체제에서 언어 그룹에 필요한 코드 페이지 번역 테이블을 제공합니다. 따라서 이 목록의 다른 모든 설정에 영향을 줍니다. | 운영 체제의 기본값인 비트맵 글꼴과 OEM, ANSI 및 Macintosh 코드 페이지를 결정합니다. 이 언어는 완전히 유니코드되지 않은 애플리케이션에만 영향을 줍니다. Windows XP 이전에는 이 언어를 "시스템 로캘"이라고 했습니다. | 날짜, 시간, 통화 및 숫자를 각 사용자에 대한 기본값으로 서식 지정하는 데 사용되는 설정을 결정합니다. 또한 텍스트를 정렬하기 위한 정렬 순서도 결정합니다. Windows XP 이전에는 표준 및 형식을 "사용자 로캘"이라고 했습니다. |
첫 번째 집합 | 설치 | 설치 | 설치 |
사용자가 변경할 수 있는 방법 | 지역 옵션(제어판 항목) Windows XP: 지역 및 언어 옵션 (관리자만 해당) |
지역 옵션(제어판 항목) Windows XP: 지역 및 언어 옵션 (관리자만 해당) |
지역 옵션(제어판 항목) Windows XP: 지역 및 언어 옵션 |
기본값 | 서유럽 및 미국 및 언어 그룹은 지역화된 버전의 언어를 표시하는 데 필요합니다. | 지역화된 버전의 언어입니다. | 지역화된 운영 체제의 언어입니다. |
Function | EnumSystemLanguageGroups | GetSystemDefaultLangID | GetUserDefaultLCID, GetUserDefaultLocaleName |
스레드 로캘 | 입력 언어 | 시스템 기본 UI 언어 | |
---|---|---|---|
용도 | 스레드의 날짜, 시간, 통화 및 큰 숫자 서식 지정에 사용되는 설정을 결정합니다. 또한 텍스트를 정렬하기 위한 정렬 순서도 결정합니다. | 언어와 입력 메서드로 구성됩니다. | 메뉴 및 대화 상자, 메시지, INF(설정 정보) 파일 및 도움말 파일의 기본 언어를 결정합니다. Windows Vista 이상: 설치 언어라고 합니다. 시스템 기본 설정 UI 언어로 대체되는 더 제한된 역할을 합니다. 자세한 내용은 사용자 인터페이스 언어 관리를 참조하세요. |
첫 번째 집합 | 기본값: 표준 및 형식 | 설치 | 설치 |
사용자가 변경할 수 있는 방법 | SetThreadLocale | 지역 옵션(제어판 항목) Windows XP: 지역 및 언어 옵션 |
No |
기본값 | 표준 및 형식 | 기본 입력 메서드를 사용하는 지역화된 버전의 언어입니다. | 지역화된 버전의 언어입니다. |
Function | GetThreadLocale | GetKeyboardLayout | GetSystemDefaultUILanguage |
시스템 UI 언어, 시스템 기본 설정 UI 언어 | 사용자 UI 언어, 사용자가 선호하는 UI 언어 | 스레드 기본 설정 UI 언어 | |
---|---|---|---|
용도 | 운영 체제에 대한 메뉴 및 대화 상자, 메시지, INF 파일 및 도움말 파일의 언어를 결정합니다. 자세한 내용은 사용자 인터페이스 언어 관리를 참조하세요. | 사용자에 대한 메뉴 및 대화 상자, 메시지 및 도움말 파일의 언어를 결정합니다. 자세한 내용은 사용자 인터페이스 언어 관리를 참조하세요. | Windows Vista 이상: 애플리케이션 스레드에 대한 기본 설정 언어를 지정합니다. 자세한 내용은 사용자 인터페이스 언어 관리를 참조하세요. |
첫 번째 집합 | 기본값은 NULL입니다. | 기본값은 NULL입니다. | 기본값은 NULL입니다. |
사용자가 변경할 수 있는 방법 | 국가 및 언어 옵션 (관리자만 해당) |
지역 옵션(제어판 항목) Windows XP: 지역 및 언어 옵션 |
SetThreadPreferredUILanguages |
기본값 | Windows Vista 이상: 지역화된 버전의 언어와 대체가 뒤따릅니다. |
Windows Vista 이전: 지역화된 버전의 언어입니다. Windows Vista 이상: 지역화된 버전의 언어와 대체가 뒤따릅니다. |
Null 목록 |
Function | GetSystemPreferredUILanguages | GetUserDefaultUILanguage, GetUserPreferredUILanguages | GetThreadPreferredUILanguages |
기본 설정 UI 언어 처리 | |
---|---|
용도 | Windows 7 이상: 애플리케이션 프로세스에 대한 기본 설정 언어를 결정합니다. 자세한 내용은 사용자 인터페이스 언어 관리를 참조하세요. |
첫 번째 집합 | 기본값은 NULL입니다. |
사용자가 변경할 수 있는 방법 | 지역 및 언어 옵션(관리자만 해당) |
기본값 | Windows 7 이상: 지역화된 버전의 언어, 대체가 뒤따릅니다. |
Function | GetProcessPreferredUILanguages, SetProcessPreferredUILanguages |
코드 페이지
단일 텍스트에서 스크립트의 혼합을 지원하기 위해 256 코드 포인트 코드 페이지의 무능력은 유니코드의 상승에 대한 기본 이유 중 하나였다. 코드 페이지는 콘솔 코드를 작성하거나, 레거시 애플리케이션을 유지 관리하거나, 이전 버전의 Windows에서 실행하거나, 유니코드를 사용하지 않는 일부 비 Microsoft 소프트웨어와 상호 작용하는 데 중요합니다.
입력 언어
입력 언어는 언어(예: 그리스어) 및 입력 메서드(예: 키보드)를 설명하는 프로세스별 데이터 변수로 표시됩니다. 여러 입력 언어를 설치할 수 있으며 사용자가 입력 언어 간에 전환할 수 있습니다.
입력 언어 값을 설정하고 검색하기 위해 애플리케이션은 각각 LoadKeyboardLayout 및 GetKeyboardLayout을 호출합니다. 사용자는 제어판 지역 및 언어 옵션 부분의 언어 탭을 통해 입력 언어를 추가하고 제거할 수 있습니다.
기본 입력 언어는 운영 체제의 지역화된 언어이며 새 애플리케이션이 시작될 때 또는 일부 애플리케이션에 대해 새 창이 열릴 때 활성화되는 설정입니다. 다른 입력 언어로 전환은 애플리케이션별로 수행됩니다. 즉, 두 개의 서로 다른 입력 언어를 두 개의 다른 애플리케이션에서 사용할 수 있습니다. 예를 들어 사용자는 국제 미국 키보드 레이아웃, 음성 입력을 사용하는 영어(Microsoft가 아닌 소프트웨어 포함) 및 세 가지 다른 애플리케이션에서 IME를 사용하여 스페인어를 사용하여 독일어를 입력할 수 있습니다.
유니코드가 아닌 프로그램에 대한 언어
유니코드가 아닌 프로그램(이전의 "시스템 로캘")에 대한 언어는 기본적으로 운영 체제에서 사용되는 코드 페이지를 결정합니다. 유니코드가 아닌 프로그램 설정에 대한 언어는 비유니코드 애플리케이션, 즉 ANSI 애플리케이션에만 영향을 줍니다. 언어를 설정하면 Windows에서 이 언어로 지역화된 유니코드 기반이 아닌 운영 체제를 에뮬레이트하도록 지시합니다. 유니코드가 아닌 프로그램의 언어를 변경하면 지정된 언어로 유니코드가 아닌 애플리케이션을 지원하는 데 필요한 비트맵 글꼴 파일이 설치됩니다. 사용자가 유니코드가 아닌 프로그램의 언어를 선택할 수 있도록 하려면 적절한 언어 그룹을 설치해야 합니다. 애플리케이션이 유니코드가 아닌 프로그램의 언어를 선택하려면 스크립트 지원이 필요합니다. 유니코드가 아닌 프로그램의 언어는 시스템별 설정이며 다시 시작해야 구현됩니다.
유니코드가 아닌 프로그램의 두 언어 간에 눈에 띄는 차이가 없는 경우가 있습니다. 예를 들어 독일어(중립) 및 독일어(오스트리아) 로캘의 경우입니다. 일반적으로 한 언어 그룹의 설정은 매우 유사하며 OEM 또는 MAC 코드 페이지에서만 다릅니다.
ANSI 애플리케이션은 설치 중에 유니코드가 아닌 프로그램 설정에 대한 언어를 검사 합니다. GetACP 또는 GetOEMCP를 사용하여 값을 검색합니다. 유니코드가 아닌 프로그램의 언어를 설정하는 함수는 지원되지 않습니다. 그러나 사용자는 제어판 지역 및 언어 옵션 부분에서 고급 탭을 사용하여 변경할 수 있습니다. 다음은 유니코드가 아닌 프로그램 설정에 대한 언어의 몇 가지 예입니다.
- 일본어 Windows 95용으로 설계된 일본어 애플리케이션을 실행하려는 독일어 사용자는 유니코드가 아닌 프로그램의 언어로 일본어를 선택해야 합니다. 이 선택 후에는 유니코드가 아닌 독일어 애플리케이션에 문제가 있습니다. 예를 들어 독일어 umlauts( )가 올바르게 표시되지 않습니다.
- 유니코드가 아닌 독일어 애플리케이션에서 일본어 텍스트를 입력하려는 독일어 사용자는 유니코드가 아닌 프로그램의 언어로 일본어를 선택해야 합니다. 첫 번째 예제와 같이 유니코드가 아닌 애플리케이션에서 독일어 텍스트를 입력하는 데 문제가 발생합니다.
- 아랍어 ANSI 코드 페이지에는 대부분의 프랑스어 문자와 모든 영어 문자가 포함되어 있으므로 유니코드가 아닌 아랍어 애플리케이션에서 아랍어, 프랑스어 및 영어를 입력하려는 아랍어 사용자는 비유니코드 프로그램의 언어로 아랍어를 선택해야 합니다.
언어 그룹
언어 그룹은 유니코드가 아닌 프로그램, 표준 및 형식, 입력 언어 및 선택할 수 있는 사용자 인터페이스 언어의 언어를 제어합니다. 지역화된 각 버전에 대해 지정된 언어 그룹이 기본값이며 제거할 수 없습니다. 예를 들어 Windows는 서유럽 및 미국 언어 그룹을 기본적으로 설치합니다. 따라서 영어 버전 Windows가 영어가 아닌 국가/지역에 설치된 경우 사용자는 일반적으로 다른 언어 그룹을 설치합니다.
언어 그룹을 추가할 때 Windows는 필요한 키보드 파일, IME(입력 방법 편집기), TrueType 글꼴 파일, 비트맵 글꼴 파일 및 국가 언어 지원(.nls) 파일을 복사합니다(활성화되지 않음). 또한 언어 그룹을 추가하면 글꼴 연결에 대한 레지스트리 값이 추가되고 복잡한 스크립트 언어(아랍어, 히브리어, 인딕 및 태국어)에 대한 스크립팅 엔진이 설치됩니다.
서유럽 및 미국 언어 그룹 외에도 16개의 다른 언어 그룹이 있습니다.
아르메니아어 발트어 중앙 유럽 키릴 자모 그루지야 문자 그리스어 히브리어 |
일본어 한국어 중국어(간체) 중국어 번체 태국어 Turkic 베트남어 |
모든 운영 체제에 언어 그룹의 수와 조합을 설치할 수 있습니다. 예를 들어 스페인어 사용자는 키릴 자모 언어 그룹을 설치하여 러시아어 텍스트로 작업할 수 있습니다. 이 경우 단어 처리 애플리케이션은 키릴 자모 언어 그룹도 지원해야 합니다.
참고
적절한 언어 그룹을 추가해도 애플리케이션이 텍스트를 수락할 수 있는 것은 아닙니다. 테스트를 권장합니다. 예를 들어 유니코드가 아닌 애플리케이션은 유니코드가 아닌 프로그램을 변경하려면 언어가 필요할 수 있습니다.
위치
Windows XP: 위치는 지리적 식별자입니다. 사용자가 거주하는 국가/지역을 정의하는 사용자별 데이터 변수로 표시됩니다.
값을 설정하기 위해 애플리케이션은 SetUserGeoID를 호출합니다. 값을 검색하기 위해 애플리케이션은 GetUserGeoID를 호출합니다.
표준 및 형식
표준 및 형식(이전의 "사용자 로캘")은 날짜, 시간, 통화 및 숫자 서식 지정에 대한 기본 정렬 순서와 기본 설정을 결정하는 사용자별 변수입니다. 변수는 언어로 표시되지만(때로는 국가/지역과 함께) 언어 자체가 아닙니다. 예를 들어 Standards 및 Formats 변수를 히브리어로 설정하면 사용자가 반드시 히브리어 언어가 아니라 히브리어의 서식 지정 규칙을 사용하려고 한다는 것을 나타냅니다. 또한 Standards 및 Formats 변수는 일 및 월 이름에 사용되는 문자열을 결정합니다. 예를 들어 사용자가 "1998년 11월 25일"을 표시하는 경우 표준 및 형식 변수에 따라 "11월" 문자열이 변경됩니다. 변수를 변경하면 언어에 대한 기본 설정이 있는 입력 로캘이 자동으로 추가됩니다.
표준 및 형식 변수 설정을 가져오기 위해 애플리케이션은 GetUserDefaultLCID 또는 GetUserDefaultLocaleName을 호출합니다. 변수를 설정하는 데 사용할 수 있는 NLS 함수는 없습니다. 그러나 사용자는 제어판 지역 및 언어 옵션 부분의 지역 옵션 탭을 통해 변경할 수 있습니다.
애플리케이션은 일반적으로 표준 및 서식 변수 설정을 사용하여 데이터를 표시해야 합니다. 그러나 고정 로캘을 사용하여 데이터를 표시하는 애플리케이션은 LOCALE_USER_DEFAULT 사용하는 대신 특정 로캘 식별자를 전달해야 합니다.
스레드 로캘
스레드 로캘은 스레드에 대한 날짜, 시간, 통화 및 큰 숫자의 서식을 결정하는 스레드별 로캘 데이터 변수로 표시됩니다. 기본값은 표준 및 형식에 대해 현재 선택된 로캘의 값입니다. 스레드 로캘을 설정하기 위해 애플리케이션은 SetThreadLocale을 호출합니다. 스레드 로캘을 검색하기 위해 애플리케이션은 GetThreadLocale을 호출합니다.
대부분의 경우 스레드 로캘을 덮어쓰지 않아야 합니다. 일반적으로 서버 애플리케이션의 스레드 로캘을 클라이언트 컴퓨터의 표준 및 형식 변수와 동기화하는 데만 사용해야 합니다. 예를 들어 전 세계 은행에서 사용되는 뉴욕 증권거래소의 금융 주식 거래 애플리케이션은 시간, 날짜 및 주가를 미국 형식으로 표시해야 합니다. 이 애플리케이션은 SetThreadLocale을 사용하여 스레드 로캘을 영어(미국)로 설정한 다음 NLS 함수를 사용하여 날짜, 시간 및 주가의 형식을 지정합니다.
스레드 로캘을 변경해도 모든 API 함수에 영향을 주지는 않습니다. 따라서 항상 표준 및 형식 변수를 재정의하는 신뢰할 수 있는 방법은 아닙니다. 대신 표준 및 형식을 제어하는 애플리케이션은 고정 로캘을 사용하여 데이터를 표시하고 LOCALE_USER_DEFAULT 사용하는 대신 특정 로캘 식별자를 전달해야 합니다.
NLS 예제
다음 예제에서는 표준 및 형식 간의 상호 작용, 비유니코드 프로그램, 위치 및 사용자 UI 언어에 대한 언어를 보여 줍니다.
칠레 출신이지만 미국 거주하는 사용자에게는 Windows XP English를 실행하는 컴퓨터가 있습니다. 사용자는 ISP(인터넷 서비스 공급자)를 사용하여 미국 날씨를 가져오기 위해 위치를 미국 설정합니다. 그러나 표준 및 형식 변수는 스페인어(칠레)로 설정되므로 정보가 칠레 표준에 따라 형식이 지정됩니다. 또한 사용자는 ANSI 애플리케이션인 한국어 워드 프로세서를 사용하여 유니코드가 아닌 프로그램의 언어를 한국어(한국)로 설정합니다. 애플리케이션을 사용하기 위해 사용자는 영어 키보드를 사용하고 두 번째 입력 언어를 지원하는 한국어 IME도 설치합니다. 컴퓨터를 공유하지만 영어에 익숙하지 않은 사용자의 동료는 컴퓨터를 사용할 때 사용자 UI 언어를 스페인어(스페인)로 설정할 수 있습니다.
관련 항목