OmegaT私的メモ その1:英辞郎辞書準備編(+PDIC設定補足)
久々にOmegaTを設定しようとしたところ色々忘れかけていたので、環境構築含めてメモしていきます。まずはOmegaT用の英辞郎の辞書変換+PDICの設定、使い方などについてです。
0.環境、準備する辞書ファイルについて
*以下ユーザ名、パス、ファイル名などは環境、状況にあわせて読み替えてください
今回はWindows10 + WSL2 + Ubuntu + Z Shell(zsh)環境での説明となります。
後述する辞書の変換処理はWSL上のPerlで行います。
本記事ではWSLについて解説しませんが、ウェブ上には多数の導入解説が存在します(一例)。WSL導入時にはBIOSの設定変更が必要になる場合があります。私はWindows Terminal Previewを使用してWSLを操作しています。
*2021/10/02追記
WSLのインストールは大幅に簡易化されました。この手順は次に環境構築する際に試してみる予定です。
辞書変換処理はPowerShellでも実施可能です。WSLの導入に不安がある方はPowerShell版の使用をおすすめします。ただし私はPowerShellでの変換を実施したことがないため、今回解説などは行っていません。
ActivePerlでも変換可能だと思いますが、こちらも私は触ったことがありません。
英辞郎の辞書データファイルには
書籍版 英辞郎 第八版
のCD-ROMに収録されているテキストファイル(.txt)を使用しました。
書籍版英辞郎に収録されている辞書データは第九版以降セキュリティ強化に伴い変換等の作業はできない(=.txtは収録されていない)ようです。書籍版購入時はご注意ください。
中古で購入する際は必ずCD-ROMが付属していることを確認してください。CD-ROMに辞書データが収録されています。
英辞郎、略辞郎はBOOTHで販売されているダウンロード版も存在します。
英辞郎 Ver.144.8(2015年3月20日版)のテキストデータ
略語郎 Ver.144(2015年3月20日版)のテキストデータ
私はBOOTH販売版を購入していないため、OmegaT用辞書に変換可能かは未確認です。変換できると思いますが断言は避けておきます。
BOOTHでは和英辞郎、例辞郎も販売されていますが今回は使用しません。
本記事とは関係ありませんが、上記の書籍版英辞郎にはmacOSの辞書.app(Dictionary.app)用の英辞郎辞書ファイル(.dic)も収録されています。辞書.appでも英辞郎を使用したい人は書籍版が価格的にはお得だと思います。ただしダウンロード販売版のほうがバージョンが上がっています。またmacOSのバージョンによっては書籍版の辞書ファイルがインストールできない(インストーラーが起動できない)ことに注意が必要です。
英辞郎のテキストファイルを辞書.app用に変換することは可能ですが、それなりに面倒かつある程度PC系の知識がないと難しいかもしれません。興味がある方は検索してみてください。
1.変換用スクリプトをダウンロード
となっていますが、ありがたいことに英辞郎の辞書データをStarDict形式に変換するPerlのスクリプトを作成した方がいるので、今回はこれを使用します。
*WSL未導入の場合は同梱されているPowerShell版で変換してください。
英辞郎をStarDict形式に直接変換するスクリプト「eiji2sd」
変換スクリプトをダウンロード、デスクトップに作業用フォルダ「eiji2sd」を作成、そこに変換スクリプトを解凍します。
2.英辞郎、略辞郎データの結合
*略辞郎を持っていない or 不要な場合、RYAKU141.TXTの結合(cat)は不要です
作業用フォルダに英辞郎、略辞郎のテキストファイルを設置、WSLを起動し2つの辞書を結合(cat)します。
cd /mnt/c/Users/(Windows上でのユーザ名)/Desktop/eiji2sd
cat EIJI-141.TXT > merged.txt
cat RYAKU141.TXT >> merged.txt
これで2つの辞書がmerged.txtに結合されます。
ちなみに例辞郎を結合したところOmegaT上で辞書データが表示されなくなり、和英辞郎を結合したところOmegaTの辞書読み込みが延々と続く状態になりました。原因は調査していません。
3.変換処理
変換処理を行います。
perl eiji2sd-html.pl merged.txt
処理が完了すると"Done."というメッセージが表示され、3ファイル(stardict.dict、stardict.idx、stardict.ifo)が作成されます。
変換処理後merged.txtは不要になるので、適時削除してください。
4.辞書データ設置、動作確認
上記で作成した3ファイルを任意のプロジェクトの辞書フォルダーにコピーし、動作確認します。
辞書フォルダーはプロジェクト→プロジェクト設定で確認できます。
なおOmegaTは辞書をオンメモリに読み込むので、メモリが4GBだとワリとカツカツな状態になってしまいます。
5.辞書フォルダーを変更する or リンクを貼る
OmegaTでプロジェクトを作成するごとに辞書ファイルをコピーするのではなく、
・辞書ファイルを置くフォルダーを固定で決めて
・プロジェクト設定の辞書フォルダーを変更する(前述参照) or 辞書ファイルにリンクを貼る or 辞書フォルダにリンクを貼る
とディスク容量の削減になります。
私は辞書フォルダへのリンクを貼っています。
5-1.辞書ファイルごとにハードリンクを貼る
OmegaTの辞書データ/辞書用フォルダー、プロジェクト共にWindowsのドキュメントフォルダ以下に存在するとしておきます。
echo "固定で辞書ファイルを置いているフォルダーに移動"
cd /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/dictionary
echo "プロジェクト内の辞書フォルダーにハードリンクを貼る"
ln ./stardict.dict /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/(プロジェクト名)/dictionary/stardict.dict
ln ./stardict.idx /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/(プロジェクト名)/dictionary/stardict.idx
ln ./stardict.ifo /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/(プロジェクト名)/dictionary/stardict.ifo
5-2.辞書フォルダにシンボリックリンクを貼る
WSLのlnだとフォルダへのリンクがうまく貼ませんでした(私が手順を分かっていないだけかも)。
(WSLではなく)管理者権限でコマンドプロンプトを起動、または開発者モードを有効化してコマンドプロンプトを起動、mklinkすることで辞書フォルダへシンボリックリンクが貼れました。
cd C:\Users\(Windows上でのユーザ名)\Documents\omegat\(プロジェクト名)
mklink /d dictionary C:\Users\(Windows上でのユーザ名)\Documents\omegat\(辞書ファイルが入っているフォルダ)
*2021/01/11 追記
cmd.exe /c mklink
のような書き方でWSLからコマンドプロンプトのmklinkを実行できますが、コマンドプロンプトから実行したほうがわかりやすいと思います。
6.辞書ファイルの圧縮(*任意)
StarDict形式の.dictファイルと.idxファイルは圧縮することができます。OmegaTは圧縮した辞書ファイルも参照できます。
圧縮完了後、圧縮前の.dictファイルと.idxファイルは削除、退避しておきます。
圧縮ファイルの中身を参照したり解凍するにはExplzh for Windowsが楽です。余談ですがExplzhは非常に優秀かつ使いやすいソフトウェアだと感じます。Windowsを使用するメリットの一つではないでしょうか。
6-1.dictファイルの圧縮(dzファイル作成)
前述の英辞郎変換用スクリプトが配布されているサイトからもリンクが貼られていますが、dict辞書ファイルを圧縮するWindows用アプリケーションが配布されています。
コマンドプロンプトでdictzip.exeを実行しdictファイルを圧縮します。
dictzip.exe 辞書ファイル.dict
*2021/01/12追記
WSL2(Ubuntu)でdictzipをインストールして
sudo apt-get update -y
sudo apt-get install -y dictzip
圧縮して
dictzip -k 辞書ファイル.dict
OmegaTでも問題なく検索できることを確認しました。以下のgzip同様kオプションがないと圧縮元ファイルが削除されます。
6-2.idxファイルの圧縮(gzファイル作成)
WSLでgzipを実行しidxファイルを圧縮します。kオプションを付けないと圧縮元ファイルが削除されます。
gzip -9 -k 辞書ファイル.idx
6-3.圧縮したファイルへのハードリンクコマンド例
一応ファイル単位でのハードリンクコマンドの例を記載しておきます。
echo "固定で辞書ファイルを置いているフォルダーに移動"
cd /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/dictionary
echo "プロジェクト内の辞書フォルダーにハードリンクを貼る"
ln ./stardict.dict.dz /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/(プロジェクト名)/dictionary/stardict.dict.dz
ln ./stardict.idx.gz /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/(プロジェクト名)/dictionary/stardict.idx.gz
ln ./stardict.ifo /mnt/c/Users/(Windows上でのユーザ名)/Documents/omegat/(プロジェクト名)/dictionary/stardict.ifo
補足:PDICの機能補足
辞書アプリの一つとしてPDICが存在します。PDICは英辞郎専用ではなく汎用的な辞書アプリです。また辞書を準備すること(一例)で、自分の使用したい複数辞書を串刺し検索もできます。
OmegaTとPDICは直接関係ありませんが、"英辞郎と英語翻訳関連情報"としてPDICの便利な機能を補足しておきます。
書籍版英辞郎に収録されているPDICは古いバージョンなので、新しいバージョンをインストールすることをおすすめします。私は試作版を使用しています。
Appx-1.クイックポップアップ検索
PDICには「自動検索」機能が存在し、コピーした文字列の検索結果をポップアップ表示させることができます。OmegaT上でも使用できます。
「コピーのたびにポップアップするのは邪魔、でも検索はしたい」という場合は「PDIC本体で検索」を選択します。
(本当はOmegaT上でMouse Dictionaryのようにマウスオーバーで表示される辞書機能があれば最高ですね)
PDICの画面右上「自動検索」を有効にし(ボタンが押した状態になる)、「自動検索」を右クリック→「クイック・ポップアップ検索」を選択する
「クイック・ポップアップ検索」を実行した状態。文字列コピー→コピーした文字列が検索され、ポップアップ表示されます。
自分の使いやすいように設定も変更できます。自動検索対象ウィンドウ(ヘルプページでは「自動検索ウィンドウ限定」となっていますが)を指定することで、特定のアプリ ―― 例えば翻訳に使用しているアプリ ―― でのみ自動検索を実行させることも可能です。
特定のアプリでのみPDICで検索/ポップアップさせたい場合、AutoHotkey(AHK)を使用する方法もあります。AHKを使用することでPDICだけでなく別の辞書アプリや特定のサイトの検索ができます。
*以下のAHKの文法はV1の説明です、V2は文法が変わっています
AHKは解説しきれないのでここでは紹介にとどめておきますが、とりあえずスクリプトの先頭には
AutoHotkey設定メモ - Qiita
を真似て
は記述しておくのをおすすめします。経験上#InstallKeybdHook(厳密には#Persistentかも)と#UseHookは記述しておかないとキーの取りこぼしが発生しやすいです。
あと変数への代入は = と := でそれぞれ挙動が違います。ここは理解しておかないと混乱しやすいです。
変数と式 | AutoHotKey
Appx-2.Googleサジェスト機能
PDICは入力している単語をサジェストしてくれます。スペルを間違いやすい単語もサジェストしてくれます。
もしこの機能が見つからない場合、最新のPDICをダウンロードしてみてください。
Appx-3.人工音声再生機能
*2024/11/03追記
Windows11の場合は下記リンク先を参照ください。この方法はWindows10でも可能だと思いますが、Windows10環境での動作確認はしていません。
人工音声再生機能で英語の読み上げをさせることができますが、設定が必要です。
*Windows10を日本語環境としてインストールした場合、合成音声の初期値には日本語読み上げ(Haruka)が設定されていると思います。
コントロールパネル→音声認識
音声認識→合成音声
音声の選択→英語で読み上げができる音声を選択(例えばZira)
使用したい音声合成言語が見つからない場合はダウンロードする。
【了】