<?php
/**
- * Rewrite the messages array in the files languages/messages/MessagesXX.php.
+ * Rewrite the messages array in the files languages/messages/MessagesXx.php.
*
* @file
* @ingroup MaintenanceLanguage
* @param $code The language code.
* @param $write Write to the messages file?
* @param $listUnknown List the unknown messages?
+ * @param $removeUnKnown Remove the unknown messages?
*/
-function rebuildLanguage( $code, $write, $listUnknown ) {
+function rebuildLanguage( $code, $write, $listUnknown, $removeUnknown ) {
global $wgLanguages;
$messages = $wgLanguages->getMessages( $code );
$messages = $messages['all'];
- MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown );
+ MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown );
}
# Show help
* 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();
# Get the options
$wgWriteToFile = !isset( $options['dry-run'] );
$wgListUnknownMessages = !isset( $options['no-unknown'] );
+$wgRemoveUnknownMessages = isset( $options['remove-unknown'] );
# Get language objects
$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 );
}
-
-
* @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];
}
}
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";
}
*
* @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;
# 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 );
}