diff --git a/.htaccess.dist b/.htaccess.dist index aa2437b957ec2d17d6502214ba2ba5e708ecb476..c90abdc800d1e5954e4700528892880a77ca7cb3 100644 --- a/.htaccess.dist +++ b/.htaccess.dist @@ -15,7 +15,16 @@ ## $conf['userewrite'] = 1 - not needed for rewrite mode 2 #RewriteEngine on # -## Not all installations will require the following line. If you do, +#RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] +#RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] +#RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] +#RewriteRule ^$ doku.php [L] +#RewriteCond %{REQUEST_FILENAME} !-f +#RewriteCond %{REQUEST_FILENAME} !-d +#RewriteRule (.*) doku.php?id=$1 [QSA,L] +#RewriteRule ^index.php$ doku.php +# +## Not all installations will require the following line. If you do, ## change "/dokuwiki" to the path to your dokuwiki directory relative ## to your document root. #RewriteBase /dokuwiki @@ -25,12 +34,3 @@ ## rules if your server setup allows HTTPS. #RewriteCond %{HTTPS} !=on #RewriteRule ^lib/exe/xmlrpc.php$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] -# -#RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] -#RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] -#RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] -#RewriteRule ^$ doku.php [L] -#RewriteCond %{REQUEST_FILENAME} !-f -#RewriteCond %{REQUEST_FILENAME} !-d -#RewriteRule (.*) doku.php?id=$1 [QSA,L] -#RewriteRule ^index.php$ doku.php diff --git a/_test/tests/inc/httpclient_http.test.php b/_test/tests/inc/httpclient_http.test.php index 9959a1f069d366aecd38e19187e5eb5ed236ebd4..252eb6b65d141b9a05280b12ad2611ba95a0b1fe 100644 --- a/_test/tests/inc/httpclient_http.test.php +++ b/_test/tests/inc/httpclient_http.test.php @@ -131,6 +131,19 @@ class httpclient_http_test extends DokuWikiTest { $this->assertLessThanOrEqual(251,strlen($data)); } + /** + * @group internet + */ + function test_maxbodyok(){ + $http = new HTTPClient(); + $http->max_bodysize = 500*1024; + $data = $http->get($this->server.'/stream/5'); + $this->assertTrue($data !== false, 'HTTP response'); + $http->max_bodysize_abort = false; + $data = $http->get($this->server.'/stream/5'); + $this->assertTrue($data !== false, 'HTTP response'); + } + /** * @group internet */ diff --git a/_test/tests/inc/media_get_from_url.test.php b/_test/tests/inc/media_get_from_url.test.php new file mode 100644 index 0000000000000000000000000000000000000000..3903b8a05e0a08e1e9a143843a8fad480b2b0468 --- /dev/null +++ b/_test/tests/inc/media_get_from_url.test.php @@ -0,0 +1,80 @@ +<?php + +class media_get_from_url_test extends DokuWikiTest { + + /** + * @group internet + */ + public function test_cache(){ + global $conf; + $conf['fetchsize'] = 500*1024; //500kb + + + $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',-1); + $this->assertTrue($local !== false); + $this->assertFileExists($local); + + // remember time stamp + $time = filemtime($local); + clearstatcache(false, $local); + sleep(1); + + // fetch again and make sure we got a cache file + $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',-1); + clearstatcache(false, $local); + $this->assertTrue($local !== false); + $this->assertFileExists($local); + $this->assertEquals($time, filemtime($local)); + + unlink($local); + } + + /** + * @group internet + */ + public function test_nocache(){ + global $conf; + $conf['fetchsize'] = 500*1024; //500kb + + $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',0); + $this->assertFalse($local); + } + + /** + * @group internet + * @group slow + */ + public function test_recache(){ + global $conf; + $conf['fetchsize'] = 500*1024; //500kb + + + $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',5); + $this->assertTrue($local !== false); + $this->assertFileExists($local); + + // remember time stamp + $time = filemtime($local); + clearstatcache(false, $local); + sleep(1); + + // fetch again and make sure we got a cache file + $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',5); + clearstatcache(false, $local); + $this->assertTrue($local !== false); + $this->assertFileExists($local); + $this->assertEquals($time, filemtime($local)); + + clearstatcache(false, $local); + sleep(6); + + // fetch again and make sure we got a new file + $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',5); + clearstatcache(false, $local); + $this->assertTrue($local !== false); + $this->assertFileExists($local); + $this->assertNotEquals($time, filemtime($local)); + + unlink($local); + } +} \ No newline at end of file diff --git a/data/_dummy b/data/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/_dummy +++ b/data/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/attic/_dummy b/data/attic/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/attic/_dummy +++ b/data/attic/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/cache/_dummy b/data/cache/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/cache/_dummy +++ b/data/cache/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/index/_dummy b/data/index/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/index/_dummy +++ b/data/index/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/locks/_dummy b/data/locks/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/locks/_dummy +++ b/data/locks/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/media_attic/_dummy b/data/media_attic/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/media_attic/_dummy +++ b/data/media_attic/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/media_meta/_dummy b/data/media_meta/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/media_meta/_dummy +++ b/data/media_meta/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/meta/_dummy b/data/meta/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/meta/_dummy +++ b/data/meta/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/data/tmp/_dummy b/data/tmp/_dummy index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e492265be45ad356e1f64944d147dce9e2f78b81 100644 --- a/data/tmp/_dummy +++ b/data/tmp/_dummy @@ -0,0 +1 @@ +You can safely delete this file. \ No newline at end of file diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 51c1de875f2e253e82a000da4b9d4573a4ccc829..772b580b2f91296ad4f084a0082e70e0ee2ad227 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -150,6 +150,7 @@ class HTTPClient { * * @param string $url The URL to fetch * @param bool $sloppy304 Return body on 304 not modified + * @return bool|string response body, false on error * @author Andreas Gohr <andi@splitbrain.org> */ function get($url,$sloppy304=false){ @@ -170,6 +171,7 @@ class HTTPClient { * @param string $url The URL to fetch * @param array $data Associative array of parameters * @param bool $sloppy304 Return body on 304 not modified + * @return bool|string response body, false on error * @author Andreas Gohr <andi@splitbrain.org> */ function dget($url,$data,$sloppy304=false){ @@ -187,6 +189,9 @@ class HTTPClient { * * Returns the resulting page or false on an error; * + * @param string $url The URL to fetch + * @param array $data Associative array of parameters + * @return bool|string response body, false on error * @author Andreas Gohr <andi@splitbrain.org> */ function post($url,$data){ @@ -215,6 +220,9 @@ class HTTPClient { $this->start = $this->_time(); $this->error = ''; $this->status = 0; + $this->status = 0; + $this->resp_body = ''; + $this->resp_headers = array(); // don't accept gzip if truncated bodies might occur if($this->max_bodysize && @@ -440,9 +448,31 @@ class HTTPClient { $byte = $this->_readData($socket, 2, 'chunk'); // read trailing \r\n } } while ($chunk_size && !$abort); - }elseif($this->max_bodysize){ - // read just over the max_bodysize - $r_body = $this->_readData($socket, $this->max_bodysize+1, 'response', true); + }elseif(isset($this->resp_headers['content-length']) && !isset($this->resp_headers['transfer-encoding'])){ + /* RFC 2616 + * If a message is received with both a Transfer-Encoding header field and a Content-Length + * header field, the latter MUST be ignored. + */ + + // read up to the content-length or max_bodysize + // for keep alive we need to read the whole message to clean up the socket for the next read + if(!$this->keep_alive && $this->max_bodysize && $this->max_bodysize < $this->resp_headers['content-length']){ + $length = $this->max_bodysize; + }else{ + $length = $this->resp_headers['content-length']; + } + + $r_body = $this->_readData($socket, $length, 'response (content-length limited)', true); + }else{ + // read entire socket + $r_size = 0; + while (!feof($socket)) { + $r_body .= $this->_readData($socket, 4096, 'response (unlimited)', true); + } + } + + // recheck body size, we might had to read the whole body, so we abort late or trim here + if($this->max_bodysize){ if(strlen($r_body) > $this->max_bodysize){ if ($this->max_bodysize_abort) { throw new HTTPClientException('Allowed response size exceeded'); @@ -450,16 +480,6 @@ class HTTPClient { $this->error = 'Allowed response size exceeded'; } } - }elseif(isset($this->resp_headers['content-length']) && - !isset($this->resp_headers['transfer-encoding'])){ - // read up to the content-length - $r_body = $this->_readData($socket, $this->resp_headers['content-length'], 'response', true); - }else{ - // read entire socket - $r_size = 0; - while (!feof($socket)) { - $r_body .= $this->_readData($socket, 4096, 'response', true); - } } } catch (HTTPClientException $err) { @@ -502,8 +522,8 @@ class HTTPClient { * * Protocol, Servername and Port will be stripped from the request URL when a successful CONNECT happened * - * @param ressource &$socket - * @param string &$requesturl + * @param resource &$socket + * @param string &$requesturl * @return bool true if a tunnel was established */ function _ssltunnel(&$socket, &$requesturl){ @@ -543,9 +563,10 @@ class HTTPClient { /** * Safely write data to a socket * - * @param handle $socket An open socket handle - * @param string $data The data to write - * @param string $message Description of what is being read + * @param resource $socket An open socket handle + * @param string $data The data to write + * @param string $message Description of what is being read + * @throws HTTPClientException * @author Tom N Harris <tnharris@whoopdedo.org> */ function _sendData($socket, $data, $message) { @@ -585,10 +606,12 @@ class HTTPClient { * Reads up to a given number of bytes or throws an exception if the * response times out or ends prematurely. * - * @param handle $socket An open socket handle in non-blocking mode - * @param int $nbytes Number of bytes to read - * @param string $message Description of what is being read - * @param bool $ignore_eof End-of-file is not an error if this is set + * @param resource $socket An open socket handle in non-blocking mode + * @param int $nbytes Number of bytes to read + * @param string $message Description of what is being read + * @param bool $ignore_eof End-of-file is not an error if this is set + * @throws HTTPClientException + * @return string * @author Tom N Harris <tnharris@whoopdedo.org> */ function _readData($socket, $nbytes, $message, $ignore_eof = false) { @@ -605,8 +628,8 @@ class HTTPClient { $time_used = $this->_time() - $this->start; if ($time_used > $this->timeout) throw new HTTPClientException( - sprintf('Timeout while reading %s (%.3fs)', $message, $time_used), - -100); + sprintf('Timeout while reading %s after %d bytes (%.3fs)', $message, + strlen($r_data), $time_used), -100); if(feof($socket)) { if(!$ignore_eof) throw new HTTPClientException("Premature End of File (socket) while reading $message"); @@ -635,8 +658,10 @@ class HTTPClient { * * Always returns a complete line, including the terminating \n. * - * @param handle $socket An open socket handle in non-blocking mode - * @param string $message Description of what is being read + * @param resource $socket An open socket handle in non-blocking mode + * @param string $message Description of what is being read + * @throws HTTPClientException + * @return string * @author Tom N Harris <tnharris@whoopdedo.org> */ function _readLine($socket, $message) { @@ -669,10 +694,26 @@ class HTTPClient { /** * print debug info * + * Uses _debug_text or _debug_html depending on the SAPI name + * * @author Andreas Gohr <andi@splitbrain.org> */ function _debug($info,$var=null){ if(!$this->debug) return; + if(php_sapi_name() == 'cli'){ + $this->_debug_text($info, $var); + }else{ + $this->_debug_html($info, $var); + } + } + + /** + * print debug info as HTML + * + * @param $info + * @param null $var + */ + function _debug_html($info, $var=null){ print '<b>'.$info.'</b> '.($this->_time() - $this->start).'s<br />'; if(!is_null($var)){ ob_start(); @@ -683,6 +724,18 @@ class HTTPClient { } } + /** + * prints debug info as plain text + * + * @param $info + * @param null $var + */ + function _debug_text($info, $var=null){ + print '*'.$info.'* '.($this->_time() - $this->start)."s\n"; + if(!is_null($var)) print_r($var); + print "\n-----------------------------------------------\n"; + } + /** * Return current timestamp in microsecond resolution */ @@ -797,6 +850,8 @@ class HTTPClient { /** * Generates a unique identifier for a connection. * + * @param string $server + * @param string $port * @return string unique identifier */ function _uniqueConnectionId($server, $port) { diff --git a/inc/Mailer.class.php b/inc/Mailer.class.php index f1492be9bc6b09522ae0f49ec694166b40965a8b..f87d7dd84b38842c75e20d92486842717ad63a50 100644 --- a/inc/Mailer.class.php +++ b/inc/Mailer.class.php @@ -51,7 +51,7 @@ class Mailer { $this->allowhtml = (bool)$conf['htmlmail']; // add some default headers for mailfiltering FS#2247 - $this->setHeader('X-Mailer', 'DokuWiki '.getVersion()); + $this->setHeader('X-Mailer', 'DokuWiki'); $this->setHeader('X-DokuWiki-User', $_SERVER['REMOTE_USER']); $this->setHeader('X-DokuWiki-Title', $conf['title']); $this->setHeader('X-DokuWiki-Server', $server); diff --git a/inc/actions.php b/inc/actions.php index e0ad908b74c39472ca274f3ec8f23f317fcae760..da3414eb203dd9c939029bd5592bb831ae1385d4 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -172,7 +172,7 @@ function act_dispatch(){ $evt->advise_after(); // Make sure plugs can handle 'denied' if($conf['send404'] && $ACT == 'denied') { - header('HTTP/1.0 403 Forbidden'); + http_status(403); } unset($evt); @@ -658,7 +658,7 @@ function act_sitemap($act) { global $conf; if ($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) { - header("HTTP/1.0 404 Not Found"); + http_status(404); print "Sitemap generation is disabled."; exit; } @@ -690,7 +690,7 @@ function act_sitemap($act) { exit; } - header("HTTP/1.0 500 Internal Server Error"); + http_status(500); print "Could not read the sitemap file - bad permissions?"; exit; } diff --git a/inc/auth.php b/inc/auth.php index 7f427bd8d14f5390b245344608a79c59f96f0b82..9566a26157e71ddd07948555bdb1c76587e72fe5 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -267,7 +267,7 @@ function auth_login($user, $pass, $sticky = false, $silent = false) { function auth_validateToken($token) { if(!$token || $token != $_SESSION[DOKU_COOKIE]['auth']['token']) { // bad token - header("HTTP/1.0 401 Unauthorized"); + http_status(401); print 'Invalid auth token - maybe the session timed out'; unset($_SESSION[DOKU_COOKIE]['auth']['token']); // no second chance exit; diff --git a/inc/html.php b/inc/html.php index a48f18bff89a17dff863ceb9f2d9efd649798a9e..c2723bcebda5db93d873f7e42fea83cb97eb1600 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1473,7 +1473,7 @@ function html_edit(){ } ?> <div class="editBox"> - <div class="toolbar"> + <div class="toolbar group"> <div id="draft__status"><?php if(!empty($INFO['draft'])) echo $lang['draftdate'].' '.dformat();?></div> <div id="tool__bar"><?php if ($wr && $data['media_manager']){?><a href="<?php echo DOKU_BASE?>lib/exe/mediamanager.php?ns=<?php echo $INFO['namespace']?>" target="_blank"><?php echo $lang['mediaselect'] ?></a><?php }?></div> @@ -1636,11 +1636,16 @@ function html_admin(){ } // data security check - // @todo: could be checked and only displayed if $conf['savedir'] is under the web root - echo '<a style="border:none; float:right;" - href="http://www.dokuwiki.org/security#web_access_security"> - <img src="data/security.png" alt="Your data directory seems to be protected properly." - onerror="this.parentNode.style.display=\'none\'" /></a>'; + // simple check if the 'savedir' is relative and accessible when appended to DOKU_URL + // it verifies either: + // 'savedir' has been moved elsewhere, or + // has protection to prevent the webserver serving files from it + if (substr($conf['savedir'],0,2) == './'){ + echo '<a style="border:none; float:right;" + href="http://www.dokuwiki.org/security#web_access_security"> + <img src="'.DOKU_URL.$conf['savedir'].'/security.png" alt="Your data directory seems to be protected properly." + onerror="this.parentNode.style.display=\'none\'" /></a>'; + } print p_locale_xhtml('admin'); diff --git a/inc/httputils.php b/inc/httputils.php index 4ba287eb50d513764cdfd6f20e87e6da061e21df..d3f3cdde279e731d7e570679167f8f0baa6e225e 100644 --- a/inc/httputils.php +++ b/inc/httputils.php @@ -250,6 +250,11 @@ function http_cached_finish($file, $content) { } } +/** + * Fetches raw, unparsed POST data + * + * @return string + */ function http_get_raw_post_data() { static $postData = null; if ($postData === null) { @@ -257,3 +262,69 @@ function http_get_raw_post_data() { } return $postData; } + +/** + * Set the HTTP response status and takes care of the used PHP SAPI + * + * Inspired by CodeIgniter's set_status_header function + * + * @param int $code + * @param string $text + */ +function http_status($code = 200, $text = '') { + static $stati = array( + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 307 => 'Temporary Redirect', + + 400 => 'Bad Request', + 401 => 'Unauthorized', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported' + ); + + if($text == '' && isset($stati[$code])) { + $text = $stati[$code]; + } + + $server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : false; + + if(substr(php_sapi_name(), 0, 3) == 'cgi') { + header("Status: {$code} {$text}", true); + } elseif($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0') { + header($server_protocol." {$code} {$text}", true, $code); + } else { + header("HTTP/1.1 {$code} {$text}", true, $code); + } +} diff --git a/inc/io.php b/inc/io.php index b4da7d635ce4f0a1592d06827d0be6f6045cc665..5ecc79703a2d352dfc7c9d551eedfdcc756bd5c6 100644 --- a/inc/io.php +++ b/inc/io.php @@ -474,6 +474,7 @@ function io_download($url,$file,$useAttachment=false,$defaultName='',$maxSize=20 $http = new DokuHTTPClient(); $http->max_bodysize = $maxSize; $http->timeout = 25; //max. 25 sec + $http->keep_alive = false; // we do single ops here, no need for keep-alive $data = $http->get($url); if(!$data) return false; diff --git a/inc/lang/af/lang.php b/inc/lang/af/lang.php index 6de891a63da6f6079c610aff5613ede2bed877eb..ab8e5177b2781592f9057eeb0165d0ae3a0aa0ae 100644 --- a/inc/lang/af/lang.php +++ b/inc/lang/af/lang.php @@ -55,7 +55,7 @@ $lang['current'] = 'huidige'; $lang['line'] = 'Streak'; $lang['youarehere'] = 'Jy is hier'; $lang['by'] = 'by'; -$lang['restored'] = 'Het terug gegaan na vroeëre weergawe'; +$lang['restored'] = 'Het terug gegaan na vroeëre weergawe (%s)'; $lang['summary'] = 'Voorskou'; $lang['qb_bold'] = 'Vetdruk'; $lang['qb_italic'] = 'Skuinsdruk'; diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 4928b3dbdf925e8b85bc4358179a68b93ff1b452..5b72e0a51aed6204b033252064b5dd0b317fa6c9 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -181,7 +181,7 @@ $lang['lastmod'] = 'آخر تعديل'; $lang['by'] = 'بواسطة'; $lang['deleted'] = 'ØØ°Ùت'; $lang['created'] = 'اÙنشئت'; -$lang['restored'] = 'استعيدت نسخة قديمة'; +$lang['restored'] = 'استعيدت نسخة قديمة (%s)'; $lang['external_edit'] = 'ØªØØ±ÙŠØ± خارجي'; $lang['summary'] = 'ملخص Ø§Ù„ØªØØ±ÙŠØ±'; $lang['noflash'] = 'ØªØØªØ§Ø¬ إلى<a href="http://www.adobe.com/products/flashplayer/">ملØÙ‚ Ùلاش أدوبي</a> لعرض هذا Ø§Ù„Ù…ØØªÙˆÙ‰.'; @@ -258,8 +258,6 @@ $lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك'; $lang['subscr_m_subscribe'] = 'اشترك'; $lang['subscr_m_receive'] = 'استقبال'; $lang['subscr_style_every'] = 'بريدا على كل تغيير'; -$lang['subscr_style_digest'] = 'بريد ملخص عن تغييرات كل ØµÙØØ©'; -$lang['subscr_style_list'] = 'قائمة Ø¨Ø§Ù„ØµÙØØ§Øª المتغيرة منذ آخر بريد'; $lang['authmodfailed'] = 'إعدادات ØªØµØ±ÙŠØ ÙØ§Ø³Ø¯Ø©ØŒ يرجى مراسلة المدير.'; $lang['authtempfail'] = 'ØªØµØ±ÙŠØ Ø§Ù„Ù…Ø´ØªØ±Ùƒ غير Ù…ØªÙˆÙØ± مؤقتاً، إن استمرت هذه Ø§Ù„ØØ§Ù„Ø© يرجى مراسلة المدير'; $lang['authpwdexpire'] = 'ستنتهي صلاØÙŠØ© كلمة السر ÙÙŠ %d . عليك بتغييرها سريعا.'; diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php index 6df15a83ec4820651bbcc7df3ea0da24ef85a0b9..5084d9f604a8b9959fde905247697ab0e1587415 100644 --- a/inc/lang/az/lang.php +++ b/inc/lang/az/lang.php @@ -136,7 +136,7 @@ $lang['lastmod'] = 'Son dÉ™yiÅŸiklÉ™r'; $lang['by'] = ' KimdÉ™n'; $lang['deleted'] = 'silinib'; $lang['created'] = 'yaranıb'; -$lang['restored'] = 'köhnÉ™ versiya qaytarıldı'; +$lang['restored'] = 'köhnÉ™ versiya qaytarıldı (%s)'; $lang['external_edit'] = 'bayırdan dÉ™yiÅŸik'; $lang['summary'] = 'DÉ™yiÅŸiklÉ™r xülasÉ™si'; $lang['noflash'] = 'Bu mÉ™zmuna baxmaq üçün <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> tÉ™lÉ™b olunur.'; diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 47d83c62f6af452846a6c2b94fabeacbf57c9da4..3c0a17a720e1773b013d725cd6e00fbac193561d 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -190,7 +190,7 @@ $lang['lastmod'] = 'ПоÑледна промÑна'; $lang['by'] = 'от'; $lang['deleted'] = 'изтрита'; $lang['created'] = 'Ñъздадена'; -$lang['restored'] = 'възÑтановена предишна верÑиÑ'; +$lang['restored'] = 'възÑтановена предишна верÑÐ¸Ñ (%s)'; $lang['external_edit'] = 'външна редакциÑ'; $lang['summary'] = 'Обобщение'; $lang['noflash'] = 'Ðеобходим е <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> за изобразÑване на Ñъдържанието.'; diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index 532f6c73d925f1c5f804469698cbfed0731c6f2b..6e7438f532bb2b3c5a8b3adaf2f03a15579ce6c8 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -137,7 +137,7 @@ $lang['lastmod'] = 'Última modificació el'; $lang['by'] = 'per'; $lang['deleted'] = 'borrat'; $lang['created'] = 'creat'; -$lang['restored'] = 'restaurada l\'última versió'; +$lang['restored'] = 'restaurada l\'última versió (%s)'; $lang['external_edit'] = 'edició externa'; $lang['summary'] = 'Editar sumari'; $lang['noflash'] = 'Necessita el <a href="http://www.adobe.com/products/flashplayer/">plúgin d\'Adobe Flash</a> per a vore este contingut.'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index cb2b64686bb0c7912cd9887f62be02927a0ae156..a429dc06af403144b8df36e8ef7acb2b2354d5e0 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -180,7 +180,7 @@ $lang['lastmod'] = 'Darrera modificació'; $lang['by'] = 'per'; $lang['deleted'] = 'suprimit'; $lang['created'] = 'creat'; -$lang['restored'] = 's\'ha restaurat una versió anterior'; +$lang['restored'] = 's\'ha restaurat una versió anterior %s'; $lang['external_edit'] = 'edició externa'; $lang['summary'] = 'Resum d\'edició'; $lang['noflash'] = 'Per a visualitzar aquest contingut necessiteu el <a href="http://www.adobe.com/products/flashplayer/">connector d\'Adobe Flash</a>.'; diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index af94424ac69d923d7db0773b59d6dacf73e60471..f0b8f3ba41fd8bab1ce572c4c4c56bc1dd4c8061 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -188,7 +188,7 @@ $lang['lastmod'] = 'Poslednà úprava'; $lang['by'] = 'autor:'; $lang['deleted'] = 'odstranÄ›no'; $lang['created'] = 'vytvoÅ™eno'; -$lang['restored'] = 'stará verze byla obnovena'; +$lang['restored'] = 'stará verze byla obnovena (%s)'; $lang['external_edit'] = 'upraveno mimo DokuWiki'; $lang['summary'] = 'Komentář k úpravám'; $lang['noflash'] = 'Pro pÅ™ehránà obsahu potÅ™ebujete <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index f132c133b7a2206e305e65554fab83ed4e61fc20..022de81272c22a4d06dff78a9b29b9146d55d2b6 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -188,7 +188,7 @@ $lang['lastmod'] = 'Sidst ændret'; $lang['by'] = 'af'; $lang['deleted'] = 'slettet'; $lang['created'] = 'oprettet'; -$lang['restored'] = 'gammel udgave reetableret'; +$lang['restored'] = 'gammel udgave reetableret (%s)'; $lang['external_edit'] = 'ekstern redigering'; $lang['summary'] = 'Redigerings resumé'; $lang['noflash'] = 'Den <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> er nødvendig til at vise denne indehold.'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 55b70074fcf5ba51f0763b1213be82b72c839cdd..0fe343026e40c76e3decb7b5d6831bc13111794b 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -148,7 +148,6 @@ $lang['uploadsucc'] = 'Επιτυχής φόÏτωση'; $lang['uploadfail'] = 'Η μεταφόÏτωση απÎτυχε. Πιθανόν αυτό να οφείλεται στις Ïυθμίσεις Ï€Ïόσβασης του αÏχείου.'; $lang['uploadwrong'] = 'Η μεταφόÏτωση δεν Îγινε δεκτή. Δεν επιτÏÎπονται αÏχεία Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… Ï„Ïπου!'; $lang['uploadexist'] = 'Το αÏχείο ήδη υπάÏχει. Δεν Îγινε καμία αλλαγή.'; -$lang['uploadbadcontent'] = 'Το πεÏιεχόμενο του αÏχείου δεν ταιÏιάζει με την επÎκτασή του.'; $lang['uploadspam'] = 'Η μεταφόÏτωση ακυÏώθηκε από το φίλτÏο spam.'; $lang['uploadxss'] = 'Η μεταφόÏτωση ακυÏώθηκε λόγω Ï€Î¹Î¸Î±Î½Î¿Ï ÎµÏ€Î¹ÎºÎ¯Î½Î´Ï…Î½Î¿Ï… πεÏιεχομÎνου.'; $lang['uploadsize'] = 'Το αÏχείο ήταν Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿. (μÎγιστο %s)'; @@ -184,7 +183,7 @@ $lang['lastmod'] = 'Τελευταία Ï„Ïοποποίηση'; $lang['by'] = 'από'; $lang['deleted'] = 'διαγÏάφηκε'; $lang['created'] = 'δημιουÏγήθηκε'; -$lang['restored'] = 'παλαιότεÏη Îκδοση επαναφÎÏθηκε'; +$lang['restored'] = 'παλαιότεÏη Îκδοση επαναφÎÏθηκε (%s)'; $lang['external_edit'] = 'εξωτεÏική Ï„Ïοποποίηση'; $lang['summary'] = 'ΕπεξεÏγασία σÏνοψης'; $lang['noflash'] = 'Το <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> απαιτείται για την Ï€Ïοβολή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… στοιχείου.'; @@ -314,8 +313,7 @@ $lang['media_upload'] = 'ΦόÏτωση στο <strong>%s</strong> φά $lang['media_search'] = 'Αναζήτηση στο <strong>%s</strong> φάκελο.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s στα %s'; -$lang['media_edit'] = 'ΕπεξεÏγασία'; -$lang['media_history'] = 'ΑυτÎÏ‚ είναι οι παλαιότεÏες αναθεωÏήσεις του αÏχείου.'; +$lang['media_edit'] = 'ΕπεξεÏγασία %s'; $lang['media_meta_edited'] = 'τα μεταδεδομÎνα επεξεÏγάστηκαν'; $lang['media_perm_read'] = 'Συγνώμη, δεν Îχετε επαÏκή διακαιώματα για να διαβάσετε αυτά τα αÏχεία.'; $lang['media_perm_upload'] = 'Συγνώμη, δεν Îχετε επαÏκή διακαιώματα για να φοÏτώσετε αυτά τα αÏχεία.'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index 1c3b6f519686e9652a25e32ff74b8d5a472cc0a1..2d9b03148443fae49f69cda4bd443bbcd31c91ea 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -184,7 +184,7 @@ $lang['lastmod'] = 'Lastaj ÅanÄoj'; $lang['by'] = 'de'; $lang['deleted'] = 'forigita'; $lang['created'] = 'kreita'; -$lang['restored'] = 'malnova revizio restarigita'; +$lang['restored'] = 'malnova revizio restarigita (%s)'; $lang['external_edit'] = 'ekstera redakto'; $lang['summary'] = 'Bulteno de ÅanÄoj'; $lang['noflash'] = 'La <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> necesas por montri tiun ĉi enhavon.'; diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 20d0284bce5568e6482e3ad93625247bae9f8047..193ec9a7dd895a61eb735be0d0ee4e63c6b194d4 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -203,7 +203,7 @@ $lang['lastmod'] = 'Última modificación'; $lang['by'] = 'por'; $lang['deleted'] = 'borrado'; $lang['created'] = 'creado'; -$lang['restored'] = 'se ha restaurado la vieja versión'; +$lang['restored'] = 'se ha restaurado la vieja versión (%s)'; $lang['external_edit'] = 'editor externo'; $lang['summary'] = 'Resumen de la edición'; $lang['noflash'] = 'Para mostrar este contenido es necesario el <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a>.'; @@ -280,8 +280,6 @@ $lang['subscr_m_unsubscribe'] = 'Darse de baja'; $lang['subscr_m_subscribe'] = 'Suscribirse'; $lang['subscr_m_receive'] = 'Recibir'; $lang['subscr_style_every'] = 'enviar correo en cada cambio'; -$lang['subscr_style_digest'] = 'recopilar correo de cambios por cada página'; -$lang['subscr_style_list'] = 'lista de páginas con cambios desde el último correo'; $lang['authmodfailed'] = 'Está mal configurada la autenticación de usuarios. Por favor, avisa al administrador del wiki.'; $lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.'; $lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 8ae61558ad3076711d2c2784701442ffd63cdc94..0a0310832d2f6c3c56e935a5c78b803bff30a03b 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -163,7 +163,7 @@ $lang['lastmod'] = 'Viimati muutnud'; $lang['by'] = 'persoon'; $lang['deleted'] = 'eemaldatud'; $lang['created'] = 'tekitatud'; -$lang['restored'] = 'vana versioon taastatud'; +$lang['restored'] = 'vana versioon taastatud (%s)'; $lang['external_edit'] = 'väline muutmine'; $lang['summary'] = 'kokkuvõte muudatustest'; $lang['mail_newpage'] = 'leht lisatud:'; diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 5b03dcb97361ef0f04f60c00ca8ab1de65dd1ffe..7aab8b44cdcaa2ecc63c86abd2f292843c030f19 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -178,7 +178,7 @@ $lang['lastmod'] = 'Azken aldaketa'; $lang['by'] = 'egilea:'; $lang['deleted'] = 'ezabatua'; $lang['created'] = 'sortua'; -$lang['restored'] = 'bertsio zaharra berrezarria'; +$lang['restored'] = 'bertsio zaharra berrezarria (%s)'; $lang['external_edit'] = 'kanpoko aldaketa'; $lang['summary'] = 'Aldatu laburpena'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> beharrezkoa da eduki hau bistaratzeko.'; diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 026d6499ae6145c716a31d9993a8f2c5978be414..eb828a472e6cff948b0c37dd5896f66f03520f77 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -189,7 +189,7 @@ $lang['lastmod'] = 'آخرین ویرایش'; $lang['by'] = 'توسط'; $lang['deleted'] = 'ØØ°Ù شد'; $lang['created'] = 'ایجاد شد'; -$lang['restored'] = 'یک نگارش پیشین واگردانی شد.'; +$lang['restored'] = 'یک نگارش پیشین واگردانی شد. (%s)'; $lang['external_edit'] = 'ویرایش خارجی'; $lang['summary'] = 'پیش‌نمایش'; $lang['noflash'] = 'برای نمایش Ù…ØØªÙˆÛŒØ§Øª <a href="http://www.adobe.com/products/flashplayer/">Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÛŒ Ùلش</a> مورد نیاز است.'; @@ -266,8 +266,6 @@ $lang['subscr_m_unsubscribe'] = 'لغو آبونه'; $lang['subscr_m_subscribe'] = 'آبونه شدن'; $lang['subscr_m_receive'] = 'Ø¯Ø±ÛŒØ§ÙØª کردن'; $lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی تغییرات'; -$lang['subscr_style_digest'] = 'ارسال ایمیل‌های ÙØ´Ø±Ø¯Ù‡ برای تغییرات هر ØµÙØÙ‡'; -$lang['subscr_style_list'] = 'لیست ØµÙØØ§Øª تغییر داده شده از آخرین رای‌نامه'; $lang['authmodfailed'] = 'اشکال در نوع معتبرسازی کاربران، مدیر ویکی را باخبر سازید.'; $lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این ØØ§Ù„ت پایدار بود، مدیر ویکی را باخبر سازید.'; $lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ØŒ شما باید آن را زود تغییر دهید'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 73eb3d4cca32423cd56e43859f6d4c66214b0b90..59e4dc6cbf107222f2c6f26fb374a88da0ebcfa7 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -183,7 +183,7 @@ $lang['lastmod'] = 'Viimeksi muutettu'; $lang['by'] = '/'; $lang['deleted'] = 'poistettu'; $lang['created'] = 'luotu'; -$lang['restored'] = 'vanha versio palautettu'; +$lang['restored'] = 'vanha versio palautettu (%s)'; $lang['external_edit'] = 'ulkoinen muokkaus'; $lang['summary'] = 'Yhteenveto muokkauksesta'; $lang['noflash'] = 'Tarvitset <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash-liitännäisen</a> nähdäksesi tämän sisällön.'; diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index 14ec8c56bfd9b972f8391712d3f6b3ad3297bbd5..9f51824db4409c10a2c24c67453cb17a2f105866 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -130,7 +130,7 @@ $lang['lastmod'] = 'Seinast broytt'; $lang['by'] = 'av'; $lang['deleted'] = 'strika'; $lang['created'] = 'stovna'; -$lang['restored'] = 'gomul útgáva endurstovna'; +$lang['restored'] = 'gomul útgáva endurstovna (%s)'; $lang['summary'] = 'Samandráttur'; $lang['mail_newpage'] = 'skjal skoyta uppÃ:'; $lang['mail_changed'] = 'skjal broytt:'; diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 7cc06a83302a8c7c2d5614bae562f6ed5170f295..fa49c1121546350ecc2982d59c321d6fda6ee5fe 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -181,7 +181,7 @@ $lang['lastmod'] = 'Última modificación'; $lang['by'] = 'por'; $lang['deleted'] = 'eliminado'; $lang['created'] = 'creado'; -$lang['restored'] = 'revisión antiga restaurada'; +$lang['restored'] = 'revisión antiga restaurada (%s)'; $lang['external_edit'] = 'edición externa'; $lang['summary'] = 'Resumo da edición'; $lang['noflash'] = 'PrecÃsase o <a href="http://www.adobe.com/products/flashplayer/">Extensión Adobe Flash</a> para amosar este contido.'; @@ -258,8 +258,6 @@ $lang['subscr_m_unsubscribe'] = 'Desubscribir'; $lang['subscr_m_subscribe'] = 'Subscribir'; $lang['subscr_m_receive'] = 'Recibir'; $lang['subscr_style_every'] = 'correo-e en cada troco'; -$lang['subscr_style_digest'] = 'correo-e con resumo de trocos para cada páxina'; -$lang['subscr_style_list'] = 'lista de páxinas mudadas dende o último correo-e'; $lang['authmodfailed'] = 'Configuración de autenticación de usuario incorrecta. Por favor, informa ao Administrador do teu Wiki.'; $lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.'; $lang['authpwdexpire'] = 'A túa contrasinal expirará en %d dÃas, deberÃas cambiala pronto.'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index e474501ae0c7d5bb7c136968fd30571e7a9e94ed..4853a0e2b7c54f6b1a0b02007f6066c2d6ca0ff6 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -165,7 +165,7 @@ $lang['lastmod'] = 'מועד ×”×©×™× ×•×™ ×”×חרון'; $lang['by'] = 'על ידי'; $lang['deleted'] = '× ×ž×—×§'; $lang['created'] = '× ×•×¦×¨'; -$lang['restored'] = 'שוחזר'; +$lang['restored'] = 'שוחזר (%s)'; $lang['external_edit'] = 'עריכה ×—×™×¦×•× ×™×ª'; $lang['summary'] = 'תקציר העריכה'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">תוסף פל×ש לדפדפן</a> × ×“×¨×© כדי להציג תוכן ×–×”.'; @@ -243,7 +243,6 @@ $lang['i_modified'] = 'משיקולי ×בטחה סקריפט ×–×” ×™ עליך לחלץ ×©× ×™×ª ×ת ×”×§×‘×¦×™× ×ž×”×—×‘×™×œ×” שהורדה ×ו להיעזר בדף <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; $lang['i_funcna'] = '×¤×•× ×§×¦×™×™×ª ×”-PHP‏ <code>%s</code> ××™× ×” ×–×ž×™× ×”. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; -$lang['i_phpver'] = 'גרסת ×”Ö¾PHP שלך <code>%s</code> × ×ž×•×›×” מהדרוש. עליך לשדרג ×ת ×”×ª×§× ×ª ×”Ö¾PHP שלך.'; $lang['i_permfail'] = '<code>%s</code> ××™× ×” × ×™×ª× ×ª לכתיבה על ידי DokuWiki. עליך ×œ×©× ×•×ª הרש×ות תיקייה זו!'; $lang['i_confexists'] = '<code>%s</code> כבר ×§×™×™×'; $lang['i_writeerr'] = '×ין ×פשרות ליצור ×ת <code>%s</code>. × × ×œ×‘×“×•×§ ×ת הרש×ות הקובץ/תיקייה וליצור ×ת הקובץ ×™×“× ×™×ª.'; diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php index 893457066f5eaa569724335ca1553ec2ab1a305d..d2021fcaee843c8d711174178a441cf1d80c47e4 100644 --- a/inc/lang/hi/lang.php +++ b/inc/lang/hi/lang.php @@ -84,7 +84,6 @@ $lang['lastmod'] = 'अंतिम बार संशोधि $lang['by'] = 'के दà¥à¤µà¤¾à¤°à¤¾'; $lang['deleted'] = 'हटाया'; $lang['created'] = 'निरà¥à¤®à¤¿à¤¤'; -$lang['restored'] = 'पà¥à¤°à¤¾à¤¨à¥‡ संशोधन बहाल'; $lang['external_edit'] = 'बाहà¥à¤¯ समà¥à¤ªà¤¾à¤¦à¤¿à¤¤'; $lang['summary'] = 'सारांश संपादित करें'; $lang['mail_newpage'] = 'पृषà¥à¤ जोड़ा:'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 97f4cf0c283fafb2cf8c5412dff7842143c74efc..a607210d7883f11ccd2ce1cb9ebcc2a2c3351d46 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -165,7 +165,7 @@ $lang['lastmod'] = 'Zadnja izmjena'; $lang['by'] = 'od'; $lang['deleted'] = 'obrisano'; $lang['created'] = 'stvoreno'; -$lang['restored'] = 'vraćena prijaÅ¡nja inaÄica'; +$lang['restored'] = 'vraćena prijaÅ¡nja inaÄica (%s)'; $lang['external_edit'] = 'vanjsko ureÄ‘ivanje'; $lang['summary'] = 'Sažetak izmjena'; $lang['noflash'] = 'Za prikazivanje ovog sadržaja potreban je <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>'; diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index c59cace779cb30e0fce8a839ec41a0f67fbf346f..275fb15d55032cf7ee24ed6930b03c61fe6fa559 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -169,7 +169,7 @@ $lang['lastmod'] = 'Utolsó módosÃtás'; $lang['by'] = 'szerkesztette:'; $lang['deleted'] = 'eltávolÃtva'; $lang['created'] = 'létrehozva'; -$lang['restored'] = 'az elÅ‘zÅ‘ változat helyreállÃtva'; +$lang['restored'] = 'az elÅ‘zÅ‘ változat helyreállÃtva (%s)'; $lang['external_edit'] = 'külsÅ‘ szerkesztés'; $lang['summary'] = 'A változások összefoglalása'; $lang['noflash'] = 'Ennek a tartalomnak a megtekintéséhez <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> szükséges.'; diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index a9d5c376c8ec553edde8f7b23a54b10ba32a26c1..fd63fb5effc7b6c979d67b4d4dc241bd2d0ff952 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -163,7 +163,7 @@ $lang['lastmod'] = 'Ultime modification'; $lang['by'] = 'per'; $lang['deleted'] = 'removite'; $lang['created'] = 'create'; -$lang['restored'] = 'ancian version restaurate'; +$lang['restored'] = 'ancian version restaurate (%s)'; $lang['external_edit'] = 'modification externe'; $lang['summary'] = 'Modificar summario'; $lang['noflash'] = 'Le <a href="http://www.adobe.com/products/flashplayer/">plug-in Flash de Adobe</a> es necessari pro monstrar iste contento.'; @@ -227,8 +227,6 @@ $lang['subscr_m_unsubscribe'] = 'Cancellar subscription'; $lang['subscr_m_subscribe'] = 'Subscriber'; $lang['subscr_m_receive'] = 'Reciper'; $lang['subscr_style_every'] = 'un message pro cata modification'; -$lang['subscr_style_digest'] = 'un digesto de modificationes pro cata pagina'; -$lang['subscr_style_list'] = 'lista de paginas modificate depost le ultime e-mail'; $lang['authmodfailed'] = 'Configuration incorrecte de authentication de usator. Per favor informa le administrator de tu wiki.'; $lang['authtempfail'] = 'Le authentication de usator temporarimente non es disponibile. Si iste situation persiste, per favor informa le administrator de tu wiki.'; $lang['i_chooselang'] = 'Selige tu lingua'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 91ed38e3129d77088d1642dea44a0a8605c58693..e14b9d9f5729708554cd4403a661634046a0eb38 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -125,7 +125,7 @@ $lang['lastmod'] = 'Terakhir diubah'; $lang['by'] = 'oleh'; $lang['deleted'] = 'terhapus'; $lang['created'] = 'dibuat'; -$lang['restored'] = 'revisi lama ditampilkan kembali'; +$lang['restored'] = 'revisi lama ditampilkan kembali (%s)'; $lang['external_edit'] = 'Perubahan eksternal'; $lang['summary'] = 'Edit summary'; $lang['mail_newpage'] = 'Halaman ditambahkan:'; diff --git a/inc/lang/is/lang.php b/inc/lang/is/lang.php index be20da6b3b34477ed7390b5c68c12223a1c4dfec..78ae7e249bac05d822fd1b1c0a4d1d6f4d2f9a46 100644 --- a/inc/lang/is/lang.php +++ b/inc/lang/is/lang.php @@ -134,7 +134,7 @@ $lang['lastmod'] = 'SÃðast breytt'; $lang['by'] = 'af'; $lang['deleted'] = 'eytt'; $lang['created'] = 'myndað'; -$lang['restored'] = 'Breytt aftur til fyrri útgáfu'; +$lang['restored'] = 'Breytt aftur til fyrri útgáfu (%s)'; $lang['external_edit'] = 'utanaðkomandi breyta'; $lang['summary'] = 'Forskoða'; $lang['noflash'] = 'Það þarf <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash viðbót</a> til að sýna sumt efnið á þessari sÃðu'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 1ad5ae1bb5bf7fdd8cb249bbf423c59320061a79..307e7292fdba180f826fc6fe148366bb8b732610 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -187,7 +187,7 @@ $lang['lastmod'] = 'Ultima modifica'; $lang['by'] = 'da'; $lang['deleted'] = 'eliminata'; $lang['created'] = 'creata'; -$lang['restored'] = 'versione precedente ripristinata'; +$lang['restored'] = 'versione precedente ripristinata (%s)'; $lang['external_edit'] = 'modifica esterna'; $lang['summary'] = 'Oggetto della modifica'; $lang['noflash'] = 'E\' necessario <a href="http://www.adobe.com/products/flashplayer/">il plugin Adobe Flash</a> per visualizzare questo contenuto.'; @@ -263,8 +263,6 @@ $lang['subscr_m_unsubscribe'] = 'Rimuovi sottoscrizione'; $lang['subscr_m_subscribe'] = 'Sottoscrivi'; $lang['subscr_m_receive'] = 'Ricevi'; $lang['subscr_style_every'] = 'email per ogni modifica'; -$lang['subscr_style_digest'] = 'email riassuntiva delle modifiche di ogni pagina'; -$lang['subscr_style_list'] = 'elenco delle pagine modificate dall\'ultima email'; $lang['authmodfailed'] = 'La configurazione dell\'autenticazione non è corretta. Informa l\'amministratore di questo wiki.'; $lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.'; $lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 66de0dab520b35c470438eb272d008fdd03eba91..7997889e46df418c8dc4cc87f9f3e1b3201e42ea 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -181,7 +181,7 @@ $lang['lastmod'] = '最終更新'; $lang['by'] = 'by'; $lang['deleted'] = '削除'; $lang['created'] = '作æˆ'; -$lang['restored'] = '以å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’復元'; +$lang['restored'] = '以å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’復元 (%s)'; $lang['external_edit'] = '外部編集'; $lang['summary'] = 'ç·¨é›†ã®æ¦‚è¦'; $lang['noflash'] = 'ã“ã®å†…容を表示ã™ã‚‹ãŸã‚ã«ã¯ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> ãŒå¿…è¦ã§ã™ã€‚'; diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index 6a5fa223ff6c5f05d7af7ba6a86f1be256ec4900..85bb6afbad2af1a16500f461b84e9f0a47686b14 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -132,7 +132,6 @@ $lang['lastmod'] = 'áž–áŸáž›áž€áŸ‚ចុងក្រោយ'; $lang['by'] = 'និពន្ឋដោយ'; $lang['deleted'] = 'យកចáŸáž‰'; $lang['created'] = 'បង្កើáž'; -$lang['restored'] = 'ស្ដារបុនរាព្រឹážáž…ាស់'; $lang['external_edit'] = 'កំរáŸáž–ីក្រៅ'; $lang['summary'] = 'កែážáž˜áŸ’ážšáž¶'; @@ -207,7 +206,6 @@ $lang['i_superuser'] = 'អ្នកកំពូល'; $lang['i_problems'] = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្ážáž‘ៅទៀហដល់អ្នកជួសជុលវា។'; $lang['i_modified'] = ''; $lang['i_funcna'] = '<code>%s</code> '; -$lang['i_phpver'] = 'PHP ប្រវážáŸ‹áž›áŸáž<code>%s</code> ជា'; $lang['i_permfail'] = '<code>%s</code> មិនអាចសាស'; $lang['i_confexists'] = '<code>%s</code> មានហាយ'; $lang['i_writeerr'] = 'មិនអាចបណ្កើ<code>%s</code>។ អ្នកážáŸ’រវការពិនិážáŸ’យអធិក្រឹážáž·ážšáž”ស់ážážáž“ឹងឯកសារ។'; diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index 63ccafa3502b454529ca0b687745efc349d2e017..c9d658c6dec1fa04c614a27bffc7f6e7f26a84c5 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -95,7 +95,7 @@ $lang['lastmod'] = 'Guherandina dawî'; $lang['by'] = 'by'; $lang['deleted'] = 'hat jê birin'; $lang['created'] = 'hat afirandin'; -$lang['restored'] = 'old revision restored'; +$lang['restored'] = 'old revision restored (%s)'; $lang['summary'] = 'Kurteya guhartinê'; $lang['mail_newpage'] = 'page added:'; diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php index 77fec8362230f00b8883e972e6ab5c1fdd3ff25a..bea921abc4484498175017f3e6d7ba5af367bc59 100644 --- a/inc/lang/la/lang.php +++ b/inc/lang/la/lang.php @@ -131,7 +131,6 @@ $lang['uploadsucc'] = 'Oneratum perfectum'; $lang['uploadfail'] = 'Error onerandi.'; $lang['uploadwrong'] = 'Onerare non potest. Genus documenti non legitimum!'; $lang['uploadexist'] = 'Documentum iam est.'; -$lang['uploadbadcontent'] = 'Documentum oneratum cum genere documenti non congruit.'; $lang['uploadspam'] = 'Onerare non potest: nam in indice perscriptionis documentum est.'; $lang['uploadxss'] = 'Onerare non potest: nam forsitan malum scriptum in documento est.'; $lang['uploadsize'] = 'Documentum onerandum ponderosius est. (Maxime "%s")'; @@ -164,7 +163,7 @@ $lang['lastmod'] = 'Extrema mutatio'; $lang['by'] = 'a(b)'; $lang['deleted'] = 'deletur'; $lang['created'] = 'creatur'; -$lang['restored'] = 'Recensio uetus restituta'; +$lang['restored'] = 'Recensio uetus restituta (%s)'; $lang['external_edit'] = 'Externe recensere'; $lang['summary'] = 'Indicem recensere'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> necessarium est.'; @@ -254,7 +253,6 @@ $lang['i_pol1'] = 'Publicus uicis (omnes legere, Sodales scribere $lang['i_pol2'] = 'Clausus uicis (Soli Sodales legere scribere et onerare poccunt)'; $lang['i_retry'] = 'Rursum temptas'; $lang['i_license'] = 'Elige facultatem sub qua tuus uicis est:'; -$lang['recent_global'] = 'Mutatione in hoc genere uides. Recentiores mutationes quoque uidere <a href="%s">potes</a>'; $lang['years'] = 'ab annis %d'; $lang['months'] = 'a mensibus %d'; $lang['weeks'] = 'a septimanis %d'; diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php index e6409b7ff7f6c213ad619768d026314a732ce1fa..bced5a50a573805126ad34f1a7bf4f0dc90da404 100644 --- a/inc/lang/lb/lang.php +++ b/inc/lang/lb/lang.php @@ -124,7 +124,7 @@ $lang['lastmod'] = 'Fir d\'lescht g\'ännert'; $lang['by'] = 'vun'; $lang['deleted'] = 'geläscht'; $lang['created'] = 'erstallt'; -$lang['restored'] = 'al Versioun zeréckgeholl'; +$lang['restored'] = 'al Versioun zeréckgeholl (%s)'; $lang['external_edit'] = 'extern Ännerung'; $lang['summary'] = 'Resumé vun den Ännerungen'; $lang['noflash'] = 'Den <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> get gebraucht fir dësen Inhalt unzeweisen.'; diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index 13ff8c3054211b3aa85a01e1b30538d710c393e9..8a4c4e6a544ef0f7415f2a7ce6aaf40ea37919d6 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -132,7 +132,7 @@ $lang['lastmod'] = 'Keista'; $lang['by'] = 'vartotojo'; $lang['deleted'] = 'iÅ¡trintas'; $lang['created'] = 'sukurtas'; -$lang['restored'] = 'atstatyta sena versija'; +$lang['restored'] = 'atstatyta sena versija (%s)'; $lang['external_edit'] = 'redaguoti papildomomis priemonÄ—mis'; $lang['summary'] = 'Redaguoti santraukÄ…'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> reikalingas Å¡ios medžiagos peržiÅ«rai.'; diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index 671e5f52abe318517baf4b7aad3c1b2d3752e554..2027b87ba3f3a446fcc8f4c6fe1e3d8c9b896640 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -178,7 +178,7 @@ $lang['lastmod'] = 'Labota'; $lang['by'] = ', labojis'; $lang['deleted'] = 'dzÄ“sts'; $lang['created'] = 'izveidots'; -$lang['restored'] = 'vecÄ versija atjaunota'; +$lang['restored'] = 'vecÄ versija atjaunota (%s)'; $lang['external_edit'] = 'ÄrpussistÄ“mas labojums'; $lang['summary'] = 'AnotÄcija'; $lang['noflash'] = 'Lai attÄ“lotu lapas saturu, vajag <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index 4142f00d0391577ab36d4952fdd5cfc5daa81a3c..95589ab21900758a9c2ea467e08a8ba80613fb0d 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -88,7 +88,7 @@ $lang['lastmod'] = 'Novaina farany:'; $lang['by'] = '/'; $lang['deleted'] = 'voafafa'; $lang['created'] = 'Voamboatra'; -$lang['restored'] = 'Naverina tamin\'ny kinova taloha'; +$lang['restored'] = 'Naverina tamin\'ny kinova taloha (%s)'; $lang['summary'] = 'Fanovana teo'; $lang['mail_newpage'] = 'pejy niampy:'; diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php index 7482f2512475da19c8ee296ea48d964259a2a417..44bd489b718623d1e42a7166b4a0148b42b7a13c 100644 --- a/inc/lang/mk/lang.php +++ b/inc/lang/mk/lang.php @@ -136,7 +136,7 @@ $lang['lastmod'] = 'ПоÑледно изменета'; $lang['by'] = 'од'; $lang['deleted'] = 'отÑтранета'; $lang['created'] = 'креирана'; -$lang['restored'] = 'обновена е Ñтара ревизија'; +$lang['restored'] = 'обновена е Ñтара ревизија (%s)'; $lang['external_edit'] = 'надворешно уредување'; $lang['summary'] = 'Уреди го изводот'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash приклучокот</a> е потребен за да Ñе прикаже оваа Ñодржина.'; @@ -196,8 +196,6 @@ $lang['subscr_m_unsubscribe'] = 'Отплатување'; $lang['subscr_m_subscribe'] = 'Претплата'; $lang['subscr_m_receive'] = 'Прими'; $lang['subscr_style_every'] = 'е-пошта за Ñекоја промена'; -$lang['subscr_style_digest'] = 'е-пошта Ñо преглед од промените за Ñекоја Ñтраница'; -$lang['subscr_style_list'] = 'лиÑта на променети Ñтраници од поÑледната е-пошта'; $lang['authmodfailed'] = 'Лоша конфигурација за автентикација на кориÑник. Ве молам информирајте го вики админиÑтратор.'; $lang['authtempfail'] = 'Ðвтентикација на кориÑник е привремено недоÑтапна. Ðко оваа Ñитуација иÑтрајува, ве молам извеÑтете го вики админиÑтратор.'; $lang['i_chooselang'] = 'Избере јазик'; diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index b754a3f1cad968c905ba4f1f3ef994ee3e2c9cec..d95813efab68d1ccfb086b42f476e6138e7c101a 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -180,7 +180,6 @@ $lang['lastmod'] = 'सरà¥à¤µà¤¾à¤¤ शेवटचा बद $lang['by'] = 'दà¥à¤µà¤¾à¤°à¤¾'; $lang['deleted'] = 'काढून टाकले'; $lang['created'] = 'निरà¥à¤®à¤¾à¤£ केले'; -$lang['restored'] = 'जà¥à¤¨à¥€ आवृतà¥à¤¤à¤¿ पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ केली'; $lang['external_edit'] = 'बाहेरून संपादित'; $lang['summary'] = 'सारांश बदला'; $lang['noflash'] = 'ही माहिती दाखवणà¥à¤¯à¤¾à¤¸à¤¾à¤ ी <a href="http://www.adobe.com/products/flashplayer/">अडोब फà¥à¤²à¥…श पà¥à¤²à¥‡à¤…र</a> ची गरज आहे.'; diff --git a/inc/lang/ms/lang.php b/inc/lang/ms/lang.php index 92dc86b5ae7fa6a369ce2839f288429748f9c36e..02c0e2c91f6cf5c77dc4440a0921eee29492fb02 100644 --- a/inc/lang/ms/lang.php +++ b/inc/lang/ms/lang.php @@ -93,5 +93,5 @@ $lang['uploadfail'] = 'Ralat muat naik'; $lang['uploadxss'] = 'Fail ini mengandungi kod HTML atau kod skrip yang mungkin boleh disalah tafsir oleh pelayar web.'; $lang['toc'] = 'Jadual Kandungan'; $lang['current'] = 'kini'; -$lang['restored'] = 'Telah dikembalikan ke semakan sebelumnya'; +$lang['restored'] = 'Telah dikembalikan ke semakan sebelumnya (%s)'; $lang['summary'] = 'Paparan'; diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index fa6d2f7052e9f249d67dc9d5f43c64c26d77f32d..b7ca14b0a7b7fe862849817b68a9eb5c35851c02 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -128,7 +128,6 @@ $lang['lastmod'] = 'अनà¥à¤¤à¤¿à¤® पटक सचà¥à¤¯à¤¾ $lang['by'] = 'दà¥à¤µà¤¾à¤°à¤¾ '; $lang['deleted'] = 'हटाइà¤à¤•ो'; $lang['created'] = 'निरà¥à¤®à¤¾à¤£ गरिà¤à¤•ो'; -$lang['restored'] = 'पà¥à¤°à¤¾à¤¨à¥‹ संसà¥à¤•रण पà¥à¤¨à¤°à¥â€Œà¤ªà¥à¤°à¤¯à¥‹à¤— गरिà¤à¤•ो'; $lang['external_edit'] = 'बाहà¥à¤¯ समà¥à¤ªà¤¾à¤¦à¤¨'; $lang['summary'] = 'समà¥à¤ªà¤¾à¤¦à¤¨à¤•ो बारेमा'; $lang['mail_newpage'] = 'थपिà¤à¤•ो पृषà¥à¤ '; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 0241eab2ff37fbc2f470ec68b0935482095e80e2..f6192a99bf7c8e7ed871ec8979665e4719d27717 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -192,7 +192,7 @@ $lang['lastmod'] = 'Laatst gewijzigd'; $lang['by'] = 'door'; $lang['deleted'] = 'verwijderd'; $lang['created'] = 'aangemaakt'; -$lang['restored'] = 'oude revisie hersteld'; +$lang['restored'] = 'oude revisie hersteld (%s)'; $lang['external_edit'] = 'Externe bewerking'; $lang['summary'] = 'Samenvatting wijziging'; $lang['noflash'] = 'De <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> is vereist om de pagina te kunnen weergeven.'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 9aa11ac87202ca9c229ed44422ef44f668aeeed4..8235bfb913b21bfd1c6fb30b0c37a0851c356e63 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -190,7 +190,7 @@ $lang['lastmod'] = 'Sist endret'; $lang['by'] = 'av'; $lang['deleted'] = 'fjernet'; $lang['created'] = 'opprettet'; -$lang['restored'] = 'gjenopprettet til en tidligere versjon'; +$lang['restored'] = 'gjenopprettet til en tidligere versjon (%s)'; $lang['external_edit'] = 'ekstern redigering'; $lang['summary'] = 'Redigeringskommentar'; $lang['noflash'] = 'For at dette innholdet skal vises mÃ¥ du ha <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; @@ -316,8 +316,7 @@ $lang['media_upload'] = 'Last opp til navnerommet <strong>%s</strong>.' $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s pÃ¥ %s'; -$lang['media_edit'] = 'Rediger'; -$lang['media_history'] = 'Dette er de tidligere versjonene av filen.'; +$lang['media_edit'] = 'Rediger %s'; $lang['media_meta_edited'] = 'metadata er endra'; $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til Ã¥ lese filer.'; $lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til Ã¥ laste opp filer.'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index cf9fc6a16aa85ffd24648091efd1b6f4fda27a80..51149e88f29df5e7778b31ea6c65bbda93221637 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -189,7 +189,7 @@ $lang['lastmod'] = 'ostatnio zmienione'; $lang['by'] = 'przez'; $lang['deleted'] = 'usuniÄ™to'; $lang['created'] = 'utworzono'; -$lang['restored'] = 'przywrócono poprzedniÄ… wersjÄ™'; +$lang['restored'] = 'przywrócono poprzedniÄ… wersjÄ™ (%s)'; $lang['external_edit'] = 'edycja zewnÄ™trzna'; $lang['summary'] = 'Opis zmian'; $lang['noflash'] = 'Plugin <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> jest niezbÄ™dny do obejrzenia tej zawartoÅ›ci.'; @@ -265,8 +265,6 @@ $lang['subscr_m_unsubscribe'] = 'Zrezygnuj z subskrypcji'; $lang['subscr_m_subscribe'] = 'Subskrybuj'; $lang['subscr_m_receive'] = 'Otrzymuj'; $lang['subscr_style_every'] = 'email przy każdej zmianie'; -$lang['subscr_style_digest'] = 'email ze streszczeniem zmian dla każdej ze stron'; -$lang['subscr_style_list'] = 'lista zmienionych stron od czasu ostatniego emaila'; $lang['authmodfailed'] = 'Błąd uwierzytelnienia. Powiadom administratora tego wiki.'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. JeÅ›li ta sytuacja siÄ™ powtórzy, powiadom administratora tego wiki.'; $lang['authpwdexpire'] = 'Twoje hasÅ‚o wygaÅ›nie za %d dni. Należy je zmienić w krótkim czasie.'; diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index 1555889f6ccddea5c5b7bd424cb05207c1d1972a..ac9c59c3ef1dc76cf192cb640e8fcfb3bf61a374 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -179,7 +179,7 @@ $lang['lastmod'] = 'Esta página foi modificada pela última vez e $lang['by'] = 'por'; $lang['deleted'] = 'Documento automaticamente removido.'; $lang['created'] = 'Criação deste novo documento.'; -$lang['restored'] = 'Versão anterior restaurada.'; +$lang['restored'] = 'Versão anterior restaurada (%s)'; $lang['external_edit'] = 'Edição externa'; $lang['summary'] = 'Sumário da Edição'; $lang['noflash'] = 'O <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a> é necessário para exibir este conteúdo.'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index d6bfcad3aa21dc2df935dbf79137f484e472ffd1..8b2483dafa771c91c1d1fefdc43722816ace80f4 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -184,7 +184,7 @@ $lang['lastmod'] = 'Ultima modificare'; $lang['by'] = 'de către'; $lang['deleted'] = 'ÅŸters'; $lang['created'] = 'creat'; -$lang['restored'] = 'versiune veche restaurată'; +$lang['restored'] = 'versiune veche restaurată (%s)'; $lang['external_edit'] = 'editare externă'; $lang['summary'] = 'Editează sumarul'; $lang['noflash'] = 'Plugin-ul <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> este necesar pentru afiÅŸarea corectă a conÅ£inutului.'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index c391bc6a5e8adc1b7d40b37a95181a16660f325d..52e0ef3d625722d3a9702ceb59406f8f90033530 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -193,7 +193,7 @@ $lang['lastmod'] = 'ПоÑледние изменениÑ'; $lang['by'] = ' —'; $lang['deleted'] = 'удалено'; $lang['created'] = 'Ñоздано'; -$lang['restored'] = 'ÑÑ‚Ð°Ñ€Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð²Ð¾ÑÑтановлена'; +$lang['restored'] = 'ÑÑ‚Ð°Ñ€Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð²Ð¾ÑÑтановлена (%s)'; $lang['external_edit'] = 'внешнее изменение'; $lang['summary'] = 'Сводка изменений'; $lang['noflash'] = 'Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñтого Ñодержимого требуетÑÑ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; @@ -270,8 +270,6 @@ $lang['subscr_m_unsubscribe'] = 'Отменить подпиÑку'; $lang['subscr_m_subscribe'] = 'ПодпиÑатьÑÑ'; $lang['subscr_m_receive'] = 'Получить'; $lang['subscr_style_every'] = 'уведомлÑть о каждом изменении'; -$lang['subscr_style_digest'] = 'Ñводка изменений по каждой Ñтранице'; -$lang['subscr_style_list'] = 'перечиÑлÑть изменившиеÑÑ Ñтраницы Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ уведомлениÑ'; $lang['authmodfailed'] = 'ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ пользователÑ. ПожалуйÑта, Ñообщите об Ñтом Ñвоему админиÑтратору вики.'; $lang['authtempfail'] = 'ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ временно недоÑтупна. ЕÑли проблема продолжаетÑÑ ÐºÐ°ÐºÐ¾Ðµ-то времÑ, пожалуйÑта, Ñообщите об Ñтом Ñвоему админиÑтратору вики.'; $lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index 81220b8a2707a72f46ee93da91336dde9a762b62..5c4316b014cc565d70eaedba9b91cdfe6cc03163 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -177,7 +177,7 @@ $lang['lastmod'] = 'Zadnja sprememba'; $lang['by'] = 'uporabnika'; $lang['deleted'] = 'odstranjena'; $lang['created'] = 'ustvarjena'; -$lang['restored'] = 'povrnjena stara razliÄica'; +$lang['restored'] = 'povrnjena stara razliÄica (%s)'; $lang['external_edit'] = 'urejanje v zunanjem urejevalniku'; $lang['summary'] = 'Povzetek urejanja'; $lang['noflash'] = 'Za prikaz vsebine je treba namestiti <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>'; diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index e190d8404cc66dce658902e239a3e22e05d4e7b2..212f10607eb09c569ca37689129cd249434b9184 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -140,7 +140,7 @@ $lang['lastmod'] = 'Redaktuar për herë të fundit'; $lang['by'] = 'nga'; $lang['deleted'] = 'u fshi'; $lang['created'] = 'u krijua'; -$lang['restored'] = 'Kthehu tek një version i vjetër'; +$lang['restored'] = 'Kthehu tek një version i vjetër (%s)'; $lang['external_edit'] = 'redaktim i jashtëm'; $lang['summary'] = 'Përmbledhja redaktimit'; $lang['noflash'] = 'Nevojitet <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> për të paraqitur këtë përmbajtje.'; @@ -204,8 +204,6 @@ $lang['subscr_m_unsubscribe'] = 'Fshi Abonimin'; $lang['subscr_m_subscribe'] = 'Abonohu'; $lang['subscr_m_receive'] = 'Mer'; $lang['subscr_style_every'] = 'email mbi çdo ndryshim'; -$lang['subscr_style_digest'] = 'pasqyro email-e ndryshimi pér çdo faqe'; -$lang['subscr_style_list'] = 'listë e faqeve të ndryshuara që nga emaili i fundit'; $lang['authmodfailed'] = 'Konfigurim i gabuar i autentikimit të përdoruesit. Ju lutem informoni Administratorin tuaj të Wiki-it.'; $lang['authtempfail'] = 'Autentikimi i përdoruesve është përkohësisht i padisponueshëm. Nëse kjo gjendje vazhdon, ju lutemi të informoni Administratorin tuaj të Wiki-it.'; $lang['i_chooselang'] = 'Zgjidhni gjuhën tuaj'; diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index d7f594511edb75e7b2bee527ea34901484b2af14..7fbdf198546e7e9e73575ab03e00b73ad6441e67 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -162,7 +162,7 @@ $lang['lastmod'] = 'ПоÑледњи пут мењано'; $lang['by'] = 'од'; $lang['deleted'] = 'избриÑано'; $lang['created'] = 'направљено'; -$lang['restored'] = 'Ñтара верзија повраћена'; +$lang['restored'] = 'Ñтара верзија повраћена (%s)'; $lang['external_edit'] = 'Ñпољна измена'; $lang['summary'] = 'Сажетак измене'; $lang['noflash'] = 'За приказивање ове врÑте материјала потребан вам је <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index c9d52643629da1ed0f0f44c88771e385f3baecc3..627484eab6d6d5eabe616619ebb621acc6f66714 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -144,7 +144,7 @@ $lang['lastmod'] = 'à¹à¸à¹‰à¹„ขครั้งล่าสุ $lang['by'] = 'โดย'; $lang['deleted'] = 'ถูà¸à¸–à¸à¸”à¸à¸à¸'; $lang['created'] = 'ถูà¸à¸ªà¸£à¹‰à¸²à¸‡'; -$lang['restored'] = 'ย้à¸à¸™à¹„ปรุ่นà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²'; +$lang['restored'] = 'ย้à¸à¸™à¹„ปรุ่นà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸² (%s)'; $lang['external_edit'] = 'à¹à¸à¹‰à¹„ขภายนà¸à¸'; $lang['summary'] = 'สรุป(หมายเหตุ)à¸à¸²à¸£à¹à¸à¹‰à¹„ขนี้'; $lang['noflash'] = 'ต้à¸à¸‡à¸à¸²à¸£à¸•ัวเล่นà¹à¸Ÿà¸¥à¸Š <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> เพื่à¸à¹à¸ªà¸”งผลเนื้à¸à¸«à¸²à¸™à¸µà¹‰'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 5430905b1b94e5010d00fa8ba5127f6c7ef408d6..c6edf74c6367eb3a8cf17e32a2d958b2648b8437 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -176,7 +176,7 @@ $lang['lastmod'] = 'Son deÄŸiÅŸtirilme'; $lang['by'] = 'DeÄŸiÅŸtiren:'; $lang['deleted'] = 'silindi'; $lang['created'] = 'oluÅŸturuldu'; -$lang['restored'] = 'eski sürüme dönüldü'; +$lang['restored'] = 'eski sürüme dönüldü (%s)'; $lang['external_edit'] = 'Dışarıdan düzenle'; $lang['summary'] = 'Özeti düzenle'; $lang['noflash'] = 'Bu içeriÄŸi göstermek için <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Eklentisi</a> gerekmektedir.'; diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 5274a421029fe0c5fd41bf5460214c626c767695..6aa468c509ae3224729ec236a0a5dd70225330c4 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -169,7 +169,7 @@ $lang['lastmod'] = 'Ð’ оÑтаннє змінено'; $lang['by'] = ' '; $lang['deleted'] = 'знищено'; $lang['created'] = 'Ñтворено'; -$lang['restored'] = 'відновлено Ñтару ревізію'; +$lang['restored'] = 'відновлено Ñтару ревізію (%s)'; $lang['external_edit'] = 'зовнішнє редагуваннÑ'; $lang['summary'] = 'ПідÑумок змін'; $lang['noflash'] = 'Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду цієї Ñторінки необхідно вÑтановити <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index 99c4d47e440e9f8d860222c3c9360b0b504a7882..c439ca5349df27ec21c3579b5ca0054e2b7cd5eb 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -176,7 +176,7 @@ $lang['lastmod'] = 'Thá»i Ä‘iểm thay đổi'; $lang['by'] = 'do'; $lang['deleted'] = 'bị xoá'; $lang['created'] = 'được tạo ra'; -$lang['restored'] = 'phiên bản cÅ© đã được khôi phục'; +$lang['restored'] = 'phiên bản cÅ© đã được khôi phục (%s)'; $lang['external_edit'] = 'external edit'; $lang['summary'] = 'Tóm tắt biên soạn'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> cần được cà i để có thể xem ná»™i dung nà y.'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index ddb35617e825df9c53b434c903809860339d60db..536266971bce9bb4f8cb39c6bb9dfb7d4e46d445 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -186,7 +186,7 @@ $lang['lastmod'] = '上一次變更'; $lang['by'] = 'ç”±'; $lang['deleted'] = '移除'; $lang['created'] = '建立'; -$lang['restored'] = 'æ¢å¾©ç‚ºèˆŠç‰ˆ'; +$lang['restored'] = 'æ¢å¾©ç‚ºèˆŠç‰ˆ (%s)'; $lang['external_edit'] = '外部編輯'; $lang['summary'] = '編輯摘è¦'; $lang['noflash'] = '顯示æ¤å…§å®¹éœ€è¦ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash é™„åŠ å…ƒä»¶</a>。'; diff --git a/inc/media.php b/inc/media.php index 572b1177c4cd1737b012fd416e6700fcaf72f5e4..db1ca0d5786fcbc6290a91b46851cc140cc367d9 100644 --- a/inc/media.php +++ b/inc/media.php @@ -237,8 +237,7 @@ function media_upload_xhr($ns,$auth){ $realSize = stream_copy_to_stream($input, $target); fclose($target); fclose($input); - if ($realSize != (int)$_SERVER["CONTENT_LENGTH"]){ - unlink($target); + if (isset($_SERVER["CONTENT_LENGTH"]) && ($realSize != (int)$_SERVER["CONTENT_LENGTH"])){ unlink($path); return false; } @@ -1687,18 +1686,36 @@ function media_nstree($ns){ $ns = cleanID($ns); if(empty($ns)){ global $ID; - $ns = dirname(str_replace(':','/',$ID)); - if($ns == '.') $ns =''; + $ns = (string)getNS($ID); } - $ns = utf8_encodeFN(str_replace(':','/',$ns)); + + $ns_dir = utf8_encodeFN(str_replace(':','/',$ns)); $data = array(); - search($data,$conf['mediadir'],'search_index',array('ns' => $ns, 'nofiles' => true)); + search($data,$conf['mediadir'],'search_index',array('ns' => $ns_dir, 'nofiles' => true)); // wrap a list with the root level around the other namespaces array_unshift($data, array('level' => 0, 'id' => '', 'open' =>'true', 'label' => '['.$lang['mediaroot'].']')); + // insert the current ns into the hierarchy if it isn't already part of it + $ns_parts = explode(':', $ns); + $tmp_ns = ''; + $pos = 0; + foreach ($ns_parts as $level => $part) { + if ($tmp_ns) $tmp_ns .= ':'.$part; + else $tmp_ns = $part; + + // find the namespace parts or insert them + while ($data[$pos]['id'] != $tmp_ns) { + if ($pos >= count($data) || ($data[$pos]['level'] <= $level+1 && strnatcmp(utf8_encodeFN($data[$pos]['id']), utf8_encodeFN($tmp_ns)) > 0)) { + array_splice($data, $pos, 0, array(array('level' => $level+1, 'id' => $tmp_ns, 'open' => 'true'))); + break; + } + ++$pos; + } + } + echo html_buildlist($data,'idx','media_nstree_item','media_nstree_li'); } @@ -1878,6 +1895,8 @@ function media_get_from_URL($url,$ext,$cache){ function media_image_download($url,$file){ global $conf; $http = new DokuHTTPClient(); + $http->keep_alive = false; // we do single ops here, no need for keep-alive + $http->max_bodysize = $conf['fetchsize']; $http->timeout = 25; //max. 25 sec $http->header_regexp = '!\r\nContent-Type: image/(jpe?g|gif|png)!i'; diff --git a/inc/parser/code.php b/inc/parser/code.php index 21fb0dc3c25d1423330bc0f162f97a866a14a6a9..43d8d703fe90b76e40a18883cff884b94e8efc4b 100644 --- a/inc/parser/code.php +++ b/inc/parser/code.php @@ -43,7 +43,7 @@ class Doku_Renderer_code extends Doku_Renderer { * This should never be reached, if it is send a 404 */ function document_end() { - header("HTTP/1.0 404 Not Found"); + http_status(404); echo '404 - Not found'; exit; } diff --git a/install.php b/install.php index f54c252073a181b14c274486ea06bf92528edf7a..2db25bd2fcf35be7de0de6074852afb0840f3f45 100644 --- a/install.php +++ b/install.php @@ -54,7 +54,8 @@ $dokuwiki_hash = array( '2011-05-25' => '4241865472edb6fa14a1227721008072', '2011-11-10' => 'b46ff19a7587966ac4df61cbab1b8b31', '2012-01-25' => '72c083c73608fc43c586901fd5dabb74', - '2012-09-10' => 'eb0b3fc90056fbc12bac6f49f7764df3' + '2012-09-10' => 'eb0b3fc90056fbc12bac6f49f7764df3', + 'devel' => '7b62b75245f57f122d3e0f8ed7989623', ); @@ -391,6 +392,24 @@ EOT; @touch(DOKU_INC.'data/cache/autosubmit.txt'); } + // disable auth plugins til needed + $output = <<<EOT +<?php +/* + * Local plugin enable/disable settings + * + * Auto-generated by install script + * Date: $now + */ + +\$plugins['authad'] = 0; +\$plugins['authldap'] = 0; +\$plugins['authmysql'] = 0; +\$plugins['authpgsql'] = 0; + +EOT; + $ok = $ok && fileWrite(DOKU_LOCAL.'plugins.local.php', $output); + return $ok; } diff --git a/lib/exe/detail.php b/lib/exe/detail.php index e597db3a29911ae8aba0aae5f8e0c1f823c4336c..db635c016180bbb8f31d997f57967b190197db18 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -31,7 +31,7 @@ if($AUTH >= AUTH_READ){ $SRC = mediaFN($IMG); if(!@file_exists($SRC)){ //doesn't exist! - header("HTTP/1.0 404 File not Found"); + http_status(404); $ERROR = 'File not found'; } }else{ diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php index 52e7ebe1e10e807f82fc6b76eded65d2963600f5..9bac4d272abd26b6dcff454457f10095681a929a 100644 --- a/lib/exe/fetch.php +++ b/lib/exe/fetch.php @@ -6,84 +6,87 @@ * @author Andreas Gohr <andi@splitbrain.org> */ - if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); - define('DOKU_DISABLE_GZIP_OUTPUT', 1); - require_once(DOKU_INC.'inc/init.php'); - - //close session - session_write_close(); - - $mimetypes = getMimeTypes(); - - //get input - $MEDIA = stripctl(getID('media',false)); // no cleaning except control chars - maybe external - $CACHE = calc_cache($INPUT->str('cache')); - $WIDTH = $INPUT->int('w'); - $HEIGHT = $INPUT->int('h'); - $REV = &$INPUT->ref('rev'); - //sanitize revision - $REV = preg_replace('/[^0-9]/','',$REV); - - list($EXT,$MIME,$DL) = mimetype($MEDIA,false); - if($EXT === false){ - $EXT = 'unknown'; - $MIME = 'application/octet-stream'; - $DL = true; - } - - // check for permissions, preconditions and cache external files - list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE, $REV); - - // prepare data for plugin events - $data = array('media' => $MEDIA, - 'file' => $FILE, - 'orig' => $FILE, - 'mime' => $MIME, - 'download' => $DL, - 'cache' => $CACHE, - 'ext' => $EXT, - 'width' => $WIDTH, - 'height' => $HEIGHT, - 'status' => $STATUS, - 'statusmessage' => $STATUSMESSAGE, - ); - - // handle the file status - $evt = new Doku_Event('FETCH_MEDIA_STATUS', $data); - if ( $evt->advise_before() ) { - // redirects - if($data['status'] > 300 && $data['status'] <= 304){ - send_redirect($data['statusmessage']); +if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/../../'); +define('DOKU_DISABLE_GZIP_OUTPUT', 1); +require_once(DOKU_INC.'inc/init.php'); +session_write_close(); //close session + +// BEGIN main (if not testing) +if(!defined('SIMPLE_TEST')) { + $mimetypes = getMimeTypes(); + + //get input + $MEDIA = stripctl(getID('media', false)); // no cleaning except control chars - maybe external + $CACHE = calc_cache($INPUT->str('cache')); + $WIDTH = $INPUT->int('w'); + $HEIGHT = $INPUT->int('h'); + $REV = & $INPUT->ref('rev'); + //sanitize revision + $REV = preg_replace('/[^0-9]/', '', $REV); + + list($EXT, $MIME, $DL) = mimetype($MEDIA, false); + if($EXT === false) { + $EXT = 'unknown'; + $MIME = 'application/octet-stream'; + $DL = true; } - // send any non 200 status - if($data['status'] != 200){ - header('HTTP/1.0 ' . $data['status'] . ' ' . $data['statusmessage']); + + // check for permissions, preconditions and cache external files + list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE, $REV); + + // prepare data for plugin events + $data = array( + 'media' => $MEDIA, + 'file' => $FILE, + 'orig' => $FILE, + 'mime' => $MIME, + 'download' => $DL, + 'cache' => $CACHE, + 'ext' => $EXT, + 'width' => $WIDTH, + 'height' => $HEIGHT, + 'status' => $STATUS, + 'statusmessage' => $STATUSMESSAGE, + ); + + // handle the file status + $evt = new Doku_Event('FETCH_MEDIA_STATUS', $data); + if($evt->advise_before()) { + // redirects + if($data['status'] > 300 && $data['status'] <= 304) { + send_redirect($data['statusmessage']); + } + // send any non 200 status + if($data['status'] != 200) { + http_status($data['status'], $data['statusmessage']); + } + // die on errors + if($data['status'] > 203) { + print $data['statusmessage']; + exit; + } } - // die on errors - if($data['status'] > 203){ - print $data['statusmessage']; - exit; + $evt->advise_after(); + unset($evt); + + //handle image resizing/cropping + if((substr($MIME, 0, 5) == 'image') && $WIDTH) { + if($HEIGHT) { + $data['file'] = $FILE = media_crop_image($data['file'], $EXT, $WIDTH, $HEIGHT); + } else { + $data['file'] = $FILE = media_resize_image($data['file'], $EXT, $WIDTH, $HEIGHT); + } } - } - $evt->advise_after(); - unset($evt); - - //handle image resizing/cropping - if((substr($MIME,0,5) == 'image') && $WIDTH){ - if($HEIGHT){ - $data['file'] = $FILE = media_crop_image($data['file'],$EXT,$WIDTH,$HEIGHT); - }else{ - $data['file'] = $FILE = media_resize_image($data['file'],$EXT,$WIDTH,$HEIGHT); + + // finally send the file to the client + $evt = new Doku_Event('MEDIA_SENDFILE', $data); + if($evt->advise_before()) { + sendFile($data['file'], $data['mime'], $data['download'], $data['cache']); } - } + // Do something after the download finished. + $evt->advise_after(); - // finally send the file to the client - $evt = new Doku_Event('MEDIA_SENDFILE', $data); - if ($evt->advise_before()) { - sendFile($data['file'],$data['mime'],$data['download'],$data['cache']); - } - // Do something after the download finished. - $evt->advise_after(); +}// END DO main /* ------------------------------------------------------------------------ */ @@ -93,51 +96,50 @@ * @author Andreas Gohr <andi@splitbrain.org> * @author Ben Coburn <btcoburn@silicodon.net> */ -function sendFile($file,$mime,$dl,$cache){ - global $conf; - $fmtime = @filemtime($file); - // send headers - header("Content-Type: $mime"); - // smart http caching headers - if ($cache==-1) { - // cache - // cachetime or one hour - header('Expires: '.gmdate("D, d M Y H:i:s", time()+max($conf['cachetime'], 3600)).' GMT'); - header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.max($conf['cachetime'], 3600)); - header('Pragma: public'); - } else if ($cache>0) { - // recache - // remaining cachetime + 10 seconds so the newly recached media is used - header('Expires: '.gmdate("D, d M Y H:i:s", $fmtime+$conf['cachetime']+10).' GMT'); - header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.max($fmtime-time()+$conf['cachetime']+10, 0)); - header('Pragma: public'); - } else if ($cache==0) { - // nocache - header('Cache-Control: must-revalidate, no-transform, post-check=0, pre-check=0'); - header('Pragma: public'); - } - //send important headers first, script stops here if '304 Not Modified' response - http_conditionalRequest($fmtime); - - - //download or display? - if($dl){ - header('Content-Disposition: attachment; filename="'.utf8_basename($file).'";'); - }else{ - header('Content-Disposition: inline; filename="'.utf8_basename($file).'";'); - } - - //use x-sendfile header to pass the delivery to compatible webservers - if (http_sendfile($file)) exit; - - // send file contents - $fp = @fopen($file,"rb"); - if($fp){ - http_rangeRequest($fp,filesize($file),$mime); - }else{ - header("HTTP/1.0 500 Internal Server Error"); - print "Could not read $file - bad permissions?"; - } +function sendFile($file, $mime, $dl, $cache) { + global $conf; + $fmtime = @filemtime($file); + // send headers + header("Content-Type: $mime"); + // smart http caching headers + if($cache == -1) { + // cache + // cachetime or one hour + header('Expires: '.gmdate("D, d M Y H:i:s", time() + max($conf['cachetime'], 3600)).' GMT'); + header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.max($conf['cachetime'], 3600)); + header('Pragma: public'); + } else if($cache > 0) { + // recache + // remaining cachetime + 10 seconds so the newly recached media is used + header('Expires: '.gmdate("D, d M Y H:i:s", $fmtime + $conf['cachetime'] + 10).' GMT'); + header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.max($fmtime - time() + $conf['cachetime'] + 10, 0)); + header('Pragma: public'); + } else if($cache == 0) { + // nocache + header('Cache-Control: must-revalidate, no-transform, post-check=0, pre-check=0'); + header('Pragma: public'); + } + //send important headers first, script stops here if '304 Not Modified' response + http_conditionalRequest($fmtime); + + //download or display? + if($dl) { + header('Content-Disposition: attachment; filename="'.utf8_basename($file).'";'); + } else { + header('Content-Disposition: inline; filename="'.utf8_basename($file).'";'); + } + + //use x-sendfile header to pass the delivery to compatible webservers + if(http_sendfile($file)) exit; + + // send file contents + $fp = @fopen($file, "rb"); + if($fp) { + http_rangeRequest($fp, filesize($file), $mime); + } else { + http_status(500); + print "Could not read $file - bad permissions?"; + } } /** @@ -148,43 +150,43 @@ function sendFile($file,$mime,$dl,$cache){ * * @author Gerry Weissbach <gerry.w@gammaproduction.de> * @param $media reference to the media id - * @param $file reference to the file variable + * @param $file reference to the file variable * @returns array(STATUS, STATUSMESSAGE) */ -function checkFileStatus(&$media, &$file, $rev='') { - global $MIME, $EXT, $CACHE, $INPUT; - - //media to local file - if(preg_match('#^(https?)://#i',$media)){ - //check hash - if(substr(md5(auth_cookiesalt().$media),0,6) !== $INPUT->str('hash')){ - return array( 412, 'Precondition Failed'); - } - //handle external images - if(strncmp($MIME,'image/',6) == 0) $file = media_get_from_URL($media,$EXT,$CACHE); - if(!$file){ - //download failed - redirect to original URL - return array( 302, $media ); - } - }else{ - $media = cleanID($media); - if(empty($media)){ - return array( 400, 'Bad request' ); +function checkFileStatus(&$media, &$file, $rev = '') { + global $MIME, $EXT, $CACHE, $INPUT; + + //media to local file + if(preg_match('#^(https?)://#i', $media)) { + //check hash + if(substr(md5(auth_cookiesalt().$media), 0, 6) !== $INPUT->str('hash')) { + return array(412, 'Precondition Failed'); + } + //handle external images + if(strncmp($MIME, 'image/', 6) == 0) $file = media_get_from_URL($media, $EXT, $CACHE); + if(!$file) { + //download failed - redirect to original URL + return array(302, $media); + } + } else { + $media = cleanID($media); + if(empty($media)) { + return array(400, 'Bad request'); + } + + //check permissions (namespace only) + if(auth_quickaclcheck(getNS($media).':X') < AUTH_READ) { + return array(403, 'Forbidden'); + } + $file = mediaFN($media, $rev); } - //check permissions (namespace only) - if(auth_quickaclcheck(getNS($media).':X') < AUTH_READ){ - return array( 403, 'Forbidden' ); + //check file existance + if(!@file_exists($file)) { + return array(404, 'Not Found'); } - $file = mediaFN($media, $rev); - } - - //check file existance - if(!@file_exists($file)){ - return array( 404, 'Not Found' ); - } - return array(200, null); + return array(200, null); } /** @@ -194,12 +196,12 @@ function checkFileStatus(&$media, &$file, $rev='') { * * @author Andreas Gohr <andi@splitbrain.org> */ -function calc_cache($cache){ - global $conf; +function calc_cache($cache) { + global $conf; - if(strtolower($cache) == 'nocache') return 0; //never cache - if(strtolower($cache) == 'recache') return $conf['cachetime']; //use standard cache - return -1; //cache endless + if(strtolower($cache) == 'nocache') return 0; //never cache + if(strtolower($cache) == 'recache') return $conf['cachetime']; //use standard cache + return -1; //cache endless } //Setup VIM: ex: et ts=2 : diff --git a/lib/exe/js.php b/lib/exe/js.php index 41d3e735c9a9dbe801d75e282546fbcec707e61e..4ff48133e7d62d1a9d24b23abb778c2877d88d02 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -62,7 +62,7 @@ function js_out(){ DOKU_INC.'lib/scripts/locktimer.js', DOKU_INC.'lib/scripts/linkwiz.js', DOKU_INC.'lib/scripts/media.js', - DOKU_INC.'lib/scripts/compatibility.js', +# deprecated DOKU_INC.'lib/scripts/compatibility.js', # disabled for FS#1958 DOKU_INC.'lib/scripts/hotkeys.js', DOKU_INC.'lib/scripts/behaviour.js', DOKU_INC.'lib/scripts/page.js', diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index 04dd178cc82a81ac2c242bf102d53d34f0896424..53d438321288c8d1d1bb7d5e0e8fc5c882ee1e8d 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -36,19 +36,16 @@ // do not display the manager if user does not have read access if($AUTH < AUTH_READ && !$fullscreen) { - header('HTTP/1.0 403 Forbidden'); + http_status(403); die($lang['accessdenied']); } - // create the given namespace (just for beautification) - if($AUTH >= AUTH_UPLOAD) { io_createNamespace("$NS:xxx", 'media'); } - // handle flash upload if(isset($_FILES['Filedata'])){ $_FILES['upload'] =& $_FILES['Filedata']; $JUMPTO = media_upload($NS,$AUTH); if($JUMPTO == false){ - header("HTTP/1.0 400 Bad Request"); + http_status(400); echo 'Upload failed'; } echo 'ok'; diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index 5e6c197d03769b15723733b133251dffe6c71379..c09daa17c00d76c8e65a4f5c515e30167f48934d 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -29,10 +29,10 @@ class dokuwiki_xmlrpc_server extends IXR_Server { return $result; } catch (RemoteAccessDeniedException $e) { if (!isset($_SERVER['REMOTE_USER'])) { - header('HTTP/1.1 401 Unauthorized'); + http_status(401); return new IXR_Error(-32603, "server error. not authorized to call method $methodname"); } else { - header('HTTP/1.1 403 Forbidden'); + http_status(403); return new IXR_Error(-32604, "server error. forbidden to call the method $methodname"); } } catch (RemoteException $e) { diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index 0ba91cdc9e8af0d708a10ed7b2a8948478bc73d7..c3763dc8d39f11dc1744c7493e871de642d67190 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -117,11 +117,3 @@ var dw_acl = { }; jQuery(dw_acl.init); - -var acl = { - init: DEPRECATED_WRAP(dw_acl.init, dw_acl), - userselhandler: DEPRECATED_WRAP(dw_acl.userselhandler, dw_acl), - loadinfo: DEPRECATED_WRAP(dw_acl.loadinfo, dw_acl), - parseatt: DEPRECATED_WRAP(dw_acl.parseatt, dw_acl), - treehandler: DEPRECATED_WRAP(dw_acl.treehandler, dw_acl) -}; diff --git a/lib/plugins/auth.php b/lib/plugins/auth.php index 42dbf1859f56cc949bd30abce2ef8fd806aca37a..c14a04dfba8ee14c00407fac4d2bc93107f0868d 100644 --- a/lib/plugins/auth.php +++ b/lib/plugins/auth.php @@ -434,6 +434,7 @@ class DokuWiki_Auth_Plugin extends DokuWiki_Plugin { if(isset($conf['auth'][$plugin])) $oldconf = (array) $conf['auth'][$plugin]; $conf['plugin'][$plugin] = array_merge($default, $oldconf, $conf['plugin'][$plugin]); + $this->conf =& $conf['plugin'][$plugin]; $this->configloaded = true; } } diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index a3cfae9f8e4d0686708d335240752b752d2e0392..4a84d6dc8e5e616e01146ae091da0c15c0c292b9 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -84,7 +84,7 @@ if (!class_exists('configuration')) { array_shift($param); } else { $class = 'setting_undefined'; - $param = NULL; + $param = null; } if (!in_array($class, $no_default_check) && !isset($default[$key])) { @@ -358,13 +358,13 @@ if (!class_exists('setting')) { class setting { var $_key = ''; - var $_default = NULL; - var $_local = NULL; - var $_protected = NULL; + var $_default = null; + var $_local = null; + var $_protected = null; var $_pattern = ''; var $_error = false; // only used by those classes which error check - var $_input = NULL; // only used by those classes which error check + var $_input = null; // only used by those classes which error check var $_cautionList = array( 'basedir' => 'danger', 'baseurl' => 'danger', 'savedir' => 'danger', 'cookiedir' => 'danger', 'useacl' => 'danger', 'authtype' => 'danger', 'superuser' => 'danger', 'userewrite' => 'danger', @@ -372,7 +372,7 @@ if (!class_exists('setting')) { 'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'xmlrpc' => 'security', 'fullpath' => 'security' ); - function setting($key, $params=NULL) { + function setting($key, $params=null) { $this->_key = $key; if (is_array($params)) { @@ -661,6 +661,7 @@ if (!class_exists('setting_email')) { class setting_email extends setting_string { var $_pattern = SETTING_EMAIL_PATTERN; // no longer required, retained for backward compatibility - FIXME, may not be necessary var $_multiple = false; + var $_placeholders = false; /** * update setting with user provided value $input @@ -674,15 +675,36 @@ if (!class_exists('setting_email')) { $value = is_null($this->_local) ? $this->_default : $this->_local; if ($value == $input) return false; + if($input === ''){ + $this->_local = $input; + return true; + } + $mail = $input; + + if($this->_placeholders){ + // replace variables with pseudo values + $mail = str_replace('@USER@','joe',$mail); + $mail = str_replace('@NAME@','Joe Schmoe',$mail); + $mail = str_replace('@MAIL@','joe@example.com',$mail); + } + // multiple mail addresses? if ($this->_multiple) { - $mails = array_filter(array_map('trim', explode(',', $input))); + $mails = array_filter(array_map('trim', explode(',', $mail))); } else { - $mails = array($input); + $mails = array($mail); } + // check them all foreach ($mails as $mail) { - if (!mail_isvalid($mail)) { + // only check the address part + if(preg_match('#(.*?)<(.*?)>#', $mail, $matches)){ + $addr = $matches[2]; + }else{ + $addr = $mail; + } + + if (!mail_isvalid($addr)) { $this->_error = true; $this->_input = $input; return false; @@ -695,46 +717,15 @@ if (!class_exists('setting_email')) { } } +/** + * @deprecated 2013-02-16 + */ if (!class_exists('setting_richemail')) { class setting_richemail extends setting_email { - - /** - * update setting with user provided value $input - * if value fails error check, save it - * - * @return boolean true if changed, false otherwise (incl. on error) - */ - function update($input) { - if (is_null($input)) return false; - if ($this->is_protected()) return false; - - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; - - // replace variables with pseudo values - $test = $input; - $test = str_replace('@USER@','joe',$test); - $test = str_replace('@NAME@','Joe Schmoe',$test); - $test = str_replace('@MAIL@','joe@example.com',$test); - - // now only check the address part - if(preg_match('#(.*?)<(.*?)>#',$test,$matches)){ - $text = trim($matches[1]); - $addr = $matches[2]; - }else{ - $addr = $test; - } - - if ($test !== '' && !mail_isvalid($addr)) { - $this->_error = true; - $this->_input = $input; - return false; - } - - $this->_local = $input; - return true; - } - + function update($input) { + $this->_placeholders = true; + return parent::update($input); + } } } diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index 585015085fb1d721e7996d4491e1ac0c86fdbcf5..bdbc4311f407a541f80167c8d5d045cdbc005de5 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -20,9 +20,7 @@ * 'numericopt' - like above, but accepts empty values * 'onoff' - checkbox input, setting output 0|1 * 'multichoice' - select input (single choice), setting output with quotes, required _choices parameter - * 'email' - text input, input must conform to email address format, setting output in quotes - * 'richemail' - text input, input must conform to email address format but accepts variables and - * emails with a real name prepended (when email address is given in <>) + * 'email' - text input, input must conform to email address format * 'password' - password input, minimal input validation, setting output text in quotes, maybe encoded * according to the _code parameter * 'dirchoice' - as multichoice, selection choices based on folders found at location specified in _dir @@ -129,7 +127,7 @@ $meta['_authentication'] = array('fieldset'); $meta['useacl'] = array('onoff'); $meta['autopasswd'] = array('onoff'); $meta['authtype'] = array('authtype'); -$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5','mediawiki','bcrypt','sha512')); +$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5','mediawiki','bcrypt','djangomd5','djangosha1','sha512')); $meta['defaultgroup']= array('string'); $meta['superuser'] = array('string'); $meta['manager'] = array('string'); @@ -177,8 +175,8 @@ $meta['_notifications'] = array('fieldset'); $meta['subscribers'] = array('onoff'); $meta['subscribe_time'] = array('numeric'); $meta['notify'] = array('email', '_multiple' => true); -$meta['registernotify'] = array('email'); -$meta['mailfrom'] = array('richemail'); +$meta['registernotify'] = array('email', '_multiple' => true); +$meta['mailfrom'] = array('email', '_placeholders' => true); $meta['mailprefix'] = array('string'); $meta['htmlmail'] = array('onoff'); diff --git a/lib/plugins/config/style.css b/lib/plugins/config/style.css index 3973289372bde23e695f4b497dd29405e636536f..054021ed8739a84bb07e47f5d3d620e191ac960c 100644 --- a/lib/plugins/config/style.css +++ b/lib/plugins/config/style.css @@ -154,15 +154,6 @@ } -/* IE6 correction */ -* html #config__manager .selection label { - padding-top: 2px; -} - -#config__manager .selection input.checkbox { - padding-left: 0.7em; -} - #config__manager .other { clear: both; padding-top: 0.5em; diff --git a/lib/plugins/info/plugin.info.txt b/lib/plugins/info/plugin.info.txt index 5c7d583c0a2d4f9d745156181929c9cf3eae6772..0537436395c7137638391967246b58fb27cdc7e0 100644 --- a/lib/plugins/info/plugin.info.txt +++ b/lib/plugins/info/plugin.info.txt @@ -1,7 +1,7 @@ base info author Andreas Gohr email andi@splitbrain.org -date 2012-02-04 +date 2013-02-16 name Info Plugin desc Displays information about various DokuWiki internals url http://dokuwiki.org/plugin:info diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php index d813aa23a7789343733f434f222bf8d1118ebc3f..97b28076bce24c4554f14323fcd7030b7bdcf083 100644 --- a/lib/plugins/info/syntax.php +++ b/lib/plugins/info/syntax.php @@ -60,9 +60,6 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { if($format == 'xhtml'){ //handle various info stuff switch ($data[0]){ - case 'version': - $renderer->doc .= getVersion(); - break; case 'syntaxmodes': $renderer->doc .= $this->_syntaxmodes_xhtml(); break; diff --git a/lib/plugins/plugin/lang/ar/lang.php b/lib/plugins/plugin/lang/ar/lang.php index 8327e5ce3d81f9d6683cd050763ebb287b6f7059..a1a778131490483cab1b7953241924a23972b37b 100644 --- a/lib/plugins/plugin/lang/ar/lang.php +++ b/lib/plugins/plugin/lang/ar/lang.php @@ -50,4 +50,4 @@ $lang['enabled'] = 'Ø§Ù„Ø§Ø¶Ø§ÙØ© %s ÙÙØ¹Ù„ت. '; $lang['notenabled'] = 'تعذر ØªÙØ¹ÙŠÙ„ Ø§Ù„Ø§Ø¶Ø§ÙØ© %sØŒ تØÙ‚Ù‚ من اذونات الملÙ.'; $lang['disabled'] = 'Ø¹ÙØ·Ù„ت Ø§Ù„Ø¥Ø¶Ø§ÙØ© %s.'; $lang['notdisabled'] = 'تعذر تعطيل Ø§Ù„Ø¥Ø¶Ø§ÙØ© %sØŒ تØÙ‚Ù‚ من اذونات الملÙ.'; -$lang['packageinstalled'] = 'ØØ²Ù…Ø© Ø§Ù„Ø¥Ø¶Ø§ÙØ© (%d plugin(s): %Xs) ثبتت بنجاج.'; +$lang['packageinstalled'] = 'ØØ²Ù…Ø© Ø§Ù„Ø¥Ø¶Ø§ÙØ© (%d plugin(s): %s) ثبتت بنجاج.'; diff --git a/lib/plugins/plugin/lang/hi/lang.php b/lib/plugins/plugin/lang/hi/lang.php index ab29c655007eacc3adada2f664eb651834636923..67b177256df0dc03650f14d92199c383d15a5da5 100644 --- a/lib/plugins/plugin/lang/hi/lang.php +++ b/lib/plugins/plugin/lang/hi/lang.php @@ -6,7 +6,6 @@ * @author yndesai@gmail.com */ $lang['unknown'] = 'अजà¥à¤žà¤¾à¤¤'; -$lang['deleted'] = 'मिटाया हà¥à¤†'; $lang['date'] = 'दिनांक:'; $lang['author'] = 'लेखक:'; $lang['error'] = 'अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤‡'; diff --git a/lib/plugins/plugin/lang/pl/lang.php b/lib/plugins/plugin/lang/pl/lang.php index 1d3bbbc0316fdacf1e249f4930bf29a84f19608f..faaa69630d1e8776e75c56b76aab641ab066df69 100644 --- a/lib/plugins/plugin/lang/pl/lang.php +++ b/lib/plugins/plugin/lang/pl/lang.php @@ -60,4 +60,4 @@ $lang['enabled'] = 'Wtyczka %s włączona.'; $lang['notenabled'] = 'Nie udaÅ‚o siÄ™ uruchomić wtyczki %s, sprawdź uprawnienia dostÄ™pu do plików.'; $lang['disabled'] = 'Wtyczka %s wyłączona.'; $lang['notdisabled'] = 'Nie udaÅ‚o siÄ™ wyłączyć wtyczki %s, sprawdź uprawnienia dostÄ™pu do plików.'; -$lang['packageinstalled'] = 'Pakiet wtyczek (%d wtyczki:% s) zainstalowany pomyÅ›lnie.'; +$lang['packageinstalled'] = 'Pakiet wtyczek (%d wtyczki: %s) zainstalowany pomyÅ›lnie.'; diff --git a/lib/plugins/plugin/lang/zh-tw/lang.php b/lib/plugins/plugin/lang/zh-tw/lang.php index 7b38a02c8929c79d7103eb30ea19a3a3ac94e3be..56149e79ede8250fc99cc2cc576b6d1afa46bf75 100644 --- a/lib/plugins/plugin/lang/zh-tw/lang.php +++ b/lib/plugins/plugin/lang/zh-tw/lang.php @@ -56,4 +56,4 @@ $lang['enabled'] = 'é™„åŠ å…ƒä»¶ %s 已啟用。'; $lang['notenabled'] = 'é™„åŠ å…ƒä»¶ %s 無法啟用,請檢查檔案權é™ã€‚'; $lang['disabled'] = 'é™„åŠ å…ƒä»¶ %s å·²åœç”¨ã€‚'; $lang['notdisabled'] = 'é™„åŠ å…ƒä»¶ %s 無法åœç”¨ï¼Œè«‹æª¢æŸ¥æª”案權é™ã€‚'; -$lang['packageinstalled'] = 'é™„åŠ å…ƒä»¶ (%d é™„åŠ å…ƒä»¶%s: %s) 已安è£å¥½ã€‚'; +$lang['packageinstalled'] = 'é™„åŠ å…ƒä»¶ (%d é™„åŠ å…ƒä»¶: %s) 已安è£å¥½ã€‚'; diff --git a/lib/plugins/usermanager/lang/ca-valencia/lang.php b/lib/plugins/usermanager/lang/ca-valencia/lang.php index 5b0c628ed34402cca33ae9ae5d9b22dc6f26550e..c39c2f9b3345c8f7e6d7d380e5a8a019e9fd81e6 100644 --- a/lib/plugins/usermanager/lang/ca-valencia/lang.php +++ b/lib/plugins/usermanager/lang/ca-valencia/lang.php @@ -33,7 +33,7 @@ $lang['delete_ok'] = '%d usuaris borrats'; $lang['delete_fail'] = 'Erro borrant %d.'; $lang['update_ok'] = 'Usuari actualisat correctament'; $lang['update_fail'] = 'Erro actualisant usuari'; -$lang['update_exists'] = 'Erro canviant el nom de l\'usuari, el nom d\'usuari que ha donat ya existix (els demés canvis s\'aplicaran).'; +$lang['update_exists'] = 'Erro canviant el nom de l\'usuari (%s), el nom d\'usuari que ha donat ya existix (els demés canvis s\'aplicaran).'; $lang['start'] = 'primera'; $lang['prev'] = 'anterior'; $lang['next'] = 'següent'; diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index bb04828b4bd57031626019940bbf875b38e283fb..c55650d6856b8e2416cfc17ad4ad792b70fddc5e 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -50,6 +50,9 @@ var dw_linkwiz = { jQuery(dw_linkwiz.result).css('position', 'relative'); dw_linkwiz.$entry = jQuery('#link__wiz_entry'); + if(JSINFO.namespace){ + dw_linkwiz.$entry.val(JSINFO.namespace+':'); + } // attach event handlers jQuery('#link__wiz .ui-dialog-titlebar-close').click(dw_linkwiz.hide); @@ -102,7 +105,7 @@ var dw_linkwiz = { /** * Get one of the results by index * - * @param int result div to return + * @param num int result div to return * @returns DOMObject or null */ getResult: function(num){ @@ -113,7 +116,7 @@ var dw_linkwiz = { /** * Get one of the results by index * - * @param int result div to return + * @param num int result div to return * @returns jQuery object */ $getResult: function(num) { diff --git a/lib/scripts/qsearch.js b/lib/scripts/qsearch.js index 0c3609adaf3a395ffac4ab322d0e54f5ce0f183e..e5cc73b494cb6142fc9f2cce8e6881874d22e268 100644 --- a/lib/scripts/qsearch.js +++ b/lib/scripts/qsearch.js @@ -12,6 +12,7 @@ var dw_qsearch = { $inObj: null, $outObj: null, timer: null, + curRequest: null, /** * initialize the quick search @@ -35,12 +36,16 @@ var dw_qsearch = { // attach eventhandler to search field do_qsearch = function () { + // abort any previous request + if (dw_qsearch.curRequest != null) { + dw_qsearch.curRequest.abort(); + } var value = dw_qsearch.$inObj.val(); if (value === '') { dw_qsearch.clear_results(); return; } - jQuery.post( + dw_qsearch.curRequest = jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', { call: 'qsearch', @@ -84,6 +89,8 @@ var dw_qsearch = { onCompletion: function(data) { var max, $links, too_big; + dw_qsearch.curRequest = null; + if (data === '') { dw_qsearch.clear_results(); return; diff --git a/lib/tpl/dokuwiki/css/_edit.css b/lib/tpl/dokuwiki/css/_edit.css index 0c66c75b7c45302bf6b59c536579049add3a39dc..92ce621269070ffde1334d777c1101aeaa4c8b06 100644 --- a/lib/tpl/dokuwiki/css/_edit.css +++ b/lib/tpl/dokuwiki/css/_edit.css @@ -13,7 +13,6 @@ .dokuwiki div.toolbar { margin-bottom: .5em; - overflow: hidden; } #draft__status { float: right; diff --git a/lib/tpl/dokuwiki/script.js b/lib/tpl/dokuwiki/script.js index 3ed8dbabec1a1fdf552ba8a3a9bbdc0904993a60..375500f7899398b0fd6ca3476c43e44d271bcc13 100644 --- a/lib/tpl/dokuwiki/script.js +++ b/lib/tpl/dokuwiki/script.js @@ -1,11 +1,10 @@ /** * We handle several device classes based on browser width. - * see http://twitter.github.com/bootstrap/scaffolding.html#responsive * - * - desktop: 980+ - * - mobile: < 980 - * - tablet 481 - 979 (ostensibly for tablets in portrait mode) - * - phone <= 480 + * - desktop: > __tablet_width__ (as set in style.ini) + * - mobile: + * - tablet <= __tablet_width__ + * - phone <= __phone_width__ */ var device_class = ''; // not yet known var device_classes = 'desktop mobile tablet phone';