X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FMessage.php;h=84ab7ca70323844b17a12c65c49b8536a8c27aff;hb=9dfc1941bc1820b72d74c65c6a83ad9925c42e7a;hp=e55eaaf646f399ec5e665c7382b517206f5b4019;hpb=58858df842f91d9ea1c9f9b6f3c767d8b204886b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Message.php b/includes/Message.php index e55eaaf646..84ab7ca703 100644 --- a/includes/Message.php +++ b/includes/Message.php @@ -726,6 +726,8 @@ class Message implements MessageSpecifier, Serializable { * @throws MWException */ public function inLanguage( $lang ) { + $previousLanguage = $this->language; + if ( $lang instanceof Language ) { $this->language = $lang; } elseif ( is_string( $lang ) ) { @@ -740,7 +742,11 @@ class Message implements MessageSpecifier, Serializable { . "passed a String or Language object; $type given" ); } - $this->message = null; + + if ( $this->language !== $previousLanguage ) { + // The language has changed. Clear the message cache. + $this->message = null; + } $this->interface = false; return $this; } @@ -1105,7 +1111,7 @@ class Message implements MessageSpecifier, Serializable { public static function listParam( array $list, $type = 'text' ) { if ( !isset( self::$listTypeMap[$type] ) ) { throw new InvalidArgumentException( - "Invalid type '$type'. Known types are: " . join( ', ', array_keys( self::$listTypeMap ) ) + "Invalid type '$type'. Known types are: " . implode( ', ', array_keys( self::$listTypeMap ) ) ); } return [ 'list' => $list, 'type' => $type ]; @@ -1122,7 +1128,7 @@ class Message implements MessageSpecifier, Serializable { * * @return string */ - protected function replaceParameters( $message, $type = 'before', $format ) { + protected function replaceParameters( $message, $type, $format ) { // A temporary marker for $1 parameters that is only valid // in non-attribute contexts. However if the entire message is escaped // then we don't want to use it because it will be mangled in all contexts @@ -1245,7 +1251,14 @@ class Message implements MessageSpecifier, Serializable { ); return $out instanceof ParserOutput - ? $out->getText( [ 'enableSectionEditLinks' => false ] ) + ? $out->getText( [ + 'enableSectionEditLinks' => false, + // Wrapping messages in an extra
is probably not expected. If + // they're outside the content area they probably shouldn't be + // targeted by CSS that's targeting the parser output, and if + // they're inside they already are from the outer div. + 'unwrap' => true, + ] ) : $out; }