日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
SETLOCALE(3) FreeBSD Library Functions Manual SETLOCALE(3)
名称
setlocale, localeconv - C 用の自然言語をフォーマットする
書式
#include <locale.h>
char *
setlocale(int category, const char *locale)
struct lconv *
localeconv(void)
解説
setlocale() 関数は、特定のルーチンのセットに関して、C ライブラリにとって
の自然言語フォーマットスタイルの概念を設定します。このような各スタイルは
`ロケール' と呼ばれ、C 文字列として渡される適切な名前を使用して呼び出され
ます。 localeconv() ルーチンは、現在のロケールの数値フォーマット用パラメ
ータを返します。
setlocale() 関数は、ルーチンに関する複数のカテゴリを識別します。以下は、
カテゴリとカテゴリが選択したルーチンのセットです。
LC_ALL ロケール全体を一般的に設定します。
LC_COLLATE 文字列照合ルーチン用にロケールを設定します。これは strcoll()
と strxfrm() でのアルファベット順を制御します。
LC_CTYPE ctype(3), mbrune(3), multibyte(3) および rune(3) の各関数
のロケールを設定します。これは、大文字と小文字、アルファベッ
トと非アルファベット文字などの識別を制御します。実際の作業は
setrunelocale() 関数によって行われます。
LC_MESSAGES メッセージカタログのロケールを設定します。 catopen(3) 関数を
参照してください。
LC_MONETARY 通貨値のフォーマット用ロケールを設定します。これは
localeconv() 関数に影響を及ぼします。
LC_NUMERIC 数字をフォーマットするためのロケールを設定します。これは、
printf() と scanf() のような関数の浮動小数点入出力の小数点
フォーマットを制御します。 localeconv() によって返される値も
制御します。
LC_TIME strftime() 関数を使用して日付と時刻をフォーマットするための
ロケールを設定します。
デフォルトでは 3 つのロケールだけが定義されています。空の文字列 "" はネイ
ティブの環境を表記します。そして "C" および "POSIX" ロケール、これは C 言
語環境を表記します。 locale 引数が NULL の場合、 setlocale() は現在のロケ
ールを戻します。デフォルトでは、C プログラムは "C" ロケールで開始します。
ロケールを設定する唯一のライブラリ内関数は setlocale() です。ロケールは他
のルーチンの副作用として変更されることはありません。
localeconv() 関数は、数字、特に通貨値のフォーマット用パラメータを提供する
構造体を指すポインタを返します。
struct lconv {
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
};
個々のフィールドには次の意味があります。
decimal_point 小数点文字。通貨値は除きます。
thousands_sep 小数点の前の数字のグループ間の分離記号。通貨値は除きま
す。
grouping 数字のグループのサイズ。通貨値は除きます。これは、整数
のベクトルを指すポインタです。各整数のサイズは char で
あり、低い位の数字から高い位の数字 (右から左) までのグ
ループのサイズを表します。リストは、0 または CHAR_MAX
で終了できます。リストが 0 で終了する場合、0 の前の最
後のグループサイズは、すべての数字を埋めるために反復さ
れます。リストが CHAR_MAX で終了される場合、それ以上の
グループ化は実行されません。
int_curr_symbol 標準化された国際通貨シンボル
currency_symbol ローカルな通貨シンボル
mon_decimal_point 通貨値に対する小数点文字
mon_thousands_sep 通貨値内の数字グループについての分離記号
mon_grouping grouping に類似していますが、通貨用
positive_sign 非負の通貨値を表記するのに使用される文字。通常は空の文
字列
negative_sign 負の通貨値を表現するのに使用される文字。通常はマイナス
符号
int_frac_digits 国際スタイルの通貨値における小数点以下の桁数
frac_digits ローカルスタイルの通貨値における小数点以下の桁数
p_cs_precedes 非負の値に対して通貨値の前に通貨シンボルが置かれる場合
は 1、通貨シンボルが通貨値の後に続く場合は 0
p_sep_by_space 非負の値について通貨シンボルと通貨値の間に空白が挿入さ
れている場合は 1、そうでない場合は 0
n_cs_precedes 負の値について p_cs_precedes と同様
n_sep_by_space 負の値について p_sep_by_space と同様
p_sign_posn 非負の量および currency_symbol に関する positive_sign
の位置。コードは次のとおり。
0 文字列全体を囲む丸括弧
1 文字列の前
2 文字列の後
3 currency_symbol の直前
4 currency_symbol の直後
n_sign_posn 負の通貨値について p_sign_posn と同様
前述した場合を除いて、フィールドの値としての空の文字列は、結果の長さがゼ
ロであるか、または現在のロケール内にはない値であることを示します。同様に
CHAR_MAX の結果は利用できない値を表記します。
戻り値
setlocale() 関数は、指定の category と locale の組み合わせが意味をなさな
い場合は NULL を返してロケールを変更するのに失敗します。 localeconv() 関
数は、後の setlocale() または localeconv() への呼び出しで変更される可能性
のある静的オブジェクトを指すポインタを返します。
ファイル
$PATH_LOCALE/locale/category
/usr/share/locale/locale/category ロケール locale とカテゴリ category 用
のロケールファイル
関連項目
colldef(1), mklocale(1), catopen(3), ctype(3), mbrune(3),
multibyte(3), rune(3), strcoll(3), strxfrm(3), euc(4), utf2(4)
規格
setlocale() 関数と localeconv() 関数は ISO 9899: 1990 (``ISO C'') に準拠
しています。
歴史
setlocale() 関数と localeconv() 関数は最初に 4.4BSD に登場しました。
バグ
現時点では、 LC_COLLATE, LC_CTYPE および LC_TIME の各カテゴリ以外では、
"C" と "POSIX" ロケールだけしかサポートされていません。
localeconv() における整然としない通貨サポートにも関わらず、規格は、一般化
された通貨フォーマットのための関数を組み入れていません。
われわれがリアルタイムの通貨変換機能を持つまでは、 LC_MONETARY の使用は間
違った結果を導く可能性があります。 LC_NUMERIC と LC_TIME は個人的な選択肢
であり、他のカテゴリでおおい隠すことはしないでください。
BSD June 9, 1993 3