* @param string|string[] $key Message key or array of message keys to try and use the first
* non-empty message for.
* @param array $params Message parameters.
+ * @param Language $language Optional language of the message, defaults to $wgLang.
*/
- public function __construct( $key, $params = array() ) {
+ public function __construct( $key, $params = array(), Language $language = null ) {
global $wgLang;
+
$this->key = $key;
$this->parameters = array_values( $params );
- $this->language = $wgLang;
+ $this->language = $language ? $language : $wgLang;
}
/**
return $this->format;
}
+ /**
+ * Returns the Language of the Message.
+ *
+ * @since 1.23
+ *
+ * @return Language
+ */
+ public function getLanguage() {
+ return $this->language;
+ }
+
/**
* Factory function that is just wrapper for the real constructor. It is
* intended to be used instead of the real constructor, because it allows
* @since 1.17
*
* @param string|string[] $key Message key or array of keys.
- * @param mixed [$param,...] Parameters as strings.
+ * @param mixed $param,... Parameters as strings.
*
* @return Message
*/
*
* @since 1.18
*
- * @param string|string[] [$keys,...] Message keys, or first argument as an array of all the
+ * @param string|string[] $keys,... Message keys, or first argument as an array of all the
* message keys.
*
* @return Message
*
* @since 1.17
*
- * @param mixed [$params,...] Parameters as strings, or a single argument that is
+ * @param mixed $params,... Parameters as strings, or a single argument that is
* an array of strings.
*
* @return Message $this
*
* @since 1.17
*
- * @param mixed [$params,...] Raw parameters as strings, or a single argument that is
+ * @param mixed $params,... Raw parameters as strings, or a single argument that is
* an array of raw parameters.
*
* @return Message $this
*
* @since 1.18
*
- * @param mixed [$param,...] Numeric parameters, or a single argument that is
+ * @param mixed $param,... Numeric parameters, or a single argument that is
* an array of numeric parameters.
*
* @return Message $this
*
* @since 1.22
*
- * @param int|int[] [$param,...] Duration parameters, or a single argument that is
+ * @param int|int[] $param,... Duration parameters, or a single argument that is
* an array of duration parameters.
*
* @return Message $this
*
* @since 1.22
*
- * @param string|string[] [$param,...] Expiry parameters, or a single argument that is
+ * @param string|string[] $param,... Expiry parameters, or a single argument that is
* an array of expiry parameters.
*
* @return Message $this
*
* @since 1.22
*
- * @param number|number[] [$param,...] Time period parameters, or a single argument that is
+ * @param int|int[] $param,... Time period parameters, or a single argument that is
* an array of time period parameters.
*
* @return Message $this
*
* @since 1.22
*
- * @param int|int[] [$param,...] Size parameters, or a single argument that is
+ * @param int|int[] $param,... Size parameters, or a single argument that is
* an array of size parameters.
*
* @return Message $this
*
* @since 1.22
*
- * @param int|int[] [$param,...] Bit rate parameters, or a single argument that is
+ * @param int|int[] $param,... Bit rate parameters, or a single argument that is
* an array of bit rate parameters.
*
* @return Message $this
*
* @since 1.19
*
- * @param $context IContextSource
+ * @param IContextSource $context
*
* @return Message $this
*/
. "passed a String or Language object; $type given"
);
}
+ $this->message = null;
$this->interface = false;
return $this;
}
}
global $wgContLang;
- $this->interface = false;
- $this->language = $wgContLang;
+ $this->inLanguage( $wgContLang );
return $this;
}
*
* @since 1.18
*
- * @param $title Title object
+ * @param Title $title
*
* @return Message $this
*/
# Maybe transform using the full parser
if ( $this->format === 'parse' ) {
$string = $this->parseText( $string );
- $m = array();
- if ( preg_match( '/^<p>(.*)\n?<\/p>\n?$/sU', $string, $m ) ) {
- $string = $m[1];
- }
+ $string = Parser::stripOuterParagraph( $string );
} elseif ( $this->format === 'block-parse' ) {
$string = $this->parseText( $string );
} elseif ( $this->format === 'text' ) {
* @param string $message The message text.
* @param string $type Either "before" or "after".
*
- * @return String
+ * @return string
*/
protected function replaceParameters( $message, $type = 'before' ) {
$replacementKeys = array();
* @return string Wikitext parsed into HTML.
*/
protected function parseText( $string ) {
- $out = MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language );
+ $out = MessageCache::singleton()->parse(
+ $string,
+ $this->title,
+ /*linestart*/true,
+ $this->interface,
+ $this->language
+ );
+
return $out instanceof ParserOutput ? $out->getText() : $out;
}
* @return string Wikitext with {{-constructs replaced with their values.
*/
protected function transformText( $string ) {
- return MessageCache::singleton()->transform( $string, $this->interface, $this->language, $this->title );
+ return MessageCache::singleton()->transform(
+ $string,
+ $this->interface,
+ $this->language,
+ $this->title
+ );
}
/**
* @throws MWException If message key array is empty.
*/
protected function fetchMessage() {
- if ( !isset( $this->message ) ) {
+ if ( $this->message === null ) {
$cache = MessageCache::singleton();
if ( is_array( $this->key ) ) {
if ( !count( $this->key ) ) {
*/
public function fetchMessage() {
// Just in case the message is unset somewhere.
- if ( !isset( $this->message ) ) {
+ if ( $this->message === null ) {
$this->message = $this->key;
}
return $this->message;