日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 章:概要
第 2 章:ロケールファイルの形式
第 3 章:文字セット記号ファイル
第 4 章:コマンド・リファレンス
 ≫ GENCAT
 ≫ ICONV COMPILE
 ≫ ICONV CONVERT
 ≫ LOCALE COMPILE
 ≫ LOCALE LOAD
 ≫ LOCALE UNLOAD
 ≫ LOCALE SHOW CHARACTER_DEFINITIONS
 ≫ LOCALE SHOW CURRENT
 ≫ LOCALE SHOW PUBLIC
 ≫ LOCALE SHOW VALUE
 ≫ zic
付録 A:日本語ロケール
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C 国際化ユーティリティ・リファレンス・マニュアル


目次 索引

第 2 章
ロケール・ファイルの形式

ロケール定義ソース・ファイルは,ロケールを記述する1つ以上のカテゴリで構成されます。ロケール定義ソース・ファイルは, LOCALE COMPILEコマンドを使用することによって,ロケールに変換できます。ロケールの変更は,ロケール定義ソース・ファイルを編集し,その新しいソース・ファイルに対してもう一度 LOCALE COMPILE コマンドを実行することによってのみ行うことができます。ロケール・ソース・ファイルの各セクションが,ロケール・データのカテゴリを定義します。ソース・ファイルは,同じカテゴリに対して複数のセクションを持つことはできません。

2.1 ロケール・カテゴリ

次の標準ロケール・カテゴリがサポートされます。

  • LC_COLLATE --- 文字または文字列照合情報を定義する。

  • LC_CTYPE --- 文字分類,大文字/小文字変換,および他の文字属性を定義する。

  • LC_MESSAGES --- 肯定応答および否定応答の形式を定義する。

  • LC_MONETARY --- 通貨数値情報を書式化する上での規則および記号を定義する。

  • LC_NUMERIC --- 非通貨数値情報を書式化する上での規則および記号を定義する。

  • LC_TIME --- 日付/時刻情報を書式化する上での規則および記号を定義する。



2.1.1 デフォルトの設定の変更

ロケール・ソース・ファイルの先頭に,オプションの宣言を指定することによって,ロケール・カテゴリ定義で使用される,デフォルトのコメント文字およびエスケープ文字を変更できます。

  • エスケープ文字
    エスケープ文字は,ロケール・ファイルの中で 10 進または 16 進定数を指定するときに使用します。デフォルトのエスケープ文字は,バックスラッシュ(\)です。別のエスケープ文字を定義するには,次の形式で行を指定します。

    escape_char  <char_symbol> 
    

  • コメント文字
    コメント文字は,ロケール・ファイル内の,コメント・エントリの先頭文字です。デフォルトのコメント文字は,番号記号(#)です。別のコメント文字を定義するには,次の形式を使用します。

    comment_char  <char_symbol> 
    

上の例で,<char_symbol>は,ロケール・コードセットを作成するのに使用されたcharmapファイルで定義されている,文字のシンボル名です。 escape_charまたはcomment_charと, <char_symbol>とのあいだは, 1 つ以上の空白文字(スペースまたはタブ)で区切らなければなりません。

2.1.2 カテゴリ・ソース定義

各カテゴリ・ソース定義は,次の内容で構成されます。

  • カテゴリ・ヘッダ(category_name)

  • カテゴリ本体を構成する関連キーワードまたは値のペア

  • カテゴリ・トレーラ(END category_name)

例を次に示します。

LC_CTYPE 
<source for LC_CTYPE category> 
END LC_CTYPE 

すべてのカテゴリについて,ソースは,キーワード,文字列,文字リテラル,および文字シンボルを使用して指定します。各キーワードは,定義と規則のいずれかを示しています。キーワードが含まれている文の残りの部分には,キーワードに対するオペランドが含まれます。オペランドとキーワードは,1 つ以上の空白文字(スペースまたはタブ)で区切ります。なお,行を終了する改行文字の前に,最終文字としてバックスラッシュ (\) を入力すると,文は次の行に継続します。 1 桁目にコメント文字 (#) がある行は,コメント行として扱われます。

シンボル名は,左山括弧文字 (<) ではじまり,右山括弧文字(>)で終了します。 <および>のあいだには,制御文字およびスペース文字を除く, Portable Character Setのすべての文字を指定できます。たとえば, <A-diaeresis>という指定は,ある文字のシンボル名として有効です。ロケール・ソース・ファイルの中で参照されるシンボル名は, Portable Character Setを使用して,またはそのロケール用の文字セット記述 ( charmap ) ファイルの中で定義する必要があります。

文字リテラルは,文字そのもの,あるいは 10 進,16 進,または 8 進定数です。 10 進定数は,2 桁または 3 桁の 10 進数により,次の形式で構成されます。ここで,nは10進数を表します。

\dnn or \dnnn

16 進定数は,2 桁の 16 進数により,次の形式で構成されます。ここで,n は 16 進数を表します。

\xnn

8 進定数は,2 桁または 3 桁の8進数により,次の形式で構成されます。ここで,n は 8 進数を表します。

\nn or \nnn

ロケール定義ソース・ファイル内で,すべてのカテゴリを明示的に定義する必要はありません。ロケール定義ソース・ファイルの中でカテゴリが定義されていない場合, LOCALE COMPILEコマンドの出力するロケール・ファイルには,このカテゴリのデータは何も格納されません。

2.2 LC_COLLATE カテゴリ

LC_COLLATEカテゴリは,照合項目間の相対順序を定義します。このカテゴリは,LC_COLLATE ヘッダではじまり, END LC_COLLATE トレーラで終了します。

照合項目は,照合を行う上での比較の単位であり,文字または文字の並びです。ロケール内の照合項目はすべて,これがロケール内の別の照合項目より以前,等しい,または以降であるかどうかを決定する重みのセットを持っています。ロケール項目はそれぞれ,ロケール・ソース・ファイルをコンパイルするときに, LOCALE COMPILE コマンドによって,照合重みが割り当てられます。これらの照合重みは,文字列を比較するアプリケーション・プログラムによって使用されます。

文字列の比較は,文字列内の各文字の照合重みの比較を,相違が検出されるまで,または文字列が等しいと判断されるまで実行することによって行われます。この比較は,ロケールが複数の照合順序を定義している場合は,数回に渡って行われることがあります。たとえば,フランスのロケールの場合,文字列は,照合重みの 1 次セットを使用して比較されます。この比較の段階で両者が等しいと判断されると,照合重みの 2 次セットを使用してもう一度比較が行われます。照合項目は,ロケールに対して定義されている照合ソート規則の数だけ,関連する照合重みのセットを持ちます。

charmapファイル内で定義される各文字 ( charmapファイルが指定されていない場合は, Portable Character Set 内のすべての文字 ) は,これ自体が照合項目です。新たな照合項目は, collating-element 文を使用して定義できます ( 次の説明参照 )。

表 2-1 は, LC_COLLATE カテゴリで認識される文キーワードの一覧です。

表 2-1 LC_COLLATE カテゴリ・キーワード
キーワード 説明
copy このカテゴリの定義として使用する,既存のロケール名を指定する。 copy文を指定すると,このカテゴリの中で他のキーワードを指定する必要はない。
collating-element 複数文字の照合項目を指定する。
collating-symbol 照合シーケンス文で使用する照合シンボルを指定する。
order_start 照合重みを照合項目に割り当てる照合シーケンス文を指定する。

collating-element文,collating-symbol文,およびorder_start文については,以降の項で詳しく説明します。

2.2.1 collating-element 文

collating-element文は,複数文字の照合項目を指定します。

構文

collating-element <character_symbol> from <string> 

character_symbol 引数は, 1 文字以上の文字列の照合項目を,1 つの照合項目として定義します。 character_symbol は,現在の charmap ファイル内のシンボル名,またはこの照合定義の中で定義されている他のシンボル名と重複することはできません。

string 引数は,character_symbol 引数を定義する 2 文字以上の文字列を指定します。 collating-element 文の例を次に示します。

collating-element <ch> from "<c><h>" 
collating-element <e-acute> from "<acute><e>" 
collating-element <11> from "<1><1>" 

collating-element 文で定義される character_symbol 引数は, LC_COLLATE カテゴリの中に限って認識されます。

2.2.2 collating-symbol 文

collating-symbol 文は,照合シーケンス文で使用する照合シンボルを指定します。

構文

collating-symbol <collating_symbol> 

collating_symbol 引数は,現在の charmap ファイル内のシンボル名,またはこの照合定義の中で定義されている他のシンボル名と重複することはできません。 collating-symbol 文の例を次に示します。

collating-symbol <UPPER_CASE> 
collating-symbol <HIGH> 

collating_symbol 文で定義される引数は, LC_COLLATE カテゴリの中に限って認識されます。

2.2.3 order_start 文

order_start 文には,照合重みを照合項目に割り当てる 1 つ以上の照合順序文,および order_end キーワードが続きます。 order_start 文は,必ず指定する必要があります。

構文

order_start sort_rules;sort_rules;...;sort_rules
collation_order_statements
order_end 

ソート規則

sort_rules指示文は,次の構文で指定します。

keyword, keyword,...,keyword 

ここで,keyword はFORWARD,BACKWARD,POSITIONのいずれかです。

sort_rules 指示文はオプションです。指定された場合には,文字列比較に適用される規則を定義します。指定された sort_rules 指示文の数は,各照合項目に割り当てられる重みの数を定義します ( つまり,指示文は,ロケールの中での照合順序数を定義します )。 sort_rules 指示文が指定されない場合, 1 つの forward 指示文が想定され,文字列ではなく,文字単位に比較が行われます。

sort_rules 指示文がある場合, 1 次重みを使用して文字列を比較するときに先頭の指示文, 2 次重みを使用して文字列を比較するときに 2 番目の指示文がそれぞれ適用されます。以降についても同様です。各 sort_rules 指示文のセットは,セミコロン (;) で区切ります。 sort_rules 指示文は,コンマで区切った1つ以上のキーワードで構成されます。次のキーワードがサポートされています。

FORWARD --- 照合重みの比較が,文字列の先頭から最後に向かって行われることを指定する。

BACKWARD --- 照合重みの比較が,文字列の最後から先頭に向かって行われることを指定する。

POSITION --- 照合重みの比較が,文字列内の対象要素の相対位置を考慮することを指定する ( 文字列が等しいことを比較する場合,比較の開始位置から最短の位置にある要素を,最初に照合する )。

forward キーワードおよび backward キーワードは,相互に排他的です。

sort_rules 指示文の例を次に示します。

order_start        forward;backward 

照合順序文

照合順序文には次の構文規則が適用されます。

  • 各照合順序文は,<character_symbol>指定,空白,照合順序セットの順で構成される。

  • 文字セット内の文字は,照合順序文で明示的に指定するか,または反復記号(...)を使用して暗黙に指定できる。

  • UNDEFINED 特殊シンボルではじまる照合順序文は,他の照合順序文で明示的または暗黙に指定されていない文字セット内の文字を指定する。

照合項目の 1 次重み,2 次重み,または以降の重みを定義するには,各照合項目に対してオプションのオペランドを使用します。また,文字列を比較する場合に無視される照合項目を指定するには,特殊シンボル IGNORE を使用します。

collating_element_list の位置に指定される反復記号キーワードは,指定範囲内の文字に対して,先行する文の左側にある文字シンボルの重みを基準に,昇順で,重みが割り当てられることを表します。

反復記号キーワードを使用すると,異なる文字セット記述 ( charmap ) ソース・ファイルでコンパイルした場合に,異なる照合を行うロケールが作成されます。

UNDEFINED 特殊シンボルは,明示的に,または反復記号シンボルで指定されていない,すべてのコード化文字セット値を含みます。これらの文字は,UNDEFINED 特殊シンボルで指示される位置に,文字照合順序に従って挿入され,同じ重みがすべて割り当てられます。 UNDEFINED 特殊シンボルがなく,照合順序が,コード化文字セットからすべての照合項目を指定していない場合,警告メッセージが表示され,未定義文字がすべて,文字照合順序の最後に設定されます。


LC_COLLATEロケール定義ソース・ファイル・カテゴリ内の,照合順序文セクションの例を次に示します。

order_start     forward;backward 
UNDEFINED       IGNORE;IGNORE 
<LOW> 
<space>         <LOW>;<space> 
...              <LOW>;... 
<a>             <a>;<a> 
<a-acute>       <a>;<a-acute> 
<a-grave>       <a>;<a-grave> 
<A>             <a>;<A> 
<A-acute>       <a>;<A-acute> 
<A-grave>       <a>;<A-grave> 
<ch>            <ch>;<ch> 
<Ch>            <ch>;<Ch> 
<s>             <s>;<s> 
<ss>            <s><s>;<s><s> 
<eszet>         <s><s>;<eszet><eszet> 
...             <HIGH>;... 
<HIGH> 
order_end 

この例は,次のように解釈されます。

  • UNDEFINED 特殊シンボルは,定義内に明示的に,または反復記号で指定されていない文字はすべて,照合の際に無視されることを表す。

  • <space>と<a>のあいだの照合項目はすべて,同じ 1 次等価クラス,およびコード化文字セット値に基づく個別の 2 次重みを持つ。

  • あらゆる種類の文字a ( 大文字と小文字,発音区別符の有無 ) は,同じ 1 次照合クラスに属する。

  • <c><h>という複数文字照合項目は, <ch>照合シンボルで表わされ, <C><h>複数文字照合項目と同じ 1 次等価クラスに属する。

  • <eszet>文字は, <s><s>文字列として照合される ( つまり,1 つの<eszet>文字が,比較の前に2つの文字に展開される)。



2.3 LC_CTYPE カテゴリ

LC_CTYPEカテゴリは,文字分類,大文字/小文字変換,および他の文字属性を定義します。このカテゴリは LC_CTYPEヘッダではじまり, END LC_CTYPEトレーラで終了します。

LC_CTYPE カテゴリ文に対するオペランドはすべて,文字のリストとして定義されます。各リストは,セミコロンで区切られた 1 つ以上の文字またはシンボル文字名で構成されます。反復記号 (...) は,一連の文字を表します。たとえば, <a>;...;<z> という指定は,a〜z の範囲を表します。

表 2-2 は, LC_CTYPE カテゴリで認識される文キーワードの一覧です。キーワードの説明の中で,「自動的に含まれる」という表現は,参照文字が含まれる場合も含まれない場合も,エラーが発生しないことを表します。指定がない場合は文字が提供され,指定されている場合はその指定が適用されます。

表 2-2 LC_CTYPE カテゴリ・キーワード
キーワード 説明
copy このカテゴリの定義として使用する,既存のロケール名を指定する。

copy文を指定すると,このカテゴリの中で他のキーワードを指定する必要はない。

upper 大文字を定義する。

cntrldigitpunct,または spaceキーワードで定義される文字は指定しない。大文字のA〜Zは,このセットに自動的に含まれる。

lower 小文字を定義する。

cntrldigitpunct,または spaceキーワードで定義される文字は指定しない。小文字のa〜zは,このセットに自動的に含まれる。

alpha すべての英文字を定義する。

cntrldigitpunct,または spaceキーワードで定義される文字は指定しない。 upperおよび lowerキーワードで定義される文字は,この文字クラスに自動的に含まれる。

digit 数字文字を定義する。

数字0,1,2,3,4,5,6,7,8,9だけを指定できる。数字0〜9は,このセットに自動的に含まれる。

space 空白文字を定義する。

upperloweralphadigitgraph,または xdigitキーワードで定義される文字は指定しない。スペース,改ページ,用紙送り,改行,キャリッジ・リターン,タブ,および垂直タブ文字は,このセットに自動的に含まれる。

cntrl 制御文字を定義する。

upperloweralphadigitpunctgraphprint,または xdigitキーワードで定義される文字は指定しない。

punct 区切り文字を定義する。

upperloweralphadigitcntrl,または xdigitで定義される文字は指定しない。

graph スペース文字を除く,プリント可能文字を定義する。

cntrlキーワードで定義される文字は指定しない。 upperloweralphadigitxdigit,および punctキーワードで定義される文字は,この文字クラスに自動的に含まれる。

print スペース文字を含む,プリント可能文字を定義する。

cntrlキーワードで定義される文字は指定しない。スペース文字,および upperloweralphadigitxdigit,および punctキーワードで定義される文字は,この文字クラスに自動的に含まれる。

xdigit 16進数字文字を定義する。

数字0,1,2,3,4,5,6,7,8,9だけを指定できる。ただし, 16進値の10〜15については,任意の文字を指定できる。これらの代替16進数字は,数字文字列を16進から数量に変換するときに,標準変換ルーチンが使用することはない。数字0〜9,および英字A〜Fと英字a〜fは,このセットに自動的に含まれる。

blank 空白文字を定義する。

この文字クラスには,スペースおよび水平タブ文字が含まれる。この文で定義される任意の文字は, spaceクラスに自動的に含まれる。

toupper 小文字から大文字へのマッピングを定義する。

このキーワードに対するオペランドは,コンマで区切られた文字のペアで構成される。各文字ペアは括弧()で囲まれ,セミコロン(;)で次のペアと区切られる。各ペアの最初の文字は小文字,2番目の文字は大文字と見なされる。 lowerおよび upperキーワードで定義された文字に限って指定できる。 toupperの指定を省略すると,デフォルトの設定で, a〜zはA〜Zにマップされる。

tolower 大文字から小文字へのマッピングを定義する。

このキーワードに対するオペランドは,コンマで区切られた文字のペアで構成される。各文字ペアは括弧()で囲まれ,セミコロン(;)で次のペアと区切られる。各ペアの最初の文字は大文字,2番目の文字は小文字と見なされる。 lowerおよび upperキーワードで定義された文字に限って指定できる。

tolower が指定されていなければ,デフォルトの設定に従って, toupper キーワードが指定されている場合,その逆のマッピングが行われる。 touppertolower の両キーワードの指定が省略されると,各マッピングは,C ロケールのマッピングに従う。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.