X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/19e297c21b10b1b8a3acad5e73fc71dcb35db44a..6932310fd58ebef145fa01eb76edf7150284d8ea:/maintenance/language/transstat.php diff --git a/maintenance/language/transstat.php b/maintenance/language/transstat.php index c2144eb6..72029523 100644 --- a/maintenance/language/transstat.php +++ b/maintenance/language/transstat.php @@ -2,21 +2,36 @@ /** * Statistics about the localisation. * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * * @file * @ingroup MaintenanceLanguage * * @author Ævar Arnfjörð Bjarmason - * @author Ashar Voultoiz + * @author Antoine Musso * * Output is posted from time to time on: - * http://www.mediawiki.org/wiki/Localisation_statistics + * https://www.mediawiki.org/wiki/Localisation_statistics */ -$optionsWithArgs = array( 'output' ); - -require_once( dirname( __FILE__ ) . '/../commandLine.inc' ); -require_once( 'languages.inc' ); -require_once( dirname( __FILE__ ) . '/StatOutputs.php' ); +$optionsWithArgs = [ 'output' ]; +$optionsWithoutArgs = [ 'help' ]; +require_once __DIR__ . '/../commandLine.inc'; +require_once 'languages.inc'; +require_once __DIR__ . '/StatOutputs.php'; if ( isset( $options['help'] ) ) { showUsage(); @@ -42,25 +57,23 @@ TEXT; exit( 1 ); } - - # Select an output engine switch ( $options['output'] ) { case 'wiki': - $output = new wikiStatsOutput(); + $output = new WikiStatsOutput(); break; case 'text': - $output = new textStatsOutput(); + $output = new TextStatsOutput(); break; case 'csv': - $output = new csvStatsOutput(); + $output = new CsvStatsOutput(); break; default: showUsage(); } # Languages -$wgLanguages = new languages(); +$languages = new Languages(); # Header $output->heading(); @@ -76,31 +89,50 @@ $output->element( 'Problematic', true ); $output->element( '%', true ); $output->blockend(); -$wgGeneralMessages = $wgLanguages->getGeneralMessages(); +$wgGeneralMessages = $languages->getGeneralMessages(); $wgRequiredMessagesNumber = count( $wgGeneralMessages['required'] ); -foreach ( $wgLanguages->getLanguages() as $code ) { - # Don't check English or RTL English - if ( $code == 'en' || $code == 'enRTL' ) { +foreach ( $languages->getLanguages() as $code ) { + # Don't check English, RTL English or dummy language codes + if ( $code == 'en' || $code == 'enRTL' || ( is_array( $wgDummyLanguageCodes ) && + isset( $wgDummyLanguageCodes[$code] ) ) + ) { continue; } # Calculate the numbers - $language = $wgContLang->getLanguageName( $code ); - $fallback = $wgLanguages->getFallback( $code ); - $messages = $wgLanguages->getMessages( $code ); + $language = Language::fetchLanguageName( $code ); + $fallback = $languages->getFallback( $code ); + $messages = $languages->getMessages( $code ); $messagesNumber = count( $messages['translated'] ); $requiredMessagesNumber = count( $messages['required'] ); - $requiredMessagesPercent = $output->formatPercent( $requiredMessagesNumber, $wgRequiredMessagesNumber ); + $requiredMessagesPercent = $output->formatPercent( + $requiredMessagesNumber, + $wgRequiredMessagesNumber + ); $obsoleteMessagesNumber = count( $messages['obsolete'] ); - $obsoleteMessagesPercent = $output->formatPercent( $obsoleteMessagesNumber, $messagesNumber, true ); - $messagesWithMismatchVariables = $wgLanguages->getMessagesWithMismatchVariables( $code ); - $emptyMessages = $wgLanguages->getEmptyMessages( $code ); - $messagesWithWhitespace = $wgLanguages->getMessagesWithWhitespace( $code ); - $nonXHTMLMessages = $wgLanguages->getNonXHTMLMessages( $code ); - $messagesWithWrongChars = $wgLanguages->getMessagesWithWrongChars( $code ); - $problematicMessagesNumber = count( array_unique( array_merge( $messagesWithMismatchVariables, $emptyMessages, $messagesWithWhitespace, $nonXHTMLMessages, $messagesWithWrongChars ) ) ); - $problematicMessagesPercent = $output->formatPercent( $problematicMessagesNumber, $messagesNumber, true ); + $obsoleteMessagesPercent = $output->formatPercent( + $obsoleteMessagesNumber, + $messagesNumber, + true + ); + $messagesWithMismatchVariables = $languages->getMessagesWithMismatchVariables( $code ); + $emptyMessages = $languages->getEmptyMessages( $code ); + $messagesWithWhitespace = $languages->getMessagesWithWhitespace( $code ); + $nonXHTMLMessages = $languages->getNonXHTMLMessages( $code ); + $messagesWithWrongChars = $languages->getMessagesWithWrongChars( $code ); + $problematicMessagesNumber = count( array_unique( array_merge( + $messagesWithMismatchVariables, + $emptyMessages, + $messagesWithWhitespace, + $nonXHTMLMessages, + $messagesWithWrongChars + ) ) ); + $problematicMessagesPercent = $output->formatPercent( + $problematicMessagesNumber, + $messagesNumber, + true + ); # Output them $output->blockstart(); @@ -118,5 +150,3 @@ foreach ( $wgLanguages->getLanguages() as $code ) { # Footer $output->footer(); - -