次の方法で共有


ロケール名、言語、および国/地域識別文字列

setlocale 関数、および _create_locale 関数の locale 引数は、Windows NLS API でサポートされているロケール名、言語、国/地域コード、およびコード ページを使用して設定できます。 locale 引数は次の形式になります。

locale :: "locale_name"
        | "language[_country_region[.code_page]]"
        | ".code_page"
        | "C"
        | ""
        | NULL

たとえば、英語 (米国) の en-US、またはボスニア語 (キリル、ボスニア - ヘルツェゴビナ) の bs-Cyrl-BA などロケール名形式が推奨されます。 ロケール名のセットは「ロケール名」に記述されています。 Windows オペレーティング システムのバージョンによってサポートされているロケール名の一覧については、「各国語サポートの (NLS) の API リファレンス」の Culture Name の列を参照してください。 このリソースは、ロケール名のサポートされている言語、スクリプト、および地域の部分を示しています。 既定以外の並べ替え順序を持つ、サポートされているロケール名については、「並べ替え順序の識別子」の Locale name の列を参照してください。

ロケールを作成するために、言語識別文字列、または言語識別文字列と国/地域識別文字列が使用される場合、language[_country_region[.code_page]] 形式がカテゴリのロケール設定に格納されます。 サポートされている言語識別文字列のセットは「言語識別文字列」、サポートされているすべての国/地域識別文字列のリストは「国/地域識別文字列」に記述されています。 指定された言語が、指定された国または地域と関連付けられていない場合、指定された国または地域の既定の言語は、ロケール設定に格納されます。 この形式は、コードに埋め込まれた、またはストレージに対してシリアル化されたロケール文字列にはお勧めしません。これらの文字列は、ロケール名形式よりも、オペレーティング システムの更新によって変更される可能性が高いからです。

コード ページは、ロケールに関連付けられた ANSI/OEM コード ページです。 コード ページは、言語または言語と国/地域のみによってロケールを指定すると決定されます。 特殊な値 .ACP は国/地域の ANSI コード ページを指定します。 特殊な値 .OCP は国/地域の OEM コード ページを指定します。 たとえば、ロケールとして「Greek_Greece.ACP」を指定すると、ロケールは Greek_Greece.1253 (ギリシャ語の ANSI コード ページ) として格納されます。また、ロケールとして「Greek_Greece.OCP」を指定すると、Greek_Greece.737 (ギリシャ語の OEM のコード ページ) として格納されます。 コード ページの詳細については、「コード ページ」を参照してください。 Windows でサポートされているコード ページの一覧については、「コード ページの識別子」を参照してください。

ロケールを指定するためにコード ページだけを使用する場合、システムの既定の言語と国または地域が使用されます。 たとえば、英語 (米国) に構成されたシステムのロケールとして「.1254」 (ANSI トルコ語) を指定した場合は、格納されているロケールは English_United States.1254 です。 この形式はお勧めしません。これにより一貫性のない動作が実行される可能性があるためです。

locale 値 C は、C 翻訳のための ANSI に準拠した最小環境を指定します。 C ロケールは、任意の char データ型が 1 バイトであり、値は常に 256 未満であると推定します。 locale が空の文字列をポイントしている場合は、実装定義のネイティブ環境になります。

setlocale 関数と _wsetlocale 関数に LC_ALL カテゴリを使用して、ロケールのカテゴリのすべてを同時に指定できます。 カテゴリはすべて同じロケールに設定できますが、次の形式を持つロケール引数を使用して各カテゴリを個別に設定できます。

LC_ALL_specifier :: locale
        | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]

セミコロンで区切って複数のカテゴリの種類を指定できます。 指定されていないカテゴリの種類は、現在のロケール設定を使用します。 たとえば、次のコードは、すべてのカテゴリの現在のロケールを de-DE に設定し、カテゴリ LC_MONETARY を en-GB に、カテゴリ LC_TIME を es-ES に設定します。

_wsetlocale(LC_ALL, L"de-DE");

_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");

参照

関連項目

_get_current_locale

setlocale、_wsetlocale

_create_locale、_wcreate_locale

言語識別文字列

国/地域識別文字列

その他の技術情報

C ランタイム ライブラリ リファレンス