summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorAnika Henke <anika@selfthinker.org>2013-11-02 13:10:14 +0000
committerAnika Henke <anika@selfthinker.org>2013-11-02 13:10:14 +0000
commitc5393ecb1aa570830d21e9dc95b4c21cd9aa9c01 (patch)
tree96e8dc34468a325596a5f94c85e38374fbc4b9ba /inc
parent71c1143e8785954ea00a62aeb755ca7d8fa47e56 (diff)
parent38d74b12176722ce52dc1905c13816a78a2551ee (diff)
downloadrpg-c5393ecb1aa570830d21e9dc95b4c21cd9aa9c01.tar.gz
rpg-c5393ecb1aa570830d21e9dc95b4c21cd9aa9c01.tar.bz2
Merge remote-tracking branch 'origin/master' into video-audio
Conflicts: inc/parser/xhtml.php
Diffstat (limited to 'inc')
-rw-r--r--inc/DifferenceEngine.php2
-rw-r--r--inc/HTTPClient.php2
-rw-r--r--inc/Input.class.php1
-rw-r--r--inc/JpegMeta.php16
-rw-r--r--inc/Mailer.class.php44
-rw-r--r--inc/RemoteAPICore.php7
-rw-r--r--inc/SimplePie.php6
-rw-r--r--inc/actions.php3
-rw-r--r--inc/auth.php59
-rw-r--r--inc/changelog.php2
-rw-r--r--inc/common.php11
-rw-r--r--inc/compatibility.php36
-rw-r--r--inc/farm.php2
-rw-r--r--inc/fulltext.php1
-rw-r--r--inc/html.php28
-rw-r--r--inc/indexer.php25
-rw-r--r--inc/infoutils.php5
-rw-r--r--inc/init.php6
-rw-r--r--inc/io.php2
-rw-r--r--inc/lang/af/lang.php1
-rw-r--r--inc/lang/ar/lang.php13
-rw-r--r--inc/lang/az/lang.php8
-rw-r--r--inc/lang/bg/lang.php1
-rw-r--r--inc/lang/ca-valencia/lang.php9
-rw-r--r--inc/lang/ca/lang.php1
-rw-r--r--inc/lang/cs/lang.php21
-rw-r--r--inc/lang/cs/registermail.txt2
-rw-r--r--inc/lang/da/lang.php15
-rw-r--r--inc/lang/de-informal/lang.php9
-rw-r--r--inc/lang/de/admin.txt2
-rw-r--r--inc/lang/de/backlinks.txt2
-rw-r--r--inc/lang/de/lang.php9
-rw-r--r--inc/lang/el/lang.php13
-rw-r--r--inc/lang/en/lang.php7
-rw-r--r--inc/lang/eo/admin.txt2
-rw-r--r--inc/lang/eo/lang.php12
-rw-r--r--inc/lang/es/lang.php19
-rw-r--r--inc/lang/et/lang.php1
-rw-r--r--inc/lang/eu/lang.php1
-rw-r--r--inc/lang/fa/lang.php17
-rw-r--r--inc/lang/fi/lang.php1
-rw-r--r--inc/lang/fo/lang.php1
-rw-r--r--inc/lang/fr/diff.txt2
-rw-r--r--inc/lang/fr/lang.php13
-rw-r--r--inc/lang/gl/lang.php1
-rw-r--r--inc/lang/he/lang.php35
-rw-r--r--inc/lang/hi/diff.txt3
-rw-r--r--inc/lang/hi/lang.php18
-rw-r--r--inc/lang/hr/lang.php1
-rw-r--r--inc/lang/hu/lang.php13
-rw-r--r--inc/lang/ia/lang.php1
-rw-r--r--inc/lang/id/lang.php7
-rw-r--r--inc/lang/is/lang.php1
-rw-r--r--inc/lang/it/lang.php13
-rw-r--r--inc/lang/ja/lang.php17
-rw-r--r--inc/lang/km/lang.php17
-rw-r--r--inc/lang/ko/admin.txt4
-rw-r--r--inc/lang/ko/conflict.txt4
-rw-r--r--inc/lang/ko/denied.txt2
-rw-r--r--inc/lang/ko/diff.txt2
-rw-r--r--inc/lang/ko/draft.txt2
-rw-r--r--inc/lang/ko/edit.txt2
-rw-r--r--inc/lang/ko/editrev.txt2
-rw-r--r--inc/lang/ko/index.txt2
-rw-r--r--inc/lang/ko/lang.php167
-rw-r--r--inc/lang/ko/locked.txt4
-rw-r--r--inc/lang/ko/mailtext.txt6
-rw-r--r--inc/lang/ko/mailwrap.html20
-rw-r--r--inc/lang/ko/newpage.txt2
-rw-r--r--inc/lang/ko/norev.txt2
-rw-r--r--inc/lang/ko/password.txt8
-rw-r--r--inc/lang/ko/pwconfirm.txt8
-rw-r--r--inc/lang/ko/registermail.txt6
-rw-r--r--inc/lang/ko/resendpwd.txt2
-rw-r--r--inc/lang/ko/resetpwd.txt2
-rw-r--r--inc/lang/ko/revisions.txt2
-rw-r--r--inc/lang/ko/searchpage.txt2
-rw-r--r--inc/lang/ko/stopwords.txt6
-rw-r--r--inc/lang/ko/subscr_digest.txt4
-rw-r--r--inc/lang/ko/subscr_list.txt4
-rw-r--r--inc/lang/ko/subscr_single.txt4
-rw-r--r--inc/lang/ko/uploadmail.txt4
-rw-r--r--inc/lang/ku/lang.php21
-rw-r--r--inc/lang/la/lang.php1
-rw-r--r--inc/lang/lb/lang.php1
-rw-r--r--inc/lang/lt/lang.php7
-rw-r--r--inc/lang/lv/lang.php1
-rw-r--r--inc/lang/mg/lang.php14
-rw-r--r--inc/lang/mk/lang.php1
-rw-r--r--inc/lang/mr/lang.php1
-rw-r--r--inc/lang/ne/lang.php20
-rw-r--r--inc/lang/nl/lang.php14
-rw-r--r--inc/lang/nl/mailtext.txt4
-rw-r--r--inc/lang/nl/read.txt2
-rw-r--r--inc/lang/nl/resendpwd.txt2
-rw-r--r--inc/lang/nl/subscr_form.txt2
-rw-r--r--inc/lang/nl/subscr_list.txt2
-rw-r--r--inc/lang/no/lang.php1
-rw-r--r--inc/lang/pl/lang.php1
-rw-r--r--inc/lang/pt-br/lang.php12
-rw-r--r--inc/lang/pt/lang.php108
-rw-r--r--inc/lang/ro/lang.php245
-rw-r--r--inc/lang/ru/denied.txt2
-rw-r--r--inc/lang/ru/diff.txt2
-rw-r--r--inc/lang/ru/lang.php55
-rw-r--r--inc/lang/ru/mailtext.txt16
-rw-r--r--inc/lang/ru/password.txt1
-rw-r--r--inc/lang/ru/registermail.txt14
-rw-r--r--inc/lang/ru/subscr_single.txt1
-rw-r--r--inc/lang/ru/uploadmail.txt16
-rw-r--r--inc/lang/sk/lang.php15
-rw-r--r--inc/lang/sl/lang.php14
-rw-r--r--inc/lang/sq/lang.php1
-rw-r--r--inc/lang/sr/lang.php1
-rw-r--r--inc/lang/sv/lang.php6
-rw-r--r--inc/lang/th/lang.php7
-rw-r--r--inc/lang/tr/adminplugins.txt1
-rw-r--r--inc/lang/tr/lang.php15
-rw-r--r--inc/lang/uk/lang.php20
-rw-r--r--inc/lang/zh-tw/lang.php13
-rw-r--r--inc/lang/zh/lang.php15
-rw-r--r--inc/lessc.inc.php398
-rw-r--r--inc/load.php1
-rw-r--r--inc/mail.php8
-rw-r--r--inc/media.php19
-rw-r--r--inc/pageutils.php4
-rw-r--r--inc/parser/code.php4
-rw-r--r--inc/parser/handler.php224
-rw-r--r--inc/parser/lexer.php414
-rw-r--r--inc/parser/metadata.php756
-rw-r--r--inc/parser/parser.php23
-rw-r--r--inc/parser/renderer.php42
-rw-r--r--inc/parser/xhtml.php87
-rw-r--r--inc/parserutils.php8
-rw-r--r--inc/plugin.php2
-rw-r--r--inc/plugincontroller.class.php120
-rw-r--r--inc/pluginutils.php61
-rw-r--r--inc/search.php50
-rw-r--r--inc/subscription.php6
-rw-r--r--inc/template.php36
140 files changed, 2128 insertions, 1650 deletions
diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php
index 07df7a4be..3c955cf88 100644
--- a/inc/DifferenceEngine.php
+++ b/inc/DifferenceEngine.php
@@ -826,7 +826,7 @@ class DiffFormatter {
* @param $str string Text string to escape
* @return string The escaped string.
*/
- function _escape($str){
+ function _escape($str){
return $str;
}
}
diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php
index b2621bdbb..96954fb47 100644
--- a/inc/HTTPClient.php
+++ b/inc/HTTPClient.php
@@ -553,7 +553,7 @@ class HTTPClient {
}while($r_line != "\r\n" && $r_line != "\n");
$this->_debug('SSL Tunnel Response',$r_headers);
- if(preg_match('/^HTTP\/1\.0 200/i',$r_headers)){
+ if(preg_match('/^HTTP\/1\.[01] 200/i',$r_headers)){
if (stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) {
$requesturl = $requestinfo['path'];
return true;
diff --git a/inc/Input.class.php b/inc/Input.class.php
index 35aecdb45..7434d2b2c 100644
--- a/inc/Input.class.php
+++ b/inc/Input.class.php
@@ -238,7 +238,6 @@ class PostInput extends Input {
/**
* Internal class used for $_GET access in Input class
-
*/
class GetInput extends Input {
protected $access;
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php
index ba6a2b5bb..cb1772736 100644
--- a/inc/JpegMeta.php
+++ b/inc/JpegMeta.php
@@ -161,7 +161,7 @@ class JpegMeta {
if($info != false) break;
}
- if($info === false) $info = $alt;
+ if($info === false) $info = '';
if(is_array($info)){
if(isset($info['val'])){
$info = $info['val'];
@@ -874,7 +874,7 @@ class JpegMeta {
/*************************************************************/
/*************************************************************/
- function _dispose() {
+ function _dispose($fileName = "") {
$this->_fileName = $fileName;
$this->_fp = null;
@@ -975,7 +975,7 @@ class JpegMeta {
if ($capture) {
if ($length)
- $this->_markers[$count]['data'] =& fread($this->_fp, $length);
+ $this->_markers[$count]['data'] = fread($this->_fp, $length);
else
$this->_markers[$count]['data'] = "";
}
@@ -1452,7 +1452,7 @@ class JpegMeta {
if ($this->_markers[$i]['marker'] == 0xE1) {
$signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 29);
if ($signature == "http://ns.adobe.com/xap/1.0/\0") {
- $data =& substr($this->_markers[$i]['data'], 29);
+ $data = substr($this->_markers[$i]['data'], 29);
break;
}
}
@@ -2183,7 +2183,8 @@ class JpegMeta {
}
while ($j < $count) {
- $this->_putString($value, $j * 4, "\0\0\0\0");
+ $v = "\0\0\0\0";
+ $this->_putString($value, $j * 4, $v);
$j++;
}
break;
@@ -2206,7 +2207,8 @@ class JpegMeta {
}
while ($j < $count) {
- $this->_putString($value, $j * 8, "\0\0\0\0\0\0\0\0");
+ $v = "\0\0\0\0\0\0\0\0";
+ $this->_putString($value, $j * 8, $v);
$j++;
}
break;
@@ -2335,7 +2337,7 @@ class JpegMeta {
function _readIPTC(&$data, $pos = 0) {
$totalLength = strlen($data);
- $IPTCTags =& $this->_iptcTagNames();
+ $IPTCTags = $this->_iptcTagNames();
while ($pos < ($totalLength - 5)) {
$signature = $this->_getShort($data, $pos);
diff --git a/inc/Mailer.class.php b/inc/Mailer.class.php
index 0f3321bb9..186bd531a 100644
--- a/inc/Mailer.class.php
+++ b/inc/Mailer.class.php
@@ -41,9 +41,10 @@ class Mailer {
global $conf;
$server = parse_url(DOKU_URL, PHP_URL_HOST);
+ if(strpos($server,'.') === false) $server = $server.'.localhost';
- $this->partid = md5(uniqid(rand(), true)).'@'.$server;
- $this->boundary = '----------'.md5(uniqid(rand(), true));
+ $this->partid = substr(md5(uniqid(rand(), true)),0, 8).'@'.$server;
+ $this->boundary = '__________'.md5(uniqid(rand(), true));
$listid = join('.', array_reverse(explode('/', DOKU_BASE))).$server;
$listid = strtolower(trim($listid, '.'));
@@ -57,6 +58,7 @@ class Mailer {
$this->setHeader('X-DokuWiki-Server', $server);
$this->setHeader('X-Auto-Response-Suppress', 'OOF');
$this->setHeader('List-Id', $conf['title'].' <'.$listid.'>');
+ $this->setHeader('Date', date('r'), false);
}
/**
@@ -417,6 +419,8 @@ class Mailer {
$part = 1;
// embedded attachments
foreach($this->attach as $media) {
+ $media['name'] = str_replace(':', '_', cleanID($media['name'], true));
+
// create content id
$cid = 'part'.$part.'.'.$this->partid;
@@ -426,13 +430,13 @@ class Mailer {
}
$mime .= '--'.$this->boundary.MAILHEADER_EOL;
- $mime .= 'Content-Type: '.$media['mime'].';'.MAILHEADER_EOL;
- $mime .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
- $mime .= "Content-ID: <$cid>".MAILHEADER_EOL;
+ $mime .= $this->wrappedHeaderLine('Content-Type', $media['mime'].'; id="'.$cid.'"');
+ $mime .= $this->wrappedHeaderLine('Content-Transfer-Encoding', 'base64');
+ $mime .= $this->wrappedHeaderLine('Content-ID',"<$cid>");
if($media['embed']) {
- $mime .= 'Content-Disposition: inline; filename="'.$media['name'].'"'.MAILHEADER_EOL;
+ $mime .= $this->wrappedHeaderLine('Content-Disposition', 'inline; filename='.$media['name']);
} else {
- $mime .= 'Content-Disposition: attachment; filename="'.$media['name'].'"'.MAILHEADER_EOL;
+ $mime .= $this->wrappedHeaderLine('Content-Disposition', 'attachment; filename='.$media['name']);
}
$mime .= MAILHEADER_EOL; //end of headers
$mime .= chunk_split(base64_encode($media['data']), 74, MAILHEADER_EOL);
@@ -469,7 +473,7 @@ class Mailer {
if(!$this->html && !count($this->attach)) { // we can send a simple single part message
$this->headers['Content-Type'] = 'text/plain; charset=UTF-8';
$this->headers['Content-Transfer-Encoding'] = 'base64';
- $body .= chunk_split(base64_encode($this->text), 74, MAILHEADER_EOL);
+ $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL);
} else { // multi part it is
$body .= "This is a multi-part message in MIME format.".MAILHEADER_EOL;
@@ -484,10 +488,11 @@ class Mailer {
$body .= 'Content-Type: text/plain; charset=UTF-8'.MAILHEADER_EOL;
$body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
$body .= MAILHEADER_EOL;
- $body .= chunk_split(base64_encode($this->text), 74, MAILHEADER_EOL);
+ $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL);
$body .= '--'.$this->boundary.'XX'.MAILHEADER_EOL;
$body .= 'Content-Type: multipart/related;'.MAILHEADER_EOL.
- ' boundary="'.$this->boundary.'"'.MAILHEADER_EOL;
+ ' boundary="'.$this->boundary.'";'.MAILHEADER_EOL.
+ ' type="text/html"'.MAILHEADER_EOL;
$body .= MAILHEADER_EOL;
}
@@ -495,7 +500,7 @@ class Mailer {
$body .= 'Content-Type: text/html; charset=UTF-8'.MAILHEADER_EOL;
$body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
$body .= MAILHEADER_EOL;
- $body .= chunk_split(base64_encode($this->html), 74, MAILHEADER_EOL);
+ $body .= chunk_split(base64_encode($this->html), 72, MAILHEADER_EOL);
$body .= MAILHEADER_EOL;
$body .= $attachments;
$body .= '--'.$this->boundary.'--'.MAILHEADER_EOL;
@@ -550,10 +555,17 @@ class Mailer {
}
}
- // wrap headers
- foreach($this->headers as $key => $val) {
- $this->headers[$key] = wordwrap($val, 78, MAILHEADER_EOL.' ');
- }
+ }
+
+ /**
+ * Returns a complete, EOL terminated header line, wraps it if necessary
+ *
+ * @param $key
+ * @param $val
+ * @return string
+ */
+ protected function wrappedHeaderLine($key, $val){
+ return wordwrap("$key: $val", 78, MAILHEADER_EOL.' ').MAILHEADER_EOL;
}
/**
@@ -565,7 +577,7 @@ class Mailer {
$headers = '';
foreach($this->headers as $key => $val) {
if ($val === '') continue;
- $headers .= "$key: $val".MAILHEADER_EOL;
+ $headers .= $this->wrappedHeaderLine($key, $val);
}
return $headers;
}
diff --git a/inc/RemoteAPICore.php b/inc/RemoteAPICore.php
index 4c940b39e..74c6689ac 100644
--- a/inc/RemoteAPICore.php
+++ b/inc/RemoteAPICore.php
@@ -333,7 +333,6 @@ class RemoteAPICore {
if (!is_array($options)) $options = array();
$options['skipacl'] = 0; // no ACL skipping for XMLRPC
-
if(auth_quickaclcheck($ns.':*') >= AUTH_READ) {
$dir = utf8_encodeFN(str_replace(':', '/', $ns));
@@ -506,8 +505,8 @@ class RemoteAPICore {
}
/**
- * Returns the permissions of a given wiki page
- */
+ * Returns the permissions of a given wiki page
+ */
function aclCheck($id) {
$id = $this->resolvePageId($id);
return auth_quickaclcheck($id);
@@ -772,7 +771,7 @@ class RemoteAPICore {
$id = cleanID($id);
if(empty($id)) {
global $conf;
- $id = cleanID($conf['start']);
+ $id = cleanID($conf['start']);
}
return $id;
}
diff --git a/inc/SimplePie.php b/inc/SimplePie.php
index fd69b4b09..8a9060509 100644
--- a/inc/SimplePie.php
+++ b/inc/SimplePie.php
@@ -16579,7 +16579,11 @@ class SimplePie_Sanitize
if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
{
-
+ if (!class_exists('DOMDocument'))
+ {
+ $this->registry->call('Misc', 'error', array('DOMDocument not found, unable to use sanitizer', E_USER_WARNING, __FILE__, __LINE__));
+ return '';
+ }
$document = new DOMDocument();
$document->encoding = 'UTF-8';
$data = $this->preprocess($data, $type);
diff --git a/inc/actions.php b/inc/actions.php
index bf124c887..5a59d852d 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -164,7 +164,8 @@ function act_dispatch(){
$pluginlist = plugin_list('admin');
if (in_array($page, $pluginlist)) {
// attempt to load the plugin
- if ($plugin =& plugin_load('admin',$page) !== null){
+
+ if (($plugin = plugin_load('admin',$page)) !== null){
/** @var DokuWiki_Admin_Plugin $plugin */
if($plugin->forAdminOnly() && !$INFO['isadmin']){
// a manager tried to load a plugin that's for admins only
diff --git a/inc/auth.php b/inc/auth.php
index 1c0bf5b4f..b793f5d12 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -48,15 +48,15 @@ function auth_setup() {
// try to load auth backend from plugins
foreach ($plugin_controller->getList('auth') as $plugin) {
- if ($conf['authtype'] === $plugin) {
- $auth = $plugin_controller->load('auth', $plugin);
- break;
- } elseif ('auth' . $conf['authtype'] === $plugin) {
- // matches old auth backends (pre-Weatherwax)
- $auth = $plugin_controller->load('auth', $plugin);
- msg('Your authtype setting is deprecated. You must set $conf[\'authtype\'] = "auth' . $conf['authtype'] . '"'
- . ' in your configuration (see <a href="https://www.dokuwiki.org/auth">Authentication Backends</a>)',-1,'','',MSG_ADMINS_ONLY);
- }
+ if ($conf['authtype'] === $plugin) {
+ $auth = $plugin_controller->load('auth', $plugin);
+ break;
+ } elseif ('auth' . $conf['authtype'] === $plugin) {
+ // matches old auth backends (pre-Weatherwax)
+ $auth = $plugin_controller->load('auth', $plugin);
+ msg('Your authtype setting is deprecated. You must set $conf[\'authtype\'] = "auth' . $conf['authtype'] . '"'
+ . ' in your configuration (see <a href="https://www.dokuwiki.org/auth">Authentication Backends</a>)',-1,'','',MSG_ADMINS_ONLY);
+ }
}
if(!isset($auth) || !$auth){
@@ -65,10 +65,10 @@ function auth_setup() {
}
if ($auth->success == false) {
- // degrade to unauthenticated user
- unset($auth);
- auth_logoff();
- msg($lang['authtempfail'], -1);
+ // degrade to unauthenticated user
+ unset($auth);
+ auth_logoff();
+ msg($lang['authtempfail'], -1);
return false;
}
@@ -139,10 +139,10 @@ function auth_loadACL() {
$out = array();
foreach($acl as $line) {
$line = trim($line);
- if($line{0} == '#') continue;
- list($id,$rest) = preg_split('/\s+/',$line,2);
+ if(empty($line) || ($line{0} == '#')) continue; // skip blank lines & comments
+ list($id,$rest) = preg_split('/[ \t]+/',$line,2);
- // substitue user wildcard first (its 1:1)
+ // substitute user wildcard first (its 1:1)
if(strstr($line, '%USER%')){
// if user is not logged in, this ACL line is meaningless - skip it
if (!isset($_SERVER['REMOTE_USER'])) continue;
@@ -391,7 +391,6 @@ function auth_randombytes($length) {
}
}
-
// If no strong randoms available, try OS the specific ways
if(!$strong) {
// Unix/Linux platform
@@ -717,11 +716,11 @@ function auth_aclcheck($id, $user, $groups) {
}
//check exact match first
- $matches = preg_grep('/^'.preg_quote($id, '/').'\s+(\S+)\s+/u', $AUTH_ACL);
+ $matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
if(count($matches)) {
foreach($matches as $match) {
$match = preg_replace('/#.*$/', '', $match); //ignore comments
- $acl = preg_split('/\s+/', $match);
+ $acl = preg_split('/[ \t]+/', $match);
if(!$auth->isCaseSensitive() && $acl[1] !== '@ALL') {
$acl[1] = utf8_strtolower($acl[1]);
}
@@ -747,11 +746,11 @@ function auth_aclcheck($id, $user, $groups) {
}
do {
- $matches = preg_grep('/^'.preg_quote($path, '/').'\s+(\S+)\s+/u', $AUTH_ACL);
+ $matches = preg_grep('/^'.preg_quote($path, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
if(count($matches)) {
foreach($matches as $match) {
$match = preg_replace('/#.*$/', '', $match); //ignore comments
- $acl = preg_split('/\s+/', $match);
+ $acl = preg_split('/[ \t]+/', $match);
if(!$auth->isCaseSensitive() && $acl[1] !== '@ALL') {
$acl[1] = utf8_strtolower($acl[1]);
}
@@ -809,14 +808,14 @@ function auth_nameencode($name, $skip_group = false) {
if(!isset($cache[$name][$skip_group])) {
if($skip_group && $name{0} == '@') {
- $cache[$name][$skip_group] = '@'.preg_replace(
- '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
- "'%'.dechex(ord(substr('\\1',-1)))", substr($name, 1)
+ $cache[$name][$skip_group] = '@'.preg_replace_callback(
+ '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
+ 'auth_nameencode_callback', substr($name, 1)
);
} else {
- $cache[$name][$skip_group] = preg_replace(
- '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
- "'%'.dechex(ord(substr('\\1',-1)))", $name
+ $cache[$name][$skip_group] = preg_replace_callback(
+ '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
+ 'auth_nameencode_callback', $name
);
}
}
@@ -824,6 +823,10 @@ function auth_nameencode($name, $skip_group = false) {
return $cache[$name][$skip_group];
}
+function auth_nameencode_callback($matches) {
+ return '%'.dechex(ord(substr($matches[1],-1)));
+}
+
/**
* Create a pronouncable password
*
@@ -1061,7 +1064,7 @@ function auth_deleteprofile(){
if(!$INPUT->post->bool('delete')) return false;
if(!checkSecurityToken()) return false;
- // action prevented or auth module disallows
+ // action prevented or auth module disallows
if(!actionOK('profile_delete') || !$auth->canDo('delUser')) {
msg($lang['profnodelete'], -1);
return false;
diff --git a/inc/changelog.php b/inc/changelog.php
index 9768fea51..6ff1e0eca 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -460,6 +460,8 @@ function getRevisions($id, $first, $num, $chunk_size=8192, $media=false) {
$file = metaFN($id, '.changes');
}
$num = max($num, 0);
+ if ($num == 0) { return $revs; }
+
$chunk_size = max($chunk_size, 0);
if ($first<0) {
$first = 0;
diff --git a/inc/common.php b/inc/common.php
index 3312141c8..32771285b 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -64,7 +64,7 @@ function getSecurityToken() {
*/
function checkSecurityToken($token = null) {
global $INPUT;
- if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check
+ if(empty($_SERVER['REMOTE_USER'])) return true; // no logged in user, no need for a check
if(is_null($token)) $token = $INPUT->str('sectok');
if(getSecurityToken() != $token) {
@@ -474,13 +474,13 @@ function ml($id = '', $more = '', $direct = true, $sep = '&amp;', $abs = false)
if(is_array($more)) {
// add token for resized images
- if($more['w'] || $more['h'] || $isexternalimage){
+ if(!empty($more['w']) || !empty($more['h']) || $isexternalimage){
$more['tok'] = media_get_token($id,$more['w'],$more['h']);
}
// strip defaults for shorter URLs
if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']);
- if(!$more['w']) unset($more['w']);
- if(!$more['h']) unset($more['h']);
+ if(empty($more['w'])) unset($more['w']);
+ if(empty($more['h'])) unset($more['h']);
if(isset($more['id']) && $direct) unset($more['id']);
$more = buildURLparams($more, $sep);
} else {
@@ -1625,7 +1625,8 @@ function set_doku_pref($pref, $val) {
}
if (!empty($cookieVal)) {
- setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, DOKU_BASE, '', ($conf['securecookie'] && is_ssl()));
+ $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
+ setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, $cookieDir, '', ($conf['securecookie'] && is_ssl()));
}
}
diff --git a/inc/compatibility.php b/inc/compatibility.php
new file mode 100644
index 000000000..ae780e5ac
--- /dev/null
+++ b/inc/compatibility.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * compatibility functions
+ *
+ * This file contains a few functions that might be missing from the PHP build
+ */
+
+if(!function_exists('ctype_space')) {
+ /**
+ * Check for whitespace character(s)
+ *
+ * @see ctype_space
+ * @param string $text
+ * @return bool
+ */
+ function ctype_space($text) {
+ if(!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
+ if(trim($text) === '') return true;
+ return false;
+ }
+}
+
+if(!function_exists('ctype_digit')) {
+ /**
+ * Check for numeric character(s)
+ *
+ * @see ctype_digit
+ * @param string $text
+ * @return bool
+ */
+ function ctype_digit($text) {
+ if(!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
+ if(preg_match('/^\d+$/', $text)) return true;
+ return false;
+ }
+} \ No newline at end of file
diff --git a/inc/farm.php b/inc/farm.php
index 54fff3ec6..54692928d 100644
--- a/inc/farm.php
+++ b/inc/farm.php
@@ -20,7 +20,7 @@
* @author virtual host part of farm_confpath() based on conf_path() from Drupal.org's /includes/bootstrap.inc
* (see https://github.com/drupal/drupal/blob/7.x/includes/bootstrap.inc#L537)
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
-*/
+ */
// DOKU_FARMDIR needs to be set in preload.php, here the fallback is the same as DOKU_INC would be (if it was set already)
if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', fullpath(dirname(__FILE__).'/../').'/');
diff --git a/inc/fulltext.php b/inc/fulltext.php
index c03126994..bd8e6b866 100644
--- a/inc/fulltext.php
+++ b/inc/fulltext.php
@@ -395,7 +395,6 @@ function ft_snippet_re_preprocess($term) {
$BR = '\b';
}
-
if(substr($term,0,2) == '\\*'){
$term = substr($term,2);
}else{
diff --git a/inc/html.php b/inc/html.php
index a2a726406..bbe29e371 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -428,7 +428,7 @@ function html_revisions($first=0, $media_id = false){
global $conf;
global $lang;
$id = $ID;
- /* we need to get one additionally log entry to be able to
+ /* we need to get one additional log entry to be able to
* decide if this is the last page or is there another one.
* see html_recent()
*/
@@ -1240,20 +1240,20 @@ function html_diff($text='',$intro=true,$type=null){
}
function html_insert_softbreaks($diffhtml) {
- // search the diff html string for both:
- // - html tags, so these can be ignored
- // - long strings of characters without breaking characters
- return preg_replace_callback('/<[^>]*>|[^<> ]{12,}/','html_softbreak_callback',$diffhtml);
+ // search the diff html string for both:
+ // - html tags, so these can be ignored
+ // - long strings of characters without breaking characters
+ return preg_replace_callback('/<[^>]*>|[^<> ]{12,}/','html_softbreak_callback',$diffhtml);
}
function html_softbreak_callback($match){
- // if match is an html tag, return it intact
- if ($match[0]{0} == '<') return $match[0];
+ // if match is an html tag, return it intact
+ if ($match[0]{0} == '<') return $match[0];
- // its a long string without a breaking character,
- // make certain characters into breaking characters by inserting a
- // breaking character (zero length space, U+200B / #8203) in front them.
- $regex = <<< REGEX
+ // its a long string without a breaking character,
+ // make certain characters into breaking characters by inserting a
+ // breaking character (zero length space, U+200B / #8203) in front them.
+ $regex = <<< REGEX
(?(?= # start a conditional expression with a positive look ahead ...
&\#?\\w{1,6};) # ... for html entities - we don't want to split them (ok to catch some invalid combinations)
&\#?\\w{1,6}; # yes pattern - a quicker match for the html entity, since we know we have one
@@ -1262,7 +1262,7 @@ function html_softbreak_callback($match){
)+ # end conditional expression
REGEX;
- return preg_replace('<'.$regex.'>xu','\0&#8203;',$match[0]);
+ return preg_replace('<'.$regex.'>xu','\0&#8203;',$match[0]);
}
/**
@@ -1661,7 +1661,7 @@ function html_admin(){
global $ID;
global $INFO;
global $conf;
- /** @var auth_basic $auth */
+ /** @var DokuWiki_Auth_Plugin $auth */
global $auth;
// build menu of admin functions from the plugins that handle them
@@ -1669,7 +1669,7 @@ function html_admin(){
$menu = array();
foreach ($pluginlist as $p) {
/** @var DokuWiki_Admin_Plugin $obj */
- if($obj =& plugin_load('admin',$p) === null) continue;
+ if(($obj = plugin_load('admin',$p)) === null) continue;
// check permissions
if($obj->forAdminOnly() && !$INFO['isadmin']) continue;
diff --git a/inc/indexer.php b/inc/indexer.php
index 8f0ba7ec6..658fb966b 100644
--- a/inc/indexer.php
+++ b/inc/indexer.php
@@ -10,7 +10,7 @@
if(!defined('DOKU_INC')) die('meh.');
// Version tag used to force rebuild on upgrade
-define('INDEXER_VERSION', 6);
+define('INDEXER_VERSION', 7);
// set the minimum token length to use in the index (note, this doesn't apply to numeric tokens)
if (!defined('IDX_MINWORDLENGTH')) define('IDX_MINWORDLENGTH',2);
@@ -215,7 +215,7 @@ class Doku_Indexer {
foreach (array_keys($words) as $wlen) {
$word_idx = $this->getIndex('w', $wlen);
foreach ($words[$wlen] as $word => $freq) {
- $wid = array_search($word, $word_idx);
+ $wid = array_search($word, $word_idx, true);
if ($wid === false) {
$wid = count($word_idx);
$word_idx[] = $word;
@@ -296,7 +296,7 @@ class Doku_Indexer {
foreach ($values as $val) {
$val = (string)$val;
if ($val !== "") {
- $id = array_search($val, $metawords);
+ $id = array_search($val, $metawords, true);
if ($id === false) {
$id = count($metawords);
$metawords[$id] = $val;
@@ -352,13 +352,13 @@ class Doku_Indexer {
$pages = $this->getPages();
- $id = array_search($oldpage, $pages);
+ $id = array_search($oldpage, $pages, true);
if ($id === false) {
$this->unlock();
return 'page is not in index';
}
- $new_id = array_search($newpage, $pages);
+ $new_id = array_search($newpage, $pages, true);
if ($new_id !== false) {
// make sure the page is not in the index anymore
if ($this->deletePageNoLock($newpage) !== true) {
@@ -397,9 +397,9 @@ class Doku_Indexer {
// change the relation references index
$metavalues = $this->getIndex($key, '_w');
- $oldid = array_search($oldvalue, $metavalues);
+ $oldid = array_search($oldvalue, $metavalues, true);
if ($oldid !== false) {
- $newid = array_search($newvalue, $metavalues);
+ $newid = array_search($newvalue, $metavalues, true);
if ($newid !== false) {
// free memory
unset ($metavalues);
@@ -600,7 +600,7 @@ class Doku_Indexer {
foreach ($wordlist as $i => $word) {
if ((!is_numeric($word) && strlen($word) < IDX_MINWORDLENGTH)
- || array_search($word, $stopwords) !== false)
+ || array_search($word, $stopwords, true) !== false)
unset($wordlist[$i]);
}
return array_values($wordlist);
@@ -771,7 +771,7 @@ class Doku_Indexer {
foreach(array_keys(preg_grep('/'.$re.'/', $words)) as $i)
$value_ids[$i][] = $val;
} else {
- if (($i = array_search($val, $words)) !== false)
+ if (($i = array_search($val, $words, true)) !== false)
$value_ids[$i][] = $val;
}
}
@@ -874,7 +874,7 @@ class Doku_Indexer {
// handle exact search
if (isset($tokenlength[$ixlen])) {
foreach ($tokenlength[$ixlen] as $xword) {
- $wid = array_search($xword, $word_idx);
+ $wid = array_search($xword, $word_idx, true);
if ($wid !== false) {
$wids[$ixlen][] = $wid;
foreach ($tokens[$xword] as $w)
@@ -1017,8 +1017,9 @@ class Doku_Indexer {
return false;
}
}
- if ($conf['dperm'])
+ if (!empty($conf['dperm'])) {
chmod($lock, $conf['dperm']);
+ }
return $status;
}
@@ -1152,7 +1153,7 @@ class Doku_Indexer {
*/
protected function addIndexKey($idx, $suffix, $value) {
$index = $this->getIndex($idx, $suffix);
- $id = array_search($value, $index);
+ $id = array_search($value, $index, true);
if ($id === false) {
$id = count($index);
$index[$id] = $value;
diff --git a/inc/infoutils.php b/inc/infoutils.php
index 71e642995..7358955a0 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -26,13 +26,13 @@ function checkUpdateMessages(){
// check if new messages needs to be fetched
if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.DOKU_SCRIPT)){
@touch($cf);
- dbglog("checkUpdatesMessages(): downloading messages.txt");
+ dbglog("checkUpdateMessages(): downloading messages.txt");
$http = new DokuHTTPClient();
$http->timeout = 12;
$data = $http->get(DOKU_MESSAGEURL.$updateVersion);
io_saveFile($cf,$data);
}else{
- dbglog("checkUpdatesMessages(): messages.txt up to date");
+ dbglog("checkUpdateMessages(): messages.txt up to date");
$data = io_readFile($cf);
}
@@ -193,7 +193,6 @@ function check(){
msg('Valid locale '.hsc($loc).' found.', 1);
}
-
if($conf['allowdebug']){
msg('Debugging support is enabled. If you don\'t need it you should set $conf[\'allowdebug\'] = 0',-1);
}else{
diff --git a/inc/init.php b/inc/init.php
index 30eb1b251..a937b934d 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -267,10 +267,10 @@ function init_lang($langCode) {
$lang = array();
//load the language files
- require_once(DOKU_INC.'inc/lang/en/lang.php');
+ require(DOKU_INC.'inc/lang/en/lang.php');
if ($langCode && $langCode != 'en') {
if (file_exists(DOKU_INC."inc/lang/$langCode/lang.php")) {
- require_once(DOKU_INC."inc/lang/$langCode/lang.php");
+ require(DOKU_INC."inc/lang/$langCode/lang.php");
}
}
}
@@ -288,7 +288,7 @@ function init_files(){
$fh = @fopen($file,'a');
if($fh){
fclose($fh);
- if($conf['fperm']) chmod($file, $conf['fperm']);
+ if(!empty($conf['fperm'])) chmod($file, $conf['fperm']);
}else{
nice_die("$file is not writable. Check your permissions settings!");
}
diff --git a/inc/io.php b/inc/io.php
index 4bd7c3364..eff0279ac 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -393,7 +393,7 @@ function io_mkdir_p($target){
return io_mkdir_ftp($dir);
}else{
$ret = @mkdir($target,$conf['dmode']); // crawl back up & create dir tree
- if($ret && $conf['dperm']) chmod($target, $conf['dperm']);
+ if($ret && !empty($conf['dperm'])) chmod($target, $conf['dperm']);
return $ret;
}
}
diff --git a/inc/lang/af/lang.php b/inc/lang/af/lang.php
index ab8e5177b..826fda6e8 100644
--- a/inc/lang/af/lang.php
+++ b/inc/lang/af/lang.php
@@ -24,7 +24,6 @@ $lang['btn_logout'] = 'Teken uit';
$lang['btn_back'] = 'Terug';
$lang['btn_backlink'] = 'Wat skakel hierheen';
$lang['btn_subscribe'] = 'Hou bladsy dop';
-$lang['btn_unsubscribe'] = 'Verwyder van bladsy dophoulys';
$lang['btn_register'] = 'Skep gerus \'n rekening';
$lang['loggedinas'] = 'Ingeteken as';
$lang['user'] = 'Gebruikernaam';
diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php
index 5b72e0a51..fdb407da0 100644
--- a/inc/lang/ar/lang.php
+++ b/inc/lang/ar/lang.php
@@ -1,12 +1,13 @@
<?php
+
/**
- * Arabic language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Mostafa Hussein <mostafa@gmail.com>
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
* @author uahello@gmail.com
+ * @author Ahmad Abd-Elghany <tolpa1@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -50,6 +51,7 @@ $lang['btn_revert'] = 'استعد';
$lang['btn_register'] = 'سجّل';
$lang['btn_apply'] = 'طبق';
$lang['btn_media'] = 'مدير الوسائط';
+$lang['btn_deleteuser'] = 'احذف حسابي الخاص';
$lang['loggedinas'] = 'داخل باسم';
$lang['user'] = 'اسم المستخدم';
$lang['pass'] = 'كلمة السر';
@@ -61,6 +63,7 @@ $lang['fullname'] = 'الاسم الحقيقي';
$lang['email'] = 'البريد الإلكتروني';
$lang['profile'] = 'الملف الشخصي';
$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة';
+$lang['badpassconfirm'] = 'عذراً,كلمة السر غير صحيحة';
$lang['minoredit'] = 'تعديلات طفيفة';
$lang['draftdate'] = 'حفظ المسودات آليا مفعّل';
$lang['nosecedit'] = 'غُيرت الصفحة في هذه الأثناء، معلومات الجزء اصبحت قديمة. حُمُلت كل الصفحة بدلا.';
@@ -77,6 +80,11 @@ $lang['profna'] = 'هذه الويكي لا تدعم تعديل
$lang['profnochange'] = 'لا تغييرات، لا شيء ليُعمل.';
$lang['profnoempty'] = 'غير مسموح باسم مستخدم أو بريد فارغ.';
$lang['profchanged'] = 'حُدث الملف الشخصي للمستخدم بنجاح.';
+$lang['profnodelete'] = 'هذه الموسوعه لا ندعم حذف الأشخاص';
+$lang['profdeleteuser'] = 'احذف حساب';
+$lang['profdeleted'] = 'حسابك الخاص تم حذفه من هذه الموسوعة';
+$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
+هذا الحدث غير ممكن.';
$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.';
$lang['resendpwd'] = 'اضبط كلمة سر جديدة لـ';
@@ -258,7 +266,6 @@ $lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك';
$lang['subscr_m_subscribe'] = 'اشترك';
$lang['subscr_m_receive'] = 'استقبال';
$lang['subscr_style_every'] = 'بريدا على كل تغيير';
-$lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.';
$lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير';
$lang['authpwdexpire'] = 'ستنتهي صلاحية كلمة السر في %d . عليك بتغييرها سريعا.';
$lang['i_chooselang'] = 'اختر لغتك';
diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php
index 5084d9f60..df54b4f10 100644
--- a/inc/lang/az/lang.php
+++ b/inc/lang/az/lang.php
@@ -37,7 +37,6 @@ $lang['btn_back'] = 'Geri';
$lang['btn_backlink'] = 'Bura olan link-lər';
$lang['btn_backtomedia'] = 'media-fayl seçiminə qayıt';
$lang['btn_subscribe'] = 'Abunə ol (bütün dəyişiklər)';
-$lang['btn_unsubscribe'] = 'Abunəlikdən çıx (bütün dəyişiklər)';
$lang['btn_profile'] = 'Profil';
$lang['btn_reset'] = 'Boşalt';
$lang['btn_draft'] = 'Qaralamada düzəliş etmək';
@@ -89,7 +88,6 @@ $lang['txt_overwrt'] = 'Mövcud olan faylın üstündən yaz';
$lang['lockedby'] = 'В данный момент заблокирован Bu an blokdadır';
$lang['lockexpire'] = 'Blok bitir:';
$lang['js']['willexpire'] = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.';
-$lang['notsavedyet'] = 'Yaddaşa yazılmamış dəyişiklər itəcəklər.\nSiz davam etmək istəyirsiz?';
$lang['rssfailed'] = 'Aşağıda göstərilmiş xəbər lentini əldə edən zaman xəta baş verdi: ';
$lang['nothingfound'] = 'Heçnə tapılmadı.';
$lang['mediaselect'] = 'Mediya-faylın seçilməsi';
@@ -185,12 +183,6 @@ $lang['img_copyr'] = 'Müəllif hüquqları';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Model';
$lang['img_keywords'] = 'Açar sözlər';
-$lang['subscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısına əlavə olundu';
-$lang['subscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısına əlavə etmə zamanı səhv baş verdi';
-$lang['subscribe_noaddress'] = 'Sizin profilinizdə e-mail göstərilməyib.Ona görə siz paylnma siyahılarına əlavə edilə bilməzsiniz.';
-$lang['unsubscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısından silinmişdir';
-$lang['unsubscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısından silən zaman xəta baş verdi.';
-$lang['authmodfailed'] = 'İstifadəçinin autentifikasiyasının konfiqurasiyası səhfdir. Xaiş olunur ki wiki-nin administratoru ilə əlaqə saxlayasınız.';
$lang['authtempfail'] = 'İstifadəçilərin autentifikasiyası müvəqqəti dayandırılıb. Əgər bu problem uzun müddət davam edir sə, administrator ilə əlaqə saxlayın.';
$lang['i_chooselang'] = 'Dili seçin/Language';
$lang['i_installer'] = 'DokuWiki quraşdırılır';
diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php
index f356955cb..e909980db 100644
--- a/inc/lang/bg/lang.php
+++ b/inc/lang/bg/lang.php
@@ -279,7 +279,6 @@ $lang['subscr_style_digest'] = 'на ел. писмо с обобщение н
$lang['subscr_style_list'] = 'на списък с променените страници от последното ел. писмо (всеки %.2f дни)';
/* auth.class language support */
-$lang['authmodfailed'] = 'Лоша настройки за удостоверяване. Моля, уведомете администратора на Wiki страницата.';
$lang['authtempfail'] = 'Удостоверяването на потребители не е възможно за момента. Ако продължи дълго, моля уведомете администратора на Wiki страницата.';
$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече след %d дни. Препорачително е да я смените по-скоро.';
diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php
index b7f322796..9ab423783 100644
--- a/inc/lang/ca-valencia/lang.php
+++ b/inc/lang/ca-valencia/lang.php
@@ -38,7 +38,6 @@ $lang['btn_back'] = 'Arrere';
$lang['btn_backlink'] = 'Vínculs remitents';
$lang['btn_backtomedia'] = 'Tornar a la selecció d\'archius de mijos';
$lang['btn_subscribe'] = 'Subscriure\'s a la pàgina';
-$lang['btn_unsubscribe'] = 'Desubscriure\'s de la pàgina';
$lang['btn_profile'] = 'Actualisar perfil';
$lang['btn_reset'] = 'Reiniciar';
$lang['btn_draft'] = 'Editar borrador';
@@ -186,12 +185,6 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Càmara';
$lang['img_keywords'] = 'Paraules clau';
-$lang['subscribe_success'] = '%s afegit a la llista de subscripció per a %s';
-$lang['subscribe_error'] = 'Erro afegint a %s a la llista de subscripció per a %s';
-$lang['subscribe_noaddress'] = 'No hi ha cap direcció associada a la sessió, no es pot subscriure';
-$lang['unsubscribe_success'] = '%s borrat de la llista de subscripció per a %s';
-$lang['unsubscribe_error'] = 'Erro borrant a %s de la llista de subscripció per a %s';
-$lang['authmodfailed'] = 'Mala configuració de l\'autenticació d\'usuari. Per favor, informe a l\'administrador del Wiki.';
$lang['authtempfail'] = 'L\'autenticació d\'usuaris està desactivada temporalment. Si la situació persistix, per favor, informe a l\'administrador del Wiki.';
$lang['i_chooselang'] = 'Trie l\'idioma';
$lang['i_installer'] = 'Instalador de DokuWiki';
@@ -222,7 +215,7 @@ $lang['i_retry'] = 'Reintentar';
$lang['recent_global'] = 'Està veent els canvis dins de l\'espai de noms <b>%s</b>. També pot <a href="%s">vore els canvis recents en el wiki sancer</a>.';
$lang['years'] = 'fa %d anys';
$lang['months'] = 'fa %d mesos';
-$lang['weeks'] = 'fa %s semanes';
+$lang['weeks'] = 'fa %d semanes';
$lang['days'] = 'fa %d dies';
$lang['hours'] = 'fa %d hores';
$lang['minutes'] = 'fa %d minuts';
diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php
index a429dc06a..fd19c6834 100644
--- a/inc/lang/ca/lang.php
+++ b/inc/lang/ca/lang.php
@@ -257,7 +257,6 @@ $lang['subscr_m_receive'] = 'Rebre';
$lang['subscr_style_every'] = 'Envia\'m un correu electrònic per a cada canvi';
$lang['subscr_style_digest'] = 'Envia\'m un correu electrònic amb un resum dels canvis per a cada pàgina (cada %.2f dies)';
$lang['subscr_style_list'] = 'llistat de pàgines canviades des de l\'últim correu electrònic (cada %.2f dies)';
-$lang['authmodfailed'] = 'La configuració de l\'autenticació d\'usuaris és errònia. Informeu els administradors del wiki.';
$lang['authtempfail'] = 'L\'autenticació d\'usuaris no està disponible temporalment. Si aquesta situació persisteix, si us plau informeu els administradors del wiki.';
$lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'hauríeu de canviar aviat.';
$lang['i_chooselang'] = 'Trieu l\'idioma';
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index c01b72a1b..56ffd91de 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Czech language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author Tomas Valenta <t.valenta@sh.cvut.cz>
* @author Tomas Valenta <tomas@valenta.cz>
@@ -14,6 +14,8 @@
* @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
* @author Jakub A. Těšínský (j@kub.cz)
* @author mkucera66@seznam.cz
+ * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -57,6 +59,7 @@ $lang['btn_revert'] = 'Vrátit zpět';
$lang['btn_register'] = 'Registrovat';
$lang['btn_apply'] = 'Použít';
$lang['btn_media'] = 'Správa médií';
+$lang['btn_deleteuser'] = 'Odstranit můj účet';
$lang['loggedinas'] = 'Přihlášen(a) jako';
$lang['user'] = 'Uživatelské jméno';
$lang['pass'] = 'Heslo';
@@ -68,6 +71,7 @@ $lang['fullname'] = 'Celé jméno';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Uživatelský profil';
$lang['badlogin'] = 'Zadané uživatelské jméno a heslo není správně.';
+$lang['badpassconfirm'] = 'Bohužel špatné heslo';
$lang['minoredit'] = 'Drobné změny';
$lang['draftdate'] = 'Koncept automaticky uložen v';
$lang['nosecedit'] = 'Stránka byla v mezičase změněna. Informace o sekci již nebylo platné, byla načtena celá stránka.';
@@ -84,6 +88,11 @@ $lang['profna'] = 'Tato wiki neumožňuje změnu profilu';
$lang['profnochange'] = 'Žádné změny nebyly provedeny.';
$lang['profnoempty'] = 'Nelze zadat prázdné jméno nebo mailová adresa.';
$lang['profchanged'] = 'Uživatelský profil změněn.';
+$lang['profnodelete'] = 'Tato wiki nepodporuje mazání uživatelů';
+$lang['profdeleteuser'] = 'Smazat účet';
+$lang['profdeleted'] = 'Váš uživatelský účet byl z této wiki smazán';
+$lang['profconfdelete'] = 'Chci smazat můj účet z této wiki. <br/> Tato akce je nevratná.';
+$lang['profconfdeletemissing'] = 'Potvrzovací tlačítko nezaškrtnuto';
$lang['pwdforget'] = 'Zapomněli jste heslo? Nechte si zaslat nové';
$lang['resendna'] = 'Tato wiki neumožňuje zasílání nových hesel.';
$lang['resendpwd'] = 'Nastavit nové heslo pro';
@@ -153,7 +162,7 @@ $lang['uploadsucc'] = 'Přenos proběhl v pořádku';
$lang['uploadfail'] = 'Chyba při načítání. Možná kvůli špatně nastaveným právům?';
$lang['uploadwrong'] = 'Načtení souboru s takovouto příponou není dovoleno.';
$lang['uploadexist'] = 'Soubor už existuje, necháme ho být.';
-$lang['uploadbadcontent'] = 'Obsah načteného dokumentu %s neodpovídá jeho příponě.';
+$lang['uploadbadcontent'] = 'Nahraný obsah neodpovídá jeho příponě souboru %s.';
$lang['uploadspam'] = 'Načtený dokument byl odmítnut, je na spamovém blacklistu.';
$lang['uploadxss'] = 'Načtený dokument byl odmítnut. Zdá se, že obsahuje škodlivé věci.';
$lang['uploadsize'] = 'Nahraný soubor byl příliš velký (max. %s)';
@@ -204,7 +213,7 @@ $lang['mail_newpage'] = 'nová stránka:';
$lang['mail_changed'] = 'změna stránky:';
$lang['mail_subscribe_list'] = 'stránky změněné ve jmenném prostoru:';
$lang['mail_new_user'] = 'nový uživatel:';
-$lang['mail_upload'] = 'načtený dokument:';
+$lang['mail_upload'] = 'nahraný soubor:';
$lang['changes_type'] = 'Prohlednou změny ';
$lang['pages_changes'] = 'stránek';
$lang['media_changes'] = 'souborů médií';
@@ -268,7 +277,6 @@ $lang['subscr_m_receive'] = 'Přejete si dostávat';
$lang['subscr_style_every'] = 'email pro každou změnu';
$lang['subscr_style_digest'] = 'souhrnný email změn pro každou stránku (každé %.2f dny/dní)';
$lang['subscr_style_list'] = 'seznam změněných stránek od posledního emailu (každé %.2f dny/dní)';
-$lang['authmodfailed'] = 'Autentizace uživatelů je špatně nastavena. Informujte prosím správce této wiki.';
$lang['authtempfail'] = 'Autentizace uživatelů je dočasně nedostupná. Pokud tento problém přetrvává, informujte prosím správce této wiki.';
$lang['authpwdexpire'] = 'Platnost vašeho hesla vyprší za %d dní, měli byste ho změnit co nejdříve.';
$lang['i_chooselang'] = 'Vyberte si jazyk';
@@ -293,6 +301,9 @@ $lang['i_pol1'] = 'Veřejná wiki (čtení pro všechny, zápis a
$lang['i_pol2'] = 'Uzavřená wiki (čtení, zápis a upload pouze pro registrované uživatele)';
$lang['i_retry'] = 'Zkusit znovu';
$lang['i_license'] = 'Vyberte prosím licenci obsahu:';
+$lang['i_license_none'] = 'Nezobrazovat žádné licenční informace';
+$lang['i_pop_field'] = 'Prosím, pomozte nám vylepšit DokuWiki:';
+$lang['i_pop_label'] = 'Jednou měsíčně zaslat anonymní data o využívání DokuWiki jejím vývojářům';
$lang['recent_global'] = 'Právě si prohlížíte změny ve jmenném prostoru <b>%s</b>. Také si můžete <a href="%s">zobrazit změny v celé wiki</a>.';
$lang['years'] = 'před %d roky';
$lang['months'] = 'před %d měsíci';
diff --git a/inc/lang/cs/registermail.txt b/inc/lang/cs/registermail.txt
index 7f5e4feb1..201e7b779 100644
--- a/inc/lang/cs/registermail.txt
+++ b/inc/lang/cs/registermail.txt
@@ -7,7 +7,7 @@ E-mail : @NEWEMAIL@
Datum : @DATE@
Prohlížeč : @BROWSER@
IP adresa : @IPADDRESS@
-Hostitel : @HOSTNAME
+Hostitel : @HOSTNAME@
--
Tento email byl automaticky vygenerován systémem DokuWiki
diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php
index 022de8127..0da7e4761 100644
--- a/inc/lang/da/lang.php
+++ b/inc/lang/da/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * danish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author koeppe <koeppe@kazur.dk>
* @author Jon Bendtsen <bendtsen@diku.dk>
* @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
@@ -14,6 +14,8 @@
* @author rasmus@kinnerup.com
* @author Michael Pedersen subben@gmail.com
* @author Mikael Lyngvig <mikael@lyngvig.org>
+ * @author Soren Birk <soer9648@hotmail.com>
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -57,6 +59,7 @@ $lang['btn_revert'] = 'Reetablér';
$lang['btn_register'] = 'Registrér';
$lang['btn_apply'] = 'Anvend';
$lang['btn_media'] = 'Media Manager';
+$lang['btn_deleteuser'] = 'Fjern Min Konto';
$lang['loggedinas'] = 'Logget ind som';
$lang['user'] = 'Brugernavn';
$lang['pass'] = 'Adgangskode';
@@ -68,6 +71,7 @@ $lang['fullname'] = 'Fulde navn';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Brugerprofil';
$lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.';
+$lang['badpassconfirm'] = 'Kodeordet var desværre forkert';
$lang['minoredit'] = 'Mindre ændringer';
$lang['draftdate'] = 'Kladde automatisk gemt d.';
$lang['nosecedit'] = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.';
@@ -84,6 +88,9 @@ $lang['profna'] = 'Denne wiki understøtter ikke ændring af prof
$lang['profnochange'] = 'Ingen ændringer, intet modificeret.';
$lang['profnoempty'] = 'Tomt navn eller e-mail adresse er ikke tilladt.';
$lang['profchanged'] = 'Brugerprofil opdateret korrekt.';
+$lang['profnodelete'] = 'Denne wiki supporterer ikke sletning af brugere';
+$lang['profdeleteuser'] = 'Slet Konto';
+$lang['profdeleted'] = 'Din brugerkonto er blevet slettet fra denne wiki';
$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få et nyt';
$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af nyt adgangskode.';
$lang['resendpwd'] = 'Vælg ny adgangskode for';
@@ -198,6 +205,7 @@ $lang['user_tools'] = 'Brugerværktøjer';
$lang['site_tools'] = 'Webstedsværktøjer';
$lang['page_tools'] = 'Sideværktøjer';
$lang['skip_to_content'] = 'hop til indhold';
+$lang['sidebar'] = 'Sidebjælke';
$lang['mail_newpage'] = 'dokument tilføjet:';
$lang['mail_changed'] = 'dokument ændret:';
$lang['mail_subscribe_list'] = 'sider ændret i navnerum';
@@ -266,7 +274,6 @@ $lang['subscr_m_receive'] = 'Modtag';
$lang['subscr_style_every'] = 'email på hver ændring';
$lang['subscr_style_digest'] = 'opsummeringsmail med ændringer for hver side (hver %.2f dage)';
$lang['subscr_style_list'] = 'list af ændrede sider siden sidste email (hver %.2f dage)';
-$lang['authmodfailed'] = 'Fejl i brugervalideringens konfiguration. Kontakt venligst wikiens administrator.';
$lang['authtempfail'] = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.';
$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.';
$lang['i_chooselang'] = 'Vælg dit sprog';
@@ -293,6 +300,8 @@ $lang['i_pol1'] = 'Offentlig Wiki (alle kan læse, kun registrere
$lang['i_pol2'] = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)';
$lang['i_retry'] = 'Forsøg igen';
$lang['i_license'] = 'Vælg venligst licensen du vil tilføje dit indhold under:';
+$lang['i_license_none'] = 'Vis ikke licensinformationer';
+$lang['i_pop_field'] = 'Hjælp os venligst med at forbedre oplevelsen af DokuWiki:';
$lang['recent_global'] = 'Du ser lige nu ændringerne i <b>%s</b> navnerummet. Du kan også <a href="%s">se de sidste ændringer for hele wiki siden </a>';
$lang['years'] = '%d år siden';
$lang['months'] = '%d måned siden';
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index 4ee9a0eed..02ff85fad 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * german informal language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Christof <gagi@fin.de>
* @author Anika Henke <anika@selfthinker.org>
@@ -94,10 +94,10 @@ $lang['profnochange'] = 'Keine Änderungen, nichts zu tun.';
$lang['profnoempty'] = 'Es muss ein Name oder eine E-Mail Adresse angegeben werden.';
$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.';
$lang['profnodelete'] = 'Dieses Wiki unterstützt nicht das Löschen von Benutzern.';
-$lang['profdeleteuser'] = 'Benutzerprofil löschen';
+$lang['profdeleteuser'] = 'Benutzerprofil löschen';
$lang['profdeleted'] = 'Dein Benutzerprofil wurde im Wiki gelöscht.';
$lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.';
-$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
+$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort setzen für';
@@ -280,7 +280,6 @@ $lang['subscr_m_receive'] = 'Erhalten';
$lang['subscr_style_every'] = 'E-Mail bei jeder Änderung';
$lang['subscr_style_digest'] = 'E-Mail mit zusammengefasster Übersicht der Seitenänderungen (alle %.2f Tage)';
$lang['subscr_style_list'] = 'Auflistung aller geänderten Seiten seit der letzten E-Mail (alle %.2f Tage)';
-$lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wende dich an den Admin.';
$lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wende dich an den Admin.';
$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.';
$lang['i_chooselang'] = 'Wähle deine Sprache';
diff --git a/inc/lang/de/admin.txt b/inc/lang/de/admin.txt
index c52f343ea..f079f7e91 100644
--- a/inc/lang/de/admin.txt
+++ b/inc/lang/de/admin.txt
@@ -1,4 +1,4 @@
====== Administration ======
-Folgende administrative Aufgaben stehen in DokuWiki zur Verfügung.
+Folgende administrative Aufgaben stehen in DokuWiki zur Verfügung:
diff --git a/inc/lang/de/backlinks.txt b/inc/lang/de/backlinks.txt
index b797b0003..1ffa815c2 100644
--- a/inc/lang/de/backlinks.txt
+++ b/inc/lang/de/backlinks.txt
@@ -1,5 +1,5 @@
====== Links hierher ======
-Dies ist eine Liste der Seiten, die zurück zur momentanen Seite linken.
+Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite verlinken.
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index 496eff2e5..685e668c4 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * german language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Christof <gagi@fin.de>
* @author Anika Henke <anika@selfthinker.org>
@@ -95,10 +95,10 @@ $lang['profnochange'] = 'Keine Änderungen, nichts zu tun.';
$lang['profnoempty'] = 'Es muss ein Name und eine E-Mail-Adresse angegeben werden.';
$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.';
$lang['profnodelete'] = 'Dieses Wiki unterstützt nicht das Löschen von Benutzern.';
-$lang['profdeleteuser'] = 'Benutzerprofil löschen';
+$lang['profdeleteuser'] = 'Benutzerprofil löschen';
$lang['profdeleted'] = 'Ihr Benutzerprofil wurde im Wiki gelöscht.';
$lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.';
-$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
+$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort setzen für';
@@ -281,7 +281,6 @@ $lang['subscr_m_receive'] = 'Benachrichtigung';
$lang['subscr_style_every'] = 'E-Mail bei jeder Bearbeitung';
$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)';
$lang['subscr_style_list'] = 'Liste der geänderten Seiten (Alle %.2f Tage)';
-$lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Admin.';
$lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Admin.';
$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.';
$lang['i_chooselang'] = 'Wählen Sie Ihre Sprache';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index 0fe343026..61b2fda9d 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -1,14 +1,15 @@
<?php
+
/**
- * Greek language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Thanos Massias <tm@thriasio.gr>
* @author Αθανάσιος Νταής <homunculus@wana.gr>
* @author Konstantinos Koryllos <koryllos@gmail.com>
* @author George Petsagourakis <petsagouris@gmail.com>
* @author Petros Vidalis <pvidalis@gmail.com>
* @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
+ * @author Constantinos Xanthopoulos <conx@xanthopoulos.info>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,6 +53,7 @@ $lang['btn_revert'] = 'Αποκατάσταση';
$lang['btn_register'] = 'Εγγραφή';
$lang['btn_apply'] = 'Εφαρμογή';
$lang['btn_media'] = 'Διαχειριστής πολυμέσων';
+$lang['btn_deleteuser'] = 'Αφαίρεσε τον λογαριασμό μου';
$lang['loggedinas'] = 'Συνδεδεμένος ως';
$lang['user'] = 'Όνομα χρήστη';
$lang['pass'] = 'Κωδικός';
@@ -63,6 +65,7 @@ $lang['fullname'] = 'Ονοματεπώνυμο';
$lang['email'] = 'e-mail';
$lang['profile'] = 'Προφίλ χρήστη';
$lang['badlogin'] = 'Συγνώμη, το όνομα χρήστη ή ο κωδικός ήταν λανθασμένο.';
+$lang['badpassconfirm'] = 'Ο κωδικός που εισάγατε είναι λανθασμένος';
$lang['minoredit'] = 'Ασήμαντες αλλαγές';
$lang['draftdate'] = 'Αυτόματη αποθήκευση πρόχειρης σελίδας στις';
$lang['nosecedit'] = 'Η σελίδα τροποποιήθηκε στο μεταξύ και τα στοιχεία της ενότητας δεν ήταν συγχρονισμένα, οπότε φορτώθηκε η πλήρης σελίδα. ';
@@ -79,6 +82,9 @@ $lang['profna'] = 'Αυτό το wiki δεν υποστηρίζε
$lang['profnochange'] = 'Καμία αλλαγή.';
$lang['profnoempty'] = 'Δεν επιτρέπεται κενό όνομα χρήστη η κενή διεύθυνση email.';
$lang['profchanged'] = 'Το προφίλ χρήστη τροποποιήθηκε επιτυχώς.';
+$lang['profnodelete'] = 'Το wiki δεν υποστηρίζει την διαγραφή χρηστών';
+$lang['profdeleteuser'] = 'Διαγραφή λογαριασμού';
+$lang['profdeleted'] = 'Ο λογαριασμός διαγράφηκε από αυτό το wiki';
$lang['pwdforget'] = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.';
$lang['resendna'] = 'Αυτό το wiki δεν υποστηρίζει την εκ\' νέου αποστολή κωδικών.';
$lang['resendpwd'] = 'Εισαγωγή νέου ωδικού για';
@@ -262,9 +268,8 @@ $lang['subscr_m_receive'] = 'Λήψη';
$lang['subscr_style_every'] = 'email σε κάθε αλλαγή';
$lang['subscr_style_digest'] = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μέρες)';
$lang['subscr_style_list'] = 'λίστα σελίδων με αλλαγές μετά από το τελευταίο email (κάθε %.2f μέρες)';
-$lang['authmodfailed'] = 'Κακή ρύθμιση λίστας χρηστών. Παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
$lang['authtempfail'] = 'Η συνδεση χρηστών είναι απενεργοποιημένη αυτή την στιγμή. Αν αυτό διαρκέσει για πολύ, παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
-$lang['authpwdexpire'] = 'Ο κωδικός πρόσβασης θα λήξει σε %s ημέρες. Προτείνουμε να τον αλλάξετε σύντομα.';
+$lang['authpwdexpire'] = 'Ο κωδικός πρόσβασης θα λήξει σε %d ημέρες. Προτείνουμε να τον αλλάξετε σύντομα.';
$lang['i_chooselang'] = 'Επιλογή γλώσσας';
$lang['i_installer'] = 'Οδηγός εγκατάστασης DokuWiki';
$lang['i_wikiname'] = 'Ονομασία wiki';
diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php
index 630ccb3ff..ab84c67f3 100644
--- a/inc/lang/en/lang.php
+++ b/inc/lang/en/lang.php
@@ -84,7 +84,7 @@ $lang['profnochange'] = 'No changes, nothing to do.';
$lang['profnoempty'] = 'An empty name or email address is not allowed.';
$lang['profchanged'] = 'User profile successfully updated.';
$lang['profnodelete'] = 'This wiki does not support deleting users';
-$lang['profdeleteuser'] = 'Delete Account';
+$lang['profdeleteuser'] = 'Delete Account';
$lang['profdeleted'] = 'Your user account has been deleted from this wiki';
$lang['profconfdelete'] = 'I wish to remove my account from this wiki. <br/> This action can not be undone.';
$lang['profconfdeletemissing'] = 'Confirmation check box not ticked';
@@ -287,7 +287,6 @@ $lang['subscr_style_digest'] = 'digest email of changes for each page (ev
$lang['subscr_style_list'] = 'list of changed pages since last email (every %.2f days)';
/* auth.class language support */
-$lang['authmodfailed'] = 'Bad user authentication configuration. Please inform your Wiki Admin.';
$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.';
$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.';
@@ -357,4 +356,8 @@ $lang['media_perm_upload'] = 'Sorry, you don\'t have enough rights to upload
$lang['media_update'] = 'Upload new version';
$lang['media_restore'] = 'Restore this version';
+$lang['currentns'] = 'Current namespace';
+$lang['searchresult'] = 'Search Result';
+$lang['plainhtml'] = 'Plain HTML';
+$lang['wikimarkup'] = 'Wiki Markup';
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/eo/admin.txt b/inc/lang/eo/admin.txt
index 2ede2763c..4b0cf7909 100644
--- a/inc/lang/eo/admin.txt
+++ b/inc/lang/eo/admin.txt
@@ -1,3 +1,3 @@
-====== Administro ======
+====== Administrado ======
Sube vi povas trovi liston de administraj taskoj disponeblaj en DokuWiki.
diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php
index 1bafe5191..4ed03244e 100644
--- a/inc/lang/eo/lang.php
+++ b/inc/lang/eo/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Esperanta dosiero
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Antono Vasiljev <esperanto.minsk ĈE tut.by>
* @author Felipe Castro <fefcas@yahoo.com.br>
* @author Felipe Castro <fefcas@uol.com.br>
@@ -53,6 +53,7 @@ $lang['btn_revert'] = 'Restarigi';
$lang['btn_register'] = 'Registriĝi';
$lang['btn_apply'] = 'Apliki';
$lang['btn_media'] = 'Medio-administrilo';
+$lang['btn_deleteuser'] = 'Forigi mian aliĝon';
$lang['loggedinas'] = 'Ensalutinta kiel';
$lang['user'] = 'Uzant-nomo';
$lang['pass'] = 'Pasvorto';
@@ -64,6 +65,7 @@ $lang['fullname'] = 'Kompleta nomo';
$lang['email'] = 'Retpoŝto';
$lang['profile'] = 'Uzanto-profilo';
$lang['badlogin'] = 'Pardonu, uzant-nomo aŭ pasvorto estis erara.';
+$lang['badpassconfirm'] = 'Pardonu, la pasvorto malĝustis';
$lang['minoredit'] = 'Etaj modifoj';
$lang['draftdate'] = 'Lasta konservo de la skizo:';
$lang['nosecedit'] = 'La paĝo ŝanĝiĝis intertempe, sekcio-informo estis malĝisdata, tial la tuta paĝo estas reŝargita.';
@@ -80,6 +82,11 @@ $lang['profna'] = 'Tiu ĉi vikio ne ebligas modifon en la profilo
$lang['profnochange'] = 'Neniu ŝanĝo, nenio farinda.';
$lang['profnoempty'] = 'Malplena nomo aŭ retadreso ne estas permesata.';
$lang['profchanged'] = 'La profilo de la uzanto sukcese ĝisdatiĝis.';
+$lang['profnodelete'] = 'Tiu ĉi vikio ne subtenas forigo de uzantoj';
+$lang['profdeleteuser'] = 'Forigi aliĝon';
+$lang['profdeleted'] = 'Via uzant-aliĝo estis forigata de tiu ĉi vikio';
+$lang['profconfdelete'] = 'Mi deziras forigi mian aliĝon de tiu ĉi vikio. <br/> Tiu ĉi ago ne povos esti malfarata.';
+$lang['profconfdeletemissing'] = 'Konfirmilo ne estas markita';
$lang['pwdforget'] = 'Ĉu vi forgesis vian pasvorton? Prenu novan';
$lang['resendna'] = 'Tiu ĉi vikio ne ebligas resendon de la pasvortoj.';
$lang['resendpwd'] = 'Sendi novan pasvorton al';
@@ -263,7 +270,6 @@ $lang['subscr_m_receive'] = 'Ricevi';
$lang['subscr_style_every'] = 'retpoŝtaĵo pro ĉiu ŝanĝo';
$lang['subscr_style_digest'] = 'resuma retpoŝtaĵo de ŝanĝoj por ĉiu paĝo (je %.2f tagoj)';
$lang['subscr_style_list'] = 'listo de ŝanĝitaj paĝoj ekde la lasta retpoŝtaĵo (je %.2f tagoj)';
-$lang['authmodfailed'] = 'Malbona agordo por identigi la uzanton. Bonvolu informi la administranton de la vikio.';
$lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daŭros, bonvolu informi la adminstranton de la vikio.';
$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ŝanĝu ĝin baldaũ.';
$lang['i_chooselang'] = 'Elektu vian lingvon';
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index 193ec9a7d..0764621b0 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * spanish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Zigor Astarbe <zigor@astarbe.com>
* @author Adrián Ariza <adrian_ariza.ciudad.com.ar>
* @author Gabiel Molina <gabriel191@gmail.com>
@@ -28,6 +28,8 @@
* @author Ruben Figols <ruben.figols@gmail.com>
* @author Gerardo Zamudio <gerardo@gerardozamudio.net>
* @author Mercè López mercelz@gmail.com
+ * @author r0sk <r0sk10@gmail.com>
+ * @author monica <may.dorado@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -71,6 +73,7 @@ $lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Registrarse';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Gestor de ficheros';
+$lang['btn_deleteuser'] = 'Elimina Mi Cuenta';
$lang['loggedinas'] = 'Conectado como ';
$lang['user'] = 'Usuario';
$lang['pass'] = 'Contraseña';
@@ -82,6 +85,7 @@ $lang['fullname'] = 'Nombre real';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Perfil del usuario';
$lang['badlogin'] = 'Lo siento, el usuario o la contraseña es incorrecto.';
+$lang['badpassconfirm'] = 'Lo siento, la contraseña es errónea';
$lang['minoredit'] = 'Cambios menores';
$lang['draftdate'] = 'Borrador guardado automáticamente:';
$lang['nosecedit'] = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.';
@@ -98,6 +102,11 @@ $lang['profna'] = 'Este wiki no permite la modificación del perf
$lang['profnochange'] = 'Sin cambios, nada que hacer.';
$lang['profnoempty'] = 'No se permite que el nombre o la dirección de correo electrónico estén vacíos.';
$lang['profchanged'] = 'Se actualizó correctamente el perfil del usuario.';
+$lang['profnodelete'] = 'Este wiki no soporta el borrado de usuarios';
+$lang['profdeleteuser'] = 'Eliminar Cuenta';
+$lang['profdeleted'] = 'Tu cuenta de usuario ha sido eliminada de este wiki';
+$lang['profconfdelete'] = 'Deseo eliminar mi cuenta de este wiki. <br /> Esta acción es irreversible.';
+$lang['profconfdeletemissing'] = 'Casilla de verificación no activada.';
$lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva';
$lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvío de contraseña.';
$lang['resendpwd'] = 'Establecer nueva contraseña para';
@@ -280,7 +289,8 @@ $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['authmodfailed'] = 'Está mal configurada la autenticación de usuarios. Por favor, avisa al administrador del wiki.';
+$lang['subscr_style_digest'] = 'Resumen de correo electrónico de cambios por cada página (cada %.2f días)';
+$lang['subscr_style_list'] = 'lista de páginas modificadas desde el último correo electrónico (cada %.2f días)';
$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';
$lang['i_chooselang'] = 'Elija su idioma';
@@ -305,6 +315,9 @@ $lang['i_pol1'] = 'Wiki público (leer para todos, escribir y sub
$lang['i_pol2'] = 'Wiki cerrado (leer, escribir y subir archivos para usuarios registrados únicamente)';
$lang['i_retry'] = 'Reintentar';
$lang['i_license'] = 'Por favor escoja una licencia bajo la que publicar su contenido:';
+$lang['i_license_none'] = 'No mostrar ninguna información sobre licencias';
+$lang['i_pop_field'] = 'Por favor, ayúdanos a mejorar la experiencia de DokuWiki:';
+$lang['i_pop_label'] = 'Una vez al mes, enviar información anónima de uso de datos a los desarrolladores de DokuWiki';
$lang['recent_global'] = 'Actualmente estás viendo los cambios dentro del namespace <b>%s</b>. También puedes <a href="%s">ver los cambios recientes en el wiki completo</a>.';
$lang['years'] = '%d años atrás';
$lang['months'] = '%d meses atrás';
diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php
index 0a0310832..cc736db4d 100644
--- a/inc/lang/et/lang.php
+++ b/inc/lang/et/lang.php
@@ -208,7 +208,6 @@ $lang['img_copyr'] = 'Autoriõigused';
$lang['img_format'] = 'Formaat';
$lang['img_camera'] = 'Kaamera';
$lang['img_keywords'] = 'Võtmesõnad';
-$lang['authmodfailed'] = 'Vigane kasutajate autentimise konfiguratsioon. Palun teavita sellest serveri haldajat.';
$lang['authtempfail'] = 'Kasutajate autentimine on ajutiselt rivist väljas. Kui see olukord mõne aja jooksul ei parane, siis teavita sellest serveri haldajat.';
$lang['i_chooselang'] = 'Vali keel';
$lang['i_installer'] = 'DokuWiki paigaldaja';
diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php
index 7aab8b44c..c7e7ead9a 100644
--- a/inc/lang/eu/lang.php
+++ b/inc/lang/eu/lang.php
@@ -257,7 +257,6 @@ $lang['subscr_m_receive'] = 'Jaso';
$lang['subscr_style_every'] = 'e-posta aldaketa bakoitzean';
$lang['subscr_style_digest'] = 'e-posta laburbildua orri bakoitzeko aldaketentzat (%.2f egunero)';
$lang['subscr_style_list'] = 'aldatutako orrien zerrenda azken e-postatik (%.2f egunero)';
-$lang['authmodfailed'] = 'Erabiltzaile kautotzearen konfigurazioa okerra da. Mesedez, eman honen berri Wiki administratzaileari';
$lang['authtempfail'] = 'Erabiltzaile kautotzea denboraldi batez ez dago erabilgarri. Egoerak hala jarraitzen badu, mesedez, eman honen berri Wiki administratzaileari';
$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.';
$lang['i_chooselang'] = 'Hautatu zure hizkuntza';
diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php
index eb828a472..6cb5164d8 100644
--- a/inc/lang/fa/lang.php
+++ b/inc/lang/fa/lang.php
@@ -1,19 +1,15 @@
<?php
+
/**
- * fa language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesFa.php?view=co
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author Omid Mottaghi <omidmr@gmail.com>
* @author Mohammad Reza Shoaei <shoaei@gmail.com>
* @author Milad DZand <M.DastanZand@gmail.com>
* @author AmirH Hassaneini <mytechmix@gmail.com>
+ * @author mehrdad <mehrdad.jafari.bojd@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -57,6 +53,7 @@ $lang['btn_revert'] = 'بازیابی';
$lang['btn_register'] = 'یک حساب جدید بسازید';
$lang['btn_apply'] = 'اعمال کن';
$lang['btn_media'] = 'مدیریت محتوای چند رسانه ای';
+$lang['btn_deleteuser'] = 'حذف حساب کاربری خود';
$lang['loggedinas'] = 'به عنوان کاربر روبرو وارد شده‌اید:';
$lang['user'] = 'نام کاربری:';
$lang['pass'] = 'گذرواژه‌ی شما';
@@ -68,6 +65,7 @@ $lang['fullname'] = '*نام واقعی شما';
$lang['email'] = 'ایمیل شما*';
$lang['profile'] = 'پروفایل کاربر';
$lang['badlogin'] = 'خطا در ورود به سیستم';
+$lang['badpassconfirm'] = 'متاسفم ، رمز عبور اشتباه است';
$lang['minoredit'] = 'این ویرایش خُرد است';
$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس';
$lang['nosecedit'] = 'این صفحه در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض محتوای کل نمایش داده می‌شود.';
@@ -84,6 +82,8 @@ $lang['profna'] = 'این ویکی اجازه ویرایش پرو
$lang['profnochange'] = 'تغییری صورت نگرفت';
$lang['profnoempty'] = 'نام و آدرس ایمیل باید پر شود';
$lang['profchanged'] = 'پروفایل کاربر با موفقیت به روز شد';
+$lang['profnodelete'] = 'ویکی توانایی پشتیبانی از حذف کاربران را ندارد';
+$lang['profdeleteuser'] = 'حذف حساب کاربری';
$lang['pwdforget'] = 'گذرواژه‌ی خود را فراموش کرده‌اید؟ جدید دریافت کنید';
$lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند';
$lang['resendpwd'] = 'تعیین کلمه عبور جدید برای ';
@@ -266,7 +266,6 @@ $lang['subscr_m_unsubscribe'] = 'لغو آبونه';
$lang['subscr_m_subscribe'] = 'آبونه شدن';
$lang['subscr_m_receive'] = 'دریافت کردن';
$lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی تغییرات';
-$lang['authmodfailed'] = 'اشکال در نوع معتبرسازی کاربران، مدیر ویکی را باخبر سازید.';
$lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.';
$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ، شما باید آن را زود تغییر دهید';
$lang['i_chooselang'] = 'انتخاب زبان';
diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php
index b66558d26..4a0a88ac8 100644
--- a/inc/lang/fi/lang.php
+++ b/inc/lang/fi/lang.php
@@ -262,7 +262,6 @@ $lang['subscr_m_receive'] = 'Vastaanota';
$lang['subscr_style_every'] = 'Sähköposti joka muutoksesta';
$lang['subscr_style_digest'] = 'yhteenveto-sähköposti joka sivusta (joka %.2f. päivä)';
$lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)';
-$lang['authmodfailed'] = 'Käyttäjien autentikoinnin asetukset ovat virheelliset. Ilmoita asiasta wikin ylläpitäjälle.';
$lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.';
$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.';
$lang['i_chooselang'] = 'Valitse kieli';
diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php
index 9f51824db..161e7321a 100644
--- a/inc/lang/fo/lang.php
+++ b/inc/lang/fo/lang.php
@@ -168,5 +168,4 @@ $lang['img_copyr'] = 'Upphavsrættur';
$lang['img_format'] = 'Snið';
$lang['img_camera'] = 'Fototól';
$lang['img_keywords'] = 'Evnisorð';
-$lang['authmodfailed'] = 'Brek við validering av brúkarasamansetingv. Fá samband við umboðsstjóran á hesi wiki.';
$lang['authtempfail'] = 'Validering av brúkara virkar fyribils ikki. Um hetta er varandi, fá so samband við umboðsstjóran á hesi wiki.';
diff --git a/inc/lang/fr/diff.txt b/inc/lang/fr/diff.txt
index 8569f3497..d1230ccaf 100644
--- a/inc/lang/fr/diff.txt
+++ b/inc/lang/fr/diff.txt
@@ -1,4 +1,4 @@
====== Différences ======
-Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
+Ci-dessous, les différences entre deux révisions de la page.
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index adeb175ef..44bc0f859 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * french language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sébastien Bauer <sebastien.bauer@advalvas.be>
* @author Antoine Fixary <antoine.fixary@freesbee.fr>
* @author cumulus <pta-n56@myamail.com>
@@ -27,6 +27,7 @@
* @author Olivier DUVAL <zorky00@gmail.com>
* @author Anael Mobilia <contrib@anael.eu>
* @author Bruno Veilleux <bruno.vey@gmail.com>
+ * @author Emmanuel <seedfloyd@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -70,6 +71,7 @@ $lang['btn_revert'] = 'Restaurer';
$lang['btn_register'] = 'S\'enregistrer';
$lang['btn_apply'] = 'Appliquer';
$lang['btn_media'] = 'Gestionnaire de médias';
+$lang['btn_deleteuser'] = 'Supprimer mon compte';
$lang['loggedinas'] = 'Connecté en tant que ';
$lang['user'] = 'Utilisateur';
$lang['pass'] = 'Mot de passe';
@@ -81,6 +83,7 @@ $lang['fullname'] = 'Nom';
$lang['email'] = 'Adresse de courriel';
$lang['profile'] = 'Profil utilisateur';
$lang['badlogin'] = 'L\'utilisateur ou le mot de passe est incorrect.';
+$lang['badpassconfirm'] = 'Désolé, le mot de passe est erroné';
$lang['minoredit'] = 'Modification mineure';
$lang['draftdate'] = 'Brouillon enregistré de manière automatique le';
$lang['nosecedit'] = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.';
@@ -97,6 +100,11 @@ $lang['profna'] = 'Ce wiki ne permet pas de modifier les profils'
$lang['profnochange'] = 'Pas de modification, rien à faire.';
$lang['profnoempty'] = 'Un nom ou une adresse de courriel vide n\'est pas permis.';
$lang['profchanged'] = 'Mise à jour du profil réussie.';
+$lang['profnodelete'] = 'Ce wiki ne permet pas la suppression des utilisateurs';
+$lang['profdeleteuser'] = 'Supprimer le compte';
+$lang['profdeleted'] = 'Votre compte utilisateur a été supprimé de ce wiki';
+$lang['profconfdelete'] = 'Je veux supprimer mon compte sur ce wiki. </br> Cette action est irréversible.';
+$lang['profconfdeletemissing'] = 'La case de confirmation n\'est pas cochée';
$lang['pwdforget'] = 'Mot de passe oublié ? Obtenez-en un nouveau';
$lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de passe.';
$lang['resendpwd'] = 'Définir un nouveau mot de passe pour';
@@ -279,7 +287,6 @@ $lang['subscr_m_receive'] = 'Recevoir';
$lang['subscr_style_every'] = 'Recevoir un courriel à chaque modification';
$lang['subscr_style_digest'] = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page';
$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel (tous les %.2f jours)';
-$lang['authmodfailed'] = 'Mauvais paramétrage de l\'authentification. Merci d\'en informer l\'administrateur du wiki.';
$lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'en informer l\'administrateur du wiki.';
$lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.';
$lang['i_chooselang'] = 'Choisissez votre langue';
diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php
index fa49c1121..65967a3b5 100644
--- a/inc/lang/gl/lang.php
+++ b/inc/lang/gl/lang.php
@@ -258,7 +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['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.';
$lang['i_chooselang'] = 'Escolle o teu idioma';
diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php
index 4853a0e2b..4ddc3a019 100644
--- a/inc/lang/he/lang.php
+++ b/inc/lang/he/lang.php
@@ -1,15 +1,15 @@
<?php
+
/**
- * Hebrew language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @link http://sourceforge.net/projects/hebdokuwiki/
+ *
* @author גיא שפר <guysoft@ort.org.il>
* @author Denis Simakov <akinoame1@gmail.com>
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@gmail.com>
* @author Yaron Yogev <yaronyogev@gmail.com>
* @author Yaron Shahrabani <sh.yaron@gmail.com>
+ * @author Roy Zahor <roy.zahor@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -45,11 +45,13 @@ $lang['btn_backtomedia'] = 'חזרה לבחירת קובץ מדיה';
$lang['btn_subscribe'] = 'מעקב אחרי שינוים';
$lang['btn_profile'] = 'עדכון הפרופיל';
$lang['btn_reset'] = 'איפוס';
+$lang['btn_resendpwd'] = 'הגדר סיסמה חדשה';
$lang['btn_draft'] = 'עריכת טיוטה';
$lang['btn_recover'] = 'שחזור טיוטה';
$lang['btn_draftdel'] = 'מחיקת טיוטה';
$lang['btn_revert'] = 'שחזור';
$lang['btn_register'] = 'הרשמה';
+$lang['btn_media'] = 'מנהל המדיה';
$lang['loggedinas'] = 'נכנסת בשם';
$lang['user'] = 'שם משתמש';
$lang['pass'] = 'ססמה';
@@ -61,6 +63,7 @@ $lang['fullname'] = 'שם מלא';
$lang['email'] = 'דוא״ל';
$lang['profile'] = 'פרופיל המשתמש';
$lang['badlogin'] = 'שם המשתמש או הססמה שגויים, עמך הסליחה';
+$lang['badpassconfirm'] = 'מצטערים, הסיסמה שגויה';
$lang['minoredit'] = 'שינוים מזעריים';
$lang['draftdate'] = 'הטיוטה נשמרה אוטומטית ב־';
$lang['nosecedit'] = 'הדף השתנה בינתיים, הקטע שערכת אינו מעודכן - העמוד כולו נטען במקום זאת.';
@@ -79,6 +82,7 @@ $lang['profnoempty'] = 'השם וכתובת הדוא״ל לא יכול
$lang['profchanged'] = 'הפרופיל עודכן בהצלחה';
$lang['pwdforget'] = 'שכחת את הססמה שלך? ניתן לקבל חדשה';
$lang['resendna'] = 'הוויקי הזה אינו תומך בחידוש ססמה';
+$lang['resendpwd'] = 'הגדר סיסמא חדשה בעבור';
$lang['resendpwdmissing'] = 'עליך למלא את כל השדות, עמך הסליחה.';
$lang['resendpwdnouser'] = 'משתמש בשם זה לא נמצא במסד הנתונים, עמך הסליחה.';
$lang['resendpwdbadauth'] = 'קוד אימות זה אינו תקף. יש לוודא כי נעשה שימוש בקישור האימות המלא, עמך הסליחה.';
@@ -93,7 +97,7 @@ $lang['txt_filename'] = 'העלאה בשם (נתון לבחירה)';
$lang['txt_overwrt'] = 'שכתוב על קובץ קיים';
$lang['lockedby'] = 'נעול על ידי';
$lang['lockexpire'] = 'הנעילה פגה';
-$lang['js']['willexpire'] = 'הנעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאפס את מד משך הנעילה.';
+$lang['js']['willexpire'] = 'הנעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאפס את מד משך הנעילה.';
$lang['js']['notsavedyet'] = 'שינויים שלא נשמרו ילכו לאיבוד.';
$lang['js']['searchmedia'] = 'חיפוש אחר קבצים';
$lang['js']['keepopen'] = 'השארת חלון פתוח על הבחירה';
@@ -124,6 +128,11 @@ $lang['js']['nosmblinks'] = 'קישור לכונני שיתוף של Window
$lang['js']['linkwiz'] = 'אשף הקישורים';
$lang['js']['linkto'] = 'קישור אל:';
$lang['js']['del_confirm'] = 'באמת למחוק?';
+$lang['js']['media_diff'] = 'הצגת הבדלים:';
+$lang['js']['media_diff_both'] = 'זה לצד זה';
+$lang['js']['media_select'] = 'בחר קבצים...';
+$lang['js']['media_upload_btn'] = 'העלאה';
+$lang['js']['media_drop'] = 'גרור לכאן קבצים בכדי להעלותם';
$lang['rssfailed'] = 'אירע כשל בעת קבלת הזנה זו:';
$lang['nothingfound'] = 'לא נמצאו תוצאות.';
$lang['mediaselect'] = 'קובצי מדיה';
@@ -158,6 +167,9 @@ $lang['yours'] = 'הגרסה שלך';
$lang['diff'] = 'הצגת שינוים מגרסה זו ועד הנוכחית';
$lang['diff2'] = 'הצגת הבדלים בין הגרסאות שנבחרו';
$lang['difflink'] = 'קישור לתצוגה השוואה זו';
+$lang['diff_type'] = 'הצגת הבדלים:';
+$lang['diff_inline'] = 'באותה השורה';
+$lang['diff_side'] = 'זה לצד זה';
$lang['line'] = 'שורה';
$lang['breadcrumb'] = 'ביקורים אחרונים';
$lang['youarehere'] = 'זהו מיקומך';
@@ -170,11 +182,14 @@ $lang['external_edit'] = 'עריכה חיצונית';
$lang['summary'] = 'תקציר העריכה';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">תוסף פלאש לדפדפן</a> נדרש כדי להציג תוכן זה.';
$lang['download'] = 'הורדת מקטע';
+$lang['tools'] = 'כלים';
$lang['mail_newpage'] = 'דף נוסף:';
$lang['mail_changed'] = 'דף שונה:';
$lang['mail_subscribe_list'] = 'דפים שהשתנו במרחב השם:';
$lang['mail_new_user'] = 'משתמש חדש:';
$lang['mail_upload'] = 'קובץ הועלה:';
+$lang['pages_changes'] = 'דפים';
+$lang['media_changes'] = 'קבצי מדיה';
$lang['qb_bold'] = 'טקסט מודגש';
$lang['qb_italic'] = 'טקסט נטוי';
$lang['qb_underl'] = 'טקסט עם קו תחתון';
@@ -215,6 +230,8 @@ $lang['img_copyr'] = 'זכויות יוצרים';
$lang['img_format'] = 'מבנה';
$lang['img_camera'] = 'מצלמה';
$lang['img_keywords'] = 'מילות מפתח';
+$lang['img_width'] = 'רוחב';
+$lang['img_height'] = 'גובה';
$lang['subscr_subscribe_success'] = '%s נוסף לרשימת המינויים לדף %s';
$lang['subscr_subscribe_error'] = 'אירעה שגיאה בהוספת %s לרשימת המינויים לדף %s';
$lang['subscr_subscribe_noaddress'] = 'אין כתובת המשויכת עם הכניסה שלך, נא ניתן להוסיף אותך לרשימת המינויים';
@@ -231,7 +248,6 @@ $lang['subscr_m_receive'] = 'קבלת';
$lang['subscr_style_every'] = 'דוא״ל עם כל שינוי';
$lang['subscr_style_digest'] = 'הודעת דוא״ל המציגה את כל השינויים בכל עמוד (בכל %.2f ימים)';
$lang['subscr_style_list'] = 'רשימת השינויים בדפים מאז הודעת הדוא״ל האחרונה (בכל %.2f ימים)';
-$lang['authmodfailed'] = 'תצורת אימות המשתמשים אינה תקינה. נא ליידע את מנהל הוויקי.';
$lang['authtempfail'] = 'אימות משתמשים אינו זמין כרגע. אם מצב זה נמשך נא ליידע את מנהל הוויקי.';
$lang['i_chooselang'] = 'נא לבחור שפה';
$lang['i_installer'] = 'תכנית ההתקנה של DokuWiki';
@@ -265,3 +281,12 @@ $lang['hours'] = 'לפני %d שעות';
$lang['minutes'] = 'לפני %d דקות';
$lang['seconds'] = 'לפני %d שניות';
$lang['wordblock'] = 'השינויים שלך לא נשמרו כיוון שהם מכילים טקסט חסום (ספאם).';
+$lang['media_searchtab'] = 'חיפוש';
+$lang['media_file'] = 'קובץ';
+$lang['media_viewtab'] = 'תצוגה';
+$lang['media_edittab'] = 'עריכה';
+$lang['media_historytab'] = 'היסטוריה';
+$lang['media_list_rows'] = 'שורות';
+$lang['media_sort_name'] = 'שם';
+$lang['media_sort_date'] = 'תאריך';
+$lang['media_namespaces'] = 'בחר מרחב שמות';
diff --git a/inc/lang/hi/diff.txt b/inc/lang/hi/diff.txt
new file mode 100644
index 000000000..6f88c1985
--- /dev/null
+++ b/inc/lang/hi/diff.txt
@@ -0,0 +1,3 @@
+======असमानता======
+
+यह आपको पृष्ठ के दो संस्करणों के बीच असमानता को दर्शाता है. \ No newline at end of file
diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php
index d2021fcae..184eeedbc 100644
--- a/inc/lang/hi/lang.php
+++ b/inc/lang/hi/lang.php
@@ -1,15 +1,11 @@
<?php
+
/**
- * hi language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesHi.php?view=co
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
* @author yndesai@gmail.com
+ * @author Santosh Joshi <sanjujoshhi@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -44,6 +40,12 @@ $lang['btn_backlink'] = 'पिछली कड़ियाँ';
$lang['btn_backtomedia'] = 'मीडिया फाइल चयन पर पीछे जायें';
$lang['btn_subscribe'] = 'सदस्यता प्रबंधन';
$lang['btn_profile'] = 'परिचय संपादित करें';
+$lang['btn_resendpwd'] = 'नया पासवर्ड सेट करें';
+$lang['btn_draft'] = 'प्रारूप सम्पादित करें';
+$lang['btn_draftdel'] = 'प्रारूप मिटायें';
+$lang['btn_revert'] = 'वापस लौटाएं';
+$lang['btn_apply'] = 'लागू करें';
+$lang['btn_deleteuser'] = 'खाता मिटायें';
$lang['user'] = 'उपयोगकर्ता का नाम';
$lang['pass'] = 'गुप्त शब्द';
$lang['newpass'] = 'नव गुप्त शब्द';
diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php
index a607210d7..f19610827 100644
--- a/inc/lang/hr/lang.php
+++ b/inc/lang/hr/lang.php
@@ -231,7 +231,6 @@ $lang['subscr_m_receive'] = 'Primaj';
$lang['subscr_style_every'] = 'email za svaku promjenu';
$lang['subscr_style_digest'] = 'email s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)';
$lang['subscr_style_list'] = 'listu promijenjenih stranica od zadnjeg primljenog email-a (svaka %.2f dana)';
-$lang['authmodfailed'] = 'Greška u konfiguraciji korisničke autentifikacije. Molimo Vas da kontaktirate administratora.';
$lang['authtempfail'] = 'Autentifikacija korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora.';
$lang['i_chooselang'] = 'Izaberite vaš jezik';
$lang['i_installer'] = 'DokuWiki instalacija';
diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php
index b332b9a83..2622934c2 100644
--- a/inc/lang/hu/lang.php
+++ b/inc/lang/hu/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Hungarian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ziegler Gábor <gziegler@freemail.hu>
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
@@ -11,6 +11,7 @@
* @author Sándor TIHANYI <stihanyi+dw@gmail.com>
* @author David Szabo <szabo.david@gyumolcstarhely.hu>
* @author Marton Sebok <sebokmarton@gmail.com>
+ * @author Serenity87HUN <anikototh87@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -54,6 +55,7 @@ $lang['btn_revert'] = 'Helyreállítás';
$lang['btn_register'] = 'Regisztráció';
$lang['btn_apply'] = 'Alkalmaz';
$lang['btn_media'] = 'Médiakezelő';
+$lang['btn_deleteuser'] = 'Felhasználói fiókom eltávolítása';
$lang['loggedinas'] = 'Belépett felhasználó: ';
$lang['user'] = 'Azonosító';
$lang['pass'] = 'Jelszó';
@@ -65,6 +67,7 @@ $lang['fullname'] = 'Teljes név';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Személyes beállítások';
$lang['badlogin'] = 'Sajnáljuk, az azonosító vagy a jelszó nem jó.';
+$lang['badpassconfirm'] = 'Hibás jelszó';
$lang['minoredit'] = 'Apróbb változások';
$lang['draftdate'] = 'Piszkozat elmentve:';
$lang['nosecedit'] = 'Időközben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!';
@@ -81,6 +84,11 @@ $lang['profna'] = 'Ez a wiki nem támogatja a személyes beállí
$lang['profnochange'] = 'Nem történt változás.';
$lang['profnoempty'] = 'A név és e-mail mező nem maradhat üresen!';
$lang['profchanged'] = 'A személyes beállítások változtatása megtörtént.';
+$lang['profnodelete'] = 'Ez a wiki nem támogatja a felhasználói fiókok törlését';
+$lang['profdeleteuser'] = 'Felhasználói fiók törlése';
+$lang['profdeleted'] = 'Felhasználói fiókodat eltávolítottuk erről a wiki-ről.';
+$lang['profconfdelete'] = 'Szeretném eltávolítani a felhasználói fiókomat erről a wikiről. <br/> Ez a cselekvés nem visszavonható.';
+$lang['profconfdeletemissing'] = 'A megerősítő négyzet nincs bepipálva';
$lang['pwdforget'] = 'Elfelejtetted a jelszavad? Itt kérhetsz újat';
$lang['resendna'] = 'Ez a wiki nem támogatja a jelszó újraküldést.';
$lang['resendpwd'] = 'Új jelszó beállítása a következőhöz:';
@@ -264,7 +272,6 @@ $lang['subscr_m_receive'] = 'Küldj';
$lang['subscr_style_every'] = 'e-mailt minden változásról';
$lang['subscr_style_digest'] = 'összefoglaló e-mailt oldalanként (minden %.2f nap)';
$lang['subscr_style_list'] = 'egy listát a módosított oldalakról a legutóbbi e-mail óta (minden %.2f nap)';
-$lang['authmodfailed'] = 'Hibás felhasználó-azonosítási módszer van beállítva. Légy szíves értesítsd az Adminisztrátorokat!';
$lang['authtempfail'] = 'A felhasználó azonosítás átmenetileg nem működik. Ha sokáig így lenne, légy szíves értesítsd az Adminisztrátorokat!';
$lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.';
$lang['i_chooselang'] = 'Válassz nyelvet';
diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php
index e8a11479c..144dfe33b 100644
--- a/inc/lang/ia/lang.php
+++ b/inc/lang/ia/lang.php
@@ -227,7 +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['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';
$lang['i_installer'] = 'Installator de DokuWiki';
diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php
index 6c6d1c70f..1c8610923 100644
--- a/inc/lang/id/lang.php
+++ b/inc/lang/id/lang.php
@@ -39,7 +39,6 @@ $lang['btn_back'] = 'Kembali';
$lang['btn_backlink'] = 'Backlinks';
$lang['btn_backtomedia'] = 'Kembali ke Pilihan Mediafile';
$lang['btn_subscribe'] = 'Ikuti Perubahan';
-$lang['btn_unsubscribe'] = 'Berhenti Ikuti Perubahan';
$lang['btn_profile'] = 'Ubah Profil';
$lang['btn_reset'] = 'Reset';
$lang['btn_draft'] = 'Edit draft';
@@ -168,12 +167,6 @@ $lang['img_copyr'] = 'Hakcipta';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Katakunci';
-$lang['subscribe_success'] = 'Penambahan %s ke data subsripsi untuk %s';
-$lang['subscribe_error'] = 'Gagal menambahkan %s ke data subsripsi untuk %s';
-$lang['subscribe_noaddress'] = 'Tidak ditemukan alamat yang berhubungan dengan login Anda, Anda tidak dapat menambahkan daftar subscription';
-$lang['unsubscribe_success'] = 'Menghapus %s dari daftar subscription untuk %s';
-$lang['unsubscribe_error'] = 'Gagal menghapus %s dari daftar subscription untuk %s';
-$lang['authmodfailed'] = 'Konfigurasi autentikasi user tidak valid. Harap informasikan admin Wiki Anda.';
$lang['authtempfail'] = 'Autentikasi user saat ini sedang tidak dapat digunakan. Jika kejadian ini berlanjut, Harap informasikan admin Wiki Anda.';
$lang['i_chooselang'] = 'Pilih bahasa';
$lang['i_installer'] = 'Instalasi DokuWiki';
diff --git a/inc/lang/is/lang.php b/inc/lang/is/lang.php
index 78ae7e249..fbc7e9049 100644
--- a/inc/lang/is/lang.php
+++ b/inc/lang/is/lang.php
@@ -44,7 +44,6 @@ $lang['btn_back'] = 'Til baka';
$lang['btn_backlink'] = 'Hvað tengist hingað';
$lang['btn_backtomedia'] = 'Aftur til miðlaskrá';
$lang['btn_subscribe'] = 'Vakta';
-$lang['btn_unsubscribe'] = 'Afvakta';
$lang['btn_profile'] = 'Uppfæra notanda';
$lang['btn_reset'] = 'Endurstilla';
$lang['btn_draft'] = 'Breyta uppkasti';
diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php
index 92bf5fea8..5300dfd2a 100644
--- a/inc/lang/it/lang.php
+++ b/inc/lang/it/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Italian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Giorgio Vecchiocattivi <giorgio@vecchio.it>
* @author Roberto Bolli [http://www.rbnet.it/]
* @author Silvia Sargentoni <polinnia@tin.it>
@@ -15,6 +15,7 @@
* @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
* @author Matteo Pasotti <matteo@xquiet.eu>
* @author snarchio@gmail.com
+ * @author Edmondo Di Tucci <snarchio@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -58,6 +59,7 @@ $lang['btn_revert'] = 'Ripristina';
$lang['btn_register'] = 'Registrazione';
$lang['btn_apply'] = 'Applica';
$lang['btn_media'] = 'Gestore Media';
+$lang['btn_deleteuser'] = 'Rimuovi il mio account';
$lang['loggedinas'] = 'Collegato come';
$lang['user'] = 'Nome utente';
$lang['pass'] = 'Password';
@@ -69,6 +71,7 @@ $lang['fullname'] = 'Nome completo';
$lang['email'] = 'Email';
$lang['profile'] = 'Profilo utente';
$lang['badlogin'] = 'Il nome utente o la password non sono validi.';
+$lang['badpassconfirm'] = 'La password è errata';
$lang['minoredit'] = 'Modifiche minori';
$lang['draftdate'] = 'Bozza salvata in automatico il';
$lang['nosecedit'] = 'La pagina è stata modificata nel frattempo; è impossibile modificare solo la sezione scelta, quindi è stata caricata la pagina intera.';
@@ -85,6 +88,11 @@ $lang['profna'] = 'Questo wiki non supporta modifiche al profilo'
$lang['profnochange'] = 'Nessuna modifica, niente da aggiornare.';
$lang['profnoempty'] = 'Nome o indirizzo email vuoti non sono consentiti.';
$lang['profchanged'] = 'Aggiornamento del profilo utente riuscito.';
+$lang['profnodelete'] = 'Questa wiki non supporta la cancellazione degli utenti';
+$lang['profdeleteuser'] = 'Elimina account';
+$lang['profdeleted'] = 'Il tuo account utente è stato rimosso da questa wiki';
+$lang['profconfdelete'] = 'Voglio rimuovere il mio account da questa wiki. <br/> Questa operazione non può essere annullata.';
+$lang['profconfdeletemissing'] = 'La check box di conferma non è selezionata';
$lang['pwdforget'] = 'Hai dimenticato la password? Richiedine una nuova';
$lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove password.';
$lang['resendpwd'] = 'Imposta nuova password per';
@@ -266,7 +274,6 @@ $lang['subscr_m_receive'] = 'Ricevi';
$lang['subscr_style_every'] = 'email per ogni modifica';
$lang['subscr_style_digest'] = 'email di riassunto dei cambiamenti per ogni pagina (ogni %.2f giorni)';
$lang['subscr_style_list'] = 'lista delle pagine cambiate dall\'ultima email (ogni %.2f giorni)';
-$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.';
$lang['i_chooselang'] = 'Scegli la lingua';
diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php
index 34ff5b21d..b032e1ce5 100644
--- a/inc/lang/ja/lang.php
+++ b/inc/lang/ja/lang.php
@@ -1,14 +1,16 @@
<?php
+
/**
- * japanese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuji Takenaka <webmaster@davilin.com>
* @author Ikuo Obataya <i.obataya@gmail.com>
* @author Daniel Dupriest <kououken@gmail.com>
* @author Kazutaka Miyasaka <kazmiya@gmail.com>
* @author Taisuke Shimamoto <dentostar@gmail.com>
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
+ * @author Hideaki SAWADA <chuno@live.jp>
+ * @author Hideaki SAWADA <sawadakun@live.jp>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,6 +54,7 @@ $lang['btn_revert'] = '元に戻す';
$lang['btn_register'] = 'ユーザー登録';
$lang['btn_apply'] = '適用';
$lang['btn_media'] = 'メディアマネージャー';
+$lang['btn_deleteuser'] = '自分のアカウントの抹消';
$lang['loggedinas'] = 'ようこそ';
$lang['user'] = 'ユーザー名';
$lang['pass'] = 'パスワード';
@@ -63,6 +66,7 @@ $lang['fullname'] = 'フルネーム';
$lang['email'] = 'メールアドレス';
$lang['profile'] = 'ユーザー情報';
$lang['badlogin'] = 'ユーザー名かパスワードが違います。';
+$lang['badpassconfirm'] = 'パスワードが間違っています。';
$lang['minoredit'] = '小変更';
$lang['draftdate'] = 'ドラフト保存日時:';
$lang['nosecedit'] = 'ページ内容が変更されていますがセクション情報が古いため、代わりにページ全体をロードしました。';
@@ -79,6 +83,11 @@ $lang['profna'] = 'ユーザー情報の変更は出来ません'
$lang['profnochange'] = '変更点はありませんでした。';
$lang['profnoempty'] = 'ユーザー名とメールアドレスを入力して下さい。';
$lang['profchanged'] = 'ユーザー情報は更新されました。';
+$lang['profnodelete'] = 'この wiki はユーザーを削除できない。';
+$lang['profdeleteuser'] = 'アカウントの削除';
+$lang['profdeleted'] = 'このwikiからあなたのユーザーアカウントは削除済です。';
+$lang['profconfdelete'] = 'このwikiから自分のアカウント抹消を希望します。<br/> この操作は取消すことができません。';
+$lang['profconfdeletemissing'] = '確認のチェックボックスがチェックされていません。';
$lang['pwdforget'] = 'パスワードをお忘れですか?パスワード再発行';
$lang['resendna'] = 'パスワードの再発行は出来ません。';
$lang['resendpwd'] = '新しいパスワードをセット';
@@ -261,7 +270,6 @@ $lang['subscr_m_receive'] = '受信';
$lang['subscr_style_every'] = '全ての変更にメールを送信';
$lang['subscr_style_digest'] = 'それぞれのページへの変更の要約をメールする(%.2f 日毎)';
$lang['subscr_style_list'] = '前回のメールから変更されたページをリスト(%.2f 日毎)';
-$lang['authmodfailed'] = 'ユーザー認証の設定が正しくありません。Wikiの管理者に連絡して下さい。';
$lang['authtempfail'] = 'ユーザー認証が一時的に使用できなくなっています。この状態が続いているようであれば、Wikiの管理者に連絡して下さい。';
$lang['authpwdexpire'] = 'あなたのパスワードは、あと%d日で有効期限が切れます。パスワードを変更してください。';
$lang['i_chooselang'] = '使用言語を選択してください';
@@ -288,6 +296,9 @@ $lang['i_pol1'] = 'パブリック Wiki(閲覧は全ての人
$lang['i_pol2'] = 'クローズド Wiki (登録ユーザーにのみ使用を許可)';
$lang['i_retry'] = '再試行';
$lang['i_license'] = 'あなたが作成したコンテンツが属するライセンスを選択してください:';
+$lang['i_license_none'] = 'ライセンス情報を表示しません。';
+$lang['i_pop_field'] = 'Dokuwiki の内容の向上に協力して下さい:';
+$lang['i_pop_label'] = '月に一回、DokuWikiの開発者に匿名の使用データを送信します。';
$lang['recent_global'] = '現在、<b>%s</b> 名前空間内の変更点を閲覧中です。<a href="%s">Wiki全体の最近の変更点の確認</a>もできます。';
$lang['years'] = '%d年前';
$lang['months'] = '%dカ月前';
diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php
index c056e3acc..4800b6c23 100644
--- a/inc/lang/km/lang.php
+++ b/inc/lang/km/lang.php
@@ -36,7 +36,6 @@ $lang['btn_back'] = 'ត្រឡប់';
$lang['btn_backlink'] = 'ខ្សែចំណងក្រោយ';
$lang['btn_backtomedia'] = 'ទៅប្រព័នឯកសាវិញ';
$lang['btn_subscribe'] = 'ដាក់ដំណឹងផ្លស់ប្តូរ';
-$lang['btn_unsubscribe'] = 'ដកដំណឹងផ្លស់ប្តូរ';
$lang['btn_profile'] = 'កែប្រវត្តិរូប';
$lang['btn_reset'] = 'កមណត់ឡើងរិញ';
$lang['btn_draft'] = 'កែគំរោង';
@@ -140,8 +139,6 @@ $lang['mail_changed'] = 'ទំព័រប្រែប្រួល';
$lang['mail_new_user'] = 'អ្នកប្រើថ្មី';
$lang['mail_upload'] = 'រុញអក្សាលើង';
-$lang['nosmblinks'] = 'ខ្សែបន្តទៅ «Windows share» ប្រើបានក្នុង «Microsoft IE»។ អ្នកអាច កាត់ឬបិត ខ្សែនេះ។';
-
$lang['qb_bold'] = 'ឃ្វាមក្រស';
$lang['qb_italic'] = 'ឃ្វាមជ្រៀង';
$lang['qb_underl'] = 'ឃ្វាម';
@@ -165,13 +162,6 @@ $lang['qb_chars'] = 'អក្ខរៈពិសេស';
$lang['js']['del_confirm']= 'លុប';
$lang['admin_register']= 'តែមអ្នកប្រើ';//'Add new user';
-$lang['spell_start'] = 'ពិនិត្យអក្ខរាវិរុទ្ធ';//'Check Spelling';
-$lang['spell_stop'] = 'បណ្តកំរែ';
-$lang['spell_wait'] = 'សូមចាំ';//'Please wait...';
-$lang['spell_noerr'] = 'ឥតមានខុះទេ';
-$lang['spell_nosug'] = 'ឥតមានយោបល់';
-$lang['spell_change']= 'ដូរជំនួស';//'Change';
-
$lang['metaedit'] = 'កែទិន្នន័យអរូប';//'Edit Metadata';
$lang['metasaveerr'] = 'ពំអាចកត់រទិន្នន័យអរូប';//'Writing metadata failed';
$lang['metasaveok'] = 'ទិន្នន័យអរូប';
@@ -187,14 +177,7 @@ $lang['img_format'] = 'ធុនប្រភេទ';
$lang['img_camera'] = 'គ្រឿងថត';
$lang['img_keywords']= 'មេពាក្ស';//'Keywords';
-$lang['subscribe_success'] = ' ដកថែម %s ចូលបញ្ជីបរិវិសកមចំពោះ %s';
-$lang['subscribe_error'] = 'មានកំហុសពេលបន្ថែម %s ចូលបញ្ជីបរិវិសកមចំពោះ %s';
-$lang['subscribe_noaddress']= 'ឥតមានអាសយដ្ឋាន អ្នកមិនអាចកត់ចុល';
-$lang['unsubscribe_success']= 'ដក %s ចេញពីបញ្ជីបរិវិសកមចំពោះ %s';
-$lang['unsubscribe_error'] = 'មានកំហុសពេលដក %s​ ចេញពីបញ្ជីបរិវិសកមចំពោះ %s';
-
/* auth.class language support */
-$lang['authmodfailed'] = 'និនផ្ទៀងផ្ទាត់​ភាព​​ត្រឹមត្រូវបានទេ។ សុំទាកទងអ្នកក្របគ្រោង។';
$lang['authtempfail'] = 'ការផ្ទៀងផ្ទាត់​ភាព​​ត្រឹមត្រូវឥតដំនេ។ ប្រើ ....';
/* installer strings */
diff --git a/inc/lang/ko/admin.txt b/inc/lang/ko/admin.txt
index c61db1a42..2f81e8961 100644
--- a/inc/lang/ko/admin.txt
+++ b/inc/lang/ko/admin.txt
@@ -1,3 +1,3 @@
-====== 관리 작업 ======
+====== 관리 ======
-DokuWiki에서 사용 가능한 관리 작업 목록을 아래에서 찾을 수 있습니다. \ No newline at end of file
+도쿠위키에서 사용할 수 있는 관리 작업 목록을 아래에서 찾을 수 있습니다. \ No newline at end of file
diff --git a/inc/lang/ko/conflict.txt b/inc/lang/ko/conflict.txt
index 9b7764d46..b5420333b 100644
--- a/inc/lang/ko/conflict.txt
+++ b/inc/lang/ko/conflict.txt
@@ -1,5 +1,5 @@
====== 새 판 있음 ======
-편집한 문서의 새 판이 있습니다. 당신이 편집하고 있는 동안 다른 사람이 같은 파일을 편집하였을 경우 이런 일이 생길 수 있습니다.
+편집한 문서의 새 판이 있습니다. 당신이 편집하고 있는 동안 다른 사용자가 문서를 바꾸면 이런 일이 생길 수 있습니다.
-아래의 차이를 철저하게 검토하고 어떤 판을 저장하실지 결정하세요. **저장**을 선택하면 당신의 판이 저장됩니다. **취소**를 선택하면 현재 판이 유지됩니다. \ No newline at end of file
+아래의 차이를 철저하게 검토하고 어떤 판을 저장하실지 결정하세요. ''저장''을 선택하면 당신의 판이 저장됩니다. ''취소''를 선택하면 현재 판이 유지됩니다. \ No newline at end of file
diff --git a/inc/lang/ko/denied.txt b/inc/lang/ko/denied.txt
index 89d417f7b..cff844bf4 100644
--- a/inc/lang/ko/denied.txt
+++ b/inc/lang/ko/denied.txt
@@ -1,3 +1,3 @@
====== 권한 거절 ======
-계속할 수 있는 권한이 없습니다. 로그인하세요. \ No newline at end of file
+죄송하지만 계속할 수 있는 권한이 없습니다. 로그인하세요. \ No newline at end of file
diff --git a/inc/lang/ko/diff.txt b/inc/lang/ko/diff.txt
index 8237342f7..3fef83221 100644
--- a/inc/lang/ko/diff.txt
+++ b/inc/lang/ko/diff.txt
@@ -1,3 +1,3 @@
====== 차이 ======
-이 문서의 선택한 이전 판과 현재 판 사이의 차이를 보여줍니다. \ No newline at end of file
+문서의 선택한 두 판 사이의 차이를 보여줍니다. \ No newline at end of file
diff --git a/inc/lang/ko/draft.txt b/inc/lang/ko/draft.txt
index b655d7c92..7e700f725 100644
--- a/inc/lang/ko/draft.txt
+++ b/inc/lang/ko/draft.txt
@@ -1,5 +1,5 @@
====== 문서 초안 있음 ======
-이 문서의 마지막 편집 세션은 정상적으로 끝나지 않았습니다. DokuWiki는 작업 도중 자동으로 저장된 문서 초안을 사용해 편집을 계속 할 수 있습니다. 마지막 세션 동안 저장된 문서 초안을 아래에서 볼 수 있습니다.
+이 문서의 마지막 편집 세션은 올바르게 끝나지 않았습니다. 도쿠위키는 작업 도중 자동으로 저장된 초안을 사용해 편집을 계속 할 수 있습니다. 마지막 세션 동안 저장된 초안을 아래에서 볼 수 있습니다.
비정상적으로 끝난 편집 세션을 **되돌릴**지 여부를 결정하고, 자동으로 저장되었던 초안을 **삭제**하거나 편집 과정을 **취소**하세요. \ No newline at end of file
diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt
index 87d1a9a95..8da90266c 100644
--- a/inc/lang/ko/edit.txt
+++ b/inc/lang/ko/edit.txt
@@ -1 +1 @@
-문서를 편집하고 **저장**을 누르세요. 위키 구문은 [[wiki:syntax]]를 참고하세요. 이 문서를 **더 좋게 만들 자신이 있을 때**에만 편집하세요. 연습을 하고 싶다면 먼저 [[playground:playground|연습장]]에 가서 연습하세요. \ No newline at end of file
+문서를 편집하고 ''저장''을 누르세요. 위키 구문은 [[wiki:syntax]]를 참고하세요. 문서를 **더 좋게 만들 자신이 있을 때**에만 편집하세요. 연습을 하고 싶다면 먼저 [[playground:playground|연습장]]에 가서 연습하세요. \ No newline at end of file
diff --git a/inc/lang/ko/editrev.txt b/inc/lang/ko/editrev.txt
index 911ea5f1b..8d3aeb813 100644
--- a/inc/lang/ko/editrev.txt
+++ b/inc/lang/ko/editrev.txt
@@ -1,2 +1,2 @@
-**문서의 이전 판을 선택했습니다!** 저장할 경우 이 데이터로 새 판을 만듭니다.
+**문서의 이전 판을 선택했습니다!** 저장하면 이 데이터로 새 판을 만듭니다.
---- \ No newline at end of file
diff --git a/inc/lang/ko/index.txt b/inc/lang/ko/index.txt
index a98bf877e..ce94e09c8 100644
--- a/inc/lang/ko/index.txt
+++ b/inc/lang/ko/index.txt
@@ -1,3 +1,3 @@
====== 사이트맵 ======
-[[doku>ko:namespaces|이름공간]]에서 정렬한 모든 문서의 목록입니다. \ No newline at end of file
+[[doku>ko:namespaces|이름공간]] 순으로 정렬한 모든 문서의 사이트맵입니다. \ No newline at end of file
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index 71edc2a3e..e6cae3db0 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Korean language file
- *
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Hyun Kim <lawfully@gmail.com>
* @author jk Lee
* @author dongnak@gmail.com
@@ -10,6 +10,7 @@
* @author Seung-Chul Yoo <dryoo@live.com>
* @author erial2@gmail.com
* @author Myeongjin <aranet100@gmail.com>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -19,7 +20,7 @@ $lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '’';
$lang['btn_edit'] = '문서 편집';
-$lang['btn_source'] = '내용 보기';
+$lang['btn_source'] = '원본 보기';
$lang['btn_show'] = '문서 보기';
$lang['btn_create'] = '문서 만들기';
$lang['btn_search'] = '찾기';
@@ -44,62 +45,69 @@ $lang['btn_backlink'] = '백링크';
$lang['btn_backtomedia'] = '미디어 파일 선택으로 돌아가기';
$lang['btn_subscribe'] = '구독 관리';
$lang['btn_profile'] = '개인 정보 바꾸기';
-$lang['btn_reset'] = '초기화';
+$lang['btn_reset'] = '재설정';
$lang['btn_resendpwd'] = '새 비밀번호 설정';
-$lang['btn_draft'] = '문서 초안 편집';
-$lang['btn_recover'] = '문서 초안 되돌리기';
-$lang['btn_draftdel'] = '문서 초안 삭제';
+$lang['btn_draft'] = '초안 편집';
+$lang['btn_recover'] = '초안 되돌리기';
+$lang['btn_draftdel'] = '초안 삭제';
$lang['btn_revert'] = '되돌리기';
$lang['btn_register'] = '등록';
$lang['btn_apply'] = '적용';
$lang['btn_media'] = '미디어 관리';
-$lang['loggedinas'] = '다음 사용자로 로그인';
+$lang['btn_deleteuser'] = '내 계정 제거';
+$lang['loggedinas'] = '로그인한 사용자';
$lang['user'] = '사용자 이름';
$lang['pass'] = '비밀번호';
$lang['newpass'] = '새 비밀번호';
$lang['oldpass'] = '현재 비밀번호 확인';
$lang['passchk'] = '비밀번호 다시 확인';
$lang['remember'] = '기억하기';
-$lang['fullname'] = '실제 이름';
+$lang['fullname'] = '실명';
$lang['email'] = '이메일';
$lang['profile'] = '개인 정보';
-$lang['badlogin'] = '사용자 이름이거나 비밀번호가 잘못되었습니다.';
+$lang['badlogin'] = '죄송하지만 사용자 이름이나 비밀번호가 잘못되었습니다.';
+$lang['badpassconfirm'] = '죄송하지만 비밀번호가 잘못되었습니다';
$lang['minoredit'] = '사소한 바뀜';
-$lang['draftdate'] = '문서 초안 자동 저장 시간';
-$lang['nosecedit'] = '한동안 문서가 바뀌어 세션 정보의 유효 시간이 지나 문서 전부를 다시 읽습니다.';
-$lang['regmissing'] = '모든 항목을 입력해야 합니다.';
-$lang['reguexists'] = '같은 이름을 사용하는 사용자가 있습니다.';
+$lang['draftdate'] = '초안 자동 저장 시간';
+$lang['nosecedit'] = '한동안 문서가 바뀌었으며, 문단 정보가 오래되어 문서 전체를 대신 열었습니다.';
+$lang['regmissing'] = '죄송하지만 모든 필드를 채워야 합니다.';
+$lang['reguexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.';
$lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.';
$lang['regsuccess2'] = '사용자를 만들었습니다.';
$lang['regmailfail'] = '비밀번호를 이메일로 보낼 때 오류가 발생했습니다. 관리자에게 문의하세요!';
$lang['regbadmail'] = '이메일 주소가 잘못됐습니다 - 오류라고 생각하면 관리자에게 문의하세요';
-$lang['regbadpass'] = '새 비밀번호가 일치하지 않습니다. 다시 입력하세요.';
-$lang['regpwmail'] = 'DokuWiki 비밀번호';
+$lang['regbadpass'] = '새 비밀번호가 같지 않습니다. 다시 입력하세요.';
+$lang['regpwmail'] = '도쿠위키 비밀번호';
$lang['reghere'] = '계정이 없나요? 계정을 등록할 수 있습니다';
$lang['profna'] = '이 위키는 개인 정보 수정을 할 수 없습니다';
-$lang['profnochange'] = '바뀜이 없습니다.';
+$lang['profnochange'] = '바뀐 내용이 없습니다.';
$lang['profnoempty'] = '이름이나 이메일 주소가 비었습니다.';
$lang['profchanged'] = '개인 정보가 성공적으로 바뀌었습니다.';
+$lang['profnodelete'] = '이 위키는 사용자 삭제를 지원하지 않습니다';
+$lang['profdeleteuser'] = '계정 삭제';
+$lang['profdeleted'] = '내 사용자 계정이 이 위키에서 삭제되었습니다';
+$lang['profconfdelete'] = '이 위키에서 내 계정을 제거하고 싶습니다. <br/> 이 행동은 되돌릴 수 없습니다.';
+$lang['profconfdeletemissing'] = '선택하지 않은 확인 상자를 확인';
$lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 재설정할 수 있습니다';
$lang['resendna'] = '이 위키는 비밀번호 재설정을 지원하지 않습니다.';
$lang['resendpwd'] = '다음으로 새 비밀번호 보내기';
-$lang['resendpwdmissing'] = '모든 비밀번호를 입력해야 합니다.';
-$lang['resendpwdnouser'] = '등록된 사용자가 아닙니다.';
-$lang['resendpwdbadauth'] = '인증 코드가 잘못됐습니다. 잘못된 링크인지 확인하시기 바랍니다.';
+$lang['resendpwdmissing'] = '죄송하지만 모든 필드를 채워야 합니다.';
+$lang['resendpwdnouser'] = '죄송하지만 데이터베이스에서 이 사용자를 찾을 수 없습니다.';
+$lang['resendpwdbadauth'] = '죄송하지만 인증 코드가 올바르지 않습니다. 잘못된 확인 링크인지 확인하세요.';
$lang['resendpwdconfirm'] = '확인 링크를 이메일로 보냈습니다.';
-$lang['resendpwdsuccess'] = '새로운 비밀번호를 이메일로 보냈습니다.';
-$lang['license'] = '별도로 라이선스를 알리지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따릅니다:';
-$lang['licenseok'] = '참고: 이 문서를 편집할 경우 다음의 라이선스에 동의함을 의미합니다:';
+$lang['resendpwdsuccess'] = '새 비밀번호를 이메일로 보냈습니다.';
+$lang['license'] = '별도로 명시하지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따라 사용할 수 있습니다:';
+$lang['licenseok'] = '참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 사용 허가에 동의합니다:';
$lang['searchmedia'] = '파일 이름 찾기:';
$lang['searchmedia_in'] = '%s에서 찾기';
$lang['txt_upload'] = '올릴 파일 선택';
$lang['txt_filename'] = '올릴 파일 이름 입력 (선택 사항)';
$lang['txt_overwrt'] = '기존 파일에 덮어쓰기';
-$lang['maxuploadsize'] = '최대 올리기 용량입니다. 파일당 %s입니다.';
+$lang['maxuploadsize'] = '최대 올리기 용량. 파일당 %s입니다.';
$lang['lockedby'] = '현재 잠겨진 사용자';
$lang['lockexpire'] = '잠금 해제 시간';
$lang['js']['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리 보기를 눌러 잠금 시간을 다시 설정하세요.';
-$lang['js']['notsavedyet'] = '저장하지 않은 바뀜이 지워집니다.';
+$lang['js']['notsavedyet'] = '저장하지 않은 바뀜이 사라집니다.';
$lang['js']['searchmedia'] = '파일 찾기';
$lang['js']['keepopen'] = '선택할 때 창을 열어 놓기';
$lang['js']['hidedetails'] = '자세한 정보 숨기기';
@@ -120,10 +128,10 @@ $lang['js']['medialnk'] = '자세한 정보 문서로 링크';
$lang['js']['mediadirect'] = '원본으로 직접 링크';
$lang['js']['medianolnk'] = '링크 없음';
$lang['js']['medianolink'] = '그림을 링크하지 않음';
-$lang['js']['medialeft'] = '왼쪽 배치';
-$lang['js']['mediaright'] = '오른쪽 배치';
-$lang['js']['mediacenter'] = '가운데 배치';
-$lang['js']['medianoalign'] = '배치 없음';
+$lang['js']['medialeft'] = '왼쪽으로 그림 배치';
+$lang['js']['mediaright'] = '오른쪽으로 그림 배치';
+$lang['js']['mediacenter'] = '가운데으로 그림 배치';
+$lang['js']['medianoalign'] = '배치하지 않음';
$lang['js']['nosmblinks'] = '윈도우 공유 파일과의 연결은 마이크로소프트 인터넷 익스플로러에서만 동작합니다.\n그러나 링크를 복사하거나 붙여넣기를 할 수 있습니다.';
$lang['js']['linkwiz'] = '링크 마법사';
$lang['js']['linkto'] = '다음으로 연결:';
@@ -136,37 +144,37 @@ $lang['js']['media_diff_portions'] = '쪼개 보기';
$lang['js']['media_select'] = '파일 선택…';
$lang['js']['media_upload_btn'] = '올리기';
$lang['js']['media_done_btn'] = '완료';
-$lang['js']['media_drop'] = '올릴 파일을 끌어넣으세요';
-$lang['js']['media_cancel'] = '삭제';
+$lang['js']['media_drop'] = '올릴 파일을 여기에 끌어넣으세요';
+$lang['js']['media_cancel'] = '제거';
$lang['js']['media_overwrt'] = '기존 파일에 덮어쓰기';
$lang['rssfailed'] = '이 피드를 가져오는 동안 오류가 발생했습니다:';
$lang['nothingfound'] = '아무 것도 없습니다.';
-$lang['mediaselect'] = '미디어 파일 선택';
+$lang['mediaselect'] = '미디어 파일';
$lang['fileupload'] = '미디어 파일 올리기';
$lang['uploadsucc'] = '올리기 성공';
$lang['uploadfail'] = '올리기를 실패했습니다. 잘못된 권한 때문일지도 모릅니다.';
-$lang['uploadwrong'] = '올리기를 거부했습니다. 금지된 파일 확장자입니다!';
+$lang['uploadwrong'] = '올리기가 거부되었습니다. 금지된 파일 확장자입니다!';
$lang['uploadexist'] = '파일이 이미 존재합니다.';
$lang['uploadbadcontent'] = '올린 파일이 %s 파일 확장자와 일치하지 않습니다.';
-$lang['uploadspam'] = '스팸 차단 목록이 올리기를 취소했습니다.';
-$lang['uploadxss'] = '악성 코드의 가능성이 있어 올리기를 취소했습니다.';
+$lang['uploadspam'] = '스팸 차단 목록이 올리기를 차단했습니다.';
+$lang['uploadxss'] = '악성 코드의 가능성이 있어 올리기를 차단했습니다.';
$lang['uploadsize'] = '올린 파일이 너무 큽니다. (최대 %s)';
$lang['deletesucc'] = '"%s" 파일이 삭제되었습니다.';
-$lang['deletefail'] = '"%s" 파일을 삭제할 수 없습니다 - 삭제 권한이 있는지 확인하세요.';
+$lang['deletefail'] = '"%s" 파일을 삭제할 수 없습니다 - 권한이 있는지 확인하세요.';
$lang['mediainuse'] = '"%s" 파일을 삭제할 수 없습니다 - 아직 사용 중입니다.';
$lang['namespaces'] = '이름공간';
-$lang['mediafiles'] = '사용 가능한 파일 목록';
+$lang['mediafiles'] = '사용할 수 있는 파일 목록';
$lang['accessdenied'] = '이 문서를 볼 권한이 없습니다.';
$lang['mediausage'] = '이 파일을 참고하려면 다음 문법을 사용하세요:';
$lang['mediaview'] = '원본 파일 보기';
-$lang['mediaroot'] = '루트 (root)';
+$lang['mediaroot'] = '루트';
$lang['mediaupload'] = '파일을 현재 이름공간으로 올립니다. 하위 이름공간으로 만들려면 선택한 파일 이름 앞에 쌍점(:)으로 구분되는 이름을 붙이면 됩니다. 파일을 드래그 앤 드롭해 선택할 수 있습니다.';
$lang['mediaextchange'] = '파일 확장자가 .%s에서 .%s(으)로 바뀌었습니다!';
$lang['reference'] = '참고';
$lang['ref_inuse'] = '다음 문서에서 아직 사용 중이므로 파일을 삭제할 수 없습니다:';
$lang['ref_hidden'] = '문서의 일부 참고는 읽을 수 있는 권한이 없습니다';
$lang['hits'] = '조회 수';
-$lang['quickhits'] = '일치하는 문서 이름';
+$lang['quickhits'] = '일치하는 문서이름';
$lang['toc'] = '목차';
$lang['current'] = '현재';
$lang['yours'] = '판';
@@ -179,22 +187,22 @@ $lang['diff_side'] = '다중 창 방식';
$lang['line'] = '줄';
$lang['breadcrumb'] = '추적';
$lang['youarehere'] = '현재 위치';
-$lang['lastmod'] = '마지막으로 수정함';
-$lang['by'] = '작성자';
-$lang['deleted'] = '삭제함';
+$lang['lastmod'] = '마지막으로 수정됨';
+$lang['by'] = '저자';
+$lang['deleted'] = '제거됨';
$lang['created'] = '새로 만듦';
$lang['restored'] = '이전 판으로 되돌림 (%s)';
-$lang['external_edit'] = '바깥 편집기';
+$lang['external_edit'] = '바깥 편집';
$lang['summary'] = '편집 요약';
-$lang['noflash'] = '이 콘텐츠를 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 플러그인</a>이 필요합니다.';
+$lang['noflash'] = '이 내용을 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe 플래시 플러그인</a>이 필요합니다.';
$lang['download'] = '조각 다운로드';
$lang['tools'] = '도구';
$lang['user_tools'] = '사용자 도구';
$lang['site_tools'] = '사이트 도구';
$lang['page_tools'] = '문서 도구';
-$lang['skip_to_content'] = '콘텐츠 넘기기';
+$lang['skip_to_content'] = '내용으로 건너뛰기';
$lang['sidebar'] = '사이드바';
-$lang['mail_newpage'] = '문서 추가함:';
+$lang['mail_newpage'] = '문서 추가됨:';
$lang['mail_changed'] = '문서 바뀜:';
$lang['mail_subscribe_list'] = '이름공간에서 바뀐 문서:';
$lang['mail_new_user'] = '새 사용자:';
@@ -205,7 +213,7 @@ $lang['media_changes'] = '미디어 파일';
$lang['both_changes'] = '문서와 미디어 파일 모두';
$lang['qb_bold'] = '굵은 글씨';
$lang['qb_italic'] = '기울인 글씨';
-$lang['qb_underl'] = '밑줄 그어진 글씨';
+$lang['qb_underl'] = '밑줄 글씨';
$lang['qb_code'] = '코드 글씨';
$lang['qb_strike'] = '취소선 글씨';
$lang['qb_h1'] = '1단계 문단 제목';
@@ -223,22 +231,22 @@ $lang['qb_extlink'] = '바깥 링크';
$lang['qb_hr'] = '가로줄';
$lang['qb_ol'] = '순서 있는 목록';
$lang['qb_ul'] = '순서 없는 목록';
-$lang['qb_media'] = '그림과 기타 파일 추가';
+$lang['qb_media'] = '그림과 기타 파일 추가 (새 창에서 열림)';
$lang['qb_sig'] = '서명 넣기';
$lang['qb_smileys'] = '이모티콘';
$lang['qb_chars'] = '특수 문자';
$lang['upperns'] = '상위 이름공간으로 이동';
$lang['admin_register'] = '새 사용자 추가';
-$lang['metaedit'] = '메타 데이터 편집';
-$lang['metasaveerr'] = '메타 데이터 쓰기 실패';
-$lang['metasaveok'] = '메타 데이터 저장됨';
+$lang['metaedit'] = '메타데이터 편집';
+$lang['metasaveerr'] = '메타데이터 쓰기 실패';
+$lang['metasaveok'] = '메타데이터 저장됨';
$lang['img_backto'] = '뒤로';
-$lang['img_title'] = '이름';
+$lang['img_title'] = '제목';
$lang['img_caption'] = '설명';
$lang['img_date'] = '날짜';
-$lang['img_fname'] = '파일 이름';
+$lang['img_fname'] = '파일이름';
$lang['img_fsize'] = '크기';
-$lang['img_artist'] = '만든이';
+$lang['img_artist'] = '촬영자';
$lang['img_copyr'] = '저작권';
$lang['img_format'] = '포맷';
$lang['img_camera'] = '카메라';
@@ -253,7 +261,7 @@ $lang['subscr_unsubscribe_success'] = '%s 사용자가 %s 구독 목록에서
$lang['subscr_unsubscribe_error'] = '%s 사용자가 %s 구독 목록에서 삭제하는데 실패했습니다';
$lang['subscr_already_subscribed'] = '%s 사용자가 이미 %s에 구독하고 있습니다';
$lang['subscr_not_subscribed'] = '%s 사용자가 %s에 구독하고 있지 않습니다';
-$lang['subscr_m_not_subscribed'] = '현재의 문서나 이름공간에 구독하고 있지 않습니다.';
+$lang['subscr_m_not_subscribed'] = '문서나 이름공간에 현재 구독하고 있지 않습니다.';
$lang['subscr_m_new_header'] = '구독 추가';
$lang['subscr_m_current_header'] = '현재 구독 중인 문서';
$lang['subscr_m_unsubscribe'] = '구독 취소';
@@ -262,26 +270,25 @@ $lang['subscr_m_receive'] = '받기';
$lang['subscr_style_every'] = '모든 바뀜을 이메일로 받기';
$lang['subscr_style_digest'] = '각 문서의 바뀜을 요약 (매 %.2f일 마다)';
$lang['subscr_style_list'] = '마지막 이메일 이후 바뀐 문서의 목록 (매 %.2f일 마다)';
-$lang['authmodfailed'] = '잘못된 사용자 인증 설정입니다. 관리자에게 문의하시기 바랍니다.';
-$lang['authtempfail'] = '사용자 인증이 일시적으로 불가능합니다. 만일 계속해서 문제가 발생하면 관리자에게 문의하시기 바랍니다.';
-$lang['authpwdexpire'] = '비밀번호를 바꾼지 %d일이 지났습니다. 비민번호를 곧 바꿔야 합니다.';
+$lang['authtempfail'] = '사용자 인증을 일시적으로 사용할 수 없습니다. 만약 계속해서 문제가 발생하면 위키 관리자에게 문의하시기 바랍니다.';
+$lang['authpwdexpire'] = '비밀번호를 바꾼지 %d일이 지났으며, 비민번호를 곧 바꿔야 합니다.';
$lang['i_chooselang'] = '사용할 언어를 선택하세요';
$lang['i_installer'] = 'DokuWiki 설치';
$lang['i_wikiname'] = '위키 이름';
-$lang['i_enableacl'] = 'ACL 기능 사용 (권장)';
+$lang['i_enableacl'] = 'ACL 활성화 (권장)';
$lang['i_superuser'] = '슈퍼 유저';
-$lang['i_problems'] = '설치하는 동안 아래와 같은 문제가 발생했습니다. 문제를 해결한 후 설치를 계속하세요.';
-$lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 Dokuwiki 설치에서만 동작됩니다.
-다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">DokuWiki 설치 과정</a>을 참고해서 설치하세요.';
-$lang['i_funcna'] = '<code>%s</code> PHP 함수의 사용이 불가능합니다. 호스트 제공자가 어떤 이유에서인지 막아 놓았을지 모릅니다.';
+$lang['i_problems'] = '설치하는 동안 아래와 같은 문제가 발생했습니다. 문제를 해결한 후 설치를 계속할 수 있습니다.';
+$lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 도쿠위키 설치에서만 동작됩니다.
+다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">도쿠위키 설치 과정</a>을 참고해서 설치하세요.';
+$lang['i_funcna'] = '<code>%s</code> PHP 함수를 사용할 수 없습니다. 호스트 제공자가 어떤 이유에서인지 막아 놓았을지 모릅니다.';
$lang['i_phpver'] = 'PHP <code>%s</code> 버전은 필요한 <code>%s</code> 버전보다 오래되었습니다. PHP를 업그레이드할 필요가 있습니다.';
-$lang['i_permfail'] = 'DokuWiki는 <code>%s</code>에 쓰기 가능 권한이 없습니다. 먼저 이 디렉토리에 쓰기 권한이 설정되어야 합니다!';
+$lang['i_permfail'] = '<code>%s</code>는 도쿠위키가 쓰기 가능 권한이 없습니다. 먼저 이 디렉터리에 쓰기 권한이 설정되어야 합니다!';
$lang['i_confexists'] = '<code>%s</code>(은)는 이미 존재합니다';
-$lang['i_writeerr'] = '<code>%s</code>(을)를 만들 수 없습니다. 먼저 디렉토리/파일 권한을 확인하고 파일을 수동으로 만드세요.';
+$lang['i_writeerr'] = '<code>%s</code>(을)를 만들 수 없습니다. 먼저 디렉터리/파일 권한을 확인하고 파일을 수동으로 만드세요.';
$lang['i_badhash'] = 'dokuwiki.php를 인식할 수 없거나 원본 파일이 아닙니다 (해시=<code>%s</code>)';
-$lang['i_badval'] = '<code>%s</code> - 올바르지 않거나 빈 값입니다';
-$lang['i_success'] = '환경 설정이 성공적으로 끝났습니다. 지금 install.php를 지워도 상관없습니다. <a href="doku.php?id=wiki:welcome">새 DokuWiki</a>로 들어갑니다.';
-$lang['i_failure'] = '환경 설정 파일에 쓰는 도중에 오류가 발생했습니다. <a href="doku.php?id=wiki:welcome">새 DokuWiki</a>를 사용하기 전에 수동으로 문제를 해결해야 합니다.';
+$lang['i_badval'] = '<code>%s</code> - 잘못되었거나 빈 값입니다';
+$lang['i_success'] = '환경 설정이 성공적으로 끝났습니다. 지금 install.php를 지워도 상관없습니다. <a href="doku.php?id=wiki:welcome">새 도쿠위키</a>로 들어가세요.';
+$lang['i_failure'] = '환경 설정 파일에 쓰는 도중에 오류가 발생했습니다. <a href="doku.php?id=wiki:welcome">새 도쿠위키</a>를 사용하기 전에 수동으로 문제를 해결해야 합니다.';
$lang['i_policy'] = '초기 ACL 정책';
$lang['i_pol0'] = '열린 위키 (누구나 읽기, 쓰기, 올리기가 가능합니다)';
$lang['i_pol1'] = '공개 위키 (누구나 읽을 수 있지만, 등록된 사용자만 쓰기와 올리기가 가능합니다)';
@@ -289,17 +296,17 @@ $lang['i_pol2'] = '닫힌 위키 (등록된 사용자만 읽기,
$lang['i_retry'] = '다시 시도';
$lang['i_license'] = '내용을 배포하기 위한 라이선스를 선택하세요:';
$lang['i_license_none'] = '라이선스 정보를 보여주지 않습니다';
-$lang['i_pop_field'] = 'DokuWiki 경험을 개선하는 데 도움을 주세요:';
-$lang['i_pop_label'] = '한 달에 한 번씩, DokuWiki 개발자에게 익명의 사용 데이터를 보냅니다';
-$lang['recent_global'] = '<b>%s</b> 이름공간을 구독 중입니다. <a href="%s">전체 위키의 최근 바뀜도 볼 수</a> 있습니다.';
+$lang['i_pop_field'] = '도쿠위키 경험을 개선하는 데 도움을 주세요:';
+$lang['i_pop_label'] = '한 달에 한 번씩, 도쿠위키 개발자에게 익명의 사용 데이터를 보냅니다';
+$lang['recent_global'] = '현재 <b>%s</b> 이름공간을 구독 중입니다. <a href="%s">전체 위키의 최근 바뀜도 볼 수</a> 있습니다.';
$lang['years'] = '%d년 전';
-$lang['months'] = '%d개월 전';
+$lang['months'] = '%d달 전';
$lang['weeks'] = '%d주 전';
$lang['days'] = '%d일 전';
$lang['hours'] = '%d시간 전';
$lang['minutes'] = '%d분 전';
$lang['seconds'] = '%d초 전';
-$lang['wordblock'] = '차단 문구(스팸 문구)를 포함하고 있어서 저장하지 않았습니다.';
+$lang['wordblock'] = '차단 문구(스팸)를 포함하고 있어서 바뀜을 저장하지 않았습니다.';
$lang['media_uploadtab'] = '올리기';
$lang['media_searchtab'] = '찾기';
$lang['media_file'] = '파일';
@@ -313,13 +320,13 @@ $lang['media_sort_date'] = '날짜';
$lang['media_namespaces'] = '이름공간 선택';
$lang['media_files'] = '%s에 있는 파일';
$lang['media_upload'] = '%s에 올리기';
-$lang['media_search'] = '%s 찾기';
+$lang['media_search'] = '%s에서 찾기';
$lang['media_view'] = '%s';
-$lang['media_viewold'] = '%s (%s에 있음)';
+$lang['media_viewold'] = '%2$s (%1$s에 있음)';
$lang['media_edit'] = '%s 편집';
-$lang['media_history'] = '%s 바뀜 내역';
-$lang['media_meta_edited'] = '메타 데이터 편집됨';
-$lang['media_perm_read'] = '이 파일을 읽을 권한이 없습니다.';
-$lang['media_perm_upload'] = '파일을 올릴 권한이 없습니다.';
+$lang['media_history'] = '%s의 내역';
+$lang['media_meta_edited'] = '메타데이터 편집됨';
+$lang['media_perm_read'] = '죄송하지만 파일을 읽을 권한이 없습니다.';
+$lang['media_perm_upload'] = '죄송하지만 파일을 올릴 권한이 없습니다.';
$lang['media_update'] = '새 판 올리기';
$lang['media_restore'] = '이 판으로 되돌리기';
diff --git a/inc/lang/ko/locked.txt b/inc/lang/ko/locked.txt
index 8e2eab9f9..38832d06e 100644
--- a/inc/lang/ko/locked.txt
+++ b/inc/lang/ko/locked.txt
@@ -1,3 +1,3 @@
-====== 문서 잠금 ======
+====== 문서 잠김 ======
-다른 사용자가 이 문서를 편집하기 위해 잠금을 실행했습니다. 해당 사용자가 편집을 끝내거나 잠금이 해제될 때까지 기다리세요. \ No newline at end of file
+이 문서는 다른 사용자가 편집하기 위해 현재 잠겨있습니다. 해당 사용자가 편집을 끝내거나 잠금이 만료될 때까지 기다리세요. \ No newline at end of file
diff --git a/inc/lang/ko/mailtext.txt b/inc/lang/ko/mailtext.txt
index 8fb6fd446..e9e9c25e1 100644
--- a/inc/lang/ko/mailtext.txt
+++ b/inc/lang/ko/mailtext.txt
@@ -1,4 +1,4 @@
-DokuWiki 문서가 추가 또는 바뀌었습니다. 자세한 정보는 다음과 같습니다:
+도쿠위키 문서가 추가되거나 바뀌었습니다. 자세한 내용은 다음과 같습니다:
날짜 : @DATE@
브라우저 : @BROWSER@
@@ -12,5 +12,5 @@ IP 주소 : @IPADDRESS@
@DIFF@
---
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+--
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/mailwrap.html b/inc/lang/ko/mailwrap.html
index 885730428..ef061f10f 100644
--- a/inc/lang/ko/mailwrap.html
+++ b/inc/lang/ko/mailwrap.html
@@ -1,13 +1,13 @@
<html>
- <head>
- <title>@TITLE@</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- </head>
- <body>
+<head>
+ <title>@TITLE@</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
- @HTMLBODY@
+@HTMLBODY@
- <br /><hr />
- <small>@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다.</small>
- </body>
- </html> \ No newline at end of file
+<br /><hr />
+<small>이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다.</small>
+</body>
+</html>
diff --git a/inc/lang/ko/newpage.txt b/inc/lang/ko/newpage.txt
index fa7864610..a553cf9c2 100644
--- a/inc/lang/ko/newpage.txt
+++ b/inc/lang/ko/newpage.txt
@@ -1,3 +1,3 @@
====== 이 주제는 아직 없습니다 ======
-아직 없는 주제에 대한 링크를 따라왔습니다. **문서 만들기** 버튼을 클릭해 새로 만들 수 있습니다. \ No newline at end of file
+아직 없는 주제에 대한 링크를 따라왔습니다. "문서 만들기"를 클릭해 새로 만들 수 있습니다. \ No newline at end of file
diff --git a/inc/lang/ko/norev.txt b/inc/lang/ko/norev.txt
index 246f3e4f6..5cb7360d7 100644
--- a/inc/lang/ko/norev.txt
+++ b/inc/lang/ko/norev.txt
@@ -1,3 +1,3 @@
====== 지정한 판 없음 ======
-지정한 판이 존재하지 않습니다. **이전 판** 버튼을 사용해 이 문서의 이전 판 목록을 보세요. \ No newline at end of file
+지정한 판이 존재하지 않습니다. 이 문서의 이전 판 목록을 보려면 "이전 판"을 클릭하세요. \ No newline at end of file
diff --git a/inc/lang/ko/password.txt b/inc/lang/ko/password.txt
index 02b23d17c..790f6b479 100644
--- a/inc/lang/ko/password.txt
+++ b/inc/lang/ko/password.txt
@@ -1,9 +1,9 @@
-@FULLNAME@ 안녕하세요!
+@FULLNAME@님 안녕하세요!
-@DOKUWIKIURL@의 @TITLE@의 사용자 정보입니다.
+여기에 @DOKUWIKIURL@에서 @TITLE@의 사용자 정보가 있습니다.
-사용자 이름 : @LOGIN@
+로그인 : @LOGIN@
비밀번호 : @PASSWORD@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/pwconfirm.txt b/inc/lang/ko/pwconfirm.txt
index 6e447a021..d820664f0 100644
--- a/inc/lang/ko/pwconfirm.txt
+++ b/inc/lang/ko/pwconfirm.txt
@@ -1,13 +1,13 @@
-@FULLNAME@ 안녕하세요!
+@FULLNAME@님 안녕하세요!
누군가가 @DOKUWIKIURL@에 @TITLE@에 대해
새 비밀번호가 필요하다고 요청했습니다.
-새로운 비밀번호 요청한 적이 없다면 이 이메일을 무시해버리세요.
+새 비밀번호를 요청하지 않았다면 이 이메일을 무시해버리세요.
-정말로 당신이 요청을 했는지 다음 링크에서 확인하세요.
+정말로 당신이 요청을 해서 보내졌는지 확인하려면 다음 링크를 사용하세요.
@CONFIRM@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/registermail.txt b/inc/lang/ko/registermail.txt
index 4707dfa13..e7c808047 100644
--- a/inc/lang/ko/registermail.txt
+++ b/inc/lang/ko/registermail.txt
@@ -1,7 +1,7 @@
-새 사용자가 등록되었습니다:
+새 사용자가 등록되었습니다. 자세한 내용은 다음과 같습니다:
사용자 이름 : @NEWUSER@
-사용자 실제 이름 : @NEWNAME@
+실제 이름 : @NEWNAME@
이메일 : @NEWEMAIL@
날짜 : @DATE@
@@ -10,4 +10,4 @@ IP 주소 : @IPADDRESS@
호스트 이름 : @HOSTNAME@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/resendpwd.txt b/inc/lang/ko/resendpwd.txt
index faee2072c..44cd5ad98 100644
--- a/inc/lang/ko/resendpwd.txt
+++ b/inc/lang/ko/resendpwd.txt
@@ -1,3 +1,3 @@
====== 새 비밀번호 보내기 ======
-이 위키 계정에 대한 새 비밀번호를 요구하기 위해 아래 양식에서 사용자 이름을 입력하세요. 확인 링크는 새로 등록한 이메일 주소로 보냅니다. \ No newline at end of file
+이 위키 계정에 대한 새 비밀번호를 요청하기 위해 아래 양식에서 사용자 이름을 입력하세요. 확인 링크는 새로 등록한 이메일 주소로 보냅니다. \ No newline at end of file
diff --git a/inc/lang/ko/resetpwd.txt b/inc/lang/ko/resetpwd.txt
index ed909456f..cc2ec6a94 100644
--- a/inc/lang/ko/resetpwd.txt
+++ b/inc/lang/ko/resetpwd.txt
@@ -1,3 +1,3 @@
====== 새 비밀번호 설정 ======
-이 위키 계정의 새 비밀번호를 입력하세요. \ No newline at end of file
+이 위키에 있는 계정의 새 비밀번호를 입력하세요. \ No newline at end of file
diff --git a/inc/lang/ko/revisions.txt b/inc/lang/ko/revisions.txt
index f499e2f72..ed80dbcd5 100644
--- a/inc/lang/ko/revisions.txt
+++ b/inc/lang/ko/revisions.txt
@@ -1,3 +1,3 @@
====== 이전 판 ======
-이 문서의 이전 판은 다음과 같습니다. 이전 판으로 되돌리려면, 아래에서 선택한 다음 **문서 편집**을 클릭하고 나서 저장하세요. \ No newline at end of file
+이 문서의 이전 판은 다음과 같습니다. 이전 판으로 되돌리려면, 아래에서 선택한 다음 ''문서 편집''을 클릭하고 나서 저장하세요. \ No newline at end of file
diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt
index d3b37ec7c..cb9bae2e0 100644
--- a/inc/lang/ko/searchpage.txt
+++ b/inc/lang/ko/searchpage.txt
@@ -1,5 +1,5 @@
====== 찾기 ======
-아래에서 찾기 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, **문서 만들기**나 **문서 편집** 버튼을 사용해 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다.
+아래에서 찾기 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, "문서 만들기"나 "문서 편집"을 사용해 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다.
===== 결과 ===== \ No newline at end of file
diff --git a/inc/lang/ko/stopwords.txt b/inc/lang/ko/stopwords.txt
index c0dc2a79b..b0be85166 100644
--- a/inc/lang/ko/stopwords.txt
+++ b/inc/lang/ko/stopwords.txt
@@ -1,7 +1,7 @@
-# 색인이 만들어지지 않는 단어 목록입니다. (한줄에 한 단어)
-# 이 파일을 편집한다면 UNIX 줄 종료 문자를 사용해야 합니다.(단일 개행 문자)
+# 색인이 만들어지지 않는 단어 목록입니다. (한 줄에 한 단어)
+# 이 파일을 편집할 때 UNIX 줄 종료 문자를 사용해야 합니다.(단일 개행 문자)
# 3문자 이하 단어는 자동으로 무시되므로 3문자보다 짧은 단어는 포함시킬 필요가 없습니다.
-# http://www.ranks.nl/stopwords/을 기준으로 만들어진 목록입니다.
+# http://www.ranks.nl/stopwords/ 을 기준으로 만들어진 목록입니다.
about
are
as
diff --git a/inc/lang/ko/subscr_digest.txt b/inc/lang/ko/subscr_digest.txt
index 6db7b963c..7a044736a 100644
--- a/inc/lang/ko/subscr_digest.txt
+++ b/inc/lang/ko/subscr_digest.txt
@@ -11,8 +11,8 @@
새 판 : @NEWPAGE@
-이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
+문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/subscr_list.txt b/inc/lang/ko/subscr_list.txt
index c13e0097a..57aa78cf7 100644
--- a/inc/lang/ko/subscr_list.txt
+++ b/inc/lang/ko/subscr_list.txt
@@ -7,8 +7,8 @@
@DIFF@
--------------------------------------------------------
-이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
+문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_single.txt b/inc/lang/ko/subscr_single.txt
index d4e38e044..ed5478441 100644
--- a/inc/lang/ko/subscr_single.txt
+++ b/inc/lang/ko/subscr_single.txt
@@ -13,8 +13,8 @@
이전 판 : @OLDPAGE@
새 판 : @NEWPAGE@
-이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
+문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/uploadmail.txt b/inc/lang/ko/uploadmail.txt
index 8e0a4d70b..1304ee331 100644
--- a/inc/lang/ko/uploadmail.txt
+++ b/inc/lang/ko/uploadmail.txt
@@ -1,4 +1,4 @@
-DokuWiki가 파일을 올렸습니다. 자세한 정보는 다음과 같습니다:
+도쿠위키가 파일을 올렸습니다. 자세한 정보는 다음과 같습니다:
파일 : @MEDIA@
이전 판 : @OLD@
@@ -11,4 +11,4 @@ MIME 종류 : @MIME@
사용자 : @USER@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php
index 51ed6c8bf..b6287806d 100644
--- a/inc/lang/ku/lang.php
+++ b/inc/lang/ku/lang.php
@@ -33,7 +33,6 @@ $lang['btn_back'] = 'Paş';
$lang['btn_backlink'] = 'Girêdanên paş';
$lang['btn_backtomedia'] = 'Back to Mediafile Selection';
$lang['btn_subscribe'] = 'Subscribe Changes';
-$lang['btn_unsubscribe'] = 'Unsubscribe Changes';
$lang['btn_register'] = 'Register';
$lang['loggedinas'] = 'Logged in as';
@@ -123,22 +122,8 @@ $lang['qb_sig'] = 'Insert Signature';
$lang['js']['del_confirm']= 'Delete this entry?';
-$lang['admin_acl'] = 'Access Control List Management...';
$lang['admin_register']= 'Add new user...';
-$lang['acl_group'] = 'Group';
-$lang['acl_user'] = 'User';
-$lang['acl_perms'] = 'Permissions for';
-$lang['page'] = 'Rûpel';
-$lang['namespace'] = 'Namespace';
-
-$lang['acl_perm1'] = 'Bixwîne';
-$lang['acl_perm2'] = 'Biguherîne';
-$lang['acl_perm4'] = 'Biafirîne';
-$lang['acl_perm8'] = 'Upload';
-$lang['acl_perm16'] = 'Jê bibe';
-$lang['acl_new'] = 'Add new Entry';
-
$lang['metaedit'] = 'Edit Metadata';
$lang['metasaveerr'] = 'Writing metadata failed';
$lang['metasaveok'] = 'Metadata saved';
@@ -154,10 +139,4 @@ $lang['img_format'] = 'Format';
$lang['img_camera'] = 'Camera';
$lang['img_keywords']= 'Keywords';
-$lang['subscribe_success'] = 'Added %s to subscription list for %s';
-$lang['subscribe_error'] = 'Error adding %s to subscription list for %s';
-$lang['subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list';
-$lang['unsubscribe_success']= 'Removed %s from subscription list for %s';
-$lang['unsubscribe_error'] = 'Error removing %s from subscription list for %s';
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php
index bea921abc..c71a71bdd 100644
--- a/inc/lang/la/lang.php
+++ b/inc/lang/la/lang.php
@@ -229,7 +229,6 @@ $lang['subscr_m_receive'] = 'Accipere';
$lang['subscr_style_every'] = 'Cursus mutationibus omnibus';
$lang['subscr_style_digest'] = 'Accipere litteras in mutando paginam (%.2f dies)';
$lang['subscr_style_list'] = 'Index mutatarum paginarum ab extremis litteris (%.2f dies)';
-$lang['authmodfailed'] = 'Confirmatio infeliciter facta est. Rectorem conuenis.';
$lang['authtempfail'] = 'Confirmare non potes. Rectorem conuenis.';
$lang['i_chooselang'] = 'Linguam eligere';
$lang['i_installer'] = 'Docuuicis creator';
diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php
index 76dd2ac15..55113745a 100644
--- a/inc/lang/lb/lang.php
+++ b/inc/lang/lb/lang.php
@@ -173,7 +173,6 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Schlësselwieder';
-$lang['authmodfailed'] = 'Falsch Konfiguratioun vun der Benotzerautentifikatioun. Informéier w.e.g. de Wiki Admin.';
$lang['authtempfail'] = 'D\'Benotzerautentifikatioun ass de Moment net verfügbar. Wann dës Situatioun unhält, dann informéier w.e.g. de Wiki Admin.';
$lang['i_chooselang'] = 'Wiel deng Sprooch';
$lang['i_installer'] = 'DokuWiki Installer';
diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php
index b284555ef..c38ea8838 100644
--- a/inc/lang/lt/lang.php
+++ b/inc/lang/lt/lang.php
@@ -40,7 +40,6 @@ $lang['btn_back'] = 'Atgal';
$lang['btn_backlink'] = 'Atgalinės nuorodos';
$lang['btn_backtomedia'] = 'Atgal į Mediabylos išsirinkimą';
$lang['btn_subscribe'] = 'Užsisakyti keitimų prenumeratą';
-$lang['btn_unsubscribe'] = 'Atsisakyti keitimų prenumeratos';
$lang['btn_profile'] = 'Atnaujinti profilį';
$lang['btn_reset'] = 'Atstata';
$lang['btn_draft'] = 'Redaguoti juodraštį';
@@ -175,12 +174,6 @@ $lang['img_copyr'] = 'Autorinės teisės';
$lang['img_format'] = 'Formatas';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Raktiniai žodžiai';
-$lang['subscribe_success'] = '%s užsakyta "%s" prenumerata';
-$lang['subscribe_error'] = '%s užsakant "%s" prenumeratą įvyko klaida';
-$lang['subscribe_noaddress'] = 'Jūs nesatė nurodęs el. pašto adreso, todėl negalima Jums užsakyti prenumeratos';
-$lang['unsubscribe_success'] = '%s ištrintas iš "%s" prenumeratos';
-$lang['unsubscribe_error'] = '%s trinant iš "%s" prenumeratos įvyko klaida';
-$lang['authmodfailed'] = 'Bloga vartotojo tapatumo nustatymo konfigūracija. Praneškite apie tai savo administratoriui.';
$lang['authtempfail'] = 'Vartotojo tapatumo nustatymas laikinai nepasiekiamas. Jei ši situacija kartojasi, tai praneškite savo administratoriui.';
$lang['i_chooselang'] = 'Pasirinkite kalbą';
$lang['i_installer'] = 'DokuWiki Instaliatorius';
diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php
index 4d2b5d23c..898125d60 100644
--- a/inc/lang/lv/lang.php
+++ b/inc/lang/lv/lang.php
@@ -258,7 +258,6 @@ $lang['subscr_m_receive'] = 'Saņemt';
$lang['subscr_style_every'] = 'vēstuli par katru izmaiņu';
$lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu (reizi %.2f dienās)';
$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu (reizi %.2f dienās)';
-$lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzu ziņo Wiki administratoram.';
$lang['authtempfail'] = 'Lietotāju autentifikācija pašlaik nedarbojas. Ja tas turpinās ilgstoši, lūduz ziņo Wiki administratoram.';
$lang['authpwdexpire'] = 'Tavai parolei pēc %d dienām biegsies termiņš, tā drīzumā jānomaina.';
$lang['i_chooselang'] = 'Izvēlies valodu';
diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php
index e3c7a0c2b..c5ed669a9 100644
--- a/inc/lang/mg/lang.php
+++ b/inc/lang/mg/lang.php
@@ -116,20 +116,6 @@ $lang['qb_sig'] = 'Manisy sonia';
$lang['js']['del_confirm']= 'Hofafana ilay andalana?';
-$lang['admin_acl'] = 'Fitantanana ACL (Access Control List)...';
$lang['admin_register']= 'Ampio mpampiasa vaovao...';
-$lang['acl_group'] = 'Vondrona';
-$lang['acl_user'] = 'Mpampiasa';
-$lang['acl_perms'] = 'Alalana @';
-$lang['page'] = 'Pejy';
-$lang['namespace'] = 'Namespace';
-
-$lang['acl_perm1'] = 'Mamaky';
-$lang['acl_perm2'] = 'Manova';
-$lang['acl_perm4'] = 'Manamboatra';
-$lang['acl_perm8'] = 'Mandefa rakitra';
-$lang['acl_perm16'] = 'Mamafa';
-$lang['acl_new'] = 'Ampio andalana vaovao';
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php
index 9e1628562..2b2c9fb7f 100644
--- a/inc/lang/mk/lang.php
+++ b/inc/lang/mk/lang.php
@@ -196,7 +196,6 @@ $lang['subscr_m_unsubscribe'] = 'Отплатување';
$lang['subscr_m_subscribe'] = 'Претплата';
$lang['subscr_m_receive'] = 'Прими';
$lang['subscr_style_every'] = 'е-пошта за секоја промена';
-$lang['authmodfailed'] = 'Лоша конфигурација за автентикација на корисник. Ве молам информирајте го вики администратор.';
$lang['authtempfail'] = 'Автентикација на корисник е привремено недостапна. Ако оваа ситуација истрајува, ве молам известете го вики администратор.';
$lang['i_chooselang'] = 'Избере јазик';
$lang['i_installer'] = 'Инсталер за DokuWiki';
diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php
index d95813efa..54b69974d 100644
--- a/inc/lang/mr/lang.php
+++ b/inc/lang/mr/lang.php
@@ -241,7 +241,6 @@ $lang['img_keywords'] = 'मुख्य शब्द';
$lang['img_width'] = 'रुंदी';
$lang['img_height'] = 'उंची';
$lang['img_manager'] = 'मिडिया व्यवस्थापकात बघू';
-$lang['authmodfailed'] = 'सदस्य अधिकृत करण्याची व्यवस्था चुकीची आहे. कृपया तुमच्या विकीच्या व्यवस्थापकाशी सम्पर्क साधा.';
$lang['authtempfail'] = 'सदस्य अधिकृत करण्याची सुविधा सध्या चालू नाही. सतत हा मजकूर दिसल्यास कृपया तुमच्या विकीच्या व्यवस्थापकाशी सम्पर्क साधा.';
$lang['i_chooselang'] = 'तुमची भाषा निवडा';
$lang['i_installer'] = 'डॉक्युविकि इनस्टॉलर';
diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php
index 908b1a1dd..7fd14d2c5 100644
--- a/inc/lang/ne/lang.php
+++ b/inc/lang/ne/lang.php
@@ -1,6 +1,7 @@
<?php
+
/**
- * Nepali language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author Saroj Kumar Dhakal <lotusnagarkot@yahoo.com>
@@ -37,7 +38,6 @@ $lang['btn_back'] = 'पछाडि';
$lang['btn_backlink'] = 'पछाडिका लिङ्कहरु ';
$lang['btn_backtomedia'] = 'मिडिया छनौटमा फर्कनुहोस्';
$lang['btn_subscribe'] = 'पृष्ठ परिवर्तन ग्राह्य गर्नुहोस्';
-$lang['btn_unsubscribe'] = 'पृष्ठ परिवर्तन अग्राह्य गर्नुहोस्';
$lang['btn_profile'] = 'प्रोफाइल अध्यावधिक गर्नुहोस् ';
$lang['btn_reset'] = 'पूर्वरुपमा फर्काउनुहोस';
$lang['btn_draft'] = ' ड्राफ्ट सम्पादन गर्नुहोस् ';
@@ -85,8 +85,12 @@ $lang['txt_filename'] = 'अर्को रुपमा अपलो
$lang['txt_overwrt'] = 'रहेको उहि नामको फाइललाई मेटाउने';
$lang['lockedby'] = 'अहिले ताल्चा लगाइएको';
$lang['lockexpire'] = 'ताल्चा अवधि सकिने :';
-$lang['js']['willexpire'] = 'तपाईलले यो पृष्ठ सम्पादन गर्न लगाउनु भएको ताल्चाको अवधि एक मिनेट भित्र सकिदै छ। \n द्वन्द हुन नदिन पूर्वरुप वा ताल्चा समय परिवर्तन गर्नुहोस् ।';
+$lang['js']['willexpire'] = 'तपाईलले यो पृष्ठ सम्पादन गर्न लगाउनु भएको ताल्चाको अवधि एक मिनेट भित्र सकिदै छ। \n द्वन्द हुन नदिन पूर्वरुप वा ताल्चा समय परिवर्तन गर्नुहोस् ।';
$lang['js']['notsavedyet'] = 'तपाईले वचन गर्नु नभएको परिवर्रन हराउने छ। \n साच्चै जारी गर्नुहुन्छ ।';
+$lang['js']['keepopen'] = 'छनौटमा विन्डो खुला राख्नुहोस् ';
+$lang['js']['hidedetails'] = 'जानकारी लुकाउनु होस् ';
+$lang['js']['nosmblinks'] = 'विन्डोहरु लिङ्क गर्दा माइक्रो सफ्ट एक्सप्लोररमामात्र काम साझा हुन्छ । तर कपि गर्न र टास्न मिल्छ। ';
+$lang['js']['del_confirm'] = 'साच्चै छानिएका वस्तुहरु मेट्ने हो ?';
$lang['rssfailed'] = 'यो फिड लिइ आउदा गल्ति भयो ।';
$lang['nothingfound'] = 'केहि पनि भेटिएन ।';
$lang['mediaselect'] = 'मिडिया फाइलहरू ';
@@ -103,9 +107,6 @@ $lang['deletefail'] = '"%s" मेट्न सकिएन - अन
$lang['mediainuse'] = 'फाइल "%s" मेटिएको छैन - प्रयोगमा छ।';
$lang['namespaces'] = 'नेमस्पेसहरु ';
$lang['mediafiles'] = ' उपलब्ध फाइलहरु ';
-$lang['js']['keepopen'] = 'छनौटमा विन्डो खुला राख्नुहोस् ';
-$lang['js']['hidedetails'] = 'जानकारी लुकाउनु होस् ';
-$lang['js']['nosmblinks'] = 'विन्डोहरु लिङ्क गर्दा माइक्रो सफ्ट एक्सप्लोररमामात्र काम साझा हुन्छ । तर कपि गर्न र टास्न मिल्छ। ';
$lang['mediausage'] = 'फाइललाई रेफरेन्स गर्न निम्न सुत्र प्रयोग गर्नुहोस् :';
$lang['mediaview'] = 'सक्कली फाइल हेर्नुहोस् ';
$lang['mediaroot'] = 'रुट(मूख्य प्रयोगकर्ता)';
@@ -153,7 +154,6 @@ $lang['qb_media'] = 'तस्विर र अरु फाइल
$lang['qb_sig'] = 'हस्ताक्षर थप्नुहोस् ';
$lang['qb_smileys'] = 'स्माइलीहरु ';
$lang['qb_chars'] = 'विशेष वर्णहरु ';
-$lang['js']['del_confirm'] = 'साच्चै छानिएका वस्तुहरु मेट्ने हो ?';
$lang['admin_register'] = 'नयाँ प्रयोगकर्ता थप्नुहोस् ';
$lang['metaedit'] = 'मेटाडेटा सम्पादन गर्नुहोस्';
$lang['metasaveerr'] = 'मेटाडाटा लेखन असफल';
@@ -169,12 +169,6 @@ $lang['img_copyr'] = 'सर्वाधिकार';
$lang['img_format'] = 'ढाचा';
$lang['img_camera'] = 'क्यामेरा';
$lang['img_keywords'] = 'खोज शब्द';
-$lang['subscribe_success'] = '%s ,%s को ग्राह्यताको लागि थपियो ';
-$lang['subscribe_error'] = '%s ,%s को ग्राह्यताको लागि थपिदा त्रुटि';
-$lang['subscribe_noaddress'] = 'तपाईको खातासँग कुनै पनि ठेगाना संबन्धित छैन , तपाईलाई ग्रहाक सुचीमा राखन मिलेन।';
-$lang['unsubscribe_success'] = '%s लाई %s को ग्रहाक सुचीबाट हटाइयो';
-$lang['unsubscribe_error'] = '%s लाई %s को ग्राहक सुचीबाट हटाउदा त्रुटि';
-$lang['authmodfailed'] = 'खराब प्रयोगकर्ता प्रामाणिकरण विधि ।तपाईको विकी एड्मिनलाई खवर गर्नुहोस् ।';
$lang['authtempfail'] = 'प्रयोगकर्ता प्रामाणिकरण अस्थाइरुपमा अनुपलब्ध छ। यदि यो समस्या रहि रहेमा तपाईको विकि एड्मिनलाई खवर गर्नुहोला ।';
$lang['i_chooselang'] = 'भाषा छान्नुहोस् ';
$lang['i_installer'] = 'DokuWiki स्थापक';
diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php
index c45c172fb..5f95a99bf 100644
--- a/inc/lang/nl/lang.php
+++ b/inc/lang/nl/lang.php
@@ -18,6 +18,9 @@
* @author Ricardo Guijt <ricardoguijt@gmail.com>
* @author Gerrit <klapinklapin@gmail.com>
* @author mprins <mprins@users.sf.net>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @author Klap-in <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -93,7 +96,7 @@ $lang['profchanged'] = 'Gebruikersprofiel succesvol aangepast';
$lang['profnodelete'] = 'Deze wiki heeft biedt geen ondersteuning voor verwijdering van gebruikers';
$lang['profdeleteuser'] = 'Verwijder gebruiker';
$lang['profdeleted'] = 'Uw gebruikersaccount is verwijderd van deze wiki';
-$lang['profconfdelete'] = 'Ik wik mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.';
+$lang['profconfdelete'] = 'Ik wil mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.';
$lang['profconfdeletemissing'] = 'Bevestigingsvinkje niet gezet';
$lang['pwdforget'] = 'Je wachtwoord vergeten? Vraag een nieuw wachtwoord aan';
$lang['resendna'] = 'Deze wiki ondersteunt het verzenden van wachtwoorden niet';
@@ -220,7 +223,7 @@ $lang['changes_type'] = 'Bekijk wijzigingen van';
$lang['pages_changes'] = 'Pagina\'s';
$lang['media_changes'] = 'Mediabestanden';
$lang['both_changes'] = 'Zowel pagina\'s als mediabestanden';
-$lang['qb_bold'] = 'Vette tekst';
+$lang['qb_bold'] = 'Vetgedrukte tekst';
$lang['qb_italic'] = 'Cursieve tekst';
$lang['qb_underl'] = 'Onderstreepte tekst';
$lang['qb_code'] = 'Code tekst';
@@ -265,7 +268,7 @@ $lang['img_height'] = 'Hoogte';
$lang['img_manager'] = 'In mediabeheerder bekijken';
$lang['subscr_subscribe_success'] = '%s is ingeschreven voor %s';
$lang['subscr_subscribe_error'] = 'Fout bij inschrijven van %s voor %s';
-$lang['subscr_subscribe_noaddress'] = 'Er is geen emailadres geassocieerd met uw account, u kunt daardoor niet worden ingeschreven.';
+$lang['subscr_subscribe_noaddress'] = 'Er is geen e-mailadres gekoppeld aan uw account, u kunt daardoor niet worden ingeschreven.';
$lang['subscr_unsubscribe_success'] = '%s is nu uitgeschreven bij %s.';
$lang['subscr_unsubscribe_error'] = 'Fout bij uitschrijven van %s bij %s.';
$lang['subscr_already_subscribed'] = '%s is reeds ingeschreven bij %s.';
@@ -279,7 +282,6 @@ $lang['subscr_m_receive'] = 'Ontvang';
$lang['subscr_style_every'] = 'Email bij iedere wijziging';
$lang['subscr_style_digest'] = 'Samenvattings-email met wijzigingen per pagina (elke %.2f dagen)';
$lang['subscr_style_list'] = 'Lijst van veranderde pagina\'s sinds laatste email (elke %.2f dagen)';
-$lang['authmodfailed'] = 'Ongeldige gebruikersauthenticatie-configuratie. Informeer de wikibeheerder.';
$lang['authtempfail'] = 'Gebruikersauthenticatie is tijdelijk niet beschikbaar. Als deze situatie zich blijft voordoen, informeer dan de wikibeheerder.';
$lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen';
$lang['i_chooselang'] = 'Kies je taal';
@@ -339,3 +341,7 @@ $lang['media_perm_read'] = 'Sorry, u heeft niet voldoende rechten om besta
$lang['media_perm_upload'] = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.';
$lang['media_update'] = 'Upload nieuwe versie';
$lang['media_restore'] = 'Deze versie terugzetten';
+$lang['currentns'] = 'Huidige namespace';
+$lang['searchresult'] = 'Zoekresultaat';
+$lang['plainhtml'] = 'Alleen HTML';
+$lang['wikimarkup'] = 'Wiki Opmaak';
diff --git a/inc/lang/nl/mailtext.txt b/inc/lang/nl/mailtext.txt
index dbe35c519..d12093a5b 100644
--- a/inc/lang/nl/mailtext.txt
+++ b/inc/lang/nl/mailtext.txt
@@ -1,9 +1,9 @@
-Er is een pagina in je DokuWiki toegevoegd of gewijzigd. Hier zijn de details
+Er is een pagina in je DokuWiki toegevoegd of gewijzigd. Hier zijn de details:
Datum : @DATE@
Browser : @BROWSER@
IP-Adres : @IPADDRESS@
-Hostname : @HOSTNAME@
+Hostnaam : @HOSTNAME@
Oude revisie : @OLDPAGE@
Nieuwe revisie: @NEWPAGE@
Samenvatting : @SUMMARY@
diff --git a/inc/lang/nl/read.txt b/inc/lang/nl/read.txt
index fcb791811..2a9bb9a93 100644
--- a/inc/lang/nl/read.txt
+++ b/inc/lang/nl/read.txt
@@ -1,2 +1,2 @@
-Deze pagina is niet beschrijfbaar. Je kan de broncode bekijken maar niks veranderen. Neem contact op met de beheerder als je denkt dat dit niet klopt.
+Deze pagina is alleen-lezen. Je kan de broncode bekijken maar niet veranderen. Neem contact op met de beheerder als je denkt dat dit niet klopt.
diff --git a/inc/lang/nl/resendpwd.txt b/inc/lang/nl/resendpwd.txt
index ed4617748..3a67587d7 100644
--- a/inc/lang/nl/resendpwd.txt
+++ b/inc/lang/nl/resendpwd.txt
@@ -1,3 +1,3 @@
==== Verstuur een nieuw wachtwoord ====
-Voer uw gebruikersnaam in het formulier hieronder in om een nieuw wachtwoord aan te vragen voor deze wiki. Een bevestigingslink zal worden verzonden naar het geregistreerde e-mailadres.
+Voer je gebruikersnaam in het formulier hieronder in om een nieuw wachtwoord aan te vragen voor deze wiki. Een bevestigingslink zal worden verzonden naar het geregistreerde e-mailadres.
diff --git a/inc/lang/nl/subscr_form.txt b/inc/lang/nl/subscr_form.txt
index a554f843e..0f9f2d006 100644
--- a/inc/lang/nl/subscr_form.txt
+++ b/inc/lang/nl/subscr_form.txt
@@ -1,3 +1,3 @@
====== Beheer inschrijvingen ======
-Deze pagina stelt u in staat uw inschrijven voor de huidige pagina en namespace te configureren. \ No newline at end of file
+Deze pagina stelt u in staat uw abonnementen voor de huidige pagina en namespace te configureren. \ No newline at end of file
diff --git a/inc/lang/nl/subscr_list.txt b/inc/lang/nl/subscr_list.txt
index 5e1a62144..7cde7128e 100644
--- a/inc/lang/nl/subscr_list.txt
+++ b/inc/lang/nl/subscr_list.txt
@@ -6,7 +6,7 @@ Pagina's in de namespace @PAGE@ van de @TITLE@ wiki zijn veranderd. Hier zijn de
@DIFF@
--------------------------------------------------------
-Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
+Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
--
Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php
index 8235bfb91..254d3c56b 100644
--- a/inc/lang/no/lang.php
+++ b/inc/lang/no/lang.php
@@ -263,7 +263,6 @@ $lang['subscr_m_receive'] = 'Motta';
$lang['subscr_style_every'] = 'e-post for alle endringer';
$lang['subscr_style_digest'] = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)';
$lang['subscr_style_list'] = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)';
-$lang['authmodfailed'] = 'Feilkonfigurert brukerautorisasjon. Vennligst innformer Wiki-admin.';
$lang['authtempfail'] = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.';
$lang['i_chooselang'] = 'Velg språk';
$lang['i_installer'] = 'DokuWiki-installasjon';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index 51149e88f..118f0e5ab 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -265,7 +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['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.';
$lang['i_chooselang'] = 'Wybierz język';
diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php
index a92afc0a0..812799f04 100644
--- a/inc/lang/pt-br/lang.php
+++ b/inc/lang/pt-br/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Luis Fernando Enciso <lfenciso@certto.com.br>
* @author Alauton/Loug
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
@@ -20,6 +20,8 @@
* @author Frederico Guimarães <frederico@teia.bio.br>
* @author Balaco Baco <balacobaco@imap.cc>
* @author Victor Westmann <victor.westmann@gmail.com>
+ * @author Leone Lisboa Magevski <leone1983@gmail.com>
+ * @author Dário Estevão <darioems@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -63,6 +65,7 @@ $lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Cadastre-se';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Gerenciador de mídias';
+$lang['btn_deleteuser'] = 'Remover minha conta';
$lang['loggedinas'] = 'Identificado(a) como';
$lang['user'] = 'Nome de usuário';
$lang['pass'] = 'Senha';
@@ -74,6 +77,7 @@ $lang['fullname'] = 'Nome completo';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Perfil do usuário';
$lang['badlogin'] = 'Desculpe, mas o nome de usuário ou a senha estão incorretos.';
+$lang['badpassconfirm'] = 'Desculpe, mas a senha está errada ';
$lang['minoredit'] = 'Alterações mínimas';
$lang['draftdate'] = 'O rascunho foi salvo automaticamente em';
$lang['nosecedit'] = 'A página foi modificada nesse intervalo de tempo. Como a informação da seção estava desatualizada, foi carregada a página inteira.';
@@ -90,6 +94,9 @@ $lang['profna'] = 'Esse wiki não suporta modificações do perfi
$lang['profnochange'] = 'Sem alterações, nada para fazer.';
$lang['profnoempty'] = 'Não são permitidos nomes ou endereços de e-mail em branco.';
$lang['profchanged'] = 'O perfil do usuário foi atualizado com sucesso.';
+$lang['profnodelete'] = 'Esse wiki não suporta a exclusão de usuários ';
+$lang['profdeleteuser'] = 'Excluir a conta';
+$lang['profdeleted'] = 'Sua conta de usuário foi excluída desse wiki';
$lang['pwdforget'] = 'Esqueceu sua senha? Solicite outra';
$lang['resendna'] = 'Esse wiki não tem suporte para o reenvio de senhas.';
$lang['resendpwd'] = 'Definir a nova senha para';
@@ -274,7 +281,6 @@ $lang['subscr_m_receive'] = 'Receber';
$lang['subscr_style_every'] = 'um e-mail a cada modificação';
$lang['subscr_style_digest'] = 'um agrupamento de e-mails com as mudanças para cada página (a cada %.2f dias)';
$lang['subscr_style_list'] = 'uma lista de páginas modificadas desde o último e-mail (a cada %.2f dias)';
-$lang['authmodfailed'] = 'A configuração da autenticação de usuário está com problemas. Por favor, informe ao administrador do wiki.';
$lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.';
$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possível.';
$lang['i_chooselang'] = 'Selecione o seu idioma';
diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php
index ac9c59c3e..46405c444 100644
--- a/inc/lang/pt/lang.php
+++ b/inc/lang/pt/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Portuguese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt>
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
@@ -12,12 +12,11 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '“';//&ldquo;
-$lang['doublequoteclosing'] = '”';//&rdquo;
-$lang['singlequoteopening'] = '‘';//&lsquo;
-$lang['singlequoteclosing'] = '’';//&rsquo;
-$lang['apostrophe'] = '’';//&rsquo;
-
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Editar página';
$lang['btn_source'] = 'Ver fonte';
$lang['btn_show'] = 'Ver página';
@@ -52,7 +51,7 @@ $lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Registar';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Gestor de Media';
-
+$lang['btn_deleteuser'] = 'Remover a Minha Conta';
$lang['loggedinas'] = 'Está em sessão como';
$lang['user'] = 'Utilizador';
$lang['pass'] = 'Senha';
@@ -67,7 +66,6 @@ $lang['badlogin'] = 'O utilizador inválido ou senha inválida.';
$lang['minoredit'] = 'Alterações Menores';
$lang['draftdate'] = 'Rascunho automaticamente gravado em';
$lang['nosecedit'] = 'A página foi modificada entretanto. Como a informação da secção estava desactualizada, foi carregada a página inteira.';
-
$lang['regmissing'] = 'Por favor, preencha todos os campos.';
$lang['reguexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.';
$lang['regsuccess'] = 'O utilizador foi criado e a senha foi enviada para o endereço de correio electrónico usado na inscrição.';
@@ -77,12 +75,13 @@ $lang['regbadmail'] = 'O endereço de correio electrónico é inváli
$lang['regbadpass'] = 'As duas senhas não são idênticas, por favor tente de novo.';
$lang['regpwmail'] = 'A sua senha DokuWiki';
$lang['reghere'] = 'Para se registar, clique em';
-
$lang['profna'] = 'Este Wiki não suporta modificações aos perfis.';
$lang['profnochange'] = 'Nada alteração, nada a fazer.';
$lang['profnoempty'] = 'Não são permitidos nomes ou endereços em branco.';
$lang['profchanged'] = 'Perfil do utilizador actualizado com sucesso.';
-
+$lang['profnodelete'] = 'Esta wiki não suporta remoção de utilizadores';
+$lang['profdeleteuser'] = 'Apagar Conta';
+$lang['profdeleted'] = 'A sua conta de utilizador foi removida desta wiki';
$lang['pwdforget'] = 'Esqueceu a sua senha? Pedir nova senha';
$lang['resendna'] = 'Este wiki não suporta reenvio de senhas.';
$lang['resendpwdmissing'] = 'É preciso preencher todos os campos.';
@@ -90,10 +89,8 @@ $lang['resendpwdnouser'] = 'Não foi possível encontrar este utilizador.'
$lang['resendpwdbadauth'] = 'O código de autenticação não é válido. Por favor, assegure-se de que o link de confirmação está completo.';
$lang['resendpwdconfirm'] = 'O link de confirmação foi enviado por e-mail.';
$lang['resendpwdsuccess'] = 'A nova senha foi enviada por e-mail.';
-
$lang['license'] = 'Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença:';
$lang['licenseok'] = 'Nota: Ao editar esta página você aceita disponibilizar o seu conteúdo sob a seguinte licença:';
-
$lang['searchmedia'] = 'Procurar nome de ficheiro:';
$lang['searchmedia_in'] = 'Procurar em %s';
$lang['txt_upload'] = 'Escolha ficheiro para carregar';
@@ -102,9 +99,7 @@ $lang['txt_overwrt'] = 'Escrever por cima do ficheiro já existente';
$lang['lockedby'] = 'Bloqueado por';
$lang['lockexpire'] = 'Expira em';
$lang['js']['willexpire'] = 'O bloqueio de edição para este documento irá expirar num minuto.\nPara evitar conflitos use o botão Prever para re-iniciar o temporizador de bloqueio.';
-
$lang['js']['notsavedyet'] = 'Alterações não gravadas serão perdidas.';
-
$lang['js']['searchmedia'] = 'Procurar por ficheiros';
$lang['js']['keepopen'] = 'Mantenha a janela aberta durante a selecção';
$lang['js']['hidedetails'] = 'Esconder Detalhes';
@@ -135,6 +130,16 @@ $lang['js']['linkwiz'] = 'Assistente de Criação de Ligação';
$lang['js']['linkto'] = 'Ligação para:';
$lang['js']['del_confirm'] = 'Remover o(s) item(s) selecionados?';
$lang['js']['restore_confirm'] = 'Restaurar esta versão?';
+$lang['js']['media_diff'] = 'Ver diferenças:';
+$lang['js']['media_diff_both'] = 'Lado a Lado';
+$lang['js']['media_diff_opacity'] = 'Sobreposição';
+$lang['js']['media_diff_portions'] = 'Slider';
+$lang['js']['media_select'] = 'Selecione ficheiros…';
+$lang['js']['media_upload_btn'] = 'Enviar';
+$lang['js']['media_done_btn'] = 'Feito';
+$lang['js']['media_drop'] = 'Largue ficheiros aqui para enviar';
+$lang['js']['media_cancel'] = 'remover';
+$lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes';
$lang['rssfailed'] = 'Ocorreu um erro neste canal RSS: ';
$lang['nothingfound'] = 'Nada foi encontrado.';
$lang['mediaselect'] = 'Selecção de ficheiros';
@@ -184,15 +189,21 @@ $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.';
$lang['download'] = 'Descarregar Snippet';
-$lang['changes_type'] = 'Ver alterações de';
-$lang['pages_changes'] = 'Páginas';
-$lang['media_changes'] = 'Ficheiros Media';
-$lang['both_changes'] = 'Tanto páginas como ficheiros media';
+$lang['tools'] = 'Ferramentas';
+$lang['user_tools'] = 'Ferramentas de Utilizador';
+$lang['site_tools'] = 'Ferramentas de Site';
+$lang['page_tools'] = 'Ferramentas de Página';
+$lang['skip_to_content'] = 'saltar para conteúdo';
+$lang['sidebar'] = 'Barra Lateral';
$lang['mail_newpage'] = 'documento adicionado:';
$lang['mail_changed'] = 'documento modificado:';
$lang['mail_subscribe_list'] = 'páginas alteradas no espaço de nome:';
$lang['mail_new_user'] = 'Novo utilizador:';
$lang['mail_upload'] = 'Ficheiro carregado:';
+$lang['changes_type'] = 'Ver alterações de';
+$lang['pages_changes'] = 'Páginas';
+$lang['media_changes'] = 'Ficheiros Media';
+$lang['both_changes'] = 'Tanto páginas como ficheiros media';
$lang['qb_bold'] = 'Texto com Ênfase';
$lang['qb_italic'] = 'Texto Itálico';
$lang['qb_underl'] = 'Texto Sublinhado';
@@ -252,8 +263,8 @@ $lang['subscr_m_receive'] = 'Receber';
$lang['subscr_style_every'] = 'email em qualquer alteração';
$lang['subscr_style_digest'] = '"digest email" de alterações em cada página (cada %.2f dias)';
$lang['subscr_style_list'] = 'lista de páginas alteradas desde o último email (cada %.2f dias)';
-$lang['authmodfailed'] = 'Configuração de autenticação errada. Por favor, informe o Wiki Admin.';
$lang['authtempfail'] = 'Autenticação temporariamente indisponível. Se a situação persistir, por favor informe o Wiki Admin.';
+$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.';
$lang['i_chooselang'] = 'Escolha a linguagem';
$lang['i_installer'] = 'Instalador do DokuWiki';
$lang['i_wikiname'] = 'Nome Wiki';
@@ -276,6 +287,9 @@ $lang['i_pol1'] = 'Wiki Público (ler para todos, escrever e carr
$lang['i_pol2'] = 'Wiki Fechado (ler, escrever e carregar somente para utilizadores inscritos)';
$lang['i_retry'] = 'Repetir';
$lang['i_license'] = 'Por favor escolha a licença sob a qual quer colocar o seu conteúdo:';
+$lang['i_license_none'] = 'Não mostrar nenhuma informação de licença';
+$lang['i_pop_field'] = 'Por favor ajude-nos a melhorar a experiência Dokuwiki:';
+$lang['i_pop_label'] = 'Uma vez por mês, enviar dados anónimos de uso para os desenvolvedores DokuWiki';
$lang['recent_global'] = 'Você está a observar as alterações dentro do espaço de nomes <b>%s</b>. Também é possível ver as <a href="%s">modificações recentes no wiki inteiro</a>.';
$lang['years'] = '%d anos atrás';
$lang['months'] = '%d meses atrás';
@@ -285,35 +299,23 @@ $lang['hours'] = '%d horas atrás';
$lang['minutes'] = '%d minutos atrás';
$lang['seconds'] = '%d segundos atrás';
$lang['wordblock'] = 'A sua alteração não foi guardada porque contém texto bloqueado (spam).';
-
-$lang['media_uploadtab'] = 'Enviar';
-$lang['media_searchtab'] = 'Procurar';
-$lang['media_viewtab'] = 'Ver';
-$lang['media_edittab'] = 'Editar';
-$lang['media_historytab'] = 'Histórico';
-$lang['media_sort'] = 'Ordenar';
-$lang['media_sort_name'] = 'Ordenar por nome';
-$lang['media_sort_date'] = 'Ordenar por data';
-$lang['media_upload'] = 'Enviar para o grupo <strong>%s</strong>.';
-$lang['media_search'] = 'Procurar no grupo <strong>%s</strong>.';
-$lang['media_view'] = '%s';
-$lang['media_edit'] = 'Editar %s';
-$lang['media_history'] = 'Histórico do %s';
-$lang['media_meta_edited']= 'metadata editada';
-$lang['media_perm_read'] = 'Perdão, não tem permissão para ler ficheiros.';
-$lang['media_perm_upload']= 'Perdão, não tem permissão para enviar ficheiros.';
-$lang['media_update'] = 'enviar nova versão';
-$lang['media_restore'] = 'Restaurar esta versão';
-
-$lang['js']['media_diff'] = 'Ver diferenças:';
-$lang['js']['media_diff_both'] = 'Lado a Lado';
-$lang['js']['media_diff_opacity'] = 'Sobreposição';
-$lang['js']['media_diff_portions'] = 'Slider'; // Needs translation. 'Deslizador' ?
-
-$lang['js']['media_select'] = 'Selecione ficheiros…';
-$lang['js']['media_upload_btn'] = 'Enviar';
-$lang['js']['media_done_btn'] = 'Feito';
-$lang['js']['media_drop'] = 'Largue ficheiros aqui para enviar';
-$lang['js']['media_cancel'] = 'remover';
-$lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes';
-
+$lang['media_uploadtab'] = 'Enviar';
+$lang['media_searchtab'] = 'Procurar';
+$lang['media_file'] = 'Ficheiro';
+$lang['media_viewtab'] = 'Ver';
+$lang['media_edittab'] = 'Editar';
+$lang['media_historytab'] = 'Histórico';
+$lang['media_list_rows'] = 'Linhas';
+$lang['media_sort_name'] = 'Ordenar por nome';
+$lang['media_sort_date'] = 'Ordenar por data';
+$lang['media_files'] = 'Ficheiros em %s';
+$lang['media_upload'] = 'Enviar para o grupo <strong>%s</strong>.';
+$lang['media_search'] = 'Procurar no grupo <strong>%s</strong>.';
+$lang['media_view'] = '%s';
+$lang['media_edit'] = 'Editar %s';
+$lang['media_history'] = 'Histórico do %s';
+$lang['media_meta_edited'] = 'metadata editada';
+$lang['media_perm_read'] = 'Perdão, não tem permissão para ler ficheiros.';
+$lang['media_perm_upload'] = 'Perdão, não tem permissão para enviar ficheiros.';
+$lang['media_update'] = 'enviar nova versão';
+$lang['media_restore'] = 'Restaurar esta versão';
diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php
index 797d1a917..028c55a20 100644
--- a/inc/lang/ro/lang.php
+++ b/inc/lang/ro/lang.php
@@ -21,7 +21,7 @@ $lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Editează această pagină';
$lang['btn_source'] = 'Arată sursa paginii';
$lang['btn_show'] = 'Arată pagina';
-$lang['btn_create'] = 'Crează această pagină';
+$lang['btn_create'] = 'Creează această pagină';
$lang['btn_search'] = 'Caută';
$lang['btn_save'] = 'Salvează';
$lang['btn_preview'] = 'Previzualizează';
@@ -34,18 +34,18 @@ $lang['btn_upload'] = 'Upload';
$lang['btn_cancel'] = 'Renunțare';
$lang['btn_index'] = 'Index';
$lang['btn_secedit'] = 'Editează';
-$lang['btn_login'] = 'Login';
-$lang['btn_logout'] = 'Logout';
-$lang['btn_admin'] = 'Admin';
+$lang['btn_login'] = 'Autentificare';
+$lang['btn_logout'] = 'Deconectare';
+$lang['btn_admin'] = 'Administrativ';
$lang['btn_update'] = 'Actualizează';
$lang['btn_delete'] = 'Șterge';
$lang['btn_back'] = 'Înapoi';
$lang['btn_backlink'] = 'Legătură anterioară';
-$lang['btn_backtomedia'] = 'Înapoi la Selecția Mediafile';
-$lang['btn_subscribe'] = 'Subscrie Modificarea Paginii';
-$lang['btn_profile'] = 'Actualizează Profil';
+$lang['btn_backtomedia'] = 'Înapoi la selecția mediafile';
+$lang['btn_subscribe'] = 'Subscrie modificarea paginii';
+$lang['btn_profile'] = 'Actualizează profil';
$lang['btn_reset'] = 'Resetează';
-$lang['btn_resendpwd'] = 'Setează o parolă nouă';
+$lang['btn_resendpwd'] = 'Configurează o parolă nouă';
$lang['btn_draft'] = 'Editează schiță';
$lang['btn_recover'] = 'Recuperează schiță';
$lang['btn_draftdel'] = 'Șterge schiță';
@@ -58,51 +58,51 @@ $lang['user'] = 'Utilizator';
$lang['pass'] = 'Parola';
$lang['newpass'] = 'Parola nouă';
$lang['oldpass'] = 'Confirmă parola curentă';
-$lang['passchk'] = 'încă o dată';
+$lang['passchk'] = 'Încă o dată';
$lang['remember'] = 'Ține-mă minte';
$lang['fullname'] = 'Nume complet';
-$lang['email'] = 'E-Mail';
-$lang['profile'] = 'Profil Utilizator';
-$lang['badlogin'] = 'Imi pare rău, utilizatorul și/sau parola au fost greșite.';
-$lang['minoredit'] = 'Modificare Minoră';
+$lang['email'] = 'E-mail';
+$lang['profile'] = 'Profil utilizator';
+$lang['badlogin'] = 'Ne pare rău, utilizatorul și/sau parola au fost greșite.';
+$lang['minoredit'] = 'Modificare minoră';
$lang['draftdate'] = 'Schiță salvată automat la';
$lang['nosecedit'] = 'Pagina s-a modificat între timp, secțiunea info a expirat, s-a încărcat pagina întreagă în loc.';
$lang['regmissing'] = 'Ne pare rău, trebuie să completezi toate cîmpurile.';
-$lang['reguexists'] = 'Ne pare rău, un utilizator cu acest nume există deja logat.';
-$lang['regsuccess'] = 'Utilizatorul a fost creat. Parola a fost trimisă prin email.';
+$lang['reguexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.';
+$lang['regsuccess'] = 'Utilizatorul a fost creat. Parola a fost trimisă prin e-mail.';
$lang['regsuccess2'] = 'Utilizatorul a fost creat.';
-$lang['regmailfail'] = 'Se pare că a fost o eroare la trimiterea parolei prin email. Contactați administratorul!';
-$lang['regbadmail'] = 'Adresa de email este invalidă - dacă credeți că este o eroare contactați administratorul.';
+$lang['regmailfail'] = 'Se pare că a fost o eroare la trimiterea parolei prin e-mail. Contactează administratorul!';
+$lang['regbadmail'] = 'Adresa de e-mail este nevalidă - dacă sunteți de părere că este o eroare contactează administratorul.';
$lang['regbadpass'] = 'Cele două parole furnizate nu sunt identice; încercați din nou.';
$lang['regpwmail'] = 'Parola ta DokuWiki';
-$lang['reghere'] = 'Înca nu ai un cont? Fă-ți unul';
-$lang['profna'] = 'Această wiki nu suportă modificarea profilului';
+$lang['reghere'] = 'Înca nu ai un cont? Fă-ți unul!';
+$lang['profna'] = 'Acest wiki nu permite modificarea profilului';
$lang['profnochange'] = 'Nici o modificare; nimic de făcut.';
-$lang['profnoempty'] = 'Nu sunt admise numele sau adresa de email necompletate.';
-$lang['profchanged'] = 'Profilul de utilizator a fost actualizat succes.';
-$lang['pwdforget'] = 'Parola uitată? Luați una nouă';
-$lang['resendna'] = 'Această wiki nu suportă retrimiterea parolei.';
-$lang['resendpwd'] = 'Setează o parolă nouă pentru';
+$lang['profnoempty'] = 'Nu sunt admise numele sau adresa de e-mail necompletate.';
+$lang['profchanged'] = 'Profilul de utilizator a fost actualizat cu succes.';
+$lang['pwdforget'] = 'Parola uitată? Obține una nouă!';
+$lang['resendna'] = 'Acest wiki nu permite retrimiterea parolei.';
+$lang['resendpwd'] = 'Configurează o parolă nouă pentru';
$lang['resendpwdmissing'] = 'Ne pare rău, trebuie completate toate câmpurile.';
$lang['resendpwdnouser'] = 'Ne pare rău, acest utilizator nu poate fi găsit în baza de date.';
-$lang['resendpwdbadauth'] = 'Ne pare rău, acest cod de autorizare nu este corect. Verificați dacă ați folosit tot link-ul de confirmare.';
-$lang['resendpwdconfirm'] = 'Un link de confirmare a fost trimis prin email.';
-$lang['resendpwdsuccess'] = 'Parola nouă';
+$lang['resendpwdbadauth'] = 'Ne pare rău, acest cod de autorizare nu este corect. Verifică dacă ai folosit întreg link-ul de confirmare.';
+$lang['resendpwdconfirm'] = 'Un link de confirmare a fost trimis prin e-mail.';
+$lang['resendpwdsuccess'] = 'Noua parolă a fost trimisă prin e-mail.';
$lang['license'] = 'Exceptând locurile unde este altfel specificat, conținutul acestui wiki este licențiat sub următoarea licență:';
-$lang['licenseok'] = 'Notă: Prin editarea acestei pagini sunteți de acord să vă licențiați conțintul sub următoarea licență:';
+$lang['licenseok'] = 'Notă: Prin editarea acestei pagini ești de acord să publici conțintul sub următoarea licență:';
$lang['searchmedia'] = 'Caută numele fișierului:';
$lang['searchmedia_in'] = 'Caută în %s';
-$lang['txt_upload'] = 'Selectează fisierul de încărcat';
+$lang['txt_upload'] = 'Selectează fișierul de încărcat';
$lang['txt_filename'] = 'Încarcă fișierul ca (opțional)';
$lang['txt_overwrt'] = 'Suprascrie fișierul existent';
$lang['lockedby'] = 'Momentan blocat de';
$lang['lockexpire'] = 'Blocarea expiră la';
$lang['js']['willexpire'] = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele folosește butonul de previzualizare pentru resetarea blocării.';
-$lang['js']['notsavedyet'] = 'Există modificări nesalvate, care se vor pierde.
+$lang['js']['notsavedyet'] = 'Există modificări nesalvate care se vor pierde.
Dorești să continui?';
$lang['js']['searchmedia'] = 'Caută fișiere';
$lang['js']['keepopen'] = 'Menține fereastra deschisă la selecție';
-$lang['js']['hidedetails'] = 'Ascunde Detalii';
+$lang['js']['hidedetails'] = 'Ascunde detalii';
$lang['js']['mediatitle'] = 'Setări link';
$lang['js']['mediadisplay'] = 'Tip link';
$lang['js']['mediaalign'] = 'Aliniere';
@@ -110,26 +110,26 @@ $lang['js']['mediasize'] = 'Mărime imagine';
$lang['js']['mediatarget'] = 'Țintă link';
$lang['js']['mediaclose'] = 'Închide';
$lang['js']['mediainsert'] = 'Inserează';
-$lang['js']['mediadisplayimg'] = 'Afișează imaginea.';
-$lang['js']['mediadisplaylnk'] = 'Afișează doar linkul.';
+$lang['js']['mediadisplayimg'] = 'Afișează imaginea';
+$lang['js']['mediadisplaylnk'] = 'Afișează doar linkul';
$lang['js']['mediasmall'] = 'Versiune mică';
$lang['js']['mediamedium'] = 'Versiune medie';
$lang['js']['medialarge'] = 'Versiune mare';
-$lang['js']['mediaoriginal'] = 'Versiune originală';
+$lang['js']['mediaoriginal'] = 'Versiune inițială';
$lang['js']['medialnk'] = 'Link către pagina detaliilor';
-$lang['js']['mediadirect'] = 'Link direct către original';
+$lang['js']['mediadirect'] = 'Link direct către versiunea inițială';
$lang['js']['medianolnk'] = 'Fără link';
$lang['js']['medianolink'] = 'Nu crea link către imagine';
-$lang['js']['medialeft'] = 'Aliniază imaginea la stânga.';
-$lang['js']['mediaright'] = 'Aliniază imaginea la dreapta.';
-$lang['js']['mediacenter'] = 'Aliniază imaginea la centru.';
-$lang['js']['medianoalign'] = 'Nu utiliza aliniere.';
-$lang['js']['nosmblinks'] = 'Legăturile către sharing-uri Windows funcționeaza numai in Microsoft Internet Explorer.
-Puteți însă copia și insera legătura.';
+$lang['js']['medialeft'] = 'Aliniază imaginea la stânga';
+$lang['js']['mediaright'] = 'Aliniază imaginea la dreapta';
+$lang['js']['mediacenter'] = 'Aliniază imaginea la centru';
+$lang['js']['medianoalign'] = 'Nu utiliza aliniere';
+$lang['js']['nosmblinks'] = 'Link-urile către sharing-uri Windows funcționeaza numai în Microsoft Internet Explorer.
+Poți însă copia și insera link-ul.';
$lang['js']['linkwiz'] = 'Asistent legătură';
$lang['js']['linkto'] = 'Legătură la:';
-$lang['js']['del_confirm'] = 'Doriți într-adevăr ștergerea elementelor selectate?';
-$lang['js']['restore_confirm'] = 'Sunteți sigur că doriți restaurarea acestei versiuni?';
+$lang['js']['del_confirm'] = 'Ești sigur de ștergerea elementele selectate?';
+$lang['js']['restore_confirm'] = 'Ești sigur de restaurarea acestei versiuni?';
$lang['js']['media_diff'] = 'Arată diferențele:';
$lang['js']['media_diff_both'] = 'Unul lângă altul';
$lang['js']['media_diff_opacity'] = 'Străveziu';
@@ -138,40 +138,40 @@ $lang['js']['media_select'] = 'Selectează fișierele...';
$lang['js']['media_upload_btn'] = 'Încarcă';
$lang['js']['media_done_btn'] = 'Gata';
$lang['js']['media_drop'] = 'Lasă fișierele aici pentru încărcarea lor';
-$lang['js']['media_cancel'] = 'înlătură';
+$lang['js']['media_cancel'] = 'Înlătură';
$lang['js']['media_overwrt'] = 'Suprascrie fișierele deja existente';
-$lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui cîmp: ';
+$lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui câmp: ';
$lang['nothingfound'] = 'Nu am găsit nimic.';
-$lang['mediaselect'] = 'Selectare fișiere media';
-$lang['fileupload'] = 'Încarcă fișier media';
+$lang['mediaselect'] = 'Fișiere media';
+$lang['fileupload'] = 'Încarcare fișier media';
$lang['uploadsucc'] = 'Încărcare reușită';
$lang['uploadfail'] = 'Încărcare eșuată. Poate din cauza permisiunilor?';
$lang['uploadwrong'] = 'Încărcare nepermisă. Extensia fișierului e nepermisă';
$lang['uploadexist'] = 'Fișierul există deja. Nimic nu a fost făcut.';
$lang['uploadbadcontent'] = 'Conținutul încărcat nu corespunde extensiei fișierului %s.';
-$lang['uploadspam'] = 'Încărcarea a fost blocată datorită listei negre de spam.';
-$lang['uploadxss'] = 'Încărcarea a fost blocată datorită unui posibil conținut dăunător.';
+$lang['uploadspam'] = 'Încărcarea a fost blocată din cauza listei negre de spam.';
+$lang['uploadxss'] = 'Încărcarea a fost blocată din cauza unui posibil conținut dăunător.';
$lang['uploadsize'] = 'Fișierul uploadat a fost prea mare. (max %s)';
$lang['deletesucc'] = 'Fișierul "%s" a fost șters.';
-$lang['deletefail'] = '"%s" nu a putut fi șters - verificați drepturile.';
+$lang['deletefail'] = '"%s" nu a putut fi șters - verifică permisiunile.';
$lang['mediainuse'] = 'Fișierul "%s" nu a fost șters - este încă în uz.';
$lang['namespaces'] = 'Spații de nume';
$lang['mediafiles'] = 'Fișiere disponibile în';
-$lang['accessdenied'] = 'Nu vă este permis să vizualizați această pagină.';
-$lang['mediausage'] = 'Folosiți următoarea sintaxă pentru a face referință la acest fișier:';
-$lang['mediaview'] = 'Vizualizează fișierul original';
+$lang['accessdenied'] = 'Nu îți este permis să vizualizezi această pagină.';
+$lang['mediausage'] = 'Folosește următoarea sintaxă pentru a face referință la acest fișier:';
+$lang['mediaview'] = 'Vizualizează fișierul inițial';
$lang['mediaroot'] = 'root';
$lang['mediaupload'] = 'Încarcă un fișier in acest spațiu de nume. Pentru a crea sub-spații de nume, adaugă-le la fișierul de încărcat, separate de doua puncte (:).';
-$lang['mediaextchange'] = 'Extensia fișierului a fost modificată din .%s în .%s!';
+$lang['mediaextchange'] = 'Extensia fișierului a fost modificată din .%s în .%s.';
$lang['reference'] = 'Referință pentru';
-$lang['ref_inuse'] = 'Fișierul nu a putut fi șters întrucât este folosit încă de următoarele pagini:';
-$lang['ref_hidden'] = 'Nu aveți permisiunea să citiți o parte din referințele din pagină.';
-$lang['hits'] = 'Hituri';
+$lang['ref_inuse'] = 'Fișierul nu a putut fi șters întrucât este folosit de următoarele pagini:';
+$lang['ref_hidden'] = 'Nu ai permisiunea să citești o parte din referințele din pagină.';
+$lang['hits'] = 'Accese';
$lang['quickhits'] = 'Nume de pagini potrivite';
$lang['toc'] = 'Cuprins';
$lang['current'] = 'curent';
$lang['yours'] = 'Versiunea ta';
-$lang['diff'] = 'arată diferențele față de versiunea curentă';
+$lang['diff'] = 'Arată diferențele față de versiunea curentă';
$lang['diff2'] = 'Arată diferențele dintre versiunile selectate';
$lang['difflink'] = 'Link către această vizualizare comparativă';
$lang['diff_type'] = 'Vezi diferențe:';
@@ -179,7 +179,7 @@ $lang['diff_inline'] = 'Succesiv';
$lang['diff_side'] = 'Alăturate';
$lang['line'] = 'Linia';
$lang['breadcrumb'] = 'Traseu';
-$lang['youarehere'] = 'Sunteți aici';
+$lang['youarehere'] = 'Ești aici';
$lang['lastmod'] = 'Ultima modificare';
$lang['by'] = 'de către';
$lang['deleted'] = 'șters';
@@ -191,11 +191,11 @@ $lang['noflash'] = 'Plugin-ul <a href="http://www.adobe.com/produc
$lang['download'] = 'Bloc descărcări';
$lang['tools'] = 'Unelte';
$lang['user_tools'] = 'Unelte utilizator';
-$lang['site_tools'] = 'Unelte Site';
-$lang['page_tools'] = 'Unelte Pagină';
-$lang['skip_to_content'] = 'sari la conținut';
-$lang['mail_newpage'] = 'pagina adăugată:';
-$lang['mail_changed'] = 'page schimbată:';
+$lang['site_tools'] = 'Unelte site';
+$lang['page_tools'] = 'Unelte pagină';
+$lang['skip_to_content'] = 'mergi la conținut';
+$lang['mail_newpage'] = 'pagină adăugată:';
+$lang['mail_changed'] = 'pagină schimbată:';
$lang['mail_subscribe_list'] = 'pagini modificate în spațiul de nume:';
$lang['mail_new_user'] = 'utilizator nou';
$lang['mail_upload'] = 'fișier încărcat:';
@@ -203,43 +203,43 @@ $lang['changes_type'] = 'Vizualizare modificări';
$lang['pages_changes'] = 'Pagini';
$lang['media_changes'] = 'Fișiere media';
$lang['both_changes'] = 'Ambele pagini și fișiere media';
-$lang['qb_bold'] = 'Text Îngroșat';
-$lang['qb_italic'] = 'Text Italic';
-$lang['qb_underl'] = 'Text Subliniat';
-$lang['qb_code'] = 'Text Cod';
-$lang['qb_strike'] = 'Text Tăiat';
-$lang['qb_h1'] = 'Titlu de Nivel 1';
-$lang['qb_h2'] = 'Titlu de Nivel 2';
-$lang['qb_h3'] = 'Titlu de Nivel 3';
-$lang['qb_h4'] = 'Titlu de Nivel 4';
-$lang['qb_h5'] = 'Titlu de Nivel 5';
+$lang['qb_bold'] = 'Text aldin';
+$lang['qb_italic'] = 'Text cursiv';
+$lang['qb_underl'] = 'Text subliniat';
+$lang['qb_code'] = 'Text cod';
+$lang['qb_strike'] = 'Text tăiat';
+$lang['qb_h1'] = 'Titlu de nivel 1';
+$lang['qb_h2'] = 'Titlu de nivel 2';
+$lang['qb_h3'] = 'Titlu de nivel 3';
+$lang['qb_h4'] = 'Titlu de nivel 4';
+$lang['qb_h5'] = 'Titlu de nivel 5';
$lang['qb_h'] = 'Titlu';
-$lang['qb_hs'] = 'Selectați Titlul';
+$lang['qb_hs'] = 'Selectează titlul';
$lang['qb_hplus'] = 'Titlu mai mare';
$lang['qb_hminus'] = 'Titlu mai mic';
$lang['qb_hequal'] = 'Titlu de același nivel';
-$lang['qb_link'] = 'Legătură internă';
-$lang['qb_extlink'] = 'Legătura externă';
-$lang['qb_hr'] = 'Linie Orizontal';
-$lang['qb_ol'] = 'Listă Ordonată';
-$lang['qb_ul'] = 'Listă Neordoată';
+$lang['qb_link'] = 'Link intern';
+$lang['qb_extlink'] = 'Link extern';
+$lang['qb_hr'] = 'Linie orizontală';
+$lang['qb_ol'] = 'Listă ordonată';
+$lang['qb_ul'] = 'Listă neordoată';
$lang['qb_media'] = 'Adaugă imagini și alte fișiere';
$lang['qb_sig'] = 'Inserează semnătură';
$lang['qb_smileys'] = 'Smiley-uri';
$lang['qb_chars'] = 'Caractere speciale';
-$lang['upperns'] = 'sari la numele de spațiu părinte';
+$lang['upperns'] = 'Accesează spațiul de nume părinte';
$lang['admin_register'] = 'Adaugă utilizator nou';
-$lang['metaedit'] = 'Editează Metadata';
+$lang['metaedit'] = 'Editează metadata';
$lang['metasaveerr'] = 'Scrierea metadatelor a eșuat';
$lang['metasaveok'] = 'Metadatele au fost salvate';
$lang['img_backto'] = 'Înapoi la';
$lang['img_title'] = 'Titlu';
$lang['img_caption'] = 'Legendă';
-$lang['img_date'] = 'Data';
+$lang['img_date'] = 'Dată';
$lang['img_fname'] = 'Nume fișier';
$lang['img_fsize'] = 'Dimensiune';
$lang['img_artist'] = 'Fotograf';
-$lang['img_copyr'] = 'Copyright';
+$lang['img_copyr'] = 'Drept de autor';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Camera';
$lang['img_keywords'] = 'Cuvinte cheie';
@@ -248,47 +248,46 @@ $lang['img_height'] = 'Înălțime';
$lang['img_manager'] = 'Vizualizează în administratorul media';
$lang['subscr_subscribe_success'] = 'Adăugat %s la lista de abonare pentru %s';
$lang['subscr_subscribe_error'] = 'Eroare la adăugarea %s la lista de abonare pentru %s';
-$lang['subscr_subscribe_noaddress'] = 'Nu există adresa asociată cu logarea dvs., nu puteți fi adăugat la lista de abonare';
+$lang['subscr_subscribe_noaddress'] = 'Nu există adresă de e-mail asociată autentificării curente, nu poți fi adăugat la lista de abonare';
$lang['subscr_unsubscribe_success'] = 'Șters %s din lista de abonare pentru %s';
$lang['subscr_unsubscribe_error'] = 'Eroare la ștergerea %s din lista de abonare pentru %s';
$lang['subscr_already_subscribed'] = '%s este deja abonat la %s';
$lang['subscr_not_subscribed'] = '%s nu este abonat la %s';
-$lang['subscr_m_not_subscribed'] = 'Momentan nu sunteți abonat la pagina curentă sau la numele de spațiu.';
+$lang['subscr_m_not_subscribed'] = 'Momentan nu ești abonat la pagina curentă sau la spațiul de nume.';
$lang['subscr_m_new_header'] = 'Adaugă abonare';
$lang['subscr_m_current_header'] = 'Abonări curente';
-$lang['subscr_m_unsubscribe'] = 'Dezabonați-vă';
-$lang['subscr_m_subscribe'] = 'Abonați-vă';
-$lang['subscr_m_receive'] = 'Primiți';
-$lang['subscr_style_every'] = 'email la ficare schimbare';
-$lang['subscr_style_digest'] = 'digerează email la schimbări pentru fiecare pagină (la fiecare %.2f zile)';
-$lang['subscr_style_list'] = 'lista paginilor schimbate de la ultimul email (la fiecare %.2f zile)';
-$lang['authmodfailed'] = 'Configurația autentificării utilizatorului este eronată. Anunțați Wiki Admin-ul.';
-$lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Anunțați Wiki Admin-ul.';
-$lang['authpwdexpire'] = 'Parola vă va expira în %d zile, ar trebui să o schimbați curând.';
-$lang['i_chooselang'] = 'Alegeți limba';
-$lang['i_installer'] = 'DokuWiki Installer';
-$lang['i_wikiname'] = 'Numele Wiki';
-$lang['i_enableacl'] = 'Activează ACL (recomandat)';
-$lang['i_superuser'] = 'Superutilizator';
-$lang['i_problems'] = 'Programul de instalare a găsit câteva probleme, indicate mai jos. Nu puteți continua până nu le rezolvați.';
-$lang['i_modified'] = 'Din motive de securitate, acest script va funcționa doar cu o instalare nouă și nemodificată a Docuwiki.
-Puteți fie să extrageți din nou fișierele din arhiva descărcată fie să consultați instrucțiunile de instalare Dokuwiki la <a href="http://dokuwiki.org/install">';
-$lang['i_funcna'] = 'Funcția PHP <code>%s</code> nu este disponibilă. Probabil provider-ul dvs. a inactivat-o pentru un motiv oarecare.';
-$lang['i_phpver'] = 'Versiunea dvs. de PHP <code>%s</code> este mai veche decât cea necesară (<code>%s</code>). Trebuie să vă actualizați instalarea PHP.';
-$lang['i_permfail'] = '<code>%s</code> nu poate fi scris de către DokuWiki. Trebuie să modificați drepturile acestui director!';
+$lang['subscr_m_unsubscribe'] = 'Dezabonează-te';
+$lang['subscr_m_subscribe'] = 'Abonează-te';
+$lang['subscr_m_receive'] = 'Primește';
+$lang['subscr_style_every'] = 'e-mail la ficare schimbare';
+$lang['subscr_style_digest'] = 'e-mail cu sumar al modificărilor pentru fiecare pagină (la fiecare %.2f zile)';
+$lang['subscr_style_list'] = 'lista paginilor modificate de la ultimul e-mail (la fiecare %.2f zile)';
+$lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Contactează administratorul.';
+$lang['authpwdexpire'] = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.';
+$lang['i_chooselang'] = 'Alege limba';
+$lang['i_installer'] = 'Installer DokuWiki';
+$lang['i_wikiname'] = 'Numele acestui wiki';
+$lang['i_enableacl'] = 'Activează ACL (liste de control a accesului) (recomandat)';
+$lang['i_superuser'] = 'Utilizator privilegiat';
+$lang['i_problems'] = 'Programul de instalare a găsit câteva probleme, indicate mai jos. Nu poți continua până nu le rezolvi.';
+$lang['i_modified'] = 'Din motive de securitate, acest script va funcționa doar cu o instalare nouă și nemodificată a DokuWiki.
+Poți fie să extragi din nou fișierele din arhiva descărcată fie să consulți instrucțiunile de instalare DokuWiki la <a href="http://dokuwiki.org/install">';
+$lang['i_funcna'] = 'Funcția PHP <code>%s</code> nu este disponibilă. Probabil provider-ul tău a dezactivat-o pentru un motiv anume.';
+$lang['i_phpver'] = 'Versiunea ta de PHP <code>%s</code> este mai veche decât cea necesară (<code>%s</code>). Trebuie să îți actualizezi instalarea PHP.';
+$lang['i_permfail'] = '<code>%s</code> nu poate fi scris de către DokuWiki. Trebuie să modifici permisiunile pe acest director.';
$lang['i_confexists'] = '<code>%s</code> există deja';
-$lang['i_writeerr'] = 'Nu s-a putut crea <code>%s</code>. Trebuie să verificați drepturile directorului/fișierului și să creați fișierul manual.';
+$lang['i_writeerr'] = 'Nu s-a putut crea <code>%s</code>. Trebuie să verifici permisiunile directorului/fișierului și să creezi fișierul manual.';
$lang['i_badhash'] = 'dokuwiki.php nu a fost recunoscut sau a fost modificat (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - valoare nepemisă sau neintrodusă';
-$lang['i_success'] = 'Configurarea a fost finalizată cu succes. Acum puteți sterge fișierul install.php. Continuați cu <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_failure'] = 'Au apărut erori la scrierea fișierelor de configurare. Va trebui să le corectați manual înainte de a putea folosi <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_policy'] = 'Politica ACL inițială';
-$lang['i_pol0'] = 'Wiki Deschisă (citește, scrie și încarcă oricine)';
-$lang['i_pol1'] = 'Wiki Deschisă (citeste oricine, scrie și încarcă doar utilizatorul înregistrat)';
-$lang['i_pol2'] = 'Wiki Închisă (citește, scrie și încarcă doar utilizatorul înregistrat)';
+$lang['i_success'] = 'Configurarea a fost finalizată cu succes. Acum poți sterge fișierul install.php. Poți accesa <a href="doku.php?id=wiki:welcome">noua ta instanță DokuWiki</a>.';
+$lang['i_failure'] = 'Au apărut erori la scrierea fișierelor de configurare. Va trebui să le corectezi manual înainte de a putea folosi <a href="doku.php?id=wiki:welcome">noua ta instanță DokuWiki</a>.';
+$lang['i_policy'] = 'Politica ACL (liste de control a accesului) inițială';
+$lang['i_pol0'] = 'Wiki deschis (oricine poate citi, scrie și încărca fișiere)';
+$lang['i_pol1'] = 'Wiki public (oricine poate citi, utilizatorii înregistrați pot scrie și încărca fișiere';
+$lang['i_pol2'] = 'Wiki închis (doar utilizatorii înregistrați pot citi, scrie și încărca fișiere)';
$lang['i_retry'] = 'Încearcă din nou';
-$lang['i_license'] = 'Vă rugăm alegeți licența sub care doriți să vă licențiați materialul:';
-$lang['recent_global'] = 'Acum vizualizați modificările în interiorul numelui de spațiu <b>%s</b>. De asemenea puteți <a href="%s">vizualiza modificările recente ale întregului wiki</a>.';
+$lang['i_license'] = 'Te rugăm să alegi licența sub care dorești să publici conținutul:';
+$lang['recent_global'] = 'În acest moment vizualizezi modificările în interiorul spațiului de nume <b>%s</b>. De asemenea poți <a href="%s">vizualiza modificările recente în întregului wiki-ul</a>.';
$lang['years'] = 'acum %d ani';
$lang['months'] = 'acum %d luni';
$lang['weeks'] = 'acum %d săptămâni';
@@ -296,8 +295,8 @@ $lang['days'] = 'acum %d zile';
$lang['hours'] = 'acum %d ore';
$lang['minutes'] = 'acum %d minute';
$lang['seconds'] = 'acum %d secunde';
-$lang['wordblock'] = 'Modificarea dvs. nu au fost salvate deoarece conține text blocat (spam).';
-$lang['media_uploadtab'] = 'Încarcă';
+$lang['wordblock'] = 'Modificarea ta nu a fost salvată deoarece conține text blocat (spam).';
+$lang['media_uploadtab'] = 'Încărcare fișier';
$lang['media_searchtab'] = 'Căutare';
$lang['media_file'] = 'Fișier';
$lang['media_viewtab'] = 'Vizualizare';
@@ -306,17 +305,17 @@ $lang['media_historytab'] = 'Istoric';
$lang['media_list_thumbs'] = 'Miniaturi';
$lang['media_list_rows'] = 'Linii';
$lang['media_sort_name'] = 'Nume';
-$lang['media_sort_date'] = 'Data';
-$lang['media_namespaces'] = 'Alegeți numele se spațiu';
+$lang['media_sort_date'] = 'Dată';
+$lang['media_namespaces'] = 'Alege spațiul de nume';
$lang['media_files'] = 'Fișiere în %s';
-$lang['media_upload'] = 'Încarcă în %s';
-$lang['media_search'] = 'Caută în %s';
+$lang['media_upload'] = 'Încărcare în %s';
+$lang['media_search'] = 'Cautare în %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s în %s';
$lang['media_edit'] = 'Editare %s';
$lang['media_history'] = 'Istoricul pentru %s';
$lang['media_meta_edited'] = 'metadate editate';
-$lang['media_perm_read'] = 'Ne pare rău, dar nu aveți suficiente drepturi pentru a putea citi fișiere.';
-$lang['media_perm_upload'] = 'Ne pare rău, dar nu aveți suficiente drepturi pentru a putea încărca fișiere.';
+$lang['media_perm_read'] = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea citi fișiere.';
+$lang['media_perm_upload'] = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea încărca fișiere.';
$lang['media_update'] = 'Încarcă noua versiune';
$lang['media_restore'] = 'Restaurează această versiune';
diff --git a/inc/lang/ru/denied.txt b/inc/lang/ru/denied.txt
index 2cc33cff7..f7f53ce88 100644
--- a/inc/lang/ru/denied.txt
+++ b/inc/lang/ru/denied.txt
@@ -1,3 +1,3 @@
====== Доступ запрещён ======
-Извините, у вас не хватает прав для этого действия. Может быть, вы забыли войти в вики под своим логином?
+Извините, у вас не хватает прав для этого действия. Может быть вы забыли войти в вики под своим логином?
diff --git a/inc/lang/ru/diff.txt b/inc/lang/ru/diff.txt
index 4d1d4d031..80252614f 100644
--- a/inc/lang/ru/diff.txt
+++ b/inc/lang/ru/diff.txt
@@ -1,4 +1,4 @@
====== Различия ======
-Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
+Здесь показаны различия между двумя версиями данной страницы.
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 6709ebc59..6a0c4bb6b 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Russian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuri Pimenov <up@ftpsearch.lv>
* @author Igor Tarasov <tigr@mail15.com>
* @author Denis Simakov <akinoame1@gmail.com>
@@ -21,6 +21,7 @@
* @author Eugene <windy.wanderer@gmail.com>
* @author Johnny Utah <pcpa@cyberpunk.su>
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Pavel <ivanovtsk@mail.ru>
*/
$lang['encoding'] = ' utf-8';
$lang['direction'] = 'ltr';
@@ -63,7 +64,8 @@ $lang['btn_draftdel'] = 'Удалить черновик';
$lang['btn_revert'] = 'Восстановить';
$lang['btn_register'] = 'Зарегистрироваться';
$lang['btn_apply'] = 'Применить';
-$lang['btn_media'] = 'Media Manager';
+$lang['btn_media'] = 'Управление медиафайлами';
+$lang['btn_deleteuser'] = 'Удалить мой аккаунт';
$lang['loggedinas'] = 'Зашли как';
$lang['user'] = 'Логин';
$lang['pass'] = 'Пароль';
@@ -75,12 +77,13 @@ $lang['fullname'] = 'Полное имя';
$lang['email'] = 'Эл. адрес';
$lang['profile'] = 'Профиль пользователя';
$lang['badlogin'] = 'Извините, неверное имя пользователя или пароль.';
+$lang['badpassconfirm'] = 'Простите, пароль неверный';
$lang['minoredit'] = 'Небольшие изменения';
$lang['draftdate'] = 'Черновик сохранён';
$lang['nosecedit'] = 'За это время страница была изменена и информация о секции устарела. Загружена полная версия страницы.';
$lang['regmissing'] = 'Извините, вам следует заполнить все поля.';
$lang['reguexists'] = 'Извините, пользователь с таким логином уже существует.';
-$lang['regsuccess'] = 'Пользователь создан, пароль выслан на адрес электронной почты.';
+$lang['regsuccess'] = 'Пользователь создан; пароль выслан на адрес электронной почты.';
$lang['regsuccess2'] = 'Пользователь создан.';
$lang['regmailfail'] = 'Похоже есть проблема с отправкой пароля по почте. Пожалуйста, сообщите об этом администратору.';
$lang['regbadmail'] = 'Данный вами адрес электронной почты выглядит неправильным. Если вы считаете это ошибкой, сообщите администратору.';
@@ -91,6 +94,11 @@ $lang['profna'] = 'Данная вики не поддержив
$lang['profnochange'] = 'Изменений не было внесено, профиль не обновлён.';
$lang['profnoempty'] = 'Логин и адрес электронной почты не могут быть пустыми.';
$lang['profchanged'] = 'Профиль пользователя успешно обновлён.';
+$lang['profnodelete'] = 'Удалённый пользователь не может работать с этим документом';
+$lang['profdeleteuser'] = 'Удалить аккаунт';
+$lang['profdeleted'] = 'Ваш аккаунт был удален из этой вики';
+$lang['profconfdelete'] = 'Я хочу удалить мой аккаунт из этой вики.<br />Это действие необратимо.';
+$lang['profconfdeletemissing'] = 'Флажок подтверждения не установлен';
$lang['pwdforget'] = 'Забыли пароль? Получите новый';
$lang['resendna'] = 'Данная вики не поддерживает повторную отправку пароля.';
$lang['resendpwd'] = 'Установить новый пароль для';
@@ -109,7 +117,7 @@ $lang['txt_overwrt'] = 'Перезаписать существующ
$lang['maxuploadsize'] = 'Максимальный размер загружаемого файла %s';
$lang['lockedby'] = 'В данный момент заблокирован';
$lang['lockexpire'] = 'Блокировка истекает в';
-$lang['js']['willexpire'] = 'Ваша блокировка этой страницы на редактирование истекает в течении минуты.\nЧтобы предотвратить конфликты используйте кнопку "Просмотр" для сброса таймера блокировки.';
+$lang['js']['willexpire'] = 'Ваша блокировка этой страницы на редактирование истекает в течение минуты.\nЧтобы предотвратить конфликты используйте кнопку «Просмотр» для сброса таймера блокировки.';
$lang['js']['notsavedyet'] = 'Несохранённые изменения будут потеряны. Вы действительно хотите продолжить?';
$lang['js']['searchmedia'] = 'Поиск файлов';
$lang['js']['keepopen'] = 'Не закрывать окно после выбора';
@@ -141,8 +149,8 @@ $lang['js']['linkto'] = 'Ссылка на:';
$lang['js']['del_confirm'] = 'Вы на самом деле желаете удалить выбранное?';
$lang['js']['restore_confirm'] = 'Действительно восстановить эту версию?';
$lang['js']['media_diff'] = 'Просмотр отличий:';
-$lang['js']['media_diff_both'] = 'Рядом';
-$lang['js']['media_diff_opacity'] = 'Наложением';
+$lang['js']['media_diff_both'] = 'рядом';
+$lang['js']['media_diff_opacity'] = 'наложением';
$lang['js']['media_diff_portions'] = 'Частями';
$lang['js']['media_select'] = 'Выбрать файлы…';
$lang['js']['media_upload_btn'] = 'Загрузить';
@@ -162,9 +170,9 @@ $lang['uploadbadcontent'] = 'Содержание файла не соот
$lang['uploadspam'] = 'Загрузка заблокирована спам-фильтром.';
$lang['uploadxss'] = 'Загрузка заблокирована по соображениям безопасности.';
$lang['uploadsize'] = 'Загруженный файл был слишком большой. (макс. %s)';
-$lang['deletesucc'] = 'Файл "%s" был удалён.';
-$lang['deletefail'] = 'Невозможно удалить файл "%s". Проверьте права доступа к файлу.';
-$lang['mediainuse'] = 'Файл "%s" не был удалён — файл всё ещё используется.';
+$lang['deletesucc'] = 'Файл «%s» был удалён.';
+$lang['deletefail'] = 'Невозможно удалить файл «%s». Проверьте права доступа к файлу.';
+$lang['mediainuse'] = 'Файл «%s» не был удалён — файл всё ещё используется.';
$lang['namespaces'] = 'Пространства имён';
$lang['mediafiles'] = 'Доступные файлы';
$lang['accessdenied'] = 'Вы не можете просмотреть эту страницу.';
@@ -185,8 +193,8 @@ $lang['diff'] = 'показать отличия от теку
$lang['diff2'] = 'Показать различия между ревизиями ';
$lang['difflink'] = 'Ссылка на это сравнение';
$lang['diff_type'] = 'Посмотреть отличия';
-$lang['diff_inline'] = 'Встроенный';
-$lang['diff_side'] = 'Бок о бок';
+$lang['diff_inline'] = 'встроенный';
+$lang['diff_side'] = 'бок о бок';
$lang['line'] = 'Строка';
$lang['breadcrumb'] = 'Вы посетили';
$lang['youarehere'] = 'Вы находитесь здесь';
@@ -204,16 +212,16 @@ $lang['user_tools'] = 'Инструменты пользовател
$lang['site_tools'] = 'Инструменты сайта';
$lang['page_tools'] = 'Инструменты страницы';
$lang['skip_to_content'] = 'Перейти к содержанию';
-$lang['sidebar'] = 'Боковая колонна';
+$lang['sidebar'] = 'Боковая панель';
$lang['mail_newpage'] = 'страница добавлена:';
$lang['mail_changed'] = 'страница изменена:';
$lang['mail_subscribe_list'] = 'изменились страницы в пространстве имён:';
$lang['mail_new_user'] = 'новый пользователь:';
$lang['mail_upload'] = 'файл закачан:';
$lang['changes_type'] = 'Посмотреть изменения';
-$lang['pages_changes'] = 'Страниц';
-$lang['media_changes'] = 'Медиа файлов';
-$lang['both_changes'] = 'И страниц и медиа файлов';
+$lang['pages_changes'] = 'страниц';
+$lang['media_changes'] = 'медиафайлов';
+$lang['both_changes'] = 'и страниц, и медиафайлов';
$lang['qb_bold'] = 'Полужирный';
$lang['qb_italic'] = 'Курсив';
$lang['qb_underl'] = 'Подчёркнутый';
@@ -234,7 +242,7 @@ $lang['qb_extlink'] = 'Внешняя ссылка';
$lang['qb_hr'] = 'Разделитель';
$lang['qb_ol'] = 'Элемент нумерованного списка';
$lang['qb_ul'] = 'Элемент ненумерованного списка';
-$lang['qb_media'] = 'Добавить изображения или другие файлы';
+$lang['qb_media'] = 'Добавить изображения или другие файлы (откроется в новом окне)';
$lang['qb_sig'] = 'Вставить подпись';
$lang['qb_smileys'] = 'Смайлики';
$lang['qb_chars'] = 'Специальные символы';
@@ -256,7 +264,7 @@ $lang['img_camera'] = 'Модель';
$lang['img_keywords'] = 'Ключевые слова';
$lang['img_width'] = 'Ширина';
$lang['img_height'] = 'Высота';
-$lang['img_manager'] = 'Просмотр в media manager';
+$lang['img_manager'] = 'Просмотр в «управлении медиафайлами»';
$lang['subscr_subscribe_success'] = 'Добавлен %s в подписку на %s';
$lang['subscr_subscribe_error'] = 'Невозможно добавить %s в подписку на %s';
$lang['subscr_subscribe_noaddress'] = 'Нет адреса электронной почты, сопоставленного с вашей учётной записью. Вы не можете подписаться на рассылку';
@@ -271,9 +279,8 @@ $lang['subscr_m_unsubscribe'] = 'Отменить подписку';
$lang['subscr_m_subscribe'] = 'Подписаться';
$lang['subscr_m_receive'] = 'Получить';
$lang['subscr_style_every'] = 'уведомлять о каждом изменении';
-$lang['subscr_style_digest'] = 'информационное электронное письмо со списком изменений для каждоый страницы (каждые %.2f дней)';
+$lang['subscr_style_digest'] = 'информационное электронное письмо со списком изменений для каждой страницы (каждые %.2f дней)';
$lang['subscr_style_list'] = 'список изменённых страниц со времени последнего отправленного электронного письма (каждые %.2f дней)';
-$lang['authmodfailed'] = 'Неправильная конфигурация аутентификации пользователя. Пожалуйста, сообщите об этом своему администратору вики.';
$lang['authtempfail'] = 'Аутентификация пользователей временно недоступна. Если проблема продолжается какое-то время, пожалуйста, сообщите об этом своему администратору вики.';
$lang['authpwdexpire'] = 'Действие вашего пароля истекает через %d дней. Вы должны изменить его как можно скорее';
$lang['i_chooselang'] = 'Выберите свой язык/Choose your language';
@@ -302,8 +309,8 @@ $lang['i_pol2'] = 'Закрытая вики (чтение, за
$lang['i_retry'] = 'Повторить попытку';
$lang['i_license'] = 'Пожалуйста, выберите тип лицензии для своей вики:';
$lang['i_license_none'] = 'Не отображать информацию о лицензионных операциях';
-$lang['i_pop_field'] = 'Пожалуйста, помогите нам улучшить DokuWiki:';
-$lang['i_pop_label'] = 'Отправлять раз в месяц анонимную пользовательскую информацию разработчикам DokuWiki';
+$lang['i_pop_field'] = 'Пожалуйста, помогите нам улучшить «ДокуВики»:';
+$lang['i_pop_label'] = 'Отправлять раз в месяц анонимную пользовательскую информацию разработчикам «ДокуВики»';
$lang['recent_global'] = 'Вы просматриваете изменения в пространстве имён <b>%s</b>. Вы можете также <a href="%s">просмотреть недавние изменения во всей вики</a>.';
$lang['years'] = '%d лет назад';
$lang['months'] = '%d месяц(ев) назад';
@@ -333,7 +340,7 @@ $lang['media_viewold'] = '%s в %s
$lang['media_edit'] = 'Правка %s';
$lang['media_history'] = 'История %s';
$lang['media_meta_edited'] = 'метаданные изменены';
-$lang['media_perm_read'] = 'Извините, у Вас недостаточно прав для чтения файлов.';
-$lang['media_perm_upload'] = 'Извините, у Вас недостаточно прав для загрузки файлов.';
+$lang['media_perm_read'] = 'Извините, у вас недостаточно прав для чтения файлов.';
+$lang['media_perm_upload'] = 'Извините, у вас недостаточно прав для загрузки файлов.';
$lang['media_update'] = 'Загрузить новую версию';
$lang['media_restore'] = 'Восстановить эту версию';
diff --git a/inc/lang/ru/mailtext.txt b/inc/lang/ru/mailtext.txt
index 53d3431a3..2b3f76bbd 100644
--- a/inc/lang/ru/mailtext.txt
+++ b/inc/lang/ru/mailtext.txt
@@ -1,13 +1,13 @@
В вашей вики была добавлена или изменена страница. Подробности:
-Дата : @DATE@
-Браузер : @BROWSER@
-IP-адрес : @IPADDRESS@
-Хост : @HOSTNAME@
-Старая версия : @OLDPAGE@
-Новая версия : @NEWPAGE@
-Сводка изменений : @SUMMARY@
-Пользователь : @USER@
+Дата: @DATE@
+Браузер: @BROWSER@
+IP-адрес: @IPADDRESS@
+Хост: @HOSTNAME@
+Старая версия: @OLDPAGE@
+Новая версия: @NEWPAGE@
+Сводка изменений: @SUMMARY@
+Пользователь: @USER@
@DIFF@
diff --git a/inc/lang/ru/password.txt b/inc/lang/ru/password.txt
index 91117ca56..eb100f334 100644
--- a/inc/lang/ru/password.txt
+++ b/inc/lang/ru/password.txt
@@ -3,7 +3,6 @@
Ваши данные для @TITLE@ (@DOKUWIKIURL@)
Имя пользователя: @LOGIN@
-
Пароль: @PASSWORD@
--
diff --git a/inc/lang/ru/registermail.txt b/inc/lang/ru/registermail.txt
index 77094e8d8..fc862b034 100644
--- a/inc/lang/ru/registermail.txt
+++ b/inc/lang/ru/registermail.txt
@@ -1,13 +1,13 @@
Был зарегистрирован новый пользователь. Подробности:
-Логин : @NEWUSER@
-Полное имя : @NEWNAME@
-Эл. адрес : @NEWEMAIL@
+Логин: @NEWUSER@
+Полное имя: @NEWNAME@
+Эл. адрес: @NEWEMAIL@
-Дата : @DATE@
-Браузер : @BROWSER@
-Адрес IP : @IPADDRESS@
-Хост : @HOSTNAME@
+Дата: @DATE@
+Браузер: @BROWSER@
+Адрес IP: @IPADDRESS@
+Хост: @HOSTNAME@
--
Это сообщение было сгенерировано «ДокуВики» по адресу
diff --git a/inc/lang/ru/subscr_single.txt b/inc/lang/ru/subscr_single.txt
index 0e67d8f59..911a48e96 100644
--- a/inc/lang/ru/subscr_single.txt
+++ b/inc/lang/ru/subscr_single.txt
@@ -1,6 +1,5 @@
Привет.
-
Страница @PAGE@ в вики @TITLE@ изменилась.
Список изменений:
diff --git a/inc/lang/ru/uploadmail.txt b/inc/lang/ru/uploadmail.txt
index 77f79231e..f696f2c44 100644
--- a/inc/lang/ru/uploadmail.txt
+++ b/inc/lang/ru/uploadmail.txt
@@ -1,14 +1,14 @@
В вашу вики был закачан файл. Подробная информация:
-Файл : @MEDIA@
+Файл: @MEDIA@
Старая версия: @OLD@
-Дата : @DATE@
-Браузер : @BROWSER@
-Адрес IP : @IPADDRESS@
-Хост : @HOSTNAME@
-Размер : @SIZE@
-Тип MIME : @MIME@
-Пользователь : @USER@
+Дата: @DATE@
+Браузер: @BROWSER@
+Адрес IP: @IPADDRESS@
+Хост: @HOSTNAME@
+Размер: @SIZE@
+Тип MIME: @MIME@
+Пользователь: @USER@
--
Это письмо было сгенерировано «ДокуВики» по адресу
diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php
index 5bda5fdaf..e8c1151d5 100644
--- a/inc/lang/sk/lang.php
+++ b/inc/lang/sk/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Slovak language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ondrej Vegh <ov@vsieti.sk> with help of the scholars from Zdruzena stredna skola polygraficka in Bratislava
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
@@ -50,6 +50,7 @@ $lang['btn_revert'] = 'Obnoviť';
$lang['btn_register'] = 'Registrovať';
$lang['btn_apply'] = 'Použiť';
$lang['btn_media'] = 'Správa médií';
+$lang['btn_deleteuser'] = 'Zrušiť môj účet';
$lang['loggedinas'] = 'Prihlásený(á) ako';
$lang['user'] = 'Užívateľské meno';
$lang['pass'] = 'Heslo';
@@ -61,6 +62,7 @@ $lang['fullname'] = 'Celé meno';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Užívateľský profil';
$lang['badlogin'] = 'Zadané užívateľské meno a heslo nie je správne.';
+$lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.';
$lang['minoredit'] = 'Menšie zmeny';
$lang['draftdate'] = 'Koncept automaticky uložený';
$lang['nosecedit'] = 'Stránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.';
@@ -77,6 +79,11 @@ $lang['profna'] = 'Táto wiki nepodporuje zmenu profilu';
$lang['profnochange'] = 'Žiadne zmeny, nie je čo robiť.';
$lang['profnoempty'] = 'Prázdne meno alebo mailová adresa nie sú povolené.';
$lang['profchanged'] = 'Užívateľský účet úspešne zmenený.';
+$lang['profnodelete'] = 'Táto wiki neumožňuje zrušenie používateľov.';
+$lang['profdeleteuser'] = 'Zrušiť účet';
+$lang['profdeleted'] = 'Váš účet bol zrušený v tejto wiki.';
+$lang['profconfdelete'] = 'Chcem odstrániť môj účet z tejto wiki. <br/> Táto operácia je nevratná.';
+$lang['profconfdeletemissing'] = 'Nebolo zavolené potvrdzovacie políčko';
$lang['pwdforget'] = 'Zabudli ste heslo? Získajte nové!';
$lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.';
$lang['resendpwd'] = 'Nastaviť nové heslo pre';
@@ -261,7 +268,6 @@ $lang['subscr_m_receive'] = 'Dostávať';
$lang['subscr_style_every'] = 'email pri každej zmene';
$lang['subscr_style_digest'] = 'email so zhrnutím zmien pre každú stránku (perióda %.2f dňa)';
$lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)';
-$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu systému.';
$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.';
$lang['authpwdexpire'] = 'Platnosť hesla vyprší za %d dní, mali by ste ho zmeniť čo najskôr.';
$lang['i_chooselang'] = 'Zvoľte váš jazyk';
@@ -286,6 +292,9 @@ $lang['i_pol1'] = 'Verejná Wiki (čítanie pre každého, zápis
$lang['i_pol2'] = 'Uzatvorená Wiki (čítanie, zápis a nahrávanie len pre registrovaných užívateľov)';
$lang['i_retry'] = 'Skúsiť znovu';
$lang['i_license'] = 'Vyberte licenciu, pod ktorou chcete uložiť váš obsah:';
+$lang['i_license_none'] = 'Nezobrazovať žiadne licenčné informácie';
+$lang['i_pop_field'] = 'Prosím pomôžte nám zlepšiť prácu s DokuWiki:';
+$lang['i_pop_label'] = 'Raz mesačne zaslať anonymné údaje vývojárom DokuWiki';
$lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore <b>%s</b>. Môžete si tiež pozrieť <a href="%s">aktuálne zmeny celej wiki</a>.';
$lang['years'] = 'pred %d rokmi';
$lang['months'] = 'pred %d mesiacmi';
diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php
index 5c4316b01..2f69163f5 100644
--- a/inc/lang/sl/lang.php
+++ b/inc/lang/sl/lang.php
@@ -1,13 +1,14 @@
<?php
+
/**
- * Slovenian language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Jaka Kranjc <lynxlupodian@hotmail.com>
* @author Boštjan Seničar <senicar@gmail.com>
* @author Dejan Levec <webphp@gmail.com>
* @author Gregor Skumavc (grega.skumavc@gmail.com)
* @author Matej Urbančič (mateju@svn.gnome.org)
+ * @author Matej Urbančič <mateju@svn.gnome.org>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -43,6 +44,7 @@ $lang['btn_backtomedia'] = 'Nazaj na izbiro predstavnih datotek';
$lang['btn_subscribe'] = 'Urejanje naročnin';
$lang['btn_profile'] = 'Posodobi profil';
$lang['btn_reset'] = 'Ponastavi';
+$lang['btn_resendpwd'] = 'Nastavi novo geslo';
$lang['btn_draft'] = 'Uredi osnutek';
$lang['btn_recover'] = 'Obnovi osnutek';
$lang['btn_draftdel'] = 'Izbriši osnutek';
@@ -50,6 +52,7 @@ $lang['btn_revert'] = 'Povrni';
$lang['btn_register'] = 'Prijava';
$lang['btn_apply'] = 'Uveljavi';
$lang['btn_media'] = 'Urejevalnik predstavnih vsebin';
+$lang['btn_deleteuser'] = 'Odstrani račun';
$lang['loggedinas'] = 'Prijava kot';
$lang['user'] = 'Uporabniško ime';
$lang['pass'] = 'Geslo';
@@ -61,6 +64,7 @@ $lang['fullname'] = 'Pravo ime';
$lang['email'] = 'Elektronski naslov';
$lang['profile'] = 'Uporabniški profil';
$lang['badlogin'] = 'Uporabniško ime ali geslo je napačno.';
+$lang['badpassconfirm'] = 'Napaka! Geslo ni pravo.';
$lang['minoredit'] = 'Manjše spremembe';
$lang['draftdate'] = 'Samodejno shranjevanje osnutka je omogočeno';
$lang['nosecedit'] = 'Stran je bila v vmesnem času spremenjena. Podatki strani so bili zastareli, zato se je celotna vsebina naložila znova.';
@@ -77,8 +81,12 @@ $lang['profna'] = 'DokuWiki ne podpira spreminjanja profila.';
$lang['profnochange'] = 'Brez sprememb.';
$lang['profnoempty'] = 'Prazno polje elektronskega naslova ali imena ni dovoljeno.';
$lang['profchanged'] = 'Uporabniški profil je uspešno posodobljen.';
+$lang['profnodelete'] = 'Ni omogočena podpora za brisanje uporabnikov.';
+$lang['profdeleteuser'] = 'Izbriši račun';
+$lang['profdeleted'] = 'Uporabniški račun je izbrisan.';
$lang['pwdforget'] = 'Ali ste pozabili geslo? Pridobite si novo geslo.';
$lang['resendna'] = 'DokuWiki ne podpira možnosti ponovnega pošiljanja gesel.';
+$lang['resendpwd'] = 'Nastavi novo geslo za';
$lang['resendpwdmissing'] = 'Izpolniti je treba vsa polja.';
$lang['resendpwdnouser'] = 'Podanega uporabniškega imena v podatkovni zbirki ni mogoče najti.';
$lang['resendpwdbadauth'] = 'Koda za overitev ni prava. Prepričajte se, da ste uporabili celotno povezavo za potrditev.';
@@ -255,7 +263,6 @@ $lang['subscr_m_receive'] = 'Prejmi';
$lang['subscr_style_every'] = 'elektronsko sporočilo ob vsaki spremembi';
$lang['subscr_style_digest'] = 'strnjeno elektronsko sporočilo sprememb za vsako stran (vsakih %.2f dni)';
$lang['subscr_style_list'] = 'seznam spremenjenih strani od zadnjega elektronskega sporočila (vsakih %.2f dni)';
-$lang['authmodfailed'] = 'Slaba nastavitev overitve uporabniškega računa. Stopite v stik s skrbnikom sistema wiki.';
$lang['authtempfail'] = 'Potrditev uporabnika je trenutno nedostopna. Stopite v stik s skrbnikom sistema wiki.';
$lang['i_chooselang'] = 'Izberite jezik';
$lang['i_installer'] = 'DokuWiki namestitev';
@@ -279,6 +286,7 @@ $lang['i_pol1'] = 'Javni Wiki (branje za vse, zapis in nalaganje
$lang['i_pol2'] = 'Zaprt Wiki (berejo in urejajo lahko le prijavljeni uporabniki)';
$lang['i_retry'] = 'Ponovni poskus';
$lang['i_license'] = 'Izbor dovoljenja objave vsebine:';
+$lang['i_license_none'] = 'Ne pokaži podrobnosti dovoljenja.';
$lang['recent_global'] = 'Trenutno so prikazane spremembe znotraj imenskega prostora <b>%s</b>. Mogoče si je ogledati tudi spremembe <a href="%s">celotnega sistema Wiki</a>.';
$lang['years'] = '%d let nazaj';
$lang['months'] = '%d mesecev nazaj';
diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php
index 36ed436c8..2ed62ed4e 100644
--- a/inc/lang/sq/lang.php
+++ b/inc/lang/sq/lang.php
@@ -204,7 +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['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';
$lang['i_installer'] = 'Installer-i DokuWiki';
diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php
index 7fbdf1985..7c434cbc9 100644
--- a/inc/lang/sr/lang.php
+++ b/inc/lang/sr/lang.php
@@ -228,7 +228,6 @@ $lang['subscr_m_receive'] = 'Прими';
$lang['subscr_style_every'] = 'имејл о свакој промени';
$lang['subscr_style_digest'] = 'скраћени имејл о променама за сваку страницу (сваких %.2f дана)';
$lang['subscr_style_list'] = 'Списак страница промењених након последњег имејла (сваких %.2f дана)';
-$lang['authmodfailed'] = 'Лоше подешена провера корисника. Молим Вас да обавестите администратора викија.';
$lang['authtempfail'] = 'Провера корисника је тренутно недоступна. Ако се ситуација настави, молимо Вас да обавестите администратора викија.';
$lang['i_chooselang'] = 'Одаберите језик';
$lang['i_installer'] = 'Докувики инсталација';
diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php
index b00c61054..7d85f543e 100644
--- a/inc/lang/sv/lang.php
+++ b/inc/lang/sv/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Joaquim Homrighausen <joho@webbplatsen.se>
* @author Per Foreby <per@foreby.se>
* @author Nicklas Henriksson <nicklas[at]nihe.se>
@@ -18,6 +18,7 @@
* @author mikael@mallander.net
* @author Smorkster Andersson smorkster@gmail.com
* @author Henrik <henrik@idealis.se>
+ * @author Tor Härnqvist <tor.harnqvist@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -259,7 +260,7 @@ $lang['img_height'] = 'Höjd';
$lang['img_manager'] = 'Se mediahanteraren';
$lang['subscr_subscribe_success'] = 'La till %s till prenumerationslista %s';
$lang['subscr_subscribe_noaddress'] = 'Det finns ingen adress associerad med din inloggning, du kan inte bli tillagd i prenumerationslistan';
-$lang['subscr_unsubscribe_success'] = '% borttagen från prenumerationslistan för %';
+$lang['subscr_unsubscribe_success'] = '%s borttagen från prenumerationslistan för %s';
$lang['subscr_unsubscribe_error'] = 'Fel vid borttagning av %s från prenumerationslista %s';
$lang['subscr_already_subscribed'] = '%s prenumererar redan på %s';
$lang['subscr_not_subscribed'] = '%s prenumererar inte på %s';
@@ -271,7 +272,6 @@ $lang['subscr_m_subscribe'] = 'Prenumerera';
$lang['subscr_m_receive'] = 'Ta emot';
$lang['subscr_style_every'] = 'skicka epost vid varje ändring';
$lang['subscr_style_list'] = 'lista över ändrade sidor sedan senaste e-post (varje %.2f dag)';
-$lang['authmodfailed'] = 'Felaktiga inställningar för användarautentisering. Var vänlig meddela wikiadministratören.';
$lang['authtempfail'] = 'Tillfälligt fel på användarautentisering. Om felet kvarstår, var vänlig meddela wikiadministratören.';
$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.';
$lang['i_chooselang'] = 'Välj språk';
diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php
index e008e9e9f..5d364166b 100644
--- a/inc/lang/th/lang.php
+++ b/inc/lang/th/lang.php
@@ -45,7 +45,6 @@ $lang['btn_back'] = 'ย้อนกลับ';
$lang['btn_backlink'] = 'หน้าที่ลิงก์มา';
$lang['btn_backtomedia'] = 'กลับไปยังหน้าเลือกไฟล์สื่อ';
$lang['btn_subscribe'] = 'เฝ้าดู';
-$lang['btn_unsubscribe'] = 'เลิกเฝ้าดู';
$lang['btn_profile'] = 'แก้ข้อมูลผู้ใช้';
$lang['btn_reset'] = 'เริ่มใหม่';
$lang['btn_draft'] = 'แก้ไขเอกสารฉบับร่าง';
@@ -193,12 +192,6 @@ $lang['img_copyr'] = 'ผู้ถือลิขสิทธิ์'
$lang['img_format'] = 'รูปแบบ';
$lang['img_camera'] = 'กล้อง';
$lang['img_keywords'] = 'คำหลัก';
-$lang['subscribe_success'] = 'เพิ่ม %s เข้าไปในรายชื่อสมาชิกลงทะเบียนสำหรับ %s';
-$lang['subscribe_error'] = 'มีข้อผิดพลาดในการเพิ่ม %s ในรายชื่อสมัครสมาชิกสำหรับ %s';
-$lang['subscribe_noaddress'] = 'ไม่มีที่อยู่ที่ตรงกับชื่อล็อกอินของคุณ ชื่อคุณไม่สามารถถูกเพิ่มเข้าไปในรายชื่อสมัครสมาชิก';
-$lang['unsubscribe_success'] = 'ถอด % ออกจากรายชื่อสมัครสมาชิกของ %s';
-$lang['unsubscribe_error'] = 'มีข้อผิดพลาดในการถอด %s ออกจากรายชื่อสมาชิกของ %s';
-$lang['authmodfailed'] = 'มีการกำหนดค่าสิทธิ์ผู้ใช้ไว้ไม่ดี กรุณาแจ้งผู้ดูแลระบบวิกิของคุณ';
$lang['authtempfail'] = 'ระบบตรวจสอบสิทธิ์ผู้ใช้ไม่พร้อมใช้งานชั่วคราว หากสถานการณ์ยังไม่เปลี่ยนแปลง กรุณาแจ้งผู้ดูแลระบวิกิของคุณ';
$lang['i_chooselang'] = 'เลือกภาษาของคุณ';
$lang['i_installer'] = 'ตัวติดตั้งโดกุวิกิ';
diff --git a/inc/lang/tr/adminplugins.txt b/inc/lang/tr/adminplugins.txt
new file mode 100644
index 000000000..7c8de9d9f
--- /dev/null
+++ b/inc/lang/tr/adminplugins.txt
@@ -0,0 +1 @@
+===== İlave Eklentiler ===== \ No newline at end of file
diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php
index c6edf74c6..6b9e0dd44 100644
--- a/inc/lang/tr/lang.php
+++ b/inc/lang/tr/lang.php
@@ -1,14 +1,15 @@
<?php
+
/**
- * turkish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Selim Farsakoğlu <farsakogluselim@yahoo.de>
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
* @author Yavuz Selim <yavuzselim@gmail.com>
* @author Caleb Maclennan <caleb@alerque.com>
* @author farukerdemoncel@gmail.com
+ * @author Mustafa Aslan <maslan@hotmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,6 +53,7 @@ $lang['btn_revert'] = 'Geri Yükle';
$lang['btn_register'] = 'Kayıt ol';
$lang['btn_apply'] = 'Uygula';
$lang['btn_media'] = 'Çokluortam Yöneticisi';
+$lang['btn_deleteuser'] = 'Hesabımı Sil';
$lang['loggedinas'] = 'Giriş ismi';
$lang['user'] = 'Kullanıcı ismi';
$lang['pass'] = 'Parola';
@@ -63,6 +65,7 @@ $lang['fullname'] = 'Tam isim';
$lang['email'] = 'E-posta';
$lang['profile'] = 'Kullanıcı Bilgileri';
$lang['badlogin'] = 'Üzgünüz, Kullanıcı adı veya şifre yanlış oldu.';
+$lang['badpassconfirm'] = 'Üzgünüz, parolanız yanlış';
$lang['minoredit'] = 'Küçük Değişiklikler';
$lang['draftdate'] = 'Taslak şu saatte otomatik kaydedildi:';
$lang['nosecedit'] = 'Sayfa yakın zamanda değiştirilmiştir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiştir.';
@@ -79,6 +82,11 @@ $lang['profna'] = 'Bu wiki kullanıcı bilgilerini değiştirmeyi
$lang['profnochange'] = 'Değişiklik yok, birşey yapılmadı.';
$lang['profnoempty'] = 'Boş isim veya e-posta adresine izin verilmiyor.';
$lang['profchanged'] = 'Kullanıcı bilgileri başarıyla değiştirildi.';
+$lang['profnodelete'] = 'Bu wiki kullanıcı silmeyi desteklemiyor';
+$lang['profdeleteuser'] = 'Hesabı Sil';
+$lang['profdeleted'] = 'Bu wiki\'den hesabınız silindi';
+$lang['profconfdelete'] = 'Bu wiki\'den hesabımı silmek istiyorum. <br/>Bu işlem geri alınamaz';
+$lang['profconfdeletemissing'] = 'Onay kutusu işaretlenmedi';
$lang['pwdforget'] = 'Parolanızı mı unuttunuz? Yeni bir parola alın';
$lang['resendna'] = 'Bu wiki parolayı tekrar göndermeyi desteklememektedir.';
$lang['resendpwd'] = 'İçin yeni şifre belirle';
@@ -94,6 +102,7 @@ $lang['searchmedia_in'] = '%s içinde ara';
$lang['txt_upload'] = 'Yüklenecek dosyayı seç';
$lang['txt_filename'] = 'Dosya adı (zorunlu değil)';
$lang['txt_overwrt'] = 'Mevcut dosyanın üstüne yaz';
+$lang['maxuploadsize'] = 'Yükleme dosya başına en fazla %s';
$lang['lockedby'] = 'Şu an şunun tarafından kilitli:';
$lang['lockexpire'] = 'Kilitin açılma tarihi:';
$lang['js']['willexpire'] = 'Bu sayfayı değiştirme kilidinin süresi yaklaşık bir dakika içinde geçecek.\nÇakışmaları önlemek için önizleme tuşunu kullanarak kilit sayacını sıfırla.';
@@ -129,6 +138,7 @@ $lang['js']['linkto'] = 'Bağlantı:';
$lang['js']['del_confirm'] = 'Bu girişi sil?';
$lang['js']['restore_confirm'] = 'Bu sürüme geri dönmek istediğinizden emin misiniz?';
$lang['js']['media_diff'] = 'Farkları gör:';
+$lang['js']['media_diff_both'] = 'Yan yana';
$lang['js']['media_select'] = 'Dosyalar seç...';
$lang['js']['media_upload_btn'] = 'Yükle';
$lang['js']['media_done_btn'] = 'Bitti';
@@ -230,7 +240,6 @@ $lang['img_height'] = 'Yükseklik';
$lang['img_manager'] = 'Ortam oynatıcısında göster';
$lang['subscr_m_subscribe'] = 'Kayıt ol';
$lang['subscr_m_receive'] = 'Al';
-$lang['authmodfailed'] = 'Yanlış kullanıcı onaylama ayarı. Lütfen Wiki yöneticisine bildiriniz.';
$lang['authtempfail'] = 'Kullanıcı doğrulama geçici olarak yapılamıyor. Eğer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.';
$lang['authpwdexpire'] = 'Şifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda değiştirmelisiniz.';
$lang['i_chooselang'] = 'Dili seçiniz';
diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php
index 6aa468c50..4e91e82a2 100644
--- a/inc/lang/uk/lang.php
+++ b/inc/lang/uk/lang.php
@@ -1,14 +1,15 @@
<?php
+
/**
- * ukrainian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Oleksiy Voronin <ovoronin@gmail.com>
* @author serg_stetsuk@ukr.net
* @author Oleksandr Kunytsia <okunia@gmail.com>
* @author Uko <uko@uar.net>
* @author Ulrikhe Lukoie <lukoie@gmail.com>
* @author Kate Arzamastseva pshns@ukr.net
+ * @author Egor Smkv <egorsmkv@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -44,12 +45,14 @@ $lang['btn_backtomedia'] = 'Назад до вибору медіа-фай
$lang['btn_subscribe'] = 'Підписатися';
$lang['btn_profile'] = 'Оновити профіль';
$lang['btn_reset'] = 'Очистити';
+$lang['btn_resendpwd'] = 'Встановити новий пароль';
$lang['btn_draft'] = 'Редагувати чернетку';
$lang['btn_recover'] = 'Відновити чернетку';
$lang['btn_draftdel'] = 'Знищити чернетку';
$lang['btn_revert'] = 'Відновити';
$lang['btn_register'] = 'Реєстрація';
$lang['btn_apply'] = 'Застосувати';
+$lang['btn_deleteuser'] = 'Видалити мій аккаунт';
$lang['loggedinas'] = 'Ви';
$lang['user'] = 'Користувач';
$lang['pass'] = 'Пароль';
@@ -61,6 +64,7 @@ $lang['fullname'] = 'Повне ім\'я';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Профіль користувача';
$lang['badlogin'] = 'Вибачте, невірне ім\'я чи пароль.';
+$lang['badpassconfirm'] = 'Вибачте, але пароль невірний';
$lang['minoredit'] = 'Незначні зміни';
$lang['draftdate'] = 'Чернетка збережена';
$lang['nosecedit'] = 'Сторінку змінено, дані розділу застарілі. Завантажено сторінку повністю.';
@@ -77,8 +81,10 @@ $lang['profna'] = 'Ця Вікі не підтримує змін
$lang['profnochange'] = 'Немає змін, немає що робити.';
$lang['profnoempty'] = 'Ім’я або e-mail не можуть бути пустими.';
$lang['profchanged'] = 'Профіль успішно змінено.';
+$lang['profdeleteuser'] = 'Видалити аккаунт';
$lang['pwdforget'] = 'Забули пароль? Отримайте новий';
$lang['resendna'] = 'Ця Вікі не підтримує повторне відправлення пароля.';
+$lang['resendpwd'] = 'Встановити новий пароль для';
$lang['resendpwdmissing'] = 'Необхідно заповнити усі поля.';
$lang['resendpwdnouser'] = 'Такий користувач не існує.';
$lang['resendpwdbadauth'] = 'Код автентифікації невірний. Перевірте, чи ви використали повне посилання для підтвердження.';
@@ -125,6 +131,9 @@ $lang['js']['nosmblinks'] = 'Посилання на мережеві па
$lang['js']['linkwiz'] = 'Чарівник посилань';
$lang['js']['linkto'] = 'Посилання на:';
$lang['js']['del_confirm'] = 'Дійсно знищити обрані елементи?';
+$lang['js']['media_upload_btn'] = 'Завантажити';
+$lang['js']['media_done_btn'] = 'Успішно';
+$lang['js']['media_cancel'] = 'видалити';
$lang['rssfailed'] = 'Виникла помилка під час отримання RSS-стрічки: ';
$lang['nothingfound'] = 'Нічого не знайдено.';
$lang['mediaselect'] = 'Вибір медіа-файлу';
@@ -174,11 +183,17 @@ $lang['external_edit'] = 'зовнішнє редагування';
$lang['summary'] = 'Підсумок змін';
$lang['noflash'] = 'Для перегляду цієї сторінки необхідно встановити <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
$lang['download'] = 'Завантажити фрагмент';
+$lang['tools'] = 'Налаштування';
+$lang['user_tools'] = 'Користувальницькькі налаштування';
+$lang['site_tools'] = 'Налаштування сайту';
+$lang['page_tools'] = 'Налаштування сторінки';
+$lang['sidebar'] = 'Сайдбар';
$lang['mail_newpage'] = 'сторінку додано:';
$lang['mail_changed'] = 'сторінку змінено:';
$lang['mail_subscribe_list'] = 'сторінки, що змінено у просторі імен:';
$lang['mail_new_user'] = 'новий користувач:';
$lang['mail_upload'] = 'завантажено файл:';
+$lang['pages_changes'] = 'Сторінок';
$lang['qb_bold'] = 'Напівжирний текст';
$lang['qb_italic'] = 'Курсив';
$lang['qb_underl'] = 'Підкреслений текст';
@@ -235,7 +250,6 @@ $lang['subscr_m_receive'] = 'Отримувати';
$lang['subscr_style_every'] = 'повідомляти на пошту про кожну зміну';
$lang['subscr_style_digest'] = 'лист з дайджестом для зміни кожної сторінки (кожні %.2f днів)';
$lang['subscr_style_list'] = 'список змінених сторінок від часу отримання останнього листа (кожні %.2f днів)';
-$lang['authmodfailed'] = 'Неправильні налаштування автентифікації користувача. Будь ласка, повідомте про це адміністратора.';
$lang['authtempfail'] = 'Автентифікація користувача тимчасово не доступна. Якщо це буде продовжуватись, будь ласка, повідомте адміністратора.';
$lang['i_chooselang'] = 'Виберіть мову';
$lang['i_installer'] = 'Програма установки ДокуВікі';
diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php
index 0a3dbf51f..176121881 100644
--- a/inc/lang/zh-tw/lang.php
+++ b/inc/lang/zh-tw/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Traditional) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author chinsan <chinsan@mail2000.com.tw>
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
@@ -12,6 +12,7 @@
* @author Shuo-Ting Jian <shoting@gmail.com>
* @author syaoranhinata@gmail.com
* @author Ichirou Uchiki <syaoranhinata@gmail.com>
+ * @author tsangho <ou4222@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -55,6 +56,7 @@ $lang['btn_revert'] = '復原';
$lang['btn_register'] = '註冊';
$lang['btn_apply'] = '套用';
$lang['btn_media'] = '多媒體管理器';
+$lang['btn_deleteuser'] = '移除我的帳號';
$lang['loggedinas'] = '登入成';
$lang['user'] = '帳號';
$lang['pass'] = '密碼';
@@ -66,6 +68,7 @@ $lang['fullname'] = '姓名';
$lang['email'] = '電郵';
$lang['profile'] = '使用者個人資料';
$lang['badlogin'] = '很抱歉,您的使用者名稱或密碼可能有錯誤。';
+$lang['badpassconfirm'] = '抱歉,這密碼是錯的';
$lang['minoredit'] = '小修改';
$lang['draftdate'] = '草稿已自動存檔於';
$lang['nosecedit'] = '在您編輯期間,其他使用者修改過本頁面。區段資料已逾時,因此系統載入了全頁,以取代之。';
@@ -82,6 +85,9 @@ $lang['profna'] = '在本 wiki 上,不能修改個人資料。'
$lang['profnochange'] = '並未作任何變更。';
$lang['profnoempty'] = '帳號或電郵地址不可空白!';
$lang['profchanged'] = '個人資料已更新。';
+$lang['profnodelete'] = '這一wiki不支援刪除用戶';
+$lang['profdeleteuser'] = '刪除帳號';
+$lang['profdeleted'] = '您在這wiki中的用戶帳號已經被刪除';
$lang['pwdforget'] = '忘記密碼了?索取新密碼!';
$lang['resendna'] = '本 wiki 並不支援重寄密碼。';
$lang['resendpwd'] = '設定新密碼供';
@@ -265,7 +271,6 @@ $lang['subscr_m_receive'] = '接收';
$lang['subscr_style_every'] = '每次更改都發送信件';
$lang['subscr_style_digest'] = '對每個頁面發送更改的摘要信件 (每 %.2f 天)';
$lang['subscr_style_list'] = '自上次發信以來更改的頁面的列表 (每 %.2f 天)';
-$lang['authmodfailed'] = '帳號認證的設定不正確,請通知該本 wiki 管理員。';
$lang['authtempfail'] = '暫不提供帳號認證。若本狀況持續,請通知本 wiki 管理員。';
$lang['authpwdexpire'] = '您的密碼將在 %d 天內到期,請馬上更換新密碼。';
$lang['i_chooselang'] = '選擇您的語系';
@@ -302,7 +307,7 @@ $lang['weeks'] = '%d 週前';
$lang['days'] = '%d 天前';
$lang['hours'] = '%d 個小時前';
$lang['minutes'] = '%d 分鐘前';
-$lang['seconds'] = '%s 秒鐘前';
+$lang['seconds'] = '%d 秒鐘前';
$lang['wordblock'] = '無法儲存您的更改,因它含有受阻擋的文字 (垃圾訊息)。';
$lang['media_uploadtab'] = '上傳';
$lang['media_searchtab'] = '搜尋';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index f404010ba..a125e11e7 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Simplified) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton <guxd@163.com>
@@ -15,6 +15,9 @@
* @author caii, patent agent in China <zhoucaiqi@gmail.com>
* @author lainme993@gmail.com
* @author Shuo-Ting Jian <shoting@gmail.com>
+ * @author Rachel <rzhang0802@gmail.com>
+ * @author Donald <donaldtcong@gmail.com>
+ * @author Yangyu Huang <yangyu.huang@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -58,6 +61,7 @@ $lang['btn_revert'] = '恢复';
$lang['btn_register'] = '注册';
$lang['btn_apply'] = '应用';
$lang['btn_media'] = '媒体管理器';
+$lang['btn_deleteuser'] = '移除我的账户';
$lang['loggedinas'] = '登录为';
$lang['user'] = '用户名';
$lang['pass'] = '密码';
@@ -69,6 +73,7 @@ $lang['fullname'] = '全名';
$lang['email'] = 'E-Mail';
$lang['profile'] = '用户信息';
$lang['badlogin'] = '对不起,用户名或密码错误。';
+$lang['badpassconfirm'] = '对不起,密码错误';
$lang['minoredit'] = '细微修改';
$lang['draftdate'] = '草稿自动保存于';
$lang['nosecedit'] = '在您编辑期间本页刚被他人修改过,局部信息已过期,故载入全页。';
@@ -85,6 +90,11 @@ $lang['profna'] = '本维基不支持修改个人信息';
$lang['profnochange'] = '没有改动,不进行操作。';
$lang['profnoempty'] = '不允许使用空的用户名或邮件地址。';
$lang['profchanged'] = '用户信息更新成功。';
+$lang['profnodelete'] = '这个 wiki 不支持删除用户';
+$lang['profdeleteuser'] = '删除账号';
+$lang['profdeleted'] = '你的用户已经从这个 wiki 中删除';
+$lang['profconfdelete'] = '我希望删除我的账户。<br/>这项操作无法撤销。';
+$lang['profconfdeletemissing'] = '确认框未勾选';
$lang['pwdforget'] = '忘记密码?立即获取新密码';
$lang['resendna'] = '本维基不支持二次发送密码。';
$lang['resendpwd'] = '设置新密码用于';
@@ -269,7 +279,6 @@ $lang['subscr_m_receive'] = '接收';
$lang['subscr_style_every'] = '对每次更改发送邮件';
$lang['subscr_style_digest'] = '对每个页面发送更改的摘要邮件(每 %.2f 天)';
$lang['subscr_style_list'] = '自上封邮件以来更改的页面的列表(每 %.2f 天)';
-$lang['authmodfailed'] = '错误的用户认证设置。请通知维基管理员。';
$lang['authtempfail'] = '用户认证暂时无法使用。如果该状态一直存在,请通知维基管理员。';
$lang['authpwdexpire'] = '您的密码将在 %d 天内过期,请尽快更改';
$lang['i_chooselang'] = '选择您的语言';
diff --git a/inc/lessc.inc.php b/inc/lessc.inc.php
index 5c81ad2a9..0699de52f 100644
--- a/inc/lessc.inc.php
+++ b/inc/lessc.inc.php
@@ -1,7 +1,7 @@
<?php
/**
- * lessphp v0.3.9
+ * lessphp v0.4.0
* http://leafo.net/lessphp
*
* LESS css compiler, adapted from http://lesscss.org
@@ -38,7 +38,7 @@
* handling things like indentation.
*/
class lessc {
- static public $VERSION = "v0.3.9";
+ static public $VERSION = "v0.4.0";
static protected $TRUE = array("keyword", "true");
static protected $FALSE = array("keyword", "false");
@@ -55,6 +55,8 @@ class lessc {
protected $numberPrecision = null;
+ protected $allParsedFiles = array();
+
// set to the parser that generated the current line when compiling
// so we know how to create error messages
protected $sourceParser = null;
@@ -103,12 +105,17 @@ class lessc {
if (substr_compare($url, '.css', -4, 4) === 0) return false;
$realPath = $this->findImport($url);
+
if ($realPath === null) return false;
if ($this->importDisabled) {
return array(false, "/* import disabled */");
}
+ if (isset($this->allParsedFiles[realpath($realPath)])) {
+ return array(false, null);
+ }
+
$this->addParsedFile($realPath);
$parser = $this->makeParser($realPath);
$root = $parser->parse(file_get_contents($realPath));
@@ -276,6 +283,8 @@ class lessc {
foreach ($this->sortProps($block->props) as $prop) {
$this->compileProp($prop, $block, $out);
}
+
+ $out->lines = array_values(array_unique($out->lines));
}
protected function sortProps($props, $split = false) {
@@ -450,7 +459,7 @@ class lessc {
return $left == $right;
}
- protected function patternMatch($block, $callingArgs) {
+ protected function patternMatch($block, $orderedArgs, $keywordArgs) {
// match the guards if it has them
// any one of the groups must have all its guards pass for a match
if (!empty($block->guards)) {
@@ -458,7 +467,7 @@ class lessc {
foreach ($block->guards as $guardGroup) {
foreach ($guardGroup as $guard) {
$this->pushEnv();
- $this->zipSetArgs($block->args, $callingArgs);
+ $this->zipSetArgs($block->args, $orderedArgs, $keywordArgs);
$negate = false;
if ($guard[0] == "negate") {
@@ -487,24 +496,34 @@ class lessc {
}
}
- $numCalling = count($callingArgs);
-
if (empty($block->args)) {
- return $block->isVararg || $numCalling == 0;
+ return $block->isVararg || empty($orderedArgs) && empty($keywordArgs);
+ }
+
+ $remainingArgs = $block->args;
+ if ($keywordArgs) {
+ $remainingArgs = array();
+ foreach ($block->args as $arg) {
+ if ($arg[0] == "arg" && isset($keywordArgs[$arg[1]])) {
+ continue;
+ }
+
+ $remainingArgs[] = $arg;
+ }
}
$i = -1; // no args
// try to match by arity or by argument literal
- foreach ($block->args as $i => $arg) {
+ foreach ($remainingArgs as $i => $arg) {
switch ($arg[0]) {
case "lit":
- if (empty($callingArgs[$i]) || !$this->eq($arg[1], $callingArgs[$i])) {
+ if (empty($orderedArgs[$i]) || !$this->eq($arg[1], $orderedArgs[$i])) {
return false;
}
break;
case "arg":
// no arg and no default value
- if (!isset($callingArgs[$i]) && !isset($arg[2])) {
+ if (!isset($orderedArgs[$i]) && !isset($arg[2])) {
return false;
}
break;
@@ -519,14 +538,19 @@ class lessc {
} else {
$numMatched = $i + 1;
// greater than becuase default values always match
- return $numMatched >= $numCalling;
+ return $numMatched >= count($orderedArgs);
}
}
- protected function patternMatchAll($blocks, $callingArgs) {
+ protected function patternMatchAll($blocks, $orderedArgs, $keywordArgs, $skip=array()) {
$matches = null;
foreach ($blocks as $block) {
- if ($this->patternMatch($block, $callingArgs)) {
+ // skip seen blocks that don't have arguments
+ if (isset($skip[$block->id]) && !isset($block->args)) {
+ continue;
+ }
+
+ if ($this->patternMatch($block, $orderedArgs, $keywordArgs)) {
$matches[] = $block;
}
}
@@ -535,7 +559,7 @@ class lessc {
}
// attempt to find blocks matched by path and args
- protected function findBlocks($searchIn, $path, $args, $seen=array()) {
+ protected function findBlocks($searchIn, $path, $orderedArgs, $keywordArgs, $seen=array()) {
if ($searchIn == null) return null;
if (isset($seen[$searchIn->id])) return null;
$seen[$searchIn->id] = true;
@@ -545,7 +569,7 @@ class lessc {
if (isset($searchIn->children[$name])) {
$blocks = $searchIn->children[$name];
if (count($path) == 1) {
- $matches = $this->patternMatchAll($blocks, $args);
+ $matches = $this->patternMatchAll($blocks, $orderedArgs, $keywordArgs, $seen);
if (!empty($matches)) {
// This will return all blocks that match in the closest
// scope that has any matching block, like lessjs
@@ -555,7 +579,7 @@ class lessc {
$matches = array();
foreach ($blocks as $subBlock) {
$subMatches = $this->findBlocks($subBlock,
- array_slice($path, 1), $args, $seen);
+ array_slice($path, 1), $orderedArgs, $keywordArgs, $seen);
if (!is_null($subMatches)) {
foreach ($subMatches as $sm) {
@@ -567,39 +591,51 @@ class lessc {
return count($matches) > 0 ? $matches : null;
}
}
-
if ($searchIn->parent === $searchIn) return null;
- return $this->findBlocks($searchIn->parent, $path, $args, $seen);
+ return $this->findBlocks($searchIn->parent, $path, $orderedArgs, $keywordArgs, $seen);
}
// sets all argument names in $args to either the default value
// or the one passed in through $values
- protected function zipSetArgs($args, $values) {
- $i = 0;
+ protected function zipSetArgs($args, $orderedValues, $keywordValues) {
$assignedValues = array();
- foreach ($args as $a) {
+
+ $i = 0;
+ foreach ($args as $a) {
if ($a[0] == "arg") {
- if ($i < count($values) && !is_null($values[$i])) {
- $value = $values[$i];
+ if (isset($keywordValues[$a[1]])) {
+ // has keyword arg
+ $value = $keywordValues[$a[1]];
+ } elseif (isset($orderedValues[$i])) {
+ // has ordered arg
+ $value = $orderedValues[$i];
+ $i++;
} elseif (isset($a[2])) {
+ // has default value
$value = $a[2];
- } else $value = null;
+ } else {
+ $this->throwError("Failed to assign arg " . $a[1]);
+ $value = null; // :(
+ }
$value = $this->reduce($value);
$this->set($a[1], $value);
$assignedValues[] = $value;
+ } else {
+ // a lit
+ $i++;
}
- $i++;
}
// check for a rest
$last = end($args);
if ($last[0] == "rest") {
- $rest = array_slice($values, count($args) - 1);
+ $rest = array_slice($orderedValues, count($args) - 1);
$this->set($last[1], $this->reduce(array("list", " ", $rest)));
}
- $this->env->arguments = $assignedValues;
+ // wow is this the only true use of PHP's + operator for arrays?
+ $this->env->arguments = $assignedValues + $orderedValues;
}
// compile a prop and update $lines or $blocks appropriately
@@ -624,8 +660,28 @@ class lessc {
case 'mixin':
list(, $path, $args, $suffix) = $prop;
- $args = array_map(array($this, "reduce"), (array)$args);
- $mixins = $this->findBlocks($block, $path, $args);
+ $orderedArgs = array();
+ $keywordArgs = array();
+ foreach ((array)$args as $arg) {
+ $argval = null;
+ switch ($arg[0]) {
+ case "arg":
+ if (!isset($arg[2])) {
+ $orderedArgs[] = $this->reduce(array("variable", $arg[1]));
+ } else {
+ $keywordArgs[$arg[1]] = $this->reduce($arg[2]);
+ }
+ break;
+
+ case "lit":
+ $orderedArgs[] = $this->reduce($arg[1]);
+ break;
+ default:
+ $this->throwError("Unknown arg type: " . $arg[0]);
+ }
+ }
+
+ $mixins = $this->findBlocks($block, $path, $orderedArgs, $keywordArgs);
if ($mixins === null) {
// fwrite(STDERR,"failed to find block: ".implode(" > ", $path)."\n");
@@ -633,7 +689,7 @@ class lessc {
}
foreach ($mixins as $mixin) {
- if ($mixin === $block && !$args) {
+ if ($mixin === $block && !$orderedArgs) {
continue;
}
@@ -648,7 +704,7 @@ class lessc {
if (isset($mixin->args)) {
$haveArgs = true;
$this->pushEnv();
- $this->zipSetArgs($mixin->args, $args);
+ $this->zipSetArgs($mixin->args, $orderedArgs, $keywordArgs);
}
$oldParent = $mixin->parent;
@@ -705,7 +761,9 @@ class lessc {
list(,$importId) = $prop;
$import = $this->env->imports[$importId];
if ($import[0] === false) {
- $out->lines[] = $import[1];
+ if (isset($import[1])) {
+ $out->lines[] = $import[1];
+ }
} else {
list(, $bottom, $parser, $importDir) = $import;
$this->compileImportedProps($bottom, $block, $out, $parser, $importDir);
@@ -793,6 +851,60 @@ class lessc {
}
}
+ protected function lib_pow($args) {
+ list($base, $exp) = $this->assertArgs($args, 2, "pow");
+ return pow($this->assertNumber($base), $this->assertNumber($exp));
+ }
+
+ protected function lib_pi() {
+ return pi();
+ }
+
+ protected function lib_mod($args) {
+ list($a, $b) = $this->assertArgs($args, 2, "mod");
+ return $this->assertNumber($a) % $this->assertNumber($b);
+ }
+
+ protected function lib_tan($num) {
+ return tan($this->assertNumber($num));
+ }
+
+ protected function lib_sin($num) {
+ return sin($this->assertNumber($num));
+ }
+
+ protected function lib_cos($num) {
+ return cos($this->assertNumber($num));
+ }
+
+ protected function lib_atan($num) {
+ $num = atan($this->assertNumber($num));
+ return array("number", $num, "rad");
+ }
+
+ protected function lib_asin($num) {
+ $num = asin($this->assertNumber($num));
+ return array("number", $num, "rad");
+ }
+
+ protected function lib_acos($num) {
+ $num = acos($this->assertNumber($num));
+ return array("number", $num, "rad");
+ }
+
+ protected function lib_sqrt($num) {
+ return sqrt($this->assertNumber($num));
+ }
+
+ protected function lib_extract($value) {
+ list($list, $idx) = $this->assertArgs($value, 2, "extract");
+ $idx = $this->assertNumber($idx);
+ // 1 indexed
+ if ($list[0] == "list" && isset($list[2][$idx - 1])) {
+ return $list[2][$idx - 1];
+ }
+ }
+
protected function lib_isnumber($value) {
return $this->toBool($value[0] == "number");
}
@@ -1085,6 +1197,25 @@ class lessc {
$this->throwError($error);
}
+ protected function assertArgs($value, $expectedArgs, $name="") {
+ if ($expectedArgs == 1) {
+ return $value;
+ } else {
+ if ($value[0] !== "list" || $value[1] != ",") $this->throwError("expecting list");
+ $values = $value[2];
+ $numValues = count($values);
+ if ($expectedArgs != $numValues) {
+ if ($name) {
+ $name = $name . ": ";
+ }
+
+ $this->throwError("${name}expecting $expectedArgs arguments, got $numValues");
+ }
+
+ return $values;
+ }
+ }
+
protected function toHSL($color) {
if ($color[0] == 'hsl') return $color;
@@ -1229,6 +1360,10 @@ class lessc {
$var = $this->compileValue($reduced);
$res = $this->reduce(array("variable", $this->vPrefix . $var));
+ if ($res[0] == "raw_color") {
+ $res = $this->coerceColor($res);
+ }
+
if (empty($value[2])) $res = $this->lib_e($res);
return $res;
@@ -1690,7 +1825,6 @@ class lessc {
$this->importDir = (array)$this->importDir;
$this->importDir[] = $pi['dirname'].'/';
- $this->allParsedFiles = array();
$this->addParsedFile($fname);
$out = $this->compile(file_get_contents($fname), $fname);
@@ -2313,7 +2447,7 @@ class lessc_parser {
// mixin
if ($this->mixinTags($tags) &&
- ($this->argumentValues($argv) || true) &&
+ ($this->argumentDef($argv, $isVararg) || true) &&
($this->keyword($suffix) || true) && $this->end())
{
$tags = $this->fixTags($tags);
@@ -2781,38 +2915,18 @@ class lessc_parser {
return false;
}
- // consume a list of property values delimited by ; and wrapped in ()
- protected function argumentValues(&$args, $delim = ',') {
- $s = $this->seek();
- if (!$this->literal('(')) return false;
-
- $values = array();
- while (true) {
- if ($this->expressionList($value)) $values[] = $value;
- if (!$this->literal($delim)) break;
- else {
- if ($value == null) $values[] = null;
- $value = null;
- }
- }
-
- if (!$this->literal(')')) {
- $this->seek($s);
- return false;
- }
-
- $args = $values;
- return true;
- }
-
// consume an argument definition list surrounded by ()
// each argument is a variable name with optional value
// or at the end a ... or a variable named followed by ...
- protected function argumentDef(&$args, &$isVararg, $delim = ',') {
+ // arguments are separated by , unless a ; is in the list, then ; is the
+ // delimiter.
+ protected function argumentDef(&$args, &$isVararg) {
$s = $this->seek();
if (!$this->literal('(')) return false;
$values = array();
+ $delim = ",";
+ $method = "expressionList";
$isVararg = false;
while (true) {
@@ -2821,28 +2935,77 @@ class lessc_parser {
break;
}
- if ($this->variable($vname)) {
- $arg = array("arg", $vname);
- $ss = $this->seek();
- if ($this->assign() && $this->expressionList($value)) {
- $arg[] = $value;
- } else {
- $this->seek($ss);
- if ($this->literal("...")) {
- $arg[0] = "rest";
- $isVararg = true;
+ if ($this->$method($value)) {
+ if ($value[0] == "variable") {
+ $arg = array("arg", $value[1]);
+ $ss = $this->seek();
+
+ if ($this->assign() && $this->$method($rhs)) {
+ $arg[] = $rhs;
+ } else {
+ $this->seek($ss);
+ if ($this->literal("...")) {
+ $arg[0] = "rest";
+ $isVararg = true;
+ }
}
+
+ $values[] = $arg;
+ if ($isVararg) break;
+ continue;
+ } else {
+ $values[] = array("lit", $value);
}
- $values[] = $arg;
- if ($isVararg) break;
- continue;
}
- if ($this->value($literal)) {
- $values[] = array("lit", $literal);
- }
- if (!$this->literal($delim)) break;
+ if (!$this->literal($delim)) {
+ if ($delim == "," && $this->literal(";")) {
+ // found new delim, convert existing args
+ $delim = ";";
+ $method = "propertyValue";
+
+ // transform arg list
+ if (isset($values[1])) { // 2 items
+ $newList = array();
+ foreach ($values as $i => $arg) {
+ switch($arg[0]) {
+ case "arg":
+ if ($i) {
+ $this->throwError("Cannot mix ; and , as delimiter types");
+ }
+ $newList[] = $arg[2];
+ break;
+ case "lit":
+ $newList[] = $arg[1];
+ break;
+ case "rest":
+ $this->throwError("Unexpected rest before semicolon");
+ }
+ }
+
+ $newList = array("list", ", ", $newList);
+
+ switch ($values[0][0]) {
+ case "arg":
+ $newArg = array("arg", $values[0][1], $newList);
+ break;
+ case "lit":
+ $newArg = array("lit", $newList);
+ break;
+ }
+
+ } elseif ($values) { // 1 item
+ $newArg = $values[0];
+ }
+
+ if ($newArg) {
+ $values = array($newArg);
+ }
+ } else {
+ break;
+ }
+ }
}
if (!$this->literal(')')) {
@@ -2884,32 +3047,69 @@ class lessc_parser {
}
// a bracketed value (contained within in a tag definition)
- protected function tagBracket(&$value) {
+ protected function tagBracket(&$parts, &$hasExpression) {
// speed shortcut
if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "[") {
return false;
}
$s = $this->seek();
- if ($this->literal('[') && $this->to(']', $c, true) && $this->literal(']', false)) {
- $value = '['.$c.']';
- // whitespace?
- if ($this->whitespace()) $value .= " ";
- // escape parent selector, (yuck)
- $value = str_replace($this->lessc->parentSelector, "$&$", $value);
- return true;
- }
+ $hasInterpolation = false;
- $this->seek($s);
- return false;
- }
+ if ($this->literal("[", false)) {
+ $attrParts = array("[");
+ // keyword, string, operator
+ while (true) {
+ if ($this->literal("]", false)) {
+ $this->count--;
+ break; // get out early
+ }
- protected function tagExpression(&$value) {
- $s = $this->seek();
- if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) {
- $value = array('exp', $exp);
- return true;
+ if ($this->match('\s+', $m)) {
+ $attrParts[] = " ";
+ continue;
+ }
+ if ($this->string($str)) {
+ // escape parent selector, (yuck)
+ foreach ($str[2] as &$chunk) {
+ $chunk = str_replace($this->lessc->parentSelector, "$&$", $chunk);
+ }
+
+ $attrParts[] = $str;
+ $hasInterpolation = true;
+ continue;
+ }
+
+ if ($this->keyword($word)) {
+ $attrParts[] = $word;
+ continue;
+ }
+
+ if ($this->interpolation($inter, false)) {
+ $attrParts[] = $inter;
+ $hasInterpolation = true;
+ continue;
+ }
+
+ // operator, handles attr namespace too
+ if ($this->match('[|-~\$\*\^=]+', $m)) {
+ $attrParts[] = $m[0];
+ continue;
+ }
+
+ break;
+ }
+
+ if ($this->literal("]", false)) {
+ $attrParts[] = "]";
+ foreach ($attrParts as $part) {
+ $parts[] = $part;
+ }
+ $hasExpression = $hasExpression || $hasInterpolation;
+ return true;
+ }
+ $this->seek($s);
}
$this->seek($s);
@@ -2925,13 +3125,9 @@ class lessc_parser {
$s = $this->seek();
- if (!$simple && $this->tagExpression($tag)) {
- return true;
- }
-
$hasExpression = false;
$parts = array();
- while ($this->tagBracket($first)) $parts[] = $first;
+ while ($this->tagBracket($parts, $hasExpression));
$oldWhite = $this->eatWhiteDefault;
$this->eatWhiteDefault = false;
@@ -2941,9 +3137,7 @@ class lessc_parser {
$parts[] = $m[1];
if ($simple) break;
- while ($this->tagBracket($brack)) {
- $parts[] = $brack;
- }
+ while ($this->tagBracket($parts, $hasExpression));
continue;
}
@@ -3334,7 +3528,7 @@ class lessc_parser {
break;
case '"':
case "'":
- if (preg_match('/'.$min[0].'.*?'.$min[0].'/', $text, $m, 0, $count))
+ if (preg_match('/'.$min[0].'.*?(?<!\\\\)'.$min[0].'/', $text, $m, 0, $count))
$count += strlen($m[0]) - 1;
break;
case '//':
diff --git a/inc/load.php b/inc/load.php
index 923671296..c5b40ffd8 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -35,6 +35,7 @@ require_once(DOKU_INC.'inc/template.php');
require_once(DOKU_INC.'inc/toolbar.php');
require_once(DOKU_INC.'inc/utf8.php');
require_once(DOKU_INC.'inc/auth.php');
+require_once(DOKU_INC.'inc/compatibility.php');
/**
* spl_autoload_register callback
diff --git a/inc/mail.php b/inc/mail.php
index d0ea651bf..0b60c0a5b 100644
--- a/inc/mail.php
+++ b/inc/mail.php
@@ -284,10 +284,9 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true)
// for EBCDIC safeness encode !"#$@[\]^`{|}~,
// for complete safeness encode every character :)
if ($bEmulate_imap_8bit)
- $sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/e';
+ $sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/';
- $sReplmt = 'sprintf( "=%02X", ord ( "$0" ) ) ;';
- $sLine = preg_replace( $sRegExp, $sReplmt, $sLine );
+ $sLine = preg_replace_callback( $sRegExp, 'mail_quotedprintable_encode_callback', $sLine );
// encode x09,x20 at lineends
{
@@ -330,3 +329,6 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true)
return implode(MAILHEADER_EOL,$aLines);
}
+function mail_quotedprintable_encode_callback($matches){
+ return sprintf( "=%02X", ord ( $matches[0] ) ) ;
+}
diff --git a/inc/media.php b/inc/media.php
index ee5c0c1eb..d45b2a91d 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -586,7 +586,10 @@ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=fals
// FIXME: print permission warning here instead?
echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
}else{
- if (!$fullscreenview) media_uploadform($ns, $auth);
+ if (!$fullscreenview) {
+ media_uploadform($ns, $auth);
+ media_searchform($ns);
+ }
$dir = utf8_encodeFN(str_replace(':','/',$ns));
$data = array();
@@ -609,7 +612,6 @@ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=fals
if ($fullscreenview) echo '</ul>'.NL;
}
}
- if (!$fullscreenview) media_searchform($ns);
}
/**
@@ -1294,7 +1296,7 @@ function media_restore($image, $rev, $auth){
* @author Kate Arzamastseva <pshns@ukr.net>
* @triggers MEDIA_SEARCH
*/
-function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort=''){
+function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort='natural'){
global $conf;
global $lang;
@@ -1314,15 +1316,10 @@ function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort=''){
$conf['mediadir'],
'search_media',
array('showmsg'=>false,'pattern'=>$pattern),
- $dir);
+ $dir,
+ 1,
+ $sort);
}
-
- $data = array();
- foreach ($evdata['data'] as $k => $v) {
- $data[$k] = ($sort == 'date') ? $v['mtime'] : $v['id'];
- }
- array_multisort($data, SORT_DESC, SORT_NUMERIC, $evdata['data']);
-
$evt->advise_after();
unset($evt);
}
diff --git a/inc/pageutils.php b/inc/pageutils.php
index 5043d2263..60f326e04 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -366,7 +366,7 @@ function mediaFN($id, $rev=''){
*/
function localeFN($id,$ext='txt'){
global $conf;
- $file = DOKU_CONF.'/lang/'.$conf['lang'].'/'.$id.'.'.$ext;
+ $file = DOKU_CONF.'lang/'.$conf['lang'].'/'.$id.'.'.$ext;
if(!@file_exists($file)){
$file = DOKU_INC.'inc/lang/'.$conf['lang'].'/'.$id.'.'.$ext;
if(!@file_exists($file)){
@@ -396,7 +396,7 @@ function resolve_id($ns,$id,$clean=true){
// if the id starts with a dot we need to handle the
// relative stuff
- if($id{0} == '.'){
+ if($id && $id{0} == '.'){
// normalize initial dots without a colon
$id = preg_replace('/^(\.+)(?=[^:\.])/','\1:',$id);
// prepend the current namespace
diff --git a/inc/parser/code.php b/inc/parser/code.php
index 6e159b041..0b8e3ee02 100644
--- a/inc/parser/code.php
+++ b/inc/parser/code.php
@@ -15,7 +15,7 @@ class Doku_Renderer_code extends Doku_Renderer {
*
* When the correct block was found it exits the script.
*/
- function code($text, $language = NULL, $filename='' ) {
+ function code($text, $language = null, $filename='' ) {
global $INPUT;
if(!$language) $language = 'txt';
if(!$filename) $filename = 'snippet.'.$language;
@@ -36,7 +36,7 @@ class Doku_Renderer_code extends Doku_Renderer {
/**
* Wraps around code()
*/
- function file($text, $language = NULL, $filename='') {
+ function file($text, $language = null, $filename='') {
$this->code($text, $language, $filename);
}
diff --git a/inc/parser/handler.php b/inc/parser/handler.php
index 1cf32aaed..8ae991209 100644
--- a/inc/parser/handler.php
+++ b/inc/parser/handler.php
@@ -4,9 +4,9 @@ if (!defined('DOKU_PARSER_EOL')) define('DOKU_PARSER_EOL',"\n"); // add this t
class Doku_Handler {
- var $Renderer = NULL;
+ var $Renderer = null;
- var $CallWriter = NULL;
+ var $CallWriter = null;
var $calls = array();
@@ -35,8 +35,8 @@ class Doku_Handler {
$this->CallWriter->finalise();
if ( $this->status['section'] ) {
- $last_call = end($this->calls);
- array_push($this->calls,array('section_close',array(), $last_call[2]));
+ $last_call = end($this->calls);
+ array_push($this->calls,array('section_close',array(), $last_call[2]));
}
if ( $this->rewriteBlocks ) {
@@ -70,12 +70,12 @@ class Doku_Handler {
*/
function plugin($match, $state, $pos, $pluginname){
$data = array($match);
- $plugin =& plugin_load('syntax',$pluginname);
+ $plugin = plugin_load('syntax',$pluginname);
if($plugin != null){
$data = $plugin->handle($match, $state, $pos, $this);
}
if ($data !== false) {
- $this->addPluginCall($pluginname,$data,$state,$pos,$match);
+ $this->addPluginCall($pluginname,$data,$state,$pos,$match);
}
return true;
}
@@ -190,8 +190,8 @@ class Doku_Handler {
// footnotes can not be nested - however due to limitations in lexer it can't be prevented
// we will still enter a new footnote mode, we just do nothing
if ($this->_footnote) {
- $this->_addCall('cdata',array($match), $pos);
- break;
+ $this->_addCall('cdata',array($match), $pos);
+ break;
}
$this->_footnote = true;
@@ -203,8 +203,8 @@ class Doku_Handler {
case DOKU_LEXER_EXIT:
// check whether we have already exitted the footnote mode, can happen if the modes were nested
if (!$this->_footnote) {
- $this->_addCall('cdata',array($match), $pos);
- break;
+ $this->_addCall('cdata',array($match), $pos);
+ break;
}
$this->_footnote = false;
@@ -423,7 +423,7 @@ class Doku_Handler {
// Split title from URL
$link = explode('|',$link,2);
if ( !isset($link[1]) ) {
- $link[1] = NULL;
+ $link[1] = null;
} else if ( preg_match('/^\{\{[^\}]+\}\}$/',$link[1]) ) {
// If the title is an image, convert it to an array containing the image details
$link[1] = Doku_Handler_Parse_Media($link[1]);
@@ -433,7 +433,7 @@ class Doku_Handler {
//decide which kind of link it is
if ( preg_match('/^[a-zA-Z0-9\.]+>{1}.*$/u',$link[0]) ) {
- // Interwiki
+ // Interwiki
$interwiki = explode('>',$link[0],2);
$this->_addCall(
'interwikilink',
@@ -441,35 +441,35 @@ class Doku_Handler {
$pos
);
}elseif ( preg_match('/^\\\\\\\\[^\\\\]+?\\\\/u',$link[0]) ) {
- // Windows Share
+ // Windows Share
$this->_addCall(
'windowssharelink',
array($link[0],$link[1]),
$pos
);
}elseif ( preg_match('#^([a-z0-9\-\.+]+?)://#i',$link[0]) ) {
- // external link (accepts all protocols)
+ // external link (accepts all protocols)
$this->_addCall(
'externallink',
array($link[0],$link[1]),
$pos
);
}elseif ( preg_match('<'.PREG_PATTERN_VALID_EMAIL.'>',$link[0]) ) {
- // E-Mail (pattern above is defined in inc/mail.php)
+ // E-Mail (pattern above is defined in inc/mail.php)
$this->_addCall(
'emaillink',
array($link[0],$link[1]),
$pos
);
}elseif ( preg_match('!^#.+!',$link[0]) ){
- // local link
+ // local link
$this->_addCall(
'locallink',
array(substr($link[0],1),$link[1]),
$pos
);
}else{
- // internal link
+ // internal link
$this->_addCall(
'internallink',
array($link[0],$link[1]),
@@ -481,12 +481,12 @@ class Doku_Handler {
}
function filelink($match, $state, $pos) {
- $this->_addCall('filelink',array($match, NULL), $pos);
+ $this->_addCall('filelink',array($match, null), $pos);
return true;
}
function windowssharelink($match, $state, $pos) {
- $this->_addCall('windowssharelink',array($match, NULL), $pos);
+ $this->_addCall('windowssharelink',array($match, null), $pos);
return true;
}
@@ -520,10 +520,10 @@ class Doku_Handler {
$p['details'] = (preg_match('/\b(desc|detail)/',$params));
if (preg_match('/\b(\d+)([dhm])\b/',$params,$match)) {
- $period = array('d' => 86400, 'h' => 3600, 'm' => 60);
- $p['refresh'] = max(600,$match[1]*$period[$match[2]]); // n * period in seconds, minimum 10 minutes
+ $period = array('d' => 86400, 'h' => 3600, 'm' => 60);
+ $p['refresh'] = max(600,$match[1]*$period[$match[2]]); // n * period in seconds, minimum 10 minutes
} else {
- $p['refresh'] = 14400; // default to 4 hours
+ $p['refresh'] = 14400; // default to 4 hours
}
$this->_addCall('rss',array($link,$p),$pos);
@@ -550,7 +550,7 @@ class Doku_Handler {
function emaillink($match, $state, $pos) {
$email = preg_replace(array('/^</','/>$/'),'',$match);
- $this->_addCall('emaillink',array($email, NULL), $pos);
+ $this->_addCall('emaillink',array($email, null), $pos);
return true;
}
@@ -618,7 +618,6 @@ function Doku_Handler_Parse_Media($match) {
// Split title from URL
$link = explode('|',$link,2);
-
// Check alignment
$ralign = (bool)preg_match('/^ /',$link[0]);
$lalign = (bool)preg_match('/ $/',$link[0]);
@@ -631,12 +630,12 @@ function Doku_Handler_Parse_Media($match) {
} else if ( $lalign ) {
$align = 'left';
} else {
- $align = NULL;
+ $align = null;
}
// The title...
if ( !isset($link[1]) ) {
- $link[1] = NULL;
+ $link[1] = null;
}
//remove aligning spaces
@@ -654,11 +653,11 @@ function Doku_Handler_Parse_Media($match) {
//parse width and height
if(preg_match('#(\d+)(x(\d+))?#i',$param,$size)){
- ($size[1]) ? $w = $size[1] : $w = NULL;
- ($size[3]) ? $h = $size[3] : $h = NULL;
+ !empty($size[1]) ? $w = $size[1] : $w = null;
+ !empty($size[3]) ? $h = $size[3] : $h = null;
} else {
- $w = NULL;
- $h = NULL;
+ $w = null;
+ $h = null;
}
//get linking command
@@ -1034,7 +1033,7 @@ class Doku_Handler_Preformatted {
break;
case 'preformatted_end':
if (trim($this->text)) {
- $this->CallWriter->writeCall(array('preformatted',array($this->text),$this->pos));
+ $this->CallWriter->writeCall(array('preformatted',array($this->text),$this->pos));
}
// see FS#1699 & FS#1652, add 'eol' instructions to ensure proper triggering of following p_open
$this->CallWriter->writeCall(array('eol',array(),$this->pos));
@@ -1247,12 +1246,12 @@ class Doku_Handler_Table {
}
$this->tableCalls[] = array($this->lastCellType.'_close',array(),$call[2]);
- $this->tableCalls[] = array($call[0].'_open',array(1,NULL,1),$call[2]);
+ $this->tableCalls[] = array($call[0].'_open',array(1,null,1),$call[2]);
$this->lastCellType = $call[0];
} else {
- $this->tableCalls[] = array($call[0].'_open',array(1,NULL,1),$call[2]);
+ $this->tableCalls[] = array($call[0].'_open',array(1,null,1),$call[2]);
$this->lastCellType = $call[0];
$this->firstCell = false;
@@ -1289,121 +1288,119 @@ class Doku_Handler_Table {
$call = $this->tableCalls[$key];
switch ($call[0]) {
- case 'tablerow_open':
+ case 'tablerow_open':
- $lastRow++;
- $lastCell = 0;
- break;
+ $lastRow++;
+ $lastCell = 0;
+ break;
- case 'tablecell_open':
- case 'tableheader_open':
+ case 'tablecell_open':
+ case 'tableheader_open':
- $lastCell++;
- $cellKey[$lastRow][$lastCell] = $key;
- break;
+ $lastCell++;
+ $cellKey[$lastRow][$lastCell] = $key;
+ break;
- case 'table_align':
+ case 'table_align':
- $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open'));
- $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close'));
- // If the cell is empty, align left
- if ($prev && $next) {
- $this->tableCalls[$key-1][1][1] = 'left';
+ $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open'));
+ $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close'));
+ // If the cell is empty, align left
+ if ($prev && $next) {
+ $this->tableCalls[$key-1][1][1] = 'left';
- // If the previous element was a cell open, align right
- } elseif ($prev) {
- $this->tableCalls[$key-1][1][1] = 'right';
+ // If the previous element was a cell open, align right
+ } elseif ($prev) {
+ $this->tableCalls[$key-1][1][1] = 'right';
+
+ // If the next element is the close of an element, align either center or left
+ } elseif ( $next) {
+ if ( $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] == 'right' ) {
+ $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'center';
+ } else {
+ $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'left';
+ }
- // If the next element is the close of an element, align either center or left
- } elseif ( $next) {
- if ( $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] == 'right' ) {
- $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'center';
- } else {
- $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'left';
}
- }
+ // Now convert the whitespace back to cdata
+ $this->tableCalls[$key][0] = 'cdata';
+ break;
- // Now convert the whitespace back to cdata
- $this->tableCalls[$key][0] = 'cdata';
- break;
+ case 'colspan':
- case 'colspan':
+ $this->tableCalls[$key-1][1][0] = false;
- $this->tableCalls[$key-1][1][0] = false;
+ for($i = $key-2; $i >= $cellKey[$lastRow][1]; $i--) {
- for($i = $key-2; $i >= $cellKey[$lastRow][1]; $i--) {
+ if ( $this->tableCalls[$i][0] == 'tablecell_open' || $this->tableCalls[$i][0] == 'tableheader_open' ) {
- if ( $this->tableCalls[$i][0] == 'tablecell_open' || $this->tableCalls[$i][0] == 'tableheader_open' ) {
+ if ( false !== $this->tableCalls[$i][1][0] ) {
+ $this->tableCalls[$i][1][0]++;
+ break;
+ }
- if ( false !== $this->tableCalls[$i][1][0] ) {
- $this->tableCalls[$i][1][0]++;
- break;
}
-
-
}
- }
- $toDelete[] = $key-1;
- $toDelete[] = $key;
- $toDelete[] = $key+1;
- break;
-
- case 'rowspan':
+ $toDelete[] = $key-1;
+ $toDelete[] = $key;
+ $toDelete[] = $key+1;
+ break;
- if ( $this->tableCalls[$key-1][0] == 'cdata' ) {
- // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex
- $this->tableCalls[$key][0] = 'cdata';
+ case 'rowspan':
- } else {
+ if ( $this->tableCalls[$key-1][0] == 'cdata' ) {
+ // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex
+ $this->tableCalls[$key][0] = 'cdata';
- $spanning_cell = null;
- for($i = $lastRow-1; $i > 0; $i--) {
+ } else {
- if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) {
+ $spanning_cell = null;
+ for($i = $lastRow-1; $i > 0; $i--) {
- if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) {
- $spanning_cell = $i;
- break;
- }
+ if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) {
+ if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) {
+ $spanning_cell = $i;
+ break;
+ }
+ }
}
- }
- if (is_null($spanning_cell)) {
- // No spanning cell found, so convert this cell to
- // an empty one to avoid broken tables
- $this->tableCells[$key][1][1] = '';
- continue;
- }
- $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++;
+ if (is_null($spanning_cell)) {
+ // No spanning cell found, so convert this cell to
+ // an empty one to avoid broken tables
+ $this->tableCalls[$key][0] = 'cdata';
+ $this->tableCalls[$key][1][0] = '';
+ continue;
+ }
+ $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++;
- $this->tableCalls[$key-1][1][2] = false;
+ $this->tableCalls[$key-1][1][2] = false;
- $toDelete[] = $key-1;
- $toDelete[] = $key;
- $toDelete[] = $key+1;
- }
- break;
+ $toDelete[] = $key-1;
+ $toDelete[] = $key;
+ $toDelete[] = $key+1;
+ }
+ break;
- case 'tablerow_close':
+ case 'tablerow_close':
- // Fix broken tables by adding missing cells
- while (++$lastCell < $this->maxCols) {
- array_splice($this->tableCalls, $key, 0, array(
- array('tablecell_open', array(1, null, 1), $call[2]),
- array('cdata', array(''), $call[2]),
- array('tablecell_close', array(), $call[2])));
- $key += 3;
- }
+ // Fix broken tables by adding missing cells
+ while (++$lastCell < $this->maxCols) {
+ array_splice($this->tableCalls, $key, 0, array(
+ array('tablecell_open', array(1, null, 1), $call[2]),
+ array('cdata', array(''), $call[2]),
+ array('tablecell_close', array(), $call[2])));
+ $key += 3;
+ }
- break;
+ break;
}
}
-
// condense cdata
$cnt = count($this->tableCalls);
for( $key = 0; $key < $cnt; $key++){
@@ -1435,6 +1432,7 @@ class Doku_Handler_Table {
class Doku_Handler_Block {
var $calls = array();
var $skipEol = false;
+ var $inParagraph = false;
// Blocks these should not be inside paragraphs
var $blockOpen = array(
diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php
index b5bcb9612..2e84eca7c 100644
--- a/inc/parser/lexer.php
+++ b/inc/parser/lexer.php
@@ -1,18 +1,18 @@
<?php
/**
-* Author Markus Baker: http://www.lastcraft.com
-* Version adapted from Simple Test: http://sourceforge.net/projects/simpletest/
-* For an intro to the Lexer see:
-* http://www.phppatterns.com/index.php/article/articleview/106/1/2/
-* @author Marcus Baker
-* @package Doku
-* @subpackage Lexer
-* @version $Id: lexer.php,v 1.1 2005/03/23 23:14:09 harryf Exp $
-*/
+ * Author Markus Baker: http://www.lastcraft.com
+ * Version adapted from Simple Test: http://sourceforge.net/projects/simpletest/
+ * For an intro to the Lexer see:
+ * http://www.phppatterns.com/index.php/article/articleview/106/1/2/
+ * @author Marcus Baker
+ * @package Doku
+ * @subpackage Lexer
+ * @version $Id: lexer.php,v 1.1 2005/03/23 23:14:09 harryf Exp $
+ */
/**
-* Init path constant
-*/
+ * Init path constant
+ */
if(!defined('DOKU_INC')) die('meh.');
/**#@+
@@ -26,11 +26,12 @@ define("DOKU_LEXER_SPECIAL", 5);
/**#@-*/
/**
- * Compounded regular expression. Any of
- * the contained patterns could match and
- * when one does it's label is returned.
- * @package Doku
- * @subpackage Lexer
+ * Compounded regular expression. Any of
+ * the contained patterns could match and
+ * when one does it's label is returned.
+ *
+ * @package Doku
+ * @subpackage Lexer
*/
class Doku_LexerParallelRegex {
var $_patterns;
@@ -39,10 +40,11 @@ class Doku_LexerParallelRegex {
var $_case;
/**
- * Constructor. Starts with no patterns.
- * @param boolean $case True for case sensitive, false
- * for insensitive.
- * @access public
+ * Constructor. Starts with no patterns.
+ *
+ * @param boolean $case True for case sensitive, false
+ * for insensitive.
+ * @access public
*/
function Doku_LexerParallelRegex($case) {
$this->_case = $case;
@@ -52,15 +54,16 @@ class Doku_LexerParallelRegex {
}
/**
- * Adds a pattern with an optional label.
- * @param mixed $pattern Perl style regex. Must be UTF-8
- * encoded. If its a string, the (, )
- * lose their meaning unless they
- * form part of a lookahead or
- * lookbehind assertation.
- * @param string $label Label of regex to be returned
- * on a match. Label must be ASCII
- * @access public
+ * Adds a pattern with an optional label.
+ *
+ * @param mixed $pattern Perl style regex. Must be UTF-8
+ * encoded. If its a string, the (, )
+ * lose their meaning unless they
+ * form part of a lookahead or
+ * lookbehind assertation.
+ * @param string $label Label of regex to be returned
+ * on a match. Label must be ASCII
+ * @access public
*/
function addPattern($pattern, $label = true) {
$count = count($this->_patterns);
@@ -70,13 +73,13 @@ class Doku_LexerParallelRegex {
}
/**
- * Attempts to match all patterns at once against
- * a string.
- * @param string $subject String to match against.
- * @param string $match First matched portion of
- * subject.
- * @return boolean True on success.
- * @access public
+ * Attempts to match all patterns at once against a string.
+ *
+ * @param string $subject String to match against.
+ * @param string $match First matched portion of
+ * subject.
+ * @return boolean True on success.
+ * @access public
*/
function match($subject, &$match) {
if (count($this->_patterns) == 0) {
@@ -98,14 +101,14 @@ class Doku_LexerParallelRegex {
}
/**
- * Attempts to split the string against all patterns at once
+ * Attempts to split the string against all patterns at once
*
- * @param string $subject String to match against.
- * @param array $split The split result: array containing, pre-match, match & post-match strings
- * @return boolean True on success.
- * @access public
+ * @param string $subject String to match against.
+ * @param array $split The split result: array containing, pre-match, match & post-match strings
+ * @return boolean True on success.
+ * @access public
*
- * @author Christopher Smith <chris@jalakai.co.uk>
+ * @author Christopher Smith <chris@jalakai.co.uk>
*/
function split($subject, &$split) {
if (count($this->_patterns) == 0) {
@@ -143,12 +146,13 @@ class Doku_LexerParallelRegex {
}
/**
- * Compounds the patterns into a single
- * regular expression separated with the
- * "or" operator. Caches the regex.
- * Will automatically escape (, ) and / tokens.
- * @param array $patterns List of patterns in order.
- * @access private
+ * Compounds the patterns into a single
+ * regular expression separated with the
+ * "or" operator. Caches the regex.
+ * Will automatically escape (, ) and / tokens.
+ *
+ * @param array $patterns List of patterns in order.
+ * @access private
*/
function _getCompoundedRegex() {
if ($this->_regex == null) {
@@ -176,25 +180,25 @@ class Doku_LexerParallelRegex {
*/
switch($elt) {
- case '(':
- $pattern .= '\(';
- break;
- case ')':
- if ($level > 0)
- $level--; /* closing (? */
- else
- $pattern .= '\\';
- $pattern .= ')';
- break;
- case '(?':
- $level++;
- $pattern .= '(?';
- break;
- default:
- if (substr($elt, 0, 1) == '\\')
- $pattern .= $elt;
- else
- $pattern .= str_replace('/', '\/', $elt);
+ case '(':
+ $pattern .= '\(';
+ break;
+ case ')':
+ if ($level > 0)
+ $level--; /* closing (? */
+ else
+ $pattern .= '\\';
+ $pattern .= ')';
+ break;
+ case '(?':
+ $level++;
+ $pattern .= '(?';
+ break;
+ default:
+ if (substr($elt, 0, 1) == '\\')
+ $pattern .= $elt;
+ else
+ $pattern .= str_replace('/', '\/', $elt);
}
}
$this->_patterns[$i] = "($pattern)";
@@ -205,9 +209,9 @@ class Doku_LexerParallelRegex {
}
/**
- * Accessor for perl regex mode flags to use.
- * @return string Perl regex flags.
- * @access private
+ * Accessor for perl regex mode flags to use.
+ * @return string Perl regex flags.
+ * @access private
*/
function _getPerlMatchingFlags() {
return ($this->_case ? "msS" : "msSi");
@@ -215,47 +219,47 @@ class Doku_LexerParallelRegex {
}
/**
- * States for a stack machine.
- * @package Lexer
- * @subpackage Lexer
+ * States for a stack machine.
+ * @package Lexer
+ * @subpackage Lexer
*/
class Doku_LexerStateStack {
var $_stack;
/**
- * Constructor. Starts in named state.
- * @param string $start Starting state name.
- * @access public
+ * Constructor. Starts in named state.
+ * @param string $start Starting state name.
+ * @access public
*/
function Doku_LexerStateStack($start) {
$this->_stack = array($start);
}
/**
- * Accessor for current state.
- * @return string State.
- * @access public
+ * Accessor for current state.
+ * @return string State.
+ * @access public
*/
function getCurrent() {
return $this->_stack[count($this->_stack) - 1];
}
/**
- * Adds a state to the stack and sets it
- * to be the current state.
- * @param string $state New state.
- * @access public
+ * Adds a state to the stack and sets it
+ * to be the current state.
+ * @param string $state New state.
+ * @access public
*/
function enter($state) {
array_push($this->_stack, $state);
}
/**
- * Leaves the current state and reverts
- * to the previous one.
- * @return boolean False if we drop off
- * the bottom of the list.
- * @access public
+ * Leaves the current state and reverts
+ * to the previous one.
+ * @return boolean False if we drop off
+ * the bottom of the list.
+ * @access public
*/
function leave() {
if (count($this->_stack) == 1) {
@@ -267,13 +271,13 @@ class Doku_LexerStateStack {
}
/**
- * Accepts text and breaks it into tokens.
- * Some optimisation to make the sure the
- * content is only scanned by the PHP regex
- * parser once. Lexer modes must not start
- * with leading underscores.
- * @package Doku
- * @subpackage Lexer
+ * Accepts text and breaks it into tokens.
+ * Some optimisation to make the sure the
+ * content is only scanned by the PHP regex
+ * parser once. Lexer modes must not start
+ * with leading underscores.
+ * @package Doku
+ * @subpackage Lexer
*/
class Doku_Lexer {
var $_regexes;
@@ -283,13 +287,13 @@ class Doku_Lexer {
var $_case;
/**
- * Sets up the lexer in case insensitive matching
- * by default.
- * @param Doku_Parser $parser Handling strategy by
- * reference.
- * @param string $start Starting handler.
- * @param boolean $case True for case sensitive.
- * @access public
+ * Sets up the lexer in case insensitive matching
+ * by default.
+ * @param Doku_Parser $parser Handling strategy by
+ * reference.
+ * @param string $start Starting handler.
+ * @param boolean $case True for case sensitive.
+ * @access public
*/
function Doku_Lexer(&$parser, $start = "accept", $case = false) {
$this->_case = $case;
@@ -300,15 +304,15 @@ class Doku_Lexer {
}
/**
- * Adds a token search pattern for a particular
- * parsing mode. The pattern does not change the
- * current mode.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Should only apply this
- * pattern when dealing with
- * this type of input.
- * @access public
+ * Adds a token search pattern for a particular
+ * parsing mode. The pattern does not change the
+ * current mode.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Should only apply this
+ * pattern when dealing with
+ * this type of input.
+ * @access public
*/
function addPattern($pattern, $mode = "accept") {
if (! isset($this->_regexes[$mode])) {
@@ -318,17 +322,17 @@ class Doku_Lexer {
}
/**
- * Adds a pattern that will enter a new parsing
- * mode. Useful for entering parenthesis, strings,
- * tags, etc.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Should only apply this
- * pattern when dealing with
- * this type of input.
- * @param string $new_mode Change parsing to this new
- * nested mode.
- * @access public
+ * Adds a pattern that will enter a new parsing
+ * mode. Useful for entering parenthesis, strings,
+ * tags, etc.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Should only apply this
+ * pattern when dealing with
+ * this type of input.
+ * @param string $new_mode Change parsing to this new
+ * nested mode.
+ * @access public
*/
function addEntryPattern($pattern, $mode, $new_mode) {
if (! isset($this->_regexes[$mode])) {
@@ -338,12 +342,12 @@ class Doku_Lexer {
}
/**
- * Adds a pattern that will exit the current mode
- * and re-enter the previous one.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Mode to leave.
- * @access public
+ * Adds a pattern that will exit the current mode
+ * and re-enter the previous one.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Mode to leave.
+ * @access public
*/
function addExitPattern($pattern, $mode) {
if (! isset($this->_regexes[$mode])) {
@@ -353,16 +357,16 @@ class Doku_Lexer {
}
/**
- * Adds a pattern that has a special mode. Acts as an entry
- * and exit pattern in one go, effectively calling a special
- * parser handler for this token only.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Should only apply this
- * pattern when dealing with
- * this type of input.
- * @param string $special Use this mode for this one token.
- * @access public
+ * Adds a pattern that has a special mode. Acts as an entry
+ * and exit pattern in one go, effectively calling a special
+ * parser handler for this token only.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Should only apply this
+ * pattern when dealing with
+ * this type of input.
+ * @param string $special Use this mode for this one token.
+ * @access public
*/
function addSpecialPattern($pattern, $mode, $special) {
if (! isset($this->_regexes[$mode])) {
@@ -372,24 +376,24 @@ class Doku_Lexer {
}
/**
- * Adds a mapping from a mode to another handler.
- * @param string $mode Mode to be remapped.
- * @param string $handler New target handler.
- * @access public
+ * Adds a mapping from a mode to another handler.
+ * @param string $mode Mode to be remapped.
+ * @param string $handler New target handler.
+ * @access public
*/
function mapHandler($mode, $handler) {
$this->_mode_handlers[$mode] = $handler;
}
/**
- * Splits the page text into tokens. Will fail
- * if the handlers report an error or if no
- * content is consumed. If successful then each
- * unparsed and parsed token invokes a call to the
- * held listener.
- * @param string $raw Raw HTML text.
- * @return boolean True on success, else false.
- * @access public
+ * Splits the page text into tokens. Will fail
+ * if the handlers report an error or if no
+ * content is consumed. If successful then each
+ * unparsed and parsed token invokes a call to the
+ * held listener.
+ * @param string $raw Raw HTML text.
+ * @return boolean True on success, else false.
+ * @access public
*/
function parse($raw) {
if (! isset($this->_parser)) {
@@ -418,18 +422,18 @@ class Doku_Lexer {
}
/**
- * Sends the matched token and any leading unmatched
- * text to the parser changing the lexer to a new
- * mode if one is listed.
- * @param string $unmatched Unmatched leading portion.
- * @param string $matched Actual token match.
- * @param string $mode Mode after match. A boolean
- * false mode causes no change.
- * @param int $pos Current byte index location in raw doc
- * thats being parsed
- * @return boolean False if there was any error
- * from the parser.
- * @access private
+ * Sends the matched token and any leading unmatched
+ * text to the parser changing the lexer to a new
+ * mode if one is listed.
+ * @param string $unmatched Unmatched leading portion.
+ * @param string $matched Actual token match.
+ * @param string $mode Mode after match. A boolean
+ * false mode causes no change.
+ * @param int $pos Current byte index location in raw doc
+ * thats being parsed
+ * @return boolean False if there was any error
+ * from the parser.
+ * @access private
*/
function _dispatchTokens($unmatched, $matched, $mode = false, $initialPos, $matchPos) {
if (! $this->_invokeParser($unmatched, DOKU_LEXER_UNMATCHED, $initialPos) ){
@@ -456,50 +460,50 @@ class Doku_Lexer {
}
/**
- * Tests to see if the new mode is actually to leave
- * the current mode and pop an item from the matching
- * mode stack.
- * @param string $mode Mode to test.
- * @return boolean True if this is the exit mode.
- * @access private
+ * Tests to see if the new mode is actually to leave
+ * the current mode and pop an item from the matching
+ * mode stack.
+ * @param string $mode Mode to test.
+ * @return boolean True if this is the exit mode.
+ * @access private
*/
function _isModeEnd($mode) {
return ($mode === "__exit");
}
/**
- * Test to see if the mode is one where this mode
- * is entered for this token only and automatically
- * leaves immediately afterwoods.
- * @param string $mode Mode to test.
- * @return boolean True if this is the exit mode.
- * @access private
+ * Test to see if the mode is one where this mode
+ * is entered for this token only and automatically
+ * leaves immediately afterwoods.
+ * @param string $mode Mode to test.
+ * @return boolean True if this is the exit mode.
+ * @access private
*/
function _isSpecialMode($mode) {
return (strncmp($mode, "_", 1) == 0);
}
/**
- * Strips the magic underscore marking single token
- * modes.
- * @param string $mode Mode to decode.
- * @return string Underlying mode name.
- * @access private
+ * Strips the magic underscore marking single token
+ * modes.
+ * @param string $mode Mode to decode.
+ * @return string Underlying mode name.
+ * @access private
*/
function _decodeSpecial($mode) {
return substr($mode, 1);
}
/**
- * Calls the parser method named after the current
- * mode. Empty content will be ignored. The lexer
- * has a parser handler for each mode in the lexer.
- * @param string $content Text parsed.
- * @param boolean $is_match Token is recognised rather
- * than unparsed data.
- * @param int $pos Current byte index location in raw doc
- * thats being parsed
- * @access private
+ * Calls the parser method named after the current
+ * mode. Empty content will be ignored. The lexer
+ * has a parser handler for each mode in the lexer.
+ * @param string $content Text parsed.
+ * @param boolean $is_match Token is recognised rather
+ * than unparsed data.
+ * @param int $pos Current byte index location in raw doc
+ * thats being parsed
+ * @access private
*/
function _invokeParser($content, $is_match, $pos) {
if (($content === "") || ($content === false)) {
@@ -513,26 +517,26 @@ class Doku_Lexer {
// modes starting with plugin_ are all handled by the same
// handler but with an additional parameter
if(substr($handler,0,7)=='plugin_'){
- list($handler,$plugin) = explode('_',$handler,2);
- return $this->_parser->$handler($content, $is_match, $pos, $plugin);
+ list($handler,$plugin) = explode('_',$handler,2);
+ return $this->_parser->$handler($content, $is_match, $pos, $plugin);
}
return $this->_parser->$handler($content, $is_match, $pos);
}
/**
- * Tries to match a chunk of text and if successful
- * removes the recognised chunk and any leading
- * unparsed data. Empty strings will not be matched.
- * @param string $raw The subject to parse. This is the
- * content that will be eaten.
- * @return array Three item list of unparsed
- * content followed by the
- * recognised token and finally the
- * action the parser is to take.
- * True if no match, false if there
- * is a parsing error.
- * @access private
+ * Tries to match a chunk of text and if successful
+ * removes the recognised chunk and any leading
+ * unparsed data. Empty strings will not be matched.
+ * @param string $raw The subject to parse. This is the
+ * content that will be eaten.
+ * @return array Three item list of unparsed
+ * content followed by the
+ * recognised token and finally the
+ * action the parser is to take.
+ * True if no match, false if there
+ * is a parsing error.
+ * @access private
*/
function _reduce(&$raw) {
if (! isset($this->_regexes[$this->_mode->getCurrent()])) {
@@ -550,9 +554,9 @@ class Doku_Lexer {
}
/**
-* Escapes regex characters other than (, ) and /
-* @TODO
-*/
+ * Escapes regex characters other than (, ) and /
+ * @TODO
+ */
function Doku_Lexer_Escape($str) {
//$str = addslashes($str);
$chars = array(
diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php
index d64fe4d77..8ba159d62 100644
--- a/inc/parser/metadata.php
+++ b/inc/parser/metadata.php
@@ -23,442 +23,452 @@ require_once DOKU_INC . 'inc/parser/renderer.php';
*/
class Doku_Renderer_metadata extends Doku_Renderer {
- var $doc = '';
- var $meta = array();
- var $persistent = array();
+ var $doc = '';
+ var $meta = array();
+ var $persistent = array();
- var $headers = array();
- var $capture = true;
- var $store = '';
- var $firstimage = '';
+ var $headers = array();
+ var $capture = true;
+ var $store = '';
+ var $firstimage = '';
- function getFormat(){
- return 'metadata';
- }
+ function getFormat(){
+ return 'metadata';
+ }
+
+ function document_start(){
+ global $ID;
+
+ $this->headers = array();
+
+ // external pages are missing create date
+ if(!$this->persistent['date']['created']){
+ $this->persistent['date']['created'] = filectime(wikiFN($ID));
+ }
+ if(!isset($this->persistent['user'])){
+ $this->persistent['user'] = '';
+ }
+ if(!isset($this->persistent['creator'])){
+ $this->persistent['creator'] = '';
+ }
+ // reset metadata to persistent values
+ $this->meta = $this->persistent;
+ }
+
+ function document_end(){
+ global $ID;
- function document_start(){
- global $ID;
+ // store internal info in metadata (notoc,nocache)
+ $this->meta['internal'] = $this->info;
- $this->headers = array();
+ if (!isset($this->meta['description']['abstract'])){
+ // cut off too long abstracts
+ $this->doc = trim($this->doc);
+ if (strlen($this->doc) > 500)
+ $this->doc = utf8_substr($this->doc, 0, 500).'…';
+ $this->meta['description']['abstract'] = $this->doc;
+ }
+
+ $this->meta['relation']['firstimage'] = $this->firstimage;
+
+ if(!isset($this->meta['date']['modified'])){
+ $this->meta['date']['modified'] = filemtime(wikiFN($ID));
+ }
- // external pages are missing create date
- if(!$this->persistent['date']['created']){
- $this->persistent['date']['created'] = filectime(wikiFN($ID));
}
- if(!isset($this->persistent['user'])){
- $this->persistent['user'] = '';
+
+ function toc_additem($id, $text, $level) {
+ global $conf;
+
+ //only add items within configured levels
+ if($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']){
+ // the TOC is one of our standard ul list arrays ;-)
+ $this->meta['description']['tableofcontents'][] = array(
+ 'hid' => $id,
+ 'title' => $text,
+ 'type' => 'ul',
+ 'level' => $level-$conf['toptoclevel']+1
+ );
+ }
+
}
- if(!isset($this->persistent['creator'])){
- $this->persistent['creator'] = '';
+
+ function header($text, $level, $pos) {
+ if (!isset($this->meta['title'])) $this->meta['title'] = $text;
+
+ // add the header to the TOC
+ $hid = $this->_headerToLink($text,'true');
+ $this->toc_additem($hid, $text, $level);
+
+ // add to summary
+ if ($this->capture && ($level > 1)) $this->doc .= DOKU_LF.$text.DOKU_LF;
}
- // reset metadata to persistent values
- $this->meta = $this->persistent;
- }
- function document_end(){
- global $ID;
+ function section_open($level){}
+ function section_close(){}
- // store internal info in metadata (notoc,nocache)
- $this->meta['internal'] = $this->info;
+ function cdata($text){
+ if ($this->capture) $this->doc .= $text;
+ }
- if (!isset($this->meta['description']['abstract'])){
- // cut off too long abstracts
- $this->doc = trim($this->doc);
- if (strlen($this->doc) > 500)
- $this->doc = utf8_substr($this->doc, 0, 500).'…';
- $this->meta['description']['abstract'] = $this->doc;
+ function p_open(){
+ if ($this->capture) $this->doc .= DOKU_LF;
}
- $this->meta['relation']['firstimage'] = $this->firstimage;
+ function p_close(){
+ if ($this->capture){
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
+ }
- if(!isset($this->meta['date']['modified'])){
- $this->meta['date']['modified'] = filemtime(wikiFN($ID));
+ function linebreak(){
+ if ($this->capture) $this->doc .= DOKU_LF;
}
- }
+ function hr(){
+ if ($this->capture){
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF.'----------'.DOKU_LF;
+ }
+ }
- function toc_additem($id, $text, $level) {
- global $conf;
+ /**
+ * Callback for footnote start syntax
+ *
+ * All following content will go to the footnote instead of
+ * the document. To achieve this the previous rendered content
+ * is moved to $store and $doc is cleared
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ function footnote_open() {
+ if ($this->capture){
+ // move current content to store and record footnote
+ $this->store = $this->doc;
+ $this->doc = '';
+ }
+ }
- //only add items within configured levels
- if($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']){
- // the TOC is one of our standard ul list arrays ;-)
- $this->meta['description']['tableofcontents'][] = array(
- 'hid' => $id,
- 'title' => $text,
- 'type' => 'ul',
- 'level' => $level-$conf['toptoclevel']+1
- );
+ /**
+ * Callback for footnote end syntax
+ *
+ * All rendered content is moved to the $footnotes array and the old
+ * content is restored from $store again
+ *
+ * @author Andreas Gohr
+ */
+ function footnote_close() {
+ if ($this->capture){
+ // restore old content
+ $this->doc = $this->store;
+ $this->store = '';
+ }
}
- }
+ function listu_open(){
+ if ($this->capture) $this->doc .= DOKU_LF;
+ }
- function header($text, $level, $pos) {
- if (!isset($this->meta['title'])) $this->meta['title'] = $text;
+ function listu_close(){
+ if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
+ }
- // add the header to the TOC
- $hid = $this->_headerToLink($text,'true');
- $this->toc_additem($hid, $text, $level);
+ function listo_open(){
+ if ($this->capture) $this->doc .= DOKU_LF;
+ }
- // add to summary
- if ($this->capture && ($level > 1)) $this->doc .= DOKU_LF.$text.DOKU_LF;
- }
+ function listo_close(){
+ if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
+ }
- function section_open($level){}
- function section_close(){}
+ function listitem_open($level){
+ if ($this->capture) $this->doc .= str_repeat(DOKU_TAB, $level).'* ';
+ }
- function cdata($text){
- if ($this->capture) $this->doc .= $text;
- }
+ function listitem_close(){
+ if ($this->capture) $this->doc .= DOKU_LF;
+ }
- function p_open(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
+ function listcontent_open(){}
+ function listcontent_close(){}
- function p_close(){
- if ($this->capture){
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
+ function unformatted($text){
+ if ($this->capture) $this->doc .= $text;
}
- }
- function linebreak(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
+ function preformatted($text){
+ if ($this->capture) $this->doc .= $text;
+ }
- function hr(){
- if ($this->capture){
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF.'----------'.DOKU_LF;
+ function file($text, $lang = null, $file = null){
+ if ($this->capture){
+ $this->doc .= DOKU_LF.$text;
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
}
- }
- /**
- * Callback for footnote start syntax
- *
- * All following content will go to the footnote instead of
- * the document. To achieve this the previous rendered content
- * is moved to $store and $doc is cleared
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
- function footnote_open() {
- if ($this->capture){
- // move current content to store and record footnote
- $this->store = $this->doc;
- $this->doc = '';
+ function quote_open(){
+ if ($this->capture) $this->doc .= DOKU_LF.DOKU_TAB.'"';
}
- }
- /**
- * Callback for footnote end syntax
- *
- * All rendered content is moved to the $footnotes array and the old
- * content is restored from $store again
- *
- * @author Andreas Gohr
- */
- function footnote_close() {
- if ($this->capture){
- // restore old content
- $this->doc = $this->store;
- $this->store = '';
- }
- }
-
- function listu_open(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
-
- function listu_close(){
- if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
- }
-
- function listo_open(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
-
- function listo_close(){
- if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
- }
-
- function listitem_open($level){
- if ($this->capture) $this->doc .= str_repeat(DOKU_TAB, $level).'* ';
- }
-
- function listitem_close(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
-
- function listcontent_open(){}
- function listcontent_close(){}
-
- function unformatted($text){
- if ($this->capture) $this->doc .= $text;
- }
-
- function preformatted($text){
- if ($this->capture) $this->doc .= $text;
- }
-
- function file($text, $lang = null, $file = null){
- if ($this->capture){
- $this->doc .= DOKU_LF.$text;
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
- }
- }
-
- function quote_open(){
- if ($this->capture) $this->doc .= DOKU_LF.DOKU_TAB.'"';
- }
-
- function quote_close(){
- if ($this->capture){
- $this->doc .= '"';
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
- }
- }
-
- function code($text, $language = NULL, $file = null){
- if ($this->capture){
- $this->doc .= DOKU_LF.$text;
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
- }
- }
-
- function acronym($acronym){
- if ($this->capture) $this->doc .= $acronym;
- }
-
- function smiley($smiley){
- if ($this->capture) $this->doc .= $smiley;
- }
-
- function entity($entity){
- if ($this->capture) $this->doc .= $entity;
- }
+ function quote_close(){
+ if ($this->capture){
+ $this->doc .= '"';
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
+ }
- function multiplyentity($x, $y){
- if ($this->capture) $this->doc .= $x.'×'.$y;
- }
+ function code($text, $language = null, $file = null){
+ if ($this->capture){
+ $this->doc .= DOKU_LF.$text;
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
+ }
- function singlequoteopening(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['singlequoteopening'];
- }
+ function acronym($acronym){
+ if ($this->capture) $this->doc .= $acronym;
+ }
- function singlequoteclosing(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['singlequoteclosing'];
- }
+ function smiley($smiley){
+ if ($this->capture) $this->doc .= $smiley;
+ }
- function apostrophe() {
- global $lang;
- if ($this->capture) $this->doc .= $lang['apostrophe'];
- }
+ function entity($entity){
+ if ($this->capture) $this->doc .= $entity;
+ }
- function doublequoteopening(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['doublequoteopening'];
- }
+ function multiplyentity($x, $y){
+ if ($this->capture) $this->doc .= $x.'×'.$y;
+ }
- function doublequoteclosing(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['doublequoteclosing'];
- }
+ function singlequoteopening(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['singlequoteopening'];
+ }
- function camelcaselink($link) {
- $this->internallink($link, $link);
- }
+ function singlequoteclosing(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['singlequoteclosing'];
+ }
- function locallink($hash, $name = NULL){}
+ function apostrophe() {
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['apostrophe'];
+ }
- /**
- * keep track of internal links in $this->meta['relation']['references']
- */
- function internallink($id, $name = NULL){
- global $ID;
+ function doublequoteopening(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['doublequoteopening'];
+ }
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ function doublequoteclosing(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['doublequoteclosing'];
}
- $default = $this->_simpleTitle($id);
+ function camelcaselink($link) {
+ $this->internallink($link, $link);
+ }
+
+ function locallink($hash, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
+ }
- // first resolve and clean up the $id
- resolve_pageid(getNS($ID), $id, $exists);
- list($page, $hash) = explode('#', $id, 2);
+ /**
+ * keep track of internal links in $this->meta['relation']['references']
+ */
+ function internallink($id, $name = null){
+ global $ID;
+
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
+
+ $parts = explode('?', $id, 2);
+ if (count($parts) === 2) {
+ $id = $parts[0];
+ }
+
+ $default = $this->_simpleTitle($id);
+
+ // first resolve and clean up the $id
+ resolve_pageid(getNS($ID), $id, $exists);
+ list($page, $hash) = explode('#', $id, 2);
+
+ // set metadata
+ $this->meta['relation']['references'][$page] = $exists;
+ // $data = array('relation' => array('isreferencedby' => array($ID => true)));
+ // p_set_metadata($id, $data);
+
+ // add link title to summary
+ if ($this->capture){
+ $name = $this->_getLinkTitle($name, $default, $id);
+ $this->doc .= $name;
+ }
+ }
- // set metadata
- $this->meta['relation']['references'][$page] = $exists;
- // $data = array('relation' => array('isreferencedby' => array($ID => true)));
- // p_set_metadata($id, $data);
+ function externallink($url, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
- // add link title to summary
- if ($this->capture){
- $name = $this->_getLinkTitle($name, $default, $id);
- $this->doc .= $name;
+ if ($this->capture){
+ $this->doc .= $this->_getLinkTitle($name, '<' . $url . '>');
+ }
}
- }
- function externallink($url, $name = NULL){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- $this->doc .= $this->_getLinkTitle($name, '<' . $url . '>');
- }
- }
-
- function interwikilink($match, $name = NULL, $wikiName, $wikiUri){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- list($wikiUri, $hash) = explode('#', $wikiUri, 2);
- $name = $this->_getLinkTitle($name, $wikiUri);
- $this->doc .= $name;
+ function interwikilink($match, $name = null, $wikiName, $wikiUri){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
+
+ if ($this->capture){
+ list($wikiUri, $hash) = explode('#', $wikiUri, 2);
+ $name = $this->_getLinkTitle($name, $wikiUri);
+ $this->doc .= $name;
+ }
}
- }
-
- function windowssharelink($url, $name = NULL){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- if ($name) $this->doc .= $name;
- else $this->doc .= '<'.$url.'>';
- }
- }
-
- function emaillink($address, $name = NULL){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- if ($name) $this->doc .= $name;
- else $this->doc .= '<'.$address.'>';
- }
- }
-
- function internalmedia($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL){
- if ($this->capture && $title) $this->doc .= '['.$title.']';
- $this->_firstimage($src);
- $this->_recordMediaUsage($src);
- }
- function externalmedia($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL){
- if ($this->capture && $title) $this->doc .= '['.$title.']';
- $this->_firstimage($src);
- }
-
- function rss($url,$params) {
- $this->meta['relation']['haspart'][$url] = true;
+ function windowssharelink($url, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
- $this->meta['date']['valid']['age'] =
- isset($this->meta['date']['valid']['age']) ?
- min($this->meta['date']['valid']['age'],$params['refresh']) :
- $params['refresh'];
- }
+ if ($this->capture){
+ if ($name) $this->doc .= $name;
+ else $this->doc .= '<'.$url.'>';
+ }
+ }
- //----------------------------------------------------------
- // Utils
-
- /**
- * Removes any Namespace from the given name but keeps
- * casing and special chars
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
- function _simpleTitle($name){
- global $conf;
+ function emaillink($address, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
- if(is_array($name)) return '';
-
- if($conf['useslash']){
- $nssep = '[:;/]';
- }else{
- $nssep = '[:;]';
- }
- $name = preg_replace('!.*'.$nssep.'!','',$name);
- //if there is a hash we use the anchor name only
- $name = preg_replace('!.*#!','',$name);
- return $name;
- }
-
- /**
- * Creates a linkid from a headline
- *
- * @param string $title The headline title
- * @param boolean $create Create a new unique ID?
- * @author Andreas Gohr <andi@splitbrain.org>
- */
- function _headerToLink($title, $create=false) {
- if($create){
- return sectionID($title,$this->headers);
- }else{
- $check = false;
- return sectionID($title,$check);
- }
- }
-
- /**
- * Construct a title and handle images in titles
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
- function _getLinkTitle($title, $default, $id=NULL) {
- global $conf;
-
- $isImage = false;
- if (is_array($title)){
- if($title['title']) return '['.$title['title'].']';
- } else if (is_null($title) || trim($title)==''){
- if (useHeading('content') && $id){
- $heading = p_get_first_heading($id,METADATA_DONT_RENDER);
- if ($heading) return $heading;
- }
- return $default;
- } else {
- return $title;
+ if ($this->capture){
+ if ($name) $this->doc .= $name;
+ else $this->doc .= '<'.$address.'>';
+ }
}
- }
- function _firstimage($src){
- if($this->firstimage) return;
- global $ID;
+ function internalmedia($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null){
+ if ($this->capture && $title) $this->doc .= '['.$title.']';
+ $this->_firstimage($src);
+ $this->_recordMediaUsage($src);
+ }
- list($src,$hash) = explode('#',$src,2);
- if(!media_isexternal($src)){
- resolve_mediaid(getNS($ID),$src, $exists);
+ function externalmedia($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null){
+ if ($this->capture && $title) $this->doc .= '['.$title.']';
+ $this->_firstimage($src);
}
- if(preg_match('/.(jpe?g|gif|png)$/i',$src)){
- $this->firstimage = $src;
+
+ function rss($url,$params) {
+ $this->meta['relation']['haspart'][$url] = true;
+
+ $this->meta['date']['valid']['age'] =
+ isset($this->meta['date']['valid']['age']) ?
+ min($this->meta['date']['valid']['age'],$params['refresh']) :
+ $params['refresh'];
}
- }
- function _recordMediaUsage($src) {
- global $ID;
+ //----------------------------------------------------------
+ // Utils
+
+ /**
+ * Removes any Namespace from the given name but keeps
+ * casing and special chars
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ function _simpleTitle($name){
+ global $conf;
+
+ if(is_array($name)) return '';
+
+ if($conf['useslash']){
+ $nssep = '[:;/]';
+ }else{
+ $nssep = '[:;]';
+ }
+ $name = preg_replace('!.*'.$nssep.'!','',$name);
+ //if there is a hash we use the anchor name only
+ $name = preg_replace('!.*#!','',$name);
+ return $name;
+ }
+
+ /**
+ * Creates a linkid from a headline
+ *
+ * @param string $title The headline title
+ * @param boolean $create Create a new unique ID?
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ function _headerToLink($title, $create=false) {
+ if($create){
+ return sectionID($title,$this->headers);
+ }else{
+ $check = false;
+ return sectionID($title,$check);
+ }
+ }
- list ($src, $hash) = explode('#', $src, 2);
- if (media_isexternal($src)) return;
- resolve_mediaid(getNS($ID), $src, $exists);
- $this->meta['relation']['media'][$src] = $exists;
- }
+ /**
+ * Construct a title and handle images in titles
+ *
+ * @author Harry Fuecks <hfuecks@gmail.com>
+ */
+ function _getLinkTitle($title, $default, $id=null) {
+ global $conf;
+
+ $isImage = false;
+ if (is_array($title)){
+ if($title['title']) return '['.$title['title'].']';
+ } else if (is_null($title) || trim($title)==''){
+ if (useHeading('content') && $id){
+ $heading = p_get_first_heading($id,METADATA_DONT_RENDER);
+ if ($heading) return $heading;
+ }
+ return $default;
+ } else {
+ return $title;
+ }
+ }
+
+ function _firstimage($src){
+ if($this->firstimage) return;
+ global $ID;
+
+ list($src,$hash) = explode('#',$src,2);
+ if(!media_isexternal($src)){
+ resolve_mediaid(getNS($ID),$src, $exists);
+ }
+ if(preg_match('/.(jpe?g|gif|png)$/i',$src)){
+ $this->firstimage = $src;
+ }
+ }
+
+ function _recordMediaUsage($src) {
+ global $ID;
+
+ list ($src, $hash) = explode('#', $src, 2);
+ if (media_isexternal($src)) return;
+ resolve_mediaid(getNS($ID), $src, $exists);
+ $this->meta['relation']['media'][$src] = $exists;
+ }
}
//Setup VIM: ex: et ts=4 :
diff --git a/inc/parser/parser.php b/inc/parser/parser.php
index 4af1cd333..e39a4daf5 100644
--- a/inc/parser/parser.php
+++ b/inc/parser/parser.php
@@ -45,9 +45,9 @@ $PARSER_MODES = array(
//-------------------------------------------------------------------
/**
-* Sets up the Lexer with modes and points it to the Handler
-* For an intro to the Lexer see: wiki:parser
-*/
+ * Sets up the Lexer with modes and points it to the Handler
+ * For an intro to the Lexer see: wiki:parser
+ */
class Doku_Parser {
var $Handler;
@@ -70,9 +70,9 @@ class Doku_Parser {
}
/**
- * PHP preserves order of associative elements
- * Mode sequence is important
- */
+ * PHP preserves order of associative elements
+ * Mode sequence is important
+ */
function addMode($name, & $Mode) {
if ( !isset($this->modes['base']) ) {
$this->addBaseMode(new Doku_Parser_Mode_base());
@@ -134,7 +134,7 @@ class Doku_Parser {
* all modes are registered
*
* @author Harry Fuecks <hfuecks@gmail.com>
-*/
+ */
class Doku_Parser_Mode {
/**
@@ -621,7 +621,7 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode {
var $pattern = '';
function Doku_Parser_Mode_acronym($acronyms) {
- usort($acronyms,array($this,'_compare'));
+ usort($acronyms,array($this,'_compare'));
$this->acronyms = $acronyms;
}
@@ -652,12 +652,12 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode {
$a_len = strlen($a);
$b_len = strlen($b);
if ($a_len > $b_len) {
- return -1;
+ return -1;
} else if ($a_len < $b_len) {
- return 1;
+ return 1;
}
- return 0;
+ return 0;
}
}
@@ -807,7 +807,6 @@ class Doku_Parser_Mode_quotes extends Doku_Parser_Mode {
"\"",$mode,'doublequoteclosing'
);
-
}
function getSort() {
diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php
index 7df369478..c697e990c 100644
--- a/inc/parser/renderer.php
+++ b/inc/parser/renderer.php
@@ -74,12 +74,12 @@ class Doku_Renderer extends DokuWiki_Plugin {
*/
function nest($instructions) {
- foreach ( $instructions as $instruction ) {
- // execute the callback against ourself
- if (method_exists($this,$instruction[0])) {
- call_user_func_array(array($this, $instruction[0]), $instruction[1] ? $instruction[1] : array());
+ foreach ( $instructions as $instruction ) {
+ // execute the callback against ourself
+ if (method_exists($this,$instruction[0])) {
+ call_user_func_array(array($this, $instruction[0]), $instruction[1] ? $instruction[1] : array());
+ }
}
- }
}
// dummy closing instruction issued by Doku_Handler_Nest, normally the syntax mode should
@@ -203,42 +203,42 @@ class Doku_Renderer extends DokuWiki_Plugin {
// $link like 'SomePage'
function camelcaselink($link) {}
- function locallink($hash, $name = NULL) {}
+ function locallink($hash, $name = null) {}
// $link like 'wiki:syntax', $title could be an array (media)
- function internallink($link, $title = NULL) {}
+ function internallink($link, $title = null) {}
// $link is full URL with scheme, $title could be an array (media)
- function externallink($link, $title = NULL) {}
+ function externallink($link, $title = null) {}
function rss ($url,$params) {}
// $link is the original link - probably not much use
// $wikiName is an indentifier for the wiki
// $wikiUri is the URL fragment to append to some known URL
- function interwikilink($link, $title = NULL, $wikiName, $wikiUri) {}
+ function interwikilink($link, $title = null, $wikiName, $wikiUri) {}
// Link to file on users OS, $title could be an array (media)
- function filelink($link, $title = NULL) {}
+ function filelink($link, $title = null) {}
// Link to a Windows share, , $title could be an array (media)
- function windowssharelink($link, $title = NULL) {}
+ function windowssharelink($link, $title = null) {}
-// function email($address, $title = NULL) {}
- function emaillink($address, $name = NULL) {}
+// function email($address, $title = null) {}
+ function emaillink($address, $name = null) {}
- function internalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL) {}
+ function internalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null) {}
- function externalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL) {}
+ function externalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null) {}
function internalmedialink (
- $src,$title=NULL,$align=NULL,$width=NULL,$height=NULL,$cache=NULL
+ $src,$title=null,$align=null,$width=null,$height=null,$cache=null
) {}
function externalmedialink(
- $src,$title=NULL,$align=NULL,$width=NULL,$height=NULL,$cache=NULL
+ $src,$title=null,$align=null,$width=null,$height=null,$cache=null
) {}
function table_open($maxcols = null, $numrows = null, $pos = null){}
@@ -249,11 +249,11 @@ class Doku_Renderer extends DokuWiki_Plugin {
function tablerow_close(){}
- function tableheader_open($colspan = 1, $align = NULL, $rowspan = 1){}
+ function tableheader_open($colspan = 1, $align = null, $rowspan = 1){}
function tableheader_close(){}
- function tablecell_open($colspan = 1, $align = NULL, $rowspan = 1){}
+ function tablecell_open($colspan = 1, $align = null, $rowspan = 1){}
function tablecell_close(){}
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index 32aa99a1b..5fca1bf45 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -33,6 +33,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
private $lastsecid = 0; // last section edit id, used by startSectionEdit
var $headers = array();
+ /** @var array a list of footnotes, list starts at 1! */
var $footnotes = array();
var $lastlevel = 0;
var $node = array(0,0,0,0,0);
@@ -59,7 +60,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* Finish an edit section range
*
* @param $end int The byte position for the edit end; null for the rest of
- the page
+ * the page
* @author Adrian Lang <lang@cosmocode.de>
*/
public function finishSectionEdit($end = null) {
@@ -100,10 +101,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if ( count ($this->footnotes) > 0 ) {
$this->doc .= '<div class="footnotes">'.DOKU_LF;
- $id = 0;
- foreach ( $this->footnotes as $footnote ) {
- $id++; // the number of the current footnote
-
+ foreach ( $this->footnotes as $id => $footnote ) {
// check its not a placeholder that indicates actual footnote text is elsewhere
if (substr($footnote, 0, 5) != "@@FNT") {
@@ -116,11 +114,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$alt = array_keys($this->footnotes, "@@FNT$id");
if (count($alt)) {
- foreach ($alt as $ref) {
- // set anchor and backlink for the other footnotes
- $this->doc .= ', <sup><a href="#fnt__'.($ref+1).'" id="fn__'.($ref+1).'" class="fn_bot">';
- $this->doc .= ($ref+1).')</a></sup> '.DOKU_LF;
- }
+ foreach ($alt as $ref) {
+ // set anchor and backlink for the other footnotes
+ $this->doc .= ', <sup><a href="#fnt__'.($ref).'" id="fn__'.($ref).'" class="fn_bot">';
+ $this->doc .= ($ref).')</a></sup> '.DOKU_LF;
+ }
}
// add footnote markup and close this footnote
@@ -295,6 +293,10 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* @author Andreas Gohr
*/
function footnote_close() {
+ /** @var $fnid int takes track of seen footnotes, assures they are unique even across multiple docs FS#2841 */
+ static $fnid = 0;
+ // assign new footnote id (we start at 1)
+ $fnid++;
// recover footnote into the stack and restore old content
$footnote = $this->doc;
@@ -306,17 +308,14 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if ($i === false) {
// its a new footnote, add it to the $footnotes array
- $id = count($this->footnotes)+1;
- $this->footnotes[count($this->footnotes)] = $footnote;
+ $this->footnotes[$fnid] = $footnote;
} else {
- // seen this one before, translate the index to an id and save a placeholder
- $i++;
- $id = count($this->footnotes)+1;
- $this->footnotes[count($this->footnotes)] = "@@FNT".($i);
+ // seen this one before, save a placeholder
+ $this->footnotes[$fnid] = "@@FNT".($i);
}
// output the footnote reference and link
- $this->doc .= '<sup><a href="#fn__'.$id.'" id="fnt__'.$id.'" class="fn_top">'.$id.')</a></sup>';
+ $this->doc .= '<sup><a href="#fn__'.$fnid.'" id="fnt__'.$fnid.'" class="fn_top">'.$fnid.')</a></sup>';
}
function listu_open() {
@@ -367,12 +366,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
global $conf;
if($conf['phpok']){
- ob_start();
- eval($text);
- $this->doc .= ob_get_contents();
- ob_end_clean();
+ ob_start();
+ eval($text);
+ $this->doc .= ob_get_contents();
+ ob_end_clean();
} else {
- $this->doc .= p_xhtml_cached_geshi($text, 'php', $wrapper);
+ $this->doc .= p_xhtml_cached_geshi($text, 'php', $wrapper);
}
}
@@ -392,9 +391,9 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
global $conf;
if($conf['htmlok']){
- $this->doc .= $text;
+ $this->doc .= $text;
} else {
- $this->doc .= p_xhtml_cached_geshi($text, 'html4strict', $wrapper);
+ $this->doc .= p_xhtml_cached_geshi($text, 'html4strict', $wrapper);
}
}
@@ -541,13 +540,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
/**
- */
+ */
function camelcaselink($link) {
- $this->internallink($link,$link);
+ $this->internallink($link,$link);
}
- function locallink($hash, $name = NULL){
+ function locallink($hash, $name = null){
global $ID;
$name = $this->_getLinkTitle($name, $hash, $isImage);
$hash = $this->_headerToLink($hash);
@@ -565,7 +564,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- function internallink($id, $name = NULL, $search=NULL,$returnonly=false,$linktype='content') {
+ function internallink($id, $name = null, $search=null,$returnonly=false,$linktype='content') {
global $conf;
global $ID;
global $INFO;
@@ -644,7 +643,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
}
- function externallink($url, $name = NULL) {
+ function externallink($url, $name = null) {
global $conf;
$name = $this->_getLinkTitle($name, $url, $isImage);
@@ -687,7 +686,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
*/
- function interwikilink($match, $name = NULL, $wikiName, $wikiUri) {
+ function interwikilink($match, $name = null, $wikiName, $wikiUri) {
global $conf;
$link = array();
@@ -721,7 +720,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
*/
- function windowssharelink($url, $name = NULL) {
+ function windowssharelink($url, $name = null) {
global $conf;
global $lang;
//simple setup
@@ -737,7 +736,6 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['class'] = 'media';
}
-
$link['title'] = $this->_xmlEntities($url);
$url = str_replace('\\','/',$url);
$url = 'file:///'.$url;
@@ -747,7 +745,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= $this->_formatLink($link);
}
- function emaillink($address, $name = NULL) {
+ function emaillink($address, $name = null) {
global $conf;
//simple setup
$link = array();
@@ -782,8 +780,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= $this->_formatLink($link);
}
- function internalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL, $return=NULL) {
+ function internalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null, $return=NULL) {
global $ID;
list($src,$hash) = explode('#',$src,2);
resolve_mediaid(getNS($ID),$src, $exists);
@@ -823,8 +821,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
}
- function externalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL) {
+ function externalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null) {
list($src,$hash) = explode('#',$src,2);
$noLink = false;
$render = ($linking == 'linkonly') ? false : true;
@@ -880,7 +878,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$mod = 1;
$start = 0;
$end = $feed->get_item_quantity();
- $end = ($end > $params['max']) ? $params['max'] : $end;;
+ $end = ($end > $params['max']) ? $params['max'] : $end;
}
$this->doc .= '<ul class="rss">';
@@ -964,7 +962,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= DOKU_LF . DOKU_TAB . '</tr>' . DOKU_LF;
}
- function tableheader_open($colspan = 1, $align = NULL, $rowspan = 1){
+ function tableheader_open($colspan = 1, $align = null, $rowspan = 1){
$class = 'class="col' . $this->_counter['cell_counter']++;
if ( !is_null($align) ) {
$class .= ' '.$align.'align';
@@ -985,7 +983,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= '</th>';
}
- function tablecell_open($colspan = 1, $align = NULL, $rowspan = 1){
+ function tablecell_open($colspan = 1, $align = null, $rowspan = 1){
$class = 'class="col' . $this->_counter['cell_counter']++;
if ( !is_null($align) ) {
$class .= ' '.$align.'align';
@@ -1051,8 +1049,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- function _media ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $render = true) {
+ function _media ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $render = true) {
$ret = '';
@@ -1196,7 +1194,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* @author Harry Fuecks <hfuecks@gmail.com>
*/
- function _getLinkTitle($title, $default, & $isImage, $id=NULL, $linktype='content') {
+ function _getLinkTitle($title, $default, & $isImage, $id=null, $linktype='content') {
global $conf;
$isImage = false;
@@ -1255,8 +1253,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* @access protected
* @return array
*/
- function _getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render)
- {
+ function _getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render) {
global $conf;
$link = array();
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 56161af44..b67daaabb 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -625,7 +625,8 @@ function & p_get_renderer($mode) {
$rclass = "Doku_Renderer_$rname";
if( class_exists($rclass) ) {
- return new $rclass();
+ $Renderer = new $rclass();
+ return $Renderer;
}
// try default renderer first:
@@ -641,10 +642,7 @@ function & p_get_renderer($mode) {
$Renderer = new $rclass();
}else{
// Maybe a plugin/component is available?
- list($plugin, $component) = $plugin_controller->_splitName($rname);
- if (!$plugin_controller->isdisabled($plugin)){
- $Renderer =& $plugin_controller->load('renderer',$rname);
- }
+ $Renderer = $plugin_controller->load('renderer',$rname);
if(!isset($Renderer) || is_null($Renderer)){
msg("No renderer '$rname' found for mode '$mode'",-1);
diff --git a/inc/plugin.php b/inc/plugin.php
index 422b82534..dccd37bd9 100644
--- a/inc/plugin.php
+++ b/inc/plugin.php
@@ -97,7 +97,7 @@ class DokuWiki_Plugin {
function localFN($id) {
global $conf;
$plugin = $this->getPluginName();
- $file = DOKU_CONF.'/plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt';
+ $file = DOKU_CONF.'plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt';
if (!@file_exists($file)){
$file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.txt';
if(!@file_exists($file)){
diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php
index 0b4041a77..d80cd4c9e 100644
--- a/inc/plugincontroller.class.php
+++ b/inc/plugincontroller.class.php
@@ -11,15 +11,15 @@ if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
class Doku_Plugin_Controller {
- var $list_bytype = array();
- var $tmp_plugins = array();
- var $plugin_cascade = array('default'=>array(),'local'=>array(),'protected'=>array());
- var $last_local_config_file = '';
+ protected $list_bytype = array();
+ protected $tmp_plugins = array();
+ protected $plugin_cascade = array('default'=>array(),'local'=>array(),'protected'=>array());
+ protected $last_local_config_file = '';
/**
* Populates the master list of plugins
*/
- function __construct() {
+ public function __construct() {
$this->loadConfig();
$this->_populateMasterList();
}
@@ -34,11 +34,13 @@ class Doku_Plugin_Controller {
* false to only return enabled plugins,
* true to return both enabled and disabled plugins
*
- * @return array of plugin names
+ * @return array of
+ * - plugin names when $type = ''
+ * - or plugin component names when a $type is given
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- function getList($type='',$all=false){
+ public function getList($type='',$all=false){
// request the complete list
if (!$type) {
@@ -64,9 +66,9 @@ class Doku_Plugin_Controller {
* @param $name string name of the plugin to load
* @param $new bool true to return a new instance of the plugin, false to use an already loaded instance
* @param $disabled bool true to load even disabled plugins
- * @return objectreference the plugin object or null on failure
+ * @return DokuWiki_Plugin|DokuWiki_Syntax_Plugin|null the plugin object or null on failure
*/
- function load($type,$name,$new=false,$disabled=false){
+ public function load($type,$name,$new=false,$disabled=false){
//we keep all loaded plugins available in global scope for reuse
global $DOKU_PLUGINS;
@@ -108,27 +110,62 @@ class Doku_Plugin_Controller {
return $DOKU_PLUGINS[$type][$name];
}
- function isdisabled($plugin) {
+ /**
+ * Whether plugin is disabled
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true disabled, false enabled
+ */
+ public function isdisabled($plugin) {
return empty($this->tmp_plugins[$plugin]);
}
- function disable($plugin) {
+ /**
+ * Disable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
+ public function disable($plugin) {
if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false;
$this->tmp_plugins[$plugin] = 0;
return $this->saveList();
}
- function enable($plugin) {
+ /**
+ * Enable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
+ public function enable($plugin) {
if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false;
$this->tmp_plugins[$plugin] = 1;
return $this->saveList();
}
- function get_directory($plugin) {
+ /**
+ * Returns directory name of plugin
+ *
+ * @param string $plugin name of plugin
+ * @return string name of directory
+ */
+ public function get_directory($plugin) {
return $plugin;
}
+ /**
+ * Returns cascade of the config files
+ *
+ * @return array with arrays of plugin configs
+ */
+ public function getCascade() {
+ return $this->plugin_cascade;
+ }
+
protected function _populateMasterList() {
+ global $conf;
+
if ($dh = @opendir(DOKU_PLUGIN)) {
$all_plugins = array();
while (false !== ($plugin = readdir($dh))) {
@@ -167,6 +204,13 @@ class Doku_Plugin_Controller {
}
}
+ /**
+ * Includes the plugin config $files
+ * and returns the entries of the $plugins array set in these files
+ *
+ * @param array $files list of files to include, latter overrides previous
+ * @return array with entries of the $plugins arrays of the included files
+ */
protected function checkRequire($files) {
$plugins = array();
foreach($files as $file) {
@@ -177,14 +221,15 @@ class Doku_Plugin_Controller {
return $plugins;
}
- function getCascade() {
- return $this->plugin_cascade;
- }
-
/**
* Save the current list of plugins
+ *
+ * @param bool $forceSave;
+ * false to save only when config changed
+ * true to always save
+ * @return bool; true saving succeed, false saving failed
*/
- function saveList($forceSave = false) {
+ protected function saveList($forceSave = false) {
global $conf;
if (empty($this->tmp_plugins)) return false;
@@ -204,7 +249,7 @@ class Doku_Plugin_Controller {
$backup = $file.'.bak';
if (@file_exists($backup)) @unlink($backup);
if (!@copy($file,$backup)) return false;
- if ($conf['fperm']) chmod($backup, $conf['fperm']);
+ if (!empty($conf['fperm'])) chmod($backup, $conf['fperm']);
}
//check if can open for writing, else restore
return io_saveFile($file,$out);
@@ -214,9 +259,10 @@ class Doku_Plugin_Controller {
/**
* Rebuild the set of local plugins
+ *
* @return array array of plugins to be saved in end($config_cascade['plugins']['local'])
*/
- function rebuildLocal() {
+ protected function rebuildLocal() {
//assign to local variable to avoid overwriting
$backup = $this->tmp_plugins;
//Can't do anything about protected one so rule them out completely
@@ -236,7 +282,7 @@ class Doku_Plugin_Controller {
* Build the list of plugins and cascade
*
*/
- function loadConfig() {
+ protected function loadConfig() {
global $config_cascade;
foreach(array('default','protected') as $type) {
if(array_key_exists($type,$config_cascade['plugins']))
@@ -251,7 +297,18 @@ class Doku_Plugin_Controller {
$this->tmp_plugins = array_merge($this->plugin_cascade['default'],$this->plugin_cascade['local'],$this->plugin_cascade['protected']);
}
- function _getListByType($type, $enabled) {
+ /**
+ * Returns a list of available plugin components of given type
+ *
+ * @param string $type, plugin_type name;
+ * the type of plugin to return,
+ * @param bool $enabled;
+ * true to return enabled plugins,
+ * false to return disabled plugins
+ *
+ * @return array of plugin components of requested type
+ */
+ protected function _getListByType($type, $enabled) {
$master_list = $enabled ? array_keys(array_filter($this->tmp_plugins)) : array_keys(array_filter($this->tmp_plugins,array($this,'negate')));
$plugins = array();
@@ -276,14 +333,29 @@ class Doku_Plugin_Controller {
return $plugins;
}
- function _splitName($name) {
+ /**
+ * Split name in a plugin name and a component name
+ *
+ * @param string $name
+ * @return array with
+ * - plugin name
+ * - and component name when available, otherwise empty string
+ */
+ protected function _splitName($name) {
if (array_search($name, array_keys($this->tmp_plugins)) === false) {
return explode('_',$name,2);
}
return array($name,'');
}
- function negate($input) {
+
+ /**
+ * Returns inverse boolean value of the input
+ *
+ * @param mixed $input
+ * @return bool inversed boolean value of input
+ */
+ protected function negate($input) {
return !(bool) $input;
}
}
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index 7c37d4f7f..894bbefb6 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -14,31 +14,92 @@ if(!defined('DOKU_PLUGIN_NAME_REGEX')) define('DOKU_PLUGIN_NAME_REGEX', '[a-zA-Z
/**
* Original plugin functions, remain for backwards compatibility
*/
+
+/**
+ * Return list of available plugins
+ *
+ * @param string $type type of plugins; empty string for all
+ * @param bool $all; true to retrieve all, false to retrieve only enabled plugins
+ * @return array with plugin names or plugin component names
+ */
function plugin_list($type='',$all=false) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->getList($type,$all);
}
+
+/**
+ * Returns plugin object
+ * Returns only new instances of a plugin when $new is true or if plugin is not Singleton,
+ * otherwise an already loaded instance.
+ *
+ * @param $type string type of plugin to load
+ * @param $name string name of the plugin to load
+ * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance
+ * @param $disabled bool true to load even disabled plugins
+ * @return DokuWiki_Plugin|DokuWiki_Syntax_Plugin|null the plugin object or null on failure
+ */
function plugin_load($type,$name,$new=false,$disabled=false) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->load($type,$name,$new,$disabled);
}
+
+/**
+ * Whether plugin is disabled
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true disabled, false enabled
+ */
function plugin_isdisabled($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->isdisabled($plugin);
}
+
+/**
+ * Enable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
function plugin_enable($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->enable($plugin);
}
+
+/**
+ * Disable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
function plugin_disable($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->disable($plugin);
}
+
+/**
+ * Returns directory name of plugin
+ *
+ * @param string $plugin name of plugin
+ * @return string name of directory
+ */
function plugin_directory($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->get_directory($plugin);
}
+
+/**
+ * Returns cascade of the config files
+ *
+ * @return array with arrays of plugin configs
+ */
function plugin_getcascade() {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->getCascade();
}
diff --git a/inc/search.php b/inc/search.php
index 884aa7b23..c2d31b959 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -9,14 +9,15 @@
if(!defined('DOKU_INC')) die('meh.');
/**
- * recurse direcory
+ * Recurse directory
*
* This function recurses into a given base directory
* and calls the supplied function for each file and directory
*
- * @param array ref $data The results of the search are stored here
+ * @param array &$data The results of the search are stored here
* @param string $base Where to start the search
* @param callback $func Callback (function name or array with object,method)
+ * @param array $opts option array will be given to the Callback
* @param string $dir Current directory beyond $base
* @param int $lvl Recursion Level
* @param mixed $sort 'natural' to use natural order sorting (default); 'date' to sort by filemtime; leave empty to skip sorting.
@@ -68,12 +69,12 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){
* decide if this directory should be traversed (true) or not (false)
* The function has to accept the following parameters:
*
- * &$data - Reference to the result data structure
- * $base - Base usually $conf['datadir']
- * $file - current file or directory relative to $base
- * $type - Type either 'd' for directory or 'f' for file
- * $lvl - Current recursion depht
- * $opts - option array as given to search()
+ * array &$data - Reference to the result data structure
+ * string $base - Base usually $conf['datadir']
+ * string $file - current file or directory relative to $base
+ * string $type - Type either 'd' for directory or 'f' for file
+ * int $lvl - Current recursion depht
+ * array $opts - option array as given to search()
*
* return values for files are ignored
*
@@ -110,7 +111,7 @@ function search_index(&$data,$base,$file,$type,$lvl,$opts){
$opts = array(
'pagesonly' => true,
'listdirs' => true,
- 'listfiles' => !$opts['nofiles'],
+ 'listfiles' => empty($opts['nofiles']),
'sneakyacl' => $conf['sneaky_index'],
// Hacky, should rather use recmatch
'depth' => preg_match('#^'.preg_quote($file, '#').'(/|$)#','/'.$opts['ns']) ? 0 : -1
@@ -334,6 +335,15 @@ function pathID($path,$keeptxt=false){
* showhidden bool show hidden files too
* firsthead bool return first heading for pages
*
+ * @param array &$data - Reference to the result data structure
+ * @param string $base - Base usually $conf['datadir']
+ * @param string $file - current file or directory relative to $base
+ * @param string $type - Type either 'd' for directory or 'f' for file
+ * @param int $lvl - Current recursion depht
+ * @param array $opts - option array as given to search()
+ * @return bool if this directory should be traversed (true) or not (false)
+ * return value is ignored for files
+ *
* @author Andreas Gohr <gohr@cosmocode.de>
*/
function search_universal(&$data,$base,$file,$type,$lvl,$opts){
@@ -367,7 +377,7 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){
}
// check ACL
- if(!$opts['skipacl']){
+ if(empty($opts['skipacl'])){
if($type == 'd'){
$item['perm'] = auth_quickaclcheck($item['id'].':*');
}else{
@@ -379,17 +389,17 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){
// are we done here maybe?
if($type == 'd'){
- if(!$opts['listdirs']) return $return;
- if(!$opts['skipacl'] && $opts['sneakyacl'] && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
- if($opts['dirmatch'] && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
- if($opts['nsmatch'] && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
+ if(empty($opts['listdirs'])) return $return;
+ if(empty($opts['skipacl']) && !empty($opts['sneakyacl']) && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
+ if(!empty($opts['dirmatch']) && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
+ if(!empty($opts['nsmatch']) && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
}else{
- if(!$opts['listfiles']) return $return;
- if(!$opts['skipacl'] && $item['perm'] < AUTH_READ) return $return;
- if($opts['pagesonly'] && (substr($file,-4) != '.txt')) return $return;
- if(!$opts['showhidden'] && isHiddenPage($item['id'])) return $return;
- if($opts['filematch'] && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
- if($opts['idmatch'] && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
+ if(empty($opts['listfiles'])) return $return;
+ if(empty($opts['skipacl']) && $item['perm'] < AUTH_READ) return $return;
+ if(!empty($opts['pagesonly']) && (substr($file,-4) != '.txt')) return $return;
+ if(empty($opts['showhidden']) && isHiddenPage($item['id'])) return $return;
+ if(!empty($opts['filematch']) && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
+ if(!empty($opts['idmatch']) && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
}
// still here? prepare the item
diff --git a/inc/subscription.php b/inc/subscription.php
index 4248e4b11..ddf2f39e6 100644
--- a/inc/subscription.php
+++ b/inc/subscription.php
@@ -62,7 +62,7 @@ class Subscription {
return false;
}
- if($conf['dperm']) chmod($lock, $conf['dperm']);
+ if(!empty($conf['dperm'])) chmod($lock, $conf['dperm']);
return true;
}
@@ -617,7 +617,7 @@ class Subscription {
* @param string $rev The revision of the page, set to the current revision of the page $id if not set
* @return string
*/
- protected function getMessageID($id, $rev = NULL) {
+ protected function getMessageID($id, $rev = null) {
static $listid = null;
if (is_null($listid)) {
$server = parse_url(DOKU_URL, PHP_URL_HOST);
@@ -694,4 +694,4 @@ class Subscription {
function subscription_addresslist(&$data) {
$sub = new Subscription();
$sub->notifyaddresses($data);
-} \ No newline at end of file
+}
diff --git a/inc/template.php b/inc/template.php
index ea73b01b6..41f398016 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -54,7 +54,7 @@ function tpl_incdir($tpl='') {
function tpl_basedir($tpl='') {
global $conf;
if(!$tpl) $tpl = $conf['template'];
- return DOKU_BASE.'lib/tpl/'.$conf['template'].'/';
+ return DOKU_BASE.'lib/tpl/'.$tpl.'/';
}
/**
@@ -223,7 +223,7 @@ function tpl_toc($return = false) {
if(in_array($class, $pluginlist)) {
// attempt to load the plugin
/** @var $plugin DokuWiki_Admin_Plugin */
- $plugin =& plugin_load('admin', $class);
+ $plugin = plugin_load('admin', $class);
}
}
if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) {
@@ -257,7 +257,7 @@ function tpl_admin() {
if(in_array($class, $pluginlist)) {
// attempt to load the plugin
/** @var $plugin DokuWiki_Admin_Plugin */
- $plugin =& plugin_load('admin', $class);
+ $plugin = plugin_load('admin', $class);
}
}
@@ -290,6 +290,7 @@ function tpl_metaheaders($alt = true) {
global $QUERY;
global $lang;
global $conf;
+ global $updateVersion;
// prepare the head array
$head = array();
@@ -317,11 +318,11 @@ function tpl_metaheaders($alt = true) {
if($alt) {
$head['link'][] = array(
'rel' => 'alternate', 'type'=> 'application/rss+xml',
- 'title'=> 'Recent Changes', 'href'=> DOKU_BASE.'feed.php'
+ 'title'=> $lang['btn_recent'], 'href'=> DOKU_BASE.'feed.php'
);
$head['link'][] = array(
'rel' => 'alternate', 'type'=> 'application/rss+xml',
- 'title'=> 'Current Namespace',
+ 'title'=> $lang['currentns'],
'href' => DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']
);
if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']) {
@@ -335,21 +336,21 @@ function tpl_metaheaders($alt = true) {
if($ACT == 'search') {
$head['link'][] = array(
'rel' => 'alternate', 'type'=> 'application/rss+xml',
- 'title'=> 'Search Result',
+ 'title'=> $lang['searchresult'],
'href' => DOKU_BASE.'feed.php?mode=search&q='.$QUERY
);
}
if(actionOK('export_xhtml')) {
$head['link'][] = array(
- 'rel' => 'alternate', 'type'=> 'text/html', 'title'=> 'Plain HTML',
+ 'rel' => 'alternate', 'type'=> 'text/html', 'title'=> $lang['plainhtml'],
'href'=> exportlink($ID, 'xhtml', '', false, '&')
);
}
if(actionOK('export_raw')) {
$head['link'][] = array(
- 'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> 'Wiki Markup',
+ 'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> $lang['wikimarkup'],
'href'=> exportlink($ID, 'raw', '', false, '&')
);
}
@@ -400,7 +401,7 @@ function tpl_metaheaders($alt = true) {
// make $INFO and other vars available to JavaScripts
$json = new JSON();
$script = "var NS='".$INFO['namespace']."';";
- if($conf['useacl'] && $_SERVER['REMOTE_USER']) {
+ if($conf['useacl'] && !empty($_SERVER['REMOTE_USER'])) {
$script .= "var SIG='".toolbar_signature()."';";
}
$script .= 'var JSINFO = '.$json->encode($JSINFO).';';
@@ -605,6 +606,7 @@ function tpl_get_action($type) {
// check disabled actions and fix the badly named ones
if($type == 'history') $type = 'revisions';
+ if ($type == 'subscription') $type = 'subscribe';
if(!actionOK($type)) return false;
$accesskey = null;
@@ -679,12 +681,12 @@ function tpl_get_action($type) {
}
break;
case 'register':
- if($_SERVER['REMOTE_USER']) {
+ if(!empty($_SERVER['REMOTE_USER'])) {
return false;
}
break;
case 'resendpwd':
- if($_SERVER['REMOTE_USER']) {
+ if(!empty($_SERVER['REMOTE_USER'])) {
return false;
}
break;
@@ -700,10 +702,6 @@ function tpl_get_action($type) {
$params['rev'] = $REV;
$params['sectok'] = getSecurityToken();
break;
- /** @noinspection PhpMissingBreakStatementInspection */
- case 'subscription':
- $type = 'subscribe';
- $params['do'] = 'subscribe';
case 'subscribe':
if(!$_SERVER['REMOTE_USER']) {
return false;
@@ -1233,7 +1231,7 @@ function tpl_localeFN($id) {
* @param bool $fromajax - set true when calling this function via ajax
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaContent($fromajax = false) {
+function tpl_mediaContent($fromajax = false, $sort='natural') {
global $IMG;
global $AUTH;
global $INUSE;
@@ -1263,7 +1261,7 @@ function tpl_mediaContent($fromajax = false) {
if($do == 'filesinuse') {
media_filesinuse($INUSE, $IMG);
} elseif($do == 'filelist') {
- media_filelist($NS, $AUTH, $JUMPTO);
+ media_filelist($NS, $AUTH, $JUMPTO,false,$sort);
} elseif($do == 'searchlist') {
media_searchlist($INPUT->str('q'), $NS, $AUTH);
} else {
@@ -1411,7 +1409,7 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
if($REV) echo '<input type="hidden" name="rev" value="'.$REV.'" />';
- if ($_SERVER['REMOTE_USER']) {
+ if (!empty($_SERVER['REMOTE_USER'])) {
echo '<input type="hidden" name="sectok" value="'.getSecurityToken().'" />';
}
@@ -1793,7 +1791,7 @@ function tpl_classes() {
'dokuwiki',
'mode_'.$ACT,
'tpl_'.$conf['template'],
- $_SERVER['REMOTE_USER'] ? 'loggedIn' : '',
+ !empty($_SERVER['REMOTE_USER']) ? 'loggedIn' : '',
$INFO['exists'] ? '' : 'notFound',
($ID == $conf['start']) ? 'home' : '',
);