【導入編 3-3】Windows2000 でオープン拡張辞書を使う [Office IME 2010 / オープン拡張辞書エディタ / EmEditor]

0
投稿者 AlbertSteins on 2015年5月15日金曜日 , in , , , , , ,
リネージュ辞書ベータ版を公開した際,Microsoft Office IME 2010 のオープン拡張辞書の登録語に 2 つ以上のコメントが付けられている場合,Windows2000 ではコメント ウィンドウが表示されなくなることを指摘した.

一般公開されている,こうした複数コメント付きの辞書をできるだけ情報損失なく Windows2000 で利用する方法はないか考えてみた.

方針として,コメントが複数の場合,一つにまとめることにする.
最低限,必用となるのが「オープン拡張辞書エディタ (Open Extended Dictionary Editor (OEDEditor))」.

窓の杜 - 【REVIEW】「Office IME 2010」の“オープン拡張辞書”を作成「オープン拡張辞書エディタ」

入手した辞書を OEDEditor から開く.
コメントのカラムが「コメント1」の 1 つだけならそのまま利用できる.
カラムが「コメント1~3」の 3 つある場合,その辞書は Windows2000 では正しく利用できないため,修正が必要となる(コメント2と3がすべて空だとしてもNG).

まずは簡単な対処法.
メニューバーから [編集] - [辞書のプロパティ] を開き,「コメントモード」を「表形式」から「複数行形式」に変更して [OK].
エディタ上ではコメント2・3が消失したように見えるが,情報は保持されている.ただし,この時点で「コメント2・3のタイトル」の情報は失われる.
[ファイル] - [名前を付けて保存] で「ファイルの種類」を「オープン拡張辞書(*.dctx)」(非圧縮)にして保存.
テキストエディタで開いてみれば,コメント2・3の情報が記録されているのが確認できる.
この辞書を Office IME 2010 で取り込むと,コメント1~3が一つのコメントにまとめられて表示されるようになる.

ただし,この方法だと1~3の各コメントが繋がった状態で表示されて,区別が付かなくなり見づらい.
あいだに「, 」などの区切り記号を挟むといった配慮をしたいときには,正規表現を使った置換ができる「EmEditor」のようなテキストエディタを利用して,ファイルを編集する必要がある.

Unicode、巨大ファイルにも対応する Windows用定番テキストエディター! - EmEditor(Emurasoft EmEditor JP 公式)

公開されているオープン拡張辞書は,圧縮形式 (*.dctxc) で配布されているのが一般的.
テキストエディタで編集できるようにするためにいったん OEDEditor で開き,非圧縮形式 (*.dctx) で保存し直す.

保存したファイルをテキストエディタで開くと,辞書内の各登録語は次のような書式で記述されている([TAB] はタブ,[CR] は改行).

[TAB]<ns1:DictionaryEntry>[CR]
[TAB][TAB]<ns1:PartOfSpeech>Noun</ns1:PartOfSpeech>[CR]
[TAB][TAB]<ns1:OutputString>ディスインテグレート</ns1:OutputString>[CR]
[TAB][TAB]<ns1:InputString>でぃぐ</ns1:InputString>[CR]
[TAB][TAB]<ns1:CommentData1>Disintegrate</ns1:CommentData1>[CR]
[TAB][TAB]<ns1:CommentData2>DIG</ns1:CommentData2>[CR]
[TAB][TAB]<ns1:CommentData3>一般魔法 Lv10 Lawful 光</ns1:CommentData3>[CR]
[TAB][TAB]<ns1:URL>http://server7.s151.xrea.com/souba/item/10/%E3%83%87%E3%82%A3%E3%82%B9%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88</ns1:URL>[CR]
[TAB][TAB]<ns1:Priority>100</ns1:Priority>[CR]
[TAB][TAB]<ns1:ReverseConversion>true</ns1:ReverseConversion>[CR]
[TAB][TAB]<ns1:CommonWord>false</ns1:CommonWord>[CR]
[TAB]</ns1:DictionaryEntry>[CR]

なお,コメント1~3やリンクがない場合は,タグを含む該当する行自体が無い.
コメントの有無に応じて,以下の置換処理を施す.

コメント1+コメント2+コメント3 → コメント1に統合
コメント1+コメント2 or コメント1+コメント3 or コメント2+コメント3 → コメント1に統合
コメント2 or コメント3のみ → コメント1に変更
コメントなし or コメント1のみ → 何もしない

コメント行を正規表現すると次のようになる(コメント内容を後方参照できるように記述).

\t\t<ns1:CommentData[1-3]>(.+)</ns1:CommentData[1-3]>\n

これを踏まえて,まずコメントが 3 つの場合を以下のように置換する(区切り記号はカンマ).

検索文字列: \t\t<ns1:CommentData1>(.+)</ns1:CommentData1>\n\t\t<ns1:CommentData2>(.+)</ns1:CommentData2>\n\t\t<ns1:CommentData3>(.+)</ns1:CommentData3>\n
置換文字列: \t\t<ns1:CommentData1>\1, \2, \3</ns1:CommentData1>\n

次にコメントが 2 つの場合を以下のように置換する.

検索文字列: \t\t<ns1:CommentData[12]>(.+)</ns1:CommentData[12]>\n\t\t<ns1:CommentData[23]>(.+)</ns1:CommentData[23]>\n
置換文字列: \t\t<ns1:CommentData1>\1, \2</ns1:CommentData1>\n

残っているのは,コメント2 or コメント3のみの場合なので,置換は簡単だ.

検索文字列: CommentData[23]
置換文字列: CommentData1

以上で,辞書内のコメントは全てコメント1のみに統合される.
置換ミスがないか確認するために,保存したファイルを OEDEditor から開いてみて,正常に読み込めれば問題ない.
メニューバーから [編集] - [辞書のプロパティ] を開き,「コメントモード」を「表形式」から「複数行形式」に変更して [OK],圧縮形式で保存して完了.

ただし,コメント自体に正規表現のメタ文字(下記)を含む場合は,別途対応が必要になる.

.(ピリオド) |(パイプ) *(アスタリスク) ?(クエスチョンマーク) +(プラス)
(, )(パーレン) {, }(ブレイス) [, ](ブラケット) ^(キャレット) $(ドル) \(円)

参考資料「EmEditor 使い方: 正規表現構文

Share This Post

0 コメント:

コメントを投稿