m17n ライブラリ 1.8.4
|
ロケールオブジェクトとそれに関する API. [詳解]
型定義 | |
typedef struct MLocale | MLocale |
MLocale 構造体. | |
関数 | |
MPlist * | mlanguage_list (void) |
3文字言語コードをリストする. | |
MSymbol | mlanguage_code (MSymbol language, int len) |
言語コードを得る. | |
MPlist * | mlanguage_name_list (MSymbol language, MSymbol target, MSymbol script, MSymbol territory) |
MText * | mlanguage_text (MSymbol language) |
与えられた言語自身で書かれた言語名を返す. | |
MPlist * | mscript_list (void) |
スクリプト名をリストする. | |
MPlist * | mscript_language_list (MSymbol script) |
与えられたスクリプトを用いる言語をリストする. | |
MLocale * | mlocale_set (int category, const char *name) |
現在のロケールを設定する. | |
MSymbol | mlocale_get_prop (MLocale *locale, MSymbol key) |
ロケールプロパティの値を得る. | |
int | mtext_ftime (MText *mt, const char *format, const struct tm *tm, MLocale *locale) |
日付と時間をフォーマットする. | |
MText * | mtext_getenv (const char *name) |
環境変数を得る. | |
int | mtext_putenv (MText *mt) |
環境変数を変更/追加する. | |
int | mtext_coll (MText *mt1, MText *mt2) |
現在のロケールを用いて2つの M-text を比較する. | |
変数 | |
MSymbol | Miso639_1 |
MSymbol | Miso639_2 |
MSymbol | Mterritory |
MSymbol | Mmodifier |
MSymbol | Mcodeset |
ロケールオブジェクトとそれに関する API.
m17n ライブラリはロケール関連情報を MLocale 型のオブジェクトで表現する。
MLocale
構造体.
MLocale
構造体は、ロケールの名前、言語、地域、モディファイア、コードセット、および対応するコード系に関する情報を保持するために用いられる。
この構造体の内容は実装に依存する。 内部構造はアプリケーションプログラムからは見えない。
MPlist * mlanguage_list | ( | void | ) |
3文字言語コードをリストする.
関数 mlanguage_list() は、整形式 (well-formed) plist を返す。各キー は Msymbol であり、個々の値は ISO639-2 に定められた3文字言語コー ドを名前とするシンボルである。
MSymbol mlanguage_code | ( | MSymbol | language, |
int | len | ||
) |
言語コードを得る.
関数 mlanguage_code() は、language に対応した ISO-639 言語コード が名前であるようなシンボルを返す。language はシンボルであり、その 名前は、ISO639-2 3文字言語コード、ISO639-1 2文字言語コード、英語名、 のいずれかである。
len は返される言語コードの種類を決定する。len が3の場合は ISO639-2 3文字言語コードが返される。2の場合は、もし定義されていれ ば ISO639-1 2文字言語コードが、そうでなければ Mnil が返される。0 の場合は、もし定義されていれば2文字コードが、そうでなければ3文字コー ドが返される。
MPlist * mlanguage_name_list | ( | MSymbol | language, |
MSymbol | target, | ||
MSymbol | script, | ||
MSymbol | territory | ||
) |
MText * mlanguage_text | ( | MSymbol | language | ) |
与えられた言語自身で書かれた言語名を返す.
関数 mlanguage_text() は、言語 language で書かれた language の 名前を M-text の形式で返す。その言語の代表的な文字がわかっている場 合は、返される M-text の各文字に、キーが Mtext で値がその代表的な 文字を含む M-text であるようなテキストプロパティが付加される。
NULL
が返される。MPlist * mscript_list | ( | void | ) |
スクリプト名をリストする.
関数 mscript_list() は、整形式 (well-formed) plist を返す。各キー は Msymbol であり、個々の値はスクリプト名を名前とするシンボルであ る。
MPlist * mscript_language_list | ( | MSymbol | script | ) |
与えられたスクリプトを用いる言語をリストする.
関数 mscript_language_list() は、script を用いる言語をリストする。 script はシンボルで、その名前は Unicode Character Database に示さ れているスクリプト名をすべて小文字にしたものである。
NULL
が返される。MLocale * mlocale_set | ( | int | category, |
const char * | name | ||
) |
現在のロケールを設定する.
関数 mlocale_set() は現在のロケールの一部を設定したり問い合わせたりする。ここで一部とは category で指定され、setlocale()
の有効な第一引数となるものでなくてはならない。
locale が NULL でなければ、指定した部分のロケールがlocale に設定される。 locale がシステムにサポートされていなければ、設定は行われず、現在のロケールは変わらない。
locale が NULL ならば、現在のロケールの指定した部分を問い合わせる。
呼び出しに成功すれば、mlocale_set() はロケールに対応する opaque ロケールオブジェクトを返す。ロケールの名前は関数 mlocale_get_prop() によって得ることができる。 そうでなければ NULL を返す。
MERROR_LOCALE
MSymbol mlocale_get_prop | ( | MLocale * | locale, |
MSymbol | key | ||
) |
ロケールプロパティの値を得る.
関数 mlocale_get_prop() は、ロケール locale の key プロパティの値を返す。 key は Mname, Mlanguage, Mterritory, Mcodeset, Mmodifier, Mcoding のいずれかである。
日付と時間をフォーマットする.
関数 mtext_ftime() は時刻データ (broken-down time) tm をformat で指定された形式に清書し、結果をM-text mt に付加する。フォーマットは NULL でなければ ロケール locale に、または現在のロケール(LC_TIME) に従う。
引数 tm と format の意味は strftime() の場合と同じ。
MText * mtext_getenv | ( | const char * | name | ) |
環境変数を得る.
関数 mtext_getenv() は name で指される文字列と合致する文字列を環境変数のリスト中から探す。
見つかった場合には、その値を現在のロケール(LC_CTYPE) に従って M-text にデコードし、そのM-text を返す。
見つからなければ、NULL を返す。
int mtext_putenv | ( | MText * | mt | ) |
環境変数を変更/追加する.
関数 mtext_putenv() は M-text mt に従って、環境変数の値を変更したり追加したりする。この関数は、現在のロケール (LC_CTYPE) に従ってmt をエンコードし、それを引数として関数 putenv
を呼ぶ。
現在のロケールを用いて2つの M-text を比較する.
関数 mtext_coll() は2つの M-text mt1 と mt2 を比較する。戻り値は負の整数値, 0, 正の整数値のいずれかであり、それぞれ mt1 が mt2 より小さい、同じ、大きい場合に相当する。比較は現在のロケール (LC_COLLATE) に基づいて行われる。
この関数は M-text のテキストプロパティとして自動的にキャッシュされる情報を利用するので、2度目以降の同じ比較は1度目より速く実行される。
MSymbol Miso639_1 |
MSymbol Miso639_2 |
MSymbol Mterritory |
"territory" という名前を持つシンボル.
MSymbol Mmodifier |
"modifier" という名前を持つシンボル.
MSymbol Mcodeset |
"codeset" という名前を持つシンボル.