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

Re: pkgsrc コメント翻訳



>>>   http://www.jp.NetBSD.org/ja/JP/ml/www-changes-ja/200710/msg00054.html

> やってみました。1日1回(朝7:00)に更新しています。
> うまい感じで更新されているようです。
> 
> http://www.jp.netbsd.org/ja/JP/Documentation/Packages/list/README.html

ありがとうございます。
あとは、私の宿題ですね。
FreeBSD 由来の翻訳の抹殺は、この正月休みでなんとかしたいと思います。

また、以前に書いた、

In message <20071202.014453.59482359.kano@na.rim.or.jp> I wrote:
>> x11/oneko|他の動物も持ったデスクトップ上以外はxnekoによく似たプログラム
> 
> みたいになってるのを、
> 
>> x11/oneko|他の動物も持ったデスクトップ上以外はxnekoによく似たプログラム|Much like xneko except on the desktop and with other animals.
> 
> みたいにすればどうかと思っています。
> 
> で、最新の原文 (Like xneko except on the desktop and with other animals)
> と違ってるやつは、
> nodata.html みたいに書き出して、私らがすぐ気づくようにするとか、
> どこぞみたいに「最新の原文とはずれがあります」を表示するとかです。

これへのご意見がないのですが、
異議なしとみなしてやっちゃいますよ?
# ダサダサとかいわれると思っていたのですががが

# あと、$wwwdir が $wwwsrc になってるとこを修正とか。

Index: comment2ja.pl
===================================================================
RCS file: /cvsroot/htdocs/JP/Documentation/Packages/comment2ja/comment2ja.pl,v
retrieving revision 1.23
diff -u -r1.23 comment2ja.pl
--- comment2ja.pl	4 Oct 2007 02:14:19 -0000	1.23
+++ comment2ja.pl	28 Dec 2007 15:13:32 -0000
@@ -4,7 +4,7 @@
 #
 
 $|=1;
-my (%category, %packages,%nodata);
+my (%category, %packages, %nodata, %obsoletedata);
 my ($pkgsrc) = shift;
 my ($wwwdir) = shift;
 my ($mode) = 0755;
@@ -21,9 +21,9 @@
 
 	my (@data) = split(/\|/);
 	if ($data[0] =~ /\//) {
-		$packages{$data[0]} = $data[1];
+		$packages{$data[0]} = { "ja" => $data[1], "en" => $data[2] };
 	} else {
-		$category{$data[0]} = $data[1];
+		$category{$data[0]} = { "ja" => $data[1], "en" => $data[2] };
 	}
 }
 close(COMMENT);
@@ -60,13 +60,17 @@
 &rej("README.html");
 open(SRC, "$tmpfile") || die "src:$tmpfile\n";
 if (! -d $wwwdir) {mkdir($wwwdir, $mode) || die "dst:$wwwdir\n";}
-open(DST, "|nkf -j > $wwwdir/README.html") || die "dst:$wwwsrc/README.html\n";
+open(DST, "|nkf -j > $wwwdir/README.html") || die "dst:$wwwdir/README.html\n";
 while (<SRC>) {
 	if (/^<TR><TD VALIGN=TOP><a href=\"([^\/]+)/) {
 		my ($p) = $1;
-		my ($cat) = $category{$p};
+		my ($cat) = $category{$p}{"ja"};
 		if (defined($cat)) {
-			s/(<\/a>:\s*).*(<TD>)/$1$cat$2/;
+			s/(<\/a>:\s*)(.*)(<TD>)/$1$cat$3/;
+			my $current = $2;
+			if ( $current ne $category{$p}{"en"} ) {
+			    $obsoletedata{$p} = join("|", $category{$p}{"ja"}, $category{$p}{"en"}, $current);
+			}
 		} else {
 			/<\/a>:\s*(.*)<TD>/;
 			$nodata{$p} = $1;
@@ -85,13 +89,17 @@
 close(SRC);
 &rej("README-all.html");
 open(SRC, "$tmpfile") || die "src:$tmpfile\n";
-open(DST, "|nkf -j > $wwwdir/README-all.html") || die "dst:$wwwsrc/README-all.html\n";
+open(DST, "|nkf -j > $wwwdir/README-all.html") || die "dst:$wwwdir/README-all.html\n";
 while (<SRC>) {
 	if (/<TR VALIGN=TOP><TD><a href=\"([^\/]+\/[^\/]+)\/README.html/) {
 		my ($p) = $1;
-		my ($pkg) = $packages{$p};
+		my ($pkg) = $packages{$p}{"ja"};
 		if (defined($pkg)) {
-			s/(\) <td>).*/$1$pkg/;
+			s/(\) <td>)(.*)/$1$pkg/;
+			my $current = $2;
+			if ( $current ne $packages{$p}{"en"} ) {
+				$obsoletedata{$p} = join("|", $packages{$p}{"ja"}, $packages{$p}{"en"}, $current);
+			}
 		} else {
 			/\) <td>(.*)/;
 			$nodata{$p} = $1;
@@ -110,16 +118,13 @@
 close(SRC);
 &rej("README-IPv6.html");
 open(SRC, "$tmpfile") || die "src:$tmpfile\n";
-open(DST, "|nkf -j > $wwwdir/README-IPv6.html") || die "dst:$wwwsrc/README-IPv6.html\n";
+open(DST, "|nkf -j > $wwwdir/README-IPv6.html") || die "dst:$wwwdir/README-IPv6.html\n";
 while (<SRC>) {
 	if (/<TR VALIGN=TOP><TD><a href=\"([^\/]+\/[^\/]+)\/README.html/) {
 		my ($p) = $1;
-		my ($pkg) = $packages{$p};
+		my ($pkg) = $packages{$p}{"ja"};
 		if (defined($pkg)) {
-			s/(\) <td>).*/$1$pkg/;
-		} else {
-			/\) <td>(.*)/;
-			$nodata{$p} = $1;
+			s/(\) <td>)(.*)/$1$pkg/;
 		}
 	}
 	print DST $_;
@@ -147,19 +152,16 @@
 	if (! -d "$wwwdir/$dir")
 		{mkdir("$wwwdir/$dir", $mode) || die "dst:$wwwdir/$dir\n";}
 	open(DST, "|nkf -j >$wwwdir/$dir/README.html") ||
-		die "dst:$wwwsrc/$dir/README.html\n";
+		die "dst:$wwwdir/$dir/README.html\n";
 
 	while (<SRC>) {
 		s/You are now in the directory (".*")./$1 ディレクトリー/;
 
 		if (/^<TR><TD VALIGN=TOP><a href=\"([^\/]+)/) {
 			my ($p) = "$dir/$1";
-			my ($pkg) = $packages{$p};
+			my ($pkg) = $packages{$p}{"ja"};
 			if (defined($pkg)) {
-				s/(<\/a>:\s*).*(<TD>)/$1$pkg$2/;
-			} else {
-				/<\/a>:\s*(.*)<TD>/;
-				$nodata{$p} = $1;
+				s/(<\/a>:\s*)(.*)(<TD>)/$1$pkg$3/;
 			}
 		}
 		print DST $_;
@@ -171,7 +173,7 @@
 # Package README.html
 #
 	opendir(CATEGORY, "$pkgsrc/$dir") || die "$pkgsrc/$dir";
-	foreach $pkgdir (readdir(CATEGORY)) {
+	foreach my $pkgdir (readdir(CATEGORY)) {
 		if ($pkgdir =~ /^\.$/ || $pkgdir =~ /^\.\.$/ ||
 		    ! -d "$pkgsrc/$dir/$pkgdir" ||
 		    ! -f "$pkgsrc/$dir/$pkgdir/Makefile" ||
@@ -188,7 +190,7 @@
 			{mkdir("$wwwdir/$dir/$pkgdir", $mode) ||
 			    die "dst:$wwwdir/$dir/$pkgdir\n";}
 		open(DST, "|nkf -j >$wwwdir/$dir/$pkgdir/README.html") ||
-			die "dst:$wwwsrc/$dir/$pkgdir/README.html\n";
+			die "dst:$wwwdir/$dir/$pkgdir/README.html\n";
 
 		my ($com) = 0;
 		while (<SRC>) {
@@ -210,9 +212,12 @@
 				$com++;
 			} elsif ($com == 2) {
 				$com = 0;
-				my ($pkg) = $packages{"$dir/$pkgdir"};
+				my ($pkg) = $packages{"$dir/$pkgdir"}{"ja"};
 				if (defined($pkg)) {
-					s/.*/$pkg/;
+					s/(.*)/$pkg/;
+					if (defined($obsoletedata{"$dir/$pkgdir"})) {
+						$_ .= " (最新の原文とは、ずれがあります)\n";
+					}
 				}
 			}
 			print DST $_;
@@ -228,9 +233,9 @@
 #
 # nodata pkgs
 #
-open(DST, ">$wwwdir/nodata.html") || die "dst:$wwwsrc/nodata.html\n";
+open(DST, ">$wwwdir/nodata.html") || die "dst:$wwwdir/nodata.html\n";
 my (@pkgs) = keys %nodata;
-if ($#pkgs > 0) {
+if ($#pkgs >= 0) {
 	print "NODATA:\n";
 	print DST <<EOF;
 <html>
@@ -255,4 +260,34 @@
 }
 close(DST);
 
+#
+# obsoletedata pkgs
+#
+open(DST, ">$wwwdir/obsoletedata.html") || die "dst:$wwwdir/obsoletedata.html\n";
+@pkgs = keys %obsoletedata;
+if ($#pkgs >= 0) {
+	print "OBSOLETEDATA:\n";
+	print DST <<EOF;
+<html>
+<head><title>NetBSD Packages</title></head>
+<body>
+<pre>
+EOF
+
+	my ($pkg);
+	foreach $pkg (sort keys %obsoletedata) {
+		print DST "$pkg|$obsoletedata{$pkg}\n";
+		print "$pkg|$obsoletedata{$pkg}\n";
+	}
+
+	print DST <<EOF;
+</pre>
+</body>
+</html>
+EOF
+} else {
+	print DST "<html><body>OK</body></html>\n";
+}
+close(DST);
+
 0;