- * This class provides methods for fetching interface messages and
- * processing them into variety of formats that are needed in MediaWiki.
- *
- * It is intented to replace the old wfMsg* functions that over time grew
- * unusable.
- *
- * Examples:
- * Fetching a message text for interface message
- * $button = Xml::button( wfMessage( 'submit' )->text() );
- * </pre>
- * Messages can have parameters:
- * wfMessage( 'welcome-to' )->params( $wgSitename )->text();
- * {{GRAMMAR}} and friends work correctly
- * wfMessage( 'are-friends', $user, $friend );
- * wfMessage( 'bad-message' )->rawParams( '<script>...</script>' )->escaped();
- * </pre>
- * Sometimes the message text ends up in the database, so content language is needed.
- * wfMessage( 'file-log', $user, $filename )->inContentLanguage()->text()
- * </pre>
- * Checking if message exists:
+ * Fetching and processing of interface messages.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Niklas Laxström
+ */
+
+/**
+ * The Message class provides methods which fullfil two basic services:
+ * - fetching interface messages
+ * - processing messages into a variety of formats
+ *
+ * First implemented with MediaWiki 1.17, the Message class is intented to
+ * replace the old wfMsg* functions that over time grew unusable.
+ * @see https://www.mediawiki.org/wiki/New_messages_API for equivalences
+ * between old and new functions.
+ *
+ * You should use the wfMessage() global function which acts as a wrapper for
+ * the Message class. The wrapper let you pass parameters as arguments.
+ *
+ * The most basic usage cases would be:
+ *
+ * @code
+ * // Initialize a Message object using the 'some_key' message key
+ * $message = wfMessage( 'some_key' );
+ *
+ * // Using two parameters those values are strings 'value1' and 'value2':
+ * $message = wfMessage( 'some_key',
+ * 'value1', 'value2'
+ * );
+ * @endcode
+ *
+ * @section message_global_fn Global function wrapper:
+ *
+ * Since wfMessage() returns a Message instance, you can chain its call with
+ * a method. Some of them return a Message instance too so you can chain them.
+ * You will find below several examples of wfMessage() usage.
+ *
+ * Fetching a message text for interface message:
+ *
+ * @code
+ * $button = Xml::button(
+ * wfMessage( 'submit' )->text()
+ * );
+ * @endcode
+ *
+ * A Message instance can be passed parameters after it has been constructed,
+ * use the params() method to do so:
+ *
+ * @code
+ * wfMessage( 'welcome-to' )
+ * ->params( $wgSitename )
+ * ->text();
+ * @endcode
+ *
+ * {{GRAMMAR}} and friends work correctly:
+ *
+ * @code
+ * wfMessage( 'are-friends',
+ * $user, $friend
+ * );
+ * wfMessage( 'bad-message' )
+ * ->rawParams( '<script>...</script>' )
+ * ->escaped();
+ * @endcode
+ *
+ * @section message_language Changing language:
+ *
+ * Messages can be requested in a different language or in whatever current
+ * content language is being used. The methods are:
+ * - Message->inContentLanguage()
+ * - Message->inLanguage()
+ *
+ * Sometimes the message text ends up in the database, so content language is
+ * needed:
+ *
+ * @code
+ * wfMessage( 'file-log',
+ * $user, $filename
+ * )->inContentLanguage()->text();
+ * @endcode
+ *
+ * Checking whether a message exists:
+ *
+ * @code