[left] [up] [right]

テーブルの更新方法

idnkitライブラリが内部で保持する、UincodeやIDNAのテーブルを更新する 方法について記します

はじめに

idnkitライブラリ (およびidnkitliteライブラリ、以下同様) は、内部に UincodeやIDNAのデータテーブルを保持しています。

このうちたとえばUnicodeのテーブルは、特定のUnicodeのバージョン (例: 6.0.0) に依存したものになっています。 idnkitバージョン2では複数のバージョンのテーブルを保持し、実行時に 切り替えることはできませんので、他のバージョン用のテーブルを使用したい 場合はテーブルを生成してidnkitをコンパイルし直す必要があります。 本書は、テーブルの生成手順について記します。

注意点として、テーブルを再生成すると、もとから同梱されている テーブルファイルは上書きされます。 必要に応じて、もとのファイルは事前にバックアップするなどして下さい。

Unicodeテーブルの生成手順

Unicodeテーブルを生成するには、次のようにします。

Unicode文字データベースファイルの入手

Unicode文字データベース (Unicode Character Database) のデータファイル のうち、idnkit用のテーブルを生成しようとしているバージョンのものを入手 します。 データファイルは、次の場所から入手できます。

http://www.unicode.org/ucd/

少なくとも、以下のデータファイルが必要です。

UTS #46データファイルの入手

UTS (Unicode Technical Standard) #46のデータファイルのうち、idnkit用 のテーブルを生成しようとしているバージョンのものを入手します。 データファイルは、次の場所から入手できます。

http://www.unicode.org/Public/idna/

少なくとも、以下のデータファイルが必要です。

なお、Unicode文字データベースとUTF #46のデータファイルのバージョンは、 同じにすることを強くお薦めします。

Unicodeデータファイルの配置

入手したUnicode文字データベースとUTF #46のデータファイルを、 idnkitのソースコードを展開すると作成されるdata サブディレクトリにすべて配置します。 (他のディレクトリに配置することも可能です。詳しくは後述します。)

Unicodeテーブルの生成

idnkitのソースコードを展開すると作成されるutil サブディレクトリにカレントディレクトリを移し、次のコマンドを実行します。

% ./generate_unicodeall.sh Unicodeのバージョン

ここで、Unicodeのバージョンには、Unicode文字データベースと UTS #46のデータファイルのバージョンを指定します (たとえば、Unicode 6.0.0用であれば "6.0.0")。 ../data以外の場所にデータファイルを配置したときは、 データファイルの場所を-datadirオプションで指定して下さい。

% ./generate_unicodeall.sh -datadir /somewhere/else Unicodeのバージョン

成功すると、次のようなメッセージが出力されます。

** Generate Unicode version file
** Generate Bidi class table
** Generate Cased table
** Generate Case_Ignorable table
** Generate Combining character table
** Generate Combining class table
** Generate Composition table
** Generate Decomposition table
** Generate Joining type table
** Generate Lowercase table
** Generate Script table
** Generate TR #46 casefold table
** Generate TR #46 validation table
** Generate Width table
** Complete

UnicodeテーブルのCプログラムファイルが、../lib/auto/に、 ヘッダファイルが../include/idn/auto/にそれぞれ生成されます。 「idnkitのインストール」にしたがってidnkit をコンパイルすることで、生成されたテーブルが使用されるようになります。

IDNAテーブルの生成手順

IDNAテーブルを生成するには、次のようにします。

IDNAデータファイルの入手

idnkit用にテーブルを生成したいバージョンのIDNAパラメタ (IDNA Parameters) ファイルのXML版を入手します。 データファイルは、次の場所から入手できます。

http://www.iana.org/assignments/idnabis-tables/idnabis-tables.xml

idnkit用のテーブルを生成するには、PerlパッケージXML::Simpleが必要と なります。

IDNAデータファイルの配置

入手したIDNAパラメタファイルを、idnkitのソースコードを展開すると 作成されるdataサブディレクトリに配置します。 (他のディレクトリに配置することも可能です。詳しくは後述します。)

IDNAテーブルの生成

idnkitのソースコードを展開すると作成されるutil サブディレクトリにカレントディレクトリを移し、次のコマンドを 実行します。

% ./generate_idnaall.sh [IDNAのバージョン]

ここで、IDNAのバージョンには、IDNAテーブルのバージョンを 指定します。 IDNAのバージョンを省略した際は、XMLデータからバージョン番号 が自動的に決定されます。 ../data以外の場所に データファイルを配置したときは、データファイルの場所を-datadir オプションで指定して下さい。

% ./generate_idnaall.sh -datadir /somewhere/else IDNAのバージョン

成功すると、次のようなメッセージが出力されます。


** Generate IDNA version file
** Generate IDNA category table
** Complete

IDNAテーブルのCプログラムファイルが、../lib/auto/に、 ヘッダファイルが../include/idn/auto/にそれぞれ生成されます。 「idnkitのインストール」にしたがってidnkit をコンパイルすることで、生成されたテーブルが使用されるようになります。

[left] [up] [right]