| 19 |
|
|
| 20 |
use POSIX qw(strftime); |
use POSIX qw(strftime); |
| 21 |
use Getopt::Std; |
use Getopt::Std; |
| 22 |
|
$| = 1; |
| 23 |
|
|
| 24 |
$opt_h = "/org/www.debian.org/debian.org/devel/website/stats"; |
$opt_h = "/org/www.debian.org/debian.org/devel/website/stats"; |
| 25 |
$opt_w = "/org/www.debian.org/webwml"; |
$opt_w = "/org/www.debian.org/webwml"; |
| 125 |
my $count = 0; |
my $count = 0; |
| 126 |
my $is_english = ($lang eq "english")?1:0; |
my $is_english = ($lang eq "english")?1:0; |
| 127 |
my $file, $v; |
my $file, $v; |
|
my $l = $langs{$lang}; |
|
| 128 |
|
|
| 129 |
return if (! -d "$config{'wmldir'}/$lang"); |
print "$lang " if ($config{verbose}); |
| 130 |
|
|
| 131 |
|
die if (! -d "$config{'wmldir'}/$lang"); |
| 132 |
open (FIND, "$cmd|") || die "Can't read from $cmd"; |
open (FIND, "$cmd|") || die "Can't read from $cmd"; |
| 133 |
while (<FIND>) { |
while (<FIND>) { |
| 134 |
next if (/\/sitemap\.wml/); |
next if (/\/sitemap\.wml/); |
| 137 |
chomp; |
chomp; |
| 138 |
$file = substr ($_, $cutfrom); |
$file = substr ($_, $cutfrom); |
| 139 |
$file =~ s/\.wml$//; |
$file =~ s/\.wml$//; |
| 140 |
$wmlfiles{$l} .= " " . $file; |
$wmlfiles{$lang} .= " " . $file; |
| 141 |
if ($is_english) { |
if ($is_english) { |
| 142 |
$version{"$lang/$file"} = get_cvs_version ("$config{'wmldir'}/$lang", "$file.wml"); |
$version{"$lang/$file"} = get_cvs_version ("$config{'wmldir'}/$lang", "$file.wml"); |
| 143 |
} else { |
} else { |
| 146 |
$count++; |
$count++; |
| 147 |
} |
} |
| 148 |
close (FIND); |
close (FIND); |
| 149 |
$wmlfiles{$l} .= " "; |
$wmlfiles{$lang} .= " "; |
| 150 |
$wml{$l} = $count; |
$wml{$lang} = $count; |
| 151 |
} |
} |
| 152 |
|
|
| 153 |
sub get_color |
sub get_color |
| 197 |
return ""; |
return ""; |
| 198 |
} |
} |
| 199 |
|
|
| 200 |
print "Investigating english \n" if ($config{'verbose'}); |
print "Collecting data in: " if ($config{'verbose'}); |
|
|
|
| 201 |
getwmlfiles ('english'); |
getwmlfiles ('english'); |
| 202 |
|
foreach $lang (keys %langs) { |
| 203 |
foreach $l (keys %langs) { |
next if ($lang eq "english"); |
| 204 |
next if ($l eq "english"); |
getwmlfiles ($lang); |
|
print "$l " if ($config{'verbose'}); |
|
|
getwmlfiles ($l); |
|
| 205 |
} |
} |
| 206 |
print "\n" if ($config{'verbose'}); |
print "\n" if ($config{'verbose'}); |
| 207 |
|
|
| 208 |
# =============== Create HTML files =============== |
# =============== Create HTML files =============== |
| 209 |
mkdir ($config{'htmldir'}, 0755) if (! -d $config{'htmldir'}); |
mkdir ($config{'htmldir'}, 0755) if (! -d $config{'htmldir'}); |
| 210 |
|
|
| 211 |
@sorted_english = sort (split (/ /, $wmlfiles{'en'})); |
@sorted_english = sort (split (/ /, $wmlfiles{'english'})); |
| 212 |
|
|
| 213 |
|
print "Creating files: " if ($config{'verbose'}); |
| 214 |
foreach $lang (sort (keys %langs)) { |
foreach $lang (sort (keys %langs)) { |
| 215 |
$l = $langs{$lang}; |
$l = $langs{$lang}; |
| 216 |
printf "Creating %s.html...\n", $l if ($config{'verbose'}); |
print "$l.html " if ($config{'verbose'}); |
| 217 |
|
|
| 218 |
foreach $file (@sorted_english) { |
foreach $file (@sorted_english) { |
| 219 |
next if ($file eq ""); |
next if ($file eq ""); |
| 220 |
# Translated pages |
# Translated pages |
| 221 |
if (index ($wmlfiles{$l}, " $file ") >= 0) { |
if (index ($wmlfiles{$lang}, " $file ") >= 0) { |
| 222 |
$t_body .= sprintf ("<a href=\"/%s.%s.html\">%s</a><br>\n", |
$t_body .= sprintf ("<a href=\"/%s.%s.html\">%s</a><br>\n", |
| 223 |
$file, $l, $file); |
$file, $l, $file); |
| 224 |
$translated{$lang}++; |
$translated{$lang}++; |
| 240 |
|
|
| 241 |
$translated{$lang} = $translated{$lang} - $outdated{$lang}; |
$translated{$lang} = $translated{$lang} - $outdated{$lang}; |
| 242 |
|
|
| 243 |
$percent_a{$l} = $wml{$l}/$wml{en} * 100; |
$percent_a{$lang} = $wml{$lang}/$wml{english} * 100; |
| 244 |
$percent_t{$l} = $translated{$lang}/$wml{en} * 100; |
$percent_t{$lang} = $translated{$lang}/$wml{english} * 100; |
| 245 |
$percent_o{$l} = $outdated{$lang}/$wml{en} * 100; |
$percent_o{$lang} = $outdated{$lang}/$wml{english} * 100; |
| 246 |
$percent_u{$l} = $untranslated{$lang}/$wml{en} * 100; |
$percent_u{$lang} = $untranslated{$lang}/$wml{english} * 100; |
| 247 |
|
|
| 248 |
if (open (HTML, ">$config{'htmldir'}/$l.html")) { |
if (open (HTML, ">$config{'htmldir'}/$l.html")) { |
| 249 |
printf HTML "<html><head><title>%s: %s</title></head><body bgcolor=#ffffff>\n", $config{'title'}, $l; |
printf HTML "<html><head><title>%s: %s</title></head><body bgcolor=#ffffff>\n", $config{'title'}, $lang; |
| 250 |
|
|
| 251 |
$color = get_color ($percent_a{$l}); |
$color = get_color ($percent_a{$lang}); |
| 252 |
|
|
| 253 |
printf HTML "<table width=100%% cellpadding=2 cellspacing=0 bgcolor=%s>\n", $color; |
printf HTML "<table width=100%% cellpadding=2 cellspacing=0 bgcolor=%s>\n", $color; |
| 254 |
|
|
| 255 |
printf HTML "<tr><td colspan=4><h1 align=center>%s: %s</h1></td></tr>", $config{'title'}, $l; |
printf HTML "<tr><td colspan=4><h1 align=center>%s: %s</h1></td></tr>", $config{'title'}, $lang; |
| 256 |
|
|
| 257 |
print HTML "<tr>\n"; |
print HTML "<tr>\n"; |
| 258 |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) translated</b></td>", $wml{$l}, $percent_a{$l}; |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) translated</b></td>", $wml{$lang}, $percent_a{$lang}; |
| 259 |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) up to date</b></td>", $translated{$lang}, $percent_t{$l}; |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) up to date</b></td>", $translated{$lang}, $percent_t{$lang}; |
| 260 |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) outdated</b></td>", $outdated{$lang}, $percent_o{$l}; |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) outdated</b></td>", $outdated{$lang}, $percent_o{$lang}; |
| 261 |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) not translated</b></td>", $untranslated{$lang}, $percent_u{$l}; |
printf HTML "<td align=center width=25%%><b>%d files (%d%%) not translated</b></td>", $untranslated{$lang}, $percent_u{$lang}; |
| 262 |
print HTML "</tr>\n</table>\n"; |
print HTML "</tr>\n</table>\n"; |
| 263 |
|
|
| 264 |
print HTML "<p><a href=\"./\">Index</a><p>\n"; |
print HTML "<p><a href=\"./\">Index</a><p>\n"; |
| 286 |
close (HTML); |
close (HTML); |
| 287 |
} |
} |
| 288 |
} |
} |
| 289 |
|
print "\n" if ($config{'verbose'}); |
| 290 |
|
|
| 291 |
# =============== Creating index.html =============== |
# =============== Creating index.html =============== |
| 292 |
print "Creating index.html...\n" if ($config{'verbose'}); |
print "Creating index.html... " if ($config{'verbose'}); |
| 293 |
|
|
| 294 |
open (HTML, ">$config{'htmldir'}/index.html") |
open (HTML, ">$config{'htmldir'}/index.html") |
| 295 |
|| die "Can't open $config{'htmldir'}/index.html"; |
|| die "Can't open $config{'htmldir'}/index.html"; |
| 303 |
foreach $lang (sort (keys %langs)) { |
foreach $lang (sort (keys %langs)) { |
| 304 |
$l = $langs{$lang}; |
$l = $langs{$lang}; |
| 305 |
|
|
| 306 |
$color = get_color ($percent_a{$l}); |
$color = get_color ($percent_a{$lang}); |
| 307 |
|
|
| 308 |
print HTML "<tr>"; |
print HTML "<tr>"; |
| 309 |
printf HTML "<td><a href=\"%s.html\">%s</a> (%s)</td>", $l, $lang, $l; |
printf HTML "<td><a href=\"%s.html\">%s</a> (%s)</td>", $l, $lang, $l; |
| 310 |
printf HTML "<td bgcolor=\"%s\" align=right>%d (%d%%)</td>", $color, $wml{$l}, $percent_a{$l}; |
printf HTML "<td bgcolor=\"%s\" align=right>%d (%d%%)</td>", $color, $wml{$lang}, $percent_a{$lang}; |
| 311 |
if ($l ne "en") { |
if ($l ne "en") { |
| 312 |
printf HTML "<td align=right>%d (%d%%)</td>", $translated{$lang}, $percent_t{$l}; |
printf HTML "<td align=right>%d (%d%%)</td>", $translated{$lang}, $percent_t{$lang}; |
| 313 |
printf HTML "<td align=right>%d (%d%%)</td>", $outdated{$lang}, $percent_o{$l}; |
printf HTML "<td align=right>%d (%d%%)</td>", $outdated{$lang}, $percent_o{$lang}; |
| 314 |
printf HTML "<td align=right>%d (%d%%)</td>", $untranslated{$lang}, $percent_u{$l}; |
printf HTML "<td align=right>%d (%d%%)</td>", $untranslated{$lang}, $percent_u{$lang}; |
| 315 |
} else { |
} else { |
| 316 |
print HTML "<td>-</td><td>-</td><td>-</td>"; |
print HTML "<td align=right>-</td><td align=right>-</td><td align=right>-</td>"; |
| 317 |
} |
} |
| 318 |
print HTML "</tr>\n", |
print HTML "</tr>\n", |
| 319 |
} |
} |
| 327 |
print HTML "</body></html>\n"; |
print HTML "</body></html>\n"; |
| 328 |
close (HTML); |
close (HTML); |
| 329 |
|
|
| 330 |
|
print "done.\n" if ($config{'verbose'}); |
| 331 |
|
|
| 332 |
# Note: |
# Note: |
| 333 |
# Translated pages on ll.html may be higher than in index.html. |
# Translated pages on ll.html may be higher than in index.html. |