X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Flanguage%2FwriteMessagesArray.inc;h=7c880b2f9fa045cf07e3f0aa7e86e98bb4eb1013;hb=f8acd5fa6f9c9aee11728767803102e8154583ab;hp=17e1b2e63137bc288117d79f395f7ddbed7237c8;hpb=4141e8831736ad4fca13b179179d7bc831033e49;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/language/writeMessagesArray.inc b/maintenance/language/writeMessagesArray.inc index 17e1b2e631..7c880b2f9f 100644 --- a/maintenance/language/writeMessagesArray.inc +++ b/maintenance/language/writeMessagesArray.inc @@ -25,13 +25,14 @@ * @ingroup MaintenanceLanguage */ class MessageWriter { - static $optionalComment = 'only translate this message to other languages if you have to change it'; - static $ignoredComment = "do not translate or duplicate this message to other languages"; + protected static $optionalComment = + 'only translate this message to other languages if you have to change it'; + protected static $ignoredComment = "do not translate or duplicate this message to other languages"; - static $messageStructure; - static $blockComments; - static $ignoredMessages; - static $optionalMessages; + protected static $messageStructure; + protected static $blockComments; + protected static $ignoredMessages; + protected static $optionalMessages; /** * Write a messages array as a PHP text and write it to the messages file. @@ -41,48 +42,60 @@ 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. + * @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, $messagesFolder = false ) { + 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 - if ( $messagesFolder ) + if ( $messagesFolder ) { $filename = Language::getFileName( "$messagesFolder/Messages", $code ); - else + } else { $filename = Language::getMessagesFileName( $code ); + } - if ( file_exists( $filename ) ) + if ( file_exists( $filename ) ) { $contents = file_get_contents( $filename ); - else + } else { $contents = ' $value ) { + if ( $listUnknown && isset( $sortedMessages['unknown'] ) && + !empty( $sortedMessages['unknown'] ) + ) { + if ( $removeUnknown ) { + echo "\nThe following " . count( $sortedMessages['unknown'] ) . + " unknown messages have been removed:\n"; + } else { + echo "\nThere are " . count( $sortedMessages['unknown'] ) . + " unknown messages, please check them:\n"; + } + foreach ( $sortedMessages['unknown'] as $key => $value ) { echo "* " . $key . "\n"; } } @@ -103,26 +116,28 @@ $messages = array( * * @return Array of the PHP text and the sorted messages array. */ - public static function writeMessagesArray( $messages, $ignoredComments = false, $prefix = false, $removeUnknown = false ) { + public static function writeMessagesArray( $messages, $ignoredComments = false, + $prefix = false, $removeUnknown = false + ) { # Load messages $dir = $prefix ? $prefix : __DIR__; - require( $dir . '/messages.inc' ); + require $dir . '/messages.inc'; self::$messageStructure = $wgMessageStructure; self::$blockComments = $wgBlockComments; - require( $dir . '/messageTypes.inc' ); + require $dir . '/messageTypes.inc'; self::$ignoredMessages = $wgIgnoredMessages; self::$optionalMessages = $wgOptionalMessages; # Sort messages to blocks $sortedMessages['unknown'] = $messages; - foreach( self::$messageStructure as $blockName => $block ) { + foreach ( self::$messageStructure as $blockName => $block ) { /** * @var $block array */ - foreach( $block as $key ) { - if( array_key_exists( $key, $sortedMessages['unknown'] ) ) { + foreach ( $block as $key ) { + if ( array_key_exists( $key, $sortedMessages['unknown'] ) ) { $sortedMessages[$blockName][$key] = $sortedMessages['unknown'][$key]; unset( $sortedMessages['unknown'][$key] ); } @@ -132,13 +147,13 @@ $messages = array( # Write all the messages $messagesText = "\$messages = array( "; - foreach( $sortedMessages as $block => $messages ) { + foreach ( $sortedMessages as $block => $messages ) { # Skip if it's the block of unknown messages - handle that in the end of file - if( $block == 'unknown' ) { + if ( $block == 'unknown' ) { continue; } - if( $ignoredComments ) { + if ( $ignoredComments ) { $ignored = self::$ignoredMessages; $optional = self::$optionalMessages; } else { @@ -159,6 +174,7 @@ $messages = array( } $messagesText .= "); "; + return array( $messagesText, $sortedMessages ); } @@ -175,10 +191,10 @@ $messages = array( $commentArray = array(); # List of keys only - foreach( $messages as $key ) { - if( in_array( $key, $ignored ) ) { + foreach ( $messages as $key ) { + if ( in_array( $key, $ignored ) ) { $commentArray[$key] = ' # ' . self::$ignoredComment; - } elseif( in_array( $key, $optional ) ) { + } elseif ( in_array( $key, $optional ) ) { $commentArray[$key] = ' # ' . self::$optionalComment; } } @@ -202,13 +218,13 @@ $messages = array( $blockText = ''; # Skip the block if it includes no messages - if( empty( $messages ) ) { + if ( empty( $messages ) ) { return ''; } # Format the block comment (if exists); check for multiple lines comments - if( !empty( $blockComment ) ) { - if( strpos( $blockComment, "\n" ) === false ) { + if ( !empty( $blockComment ) ) { + if ( strpos( $blockComment, "\n" ) === false ) { $blockText .= "$prefix# $blockComment "; } else { @@ -223,7 +239,7 @@ $blockComment $maxKeyLength = max( array_map( 'strlen', array_keys( $messages ) ) ); # Format the messages - foreach( $messages as $key => $value ) { + foreach ( $messages as $key => $value ) { # Add the key name $blockText .= "$prefix'$key'"; @@ -241,16 +257,26 @@ $blockComment $single = "'"; $double = '"'; - if( strpos( $value, $single ) === false ) { + if ( strpos( $value, $single ) === false ) { # Nothing ugly, just use ' $blockText .= $single . $value . $single; - } elseif( strpos( $value, $double ) === false && !preg_match('/\$[a-zA-Z_\x7f-\xff]/', $value) ) { + } elseif ( strpos( $value, $double ) === false && + !preg_match( '/\$[a-zA-Z_\x7f-\xff]/', $value ) + ) { # No "-quotes, no variables that need quoting, use " $blockText .= $double . $value . $double; } else { # Something needs quoting, pick the quote which causes less quoting - $quote = substr_count( $value, $double ) + substr_count( $value, '$' ) >= substr_count( $value, $single ) ? $single : $double; - if( $quote === $double ) { + + if ( substr_count( $value, $double ) + substr_count( $value, '$' ) >= + substr_count( $value, $single ) + ) { + $quote = $single; + } else { + $quote = $double; + } + + if ( $quote === $double ) { $extra = '$'; } else { $extra = ''; @@ -262,7 +288,7 @@ $blockComment $blockText .= ','; # Add comments, if there is any - if( array_key_exists( $key, $messageComments ) ) { + if ( array_key_exists( $key, $messageComments ) ) { $blockText .= $messageComments[$key]; }