LOCALE(5)

名前
locale - ロケール定義ファイル

説明
ロケール (locale) 定義ファイルは localedef(1) コマンドがバイナリのロケールデータベースに変換するのに 必要な全ての情報を含んでいる。 定義ファイルは、いくつかのセクションから構成されており、各セクション にはロケールのカテゴリーが詳細に記述される。

  文法
ロケール定義ファイルは以下のキーワードから構成されるヘッダーで始まる:

<escape_char>
    ファイルの残りの部分でエスケープキャラクターとして使用する文字を 指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。 デフォルトはバックスラッシュ (\) である。

<comment_char>
    ファイルの残りの部分でコメントキャラクターとして使用する文字 を指定する。デフォルトではシャープ (#) である。

ロケールの定義はロケールのカテゴリー毎の定義を行う部分から構成される。 各部分は、定義済みの他のロケールのコピーを元に定義することもできるし、 最初から定義することもできる。カテゴリーをコピーする場合、定義の中に copy というキーワードに続けてコピーするロケールの名前をダブルクォートの中に書く。

カテゴリーを一から定義する際には、 すべてのフィールドの説明と文字列を、 Unicode コードポイントをかぎ括弧で囲って定義する必要がある。 下記の説明で定義しなくてもよいと書かれている場合はこの限りではない。 例えば、 "€" は "<U20AC>"、 "%a" は "<U0025><U0061>"、 "Monday" は "<U0053><U0075><U006E><U0064><U0061><U0079>" と表現される。 Unicode コードポイントとして定義される値は二重引用符で囲まなければならず、 通常の数値は引用符で囲まれない (ただし、 LC_CTYPE と LC_COLLATE は特別なフォーマットを使用しており、 例についてはシステムが提供するロケールファイルを参照)。

  ロケールカテゴリー
以下のカテゴリーが POSIX で定義されている。

*   LC_CTYPE

*   LC_COLLATE

*   LC_MESSAGES

*   LC_MONETARY

*   LC_NUMERIC

*   LC_TIME

また、バージョン 2.2 以降の GNU C ライブラリでは以下の非標準のカテゴリーにも対応している。

*   LC_ADDRESS

*   LC_IDENTIFICATION

*   LC_MEASUREMENT

*   LC_NAME

*   LC_PAPER

*   LC_TELEPHONE

各カテゴリーの詳細な説明は locale(7) を参照。

  LC_ADDRESS
このカテゴリーの定義は最初のカラムに LC_ADDRESS という文字列を置くことで始める。 ここでは以下のキーワードが使用できる:

postal_fmt
    このロケールでの郵便の住所に使用するフォーマットを定義するフィールド記述子が入った文字列を指定する。 以下のフィールド指定子を使用できる。

    %a  気付、組織

    %f  社名

    %d  部署名

    %b  ビル名

    %s  通り、ブロック名

    %h  番地

    %N  直前の記述子の値が空でない場合 end-of-line を挿入する。 そうでない場合は無視される。

    %t  直前の記述子の値が空でない場合、 スペースを挿入する。 そうでない場合は無視される。

    %r  部屋番号

    %e  フロア番号

    %C  国、 <country_post> キーワードから指定する

    %z  郵便番号

    %T  町、市

    %S  州、省、県

    %c  国。 データレコードから取得される。

    各フィールドでは '%' の後ろに 'R' を置いて、 その要素のローマ字版の文字列を使用するように指定することができる。

country_name
    そのドキュメントの言語での国名を指定する (例えば、 de_DE ロケールでは "Deutschland")

country_post
    国の省略名を指定する (CERT_MAILCODES 参照)

country_ab2
    国の 2 文字の省略形を指定する (ISO 3166)

country_ab3
    国の 3 文字の省略形を指定する (ISO 3166)

country_num
    数字の国コードを通常の数字として指定する (ISO 3166)

country_car
    自動車番号の国コードを指定する

country_isbn
    (書籍用の) ISBN コードを通常の数字として指定する

lang_name
    そのドキュメントの言語での言語名を指定する

lang_ab
    言語の 2 文字の省略形を指定する (ISO 639)

lang_term
    言語の 3 文字の省略形を指定する (ISO 639-2/T)

lang_lib
    ライブラリで使用する言語の 3 文字の省略形を指定する (ISO 639-2/B)。 一般には、アプリケーションは lang_lib よりも lang_term を優先すべきである。

LC_ADDRESS の定義は END LC_ADDRESS という文字列で終了する。

  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 に指定された文字を指定することはできない。

print
    <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_CTYPE という文字列で終了する。

  LC_COLLATE
glibc による制限のため POSIX オプションの全てが実装されているわけではない。 このカテゴリーの定義は最初のカラムに LC_COLLATE を置くことで始める。 ここでは以下のキーワードが使用できる:

collating-element
    複数文字からなる照合要素を表す照合要素シンボル (collating-element symbol) の定義を指定する。

collating-symbol
    照合順序定義 (order_start) で使用できる照合シンボル (collating symbol) の定義を指定する。

順序の定義は以下の行で始める:

order_start
    これに forward, backward, position のいずれかのキーワードが続く。 順序を記述する行が続き、キーワード order_end で終る:

LC_COLLATE 定義は END LC_COLLATE という文字列で終了する。

  LC_IDENTIFICATION
このカテゴリーの定義は最初のカラムに LC_IDENTIFICATION という文字列を置くことで始める。 このカテゴリーの値は普通の文字列として定義される。 ここでは以下のキーワードが使用できる:

title
    このロケール文書のタイトル (例えば "Maori language locale for New Zealand" (「ニュージーランドのマオリ語のロケール」))。

source
    この文書を管理している組織名。

address
    この文書を管理している組織の住所。

contact
    この文書を管理している組織の担当者の名前。

email
    この文書を管理している組織の担当者の電子メールアドレス。

tel この文書を管理している組織の (国際的なフォーマットでの) 電話番号。

fax この文書を管理している組織の (国際的なフォーマットでの) FAX 番号。

language
    この文書が適用される言語名。

territory
    この文書が適用される国や地理的範囲の名前。

audience
    この文書が想定する対象者の説明。

application
    この文書が想定する特別な適用先を記載する。

abbreviation
    この文書の省略名。

revision
    この文書の版数。

date
    この文書のこの版の日付。

さらに、 この文書で定義されるカテゴリー毎に、キーワード category で始まり以下の内容が続く行を用意する必要がある。

*   このロケールカテゴリー定義を識別する文字列

*   セミコロン

*   LC_* 識別子のいずれか 1 つ

LC_IDENTIFICATION の定義は END LC_IDENTIFICATION という文字列で終了する。

  LC_MESSAGES
このカテゴリーの定義は最初のカラムに LC_MESSAGES という文字列を置くことで始める。 ここでは以下のキーワードが使用できる:

yesexpr
    「はい (yes)」を意味する正規表現を指定する。

noexpr
    「いいえ (no)」を意味する正規表現を指定する。

yesstr
    "yes" に対応する出力文字列を指定する。

nostr
    "no" に対応する出力文字列を指定する。

LC_MESSAGES の定義は END LC_MESSAGES という文字列で終了する。

  LC_MEASUREMENT
このカテゴリーの定義は最初のカラムに LC_MEASUREMENT という文字列を置くことで始める。 ここでは以下のキーワードが使用できる:

measurement
    単位系として使用される標準を指定する数値。 以下の値が使用できる。

    1   メートル法

    2   US で使用される単位系

LC_MEASUREMENT の定義は END LC_MEASUREMENT という文字列で終了する。

  LC_MONETARY
LC_MONETARY の定義は最初のカラムに LC_MONETARY を置くことで始める。 int_curr_symbol, currency_symbol, mon_decimal_point, mon_thousands_sep, positive_sign, negative_sign は Unicode コードポイントとして定義されている。 それ以外には通常の数字を指定する。 ここでは以下のキーワードが使用できる:

int_curr_symbol
    国際通貨記号を指定する。これは ISO 4217 規格に定義された国際通貨 記号 (3 文字) に区切り文字を続けた 4 文字である必要がある。

currency_symbol
    地域的な通貨記号を指定する。

mon_decimal_point
    金額をフォーマットする際の小数点に使用する文字列を指定する。

mon_thousands_sep
    金額をフォーマットする際に桁の区切りに使用する文字列を指定する。

mon_grouping
    金額の表示方法を規定する整数の列。 セミコロン区切りの通常の数字。 詳細は下記の grouping を参照。

positive_sign
    数値において正の符号に使用する文字列を指定する。

negative_sign
    数値において負の符号に使用する文字列を指定する。

int_frac_digits
    int_curr_symbol でフォーマットする時に使用すべき端数の桁数を指定する。

frac_digits
    currency_symbol でフォーマットする際に使用すべき端数の桁数を指定する。

p_cs_precedes
    負でない金額を表示する際に currency_symbol を置く位置を示す数字を指定する。

    0   記号は数値の後におく。

    1   記号は数値の前におく。

n_cs_precedes
    負の金額を表示する際に currency_symbol を置く位置を示す数字を指定する。 指定できる値は p_cs_precedes と同じである。

int_p_cs_precedes
    負でない金額を国際的なフォーマットで表示する際に int_currency_symbol を置く位置を示す数字を指定する。 指定できる値は p_cs_precedes と同じである。

int_n_cs_precedes
    負の金額を国際的なフォーマットで表示する際に int_currency_symbol を置く位置を示す数字を指定する。 指定できる値は p_cs_precedes と同じである。

p_sep_by_space
    負でない金額を表示する際に、 currency_symbol、 符号記号、 値の区切り方を示す数値を指定する。 以下の値が使用できる。

    0   通貨記号と値の間にスペースを入れない。

    1   通貨記号と符号記号が隣り合う場合、 値との間にスペースを入れる。 そうでない場合、通貨記号と値の間スペースを置く。

    2   通貨記号と符号記号が隣り合う場合、 値との間にスペースを入れる。 そうでない場合、符号記号と値はそれぞれスペースで区切られる。

n_sep_by_space
    負の金額を表示する際に、 currency_symbol、 符号記号、 値の区切り方を示す数値を指定する。 指定できる値は p_sep_by_space である。

int_p_sep_by_space
    負でない金額を国際的なフォーマットで表示する際に、 int_currency_symbol、 符号記号、 値の区切り方を示す数値を指定する。 指定できる値は p_sep_by_space である。

int_n_sep_by_space
    負の金額を国際的なフォーマットで表示する際に、 int_currency_symbol、 符号記号、 値の区切り方を示す数値を指定する。 指定できる値は p_sep_by_space である。

p_sign_posn
    負でない金額の場合に positive_sign を置く必要があるかを示す整数を指定する。

    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
    負の金額の場合に negative_sign を置く必要があるかを示す整数を指定する。 指定できる値は p_sign_posn と同じである。

int_p_sign_posn
    負でない金額を国際的なフォーマットで表示する際に positive_sign を置く必要があるかを示す整数を指定する。 指定できる値は p_sign_posn と同じである。

int_n_sign_posn
    負の金額を国際的なフォーマットで表示する際に negative_sign を置く必要があるかを示す整数を指定する。 指定できる値は p_sign_posn と同じである。

LC_MONETARY の定義は END LC_MONETARY という文字列で終了する。

  LC_NAME
このカテゴリーの定義は最初のカラムに LC_NAME という文字列を置くことで始める。 様々なキーワードを指定できるが、 必須なのは name_fmt だけである。 それ以外のキーワードは、 このロケールで、 対応するあいさつを使う慣習が普及している場合にのみ指定が必要である。 指定できるキーワードは以下のとおりである。

name_fmt
    このロケールで名前に対して使用する表示方法を定義するフィールド記述子が入った文字列を指定する。 以下のフィールド記述子を使用できる。

    %f  姓 (family name)

    %F  大文字の姓 (family name)

    %g  名 (first given name)

    %G  名の頭文字

    %l  ラテン文字での名 (first given name)

    %o  他の短い名前

    %m  追加の名前 (given name)

    %M  追加の名前の頭文字

    %p  職業

    %s  呼びかけの言葉 (例えば「Doctor」など)

    %S  省略形の呼びかけの言葉 ("Mr." や "Dr.")

    %d  FDCC (Formal Definitions of Cultural Convention) 集合で使用される呼びかけの言葉

    %t  直前のフィールド記述子が空文字列になった場合、 空文字列となる。 それ以外の場合、 スペース文字となる。

name_gen
    男性・女性を問わず使える一般的な呼びかけの言葉

name_mr
    男性に対する呼びかけの言葉

name_mrs
    既婚女性に対する呼びかけの言葉

name_miss
    未婚女性に対する呼びかけの言葉

name_ms
    どの女性にも使用できる呼びかけの言葉

LC_NAME の定義は END LC_NAME という文字列で終了する。

  LC_NUMERIC
このカテゴリーの定義は最初のカラムに LC_NUMERIC という文字列を置くことで始める。 ここでは以下のキーワードが使用できる:

decimal_point
    数値をフォーマットする際に小数点に使用する文字列を指定する。

thousands_sep
    数値をフォーマットする際に桁の区切りに使用する文字列を指定する。

grouping
    数値の表示方法を規定する整数の列。 セミコロン区切りの通常の数字。

    各数字はグループ内の数字の桁数を指定する。 最初の整数は小数点のすぐ左側のグループのサイズを規定する。 それ以降の数字は一つ前のグループの左側のグループのサイズを順に規定する。 最後の数字が -1 でない場合、 (グループがある場合) 直前のグループのサイズがそれ以降の桁についても使用される。 最後の整数が -1 の場合、 それ以降はグループ化を行わない。

The LC_NUMERIC の定義は END LC_NUMERIC という文字列で終了する。

  LC_PAPER
このカテゴリーの定義は最初のカラムに LC_PAPER という文字列を置くことで始める。 このカテゴリーの値は通常の数字で指定する。 ここでは以下のキーワードが使用できる:

height
    標準の紙のサイズの高さをミリメートル単位で指定する。

width
    標準の紙のサイズの幅をミリメートル単位で指定する。

LC_PAPER の定義は END LC_PAPER という文字列で終了する。

  LC_TELEPHONE
このカテゴリーの定義は最初のカラムに LC_TELEPHONE という文字列を置くことで始める。 ここでは以下のキーワードが使用できる:

tel_int_fmt
    国際番号に電話をかける場合に使用するフォーマットを示すフィールド記述子を含む文字列を指定する。 以下のフィールド記述子を使用できる。

    %a  全国で一意なプレフィックスを含まないエリアコード (多くの場合、プレフィックスは "00")。

    %A  全国で一意なプレフィックスを含んだエリアコード。

    %l  (エリア内の) 市内局番。

    %e  (市内局番に対する) 内線番号。

    %c  国番号。

    %C  海外通話の際に使用される代わりのキャリアーサービスコード。

    %t  直前のフィールド記述子が空文字列になった場合、 空文字列となる。 それ以外の場合、 スペース文字となる。

tel_dom_fmt
    国内番号に電話をかける場合に使用するフォーマットを示すフィールド記述子を含む文字列を指定する。 使用できるフィールド記述子は tel_int_fmt と同じである。

int_select
    国際電話番号に電話をかける際に使用するプレフィックスを指定する。

int_prefix
    他の国からこの国に電話をかける際に使用するプレフィックスを指定する。

LC_TELEPHONE の定義は END LC_TELEPHONE という文字列で終了する。

  LC_TIME
このカテゴリーの定義は最初のカラムに LC_TIME という文字列を置くことで始める。 ここでは以下のキーワードが使用できる:

abday
    曜日の名前の省略形のリストを指定する。 リストは week で指定された週の開始曜日 (デフォルトでは日曜日) から始める。 「注意」を参照。

day 曜日の名前のリストを指定する。 リストは week で指定された週の開始曜日 (デフォルトでは日曜日) から始める。 「注意」を参照。

abmon
    月の名前の省略形のリストを指定する。

mon 月の名前のリストを指定する。

am_pm
    それぞれ 午前 (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 を使用する。 「注意」を参照。

first_weekday (glibc 2.2 以降)
    カレンダーアプリケーションで最初に表示する曜日の day リストにおける番号。 デフォルト値の 1 (通常の数字) は日曜日か月曜日に対応する。 どちらに対応するかは week リストの二番目の項目の値で決まる。 「注意」を参照。

first_workday (glibc 2.2 以降)
    最初の就業日を示す day リストにおける曜日の番号。 デフォルト値は 2 (通常の数字) である。 「注意」を参照。

cal_direction
    カレンダーの日付を表示する方向を示す通常の数字を指定する。指定できる値は以下のとおり。

    1   左から右を、上から順に。

    2   上から下を、左から順に。

    3   右から左を、上から順に。

date_fmt
    date(1) に適した日付の表現を指定する。

LC_TIME の定義は END LC_TIME という文字列で終了する。

ファイル

/usr/lib/locale/locale-archive
    通常のデフォルトのロケールアーカイブファイル

/usr/share/i18n/locales
    ロケール定義ファイルの通常のデフォルトパス

準拠
POSIX.2, ISO/IEC TR 14652.

注意
abday, day, week, first_weekday, first_workday に関する GNU C ライブラリコミュニティーで培ったノウハウについて https://sourceware.org/glibc/wiki/Locales で以下のように書かれている。

*   week リストの 2 番目の項目の値は abday と day のリストの起点となる日を指定する。

*   first_weekday は abday と day のリストの中で最初に表示する週の曜日 (オフセット) を指定する。

*   For compatibility reasons, all glibc locales should set the value of the second week list item to 19971130 (Sunday) and base the abday and day lists appropriately, and set first_weekday and first_workday to 1 or 2, depending on whether the week and work week actually starts on Sunday or Monday for the locale.

バグ
このマニュアルは完全ではない。

関連項目
locale(1), localedef(1), localeconv(3), newlocale(3), setlocale(3), uselocale(3), charmap(5), charsets(7), locale(7), unicode(7), utf-8(7)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。