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

Bug#256891: www.debian.org: add stats on bytes to translated in devel/website/stats



Package: www.debian.org
Severity: wishlist
Tags: patch

Hi,

here is a patch that add statistics about bytes to translate, I think it
gives a good idea of the amount of work to be done as big pages are
longer to translate than small ones.

regards


Nicolas Bertolissio

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.6
Locale: LANG=fr_FR@euro, LC_CTYPE=fr_FR@euro

-- 
--- stattrans.0.pl	2004-06-29 19:52:19.000000000 +0200
+++ stattrans.1.pl	2004-06-29 19:55:16.000000000 +0200
@@ -88,6 +88,7 @@
 my %transversion;
 my %version;
 my %files;
+my %sizes;
 
 # Count wml files in given directory
 #
@@ -97,6 +98,7 @@
     my $dir = "$config{'wmldir'}/$lang";
     my $cutfrom = length ($config{'wmldir'})+length($lang)+2;
     my $count = 0;
+    my $size = 0;
     my $is_english = ($lang eq "english")?1:0;
     my ( $file, $v );
     my @listfiles;
@@ -133,9 +135,12 @@
 	    $maintainer{"$lang/$file"} = $transcheck->maintainer();
 	}
 	$count++;
+	$sizes{$file} = (stat "".($original{"english/$file"}||"english")."/".$file)[7];
+	$size += $sizes{$file};
     }
     $wmlfiles{$lang} .= " ";
     $wml{$lang} = $count;
+    $wml_s{$lang} = $size;
 }
 
 sub get_color
@@ -253,6 +258,8 @@
 
 my @filenames = sort keys %files;
 my $nfiles = scalar @filenames;
+my $nsize;
+$nsize += $sizes{$_} foreach (@filenames);
 
 print "Creating files: " if ($config{'verbose'});
 foreach $lang (@search_in) {
@@ -269,6 +276,7 @@
             # Translated pages
             if (index ($wmlfiles{$lang}, " $file ") >= 0) {
                 $translated{$lang}++;
+		$translated_s{$lang} += $sizes{$file};
                 $orig = $original{"$lang/$file"} || "english";
                 # Outdated translations
                 $msg = check_translation ($transversion{"$lang/$file"}, $version{"$orig/$file"}, "$lang/$file");
@@ -289,6 +297,7 @@
                     $o_body .= sprintf "<td align=center>%s</td>", $maintainer{"$lang/$file"} || "";
                     $o_body .= "</tr>\n";
                     $outdated{$lang}++;
+		    $outdated_s{$lang} += $sizes{$file};
                 # Up-to-date translations
                 } else {
                     if (($file !~ /\.wml$/) 
@@ -310,6 +319,7 @@
                     $u_body .= sprintf "<a href=\"/%s\">%s</a><br>\n", $base, $base;
                 }
                 $untranslated{$lang}++;
+		$untranslated_s{$lang} += $sizes{$file};
             }
         }
         
@@ -318,20 +328,28 @@
         # but which don't exist in the English directory
         #   print "extra files: ".$wml{$lang}-$translated{$lang}."\n";
         $wml{$lang} = $translated{$lang};
+	$wml_s{$lang} = $translated_s{$lang};
         $translated{$lang} = $translated{$lang} - $outdated{$lang};
+	$translated_s{$lang} = $translated_s{$lang} - $outdated_s{$lang};
     
         if ($nfiles > 0) {
             $percent_a{$lang} = int ($wml{$lang}/$nfiles * 100 + .5);
+	    $percent_as{$lang} = int ($wml_s{$lang}/$nsize * 100 + .5);
         } else {
             $percent_a{$lang} = 0;
+	    $percent_as{$lang} = 0;
         }
         if ($wml{$lang} > 0) {
             $percent_t{$lang} = int ($translated{$lang}/$wml{$lang} * 100 + .5);
+	    $percent_ts{$lang} = int ($translated_s{$lang}/($wml_s{$lang}+1) * 100 + .5);
         } else {
             $percent_t{$lang} = 0;
+	    $percent_ts{$lang} = 0;
         }
         $percent_o{$lang} = 100 - $percent_t{$lang};
+	$percent_os{$lang} = 100 - $percent_ts{$lang};
         $percent_u{$lang} = 100 - $percent_a{$lang};
+	$percent_us{$lang} = 100 - $percent_as{$lang};
     
         if (open (HTML, ">$config{'htmldir'}/$l.html")) {
             printf HTML "<html><head><title>%s: %s</title></head><body bgcolor=\"#ffffff\">\n", $config{'title'}, ucfirst $lang;
@@ -349,6 +367,12 @@
             printf HTML "<td align=\"center\" width=\"25%%\"><b>%d files (%d%%) outdated</b></td>", $outdated{$lang}, $percent_o{$lang};
             printf HTML "<td align=\"center\" width=\"25%%\"><b>%d files (%d%%) not translated</b></td>", $untranslated{$lang}, $percent_u{$lang};
             print HTML "</tr>\n";
+	    print HTML "<tr>\n";
+	    printf HTML "<td align=\"center\" width=\"25%%\"><b>%d bytes (%d%%) translated</b></td>", $wml_s{$lang}, $percent_as{$lang};
+	    printf HTML "<td align=\"center\" width=\"25%%\"><b>%d bytes (%d%%) up to date</b></td>", $translated_s{$lang}, $percent_ts{$lang};
+	    printf HTML "<td align=\"center\" width=\"25%%\"><b>%d bytes (%d%%) outdated</b></td>", $outdated_s{$lang}, $percent_os{$lang};
+	    printf HTML "<td align=\"center\" width=\"25%%\"><b>%d bytes (%d%%) not translated</b></td>", $nsize-$wml_s{$lang}, $percent_us{$lang};
+	    print HTML "</tr>\n";
             print HTML "</table>\n";
     
             # Make the table of content
@@ -469,6 +493,34 @@
 print HTML "</table>\n";
 print HTML $border_foot;
 
+print HTML "<h2>Translated web pages (by size)</h2>\n";
+printf HTML "<p>There are %d bytes to translate.</p>\n",($wml_s{'english'}+$untranslated_s{'english'});
+
+print HTML $border_head;
+print HTML "<table width=\"100%\" border=0 bgcolor=\"#cdc9c9\">\n";
+print HTML "<tr><th>Language</th><th colspan=\"2\">Translations</th><th colspan=\"2\">Up to date</th><th colspan=\"2\">Outdated</th><th colspan=\"2\">Not translated</th></tr>\n";
+
+foreach $lang (@search_in) {
+    my @processed_langs = ($langs{$lang});
+    @processed_langs = ("zh-cn", "zh-tw") if $langs{$lang} eq "zh";
+    foreach $l (@processed_langs) {
+	$color_a = get_color ($percent_a{$lang});
+	$color_t = get_color ($percent_t{$lang});
+	$color_o = get_color (100 - $percent_o{$lang});
+	$color_u = get_color (100 - $percent_u{$lang});
+
+	print HTML "<tr>";
+	printf HTML "<td><a href=\"%s.html\">%s</a> (%s)</td>", $l, ucfirst $lang, $l;
+	printf HTML "<td bgcolor=\"%s\" align=right>%d</td><td>(%d%%)</td>", $color_a, $wml_s{$lang}, $percent_as{$lang};
+	printf HTML "<td bgcolor=\"%s\" align=right>%d</td><td>(%d%%)</td>", $color_t, $translated_s{$lang}, $percent_ts{$lang};
+	printf HTML "<td bgcolor=\"%s\" align=right>%d</td><td>(%d%%)</td>", $color_o, $outdated_s{$lang}, $percent_os{$lang};
+	printf HTML "<td bgcolor=\"%s\" align=right>%d</td><td>(%d%%)</td>", $color_u, $wml_s{"english"}-$wml_s{$lang}, $percent_us{$lang};
+	print HTML "</tr>\n";
+    }
+}
+print HTML "</table>\n";
+print HTML $border_foot;
+
 print HTML "<h2>Translated templates (gettext files)</h2>\n";
 printf HTML "<p>There are %d strings to translate.</p>\n",$po_total{'total'};
 print HTML $border_head;

Attachment: signature.asc
Description: Digital signature


Reply to: