標準 C 言語国際化プログラミング
ロケール

C 言語では通常、プログラムの最初たとえば main() の中で、setlocale() を 呼び出してロケールの設定を行います。setlocale() の形式は以下のとおりで す。
    #include <locale.h>
    char *setlocale(int category, const char *locale)
setlocale() は第1引数で指定されたカテゴリに対して、第2引数で指定され たロケールを設定します。カテゴリは locale.h で定義されている定数で、以 下のものを表わします。
------------------------------------------------------------------------
カテゴリ		ロケールの影響を受ける処理
------------------------------------------------------------------------
LC_COLLATE	文字の照合や正規表現に関する処理
LC_CTYPE	文字の種類や変換に関する処理
LC_MESSAES	メッセージカタログに関する処理
LC_MONETARY	通貨単位や金額の表記
LC_NUMERIC	数値の表記
LC_TIME		日付や時間の表記
LC_ALL		上記すべて
------------------------------------------------------------------------
通常はすべてのカテゴリに対して現在のプロセスのロケールを設定します。そ の場合第1引数に LC_ALL、第2引数に "" (長さ 0 の文字列) を指定します。
    setlocale(LC_ALL, "");
第2引数にたとえば "ja_JP.SJIS" のようにロケール名を明示的に指定するこ ともできますが、特別な理由がある場合を除いて、動作するロケールをそのよ うに限定することは推奨されません。

setlocale() を使用して現在設定されているロケール情報を取得することもで きます。その場合第2引数に NULL を指定します。

    char *locale;
	:
    locale = setlocale(LC_CTYPE, NULL);
ロケールに関する C 言語標準ライブラリ関数には次のものがあります。
------------------------------------------------------------------------
関数		説明
------------------------------------------------------------------------
setlocale()	ロケールの設定を行う
localeconv()	ロケールに依存する情報を入手する
nl_langinfo()*1	ロケールに依存する情報を入力する
strftime()	フォーマット文字列に従って日付や時間を表示する
strptime()	文字列から時間情報への変換を行う
strfmon()	ロケール依存のフォーマットで金額数値を表示する
------------------------------------------------------------------------

*1: 引数に指定する定数 YESSTR と NOSTR は古い仕様のものです。
    YESEXPR と NOEXPR を使用してください。
ロケールに関する国際化関数と非国際化関数の対応は次のとおりです。
------------------------------------------------------------------------
非国際化関数	国際化関数
------------------------------------------------------------------------
asctime()	strftime()
ctime()		strftime()
------------------------------------------------------------------------

国際化プログラミングトップへ


Copyright (C) 2012 Kokusaika JP, Inc.
本ドキュメントを無断で転載および引用することを禁じます。