summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/IXR_Library.php57
-rw-r--r--inc/auth.php23
-rw-r--r--inc/changelog.php13
-rw-r--r--inc/cliopts.php4
-rw-r--r--inc/feedcreator.class.php56
-rw-r--r--inc/fetch.functions.php5
-rw-r--r--inc/form.php6
-rw-r--r--inc/html.php18
-rw-r--r--inc/io.php190
-rw-r--r--inc/lang/ar/lang.php10
-rw-r--r--inc/lang/bg/lang.php6
-rw-r--r--inc/lang/bn/lang.php17
-rw-r--r--inc/lang/ca/lang.php6
-rw-r--r--inc/lang/de-informal/lang.php20
-rw-r--r--inc/lang/de/lang.php2
-rw-r--r--inc/lang/el/lang.php6
-rw-r--r--inc/lang/eo/lang.php4
-rw-r--r--inc/lang/es/lang.php4
-rw-r--r--inc/lang/et/lang.php2
-rw-r--r--inc/lang/fi/lang.php4
-rw-r--r--inc/lang/fo/lang.php10
-rw-r--r--inc/lang/fr/lang.php6
-rw-r--r--inc/lang/gl/lang.php4
-rw-r--r--inc/lang/he/lang.php10
-rw-r--r--inc/lang/he/mailtext.txt4
-rw-r--r--inc/lang/he/registermail.txt4
-rw-r--r--inc/lang/hr/lang.php4
-rw-r--r--inc/lang/id/lang.php27
-rw-r--r--inc/lang/ja/index.txt2
-rw-r--r--inc/lang/ka/lang.php86
-rw-r--r--inc/lang/kk/lang.php4
-rw-r--r--inc/lang/km/lang.php9
-rw-r--r--inc/lang/ko/edit.txt2
-rw-r--r--inc/lang/ko/lang.php17
-rw-r--r--inc/lang/ku/admin.txt4
-rw-r--r--inc/lang/ku/denied.txt4
-rw-r--r--inc/lang/ku/editrev.txt2
-rw-r--r--inc/lang/ku/lang.php93
-rw-r--r--inc/lang/ku/locked.txt3
-rw-r--r--inc/lang/ku/login.txt4
-rw-r--r--inc/lang/ku/mailtext.txt17
-rw-r--r--inc/lang/ku/norev.txt4
-rw-r--r--inc/lang/ku/password.txt10
-rw-r--r--inc/lang/ku/read.txt2
-rw-r--r--inc/lang/ku/register.txt4
-rw-r--r--inc/lang/ku/revisions.txt4
-rw-r--r--inc/lang/ku/showrev.txt2
-rw-r--r--inc/lang/ku/stopwords.txt29
-rw-r--r--inc/lang/la/lang.php8
-rw-r--r--inc/lang/mk/lang.php4
-rw-r--r--inc/lang/nl/lang.php4
-rw-r--r--inc/lang/no/lang.php6
-rw-r--r--inc/lang/pl/lang.php4
-rw-r--r--inc/lang/pt/lang.php4
-rw-r--r--inc/lang/ro/lang.php4
-rw-r--r--inc/lang/ru/lang.php5
-rw-r--r--inc/lang/sq/lang.php8
-rw-r--r--inc/lang/ta/lang.php6
-rw-r--r--inc/lang/th/lang.php4
-rw-r--r--inc/lang/tr/lang.php6
-rw-r--r--inc/lang/uk/lang.php3
-rw-r--r--inc/lang/zh-tw/lang.php6
-rw-r--r--inc/lang/zh/lang.php4
-rw-r--r--inc/pageutils.php26
-rw-r--r--inc/parser/renderer.php14
-rw-r--r--inc/parser/xhtml.php87
-rw-r--r--inc/parserutils.php19
-rw-r--r--inc/remote.php2
-rw-r--r--inc/template.php59
69 files changed, 489 insertions, 618 deletions
diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php
index 301a8d9e1..5ae1402b9 100644
--- a/inc/IXR_Library.php
+++ b/inc/IXR_Library.php
@@ -297,6 +297,7 @@ class IXR_Message {
* @param $tag
*/
function tag_close($parser, $tag) {
+ $value = null;
$valueFlag = false;
switch($tag) {
case 'int':
@@ -818,18 +819,14 @@ EOD;
* @since 1.5
*/
class IXR_Date {
- var $year;
- var $month;
- var $day;
- var $hour;
- var $minute;
- var $second;
- var $timezone;
+
+ /** @var DateTime */
+ protected $date;
/**
* @param int|string $time
*/
- function __construct($time) {
+ public function __construct($time) {
// $time can be a PHP timestamp or an ISO one
if(is_numeric($time)) {
$this->parseTimestamp($time);
@@ -839,51 +836,48 @@ class IXR_Date {
}
/**
+ * Parse unix timestamp
+ *
* @param int $timestamp
*/
- function parseTimestamp($timestamp) {
- $this->year = gmdate('Y', $timestamp);
- $this->month = gmdate('m', $timestamp);
- $this->day = gmdate('d', $timestamp);
- $this->hour = gmdate('H', $timestamp);
- $this->minute = gmdate('i', $timestamp);
- $this->second = gmdate('s', $timestamp);
- $this->timezone = '';
+ protected function parseTimestamp($timestamp) {
+ $this->date = new DateTime('@' . $timestamp);
}
/**
+ * Parses less or more complete iso dates and much more, if no timezone given assumes UTC
+ *
* @param string $iso
*/
- function parseIso($iso) {
- if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/', $iso, $match)) {
- $this->year = (int) $match[1];
- $this->month = (int) $match[2];
- $this->day = (int) $match[3];
- $this->hour = (int) $match[5];
- $this->minute = (int) $match[6];
- $this->second = (int) $match[8];
- }
+ protected function parseIso($iso) {
+ $this->date = new DateTime($iso, new DateTimeZone("UTC"));
}
/**
+ * Returns date in ISO 8601 format
+ *
* @return string
*/
- function getIso() {
- return $this->year . $this->month . $this->day . 'T' . $this->hour . ':' . $this->minute . ':' . $this->second . $this->timezone;
+ public function getIso() {
+ return $this->date->format(DateTime::ISO8601);
}
/**
+ * Returns date in valid xml
+ *
* @return string
*/
- function getXml() {
+ public function getXml() {
return '<dateTime.iso8601>' . $this->getIso() . '</dateTime.iso8601>';
}
/**
+ * Returns Unix timestamp
+ *
* @return int
*/
function getTimestamp() {
- return gmmktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
+ return $this->date->getTimestamp();
}
}
@@ -923,6 +917,9 @@ class IXR_IntrospectionServer extends IXR_Server {
/** @var string[] */
var $help;
+ /**
+ * Constructor
+ */
function __construct() {
$this->setCallbacks();
$this->setCapabilities();
@@ -1107,7 +1104,7 @@ class IXR_ClientMulticall extends IXR_Client {
* @param int $port
*/
function __construct($server, $path = false, $port = 80) {
- parent::IXR_Client($server, $path, $port);
+ parent::__construct($server, $path, $port);
//$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
}
diff --git a/inc/auth.php b/inc/auth.php
index 60b8c7c78..e04a6ca1a 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -739,28 +739,23 @@ function auth_aclcheck_cb($data) {
$user = utf8_strtolower($user);
$groups = array_map('utf8_strtolower', $groups);
}
- $user = $auth->cleanUser($user);
+ $user = auth_nameencode($auth->cleanUser($user));
$groups = array_map(array($auth, 'cleanGroup'), (array) $groups);
- $user = auth_nameencode($user);
//prepend groups with @ and nameencode
- $cnt = count($groups);
- for($i = 0; $i < $cnt; $i++) {
- $groups[$i] = '@'.auth_nameencode($groups[$i]);
+ foreach($groups as &$group) {
+ $group = '@'.auth_nameencode($group);
}
$ns = getNS($id);
$perm = -1;
- if($user || count($groups)) {
- //add ALL group
- $groups[] = '@ALL';
- //add User
- if($user) $groups[] = $user;
- } else {
- $groups[] = '@ALL';
- }
-
+ //add ALL group
+ $groups[] = '@ALL';
+
+ //add User
+ if($user) $groups[] = $user;
+
//check exact match first
$matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
if(count($matches)) {
diff --git a/inc/changelog.php b/inc/changelog.php
index d1ef7973e..f4731021c 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -849,18 +849,17 @@ abstract class ChangeLog {
public function isCurrentRevision($rev) {
return $rev == @filemtime($this->getFilename());
}
-
+
/**
- * Return an existing revision for a specific date which is
+ * Return an existing revision for a specific date which is
* the current one or younger or equal then the date
*
- * @param string $id
* @param number $date_at timestamp
* @return string revision ('' for current)
*/
function getLastRevisionAt($date_at){
//requested date_at(timestamp) younger or equal then modified_time($this->id) => load current
- if($date_at >= @filemtime($this->getFilename())) {
+ if($date_at >= @filemtime($this->getFilename())) {
return '';
} else if ($rev = $this->getRelativeRevision($date_at+1, -1)) { //+1 to get also the requested date revision
return $rev;
@@ -1049,6 +1048,12 @@ class MediaChangelog extends ChangeLog {
*
* @author Ben Coburn <btcoburn@silicodon.net>
* @author Kate Arzamastseva <pshns@ukr.net>
+ *
+ * @param string $id
+ * @param int $rev
+ * @param int $chunk_size
+ * @param bool $media
+ * @return array|bool
*/
function getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false) {
dbg_deprecated('class PageChangeLog or class MediaChangelog');
diff --git a/inc/cliopts.php b/inc/cliopts.php
index 7d71c7dc9..d7d06119a 100644
--- a/inc/cliopts.php
+++ b/inc/cliopts.php
@@ -447,7 +447,7 @@ class Doku_Cli_Opts_Error {
var $code;
var $msg;
- function Doku_Cli_Opts_Error($code, $msg) {
+ function __construct($code, $msg) {
$this->code = $code;
$this->msg = $msg;
}
@@ -468,7 +468,7 @@ class Doku_Cli_Opts_Container {
var $options = array();
var $args = array();
- function Doku_Cli_Opts_Container($options) {
+ function __construct($options) {
foreach ( $options[0] as $option ) {
if ( false !== ( strpos($option[0], '--') ) ) {
$opt_name = substr($option[0], 2);
diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php
index b90da5724..fe444b39b 100644
--- a/inc/feedcreator.class.php
+++ b/inc/feedcreator.class.php
@@ -129,6 +129,9 @@ class FeedItem extends HtmlDescribable {
// var $source;
}
+/**
+ * Class EnclosureItem
+ */
class EnclosureItem extends HtmlDescribable {
/*
*
@@ -226,7 +229,7 @@ class FeedHtmlField {
* Creates a new instance of FeedHtmlField.
* @param string $parFieldContent: if given, sets the rawFieldContent property
*/
- function FeedHtmlField($parFieldContent) {
+ function __construct($parFieldContent) {
if ($parFieldContent) {
$this->rawFieldContent = $parFieldContent;
}
@@ -482,6 +485,8 @@ class FeedCreator extends HtmlDescribable {
var $additionalElements = Array();
+ var $_timeout;
+
/**
* Adds an FeedItem to the feed.
*
@@ -505,7 +510,7 @@ class FeedCreator extends HtmlDescribable {
* @param int $length the maximum length the string should be truncated to
* @return string the truncated string
*/
- function iTrunc($string, $length) {
+ static function iTrunc($string, $length) {
if (strlen($string)<=$length) {
return $string;
}
@@ -604,6 +609,8 @@ class FeedCreator extends HtmlDescribable {
/**
* @since 1.4
* @access private
+ *
+ * @param string $filename
*/
function _redirect($filename) {
// attention, heavily-commented-out-area
@@ -697,7 +704,7 @@ class FeedDate {
* Accepts RFC 822, ISO 8601 date formats as well as unix time stamps.
* @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and time is used.
*/
- function FeedDate($dateString="") {
+ function __construct($dateString="") {
if ($dateString=="") $dateString = date("r");
if (is_numeric($dateString)) {
@@ -878,7 +885,10 @@ class RSSCreator091 extends FeedCreator {
*/
var $RSSVersion;
- function RSSCreator091() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->_setRSSVersion("0.91");
$this->contentType = "application/rss+xml";
}
@@ -886,6 +896,8 @@ class RSSCreator091 extends FeedCreator {
/**
* Sets this RSS feed's version number.
* @access private
+ *
+ * @param $version
*/
function _setRSSVersion($version) {
$this->RSSVersion = $version;
@@ -1034,7 +1046,10 @@ class RSSCreator091 extends FeedCreator {
*/
class RSSCreator20 extends RSSCreator091 {
- function RSSCreator20() {
+ /**
+ * Constructor
+ */
+ function __construct() {
parent::_setRSSVersion("2.0");
}
@@ -1051,7 +1066,10 @@ class RSSCreator20 extends RSSCreator091 {
*/
class PIECreator01 extends FeedCreator {
- function PIECreator01() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->encoding = "utf-8";
}
@@ -1113,7 +1131,10 @@ class PIECreator01 extends FeedCreator {
*/
class AtomCreator10 extends FeedCreator {
- function AtomCreator10() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->contentType = "application/atom+xml";
$this->encoding = "utf-8";
}
@@ -1200,7 +1221,10 @@ class AtomCreator10 extends FeedCreator {
*/
class AtomCreator03 extends FeedCreator {
- function AtomCreator03() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->contentType = "application/atom+xml";
$this->encoding = "utf-8";
}
@@ -1272,12 +1296,19 @@ class AtomCreator03 extends FeedCreator {
* @author Kai Blankenhorn <kaib@bitfolge.de>
*/
class MBOXCreator extends FeedCreator {
-
- function MBOXCreator() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->contentType = "text/plain";
$this->encoding = "utf-8";
}
+ /**
+ * @param string $input
+ * @param int $line_max
+ * @return string
+ */
function qp_enc($input = "", $line_max = 76) {
$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
$lines = preg_split("/(?:\r\n|\r|\n)/", $input);
@@ -1363,7 +1394,10 @@ class MBOXCreator extends FeedCreator {
*/
class OPMLCreator extends FeedCreator {
- function OPMLCreator() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->encoding = "utf-8";
}
diff --git a/inc/fetch.functions.php b/inc/fetch.functions.php
index c99fbf20a..b8e75eaec 100644
--- a/inc/fetch.functions.php
+++ b/inc/fetch.functions.php
@@ -1,4 +1,4 @@
-<?php
+<?php
/**
* Functions used by lib/exe/fetch.php
* (not included by other parts of dokuwiki)
@@ -47,18 +47,15 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) {
// cache publically
header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT');
header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.$maxage);
- header('Pragma: public');
} else {
// cache in browser
header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT');
header('Cache-Control: private, no-transform, max-age='.$maxage);
- header('Pragma: no-cache');
}
} else {
// no cache at all
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');
header('Cache-Control: no-cache, no-transform');
- header('Pragma: no-cache');
}
//send important headers first, script stops here if '304 Not Modified' response
diff --git a/inc/form.php b/inc/form.php
index 748983281..91a171555 100644
--- a/inc/form.php
+++ b/inc/form.php
@@ -400,7 +400,7 @@ function form_makeWikiText($text, $attrs=array()) {
function form_makeButton($type, $act, $value='', $attrs=array()) {
if ($value == '') $value = $act;
$elem = array('_elem'=>'button', 'type'=>$type, '_action'=>$act,
- 'value'=>$value, 'class'=>'button');
+ 'value'=>$value);
if (!empty($attrs['accesskey']) && empty($attrs['title'])) {
$attrs['title'] = $value . ' ['.strtoupper($attrs['accesskey']).']';
}
@@ -761,7 +761,9 @@ function form_wikitext($attrs) {
*/
function form_button($attrs) {
$p = (!empty($attrs['_action'])) ? 'name="do['.$attrs['_action'].']" ' : '';
- return '<input '.$p.buildAttributes($attrs,true).' />';
+ $value = $attrs['value'];
+ unset($attrs['value']);
+ return '<button '.$p.buildAttributes($attrs,true).'>'.$value.'</button>';
}
/**
diff --git a/inc/html.php b/inc/html.php
index 36083a57e..0914a1762 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -183,7 +183,7 @@ function html_topbtn(){
* @param bool|string $label label text, false: lookup btn_$name in localization
* @return string
*/
-function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false){
+function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false){
global $conf;
global $lang;
@@ -221,13 +221,15 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false
$tip = htmlspecialchars($label);
}
- $ret .= '<input type="submit" value="'.hsc($label).'" class="button" ';
+ $ret .= '<button type="submit" ';
if($akey){
$tip .= ' ['.strtoupper($akey).']';
$ret .= 'accesskey="'.$akey.'" ';
}
$ret .= 'title="'.$tip.'" ';
$ret .= '/>';
+ $ret .= hsc($label);
+ $ret .= '</button>';
$ret .= '</div></form>';
return $ret;
@@ -856,26 +858,28 @@ function html_recent($first=0, $show_changes='both'){
$first -= $conf['recent'];
if ($first < 0) $first = 0;
$form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-prev')));
- $form->addElement(form_makeTag('input', array(
+ $form->addElement(form_makeOpenTag('button', array(
'type' => 'submit',
'name' => 'first['.$first.']',
- 'value' => $lang['btn_newer'],
'accesskey' => 'n',
'title' => $lang['btn_newer'].' [N]',
'class' => 'button show'
)));
+ $form->addElement($lang['btn_newer']);
+ $form->addElement(form_makeCloseTag('button'));
$form->addElement(form_makeCloseTag('div'));
}
if ($hasNext) {
$form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-next')));
- $form->addElement(form_makeTag('input', array(
+ $form->addElement(form_makeOpenTag('button', array(
'type' => 'submit',
'name' => 'first['.$last.']',
- 'value' => $lang['btn_older'],
'accesskey' => 'p',
'title' => $lang['btn_older'].' [P]',
'class' => 'button show'
)));
+ $form->addElement($lang['btn_older']);
+ $form->addElement(form_makeCloseTag('button'));
$form->addElement(form_makeCloseTag('div'));
}
$form->addElement(form_makeCloseTag('div'));
@@ -1005,7 +1009,7 @@ function html_li_default($item){
* @param callable $func callback to print an list item
* @param callable $lifunc callback to the opening li tag
* @param bool $forcewrapper Trigger building a wrapper ul if the first level is
- 0 (we have a root object) or 1 (just the root content)
+ * 0 (we have a root object) or 1 (just the root content)
* @return string html of an unordered list
*/
function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapper=false){
diff --git a/inc/io.php b/inc/io.php
index 0636a4b62..704c5b1a6 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -107,13 +107,15 @@ function io_readFile($file,$clean=true){
$ret = '';
if(file_exists($file)){
if(substr($file,-3) == '.gz'){
- $ret = join('',gzfile($file));
+ $ret = gzfile($file);
+ if(is_array($ret)) $ret = join('', $ret);
}else if(substr($file,-4) == '.bz2'){
$ret = bzfile($file);
}else{
$ret = file_get_contents($file);
}
}
+ if($ret === null) return false;
if($ret !== false && $clean){
return cleanText($ret);
}else{
@@ -127,22 +129,36 @@ function io_readFile($file,$clean=true){
* @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $file filename
- * @return string|bool content or false on error
+ * @param bool $array return array of lines
+ * @return string|array|bool content or false on error
*/
-function bzfile($file){
+function bzfile($file, $array=false) {
$bz = bzopen($file,"r");
if($bz === false) return false;
+ if($array) $lines = array();
$str = '';
- while (!feof($bz)){
+ while (!feof($bz)) {
//8192 seems to be the maximum buffersize?
$buffer = bzread($bz,8192);
if(($buffer === false) || (bzerrno($bz) !== 0)) {
return false;
}
$str = $str . $buffer;
+ if($array) {
+ $pos = strpos($str, "\n");
+ while($pos !== false) {
+ $lines[] = substr($str, 0, $pos+1);
+ $str = substr($str, $pos+1);
+ $pos = strpos($str, "\n");
+ }
+ }
}
bzclose($bz);
+ if($array) {
+ if($str !== '') $lines[] = $str;
+ return $lines;
+ }
return $str;
}
@@ -191,13 +207,7 @@ function _io_writeWikiPage_action($data) {
}
/**
- * Saves $content to $file.
- *
- * If the third parameter is set to true the given content
- * will be appended.
- *
- * Uses gzip if extension is .gz
- * and bz2 if extension is .bz2
+ * Internal function to save contents to a file.
*
* @author Andreas Gohr <andi@splitbrain.org>
*
@@ -206,64 +216,97 @@ function _io_writeWikiPage_action($data) {
* @param bool $append
* @return bool true on success, otherwise false
*/
-function io_saveFile($file,$content,$append=false){
+function _io_saveFile($file, $content, $append) {
global $conf;
$mode = ($append) ? 'ab' : 'wb';
-
$fileexists = file_exists($file);
- io_makeFileDir($file);
- io_lock($file);
+
if(substr($file,-3) == '.gz'){
$fh = @gzopen($file,$mode.'9');
- if(!$fh){
- msg("Writing $file failed",-1);
- io_unlock($file);
- return false;
- }
+ if(!$fh) return false;
gzwrite($fh, $content);
gzclose($fh);
}else if(substr($file,-4) == '.bz2'){
- $fh = @bzopen($file,$mode{0});
- if(!$fh){
- msg("Writing $file failed", -1);
- io_unlock($file);
- return false;
+ if($append) {
+ $bzcontent = bzfile($file);
+ if($bzcontent === false) return false;
+ $content = $bzcontent.$content;
}
+ $fh = @bzopen($file,'w');
+ if(!$fh) return false;
bzwrite($fh, $content);
bzclose($fh);
}else{
$fh = @fopen($file,$mode);
- if(!$fh){
- msg("Writing $file failed",-1);
- io_unlock($file);
- return false;
- }
+ if(!$fh) return false;
fwrite($fh, $content);
fclose($fh);
}
if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']);
- io_unlock($file);
return true;
}
/**
- * Delete exact linematch for $badline from $file.
+ * Saves $content to $file.
*
- * Be sure to include the trailing newline in $badline
+ * If the third parameter is set to true the given content
+ * will be appended.
*
* Uses gzip if extension is .gz
+ * and bz2 if extension is .bz2
*
- * 2005-10-14 : added regex option -- Christopher Smith <chris@jalakai.co.uk>
+ * @author Andreas Gohr <andi@splitbrain.org>
*
- * @author Steven Danz <steven-danz@kc.rr.com>
+ * @param string $file filename path to file
+ * @param string $content
+ * @param bool $append
+ * @return bool true on success, otherwise false
+ */
+function io_saveFile($file, $content, $append=false) {
+ io_makeFileDir($file);
+ io_lock($file);
+ if(!_io_saveFile($file, $content, $append)) {
+ msg("Writing $file failed",-1);
+ io_unlock($file);
+ return false;
+ }
+ io_unlock($file);
+ return true;
+}
+
+/**
+ * Replace one or more occurrences of a line in a file.
*
- * @param string $file filename
- * @param string $badline exact linematch to remove
- * @param bool $regex use regexp?
+ * The default, when $maxlines is 0 is to delete all matching lines then append a single line.
+ * A regex that matches any part of the line will remove the entire line in this mode.
+ * Captures in $newline are not available.
+ *
+ * Otherwise each line is matched and replaced individually, up to the first $maxlines lines
+ * or all lines if $maxlines is -1. If $regex is true then captures can be used in $newline.
+ *
+ * Be sure to include the trailing newline in $oldline when replacing entire lines.
+ *
+ * Uses gzip if extension is .gz
+ * and bz2 if extension is .bz2
+ *
+ * @author Steven Danz <steven-danz@kc.rr.com>
+ * @author Christopher Smith <chris@jalakai.co.uk>
+ * @author Patrick Brown <ptbrown@whoopdedo.org>
+ *
+ * @param string $file filename
+ * @param string $oldline exact linematch to remove
+ * @param string $newline new line to insert
+ * @param bool $regex use regexp?
+ * @param int $maxlines number of occurrences of the line to replace
* @return bool true on success
*/
-function io_deleteFromFile($file,$badline,$regex=false){
+function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) {
+ if ((string)$oldline === '') {
+ trigger_error('$oldline parameter cannot be empty in io_replaceInFile()', E_USER_WARNING);
+ return false;
+ }
+
if (!file_exists($file)) return true;
io_lock($file);
@@ -271,41 +314,40 @@ function io_deleteFromFile($file,$badline,$regex=false){
// load into array
if(substr($file,-3) == '.gz'){
$lines = gzfile($file);
+ }else if(substr($file,-4) == '.bz2'){
+ $lines = bzfile($file, true);
}else{
$lines = file($file);
}
- // remove all matching lines
- if ($regex) {
- $lines = preg_grep($badline,$lines,PREG_GREP_INVERT);
- } else {
- $pos = array_search($badline,$lines); //return null or false if not found
- while(is_int($pos)){
- unset($lines[$pos]);
- $pos = array_search($badline,$lines);
+ // make non-regexes into regexes
+ $pattern = $regex ? $oldline : '/^'.preg_quote($oldline,'/').'$/';
+ $replace = $regex ? $newline : addcslashes($newline, '\$');
+
+ // remove matching lines
+ if ($maxlines > 0) {
+ $count = 0;
+ $matched = 0;
+ while (($count < $maxlines) && (list($i,$line) = each($lines))) {
+ // $matched will be set to 0|1 depending on whether pattern is matched and line replaced
+ $lines[$i] = preg_replace($pattern, $replace, $line, -1, $matched);
+ if ($matched) $count++;
+ }
+ } else if ($maxlines == 0) {
+ $lines = preg_grep($pattern, $lines, PREG_GREP_INVERT);
+
+ if ((string)$newline !== ''){
+ $lines[] = $newline;
}
+ } else {
+ $lines = preg_replace($pattern, $replace, $lines);
}
if(count($lines)){
- $content = join('',$lines);
- if(substr($file,-3) == '.gz'){
- $fh = @gzopen($file,'wb9');
- if(!$fh){
- msg("Removing content from $file failed",-1);
- io_unlock($file);
- return false;
- }
- gzwrite($fh, $content);
- gzclose($fh);
- }else{
- $fh = @fopen($file,'wb');
- if(!$fh){
- msg("Removing content from $file failed",-1);
- io_unlock($file);
- return false;
- }
- fwrite($fh, $content);
- fclose($fh);
+ if(!_io_saveFile($file, join('',$lines), false)) {
+ msg("Removing content from $file failed",-1);
+ io_unlock($file);
+ return false;
}
}else{
@unlink($file);
@@ -316,6 +358,22 @@ function io_deleteFromFile($file,$badline,$regex=false){
}
/**
+ * Delete lines that match $badline from $file.
+ *
+ * Be sure to include the trailing newline in $badline
+ *
+ * @author Patrick Brown <ptbrown@whoopdedo.org>
+ *
+ * @param string $file filename
+ * @param string $badline exact linematch to remove
+ * @param bool $regex use regexp?
+ * @return bool true on success
+ */
+function io_deleteFromFile($file,$badline,$regex=false){
+ return io_replaceInFile($file,$badline,null,$regex,0);
+}
+
+/**
* Tries to lock a file
*
* Locking is only done for io_savefile and uses directories
diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php
index 2d21fc8f0..fb89bb0c7 100644
--- a/inc/lang/ar/lang.php
+++ b/inc/lang/ar/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -87,7 +87,7 @@ $lang['profchanged'] = 'حُدث الملف الشخصي للمستخ
$lang['profnodelete'] = 'هذه الموسوعه لا ندعم حذف الأشخاص';
$lang['profdeleteuser'] = 'احذف حساب';
$lang['profdeleted'] = 'حسابك الخاص تم حذفه من هذه الموسوعة';
-$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
+$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
هذا الحدث غير ممكن.';
$lang['profconfdeletemissing'] = 'لم تقم بوضع علامة في مربع التأكيد';
$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
@@ -142,8 +142,6 @@ $lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود ا
$lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟';
$lang['js']['media_diff'] = 'عرض الفروق:';
$lang['js']['media_diff_both'] = 'جنبا إلى جنب';
-$lang['js']['media_diff_opacity'] = 'Shine-through';
-$lang['js']['media_diff_portions'] = 'Swipe';
$lang['js']['media_select'] = 'اختر ملفا...';
$lang['js']['media_upload_btn'] = 'ارفع';
$lang['js']['media_done_btn'] = 'تم';
@@ -299,8 +297,8 @@ $lang['i_badhash'] = 'الملف dokuwiki.php غير مصنف أو
(hash=<code>%s</code>)';
$lang['i_badval'] = 'القيمة <code>%s</code> غير شرعية أو فارغة';
$lang['i_success'] = 'الإعدادات تمت بنجاح، يرجى حذف الملف install.php الآن.
-ثم تابع إلى <a href="doku.php"> دوكو ويكي الجديدة</a>';
-$lang['i_failure'] = 'بعض الأخطاء حدثت أثنا كتابة ملفات الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php"> دوكو ويكي الجديدة</a>';
+ثم تابع إلى <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'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين فقط';
diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php
index 9176cee56..697f39ad3 100644
--- a/inc/lang/bg/lang.php
+++ b/inc/lang/bg/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Nikolay Vladimirov <nikolay@vladimiroff.com>
* @author Viktor Usunov <usun0v@mail.bg>
* @author Kiril <neohidra@gmail.com>
@@ -10,8 +10,8 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '„';
+$lang['doublequoteclosing'] = '“';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '’';
diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php
index 8443228e3..5cb66a853 100644
--- a/inc/lang/bn/lang.php
+++ b/inc/lang/bn/lang.php
@@ -2,25 +2,24 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Foysol <ragebot1125@gmail.com>
* @author ninetailz <ninetailz1125@gmail.com>
* @author Khan M. B. Asad <muhammad2017@gmail.com>
* @author Ninetailz <ninetailz1125@gmail.com>
*/
$lang['encoding'] = 'utf-8';
-$lang['direction'] = 'itr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
-$lang['singlequoteopening'] = '\'';
-$lang['singlequoteclosing'] = '\'';
-$lang['apostrophe'] = '\'';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'এই পৃষ্ঠা সম্পাদনা করুন';
$lang['btn_source'] = 'দেখান পাতা উৎস';
$lang['btn_show'] = 'দেখান পৃষ্ঠা';
$lang['btn_create'] = 'এই পৃষ্ঠা তৈরি করুন';
$lang['btn_search'] = 'অনুসন্ধান';
-$lang['btn_save'] = 'Save';
$lang['btn_preview'] = 'পূর্বরূপ';
$lang['btn_top'] = 'উপরে ফিরে যান ';
$lang['btn_newer'] = '<< আরো সাম্প্রতিক';
@@ -196,7 +195,7 @@ $lang['created'] = 'তৈরি করা';
$lang['restored'] = 'পুরানো সংস্করণের পুনঃস্থাপন (%s)';
$lang['external_edit'] = 'বাহ্যিক সম্পাদনা';
$lang['summary'] = 'সম্পাদনা সারাংশ';
-$lang['noflash'] = 'এ href="http://www.adobe.com/products/flashplayer/"> অ্যাডোবি ফ্ল্যাশ প্লাগইন </ a> এই সামগ্রী প্রদর্শন করার জন্য প্রয়োজন হয়.';
+$lang['noflash'] = 'এ href="http://www.adobe.com/products/flashplayer/"> অ্যাডোবি ফ্ল্যাশ প্লাগইন </a> এই সামগ্রী প্রদর্শন করার জন্য প্রয়োজন হয়.';
$lang['download'] = 'ডাউনলোড স্নিপেট ';
$lang['tools'] = 'সরঞ্জামসমূহ';
$lang['user_tools'] = 'ব্যবহারকারীর সরঞ্জামসমূহ';
diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php
index 220600dec..bb21f5c3c 100644
--- a/inc/lang/ca/lang.php
+++ b/inc/lang/ca/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Carles Bellver <carles.bellver@cent.uji.es>
* @author Carles Bellver <carles.bellver@gmail.com>
* @author daniel@6temes.cat
@@ -271,8 +271,8 @@ $lang['i_confexists'] = '<code>%s</code> ja existeix';
$lang['i_writeerr'] = 'No es pot crear <code>%s</code>. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.';
$lang['i_badhash'] = 'dokuwiki.php no reconegut o modificat (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - valor il·legal o buit';
-$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al vostre nou <a href="doku.php">DokuWiki</a>.';
-$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el vostre nou <a href="doku.php">DokuWiki</a>.';
+$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.';
+$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.';
$lang['i_policy'] = 'Política ACL inicial';
$lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)';
$lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)';
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index 6545621d7..42fb9a265 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -22,6 +22,7 @@
* @author Frank Loizzi <contact@software.bacal.de>
* @author Volker Bödker <volker@boedker.de>
* @author Janosch <janosch@moinzen.de>
+ * @author rnck <dokuwiki@rnck.de>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -65,6 +66,8 @@ $lang['btn_register'] = 'Registrieren';
$lang['btn_apply'] = 'Übernehmen';
$lang['btn_media'] = 'Medien-Manager';
$lang['btn_deleteuser'] = 'Benutzerprofil löschen';
+$lang['btn_img_backto'] = 'Zurück zu %s';
+$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen';
$lang['loggedinas'] = 'Angemeldet als:';
$lang['user'] = 'Benutzername';
$lang['pass'] = 'Passwort';
@@ -80,11 +83,12 @@ $lang['badpassconfirm'] = 'Das Passwort war falsch.';
$lang['minoredit'] = 'Kleine Änderung';
$lang['draftdate'] = 'Entwurf gespeichert am';
$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, da das Sektionsinfo veraltet ist. Die ganze Seite wird stattdessen geladen.';
-$lang['searchcreatepage'] = "Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **''[Seite anlegen]''** drückst.";
+$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **\'\'[Seite anlegen]\'\'** drückst.';
$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden';
$lang['reguexists'] = 'Der Benutzername existiert leider schon.';
$lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.';
$lang['regsuccess2'] = 'Der neue Benutzer wurde angelegt.';
+$lang['regfail'] = 'Der Benutzer konnte nicht erstellt werden.';
$lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.';
$lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.';
$lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.';
@@ -99,6 +103,7 @@ $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['proffail'] = 'Das Benutzerprofil wurde nicht aktualisiert.';
$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';
@@ -194,6 +199,11 @@ $lang['difflink'] = 'Link zu der Vergleichsansicht';
$lang['diff_type'] = 'Unterschiede anzeigen:';
$lang['diff_inline'] = 'Inline';
$lang['diff_side'] = 'Side by Side';
+$lang['diffprevrev'] = 'Vorherige Überarbeitung';
+$lang['diffnextrev'] = 'Nächste Überarbeitung';
+$lang['difflastrev'] = 'Letzte Überarbeitung';
+$lang['diffbothprevrev'] = 'Beide Seiten, vorherige Überarbeitung';
+$lang['diffbothnextrev'] = 'Beide Seiten, nächste Überarbeitung';
$lang['line'] = 'Zeile';
$lang['breadcrumb'] = 'Zuletzt angesehen:';
$lang['youarehere'] = 'Du befindest dich hier:';
@@ -249,7 +259,6 @@ $lang['upperns'] = 'Gehe zum übergeordneten Namensraum';
$lang['metaedit'] = 'Metadaten bearbeiten';
$lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden';
$lang['metasaveok'] = 'Metadaten gesichert';
-$lang['btn_img_backto'] = 'Zurück zu %s';
$lang['img_title'] = 'Titel:';
$lang['img_caption'] = 'Bildunterschrift:';
$lang['img_date'] = 'Datum:';
@@ -262,7 +271,6 @@ $lang['img_camera'] = 'Kamera:';
$lang['img_keywords'] = 'Schlagwörter:';
$lang['img_width'] = 'Breite:';
$lang['img_height'] = 'Höhe:';
-$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen';
$lang['subscr_subscribe_success'] = 'Die Seite %s wurde zur Abonnementliste von %s hinzugefügt';
$lang['subscr_subscribe_error'] = 'Fehler beim Hinzufügen von %s zur Abonnementliste von %s';
$lang['subscr_subscribe_noaddress'] = 'In deinem Account ist keine E-Mail-Adresse hinterlegt. Dadurch kann die Seite nicht abonniert werden';
@@ -289,6 +297,7 @@ $lang['i_problems'] = 'Das Installationsprogramm hat unten aufgeführ
$lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Skript nur mit einer neuen bzw. nicht modifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die <a href="http://dokuwiki.org/install">Dokuwiki-Installationsanleitung</a> konsultieren.';
$lang['i_funcna'] = 'Die PHP-Funktion <code>%s</code> ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?';
$lang['i_phpver'] = 'Deine PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisiere deine PHP-Installation.';
+$lang['i_mbfuncoverload'] = 'mbstring.func_overload muss in php.in deaktiviert werden um DokuWiki auszuführen.';
$lang['i_permfail'] = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!';
$lang['i_confexists'] = '<code>%s</code> existiert bereits';
$lang['i_writeerr'] = '<code>%s</code> konnte nicht erzeugt werden. Du solltest die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.';
@@ -338,6 +347,9 @@ $lang['media_perm_read'] = 'Du besitzt nicht die notwendigen Berechtigunge
$lang['media_perm_upload'] = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
$lang['media_update'] = 'Neue Version hochladen';
$lang['media_restore'] = 'Diese Version wiederherstellen';
+$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
$lang['currentns'] = 'Aktueller Namensraum';
$lang['searchresult'] = 'Suchergebnis';
-$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
+$lang['plainhtml'] = 'Reines HTML';
+$lang['wikimarkup'] = 'Wiki Markup';
+$lang['page_nonexist_rev'] = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: <a href="%s">%s</a>.';
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index d74f66149..c452042b6 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -358,5 +358,5 @@ $lang['currentns'] = 'Aktueller Namensraum';
$lang['searchresult'] = 'Suchergebnisse';
$lang['plainhtml'] = 'HTML Klartext';
$lang['wikimarkup'] = 'Wiki Markup';
-$lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>';
+$lang['page_nonexist_rev'] = 'Die Seite exitiert nicht unter %s. Sie wurde aber unter <a href="%s">%s</a>';
$lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index 21a854b30..0e62dd37b 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -284,8 +284,8 @@ $lang['i_confexists'] = '<code>%s</code> υπάρχει ήδη';
$lang['i_writeerr'] = 'Δεν είναι δυνατή η δημιουργία του <code>%s</code>. Πρέπει να διορθώσετε τα δικαιώματα πρόσβασης αυτού του φακέλου/αρχείου και να δημιουργήσετε το αρχείο χειροκίνητα!';
$lang['i_badhash'] = 'Μη αναγνωρίσιμο ή τροποποιημένο αρχείο dokuwiki.php (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - λάθος ή ανύπαρκτη τιμή';
-$lang['i_success'] = 'Η εγκατάσταση ολοκληρώθηκε επιτυχώς. Μπορείτε πλέον να διαγράψετε το αρχείο install.php. Συνεχίστε στο <a href="doku.php">νέο σας DokuWiki</a>.';
-$lang['i_failure'] = 'Εμφανίστηκαν κάποια προβλήματα στη διαδικασία ανανέωσης των αρχείων ρυθμίσεων. Πιθανόν να χρειάζεται να τα τροποποιήσετε χειροκίνητα ώστε να μπορείτε να χρησιμοποιήσετε το <a href="doku.php">νέο σας DokuWiki</a>.';
+$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_policy'] = 'Αρχική πολιτική Λίστας Δικαιωμάτων Πρόσβασης - ACL';
$lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μπορούν να διαβάσουν ή να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)';
$lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μπορούν να διαβάσουν σελίδες αλλά μόνο οι εγγεγραμμένοι χρήστες μπορούν να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)';
diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php
index 24df39dc7..3e0b91059 100644
--- a/inc/lang/eo/lang.php
+++ b/inc/lang/eo/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Redakti la paĝon';
$lang['btn_source'] = 'Montri fontan tekston';
$lang['btn_show'] = 'Montri paĝon';
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index e10a29a0f..65978f558 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -39,6 +39,7 @@
* @author pokesakura <pokesakura@gmail.com>
* @author Álvaro Iradier <airadier@gmail.com>
* @author Alejandro Nunez <nunez.alejandro@gmail.com>
+ * @author Mauricio Segura <maose38@yahoo.es>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -104,6 +105,7 @@ $lang['regmissing'] = 'Lo siento, tienes que completar todos los camp
$lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.';
$lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.';
$lang['regsuccess2'] = 'El usuario ha sido creado.';
+$lang['regfail'] = 'No se pudo crear el usuario.';
$lang['regmailfail'] = 'Parece que ha habido un error al enviar el correo con la contraseña. ¡Por favor, contacta al administrador!';
$lang['regbadmail'] = 'La dirección de correo no parece válida. Si piensas que esto es un error, contacta al administrador';
$lang['regbadpass'] = 'Las dos contraseñas no son iguales, por favor inténtalo de nuevo.';
@@ -118,6 +120,7 @@ $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['proffail'] = 'No se ha actualizado el perfil del usuario.';
$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';
@@ -363,6 +366,7 @@ $lang['media_perm_read'] = 'Disculpa, no tienes los permisos necesarios pa
$lang['media_perm_upload'] = 'Disculpa, no tienes los permisos necesarios para cargar ficheros.';
$lang['media_update'] = 'Actualizar nueva versión';
$lang['media_restore'] = 'Restaurar esta versión';
+$lang['media_acl_warning'] = 'Puede que esta lista no esté completa debido a restricciones de la ACL y a las páginas ocultas.';
$lang['currentns'] = 'Espacio de nombres actual';
$lang['searchresult'] = 'Resultado de la búsqueda';
$lang['plainhtml'] = 'HTML sencillo';
diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php
index 2372482c3..dbff49dfc 100644
--- a/inc/lang/et/lang.php
+++ b/inc/lang/et/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Oliver S6ro <seem.iges@mail.ee>
* @author Aari Juhanson <aari@vmg.vil.ee>
* @author Kaiko Kaur <kaiko@kultuur.edu.ee>
diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php
index 0f70efa5c..de2ca13da 100644
--- a/inc/lang/fi/lang.php
+++ b/inc/lang/fi/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Petteri <petteri@gmail.com>
* @author Matti Pöllä <mpo@iki.fi>
* @author Otto Vainio <otto@valjakko.net>
@@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '”';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '’';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Muokkaa tätä sivua';
$lang['btn_source'] = 'Näytä sivun lähdekoodi';
$lang['btn_show'] = 'Näytä sivu';
diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php
index f3f462272..d1d7096c9 100644
--- a/inc/lang/fo/lang.php
+++ b/inc/lang/fo/lang.php
@@ -8,11 +8,11 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = 'Vanligt gásareygað byrjan';
-$lang['doublequoteclosing'] = 'Vanligt gásareygað endi';
-$lang['singlequoteopening'] = 'Einstakt gásareygað byrjan';
-$lang['singlequoteclosing'] = 'Einstakt gásareygað endi';
-$lang['apostrophe'] = 'Apostroff';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
+$lang['singlequoteopening'] = '\'';
+$lang['singlequoteclosing'] = '\'';
+$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Rætta hetta skjal';
$lang['btn_source'] = 'Vís keldu';
$lang['btn_show'] = 'Vís skjal';
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index 74b1edd19..4a25aab43 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -197,7 +197,7 @@ $lang['accessdenied'] = 'Vous n\'êtes pas autorisé à voir cette page
$lang['mediausage'] = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :';
$lang['mediaview'] = 'Afficher le fichier original';
$lang['mediaroot'] = 'racine';
-$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag & drop)';
+$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag &amp; drop)';
$lang['mediaextchange'] = 'Extension du fichier modifiée de .%s en .%s !';
$lang['reference'] = 'Références pour';
$lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est toujours utilisé par les pages suivantes :';
@@ -318,7 +318,7 @@ $lang['i_writeerr'] = 'Impossible de créer <code>%s</code>. Vous dev
$lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - valeur interdite ou vide';
$lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier « install.php ». Continuer avec <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.';
-$lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php">votre nouveau DokuWiki</a>.';
+$lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.';
$lang['i_policy'] = 'Politique de contrôle d\'accès initiale';
$lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)';
$lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)';
diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php
index 9cc460b58..9e3d4f2b2 100644
--- a/inc/lang/gl/lang.php
+++ b/inc/lang/gl/lang.php
@@ -274,9 +274,9 @@ $lang['i_writeerr'] = 'Non se puido crear <code>%s</code>. Terás de
$lang['i_badhash'] = 'dokuwiki.php irrecoñecíbel ou modificado (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - ilegal ou valor baleiro';
$lang['i_success'] = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o
- <a href="doku.php">teu novo DokuWiki</a>.';
+ <a href="doku.php?id=wiki:welcome">teu novo DokuWiki</a>.';
$lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os arquivos de configuración. Pode que precises solucionalos de xeito manual antes
- de poderes empregar <a href="doku.php">o teu novo DokuWiki</a>.';
+ de poderes empregar <a href="doku.php?id=wiki:welcome">o teu novo DokuWiki</a>.';
$lang['i_policy'] = 'Regras iniciais da ACL';
$lang['i_pol0'] = 'Wiki Aberto (lectura, escritura, subida de arquivos para todas as persoas)';
$lang['i_pol1'] = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)';
diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php
index 37ea704da..a24ccace9 100644
--- a/inc/lang/he/lang.php
+++ b/inc/lang/he/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author גיא שפר <guysoft@ort.org.il>
* @author Denis Simakov <akinoame1@gmail.com>
* @author Dotan Kamber <kamberd@yahoo.com>
@@ -110,7 +110,7 @@ $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למניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאפס את מד משך הנעילה.';
@@ -289,7 +289,7 @@ $lang['i_problems'] = 'תכנית ההתקנה זיהתה מספר ב
$lang['i_modified'] = 'משיקולי אבטחה סקריפט זה יעבוד אך ורק עם התקנת DokuWiki חדשה שלא עברה כל שינוי.
עליך לחלץ שנית את הקבצים מהחבילה שהורדה או להיעזר בדף
<a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna'] = 'פונקציית ה-PHP&rlm; <code>%s</code> אינה זמינה. יתכן כי מארח האתר חסם אותה מסיבה כלשהי?';
+$lang['i_funcna'] = 'פונקציית ה-PHP&#8207; <code>%s</code> אינה זמינה. יתכן כי מארח האתר חסם אותה מסיבה כלשהי?';
$lang['i_phpver'] = 'גרסת PHP שלך <code>%s</code> נמוכה מ <code>%s</code> הצורך. אתה צריך לשדרג PHP שלך להתקין.';
$lang['i_mbfuncoverload'] = 'יש לבטל את mbstring.func_overload בphp.ini בכדי להריץ את DokuWiki';
$lang['i_permfail'] = '<code>%s</code> אינה ניתנת לכתיבה על ידי DokuWiki. עליך לשנות הרשאות תיקייה זו!';
@@ -329,8 +329,8 @@ $lang['media_list_rows'] = 'שורות';
$lang['media_sort_name'] = 'שם';
$lang['media_sort_date'] = 'תאריך';
$lang['media_namespaces'] = 'בחר מרחב שמות';
-$lang['media_files'] = 'קבצים ב s%';
-$lang['media_upload'] = 'להעלות s%';
+$lang['media_files'] = 'קבצים ב %s';
+$lang['media_upload'] = 'להעלות %s';
$lang['media_search'] = 'חיפוש ב%s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s ב %s';
diff --git a/inc/lang/he/mailtext.txt b/inc/lang/he/mailtext.txt
index 222ee1b6d..5ef4ec7e2 100644
--- a/inc/lang/he/mailtext.txt
+++ b/inc/lang/he/mailtext.txt
@@ -2,7 +2,7 @@
תאריך : @DATE@
דפדפן : @BROWSER@
-כתובת ה־IP&rlm; : @IPADDRESS@
+כתובת ה־IP&#8207; : @IPADDRESS@
שם המארח : @HOSTNAME@
המהדורה הישנה: @OLDPAGE@
המהדורה החדשה: @NEWPAGE@
@@ -11,7 +11,7 @@
@DIFF@
---
+--
דף זה נוצר ע״י ה־DokuWiki הזמין בכתובת
@DOKUWIKIURL@
diff --git a/inc/lang/he/registermail.txt b/inc/lang/he/registermail.txt
index 3edca3fa0..d478d1c20 100644
--- a/inc/lang/he/registermail.txt
+++ b/inc/lang/he/registermail.txt
@@ -6,9 +6,9 @@
תאריך : @DATE@
דפדפן : @BROWSER@
-כתובת IP&rlm; : @IPADDRESS@
+כתובת IP&#8207; : @IPADDRESS@
שם המארח : @HOSTNAME@
---
+--
הודעת דוא״ל זו נוצרה על ידי ה־DokuWiki הזמין בכתובת
@DOKUWIKIURL@
diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php
index 39eaa18c0..40e0c59c3 100644
--- a/inc/lang/hr/lang.php
+++ b/inc/lang/hr/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Tomo Krajina <aaa@puzz.info>
* @author Branko Rihtman <theney@gmail.com>
* @author Dražen Odobašić <dodobasic@gmail.com>
@@ -15,7 +15,7 @@ $lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Izmijeni stranicu';
$lang['btn_source'] = 'Prikaži kod stranice';
$lang['btn_show'] = 'Prikaži dokument';
diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php
index 514c63871..4321e2cc9 100644
--- a/inc/lang/id/lang.php
+++ b/inc/lang/id/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author mubaidillah <mubaidillah@gmail.com>
* @author Irwan Butar Butar <irwansah.putra@gmail.com>
* @author Yustinus Waruwu <juswaruwu@gmail.com>
@@ -12,10 +12,10 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
-$lang['singlequoteopening'] = '\'';
-$lang['singlequoteclosing'] = '\'';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Edit halaman ini';
$lang['btn_source'] = 'Lihat sumber halaman';
@@ -23,7 +23,6 @@ $lang['btn_show'] = 'Tampilkan halaman';
$lang['btn_create'] = 'Buat halaman baru';
$lang['btn_search'] = 'Cari';
$lang['btn_save'] = 'Simpan';
-$lang['btn_preview'] = 'Preview';
$lang['btn_top'] = 'kembali ke atas';
$lang['btn_newer'] = '<< lebih lanjut';
$lang['btn_older'] = 'sebelumnya >>';
@@ -32,7 +31,6 @@ $lang['btn_recent'] = 'Perubahan terbaru';
$lang['btn_upload'] = 'Upload';
$lang['btn_cancel'] = 'Batal';
$lang['btn_index'] = 'Indeks';
-$lang['btn_secedit'] = 'Edit';
$lang['btn_login'] = 'Login';
$lang['btn_logout'] = 'Keluar';
$lang['btn_admin'] = 'Admin';
@@ -42,9 +40,7 @@ $lang['btn_back'] = 'Kembali';
$lang['btn_backlink'] = 'Backlinks';
$lang['btn_subscribe'] = 'Ikuti Perubahan';
$lang['btn_profile'] = 'Ubah Profil';
-$lang['btn_reset'] = 'Reset';
$lang['btn_resendpwd'] = 'Atur password baru';
-$lang['btn_draft'] = 'Edit draft';
$lang['btn_recover'] = 'Cadangkan draf';
$lang['btn_draftdel'] = 'Hapus draft';
$lang['btn_revert'] = 'Kembalikan';
@@ -157,7 +153,7 @@ $lang['uploadexist'] = 'File telah ada. Tidak mengerjakan apa-apa.';
$lang['uploadbadcontent'] = 'Isi file yang diupload tidak cocok dengan ekstensi file %s.';
$lang['uploadspam'] = 'File yang diupload diblok oleh spam blacklist.';
$lang['uploadxss'] = 'File yang diupload diblok karena kemungkinan isi yang berbahaya.';
-$lang['uploadsize'] = 'File yang diupload terlalu besar. (max.%)';
+$lang['uploadsize'] = 'File yang diupload terlalu besar. (max. %s)';
$lang['deletesucc'] = 'File "%s" telah dihapus.';
$lang['deletefail'] = '"%s" tidak dapat dihapus - cek hak aksesnya.';
$lang['mediainuse'] = 'File "%s" belum dihapus - file ini sedang digunakan.';
@@ -172,7 +168,6 @@ $lang['mediaextchange'] = 'Ektensi file berubah dari .%s ke .%s';
$lang['reference'] = 'Referensi untuk';
$lang['ref_inuse'] = 'File tidak dapat dihapus karena sedang digunakan oleh halaman:';
$lang['ref_hidden'] = 'Beberapa referensi ada didalam halaman yang tidak diijinkan untuk Anda baca.';
-$lang['hits'] = 'Hits';
$lang['quickhits'] = 'Matching pagenames';
$lang['toc'] = 'Daftar isi';
$lang['current'] = 'sekarang';
@@ -195,7 +190,6 @@ $lang['deleted'] = 'terhapus';
$lang['created'] = 'dibuat';
$lang['restored'] = 'revisi lama ditampilkan kembali (%s)';
$lang['external_edit'] = 'Perubahan eksternal';
-$lang['summary'] = 'Edit summary';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> diperlukan untuk menampilkan konten ini.';
$lang['download'] = 'Unduh Cuplikan';
$lang['tools'] = 'Alat';
@@ -218,26 +212,17 @@ $lang['qb_italic'] = 'Miring';
$lang['qb_underl'] = 'Garis Bawah';
$lang['qb_code'] = 'Kode';
$lang['qb_strike'] = 'Text Tercoret';
-$lang['qb_h1'] = 'Level 1 Headline';
-$lang['qb_h2'] = 'Level 2 Headline';
-$lang['qb_h3'] = 'Level 3 Headline';
-$lang['qb_h4'] = 'Level 4 Headline';
-$lang['qb_h5'] = 'Level 5 Headline';
$lang['qb_hs'] = 'Pilih Judul';
$lang['qb_hplus'] = 'Judul Lebih Atas';
$lang['qb_hminus'] = 'Judul Lebih Bawah';
$lang['qb_hequal'] = 'Tingkat Judul yang Sama';
-$lang['qb_link'] = 'Link Internal';
-$lang['qb_extlink'] = 'Link External';
$lang['qb_hr'] = 'Garis Horisontal';
$lang['qb_ol'] = 'Item Berurutan';
$lang['qb_ul'] = 'Item Tidak Berurutan';
$lang['qb_media'] = 'Tambahkan gambar atau file lain';
$lang['qb_sig'] = 'Sisipkan tanda tangan';
-$lang['qb_smileys'] = 'Smileys';
$lang['qb_chars'] = 'Karakter Khusus';
$lang['upperns'] = 'lompat ke namespace induk';
-$lang['metaedit'] = 'Edit Metadata';
$lang['metasaveerr'] = 'Gagal menulis metadata';
$lang['metasaveok'] = 'Metadata tersimpan';
$lang['img_title'] = 'Judul:';
diff --git a/inc/lang/ja/index.txt b/inc/lang/ja/index.txt
index b0447899d..b3dbb95f3 100644
--- a/inc/lang/ja/index.txt
+++ b/inc/lang/ja/index.txt
@@ -1,4 +1,4 @@
====== サイトマップ ======
-[[doku>namespaces|名前空間]] に基づく、全ての文書の索引です。
+[[doku>ja:namespaces|名前空間]] に基づく、全ての文書の索引です。
diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php
index 0b2d60e4e..72594efe3 100644
--- a/inc/lang/ka/lang.php
+++ b/inc/lang/ka/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Luka Lejava <luka.lejava@gmail.com>
*/
$lang['encoding'] = 'utf-8';
@@ -35,7 +35,6 @@ $lang['btn_update'] = 'განახლება';
$lang['btn_delete'] = 'წაშლა';
$lang['btn_back'] = 'უკან';
$lang['btn_backlink'] = 'გადმომისამართებული ბმულები';
-$lang['btn_subscribe'] = 'Manage Subscriptions';
$lang['btn_profile'] = 'პროფილის განახლება';
$lang['btn_reset'] = 'წაშლა';
$lang['btn_resendpwd'] = 'ახალი პაროლის დაყენება';
@@ -47,7 +46,7 @@ $lang['btn_register'] = 'რეგისტრაცია';
$lang['btn_apply'] = 'ცადე';
$lang['btn_media'] = 'მედია ფაილების მართვა';
$lang['btn_deleteuser'] = 'ჩემი ექაუნთის წაშლა';
-$lang['btn_img_backto'] = 'უკან %';
+$lang['btn_img_backto'] = 'უკან %s';
$lang['btn_mediaManager'] = 'მედია ფაილების მმართველში გახსნა';
$lang['loggedinas'] = 'შესული ხართ როგორც:';
$lang['user'] = 'ლოგინი';
@@ -93,11 +92,11 @@ $lang['resendpwdsuccess'] = 'ახალი პაროლი გამ
$lang['license'] = 'ვიკი ლიცენზირებულია: ';
$lang['licenseok'] = 'ამ გვერდის რედაქტირებით თვენ ეთანხმებით ლიცენზიას:';
$lang['searchmedia'] = 'საძებო სახელი:';
-$lang['searchmedia_in'] = 'ძებნა %-ში';
+$lang['searchmedia_in'] = 'ძებნა %s-ში';
$lang['txt_upload'] = 'აირჩიეთ ასატვირთი ფაილი:';
$lang['txt_filename'] = 'ატვირთვა როგორც (არჩევითი):';
$lang['txt_overwrt'] = 'გადაწერა ზემოდან';
-$lang['maxuploadsize'] = 'მაქსიმალური ზომა %';
+$lang['maxuploadsize'] = 'მაქსიმალური ზომა %s';
$lang['lockedby'] = 'დაბლოკილია:';
$lang['lockexpire'] = 'განიბლოკება:';
$lang['js']['willexpire'] = 'გვერდი განიბლოკება 1 წუთში';
@@ -107,7 +106,6 @@ $lang['js']['keepopen'] = 'დატოვეთ ღია';
$lang['js']['hidedetails'] = 'დეტალების დამალვა';
$lang['js']['mediatitle'] = 'ინსტრუმენტები';
$lang['js']['mediadisplay'] = 'ბმულის ტიპი';
-$lang['js']['mediaalign'] = 'Alignment';
$lang['js']['mediasize'] = 'სურათის ზომა';
$lang['js']['mediatarget'] = 'მიზნის ბმული';
$lang['js']['mediaclose'] = 'დახურვა';
@@ -125,7 +123,6 @@ $lang['js']['medianolink'] = 'არ დალინკოთ სურა
$lang['js']['medialeft'] = 'მარცხვნივ განათავსეთ სურათი';
$lang['js']['mediaright'] = 'მარჯვნივ განათავსეთ სურათი';
$lang['js']['mediacenter'] = 'შუაში განათავსეთ სურათი';
-$lang['js']['medianoalign'] = 'Use no align.';
$lang['js']['nosmblinks'] = 'ეს ფუქნცია მუშაობს მხოლოდ Internet Explorer-ზე';
$lang['js']['linkwiz'] = 'ბმული';
$lang['js']['linkto'] = 'ბმული';
@@ -133,9 +130,6 @@ $lang['js']['del_confirm'] = 'დარწმუნებული ხარ
$lang['js']['restore_confirm'] = 'დარწმუნებული ხართ რომ აღდგენა გინდათ?';
$lang['js']['media_diff'] = 'განსხვავებების ჩვენება';
$lang['js']['media_diff_both'] = 'გვერდიგვერდ';
-$lang['js']['media_diff_opacity'] = 'Shine-through';
-$lang['js']['media_diff_portions'] = 'Swipe
-';
$lang['js']['media_select'] = 'არჩეული ფაილები';
$lang['js']['media_upload_btn'] = 'ატვირთვა';
$lang['js']['media_done_btn'] = 'მზადაა';
@@ -149,49 +143,36 @@ $lang['uploadsucc'] = 'ატვირთვა დასრულე
$lang['uploadfail'] = 'შეფერხება ატვირთვისას';
$lang['uploadwrong'] = 'ატვირთვა შეუძლებელია';
$lang['uploadexist'] = 'ფაილი უკვე არსებობს';
-$lang['uploadbadcontent'] = 'ატვირთული ფაილები არ ემთხვევა ';
+$lang['uploadbadcontent'] = 'ატვირთული ფაილები არ ემთხვევა %s';
$lang['uploadspam'] = 'ატვირთვა დაბლოკილია სპამბლოკერის მიერ';
$lang['uploadxss'] = 'ატვირთვა დაბლოკილია';
-$lang['uploadsize'] = 'ასატვირთი ფაილი ზედმეტად დიდია';
-$lang['deletesucc'] = '% ფაილები წაიშალა';
-$lang['deletefail'] = '% ვერ მოიძებნა';
-$lang['mediainuse'] = 'ფაილის % ვერ წაიშალა, რადგან გამოყენებაშია';
-$lang['namespaces'] = 'Namespaces';
+$lang['uploadsize'] = 'ასატვირთი ფაილი ზედმეტად დიდია %s';
+$lang['deletesucc'] = '%s ფაილები წაიშალა';
+$lang['deletefail'] = '%s ვერ მოიძებნა';
+$lang['mediainuse'] = 'ფაილის %s ვერ წაიშალა, რადგან გამოყენებაშია';
$lang['mediafiles'] = 'არსებული ფაილები';
$lang['accessdenied'] = 'თქვენ არ შეგიძლიათ გვერდის ნახვა';
-$lang['mediausage'] = 'Use the following syntax to reference this file:';
$lang['mediaview'] = 'ორიგინალი ფაილის ჩვენება';
$lang['mediaroot'] = 'root';
-$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons after you selected the files. Files can also be selected by drag and drop.';
-$lang['mediaextchange'] = 'Filextension changed from .%s to .%s!';
-$lang['reference'] = 'References for';
$lang['ref_inuse'] = 'ფაილი წაშლა შეუძლებელია, გამოიყენება აქ:';
$lang['ref_hidden'] = 'ზოგიერთი ბლოკის წაკითხვის უფლება არ გაქვთ';
-$lang['hits'] = 'Hits';
$lang['quickhits'] = 'მსგავსი სახელები';
-$lang['toc'] = 'Table of Contents';
$lang['current'] = 'ახლანდელი';
$lang['yours'] = 'თვენი ვერსია';
$lang['diff'] = 'ვერსიების განსხვავება';
$lang['diff2'] = 'განსხვავებები';
-$lang['difflink'] = 'Link to this comparison view';
$lang['diff_type'] = 'განსხვავებების ჩვენება';
-$lang['diff_inline'] = 'Inline';
$lang['diff_side'] = 'გვერდიგვერდ';
$lang['diffprevrev'] = 'წინა ვერსია';
$lang['diffnextrev'] = 'შემდეგი ვერსია';
$lang['difflastrev'] = 'ბოლო ვერსია';
-$lang['diffbothprevrev'] = 'Both sides previous revision';
-$lang['diffbothnextrev'] = 'Both sides next revision';
$lang['line'] = 'ზოლი';
-$lang['breadcrumb'] = 'Trace:';
$lang['youarehere'] = 'თვენ ხართ აქ:';
$lang['lastmod'] = 'ბოლოს მოდიფიცირებული:';
$lang['deleted'] = 'წაშლილია';
$lang['created'] = 'შექმნილია';
-$lang['restored'] = 'ძველი ვერსია აღდგენილია %';
+$lang['restored'] = 'ძველი ვერსია აღდგენილია (%s)';
$lang['external_edit'] = 'რედაქტირება';
-$lang['summary'] = 'Edit summary';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">საჭიროა Adobe Flash Plugin</a>';
$lang['download'] = 'Snippet-ის გადმოწერა';
$lang['tools'] = 'ინსტრუმენტები';
@@ -209,11 +190,6 @@ $lang['changes_type'] = 'ცვლილებები';
$lang['pages_changes'] = 'გვერდები';
$lang['media_changes'] = 'მედია ფაილები';
$lang['both_changes'] = 'გვერდები და მედია ფაილები';
-$lang['qb_bold'] = 'Bold Text';
-$lang['qb_italic'] = 'Italic Text';
-$lang['qb_underl'] = 'Underlined Text';
-$lang['qb_code'] = 'Monospaced Text';
-$lang['qb_strike'] = 'Strike-through Text';
$lang['qb_h1'] = 'Level 1 სათაური';
$lang['qb_h2'] = 'Level 2 სათაური';
$lang['qb_h3'] = 'Level 3 სათაური';
@@ -224,64 +200,28 @@ $lang['qb_hs'] = 'სათაურის არჩევა';
$lang['qb_hplus'] = 'Higher სათაური';
$lang['qb_hminus'] = 'Lower სათაური';
$lang['qb_hequal'] = 'Same Level სათაური';
-$lang['qb_link'] = 'Internal Link';
-$lang['qb_extlink'] = 'External Link';
-$lang['qb_hr'] = 'Horizontal Rule';
$lang['qb_ol'] = 'შეკვეთილი ბოლო მასალა';
-$lang['qb_ul'] = 'Unordered List Item';
$lang['qb_media'] = 'ნახატების და სხვა ფაიელბის დამატება';
$lang['qb_sig'] = 'ხელმოწერა';
$lang['qb_smileys'] = 'სმაილები';
-$lang['qb_chars'] = 'Special Chars';
-$lang['upperns'] = 'jump to parent namespace';
-$lang['metaedit'] = 'Edit Metadata';
-$lang['metasaveerr'] = 'Writing metadata failed';
-$lang['metasaveok'] = 'Metadata saved';
$lang['img_title'] = 'სათაური:';
-$lang['img_caption'] = 'Caption:';
$lang['img_date'] = 'თარიღი:';
$lang['img_fname'] = 'ფაილის სახელი:';
$lang['img_fsize'] = 'ზომა:';
$lang['img_artist'] = 'ფოტოგრაფი:';
-$lang['img_copyr'] = 'Copyright:';
$lang['img_format'] = 'ფორმატი:';
$lang['img_camera'] = 'კამერა:';
-$lang['img_keywords'] = 'Keywords:';
$lang['img_width'] = 'სიგანე:';
$lang['img_height'] = 'სიმაღლე:';
-$lang['subscr_subscribe_success'] = 'Added %s to subscription list for %s';
-$lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for %s';
-$lang['subscr_subscribe_noaddress'] = 'There is no address associated with your login, you cannot be added to the subscription list';
-$lang['subscr_unsubscribe_success'] = 'Removed %s from subscription list for %s';
-$lang['subscr_unsubscribe_error'] = 'Error removing %s from subscription list for %s';
-$lang['subscr_already_subscribed'] = '%s is already subscribed to %s';
-$lang['subscr_not_subscribed'] = '%s is not subscribed to %s';
-$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to the current page or namespace.';
-$lang['subscr_m_new_header'] = 'Add subscription';
-$lang['subscr_m_current_header'] = 'Current subscriptions';
-$lang['subscr_m_unsubscribe'] = 'Unsubscribe';
-$lang['subscr_m_subscribe'] = 'Subscribe';
$lang['subscr_m_receive'] = 'მიღება';
$lang['subscr_style_every'] = 'ფოსტა ყოველ ცვლილებაზე';
$lang['subscr_style_digest'] = 'ფოსტა ყოველი გვერდის შეცვლაზე ';
$lang['subscr_style_list'] = 'ფოსტა ყოველი გვერდის შეცვლაზე ';
-$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.';
$lang['i_chooselang'] = 'ენსი არჩევა';
$lang['i_installer'] = 'DokuWiki დამყენებელი';
$lang['i_wikiname'] = 'Wiki სახელი';
-$lang['i_enableacl'] = 'Enable ACL (recommended)';
$lang['i_superuser'] = 'ადმინი';
$lang['i_problems'] = 'შეასწორეთ შეცდომები';
-$lang['i_modified'] = 'For security reasons this script will only work with a new and unmodified Dokuwiki installation. You should either re-extract the files from the downloaded package or consult the complete <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna'] = 'PHP function <code>%s</code> is not available. Maybe your hosting provider disabled it for some reason?';
-$lang['i_phpver'] = 'Your PHP version <code>%s</code> is lower than the needed <code>%s</code>. You need to upgrade your PHP install.';
-$lang['i_permfail'] = '<code>%s</code> is not writable by DokuWiki. You need to fix the permission settings of this directory!';
-$lang['i_confexists'] = '<code>%s</code> already exists';
-$lang['i_writeerr'] = 'Unable to create <code>%s</code>. You will need to check directory/file permissions and create the file manually.';
-$lang['i_badhash'] = 'unrecognised or modified dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval'] = '<code>%s</code> - illegal or empty value';
-$lang['i_failure'] = 'Some errors occurred while writing the configuration files. You may need to fix them manually before you can use <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_policy'] = 'Initial ACL policy';
$lang['i_pol0'] = 'ღია ვიკი (წაკითხვა, დაწერა და ატვირთვა შეუძლია ნებისმიერს)';
$lang['i_pol1'] = 'თავისუფალი ვიკი (წაკითხვა შეუძლია ყველას, დაწერა და ატვირთვა - რეგისტრირებულს)';
$lang['i_pol2'] = 'დახურული ვიკი (წაკითხვა, დაწერა და ატვირთვა შეუძლიათ მხოლოდ რეგისტრირებულებს)';
@@ -291,7 +231,6 @@ $lang['i_license'] = 'აირჩიეთ ლიცენზია
$lang['i_license_none'] = 'არ აჩვენოთ ლიცენზიის ინფორმაცია';
$lang['i_pop_field'] = 'დაგვეხმარეთ DokuWiki-ს აგუმჯობესებაში';
$lang['i_pop_label'] = 'თვეში ერთელ ინფორმაციის DokuWiki-ის ადმინისტრაციისთვის გაგზავნა';
-$lang['recent_global'] = 'You\'re currently watching the changes inside the <b>%s</b> namespace. You can also <a href="%s">view the recent changes of the whole wiki</a>.';
$lang['years'] = '%d წლის უკან';
$lang['months'] = '%d თვის უკან';
$lang['weeks'] = '%d კვირის უკან';
@@ -306,17 +245,12 @@ $lang['media_file'] = 'ფაილი';
$lang['media_viewtab'] = 'ჩვენება';
$lang['media_edittab'] = 'რედაქტირება';
$lang['media_historytab'] = 'ისტორია';
-$lang['media_list_thumbs'] = 'Thumbnails';
-$lang['media_list_rows'] = 'Rows';
$lang['media_sort_name'] = 'სახელი';
$lang['media_sort_date'] = 'თარიღი';
-$lang['media_namespaces'] = 'Choose namespace';
$lang['media_files'] = 'ფაილები %s';
$lang['media_upload'] = 'ატვირთვა %s';
$lang['media_search'] = 'ძებნა %s';
$lang['media_view'] = '%s';
-$lang['media_viewold'] = '%s at %s';
$lang['media_edit'] = 'რედაქტირება %s';
$lang['media_history'] = 'ისტორია %s';
-$lang['media_meta_edited'] = 'metadata edited';
$lang['media_perm_read'] = 'თვენ არ გაქვთ უფლება წაიკითხოთ ეს მასალა';
diff --git a/inc/lang/kk/lang.php b/inc/lang/kk/lang.php
index 5536d48d3..cb224d9a0 100644
--- a/inc/lang/kk/lang.php
+++ b/inc/lang/kk/lang.php
@@ -6,8 +6,8 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php
index 87ac30936..52e0e6a3d 100644
--- a/inc/lang/km/lang.php
+++ b/inc/lang/km/lang.php
@@ -61,7 +61,7 @@ $lang['reguexists'] = 'សុំអាទោស​ នាមប្រើនេ
$lang['regsuccess'] = 'អ្នកប្រើបានបង្កើតហើយ និងពាក្សសម្ងាតក៏បានផ្ញើទៀត។';
$lang['regsuccess2']= 'អ្នកប្រើបានបង្កើតហើយ។';
$lang['regmailfail']= 'មើលទៅដុចជាមានកំហុសក្នុង....សុំទាកទងអ្នកក្របក្រង';
-$lang['regbadmail'] = 'អ៊ីមេលអ្នកសាសេមិនត្រូវបញ្ជរ&mdash;បើអ្នកកិតថានេះជាកំហុសបដិបត្តិ សុំទាកទងអ្នកក្របគ្រោង។';
+$lang['regbadmail'] = 'អ៊ីមេលអ្នកសាសេមិនត្រូវបញ្ជរ—បើអ្នកកិតថានេះជាកំហុសបដិបត្តិ សុំទាកទងអ្នកក្របគ្រោង។';
$lang['regbadpass'] = 'គូពាក្សសម្ងាតមិនដូចគ្នាទេ សមសាកទៀត។';
$lang['regpwmail'] = 'ពាក្សសម្ងាតអ្នក';
$lang['reghere'] = 'អ្នកឥតមានបញ្ជីនាមបម្រើទេ? សុំចល់ចុះឈ្មោះធ្វើគណនីសម្របប្រើប្រស';
@@ -99,8 +99,8 @@ $lang['uploadbadcontent'] = 'ធាតុចំរុញឡើងមិនត្
$lang['uploadspam'] = 'ចំរុញឡើង បង្ខាំង ដៅយ ';
$lang['uploadxss'] = 'ចំរុញឡើង បង្ខាំង ';
$lang['deletesucc'] = 'ឯកសារ «%s» បានលុបហើយ។';
-$lang['deletefail'] = '«%s» មិនអាចលុបទេ&mdashមើល';
-$lang['mediainuse'] = 'ឯកសារ «%s» ឥតទានលុបទេ&mdashមានគេកំភងទេជាប់ប្រើ។';
+$lang['deletefail'] = '«%s» មិនអាចលុបទេ—មើល';
+$lang['mediainuse'] = 'ឯកសារ «%s» ឥតទានលុបទេ—មានគេកំភងទេជាប់ប្រើ។';
$lang['namespaces'] = 'នាមដ្ឋាន';
$lang['mediafiles'] = 'ឯកសារទំនេនៅក្នុង';
@@ -185,12 +185,9 @@ $lang['i_enableacl'] = 'បើកប្រើ (អនុសាស)';
$lang['i_superuser'] = 'អ្នកកំពូល';
$lang['i_problems'] = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្តទៅទៀត ដល់អ្នកជួសជុលវា។';
$lang['i_modified'] = '';
-$lang['i_funcna'] = '<code>%s</code> ';
$lang['i_permfail'] = '<code>%s</code> មិនអាចសាស';
$lang['i_confexists'] = '<code>%s</code> មានហាយ';
$lang['i_writeerr'] = 'មិនអាចបណ្កើ<code>%s</code>។ អ្នកត្រវការពិនិត្យអធិក្រឹតិរបស់ថតនឹងឯកសារ។';
-$lang['i_badhash'] = '(hash=<code>%s</code>)';
-$lang['i_badval'] = '<code>%s</code>&mdash;';
$lang['i_success'] = '';
$lang['i_failure'] = 'ពលសាសារ';
$lang['i_policy'] = 'បញ្ជីអនុញ្ញតផ្ដើម';
diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt
index 8da90266c..70b24ac7b 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/lang.php b/inc/lang/ko/lang.php
index b46abf5d1..48ebfb1d6 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -77,9 +77,9 @@ $lang['nosecedit'] = '한 동안 문서가 바뀌었으며, 문단
$lang['searchcreatepage'] = '만약 원하는 문서를 찾지 못했다면, \'\'문서 만들기\'\'나 \'\'문서 편집\'\'을 사용해 검색어와 같은 이름의 문서를 만들거나 편집할 수 있습니다.';
$lang['regmissing'] = '죄송하지만 모든 필드를 채워야 합니다.';
$lang['reguexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.';
-$lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.';
-$lang['regsuccess2'] = '사용자를 만들었습니다.';
-$lang['regfail'] = '사용자 계정이 만들어지지 않았습니다.';
+$lang['regsuccess'] = '사용자 계정을 만들었으며 비밀번호는 이메일로 보냈습니다.';
+$lang['regsuccess2'] = '사용자 계정을 만들었습니다.';
+$lang['regfail'] = '사용자 계정을 만들 수 없었습니다.';
$lang['regmailfail'] = '비밀번호를 이메일로 보내는 동안 오류가 발생했습니다. 관리자에게 문의해주세요!';
$lang['regbadmail'] = '주어진 이메일 주소가 잘못되었습니다 - 오류라고 생각하면 관리자에게 문의해주세요';
$lang['regbadpass'] = '두 주어진 비밀번호가 같지 않습니다. 다시 입력하세요.';
@@ -89,12 +89,12 @@ $lang['profna'] = '이 위키는 프로필 수정을 할 수 없
$lang['profnochange'] = '바뀐 내용이 없습니다.';
$lang['profnoempty'] = '빈 이름이나 이메일 주소는 허용하지 않습니다.';
$lang['profchanged'] = '프로필이 성공적으로 바뀌었습니다.';
-$lang['profnodelete'] = '이 위키는 사용자 삭제를 지원하지 않습니다';
+$lang['profnodelete'] = '이 위키는 사용자 계정 삭제를 지원하지 않습니다';
$lang['profdeleteuser'] = '계정 삭제';
$lang['profdeleted'] = '당신의 사용자 계정이 이 위키에서 삭제되었습니다';
$lang['profconfdelete'] = '이 위키에서 내 계정을 제거하고 싶습니다. <br/> 이 행동은 되돌릴 수 없습니다.';
$lang['profconfdeletemissing'] = '선택하지 않은 확인 상자를 확인';
-$lang['proffail'] = '사용자 설정이 업데이트되지 않았습니다.';
+$lang['proffail'] = '사용자 프로필이 업데이트되지 않았습니다.';
$lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 재설정하세요';
$lang['resendna'] = '이 위키는 비밀번호 재설정을 지원하지 않습니다.';
$lang['resendpwd'] = '다음으로 새 비밀번호 보내기';
@@ -171,14 +171,14 @@ $lang['mediainuse'] = '"%s" 파일을 삭제할 수 없습니다 -
$lang['namespaces'] = '이름공간';
$lang['mediafiles'] = '사용할 수 있는 파일 목록';
$lang['accessdenied'] = '이 문서를 볼 권한이 없습니다.';
-$lang['mediausage'] = '이 파일을 참고하려면 다음 문법을 사용하세요:';
+$lang['mediausage'] = '이 파일을 참조하려면 다음 문법을 사용하세요:';
$lang['mediaview'] = '원본 파일 보기';
$lang['mediaroot'] = '루트';
$lang['mediaupload'] = '파일을 현재 이름공간으로 올립니다. 하위 이름공간으로 만들려면 선택한 파일 이름 앞에 쌍점(:)으로 구분되는 이름을 붙이면 됩니다. 파일을 드래그 앤 드롭해 선택할 수 있습니다.';
$lang['mediaextchange'] = '파일 확장자가 .%s에서 .%s(으)로 바뀌었습니다!';
$lang['reference'] = '다음을 참조';
$lang['ref_inuse'] = '다음 문서에서 아직 사용 중이므로 파일을 삭제할 수 없습니다:';
-$lang['ref_hidden'] = '문서의 일부 참고는 읽을 수 있는 권한이 없습니다';
+$lang['ref_hidden'] = '문서의 일부 참조는 읽을 수 있는 권한이 없습니다';
$lang['hits'] = '조회 수';
$lang['quickhits'] = '일치하는 문서 이름';
$lang['toc'] = '목차';
@@ -286,7 +286,7 @@ $lang['i_enableacl'] = 'ACL 활성화 (권장)';
$lang['i_superuser'] = '슈퍼 사용자';
$lang['i_problems'] = '설치 관리자가 아래에 나와 있는 몇 가지 문제를 찾았습니다. 문제를 해결하지 전까지 설치를 계속할 수 없습니다.';
$lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 도쿠위키 설치에서만 동작됩니다.
-다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">도쿠위키 설치 과정</a>을 참고해서 설치하세요.';
+다운로드한 압축 패키지를 다시 설치하거나 <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_mbfuncoverload'] = '도쿠위키를 실행하려면 mbstring.func_overload를 php.ini에서 비활성화해야 합니다.';
@@ -341,6 +341,7 @@ $lang['media_perm_read'] = '죄송하지만 파일을 읽을 권한이 없
$lang['media_perm_upload'] = '죄송하지만 파일을 올릴 권한이 없습니다.';
$lang['media_update'] = '새 판 올리기';
$lang['media_restore'] = '이 판으로 되돌리기';
+$lang['media_acl_warning'] = '이 목록은 ACL로 제한되어 있고 숨겨진 문서이기 때문에 완전하지 않을 수 있습니다.';
$lang['currentns'] = '현재 이름공간';
$lang['searchresult'] = '검색 결과';
$lang['plainhtml'] = '일반 HTML';
diff --git a/inc/lang/ku/admin.txt b/inc/lang/ku/admin.txt
deleted file mode 100644
index cfd21b217..000000000
--- a/inc/lang/ku/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Below you can find a list of administrative tasks available in DokuWiki.
-
diff --git a/inc/lang/ku/denied.txt b/inc/lang/ku/denied.txt
deleted file mode 100644
index 34cb8456a..000000000
--- a/inc/lang/ku/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permission Denied ======
-
-Sorry, you don't have enough rights to continue.
-
diff --git a/inc/lang/ku/editrev.txt b/inc/lang/ku/editrev.txt
deleted file mode 100644
index e6995713b..000000000
--- a/inc/lang/ku/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**You've loaded an old revision of the document!** If you save it, you will create a new version with this data.
----- \ No newline at end of file
diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php
index 7e21b5ba7..460b5e8a3 100644
--- a/inc/lang/ku/lang.php
+++ b/inc/lang/ku/lang.php
@@ -31,109 +31,16 @@ $lang['btn_update'] = 'Rojanekirin';
$lang['btn_delete'] = 'Jê bibe';
$lang['btn_back'] = 'Paş';
$lang['btn_backlink'] = 'Girêdanên paş';
-$lang['btn_subscribe'] = 'Subscribe Changes';
-$lang['btn_register'] = 'Register';
-$lang['loggedinas'] = 'Logged in as:';
-$lang['user'] = 'Username';
-$lang['pass'] = 'Password';
-$lang['passchk'] = 'once again';
-$lang['remember'] = 'Remember me';
-$lang['fullname'] = 'Full name';
-$lang['email'] = 'E-Mail';
-$lang['badlogin'] = 'Sorry, username or password was wrong.';
-
-$lang['regmissing'] = 'Sorry, you must fill in all fields.';
-$lang['reguexists'] = 'Sorry, a user with this login already exists.';
-$lang['regsuccess'] = 'The user has been created and the password was sent by email.';
-$lang['regsuccess2']= 'The user has been created.';
-$lang['regmailfail']= 'Looks like there was an error on sending the password mail. Please contact the admin!';
-$lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin';
-$lang['regbadpass'] = 'The two given passwords are not identically, please try again.';
-$lang['regpwmail'] = 'Your DokuWiki password';
-$lang['reghere'] = 'You don\'t have an account yet? Just get one';
-
-$lang['txt_upload'] = 'Select file to upload';
-$lang['txt_filename'] = 'Enter wikiname (optional)';
-$lang['txt_overwrt'] = 'Overwrite existing file';
-$lang['lockedby'] = 'Currently locked by';
-$lang['lockexpire'] = 'Lock expires at';
-$lang['js']['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.';
-
-$lang['js']['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?';
-
-$lang['rssfailed'] = 'An error occured while fetching this feed: ';
$lang['nothingfound']= 'Tiştek nehat dîtin.';
-
-$lang['mediaselect'] = 'Mediafile Selection';
-$lang['uploadsucc'] = 'Upload successful';
-$lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?';
-$lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!';
-$lang['uploadexist'] = 'File already exists. Nothing done.';
-$lang['deletesucc'] = 'The file "%s" has been deleted.';
-$lang['deletefail'] = '"%s" couldn\'t be deleted - check permissions.';
-$lang['mediainuse'] = 'The file "%s" hasn\'t been deleted - it is still in use.';
-$lang['namespaces'] = 'Namespace';
-$lang['mediafiles'] = 'Available files in';
-
$lang['reference'] = 'Referansa';
-$lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:';
-$lang['ref_hidden'] = 'Some references are on pages you don\'t have permission to read';
-
-$lang['hits'] = 'Hits';
-$lang['quickhits'] = 'Matching pagenames';
$lang['toc'] = 'Tabloya Navêrokê';
-$lang['current'] = 'current';
-$lang['yours'] = 'Your Version';
-$lang['diff'] = 'show differences to current version';
$lang['line'] = 'Rêz';
$lang['breadcrumb'] = 'Şop:';
$lang['lastmod'] = 'Guherandina dawî:';
-$lang['by'] = 'by';
$lang['deleted'] = 'hat jê birin';
$lang['created'] = 'hat afirandin';
-$lang['restored'] = 'old revision restored (%s)';
$lang['summary'] = 'Kurteya guhartinê';
-
-$lang['mail_newpage'] = 'page added:';
-$lang['mail_changed'] = 'page changed:';
-
-$lang['js']['nosmblinks'] = 'Linking to Windows shares only works in Microsoft Internet Explorer.\nYou still can copy and paste the link.';
-
-$lang['qb_bold'] = 'Bold Text';
-$lang['qb_italic'] = 'Italic Text';
-$lang['qb_underl'] = 'Underlined Text';
-$lang['qb_code'] = 'Code Text';
-$lang['qb_strike'] = 'Strike-through Text';
-$lang['qb_h1'] = 'Level 1 Headline';
-$lang['qb_h2'] = 'Level 2 Headline';
-$lang['qb_h3'] = 'Level 3 Headline';
-$lang['qb_h4'] = 'Level 4 Headline';
-$lang['qb_h5'] = 'Level 5 Headline';
-$lang['qb_link'] = 'Internal Link';
-$lang['qb_extlink'] = 'External Link';
-$lang['qb_hr'] = 'Horizontal Rule';
-$lang['qb_ol'] = 'Ordered List Item';
-$lang['qb_ul'] = 'Unordered List Item';
-$lang['qb_media'] = 'Add Images and other files';
-$lang['qb_sig'] = 'Insert Signature';
-
-$lang['js']['del_confirm']= 'Delete this entry?';
-
-$lang['metaedit'] = 'Edit Metadata';
-$lang['metasaveerr'] = 'Writing metadata failed';
-$lang['metasaveok'] = 'Metadata saved';
-$lang['btn_img_backto'] = 'Back to %s';
-$lang['img_title'] = 'Title:';
-$lang['img_caption'] = 'Caption:';
-$lang['img_date'] = 'Date:';
-$lang['img_fname'] = 'Filename:';
-$lang['img_fsize'] = 'Size:';
-$lang['img_artist'] = 'Photographer:';
-$lang['img_copyr'] = 'Copyright:';
-$lang['img_format'] = 'Format:';
-$lang['img_camera'] = 'Camera:';
-$lang['img_keywords']= 'Keywords:';
$lang['searchcreatepage'] = "Heke tiştek nehatibe dîtin, tu dikarî dest bi nivîsandina rûpelekê nû bikî. Ji bo vê, ''Vê rûpelê biguherîne'' bitikîne.";
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/ku/locked.txt b/inc/lang/ku/locked.txt
deleted file mode 100644
index af6347a96..000000000
--- a/inc/lang/ku/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Page locked ======
-
-This page is currently locked for editing by another user. You have to wait until this user finishes editing or the lock expires.
diff --git a/inc/lang/ku/login.txt b/inc/lang/ku/login.txt
deleted file mode 100644
index 2004ea198..000000000
--- a/inc/lang/ku/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Login ======
-
-You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
-
diff --git a/inc/lang/ku/mailtext.txt b/inc/lang/ku/mailtext.txt
deleted file mode 100644
index 44a3f6553..000000000
--- a/inc/lang/ku/mailtext.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-A page in your DokuWiki was added or changed. Here are the details:
-
-Date : @DATE@
-Browser : @BROWSER@
-IP-Address : @IPADDRESS@
-Hostname : @HOSTNAME@
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-Edit Summary: @SUMMARY@
-User : @USER@
-
-@DIFF@
-
-
---
-This mail was generated by DokuWiki at
-@DOKUWIKIURL@
diff --git a/inc/lang/ku/norev.txt b/inc/lang/ku/norev.txt
deleted file mode 100644
index 0b21bf3f0..000000000
--- a/inc/lang/ku/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== No such revision ======
-
-The specified revision doesn't exist. Use the ''Old revisions'' button for a list of old revisions of this document.
-
diff --git a/inc/lang/ku/password.txt b/inc/lang/ku/password.txt
deleted file mode 100644
index 6d5cbe678..000000000
--- a/inc/lang/ku/password.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Hi @FULLNAME@!
-
-Here is your userdata for @TITLE@ at @DOKUWIKIURL@
-
-Login : @LOGIN@
-Password : @PASSWORD@
-
---
-This mail was generated by DokuWiki at
-@DOKUWIKIURL@
diff --git a/inc/lang/ku/read.txt b/inc/lang/ku/read.txt
deleted file mode 100644
index 9f56d81ad..000000000
--- a/inc/lang/ku/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong.
-
diff --git a/inc/lang/ku/register.txt b/inc/lang/ku/register.txt
deleted file mode 100644
index b65683bc2..000000000
--- a/inc/lang/ku/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Register as new user ======
-
-Fill in all the information below to create a new account in this wiki. Make sure you supply a **valid e-mail address** - your new password will be sent to it. The login name should be a valid [[doku>pagename|pagename]].
-
diff --git a/inc/lang/ku/revisions.txt b/inc/lang/ku/revisions.txt
deleted file mode 100644
index dd5f35b8e..000000000
--- a/inc/lang/ku/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Old Revisions ======
-
-These are the older revisons of the current document. To revert to an old revision, select it from below, click ''Edit this page'' and save it.
-
diff --git a/inc/lang/ku/showrev.txt b/inc/lang/ku/showrev.txt
deleted file mode 100644
index 3608de36b..000000000
--- a/inc/lang/ku/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**This is an old revision of the document!**
-----
diff --git a/inc/lang/ku/stopwords.txt b/inc/lang/ku/stopwords.txt
deleted file mode 100644
index bc6eb48ae..000000000
--- a/inc/lang/ku/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is a list of words the indexer ignores, one word per line
-# When you edit this file be sure to use UNIX line endings (single newline)
-# No need to include words shorter than 3 chars - these are ignored anyway
-# This list is based upon the ones found at http://www.ranks.nl/stopwords/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php
index 35f8308d0..d6b828525 100644
--- a/inc/lang/la/lang.php
+++ b/inc/lang/la/lang.php
@@ -12,11 +12,11 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
$lang['singlequoteopening'] = '`';
-$lang['singlequoteclosing'] = '\'';
-$lang['apostrophe'] = '´';
+$lang['singlequoteclosing'] = '´';
+$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Recensere hanc paginam';
$lang['btn_source'] = 'Fontem uidere';
$lang['btn_show'] = 'Ostendere paginam';
diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php
index 5621fe9c0..034d98b38 100644
--- a/inc/lang/mk/lang.php
+++ b/inc/lang/mk/lang.php
@@ -14,7 +14,9 @@ $lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
$lang['doublequoteopening'] = '„';
$lang['doublequoteclosing'] = '“';
-$lang['apostrophe'] = '\'';
+$lang['singlequoteopening'] = '’';
+$lang['singlequoteclosing'] = '‘';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Уреди ја страницата';
$lang['btn_source'] = 'Прикажи ја изворната страница';
$lang['btn_show'] = 'Прикажи страница';
diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php
index e7d82af19..496144a27 100644
--- a/inc/lang/nl/lang.php
+++ b/inc/lang/nl/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author François Kooman <fkooman.tuxed.net>
* @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl>
* @author Riny Heijdendael <riny@heijdendael.nl>
@@ -355,4 +355,4 @@ $lang['searchresult'] = 'Zoekresultaat';
$lang['plainhtml'] = 'Alleen HTML';
$lang['wikimarkup'] = 'Wiki Opmaak';
$lang['page_nonexist_rev'] = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij <a href="%s">%s</a>.';
-$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "% s".';
+$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "%s".';
diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php
index fddbf1419..9388a0a70 100644
--- a/inc/lang/no/lang.php
+++ b/inc/lang/no/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Reidar Mosvold <Reidar.Mosvold@hit.no>
* @author Jorge Barrera Grandon <jorge@digitalwolves.org>
* @author Rune Rasmussen [http://www.syntaxerror.no/]
@@ -30,7 +30,7 @@ $lang['doublequoteopening'] = '«';
$lang['doublequoteclosing'] = '»';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Rediger denne siden';
$lang['btn_source'] = 'Vis kildekode';
$lang['btn_show'] = 'Vis siden';
@@ -347,7 +347,7 @@ $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s på %s';
$lang['media_edit'] = 'Rediger %s';
-$lang['media_history'] = '%vis historikk';
+$lang['media_history'] = '%s vis historikk';
$lang['media_meta_edited'] = 'metadata er endra';
$lang['media_perm_read'] = 'Beklager, du har ikke tilgang til å lese filer.';
$lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til å laste opp filer.';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index 5c9acfa17..ae307b4fd 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Grzegorz Żur <grzegorz.zur@gmail.com>
* @author Mariusz Kujawski <marinespl@gmail.com>
* @author Maciej Kurczewski <pipijajko@gmail.com>
@@ -25,7 +25,7 @@ $lang['doublequoteopening'] = '„';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‚';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Edytuj stronę';
$lang['btn_source'] = 'Pokaż źródło strony';
$lang['btn_show'] = 'Pokaż stronę';
diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php
index 7c6395b4b..1603e7cec 100644
--- a/inc/lang/pt/lang.php
+++ b/inc/lang/pt/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -340,5 +340,5 @@ $lang['currentns'] = 'Namespace actual';
$lang['searchresult'] = 'Resultado da pesquisa';
$lang['plainhtml'] = 'HTML simples';
$lang['wikimarkup'] = 'Markup de Wiki';
-$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">% s </a>.';
+$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Não é possível analisar o parâmetro "%s".';
diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php
index 5953fccda..5dab68c69 100644
--- a/inc/lang/ro/lang.php
+++ b/inc/lang/ro/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Tiberiu Micu <tibimicu@gmx.net>
* @author Sergiu Baltariu <s_baltariu@yahoo.com>
* @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
@@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '„';
$lang['doublequoteclosing'] = '“';
$lang['singlequoteopening'] = '‚';
$lang['singlequoteclosing'] = '‘';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Editează această pagină';
$lang['btn_source'] = 'Arată sursa paginii';
$lang['btn_show'] = 'Arată pagina';
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 3a1fb2c56..40d3ffefe 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -31,8 +31,9 @@
* @author Vitaly Filatenko <kot@hacktest.net>
* @author Alex P <alexander@lanos.co.uk>
* @author Nolf <m.kopachovets@gmail.com>
+ * @author Takumo <9206984@mail.ru>
*/
-$lang['encoding'] = ' utf-8';
+$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
$lang['doublequoteopening'] = '«';
$lang['doublequoteclosing'] = '»';
diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php
index 3d2146394..331819a66 100644
--- a/inc/lang/sq/lang.php
+++ b/inc/lang/sq/lang.php
@@ -12,10 +12,10 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
-$lang['singlequoteopening'] = '\'';
-$lang['singlequoteclosing'] = '\'';
+$lang['doublequoteopening'] = '„';
+$lang['doublequoteclosing'] = '“';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Redaktoni këtë faqe';
$lang['btn_source'] = 'Trego kodin burim të faqes';
diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php
index 41c4a94c3..422613ec7 100644
--- a/inc/lang/ta/lang.php
+++ b/inc/lang/ta/lang.php
@@ -2,12 +2,12 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Naveen Venugopal <naveen.venugopal.anu@gmail.com>
* @author Sri Saravana <saravanamuthaly@gmail.com>
*/
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
$lang['singlequoteopening'] = '\'';
$lang['singlequoteclosing'] = '\'';
$lang['apostrophe'] = '\'';
diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php
index e40b69454..59332f70b 100644
--- a/inc/lang/th/lang.php
+++ b/inc/lang/th/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Komgrit Niyomrath <n.komgrit@gmail.com>
* @author Arthit Suriyawongkul <arthit@gmail.com>
* @author Kittithat Arnontavilas <mrtomyum@gmail.com>
@@ -11,7 +11,7 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '“ ';
+$lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php
index 6b4315c7c..2242b1792 100644
--- a/inc/lang/tr/lang.php
+++ b/inc/lang/tr/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -290,8 +290,8 @@ $lang['i_confexists'] = '<code>%s</code> zaten var';
$lang['i_writeerr'] = '<code>%s</code> oluşturulamadı. Dosya/Klasör izin ayarlarını gözden geçirip dosyayı elle oluşturmalısınız.';
$lang['i_badhash'] = 'dokuwiki.php tanınamadı ya da değiştirilmiş (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - Yanlış veya boş değer';
-$lang['i_success'] = 'Kurulum başarıyla tamamlandı. Şimdi install.php dosyasını silebilirsiniz. <a href="doku.php">Yeni DokuWikiniz</a>i kullanabilirsiniz.';
-$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluştu. <a href="doku.php">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.';
+$lang['i_success'] = 'Kurulum başarıyla tamamlandı. Şimdi install.php dosyasını silebilirsiniz. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanabilirsiniz.';
+$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluştu. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.';
$lang['i_policy'] = 'İlk ACL ayarı';
$lang['i_pol0'] = 'Tamamen Açık Wiki (herkes okuyabilir, yazabilir ve dosya yükleyebilir)';
$lang['i_pol1'] = 'Açık Wiki (herkes okuyabilir, ancak sadece üye olanlar yazabilir ve dosya yükleyebilir)';
diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php
index 52edaafda..74a717bfe 100644
--- a/inc/lang/uk/lang.php
+++ b/inc/lang/uk/lang.php
@@ -2,7 +2,7 @@
/**
* @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>
@@ -189,7 +189,6 @@ $lang['line'] = 'Рядок';
$lang['breadcrumb'] = 'Відвідано:';
$lang['youarehere'] = 'Ви тут:';
$lang['lastmod'] = 'В останнє змінено:';
-$lang['by'] = ' ';
$lang['deleted'] = 'знищено';
$lang['created'] = 'створено';
$lang['restored'] = 'відновлено стару ревізію (%s)';
diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php
index bfe38b920..b69456ee7 100644
--- a/inc/lang/zh-tw/lang.php
+++ b/inc/lang/zh-tw/lang.php
@@ -2,7 +2,7 @@
/**
* @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
@@ -296,8 +296,8 @@ $lang['i_writeerr'] = '無法建立 <code>%s</code>。您必須檢查
$lang['i_badhash'] = '無法辨識或已遭修改的 dokuwiki.php (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> —— 非法或空白的值';
$lang['i_success'] = '設定已完成。您現在可以刪除 install.php 檔案。繼續到
-<a href="doku.php">您的新 DokuWiki</a>.';
-$lang['i_failure'] = '寫入設定檔時發生了一些錯誤。您必須在使用<a href="doku.php">您的新 Dokuwiki</a> 之前手動修正它們。';
+<a href="doku.php?id=wiki:welcome">您的新 DokuWiki</a>.';
+$lang['i_failure'] = '寫入設定檔時發生了一些錯誤。您必須在使用<a href="doku.php?id=wiki:welcome">您的新 Dokuwiki</a> 之前手動修正它們。';
$lang['i_policy'] = '初步的 ACL 政策';
$lang['i_pol0'] = '開放的 wiki (任何人可讀取、寫入、上傳)';
$lang['i_pol1'] = '公開的 wiki (任何人可讀取,註冊使用者可寫入與上傳)';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index 8f3a7bbf4..d179ad634 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -24,6 +24,7 @@
* @author xiqingongzi <Xiqingongzi@Gmail.com>
* @author qinghao <qingxianhao@gmail.com>
* @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de>
+ * @author Errol <errol@hotmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -89,6 +90,7 @@ $lang['regmissing'] = '对不起,您必须填写所有的字段。'
$lang['reguexists'] = '对不起,该用户名已经存在。';
$lang['regsuccess'] = '新用户已建立,密码将通过电子邮件发送给您。';
$lang['regsuccess2'] = '新用户已建立';
+$lang['regfail'] = '用户不能被创建。';
$lang['regmailfail'] = '发送密码邮件时产生错误。请联系管理员!';
$lang['regbadmail'] = '您输入的邮件地址有问题——如果您认为这是系统错误,请联系管理员。';
$lang['regbadpass'] = '您输入的密码与系统产生的不符,请重试。';
@@ -103,6 +105,7 @@ $lang['profdeleteuser'] = '删除账号';
$lang['profdeleted'] = '你的用户已经从这个 wiki 中删除';
$lang['profconfdelete'] = '我希望删除我的账户。<br/>这项操作无法撤销。';
$lang['profconfdeletemissing'] = '确认框未勾选';
+$lang['proffail'] = '用户设置没有更新。';
$lang['pwdforget'] = '忘记密码?立即获取新密码';
$lang['resendna'] = '本维基不支持二次发送密码。';
$lang['resendpwd'] = '设置新密码用于';
@@ -352,6 +355,7 @@ $lang['media_perm_read'] = '抱歉,您没有足够权限读取这些文
$lang['media_perm_upload'] = '抱歉,您没有足够权限来上传文件。';
$lang['media_update'] = '上传新版本';
$lang['media_restore'] = '恢复这个版本';
+$lang['media_acl_warning'] = '此列表可能不完全是由ACL限制和隐藏的页面。';
$lang['currentns'] = '当前命名空间';
$lang['searchresult'] = '搜索结果';
$lang['plainhtml'] = '纯HTML';
diff --git a/inc/pageutils.php b/inc/pageutils.php
index 375712661..a5bf039d5 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -243,7 +243,6 @@ function sectionID($title,&$check) {
return $title;
}
-
/**
* Wiki page existence check
*
@@ -251,9 +250,10 @@ function sectionID($title,&$check) {
*
* @author Chris Smith <chris@jalakai.co.uk>
*
- * @param string $id page id
- * @param string|int $rev empty or revision timestamp
- * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well)
+ * @param string $id page id
+ * @param string|int $rev empty or revision timestamp
+ * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well)
+ * @param bool $date_at
* @return bool exists?
*/
function page_exists($id,$rev='',$clean=true, $date_at=false) {
@@ -489,9 +489,11 @@ function resolve_id($ns,$id,$clean=true){
*
* @author Andreas Gohr <andi@splitbrain.org>
*
- * @param string $ns namespace which is context of id
- * @param string &$page (reference) relative media id, updated to resolved id
- * @param bool &$exists (reference) updated with existance of media
+ * @param string $ns namespace which is context of id
+ * @param string &$page (reference) relative media id, updated to resolved id
+ * @param bool &$exists (reference) updated with existance of media
+ * @param int|string $rev
+ * @param bool $date_at
*/
function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
$page = resolve_id($ns,$page);
@@ -502,7 +504,7 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
$rev = $medialog_rev;
}
}
-
+
$file = mediaFN($page,$rev);
$exists = file_exists($file);
}
@@ -512,9 +514,11 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*
- * @param string $ns namespace which is context of id
- * @param string &$page (reference) relative page id, updated to resolved id
- * @param bool &$exists (reference) updated with existance of media
+ * @param string $ns namespace which is context of id
+ * @param string &$page (reference) relative page id, updated to resolved id
+ * @param bool &$exists (reference) updated with existance of media
+ * @param string $rev
+ * @param bool $date_at
*/
function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){
global $conf;
diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php
index 35bdd0e3f..d7a3faef8 100644
--- a/inc/parser/renderer.php
+++ b/inc/parser/renderer.php
@@ -806,18 +806,26 @@ class Doku_Renderer extends DokuWiki_Plugin {
$url = $this->interwiki[$shortcut];
} else {
// Default to Google I'm feeling lucky
- $url = 'http://www.google.com/search?q={URL}&amp;btnI=lucky';
+ $url = 'https://www.google.com/search?q={URL}&amp;btnI=lucky';
$shortcut = 'go';
}
//split into hash and url part
- @list($reference, $hash) = explode('#', $reference, 2);
+ $hash = strrchr($reference, '#');
+ if($hash) {
+ $reference = substr($reference, 0, -strlen($hash));
+ $hash = substr($hash, 1);
+ }
//replace placeholder
if(preg_match('#\{(URL|NAME|SCHEME|HOST|PORT|PATH|QUERY)\}#', $url)) {
//use placeholders
$url = str_replace('{URL}', rawurlencode($reference), $url);
- $url = str_replace('{NAME}', $reference, $url);
+ //wiki names will be cleaned next, otherwise urlencode unsafe chars
+ $url = str_replace('{NAME}', ($url{0} === ':') ? $reference :
+ preg_replace_callback('/[[\\\\\]^`{|}#%]/', function($match) {
+ return rawurlencode($match[0]);
+ }, $reference), $url);
$parsed = parse_url($reference);
if(!$parsed['port']) $parsed['port'] = 80;
$url = str_replace('{SCHEME}', $parsed['scheme'], $url);
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index d1bf91a02..c544d9e32 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -761,27 +761,40 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
* Render a CamelCase link
*
- * @param string $link The link name
+ * @param string $link The link name
+ * @param bool $returnonly whether to return html or write to doc attribute
* @see http://en.wikipedia.org/wiki/CamelCase
*/
- function camelcaselink($link) {
- $this->internallink($link, $link);
+ function camelcaselink($link, $returnonly = false) {
+ if($returnonly) {
+ return $this->internallink($link, $link, null, true);
+ } else {
+ $this->internallink($link, $link);
+ }
}
/**
* Render a page local link
*
- * @param string $hash hash link identifier
- * @param string $name name for the link
+ * @param string $hash hash link identifier
+ * @param string $name name for the link
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function locallink($hash, $name = null) {
+ function locallink($hash, $name = null, $returnonly = false) {
global $ID;
$name = $this->_getLinkTitle($name, $hash, $isImage);
$hash = $this->_headerToLink($hash);
$title = $ID.' ↵';
- $this->doc .= '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">';
- $this->doc .= $name;
- $this->doc .= '</a>';
+
+ $doc = '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">';
+ $doc .= $name;
+ $doc .= '</a>';
+
+ if($returnonly) {
+ return $doc;
+ } else {
+ $this->doc .= $doc;
+ }
}
/**
@@ -884,10 +897,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
* Render an external link
*
- * @param string $url full URL with scheme
- * @param string|array $name name for the link, array for media file
+ * @param string $url full URL with scheme
+ * @param string|array $name name for the link, array for media file
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function externallink($url, $name = null) {
+ function externallink($url, $name = null, $returnonly = false) {
global $conf;
$name = $this->_getLinkTitle($name, $url, $isImage);
@@ -926,7 +940,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if($conf['relnofollow']) $link['more'] .= ' rel="nofollow"';
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
@@ -934,12 +952,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* You may want to use $this->_resolveInterWiki() here
*
- * @param string $match original link - probably not much use
- * @param string|array $name name for the link, array for media file
- * @param string $wikiName indentifier (shortcut) for the remote wiki
- * @param string $wikiUri the fragment parsed from the original link
+ * @param string $match original link - probably not much use
+ * @param string|array $name name for the link, array for media file
+ * @param string $wikiName indentifier (shortcut) for the remote wiki
+ * @param string $wikiUri the fragment parsed from the original link
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function interwikilink($match, $name = null, $wikiName, $wikiUri) {
+ function interwikilink($match, $name = null, $wikiName, $wikiUri, $returnonly = false) {
global $conf;
$link = array();
@@ -977,16 +996,21 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['title'] = htmlspecialchars($link['url']);
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
* Link to windows share
*
- * @param string $url the link
- * @param string|array $name name for the link, array for media file
+ * @param string $url the link
+ * @param string|array $name name for the link, array for media file
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function windowssharelink($url, $name = null) {
+ function windowssharelink($url, $name = null, $returnonly = false) {
global $conf;
//simple setup
@@ -1010,7 +1034,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['url'] = $url;
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
@@ -1018,10 +1046,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* Honors $conf['mailguard'] setting
*
- * @param string $address Email-Address
- * @param string|array $name name for the link, array for media file
+ * @param string $address Email-Address
+ * @param string|array $name name for the link, array for media file
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function emaillink($address, $name = null) {
+ function emaillink($address, $name = null, $returnonly = false) {
global $conf;
//simple setup
$link = array();
@@ -1053,7 +1082,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['title'] = $title;
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 8650f974f..5b96d39fe 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -121,15 +121,21 @@ function p_cached_output($file, $format='xhtml', $id='') {
$cache = new cache_renderer($id, $file, $format);
if ($cache->useCache()) {
$parsed = $cache->retrieveCache(false);
- if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n";
+ if($conf['allowdebug'] && $format=='xhtml') {
+ $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n";
+ }
} else {
$parsed = p_render($format, p_cached_instructions($file,false,$id), $info);
if ($info['cache'] && $cache->storeCache($parsed)) { // storeCache() attempts to save cachefile
- if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n";
+ if($conf['allowdebug'] && $format=='xhtml') {
+ $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n";
+ }
}else{
$cache->removeCache(); //try to delete cachefile
- if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n";
+ if($conf['allowdebug'] && $format=='xhtml') {
+ $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n";
+ }
}
}
@@ -616,8 +622,9 @@ function p_sort_modes($a, $b){
* @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $mode
- * @param array|null|false $instructions
- * @param array $info returns render info like enabled toc and cache
+ * @param array|null|false $instructions
+ * @param array $info returns render info like enabled toc and cache
+ * @param string $date_at
* @return null|string rendered output
*/
function p_render($mode,$instructions,&$info,$date_at=''){
@@ -632,7 +639,7 @@ function p_render($mode,$instructions,&$info,$date_at=''){
if($date_at) {
$Renderer->date_at = $date_at;
}
-
+
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = getAcronyms();
diff --git a/inc/remote.php b/inc/remote.php
index 861353a19..3e032049d 100644
--- a/inc/remote.php
+++ b/inc/remote.php
@@ -234,7 +234,7 @@ class RemoteAPI {
global $INPUT;
if (!$conf['remote']) {
- return false;
+ throw new RemoteAccessDeniedException('server error. RPC server not enabled.',-32604); //should not be here,just throw
}
if(!$conf['useacl']) {
return true;
diff --git a/inc/template.php b/inc/template.php
index 7a25e12c8..f918d1a04 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -835,7 +835,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) {
print 'placeholder="'.$lang['btn_search'].'" ';
if(!$autocomplete) print 'autocomplete="off" ';
print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />';
- print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />';
+ print '<button type="submit" title="'.$lang['btn_search'].'">'.$lang['btn_search'].'</button>';
if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>';
print '</div></form>';
return true;
@@ -1614,6 +1614,12 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
/** @var Input $INPUT */
global $INPUT;
+ $action_structure = array(
+ 'page_tools' => array('edit', 'revert', 'revisions', 'backlink', 'subscribe'),
+ 'site_tools' => array('recent', 'media', 'index'),
+ 'user_tools' => array('login', 'register', 'profile', 'admin'),
+ );
+
echo '<form action="'.script().'" method="get" accept-charset="utf-8">';
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
@@ -1625,50 +1631,17 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
echo '<select name="do" class="edit quickselect" title="'.$lang['tools'].'">';
echo '<option value="">'.$empty.'</option>';
- echo '<optgroup label="'.$lang['page_tools'].'">';
- $act = tpl_get_action('edit');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('revert');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('revisions');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('backlink');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('subscribe');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
-
- echo '<optgroup label="'.$lang['site_tools'].'">';
- $act = tpl_get_action('recent');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('media');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('index');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
-
- echo '<optgroup label="'.$lang['user_tools'].'">';
- $act = tpl_get_action('login');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('register');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('profile');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('admin');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
+ foreach($action_structure as $tools => $actions) {
+ echo '<optgroup label="'.$lang[$tools].'">';
+ foreach($actions as $action) {
+ $act = tpl_get_action($action);
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ }
+ echo '</optgroup>';
+ }
echo '</select>';
- echo '<input type="submit" value="'.$button.'" />';
+ echo '<button type="submit">'.$button.'</button>';
echo '</div>';
echo '</form>';
}