locale
1. locale.5.man
Manpage of LOCALE
LOCALE
Section: Linux User Manual (5)Updated: 2008-06-17
Index Return to Main Contents
名前
locale - ロケール定義ファイル説明
ロケール (locale) 定義ファイルは localedef(1) コマンドがバイナリのロケール・データベースに変換するのに 必要な全ての情報を含んでいる。定義ファイルは、いくつかのセクションから構成されており、各セクション にはロケールのカテゴリが詳細に記述される。
文法
ロケール定義ファイルは以下のキーワードから構成されるヘッダーで始まる:- <escape_char>
- ファイルの残りの部分でエスケープ・キャラクターとして使用する文字を 指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。 デフォルトはバックスラッシュ (\) である。
- <comment_char>
- ファイルの残りの部分でコメント・キャラクターとして使用する文字 を指定する。デフォルトではシャープ (#) である。
ロケールの定義はロケールのカテゴリ毎の定義を行う部分から構成される。 各部分は、定義済みの他のロケールのコピーを元に定義することもできるし、 最初から定義することもできる。カテゴリをコピーする場合、定義の中に copy というキーワードに続けてコピーするロケールの名前を書く。
LC_CTYPE
LC_CTYPE カテゴリの定義は最初のカラムに LC_CTYPE という文字列を置くことで始める。ここでは以下のキーワードが使用できる:
- upper
- 大文字 (uppercase letter) のリストを指定する。 A から Z までの文字は自動的に含まれる。 cntrl, digit, punct, space に指定された文字を指定することはできない。
- lower
- 小文字 (lowercase letter) のリストを指定する。 a から z までの文字は自動的に含まれる。 cntrl, digit, punct, space に指定された文字を指定することはできない。
- alpha
- アルファベットの文字を指定する。 upper と lower を指定した全ての文字は自動的に含まれる。 cntrl, digit, punct, space に指定された文字を指定することはできない。
- digit
- 数字として使用される文字を指定する。数字としては 0 から 9 のみが使用できる。これらはデフォルトで含まれている。
- space
- 空白として使用する文字のリストを指定する。 upper, lower, alpha, digit, graph, xdigit に指定された文字を指定することはできない。 <space>, <form-feed>, <newline>, <carriage-return>, <tab>, <vertical-tab> は自動的に含まれる。
- cntrl
- コントロール・キャラクターのリストを指定する。 upper, lower, alpha, digit, punct, graph, print, xdigit に指定された文字を指定することはできない。
- punct
- 句読点文字のリストを指定する。 upper, lower, alpha, digit, cntrl, xdigit, <space> に指定された文字を指定することはできない。
- graph
- 表示可能文字のリストを指定するが、 <space> 文字は含まない。 upper, lower, alpha, digit, xdigit, punct を指定した文字は自動的に含まれる。 cntrl に指定された文字を指定することはできない。
- <space> 文字を含めた表示可能文字のリストを指定する。 upper, lower, alpha, digit, xdigit, punct, <space> に指定した文字は自動的に含まれる。 cntrl に指定された文字を指定することはできない。
- xdigit
- 16 進数として使用する文字のリストを指定する。10 進の数字に加えて、 6 文字を昇順で続ける。デフォルトでは以下の文字が含まれている: 0 から 9、 a から f、 A から F。
- blank
- 無地 (blank) に分類される文字のリストを指定する。 <space> と <tab> は自動的に含まれる。
- toupper
- 小文字から大文字への対応リストを指定する。各対応は小文字と大文字のペアを , で区切って括弧で括って指定する。 リストの各メンバーはセミコロンで区切る。
- tolower
- 大文字から小文字への対応リストを指定する。tolower という キーワードが無い場合には toupper を逆にしたものが使用される。
LC_CTYPE の定義は END LC_CYTPE という文字列で終了する。
LC_COLLATE
LC_COLLATE カテゴリは整列順序を定義している。libc による制限のため POSIX オプションの全てが実装されているわけではない。このカテゴリの定義は最初のカラムに LC_COLLATE を置くことで始める。
ここでは以下のキーワードが使用できる:
- collating-element
- collating-symbol
順序の定義は以下の行で始める:
- order_start
これに forward, backward, position のいずれかのキーワードが続く。 順序を記述する行が続き、以下のキーワードで終る:
- order_end
より詳しくは /usr/lib/nls/src にあるソース・ファイルを参照のこと。特に POSIX の例、 Example と Example2 を見るとよい。
LC_COLLATE 定義は END LC_COLLATE という文字列で終了する。
LC_MONETARY
LC_MONETARY の定義は最初のカラムに LC_MONETARY を置くことで始める。ここでは以下のキーワードを使うことができる:
- int_curr_symbol
- 国際通貨記号を指定する。これは ISO 4217 規格に定義された国際通貨 記号 (3 文字) に区切り文字を続けた 4 文字である必要がある。
- currency_symbol
- 地域的な通貨記号を指定する。
- mon_decimal_point
- 金額をフォーマットする際の小数点に使用する文字列を指定する。
- mon_thousands_sep
- 金額をフォーマットする際に桁の区切りに使用する文字列を指定する。
- mon_grouping
- 数字をフォーマットをする際に何桁ごとに区切るかを指定する。
- positive_sign
- 数値において正の符号に使用する文字列を指定する。
- negative_sign
- 数値において負の符号に使用する文字列を指定する。
- int_frac_digits
- int_curr_symbol でフォーマットする時に使用すべき端数の桁数を指定する。
- frac_digits
- currency_symbol でフォーマットする際に使用すべき端数の桁数を指定する。
- p_cs_precedes
- currency_symbol または int_curr_symbol をフォーマットした金額の前に付ける場合には 1 を、後ろに付ける場合には 0 を指定する。
- p_sep_by_space
-
以下の整数のいずれかを指定する。
-
- 0
- 記号と数値の間に空白を入れない。
- 1
- 記号と数値の間に空白を入れる。
- 2
- 記号と数値が隣接していれば間に空白を入れる。
-
- n_cs_precedes
-
-
- 0
- - 記号は数値の後におく。
- 1
- - 記号は数値の前におく。
-
- n_sep_by_space
-
以下の整数のいずれかを指定する。
-
- 0
- currency_symbol または int_curr_symbol と負の金額との間に空白を入れない。
- 1
- 負の数値と記号の間に空白を入れる。
- 2
- 隣接していた場合にのみ空白を入れる。
-
- p_sign_posn
-
-
- 0
- 値と currency_symbol または int_curr_symbol を括弧で括る。
- 1
- 符号を値と currency_symbol または int_curr_symbol の前に置く。
- 2
- 符号を値と currency_symbol または int_curr_symbol の後に置く。
- 3
- 符号を currency_symbol または int_curr_symbol の前に置く。
- 4
- 符号を currency_symbol または int_curr_symbol の後に置く。
-
- n_sign_posn
-
-
- 0
- 値と currency_symbol または int_curr_symbol を括弧で括る。
- 1
- 符号を値と currency_symbol または int_curr_symbol の前に置く。
- 2
- 符号を値と currency_symbol または int_curr_symbol の後に置く。
- 3
- 符号を currency_symbol または int_curr_symbol の前に置く。
- 4
- 符号を currency_symbol または int_curr_symbol の後に置く。
-
LC_MONETARY の定義は END LC_MONETARY という文字列で終了する。
LC_NUMERIC
このカテゴリの定義は最初のカラムに LC_NUMERIC という文字列を置くことで始める。ここでは以下のキーワードを使用できる:
- decimal_point
- 数値をフォーマットする際に小数点に使用する文字列を指定する。
- thousands_sep
- 数値をフォーマットする際に桁の区切りに使用する文字列を指定する。
- grouping
- 数値をフォーマットする際に何桁ごとに区切るかを文字列で指定する。
The LC_NUMERIC の定義は END LC_NUMERIC という文字列で終了する。
LC_TIME
このカテゴリの定義は最初のカラムに LC_TIME という文字列を置くことで始める。ここでは以下のキーワードが使用できる:
- abday
- 曜日の名前の省略形のリストを指定する。 リストは week で指定された週の開始曜日 (デフォルトでは日曜日) から始める。
- day
- 曜日の名前のリストを指定する。 リストは week で指定された週の開始曜日 (デフォルトでは日曜日) から始める。
- abmon
- 月の名前の省略形のリストを指定する。
- mon
- 月の名前のリストを指定する。
- am_pm
- それぞれ 午前 (am) と 午後 (pm) に対応する文字列を指定する。
- d_t_fmt
- 適切な日付け (date) と時刻 (time) のフォーマットを指定する。
- d_fmt
- 適切な日付け (date) のフォーマットを指定する。
- t_fmt
- 適切な時刻 (time) のフォーマットを指定する。
- t_fmt_ampm
- 12 時間方式を使用した時刻のフォーマットを指定する。
- week
- 3 つの値からなるリストを指定する。 リストは、一週間の日数 (デフォルトでは 7)、 週の開始曜日 (デフォルトでは日曜に対応)、 一年の最初の週の最小の長さ (デフォルトでは 4) から構成される。 週の開始曜日については、週の開始日が日曜日の場合には 19971130 を、月曜日の場合には 19971201 を使用する。したがって、 day リストの最初の日として、 19971130 を使う国ではその地域の日曜日の名前を、 19971201 を使う国ではその地域の月曜日の名前を設定すべきである。
- first_weekday (glibc 2.2 以降)
- カレンダーアプリケーションで最初に表示する曜日の day リストにおける番号。 デフォルト値の 1 は日曜日か月曜日に対応する。 どちらに対応するかは week リストの二番目の項目の値で決まる。
- first_workday (glibc 2.2 以降)
- 最初の就業日を示す day リストにおける曜日の番号。
LC_TIME の定義は END LC_TIME という文字列で終了する。
LC_MESSAGES
このカテゴリの定義は最初のカラムに LC_MESSAGES という文字列を置くことで始める。ここでは以下のキーワードが使用できる:
- yesexpr
- 「はい (yes)」を意味する正規表現を指定する。
- noexpr
- 「いいえ (no)」を意味する正規表現を指定する。
LC_MESSAGES の定義は END LC_MESSAGES という文字列で終了する。
ファイル
/usr/lib/locale/ --- 現在のロケール設定のデータベース/usr/lib/nls/charmap/* --- 文字定義ファイル
準拠
POSIX.2, ISO/IEC 14652.バグ
このマニュアルは完全ではない。関連項目
locale(1), localedef(1) localeconv(3), setlocale(3), charmap(5),
Index
This document was created by man2html using the manual pages.
Time: 17:13:48 GMT, January 19, 2012
2. locale.7.man
Manpage of LOCALE
LOCALE
Section: Linux Programmer's Manual (7)Updated: 2008-12-05
Index Return to Main Contents
名前
locale - 多言語サポートの解説書式
#include <locale.h>
説明
ロケール (locale) は言語や文化ルールの集合である。 これらは、メッセージ出力に使用する言語・いろいろな文字集合・ 表記に関する慣習といったような面をカバーしている。 プログラムをいろいろな文化に移植可能とするには、 そのプログラムは自分のロケールを決めて、 それに応じた適切な動作ができなければならない。ヘッダーファイル <locale.h> には、この目的に便利なデータ型・関数・マクロなどの宣言がある。
このヘッダーファイルで宣言されている関数には、 現在のロケールを設定する setlocale(3) と、数値のフォーマット方法についての情報を取得する localeconv(3) がある。
プログラムの必要に応じて、ローカル情報はいろいろなカテゴリに分かれており、 それらはマクロとして宣言されている。 これらのマクロを setlocale(3) 関数の最初の引き数に用いると、 これらのどれかを望むロケールに設定できる。
- LC_COLLATE
- これは地域的なアルファベット文字列の比較に使用する strcoll(3) 関数と strxfrm(3) 関数の動作を変更する。例えばドイツ語のエスツェット (鋭い s) は、ソートの際 "ss" として扱われる。
- LC_CTYPE
- これは isupper(3) や toupper(3) のような文字の判定・操作をする関数や、多バイト文字を扱う mblen(3) や wctomb(3) のような関数の動作を変更する。
- LC_MONETARY
- localeconv(3) によって返される情報を変更する。 これには小数点や区切りコンマの位置など、 数字の表示方法に関する詳細が含まれている。この情報は strfmon(3) 関数が内部で使用する。
- LC_MESSAGES
- メッセージ表示に使用する言語を変更する。 また肯定的・否定的な回答をどのように表示するかを変更する。 これらの情報を簡単に使用するために、 GNU C ライブラリには gettext(3), ngettext(3), rpmatch(3) 関数が含まれている。 GNU gettext ファミリーに属する関数は、カテゴリが C 以外の有効なロケールに設定されている場合、環境変数 LANGUAGE にも従う (LANGUAGE はコロン区切りのロケールのリストである)。
- LC_NUMERIC
- printf(3) 関数および scanf(3) 関数のファミリーでロケール設定を使うよう指示された場合に 用いる情報を変更する。この情報は localeconv(3) 関数で取得することもできる。
- LC_TIME
- strftime(3) 関数の動作を変更し、 地域で利用されている方法で現在時刻を表示する。 例えば、ヨーロッパの多くでは 24時間式の時計を使うが、 アメリカでは 12時間式の時計を使う。
- LC_ALL
- 上記の全て。
setlocale(3) の二番目の引き数が空文字列 "" の場合、 デフォルトのロケールは以下の手順で決定する:
- 1.
- 環境変数 LC_ALL が設定されている場合には LC_ALL の値が使用される。
- 2.
- 上記のカテゴリのどれかと同じ名前の環境変数が設定されている場合には、 そのカテゴリにはその値が使用される。
- 3.
- 環境変数 LANG が設定されている場合には LANG の値が使用される。
地域的な数値フォーマットの情報は localeconv(3) 関数によって返される struct lconv で得ることができ、これは以下のように宣言されている:
struct lconv {
/* (通貨以外の) 数値情報 */
char *decimal_point; /* 小数点の文字 */
char *thousands_sep; /* 小数点の左側の数字のグループの
区切り文字 */
char *grouping; /* それぞれの要素は各グループの数字の個数である。
インデックス値が大きいほど、左側のグループを表す。
要素の値が CHAR_MAX の場合は、最後のグループで
あることを意味する。要素の値が 0 の場合は、
その要素より左側の全ての要素に前の要素と同じ値を
使用することを意味する。 */
/* 残りのフィールドは通貨情報用である */
char *int_curr_symbol; /* 最初の三つの文字は ISO 4217 の通貨記号。
四番目の文字は区切り文字。
五番目は aq aq。 */
char *currency_symbol; /* 地域の通貨記号 */
char *mon_decimal_point; /* 小数点の文字 */
char *mon_thousands_sep; /* 上記の `thousands_sep' と同様 */
char *mon_grouping; /* 上記の `grouping' と同様 */
char *positive_sign; /* 正の値の符号 */
char *negative_sign; /* 負の値の符号 */
char int_frac_digits; /* 国際的な小数部の数字 */
char frac_digits; /* 地域の小数部の数字 */
char p_cs_precedes; /* 正の値の前に通貨記号を置く場合は 1,
後ろに置く場合は 0 */
char p_sep_by_space; /* 正の値と通貨記号の間にスペースを
入れる場合は 1 */
char n_cs_precedes; /* 負の値の前に通貨記号を置く場合は 1,
後ろに置く場合は 0 */
char n_sep_by_space; /* 負の値と通貨記号の間にスペースを
入れる場合は 1 */
/* 正と負の符号の位置:
0 値と通貨記号を括弧で囲む
1 符号は値と通貨記号の前に置く
2 符号は値と通貨記号の後に置く
3 符号は通貨記号の直後に置く
4 符号は通貨記号の直前に置く */
char p_sign_posn;
char n_sign_posn;
};
準拠
POSIX.1-2001GNU gettext 関数ファミリーは LI18NUX2000 で規定されている。
関連項目
locale(1), localedef(1), gettext(3), localeconv(3), ngettext(3), nl_langinfo(3), rpmatch(3), setlocale(3), strcoll(3), strfmon(3), strftime(3), strxfrm(3)
Index
This document was created by man2html using the manual pages.
Time: 17:13:48 GMT, January 19, 2012





