namazu-dev(ring)


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

abolishing ja_JP.ISO-2022-JP support (Re: Broken ja_JP.ISO-2022-JP.po)



Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> wrote:

>  1. % を含まないなら printf() を使わない、約束を徹底する
>     make_iso-2022-jp では c-format のときに % を %% に変換
>
>  2. nmz_printf() を用意して printf() の代わりに使う。そして、
>     LANG=ja_JP.ISO-2022-JP 用の workaround を施す
>
>  3. xgettext を修正して printf() 中の文字列に対しては % を
>     含まなくても c-format の印をつける。
>
>  4. LANG=ja_JP.ISO-2022-JP の対応を廃止する
>
>が考えられます。どうしたものか…。ご意見くださいませ。

僕は 4がいいと思います。

ja_JP.ISO-2022-JP の対応を続ける根拠:

  * ISO-2022-JP で出力すれば CGI の表示が文字化けしづらい
  * 「なんとなく」 ISO-2022-JP での出力が好ましい気がしない
    でもない (標準という印象がなきにしもあらず)
  * 以前からそうしていた (v0.1 から今までずっと)

ja_JP.ISO-2022-JP の対応を廃止する根拠:

  * 対応が非常に面倒 (いくつかの関数で特別扱いしている)
  * よって、トラブルの元になる
  * 結果出力のサイズが1割程度、大きくなる
  * コマンドラインでは namazu | nkf -j すればいい
  * ja_JP.ISO-2022-JP.po を持つプログラムなど見たことない

要するに ja_JP.ISO-2022-JP の対応を続ける、まともな根拠は
「ISO-2022-JP で出力すれば CGI の表示が文字化けしづらい」だ
けです。

それなら HTTP のヘッダに charset=euc-jp をつければ済む話です。
あるいは自動判別の誤りを防止するために <!-- 漢字 --> のよう
な文字列を NMZ.head.ja の先頭付近に入れるという手もあります。

いかがなものでしょう? ご意見くださいませ。

参考:
<http://www.asahi-net.or.jp/~wq6k-yn/t/t990619.html>

-- Satoru Takabayashi