先の節で説明した文化や言語の依存関係は、オペレーティングシステムレベルで実現する必要があります。一般には、これをロケールという言語テーブルで実現します。
X/Open コンソーシアムでは、プログラミング言語 C から使用する Native Language Support (NLS) のさまざまなサービスを 規格化しています。この規格を一般には XPG4 と呼びます。国際化サービスは、地域対応サービスと共に X/Open の Native Language Support に組み込まれています。以下の節では、この規格に基づいて説明します。
XPG4 によれば、C 言語でのロケールは、表 2に示すカテゴリから構成されています。
カテゴリ | 内容 |
---|---|
LC_NUMERIC |
数字の規則と記号 |
LC_TIME |
日付と時間情報の値 |
LC_MONETARY |
通貨情報の規則と記号 |
LC_CTYPE |
文字分類と大文字、小文字の変換 |
LC_COLLATE |
照合順序 |
LC_MESSAGES |
メッセージの書式と値 |
UNIX では通常、C 言語でのロケールの外部表現をファイルとして扱います。実装方法はオペレーティングシステムによって異なります。以下の図 4に示すように、setlocale() という関数を呼び出すと、外部実装は内部のメモリの実装に変換されます。
プログラム内では、C 言語でのロケールは 1 つ以上の大域データ構造で表します。C ライブラリは、この大域データ構造の情報を利用して、ローカルな取り決めに基づいて動作する関数セットを提供します。関数と対応する情報の例を表 3に示します。
C 言語でのロケール関数 | 対応する情報 |
---|---|
setlocale(), ... |
ロケールの初期設定と言語情報 |
isalpha(), isupper(), isdigit(), ... |
文字分類 |
strftime(), ... |
日付関数と時間関数 |
strfmon() |
通貨関数 |
printf(), scanf(), ... |
数字の構文解析と書式 |
strcoll(), wcscoll(), ... |
文字列の照合 |
mblen(), mbtowc(), wctomb(), ... |
複数バイト関数 |
catopen(), catgets(), catclose() |
メッセージ検索 |
Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月