[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:10351] Re: [japo:00021] Re: textutils



岡@奈良先端です。

 # それっぽい話をしている所に振ってみます。

At Fri, 10 Sep 1999 18:35:00 +0900,
Jun NISHII <jun@xxxxxxxxxxx> wrote:
> 
> にしい@Project Vineです。
> 
> oka> gettext-0.10.35/src/message.c に適用して下さい。
> 
> 以前japo-MLでいただきました、このパッチですが、frやcaなどの言語処理で問
> 題が出ることがあるようです。EUC限定パッチということなので、仕方ないかも
> しれませんが、もし、なにか対処法をご存知でしたら、お教えください。

 # http://www.aist-nara.ac.jp/~mitsu-o/junkbox/message.diff

最近あちこちで話題になってしまっていますが、この短いパッチは
EUCというよりEUC-JP、しかもJIS X 0208に依存して書いています。

  c >= 0xa1 && c <= 0xfe

という箇所がそうです。これは8byte目が1になっているのでヨーロッ
パ圏のISO 8859-*と被っています。おそらくヨーロッパ圏の言語で
は単語の途中で改行が入ることになるのでしょう。

場当たり的対応は比較的簡単で、EUC-JPを使わない時はパッチの部
分を外すように書けばいいと思います(例えば現在のlocaleが
ja_JP.ujis(ja_JP.EUC)であれば有効にする、など)。

 * * *

一方で、本当に国際化するのは結構大変で、仮りにワイドキャラク
タに変換したとします。そうすると、文字ごとののカラム数を正確
に処理するための知識が足りないような気がしています(2カラムと
1カラムの文字を、コードセット非依存に区別できるような標準化
されたAPIを知らないので)。

さっきからずっとソースを眺め直していたのですが、いい考えが出
てきませんでした。逆にマルチバイトで処理する方法も考えてみた
のですが、未知のコードセットとグリフに対して勝手な仮定を置く
ことになってしまい、あまりにも信用がおけないのでやめました。

その他、日本語は単語の途中で改行が入っても許されますが、英語
やヨーロッパの言語はそうではありません。これをどう機械的に判
断するかも悩み所です。

あまり参考になりませんが、こんな所です。
# 何かいい方法ありませんでしょうか。
--
岡 充 (Mitsuru Oka)
奈良先端科学技術大学院大学