getMessages( $code ); $messages = $messages['all']; if ( $removeDupes ) { $messages = removeDupes( $messages, $dupeMsgSource ); } MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown, $messagesFolder ); } /** * Remove duplicates from a message array. * * @param $oldMsgArray array The input message array. * @param $dupeMsgSource string The source file path for duplicates. * @return Array $newMsgArray The output message array, with duplicates removed. */ function removeDupes( $oldMsgArray, $dupeMsgSource ) { if ( file_exists( $dupeMsgSource ) ) { include( $dupeMsgSource ); if ( !isset( $dupeMessages ) ) { echo( "There are no duplicated messages in the source file provided." ); exit( 1 ); } } else { echo ( "The specified file $dupeMsgSource cannot be found." ); exit( 1 ); } $newMsgArray = $oldMsgArray; foreach ( $oldMsgArray as $key => $value ) { if ( array_key_exists( $key, $dupeMessages ) ) { unset( $newMsgArray[$key] ); } } return $newMsgArray; } # Show help if ( isset( $options['help'] ) ) { echo <<getCode(); } # Get the duplicate message source if ( isset( $options['remove-duplicates'] ) && ( strcmp( $options['remove-duplicates'], '' ) ) ) { $wgDupeMessageSource = $options['remove-duplicates']; } else { $wgDupeMessageSource = ''; } # Get the options $wgWriteToFile = !isset( $options['dry-run'] ); $wgListUnknownMessages = !isset( $options['no-unknown'] ); $wgRemoveUnknownMessages = isset( $options['remove-unknown'] ); $wgRemoveDuplicateMessages = isset( $options['remove-duplicates'] ); $messagesFolder = isset( $options['messages-folder'] ) ? $options['messages-folder'] : false; # Get language objects $languages = new languages(); # Write all the language if ( $wgCode == 'all' ) { foreach ( $languages->getLanguages() as $languageCode ) { rebuildLanguage( $languages, $languageCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder ); } } else { rebuildLanguage( $languages, $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder ); }