Docker上にCUI版の英語辞書を作成する。
はじめに
- CUI版の英語辞書で何かいいのはないかと探していたら
sdcv というstardictのコマンドバージョンを見つけました。Docker上に環境を作ってみましたがなかなかいい感じです。
1. ホスト環境ディレクトリ構成
root
├── Dockerfile
├── dict_file(辞書ファイル格納ディレクトリ)
│ ├── 辞書ファイル1
│ ├── 辞書ファイル2
│ ├── XXXX
root
├── Dockerfile
├── dict_file(辞書ファイル格納ディレクトリ)
│ ├── 辞書ファイル1
│ ├── 辞書ファイル2
│ ├── XXXX
stardict形式の辞書ファイルをdict_fileに配置します。持っていない場合は下記サイトにいくつか使用できるものがあります。
http://download.huzheng.org/
手持ちの辞書ファイルをstardict形式に変換するツールもネット上にいくつかあります。
2. Dockerfile
FROM ubuntu:18.04
RUN apt update &&\
# 日本語環境、sdcv、lynxをインストールする
apt install -y language-pack-ja-base language-pack-ja sdcv lynx --no-install-recommends &&\
apt clean &&\
rm -rf /var/lib/apt/lists/* &&\
locale-gen ja_JP.UTF-8 &&\
echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc &&\
echo 'export LANGUAGE="ja_JP:ja"' >> ~/.bashrc &&\
# 結果表示に使用するプログラムを指定する。
echo "export SDCV_PAGER='/usr/bin/lynx -stdin'" >> ~/.bashrc
FROM ubuntu:18.04
RUN apt update &&\
# 日本語環境、sdcv、lynxをインストールする
apt install -y language-pack-ja-base language-pack-ja sdcv lynx --no-install-recommends &&\
apt clean &&\
rm -rf /var/lib/apt/lists/* &&\
locale-gen ja_JP.UTF-8 &&\
echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc &&\
echo 'export LANGUAGE="ja_JP:ja"' >> ~/.bashrc &&\
# 結果表示に使用するプログラムを指定する。
echo "export SDCV_PAGER='/usr/bin/lynx -stdin'" >> ~/.bashrc
今回、ubuntuを使用しましたが他のイメージでも日本語表示をできるようにすれば構築可能と思います。
sdcv用環境変数、SDCV_PAGERはデフォルト指定なしですが結果をhtmlで出力する辞書が多いのでlynxを指定してみました。表示がrichになります。
3. コンテナbuildして起動する
docker build ./ -t sdcv
docker run --rm -v ${PWD}/dict_file:/root/.stardict/dic -it sdcv bash
docker build ./ -t sdcv
docker run --rm -v ${PWD}/dict_file:/root/.stardict/dic -it sdcv bash
辞書ファイルを格納するディレクトリをホストマシンと共有します。
4. 辞書ファイルの展開(必要に応じて)
tar -xjvf /root/.stardict/dic/辞書ファイル1.tar.bz2 -C /root/.stardict/dic
tar -xjvf /root/.stardict/dic/辞書ファイル2.tar.bz2 -C /root/.stardict/dic
tar -xjvf /root/.stardict/dic/辞書ファイル1.tar.bz2 -C /root/.stardict/dic
tar -xjvf /root/.stardict/dic/辞書ファイル2.tar.bz2 -C /root/.stardict/dic
アーカイブ形式の辞書ファイルはデフォルトの辞書サーチディレクトリに展開します。
sdcv用環境変数、STARDICT_DATA_DIRでもサーチディレクトリを指定することができます。
5. 単語検索(インタラクティブモード)
# sdcv
Enter word or phrase: <意味を知りたい単語>
# sdcv
Enter word or phrase: <意味を知りたい単語>
Ctrl+Cで終了するまで Enter word or phrase: のプロンプトが表示され連続して単語を検索できます。
6. 単語検索(ノンインタラクティブモード)
# sdcv <意味を知りたい単語>
# sdcv <意味を知りたい単語>
1回のみの検索です。
7. help表示
# sdcv -h
# sdcv -h
デフォルトfuzzy-search(あいまい検索)ですが、オプションを指定すると完全一致で検索することができます。
8. man ページ
・sdcv用の設定ファイルや環境変数の説明が記載されています。
・複数の辞書を登録したときに$(HOME)/.sdcv_orderingに辞書名を設定して表示順を変更することができます。
・$(HOME)/.sdcv_historyに検索した単語が保存されます。ノンインタラクティブモードのみ?(ファイルの永続性は考慮が必要)
9. その他
コマンドベースなので検索結果を他プログラムのインプットにする等、いろんな活用が可能となります。
Author And Source
この問題について(Docker上にCUI版の英語辞書を作成する。), 我々は、より多くの情報をここで見つけました https://qiita.com/Aco-gt/items/95e090190e20c9bb7012著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .