ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/website/www.git/commit/?id=4fc514aa25898fec8cdededaaffe5282f18e6f2e

commit 4fc514aa25898fec8cdededaaffe5282f18e6f2e
Author: Andy Williams <a...@andywilliams.me>
Date:   Fri Oct 20 16:23:12 2017 +0100

    Add page move plusin
---
 public_html/lib/plugins/editx/action.php           | 414 +++++++++++++++++++++
 public_html/lib/plugins/editx/conf/default.php     |   9 +
 public_html/lib/plugins/editx/conf/metadata.php    |   8 +
 public_html/lib/plugins/editx/lang/de/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/de/lang.php     |  44 +++
 public_html/lib/plugins/editx/lang/de/settings.php |  12 +
 public_html/lib/plugins/editx/lang/en/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/en/lang.php     |  50 +++
 public_html/lib/plugins/editx/lang/en/settings.php |  11 +
 public_html/lib/plugins/editx/lang/es/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/es/lang.php     |  45 +++
 public_html/lib/plugins/editx/lang/es/settings.php |  11 +
 public_html/lib/plugins/editx/lang/hr/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/hr/lang.php     |  50 +++
 public_html/lib/plugins/editx/lang/hr/settings.php |  11 +
 public_html/lib/plugins/editx/lang/nl/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/nl/lang.php     |  51 +++
 public_html/lib/plugins/editx/lang/pl/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/pl/lang.php     |  43 +++
 public_html/lib/plugins/editx/lang/pl/settings.php |  11 +
 public_html/lib/plugins/editx/lang/ru/intro.txt    |   3 +
 public_html/lib/plugins/editx/lang/ru/lang.php     |  45 +++
 public_html/lib/plugins/editx/lang/ru/settings.php |  13 +
 public_html/lib/plugins/editx/lang/zh-tw/intro.txt |   3 +
 public_html/lib/plugins/editx/lang/zh-tw/lang.php  |  50 +++
 .../lib/plugins/editx/lang/zh-tw/settings.php      |  11 +
 public_html/lib/plugins/editx/plugin.info.txt      |   7 +
 27 files changed, 920 insertions(+)

diff --git a/public_html/lib/plugins/editx/action.php 
b/public_html/lib/plugins/editx/action.php
new file mode 100644
index 00000000..20c097ef
--- /dev/null
+++ b/public_html/lib/plugins/editx/action.php
@@ -0,0 +1,414 @@
+<?php
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @author     Danny Lin <danny.0...@gmail.com>
+ */
+
+// must be run within Dokuwiki
+if(!defined('DOKU_INC')) die();
+if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
+require_once (DOKU_PLUGIN . 'action.php');
+require_once(DOKU_INC.'inc/fulltext.php');
+
+class action_plugin_editx extends DokuWiki_Action_Plugin {
+
+    /**
+     * register the eventhandlers
+     */
+    function register(Doku_Event_Handler $contr) {
+        $contr->register_hook('TPL_ACT_RENDER', 'AFTER', $this, 
'_append_to_edit', array());
+        $contr->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 
'_handle_act', array());
+        $contr->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, 
'_handle_tpl_act', array());
+    }
+
+    /**
+     * main hooks
+     */ 
+    function _append_to_edit(&$event, $param) {
+        global $ID;
+        if ($event->data != 'edit') return;
+        if (!$this->_auth_check_all($ID)) return;
+        $link = sprintf('<a href="%s" class="action editx" 
rel="nofollow">%s</a>', wl($ID,'do=editx'), $this->getLang('pagemanagement'));
+        $intro = $this->locale_xhtml('intro');
+        $intro = str_replace( '@LINK@', $link, $intro );
+        print $intro;
+    }
+
+    function _handle_act(&$event, $param) {
+        if($event->data != 'editx') return;
+        $event->preventDefault();
+    }
+
+    function _handle_tpl_act(&$event, $param) {
+        if($event->data != 'editx') return;
+        $event->preventDefault();
+
+        switch ($_REQUEST['work']) {
+            case 'rename':
+                $opts['oldpage'] = cleanID($_REQUEST['oldpage']);
+                $opts['newpage'] = cleanID($_REQUEST['newpage']);
+                $opts['summary'] = $_REQUEST['summary'];
+                $opts['rp_nr'] = $_REQUEST['rp_nr'];
+                $opts['confirm'] = $_REQUEST['rp_confirm'];
+                $this->_rename_page($opts);
+                break;
+            case 'delete':
+                $opts['oldpage'] = cleanID($_REQUEST['oldpage']);
+                $opts['summary'] = $_REQUEST['summary'];
+                $opts['purge'] = $_REQUEST['dp_purge'];
+                $opts['confirm'] = $_REQUEST['dp_confirm'];
+                $this->_delete_page($opts);
+                break;
+            default:
+                $this->_print_form();
+                break;
+        }
+    }
+
+    /**
+     * helper functions
+     */
+    function _auth_check_list($list) {
+        global $conf;
+        global $USERINFO;
+
+        if(!$conf['useacl']) return true; //no ACL - then no checks
+
+        $allowed = explode(',',$list);
+        $allowed = array_map('trim', $allowed);
+        $allowed = array_unique($allowed);
+        $allowed = array_filter($allowed);
+
+        if(!count($allowed)) return true; //no restrictions
+
+        $user   = $_SERVER['REMOTE_USER'];
+        $groups = (array) $USERINFO['grps'];
+
+        if(in_array($user,$allowed)) return true; //user explicitly mentioned
+
+        //check group memberships
+        foreach($groups as $group){
+            if(in_array('@'.$group,$allowed)) return true;
+        }
+
+        //still here? no access!
+        return false;
+    }
+    
+    function _auth_check_all($id) {
+        return $this->_auth_can_rename($id) ||
+            $this->_auth_can_delete($id);
+    }
+    
+    function _auth_can_rename($id) {
+        static $cache = null;
+        if (!$cache[$id]) {
+            $cache[$id] = auth_quickaclcheck($id)>=AUTH_EDIT &&
+                $this->_auth_check_list($this->getConf('user_rename'));
+        }
+        return $cache[$id];
+    }
+
+    function _auth_can_rename_nr($id) {
+        static $cache = null;
+        if (!$cache[$id]) {
+            $cache[$id] = auth_quickaclcheck($id)>=AUTH_DELETE &&
+                $this->_auth_check_list($this->getConf('user_rename_nr'));
+        }
+        return $cache[$id];
+    }
+
+    function _auth_can_delete($id) {
+        static $cache = null;
+        if (!$cache[$id]) {
+            $cache[$id] = auth_quickaclcheck($id)>=AUTH_DELETE &&
+                $this->_auth_check_list($this->getConf('user_delete'));
+        }
+        return $cache[$id];
+    }
+
+    function _locate_filepairs(&$opts, $dir, $regex ){
+        global $conf;
+        $oldpath = $conf[$dir].'/'.str_replace(':','/',$opts['oldns']);
+        $newpath = $conf[$dir].'/'.str_replace(':','/',$opts['newns']);
+        if (!$opts['oldfiles']) $opts['oldfiles'] = array();
+        if (!$opts['newfiles']) $opts['newfiles'] = array();
+        $dh = @opendir($oldpath);
+        if($dh) {
+            while(($file = readdir($dh)) !== false){
+                if ($file{0}=='.') continue;
+                $oldfile = $oldpath.$file;
+                if (is_file($oldfile) && preg_match($regex,$file)){
+                    $opts['oldfiles'][] = $oldfile;
+                    if ($opts['move']) {
+                        $newfilebase = str_replace($opts['oldname'], 
$opts['newname'], $file);
+                        $newfile = $newpath.$newfilebase;
+                        if (@file_exists($newfile)) {
+                            $this->errors[] = sprintf( 
$this->getLang('rp_msg_file_conflict'), '<a href="'. wl($opts['newpage']) . 
'">'.$opts['newpage'].'</a>', $newfilebase );
+                            return false;
+                        }
+                        $opts['newfiles'][] = $newfile;
+                    }
+                }
+            }
+            closedir($dh);
+            return true;
+        }
+        return false;
+    }
+
+    function _apply_moves(&$opts) {
+        foreach ($opts['oldfiles'] as $i => $oldfile) {
+            $newfile = $opts['newfiles'][$i];
+            $newdir = dirname($newfile);
+            if (!io_mkdir_p($newdir)) continue;
+            io_rename($oldfile, $newfile);
+        }
+    }
+
+    function _apply_deletes(&$opts) {
+        foreach ($opts['oldfiles'] as $oldfile) {
+            unlink($oldfile);
+        }
+    }
+
+    function _FN($id) {
+        $id = str_replace(':','/',$id);
+        $id = utf8_encodeFN($id);
+        return $id;
+    }
+
+    function _custom_delete_page($id, $summary) {
+        global $ID, $INFO, $conf;
+        // mark as nonexist to prevent indexerWebBug
+        if ($id==$ID) $INFO['exists'] = 0;
+        // delete page, meta and attic
+        $file = wikiFN($id);
+        $old = @filemtime($file); // from page
+        if (file_exists($file)) unlink($file);
+        $opts['oldname'] = $this->_FN(noNS($id));
+        $opts['oldns'] = $this->_FN(getNS($id));
+        if ($opts['oldns']) $opts['oldns'] .= '/';
+        $this->_locate_filepairs( $opts, 'metadir', 
'/^'.$opts['oldname'].'\.(?!mlist)\w*?$/' );
+        $this->_locate_filepairs( $opts, 'olddir', 
'/^'.$opts['oldname'].'\.\d{10}\.txt(\.gz|\.bz2)?$/' );
+        $this->_apply_deletes($opts);
+        io_sweepNS($id, 'datadir');
+        io_sweepNS($id, 'metadir');
+        io_sweepNS($id, 'olddir');
+        // send notify mails
+        notify($id,'admin',$old,$summary);
+        notify($id,'subscribers',$old,$summary);
+        // update the purgefile (timestamp of the last time anything within 
the wiki was changed)
+        io_saveFile($conf['cachedir'].'/purgefile',time());
+        // if useheading is enabled, purge the cache of all linking pages
+        if(useHeading('content')){
+            $pages = ft_backlinks($id);
+            foreach ($pages as $page) {
+                $cache = new cache_renderer($page, wikiFN($page), 'xhtml');
+                $cache->removeCache();
+            }
+        }
+    }
+
+    /**
+     * main functions
+     */
+    function _rename_page(&$opts) {
+        // check confirmation
+        if (!$opts['confirm']) {
+            $this->errors[] = $this->getLang('rp_msg_unconfirmed');
+        }
+        // check old page
+        if (!$opts['oldpage']) {
+            $this->errors[] = $this->getLang('rp_msg_old_empty');
+        } else if (!page_exists($opts['oldpage'])) {
+            $this->errors[] = sprintf( $this->getLang('rp_msg_old_noexist'), 
$opts['oldpage'] );
+        } else if (!$this->_auth_can_rename($opts['oldpage'])) {
+            $this->errors[] = sprintf( $this->getLang('rp_msg_auth'), 
$opts['oldpage'] );
+        } else if (checklock($opts['oldpage'])) {
+            $this->errors[] = sprintf( $this->getLang('rp_msg_locked'), 
$opts['oldpage'] );
+        }
+        // check noredirect
+        if ($opts['rp_nr'] && !$this->_auth_can_rename_nr($opts['oldpage']))
+            $this->errors[] = $this->getLang('rp_msg_auth_nr');
+        // check new page
+        if (!$opts['newpage']) {
+            $this->errors[] = $this->getLang('rp_msg_new_empty');
+        } else if (page_exists($opts['newpage'])) {
+            $this->errors[] = sprintf( $this->getLang('rp_msg_new_exist'), '<a 
href="'. wl($opts['newpage']) . '">'.$opts['newpage'].'</a>' );
+        } else if (!$this->_auth_can_rename($opts['newpage'])) {
+            $this->errors[] = sprintf( $this->getLang('rp_msg_auth'), 
$opts['newpage'] );
+        } else if (checklock($opts['newpage'])) {
+            $this->errors[] = sprintf( $this->getLang('rp_msg_locked'), 
$opts['newpage'] );
+        }
+        // try to locate moves
+        if (!$this->errors) {
+            $opts['move'] = true;
+            $opts['oldname'] = $this->_FN(noNS($opts['oldpage']));
+            $opts['newname'] = $this->_FN(noNS($opts['newpage']));
+            $opts['oldns'] = $this->_FN(getNS($opts['oldpage']));
+            $opts['newns'] = $this->_FN(getNS($opts['newpage']));
+            if ($opts['oldns']) $opts['oldns'] .= '/';
+            if ($opts['newns']) $opts['newns'] .= '/';
+            $this->_locate_filepairs( $opts, 'metadir', 
'/^'.$opts['oldname'].'\.(?!mlist|meta|indexed)\w*?$/' );
+            $this->_locate_filepairs( $opts, 'olddir', 
'/^'.$opts['oldname'].'\.\d{10}\.txt(\.gz|\.bz2)?$/' );
+        }
+        // if no error do rename
+        if (!$this->errors) {
+            // move meta and attic
+            $this->_apply_moves($opts);
+            // save to newpage
+            $text = rawWiki($opts['oldpage']);
+            if ($opts['summary'])
+                $summary = sprintf( $this->getLang('rp_newsummaryx'), 
$opts['oldpage'], $opts['newpage'], $opts['summary'] );
+            else
+                $summary = sprintf( $this->getLang('rp_newsummary'), 
$opts['oldpage'], $opts['newpage'] );
+            saveWikiText($opts['newpage'],$text,$summary);
+            // purge or recreate old page
+            $summary = $opts['summary'] ?
+                sprintf( $this->getLang('rp_oldsummaryx'), $opts['oldpage'], 
$opts['newpage'], $opts['summary'] ) :
+                sprintf( $this->getLang('rp_oldsummary'), $opts['oldpage'], 
$opts['newpage'] );
+            if ($opts['rp_nr']) {
+                $this->_custom_delete_page( $opts['oldpage'], $summary );
+                // write change log afterwards, or it would be deleted
+                addLogEntry( null, $opts['oldpage'], DOKU_CHANGE_TYPE_DELETE, 
$summary ); // also writes to global changes
+                unlink(metaFN($opts['oldpage'],'.changes')); // purge page 
changes
+            }
+            else {
+                $text = $this->getConf('redirecttext');
+                if (!$text) $text = $this->getLang('redirecttext');
+                $text = str_replace( '@ID@', $opts['newpage'], $text );
+                @unlink(wikiFN($opts['oldpage']));  // remove old page file so 
no additional history
+                saveWikiText($opts['oldpage'],$text,$summary);
+            }
+        }
+        // show messages
+        if ($this->errors) {
+            foreach ($this->errors as $error) msg( $error, -1 );
+        }
+        else {
+            $msg = sprintf( $this->getLang('rp_msg_success'), 
$opts['oldpage'], '<a href="'. wl($opts['newpage']) . 
'">'.$opts['newpage'].'</a>' );
+            msg( $msg, 1 );
+        }
+        // display form and table
+        $data = array( rp_newpage => $opts['newpage'], rp_summary => 
$opts['summary'], rp_nr => $opts['rp_nr'] );
+        $this->_print_form($data);
+    }
+
+    function _delete_page(&$opts) {
+        // check confirm
+        if (!$opts['confirm']) {
+            $this->errors[] = $this->getLang('dp_msg_unconfirmed');
+        }
+        // check old page
+        if (!$opts['oldpage']) {
+            $this->errors[] = $this->getLang('dp_msg_old_empty');
+        } else if (!$this->_auth_can_delete($opts['oldpage'])) {
+            $this->errors[] = sprintf( $this->getLang('dp_msg_auth'), 
$opts['oldpage'] );
+        }
+        // if no error do delete
+        if (!$this->errors) {
+            $summary = $opts['summary'] ? 
+                sprintf( $this->getLang('dp_oldsummaryx'), $opts['summary'] ) :
+                $this->getLang('dp_oldsummary');
+            $this->_custom_delete_page( $opts['oldpage'], $summary );
+            // write change log afterwards, or it would be deleted
+            addLogEntry( null, $opts['oldpage'], DOKU_CHANGE_TYPE_DELETE, 
$summary ); // also writes to global changes
+            if ($opts['purge']) unlink(metaFN($opts['oldpage'],'.changes')); 
// purge page changes
+        }
+        // show messages
+        if ($this->errors) {
+            foreach ($this->errors as $error) msg( $error, -1 );
+        }
+        else {
+            $msg = sprintf( $this->getLang('dp_msg_success'), $opts['oldpage'] 
);
+            msg( $msg, 1 );
+        }
+        // display form and table
+        $data = array( dp_purge => $opts['purge'], dp_summary => 
$opts['summary'] );
+        $this->_print_form($data);
+    }
+
+    function _print_form($data=null) {
+        global $ID, $lang;
+        $chk = ' checked="checked"';
+?>
+<h1><?php echo sprintf( $this->getLang('title'), $ID); ?></h1>
+<div id="config__manager">
+<?php 
+    if ($this->_auth_can_rename($ID)) {
+?>
+    <form action="<?php echo wl($ID); ?>" method="post">
+    <fieldset>
+    <legend><?php echo $this->getLang('rp_title'); ?></legend>
+        <input type="hidden" name="do" value="editx" />
+        <input type="hidden" name="work" value="rename" />
+        <input type="hidden" name="oldpage" value="<?php echo $ID; ?>" />
+        <table class="inline">
+            <tr>
+                <td class="label"><?php echo $this->getLang('rp_newpage'); 
?></td>
+                <td class="value"><input class="edit" type="input" 
name="newpage" value="<?php echo $data['rp_newpage']; ?>" /></td>
+            </tr>
+            <tr>
+                <td class="label"><?php echo $this->getLang('rp_summary'); 
?></td>
+                <td class="value"><input class="edit" type="input" 
name="summary" value="<?php echo $data['rp_summary']; ?>" /></td>
+            </tr>
+<?php 
+        if ($this->_auth_can_rename_nr($ID)) {
+?>
+            <tr>
+                <td class="label"><?php echo $this->getLang('rp_nr'); ?></td>
+                <td class="value"><input type="checkbox" name="rp_nr" 
value="1"<?php if ($data['rp_nr']) echo $chk; ?> /></td>
+            </tr>
+<?php
+    }
+?>
+            <tr>
+                <td class="label"><?php echo $this->getLang('rp_confirm'); 
?></td>
+                <td class="value"><input type="checkbox" name="rp_confirm" 
value="1" /></td>
+            </tr>
+        </table>
+        <p>
+            <input type="submit" class="button" value="<?php echo 
$lang['btn_save']; ?>" />
+            <input type="reset" class="button" value="<?php echo 
$lang['btn_reset']; ?>" />
+        </p>
+    </fieldset>
+    </form>
+<?php
+    }
+    if ($this->_auth_can_delete($ID)) {
+?>
+    <form action="<?php echo wl($ID); ?>" method="post">
+    <fieldset>
+    <legend><?php echo $this->getLang('dp_title'); ?></legend>
+        <input type="hidden" name="do" value="editx" />
+        <input type="hidden" name="work" value="delete" />
+        <input type="hidden" name="oldpage" value="<?php echo $ID; ?>" />
+        <table class="inline">
+            <tr>
+                <td class="label"><?php echo $this->getLang('dp_summary'); 
?></td>
+                <td class="value"><input class="edit" type="input" 
name="summary" value="<?php echo $data['dp_summary']; ?>" /></td>
+            </tr>
+            <tr>
+                <td class="label"><?php echo $this->getLang('dp_purge'); 
?></td>
+                <td class="value"><input type="checkbox" name="dp_purge" 
value="1"<?php if ($data['dp_purge']) echo $chk; ?> /></td>
+            </tr>
+            <tr>
+                <td class="label"><?php echo $this->getLang('dp_confirm'); 
?></td>
+                <td class="value"><input type="checkbox" name="dp_confirm" 
value="1" /></td>
+            </tr>
+        </table>
+        <p>
+            <input type="submit" class="button" value="<?php echo 
$lang['btn_save']; ?>" />
+            <input type="reset" class="button" value="<?php echo 
$lang['btn_reset']; ?>" />
+        </p>
+    </fieldset>
+    </form>
+<?php
+    }
+?>
+</div>
+<?php
+    }
+}
+// vim:ts=4:sw=4:et:enc=utf-8:
diff --git a/public_html/lib/plugins/editx/conf/default.php 
b/public_html/lib/plugins/editx/conf/default.php
new file mode 100644
index 00000000..d3f5a40e
--- /dev/null
+++ b/public_html/lib/plugins/editx/conf/default.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Options for editx plugin
+ */
+
+$conf['user_rename']    = '';
+$conf['user_rename_nr'] = '';
+$conf['user_delete']    = '';
+$conf['redirecttext']   = '';
diff --git a/public_html/lib/plugins/editx/conf/metadata.php 
b/public_html/lib/plugins/editx/conf/metadata.php
new file mode 100644
index 00000000..e9f4e77c
--- /dev/null
+++ b/public_html/lib/plugins/editx/conf/metadata.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Metadata for configuration manager plugin
+ */
+$meta['user_rename']     = array('string');
+$meta['user_rename_nr']  = array('string');
+$meta['user_delete']     = array('string');
+$meta['redirecttext']    = array('string');
diff --git a/public_html/lib/plugins/editx/lang/de/intro.txt 
b/public_html/lib/plugins/editx/lang/de/intro.txt
new file mode 100644
index 00000000..db7ea753
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/de/intro.txt
@@ -0,0 +1,3 @@
+====== Seitenverwaltung ======
+
+Wenn Sie diese Seite umbenennen oder verschieben wollen klicken sie hier: 
@LINK@.
diff --git a/public_html/lib/plugins/editx/lang/de/lang.php 
b/public_html/lib/plugins/editx/lang/de/lang.php
new file mode 100644
index 00000000..9080c8f1
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/de/lang.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * German language file
+ * by vehtoh.de
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = 'Seitenverwaltung für: %s';
+$lang['redirecttext']       = 'Diese Seite wurde [[:@ID@|hierhin]] 
verschoben.';
+
+// rename page = rp
+$lang['rp_title']           = 'Seitenumbenennung';
+$lang['rp_newpage']         = 'Neuer Name';
+$lang['rp_summary']         = 'Grund für die Umbenennung';
+$lang['rp_nr']              = 'Keine Weiterleitung';
+
+$lang['rp_oldsummary']      = '(Löschen) %s umbenannt in %s';
+$lang['rp_oldsummaryx']     = '(Löschen) %s umbenannt in %s (%s)';
+$lang['rp_newsummary']      = '%s umbenannt in %s';
+$lang['rp_newsummaryx']     = '%s umbenann in %s (%s)';
+
+$lang['rp_msg_old_empty']   = 'Sie müssen den alten Seitennamen angeben.';
+$lang['rp_msg_old_noexist'] = 'Die alte Seite %s existiert nicht.';
+$lang['rp_msg_new_empty']   = 'Sie müssen einen neuen Seitennamen angeben.';
+$lang['rp_msg_new_exist']   = 'Die neue Seite %S existiert bereits.';
+$lang['rp_msg_locked']      = 'Die Seite %s ist gesperrt.';
+$lang['rp_msg_auth']        = 'Sie haben nicht die erforderlichen 
Berechtigungen um die Seite %s zu bearbeiten.';
+$lang['rp_msg_auth_nr']     = 'Sie sind nicht berechtigt die Umleitung zu 
deaktivieren.';
+#$lang['rp_msg_file_conflict'] = 'Es ist ein Konflikt mit der neuen Seite %s 
aufgetreten.';
+$lang['rp_msg_success']     = 'Die Seite %s wurde in %s umbenannt.';
+
+// delete page = dp
+$lang['dp_title']           = 'Seitenlöschung';
+$lang['dp_purge']           = 'Verlauf aufräumen';
+
+$lang['dp_oldsummary']      = 'gelöscht';
+$lang['dp_oldsummaryx']     = 'gelöscht (%s)';
+
+$lang['dp_msg_old_empty']   = 'Sie müssen den alten Seitennamen angeben.';
+$lang['dp_msg_auth']        = 'Sie haben nicht die erforderlichen 
Berechtigungen um die Seite %s zu löschen.';
+$lang['dp_msg_auth_new']    = 'Sie haben nicht die erforderlichen 
Berechtigungen um %s zu speichern.';
+$lang['dp_msg_success']     = 'Die Seite %s wurde erfolgreich gelöscht.';
+
+//Setup VIM: ex: et ts=2 :
\ No newline at end of file
diff --git a/public_html/lib/plugins/editx/lang/de/settings.php 
b/public_html/lib/plugins/editx/lang/de/settings.php
new file mode 100644
index 00000000..5d49729e
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/de/settings.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * German language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @author:     vehtoh <kontakt[at]vehtoh[dot]de>
+ */
+
+$lang['user_rename']     = 'Gruppen/Benutzer, die Seiten umbennen dürfen 
(Komma getrennt auflisten). Leer, für alle Benutzer.';
+$lang['user_rename_nr']  = 'Gruppen/Benutzer, die Seiten umbennen dürfen, ohne 
Berechtigung für eine Weiterleitung (Komma getrennt auflisten). Leer, für alle 
Benutzer.';
+$lang['user_delete']     = 'Gruppen oder Benutzer, die Seiten löschen dürfen 
(Komma getrennt auflisten). Leer, für alle Benutzer.';
+$lang['redirecttext']    = 'Text, der nach einer Seitenverschiebung auf dem 
ursprünglichen Platz angezeigt werden soll. Leer für Standardtext.';
\ No newline at end of file
diff --git a/public_html/lib/plugins/editx/lang/en/intro.txt 
b/public_html/lib/plugins/editx/lang/en/intro.txt
new file mode 100644
index 00000000..1d930ed8
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/en/intro.txt
@@ -0,0 +1,3 @@
+====== Page Management ======
+
+Use @LINK@ to rename or delete this page.
diff --git a/public_html/lib/plugins/editx/lang/en/lang.php 
b/public_html/lib/plugins/editx/lang/en/lang.php
new file mode 100644
index 00000000..14a80f97
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/en/lang.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * English language file
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = '%s Management';
+$lang['redirecttext']       = 'This page is redirected to [[:@ID@]].';
+$lang['pagemanagement']     = 'page management';
+
+// rename page = rp
+$lang['rp_title']           = 'Page Rename';
+$lang['rp_newpage']         = 'New name';
+$lang['rp_summary']         = 'Reason';
+$lang['rp_nr']              = 'Don\'t leave redirection';
+$lang['rp_confirm']         = 'Confirm page rename';
+
+$lang['rp_oldsummary']      = '(Delete) %s renamed to %s';
+$lang['rp_oldsummaryx']     = '(Delete) %s renamed to %s (%s)';
+$lang['rp_newsummary']      = '%s renamed to %s';
+$lang['rp_newsummaryx']     = '%s renamed to %s (%s)';
+
+$lang['rp_msg_unconfirmed'] = 'The confirm box must be checked to rename a 
page.';
+$lang['rp_msg_old_empty']   = 'The old pagename cannot be empty.';
+$lang['rp_msg_old_noexist'] = 'The old page %s does not exist.';
+$lang['rp_msg_new_empty']   = 'The new pagename cannot be empty.';
+$lang['rp_msg_new_exist']   = 'The new page %s already exists.';
+$lang['rp_msg_locked']      = 'The page %s is locked now.';
+$lang['rp_msg_auth']        = 'You are not authorized to edit page %s.';
+$lang['rp_msg_auth_nr']     = 'You are not authorized to suppress redirect.';
+$lang['rp_msg_file_conflict'] = 'The new page %s has a conflicting file %s.';
+$lang['rp_msg_success']     = 'Page %s successfully renamed to %s.';
+
+// delete page = dp
+$lang['dp_title']           = 'Page Deletion';
+$lang['dp_purge']           = 'Don\'t create delete history';
+$lang['dp_confirm']         = 'Confirm page delete';
+$lang['dp_summary']         = 'Reason';
+
+$lang['dp_oldsummary']      = 'Deleted';
+$lang['dp_oldsummaryx']     = 'Deleted (%s)';
+
+$lang['dp_msg_unconfirmed'] = 'The confirm box must be checked to delete a 
page.';
+$lang['dp_msg_old_empty']   = 'The old pagename cannot be empty.';
+$lang['dp_msg_auth']        = 'You are not authorized to delete page %s.';
+$lang['dp_msg_auth_new']    = 'You are not authorized to write %s.';
+$lang['dp_msg_success']     = 'Page %s successfully deleted.';
+
+//Setup VIM: ex: et ts=2 enc=utf-8 :
diff --git a/public_html/lib/plugins/editx/lang/en/settings.php 
b/public_html/lib/plugins/editx/lang/en/settings.php
new file mode 100644
index 00000000..4a100e80
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/en/settings.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * English language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['user_rename']     = 'Groups or users that are allowed to rename a page 
(comma seperated). Leave blank to allow all.';
+$lang['user_rename_nr']  = 'Groups or users that are allowed to rename a page 
without creating redirect (comma seperated). Leave blank to allow all.';
+$lang['user_delete']     = 'Groups or users that are allowed to delete a page 
(comma seperated). Leave blank to allow all.';
+$lang['redirecttext']    = 'Text left after moving a page. (blank for default 
text)';
diff --git a/public_html/lib/plugins/editx/lang/es/intro.txt 
b/public_html/lib/plugins/editx/lang/es/intro.txt
new file mode 100644
index 00000000..5d1422e8
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/es/intro.txt
@@ -0,0 +1,3 @@
+====== Page Management ======
+
+If you want to do a page management such as renaming, go here: @LINK@.
diff --git a/public_html/lib/plugins/editx/lang/es/lang.php 
b/public_html/lib/plugins/editx/lang/es/lang.php
new file mode 100644
index 00000000..dd0e93d9
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/es/lang.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * English language file
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = '%s Manager';
+$lang['redirecttext']       = 'Esta página es redireccionada a [[:@ID@]].';
+
+// rename page = rp
+$lang['rp_title']           = 'Renombrar página';
+$lang['rp_newpage']         = 'Nombre nuevo';
+$lang['rp_summary']         = 'Motivo';
+$lang['rp_nr']              = 'No redireccionar';
+
+$lang['rp_oldsummary']      = '(Borrar) %s renombrar a %s';
+$lang['rp_oldsummaryx']     = '(Borrar) %s renombrar a %s (%s)';
+$lang['rp_newsummary']      = '%s renombrar a %s';
+$lang['rp_newsummaryx']     = '%s renombrar a %s (%s)';
+
+$lang['rp_msg_old_empty']   = 'La página antigüa no puede estar vacía.';
+$lang['rp_msg_old_noexist'] = 'La página antigüa %s no existe.';
+$lang['rp_msg_new_empty']   = 'El nombre de la página no puede estar vacía.';
+$lang['rp_msg_new_exist']   = 'La nueva página %s ya existe.';
+$lang['rp_msg_locked']      = 'La página %s está en estos momentos bloqueada.';
+$lang['rp_msg_auth']        = 'No estas autorizado para editar la página %s.';
+$lang['rp_msg_auth_nr']     = 'No estas autorizado para suprimir el enlace.';
+#$lang['rp_msg_file_conflict'] = 'Ha ocurrido un error con el fichero de la 
página %s.';
+$lang['rp_msg_success']     = 'La página %s se ha renombrado correctamente 
%s.';
+
+// delete page = dp
+$lang['dp_title']           = 'Borrar página';
+$lang['dp_purge']           = 'No borrar historial';
+$lang['dp_summary']         = 'Motivo';
+
+$lang['dp_oldsummary']      = 'Eliminada';
+$lang['dp_oldsummaryx']     = 'Eliminada (%s)';
+
+$lang['dp_msg_old_empty']   = 'El nombre de la página antigüa no puede estar 
vacía.';
+$lang['dp_msg_auth']        = 'No estas autorizado para eliminar páginas %s.';
+$lang['dp_msg_auth_new']    = 'No estas autorizado para escribir %s.';
+$lang['dp_msg_success']     = 'Página %s eliminada correctamente.';
+
+//Setup VIM: ex: et ts=2 enc=utf-8 :
diff --git a/public_html/lib/plugins/editx/lang/es/settings.php 
b/public_html/lib/plugins/editx/lang/es/settings.php
new file mode 100644
index 00000000..9fb67ae8
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/es/settings.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * English language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['user_rename']     = 'Grupo o usuarios que pueden renombrar una página 
(comma seperated). Dejar en blanco para permitir todos.';
+$lang['user_rename_nr']  = 'Grupos o usuario que pueden renombrar la página 
sin crear enlaces de redireccionamientos (separados por comas). Dejar en blanco 
para permitir todos.';
+$lang['user_delete']     = 'Grupos o usuarios que pueden eliminar una página 
(separados por comas). Dejar en blanco para permitir todos.';
+$lang['redirecttext']    = 'Dejar el texto a la izquierda después de mover la 
página (dejar en blanco para poner el texto por defecto)';
diff --git a/public_html/lib/plugins/editx/lang/hr/intro.txt 
b/public_html/lib/plugins/editx/lang/hr/intro.txt
new file mode 100644
index 00000000..3cf36141
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/hr/intro.txt
@@ -0,0 +1,3 @@
+====== Upravljanje stranicama ======
+
+Koristi @LINK@ za preimenovanje ili brisanje ove stranice.
diff --git a/public_html/lib/plugins/editx/lang/hr/lang.php 
b/public_html/lib/plugins/editx/lang/hr/lang.php
new file mode 100644
index 00000000..423de811
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/hr/lang.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Croatian language file
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = '%s upravljanje';
+$lang['redirecttext']       = 'Ova stranica je preusmjerena na [[:@ID@]].';
+$lang['pagemanagement']     = 'upravljanje stranicom';
+
+// rename page = rp
+$lang['rp_title']           = 'Preimenovanje stranice';
+$lang['rp_newpage']         = 'Novo ime';
+$lang['rp_summary']         = 'Razlog';
+$lang['rp_nr']              = 'Ne ostavi preusmjerenje';
+$lang['rp_confirm']         = 'Potvrdi preimenovanje stranice';
+
+$lang['rp_oldsummary']      = '(Obriši) %s preimenovan u %s';
+$lang['rp_oldsummaryx']     = '(Obriši) %s preimenovan u %s (%s)';
+$lang['rp_newsummary']      = '%s preimenovan u %s';
+$lang['rp_newsummaryx']     = '%s preimenovan u %s (%s)';
+
+$lang['rp_msg_unconfirmed'] = 'Uključi kvačicu potvrde da bi preimenovali 
stranicu.';
+$lang['rp_msg_old_empty']   = 'Staro ime stranice nemože biti prazno.';
+$lang['rp_msg_old_noexist'] = 'Stara stranica %s ne postoji.';
+$lang['rp_msg_new_empty']   = 'Novo ime stranice nemože biti prazno.';
+$lang['rp_msg_new_exist']   = 'Nova stranica %s već postoji.';
+$lang['rp_msg_locked']      = 'Stranica %s je trenutno zaključana.';
+$lang['rp_msg_auth']        = 'Niste autorizirani da uređujete stranicu %s.';
+$lang['rp_msg_auth_nr']     = 'Niste autorizirani da You are not authorized to 
suzbijete redirekciju.';
+$lang['rp_msg_file_conflict'] = 'Nova stranica %s ima konfliktnu datoteku %s.';
+$lang['rp_msg_success']     = 'Stranica %s uspješno preimenovana u %s.';
+
+// delete page = dp
+$lang['dp_title']           = 'Brisanje stranice';
+$lang['dp_purge']           = 'Ne stvaraj povijest brisanja';
+$lang['dp_confirm']         = 'Potvrdi brisanje stranice';
+$lang['dp_summary']         = 'Razlog';
+
+$lang['dp_oldsummary']      = 'Obrisano';
+$lang['dp_oldsummaryx']     = 'Obrisano (%s)';
+
+$lang['dp_msg_unconfirmed'] = 'Uključi kvačicu potvrde da bi obrisali 
stranicu.';
+$lang['dp_msg_old_empty']   = 'Staro ime stranice nemože biti prazno.';
+$lang['dp_msg_auth']        = 'Niste autorizirani da obrišete stranicu %s.';
+$lang['dp_msg_auth_new']    = 'Niste autorizirani da pišete u %s.';
+$lang['dp_msg_success']     = 'Stranica %s uspješno obrisana.';
+
+//Setup VIM: ex: et ts=2 enc=utf-8 :
diff --git a/public_html/lib/plugins/editx/lang/hr/settings.php 
b/public_html/lib/plugins/editx/lang/hr/settings.php
new file mode 100644
index 00000000..c9eb6b0b
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/hr/settings.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Croatian language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['user_rename']     = 'Grupe ili korisnici kojima je dopušteno 
preimenovanje stranica (zarezom odvojena lista). Ostavi prazno za sve.';
+$lang['user_rename_nr']  = 'Grupe ili korisnici kojima je dopušteno 
preimenovanje stranica bez kreiranja redirekcije (zarezom odvojena lista). 
Ostavi prazno za sve.';
+$lang['user_delete']     = 'Grupe ili korisnici kojima je dopušteno brisanje 
stranica (zarezom odvojena lista). Ostavi prazno za sve.';
+$lang['redirecttext']    = 'Tekst koji se postavlja nakon pomicanja stranice. 
(ostavi prazno za podrazumjevani tekst)';
diff --git a/public_html/lib/plugins/editx/lang/nl/intro.txt 
b/public_html/lib/plugins/editx/lang/nl/intro.txt
new file mode 100644
index 00000000..503256d6
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/nl/intro.txt
@@ -0,0 +1,3 @@
+====== Paginabeheer ======
+
+Gebruik @LINK@ om deze pagina te verplaatsen of verwijderen.
diff --git a/public_html/lib/plugins/editx/lang/nl/lang.php 
b/public_html/lib/plugins/editx/lang/nl/lang.php
new file mode 100644
index 00000000..80dab323
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/nl/lang.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Dutch language file by Theo Klein
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+ 
+$lang['title']              = '%s Beheer';
+$lang['redirecttext']       = 'Deze pagina is verplaatst naar [[:@ID@]].';
+$lang['pagemanagement']     = 'paginabeheer';
+ 
+// rename page = rp
+$lang['rp_title']           = 'Pagina hernoemen';
+$lang['rp_newpage']         = 'Nieuwe naam';
+$lang['rp_summary']         = 'Reden';
+$lang['rp_nr']              = 'Laat geen verwijzing achter op de oude pagina.';
+$lang['rp_confirm']         = 'Verplaatsing bevestigen';
+ 
+$lang['rp_oldsummary']      = '(Verwijderen) %s verplaatst naar %s';
+$lang['rp_oldsummaryx']     = '(Verwijderen) %s verplaatst naar %s (%s)';
+$lang['rp_newsummary']      = '%s verplaatst naar %s';
+$lang['rp_newsummaryx']     = '%s verplaatst naar %s (%s)';
+ 
+$lang['rp_msg_unconfirmed'] = 'De optie "Verplaatsing bevestigen" moet 
aangevinkt zijn om een pagina te verplaatsen.';
+$lang['rp_msg_old_empty']   = 'De oude paginanaam kan niet leeg zijn.';
+$lang['rp_msg_old_noexist'] = 'De oude pagina %s bestaat niet.';
+$lang['rp_msg_new_empty']   = 'De nieuwe paginanaam kan niet leeg zijn.';
+$lang['rp_msg_new_exist']   = 'De nieuwe pagina %s bestaat reeds.';
+$lang['rp_msg_new_hx_exist']= 'De nieuwe pagina %s heeft reeds een historie.';
+$lang['rp_msg_locked']      = 'Pagina %s is nu vergrendeld.';
+$lang['rp_msg_auth']        = 'U bent niet bevoegd om de volgende pagina te 
wijzigen: %s.';
+$lang['rp_msg_auth_nr']     = 'U bent niet bevoegd om de verwijzing weg te 
laten.';
+#$lang['rp_msg_file_conflict'] = 'Er is een conflict ontstaan met het bestand 
%s van de nieuwe pagina. <a href="%s">Bekijk de eerdere revisies van deze 
pagina</a> of gebruik <a href="%s">Paginabeheer</a> om de historie van deze 
pagina te verwijderen.';
+$lang['rp_msg_success']     = 'Pagina %s succesvol verplaatst naar %s.';
+ 
+// delete page = dp
+$lang['dp_title']           = 'Pagina verwijderen';
+$lang['dp_purge']           = 'Pagina verwijderen inclusief historie';
+$lang['dp_confirm']         = 'Verwijderen bevestigen';
+$lang['dp_summary']         = 'Reden';
+ 
+$lang['dp_oldsummary']      = 'Verwijderd';
+$lang['dp_oldsummaryx']     = '(%s) verwijderd';
+ 
+$lang['dp_msg_unconfirmed'] = 'De optie "Verwijderen bevestigen" moet 
aangevinkt zijn om een pagina te verwijderen.';
+$lang['dp_msg_old_empty']   = 'De oude paginanaam kan niet leeg zijn.';
+$lang['dp_msg_auth']        = 'U bent niet bevoegd om de volgende pagina te 
verwijderen: %s.';
+$lang['dp_msg_auth_new']    = 'U bent niet bevoegd om de volgende pagina te 
wijzigen: %s.';
+$lang['dp_msg_success']     = 'Pagina %s succesvol verwijderd.';
+ 
+//Setup VIM: ex: et ts=2 enc=utf-8 :
diff --git a/public_html/lib/plugins/editx/lang/pl/intro.txt 
b/public_html/lib/plugins/editx/lang/pl/intro.txt
new file mode 100644
index 00000000..59d887d7
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/pl/intro.txt
@@ -0,0 +1,3 @@
+====== Zarządzanie stroną ======
+
+Jeżeli chcesz zarządzać tą stroną, np. zmienić jej nazwę, przejdź tutaj: 
@LINK@.
diff --git a/public_html/lib/plugins/editx/lang/pl/lang.php 
b/public_html/lib/plugins/editx/lang/pl/lang.php
new file mode 100644
index 00000000..670d3a70
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/pl/lang.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Polish language file
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = 'Zarządzanie: %s';
+$lang['redirecttext']       = 'Ta strona została przeniesiona do [[:@ID@]].';
+
+// rename page = rp
+$lang['rp_title']           = 'Zmiana nazwy strony';
+$lang['rp_newpage']         = 'Nowa nazwa';
+$lang['rp_summary']         = 'Powód zmiany';
+$lang['rp_nr']              = 'Nie przekierowywuj z obecnej nazwy';
+
+$lang['rp_oldsummary']      = '(Usunięto) %s zmieniono na %s'; 
+$lang['rp_oldsummaryx']     = '(Usunięto) %s zmieniono na %s (%s)'; 
+$lang['rp_newsummary']      = '%s zmieniono na %s';
+$lang['rp_newsummaryx']     = '%s zmieniono na %s (%s)';
+
+$lang['rp_msg_old_empty']   = 'Obecna nazwa strony nie może być pusta.';
+$lang['rp_msg_old_noexist'] = 'Obecnie nie istnieje strona pod nazwą %s.';
+$lang['rp_msg_new_empty']   = 'Nowa nazwa strony nie może być pusta.';
+$lang['rp_msg_new_exist']   = 'Strona o proponowanej nazwie %s już istnieje.';
+$lang['rp_msg_locked']      = 'Strona %s jest w tej chwili zablokowana.';
+$lang['rp_msg_auth']        = 'Nie masz uprawnień do zmiany %s.';
+$lang['rp_msg_auth_nr']     = 'Nie masz uprawnień, aby usunąć przekierowanie.';
+#$lang['rp_msg_file_conflict'] = 'Wystąpił błąd związany z nową stroną %s.';
+$lang['rp_msg_success']     = 'Pomyślnie zmnieniono nazwę strony %s do %s.';
+
+// delete page = dp
+$lang['dp_title']           = 'Usuwanie strony';
+$lang['dp_purge']           = 'Usuń również historię zmian';
+$lang['dp_summary']         = 'Powód usunięcia';
+
+$lang['dp_oldsummary']      = 'Usunięto';
+$lang['dp_oldsummaryx']     = 'Usunięto (%s)';
+
+$lang['dp_msg_old_empty']   = 'Obecna nazwa strony nie może być pusta.';
+$lang['dp_msg_auth']        = 'Nie masz uprawnień do usunięcia strony %s.';
+$lang['dp_msg_auth_new']    = 'Nie masz uprawnień do zmiany %s.'; //'write'? 
jak to ładnie przetłumaczyć? chyba 'zmiana' będzie ok
+$lang['dp_msg_success']     = 'Strona %s została usunięta.';
\ No newline at end of file
diff --git a/public_html/lib/plugins/editx/lang/pl/settings.php 
b/public_html/lib/plugins/editx/lang/pl/settings.php
new file mode 100644
index 00000000..27806d5a
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/pl/settings.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Polish language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['user_rename']     = 'Grupy lub użytkownicy, którzy mogą zmieniać nazwę 
strony (oddzieleni przecinkiem). Pozostaw puste, aby pozwolić wszyskim.';
+$lang['user_rename_nr']  = 'Grupy lub użytkownicy, którzy mogą zmieniać nazwę 
strony bez tworzenia przekierowania (oddzieleni przecinkiem). Pozostaw puste, 
aby pozwolić wszyskim.';
+$lang['user_delete']     = 'Grupy lub użytkownicy, którzy mogą usuwać strony 
(oddzieleni przecinkiem). Pozostaw puste, aby pozwolić wszyskim.';
+$lang['redirecttext']    = 'Tekst pozostawiony po przeniesieniu strony. 
Pozostaw puste dla domyślnego tekstu.';
\ No newline at end of file
diff --git a/public_html/lib/plugins/editx/lang/ru/intro.txt 
b/public_html/lib/plugins/editx/lang/ru/intro.txt
new file mode 100644
index 00000000..930f91dd
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/ru/intro.txt
@@ -0,0 +1,3 @@
+====== Управление страницой ======
+
+Если вы хотите переименовать или удалить страницу, перейдите по ссылке: @LINK@.
diff --git a/public_html/lib/plugins/editx/lang/ru/lang.php 
b/public_html/lib/plugins/editx/lang/ru/lang.php
new file mode 100644
index 00000000..8010b0de
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/ru/lang.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Russian language file
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = 'Управление %s';
+$lang['redirecttext']       = 'Данная страница перемещена сюда [[:@ID@]].';
+
+// rename page = rp
+$lang['rp_title']           = 'Переименовать страницу';
+$lang['rp_newpage']         = 'Новое имя';
+$lang['rp_summary']         = 'Причина';
+$lang['rp_nr']              = 'Не устанавливать переадресацию';
+
+$lang['rp_oldsummary']      = '(Удалить) %s переименовано в %s';
+$lang['rp_oldsummaryx']     = '(Удалить) %s переименовано в %s (%s)';
+$lang['rp_newsummary']      = '%s переименовано в %s';
+$lang['rp_newsummaryx']     = '%s переименовано в %s (%s)';
+
+$lang['rp_msg_old_empty']   = 'Имя старой страницы не может быть пустым.';
+$lang['rp_msg_old_noexist'] = 'Старая страница %s не существует.';
+$lang['rp_msg_new_empty']   = 'Имя новой страницы не может быть пустым.';
+$lang['rp_msg_new_exist']   = 'Страница с именем %s уже существует.';
+$lang['rp_msg_locked']      = 'Страница %s сейчас заблокированна.';
+$lang['rp_msg_auth']        = 'У вас нет прав на редактирование данной 
страницы %s.';
+$lang['rp_msg_auth_nr']     = 'У вас нет прав на отключение переадресации.';
+#$lang['rp_msg_file_conflict'] = 'Конфликт с файлом новой страницы %s.';
+$lang['rp_msg_success']     = 'Страница %s успешно переименована в %s.';
+
+// delete page = dp
+$lang['dp_title']           = 'Удалить страницу';
+$lang['dp_purge']           = 'Не удалять историю';
+$lang['dp_summary']         = 'Причина';
+
+$lang['dp_oldsummary']      = 'Удалено';
+$lang['dp_oldsummaryx']     = 'Удалено (%s)';
+
+$lang['dp_msg_old_empty']   = 'Имя старой страницы не может быть пустым.';
+$lang['dp_msg_auth']        = 'У вас нет прав на удаление данной страницы %s.';
+$lang['dp_msg_auth_new']    = 'У вас нет прав на запись %s.';
+$lang['dp_msg_success']     = 'Страница %s успешно удалена.';
+
+//Setup VIM: ex: et ts=2 enc=utf-8 :
diff --git a/public_html/lib/plugins/editx/lang/ru/settings.php 
b/public_html/lib/plugins/editx/lang/ru/settings.php
new file mode 100644
index 00000000..663bab80
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/ru/settings.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Russian language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * Russian translation by hatifnatt
+ */
+
+$lang['user_rename']     = 'Пользователи или группы которым разрешено 
переименовывать страницы (разделяйте запятой). Оставьте пустым чтоб разрешить 
всем.';
+$lang['user_rename_nr']  = 'Пользователи или группы которым разрешено 
переименовывать страницы с отключением переадресации (разделяйте запятой). 
Оставьте пустым чтоб разрешить всем.';
+$lang['user_delete']     = 'Пользователи или группы которым разрешено удаление 
страниц. Оставьте пустым чтоб разрешить всем.';
+$lang['redirecttext']    = 'Задайте текст переадресации, (оставьте пустым для 
стандартного текста).';
diff --git a/public_html/lib/plugins/editx/lang/zh-tw/intro.txt 
b/public_html/lib/plugins/editx/lang/zh-tw/intro.txt
new file mode 100644
index 00000000..8cfa6bd6
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/zh-tw/intro.txt
@@ -0,0 +1,3 @@
+====== 頁面管理 ======
+
+用@LINK@更名或刪除頁面。
diff --git a/public_html/lib/plugins/editx/lang/zh-tw/lang.php 
b/public_html/lib/plugins/editx/lang/zh-tw/lang.php
new file mode 100644
index 00000000..a337aa48
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/zh-tw/lang.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Traditional Chinese language file
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['title']              = '%s 管理';
+$lang['redirecttext']       = '本頁已重定向至 [[:@ID@]]。';
+$lang['pagemanagement']     = '頁面管理';
+
+// rename page = rp
+$lang['rp_title']           = '頁面更名';
+$lang['rp_newpage']         = '新頁名';
+$lang['rp_summary']         = '原因';
+$lang['rp_nr']              = '不建立重定向';
+$lang['rp_confirm']         = '確認更名頁面';
+
+$lang['rp_oldsummary']      = '(刪除) %s 更名為 %s';
+$lang['rp_oldsummaryx']     = '(刪除) %s 更名為 %s (%s)';
+$lang['rp_newsummary']      = '%s 更名為 %s';
+$lang['rp_newsummaryx']     = '%s 更名為 %s (%s)';
+
+$lang['rp_msg_unconfirmed'] = '必須勾選確認才能執行移動。';
+$lang['rp_msg_old_empty']   = '舊頁名不可為空。';
+$lang['rp_msg_old_noexist'] = '舊頁面 %s 不存在。';
+$lang['rp_msg_new_empty']   = '新頁名不可為空。';
+$lang['rp_msg_new_exist']   = '新頁面 %s 已存在。';
+$lang['rp_msg_locked']      = '頁面 %s 目前正被鎖定。';
+$lang['rp_msg_auth']        = '您沒有編輯頁面 %s 的權限。';
+$lang['rp_msg_auth_nr']     = '您沒有不建立重定向的權限。';
+$lang['rp_msg_file_conflict'] = '新頁面 %s 存在衝突的檔案 %s。';
+$lang['rp_msg_success']     = '頁面 %s 已成功更名為 %s。';
+
+// delete page = dp
+$lang['dp_title']           = '頁面刪除';
+$lang['dp_purge']           = '不建立刪除歷史';
+$lang['dp_confirm']         = '確認刪除頁面';
+$lang['dp_summary']         = '原因';
+
+$lang['dp_oldsummary']      = '刪除';
+$lang['dp_oldsummaryx']     = '刪除 (%s)';
+
+$lang['dp_msg_unconfirmed'] = '必須勾選確認才能執行刪除。';
+$lang['dp_msg_old_empty']   = '舊頁名不可為空。';
+$lang['dp_msg_auth']        = '您沒有刪除頁面 %s 的權限。';
+$lang['dp_msg_auth_new']    = '您沒有寫入頁面 %s 的權限。';
+$lang['dp_msg_success']     = '已成功刪除頁面 %s。';
+
+//Setup VIM: ex: et ts=2 enc=utf-8 :
diff --git a/public_html/lib/plugins/editx/lang/zh-tw/settings.php 
b/public_html/lib/plugins/editx/lang/zh-tw/settings.php
new file mode 100644
index 00000000..2b25931c
--- /dev/null
+++ b/public_html/lib/plugins/editx/lang/zh-tw/settings.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Traditional Chinese language file
+ *
+ * @license:    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ */
+
+$lang['user_rename']     = '允許更改頁面名稱的群組或使用者 (逗號分隔),空白代表全部允許。';
+$lang['user_rename_nr']  = '允許更改頁面名稱不留下重定向的群組或使用者 (逗號分隔),空白代表全部允許。';
+$lang['user_delete']     = '允許刪除頁面的群組或使用者 (逗號分隔),空白代表全部允許。';
+$lang['redirecttext']    = '移動頁面後留下的訊息 (留白使用預設訊息)';
diff --git a/public_html/lib/plugins/editx/plugin.info.txt 
b/public_html/lib/plugins/editx/plugin.info.txt
new file mode 100644
index 00000000..9dca9e39
--- /dev/null
+++ b/public_html/lib/plugins/editx/plugin.info.txt
@@ -0,0 +1,7 @@
+base   editx
+author Danny Lin
+email  danny0...@gmail.com
+date   2014-09-19
+name   editx
+desc   Extended edit functions such as renaming or deleting a page
+url    http://www.dokuwiki.org/plugin:editx

-- 


Reply via email to