2004-05-08

_let me see...のまだまだ続き

厄介な問題に躓いて、再び自信なさげなパッチを かずひこさん に送りました。

うちの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にも放置 しておきました。

[]