Поделиться через


Ссылки на языковые стандарты

Важно!

Мы рекомендуем использовать драйвер microsoft IPP класса "Входящие" вместе с приложениями поддержки печати (PSA) для настройки печати в Windows 10 и 11 для разработки принтеров.

Дополнительные сведения см. в руководстве по проектированию приложений поддержки печати.

Использование файлов GPD

Файлы GPD могут ссылаться на языковой стандарт системы. Как правило, идентификаторы языкового стандарта используются в инструкциях *Switch, где такие параметры, как размеры бумаги по умолчанию и библиотеки DLL ресурсов, можно указать определенным языковым стандартом.

Чтобы сослаться на сведения о языковом стандарте, файл GPD должен содержать инструкцию *Include, включающую файл locale.gpd, который входит в состав пакета драйверов Windows (WDK), как показано ниже.

*Include: locale.gpd

Этот файл GPD определяет функцию с именем "Языковой стандарт" и параметры для многих языковых стандартов. (Чтобы узнать, какие языковые стандарты определены, обратитесь к файлу.) Ниже приведен пример использования этих параметров языкового стандарта. В этом примере размер бумаги по умолчанию зависит от языкового стандарта.

*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 , чтобы получить системный языковой стандарт по умолчанию. Используйте LOCALE_SYSTEM_DEFAULT для первого параметра Locale и LOCALE_ICOUNTRY для второго параметра LCType.

  2. Используйте системный языковой стандарт по умолчанию, полученный из GetLocaleInfo , для определения размера метрики или неметрики бумаги.

    • Если системный языковой стандарт по умолчанию не является метрикой:

      • CTRY_UNITED_STATES или

      • CTRY_CANADA или

      • Больше или равно 50, но меньше 60 и не CTRY_BRAZIL, или

      • Больше или равно 500, но меньше 600

    • Метрика в противном случае.