From 40001243e2a078038913a967970ac70d94b4cf88 Mon Sep 17 00:00:00 2001 From: Sam Reed Date: Fri, 13 Aug 2010 08:29:44 +0000 Subject: [PATCH] Apparently hasn't worked since 1.7... sooooo... --- maintenance/language/diffLanguage.php | 158 -------------------------- 1 file changed, 158 deletions(-) delete mode 100644 maintenance/language/diffLanguage.php diff --git a/maintenance/language/diffLanguage.php b/maintenance/language/diffLanguage.php deleted file mode 100644 index 4ead2cee23..0000000000 --- a/maintenance/language/diffLanguage.php +++ /dev/null @@ -1,158 +0,0 @@ - and others -# http://www.mediawiki.org/ -# -# 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 - -/** - * Usage: php DiffLanguage.php [lang [file]] - * - * lang: Enter the language code following "Language" of the LanguageXX.php you - * want to check. If using linux you might need to follow case aka Zh and not - * zh. - * - * file: A php language file you want to include to compare mediawiki - * Language{Lang}.php against (for example Special:Allmessages PHP output). - * - * The goal is to get a list of messages not yet localised in a languageXX.php - * file using the language.php file as reference. - * - * The script then print a list of wgAllMessagesXX keys that aren't localised, a - * percentage of messages correctly localised and the number of messages to be - * translated. - * - * @file - * @ingroup MaintenanceLanguage - */ - -/** This script run from the commandline */ -require_once( dirname( __FILE__ ) . '/../commandLine.inc' ); - -if ( isset( $options['help'] ) ) { usage(); wfDie(); } - -$wgLanguageCode = ucfirstlcrest( $wgLanguageCode ); -/** Language messages we will use as reference. By default 'en' */ -$referenceMessages = $wgAllMessagesEn; -$referenceLanguage = 'En'; -$referenceFilename = 'Language' . $referenceLanguage . '.php'; -/** Language messages we will test. */ -$testMessages = array(); -$testLanguage = ''; -/** whereas we use an external language file */ -$externalRef = false; - -# FUNCTIONS -/** @todo more informations !! */ -function usage() { -echo 'php DiffLanguage.php [lang [file]] [--color=(yes|no|light)]' . "\n"; -} - -/** Return a given string with first letter upper case, the rest lowercase */ -function ucfirstlcrest( $string ) { - return strtoupper( substr( $string, 0, 1 ) ) . strtolower( substr( $string, 1 ) ); -} - -/** - * Return a $wgAllmessages array shipped in MediaWiki - * @param $languageCode String: formated language code - * @return array The MediaWiki default $wgAllMessages array requested - */ -function getMediawikiMessages( $languageCode = 'En' ) { - - $foo = "wgAllMessages$languageCode"; - global $$foo; - global $wgSkinNamesEn; // potentially unused global declaration? - - // it might already be loaded in LocalSettings.php - if ( !isset( $$foo ) ) { - global $IP; - $langFile = $IP . '/languages/classes/Language' . $languageCode . '.php'; - if ( file_exists( $langFile ) ) { - print "Including $langFile\n"; - include( $langFile ); - } else wfDie( "ERROR: The file $langFile does not exist !\n" ); - } - return $$foo; -} - -/** - * Return a $wgAllmessages array in a given file. Language of the array - * need to be given cause we can not detect which language it provides - * @param $filename String: filename of the file containing a message array - * @param $languageCode String: language of the external array - * @return array A $wgAllMessages array from an external file. - */ -function getExternalMessages( $filename, $languageCode ) { - print "Including external file $filename.\n"; - include( $filename ); - $foo = "wgAllMessages$languageCode"; - return $$foo; -} - -# MAIN ENTRY -if ( isset( $args[0] ) ) { - $lang = ucfirstlcrest( $args[0], 1 ); - - // eventually against another language file we will use as reference instead - // of the default english language. - if ( isset( $args[1] ) ) { - // we assume the external file contain an array of messages for the - // lang we are testing - $referenceMessages = getExternalMessages( $args[1], $lang ); - $referenceLanguage = $lang; - $referenceFilename = $args[1]; - $externalRef = true; - } - - // Load datas from MediaWiki - $testMessages = getMediawikiMessages( $lang ); - $testLanguage = $lang; -} else { - usage(); - wfDie(); -} - -/** parsertest is used to do differences */ -$myParserTest = new ParserTest(); - -# Get all references messages and check if they exist in the tested language -$i = 0; - -$msg = "MW Language{$testLanguage}.php against "; -if ( $externalRef ) { $msg .= 'external file '; } -else { $msg .= 'internal file '; } -$msg .= $referenceFilename . ' (' . $referenceLanguage . "):\n----\n"; -echo $msg; - -// process messages -foreach ( $referenceMessages as $index => $ref ) -{ - // message is not localized - if ( !( isset( $testMessages[$index] ) ) ) { - $i++; - print "'$index' => \"$ref\",\n"; - // Messages in the same language differs - } elseif ( ( $lang == $referenceLanguage ) AND ( $testMessages[$index] != $ref ) ) { - print "\n$index differs:\n"; - print $myParserTest->quickDiff( $testMessages[$index], $ref, 'tested', 'reference' ); - } -} - -echo "\n----\n" . $msg; -echo "$referenceLanguage language is complete at " . number_format( ( 100 - $i / count( $wgAllMessagesEn ) * 100 ), 2 ) . "%\n"; -echo "$i unlocalised messages of the " . count( $wgAllMessagesEn ) . " messages available.\n"; - -- 2.20.1