optional ?ot=php argument to get a copy&pasteable php representation of the mediawiki...
authorGabriel Wicke <gwicke@users.mediawiki.org>
Sat, 1 May 2004 15:42:11 +0000 (15:42 +0000)
committerGabriel Wicke <gwicke@users.mediawiki.org>
Sat, 1 May 2004 15:42:11 +0000 (15:42 +0000)
possible update route:
1) get a sorted dump of the default messages (from a clean, fresh install)
2) same for the updated mediawiki messages
3) diff/merge using your favourite editor while paying attention to the wp-specific things

includes/SpecialAllmessages.php

index e5322bf..93a6ea6 100644 (file)
@@ -1,60 +1,86 @@
 <?php
 
-function wfSpecialAllmessages()
-{
-       global $wgUser, $wgOut, $wgAllMessagesEn, $wgServer, $wgScript, $wgLang, $wgMessageCache;
-       
-       $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", $mwMsg->getSynonym( 0 ), wfMsg("allmessagestext" ) );
-       $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();
-               
-               $wgMessageCache->disable();
-               $message = wfMsg( $key );
-               $wgMessageCache->enable();
-               $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;
+               $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();
+               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'] ) {
+                               $comment = ' #default';
+                       } 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>";
+       function makeWikiText($messages) {
+               global $wgLang;
+               $talk = $wgLang->getNsText( NS_TALK );
+               $mwnspace = $wgLang->getNsText( NS_MEDIAWIKI );
+               $mwtalk = $wgLang->getNsText( NS_MEDIAWIKI_TALK );
+               $txt = "
 
-       $wgOut->addWikiText( $navText );
+               <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;
+       }
 
-?>
+       ?>