public function execute() { global $wgMessageCache; $params = $this->extractRequestParams(); if (!is_null($params['lang'])) { global $wgLang; $wgLang = Language::factory($params['lang']); } //Determine which messages should we print $messages_target = array(); if ($params['messages'] == '*') { $wgMessageCache->loadAllMessages(); $message_names = array_keys(array_merge(Language::getMessagesFor('en'), $wgMessageCache->getExtensionMessagesFor('en'))); sort($message_names); $messages_target = $message_names; } else { $messages_target = explode('|', $params['messages']); } //Filter messages if (isset($params['filter'])) { $messages_filtered = array(); foreach ($messages_target as $message) { if (strpos($message, $params['filter']) !== false) { //!== is used because filter can be at the beginnig of the string $messages_filtered[] = $message; } } $messages_target = $messages_filtered; } //Get all requested messages $messages = array(); $skip = !is_null($params['from']); foreach ($messages_target as $message) { // Skip all messages up to $params['from'] if ($skip && $message === $params['from']) { $skip = false; } if (!$skip) { $messages[$message] = wfMsg($message); } } //Print the result $result = $this->getResult(); $messages_out = array(); foreach ($messages as $name => $value) { $message = array(); $message['name'] = $name; if (wfEmptyMsg($name, $value)) { $message['missing'] = ''; } else { $result->setContent($message, $value); } $fit = $result->addValue(array('query', $this->getModuleName()), null, $message); if (!$fit) { $this->setContinueEnumParameter('from', $name); break; } } $result->setIndexedTagName_internal(array('query', $this->getModuleName()), 'message'); }
public function execute() { $englishMessages = array_keys(Language::getMessagesFor('en')); foreach ($englishMessages as $key) { $this->output("{$key}\n"); } }
public function execute() { $messages = array(); foreach (array_keys(Language::getMessagesFor('en')) as $key) { $messages[$key] = wfMsg($key); } $this->output("MediaWiki {$wgVersion} language file\n"); $this->output(serialize($messages)); }
public function execute() { global $wgMessageCache; $params = $this->extractRequestParams(); if (!is_null($params['lang'])) { global $wgLang; $wgLang = Language::factory($params['lang']); } //Determine which messages should we print $messages_target = array(); if ($params['messages'] == '*') { $wgMessageCache->loadAllMessages(); $message_names = array_keys(array_merge(Language::getMessagesFor('en'), $wgMessageCache->getExtensionMessagesFor('en'))); sort($message_names); $messages_target = $message_names; } else { $messages_target = explode('|', $params['messages']); } //Filter messages if (isset($params['filter'])) { $messages_filtered = array(); foreach ($messages_target as $message) { if (strpos($message, $params['filter']) !== false) { //!== is used because filter can be at the beginnig of the string $messages_filtered[] = $message; } } $messages_target = $messages_filtered; } $wgMessageCache->disableTransform(); //Get all requested messages $messages = array(); foreach ($messages_target as $message) { $message = trim($message); //Message list can be formatted like "msg1 | msg2 | msg3", so let's trim() it $messages[$message] = wfMsg($message); } //Print the result $result = $this->getResult(); $messages_out = array(); foreach ($messages as $name => $value) { $message = array(); $message['name'] = $name; $result->setContent($message, $value); $messages_out[] = $message; } $result->setIndexedTagName($messages_out, 'message'); $result->addValue('query', $this->getModuleName(), $messages_out); }
/** * Constructor. */ function wfSpecialAllmessages() { global $wgOut, $wgRequest, $wgMessageCache, $wgTitle; global $wgUseDatabaseMessages, $wgLang; # The page isn't much use if the MediaWiki namespace is not being used if (!$wgUseDatabaseMessages) { $wgOut->addWikiMsg('allmessagesnotsupportedDB'); return; } wfProfileIn(__METHOD__); wfProfileIn(__METHOD__ . '-setup'); $ot = $wgRequest->getText('ot'); $navText = wfMsg('allmessagestext'); # Make sure all extension messages are available $wgMessageCache->loadAllMessages(); $sortedArray = array_merge(Language::getMessagesFor('en'), $wgMessageCache->getExtensionMessagesFor('en')); ksort($sortedArray); $messages = array(); foreach ($sortedArray as $key => $value) { $messages[$key]['enmsg'] = $value; $messages[$key]['statmsg'] = wfMsgReal($key, array(), false, false, false); $messages[$key]['msg'] = wfMsgNoTrans($key); $sortedArray[$key] = NULL; // trade bytes from $sortedArray to this } unset($sortedArray); // trade bytes from $sortedArray to this wfProfileOut(__METHOD__ . '-setup'); wfProfileIn(__METHOD__ . '-output'); $wgOut->addScriptFile('allmessages.js'); if ($ot == 'php') { $navText .= wfAllMessagesMakePhp($messages); $wgOut->addHTML($wgLang->pipeList(array('PHP', '<a href="' . $wgTitle->escapeLocalUrl('ot=html') . '">HTML</a>', '<a href="' . $wgTitle->escapeLocalUrl('ot=xml') . '">XML</a>' . '<pre>' . htmlspecialchars($navText) . '</pre>'))); } else { if ($ot == 'xml') { $wgOut->disable(); header('Content-type: text/xml'); echo wfAllMessagesMakeXml($messages); } else { $wgOut->addHTML($wgLang->pipeList(array('<a href="' . $wgTitle->escapeLocalUrl('ot=php') . '">PHP</a>', 'HTML', '<a href="' . $wgTitle->escapeLocalUrl('ot=xml') . '">XML</a>'))); $wgOut->addWikiText($navText); $wgOut->addHTML(wfAllMessagesMakeHTMLText($messages)); } } wfProfileOut(__METHOD__ . '-output'); wfProfileOut(__METHOD__); }
/** * Constructor. */ function wfSpecialAllmessages() { global $wgOut, $wgRequest, $wgMessageCache, $wgTitle; global $wgUseDatabaseMessages; # The page isn't much use if the MediaWiki namespace is not being used if (!$wgUseDatabaseMessages) { $wgOut->addWikiMsg('allmessagesnotsupportedDB'); return; } wfProfileIn(__METHOD__); wfProfileIn(__METHOD__ . '-setup'); $ot = $wgRequest->getText('ot'); $navText = wfMsg('allmessagestext'); # Make sure all extension messages are available $wgMessageCache->loadAllMessages(); $wgOut->addScript("<script src='/skins/common/allmessages.js'></script>"); $sortedArray = array_merge(Language::getMessagesFor('en'), $wgMessageCache->getExtensionMessagesFor('en')); ksort($sortedArray); $messages = array(); $wgMessageCache->disableTransform(); foreach ($sortedArray as $key => $value) { $messages[$key]['enmsg'] = $value; $messages[$key]['statmsg'] = wfMsgNoDb($key); $messages[$key]['msg'] = wfMsg($key); } $wgMessageCache->enableTransform(); wfProfileOut(__METHOD__ . '-setup'); wfProfileIn(__METHOD__ . '-output'); if ($ot == 'php') { $navText .= wfAllMessagesMakePhp($messages); $wgOut->addHTML('PHP | <a href="' . $wgTitle->escapeLocalUrl('ot=html') . '">HTML</a> | ' . '<a href="' . $wgTitle->escapeLocalUrl('ot=xml') . '">XML</a>' . '<pre>' . htmlspecialchars($navText) . '</pre>'); } else { if ($ot == 'xml') { $wgOut->disable(); header('Content-type: text/xml'); echo wfAllMessagesMakeXml($messages); } else { $wgOut->addHTML('<a href="' . $wgTitle->escapeLocalUrl('ot=php') . '">PHP</a> | ' . 'HTML | <a href="' . $wgTitle->escapeLocalUrl('ot=xml') . '">XML</a>'); $wgOut->addWikiText($navText); $wgOut->addHTML(wfAllMessagesMakeHTMLText($messages)); } } wfProfileOut(__METHOD__ . '-output'); wfProfileOut(__METHOD__); }
/** * */ function wfSpecialAllmessages() { global $wgOut, $wgRequest, $wgMessageCache, $wgTitle; global $wgUseDatabaseMessages; # The page isn't much use if the MediaWiki namespace is not being used if (!$wgUseDatabaseMessages) { $wgOut->addWikiText(wfMsg('allmessagesnotsupportedDB')); return; } $fname = "wfSpecialAllMessages"; wfProfileIn($fname); wfProfileIn("{$fname}-setup"); $ot = $wgRequest->getText('ot'); $navText = wfMsg('allmessagestext'); # Make sure all extension messages are available MessageCache::loadAllMessages(); $first = true; $sortedArray = array_merge(Language::getMessagesFor('en'), $wgMessageCache->getExtensionMessagesFor('en')); ksort($sortedArray); $messages = array(); $wgMessageCache->disableTransform(); foreach ($sortedArray as $key => $value) { $messages[$key]['enmsg'] = $value; $messages[$key]['statmsg'] = wfMsgNoDb($key); $messages[$key]['msg'] = wfMsg($key); } $wgMessageCache->enableTransform(); wfProfileOut("{$fname}-setup"); wfProfileIn("{$fname}-output"); if ($ot == 'php') { $navText .= makePhp($messages); $wgOut->addHTML('PHP | <a href="' . $wgTitle->escapeLocalUrl('ot=html') . '">HTML</a><pre>' . htmlspecialchars($navText) . '</pre>'); } else { $wgOut->addHTML('<a href="' . $wgTitle->escapeLocalUrl('ot=php') . '">PHP</a> | HTML'); $wgOut->addWikiText($navText); $wgOut->addHTML(makeHTMLText($messages)); } wfProfileOut("{$fname}-output"); wfProfileOut($fname); }
<?php /** * @todo document * @addtogroup Maintenance */ /** */ require_once dirname(__FILE__) . '/../commandLine.inc'; $wgMessageCache->disableTransform(); $messages = array(); $wgEnglishMessages = array_keys(Language::getMessagesFor('en')); foreach ($wgEnglishMessages as $key) { $messages[$key] = wfMsg($key); } print "MediaWiki {$wgVersion} language file\n"; print serialize($messages);
public function execute() { $params = $this->extractRequestParams(); global $wgLang; $oldLang = null; if (!is_null($params['lang'])) { $oldLang = $wgLang; // Keep $wgLang for restore later $wgLang = Language::factory($params['lang']); } $prop = array_flip((array) $params['prop']); // Determine which messages should we print if (in_array('*', $params['messages'])) { $message_names = array_keys(Language::getMessagesFor('en')); sort($message_names); $messages_target = $message_names; } else { $messages_target = $params['messages']; } // Filter messages if (isset($params['filter'])) { $messages_filtered = array(); foreach ($messages_target as $message) { // !== is used because filter can be at the beginning of the string if (strpos($message, $params['filter']) !== false) { $messages_filtered[] = $message; } } $messages_target = $messages_filtered; } // Get all requested messages and print the result $skip = !is_null($params['from']); $useto = !is_null($params['to']); $result = $this->getResult(); foreach ($messages_target as $message) { // Skip all messages up to $params['from'] if ($skip && $message === $params['from']) { $skip = false; } if ($useto && $message > $params['to']) { break; } if (!$skip) { $a = array('name' => $message); $args = null; if (isset($params['args']) && count($params['args']) != 0) { $args = $params['args']; } // Check if the parser is enabled: if ($params['enableparser']) { $msg = wfMsgExt($message, array('parsemag'), $args); } elseif ($args) { $msgString = wfMsgGetKey($message, true, false, false); $msg = wfMsgReplaceArgs($msgString, $args); } else { $msg = wfMsgGetKey($message, true, false, false); } if (wfEmptyMsg($message, $msg)) { $a['missing'] = ''; } else { ApiResult::setContent($a, $msg); if (isset($prop['default'])) { $default = wfMsgGetKey($message, false, false, false); if ($default !== $msg) { if (wfEmptyMsg($message, $default)) { $a['defaultmissing'] = ''; } else { $a['default'] = $default; } } } } $fit = $result->addValue(array('query', $this->getModuleName()), null, $a); if (!$fit) { $this->setContinueEnumParameter('from', $message); break; } } } $result->setIndexedTagName_internal(array('query', $this->getModuleName()), 'message'); if (!is_null($oldLang)) { $wgLang = $oldLang; // Restore $oldLang } }
* * @package MediaWiki * @subpackage Maintenance */ require_once dirname(__FILE__) . '/../commandLine.inc'; if (isset($args[0])) { $code = $args[0]; } else { $code = $wgLang->getCode(); } if ($code == 'en') { print "Current selected language is English. Cannot check translations.\n"; exit; } $filename = Language::getMessagesFileName($code); if (file_exists($filename)) { require $filename; } else { $messages = array(); } $count = $total = 0; $wgEnglishMessages = Language::getMessagesFor('en'); $wgLocalMessages = $messages; foreach ($wgLocalMessages as $key => $msg) { ++$total; if (!isset($wgEnglishMessages[$key])) { print "* {$key}\n"; ++$count; } } print "{$count} messages of {$total} are unused in the language {$code}\n";
function execute($par) { global $wgOut, $wgRequest, $wgUser; global $wgExtensionMessagesFiles, $wgMessageCache; if (!in_array('sysop', $wgUser->getGroups())) { $wgOut->setArticleRelated(false); $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } $target = isset($par) ? $par : $wgRequest->getVal('target'); $filename = $wgRequest->getVal('mwextension'); if ($target || $filename) { if ($target && !$filename) { foreach ($wgExtensionMessagesFiles as $m) { if (stripos($m, $target) !== false) { $filename = $m; break; } } } } $wgOut->addHTML('<link rel="stylesheet" href="/extensions/min/f/extensions/wikihow/mwmessages.css,/skins/WikiHow/popupEdit.css" type="text/css" />'); $wgOut->addScript('<script type="text/javascript" src="/extensions/min/f/skins/WikiHow/popupEdit.js"></script>'); $wgOut->addHTML("<div class='mwmessages'/><form action='/Special:MWMessages' method='POST' name='mwmessagesform'>"); $wgOut->addHTML("Browse by Extension<br/><select name='mwextension' onchange='document.mwmessagesform.submit();'>"); foreach ($wgExtensionMessagesFiles as $m) { $key = preg_replace("@.*/@", "", $m); $key = preg_replace("@\\..*@", "", $key); $addinfo = MWMessages::getExtensionInfo($key); if ($filename == $m) { $wgOut->addHTML("<OPTION VALUE='{$m}' SELECTED>{$key}{$addinfo}</OPTION>\n"); } else { $wgOut->addHTML("<OPTION VALUE='{$m}'>{$key}{$addinfo}</OPTION>\n"); } } $wgOut->addHTML("</select><input type='submit' value='Go'>"); $wgOut->addHTML("</form>"); if ($wgRequest->wasPosted()) { $search = $wgRequest->getVal('mwmessagessearch'); if ($search) { $wgMessageCache->mAllMessagesLoaded = false; $wgMessageCache->loadAllMessages(); $lang = 'en'; $sortedArray = array_merge(Language::getMessagesFor('en'), $wgMessageCache->getExtensionMessagesFor('en')); $wgOut->addHTML("<table class='mwmessages'>\n\t\t\t\t\t\t<tr><td><b>Lang</b></td><td><b>Key</b></td><td><b>Value</b></td></tr>"); foreach ($sortedArray as $key => $val) { $val = wfMsg($key); if (stripos($val, $search) !== false) { $t = Title::makeTitle(NS_MEDIAWIKI, $key); $qe_url = '<a href="#" onclick="initPopupEdit(\'' . Title::makeTitle(NS_SPECIAL, 'QuickEdit')->getFullURL() . '?type=editform&target=' . $t->getPrefixedURL() . '\') ;">' . $key . '</a>'; $wgOut->addHTML("<tr><td class='mw_lang'>{$lang}</td><td class='mw_key'>{$qe_url}</td><td class='mw_val'>" . htmlspecialchars($val) . "</td></tr>"); } } $dbr = wfGetDB(DB_SLAVE); $res = $dbr->select('page', array('page_title', 'page_namespace'), array('page_namespace' => NS_MEDIAWIKI)); while ($row = $dbr->fetchObject($res)) { $t = Title::makeTitle($row->page_namespace, $row->page_title); if (!$t) { continue; } $r = Revision::newFromTitle($t); if (!$r) { continue; } $val = $r->getText(); if (stripos($val, $search) !== false) { $qe_url = '<a href="#" onclick="initPopupEdit(\'' . Title::makeTitle(NS_SPECIAL, 'QuickEdit')->getFullURL() . '?type=editform&target=' . $t->getPrefixedURL() . '\') ;">' . $row->page_title . '</a>'; $wgOut->addHTML("<tr><td class='mw_lang'>{$lang}</td><td class='mw_key'>{$qe_url}</td><td class='mw_val'>" . htmlspecialchars($val) . "</td></tr>"); } } $wgOut->addHTML("</table>"); } } if ($filename) { // reset messages $messages = array(); require_once $filename; $wgOut->addHTML("<table class='mwmessages'>\n\t\t\t\t\t<tr><td><b>Lang</b></td><td><b>Key</b></td><td><b>Value</b></td></tr>"); $index = 0; foreach ($messages as $lang => $arrs) { foreach ($arrs as $key => $val) { $newval = wfMsg($key); if ($newval != "<{$key}>") { $val = $newval; } $t = Title::makeTitle(NS_MEDIAWIKI, $key); $qe_url = '<a href="#" onclick="initPopupEdit(\'' . Title::makeTitle(NS_SPECIAL, 'QuickEdit')->getFullURL() . '?type=editform&target=' . $t->getPrefixedURL() . '\'); setText(' . $index . ');">' . $key . '</a>'; $wgOut->addHTML("<tr><td class='mw_lang'>{$lang}</td><td class='mw_key'>{$qe_url}</td><td class='mw_val' id='mw_{$index}'>" . htmlspecialchars($val) . "</td></tr>"); $index++; } } $wgOut->addHTML("</table>"); } $wgOut->addHTML("</div><br/><br/><div class='mwmessages'>Or search for a message that's not an extension message:<br/><br/>\n\t\t\t\t<form action='/Special:MWMessages' method='POST' name='mwmessagesform_search'>\n\t\t\t\t<center>\n\t\t\t\t<input type='text' name='mwmessagessearch' value=\"" . htmlspecialchars($wgRequest->getVal('mwmessagessearch')) . "\" style='width:300px;font-size:110%;'>\n\t\t\t\t<input type='submit' value='Search for messages'/>\n\t\t\t\t</center>\n\t\t\t\t</form>\n\t\t\t</div>\n\t\t\t"); $wgOut->addScript(' <script type="text/javascript"> var gAutoSummaryText = "Updating mediawiki message with MWMessages extensions"; var gQuickEditComplete = "' . wfMsg('Quickedit-complete') . '"; var gId = null; var gHTML = null; var mw_request = null; function setIt() { var x = document.getElementById("wpTextbox1"); if (x && x.value == ""){ x.value = gHTML; } else { window.setTimeout("setIt();", 100); } } function mw_handleDecode() { if ( mw_request.readyState == 4 && mw_request.status == 200) { gHTML = mw_request.responseText; setIt(); } } function setText(id) { gId = id; mw_request = sajax_init_object(); var parameters = "html=" + encodeURIComponent(document.getElementById("mw_" + gId).innerHTML); var url = "http://" + window.location.hostname + "/Special:MWMessagesDecode"; mw_request.open("POST", url); mw_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); mw_request.send(parameters); mw_request.onreadystatechange = mw_handleDecode; } </script> <div id="editModalPage"> <div class="editModalBackground" id="editModalBackground"></div> <div class="editModalContainer" id="editModalContainer" style="width: 700px; height: 600px"> <div class="editModalTitle"><span style="float: left;padding-left: 10px;"><strong></strong></span><a onclick="popupEditClose();">X</a></div> <div class="editModalBody"> <div id="article_contents" style="width:680px;height:560px;overflow:auto"> </div> </div> </div> </div>'); }
function getDefinitions() { $data = file_get_contents(dirname(__FILE__) . '/wikimedia-mostused-2011.txt'); $data = str_replace("\r", '', $data); $messages = explode("\n", $data); $contents = Language::getMessagesFor($this->getSourceLanguage()); $definitions = array(); foreach ($messages as $key) { if (isset($contents[$key])) { $definitions[$key] = $contents[$key]; } } return $definitions; }
public function execute() { $params = $this->extractRequestParams(); if (is_null($params['lang'])) { global $wgLang; $langObj = $wgLang; } else { $langObj = Language::factory($params['lang']); } if ($params['enableparser']) { if (!is_null($params['title'])) { $title = Title::newFromText($params['title']); if (!$title) { $this->dieUsageMsg(array('invalidtitle', $params['title'])); } } else { $title = Title::newFromText('API'); } } $prop = array_flip((array) $params['prop']); // Determine which messages should we print if (in_array('*', $params['messages'])) { $message_names = array_keys(Language::getMessagesFor('en')); sort($message_names); $messages_target = $message_names; } else { $messages_target = $params['messages']; } // Filter messages that have the specified prefix // Because we sorted the message array earlier, they will appear in a clump: if (isset($params['prefix'])) { $skip = false; $messages_filtered = array(); foreach ($messages_target as $message) { // === 0: must be at beginning of string (position 0) if (strpos($message, $params['prefix']) === 0) { if (!$skip) { $skip = true; } $messages_filtered[] = $message; } elseif ($skip) { break; } } $messages_target = $messages_filtered; } // Filter messages that contain specified string if (isset($params['filter'])) { $messages_filtered = array(); foreach ($messages_target as $message) { // !== is used because filter can be at the beginning of the string if (strpos($message, $params['filter']) !== false) { $messages_filtered[] = $message; } } $messages_target = $messages_filtered; } // Whether we have any sort of message customisation filtering $customiseFilterEnabled = $params['customised'] !== 'all'; if ($customiseFilterEnabled) { global $wgContLang; $lang = $langObj->getCode(); $customisedMessages = AllmessagesTablePager::getCustomisedStatuses(array_map(array($langObj, 'ucfirst'), $messages_target), $lang, $lang != $wgContLang->getCode()); $customised = $params['customised'] === 'modified'; } // Get all requested messages and print the result $skip = !is_null($params['from']); $useto = !is_null($params['to']); $result = $this->getResult(); foreach ($messages_target as $message) { // Skip all messages up to $params['from'] if ($skip && $message === $params['from']) { $skip = false; } if ($useto && $message > $params['to']) { break; } if (!$skip) { $a = array('name' => $message); $args = array(); if (isset($params['args']) && count($params['args']) != 0) { $args = $params['args']; } if ($customiseFilterEnabled) { $messageIsCustomised = isset($customisedMessages['pages'][$langObj->ucfirst($message)]); if ($customised === $messageIsCustomised) { if ($customised) { $a['customised'] = ''; } } else { continue; } } $msg = wfMessage($message, $args)->inLanguage($langObj); if (!$msg->exists()) { $a['missing'] = ''; } else { // Check if the parser is enabled: if ($params['enableparser']) { $msgString = $msg->title($title)->text(); } else { $msgString = $msg->plain(); } ApiResult::setContent($a, $msgString); if (isset($prop['default'])) { $default = wfMessage($message)->inLanguage($langObj)->useDatabase(false); if (!$default->exists()) { $a['defaultmissing'] = ''; } elseif ($default->plain() != $msgString) { $a['default'] = $default->plain(); } } } $fit = $result->addValue(array('query', $this->getModuleName()), null, $a); if (!$fit) { $this->setContinueEnumParameter('from', $message); break; } } } $result->setIndexedTagName_internal(array('query', $this->getModuleName()), 'message'); }
/** * Not really needed anymore */ function getKeys() { global $wgContLang; if (!$this->mKeys) { $this->mKeys = array(); $allMessages = Language::getMessagesFor('en'); foreach ($allMessages as $key => $value) { $title = $wgContLang->ucfirst($key); array_push($this->mKeys, $title); } } return $this->mKeys; }