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 }