]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - maintenance/language/transstat.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / maintenance / language / transstat.php
index c2144eb68c0fa5c5448926dc570c72fb4b723990..720295234cadea4dfda2aaa04636f95c8ce4c233 100644 (file)
@@ -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 <avarab@gmail.com>
- * @author Ashar Voultoiz <hashar at free dot fr>
+ * @author Antoine Musso <hashar at free dot fr>
  *
  * 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();
-
-