From 24e2e0afecc1fd1da3a400a544d373a437f64688 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sat, 12 Jul 2008 12:23:41 +0000 Subject: [PATCH] Add option to rebuildLanguage.php * --remove-unknown: Remove unknown messages --- maintenance/language/rebuildLanguage.php | 19 +++++++++--------- maintenance/language/writeMessagesArray.inc | 22 ++++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/maintenance/language/rebuildLanguage.php b/maintenance/language/rebuildLanguage.php index 505bbd7896..91fda3f4bb 100644 --- a/maintenance/language/rebuildLanguage.php +++ b/maintenance/language/rebuildLanguage.php @@ -1,6 +1,6 @@ getMessages( $code ); $messages = $messages['all']; - MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown ); + MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown ); } # Show help @@ -33,8 +34,9 @@ Parameters: * lang: Language code (default: the installation default language). You can also specify "all" to check all the languages. * help: Show this help. Options: - * dry-run: Don't write the array to the file. - * no-unknown: Don't list the unknown messages. + * dry-run: Do not write the array to the file. + * no-unknown: Do not list the unknown messages. + * remove-unknown: Remove unknown messages. END; exit(); @@ -50,6 +52,7 @@ if ( isset( $options['lang'] ) ) { # Get the options $wgWriteToFile = !isset( $options['dry-run'] ); $wgListUnknownMessages = !isset( $options['no-unknown'] ); +$wgRemoveUnknownMessages = isset( $options['remove-unknown'] ); # Get language objects $wgLanguages = new languages(); @@ -57,10 +60,8 @@ $wgLanguages = new languages(); # Write all the language if ( $wgCode == 'all' ) { foreach ( $wgLanguages->getLanguages() as $language ) { - rebuildLanguage( $language, $wgWriteToFile, $wgListUnknownMessages ); + rebuildLanguage( $language, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages ); } } else { - rebuildLanguage( $wgCode, $wgWriteToFile, $wgListUnknownMessages ); + rebuildLanguage( $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages ); } - - diff --git a/maintenance/language/writeMessagesArray.inc b/maintenance/language/writeMessagesArray.inc index ac4a3d9483..b4dba41a0c 100644 --- a/maintenance/language/writeMessagesArray.inc +++ b/maintenance/language/writeMessagesArray.inc @@ -27,9 +27,9 @@ class MessageWriter { * @param $write Write to the messages file? * @param $listUnknown List the unknown messages? */ - public static function writeMessagesToFile( $messages, $code, $write, $listUnknown ) { + public static function writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown ) { # Rewrite the messages array - $messages = self::writeMessagesArray( $messages, $code == 'en' ); + $messages = self::writeMessagesArray( $messages, $code == 'en', false, $removeUnknown ); $messagesText = $messages[0]; $sortedMessages = $messages[1]; @@ -51,7 +51,10 @@ class MessageWriter { } } if( $listUnknown && isset( $sortedMessages['unknown'] ) && !empty( $sortedMessages['unknown'] ) ) { - echo "\nThere are " . count( $sortedMessages['unknown'] ) . " unknown messages, please check them:\n"; + if ( $removeUnknown ) + echo "\nThe following " . count( $sortedMessages['unknown'] ) . " unknown messages have been removed:\n"; + else + echo "\nThere are " . count( $sortedMessages['unknown'] ) . " unknown messages, please check them:\n"; foreach( $sortedMessages['unknown'] as $key => $value ) { echo "* " . $key . "\n"; } @@ -69,10 +72,10 @@ class MessageWriter { * * @return Array of the PHP text and the sorted messages array. */ - public static function writeMessagesArray( $messages, $ignoredComments = false, $prefix = false ) { + public static function writeMessagesArray( $messages, $ignoredComments = false, $prefix = false, $removeUnknown = false ) { # Load messages $dir = $prefix ? $prefix : dirname( __FILE__ ); - + require( $dir . '/messages.inc' ); self::$messageStructure = $wgMessageStructure; self::$blockComments = $wgBlockComments; @@ -118,11 +121,12 @@ class MessageWriter { # Write the unknown messages, alphabetically sorted. # Of course, we don't have any comments for them, because the are unknown. - ksort( $sortedMessages['unknown'] ); - $messagesText .= self::writeMessagesBlock( 'Unknown messages', $sortedMessages['unknown'] ); - $messagesText .= "); + if ( !$removeUnknown ) { + ksort( $sortedMessages['unknown'] ); + $messagesText .= self::writeMessagesBlock( 'Unknown messages', $sortedMessages['unknown'] ); + } + $messagesText .= "); "; - return array( $messagesText, $sortedMessages ); } -- 2.20.1