web-dev-qa-db-ja.com

aspellで多言語辞書を使用する

2つの言語を含む大きな.texファイルがあり、気が狂うことなくスペルチェックしたいと思います。したがって、1つの言語のスペルチェックを行い、他の言語の単語に対して「無視」を押すことはできません。

だから私はaspellを読んで、辞書を組み合わせるためにあなた自身の.multiファイルを定義できることを知りました。しかし、明らかに、異なる言語の辞書に対してこれを行うことはできません。エラーがスローされます(または、GUIから作業している場合、辞書は空で表示されます)。

また、この機能をウィッシュリストに載せているバグレポートを見つけましたが、まだ誰も実装していないようです。

だから、私の質問は:2つの異なる言語の2つの辞書を一度に使用する正しい方法はありますか?

この問題は私に頭痛の種を与えました、そしてインターネット上でそれをする方法についての文書はほとんどありません。だから、私は答えとして見つけた回避策を提示し、他の誰か(将来の私を含む)のトラブルを救うために。しかし、もっと良い解決策があれば、投稿してください。

3
fifaltra

だから、これが私のハウツーです:

ステップ1:システム上でaspell辞書を見つけます。 /usr/lib/aspell/で見つけました。 .multiファイルと.rwsファイルが表示されます。以下のすべてのコマンドは、そのディレクトリで実行されます。

ステップ2:必要な辞書からワードリストを生成します。辞書に単語とともに接辞が保存されている場合は、それらを展開する必要があります。

aspell --lang=en --master=en.multi  dump master > /home/user/meinwoerterbuch.txt
aspell -d de dump master | aspell -l de expand | Perl -e 'while(<>){ print join("\n", split), "\n";}' >> /home/user/meinwoerterbuch.txt 

ここではドイツ語の辞書を拡張する必要があり、1行に1つの単語が必要だったため、Perlを使用して1行に複数の単語を取得し、それぞれを1行余分に印刷しました。 aspellの出力(私はheadをお勧めします)を見て、辞書を拡張する必要があるかどうかを確認してください。

ステップ3:辞書の言語名を選択します。ハンガリー語を選んだのは、実際にハンガリー語の辞書を使ってスペルチェックを行うことは絶対にないだろうからです。そうすれば、簡単に見つけることができます。有効なISO言語コードを備えたものでなければならないと思います。ハンガリー語の場合、それはhuです。

ステップ4:hu.datおよびhu_phonet.datファイルを作成します。動作しているように見える最も削除されたバージョンは次のとおりです。

hu.dat

name hu 
charset iso8859-1
soundslike hu 

hu_phonet.dat

version 0.1-2002.12.15-3

ステップ5:でマージされた辞書を作成する

Sudo aspell --lang=hu --encoding=utf-8 create master ./hu.rws < /home/user/meinwoerterbuch.txt

Txtファイルはutf-8でエンコードされているため、encoding = utf-8を指定する必要がありました。それなしでエラーを投げました。

手順6:次のような適切なhu.multiファイルを作成します。

add hu.rws

ステップ7:スペルチェッカーでハンガリー語を選択し、スペルチェックを開始します。

3
fifaltra