厄介な問題に躓いて、再び自信なさげなパッチを かずひこさん に送りました。
うちのlet me see...もCVS版に置き換えて、なかなか快適になりました。 しかし、スペル・チェッカー周りでまだ多少の問題がありました。 具体的に説明します。私のところでは「クラウン仏和辞典」を利用しています が、フランス語ではASCIIに収まらない文字があるため、ちょっと工夫が 必要です。日本語と併用するには入力方法という点で厄介だからです。 しかし、フランス語に現れる、ASCIIにはない文字は、普通のアルファベット にアクセント記号を加えたもの、および、アルファベットを二つ融合したような ものだけです。そのため、フランス語圏ではアクセント記号を省略したり、 アルファベットを分解して入力することによって、ASCIIだけで(疑似的に) 表現することがコンピュータ上では一般的に行なわれています。 「クラウン仏和辞典」ではこの方法に基づいて、ASCIIだけで単語を入力し、 検索することになっています。表示は外字を多用します。 他方、ispellのフランス語辞書は、少々驚いたことですが、ISO-8859-1 を使って、アクセント記号付きの文字等もそのまま表現しているようです。 これらの事情により、ASCIIにない文字を含んだ単語がispellによって 提示された場合、スペル・チェッカーが正しく機能してくれません。 ISO-8859-1がEUC-JPと混ざるため、表示にも若干問題があります。 一応この問題を回避するパッチを作成してみました。ispellの検索結果 をASCII表現に変換してしまうという方法です。このパッチでは、 letmesee.rbの中でやってしまってますが、これでは表示もASCIIに なってしまうので、本当はsearch.rhtmlの中でもうちょっとマシな処理 をした方が好ましいかもしれません。 これは辞書側の仕様とも関係するので、一般的な形で解決するのは難しいかも しれません。私はispellがサポートしている辞書のうち、英語とフランス語 しか試してませんし、「クラウン仏和辞典」以外に、英語以外の言語の辞書を 使ったこともありません。そのため、他の辞書を使った場合、このパッチが どのぐらい正しく対応できるかは未知数です。また、私が分かる範囲で、 ISO-8859-1とASCIIの対応を行なっていますが、フランス語にはない文字 もたくさん含まれてますので、本当にこれで正しいか、あるいは、十分かは 分かりません。
パッチは enbug.orgにも放置 しておきました。