# Compaq OpenVMS
Compaq C 国際化ユーティリティ・
リファレンス・マニュアル

前へ | 次へ | 目次 | 索引

## 2.5.1 LC_MONETARY キーワード

LC_MONETARYカテゴリ・キーワードに対するオペランドはすべて，文字列または整数値として定義されます。文字列値は，二重引用符(")で囲まれます。値はすべて，定義しているキーワードと， 1つ以上の空白文字(スペースまたはタブ)で区切られます。二重引用符が2つ並んでいる場合("")は，未定義の文字列値を示します。また，マイナス1 (--1)は，未定義の整数値を示します。

表 2-4 は， LC_MONETARYカテゴリで認識される文キーワードの一覧です。

表 2-4 LC_MONETARY カテゴリ・キーワード
キーワード | 説明
--- | ---
copy | このカテゴリの定義として使用する，既存のロケール名を指定する。 copy文を指定すると，他のキーワードは指定できない。
int_curr_symbol | 国際通貨記号として使用する文字列を指定する。 このキーワードに対するオペランドは，4文字の文字列である+。先頭の3文字は，英字の国際通貨記号であり，4番目の文字は，国際通貨記号と金額値のあいだに挿入される区切り文字を定義する。
currency_symbol | ローカル通貨記号として使用する文字列を指定する。
mon_decimal_point | 金額値を書式化する上で使用される，小数点文字列を指定する。
mon_thousands_sep | 書式化された金額値の中で，小数点の左側で数字を位取りするのに使用される，文字セパレータを指定する。
mon_grouping | 書式化された金額値の中で，数値の位取りの桁数を定義する文字列を指定する。 このキーワードに対するオペランドは，セミコロンで区切られた整数の並びで構成される。各整数は，位取りの桁数を指定する。先頭の整数は，小数点のすぐ左側の桁数を定義し，以降の整数は，その左側の桁数を順次定義する。最後の整数が--1でない場合，その整数が残りのすべての数値に対して適用される。これに対して最後の整数が--1の場合，以降の位取りは行われない。 mon_grouping文の例を次に示す。値は123456789で， mon_thousands_sep のオペランドが' (単一引用符)と仮定すると，次の結果が得られる。
    mon_grouping Formatted Value

    3;-1 123456'789

    3 123'456'789

    3;2;-1 1234'56'789

    3;2 12'34'56'789
positive_sign | 書式化された負でない金額値を表すのに使用される文字列を指定する。
negative_sign | 書式化された負の金額値を表すのに使用される文字列を指定する。
int_frac_digits | int_curr_symbol値を使用して書式化された金額値で表示される，小数部の桁数(小数点以降の桁数)を表す整数値を指定する。
frac_digits | currency_symbol値を使用して書式化された金額値で表示される，小数部の桁数(小数点以降の桁数)を表す整数値を指定する。
p_cs_precedes | int_curr_symbolまたは currency_symbol 文字列が，負でない書式化された金額値の前に表示されるか，後に表示されるかを示す整数を指定する。 次のいずれかの整数値を指定する。
0 | 通貨記号が金額値の後に表示される。
1 | 通貨記号が金額値の前に表示される。
p_sep_by_space | int_curr_symbolまたは currency_symbol 文字列が，負でない書式化された金額値とスペースで区切られるかどうかを示す整数値を指定する。 次のいずれかの整数値を指定する。
0 | 通貨記号と金額値をスペースで区切らない。
1 | 通貨記号と金額値をスペースで区切る。
2 | 通貨記号と positive_sign文字列が隣接する場合，両者をスペースで区切る。
n_cs_precedes | int_curr_symbolまたは currency_symbol 文字列が，負の書式化された金額値の前に表示されるか，後に表示されるかを示す整数を指定する。 次のいずれかの整数を指定する。
0 | 通貨記号が金額値の後に表示される。
1 | 通貨記号が金額値の前に表示される。
n_sep_by_space | int_curr_symbolまたは currency_symbol 文字列が，負の書式化された金額値とスペースで区切られるかどうかを示す整数値を指定する。 次のいずれかの整数値を指定する。
0 | 通貨記号と金額値をスペースで区切らない。
1 | 通貨記号と金額値をスペースで区切る。
2 | 通貨記号と negative_sign文字列が隣接する場合，両者をスペースで区切る。
p_sign_posn | 負でない書式化された金額値における， positive_sign文字列の位置を示す整数値を指定する。 次のいずれかの整数値を指定する。
0 | 左括弧と右括弧で，金額値，および int_curr_symbolまたは currency_symbol文字列の両方を囲む。
1 | positive_sign文字列が，金額値，および int_curr_symbolまたは currency_symbol文字列の前に表示される。
2 | positive_sign文字列が，金額値，および int_curr_symbolまたは currency_symbol文字列の後に表示される。
3 | positive_sign文字列が， int_curr_symbolまたは currency_symbol 文字列の直前に表示される。
4 | positive_sign文字列が， int_curr_symbolまたは currency_symbol 文字列の直後に表示される。
n_sign_posn | 負の書式化された金額値における， negative_sign文字列の位置を示す整数値を指定する。 次のいずれかの整数値を指定する。
0 | 左括弧と右括弧で，金額値，および int_curr_symbolまたは currency_symbol文字列の両方を囲む。
1 | negative_sign文字列が，金額値，および int_curr_symbolまたは currency_symbol文字列の前に表示される。
2 | negative_sign文字列が，金額値，および int_curr_symbolまたは currency_symbol文字列の後に表示される。
3 | negative_sign文字列が， int_curr_symbolまたは currency_symbol文字列の直前に表示される。
4 | negative_sign文字列が， int_curr_symbolまたは currency_symbol文字列の直後に表示される。

+ 現在の Compaq C ランタイム・ライブラリのインプリメンテーションでは，実際には 5 文字以上の文字を指定できる。ただし，ユーザが 5 文字以上を指定するのは適当ではなく，ここに指定されたとおりに使用する。今後のバージョンの Compaq C ランタイム・ライブラリでは， 4 文字制限がインプリメントされる予定である。

## 2.5.2 各種の通貨編集形式

1つの文の値を変更することによって，独自のカスタマイズされた通貨編集形式を作成できます。 表 2-5 は， p_cs_precedes，p_sep_by_space，および p_sign_posn文に対して定義されている値のすべての組み合わせを使用した結果です。

表 2-5 各種の通貨編集形式
| p_sep_by_space = | 2 | 1 | 0
--- | --- | --- | --- | ---
p_cs_precedes = 1 | p_sign_posn = 0 | ($1.25) | ($ 1.25) | ($1.25)
| p_sign_posn = 1 | + $1.25 | +$ 1.25 | +$1.25
| p_sign_posn = 2 | $1.25 + | $ 1.25+ | $1.25+
| p_sign_posn = 3 | + $1.25 | +$ 1.25 | +$1.25
| p_sign_posn = 4 | $ +1.25 | $+ 1.25 | $+1.25
p_cs_precedes = 0 | p_sign_posn = 0 | (1.25 $) | (1.25 $) | (1.25$)
| p_sign_posn = 1 | +1.25 $ | +1.25 $ | +1.25$
| p_sign_posn = 2 | 1.25$ + | 1.25 $+ | 1.25$+
| p_sign_posn = 3 | 1.25+ $ | 1.25 +$ | 1.25+$
| p_sign_posn = 4 | 1.25$ + | 1.25 $+ | 1.25$+

ロケール定義ソース・ファイルに指定される LC_MONETARYカテゴリの例を次に示します。

    LC_MONETARY
    #
    int_curr_symbol         "<U><S><D><space>"
    currency_symbol         "<dollar-sign>"
    mon_decimal_point       "<period>"
    mon_thousands_sep       "<comma>"
    mon_grouping            3
    positive_sign           "<plus-sign>"
    negative_sign           "<hyphen>"
    int_frac_digits         2
    frac_digits             2
    p_cs_precedes           1
    p_sep_by_space          2
    n_cs_precedes           1
    n_sep_by_space          2
    p_sign_posn             3
    n_sign_posn             3
    #
    END LC_MONETARY

# 2.6 LC_NUMERIC カテゴリ

LC_NUMERICカテゴリは，通貨以外の数値情報を書式化する上での規則およびシンボルを定義します。このカテゴリはLC_NUMERICヘッダではじまり， END LC_NUMERICトレーラで終了します。

LC_NUMERICカテゴリ・キーワードに対するオペランドはすべて，文字列または整数値として定義されます。文字列値は，二重引用符(")で囲まれます。値はすべて，1つ以上の空白文字(スペースまたはタブ)により，定義しているキーワードと区切られます。二重引用符が2つ並んでいる場合("")は，未定義の文字列値を示します。また，マイナス1 (--1)は，未定義の整数値を示します。

表 2-6 は， LC_NUMERICカテゴリで認識される文キーワードの一覧です。

表 2-6 LC_NUMERIC カテゴリ・キーワード
キーワード | 説明
--- | ---
copy | このカテゴリの定義として使用する，既存のロケール名を指定する。 copy文を指定すると，他のキーワードは指定できない。
decimal_point | 金額以外の数値を書式化する上で使用される，小数点文字列を指定する。 このキーワードの指定を省略することはできない。また，未定義文字列値に設定することはできない。
thousands_sep | 書式化された金額以外の数値で，小数点の左側で数字を位取りするのに使用される，文字セパレータを指定する。
grouping | 書式化された金額以外の数値で，数値の位取りの桁数を定義する。 このキーワードに対するオペランドは，セミコロンで区切られた整数の並びで構成される。各整数は，位取りの桁数を指定する。先頭の整数は，小数点のすぐ左側の桁数を定義し，以降の整数は，その左側の桁数を順次定義する。位取りは， grouping キーワードで指定されている整数ごとに行われる。最後の整数が--1でない場合，その整数が残りのすべての数値に対して繰り返し適用される。これに対して最後の整数が--1の場合，以降の位取りは行われない。 grouping文の例を次に示す。値は123456789で， thousands_sepオペランドが' (単一引用符)と仮定すると，次の結果が得られる。
    grouping Formatted Value

    3;-1 123456'789

    3 123'456'789

    3;2;-1 1234'56'789

    3;2 12'34'56'789

ロケール定義ソース・ファイルに指定されるLC_NUMERICカテゴリの例を次に示します。

    LC_NUMERIC
    #
    decimal_point   "<period>"
    thousands_sep   "<comma>"
    grouping        <3>
    #
    END LC_NUMERIC

# 2.7 LC_TIME カテゴリ

LC_TIME カテゴリは，日付/時刻情報を書式化する上での規則および記号を定義します。このカテゴリは LC_TIME ヘッダではじまり， END LC_TIME トレーラで終了します。

LC_TIME カテゴリ・キーワードに対するオペランドはすべて，文字列または整数値として定義されます。文字列値は，二重引用符(")で囲まれます。値はすべて，1つ以上の空白文字(スペースまたはタブ)により，定義しているキーワードと区切られます。二重引用符が2つ並んでいる場合("")は，未定義の文字列値を示します。なお，LC_TIMEカテゴリを照会して，日付/時刻形式の要素を表すコマンドおよびサブルーチンは，フィールド記述子を使用します。このフィールド記述子については，後で説明します。

## 2.7.1 キーワード

表 2-7 は， LC_TIME カテゴリで認識される文キーワードの一覧です。

表 2-7 LC_TIME カテゴリ・キーワード
キーワード | 説明
--- | ---
copy | このカテゴリの定義として使用する，既存のロケール名を指定する。 copy文を指定すると，他のキーワードは指定できない。
abday | %aフィールド記述子に対応する，曜日の短縮名を定義する。 認識される値は，セミコロンで区切られた7つの文字列で構成される。最初の文字列が週の最初の曜日の短縮名(Sun)， 2 番目の文字列が週の 2 番目の曜日の短縮名，以降についても同様に対応する。
day | %Aフィールド記述子に対応する，曜日の完全名を定義する。 認識される値は，セミコロンで区切られた 7 つの文字列で構成される。最初の文字列が週の最初の曜日の完全名(Sunday)， 2 番目の文字列が週の 2 番目の曜日の完全名，以降についても同様に対応する。
abmon | %b フィールド記述子に対応する，月の短縮名を定義する。 認識される値は，セミコロンで区切られた 12 個の文字列で構成される。最初の文字列が最初の月の短縮名(Jan)，2 番目の文字列が2番目の月の短縮名，以降についても同様に対応する。
mon | %B フィールド記述子に対応する，月の完全名を定義する。 認識される値は，セミコロンで区切られた 12 個の文字列で構成される。最初の文字列が最初の月の完全名 (January) ，2 番目の文字列が2番目の月の完全名，以降についても同様に対応する。
d_t_fmt | %cフィールド記述子に対応する，標準の日付/時刻形式に使用される文字列を定義する。文字列には，文字とフィールド記述子の任意の組み合わせを指定できる。
d_fmt | %x フィールド記述子に対応する，標準の日付形式に使用される文字列を定義する。文字列には，文字とフィールド記述子の任意の組み合わせを指定できる。
t_fmt | %X フィールド記述子に対応する，標準の時刻形式に使用される文字列を定義する。文字列には，文字とフィールド記述子の任意の組み合わせを指定できる。
am_pm | %p フィールド記述子に対応する， a.m. (午前)および p.m. (午後)を表すのに使用される文字列を定義する。 認識される値は，セミコロンで区切られた 2 つの文字列で構成される。最初の文字列が a.m. 指定，2 番目の文字列が p.m. 指定に対応する。
t_fmt_ampm | am_pm 値 ( %p フィールド記述子 ) を含む，標準の 12 時間表示の時刻形式に使用される文字列を定義する。 この文は，%r フィールド記述子に対応する。文字列には，文字列とフィールド記述子の任意の組み合わせが指定できる。文字列が空の場合，12 時間形式がロケールでサポートされることはない。
era | ロケールにおける，年の数えかた，および各年号での表示のしかたを定義する。これは，%E フィールド記述子に対応する。 年号ごとに，次の形式で1つの文字列を指定する必要がある。
    direction:offset:start_date:end_date:name:format
- 年号文字列編集形式の変数は，次のように定義される。 direction --- マイナス (-) またはプラス (+) 文字を指定する。 マイナス文字 (-) は，開始日付から終了日付に向かって，負の方向で年を数えることを指定する。これに対してプラス文字(+)は，開始日付から終了日付に向かって，正の方向で年を数えることを指定する。 offset --- %Eyフィールド記述子に対応する，年号の最初の年を表す数値を指定する。 start_date --- 年号の開始日付を yyyy/mm/dd の形式で指定する。ここで yyyy，mm，dd は，グレゴリオ暦の年，月，日にそれぞれ相当する。 A.D. 1 より以前の年は，負の値で表される。たとえば，100 B.C. の 3 月 5 日からはじまる年号は，-100/03/05 で表される。 end_date --- 年号の最終日付を， start_date 変数の場合と同じ形式，あるいは -* または +* という特殊値のいずれかで指定する。 -* 値は，年号の最終日付が時の起源に向かって逆方向に進むことを表す。これに対して +* 値は，年号の最終日付が順方向に進むことを表す。従って，最終日付は，年代順で，年号の開始日付の前でも後でも構わない。たとえば，西暦 A.D. および B.C. に対する文字列は，それぞれ次のように入力する。
       +:0:0000/01/01:+*:AD:%Ey %EC

       +:1:-0001/12/31:-*:BC:%Ey %EC
name --- %EC フィールド記述子に置き換えられる，年号の名前を表す文字列を指定する。 format --- %EY フィールド記述子を書式化するときに使用する， strftime， strptime，および wcsftime 編集形式文字列を指定する。 この文字列には，任意の strftime， strptime，および wcsftime 書式制御文字 ( %EY を除く )，およびロケールに依存するマルチバイト文字を指定できる。 年号値は，年号ごとに引用符で囲まれた 1 つの文字列で構成される。複数の年号を指定する場合，各年号文字列はセミコロン (;) で区切る。
era_d_fmt | %Ex フィールド記述子に対応する，代替年号形式の日付を表すのに使用される文字列を定義する。文字列には，文字とフィールド記述子の任意の組み合わせを指定できる。
era_t_fmt | strftime， strptime，および wcsftime に対して，%EX フィールド記述子で表される，ロケールの代替時刻形式を定義する。
era_d_t_fmt | strftime， strptime，および wcsftime に対して，%Ec フィールド記述子で表される，ロケールの代替日付/時刻形式を定義する。
alt_digits | %O フィールド記述子に対応する，数値用の代替文字列を定義する。 認識される値は，セミコロンで区切られた文字列のグループで構成される。先頭の文字列が0 (ゼロ)の代替文字列，2 番目の文字列が 1 の代替文字列，以降についても同様に対応する。最大で 100 個の代替文字列を指定できる。

前へ | 次へ | 目次 | 索引