<?php
/**
* Contain the blockcache class
- * @package MediaWiki
* @package Cache
*/
* @subpackage Parser
*/
+/** */
define('DF_ALL', -1);
define('DF_NONE', 0);
define('DF_MDY', 1);
/** Sets an external mime detector program. The command must print only the mime type to standard output.
* the name of the file to process will be appended to the command given here.
* If not set or NULL, mime_content_type will be used if available.
-* @global string $wgMimeTypeFile
*/
$wgMimeDetectorCommand= NULL; # use internal mime_content_type function, available since php 4.3.0
#$wgMimeDetectorCommand= "file -bi" #use external mime detector (linux)
require_once( 'LoadBalancer.php' );
-
+/** @package MediaWiki */
class ExternalStoreDB {
- /* Fetch data from given URL */
+ /**
+ * Fetch data from given URL
+ * @param string $url An url
+ */
function fetchFromURL($url) {
global $wgExternalServers;
#
return $ret;
}
- /* XXX: may require other methods, for store, delete,
+ /* @fixme XXX: may require other methods, for store, delete,
* whatever, for initial ext storage
*/
}
<?php
+/**
+ * Various HTTP related functions
+ */
/**
* Get the contents of a file by HTTP
* @package MediaWiki
*/
-# NOTE FOR WINDOWS USERS:
-# To enable EXIF functions, add the folloing lines to the
-# "Windows extensions" section of php.ini:
-#
-# extension=extensions/php_mbstring.dll
-# extension=extensions/php_exif.dll
+/**
+ * NOTE FOR WINDOWS USERS:
+ * To enable EXIF functions, add the folloing lines to the
+ * "Windows extensions" section of php.ini:
+ *
+ * extension=extensions/php_mbstring.dll
+ * extension=extensions/php_exif.dll
+ */
if ($wgShowEXIF)
require_once('Exif.php');
*
* Instances of this class are stateles, there only needs to be one global instance
* of MimeMagic. Please use wfGetMimeMagic to get that instance.
+* @package MediaWiki
*/
class MimeMagic {
* @subpackage Cache
*/
+/** */
if (!defined('MEDIAWIKI')) die( "Not a valid entry point\n");
-# FakeMemCachedClient imitates the API of memcached-client v. 0.1.2.
-# It acts as a memcached server with no RAM, that is, all objects are
-# cleared the moment they are set. All set operations succeed and all
-# get operations return null.
+/**
+ * FakeMemCachedClient imitates the API of memcached-client v. 0.1.2.
+ * It acts as a memcached server with no RAM, that is, all objects are
+ * cleared the moment they are set. All set operations succeed and all
+ * get operations return null.
+ * @package MediaWiki
+ * @subpackage Cache
+ */
class FakeMemCachedClient {
function add ($key, $val, $exp = 0) { return true; }
function decr ($key, $amt=1) { return null; }
global $wgCaches;
$wgCaches = array();
+/** @todo document */
function &wfGetCache( $inputType ) {
global $wgCaches, $wgMemCachedServers, $wgMemCachedDebug;
$cache = false;
/**
* Turn off regular page output and return an error reponse
* for when rate limiting has triggered.
- * @todo: i18n
+ * @todo i18n
* @access public
*/
function rateLimited() {
* @package MediaWiki
*/
-include_once ( "SpecialValidate.php" );
+/** */
+include_once ( 'SpecialValidate.php' );
-define("DIR_PREV", 0);
-define("DIR_NEXT", 1);
+define('DIR_PREV', 0);
+define('DIR_NEXT', 1);
/**
* This class handles printing the history page for an article. In order to
* Article validation line.
*/
if ($wgUseValidation)
- $s .= "<p>" . Validation::link2statistics ( $this->mArticle ) . "</p>" ;
+ $s .= '<p>' . Validation::link2statistics ( $this->mArticle ) . '</p>' ;
$wgOut->addHTML( $s );
wfProfileOut( $fname );
}
+ /** @todo document */
function beginHistoryList() {
global $wgTitle;
$this->lastdate = '';
return $s;
}
+ /** @todo document */
function endHistoryList() {
$last = wfMsg( 'last' );
return $s;
}
+ /** @todo document */
function submitButton( $bits = array() ) {
return ( $this->linesonpage > 0 )
? wfElement( 'input', array_merge( $bits,
: '';
}
+ /** @todo document */
function historyLine( $row, $next, $counter = '', $notificationtimestamp = false, $latest = false ) {
global $wgLang, $wgContLang;
return $s;
}
+ /** @todo document */
function revLink( $row ) {
global $wgUser, $wgLang;
$date = $wgLang->timeanddate( $row->rev_timestamp, true );
}
}
+ /** @todo document */
function curLink( $row, $latest ) {
global $wgUser;
$cur = htmlspecialchars( wfMsg( 'cur' ) );
}
}
+ /** @todo document */
function lastLink( $row, $next, $counter ) {
global $wgUser;
$last = htmlspecialchars( wfMsg( 'last' ) );
}
}
+ /** @todo document */
function diffButtons( $row, $latest, $counter ) {
global $wgUser;
if( $this->linesonpage > 1) {
}
}
+ /** @todo document */
function getLatestOffset($id) {
return $this->getExtremeOffset( $id, 'max' );
}
+ /** @todo document */
function getEarliestOffset($id) {
return $this->getExtremeOffset( $id, 'min' );
}
+ /** @todo document */
function getExtremeOffset( $id, $func ) {
$db =& wfGetDB(DB_SLAVE);
return $db->selectField( 'revision',
'PageHistory::getExtremeOffset' );
}
+ /** @todo document */
function getLatestID( $id ) {
$db =& wfGetDB(DB_SLAVE);
return $db->selectField( 'revision',
'PageHistory::getLatestID' );
}
+ /** @todo document */
function getLastOffsetForPaging( $id, $step = 50 ) {
$db =& wfGetDB(DB_SLAVE);
$revision = $db->tableName( 'revision' );
return $last;
}
+ /** @todo document */
function getDirection() {
global $wgRequest;
return DIR_NEXT;
}
+ /** @todo document */
function fetchRevisions($limit, $offset, $direction) {
global $wgUser, $wgShowUpdatedMarker;
return $result;
}
+ /** @todo document */
function getNotificationTimestamp() {
global $wgUser, $wgShowUpdatedMarker;
return $this->mNotificationTimestamp;
}
+ /** @todo document */
function makeNavbar($revisions, $offset, $limit, $direction) {
global $wgTitle, $wgLang;
$firsturl = $wgTitle->escapeLocalURL("action=history&limit={$limit}&go=first");
$lasturl = $wgTitle->escapeLocalURL("action=history&limit={$limit}");
- $firsttext = wfMsgHtml("histfirst");
- $lasttext = wfMsgHtml("histlast");
+ $firsttext = wfMsgHtml('histfirst');
+ $lasttext = wfMsgHtml('histlast');
$prevurl = $wgTitle->escapeLocalURL("action=history&dir=prev&offset={$latestShown}&limit={$limit}");
$nexturl = $wgTitle->escapeLocalURL("action=history&offset={$earliestShown}&limit={$limit}");
<?php
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- die();
-}
-
/**
* Functions for dealing with proxies
+ * @package MediaWiki
*/
+if ( !defined( 'MEDIAWIKI' ) ) {
+ die();
+}
-/**
- * Work out the IP address based on various globals
- */
-function wfGetIP()
-{
+/** Work out the IP address based on various globals */
+function wfGetIP() {
global $wgSquidServers, $wgSquidServersNoPurge;
/* collect the originating ips */
return $ip;
}
-function wfIP2Unsigned( $ip )
-{
+/** */
+function wfIP2Unsigned( $ip ) {
$n = ip2long( $ip );
if ( $n == -1 ) {
$n = false;
* Determine if an IP address really is an IP address, and if it is public,
* i.e. not RFC 1918 or similar
*/
-function wfIsIPPublic( $ip )
-{
+function wfIsIPPublic( $ip ) {
$n = wfIP2Unsigned( $ip );
if ( !$n ) {
return false;
<?php
-
/**
* (X)HTML sanitizer for MediaWiki
*
'zwj' => 8205,
'zwnj' => 8204 );
+/** @package MediaWiki */
class Sanitizer {
/**
* Cleans up HTML, removes dangerous tags and attributes, and
}
}
+/** @package MediaWiki */
class SearchResultSet {
/**
* Fetch an array of regular expression fragments for matching
}
}
+/** @package MediaWiki */
class SearchResult {
function SearchResult( $row ) {
$this->mTitle = Title::makeTitle( $row->page_namespace, $row->page_title );
/** */
require_once( 'SearchEngine.php' );
+/** @package MediaWiki */
class SearchMySQL extends SearchEngine {
/**
* Perform a full text search query and return a result set.
}
}
+/** @package MediaWiki */
class MySQLSearchResultSet extends SearchResultSet {
function MySQLSearchResultSet( $resultSet, $terms ) {
$this->mResultSet = $resultSet;
* @package MediaWiki
*/
-/**
- *
- * @package MediaWiki
- */
-
/**
* The include paths change after this file is included from commandLine.inc,
* meaning that require_once() fails to detect that it is including the same
if (!defined('SITE_CONFIGURATION')) {
define('SITE_CONFIGURATION', 1);
+/** @package MediaWiki */
class SiteConfiguration {
var $suffixes = array();
var $wikis = array();
var $settings = array();
var $localDatabases = array();
var $localVHosts = array();
-
+
+ /** */
function get( $setting, $wiki, $suffix, $params = array() ) {
if ( array_key_exists( $wiki, $this->settings[$setting] ) ) {
$retval = $this->settings[$setting][$wiki];
return $retval;
}
+ /** */
function getBool( $setting, $wiki, $suffix ) {
return (bool)($this->get( $setting, $wiki, $suffix ));
}
+ /** */
function &getLocalDatabases() {
return $this->localDatabases;
}
-
+
+ /** */
function initialise() {
foreach ( $this->wikis as $db ) {
$this->localDatabases[$db] = $db;
}
}
+ /** */
function extractVar( $setting, $wiki, $suffix, &$var, $params ) {
$value = $this->get( $setting, $wiki, $suffix, $params );
if ( !is_null( $value ) ) {
$var = $value;
}
}
-
+
+ /** */
function extractGlobal( $setting, $wiki, $suffix, $params ) {
$value = $this->get( $setting, $wiki, $suffix, $params );
if ( !is_null( $value ) ) {
}
}
+ /** */
function extractAllGlobals( $wiki, $suffix, $params ) {
foreach ( $this->settings as $varName => $setting ) {
$this->extractGlobal( $varName, $wiki, $suffix, $params );
return array( $site, $lang );
}
+ /** */
function isLocalVHost( $vhost ) {
return in_array( $vhost, $this->localVHosts );
}
* @subpackage SpecialPage
*/
+/** @todo document */
function wfSpecialConfirmemail( $code ) {
$form = new ConfirmationForm();
$form->show( $code );
}
+/** @package MediaWiki */
class ConfirmationForm {
+ /** */
function show( $code ) {
if( empty( $code ) ) {
$this->showEmpty( $this->checkAndSend() );
$this->showCode( $code );
}
}
-
+
+ /** */
function showCode( $code ) {
$user = User::newFromConfirmationCode( $code );
if( is_null( $user ) ) {
$this->confirmAndShow( $user );
}
}
-
-
+
+ /** */
function confirmAndShow( $user ) {
if( $user->confirmEmail() ) {
$this->showSuccess();
$this->showError();
}
}
-
+
+ /** */
function checkAndSend() {
global $wgUser, $wgRequest;
if( $wgRequest->wasPosted() &&
return '';
}
}
-
+
+ /** */
function showEmpty( $err ) {
require_once( 'templates/Confirmemail.php' );
global $wgOut, $wgUser;
$wgOut->addTemplate( $tpl );
}
-
+
+ /** */
function showInvalidCode() {
global $wgOut;
$wgOut->addWikiText( wfMsg( 'confirmemail_invalid' ) );
}
-
+
+ /** */
function showError() {
global $wgOut;
$wgOut->addWikiText( wfMsg( 'confirmemail_error' ) );
}
-
+
+ /** */
function showSuccess() {
global $wgOut, $wgRequest, $wgUser;
* @subpackage SpecialPage
*/
+/** @package MediaWiki */
class contribs_finder {
var $username, $offset, $limit;
var $dbr;
* @subpackage SpecialPage
*/
+/** */
require_once( 'WikiError.php' );
/**
}
+/** @package MediaWiki */
class ImportStringSource {
function ImportStringSource( $string ) {
$this->mString = $string;
}
}
+/** @package MediaWiki */
class ImportStreamSource {
function ImportStreamSource( $handle ) {
$this->mHandle = $handle;
/**
* Shortcut to construct an includable special page
+ * @package MediaWiki
*/
class IncludableSpecialPage extends SpecialPage
{
$form->execute();
}
-
+/** @package MediaWiki */
class UploadFormMogile extends UploadForm {
/**
* Move the uploaded file from its temporary location to the final
<?php
+/** */
+/** */
function wfStreamFile( $fname ) {
global $wgSquidMaxage;
$stat = stat( $fname );
readfile( $fname );
}
+/** */
function wfGetType( $filename ) {
global $wgTrivialMimeDetection;
$ext= strtolower(strrchr($filename, '.'));
switch ($ext) {
- case '.gif': return "image/gif";
- case '.png': return "image/png";
- case '.jpg': return "image/jpeg";
- case '.jpeg': return "image/jpeg";
+ case '.gif': return 'image/gif';
+ case '.png': return 'image/png';
+ case '.jpg': return 'image/jpeg';
+ case '.jpeg': return 'image/jpeg';
}
- return "unknown/unknown";
+ return 'unknown/unknown';
}
else {
$magic=& wfGetMimeMagic();
* @package MediaWiki
*/
+/** */
require_once( 'normal/UtfNormal.php' );
$wgTitleInterwikiCache = array();
/**
* Since PHP4 doesn't have exceptions, here's some error objects
* loosely modeled on the standard PEAR_Error model...
+ * @package MediaWiki
*/
class WikiError {
/**
/**
* Localized error message object
+ * @package MediaWiki
*/
class WikiErrorMsg extends WikiError {
/**
}
/**
- *
+ * @package MediaWiki
+ * @todo document
*/
class WikiXmlError extends WikiError {
/**
$this->mMessage = $message;
xml_parser_free( $parser );
}
-
+
+ /** @return string */
function getMessage() {
return $this->mMessage . ': ' . xml_error_string( $this->mXmlError );
}
# Read language names
global $wgLanguageNames;
+/** */
require_once( 'Names.php' );
$wgLanguageNamesEn =& $wgLanguageNames;
* @subpackage Language
*/
+/** This is an UTF-8 language */
require_once('LanguageUtf8.php');
/* private */ $wgNamespaceNamesAr = array(
'mw_math_mathml' => 'MathML по възможност (експериментално)'
);
+/** This is an UTF-8 language */
require_once( 'LanguageUtf8.php' );
+/**
+ * @package MediaWiki
+ * @subpackage Language
+ */
class LanguageBg extends LanguageUtf8 {
function getBookstoreList () {
* @subpackage Language
*/
+/** This is an UTF8 language */
require_once( 'LanguageUtf8.php' );
/* private */ $wgNamespaceNamesBn = array(
);
-require_once( "LanguageUtf8.php" );
+/** This is an UTF8 language */
+require_once( 'LanguageUtf8.php' );
+
+/** @package MediaWiki */
class LanguageCa extends LanguageUtf8 {
function getNamespaces() {
* @subpackage Language
*/
+/** */
require_once( 'LanguageUtf8.php' );
# See Language.php for notes.
);
-require_once( "LanguageUtf8.php" );
+/** */
+require_once( 'LanguageUtf8.php' );
+/** @package MediaWiki */
class LanguageCy extends LanguageUtf8 {
function getBookstoreList () {
* @subpackage Language
*/
+/** */
require_once( "LanguageUtf8.php" );
#--------------------------------------------------------------------------
);
+/** @package MediaWiki */
class LanguageDa extends LanguageUtf8 {
function getBookstoreList () {
* @subpackage Language
*/
+/** */
require_once( 'LanguageUtf8.php' );
# See Language.php for notes.
);
+/** @package MediaWiki */
class LanguageDe extends LanguageUtf8 {
function getBookstoreList() {
* @subpackage Language
*/
+/** */
require_once( 'LanguageUtf8.php' );
$wgNamespaceNamesEl = array(
'dec' => 'Δεκ',
);
-
+/** @package MediaWiki */
class LanguageEl extends LanguageUtf8 {
function getNamespaces() {
* @subpackage Language
*/
+/** */
require_once( 'LanguageUtf8.php' );
+/** @package MediaWiki */
class LanguageEn extends LanguageUtf8 {
# Inherit everything
}
* @package MediaWiki
* @subpackage Language
*/
+
+/** */
require_once("LanguageUtf8.php");
# See language.txt
);
-
+/** @package MediaWiki */
class LanguageEo extends LanguageUtf8 {
function getDefaultUserOptions () {
return $wgTranslateNumerals ? strtr($number, $this->digitTransTable ) : $number;
}
+ function isRTL() {
+ return false;
+ }
function getValidSpecialPages() {
global $wgValidSpecialPagesFr;
}
}
-# Base stuff useful to all UTF-8 based language files
+/**
+ * Base stuff useful to all UTF-8 based language files
+ * @package MediaWiki
+ */
class LanguageUtf8 extends Language {
# These two functions use mbstring library, if it is loaded
$options = array( 'fix', 'index' );
-require_once( "commandLine.inc" );
+/** */
+require_once( 'commandLine.inc' );
require_once( 'cleanupDupes.inc' );
-$wgTitle = Title::newFromText( "Dupe cur entry cleanup script" );
+$wgTitle = Title::newFromText( 'Dupe cur entry cleanup script' );
checkDupes( isset( $options['fix'] ), isset( $options['index'] ) );
-?>
\ No newline at end of file
+?>
for ($id = $start; $id <= $end; $id++) {
if ( !($id % REPORTING_INTERVAL) ) {
- print("$id\n");
+ print "Processing ID: $id".chr(13);
}
$title = Title::newFromID( $id );
if ( $title ) {
--- /dev/null
+<?php
+/**
+ * This is an experimental list. It will later be used with a script to split
+ * the languages files in several parts then the message system will only load
+ * in memory the parts which are actually needed.
+ *
+ * Generated using: grep -r foobar *
+ *
+ * $commonMsg is the default array. Other arrays will only be loaded if needed.
+ */
+$installerMsg = array (
+'mainpagetext',
+'mainpagedocfooter',
+);
+
+$ActionMsg = array (
+'delete' => array(
+ 'delete',
+ 'deletethispage',
+ 'undelete_short1',
+ 'undelete_short',
+ 'undelete',
+ 'undeletepage',
+ 'undeletepagetext',
+ 'undeletearticle',
+ 'undeleterevisions',
+ 'undeletehistory',
+ 'undeleterevision',
+ 'undeletebtn',
+ 'undeletedarticle',
+ 'undeletedrevisions',
+ 'undeletedtext',
+ ),
+'move' => array(
+ 'move',
+ 'movethispage',
+),
+'revert' => array(
+
+),
+'protect' => array(
+ 'confirmprotect',
+ 'confirmprotecttext',
+ 'confirmunprotect',
+ 'confirmunprotecttext',
+ 'protect',
+ 'protectcomment',
+ 'protectmoveonly',
+ 'protectpage',
+ 'protectreason',
+ 'protectsub',
+ 'protectthispage',
+ 'unprotect',
+ 'unprotectthispage',
+ 'unprotectsub',
+ 'unprotectcomment',
+),
+);
+
+$CreditsMsg = array(
+'anonymous',
+'siteuser',
+'lastmodifiedby',
+'and',
+'othercontribs',
+'others',
+'siteusers',
+'creditspage',
+'nocredits',
+);
+
+// When showing differences
+$DifferenceMsg = array(
+'previousdiff',
+'nextdiff',
+);
+
+// used on page edition
+$EditMsg = array(
+'bold_sample',
+'bold_tip',
+'italic_sample',
+'italic_tip',
+'link_sample',
+'link_tip',
+'extlink_sample',
+'extlink_tip',
+'headline_sample',
+'headline_tip',
+'math_sample',
+'math_tip',
+'nowiki_sample',
+'nowiki_tip',
+'image_sample',
+'image_tip',
+'media_sample',
+'media_tip',
+'sig_tip',
+'hr_tip',
+
+'accesskey-search',
+'accesskey-minoredit',
+'accesskey-save',
+'accesskey-preview',
+'accesskey-diff',
+'accesskey-compareselectedversions',
+'tooltip-search',
+'tooltip-minoredit',
+'tooltip-save',
+'tooltip-preview',
+'tooltip-diff',
+'tooltip-compareselectedversions',
+'tooltip-watch',
+
+'copyrightwarning',
+'copyrightwarning2',
+'editconflict',
+'editing',
+'editingcomment',
+'editingold',
+'editingsection',
+'explainconflict',
+'infobox',
+'infobox_alert',
+'longpagewarning',
+'nonunicodebrowser',
+'previewconflict',
+'previewnote',
+'protectedpagewarning',
+'readonlywarning',
+'spamprotectiontitle',
+'spamprotectiontext',
+'spamprotectionmatch',
+'templatesused',
+'yourdiff',
+'yourtext',
+);
+
+// Per namespace
+$NamespaceCategory = array (
+'category_header',
+'categoryarticlecount',
+'categoryarticlecount1',
+'listingcontinuesabbrev',
+'subcategories',
+'subcategorycount',
+'subcategorycount1',
+'usenewcategorypage',
+);
+
+$NamespaceImage = array (
+'deletedrevision',
+'edit-externally',
+'edit-externally-help',
+'showbigimage',
+);
+
+$NamespaceSpecialMsg = array(
+'nosuchspecialpage',
+'nospecialpagetext',
+);
+
+
+
+// per special pages
+$SpecialAllMessages = array(
+'allmessages',
+'allmessagesname',
+'allmessagesdefault',
+'allmessagescurrent',
+'allmessagestext',
+'allmessagesnotsupportedUI',
+'allmessagesnotsupportedDB',
+);
+
+
+$SpecialAllPages = array(
+'articlenamespace',
+'allpagesformtext1',
+'allpagesformtext2',
+'allarticles',
+'allpagesprev',
+'allpagesnext',
+'allpagesnamespace',
+'allpagessubmit',
+);
+
+
+$SpecialAskSQLMsg = array(
+'asksql',
+'asksqltext',
+'sqlislogged',
+'sqlquery',
+'querybtn',
+'selectonly',
+'querysuccessful',
+);
+
+$SpecialBlockip = array(
+'blockip',
+'blockiptext',
+'range_block_disabled',
+'ipb_expiry_invalid',
+'ip_range_invalid',
+'ipbexpiry',
+'ipbsubmit',
+);
+
+$SpecialContributions = array(
+'contribsub',
+'contributionsall',
+'newbies',
+'nocontribs',
+'ucnote',
+'uclinks',
+'uctop',
+);
+
+$SpecialExportMsg = array (
+'export',
+'exporttext',
+'exportcuronly',
+);
+
+$SpecialImagelist = array(
+'imagelistall',
+);
+
+$SpecialImportMsg = array (
+'import',
+'importtext',
+'importfailed',
+'importnotext',
+'importsuccess',
+'importhistoryconflict',
+);
+
+$SpecialLockdbMsg = array(
+'lockdb',
+'unlockdb',
+'lockdbtext',
+'unlockdbtext',
+'lockconfirm',
+'unlockconfirm',
+'lockbtn',
+'unlockbtn',
+'locknoconfirm',
+'lockdbsuccesssub',
+'unlockdbsuccesssub',
+'lockdbsuccesstext',
+'unlockdbsuccesstext',
+);
+
+$SpecialLogMsg = array(
+'specialloguserlabel',
+'speciallogtitlelabel',
+);
+
+$SpecialMaintenance = array(
+'maintenance',
+'maintnancepagetext',
+'maintenancebacklink',
+'disambiguations',
+'disambiguationspage',
+'disambiguationstext',
+'doubleredirects',
+'doubleredirectstext',
+'brokenredirects',
+'brokenredirectstext',
+'selflinks',
+'selflinkstext',
+'mispeelings',
+'mispeelingstext',
+'mispeelingspage',
+'missinglanguagelinks',
+'missinglanguagelinksbutton',
+'missinglanguagelinkstext',
+);
+
+$SpecialMakeSysopMsg = array (
+'already_bureaucrat',
+'already_sysop',
+'makesysop',
+'makesysoptitle',
+'makesysoptext',
+'makesysopname',
+'makesysopsubmit',
+'makesysopok',
+'makesysopfail',
+'rights',
+'set_rights_fail',
+'set_user_rights',
+'user_rights_set',
+);
+
+$SpecialMovepageMsg = array(
+'newtitle',
+'movearticle',
+'movenologin',
+'movenologintext',
+'movepage',
+'movepagebtn',
+'movepagetalktext',
+'movepagetext',
+'movetalk',
+'pagemovedsub',
+'pagemovedtext',
+'talkexists',
+'talkpagemoved',
+'talkpagenotmoved',
+
+);
+
+$SpecialPreferencesMsg = array(
+'tog-underline',
+'tog-highlightbroken',
+'tog-justify',
+'tog-hideminor',
+'tog-usenewrc',
+'tog-numberheadings',
+'tog-showtoolbar',
+'tog-editondblclick',
+'tog-editsection',
+'tog-editsectiononrightclick',
+'tog-showtoc',
+'tog-rememberpassword',
+'tog-editwidth',
+'tog-watchdefault',
+'tog-minordefault',
+'tog-previewontop',
+'tog-previewonfirst',
+'tog-nocache',
+'tog-enotifwatchlistpages',
+'tog-enotifusertalkpages',
+'tog-enotifminoredits',
+'tog-enotifrevealaddr',
+'tog-shownumberswatching',
+'tog-rcusemodstyle',
+'tog-showupdated',
+'tog-fancysig',
+'tog-externaleditor',
+
+'imagemaxsize',
+'prefs-help-email',
+'prefs-help-email-enotif',
+'prefs-help-realname',
+'prefs-help-userdata',
+'prefs-misc',
+'prefs-personal',
+'prefs-rc',
+'resetprefs',
+'saveprefs',
+'oldpassword',
+'newpassword',
+'retypenew',
+'textboxsize',
+'rows',
+'columns',
+'searchresultshead',
+'resultsperpage',
+'contextlines',
+'contextchars',
+'stubthreshold',
+'recentchangescount',
+'savedprefs',
+'timezonelegend',
+'timezonetext',
+'localtime',
+'timezoneoffset',
+'servertime',
+'guesstimezone',
+'emailflag',
+'defaultns',
+'default',
+);
+
+$SpecialRecentchangesMsg = array(
+'changes',
+'recentchanges',
+'recentchanges-url',
+'recentchangestext',
+'rcloaderr',
+'rcnote',
+'rcnotefrom',
+'rclistfrom',
+'showhideminor',
+'rclinks',
+'rchide',
+'rcliu',
+'diff',
+'hist',
+'hide',
+'show',
+'tableform',
+'listform',
+'nchanges',
+'minoreditletter',
+'newpageletter',
+'sectionlink',
+'number_of_watching_users_RCview',
+'number_of_watching_users_pageview',
+'recentchangesall',
+);
+
+$SpecialRecentchangeslinkedMsg = array(
+'rclsub',
+);
+
+$SpecialSearchMsg = array(
+'searchresults',
+'searchresulttext',
+'searchquery',
+'badquery',
+'badquerytext',
+'matchtotals',
+'nogomatch',
+'titlematches',
+'notitlematches',
+'textmatches',
+'notextmatches',
+);
+
+$SpecialSitesettingsMsg = array(
+'sitesettings',
+'sitesettings-features',
+'sitesettings-permissions',
+'sitesettings-memcached',
+'sitesettings-debugging',
+'sitesettings-caching',
+'sitesettings-wgShowIPinHeader',
+'sitesettings-wgUseDatabaseMessages',
+'sitesettings-wgUseCategoryMagic',
+'sitesettings-wgUseCategoryBrowser',
+'sitesettings-wgHitcounterUpdateFreq',
+'sitesettings-wgAllowExternalImages',
+'sitesettings-permissions-readonly',
+'sitesettings-permissions-whitelist',
+'sitesettings-permissions-banning',
+'sitesettings-permissions-miser',
+'sitesettings-wgReadOnly',
+'sitesettings-wgReadOnlyFile',
+'sitesettings-wgWhitelistEdit',
+'sitesettings-wgWhitelistRead',
+'sitesettings-wgWhitelistAccount-user',
+'sitesettings-wgWhitelistAccount-sysop',
+'sitesettings-wgWhitelistAccount-developer',
+'sitesettings-wgSysopUserBans',
+'sitesettings-wgSysopRangeBans',
+'sitesettings-wgDefaultBlockExpiry',
+'sitesettings-wgMiserMode',
+'sitesettings-wgDisableQueryPages',
+'sitesettings-wgUseWatchlistCache',
+'sitesettings-wgWLCacheTimeout',
+'sitesettings-cookies',
+'sitesettings-performance',
+'sitesettings-images',
+);
+
+$SpecialStatisticsMsg = array(
+'statistics',
+'sitestats',
+'userstats',
+'sitestatstext',
+'userstatstext',
+);
+
+$SpecialUndelte = array(
+'deletepage',
+);
+
+$SpecialUploadMsg = array(
+'affirmation',
+'badfilename',
+'badfiletype',
+'emptyfile',
+'fileexists',
+'filedesc',
+'filename',
+'filesource',
+'filestatus',
+'fileuploaded',
+'ignorewarning',
+'illegalfilename',
+'largefile',
+'minlength',
+'noaffirmation',
+'reupload',
+'reuploaddesc',
+'savefile',
+'successfulupload',
+'upload',
+'uploadbtn',
+'uploadcorrupt',
+'uploaddisabled',
+'uploadfile',
+'uploadedimage',
+'uploaderror',
+'uploadlink',
+'uploadlog',
+'uploadlogpage',
+'uploadlogpagetext',
+'uploadnologin',
+'uploadnologintext',
+'uploadtext',
+'uploadwarning',
+);
+
+$SpecialUserlevelsMsg = array(
+'saveusergroups',
+'userlevels-editusergroup',
+'userlevels-groupsavailable',
+'userlevels-groupshelp',
+'userlevels-groupsmember',
+);
+
+$SpecialUserloginMsg = array(
+'acct_creation_throttle_hit',
+'loginend',
+'loginsuccesstitle',
+'loginsuccess',
+'nocookiesnew',
+'nocookieslogin',
+'noemail',
+'noname',
+'nosuchuser',
+'mailmypassword',
+'mailmypasswordauthent',
+'passwordremindermailsubject',
+'passwordremindermailbody',
+'passwordsent',
+'passwordsentforemailauthentication',
+'userexists',
+'wrongpassword',
+);
+
+$SpecialValidateMsg = array(
+'val_yes',
+'val_no',
+'val_revision',
+'val_time',
+'val_list_header',
+'val_add',
+'val_del',
+'val_warning',
+'val_rev_for',
+'val_rev_stats_link',
+'val_iamsure',
+'val_clear_old',
+'val_merge_old',
+'val_form_note',
+'val_noop',
+'val_percent',
+'val_percent_single',
+'val_total',
+'val_version',
+'val_tab',
+'val_this_is_current_version',
+'val_version_of',
+'val_table_header',
+'val_stat_link_text',
+'val_view_version',
+'val_validate_version',
+'val_user_validations',
+'val_no_anon_validation',
+'val_validate_article_namespace_only',
+'val_validated',
+'val_article_lists',
+'val_page_validation_statistics',
+);
+
+$SpecialVersionMsg = array(
+'special_version_prefix',
+'special_version_postfix'
+);
+
+$SpecialWatchlistMsg = array(
+'watchlistall1',
+'watchlistall2',
+'wlnote',
+'wlshowlast',
+'wlsaved',
+'wlhideshowown',
+'wlshow',
+'wlhide',
+);
+
+$SpecialWhatlinkshereMsg = array(
+'linklistsub',
+'nolinkshere',
+'isredirect',
+);
+
+
+$commonMsg = array (
+'sunday',
+'monday',
+'tuesday',
+'wednesday',
+'thursday',
+'friday',
+'saturday',
+'january',
+'february',
+'march',
+'april',
+'may_long',
+'june',
+'july',
+'august',
+'september',
+'october',
+'november',
+'december',
+'jan',
+'feb',
+'mar',
+'apr',
+'may',
+'jun',
+'jul',
+'aug',
+'sep',
+'oct',
+'nov',
+'dec',
+'categories',
+'category',
+'linktrail',
+'mainpage',
+'portal',
+'portal-url',
+'about',
+'aboutsite',
+'aboutpage',
+'article',
+'help',
+'helppage',
+'wikititlesuffix',
+'bugreports',
+'bugreportspage',
+'sitesupport',
+'sitesupport-url',
+'faq',
+'faqpage',
+'edithelp',
+'newwindow',
+'edithelppage',
+'cancel',
+'qbfind',
+'qbbrowse',
+'qbedit',
+'qbpageoptions',
+'qbpageinfo',
+'qbmyoptions',
+'qbspecialpages',
+'moredotdotdot',
+'mypage',
+'mytalk',
+'anontalk',
+'navigation',
+'metadata',
+'metadata_page',
+'currentevents',
+'currentevents-url',
+'disclaimers',
+'disclaimerpage',
+'errorpagetitle',
+'returnto',
+'tagline',
+'whatlinkshere',
+'search',
+'go',
+'history',
+'history_short',
+'info_short',
+'printableversion',
+'edit',
+'editthispage',
+'newpage',
+'talkpage',
+'specialpage',
+'personaltools',
+'postcomment',
+'addsection',
+'articlepage',
+'subjectpage',
+'talk',
+'toolbox',
+'userpage',
+'wikipediapage',
+'imagepage',
+'viewtalkpage',
+'otherlanguages',
+'redirectedfrom',
+'lastmodified',
+'viewcount',
+'copyright',
+'poweredby',
+'printsubtitle',
+'protectedpage',
+'administrators',
+'sysoptitle',
+'sysoptext',
+'developertitle',
+'developertext',
+'bureaucrattitle',
+'bureaucrattext',
+'nbytes',
+'ok',
+'sitetitle',
+'pagetitle',
+'sitesubtitle',
+'retrievedfrom',
+'newmessages',
+'newmessageslink',
+'editsection',
+'toc',
+'showtoc',
+'hidetoc',
+'thisisdeleted',
+'restorelink',
+'feedlinks',
+'sitenotice',
+'nstab-main',
+'nstab-user',
+'nstab-media',
+'nstab-special',
+'nstab-wp',
+'nstab-image',
+'nstab-mediawiki',
+'nstab-template',
+'nstab-help',
+'nstab-category',
+'nosuchaction',
+'nosuchactiontext',
+
+
+'error',
+'databaseerror',
+'dberrortext',
+'dberrortextcl',
+'noconnect',
+'nodb',
+'cachederror',
+'laggedslavemode',
+'readonly',
+'enterlockreason',
+'readonlytext',
+'missingarticle',
+'internalerror',
+'filecopyerror',
+'filerenameerror',
+'filedeleteerror',
+'filenotfound',
+'unexpected',
+'formerror',
+'badarticleerror',
+'cannotdelete',
+'badtitle',
+'badtitletext',
+'perfdisabled',
+'perfdisabledsub',
+'perfcached',
+'wrong_wfQuery_params',
+'viewsource',
+'protectedtext',
+'seriousxhtmlerrors',
+'logouttitle',
+'logouttext',
+'welcomecreation',
+
+'loginpagetitle',
+'yourname',
+'yourpassword',
+'yourpasswordagain',
+'newusersonly',
+'remembermypassword',
+'loginproblem',
+'alreadyloggedin',
+'login',
+'loginprompt',
+'userlogin',
+'logout',
+'userlogout',
+'notloggedin',
+'createaccount',
+'createaccountmail',
+'badretype',
+
+'youremail',
+'yourrealname',
+'yourlanguage',
+'yourvariant',
+'yournick',
+'emailforlost',
+'loginerror',
+'nosuchusershort',
+
+'mailerror',
+'emailauthenticated',
+'emailnotauthenticated',
+'invalidemailaddress',
+'disableduntilauthent',
+'disablednoemail',
+
+'summary',
+'subject',
+'minoredit',
+'watchthis',
+'savearticle',
+'preview',
+'showpreview',
+'showdiff',
+'blockedtitle',
+'blockedtext',
+'whitelistedittitle',
+'whitelistedittext',
+'whitelistreadtitle',
+'whitelistreadtext',
+'whitelistacctitle',
+'whitelistacctext',
+'loginreqtitle',
+'loginreqtext',
+'accmailtitle',
+'accmailtext',
+'newarticle',
+'newarticletext',
+'talkpagetext',
+'anontalkpagetext',
+'noarticletext',
+'clearyourcache',
+'usercssjsyoucanpreview',
+'usercsspreview',
+'userjspreview',
+'updated',
+'note',
+'storedversion', // not used ? Editpage ?
+'revhistory',
+'nohistory',
+'revnotfound',
+'revnotfoundtext',
+'loadhist',
+'currentrev',
+'revisionasof',
+'revisionasofwithlink',
+'previousrevision',
+'nextrevision',
+'currentrevisionlink',
+'cur',
+'next',
+'last',
+'orig',
+'histlegend',
+'history_copyright',
+'difference',
+'loadingrev',
+'lineno',
+'editcurrent',
+'selectnewerversionfordiff',
+'selectolderversionfordiff',
+'compareselectedversions',
+
+'prevn',
+'nextn',
+'viewprevnext',
+'showingresults',
+'showingresultsnum',
+'nonefound',
+'powersearch',
+'powersearchtext',
+'searchdisabled',
+'googlesearch',
+'blanknamespace',
+'preferences',
+'prefsnologin',
+'prefsnologintext',
+'prefslogintext',
+'prefsreset',
+'qbsettings',
+'qbsettingsnote',
+'changepassword',
+'skin',
+'math',
+'dateformat',
+
+'math_failure',
+'math_unknown_error',
+'math_unknown_function',
+'math_lexing_error',
+'math_syntax_error',
+'math_image_error',
+'math_bad_tmpdir',
+'math_bad_output',
+'math_notexvc',
+
+
+
+
+
+
+'grouplevels-lookup-group',
+'grouplevels-group-edit',
+'editgroup',
+'addgroup',
+'userlevels-lookup-user',
+'userlevels-user-editname',
+'editusergroup',
+'grouplevels-editgroup',
+'grouplevels-addgroup',
+'grouplevels-editgroup-name',
+'grouplevels-editgroup-description',
+'savegroup',
+
+// common to several pages
+'copyrightpage',
+'copyrightpagename',
+'imagelist',
+'imagelisttext',
+'ilshowmatch',
+'ilsubmit',
+'showlast',
+'byname',
+'bydate',
+'bysize',
+
+
+
+'imgdelete',
+'imgdesc',
+'imglegend',
+'imghistory',
+'revertimg',
+'deleteimg',
+'deleteimgcompletely',
+'imghistlegend',
+'imagelinks',
+'linkstoimage',
+'nolinkstoimage',
+
+// unused ??
+'uploadedfiles',
+'getimagelist',
+
+
+'sharedupload',
+'shareduploadwiki',
+
+// Special pages names
+'orphans',
+'geo',
+'validate',
+'lonelypages',
+'uncategorizedpages',
+'uncategorizedcategories',
+'unusedimages',
+'popularpages',
+'nviews',
+'wantedpages',
+'nlinks',
+'allpages',
+'randompage',
+'randompage-url',
+'shortpages',
+'longpages',
+'deadendpages',
+'listusers',
+'listadmins',
+'specialpages',
+'spheading',
+'restrictedpheading',
+'asksqlpheading',
+'blockpheading',
+'createaccountpheading',
+'deletepheading',
+'userrightspheading',
+'grouprightspheading',
+'siteadminpheading',
+'recentchangeslinked',
+
+
+'debug',
+'newpages',
+'ancientpages',
+'intl',
+'unusedimagestext',
+'booksources',
+'categoriespagetext',
+'data',
+'userlevels',
+'grouplevels',
+'booksourcetext',
+'isbn',
+'rfcurl',
+'pubmedurl',
+'alphaindexline',
+'version',
+'log',
+'alllogstext',
+'nextpage',
+'mailnologin',
+'mailnologintext',
+'emailuser',
+'emailpage',
+'emailpagetext',
+'usermailererror',
+'defemailsubject',
+'noemailtitle',
+'noemailtext',
+'emailfrom',
+'emailto',
+'emailsubject',
+'emailmessage',
+'emailsend',
+'emailsent',
+'emailsenttext',
+'watchlist',
+'watchlistsub',
+'nowatchlist',
+'watchnologin',
+'watchnologintext',
+'addedwatch',
+'addedwatchtext',
+'removedwatch',
+'removedwatchtext',
+'watch',
+'watchthispage',
+'unwatch',
+'unwatchthispage',
+'notanarticle',
+'watchnochange',
+'watchdetails',
+'watchmethod-recent',
+'watchmethod-list',
+'removechecked',
+'watchlistcontains',
+'watcheditlist',
+'removingchecked',
+'couldntremove',
+'iteminvalidname',
+
+'updatedmarker',
+'email_notification_mailer',
+'email_notification_infotext',
+'email_notification_reset',
+'email_notification_newpagetext',
+'email_notification_to',
+'email_notification_subject',
+'email_notification_lastvisitedrevisiontext',
+'email_notification_body',
+
+'confirm',
+'excontent',
+'exbeforeblank',
+'exblank',
+'confirmdelete',
+'deletesub',
+'historywarning',
+'confirmdeletetext',
+'actioncomplete',
+'deletedtext',
+'deletedarticle',
+'dellogpage',
+'dellogpagetext',
+'deletionlog',
+'reverted',
+'deletecomment',
+'imagereverted',
+'rollback',
+'rollback_short',
+'rollbacklink',
+'rollbackfailed',
+'cantrollback',
+'alreadyrolled',
+'revertpage',
+'editcomment',
+'sessionfailure',
+
+'protectlogpage',
+'protectlogtext',
+
+'protectedarticle',
+'unprotectedarticle',
+
+'contributions',
+'mycontris',
+'notargettitle', // not used ?
+'notargettext', // not used ?
+
+'linkshere',
+
+'ipaddress',
+'ipadressorusername', // not used ?
+'ipbreason',
+
+'badipaddress',
+'noblockreason',
+'blockipsuccesssub',
+'blockipsuccesstext',
+'unblockip',
+'unblockiptext',
+'ipusubmit',
+'ipusuccess',
+'ipblocklist',
+'blocklistline',
+'blocklink',
+'unblocklink',
+'contribslink',
+'autoblocker',
+'blocklogpage',
+'blocklogentry',
+'blocklogtext',
+'unblocklogentry', // not used ?
+
+'proxyblocker',
+'proxyblockreason',
+'proxyblocksuccess',
+'sorbs',
+'sorbsreason',
+
+'setbureaucratflag',
+'bureaucratlog',
+'rightslogtext',
+'bureaucratlogentry',
+
+'articleexists', // not used ?
+
+'movedto',
+'1movedto2',
+'1movedto2_redir',
+'movelogpage',
+'movelogpagetext',
+
+'thumbnail-more',
+'missingimage',
+'filemissing',
+'Monobook.css',
+'nodublincore',
+'nocreativecommons',
+'notacceptable',
+
+// used in Article::
+'infosubtitle',
+'numedits',
+'numtalkedits',
+'numwatchers',
+'numauthors',
+'numtalkauthors',
+
+// not used ?
+'mw_math_png',
+'mw_math_simple',
+'mw_math_html',
+'mw_math_source',
+'mw_math_modern',
+'mw_math_mathml',
+
+// Patrolling
+'markaspatrolleddiff',
+'markaspatrolledlink',
+'markaspatrolledtext',
+'markedaspatrolled',
+'markedaspatrolledtext',
+'rcpatroldisabled', // not used ?
+'rcpatroldisabledtext', // not used ?
+
+'Monobook.js',
+'newimages',
+'noimages',
+'variantname-zh-cn',
+'variantname-zh-tw',
+'variantname-zh-hk',
+'variantname-zh-sg',
+'variantname-zh',
+'zhconversiontable',
+'passwordtooshort', // sp preferences / userlogin
+?>
--- /dev/null
+<?php
+/**
+ * splitLanguageFiles
+ * Should read each of the languages files then split them in several subpart
+ * under ./languages/XX/ according to the arrays in splitLanguageFiles.inc .
+ *
+ * Also need to rewrite the wfMsg system / message-cache.
+ */
+
+include('commandLine.inc');
+
+
+?>