From 396b28f3d881f5debd888ba9bb9b47c2d478a76f Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Mon, 15 Dec 2008 18:02:47 +0100 Subject: update to Mediawiki 1.13.3; some cleanups --- maintenance/transstat.php | 203 ---------------------------------------------- 1 file changed, 203 deletions(-) delete mode 100644 maintenance/transstat.php (limited to 'maintenance/transstat.php') diff --git a/maintenance/transstat.php b/maintenance/transstat.php deleted file mode 100644 index e54a668c..00000000 --- a/maintenance/transstat.php +++ /dev/null @@ -1,203 +0,0 @@ - - * @author Ashar Voultoiz - * @bug 2499 - * - * Output is posted from time to time on: - * http://meta.wikimedia.org/wiki/Localization_statistics - */ - -/** */ -require_once('commandLine.inc'); -require_once('languages.inc'); - -if( isset($options['help']) ) { usage(); wfDie(); } -// default output is WikiText -if( !isset($options['output']) ) { $options['output']='wiki'; } - - -/** Print a usage message*/ -function usage() { -print <<output='';} - function getContent() { return $this->output;} - - function formatPercent($subset, $total, $revert=false, $accuracy=2) { - return @sprintf( '%.' . $accuracy . 'f%%', 100 * $subset / $total ); - } - - // Override the next methods - function heading() {} - function footer() {} - function blockstart() {} - function blockend() {} - function element($in, $heading=false) {} -} - -/** Outputs nothing ! */ -class noneStatsOutput extends statsOutput { - function getContent() { return NULL;} -} - -/** Outputs WikiText */ -class wikiStatsOutput extends statsOutput { - function heading() { - $this->output .= "{| border=2 cellpadding=4 cellspacing=0 style=\"background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;\" width=100%\n"; - } - function footer() { $this->output .= "|}\n"; } - function blockstart() { $this->output .= "|-\n"; } - function blockend() { $this->output .= ''; } - function element($in, $heading = false) { - $this->output .= ($heading ? '!' : '|') . " $in\n"; - } - function formatPercent($subset, $total, $revert=false, $accuracy=2) { - $v = @round(255 * $subset / $total); - if($revert) $v = 255 - $v; - if($v < 128) { - // red to yellow - $red = 'FF'; - $green = sprintf('%02X', 2*$v); - } else { - // yellow to green - $red = sprintf('%02X', 2*(255 -$v) ); - $green = 'FF'; - } - $blue = '00'; - $color = $red.$green.$blue; - - $percent = statsOutput::formatPercent($subset, $total, $revert, $accuracy); - return 'bgcolor="#'.$color.'" | '.$percent; - } -} - -/** Output text. To be used on a terminal for example. */ -class textStatsOutput extends statsOutput { - function element($in, $heading = false) { - $this->output .= $in."\t"; - } - function blockend(){ $this->output .="\n";} -} - -/** csv output. Some people love excel */ -class csvStatsOutput extends statsOutput { - function element($in, $heading = false) { - $this->output .= $in.";"; - } - function blockend(){ $this->output .="\n";} -} - - -function redundant(&$arr, $langcode) { - global $wgAllMessagesEn; - - $redundant = 0; - foreach(array_keys($arr) as $key) { - if ( @$wgAllMessagesEn[$key] === null ) { - global $options; - if( isset($options['showold']) ) { - print "Deprecated [$langcode]: $key\n"; - } - ++$redundant; - } - } - return $redundant; -} - -// Select an output engine -switch ($options['output']) { - case 'csv': - $out = new csvStatsOutput(); break; - case 'none': - $out = new noneStatsOutput(); break; - case 'text': - $out = new textStatsOutput(); break; - case 'wiki': - $out = new wikiStatsOutput(); break; - default: - usage(); wfDie(); - break; -} - -$langTool = new languages(); - -// Load message and compute stuff -$msgs = array(); -foreach($langTool->getList() as $langcode) { - // Since they aren't loaded by default.. - require_once( 'languages/Language' . $langcode . '.php' ); - $arr = 'wgAllMessages'.$langcode; - if(@is_array($$arr)) { - $msgs[$wgContLang->lcfirst($langcode)] = array( - 'total' => count($$arr), - 'redundant' => redundant($$arr, $langcode), - ); - } else { - $msgs[$wgContLang->lcfirst($langcode)] = array( - 'total' => 0, - 'redundant' => 0, - ); - } -} - -// Top entry -$out->heading(); -$out->blockstart(); -$out->element('Language', true); -$out->element('Translated', true); -$out->element('%', true); -$out->element('Untranslated', true); -$out->element('%', true); -$out->element('Redundant', true); -$out->element('%', true); -$out->blockend(); - -// Generate rows -foreach($msgs as $lang => $stats) { - $out->blockstart(); - // Language - $out->element($wgContLang->getLanguageName(strtr($lang, '_', '-')) . " ($lang)"); - // Translated - $out->element($stats['total'] . '/' . $msgs['en']['total']); - // % Translated - $out->element($out->formatPercent($stats['total'], $msgs['en']['total'])); - // Untranslated - $out->element($msgs['en']['total'] - $stats['total']); - // % Untranslated - $out->element($out->formatPercent($msgs['en']['total'] - $stats['total'], $msgs['en']['total'], true)); - // Redundant & % Redundant - if($stats['redundant'] =='NC') { - $out->element('NC'); - $out->element('NC'); - } else { - $out->element($stats['redundant'] . '/' . $stats['total']); - $out->element($out->formatPercent($stats['redundant'], $stats['total'],true)); - } - $out->blockend(); -} -$out->footer(); - -// Final output -echo $out->getContent(); -?> -- cgit v1.2.3-54-g00ecf