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

Re: [Translate]dsa-281.wml - dsa-284.wml



久保田です。

From: KISE Hiroshi <fuyuneko@xxxxxxxxxxxx>
Subject: Re: [Translate]dsa-281.wml - dsa-284.wml
Date: Sun, 13 Apr 2003 03:06:41 +0900

> > 読めませんでした (;_;)
> 
> “Knud Erik Hojgaard”さんの名前の後ろから7番目の文字を
> ISO-8859-1なコードで直接書いたからでしょうね。UTF-8に
> なったようです。僕の環境でも読めませんでした。

おそらく、emacs を使っていて、日本語 (JIS X 0208) と
ISO-8859-1 な文字の両方が現れたので、両方を同時に表現できる
コードということで自動的に UTF-8 でセーブされたのだと思います。

が、dsa-281.wml を見ると、日本語部分はすべて、U+FFFD (REPLACEMENT
CHARACTER) となってしまっています。これは、emacs は、そのままでは
Unicode の漢字を扱うことができないのが原因です。

mule-ucs をインストールすると emacs で Unicode 漢字を扱う
ことができるようになりますが、いまのところ、日本語の wml 
ファイルは ISO-2022-JP または EUC-JP で書くことになっているので、
これでは解決になりません。

# たぶん郷田さん自身、ご自分の訳された日本語が失われてしまった
# のではないでしょうか?


そこで、EUC-JP や ISO-2022-jp で扱えない文字を表現するために、
「実体参照」や「文字参照」といった方法を使います。

たとえば今回は、斜線つきの o ですが、

> 実体参照にするとよいはずなんですが、どう書くのでしたっけ?
> HTMLだと、&oslash; なはず。

というふうに、「&oslash;」と書きます。この表現自身は ASCII で
書かれているので、EUC-JP や ISO-2022-JP ファイル中に書くことが
できます。どんな文字がどんな名前になっているかは、
http://east.portland.ne.jp/~sigekazu/html/entities.htm
などを参照してください。


一方、文字参照の場合は、「&#文字コード;」と書きます。文字コードは
Unicode です。

入力を ISO-8859-1 とみなし、文字参照に変換するスクリプトを添付します。
これを使うと、ISO-8859-1 の除去作業が自動化できます。

$ ./latin1_to_entity.pl <webwml/english/foo/bar.wml >hoge.wml
$ emacs hoge.wml       (翻訳作業をする)

といった流れになります。

すみませんが、これでもういちど翻訳作業してもらえないでしょうか > 郷田さん

---
久保田智広 Tomohiro KUBOTA <kubota@debian.org>
http://www.debian.or.jp/~kubota/
#!/usr/bin/perl

# Assume input stream as ISO-8859-1 text and convert it into SGML entity.

while (<>) {
    for ($i=128; $i<256; $i++) {
	$c = chr($i);
	s/$c/&#$i;/g;
    }
    print;
}