In the language scripts:
authorRotem Liss <rotem@users.mediawiki.org>
Fri, 4 Aug 2006 20:58:19 +0000 (20:58 +0000)
committerRotem Liss <rotem@users.mediawiki.org>
Fri, 4 Aug 2006 20:58:19 +0000 (20:58 +0000)
* Using Language::getMessagesFor instead of creating new language objects.
* Allowing a parameter which specifies the language code to check instead of the default one, in checktrans.php, duplicatetrans.php and unusedMessages.php.
checktrans.php still does not work; duplicatetrans.php still works improperly.

maintenance/alltrans.php
maintenance/checktrans.php
maintenance/commandLine.inc
maintenance/dumpMessages.php
maintenance/duplicatetrans.php
maintenance/unusedMessages.php

index ad41f03..9dd8756 100644 (file)
@@ -8,8 +8,8 @@
 
 require_once( 'commandLine.inc' );
 
-$wgEnglishLang = Language::factory( 'en' );
-foreach( array_keys( $wgEnglishLang->getAllMessages() ) as $key ) {
+$wgEnglishMessages = array_keys( Language::getMessagesFor( 'en' ) );
+foreach( $wgEnglishMessages as $key ) {
        echo "$key\n";
 }
 
index 42a7b84..5c0969f 100644 (file)
@@ -3,32 +3,37 @@
  * @package MediaWiki
  * @subpackage Maintenance
  * Check to see if all messages have been translated into the selected language.
- * To run this script, you must have a working installation, and it checks the
- * selected language of that installation.
+ * To run this script, you must have a working installation, and you can specify
+ * a language, or the script will check the installation language.
  */
 
 /** */
 require_once('commandLine.inc');
 
-die( "This script currently *does not work*, please wait for fix.\n" );
+#die( "This script currently *does not work*, please wait for fix.\n" );
 
-if ( $wgLang->getCode() == 'en' ) {
+if ( isset( $args[0] ) ) {
+       $code = $args[0];
+} else {
+       $code = $wgLang->getCode();
+}
+
+if ( $code == 'en' ) {
        print "Current selected language is English. Cannot check translations.\n";
        exit();
 }
 
 $count = $total = 0;
-$wgEnglishLang = Language::factory( 'en' );
-$wgEnglishMessages = $wgEnglishLang->getAllMessages();
-$wgLocalMessages = $wgLang->getAllMessages();
+$wgEnglishMessages = Language::getMessagesFor( 'en' );
+$wgLocalMessages = Language::getMessagesFor( $code );
 
-foreach ( $wgEnglishMessages as $code => $msg ) {
+foreach ( $wgEnglishMessages as $key => $msg ) {
        ++$total;
-       if ( !isset( $wgLocalMessages[$code] ) ) {
-               print "'{$code}' => \"$msg\",\n";
+       if ( !isset( $wgLocalMessages[$key] ) ) {
+               print "'{$key}' => \"$msg\",\n";
                ++$count;
        }
 }
 
-print "{$count} messages of {$total} not translated.\n";
+print "{$count} messages of {$total} are not translated in the language {$code}.\n";
 ?>
index 93edce1..68afea8 100644 (file)
@@ -157,7 +157,7 @@ if ( file_exists( '/home/wikipedia/common/langlist' ) ) {
        if ( isset( $options['conf'] ) ) {
                $settingsFile = $options['conf'];
        } else {
-               $settingsFile = "$IP/LocalSettings.php";
+               $settingsFile = "../he/LocalSettings.php";
        }
 
        if ( ! is_readable( $settingsFile ) ) {
index b31b092..f273c71 100644 (file)
@@ -9,8 +9,8 @@
 require_once( "commandLine.inc" );
 $wgMessageCache->disableTransform();
 $messages = array();
-$wgEnglishLang = Language::factory( 'en' );
-foreach ( $wgEnglishLang->getAllMessages() as $key => $englishValue )
+$wgEnglishMessages = array_keys( Language::getMessagesFor( 'en' ) );
+foreach ( $wgEnglishMessages as $key )
 {
        $messages[$key] = wfMsg( $key );
 }
index 89779e8..8f82fd6 100644 (file)
@@ -11,23 +11,28 @@ require_once('commandLine.inc');
 
 echo "Note: the script also lists the messages which are not defined in this language file, please wait for the bugfix.\n\n";
 
-if ( $wgLang->getCode() == 'en' ) {
+if ( isset( $args[0] ) ) {
+       $code = $args[0];
+} else {
+       $code = $wgLang->getCode();
+}
+
+if ( $code == 'en' ) {
        print "Current selected language is English. Cannot check translations.\n";
        exit();
 }
 
 $count = $total = 0;
-$wgEnglishLang = Language::factory( 'en' );
-$wgEnglishMessages = $wgEnglishLang->getAllMessages();
-$wgLocalMessages = $wgLang->getAllMessages();
+$wgEnglishMessages = Language::getMessagesFor( 'en' );
+$wgLocalMessages = Language::getMessagesFor( $code );
 
-foreach ( $wgEnglishMessages as $code => $msg ) {
+foreach ( $wgEnglishMessages as $key => $msg ) {
        ++$total;
-       if ( $wgLocalMessages[$code] == $wgEnglishMessages[$code] ) {
-               echo "* $code\n";
+       if ( $wgLocalMessages[$key] == $wgEnglishMessages[$key] ) {
+               echo "* $key\n";
                ++$count;
        }
 }
 
-echo "{$count} messages of {$total} are duplicates\n";
+echo "{$count} messages of {$total} are duplicates in the language {$code}\n";
 ?>
index 351f854..67170bc 100644 (file)
@@ -8,23 +8,28 @@
 
 require_once('commandLine.inc');
 
-if ( $wgLang->getCode() == 'en' ) {
+if ( isset( $args[0] ) ) {
+       $code = $args[0];
+} else {
+       $code = $wgLang->getCode();
+}
+
+if ( $code == 'en' ) {
        print "Current selected language is English. Cannot check translations.\n";
        exit();
 }
 
 $count = $total = 0;
-$wgEnglishLang = Language::factory( 'en' );
-$wgEnglishMessages = $wgEnglishLang->getAllMessages();
-$wgLocalMessages = $wgLang->getAllMessages();
+$wgEnglishMessages = Language::getMessagesFor( 'en' );
+$wgLocalMessages = Language::getMessagesFor( $code );
 
-foreach ( $wgLocalMessages as $code => $msg ) {
+foreach ( $wgLocalMessages as $key => $msg ) {
        ++$total;
-       if ( !isset( $wgEnglishMessages[$code] ) ) {
-               print "* $code\n";
+       if ( !isset( $wgEnglishMessages[$key] ) ) {
+               print "* $key\n";
                ++$count;
        }
 }
 
-print "{$count} messages of {$total} are unused\n";
+print "{$count} messages of {$total} are unused in the language {$code}\n";
 ?>