From: Jimmy Collins Date: Wed, 4 Oct 2006 19:18:31 +0000 (+0000) Subject: moved transstat.php to maintenance/language/ X-Git-Tag: 1.31.0-rc.0~55622 X-Git-Url: http://git.cyclocoop.org/%28?a=commitdiff_plain;h=8d66c4d82b00dc84eddd51beecb62499253979c0;p=lhc%2Fweb%2Fwiklou.git moved transstat.php to maintenance/language/ --- diff --git a/maintenance/language/transstat.php b/maintenance/language/transstat.php new file mode 100644 index 0000000000..2dd116a967 --- /dev/null +++ b/maintenance/language/transstat.php @@ -0,0 +1,206 @@ + + * @author Ashar Voultoiz + * + * Output is posted from time to time on: + * http://meta.wikimedia.org/wiki/Localization_statistics + */ + +require_once( 'maintenance/commandLine.inc' ); +require_once( 'languages.inc' ); + +if ( isset( $options['help'] ) ) { + showUsage(); +} +# Default output is WikiText +if ( !isset( $options['output'] ) ) { + $options['output'] = 'wiki'; +} + +/** Print a usage message*/ +function showUsage() { + print <<" . $version . "\n\n"; + echo "'''Note:''' These statistics can be generated by running php maintenance/language/transstat.php.\n\n"; + echo "For additional information on specific languages (the message names, the actual problems, etc.), run php maintenance/language/checkLanguage.php --lang=foo.\n\n"; + echo "{| border=2 cellpadding=4 cellspacing=0 style=\"background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;\" width=100%\n"; + } + function footer() { + echo "|}\n"; + } + function blockstart() { + echo "|-\n"; + } + function blockend() { + echo ''; + } + function element( $in, $heading = false ) { + echo ($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; + } +} + +/** Outputs WikiText and appends category only used for Meta-Wiki */ +class metawikiStatsOutput extends wikiStatsOutput { + function footer() { + echo "|}\n\n"; + echo "[[Category:Localisation|Statistics]]\n"; + } +} + +/** Output text. To be used on a terminal for example. */ +class textStatsOutput extends statsOutput { + function element( $in, $heading = false ) { + echo $in."\t"; + } + function blockend() { + echo "\n"; + } +} + +/** csv output. Some people love excel */ +class csvStatsOutput extends statsOutput { + function element( $in, $heading = false ) { + echo $in . ";"; + } + function blockend() { + echo "\n"; + } +} + +# Select an output engine +switch ( $options['output'] ) { + case 'wiki': + $wgOut = new wikiStatsOutput(); + break; + case 'metawiki': + $wgOut = new metawikiStatsOutput(); + break; + case 'text': + $wgOut = new textStatsOutput(); + break; + case 'csv': + $wgOut = new csvStatsOutput(); + break; + default: + showUsage(); +} + +# Languages +$wgLanguages = new languages(); + +# Header +$wgOut->heading(); +$wgOut->blockstart(); +$wgOut->element( 'Language', true ); +$wgOut->element( 'Translated', true ); +$wgOut->element( '%', true ); +$wgOut->element( 'Obsolete', true ); +$wgOut->element( '%', true ); +$wgOut->element( 'Problematic', true ); +$wgOut->element( '%', true ); +$wgOut->blockend(); + +$wgGeneralMessages = $wgLanguages->getGeneralMessages(); +$wgRequiredMessagesNumber = count( $wgGeneralMessages['required'] ); + +foreach ( $wgLanguages->getLanguages() as $code ) { + # Don't check English or RTL English + if ( $code == 'en' || $code == 'enRTL' ) { + continue; + } + + # Calculate the numbers + $language = $wgContLang->getLanguageName( $code ); + $messages = $wgLanguages->getMessages( $code ); + $messagesNumber = count( $messages['translated'] ); + $requiredMessagesNumber = count( $messages['required'] ); + $requiredMessagesPercent = $wgOut->formatPercent( $requiredMessagesNumber, $wgRequiredMessagesNumber ); + $obsoleteMessagesNumber = count( $messages['obsolete'] ); + $obsoleteMessagesPercent = $wgOut->formatPercent( $obsoleteMessagesNumber, $messagesNumber, true ); + $messagesWithoutVariables = $wgLanguages->getMessagesWithoutVariables( $code ); + $emptyMessages = $wgLanguages->getEmptyMessages( $code ); + $messagesWithWhitespace = $wgLanguages->getMessagesWithWhitespace( $code ); + $nonXHTMLMessages = $wgLanguages->getNonXHTMLMessages( $code ); + $messagesWithWrongChars = $wgLanguages->getMessagesWithWrongChars( $code ); + $problematicMessagesNumber = count( array_unique( array_merge( $messagesWithoutVariables, $emptyMessages, $messagesWithWhitespace, $nonXHTMLMessages, $messagesWithWrongChars ) ) ); + $problematicMessagesPercent = $wgOut->formatPercent( $problematicMessagesNumber, $messagesNumber, true ); + + # Output them + $wgOut->blockstart(); + $wgOut->element( "$language ($code)" ); + $wgOut->element( "$requiredMessagesNumber/$wgRequiredMessagesNumber" ); + $wgOut->element( $requiredMessagesPercent ); + $wgOut->element( "$obsoleteMessagesNumber/$messagesNumber" ); + $wgOut->element( $obsoleteMessagesPercent ); + $wgOut->element( "$problematicMessagesNumber/$messagesNumber" ); + $wgOut->element( $problematicMessagesPercent ); + $wgOut->blockend(); +} + +# Footer +$wgOut->footer(); + +?> diff --git a/maintenance/transstat.php b/maintenance/transstat.php deleted file mode 100644 index 7bee51660a..0000000000 --- a/maintenance/transstat.php +++ /dev/null @@ -1,206 +0,0 @@ - - * @author Ashar Voultoiz - * - * 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'] ) ) { - showUsage(); -} -# Default output is WikiText -if ( !isset( $options['output'] ) ) { - $options['output'] = 'wiki'; -} - -/** Print a usage message*/ -function showUsage() { - print <<" . $version . "\n\n"; - echo "'''Note:''' These statistics can be generated by running php maintenance/transstat.php.\n\n"; - echo "For additional information on specific languages (the message names, the actual problems, etc.), run php maintenance/checkLanguage.php --lang=foo.\n\n"; - echo "{| border=2 cellpadding=4 cellspacing=0 style=\"background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;\" width=100%\n"; - } - function footer() { - echo "|}\n"; - } - function blockstart() { - echo "|-\n"; - } - function blockend() { - echo ''; - } - function element( $in, $heading = false ) { - echo ($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; - } -} - -/** Outputs WikiText and appends category only used for Meta-Wiki */ -class metawikiStatsOutput extends wikiStatsOutput { - function footer() { - echo "|}\n\n"; - echo "[[Category:Localisation|Statistics]]\n"; - } -} - -/** Output text. To be used on a terminal for example. */ -class textStatsOutput extends statsOutput { - function element( $in, $heading = false ) { - echo $in."\t"; - } - function blockend() { - echo "\n"; - } -} - -/** csv output. Some people love excel */ -class csvStatsOutput extends statsOutput { - function element( $in, $heading = false ) { - echo $in . ";"; - } - function blockend() { - echo "\n"; - } -} - -# Select an output engine -switch ( $options['output'] ) { - case 'wiki': - $wgOut = new wikiStatsOutput(); - break; - case 'metawiki': - $wgOut = new metawikiStatsOutput(); - break; - case 'text': - $wgOut = new textStatsOutput(); - break; - case 'csv': - $wgOut = new csvStatsOutput(); - break; - default: - showUsage(); -} - -# Languages -$wgLanguages = new languages(); - -# Header -$wgOut->heading(); -$wgOut->blockstart(); -$wgOut->element( 'Language', true ); -$wgOut->element( 'Translated', true ); -$wgOut->element( '%', true ); -$wgOut->element( 'Obsolete', true ); -$wgOut->element( '%', true ); -$wgOut->element( 'Problematic', true ); -$wgOut->element( '%', true ); -$wgOut->blockend(); - -$wgGeneralMessages = $wgLanguages->getGeneralMessages(); -$wgRequiredMessagesNumber = count( $wgGeneralMessages['required'] ); - -foreach ( $wgLanguages->getLanguages() as $code ) { - # Don't check English or RTL English - if ( $code == 'en' || $code == 'enRTL' ) { - continue; - } - - # Calculate the numbers - $language = $wgContLang->getLanguageName( $code ); - $messages = $wgLanguages->getMessages( $code ); - $messagesNumber = count( $messages['translated'] ); - $requiredMessagesNumber = count( $messages['required'] ); - $requiredMessagesPercent = $wgOut->formatPercent( $requiredMessagesNumber, $wgRequiredMessagesNumber ); - $obsoleteMessagesNumber = count( $messages['obsolete'] ); - $obsoleteMessagesPercent = $wgOut->formatPercent( $obsoleteMessagesNumber, $messagesNumber, true ); - $messagesWithoutVariables = $wgLanguages->getMessagesWithoutVariables( $code ); - $emptyMessages = $wgLanguages->getEmptyMessages( $code ); - $messagesWithWhitespace = $wgLanguages->getMessagesWithWhitespace( $code ); - $nonXHTMLMessages = $wgLanguages->getNonXHTMLMessages( $code ); - $messagesWithWrongChars = $wgLanguages->getMessagesWithWrongChars( $code ); - $problematicMessagesNumber = count( array_unique( array_merge( $messagesWithoutVariables, $emptyMessages, $messagesWithWhitespace, $nonXHTMLMessages, $messagesWithWrongChars ) ) ); - $problematicMessagesPercent = $wgOut->formatPercent( $problematicMessagesNumber, $messagesNumber, true ); - - # Output them - $wgOut->blockstart(); - $wgOut->element( "$language ($code)" ); - $wgOut->element( "$requiredMessagesNumber/$wgRequiredMessagesNumber" ); - $wgOut->element( $requiredMessagesPercent ); - $wgOut->element( "$obsoleteMessagesNumber/$messagesNumber" ); - $wgOut->element( $obsoleteMessagesPercent ); - $wgOut->element( "$problematicMessagesNumber/$messagesNumber" ); - $wgOut->element( $problematicMessagesPercent ); - $wgOut->blockend(); -} - -# Footer -$wgOut->footer(); - -?>