From 72be54ae3c17b7039ec598cb900c62a876596808 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Fri, 13 Apr 2007 13:50:23 +0000 Subject: [PATCH] * The array_name is now used to check for a function existence, it avoids a warning about guessed function. * Now show the total number of errors found for an extension or print " Links OK" if everything looks fine. --- maintenance/language/checkExtensioni18n.php | 29 +++++++++++++++++---- maintenance/language/checkLanguage.inc | 9 +++++++ 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/maintenance/language/checkExtensioni18n.php b/maintenance/language/checkExtensioni18n.php index 8ae0d449fe..7a131a08ee 100644 --- a/maintenance/language/checkExtensioni18n.php +++ b/maintenance/language/checkExtensioni18n.php @@ -71,10 +71,17 @@ class extensionLanguages extends languages { * break with the global statement, so recheck here. */ global ${$this->mExtArrayName}; - if( isset( ${$this->mExtArrayName} ) ) { + if( is_array( ${$this->mExtArrayName} ) ) { $foundarray = ${$this->mExtArrayName}; } + /* we might have been given a function name, test it too */ + if( function_exists( $this->mExtArrayName ) ) { + // Load data + $funcName = $this->mExtArrayName ; + $foundarray = $funcName(); + } + if(!$foundarray) { // Provided array could not be found we try to guess it. @@ -150,22 +157,27 @@ function checkExtensionLanguage( $filename, $arrayname, $filter = null ) { return false; } + $nErrors = 0; if( $filter ) { - checkLanguage( $extLanguages, $filter ); + $nErrors += checkLanguage( $extLanguages, $filter ); } else { - print "Found ". count($langs) . " languages : " . implode(' ', $langs) ."\n"; + print "Will check ". count($langs) . " languages : " . implode(' ', $langs) .".\n"; foreach( $langs as $lang ) { if( $lang == 'en' ) { #print "Skipped english language\n"; continue; } - checkLanguage( $extLanguages, $lang ); + $nErrors += checkLanguage( $extLanguages, $lang ); } } + return $nErrors; } +/** + * Read the db file, parse it, start the check. + */ function checkExtensionRepository( $extdir, $db ) { $fh = fopen( $extdir. '/' . $db, 'r' ); @@ -198,7 +210,14 @@ function checkExtensionRepository( $extdir, $db ) { $i18n_file = $extdir . '/' . $i18n_file ; global $myLang; - checkExtensionLanguage( $i18n_file, $arrayname, $myLang ); + $nErrors = checkExtensionLanguage( $i18n_file, $arrayname, $myLang ); + if($nErrors == 1 ) { + print "\nFound $nErrors error for this extension.\n"; + } elseif($nErrors) { + print "\nFound $nErrors errors for this extension.\n"; + } else { + print "Looks OK.\n"; + } print "\n"; } diff --git a/maintenance/language/checkLanguage.inc b/maintenance/language/checkLanguage.inc index 1bc24b8e30..e859e39cc5 100644 --- a/maintenance/language/checkLanguage.inc +++ b/maintenance/language/checkLanguage.inc @@ -4,6 +4,7 @@ * * @todo Stop with globals. * @param $code The language code. + * @return Number of errors found. */ function checkLanguage( $wgLanguages, $code ) { global $wgRequiredMessagesNumber, $wgDisplayLevel, $wgLinks, $wgWikiLanguage, $wgChecks; @@ -17,6 +18,12 @@ function checkLanguage( $wgLanguages, $code ) { return; } + // Initialize counts + $untranslatedMessagesNumber = $duplicateMessagesNumber = $obsoleteMessagesNumber + = $messagesWithoutVariablesNumber = $messagesWithoutPluralNumber = $emptyMessagesNumber + = $messagesWithWhitespaceNumber = $nonXHTMLMessagesNumber = $messagesWithWrongCharsNumber + = 0; + # Untranslated messages if ( in_array( 'untranslated', $wgChecks ) ) { $untranslatedMessages = $wgLanguages->getUntranslatedMessages( $code ); @@ -79,5 +86,7 @@ function checkLanguage( $wgLanguages, $code ) { $messagesWithWrongCharsNumber = count( $messagesWithWrongChars ); $wgLanguages->outputMessagesList( $messagesWithWrongChars, $code, "\n$messagesWithWrongCharsNumber messages of $messagesNumber in $code include hidden chars which should not be used in the messages:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage ); } + + return ($untranslatedMessagesNumber + $duplicateMessagesNumber + $obsoleteMessagesNumber + $messagesWithoutVariablesNumber + $messagesWithoutPluralNumber + $emptyMessagesNumber + $messagesWithWhitespaceNumber + $nonXHTMLMessagesNumber + $messagesWithWrongCharsNumber); } ?> -- 2.20.1