Scripts and data used for generating ZhConversion.php
[lhc/web/wiklou.git] / includes / GlobalFunctions.php
index 0688d4a..6cc0351 100644 (file)
@@ -353,10 +353,11 @@ function wfReadOnly() {
 $wgReplacementKeys = array( '$1', '$2', '$3', '$4', '$5', '$6', '$7', '$8', '$9' );
 
 /**
- * Get a message from anywhere
+ * Get a message from anywhere, for the UI elements
  */
 function wfMsg( $key ) {
        global $wgRequest;
+
        if ( $wgRequest->getVal( 'debugmsg' ) ) {
                if ( $key == 'linktrail' /* a special case where we want to return something specific */ )
                        return "/^()(.*)$/sD";
@@ -371,9 +372,9 @@ function wfMsg( $key ) {
 }
 
 /**
- * Get a message from anywhere, but don't call Language::convert
+ * Get a message from anywhere, for the content
  */
-function wfMsgNoConvert( $key ) {
+function wfMsgForContent( $key ) {
        global $wgRequest;
        if ( $wgRequest->getVal( 'debugmsg' ) ) {
                if ( $key == 'linktrail' /* a special case where we want to return something specific */ )
@@ -385,11 +386,13 @@ function wfMsgNoConvert( $key ) {
        if ( count( $args ) ) {
                array_shift( $args );
        }
-       return wfMsgReal( $key, $args, true, false );
+       return wfMsgReal( $key, $args, true, true );
+    
+
 }
 
 /**
- * Get a message from the language file
+ * Get a message from the language file, for the UI elements
  */
 function wfMsgNoDB( $key ) {
        $args = func_get_args();
@@ -400,37 +403,58 @@ function wfMsgNoDB( $key ) {
 }
 
 /**
- * Get a message from the language file, but don't call Language::convert
+ * Get a message from the language file, for the content
  */
-function wfMsgNoDBNoConvert( $key ) {
+function wfMsgNoDBForContent( $key ) {
+
        $args = func_get_args();
        if ( count( $args ) ) {
                array_shift( $args );
        }
-       return wfMsgReal( $key, $args, false, false );
+       return wfMsgReal( $key, $args, false, true );
 }
 
+
 /**
  * Really get a message
  */
-function wfMsgReal( $key, $args, $useDB, $convert=true ) {
-       global $wgReplacementKeys, $wgMessageCache, $wgLang;
+function wfMsgReal( $key, $args, $useDB, $forContent=false ) {
+       global $wgReplacementKeys, $wgParser, $wgMsgParserOptions;
+       global $wgContLang, $wgLanguageCode;
+    if($forContent) {
+        global $wgMessageCache;
+        $cache = &$wgMessageCache;
+        $lang = &$wgContLang;
+    }
+    else {
+               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 ( $wgMessageCache ) {
-               $message = $wgMessageCache->get( $key, $useDB );
-       } elseif ( $wgLang ) {
-               $message = $wgLang->getMessage( $key );
+       if ( is_object($cache) ) {
+               $message = $cache->get( $key, $useDB, $forContent );
+       } elseif (is_object($lang)) {
+               $message = $lang->getMessage( $key );
+               if(!$message)
+                       $message = Language::getMessage($key);
+               if(strstr($message, '{{' ) !== false) {
+                       $message = $wgParser->transformMsg($message, $wgMsgParserOptions);
+               }
        } else {
                wfDebug( "No language object when getting $key\n" );
                $message = "<$key>";
        }
 
-       if ( $convert ) {
-               $message = $wgLang->convert($message);
-       }
-
        # Replace arguments
        if( count( $args ) ) {
                $message = str_replace( $wgReplacementKeys, $args, $message );