00001 <?php 00010 require_once( dirname(__FILE__).'/../commandLine.inc' ); 00011 require_once( 'languages.inc' ); 00012 require_once( 'writeMessagesArray.inc' ); 00013 00022 function rebuildLanguage( $code, $write, $listUnknown, $removeUnknown ) { 00023 global $wgLanguages; 00024 $messages = $wgLanguages->getMessages( $code ); 00025 $messages = $messages['all']; 00026 MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown ); 00027 } 00028 00029 # Show help 00030 if ( isset( $options['help'] ) ) { 00031 echo <<<END 00032 Run this script to rewrite the messages array in the files languages/messages/MessagesXX.php. 00033 Parameters: 00034 * lang: Language code (default: the installation default language). You can also specify "all" to check all the languages. 00035 * help: Show this help. 00036 Options: 00037 * dry-run: Do not write the array to the file. 00038 * no-unknown: Do not list the unknown messages. 00039 * remove-unknown: Remove unknown messages. 00040 00041 END; 00042 exit(); 00043 } 00044 00045 # Get the language code 00046 if ( isset( $options['lang'] ) ) { 00047 $wgCode = $options['lang']; 00048 } else { 00049 $wgCode = $wgContLang->getCode(); 00050 } 00051 00052 # Get the options 00053 $wgWriteToFile = !isset( $options['dry-run'] ); 00054 $wgListUnknownMessages = !isset( $options['no-unknown'] ); 00055 $wgRemoveUnknownMessages = isset( $options['remove-unknown'] ); 00056 00057 # Get language objects 00058 $wgLanguages = new languages(); 00059 00060 # Write all the language 00061 if ( $wgCode == 'all' ) { 00062 foreach ( $wgLanguages->getLanguages() as $language ) { 00063 rebuildLanguage( $language, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages ); 00064 } 00065 } else { 00066 rebuildLanguage( $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages ); 00067 }