[MediaWiki-CVS] SVN: [115431] trunk/php/luasandbox
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115431 Revision: 115431 Author: tstarling Date: 2012-05-25 07:01:18 + (Fri, 25 May 2012) Log Message: --- * Add our own copy of the string library, slightly patched to run hook functions during recursive match() operations. This avoids a request/emergency timeout for e.g. string.rep('x', 100):find('x*y'), which is O(N^2). Patch included. * Include LUA_MASKCOUNT in the hook mask so that the hook will run after each instruction, not just each line. The exploit scenarios for this one are rather arcane since a one-line loop triggers the line hook on each iteration, but it couldn't hurt to fix it. Modified Paths: -- trunk/php/luasandbox/config.m4 trunk/php/luasandbox/library.c trunk/php/luasandbox/php_luasandbox.h trunk/php/luasandbox/timer.c Added Paths: --- trunk/php/luasandbox/luasandbox_lstrlib.c trunk/php/luasandbox/luasandbox_lstrlib.patch Modified: trunk/php/luasandbox/config.m4 === --- trunk/php/luasandbox/config.m4 2012-05-25 00:31:02 UTC (rev 115430) +++ trunk/php/luasandbox/config.m4 2012-05-25 07:01:18 UTC (rev 115431) @@ -39,5 +39,5 @@ PHP_EVAL_LIBLINE($ICU_LIBS, LUASANDBOX_SHARED_LIBADD) PHP_SUBST(LUASANDBOX_SHARED_LIBADD) - PHP_NEW_EXTENSION(luasandbox, alloc.c data_conversion.c library.c luasandbox.c timer.c ustring.c, $ext_shared) + PHP_NEW_EXTENSION(luasandbox, alloc.c data_conversion.c library.c luasandbox.c timer.c ustring.c luasandbox_lstrlib.c, $ext_shared) fi Modified: trunk/php/luasandbox/library.c === --- trunk/php/luasandbox/library.c 2012-05-25 00:31:02 UTC (rev 115430) +++ trunk/php/luasandbox/library.c 2012-05-25 07:01:18 UTC (rev 115431) @@ -79,13 +79,15 @@ // Load some relatively safe standard libraries lua_pushcfunction(L, luaopen_base); lua_call(L, 0, 0); - lua_pushcfunction(L, luaopen_string); - lua_call(L, 0, 0); lua_pushcfunction(L, luaopen_table); lua_call(L, 0, 0); lua_pushcfunction(L, luaopen_math); lua_call(L, 0, 0); + // Install our own string library + lua_pushcfunction(L, luasandbox_open_string); + lua_call(L, 0, 0); + // Remove any globals that aren't in a whitelist. This is mostly to remove // unsafe functions from the base library. lua_pushnil(L); Added: trunk/php/luasandbox/luasandbox_lstrlib.c === --- trunk/php/luasandbox/luasandbox_lstrlib.c (rev 0) +++ trunk/php/luasandbox/luasandbox_lstrlib.c 2012-05-25 07:01:18 UTC (rev 115431) @@ -0,0 +1,880 @@ +/* +** $Id: lstrlib.c,v 1.132.1.5 2010/05/14 15:34:19 roberto Exp $ +** Standard library for string operations and pattern-matching +** See Copyright Notice in lua.h +*/ + + +#include ctype.h +#include stddef.h +#include stdio.h +#include stdlib.h +#include string.h + +#define lstrlib_c +#define LUA_LIB + +#include lua.h + +#include lauxlib.h +#include lualib.h + + +/* macro to `unsign' a character */ +#define uchar(c)((unsigned char)(c)) + + + +static int str_len (lua_State *L) { + size_t l; + luaL_checklstring(L, 1, l); + lua_pushinteger(L, l); + return 1; +} + + +static ptrdiff_t posrelat (ptrdiff_t pos, size_t len) { + /* relative string position: negative means back from end */ + if (pos 0) pos += (ptrdiff_t)len + 1; + return (pos = 0) ? pos : 0; +} + + +static int str_sub (lua_State *L) { + size_t l; + const char *s = luaL_checklstring(L, 1, l); + ptrdiff_t start = posrelat(luaL_checkinteger(L, 2), l); + ptrdiff_t end = posrelat(luaL_optinteger(L, 3, -1), l); + if (start 1) start = 1; + if (end (ptrdiff_t)l) end = (ptrdiff_t)l; + if (start = end) +lua_pushlstring(L, s+start-1, end-start+1); + else lua_pushliteral(L, ); + return 1; +} + + +static int str_reverse (lua_State *L) { + size_t l; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, l); + luaL_buffinit(L, b); + while (l--) luaL_addchar(b, s[l]); + luaL_pushresult(b); + return 1; +} + + +static int str_lower (lua_State *L) { + size_t l; + size_t i; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, l); + luaL_buffinit(L, b); + for (i=0; il; i++) +luaL_addchar(b, tolower(uchar(s[i]))); + luaL_pushresult(b); + return 1; +} + + +static int str_upper (lua_State *L) { + size_t l; + size_t i; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, l); + luaL_buffinit(L, b); + for (i=0; il; i++) +luaL_addchar(b, toupper(uchar(s[i]))); + luaL_pushresult(b); + return 1; +} + +static int str_rep (lua_State *L) { + size_t l; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, l); + int n = luaL_checkint(L, 2); + luaL_buffinit(L, b); + while (n-- 0) +
[MediaWiki-CVS] SVN: [115432] trunk/extensions/OnlineStatus
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115432 Revision: 115432 Author: siebrand Date: 2012-05-25 10:44:21 + (Fri, 25 May 2012) Log Message: --- stylize.php and indentation tweaks. bumped version number. Modified Paths: -- trunk/extensions/OnlineStatus/OnlineStatus.body.php trunk/extensions/OnlineStatus/OnlineStatus.i18n.magic.php trunk/extensions/OnlineStatus/OnlineStatus.js trunk/extensions/OnlineStatus/OnlineStatus.php Modified: trunk/extensions/OnlineStatus/OnlineStatus.body.php === --- trunk/extensions/OnlineStatus/OnlineStatus.body.php 2012-05-25 07:01:18 UTC (rev 115431) +++ trunk/extensions/OnlineStatus/OnlineStatus.body.php 2012-05-25 10:44:21 UTC (rev 115432) @@ -8,13 +8,13 @@ * User: of User_talk: namespace. * @return array ( string status, string username ) or null */ - static function GetUserStatus( $title, $checkShowPref = false ){ - if( is_object( $title ) ){ - if( !$title instanceof Title ) { + static function GetUserStatus( $title, $checkShowPref = false ) { + if ( is_object( $title ) ) { + if ( !$title instanceof Title ) { return null; } - if( !in_array( $title-getNamespace(), array( NS_USER, NS_USER_TALK ) ) ) { + if ( !in_array( $title-getNamespace(), array( NS_USER, NS_USER_TALK ) ) ) { return null; } @@ -26,36 +26,36 @@ $user = User::newFromName( $username ); - if( !$user instanceof User || $user-getId() == 0 ) { + if ( !$user instanceof User || $user-getId() == 0 ) { return null; } - if( $checkShowPref !$user-getOption( 'showonline' ) ) { + if ( $checkShowPref !$user-getOption( 'showonline' ) ) { return null; } - return array( $user-getOption( 'online' ), $username); + return array( $user-getOption( 'online' ), $username ); } /** * Used for AJAX requests */ - static function Ajax( $action, $stat = false ){ + static function Ajax( $action, $stat = false ) { global $wgUser; - if( $wgUser-isAnon() ) { + if ( $wgUser-isAnon() ) { return wfMsgHtml( 'onlinestatus-js-anon' ); } - switch( $action ){ + switch( $action ) { case 'get': $def = $wgUser-getOption( 'online' ); $msg = wfMsgForContentNoTrans( 'onlinestatus-levels' ); $lines = explode( \n, $msg ); $radios = array(); - foreach( $lines as $line ){ - if( substr( $line, 0, 1 ) != '*' ) { + foreach ( $lines as $line ) { + if ( substr( $line, 0, 1 ) != '*' ) { continue; } @@ -69,13 +69,13 @@ return json_encode( $radios ); case 'set': - if( $stat ){ + if ( $stat ) { $dbw = wfGetDB( DB_MASTER ); $dbw-begin(); $actual = $wgUser-getOption( 'online' ); $wgUser-setOption( 'online', $stat ); - if( $actual != $stat ){ + if ( $actual != $stat ) { $wgUser-getUserPage()-invalidateCache(); $wgUser-getTalkPage()-invalidateCache(); } @@ -83,7 +83,7 @@ $wgUser-invalidateCache(); $dbw-commit(); - return wfMsgHtml( 'onlinestatus-js-changed', wfMsgHtml( 'onlinestatus-toggle-'.$stat ) ); + return wfMsgHtml( 'onlinestatus-js-changed', wfMsgHtml( 'onlinestatus-toggle-' . $stat ) ); } else { return wfMsgHtml( 'onlinestatus-js-error', $stat ); } @@ -93,10 +93,10 @@ /** * Hook for ParserFirstCallInit */ - static function ParserFirstCallInit( $parser ){ + static function ParserFirstCallInit( $parser ) { global $wgAllowAnyUserOnlineStatusFunction; - if( $wgAllowAnyUserOnlineStatusFunction ) + if ( $wgAllowAnyUserOnlineStatusFunction )
[MediaWiki-CVS] SVN: [115433] trunk/extensions/OnlineStatusBar
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115433 Revision: 115433 Author: siebrand Date: 2012-05-25 10:46:29 + (Fri, 25 May 2012) Log Message: --- stylize.php. Modified Paths: -- trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.hooks.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.i18n.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.status.php Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php2012-05-25 10:44:21 UTC (rev 115432) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php2012-05-25 10:46:29 UTC (rev 115433) @@ -54,8 +54,8 @@ public function getPossibleErrors() { return array_merge( parent::getPossibleErrors(), array( - array( 'code' = 'unknown', 'info' = User doesn't allow to display user status), - )); + array( 'code' = 'unknown', 'info' = User doesn't allow to display user status ), + ) ); } public function getExamples() { Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php 2012-05-25 10:44:21 UTC (rev 115432) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php 2012-05-25 10:46:29 UTC (rev 115433) @@ -38,11 +38,11 @@ } $user = User::newFromId( 0 ); $user-setName( $title-getBaseText() ); - - if (!($user instanceof User)) { + + if ( !( $user instanceof User ) ) { return false; } - + return $user; } @@ -64,7 +64,7 @@ $user-setName( $username ); // Check if something wrong didn't happen - if ( !($user instanceof User) ) { + if ( !( $user instanceof User ) ) { return false; } @@ -80,10 +80,10 @@ public static function getUserInfoFromTitle( Title $title ) { $user = User::newFromName( $title-getBaseText() ); // check - if (!($user instanceof User)) { + if ( !( $user instanceof User ) ) { return false; } - if ( !self::isValid($user)) { + if ( !self::isValid( $user ) ) { return false; } @@ -100,7 +100,7 @@ // We create an user object using name of user parsed from title $user = User::newFromName( $username ); // Invalid user - if ( !($user instanceof User) ) { + if ( !( $user instanceof User ) ) { return false; } if ( !self::isValid( $user ) ) { @@ -122,7 +122,7 @@ // if so let's create new object if ( $user_type instanceof User ) { $user = $user_type; - } elseif ( is_string( $user_type ) ){ + } elseif ( is_string( $user_type ) ) { $user = User::newFromName( $user_type ); } else { return false; @@ -131,8 +131,8 @@ // check if something weird didn't happen if ( $user instanceof User ) { // purge both pages now - if ( $user-getOption('OnlineStatusBar_active', false) ) { - if ( $user-getOption('OnlineStatusBar_autoupdate', false) == true ) { + if ( $user-getOption( 'OnlineStatusBar_active', false ) ) { + if ( $user-getOption( 'OnlineStatusBar_autoupdate', false ) == true ) { WikiPage::factory( $user-getUserPage() )-doPurge(); WikiPage::factory( $user-getTalkPage() )-doPurge(); } @@ -151,8 +151,8 @@ public static function getTimeoutDate( $checkType = false, $user = false ) { global $wgOnlineStatusBar_AwayTime, $wgOnlineStatusBar_WriteTime, $wgOnlineStatusBar_LogoutTime; - if ($checkType != false) { - switch($checkType) { + if ( $checkType != false ) { + switch( $checkType ) { case ONLINESTATUSBAR_CK_DELAYED: return wfTimestamp( TS_UNIX ) - $wgOnlineStatusBar_WriteTime;
[MediaWiki-CVS] SVN: [115434] trunk/extensions/OnlineStatusBar
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115434 Revision: 115434 Author: siebrand Date: 2012-05-25 11:03:05 + (Fri, 25 May 2012) Log Message: --- Update indentation and some other coding style related thingies. No functional changes. Ping r115429. Modified Paths: -- trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.hooks.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.sql trunk/extensions/OnlineStatusBar/OnlineStatusBar.status.php trunk/extensions/OnlineStatusBar/README Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php2012-05-25 10:46:29 UTC (rev 115433) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.api.php2012-05-25 11:03:05 UTC (rev 115434) @@ -1,9 +1,4 @@ ?php -if ( !defined( 'MEDIAWIKI' ) ) { - echo This is a part of mediawiki and can't be started separately; - die(); -} - /** * Hooks for OnlineStatusBar api's * @@ -18,10 +13,12 @@ public function execute() { $params = $this-extractRequestParams(); $result = OnlineStatusBar::getUserInfoFromString( $params['user'] ); + // if user is IP and we track them if ( User::isIP( $params['user'] ) $result === false ) { $result = OnlineStatusBar::getAnonFromString( $params['user'] ); } + if ( $result === false ) { $ret = 'unknown'; } else { @@ -29,7 +26,8 @@ } $this-getResult()-addValue( - null, $this-getModuleName(), array( 'result' = $ret ) ); + null, $this-getModuleName(), array( 'result' = $ret ) + ); } public function getAllowedParams() { @@ -54,13 +52,13 @@ public function getPossibleErrors() { return array_merge( parent::getPossibleErrors(), array( - array( 'code' = 'unknown', 'info' = User doesn't allow to display user status ), + array( 'code' = 'unknown', 'info' = User doesn't allow to display user status ), ) ); } public function getExamples() { return array( - 'api.php?action=queryprop=onlinestatusonlinestatususer=Petrb', + 'api.php?action=queryprop=onlinestatusonlinestatususer=Petrb', ); } Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php 2012-05-25 10:46:29 UTC (rev 115433) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php 2012-05-25 11:03:05 UTC (rev 115434) @@ -1,9 +1,4 @@ ?php -if ( !defined( 'MEDIAWIKI' ) ) { - echo This is a part of mediawiki and can't be started separately; - die(); -} - /** * Main file of Online status bar extension. * @@ -21,11 +16,9 @@ * return HTML **/ public static function getStatusBarHtml() { - return HTML -div class=onlinestatusbarbody metadata onlinestatusbartop id=status-top + return 'div class=onlinestatusbarbody metadata onlinestatusbartop id=status-top div class=onlinestatusbaricon -/div/div -HTML; +/div/div'; } /** @@ -33,9 +26,11 @@ */ public static function getAnonFromTitle( Title $title ) { global $wgOnlineStatusBarTrackIpUsers; + if ( $wgOnlineStatusBarTrackIpUsers == false ) { return false; } + $user = User::newFromId( 0 ); $user-setName( $title-getBaseText() ); @@ -54,6 +49,7 @@ */ public static function getAnonFromString( $username ) { global $wgOnlineStatusBarTrackIpUsers; + // if user is anon and we don't track them stop if ( $wgOnlineStatusBarTrackIpUsers == false ) { return false; @@ -79,10 +75,12 @@ */ public static function getUserInfoFromTitle( Title $title ) { $user = User::newFromName( $title-getBaseText() ); + // check if ( !( $user instanceof User ) ) { return false; } + if ( !self::isValid( $user ) ) { return false; } @@ -99,10 +97,12 @@ public static function getUserInfoFromString( $username ) { // We create an user object using name of user parsed from title
[MediaWiki-CVS] SVN: [115436] trunk/extensions/OnlineStatusBar
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115436 Revision: 115436 Author: krinkle Date: 2012-05-25 17:56:26 + (Fri, 25 May 2012) Log Message: --- whitespace clean up - Follows-up: * r115434 * r115433 Modified Paths: -- trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.hooks.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.php trunk/extensions/OnlineStatusBar/OnlineStatusBar.status.php Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php 2012-05-25 15:42:15 UTC (rev 115435) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.body.php 2012-05-25 17:56:26 UTC (rev 115436) @@ -46,7 +46,7 @@ * * @param string $username a user * @return array|bool Array containing the status and User object - */ +*/ public static function getAnonFromString( $username ) { global $wgOnlineStatusBarTrackIpUsers; @@ -120,7 +120,7 @@ public static function purge( $user_type ) { // First of all we need to know if we already have user object or just a name // if so let's create new object - if ( $user_type instanceof User ) { + if ( $user_type instanceof User ) { $user = $user_type; } elseif ( is_string( $user_type ) ) { $user = User::newFromName( $user_type ); Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.hooks.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.hooks.php 2012-05-25 15:42:15 UTC (rev 115435) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.hooks.php 2012-05-25 17:56:26 UTC (rev 115436) @@ -210,7 +210,7 @@ } // if user is tracked we need to remove parser cache so that page update when status change - if ( $result !== false ) { + if ( $result !== false ) { $parser-getOutput()-updateCacheExpiry( $wgOnlineStatusBarCacheTime[$result[0]] * 60 ); } Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.php === --- trunk/extensions/OnlineStatusBar/OnlineStatusBar.php2012-05-25 15:42:15 UTC (rev 115435) +++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.php2012-05-25 17:56:26 UTC (rev 115436) @@ -27,23 +27,23 @@ $wgExtensionMessagesFiles['OnlineStatusBar'] = $dir/OnlineStatusBar.i18n.php; $wgExtensionMessagesFiles['OnlineStatusBarMagic'] = $dir/OnlineStatusBar.i18n.magic.php; -$wgResourceModules['ext.OnlineStatusBar'] = array ( - 'skinStyles' = array ( - 'default' = array ( 'resources/OnlineStatusBarDefault.css' ), - 'chick' = array ( 'resources/OnlineStatusBarChick.css' ), - 'vector' = array ( 'resources/OnlineStatusBarVector.css' ), - 'modern' = array ( 'resources/OnlineStatusBarModern.css' ), - 'standard' = array ( 'resources/OnlineStatusBarStandard.css' ), - 'monobook' = array ( 'resources/OnlineStatusBarMonobook.css' ), - 'simple' = array ( 'resources/OnlineStatusBarSimple.css' ), - 'cologneblue' = array ( 'resources/OnlineStatusBarCologneBlue.css' ), - 'nostalgia' = array ( 'resources/OnlineStatusBarNostalgia.css' ), +$wgResourceModules['ext.OnlineStatusBar'] = array( + 'skinStyles' = array( + 'default' = array( 'resources/OnlineStatusBarDefault.css' ), + 'chick' = array( 'resources/OnlineStatusBarChick.css' ), + 'vector' = array( 'resources/OnlineStatusBarVector.css' ), + 'modern' = array( 'resources/OnlineStatusBarModern.css' ), + 'standard' = array( 'resources/OnlineStatusBarStandard.css' ), + 'monobook' = array( 'resources/OnlineStatusBarMonobook.css' ), + 'simple' = array( 'resources/OnlineStatusBarSimple.css' ), + 'cologneblue' = array( 'resources/OnlineStatusBarCologneBlue.css' ), + 'nostalgia' = array( 'resources/OnlineStatusBarNostalgia.css' ), ), 'styles' = 'resources/OnlineStatusBar.css', 'scripts' = 'resources/ext.onlinestatusbar.js', 'localBasePath' = dirname ( __FILE__ ), 'remoteExtPath' = 'OnlineStatusBar', - 'messages' = array ( + 'messages' = array( 'onlinestatusbar-status-offline', 'onlinestatusbar-status-online', 'onlinestatusbar-status-unknown', Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.status.php
[MediaWiki-CVS] SVN: [115437] trunk/extensions
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115437 Revision: 115437 Author: raymond Date: 2012-05-25 20:22:40 + (Fri, 25 May 2012) Log Message: --- Localisation updates from http://translatewiki.net. Modified Paths: -- trunk/extensions/AddMediaWizard/MwEmbedModules/AddMedia/AddMedia.i18n.php trunk/extensions/ContributionScores/ContributionScores.i18n.php trunk/extensions/PageSchemas/PageSchemas.i18n.php trunk/extensions/ShowProcesslist/ShowProcesslist.i18n.php trunk/extensions/UserMerge/UserMerge.i18n.php trunk/extensions/WikiForum/WikiForum.i18n.php trunk/extensions/WikiSync/WikiSync.i18n.php trunk/extensions/WikiTweet/WikiTweet.i18n.php trunk/extensions/Wikidata/Wikidata.i18n.php trunk/extensions/Wikilog/Wikilog.i18n.php trunk/extensions/YouTubeAuthSub/YouTubeAuthSub.i18n.php Modified: trunk/extensions/AddMediaWizard/MwEmbedModules/AddMedia/AddMedia.i18n.php === --- trunk/extensions/AddMediaWizard/MwEmbedModules/AddMedia/AddMedia.i18n.php 2012-05-25 17:56:26 UTC (rev 115436) +++ trunk/extensions/AddMediaWizard/MwEmbedModules/AddMedia/AddMedia.i18n.php 2012-05-25 20:22:40 UTC (rev 115437) @@ -1659,7 +1659,7 @@ 'mwe-am-results_desc' = '$1 rê $2î neticeyî', 'mwe-am-results_desc_total' = 'qey $1, $2, $3 neticeyi', 'mwe-am-results_next' = 'aver', - 'mwe-am-results_prev' = 'apey', + 'mwe-am-results_prev' = 'verên', 'mwe-am-no_results' = 'qey b$1/bi neticeya cıgêrayişi çina', 'mwe-upload_tab' = 'Dosya bar ke', 'mwe-am-layout' = 'ca gınayişi:', Modified: trunk/extensions/ContributionScores/ContributionScores.i18n.php === --- trunk/extensions/ContributionScores/ContributionScores.i18n.php 2012-05-25 17:56:26 UTC (rev 115436) +++ trunk/extensions/ContributionScores/ContributionScores.i18n.php 2012-05-25 20:22:40 UTC (rev 115437) @@ -422,6 +422,11 @@ */ $messages['diq'] = array( 'contributionscores' = 'Skore iştıraxkara', + 'contributionscores-info' = Skora hesab kerdış: +*Vurnayışo ke biyo herg pela sera (1) puan +*(Vurnayışa pêron sera) - (Babeta pelan pêro) * karyena 2 'ınê karerêçi +Skorê ke ewna benê hesab, amariya vurnayışan u aredê babetiya vurnayışan heta graney deyêna ser. +Esasin de na skor, ferzi misal çend vurnayış pela sero esto se a pela hend qeliteyına u ey heta sencêna., ); /** Lower Sorbian (Dolnoserbski) Modified: trunk/extensions/PageSchemas/PageSchemas.i18n.php === --- trunk/extensions/PageSchemas/PageSchemas.i18n.php 2012-05-25 17:56:26 UTC (rev 115436) +++ trunk/extensions/PageSchemas/PageSchemas.i18n.php 2012-05-25 20:22:40 UTC (rev 115437) @@ -731,6 +731,13 @@ 'generatepages' = 'Создание страниц', ); +/** Sakha (Саха тыла) + * @author HalanTul + */ +$messages['sah'] = array( + 'generatepages' = 'Сирэйдэри айыы', +); + /** Slovenian (Slovenščina) * @author Dbc334 */ Modified: trunk/extensions/ShowProcesslist/ShowProcesslist.i18n.php === --- trunk/extensions/ShowProcesslist/ShowProcesslist.i18n.php 2012-05-25 17:56:26 UTC (rev 115436) +++ trunk/extensions/ShowProcesslist/ShowProcesslist.i18n.php 2012-05-25 20:22:40 UTC (rev 115437) @@ -678,7 +678,7 @@ $messages['mk'] = array( 'showprocesslist' = 'Прикажи список на процеси', 'showprocesslist-desc' = 'Прикажи го изводот од наредбата „[[Special:ShowProcesslist|SHOW FULL PROCESSLIST]]“', - 'showprocesslist-id' = 'Id', + 'showprocesslist-id' = 'Назнака', 'showprocesslist-user' = 'Корисник', 'showprocesslist-host' = 'Домаќин', 'showprocesslist-db' = 'База на податоци', Modified: trunk/extensions/UserMerge/UserMerge.i18n.php === --- trunk/extensions/UserMerge/UserMerge.i18n.php 2012-05-25 17:56:26 UTC (rev 115436) +++ trunk/extensions/UserMerge/UserMerge.i18n.php 2012-05-25 20:22:40 UTC (rev 115437) @@ -2110,6 +2110,7 @@ 'usermerge-logpagetext' = 'ఇది వాడుకరి విలీనాల చిట్టా.', 'usermerge-noselfdelete' = 'మిమ్మల్ని మీరే తొలగించుకోలేరు లేదా మీలో విలీనం కాలేరు!', 'right-usermerge' = 'వాడుకరులను విలీనం చేయగలగడం', + 'usermerge-move-log' = '[[User:$1|$1]] పేరును [[User:$2|$2]]కు మార్చేప్పుడు పేజీని ఆటోమాటిగ్గా తరలించాం', ); /** Tajik (Cyrillic script) (Тоҷикӣ) Modified: trunk/extensions/WikiForum/WikiForum.i18n.php === --- trunk/extensions/WikiForum/WikiForum.i18n.php 2012-05-25 17:56:26 UTC (rev 115436) +++ trunk/extensions/WikiForum/WikiForum.i18n.php 2012-05-25 20:22:40 UTC (rev 115437) @@ -479,6 +479,19 @@