locale.h ヘッダー・ファイルは、localdtconv() および localeconv() ライブラリー関数 (現行ロケールから値を検索する) の宣言、および setlocale() 関数 (国際化アプリケーションのロケール設定値を照会または変更するために使用される) の宣言を含んでいます。
locale.h ファイルは lconv 構造体を宣言します。次の表 1 は、lconv 構造体のエレメントと、C ロケールのデフォルトを 示しています。
エレメント | エレメントの目的 | デフォルト |
---|---|---|
char *decimal_point | 非通貨数量をフォーマット設定するのに使用される小数点文字。 | "." |
char *thousands_sep | フォーマット済みの非通貨数量で小数点文字の左側の 桁グループを分離するのに使用される文字。 | "" |
char *grouping | フォーマット済みの非通貨数量で それぞれの桁グループのサイズを示すストリング。ストリングの各文字の値は、グループの桁数を決定します。 CHAR_MAX の値は、これ以上グループがないことを示します。0 は、直前のエレメントが残りの桁のために使用されることを 示します。 | "" |
char *int_curr_symbol | 現行ロケール用の国際通貨記号。先頭の 3 文字には、英字の国際通貨記号が含まれています。4 番目の文字 (通常はスペース) は、通貨数量から 国際通貨記号を分離するのに使用される文字です。 | "" |
char *currency_symbol | 現行ロケールのローカル通貨記号。 | "" |
char *mon_decimal_point | 通貨数量のフォーマット設定に使用される小数点文字。 | "." |
char *mon_thousands_sep | フォーマット済みの通貨数量における数字の区切り文字。 | "" |
char *mon_grouping | フォーマット済みの通貨数量で それぞれの桁グループのサイズを示すストリング。ストリングの各文字の値は、グループの桁数を決定します。 CHAR_MAX の値は、これ以上グループがないことを示します。0 は、直前のエレメントが残りの桁のために使用されることを 示します。 | "" |
char *positive_sign | 通貨数量で使用される正符号を示すストリング。 | "" |
char *negative_sign | 通貨数量で使用される負符号を示すストリング。 | "" |
char int_frac_digits | 国際的にフォーマット済みの通貨数量に対して、その小数部の右側に表示される桁の数。 | UCHAR_MAX |
char frac_digits | 通貨数量における小数部の右側の桁の数。 | UCHAR_MAX |
char p_cs_precedes | 負でないフォーマット済み通貨数量の中で、通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char p_sep_by_space | 負でないフォーマット済み通貨数量の中で、空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char n_cs_precedes | 負のフォーマット済み通貨数量の中で、通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char n_sep_by_space | 負のフォーマット済み通貨数量の中で、空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char p_sign_posn | 負でないフォーマット済み通貨数量 の positive_sign の位置を示す値。有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char n_sign_posn | 負のフォーマット済み通貨数量の negative_sign の位置を示す値。有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char *left_parenthesis | 負の値の通貨記号。 注: このエレメントは、IBM 固有の拡張機能です。
|
"" |
char *right_parenthesis | 負の値の通貨記号。 注: このエレメントは、IBM 固有の拡張機能です。
|
"" |
char *debit_sign | Debit_sign 文字ストリング。 注: このエレメントは、IBM 固有の拡張機能です。
|
"" |
char *credit_sign | Credit_sign 文字ストリング。 注: このエレメントは、IBM 固有の拡張機能です。
|
"" |
char int_p_cs_precedes | 国際フォーマット設定の場合に、負でない通貨数量の中で通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char int_n_cs_precedes | 国際フォーマット設定の場合に、負の通貨数量の中で通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char int_p_sep_by_space | 国際フォーマット設定の場合に、負でない通貨数量の中で空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char int_n_sep_by_space | 国際フォーマット設定の場合に、負の通貨数量の中で空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char int_p_sign_posn | 国際フォーマット設定の場合に、負でない通貨数量に対する正符号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
char int_n_sign_posn | 国際フォーマット設定の場合に、負の通貨数量に対する負符号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 | UCHAR_MAX |
有効な値のリストについては、表 2 を参照してください。
エレメント | 値 | |
---|---|---|
cs_precedes | 0 | currency_symbol は、フォーマット済み通貨数量の値の後に付けられます。 |
1 | currency_symbol は、フォーマット済み通貨数量の値の前に付けられます。 | |
sep_by_space | 0 | currency_symbol とフォーマット済み通貨数量はスペースによって分離されません。 |
1 | currency_symbol と符号ストリングが隣接している場合は、これらの記号と値がスペースによって分離されます。それ以外の場合は、通貨記号と値がスペースによって分離されます。 |
|
2 | currency_symbol と符号ストリングが隣接している場合は、これらの記号が互いにスペースによって分離されます。それ以外の場合は、符号ストリングと値がスペースによって分離されます。 |
|
sign_posn | 0 | 数量と currency_symbol は括弧で囲まれます。 |
1 | 数量と currency_symbol の前に符号ストリングが付きます。 |
|
2 | 数量と currency_symbol の後に符号ストリングが付きます。 |
|
3 | currency_symbol の直前に符号ストリングが付きます。 |
|
4 | currency_symbol の直後に符号ストリングが付きます。 |
|
5 | debit_sign または credit_sign を、それぞれ negative_sign または positive_sign の代わりに使用します。
注: この値は、IBM 固有の拡張機能です。
|
struct dtconv {
char *abbrev_month_names[12]; /* Abbreviated month names */
char *month_names[12]; /* full month names */
char *abbrev_day_names[7]; /* Abbreviated day names */
char *day_names[7]; /* full day names */
char *date_time_format; /* date and time format */
char *date_format; /* date format */
char *time_format; /* time format */
char *am_string; /* AM string */
char *pm_string; /* PM string */
char *time_format_ampm; /* long date format */
char *iso_std8601_2000; /* ISO 8601:2000 std date format*/
};
locale.h ファイルは、setlocale() 関数とともに使用する次のマクロ定義も含んでいます。
LC_ALL | LC_COLLATE | LC_CTYPE | LC_MONETARY |
LC_NUMERIC | LC_TIME | LC_TOD | NULL |
LC_MESSAGES | LC_SYNTAX |
各国語または文化的特性 (時間帯、通貨記号、文字の ソート順など) に関連するプログラムの局面は、それぞれの ロケールにおけるユーザーの要件に合わせるため、別々のロケールを使って実行時にカスタマイズすることが できます。「z/OS XL C/C++ プログラミング・ガイド」の国際化に関するトピックを参照してください。