X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Flanguage%2FrebuildLanguage.php;h=ad839054f7624a761c6e65d8a47d5c3a61471e5e;hb=e22fee1e3047f480a7cc7a49c19ae064d3dfd403;hp=6c624ca3170e5de2c467adf9ef2e87a6e11c8468;hpb=353ed3b49cb186ff4c14b5a4e346f2d7f9b5a406;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/language/rebuildLanguage.php b/maintenance/language/rebuildLanguage.php index 6c624ca317..ad839054f7 100644 --- a/maintenance/language/rebuildLanguage.php +++ b/maintenance/language/rebuildLanguage.php @@ -2,57 +2,73 @@ /** * Rewrite the messages array in the files languages/messages/MessagesXx.php. * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * * @file * @ingroup MaintenanceLanguage * @defgroup MaintenanceLanguage MaintenanceLanguage */ -require_once( dirname(__FILE__).'/../commandLine.inc' ); +require_once( __DIR__ . '/../commandLine.inc' ); require_once( 'languages.inc' ); require_once( 'writeMessagesArray.inc' ); /** * Rewrite a messages array. * - * @param $code The language code. - * @param $write Write to the messages file? - * @param $listUnknown List the unknown messages? - * @param $removeUnknown Remove the unknown messages? - * @param $removeDupes Remove the duplicated messages? - * @param $dupeMsgSource The source file intended to remove from the array. + * @param $languages + * @param $code string The language code. + * @param bool $write Write to the messages file? + * @param bool $listUnknown List the unknown messages? + * @param bool $removeUnknown Remove the unknown messages? + * @param bool $removeDupes Remove the duplicated messages? + * @param $dupeMsgSource string The source file intended to remove from the array. + * @param $messagesFolder String: path to a folder to store the MediaWiki messages. */ -function rebuildLanguage( $code, $write, $listUnknown, $removeUnknown, $removeDupes, $dupeMsgSource ) { - global $wgLanguages; - $messages = $wgLanguages->getMessages( $code ); +function rebuildLanguage( $languages, $code, $write, $listUnknown, $removeUnknown, $removeDupes, $dupeMsgSource, $messagesFolder ) { + $messages = $languages->getMessages( $code ); $messages = $messages['all']; - if ($removeDupes) { + if ( $removeDupes ) { $messages = removeDupes( $messages, $dupeMsgSource ); } - MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown ); + MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown, $messagesFolder ); } /** * Remove duplicates from a message array. * - * @param $oldMsgArray The input message array. - * @param $dupeMsgSource The source file path for duplicates. - * @return $newMsgArray The output message array, with duplicates removed. + * @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); + 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); + echo ( "The specified file $dupeMsgSource cannot be found." ); + exit( 1 ); } $newMsgArray = $oldMsgArray; - foreach ($oldMsgArray as $key => $value) { + foreach ( $oldMsgArray as $key => $value ) { if ( array_key_exists( $key, $dupeMessages ) ) { - unset($newMsgArray[$key]); + unset( $newMsgArray[$key] ); } } return $newMsgArray; @@ -70,9 +86,10 @@ Options: * no-unknown: Do not list the unknown messages. * remove-unknown: Remove unknown messages. * remove-duplicates: Remove duplicated messages based on a PHP source file. + * messages-folder: An alternative folder with MediaWiki messages. TEXT; - exit(1); + exit( 1 ); } # Get the language code @@ -94,15 +111,16 @@ $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 -$wgLanguages = new languages(); +$languages = new languages(); # Write all the language if ( $wgCode == 'all' ) { - foreach ( $wgLanguages->getLanguages() as $language ) { - rebuildLanguage( $language, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource ); + foreach ( $languages->getLanguages() as $languageCode ) { + rebuildLanguage( $languages, $languageCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder ); } } else { - rebuildLanguage( $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource ); + rebuildLanguage( $languages, $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder ); }