[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:www.NetBSD.orgの日本語訳のwww.jp.NetBSD.orgでの公開について
佐藤です。
筒井さんのメールがなぜか届いていないので、
回答が孫引きで混ざってしまってます。すみません...
Ryo ONODERA <ryo_on@yk.rim.or.jp> wrote
in <20110818.224748.255571566.ryo_on@yk.rim.or.jp>:
ry> 私の理解が間違っているのかもしれませんが、
ry> 今のxmlファイルはiso-2022-jpに統一されていて、
ry>
ry> <?xml version="1.0" encoding="ISO-2022-JP"?>
ry> <!DOCTYPE webpage
ry> PUBLIC "-//NetBSD//DTD Website-based NetBSD Extension//EN"
ry> "http://www.NetBSD.org/XML/htdocs/lang/share/xml/website-netbsd.dtd">
ry>
ry> <webpage id="ja-changes-1998">
ry> <config param="desc" value="1998 年の変更と NetBSD ニュース"/>
ry>
ry> のように、正しくencodingも書かれていると思います。
いえ、
1. XML が UTF-8 で書かれていること
2. XSLT が UTF-8 で書かれていること
3. 出力される HTML が UTF-8 になること
は、すべて独立しています。それぞれ個別に決めないといけなくて、
何も指定しないと、すべてのデフォルトが UTF-8 になる、というのが処理の実際です。
また、これら全部が指定されていても、entity reference (&xxx;) は
別の理由でエンコーディングに関する注意が必要になります。
&xxx;が化けるのは、XML ソースファイルが iso-2022-jp で書かれているのに、
&xxx; を UTF-8 の固定ビットパターンに置き換えるという、誤った定義ファイルが
使われているからです (定義全体は textproc/iso8879 などに入ってます)。
非 iso-8859-1 圏の言語を処理する場合、
この定義ファイルを出力エンコーディングに合ったものにするか、
文字列の entity は展開せず、&xxx; のままで処理させるか、が典型的な
方法ですが、HTML にする場合は後者が無難なので、後者にすることが多いです。
# 最近のウェブブラウザは優秀なので、文字コードの扱いとして HTML 4.01 だと
# SGML, XHTML では XML の流儀を使ってくるので、非常にめんどうなのです...
SGML や XML まわりの文字コードの扱いは厳格なルールがありますので、
慣れないと良く分からない → UTF-8 に統一すれば簡単じゃん、という
流れで UTF-8 を使いましょう、にたどり着くのは、確かにそうなので
悪い考え方だとは思わないのですが、
そうするのであれば、最終成果物を XHTML にして、入力・出力データを
すべて UTF-8 にするという徹底した方法をとらないと、また同じ問題が
生じると思います。
小難しい話はどうでも良いから、単に ©, ®, の〓を
なくしたいというのであれば、
<!ENTITY copy "(C)">
<!ENTITY reg "(R)">
<!ENTITY nbsp " ">
という行を DTD に突っ込んで rebuild すれば達成できると思います。
XSLT で処理した後にスクリプト等で置き換えようという考え方は、
XML で書いている意味がまったくなくなってしまうので、なるべく捨てましょう。
ry> 私は、htdocs/JP/までUTF-8にしなくても良いのではないかと思っていますが、
ry> cvswebでの表示を考えると、合わせておいた方が見やすいとかあるかも
ry> しれないと思います。
ry>
ry> > 他のページの文字コードって、決まってるんでしたっけ? > どなたか詳しいひと
ry>
ry> http://www.jp.netbsd.org/ja/JP/ml/admin-ja/199812/msg00107.html
ry> で、JIS(ISO-2022-JPということだと理解しますが)という意見が出ています。
ry> htdocs/JP/以下には、ISO-2022-JPに統一するという記述はないようです。
サイト全体としてのポリシがなくて、文字コードが違ってても
誰も気にしないのであれば、それで良いのではないでしょうか。
佐藤は、XML ベースのソースから生成される HTML ファイル群の
エンコーディングを、既存のものと合わせる操作が、
そんなに大変なことだと考えていなくて、
わざわざ別のエンコーディングを選択する理由はあるのかな、という点に
疑問を持っていました。
同じウェブサイトなら一貫性があったほうが良さそうだ、というのは、
その延長上にある、多分に感覚的な意見です。
問題が良く分かってないのですが、&xxx; の文字が化けるという以外に
エンコーディングの問題はあるのでしょうか? 「たくさんあって UTF-8 にしないと
解決できない」というのであれば、UTF-8 を選ぶのに躊躇する必要はないと思います。
> From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
> > これは本家でも同じですし、これぞという解決策があるわけでもないので、
> > ja ローカルで懸念していても意味がないような気がします。
公開するサーバ側で定期的に自動 build することで解決になると思うのですが、
それでは解決になりませんか?
それが不可能だというのであれば、HTML ファイルを commit することに
異論はありません。両方が可能だとしたら、HTML ファイルを commit することは
不利な点がたくさんあるので、止めたほうが良いと考えています。
単なる typo の修正を commit しても、XML のツールを全部インストールしている
マシンで rebuild して HTML ファイルを commit しないと
反映させることができない、というのは、すごく不都合な側面だと思っています。
ry> 以上書きましたが、cronでできるのであれば、それがベストだと思います。
ry> 自分の修正したxmlについてだけmake xxx.htmlしても、修正によっては
ry> 全体を作り直さないといけない時もあって、ややこしくなるかも
ry> しれませんので。
ry>
ry> マシンリソースに余裕があるのであれば、マンパワーは提供します。
いずれにしても、build に必要なファイル群を commit しなければならないことには
変わりはないと思いますので、これと思う変更を加えながら考えるのは
いかがでしょう?
-- Hiroki
PGP signature