localedef コマンド

目的

ロケールと文字セット記述 (charmap) のソース・ファイルを変換して、ロケール・データベースを作成します。

構文

localedef [ -c ] [ -f Charmap ] [ -i SourceFile ] [ -L LinkOptions ] [ -m MethodFile ] LocaleName

説明

localedef コマンドは、ロケール依存情報 (照合、日付と時刻のフォーマット、および文字の属性など) の定義が入っているソース・ファイルを、実行時に使用するロケール・オブジェクト・ファイルに変換します。 localedef コマンドで作成されるロケール・オブジェクト・ファイルは、setlocale サブルーチンでロケールを設定するコマンドとサブルーチンに使用されます。

-i SourceFile フラグと変数は、ソース・カテゴリー定義を含むファイルを指定します。 -i フラグが指定されないと、ファイルは標準入力から読み取られます。

-f CharMap のフラグと変数は、 キャラクター・シンボルを実際のキャラクター・エンコードにマッピングするファイルを指定します。 -f フラグを使用することによって、1 つのロケール・ソース定義を複数のコード・セットに適用できるようになります。 -f フラグが指定されない場合、CharMap 変数のデフォルト値は ISO8859-1 です。

LocaleName パラメーターは、localedef コマンドによって、指定されたソース・ファイルから生成されたロケール・データベースのロケール名を指定します。 LocaleName パラメーターは、ファイルの位置の絶対パス名か相対パス名のどちらかで指定できます。

ロケール・カテゴリーのソース定義に、copy ステートメントが入っていて、このステートメントで、システムにインストールした既存のロケールが指定されていると、localedef コマンドは、指定したロケールに有効なカテゴリー・ソースの定義がソース定義に含まれている場合と同様に処理を進めます。

注:
  1. localedef コマンドは、C コンパイラーを使用してロケール・データベースを生成します。 したがって、このコマンドを使用するには、C コンパイラーをインストールしておかなければなりません。
  2. システム単位のデータベースを置き換える場合は、新しいロケールがシステム全体で使用されるように、ソフト・リブートを実行することをお勧めします。

永続エラーが検出されると、永続出力は作成されません。

警告メッセージが表示されると、-c フラグが指定されていれば永続出力が作成されます。 次の条件が発生すると、警告メッセージが表示されます。

  • Charmap 変数が指すファイル内で見つからなかったシンボル名が、LC_TYPE カテゴリーまたは LC_COLLATE カテゴリーの記述に使用されている場合。 これは、カテゴリーのエラー条件です。
  • キーワード order_start のオペランド数が COLL_WEIGHTS_MAX 制限を超えている場合。
  • インストールによってサポートされていないオプションのキーワードがソース・ファイルに入っている場合。

フラグ

項目 説明
-c 警告メッセージが発行された場合でも、ロケール・テーブルの作成を強制します。
-f CharMap 実際のキャラクター・エンコードに対するキャラクター・シンボルと照合エレメント・シンボルのマッピングを含むファイルの名前を指定します。 ロケールは、ただ 1 つのコード・セットのみに関連付けられます。 このフラグが指定されない場合、ISO 8859-1 コード・セットが採用されます。
注: 定められたシステム提供の CharMap ファイルを使用すれば、間違いなく機能します。 ユーザー提供の CharMap ファイルでも、正しく定義されていれば適切に機能することもありますが、使用結果については保証できません。
-i SourceFile ロケール・カテゴリーのソース定義を含むファイルのパス名を指定します。 このフラグが指定されないと、ソース定義は標準入力から読み取られます。
-L LinkOptions 指定したリンク・オプションを、ロケールの構築に使用される ld コマンドに渡します。
-m MethodFile ロケールの作成時にオーバーライドするメソッドを記述するメソッド・ファイルの名前を指定します。 メソッド・ファイルは、既存の定義をオーバーライドするユーザーのサブルーチンおよび指定されたサブルーチンを含むライブラリーのパス名を指定します。localedef コマンドはメソッド・ファイルを読み取り、ロケール・オブジェクトの構成時にエントリー・ポイントを使用します。 指定したコード・セット・メソッドは、CharMap 変数が指すファイルの解析にも使用されます。
注: 64 ビット・ロケールを作成するには、メソッド・ファイルがライブラリーのパスを、指定されたサブルーチンを含む 2 つの共用オブジェクト (1 つは 32 ビットで他方は 64 ビット) を持つ単一アーカイブとして指定する必要があります。32 ビットおよび 64 ビットの共用オブジェクトに別個のパスを指定すると、非互換 XCOFF フォーマットのために localedef コマンドが失敗する原因となります。
LocaleName 作成されるロケールの名前を指定します。 その後このロケール情報にアクセスするときには、この名前を使用できます。

終了状況

localedef コマンドは次の終了値を戻します。

項目 説明
0 エラーは発生せず、ロケールは正常に作成されました。
1 警告が発生し、ロケールは正常に作成されました。
2 ロケール指定が制限を超えたか、使用された 1 つ以上のコード・セットがインプリメントでサポートされていなかったため、ロケールが作成されませんでした。
3 新しいロケールを作成する機能はサポートされませんでした。
>3 警告またはエラーが発生し、ロケールは作成されませんでした。

  1. Austin という名前のロケールを標準入力から作成し、警告を無視するには、次のように入力します。
    
    localedef  -c  Austin
  2. ソース入力として Austin.src を使用して、Austin という名前のロケールを作成するには、次のように入力します。
    localedef  -i  Austin.src  Austin