次の方法で共有


ロケールを参照する

重要

Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。

GPD ファイルの使用

GPD ファイルは、システムのロケールを参照できます。 通常、ロケール識別子は *Switch ステートメント内で使用されます。既定の用紙サイズやリソース DLL などのパラメーターをロケール固有の方法で指定できます。

ロケール情報を参照するには、GPD ファイルに次のように、ファイル locale.gpd をインクルードする *Include ステートメントが含まれている必要があります。このファイルは Windows Driver Kit (WDK) に含まれています。

*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 関数を使用して、既定のシステム ロケールを取得します。 1 番目のパラメーター Locale に LOCALE_SYSTEM_DEFAULT を使用し、2 番目のパラメーター LCType に LOCALE_ICOUNTRY を使用します。

  2. GetLocaleInfo から取得した既定のシステム ロケールを使用して、メトリックまたは非メトリックの用紙サイズを決定します。

    • 既定のシステム ロケールが次の場合は非メトリック。

      • CTRY_UNITED_STATES、または

      • CTRY_CANADA、または

      • 50 以上 60 未満で CTRY_BRAZIL ではない、または

      • 500 以上 600 未満

    • それ以外の場合はメトリック。