From: Platonides Date: Sun, 8 Apr 2012 17:01:35 +0000 (+0200) Subject: Add option to rebuild message files on a different folder. X-Git-Tag: 1.31.0-rc.0~23906^2 X-Git-Url: http://git.cyclocoop.org/%24action?a=commitdiff_plain;h=dd9761a03778e97a706b6ecf30b70701a9aeea8b;p=lhc%2Fweb%2Fwiklou.git Add option to rebuild message files on a different folder. It also creates the message file if missing. As requested in http://thread.gmane.org/gmane.science.linguistics.wikipedia.technical/59984 with Siebrand clarifications in c4540. Change-Id: I56f7b1584d1a0eb5f9a69736949a90eeef9c5dfc --- diff --git a/maintenance/language/rebuildLanguage.php b/maintenance/language/rebuildLanguage.php index 643fc5f107..ed2dae7260 100644 --- a/maintenance/language/rebuildLanguage.php +++ b/maintenance/language/rebuildLanguage.php @@ -36,14 +36,15 @@ require_once( 'writeMessagesArray.inc' ); * @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( $languages, $code, $write, $listUnknown, $removeUnknown, $removeDupes, $dupeMsgSource ) { +function rebuildLanguage( $languages, $code, $write, $listUnknown, $removeUnknown, $removeDupes, $dupeMsgSource, $messagesFolder ) { $messages = $languages->getMessages( $code ); $messages = $messages['all']; if ( $removeDupes ) { $messages = removeDupes( $messages, $dupeMsgSource ); } - MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown ); + MessageWriter::writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown, $messagesFolder ); } /** @@ -85,6 +86,7 @@ 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 ); @@ -109,6 +111,7 @@ $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(); @@ -116,8 +119,8 @@ $languages = new languages(); # Write all the language if ( $wgCode == 'all' ) { foreach ( $languages->getLanguages() as $languageCode ) { - rebuildLanguage( $languages, $languageCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource ); + rebuildLanguage( $languages, $languageCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder ); } } else { - rebuildLanguage( $languages, $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource ); + rebuildLanguage( $languages, $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder ); } diff --git a/maintenance/language/writeMessagesArray.inc b/maintenance/language/writeMessagesArray.inc index c5d13c9e87..cd368476dd 100644 --- a/maintenance/language/writeMessagesArray.inc +++ b/maintenance/language/writeMessagesArray.inc @@ -41,16 +41,28 @@ class MessageWriter { * @param $write Boolean: write to the messages file? * @param $listUnknown Boolean: list the unknown messages? * @param $removeUnknown Boolean: whether to remove unkown messages + * @param $messagesFolder String: path to a folder to store the MediaWiki messages. Defaults to the current install. */ - public static function writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown ) { + public static function writeMessagesToFile( $messages, $code, $write, $listUnknown, $removeUnknown, $messagesFolder = false ) { # Rewrite the messages array $messages = self::writeMessagesArray( $messages, $code == 'en', false, $removeUnknown ); $messagesText = $messages[0]; $sortedMessages = $messages[1]; # Write to the file - $filename = Language::getMessagesFileName( $code ); - $contents = file_get_contents( $filename ); + if ( $messagesFolder ) + $filename = Language::getFileName( "$messagesFolder/Messages", $code ); + else + $filename = Language::getMessagesFileName( $code ); + + if ( file_exists( $filename ) ) + $contents = file_get_contents( $filename ); + else + $contents = '