英辞郎をStarDict形式に直接変換するスクリプト「eiji2sd」
英辞郎をStarDict辞書に変換するスクリプトを作りましたので公開します。StarDict、GoldenDict、OmegaTなどで英辞郎が使えるようになります。
ダウンロードリンク(Dropbox)eiji2sd_20160307.zip
最初、OmegaTで英辞郎を使いたくて方法を調べていたのですが、PDIC用データをエディタで編集する作業が必要だったり、StarDict変換ツールがUnix環境前提だったりと敷居が高く、もっと手軽に変換する方法が必要だと考えました。なので、Windowsでも変換できるようにPowerShell(ついでにPerl)で作成しています。
この手のツールはGo言語で作りたかったのですが、まだ習得中なので・・・
不具合修正
eiji2sd_20160307:PowerShell版で辞書ファイル未作成の状態だとResolve-Pathがエラーになることがわかり、Join-Pathを使うように変更した(YU-TANGさんより)
使い方(PowerShell版)
変換スクリプトはeiji2sd-text.ps1(StarDict用)とeiji2sd-html.ps1(GoldenDict、OmegaT用)があり、使う前にセキュリティ設定の変更が必要です。エクスプローラのメニューで「ファイル」→「Windows PowerShell を開く」からコンソールを起動し、「Set-ExecutionPolicy Unrestricted」と入力してスクリプトを実行できるようにする必要があります。
英辞郎のテキストデータ(EIJI-140.TXT、数字はバージョンによる)をスクリプトと同じ場所に保存し、「.\eiji2sd-html.ps1 .\EIJI-140.TXT」と入力すると変換が行われます。
stardict.idx、stardict.dict、stardict.ifoという3つのファイルが作成されるので、適当な名前のフォルダー(EIJIROなど)に入れて各ソフトの辞書保存場所にフォルダーごとコピーしてください。(OmegaTの場合はプロジェクトのdictionaryフォルダーに保存)
さらに、dictzipというツールを使えばdictファイルを圧縮することができます。 https://github.com/Tvangeste/dictzip-win32/releases
課題
- Go言語で作りなおして速度と移植性を向上させる
- .synファイルも作成する