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

[debian-users:21909] Re: man-db and JLESSCHARSET



ネタ的に -devel に振ります。
時間がないのでちょっとだけ反応ですが…。

From: Tomohiro KUBOTA <kubota@xxxxxxxxxxxxxxxxxxxxx>
Subject: [debian-users:21905] Re: man-db and JLESSCHARSET
> 
> そこで、英語以外の ISO-8859-1 言語の場合には、roff_device が
> ascii、LESSCHARSET が latin1 になるように、man-db を改造して
> みました。
> 
> ----------------------------------
> 	{ "da"		, "latin1"	, "latin1"	}, /* Danish */
> 	{ "de"		, "latin1"	, "latin1"	}, /* German */
> 	{ "en"		, "ascii"	, "ascii"	}, /* English */
> 	{ "es"		, "latin1"	, "latin1"	}, /* Spanish */
> 	{ "fi"		, "latin1"	, "latin1"	}, /* Finnish */
> 	{ "fr"		, "latin1"	, "latin1"	}, /* French */
> 	{ "ga"		, "latin1"	, "latin1"	}, /* Irish */
> 	{ "is"		, "latin1"	, "latin1"	}, /* Icelandic */
> 	{ "it"		, "latin1"	, "latin1"	}, /* Italian */
> 	{ "ja"		, "nippon"	, "ja"		}, /* Japanese */
> 	{ "nl"		, "latin1"	, "latin1"	}, /* Dutch */
> 	{ "no"		, "latin1"	, "latin1"	}, /* Norwegian */
> 	{ "pt"		, "latin1"	, "latin1"	}, /* Portuguese */
> 	{ "sv"		, "latin1"	, "latin1"	}, /* Swedish */
> 	{ "*"		, "ascii"	, "latin1"	}, /* universal */
> ----------------------------------

良い案だと思います。

> つまり、groff の -Tlatin1 は、-Tascii と比べて、ハイフンや
> (C) マークに ISO-8859-1 文字を使うという相違以外にも、
> ISO-8859-1 文字を近い ASCII 文字に変換するという相違もある
> ようなのです。
> 
> # ISO-8859-1 と、ISO-8859-2 は、&Eacute; もふくめて、
> # ほとんど同じです。ただ、ISO-8859-1 の (C) マーク (0xa9) は
> # ISO-8859-2 では別の文字になるので、latin1 を使うと化けた
> # manpages が表示されてしまいます。
> 
> というわけで、man-db だけでは問題は解決できず、groff にも
> 手を加えないといけないことが分かりました。
> 
> 方針としては、
> 
> (1) manpages のソースに含まれる 8 ビットコードには手を加えない
>     (という点では latin1 と同じ) けど、ハイフンとか (C) とか、
>     能動的に ISO-8859-1 文字を使うことはしない (という点では
>     ascii と同じ)、新しいデバイスタイプを作る。命名をどうするか
>     というのが問題だけど。
> 
> (2) latin2 などの新しいデバイスタイプを作る。
> 
> 個人的には、latin1 という名前が特別扱いされる現状がいやなので、
> (2) のほうが好きなんですが、(1) のほうが楽ですね。でも、考えて
> みれば、ascii というデバイスタイプにおいて、0xa0-0xff が ASCII
> 文字にマッピングされるという動作は、0xa0-0xff は ISO-8859-1 だ
> という仮定に基づいていますね。どうすればいいんでしょう...

私は (2) が正当な方法だと思います。

> で、groff (1.15-3.ja.3) のソースを見たのですが、難解です。
> devascii とか devlatin1 とかのディレクトリがあるので、それが
> それぞれの動作を定義しているらしいということは分かるのですが、
> そのディレクトリの中のファイルは、Makefile らしきファイルも
> 含め、ほとんど全く理解できません。

そうです。そのディレクトリ中のデバイスファイルによって
設定を行います。

> # とりあえず、debian-devel@org とか debian-i18n@org とかで
> # 議論するつもりでいます。

議論するよりは、直接作者にパッチを送った方が
はやそうに思いますが、いかがでしょう?

--
後藤 正徳