* Fix for Special:Export so it doesn't ignore the page named '0'
* Don't display rollback link if the user doesn't have all required permissions
* The comment of a time-limited protection now contains the date in the default format
+* (bug 12880) wfLoadExtensionMessages does not use $fallback from MessagesXx.php
== Parser changes in 1.12 ==
}
/**
- * Get the extension messages for a specific language
+ * Get the extension messages for a specific language. Only English, interface
+ * and content language are guaranteed to be loaded.
*
* @param string $lang The messages language, English by default
*/
* Load messages from a given file
*/
function loadMessagesFile( $filename ) {
+ global $wgLang, $wgContLang;
$messages = $magicWords = false;
require( $filename );
- if ( $messages !== false ) {
- $this->addMessagesByLang( $messages );
+ /*
+ * Load only languages that are usually used, and merge all fallbacks,
+ * except English.
+ */
+ $langs = array_unique( array( 'en', $wgContLang->getCode(), $wgLang->getCode() ) );
+ foreach( $langs as $code ) {
+ $fbcode = $code;
+ $mergedMessages = array();
+ do {
+ if ( isset($messages[$fbcode]) ) {
+ $mergedMessages += $messages[$fbcode];
+ }
+ $fbcode = Language::getFallbackfor( $fbcode );
+ } while( $fbcode && $fbcode !== 'en' );
+
+ if ( !empty($mergedMessages) )
+ $this->addMessages( $mergedMessages, $code );
}
if ( $magicWords !== false ) {