単語ファイルをオープン拡張辞書に変換 β版

 単語ファイル(読み・単語・品詞の組み合わせを羅列したテキストファイル)を元に、オープン拡張辞書を作成する簡易ツールです。単語ファイル中にない情報は規定値で補うため、任意の単語ファイルを指定するだけでオープン拡張辞書を簡単に作成できます。

扱える単語ファイルについて

 使用できる単語ファイルの形式は以下の通りです。

 簡易ツールなので、データのチェックは最小限です。たとえば読みが仮名だけで構成されているかというチェックなどは行なっていません。
 もっともエラーになる単語データがあったとしても辞書のインストールの際にはねられますから実害はありません。が、どうせならMicrosoftのサイトであらかじめオープン拡張辞書の仕様をチェックし、その単語ファイルで変換できそうか確認してから辞書を生成するといいでしょう。

 なお単語ファイル内の品詞がオープン拡張辞書用の品詞でなかった場合もエラーにせず、すべて普通名詞として処理しています。

十二国記用語・単語ファイル for Windows」に同梱されている品詞変換スクリプトを利用すれば、単語ファイル中の他の辞書用の品詞を、オープン拡張辞書用の品詞に変換することも可能です。

オープン拡張辞書用プロパティの指定方法

 オープン拡張辞書には辞書の名称や説明、著作権表記といった情報も含まれるため、そういった項目の指定が必要になります。何も指定しなくても規定値で生成されるようになってはいますが、使い勝手を考えればきちんと指定しておいたほうが無難です。特にネットで配布するなど、第三者が使用することを前提とした場合は必ず指定してください。

単語ファイルのヘッダ内に記載する

 単語ファイルのヘッダ内に、以下の書式で記載することができます(ヘッダ末尾に追加するといいでしょう)。ただし後述する設定ファイルがある場合は、設定ファイル内での記載が優先されます。

!OpenExtDic:GUID=辞書を識別するためのID。省略したり形式の不正なGUIDを指定すると、無視して新たに生成される
!OpenExtDic:Version=バージョン番号。半角数字のみで整数を指定。規定値はゼロ
!OpenExtDic:SourceURL=辞書の配布元URL
!OpenExtDic:CommentInsertion=文中へのコメントの挿入を許可するか。true/falseのどちらかを指定。規定値はfalse
!OpenExtDic:ShortName=辞書の短い名称
!OpenExtDic:LongName=辞書の長い名称
!OpenExtDic:Description=辞書の説明
!OpenExtDic:Copyright=著作権表記。必ず何か文字列を指定しないと、辞書のインストール時にエラーになる
!OpenExtDic:CommentHeader1=コメントウインドウに表示されるコメントのタイトル。規定値は「コメント」

 以下はサンプルです。

!OpenExtDic:GUID={14BE6E1E-3516-438B-A0B8-731BF2F18353}
!OpenExtDic:Version=1
!OpenExtDic:SourceURL=http://www.vector.co.jp/vpack/browse/person/an038747.html
!OpenExtDic:CommentInsertion=true
!OpenExtDic:ShortName=サンプル辞書
!OpenExtDic:LongName=サンプル辞書
!OpenExtDic:Description=サンプルの辞書です。
!OpenExtDic:Copyright=Copyright(C) 2013 ASANO Sei All Rights Reserved.

 なお、著作権表記は省略できないようです。何か文字を入れておかないと、辞書のインストール時にファイルが壊れている旨のエラーメッセージが表示されてインストールできません。パブリックドメインにしたい場合は、著作権表記の代わりにその旨の文字列を入れておくといいでしょう。

設定ファイルに記載する

 単語ファイルと同じ場所に、特定の命名ルールに則った設定ファイルを置き、その中に前項と同じ書式で記載します。ただし単語ファイルのヘッダ内と違い、各行の冒頭に ! は不要です。
 ここで指定した値は、単語ファイルのヘッダで記載した値より優先されます。

OpenExtDic:GUID={14BE6E1E-3516-438B-A0B8-731BF2F18353}
OpenExtDic:Version=1
OpenExtDic:ShortName=サンプル辞書
OpenExtDic:LongName=サンプル辞書
OpenExtDic:Description=サンプルの辞書です。
OpenExtDic:Copyright=Copyright(C) 2013 ASANO Sei All Rights Reserved.

 設定ファイルの名前は、以下の形式とします。

単語ファイルのベース名 + "オープン拡張辞書変換設定.txt"

 たとえば サンプル単語一覧.txt という単語ファイルがあったとすると、設定ファイルの名前は サンプル単語一覧オープン拡張辞書変換設定.txt になります。

実行方法

 まず当アーカイブを、フォルダ構成を保ったまま任意のフォルダに解凍します。

単一の単語ファイルを単一のオープン拡張辞書にする場合

  1. 入力ファイルの文字コードを指定します。初期値はシフトJISなので、ユニコードの単語ファイルを扱いたい場合は 単語ファイルをオープン拡張辞書に変換.wsf をテキストエディタで開き、19行目冒頭の // を削除します。次行には逆に冒頭に // を挿入します。
    19: var inEncoding = adoEnums.streamCharset.UNICODE; //Unicode
    20: //var inEncoding = adoEnums.streamCharset.SJIS; //Shift_JIS
  2. 単語ファイルを一個、単語ファイルをオープン拡張辞書に変換.wsf(またはそのショートカット)にドロップします。単語ファイルと同じ場所に設定ファイルがある場合は、自動的に一緒に読み込まれます。
  3. 単語ファイルと同じ場所にオープン拡張辞書が生成されます。ファイル名は、単語ファイルのベース名に拡張子dctxがついたものです。

複数の単語ファイルを単一のオープン拡張辞書にする場合

  1. 単一の単語ファイルの場合と同様に、必要に応じて入力ファイルの文字コードの指定を変更します。
  2. 対象となる単語ファイルを同じフォルダに格納します。すべて同じ文字コードである必要があります。
  3. 単語ファイルを格納したフォルダを単語ファイルをオープン拡張辞書に変換.wsf(またはそのショートカット)にドロップします。
  4. フォルダの直下にある、拡張子がtxtのファイルのうち、名前が「オープン拡張辞書変換設定.txt」で終わるファイルは設定ファイル、それ以外はすべて単語ファイルとみなされて処理されます。
  5. フォルダと同じ場所にオープン拡張辞書が生成されます。ファイル名は、フォルダ名に拡張子dctxがついたものです。

生成されるオープン拡張辞書の仕様

 辞書の文字コードはUTF-8です。単語ごとの属性については以下の通り。

 これらの属性を変更したい場合、一律に値を変えたいならテキストエディタで開いて一括置換するのが簡単です。単語によって値を変えたい場合は、もちろん同様にエディタで編集してもいいのですが、オープン拡張辞書を編集できるフリーソフトなどを利用すると楽かもしれません。

GUIDに関する注意

 GUIDは世界中で他と値がかぶらないようにしたIDです。ファイル名や辞書の名称が何であれ、オープン拡張辞書はこのIDでのみ識別されます。
 したがって初回はGUIDを指定せずに実行したとしても(この場合は当ツールがGUIDを生成します)、同じ単語ファイルなら、二回目以降は初回のGUIDと同じものを指定しなければなりません。でないと辞書のインストール時に別の辞書と見なされてしまうため、いろいろ不便なことになります。

 その単語ファイルで初めてオープン拡張辞書を生成したらテキストエディタで開き、4行目あたりの <ns1:DictionaryGUID> と </ns1:DictionaryGUID> の間にあるGUIDを、元の単語ファイルなり設定ファイルなりにコピー&ペーストしておきましょう。

<ns1:DictionaryGUID>{14BE6E1E-3516-438B-A0B8-731BF2F18353}</ns1:DictionaryGUID>

付属ツール

 batフォルダ下に以下のバッチファイルがあります。必要に応じてご利用ください。

cab解凍.bat
CAB方式で圧縮されたファイルをドロップすると解凍される。オープン拡張辞書でなくても可。
辞書圧縮.bat
未圧縮のオープン拡張辞書(拡張子はdctx)をドロップすると、CAB方式で圧縮した辞書が作られる。作られた辞書ファイルは拡張子の末尾に c がついた「dctxc」だが、そのままインストール可能。
※単に拡張子を「dctxc」と指定して圧縮ファイルを作っているだけなので、実際は他のファイルでも圧縮可能です。紛らわしいだけで。

免責事項、他

 当ツールを使用したことで何らかの不利益を被ったとしても、作者はいっさい責任を負いません。すべて自己責任でお使いください。
 不具合や誤りのご指摘、ご要望、その他問い合わせたい事項がありましたら、メインサイトの掲示板までお願いします。

 なお当アーカイブは、無償で行なうかぎり、改造や再配布を自由に行なってかまいません。ただしドキュメントやプログラムコード内にある著作権表記は削除しないでください(改造者として追記するのはかまいません)。