*/
function wfMsgReal( $key, $args, $useDB, $forContent=false ) {
global $wgReplacementKeys, $wgParser, $wgMsgParserOptions;
-
+ global $wgContLang, $wgLanguageCode;
if($forContent) {
- global $wgMessageCache, $wgContLang;
+ global $wgMessageCache;
$cache = &$wgMessageCache;
$lang = &$wgContLang;
}
else {
- global $wgLang;
- $cache = false;
- $lang = &$wgLang;
+ if(in_array($wgLanguageCode, $wgContLang->getVariants())){
+ global $wgLang, $wgMessageCache;
+ $cache = &$wgMessageCache;
+ $lang = $wgLang;
+ }
+ else {
+ global $wgLang;
+ $cache = false;
+ $lang = &$wgLang;
+ }
}
$fname = 'wfMsg';
wfProfileIn( $fname );
if ( is_object($cache) ) {
- $message = $cache->get( $key, $useDB );
+ $message = $cache->get( $key, $useDB, $forContent );
} elseif (is_object($lang)) {
$message = $lang->getMessage( $key );
if(strstr($message, '{{' ) !== false) {
$this->mMemc->delete( $lockKey );
}
- function get( $key, $useDB ) {
- global $wgContLang, $wgContLanguageCode;
+ function get( $key, $useDB, $forcontent=true ) {
+ if($forcontent) {
+ global $wgContLang, $wgContLanguageCode;
+ $lang = $wgContLang;
+ $langcode = $wgContLanguageCode;
+ }
+ else {
+ global $wgLang, $wgLanguageCode;
+ $lang = $wgLang;
+ $langcode = $wgLanguageCode;
+ }
# If uninitialised, someone is trying to call this halfway through Setup.php
if ( !$this->mInitialised ) {
return "<$key>";
$message = false;
if ( !$this->mDisable && $useDB ) {
- $title = $wgContLang->ucfirst( $key );
+ $title = $lang->ucfirst( $key )."/$langcode";
# Try the cache
# Try the array in the language object
if ( !$message ) {
wfSuppressWarnings();
- $message = $wgContLang->getMessage( $key );
+ $message = $lang->getMessage( $key );
wfRestoreWarnings();
}
# Try the English array
- if ( !$message && $wgContLanguageCode != 'en' ) {
+ if ( !$message && $langcode != 'en' ) {
wfSuppressWarnings();
$message = Language::getMessage( $key );
wfRestoreWarnings();
wfProfileOut( $fname.'-includes' );
wfProfileIn( $fname.'-misc1' );
global $wgUser, $wgLang, $wgContLang, $wgOut, $wgTitle;
+global $wgLangClass, $wgContLangClass;
global $wgArticle, $wgDeferredUpdateList, $wgLinkCache;
global $wgMemc, $wgMagicWords, $wgMwRedir, $wgDebugLogFile;
global $wgMessageCache, $wgUseMemCached, $wgUseDatabaseMessages;
*/
function wfSpecialAllmessages() {
global $wgOut, $wgAllMessagesEn, $wgRequest, $wgMessageCache, $wgTitle;
-
+ global $wgLanguageCode, $wgContLanguageCode, $wgContLang;
$fname = "wfSpecialAllMessages";
wfProfileIn( $fname );
$mwMsg =& MagicWord::get( MAG_MSG );
$navText = wfMsg( 'allmessagestext', $mwMsg->getSynonym( 0 ) );
+
+ if($wgLanguageCode != $wgContLanguageCode &&
+ !in_array($wgLanguageCode, $wgContLang->getVariants())) {
+ $err = wfMsg('allmessagesnotsupported');
+ $wgOut->addHTML( $err );
+ return;
+ }
+
$first = true;
$sortedArray = $wgAllMessagesEn;
ksort( $sortedArray );
foreach ( $sortedArray as $key => $enMsg ) {
$messages[$key]['enmsg'] = $enMsg;
- $messages[$key]['statmsg'] = wfMsgNoDbForContent( $key );
- $messages[$key]['msg'] = wfMsgForContent ( $key );
+ $messages[$key]['statmsg'] = wfMsgNoDb( $key );
+ $messages[$key]['msg'] = wfMsg ( $key );
}
$wgMessageCache->enableTransform();
*
*/
function makeHTMLText( $messages ) {
- global $wgLang, $wgUser;
+ global $wgLang, $wgUser, $wgLanguageCode;
$fname = "makeHTMLText";
wfProfileIn( $fname );
wfProfileIn( "$fname-output" );
foreach( $messages as $key => $m ) {
- $title = $wgLang->ucfirst( $key );
+
+ $title = $wgLang->ucfirst( $key )."/$wgLanguageCode";
$titleObj =& Title::makeTitle( NS_MEDIAWIKI, $title );
$talkPage =& Title::makeTitle( NS_MEDIAWIKI_TALK, $title );
'allmessages' => 'All system messages',
'allmessagestext' => 'This is a list of all system messages available in the MediaWiki: namespace.',
+'allmessagesnotsupported' => 'Your current interface language is not supported by Special:AllMessages at this site',
# Thumbnails
<?php
require_once( "LanguageZh_cn.php");
+require_once( "LanguageZh_tw.php");
/* caching the conversion tables */
$zhSimp2Trad = $wgMemc->get($key1 = "$wgDBname:zhConvert:s2t");
* @subpackage Maintenance
*/
-/** */
+
+
function initialiseMessages( $overwrite = false, $messageArray = false ) {
+ global $wgContLang, $wgContLanguageCode;
+ global $wgContLangClass, $wgAllMessagesEn;
+
+ $langclass = 'Language'. str_replace( '-', '_', ucfirst( $wgContLanguageCode ) );
+ require_once("languages/$langclass.php");
+
+ $variants = $wgContLang->getVariants();
+ if(!in_array($wgContLanguageCode, $variants))
+ $variants[]=$wgContLanguageCode;
+
+ if ( $messageArray ) {
+ $sortedArray = $messageArray;
+ } else {
+ $sortedArray = $wgAllMessagesEn;
+ }
+
+ ksort( $sortedArray );
+
+ $messages=array();
+ foreach ($variants as $v) {
+ $langclass = 'Language'. str_replace( '-', '_', ucfirst( $v ) );
+ $lang = new $langclass;
+ if(!is_object($lang)) {
+ die ("class $langclass not defined. perhaps you need to include the file $langclass.php in $wgContLangClass.php?");
+ }
+ foreach ($sortedArray as $key => $msg) {
+ $messages[$key."/$v"] = $lang->getMessage($key);
+ }
+ }
+
+ initialiseMessagesReal( $overwrite, $messages );
+}
+
+
+
+
+
+
+
+/** */
+function initialiseMessagesReal( $overwrite = false, $messageArray = false ) {
global $wgContLang, $wgScript, $wgServer, $wgAllMessagesEn;
global $wgOut, $wgArticle, $wgUser;
global $wgMessageCache, $wgMemc, $wgDBname, $wgUseMemCached;