Message: Only clear message cache when set language is different
authorFomafix <fomafix@googlemail.com>
Tue, 15 Dec 2015 10:25:33 +0000 (10:25 +0000)
committerKrinkle <krinklemail@gmail.com>
Wed, 30 May 2018 13:58:23 +0000 (13:58 +0000)
Change-Id: Ic0d810b9017b2cc693282807540ddf3e4d952b9d

includes/Message.php

index 7d05f41..fb6dcc5 100644 (file)
@@ -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;
        }