다음을 통해 공유


로캘 참조

Important

최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.

자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.

GPD 파일 사용

GPD 파일은 시스템의 로캘을 참조할 수 있습니다. 일반적으로 로캘 식별자는 기본 용지 크기 및 리소스 DLL과 같은 매개 변수를 로캘별 방식으로 지정할 수 있는 *Switch 문 내에서 사용됩니다.

로캘 정보를 참조하려면 GPD 파일에 다음과 같이 WDK(Windows 드라이버 키트)에 포함된 locale.gpd 파일을 포함하는 *Include 문이 포함되어야 합니다.

*Include: locale.gpd

이 GPD 파일은 "Locale"라는 기능을 정의하고 많은 로캘에 대한 옵션을 정의합니다. (정의된 로캘을 보려면 파일을 참조하세요.) 다음은 이러한 로캘 옵션을 사용하는 예제입니다. 이 예제에서는 로캘의 기본 용지 크기를 기반으로 합니다.

*Feature: PaperSize
{
...
    Option: A4
    {
    }
    ...
*switch: Locale
{
    *case: English_United_States
    {
        *DefaultOption: Letter
    }
    *case: English_United_Kingdom
    {
        *DefaultOption: A4
    }
    *default:
    {
        *DefaultOption: Letter
    }
} *% End of switch
} *% End of Feature: PaperSize

런타임에 Unidrv는 GetSystemDefaultLCID를 호출하여 시스템의 기본 로캘을 결정합니다. 프린터가 설치되면 GPD 파서는 프린터의 GPD 파일을 읽고 기본 로캘과 연결된 *Case 문 내의 정보를 사용합니다. 프린터를 설치한 후 시스템 로캘이 변경되면 로캘 기반 옵션이 변경되지 않습니다.

로캘에 따라 리소스 DLL을 선택하는 또 다른 예는 다음과 같습니다. 리소스 DLL에는 표시 문자열과 같은 로캘별 리소스가 포함될 수 있습니다.

*switch: Locale
{
    *case: English_United_States
    {
        *ResourceDLL: english.dll
    }
    *case: German_Standard
    {
        *ResourceDLL: german.dll
    }
    *default:
    {
        *ResourceDLL: english.dll
    }
}

로캘별로 기본 용지 크기 설정

사용자의 지리적 위치에 따라 드라이버에서 메트릭 또는 비메트릭의 기본 용지 크기를 할당하도록 할 수 있습니다.

다음 알고리즘은 기본 시스템 로캘을 검색한 다음 국가/지역 코드를 사용하여 시스템 로캘이 일반적으로 메트릭 또는 비메트릭 용지 크기를 사용하는 국가를 나타내는지 여부를 결정합니다. 이 정보를 통해 드라이버는 메트릭 시스템을 사용하는 국가의 경우 A4, 그렇지 않은 국가의 문자 크기 등 기본 용지 크기를 적절하게 설정할 수 있습니다.

  1. GetLocaleInfo 함수를 사용하여 기본 시스템 로캘을 검색합니다. 두 번째 매개 변수인 LCType에 첫 번째 매개 변수, 로캘 및 LOCALE_ICOUNTRY LOCALE_SYSTEM_DEFAULT 사용합니다.

  2. GetLocaleInfo에서 가져온 기본 시스템 로캘을 사용하여 메트릭 또는 비메트릭 용지 크기를 확인합니다.

    • 기본 시스템 로캘이 다음과 같은 경우 비메트릭입니다.

      • CTRY_UNITED_STATES 또는

      • CTRY_CANADA 또는

      • 50보다 크거나 같지만 60보다 작고 CTRY_BRAZIL 또는

      • 500보다 크거나 같지만 600보다 작음

    • 그렇지 않으면 메트릭입니다.