MKLOCALE(1)

名称
mklocale - LC_CTYPE locale ファイルの作成

書式
mklocale [-d] < src-file > language/LC_CTYPE mklocale [-d] -o language/LC_CTYPE src-file

解説
mklocale ユーティリティは標準入力から LC_CTYPE のソースファイルを読み込み、 /usr/share/locale/language/LC_CTYPE に置くのに適した LC_CTYPE のバイナリファイルを標準出力へ書き出します。

src-file のフォーマットは非常に単純です。 キーワードから始まり、それに付随するデータが続く複数の行から構成されます。 ファイル中にコメントを書く場合は、 C のスタイルのコメントを使用することができます。

次のオプションを使用可能です:

-d  デバッグ用メッセージを有効にします。

-o  出力ファイルを指定します。

後述するキーワードの他に、 src-file の中で有効なトークンとして以下のものがあります。

RUNE
    RUNE は以下のいずれかです。

    'x' ASCII 文字の x 。

    '\x'
        ANSI 文字の \x 。 ここで、 \x は \a, \b, \f, \n, \r, \t, \v のいずれかになります。

    0x[0-9a-z]*
        rune コードを表す16進数です。

    0[0-7]*
        rune コードを表す8進数です。

    [1-9][0-9]*
        rune コードを表す10進数です。

STRING
    ダブルクォーテーション (") で囲まれた文字列です。

THRU
    ... か - のいずれかで、範囲を示すために使われます。

literal
    以下の文字は文字通りに解釈されます。

    <([ マッピングを開始します。これらは全て同じ意味を持ちます。

    >)] マッピングを終了します。これらは全て同じ意味を持ちます。

    :   マッピング中の区切り文字として使用されます。

ソースファイル中に一度のみ現れるキーワードには以下のものがあります。

ENCODING
    これに続く STRING トークンによって、 作成中の locale にて使われるエンコーディング機構を指定します。 現在指定できるエンコーディングとして以下のものがあります。

    BIG5
        中国語の “Big5” エンコーディングです。

    EUC いくつかの UNIX のベンダで使われている EUC エンコーディングです。

    GB18030
        中国語テキストの PRC 国家標準エンコーディングです。

    GB2312
        中国語テキストの古い PRC 国家標準エンコーディングです。

    GBK 広範囲に使用されている、中国語テキストのエンコーディングであり、 GB 2312-1980 との後方互換性があります

    MSKanji
        Microsoft が使用する日本語エンコーディング方法であり、 ゆるやかに JIS を基にしています。 “Shift JIS” や “SJIS” としても知られています。

    NONE
        変換を行ないません。デフォルトのエンコーディングです。

    UTF2
        (価値が低下しています) Bell Labs の Plan 9 から移植された “Universal character set Transformation Format” です。

    UTF-8
        ISO 10646 の UTF-8 変換フォーマットであり、RFC 2279 で定義されています。

VARIABLE
    1 つのタブ文字もしくはスペース文字がこのキーワードに続き、 その後にエンコーディングに特有のデータが置かれます。 現在は EUC エンコーディングのみで、この可変データが必要となります。 詳しくは euc(4) を参照してください。

INVALID
    (価値が低下しています) 1 つの RUNE を続いて指定し、作成中の locale における不正な rune を指定します。

以下のキーワードは複数回指定でき、次の形式を取ります。

<RUNE1 RUNE2>
    RUNE1 が RUNE2 にマップされます。

<RUNE1 THRU RUNEn: RUNE2>
    RUNE1 から RUNEn の rune が RUNE2 から RUNE2 + n-1 にマップされます。

MAPLOWER
    小文字への変換マッピングを定義します。 RUNE2 は RUNE1 の小文字表現となります。

MAPUPPER
    大文字への変換マッピングを定義します。 RUNE2 は RUNE1 の大文字表現となります。

TODIGIT
    rune からその数値へのマッピングを定義します。 RUNE2 は RUNE1 の整数値表現となります。 例えば、ASCII 文字の ‘0’ は 10進数の 0 にマップされます。 255 以下の値のみが指定可能です。

以下のキーワードは複数回指定でき、次の形式を取ります。

RUNE
    この rune はキーワードによって定義された属性を持ちます。

RUNE1 THRU RUNEn
    RUNE1 と RUNEn を含む、この間に指定された全ての rune はキーワードによって定義された属性を持ちます。

ALPHA
    アルファベットで表示可能な文字である rune を定義します。

CONTROL
    制御文字である rune を定義します。

DIGIT
    10 進数字で表示可能な文字である rune を定義します。

GRAPH
    表示可能な文字である rune を定義します。

LOWER
    小文字で表示可能な文字である rune を定義します。

PUNCT
    句読点で表示可能文字な rune を定義します。

SPACE
    スペース文字である rune を定義します。

UPPER
    大文字で表示可能な文字である rune を定義します。

XDIGIT
    16 進数字で表示可能な文字である rune を定義します。

BLANK
    空白文字である rune 定義します。

PRINT
    表示可能な rune を定義します。

IDEOGRAM
    表意記号 (訳註:7, = & などの記号) で表示可能な文字である rune を定義します。

SPECIAL
    特殊文字で印刷可能な文字である rune を定義します。

PHONOGRAM
    表音文字で表示可能な文字である rune を定義します。

SWIDTH0
    表示幅 0 の rune を定義します。

SWIDTH1
    表示幅 1 の rune を定義します。

SWIDTH2
    表示幅 2 の rune を定義します。

SWIDTH3
    表示幅 3 の rune を定義します。

表示幅を明示的に定義しない場合、デフォルトでは、 表示可能 rune に対しては幅 1 が仮定されます。

関連項目
colldef(1), mbrune(3), rune(3), setlocale(3), wcwidth(3), big5(5), euc(5), gb18030(5), gb2312(5), gbk(5), mskanji(5), utf2(5), utf8(5)

バグ
mklocale ユーティリティはあまりに割り切り過ぎです。

歴史
mklocale ユーティリティは 4.4BSD から登場しました。