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

MUI(다국어 사용자 인터페이스)를 사용하면 애플리케이션에서 두 가지 방법으로 사용자 인터페이스 언어를 관리할 수 있습니다. 애플리케이션은 기본적으로 운영 체제 언어 설정을 사용하여 언어 관리에 대한 간단한 접근 방식을 사용할 수 있습니다. 또는 애플리케이션은 사용자가 선택할 수 있는 자체 언어를 지원할 수 있습니다. 또한 MUI API를 사용하면 애플리케이션이 운영 체제에서 지원되고 리소스 로더에서 유지 관리하는 언어 및 언어 목록에 직접 액세스할 수 있습니다. 이 항목의 나머지 부분에서는 시스템 지원 언어 및 언어 대체 메커니즘을 정의합니다.

운영 체제에서 유지 관리되는 언어

시스템 기본 UI 언어/설치 언어

시스템 기본 UI 언어는 Windows를 설정하는 데 사용되는 지역화된 버전의 언어입니다. 사용자가 다른 언어를 선택하는 경우를 제외하고 모든 메뉴, 대화 상자, 오류 메시지 및 도움말 파일이 이 언어로 표시됩니다.

Windows Vista 이상에서는 시스템 기본 UI 언어를 "설치 언어"라고 하며 더 제한된 역할을 합니다. 대부분의 경우 시스템 기본 설정 UI 언어로 대체됩니다. 그러나 특정 컨텍스트에서는 항상 완전히 지원되는 것으로 알려진 단일 설치 언어를 사용하는 것이 유용합니다.

참고

그림판, 메모장, Wordpad 및 메뉴 옵션과 같은 Windows 애플리케이션은 MUI 배포 후에도 시스템 기본 UI 언어로 계속 표시됩니다.

시스템 기본 UI 언어를 설정하는 데 사용할 수 있는 MUI 함수는 없습니다. 이 언어를 검색하기 위해 애플리케이션은 GetSystemDefaultUILanguage를 호출할 수 있습니다.

시스템 UI 언어

운영 체제는 제어판 지역 및 언어 옵션 부분의 고급 탭에서 관리자가 설정할 수 있는 사용자 인터페이스 언어로 시스템 UI 언어를 정의합니다. 현재 사용자가 특정 언어 설정을 만들지 않았거나 활성 계정이 로그인되지 않은 경우 운영 체제에서 이 언어를 사용합니다. 컴퓨터에 둘 이상의 사용자 인터페이스 언어가 설치된 경우에만 언어를 변경할 수 있습니다.

참고

언어 변경의 영향을 확인하려면 모든 사용자 및 서비스에 대해 운영 체제를 다시 부팅해야 합니다.

 

시스템 UI 언어를 설정하는 데 사용할 수 있는 MUI 함수는 없습니다. 이 값을 검색하기 위해 Windows Vista 이상을 대상으로 하는 애플리케이션은 GetSystemPreferredUILanguages 를 호출하고 시스템 기본 설정 UI 언어 목록에서 첫 번째 언어를 가져올 수 있습니다. Windows Vista 이전 운영 체제를 대상으로 하는 애플리케이션은 GetSystemPreferredUILanguages 를 사용할 수 없으며 시스템 UI 언어가 항상 시스템 기본 UI 언어와 동일하다는 가정을 기반으로 해야 합니다.

사용자 UI 언어

사용자 UI 언어는 메뉴, 대화 상자, 도움말 파일 등에 사용되는 사용자 인터페이스 언어를 결정합니다. 제어판 지역 및 언어 옵션 부분의 언어 탭에서 현재 사용자가 설정할 수 있습니다. 이 언어는 컴퓨터에 둘 이상의 사용자 인터페이스 언어가 설치된 경우에만 변경할 수 있습니다. 사용자는 로그오프한 다음 다시 로그온하여 효과를 확인해야 합니다. 예를 들어 다국적 기업은 모든 자회사에 Windows를 배포하려고 합니다. 이 회사는 위치에 관계없이 모든 클라이언트에 영어 버전의 Windows를 설치하는 전역 설치 작업을 만듭니다. 동시에 컴퓨터가 구성원인 조직 구성 단위에 따라 특정 언어 모듈을 설치합니다. 사용자가 새로 설치된 운영 체제에 처음으로 로그온하면 Windows가 지역화된 버전으로 표시됩니다.

Windows Vista 이상에서 사용자 UI 언어는 사용자가 선호하는 UI 언어 목록의 첫 번째 언어입니다. 특정 리소스를 이 언어로 사용할 수 없는 경우 대체 언어를 사용할 수 있습니다.

Windows Vista 이전 운영 체제에서 사용자 UI 언어는 일반적으로 시스템 기본 UI 언어와 동일합니다. 그러나 Windows MUI의 경우 두 언어가 다를 수 있습니다.

사용자 UI 언어를 검색하기 위해 애플리케이션은 GetUserDefaultUILanguage 또는 GetUserPreferredUILanguages를 호출할 수 있습니다. 애플리케이션을 설정할 함수가 없으므로 사용자 UI 언어를 변경할 수 없습니다.

운영 체제에서 유지 관리하는 언어 목록

시스템 기본 설정 UI 언어 목록

리소스 로더는 시스템 기본 설정 UI 언어 목록을 유지 관리합니다. 이 목록에는 메뉴 및 대화 상자, 메시지, INF 파일 및 도움말 파일과 같은 자체 리소스에 대해 운영 체제에서 선호하는 언어가 포함되어 있습니다. 목록은 시스템 기본 UI 언어와 시스템 UI 언어 및 대체 언어로 구성됩니다. 애플리케이션은 GetSystemPreferredUILanguages를 호출하여 시스템 기본 설정 UI 언어를 검색할 수 있습니다.

사용자가 선호하는 UI 언어 목록

리소스 로더는 사용자가 선호하는 언어를 포함하는 사용자가 선호하는 UI 언어 목록을 사용합니다. 리소스 로더는 이 목록의 언어와 일치하는 리소스(사용 가능한 경우)를 특정 애플리케이션 스레드에 사용합니다. 이러한 언어는 시스템 기본 설정보다 우선합니다. 사용자가 선호하는 UI 언어를 검색하기 위해 애플리케이션 에서 GetUserPreferredUILanguages를 호출할 수 있습니다.

프로세스 기본 설정 UI 언어 목록

Windows Vista 이상에서 리소스 로더는 MUI 애플리케이션에 대해 실행 중인 프로세스에서 설정한 최대 5개의 유효한 언어로 구성된 프로세스 기본 설정 UI 언어 목록을 유지 관리합니다. SetProcessPreferredUILanguages를 호출하여 애플리케이션에서 언어를 설정할 수 있습니다. 애플리케이션은 GetProcessPreferredUILanguages를 호출하여 언어를 검색할 수 있습니다.

스레드 기본 설정 UI 언어 목록

Windows Vista 이상에서 리소스 로더는 MUI 애플리케이션에 대한 실행 중인 프로세스에서 스레드가 설정한 최대 5개의 유효한 언어로 구성된 스레드 기본 설정 UI 언어 목록을 사용합니다. 이러한 언어는 애플리케이션 사용자 인터페이스 언어를 사용자 지정하고 운영 체제 언어와 다르게 만드는 데 사용됩니다. 스레드 기본 설정 UI 언어 목록은 사용자가 선호하는 UI 언어, 시스템 기본 설정 UI 언어 및 시스템 기본 UI 언어를 기반으로 합니다.

스레드 기본 설정 UI 언어를 설정하려면 애플리케이션에서 SetThreadPreferredUILanguages를 호출해야 합니다. 이러한 언어를 검색하기 위해 애플리케이션은 GetThreadPreferredUILanguages를 호출합니다.

중립 언어 표현

중립 언어는 지역 또는 로캘 없이 언어만으로 표시됩니다. 예를 들어 영어(캐나다) 언어 en-CA의 중립 표현은 "en"으로 표시됩니다. 중립 언어가 지역 또는 로캘의 측면과 연결되지 않더라도 리소스 집합과 연결할 수 있습니다. 일반적으로 중립 언어 리소스는 언어에 가장 널리 사용되는 지역에서의 사용을 기반으로 합니다.

예를 들어 MUI 애플리케이션이 de-DE로 표현되는 독일어(스위스)와 de-AT로 표현되는 독일어(오스트리아)에 대한 독일어 리소스를 지역화하고 de-DE로 표현되는 독일어(독일)에 대한 전체 리소스 집합을 빌드한다고 가정합니다. 전체 리소스 파일을 고려하여 이 애플리케이션에 대한 결정을 내려야 합니다. 애플리케이션이 de-DE 리소스를 중립 언어 리소스로 복제하는 경우 리소스 로더에 대한 대체 언어를 제공해야 합니다. 로더가 de-CH 또는 de-AT에 대한 특정 언어별 리소스 파일을 찾지 못하면 언어 중립적인 "de" 리소스로 돌아갑니다. 이러한 리소스는 다른 유일한 대체 항목인 영어(미국)와 같이 완전히 다른 언어에 대한 리소스보다 더 적합할 가능성이 큽니다.

또 다른 예로, 애플리케이션은 Belize에 대해 전혀 지역화되지 않을 수 있습니다. 그러나 en-BZ로 표현되는 영어(Belize)의 언어 기본 설정을 지원하면 애플리케이션이 "en" 리소스로 대체될 수 있습니다.

리소스 로더의 언어 대체

Windows Vista 이상에서는 리소스 로더에서 사용하는 미리 정렬된 대체 언어 목록에서 사용자 인터페이스 언어 설정을 정렬합니다. 목록을 구성하기 위해 운영 체제는 다음과 같은 순서로 여러 언어를 결합합니다.

  • 스레드 사용자 인터페이스 언어 및 중립 형식으로 구성된 스레드 기본 설정 UI 언어입니다. 예를 들어 프랑스어(프랑스)의 경우 fr-FR, 스페인어(스페인)의 경우 중립 형식 "fr" 및 es-ES 및 중립 형식 "es"가 있습니다.

  • 프로세스 사용자 인터페이스 언어 및 중립 형식으로 구성된 프로세스 기본 설정 UI 언어입니다. 예를 들어 독일어(독일)의 de-DE와 중립 형식 "de"가 있습니다.

  • 사용자 UI 언어 및 중립 형식입니다. 예를 들어 일본어(일본)의 경우 ja-JP와 중립 형식인 "ja"가 있습니다.

  • 시스템 UI 언어 및 중립 형식입니다. 예를 들어 이탈리아어(이탈리아)의 it-IT와 중립 형태인 "it"이 있습니다.

    참고

    이 언어는 사용자 UI 언어가 설정되지 않은 경우에만 대체 목록에 포함됩니다.

     

  • 시스템 기본 UI 언어 및 중립 형식입니다. 예를 들어 스페인어(스페인)의 경우 es-ES와 중립 형식 "es"가 있습니다.

다음은 병합된 대체 목록을 보여줍니다. es-ES 및 es와 같은 언어의 중복은 제거됩니다. 이 예제에서는 사용자 UI 언어를 ja-JP로 설정하므로 시스템 UI 언어가 병합된 대체 목록에 표시되지 않습니다.

fr-FR, fr, es-ES, es, de-DE, de, ja-JP, ja

MUI 애플리케이션에 대한 리소스를 로드할 때 리소스 로더는 현재 실행 중인 애플리케이션 스레드에 대한 스레드 기본 설정 UI 언어 목록과 일치하는 파일 중 하나를 선택하려고 합니다. 리소스 로더가 병합된 대체 목록에서 선택한 언어와 첫 번째 언어별 리소스 간의 직접 일치 항목을 찾을 수 없는 경우 허용되는 대체를 찾을 때까지 목록에서 후속 언어를 확인합니다.

리소스 로더가 필요한 파일을 찾지 못하면 "보장된 양호한" 대체 언어를 사용해야 합니다. MUI 리소스 기술의 경우 리소스 로더는 제공된 리소스 구성 데이터에서 대체 언어를 결정합니다. 자세한 내용은 MUI 리소스 관리를 참조하세요.

다국어 사용자 인터페이스 정보

로캘 및 언어

NLS 용어