X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FMessage.php;h=5ca0942291a86287a2521e8a9f62e838bfc8a2fe;hb=2f23133bb669dc4c810bd5b1ed8d5d47ee995b66;hp=7d05f41e86cda77ce6203dec1b447e042ec92620;hpb=77e3624caba072521fbc1826af2d47f9b29f4032;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Message.php b/includes/Message.php index 7d05f41e86..5ca0942291 100644 --- a/includes/Message.php +++ b/includes/Message.php @@ -242,7 +242,7 @@ class Message implements MessageSpecifier, Serializable { * message keys to try and use the first non-empty message for, or a * MessageSpecifier to copy from. * @param array $params Message parameters. - * @param Language $language [optional] Language to use (defaults to current user language). + * @param Language|null $language [optional] Language to use (defaults to current user language). * @throws InvalidArgumentException */ public function __construct( $key, $params = [], Language $language = null ) { @@ -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; } @@ -831,6 +837,7 @@ class Message implements MessageSpecifier, Serializable { * the last time (this is for B/C and should be avoided). * * @return string HTML + * @suppress SecurityCheck-DoubleEscaped phan false positive */ public function toString( $format = null ) { if ( $format === null ) { @@ -1122,7 +1129,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