| 27 |
$opt_t = "Debian Web site Translation Statistics"; |
$opt_t = "Debian Web site Translation Statistics"; |
| 28 |
$opt_v = 0; |
$opt_v = 0; |
| 29 |
$opt_d = "u"; |
$opt_d = "u"; |
| 30 |
getopts('hwptv'); |
$opt_l = undef; |
| 31 |
|
getopts('h:w:p:t:vd:l:'); |
| 32 |
%config = ( |
%config = ( |
| 33 |
'htmldir' => $opt_h, |
'htmldir' => $opt_h, |
| 34 |
'wmldir' => $opt_w, |
'wmldir' => $opt_w, |
| 123 |
sub getwmlfiles |
sub getwmlfiles |
| 124 |
{ |
{ |
| 125 |
my $lang = shift; |
my $lang = shift; |
| 126 |
my $cmd = "find $config{'wmldir'}/$lang -name \"$config{'wmlpat'}\""; |
my $dir = "$config{'wmldir'}/$lang"; |
| 127 |
|
my $cmd = "find $dir -name \"$config{'wmlpat'}\""; |
| 128 |
my $cutfrom = length ($config{'wmldir'})+length($lang)+2; |
my $cutfrom = length ($config{'wmldir'})+length($lang)+2; |
| 129 |
my $count = 0; |
my $count = 0; |
| 130 |
my $is_english = ($lang eq "english")?1:0; |
my $is_english = ($lang eq "english")?1:0; |
| 131 |
my $file, $v; |
my $file, $v; |
| 132 |
|
|
| 133 |
print "$lang " if ($config{verbose}); |
print "$lang " if ($config{verbose}); |
| 134 |
|
die "$0: can't find $dir!\n" if (! -d "$dir"); |
|
die if (! -d "$config{'wmldir'}/$lang"); |
|
| 135 |
open (FIND, "$cmd|") || die "Can't read from $cmd"; |
open (FIND, "$cmd|") || die "Can't read from $cmd"; |
| 136 |
while (<FIND>) { |
while (<FIND>) { |
| 137 |
next if (/\/sitemap\.wml/); |
next if (/\/sitemap\.wml/); |
| 142 |
$file =~ s/\.wml$//; |
$file =~ s/\.wml$//; |
| 143 |
$wmlfiles{$lang} .= " " . $file; |
$wmlfiles{$lang} .= " " . $file; |
| 144 |
if ($is_english) { |
if ($is_english) { |
| 145 |
$version{"$lang/$file"} = get_cvs_version ("$config{'wmldir'}/$lang", "$file.wml"); |
$version{"$lang/$file"} = get_cvs_version ($dir, "$file.wml"); |
| 146 |
} else { |
} else { |
| 147 |
$version{"$lang/$file"} = get_translation_version ("$config{'wmldir'}/$lang", "$file.wml"); |
$version{"$lang/$file"} = get_translation_version ($dir, "$file.wml"); |
| 148 |
} |
} |
| 149 |
$count++; |
$count++; |
| 150 |
} |
} |
| 201 |
} |
} |
| 202 |
|
|
| 203 |
print "Collecting data in: " if ($config{'verbose'}); |
print "Collecting data in: " if ($config{'verbose'}); |
| 204 |
getwmlfiles ('english'); |
if ($opt_l) { |
| 205 |
foreach $lang (keys %langs) { |
getwmlfiles ('english'); |
| 206 |
|
getwmlfiles ($opt_l); |
| 207 |
|
} else { |
| 208 |
|
getwmlfiles ('english'); |
| 209 |
|
foreach $lang (keys %langs) { |
| 210 |
next if ($lang eq "english"); |
next if ($lang eq "english"); |
| 211 |
getwmlfiles ($lang); |
getwmlfiles ($lang); |
| 212 |
|
} |
| 213 |
} |
} |
| 214 |
print "\n" if ($config{'verbose'}); |
print "\n" if ($config{'verbose'}); |
| 215 |
|
|
| 216 |
# =============== Create HTML files =============== |
# =============== Create HTML files =============== |
| 217 |
mkdir ($config{'htmldir'}, 2775) if (! -d $config{'htmldir'}); |
mkdir ($config{'htmldir'}, 02775) if (! -d $config{'htmldir'}); |
| 218 |
|
|
| 219 |
@sorted_english = sort (split (/ /, $wmlfiles{'english'})); |
@sorted_english = sort (split (/ /, $wmlfiles{'english'})); |
| 220 |
|
|
| 221 |
print "Creating files: " if ($config{'verbose'}); |
print "Creating files: " if ($config{'verbose'}); |
| 222 |
foreach $lang (sort (keys %langs)) { |
my @search_in = (); |
| 223 |
|
if ($opt_l) { |
| 224 |
|
push @search_in, 'english'; |
| 225 |
|
push @search_in, $opt_l; |
| 226 |
|
} else { |
| 227 |
|
@search_in = sort keys %langs; |
| 228 |
|
} |
| 229 |
|
foreach $lang (@search_in) { |
| 230 |
$l = $langs{$lang}; |
$l = $langs{$lang}; |
| 231 |
print "$l.html " if ($config{'verbose'}); |
print "$l.html " if ($config{'verbose'}); |
| 232 |
$l = "zh-cn" if ($l eq "zh"); # kludge |
$l = "zh-cn" if ($l eq "zh"); # kludge |
| 332 |
print HTML $border_head; |
print HTML $border_head; |
| 333 |
print HTML "<table width=100% border=0 bgcolor=\"#cdc9c9\">\n"; |
print HTML "<table width=100% border=0 bgcolor=\"#cdc9c9\">\n"; |
| 334 |
print HTML "<tr><th>Language</th><th>Translations</th><th>Up to date</th><th>Outdated</th><th>Not translated</th></tr>\n"; |
print HTML "<tr><th>Language</th><th>Translations</th><th>Up to date</th><th>Outdated</th><th>Not translated</th></tr>\n"; |
| 335 |
foreach $lang (sort (keys %langs)) { |
foreach $lang (@search_in) { |
| 336 |
$l = $langs{$lang}; |
$l = $langs{$lang}; |
| 337 |
$l = "zh-cn" if ($l eq "zh"); # kludge |
$l = "zh-cn" if ($l eq "zh"); # kludge |
| 338 |
|
|