more cssification of diff rendering, some " -> ' in diff engine
[lhc/web/wiklou.git] / includes / SpecialAllmessages.php
index 923e3ec..6152069 100644 (file)
@@ -1,58 +1,86 @@
 <?php
 
-function wfSpecialAllmessages()
-{
-       global $wgUser, $wgOut, $wgAllMessagesEn, $wgServer, $wgScript, $wgLang;
-       
-       $talk = $wgLang->getNsText( NS_TALK );
-       $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI );
-       $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK );
-       $mwMsg =& MagicWord::get( MAG_MSG );
-       $navText = str_replace( "$1", "allmessagestext", $mwMsg->getSynonym( 0 ) );
-       $navText .= "
-
-<table border=1 cellspacing=0 width=100%><tr bgcolor=#b2b2ff><td>
-  '''Name'''
-</td><td>
-  '''Default text'''
-</td><td>
-  '''Current text'''
-</td></tr>";
-       
-       $first = true;
-       $sortedArray = $wgAllMessagesEn;
-       ksort( $sortedArray );
-       
-       foreach ( $sortedArray as $key => $enMsg ) {
-               
-               $titleObj = Title::newFromText( $key );
-               $title = $titleObj->getDBkey();
-               
-               $message = wfMsgNoDB( $key );
-               $mw = wfMsg ( $key );
-
-               $colorIt = ($message == $mw) ? " bgcolor=\"#f0f0ff\"" : " bgcolor=\"#ffe2e2\"";
-               
-               $message = wfEscapeWikiText( $message );
-               $mw = wfEscapeWikiText( $mw );
-               
-# [$wgServer$wgScript?title=$mwnspace:$title&action=edit $key]<br>
-               $navText .= 
-"<tr$colorIt><td>
-  [[$mwnspace:$title|$key]]<br>
-  [[$mwtalk:$title|$talk]]
-</td><td>
-  $message
-</td><td>
-  $mw
-</td></tr>";
+       function wfSpecialAllmessages()
+       {
+               global $wgOut, $wgAllMessagesEn, $wgRequest, $wgMessageCache;
+               $ot = $wgRequest->getText('ot');
+               $mwMsg =& MagicWord::get( MAG_MSG );
+               set_time_limit(0);
+               $navText = str_replace( "$1", $mwMsg->getSynonym( 0 ), wfMsg("allmessagestext" ) );
+
+               $first = true;
+               $sortedArray = $wgAllMessagesEn;
+               ksort( $sortedArray );
+               $messages = array();
+               $wgMessageCache->disableTransform();
+               foreach ( $sortedArray as $key => $enMsg ) {
+                       $messages[$key]['enmsg'] = $enMsg;
+                       $messages[$key]['statmsg'] = wfMsgNoDb( $key );
+                       $messages[$key]['msg'] = wfMsg ( $key );
+               }
+               if ($ot == 'php') {
+                       $navText .= makePhp($messages);
+                       $wgOut->addHTML('<pre>'.htmlspecialchars($navText).'</pre>');
+               } else {
+                       $navText .= makeWikiText($messages);
+                       $wgOut->addWikiText( $navText );
+               }
+               return;
+       }
+       function makePhp($messages) {
+               global $wgLanguageCode;
+               $txt = "\n\n".'$wgAllMessages'.ucfirst($wgLanguageCode).' = array('."\n";
+               foreach( $messages as $key => $m ) {
+                       if(strtolower($wgLanguageCode) != 'en' and $m['msg'] == $m['enmsg'] ) {
+                               $txt .= '#';
+                       } elseif ($m['msg'] == '&lt;'.$key.'&gt;'){
+                               $m['msg'] = '';
+                               $comment = ' #empty';
+                       } else {
+                               $comment = '';
+                       }
+                       $txt .= "'".$key."' => \"".str_replace('"','\"',$m['msg'])."\",$comment\n";
+               }
+               $txt .= ');';
+               return $txt;
        }
 
-       $navText .= "</table>";
 
-       $wgOut->addWikiText( $navText );
+       function makeWikiText($messages) {
+               global $wgLang;
+               $talk = $wgLang->getNsText( NS_TALK );
+               $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI );
+               $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK );
+               $txt = "
+
+               <table border=1 cellspacing=0 width=100%><tr bgcolor=#b2b2ff><td>
+               '''Name'''
+               </td><td>
+               '''Default text'''
+               </td><td>
+               '''Current text'''
+               </td></tr>";
+               foreach( $messages as $key => $m ) {
+                       $titleObj = Title::newFromText( $key );
+                       $title = $titleObj->getDBkey();
 
-       return;
-}
+                       $colorIt = ($m['statmsg'] == $m['msg']) ? " bgcolor=\"#f0f0ff\"" : " bgcolor=\"#ffe2e2\"";
+                       $message = wfEscapeWikiText( $m['statmsg'] );
+                       $mw = wfEscapeWikiText( $m['msg'] );
+
+                       $txt .= 
+                       "<tr$colorIt><td>
+                       [[$mwnspace:$title|$key]]<br>
+                       [[$mwtalk:$title|$talk]]
+                       </td><td>
+                       $message
+                       </td><td>
+                       $mw
+                       </td></tr>";
+               }
+               $txt .= "</table>";
+
+               return $txt;
+       }
 
-?>
+       ?>