about summary refs log tree commit diff stats
path: root/wiki/lib/plugins/authmysql
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/lib/plugins/authmysql')
-rw-r--r--wiki/lib/plugins/authmysql/auth.php1110
-rw-r--r--wiki/lib/plugins/authmysql/conf/default.php34
-rw-r--r--wiki/lib/plugins/authmysql/conf/metadata.php34
-rw-r--r--wiki/lib/plugins/authmysql/lang/bg/lang.php10
-rw-r--r--wiki/lib/plugins/authmysql/lang/bg/settings.php19
-rw-r--r--wiki/lib/plugins/authmysql/lang/cs/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/cs/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/cy/lang.php13
-rw-r--r--wiki/lib/plugins/authmysql/lang/cy/settings.php39
-rw-r--r--wiki/lib/plugins/authmysql/lang/da/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/da/settings.php31
-rw-r--r--wiki/lib/plugins/authmysql/lang/de-informal/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/de-informal/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/de/lang.php13
-rw-r--r--wiki/lib/plugins/authmysql/lang/de/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/en/lang.php13
-rw-r--r--wiki/lib/plugins/authmysql/lang/en/settings.php39
-rw-r--r--wiki/lib/plugins/authmysql/lang/eo/lang.php8
-rw-r--r--wiki/lib/plugins/authmysql/lang/eo/settings.php41
-rw-r--r--wiki/lib/plugins/authmysql/lang/es/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/es/settings.php46
-rw-r--r--wiki/lib/plugins/authmysql/lang/eu/lang.php10
-rw-r--r--wiki/lib/plugins/authmysql/lang/eu/settings.php14
-rw-r--r--wiki/lib/plugins/authmysql/lang/fa/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/fa/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/fi/settings.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/fr/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/fr/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/he/settings.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/hr/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/hr/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/hu/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/hu/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/it/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/it/settings.php46
-rw-r--r--wiki/lib/plugins/authmysql/lang/ja/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/ja/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/ko/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/ko/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/lv/settings.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/nl/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/nl/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/no/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/no/settings.php44
-rw-r--r--wiki/lib/plugins/authmysql/lang/pl/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/pl/settings.php45
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt-br/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt-br/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/ru/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/ru/settings.php45
-rw-r--r--wiki/lib/plugins/authmysql/lang/sk/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sk/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/sl/settings.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sr/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sr/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/sv/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sv/settings.php29
-rw-r--r--wiki/lib/plugins/authmysql/lang/tr/lang.php9
-rw-r--r--wiki/lib/plugins/authmysql/lang/tr/settings.php41
-rw-r--r--wiki/lib/plugins/authmysql/lang/uk/lang.php10
-rw-r--r--wiki/lib/plugins/authmysql/lang/zh-tw/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/zh/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/zh/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/plugin.info.txt7
66 files changed, 2712 insertions, 0 deletions
diff --git a/wiki/lib/plugins/authmysql/auth.php b/wiki/lib/plugins/authmysql/auth.php
new file mode 100644
index 0000000..999542a
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/auth.php
@@ -0,0 +1,1110 @@
+<?php
+// must be run within Dokuwiki
+if(!defined('DOKU_INC')) die();
+
+/**
+ * MySQL authentication backend
+ *
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @author     Andreas Gohr <andi@splitbrain.org>
+ * @author     Chris Smith <chris@jalakai.co.uk>
+ * @author     Matthias Grimm <matthias.grimmm@sourceforge.net>
+ * @author     Jan Schumann <js@schumann-it.com>
+ */
+class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
+    /** @var resource holds the database connection */
+    protected $dbcon = 0;
+    /** @var int database version*/
+    protected $dbver = 0;
+    /** @var int database revision */
+    protected $dbrev = 0;
+    /** @var int database subrevision */
+    protected $dbsub = 0;
+
+    /** @var array cache to avoid re-reading user info data */
+    protected $cacheUserInfo = array();
+
+    /**
+     * Constructor
+     *
+     * checks if the mysql interface is available, otherwise it will
+     * set the variable $success of the basis class to false
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     */
+    public function __construct() {
+        parent::__construct();
+
+        if(!function_exists('mysql_connect')) {
+            $this->_debug("MySQL err: PHP MySQL extension not found.", -1, __LINE__, __FILE__);
+            $this->success = false;
+            return;
+        }
+
+        // set capabilities based upon config strings set
+        if(!$this->getConf('server') || !$this->getConf('user') || !$this->getConf('database')) {
+            $this->_debug("MySQL err: insufficient configuration.", -1, __LINE__, __FILE__);
+
+            $this->success = false;
+            return;
+        }
+
+        $this->cando['addUser']   = $this->_chkcnf(
+            array(
+                 'getUserInfo',
+                 'getGroups',
+                 'addUser',
+                 'getUserID',
+                 'getGroupID',
+                 'addGroup',
+                 'addUserGroup'
+            ), true
+        );
+        $this->cando['delUser']   = $this->_chkcnf(
+            array(
+                 'getUserID',
+                 'delUser',
+                 'delUserRefs'
+            ), true
+        );
+        $this->cando['modLogin']  = $this->_chkcnf(
+            array(
+                 'getUserID',
+                 'updateUser',
+                 'UpdateTarget'
+            ), true
+        );
+        $this->cando['modPass']   = $this->cando['modLogin'];
+        $this->cando['modName']   = $this->cando['modLogin'];
+        $this->cando['modMail']   = $this->cando['modLogin'];
+        $this->cando['modGroups'] = $this->_chkcnf(
+            array(
+                 'getUserID',
+                 'getGroups',
+                 'getGroupID',
+                 'addGroup',
+                 'addUserGroup',
+                 'delGroup',
+                 'getGroupID',
+                 'delUserGroup'
+            ), true
+        );
+        /* getGroups is not yet supported
+           $this->cando['getGroups']    = $this->_chkcnf(array('getGroups',
+           'getGroupID'),false); */
+        $this->cando['getUsers']     = $this->_chkcnf(
+            array(
+                 'getUsers',
+                 'getUserInfo',
+                 'getGroups'
+            ), false
+        );
+        $this->cando['getUserCount'] = $this->_chkcnf(array('getUsers'), false);
+
+        if($this->getConf('debug') >= 2) {
+            $candoDebug = '';
+            foreach($this->cando as $cd => $value) {
+                if($value) { $value = 'yes'; } else { $value = 'no'; }
+                $candoDebug .= $cd . ": " . $value . " | ";
+            }
+            $this->_debug("authmysql cando: " . $candoDebug, 0, __LINE__, __FILE__);
+        }
+    }
+
+    /**
+     * Check if the given config strings are set
+     *
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param   string[] $keys
+     * @param   bool  $wop is this a check for a write operation?
+     * @return  bool
+     */
+    protected function _chkcnf($keys, $wop = false) {
+        foreach($keys as $key) {
+            if(!$this->getConf($key)) return false;
+        }
+
+        /* write operation and lock array filled with tables names? */
+        if($wop && (!is_array($this->getConf('TablesToLock')) ||
+            !count($this->getConf('TablesToLock')))
+        ) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Checks if the given user exists and the given plaintext password
+     * is correct. Furtheron it might be checked wether the user is
+     * member of the right group
+     *
+     * Depending on which SQL string is defined in the config, password
+     * checking is done here (getpass) or by the database (passcheck)
+     *
+     * @param  string $user user who would like access
+     * @param  string $pass user's clear text password to check
+     * @return bool
+     *
+     * @author  Andreas Gohr <andi@splitbrain.org>
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     */
+    public function checkPass($user, $pass) {
+        global $conf;
+        $rc = false;
+
+        if($this->_openDB()) {
+            $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('checkPass'));
+            $sql    = str_replace('%{pass}', $this->_escape($pass), $sql);
+            $sql    = str_replace('%{dgroup}', $this->_escape($conf['defaultgroup']), $sql);
+            $result = $this->_queryDB($sql);
+
+            if($result !== false && count($result) == 1) {
+                if($this->getConf('forwardClearPass') == 1) {
+                    $rc = true;
+                } else {
+                    $rc = auth_verifyPassword($pass, $result[0]['pass']);
+                }
+            }
+            $this->_closeDB();
+        }
+        return $rc;
+    }
+
+    /**
+     * Return user info
+     *
+     * @author  Andreas Gohr <andi@splitbrain.org>
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param string $user user login to get data for
+     * @param bool $requireGroups  when true, group membership information should be included in the returned array;
+     *                             when false, it maybe included, but is not required by the caller
+     * @return array|bool
+     */
+    public function getUserData($user, $requireGroups=true) {
+        if($this->_cacheExists($user, $requireGroups)) {
+            return $this->cacheUserInfo[$user];
+        }
+
+        if($this->_openDB()) {
+            $this->_lockTables("READ");
+            $info = $this->_getUserInfo($user, $requireGroups);
+            $this->_unlockTables();
+            $this->_closeDB();
+        } else {
+            $info = false;
+        }
+        return $info;
+    }
+
+    /**
+     * Create a new User. Returns false if the user already exists,
+     * null when an error occurred and true if everything went well.
+     *
+     * The new user will be added to the default group by this
+     * function if grps are not specified (default behaviour).
+     *
+     * @author  Andreas Gohr <andi@splitbrain.org>
+     * @author  Chris Smith <chris@jalakai.co.uk>
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param string $user  nick of the user
+     * @param string $pwd   clear text password
+     * @param string $name  full name of the user
+     * @param string $mail  email address
+     * @param array  $grps  array of groups the user should become member of
+     * @return bool|null
+     */
+    public function createUser($user, $pwd, $name, $mail, $grps = null) {
+        global $conf;
+
+        if($this->_openDB()) {
+            if(($info = $this->_getUserInfo($user)) !== false) {
+                msg($this->getLang('userexists'), -1);
+                return false; // user already exists
+            }
+
+            // set defaultgroup if no groups were given
+            if($grps == null) {
+                $grps = array($conf['defaultgroup']);
+            }
+
+            $this->_lockTables("WRITE");
+            $pwd = $this->getConf('forwardClearPass') ? $pwd : auth_cryptPassword($pwd);
+            $rc  = $this->_addUser($user, $pwd, $name, $mail, $grps);
+            $this->_unlockTables();
+            $this->_closeDB();
+            if(!$rc) {
+                msg($this->getLang('writefail'));
+                return null;
+            }
+            return true;
+        } else {
+            msg($this->getLang('connectfail'), -1);
+        }
+        return null; // return error
+    }
+
+    /**
+     * Modify user data
+     *
+     * An existing user dataset will be modified. Changes are given in an array.
+     *
+     * The dataset update will be rejected if the user name should be changed
+     * to an already existing one.
+     *
+     * The password must be provided unencrypted. Pasword encryption is done
+     * automatically if configured.
+     *
+     * If one or more groups can't be updated, an error will be set. In
+     * this case the dataset might already be changed and we can't rollback
+     * the changes. Transactions would be really useful here.
+     *
+     * modifyUser() may be called without SQL statements defined that are
+     * needed to change group membership (for example if only the user profile
+     * should be modified). In this case we assure that we don't touch groups
+     * even when $changes['grps'] is set by mistake.
+     *
+     * @author  Chris Smith <chris@jalakai.co.uk>
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param   string $user    nick of the user to be changed
+     * @param   array  $changes array of field/value pairs to be changed (password will be clear text)
+     * @return  bool   true on success, false on error
+     */
+    public function modifyUser($user, $changes) {
+        $rc = false;
+
+        if(!is_array($changes) || !count($changes)) {
+            return true; // nothing to change
+        }
+
+        if($this->_openDB()) {
+            $this->_lockTables("WRITE");
+
+            $rc = $this->_updateUserInfo($user, $changes);
+
+            if(!$rc) {
+                msg($this->getLang('usernotexists'), -1);
+            } elseif(isset($changes['grps']) && $this->cando['modGroups']) {
+                $groups = $this->_getGroups($user);
+                $grpadd = array_diff($changes['grps'], $groups);
+                $grpdel = array_diff($groups, $changes['grps']);
+
+                foreach($grpadd as $group) {
+                    if(($this->_addUserToGroup($user, $group, true)) == false) {
+                        $rc = false;
+                    }
+                }
+
+                foreach($grpdel as $group) {
+                    if(($this->_delUserFromGroup($user, $group)) == false) {
+                        $rc = false;
+                    }
+                }
+
+                if(!$rc) msg($this->getLang('writefail'));
+            }
+
+            $this->_unlockTables();
+            $this->_closeDB();
+        } else {
+            msg($this->getLang('connectfail'), -1);
+        }
+        return $rc;
+    }
+
+    /**
+     * [public function]
+     *
+     * Remove one or more users from the list of registered users
+     *
+     * @param   array  $users   array of users to be deleted
+     * @return  int             the number of users deleted
+     *
+     * @author  Christopher Smith <chris@jalakai.co.uk>
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     */
+    function deleteUsers($users) {
+        $count = 0;
+
+        if($this->_openDB()) {
+            if(is_array($users) && count($users)) {
+                $this->_lockTables("WRITE");
+                foreach($users as $user) {
+                    if($this->_delUser($user)) {
+                        $count++;
+                    }
+                }
+                $this->_unlockTables();
+            }
+            $this->_closeDB();
+        } else {
+            msg($this->getLang('connectfail'), -1);
+        }
+        return $count;
+    }
+
+    /**
+     * Counts users which meet certain $filter criteria.
+     *
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  array $filter  filter criteria in item/pattern pairs
+     * @return int count of found users
+     */
+    public function getUserCount($filter = array()) {
+        $rc = 0;
+
+        if($this->_openDB()) {
+            $sql = $this->_createSQLFilter($this->getConf('getUsers'), $filter);
+
+            if($this->dbver >= 4) {
+                $sql = substr($sql, 6); /* remove 'SELECT' or 'select' */
+                $sql = "SELECT SQL_CALC_FOUND_ROWS".$sql." LIMIT 1";
+                $this->_queryDB($sql);
+                $result = $this->_queryDB("SELECT FOUND_ROWS()");
+                $rc     = $result[0]['FOUND_ROWS()'];
+            } else if(($result = $this->_queryDB($sql)))
+                $rc = count($result);
+
+            $this->_closeDB();
+        }
+        return $rc;
+    }
+
+    /**
+     * Bulk retrieval of user data
+     *
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  int          $first  index of first user to be returned
+     * @param  int          $limit  max number of users to be returned
+     * @param  array $filter array of field/pattern pairs
+     * @return  array userinfo (refer getUserData for internal userinfo details)
+     */
+    public function retrieveUsers($first = 0, $limit = 0, $filter = array()) {
+        $out = array();
+
+        if($this->_openDB()) {
+            $this->_lockTables("READ");
+            $sql = $this->_createSQLFilter($this->getConf('getUsers'), $filter);
+            $sql .= " ".$this->getConf('SortOrder');
+            if($limit) {
+                $sql .= " LIMIT $first, $limit";
+            } elseif($first) {
+                $sql .= " LIMIT $first";
+            }
+            $result = $this->_queryDB($sql);
+
+            if(!empty($result)) {
+                foreach($result as $user) {
+                    if(($info = $this->_getUserInfo($user['user']))) {
+                        $out[$user['user']] = $info;
+                    }
+                }
+            }
+
+            $this->_unlockTables();
+            $this->_closeDB();
+        }
+        return $out;
+    }
+
+    /**
+     * Give user membership of a group
+     *
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param   string $user
+     * @param   string $group
+     * @return  bool   true on success, false on error
+     */
+    protected function joinGroup($user, $group) {
+        $rc = false;
+
+        if($this->_openDB()) {
+            $this->_lockTables("WRITE");
+            $rc = $this->_addUserToGroup($user, $group);
+            $this->_unlockTables();
+            $this->_closeDB();
+        }
+        return $rc;
+    }
+
+    /**
+     * Remove user from a group
+     *
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param   string $user  user that leaves a group
+     * @param   string $group group to leave
+     * @return  bool
+     */
+    protected function leaveGroup($user, $group) {
+        $rc = false;
+
+        if($this->_openDB()) {
+            $this->_lockTables("WRITE");
+            $rc  = $this->_delUserFromGroup($user, $group);
+            $this->_unlockTables();
+            $this->_closeDB();
+        }
+        return $rc;
+    }
+
+    /**
+     * MySQL is case-insensitive
+     */
+    public function isCaseSensitive() {
+        return false;
+    }
+
+    /**
+     * Adds a user to a group.
+     *
+     * If $force is set to true non existing groups would be created.
+     *
+     * The database connection must already be established. Otherwise
+     * this function does nothing and returns 'false'. It is strongly
+     * recommended to call this function only after all participating
+     * tables (group and usergroup) have been locked.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param   string $user    user to add to a group
+     * @param   string $group   name of the group
+     * @param   bool   $force   create missing groups
+     * @return  bool   true on success, false on error
+     */
+    protected function _addUserToGroup($user, $group, $force = false) {
+        $newgroup = 0;
+
+        if(($this->dbcon) && ($user)) {
+            $gid = $this->_getGroupID($group);
+            if(!$gid) {
+                if($force) { // create missing groups
+                    $sql      = str_replace('%{group}', $this->_escape($group), $this->getConf('addGroup'));
+                    $gid      = $this->_modifyDB($sql);
+                    $newgroup = 1; // group newly created
+                }
+                if(!$gid) return false; // group didn't exist and can't be created
+            }
+
+            $sql = $this->getConf('addUserGroup');
+            if(strpos($sql, '%{uid}') !== false) {
+                $uid = $this->_getUserID($user);
+                $sql = str_replace('%{uid}', $this->_escape($uid), $sql);
+            }
+            $sql = str_replace('%{user}', $this->_escape($user), $sql);
+            $sql = str_replace('%{gid}', $this->_escape($gid), $sql);
+            $sql = str_replace('%{group}', $this->_escape($group), $sql);
+            if($this->_modifyDB($sql) !== false) {
+                $this->_flushUserInfoCache($user);
+                return true;
+            }
+
+            if($newgroup) { // remove previously created group on error
+                $sql = str_replace('%{gid}', $this->_escape($gid), $this->getConf('delGroup'));
+                $sql = str_replace('%{group}', $this->_escape($group), $sql);
+                $this->_modifyDB($sql);
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Remove user from a group
+     *
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param   string $user  user that leaves a group
+     * @param   string $group group to leave
+     * @return  bool   true on success, false on error
+     */
+    protected function _delUserFromGroup($user, $group) {
+        $rc = false;
+
+        if(($this->dbcon) && ($user)) {
+            $sql = $this->getConf('delUserGroup');
+            if(strpos($sql, '%{uid}') !== false) {
+                $uid = $this->_getUserID($user);
+                $sql = str_replace('%{uid}', $this->_escape($uid), $sql);
+            }
+            $gid = $this->_getGroupID($group);
+            if($gid) {
+                $sql = str_replace('%{user}', $this->_escape($user), $sql);
+                $sql = str_replace('%{gid}', $this->_escape($gid), $sql);
+                $sql = str_replace('%{group}', $this->_escape($group), $sql);
+                $rc  = $this->_modifyDB($sql) == 0 ? true : false;
+
+                if ($rc) {
+                    $this->_flushUserInfoCache($user);
+                }
+            }
+        }
+        return $rc;
+    }
+
+    /**
+     * Retrieves a list of groups the user is a member off.
+     *
+     * The database connection must already be established
+     * for this function to work. Otherwise it will return
+     * false.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $user user whose groups should be listed
+     * @return bool|array false on error, all groups on success
+     */
+    protected function _getGroups($user) {
+        $groups = array();
+
+        if($this->dbcon) {
+            $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('getGroups'));
+            $result = $this->_queryDB($sql);
+
+            if($result !== false && count($result)) {
+                foreach($result as $row) {
+                    $groups[] = $row['group'];
+                }
+            }
+            return $groups;
+        }
+        return false;
+    }
+
+    /**
+     * Retrieves the user id of a given user name
+     *
+     * The database connection must already be established
+     * for this function to work. Otherwise it will return
+     * false.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $user user whose id is desired
+     * @return mixed  user id
+     */
+    protected function _getUserID($user) {
+        if($this->dbcon) {
+            $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('getUserID'));
+            $result = $this->_queryDB($sql);
+            return $result === false ? false : $result[0]['id'];
+        }
+        return false;
+    }
+
+    /**
+     * Adds a new User to the database.
+     *
+     * The database connection must already be established
+     * for this function to work. Otherwise it will return
+     * false.
+     *
+     * @author  Andreas Gohr <andi@splitbrain.org>
+     * @author  Chris Smith <chris@jalakai.co.uk>
+     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $user  login of the user
+     * @param  string $pwd   encrypted password
+     * @param  string $name  full name of the user
+     * @param  string $mail  email address
+     * @param  array  $grps  array of groups the user should become member of
+     * @return bool
+     */
+    protected function _addUser($user, $pwd, $name, $mail, $grps) {
+        if($this->dbcon && is_array($grps)) {
+            $sql = str_replace('%{user}', $this->_escape($user), $this->getConf('addUser'));
+            $sql = str_replace('%{pass}', $this->_escape($pwd), $sql);
+            $sql = str_replace('%{name}', $this->_escape($name), $sql);
+            $sql = str_replace('%{email}', $this->_escape($mail), $sql);
+            $uid = $this->_modifyDB($sql);
+            $gid = false;
+            $group = '';
+
+            if($uid) {
+                foreach($grps as $group) {
+                    $gid = $this->_addUserToGroup($user, $group, true);
+                    if($gid === false) break;
+                }
+
+                if($gid !== false){
+                    $this->_flushUserInfoCache($user);
+                    return true;
+                } else {
+                    /* remove the new user and all group relations if a group can't
+                     * be assigned. Newly created groups will remain in the database
+                     * and won't be removed. This might create orphaned groups but
+                     * is not a big issue so we ignore this problem here.
+                     */
+                    $this->_delUser($user);
+                    $this->_debug("MySQL err: Adding user '$user' to group '$group' failed.", -1, __LINE__, __FILE__);
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Deletes a given user and all his group references.
+     *
+     * The database connection must already be established
+     * for this function to work. Otherwise it will return
+     * false.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $user username of the user to be deleted
+     * @return bool
+     */
+    protected function _delUser($user) {
+        if($this->dbcon) {
+            $uid = $this->_getUserID($user);
+            if($uid) {
+                $sql = str_replace('%{uid}', $this->_escape($uid), $this->getConf('delUserRefs'));
+                $this->_modifyDB($sql);
+                $sql = str_replace('%{uid}', $this->_escape($uid), $this->getConf('delUser'));
+                $sql = str_replace('%{user}', $this->_escape($user), $sql);
+                $this->_modifyDB($sql);
+                $this->_flushUserInfoCache($user);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Flush cached user information
+     *
+     * @author Christopher Smith <chris@jalakai.co.uk>
+     *
+     * @param  string  $user username of the user whose data is to be removed from the cache
+     *                       if null, empty the whole cache
+     */
+    protected function _flushUserInfoCache($user=null) {
+        if (is_null($user)) {
+            $this->cacheUserInfo = array();
+        } else {
+            unset($this->cacheUserInfo[$user]);
+        }
+    }
+
+    /**
+     * Quick lookup to see if a user's information has been cached
+     *
+     * This test does not need a database connection or read lock
+     *
+     * @author Christopher Smith <chris@jalakai.co.uk>
+     *
+     * @param  string  $user  username to be looked up in the cache
+     * @param  bool    $requireGroups  true, if cached info should include group memberships
+     *
+     * @return bool    existence of required user information in the cache
+     */
+    protected function _cacheExists($user, $requireGroups=true) {
+        if (isset($this->cacheUserInfo[$user])) {
+            if (!is_array($this->cacheUserInfo[$user])) {
+                return true;          // user doesn't exist
+            }
+
+            if (!$requireGroups || isset($this->cacheUserInfo[$user]['grps'])) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Get a user's information
+     *
+     * The database connection must already be established for this function to work.
+     *
+     * @author Christopher Smith <chris@jalakai.co.uk>
+     *
+     * @param  string  $user  username of the user whose information is being reterieved
+     * @param  bool    $requireGroups  true if group memberships should be included
+     * @param  bool    $useCache       true if ok to return cached data & to cache returned data
+     *
+     * @return mixed   false|array     false if the user doesn't exist
+     *                                 array containing user information if user does exist
+     */
+    protected function _getUserInfo($user, $requireGroups=true, $useCache=true) {
+        $info = null;
+
+        if ($useCache && isset($this->cacheUserInfo[$user])) {
+            $info = $this->cacheUserInfo[$user];
+        }
+
+        if (is_null($info)) {
+            $info = $this->_retrieveUserInfo($user);
+        }
+
+        if (($requireGroups == true) && $info && !isset($info['grps'])) {
+            $info['grps'] = $this->_getGroups($user);
+        }
+
+        if ($useCache) {
+            $this->cacheUserInfo[$user] = $info;
+        }
+
+        return $info;
+    }
+
+    /**
+     * retrieveUserInfo
+     *
+     * Gets the data for a specific user. The database connection
+     * must already be established for this function to work.
+     * Otherwise it will return 'false'.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $user  user's nick to get data for
+     * @return false|array false on error, user info on success
+     */
+    protected function _retrieveUserInfo($user) {
+        $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('getUserInfo'));
+        $result = $this->_queryDB($sql);
+        if($result !== false && count($result)) {
+            $info         = $result[0];
+            return $info;
+        }
+        return false;
+    }
+
+    /**
+     * Updates the user info in the database
+     *
+     * Update a user data structure in the database according changes
+     * given in an array. The user name can only be changes if it didn't
+     * exists already. If the new user name exists the update procedure
+     * will be aborted. The database keeps unchanged.
+     *
+     * The database connection has already to be established for this
+     * function to work. Otherwise it will return 'false'.
+     *
+     * The password will be encrypted if necessary.
+     *
+     * @param  string $user    user's nick being updated
+     * @param  array $changes  array of items to change as pairs of item and value
+     * @return bool true on success or false on error
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     */
+    protected function _updateUserInfo($user, $changes) {
+        $sql = $this->getConf('updateUser')." ";
+        $cnt = 0;
+        $err = 0;
+
+        if($this->dbcon) {
+            $uid = $this->_getUserID($user);
+            if ($uid === false) {
+                return false;
+            }
+
+            foreach($changes as $item => $value) {
+                if($item == 'user') {
+                    if(($this->_getUserID($changes['user']))) {
+                        $err = 1; /* new username already exists */
+                        break; /* abort update */
+                    }
+                    if($cnt++ > 0) $sql .= ", ";
+                    $sql .= str_replace('%{user}', $value, $this->getConf('UpdateLogin'));
+                } else if($item == 'name') {
+                    if($cnt++ > 0) $sql .= ", ";
+                    $sql .= str_replace('%{name}', $value, $this->getConf('UpdateName'));
+                } else if($item == 'pass') {
+                    if(!$this->getConf('forwardClearPass'))
+                        $value = auth_cryptPassword($value);
+                    if($cnt++ > 0) $sql .= ", ";
+                    $sql .= str_replace('%{pass}', $value, $this->getConf('UpdatePass'));
+                } else if($item == 'mail') {
+                    if($cnt++ > 0) $sql .= ", ";
+                    $sql .= str_replace('%{email}', $value, $this->getConf('UpdateEmail'));
+                }
+            }
+
+            if($err == 0) {
+                if($cnt > 0) {
+                    $sql .= " ".str_replace('%{uid}', $uid, $this->getConf('UpdateTarget'));
+                    if(get_class($this) == 'auth_mysql') $sql .= " LIMIT 1"; //some PgSQL inheritance comp.
+                    $this->_modifyDB($sql);
+                    $this->_flushUserInfoCache($user);
+                }
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Retrieves the group id of a given group name
+     *
+     * The database connection must already be established
+     * for this function to work. Otherwise it will return
+     * false.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $group   group name which id is desired
+     * @return false|string group id
+     */
+    protected function _getGroupID($group) {
+        if($this->dbcon) {
+            $sql    = str_replace('%{group}', $this->_escape($group), $this->getConf('getGroupID'));
+            $result = $this->_queryDB($sql);
+            return $result === false ? false : $result[0]['id'];
+        }
+        return false;
+    }
+
+    /**
+     * Opens a connection to a database and saves the handle for further
+     * usage in the object. The successful call to this functions is
+     * essential for most functions in this object.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @return bool
+     */
+    protected function _openDB() {
+        if(!$this->dbcon) {
+            $con = @mysql_connect($this->getConf('server'), $this->getConf('user'), conf_decodeString($this->getConf('password')));
+            if($con) {
+                if((mysql_select_db($this->getConf('database'), $con))) {
+                    if((preg_match('/^(\d+)\.(\d+)\.(\d+).*/', mysql_get_server_info($con), $result)) == 1) {
+                        $this->dbver = $result[1];
+                        $this->dbrev = $result[2];
+                        $this->dbsub = $result[3];
+                    }
+                    $this->dbcon = $con;
+                    if($this->getConf('charset')) {
+                        mysql_query('SET CHARACTER SET "'.$this->getConf('charset').'"', $con);
+                    }
+                    return true; // connection and database successfully opened
+                } else {
+                    mysql_close($con);
+                    $this->_debug("MySQL err: No access to database {$this->getConf('database')}.", -1, __LINE__, __FILE__);
+                }
+            } else {
+                $this->_debug(
+                    "MySQL err: Connection to {$this->getConf('user')}@{$this->getConf('server')} not possible.",
+                    -1, __LINE__, __FILE__
+                );
+            }
+
+            return false; // connection failed
+        }
+        return true; // connection already open
+    }
+
+    /**
+     * Closes a database connection.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     */
+    protected function _closeDB() {
+        if($this->dbcon) {
+            mysql_close($this->dbcon);
+            $this->dbcon = 0;
+        }
+    }
+
+    /**
+     * Sends a SQL query to the database and transforms the result into
+     * an associative array.
+     *
+     * This function is only able to handle queries that returns a
+     * table such as SELECT.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param string $query  SQL string that contains the query
+     * @return array|false with the result table
+     */
+    protected function _queryDB($query) {
+        if($this->getConf('debug') >= 2) {
+            msg('MySQL query: '.hsc($query), 0, __LINE__, __FILE__);
+        }
+
+        $resultarray = array();
+        if($this->dbcon) {
+            $result = @mysql_query($query, $this->dbcon);
+            if($result) {
+                while(($t = mysql_fetch_assoc($result)) !== false)
+                    $resultarray[] = $t;
+                mysql_free_result($result);
+                return $resultarray;
+            }
+            $this->_debug('MySQL err: '.mysql_error($this->dbcon), -1, __LINE__, __FILE__);
+        }
+        return false;
+    }
+
+    /**
+     * Sends a SQL query to the database
+     *
+     * This function is only able to handle queries that returns
+     * either nothing or an id value such as INPUT, DELETE, UPDATE, etc.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param string $query  SQL string that contains the query
+     * @return int|bool insert id or 0, false on error
+     */
+    protected function _modifyDB($query) {
+        if($this->getConf('debug') >= 2) {
+            msg('MySQL query: '.hsc($query), 0, __LINE__, __FILE__);
+        }
+
+        if($this->dbcon) {
+            $result = @mysql_query($query, $this->dbcon);
+            if($result) {
+                $rc = mysql_insert_id($this->dbcon); //give back ID on insert
+                if($rc !== false) return $rc;
+            }
+            $this->_debug('MySQL err: '.mysql_error($this->dbcon), -1, __LINE__, __FILE__);
+        }
+        return false;
+    }
+
+    /**
+     * Locked a list of tables for exclusive access so that modifications
+     * to the database can't be disturbed by other threads. The list
+     * could be set with $conf['plugin']['authmysql']['TablesToLock'] = array()
+     *
+     * If aliases for tables are used in SQL statements, also this aliases
+     * must be locked. For eg. you use a table 'user' and the alias 'u' in
+     * some sql queries, the array must looks like this (order is important):
+     *   array("user", "user AS u");
+     *
+     * MySQL V3 is not able to handle transactions with COMMIT/ROLLBACK
+     * so that this functionality is simulated by this function. Nevertheless
+     * it is not as powerful as transactions, it is a good compromise in safty.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param string $mode  could be 'READ' or 'WRITE'
+     * @return bool
+     */
+    protected function _lockTables($mode) {
+        if($this->dbcon) {
+            $ttl = $this->getConf('TablesToLock');
+            if(is_array($ttl) && !empty($ttl)) {
+                if($mode == "READ" || $mode == "WRITE") {
+                    $sql = "LOCK TABLES ";
+                    $cnt = 0;
+                    foreach($ttl as $table) {
+                        if($cnt++ != 0) $sql .= ", ";
+                        $sql .= "$table $mode";
+                    }
+                    $this->_modifyDB($sql);
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Unlock locked tables. All existing locks of this thread will be
+     * abrogated.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @return bool
+     */
+    protected function _unlockTables() {
+        if($this->dbcon) {
+            $this->_modifyDB("UNLOCK TABLES");
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Transforms the filter settings in an filter string for a SQL database
+     * The database connection must already be established, otherwise the
+     * original SQL string without filter criteria will be returned.
+     *
+     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
+     *
+     * @param  string $sql     SQL string to which the $filter criteria should be added
+     * @param  array $filter  array of filter criteria as pairs of item and pattern
+     * @return string SQL string with attached $filter criteria on success, original SQL string on error
+     */
+    protected function _createSQLFilter($sql, $filter) {
+        $SQLfilter = "";
+        $cnt       = 0;
+
+        if($this->dbcon) {
+            foreach($filter as $item => $pattern) {
+                $tmp = '%'.$this->_escape($pattern).'%';
+                if($item == 'user') {
+                    if($cnt++ > 0) $SQLfilter .= " AND ";
+                    $SQLfilter .= str_replace('%{user}', $tmp, $this->getConf('FilterLogin'));
+                } else if($item == 'name') {
+                    if($cnt++ > 0) $SQLfilter .= " AND ";
+                    $SQLfilter .= str_replace('%{name}', $tmp, $this->getConf('FilterName'));
+                } else if($item == 'mail') {
+                    if($cnt++ > 0) $SQLfilter .= " AND ";
+                    $SQLfilter .= str_replace('%{email}', $tmp, $this->getConf('FilterEmail'));
+                } else if($item == 'grps') {
+                    if($cnt++ > 0) $SQLfilter .= " AND ";
+                    $SQLfilter .= str_replace('%{group}', $tmp, $this->getConf('FilterGroup'));
+                }
+            }
+
+            // we have to check SQLfilter here and must not use $cnt because if
+            // any of cnf['Filter????'] is not defined, a malformed SQL string
+            // would be generated.
+
+            if(strlen($SQLfilter)) {
+                $glue = strpos(strtolower($sql), "where") ? " AND " : " WHERE ";
+                $sql  = $sql.$glue.$SQLfilter;
+            }
+        }
+
+        return $sql;
+    }
+
+    /**
+     * Escape a string for insertion into the database
+     *
+     * @author Andreas Gohr <andi@splitbrain.org>
+     *
+     * @param  string  $string The string to escape
+     * @param  boolean $like   Escape wildcard chars as well?
+     * @return string
+     */
+    protected function _escape($string, $like = false) {
+        if($this->dbcon) {
+            $string = mysql_real_escape_string($string, $this->dbcon);
+        } else {
+            $string = addslashes($string);
+        }
+        if($like) {
+            $string = addcslashes($string, '%_');
+        }
+        return $string;
+    }
+
+    /**
+     * Wrapper around msg() but outputs only when debug is enabled
+     *
+     * @param string $message
+     * @param int    $err
+     * @param int    $line
+     * @param string $file
+     * @return void
+     */
+    protected function _debug($message, $err, $line, $file) {
+        if(!$this->getConf('debug')) return;
+        msg($message, $err, $line, $file);
+    }
+}
diff --git a/wiki/lib/plugins/authmysql/conf/default.php b/wiki/lib/plugins/authmysql/conf/default.php
new file mode 100644
index 0000000..427bea2
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/conf/default.php
@@ -0,0 +1,34 @@
+<?php
+
+$conf['charset']          = 'utf8';
+$conf['server']           = '';
+$conf['user']             = '';
+$conf['password']         = '';
+$conf['database']         = '';
+$conf['debug']            = 0;
+$conf['forwardClearPass'] = 0;
+$conf['TablesToLock']     = array();
+$conf['checkPass']        = '';
+$conf['getUserInfo']      = '';
+$conf['getGroups']        = '';
+$conf['getUsers']         = '';
+$conf['FilterLogin']      = '';
+$conf['FilterName']       = '';
+$conf['FilterEmail']      = '';
+$conf['FilterGroup']      = '';
+$conf['SortOrder']        = '';
+$conf['addUser']          = '';
+$conf['addGroup']         = '';
+$conf['addUserGroup']     = '';
+$conf['delGroup']         = '';
+$conf['getUserID']        = '';
+$conf['delUser']          = '';
+$conf['delUserRefs']      = '';
+$conf['updateUser']       = '';
+$conf['UpdateLogin']      = '';
+$conf['UpdatePass']       = '';
+$conf['UpdateEmail']      = '';
+$conf['UpdateName']       = '';
+$conf['UpdateTarget']     = '';
+$conf['delUserGroup']     = '';
+$conf['getGroupID']       = '';
\ No newline at end of file
diff --git a/wiki/lib/plugins/authmysql/conf/metadata.php b/wiki/lib/plugins/authmysql/conf/metadata.php
new file mode 100644
index 0000000..bad34e6
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/conf/metadata.php
@@ -0,0 +1,34 @@
+<?php
+
+$meta['server']           = array('string','_caution' => 'danger');
+$meta['user']             = array('string','_caution' => 'danger');
+$meta['password']         = array('password','_caution' => 'danger','_code' => 'base64');
+$meta['database']         = array('string','_caution' => 'danger');
+$meta['charset']          = array('string','_caution' => 'danger');
+$meta['debug']            = array('multichoice','_choices' => array(0,1,2),'_caution' => 'security');
+$meta['forwardClearPass'] = array('onoff','_caution' => 'danger');
+$meta['TablesToLock']     = array('array','_caution' => 'danger');
+$meta['checkPass']        = array('','_caution' => 'danger');
+$meta['getUserInfo']      = array('','_caution' => 'danger');
+$meta['getGroups']        = array('','_caution' => 'danger');
+$meta['getUsers']         = array('','_caution' => 'danger');
+$meta['FilterLogin']      = array('string','_caution' => 'danger');
+$meta['FilterName']       = array('string','_caution' => 'danger');
+$meta['FilterEmail']      = array('string','_caution' => 'danger');
+$meta['FilterGroup']      = array('string','_caution' => 'danger');
+$meta['SortOrder']        = array('string','_caution' => 'danger');
+$meta['addUser']          = array('','_caution' => 'danger');
+$meta['addGroup']         = array('','_caution' => 'danger');
+$meta['addUserGroup']     = array('','_caution' => 'danger');
+$meta['delGroup']         = array('','_caution' => 'danger');
+$meta['getUserID']        = array('','_caution' => 'danger');
+$meta['delUser']          = array('','_caution' => 'danger');
+$meta['delUserRefs']      = array('','_caution' => 'danger');
+$meta['updateUser']       = array('string','_caution' => 'danger');
+$meta['UpdateLogin']      = array('string','_caution' => 'danger');
+$meta['UpdatePass']       = array('string','_caution' => 'danger');
+$meta['UpdateEmail']      = array('string','_caution' => 'danger');
+$meta['UpdateName']       = array('string','_caution' => 'danger');
+$meta['UpdateTarget']     = array('string','_caution' => 'danger');
+$meta['delUserGroup']     = array('','_caution' => 'danger');
+$meta['getGroupID']       = array('','_caution' => 'danger');
diff --git a/wiki/lib/plugins/authmysql/lang/bg/lang.php b/wiki/lib/plugins/authmysql/lang/bg/lang.php
new file mode 100644
index 0000000..d5837c7
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/bg/lang.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author Kiril <neohidra@gmail.com>
+ */
+$lang['connectfail']           = 'Свързването с базата данни се провали.';
+$lang['userexists']            = 'За съжаление вече съществува потребител с това име.';
+$lang['usernotexists']         = 'За съжаление не съществува такъв потребител.';
diff --git a/wiki/lib/plugins/authmysql/lang/bg/settings.php b/wiki/lib/plugins/authmysql/lang/bg/settings.php
new file mode 100644
index 0000000..cd63702
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/bg/settings.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author Kiril <neohidra@gmail.com>
+ * @author Ivan Peltekov <ivan.peltekov@abv.bg>
+ */
+$lang['server']                = 'Вашият MySQL сървър';
+$lang['user']                  = 'MySQL потребителско име';
+$lang['password']              = 'Парола за горния потребител';
+$lang['database']              = 'Име на базата от данни';
+$lang['charset']               = 'Набор от знаци, който се ползва в базата от данни';
+$lang['debug']                 = 'Показване на допълнителна debug информация';
+$lang['checkPass']             = 'SQL заявка за проверка на паролите';
+$lang['getUserInfo']           = 'SQL заявка за извличане на информация за потребителя н';
+$lang['debug_o_0']             = 'не';
+$lang['debug_o_1']             = 'само при грешка';
+$lang['debug_o_2']             = 'за всяко SQL запитване';
diff --git a/wiki/lib/plugins/authmysql/lang/cs/lang.php b/wiki/lib/plugins/authmysql/lang/cs/lang.php
new file mode 100644
index 0000000..4dd63b4
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/cs/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
+ */
+$lang['connectfail']           = 'Selhalo připojení k databázi.';
+$lang['userexists']            = 'Omlouváme se, ale uživatel s tímto jménem již existuje.';
+$lang['usernotexists']         = 'Omlouváme se, uživatel tohoto jména neexistuje.';
+$lang['writefail']             = 'Nelze změnit údaje uživatele. Informujte prosím správce wiki';
diff --git a/wiki/lib/plugins/authmysql/lang/cs/settings.php b/wiki/lib/plugins/authmysql/lang/cs/settings.php
new file mode 100644
index 0000000..bc8e136
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/cs/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author mkucera66 <mkucera66@seznam.cz>
+ * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
+ */
+$lang['server']                = 'Váš server MySQL';
+$lang['user']                  = 'Uživatelské jméno pro MySQL';
+$lang['password']              = 'Heslo tohoto uživatele';
+$lang['database']              = 'Použtá databáze';
+$lang['charset']               = 'znaková sada použitá v databázi';
+$lang['debug']                 = 'Zobrazit dodatečné debugovací informace';
+$lang['forwardClearPass']      = 'Posílat uživatelské heslo jako čistý text do příkazů SQL namísto využití volby passcrypt.';
+$lang['TablesToLock']          = 'Čárkou oddělený seznam tabulek, které mohou být zamčené během operací zápisu';
+$lang['checkPass']             = 'Příkaz SQL pro kontrolu hesel';
+$lang['getUserInfo']           = 'Příkaz SQL pro získání informací o uživateli';
+$lang['getGroups']             = 'Příkaz SQL pro získání uživatelovy skupiny';
+$lang['getUsers']              = 'Příkaz SQL pro seznam všech uživatelů';
+$lang['FilterLogin']           = 'Příkaz SQL pro filtrování uživatelů podle přihlašovacího jména';
+$lang['FilterName']            = 'Příkaz SQL pro filtrování uživatelů podle celého jména';
+$lang['FilterEmail']           = 'Příkaz SQL pro filtrování uživatelů podle adres e-mailů';
+$lang['FilterGroup']           = 'Příkaz SQL pro filtrování uživatelů podle členství ve skupinách';
+$lang['SortOrder']             = 'Příkaz SQL pro řazení uživatelů';
+$lang['addUser']               = 'Příkaz SQL pro přidání nového uživatele';
+$lang['addGroup']              = 'Příkaz SQL pro přidání nové skupiny';
+$lang['addUserGroup']          = 'Příkaz SQL pro přidání uživatele do existující skupiny';
+$lang['delGroup']              = 'Příkaz SQL pro vymazání skupiny';
+$lang['getUserID']             = 'Příkaz SQL pro získání primárního klíče uživatele';
+$lang['delUser']               = 'Příkaz SQL pro vymazání uživatele';
+$lang['delUserRefs']           = 'Příkaz SQL pro odstranění členství uživatele se všech skupin';
+$lang['updateUser']            = 'Příkaz SQL pro aktualizaci uživatelského profilu';
+$lang['UpdateLogin']           = 'Klauzule pro aktualizaci přihlačovacího jména uživatele';
+$lang['UpdatePass']            = 'Klauzule pro aktualizaci hesla uživatele';
+$lang['UpdateEmail']           = 'Klauzule pro aktualizaci e-mailové adresy uživatele';
+$lang['UpdateName']            = 'Klauzule pro aktualizaci celého jména uživatele';
+$lang['UpdateTarget']          = 'Omezující klauzule pro identifikaci uživatele při aktualizaci';
+$lang['delUserGroup']          = 'Příkaz SQL pro zrušení členství uživatele v dané skupině';
+$lang['getGroupID']            = 'Příkaz SQL pro získání primárního klíče skupiny';
+$lang['debug_o_0']             = 'nic';
+$lang['debug_o_1']             = 'pouze při chybách';
+$lang['debug_o_2']             = 'všechny dotazy SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/cy/lang.php b/wiki/lib/plugins/authmysql/lang/cy/lang.php
new file mode 100644
index 0000000..a96715c
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/cy/lang.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Welsh language file for authmysql plugin
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+
+$lang['connectfail']    = 'Method y cysylltiad i\'r databas.';
+$lang['userexists']     = 'Sori, mae defnyddiwr gyda\'r enw mewngofnodi hwn eisoes yn bodoli.';
+$lang['usernotexists']  = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.';
+$lang['writefail']      = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinyddwr y Wici';
+
+//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authmysql/lang/cy/settings.php b/wiki/lib/plugins/authmysql/lang/cy/settings.php
new file mode 100644
index 0000000..526cffa
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/cy/settings.php
@@ -0,0 +1,39 @@
+<?php
+
+$lang['server']           = 'Eich gweinydd MySQL';
+$lang['user']             = 'Defnyddair MySQL';
+$lang['password']         = 'Cyfrinair y defnyddiwr uchod';
+$lang['database']         = 'Databas i\'w ddefnyddio';
+$lang['charset']          = 'Set nodau i\'w defnyddio gyda\'r databas';
+$lang['debug']            = 'Dangos gwybodaeth dadfygio ychwanegol';
+$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\'';
+$lang['TablesToLock']     = 'Rhestr a wahanwyd gan goma o dablau sydd angen eu cloi yn ystod gweithredoedd ysgrifennu';
+$lang['checkPass']        = 'Datganiad SQL i wirio cyfrineiriau';
+$lang['getUserInfo']      = 'Datganiad SQL i nôl gwybodaeth defnyddiwr';
+$lang['getGroups']        = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr';
+$lang['getUsers']         = 'Datganiad SQL i restru pob defnyddiwr';
+$lang['FilterLogin']      = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi';
+$lang['FilterName']       = 'Cymal SQL i hidlo defnyddwyr gan enw llawn';
+$lang['FilterEmail']      = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost';
+$lang['FilterGroup']      = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp';
+$lang['SortOrder']        = 'Cymal SQL i drefnu defnyddwyr';
+$lang['addUser']          = 'Datganiad SQL i ychwanegu defnyddiwr newydd';
+$lang['addGroup']         = 'Datganiad SQL i ychwanegu grŵp newydd';
+$lang['addUserGroup']     = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes';
+$lang['delGroup']         = 'Datganiad SQL i dynnu grŵp';
+$lang['getUserID']        = 'Datganiad SQL i nôl prif allwedd y defnyddiwr';
+$lang['delUser']          = 'Datganiad SQL i ddileu defnyddiwr';
+$lang['delUserRefs']      = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp';
+$lang['updateUser']       = 'Datganiad SQL i ddiweddaru proffil defnyddiwr';
+$lang['UpdateLogin']      = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr';
+$lang['UpdatePass']       = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr';
+$lang['UpdateEmail']      = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr';
+$lang['UpdateName']       = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr';
+$lang['UpdateTarget']     = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru';
+$lang['delUserGroup']     = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp';
+$lang['getGroupID']       = 'Datganiad SQL i nôl prif allwedd grŵp penodol';
+
+
+$lang['debug_o_0'] = 'dim';
+$lang['debug_o_1'] = 'gyda gwallau yn unig';
+$lang['debug_o_2'] = 'pob ymholiad SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/da/lang.php b/wiki/lib/plugins/authmysql/lang/da/lang.php
new file mode 100644
index 0000000..9806e16
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/da/lang.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Jon Theil Nielsen <jontheil@gmail.com>
+ * @author Jacob Palm <mail@jacobpalm.dk>
+ */
+$lang['connectfail']           = 'Kunne ikke forbinde til databasen.';
+$lang['userexists']            = 'Beklager, en bruger med dette login findes allerede.';
+$lang['usernotexists']         = 'Beklager, brugeren eksisterer ikke.';
+$lang['writefail']             = 'Kan ikke ændre brugerdata. Informér venligst wiki-administratoren';
diff --git a/wiki/lib/plugins/authmysql/lang/da/settings.php b/wiki/lib/plugins/authmysql/lang/da/settings.php
new file mode 100644
index 0000000..158765c
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/da/settings.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
+ * @author soer9648 <soer9648@eucl.dk>
+ * @author Jacob Palm <mail@jacobpalm.dk>
+ */
+$lang['server']                = 'Din MySQL server';
+$lang['user']                  = 'MySQL brugernavn';
+$lang['password']              = 'Kodeord til ovenstående bruger';
+$lang['database']              = 'Database der skal benyttes';
+$lang['charset']               = 'Tegnsæt benyttet i database';
+$lang['debug']                 = 'Vis yderligere debug output';
+$lang['forwardClearPass']      = 'Videregiv bruger adgangskoder i klar tekst til nedenstående SQL statement, i stedet for at benytte passcrypt';
+$lang['TablesToLock']          = 'Kommasepareret liste over tabeller der skal låses under skrivning';
+$lang['checkPass']             = 'SQL-sætning til at kontrollere kodeord';
+$lang['getUserInfo']           = 'SQL-sætning til at hente brugerinformation';
+$lang['getGroups']             = 'SQL statement til at bestemme en brugers medlemskab af grupper';
+$lang['getUsers']              = 'SQL-sætning til at liste alle brugere';
+$lang['addUser']               = 'SQL-sætning til at tilføje en ny bruger';
+$lang['addGroup']              = 'SQL-sætning til at tilføje en ny gruppe';
+$lang['addUserGroup']          = 'SQL-sætning til at tilføje en bruger til en eksisterende gruppe';
+$lang['delGroup']              = 'SQL-sætning til at fjerne en gruppe';
+$lang['delUser']               = 'SQL-sætning til at slette en bruger';
+$lang['delUserRefs']           = 'SQL-sætning til at fjerne en bruger fra alle grupper';
+$lang['updateUser']            = 'SQL-sætning til at opdatere en brugerprofil';
+$lang['debug_o_0']             = 'ingen';
+$lang['debug_o_1']             = 'kun ved fejl';
+$lang['debug_o_2']             = 'alle SQL forespørgsler';
diff --git a/wiki/lib/plugins/authmysql/lang/de-informal/lang.php b/wiki/lib/plugins/authmysql/lang/de-informal/lang.php
new file mode 100644
index 0000000..11b130f
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/de-informal/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author rnck <dokuwiki@rnck.de>
+ */
+$lang['connectfail']           = 'Konnte nicht zur Datenbank verbinden.';
+$lang['userexists']            = 'Entschuldigung, es existiert bereits ein Nutzer mit diesem Login.';
+$lang['usernotexists']         = 'Entschuldigung, dieser Nutzer existiert nicht.';
+$lang['writefail']             = 'Konnte Nutzer-Daten nicht modifizieren. Bitte informiere einen Admin.';
diff --git a/wiki/lib/plugins/authmysql/lang/de-informal/settings.php b/wiki/lib/plugins/authmysql/lang/de-informal/settings.php
new file mode 100644
index 0000000..f6033d3
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/de-informal/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Volker Bödker <volker@boedker.de>
+ */
+$lang['server']                = 'MySQL-Server';
+$lang['user']                  = 'Benutzername für den Zugriff auf den MySQL-Server.';
+$lang['password']              = 'Passwort des angegebenen Benutzers.';
+$lang['database']              = 'Zu verwendende Datenbank.';
+$lang['charset']               = 'Verwendetes Character-Set in der Datenbank.';
+$lang['debug']                 = 'Debug-Informationen anzeigen?';
+$lang['forwardClearPass']      = 'Passwort der DokuWiki-Benutzer im Klartext an die Datenbank übergeben? (Im Normalfall wird die passcrypt-Option angewendet.)';
+$lang['TablesToLock']          = 'Eine Komma-separierte Liste von Tabellen, die vor Schreiboperationen gesperrt werden müssen.';
+$lang['checkPass']             = 'SQL-Kommando zum Überprüfen von Passwörtern.';
+$lang['getUserInfo']           = 'SQL-Kommando um Benutzerinformationen auszulesen.';
+$lang['getGroups']             = 'SQL-Kommando um Gruppen eines Benutzers auszulesen.';
+$lang['getUsers']              = 'SQL-Kommando um alle Benutzer auszulesen.';
+$lang['FilterLogin']           = 'SQL-Bedingung um Benutzer anhand ihres Anmeldenamens zu filtern.';
+$lang['FilterName']            = 'SQL-Bedingung um Benutzer anhand ihres Namens zu filtern.';
+$lang['FilterEmail']           = 'SQL-Bedingung um Benutzer anhand ihrer E-Mail-Adresse zu filtern.';
+$lang['FilterGroup']           = 'SQL-Bedingung um Benutzer anhand ihrer Gruppenzugehörigkeit zu filtern.';
+$lang['SortOrder']             = 'SQL-Bedingung um anhand der die Benutzerliste sortiert wird.';
+$lang['addUser']               = 'SQL-Kommando um einen neuen Benutzer anzulegen.';
+$lang['addGroup']              = 'SQL-Kommando um eine neue Gruppe anzulegen.';
+$lang['addUserGroup']          = 'SQL-Kommando um einen Benutzer zu einer Gruppe hinzuzufügen.';
+$lang['delGroup']              = 'SQL-Kommando um eine Gruppe zu löschen.';
+$lang['getUserID']             = 'SQL-Kommando um den Primärschlüssel des Benutzers auszulesen.';
+$lang['delUser']               = 'SQL-Kommando um einen Benutzer zu löschen.';
+$lang['delUserRefs']           = 'SQL-Kommando um einen Benutzer aus allen Gruppen zu entfernen.';
+$lang['updateUser']            = 'SQL-Kommando um das Profil eines Benutzers zu aktualisieren.';
+$lang['UpdateLogin']           = 'SQL-Bedingung um den Anmeldenamen eines Benutzers zu ändern.';
+$lang['UpdatePass']            = 'SQL-Bedingung um das Passwort eines Benutzers zu ändern.';
+$lang['UpdateEmail']           = 'SQL-Bedingung um die E-Mail-Adresse eines Benutzers zu ändern.';
+$lang['UpdateName']            = 'SQL-Bedingung um den Namen eines Benutzers zu ändern.';
+$lang['UpdateTarget']          = 'SQL-Bedingung zur eindeutigen Identifikation des Benutzers.';
+$lang['delUserGroup']          = 'SQL-Kommando um einen Benutzer aus einer angegeben Gruppe zu entfernen.';
+$lang['getGroupID']            = 'SQL-Kommando um den Primärschlüssel einer Gruppe auszulesen.';
+$lang['debug_o_0']             = 'Keine.';
+$lang['debug_o_1']             = 'Nur Fehler.';
+$lang['debug_o_2']             = 'Alle SQL-Abfragen.';
diff --git a/wiki/lib/plugins/authmysql/lang/de/lang.php b/wiki/lib/plugins/authmysql/lang/de/lang.php
new file mode 100644
index 0000000..b552823
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/de/lang.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Noel Tilliot <noeltilliot@byom.de>
+ * @author Hendrik Diel <diel.hendrik@gmail.com>
+ * @author Philip Knack <p.knack@stollfuss.de>
+ */
+$lang['connectfail']           = 'Verbindung zur Datenbank fehlgeschlagen.';
+$lang['userexists']            = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.';
+$lang['usernotexists']         = 'Sorry, dieser Nutzer existiert nicht.';
+$lang['writefail']             = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.';
diff --git a/wiki/lib/plugins/authmysql/lang/de/settings.php b/wiki/lib/plugins/authmysql/lang/de/settings.php
new file mode 100644
index 0000000..5b603e2
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/de/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
+ */
+$lang['server']                = 'MySQL-Server';
+$lang['user']                  = 'Benutzername für den Zugriff auf den MySQL-Server.';
+$lang['password']              = 'Passwort des angegebenen Benutzers.';
+$lang['database']              = 'Zu verwendende Datenbank';
+$lang['charset']               = 'Zeichensatz der Datenbank';
+$lang['debug']                 = 'Debug-Informationen anzeigen?';
+$lang['forwardClearPass']      = 'Passwort der DokuWiki-Benutzer im Klartext an die Datenbank übergeben? (Im Normalfall wird die passcrypt-Option angewendet.)';
+$lang['TablesToLock']          = 'Eine Komma-separierte Liste von Tabellen, die vor Schreiboperationen gesperrt werden müssen.';
+$lang['checkPass']             = 'SQL-Kommando zum Überprüfen von Passwörtern.';
+$lang['getUserInfo']           = 'SQL-Kommando um Benutzerinformationen auszulesen.';
+$lang['getGroups']             = 'SQL-Kommando um Gruppen eines Benutzers auszulesen.';
+$lang['getUsers']              = 'SQL-Kommando um alle Benutzer auszulesen.';
+$lang['FilterLogin']           = 'SQL-Bedingung um Benutzer anhand ihres Anmeldenamens zu filtern.';
+$lang['FilterName']            = 'SQL-Bedingung um Benutzer anhand ihres Namens zu filtern.';
+$lang['FilterEmail']           = 'SQL-Bedingung um Benutzer anhand ihrer E-Mail-Adresse zu filtern.';
+$lang['FilterGroup']           = 'SQL-Bedingung um Benutzer anhand ihrer Gruppenzugehörigkeit zu filtern.';
+$lang['SortOrder']             = 'SQL-Bedingung um anhand der die Benutzerliste sortiert wird.';
+$lang['addUser']               = 'SQL-Kommando um einen neuen Benutzer anzulegen.';
+$lang['addGroup']              = 'SQL-Kommando um eine neue Gruppe anzulegen.';
+$lang['addUserGroup']          = 'SQL-Kommando um einen Benutzer zu einer Gruppe hinzuzufügen.';
+$lang['delGroup']              = 'SQL-Kommando um eine Gruppe zu löschen.';
+$lang['getUserID']             = 'SQL-Kommando um den Primärschlüssel des Benutzers auszulesen.';
+$lang['delUser']               = 'SQL-Kommando um einen Benutzer zu löschen.';
+$lang['delUserRefs']           = 'SQL-Kommando um einen Benutzer aus allen Gruppen zu entfernen.';
+$lang['updateUser']            = 'SQL-Kommando um das Profil eines Benutzers zu aktualisieren.';
+$lang['UpdateLogin']           = 'SQL-Bedingung um den Anmeldenamen eines Benutzers zu ändern.';
+$lang['UpdatePass']            = 'SQL-Bedingung um das Passwort eines Benutzers zu ändern.';
+$lang['UpdateEmail']           = 'SQL-Bedingung um die E-Mail-Adresse eines Benutzers zu ändern.';
+$lang['UpdateName']            = 'SQL-Bedingung um den Namen eines Benutzers zu ändern.';
+$lang['UpdateTarget']          = 'SQL-Bedingung zur eindeutigen Identifikation des Benutzers.';
+$lang['delUserGroup']          = 'SQL-Kommando um einen Benutzer aus einer angegeben Gruppe zu entfernen.';
+$lang['getGroupID']            = 'SQL-Kommando um den Primärschlüssel einer Gruppe auszulesen.';
+$lang['debug_o_0']             = 'Keine.';
+$lang['debug_o_1']             = 'Nur Fehler.';
+$lang['debug_o_2']             = 'Alle SQL-Abfragen.';
diff --git a/wiki/lib/plugins/authmysql/lang/en/lang.php b/wiki/lib/plugins/authmysql/lang/en/lang.php
new file mode 100644
index 0000000..8313616
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/en/lang.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * English language file for authmysql plugin
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+
+$lang['connectfail']    = 'Failed to connect to database.';
+$lang['userexists']     = 'Sorry, a user with this login already exists.';
+$lang['usernotexists']  = 'Sorry, that user doesn\'t exist.';
+$lang['writefail']      = 'Unable to modify user data. Please inform the Wiki-Admin';
+
+//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authmysql/lang/en/settings.php b/wiki/lib/plugins/authmysql/lang/en/settings.php
new file mode 100644
index 0000000..b95f397
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/en/settings.php
@@ -0,0 +1,39 @@
+<?php
+
+$lang['server']           = 'Your MySQL server';
+$lang['user']             = 'MySQL user name';
+$lang['password']         = 'Password for above user';
+$lang['database']         = 'Database to use';
+$lang['charset']          = 'Character set used in database';
+$lang['debug']            = 'Display additional debug information';
+$lang['forwardClearPass'] = 'Pass user passwords as cleartext to the SQL statements below, instead of using the passcrypt option';
+$lang['TablesToLock']     = 'Comma separated list of tables that should be locked on write operations';
+$lang['checkPass']        = 'SQL statement for checking passwords';
+$lang['getUserInfo']      = 'SQL statement for retrieving user information';
+$lang['getGroups']        = 'SQL statement for retrieving a user\'s group memberships';
+$lang['getUsers']         = 'SQL statement to list all users';
+$lang['FilterLogin']      = 'SQL clause for filtering users by login name';
+$lang['FilterName']       = 'SQL clause for filtering users by full name';
+$lang['FilterEmail']      = 'SQL clause for filtering users by email address';
+$lang['FilterGroup']      = 'SQL clause for filtering users by group membership';
+$lang['SortOrder']        = 'SQL clause to sort users';
+$lang['addUser']          = 'SQL statement to add a new user';
+$lang['addGroup']         = 'SQL statement to add a new group';
+$lang['addUserGroup']     = 'SQL statement to add a user to an existing group';
+$lang['delGroup']         = 'SQL statement to remove a group';
+$lang['getUserID']        = 'SQL statement to get the primary key of a user';
+$lang['delUser']          = 'SQL statement to delete a user';
+$lang['delUserRefs']      = 'SQL statement to remove a user from all groups';
+$lang['updateUser']       = 'SQL statement to update a user profile';
+$lang['UpdateLogin']      = 'Update clause for updating the user\'s login name';
+$lang['UpdatePass']       = 'Update clause for updating the user\'s password';
+$lang['UpdateEmail']      = 'Update clause for updating the user\'s email address';
+$lang['UpdateName']       = 'Update clause for updating the user\'s full name';
+$lang['UpdateTarget']     = 'Limit clause to identify the user when updating';
+$lang['delUserGroup']     = 'SQL statement to remove a user from a given group';
+$lang['getGroupID']       = 'SQL statement to get the primary key of a given group';
+
+
+$lang['debug_o_0'] = 'none';
+$lang['debug_o_1'] = 'on errors only';
+$lang['debug_o_2'] = 'all SQL queries';
diff --git a/wiki/lib/plugins/authmysql/lang/eo/lang.php b/wiki/lib/plugins/authmysql/lang/eo/lang.php
new file mode 100644
index 0000000..818c392
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/eo/lang.php
@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
+ */
+$lang['usernotexists']         = 'Pardonu, tiu uzanto ne ekzistas.';
diff --git a/wiki/lib/plugins/authmysql/lang/eo/settings.php b/wiki/lib/plugins/authmysql/lang/eo/settings.php
new file mode 100644
index 0000000..b85f812
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/eo/settings.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['server']                = 'Via MySQL-servilo';
+$lang['user']                  = 'MySQL uzantonomo';
+$lang['password']              = 'Pasvorto por tiu uzanto';
+$lang['database']              = 'Uzenda datumbazo';
+$lang['charset']               = 'Uzata tiparo en la datumbazo';
+$lang['debug']                 = 'Ĉu montri aldonajn erarinformojn?';
+$lang['forwardClearPass']      = 'Ĉu transdoni pasvortojn klartekste al la SQL-frazoj sube anstataŭ uzi pasvortan kaŝon';
+$lang['TablesToLock']          = 'Komodisigita listo de tabeloj, al kiuj ne eblu skribi';
+$lang['checkPass']             = 'SQL-frazo por testi pasvortojn';
+$lang['getUserInfo']           = 'SQL-frazo por ricevi uzantajn informojn';
+$lang['getGroups']             = 'SQL-frazo por ricevi la grupmembrecojn de uzanto';
+$lang['getUsers']              = 'SQL-frazo por listigi ĉiujn uzantojn';
+$lang['FilterLogin']           = 'SQL-frazo por filtri uzantojn je ensaluta nomo';
+$lang['FilterName']            = 'SQL-frazo por filtri uzantojn je plena nomo';
+$lang['FilterEmail']           = 'SQL-frazo por filtri uzantojn je retpoŝtadreso';
+$lang['FilterGroup']           = 'SQL-frazo por filtri uzantojn je grupmembreco';
+$lang['SortOrder']             = 'SQL-frazo por ordigi uzantojn';
+$lang['addUser']               = 'SQL-frazo por aldoni novan uzanton';
+$lang['addGroup']              = 'SQL-frazo por aldoni novan grupon';
+$lang['addUserGroup']          = 'SQL-frazo por aldoni uzanton al ekzistanta grupo';
+$lang['delGroup']              = 'SQL-frazo por forigi grupon';
+$lang['getUserID']             = 'SQL-frazo por ricevi la ĉefan ŝlosilon de uzanto';
+$lang['delUser']               = 'SQL-frazo por forigi uzanton';
+$lang['delUserRefs']           = 'SQL-frazo por forigi uzanton el ĉiuj grupoj';
+$lang['updateUser']            = 'SQL-frazo por aktualigi uzantan profilon';
+$lang['UpdateLogin']           = 'Aktualiga frazo por uzanta ensalutnomo';
+$lang['UpdatePass']            = 'Aktualiga frazo por uzanta pasvorto';
+$lang['UpdateEmail']           = 'Aktualiga frazo por uzanta retpoŝtadreso';
+$lang['UpdateName']            = 'Aktualiga frazo por plena uzanta nomo';
+$lang['UpdateTarget']          = 'Limiga frazo por identigi la uzanton dum aktualigado';
+$lang['delUserGroup']          = 'SQL-frazo por forigi uzanton el indikita grupo';
+$lang['getGroupID']            = 'SQL-frazo por ricevi la ĉefan ŝlosilon de indikita grupo';
+$lang['debug_o_0']             = 'neniu';
+$lang['debug_o_1']             = 'nur dum eraroj';
+$lang['debug_o_2']             = 'ĉiuj SQL-serĉoj';
diff --git a/wiki/lib/plugins/authmysql/lang/es/lang.php b/wiki/lib/plugins/authmysql/lang/es/lang.php
new file mode 100644
index 0000000..3fc8228
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/es/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Domingo Redal <docxml@gmail.com>
+ */
+$lang['connectfail']           = 'Error al conectar con la base de datos.';
+$lang['userexists']            = 'Lo sentimos, ya existe un usuario con ese inicio de sesión.';
+$lang['usernotexists']         = 'Lo sentimos, no existe ese usuario.';
+$lang['writefail']             = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki';
diff --git a/wiki/lib/plugins/authmysql/lang/es/settings.php b/wiki/lib/plugins/authmysql/lang/es/settings.php
new file mode 100644
index 0000000..baa991d
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/es/settings.php
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Antonio Bueno <atnbueno@gmail.com>
+ * @author Eloy <ej.perezgomez@gmail.com>
+ * @author Antonio Castilla <antoniocastilla@trazoide.com>
+ * @author Alejandro Nunez <nunez.alejandro@gmail.com>
+ * @author Domingo Redal <docxml@gmail.com>
+ */
+$lang['server']                = 'Tu servidor MySQL';
+$lang['user']                  = 'Nombre de usuario MySQL';
+$lang['password']              = 'Contraseña para el usuario de arriba.';
+$lang['database']              = 'Base de datos a usar';
+$lang['charset']               = 'Codificación usada en la base de datos';
+$lang['debug']                 = 'Mostrar información adicional para depuración de errores';
+$lang['forwardClearPass']      = 'Enviar las contraseñas de usuario comotexto plano a las siguientes sentencias de SQL, en lugar de utilizar la opción passcrypt';
+$lang['TablesToLock']          = 'Lista separada por comasde las tablas a bloquear durante operaciones de escritura';
+$lang['checkPass']             = 'Sentencia SQL para verificar las contraseñas';
+$lang['getUserInfo']           = 'Sentencia SQL para obtener información del usuario';
+$lang['getGroups']             = 'Sentencia SQL para obtener la pertenencia a grupos de un usuario';
+$lang['getUsers']              = 'Sentencia SQL para listar todos los usuarios';
+$lang['FilterLogin']           = 'Cláusula SQL para filtrar usuarios por su nombre de usuario';
+$lang['FilterName']            = 'Cláusula SQL para filtrar usuarios por su nombre completo';
+$lang['FilterEmail']           = 'Cláusula SQL para filtrar usuarios por su dirección de correo electrónico';
+$lang['FilterGroup']           = 'Cláusula SQL para filtrar usuarios por su pertenencia a grupos';
+$lang['SortOrder']             = 'Cláusula SQL para ordenar usuarios';
+$lang['addUser']               = 'Sentencia SQL para agregar un nuevo usuario';
+$lang['addGroup']              = 'Sentencia SQL para agregar un nuevo grupo';
+$lang['addUserGroup']          = 'Sentencia SQL para agregar un usuario a un grupo existente';
+$lang['delGroup']              = 'Sentencia SQL para eliminar un grupo';
+$lang['getUserID']             = 'Sentencia SQL para obtener la clave primaria de un usuario';
+$lang['delUser']               = 'Sentencia SQL para eliminar un usuario';
+$lang['delUserRefs']           = 'Sentencia SQL para eliminar un usuario de todos los grupos';
+$lang['updateUser']            = 'Sentencia SQL para actualizar un perfil de usuario';
+$lang['UpdateLogin']           = 'Cláusula de actualización para actualizar el login del usuario';
+$lang['UpdatePass']            = 'Cláusula de actualización para actualizar la contraseña del usuario';
+$lang['UpdateEmail']           = 'Cláusula de actualización para actualizar la dirección de correo del usuario';
+$lang['UpdateName']            = 'Cláusula de actualización para actualizar el nomblre completo del usuario';
+$lang['UpdateTarget']          = 'Cláusula limite para identificar al usuario cuando se actualiza';
+$lang['delUserGroup']          = 'Sentencia SQL para eliminar un usuario de un grupo dado';
+$lang['getGroupID']            = 'Sentencia SQL para obtener la clave principal de un grupo dado';
+$lang['debug_o_0']             = 'ninguno';
+$lang['debug_o_1']             = 'sólo errores';
+$lang['debug_o_2']             = 'todas las consultas SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/eu/lang.php b/wiki/lib/plugins/authmysql/lang/eu/lang.php
new file mode 100644
index 0000000..6408324
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/eu/lang.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Osoitz <oelkoro@gmail.com>
+ */
+$lang['connectfail']           = 'Datu-basera konektatzeak huts egin du';
+$lang['userexists']            = 'Badago izen hori duen erabiltzaile bat.';
+$lang['usernotexists']         = 'Ez dago izen hori duen erabiltzailerik.';
diff --git a/wiki/lib/plugins/authmysql/lang/eu/settings.php b/wiki/lib/plugins/authmysql/lang/eu/settings.php
new file mode 100644
index 0000000..2a44a59
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/eu/settings.php
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Osoitz <oelkoro@gmail.com>
+ */
+$lang['server']                = 'Zure MYSQL zerbitzaria';
+$lang['user']                  = 'MYSQL erabiltzaile-izena';
+$lang['password']              = 'Goiko erabiltzailearen pasahitza';
+$lang['database']              = 'Erabili beharreko datu-basea';
+$lang['charset']               = 'Datu-basean erabilitako karaktere kodeketa';
+$lang['forwardClearPass']      = 'Pasatu erabiltzaileen pasahitza testu argian beheko SQL esaldiei, passcrypt aukera erabili ordez';
+$lang['debug_o_0']             = 'bat ere ez';
diff --git a/wiki/lib/plugins/authmysql/lang/fa/lang.php b/wiki/lib/plugins/authmysql/lang/fa/lang.php
new file mode 100644
index 0000000..b5b8786
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/fa/lang.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Mohmmad Razavi <sepent@gmail.com>
+ * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
+ */
+$lang['connectfail']           = 'خطا در اتصال به دیتابیس';
+$lang['userexists']            = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.';
+$lang['usernotexists']         = 'با عرض پوزش، آن کاربر وجود نداشت.';
+$lang['writefail']             = 'امکان تغییر داده کاربر وجود نداشت. لطفا مسئول Wiki را آگاه کنید.';
diff --git a/wiki/lib/plugins/authmysql/lang/fa/settings.php b/wiki/lib/plugins/authmysql/lang/fa/settings.php
new file mode 100644
index 0000000..4c708a0
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/fa/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
+ * @author Mohmmad Razavi <sepent@gmail.com>
+ */
+$lang['server']                = 'سرور MySQL';
+$lang['user']                  = 'نام کاربری MySQL';
+$lang['password']              = 'رمزعبور کاربر بالا';
+$lang['database']              = 'پایگاه داده مورد استفاده';
+$lang['charset']               = 'مجموعه کاراکترهایی (Character set) که در پایگاه داده بکار رفته';
+$lang['debug']                 = 'نمایش اطلاعات بیشتر برای دیباگ';
+$lang['forwardClearPass']      = 'بجای استفاده از گزینه passcrypt، رمزعبورهای کاربر را بصورت آشکار به دستور SQL زیر پاس دهید.';
+$lang['TablesToLock']          = 'لیست جدولهایی که هنگام عملیات نوشتن باید قفل شود که با کاما از هم جدا شده اند';
+$lang['checkPass']             = 'دستور SQL برای بررسی رمزعبورها';
+$lang['getUserInfo']           = 'دستور SQL برای دریافت اطلاعات نام کاربری';
+$lang['getGroups']             = 'دستور SQL برای دریافت گروه‌های عضویت یک کاربر';
+$lang['getUsers']              = 'دستور SQL برای گرفتن لیست تمامی کاربران';
+$lang['FilterLogin']           = 'عبارت SQL برای فیلتر کردن کاربران با نام کاربری (login name)';
+$lang['FilterName']            = 'عبارت SQL برای فیلتر کردن کاربران با نام کامل';
+$lang['FilterEmail']           = 'عبارت SQL برای فیلتر کردن کابران با آدرس ایمیل';
+$lang['FilterGroup']           = 'عبارت SQL برای فیلتر کاربران با گروه عضویتشان';
+$lang['SortOrder']             = 'عبارت SQL برای مرتب کردن کاربران';
+$lang['addUser']               = 'دستور SQL برای اضافه کردن کاربر جدید';
+$lang['addGroup']              = 'دستور SQL برای اضافه کردن گروه جدید';
+$lang['addUserGroup']          = 'دستور SQL برای اضافه کردن یک کاربر به یک گروه موجود از قبل';
+$lang['delGroup']              = 'دستور SQL برای حذف یک گروه';
+$lang['getUserID']             = 'دستور SQL برای گرفتن کلید اصلی (primary key) یک کاربر';
+$lang['delUser']               = 'دستور SQL برای حذف یک کاربر';
+$lang['delUserRefs']           = 'دستور SQL برای حذف یک کابر از تمامی گروه‌ها';
+$lang['updateUser']            = 'دستور SQL برای بروزرسانی پروفایل یک کاربر';
+$lang['UpdateLogin']           = 'عبارت Update برای بروزرسانی نام کاربری (login name)';
+$lang['UpdatePass']            = 'عبارت Update برای بروزرسانی رمزعبور کاربر';
+$lang['UpdateEmail']           = 'عبارت Update برای بروزرسانی ادرسی ایمیل کاربر';
+$lang['UpdateName']            = 'عبارت Update برای بروزرسانی نام کامل کاربر';
+$lang['UpdateTarget']          = 'عبارت Limit برای شناسایی کابر هنگام بروزرسانی';
+$lang['delUserGroup']          = 'دستور SQL برای حذف یک کاربر ';
+$lang['getGroupID']            = 'دستور SQL برای گرفتن کلید اصلی (primary key) گروه داده شده';
+$lang['debug_o_0']             = 'هیچ';
+$lang['debug_o_1']             = 'فقط هنگام خطا';
+$lang['debug_o_2']             = 'تمام پرس‌وجوهای SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/fi/settings.php b/wiki/lib/plugins/authmysql/lang/fi/settings.php
new file mode 100644
index 0000000..3251795
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/fi/settings.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author Jussi Takala <jussi.takala@live.fi>
+ */
+$lang['server']                = 'Sinun MySQL-serveri';
+$lang['user']                  = 'MySQL-käyttäjänimi';
+$lang['password']              = 'Salasana yläolevalle käyttäjälle';
+$lang['charset']               = 'Käytetty merkistö tietokannassa';
diff --git a/wiki/lib/plugins/authmysql/lang/fr/lang.php b/wiki/lib/plugins/authmysql/lang/fr/lang.php
new file mode 100644
index 0000000..5e9fb69
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/fr/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
+ */
+$lang['connectfail']           = 'Impossible de se connecter à la base de données.';
+$lang['userexists']            = 'Désolé, un utilisateur avec cet identifiant existe déjà.';
+$lang['usernotexists']         = 'Désolé, cet utilisateur n\'existe pas.';
+$lang['writefail']             = 'Impossible de modifier les données utilisateur. Veuillez en informer l\'administrateur du Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/fr/settings.php b/wiki/lib/plugins/authmysql/lang/fr/settings.php
new file mode 100644
index 0000000..a88b325
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/fr/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Bruno Veilleux <bruno.vey@gmail.com>
+ */
+$lang['server']                = 'Votre serveur MySQL';
+$lang['user']                  = 'Nom d\'utilisateur MySQL';
+$lang['password']              = 'Mot de passe pour l\'utilisateur ci-dessus';
+$lang['database']              = 'Base de données à utiliser';
+$lang['charset']               = 'Jeu de caractères utilisé dans la base de données';
+$lang['debug']                 = 'Afficher des informations de débogage supplémentaires';
+$lang['forwardClearPass']      = 'Passer les mots de passe aux requêtes SQL ci-dessous en cleartext plutôt qu\'avec l\'option passcrypt';
+$lang['TablesToLock']          = 'Liste séparée par des virgules des tables devant être verrouillées par les opérations d\'écriture';
+$lang['checkPass']             = 'Requête SQL pour la vérification des mots de passe';
+$lang['getUserInfo']           = 'Requête SQL pour la récupération des informations d\'un utilisateur';
+$lang['getGroups']             = 'Requête SQL pour la récupération des groupes d\'un utilisateur';
+$lang['getUsers']              = 'Requête SQL pour énumérer tous les utilisateurs';
+$lang['FilterLogin']           = 'Clause SQL pour filtrer les utilisateurs par identifiant';
+$lang['FilterName']            = 'Clause SQL pour filtrer les utilisateurs par nom complet';
+$lang['FilterEmail']           = 'Clause SQL pour filtrer les utilisateurs par adresse électronique';
+$lang['FilterGroup']           = 'Clause SQL pour filtrer les utilisateurs par groupes';
+$lang['SortOrder']             = 'Clause SQL pour trier les utilisateurs';
+$lang['addUser']               = 'Requête SQL pour ajouter un nouvel utilisateur';
+$lang['addGroup']              = 'Requête SQL pour ajouter un nouveau groupe';
+$lang['addUserGroup']          = 'Requête SQL pour ajouter un utilisateur à un groupe existant';
+$lang['delGroup']              = 'Requête SQL pour retirer un groupe';
+$lang['getUserID']             = 'Requête SQL pour obtenir la clé primaire d\'un utilisateur';
+$lang['delUser']               = 'Requête SQL pour supprimer un utilisateur';
+$lang['delUserRefs']           = 'Requête SQL pour retirer un utilisateur de tous les groupes';
+$lang['updateUser']            = 'Requête SQL pour mettre à jour le profil d\'un utilisateur';
+$lang['UpdateLogin']           = 'Clause de mise à jour pour mettre à jour l\'identifiant d\'un utilisateur';
+$lang['UpdatePass']            = 'Clause de mise à jour pour mettre à jour le mot de passe d\'un utilisateur';
+$lang['UpdateEmail']           = 'Clause de mise à jour pour mettre à jour l\'adresse électronique d\'un utilisateur';
+$lang['UpdateName']            = 'Clause de mise à jour pour mettre à jour le nom complet d\'un utilisateur';
+$lang['UpdateTarget']          = 'Clause de limite pour identifier l\'utilisateur durant une mise à jour';
+$lang['delUserGroup']          = 'Requête SQL pour retirer un utilisateur d\'un groupe donné';
+$lang['getGroupID']            = 'Requête SQL pour obtenir la clé primaire d\'un groupe donné';
+$lang['debug_o_0']             = 'aucun';
+$lang['debug_o_1']             = 'sur erreur seulement';
+$lang['debug_o_2']             = 'toutes les requêtes SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/he/settings.php b/wiki/lib/plugins/authmysql/lang/he/settings.php
new file mode 100644
index 0000000..22c30e5
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/he/settings.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Menashe Tomer <menashesite@gmail.com>
+ */
+$lang['getUserID']             = 'שאילתת SQL לקבלת מפתח ראשי של המשתמש';
+$lang['UpdateLogin']           = 'שאילתת SQL לעדכון שם המשתמש';
+$lang['UpdatePass']            = 'שאילתת SQL לעדכון סיסמת המשתמש';
+$lang['UpdateEmail']           = 'שאילתת SQL לעדכון כתובת הדוא"ל של המשתמש';
+$lang['UpdateName']            = 'שאילתת SQL לעדכון שם המשתמש';
diff --git a/wiki/lib/plugins/authmysql/lang/hr/lang.php b/wiki/lib/plugins/authmysql/lang/hr/lang.php
new file mode 100644
index 0000000..e839d67
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/hr/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Davor Turkalj <turki.bsc@gmail.com>
+ */
+$lang['connectfail']           = 'Ne mogu se spojiti na bazu.';
+$lang['userexists']            = 'Oprostite ali korisnik s ovom prijavom već postoji.';
+$lang['usernotexists']         = 'Oprostite ali ovaj korisnik ne postoji.';
+$lang['writefail']             = 'Ne mogu izmijeniti podatke. Molim obavijestite Wiki administratora';
diff --git a/wiki/lib/plugins/authmysql/lang/hr/settings.php b/wiki/lib/plugins/authmysql/lang/hr/settings.php
new file mode 100644
index 0000000..370b645
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/hr/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Davor Turkalj <turki.bsc@gmail.com>
+ */
+$lang['server']                = 'Vaš MySQL server';
+$lang['user']                  = 'MySQL korisničko ime';
+$lang['password']              = 'Lozinka gore navedenog korisnika';
+$lang['database']              = 'Baza koja se koristi';
+$lang['charset']               = 'Znakovni set koji se koristi u bazi';
+$lang['debug']                 = 'Prikaz dodatnih debug informacija';
+$lang['forwardClearPass']      = 'Proslijedi korisničku lozinku kao čisti tekst u SQL upitu niže, umjesto korištenja passcrypt opcije';
+$lang['TablesToLock']          = 'Zarezom odvojena lista tabela koje trebaju biti zaključane pri operacijama pisanja';
+$lang['checkPass']             = 'SQL izraz za provjeru lozinki';
+$lang['getUserInfo']           = 'SQL izraz za dohvaćanje informacija o korisniku';
+$lang['getGroups']             = 'SQL izraz za dohvaćanje članstva u grupama';
+$lang['getUsers']              = 'SQL izraz za ispis svih korisnika';
+$lang['FilterLogin']           = 'SQL izraz za izdvajanje korisnika po korisničkom imenu';
+$lang['FilterName']            = 'SQL izraz za izdvajanje korisnika po punom imenu';
+$lang['FilterEmail']           = 'SQL izraz za izdvajanje korisnika po adresi e-pošte';
+$lang['FilterGroup']           = 'SQL izraz za izdvajanje korisnika po članstvu u grupama';
+$lang['SortOrder']             = 'SQL izraz za sortiranje korisnika';
+$lang['addUser']               = 'SQL izraz za dodavanje novih korisnika';
+$lang['addGroup']              = 'SQL izraz za dodavanje novih grupa';
+$lang['addUserGroup']          = 'SQL izraz za dodavanje korisnika u postojeću grupu';
+$lang['delGroup']              = 'SQL izraz za uklanjanje grupe';
+$lang['getUserID']             = 'SQL izraz za dobivanje primarnog ključa korisnika';
+$lang['delUser']               = 'SQL izraz za brisanje korisnika';
+$lang['delUserRefs']           = 'SQL izraz za uklanjanje korisnika iz grupe';
+$lang['updateUser']            = 'SQL izraz za ažuriranje korisničkog profila';
+$lang['UpdateLogin']           = 'UPDATE izraz za ažuriranje korisničkog imena';
+$lang['UpdatePass']            = 'UPDATE izraz za ažuriranje korisničke lozinke';
+$lang['UpdateEmail']           = 'UPDATE izraz za ažuriranje korisničke email adrese';
+$lang['UpdateName']            = 'UPDATE izraz za ažuriranje punog imena korisnika';
+$lang['UpdateTarget']          = 'Limit izraz za identificiranje korisnika pri ažuriranju';
+$lang['delUserGroup']          = 'SQL izraz za uklanjanje korisnika iz zadane grupe';
+$lang['getGroupID']            = 'SQL izraz za dobivanje primarnoga ključa zadane grupe';
+$lang['debug_o_0']             = 'ništa';
+$lang['debug_o_1']             = 'u slučaju greške';
+$lang['debug_o_2']             = 'svi SQL upiti';
diff --git a/wiki/lib/plugins/authmysql/lang/hu/lang.php b/wiki/lib/plugins/authmysql/lang/hu/lang.php
new file mode 100644
index 0000000..3f48da3
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/hu/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author Marton Sebok <sebokmarton@gmail.com>
+ */
+$lang['connectfail']           = 'Az adatbázishoz való csatlakozás sikertelen.';
+$lang['userexists']            = 'Sajnos már létezik ilyen azonosítójú felhasználó.';
+$lang['usernotexists']         = 'Sajnos ez a felhasználó nem létezik.';
+$lang['writefail']             = 'A felhasználói adatok módosítása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!';
diff --git a/wiki/lib/plugins/authmysql/lang/hu/settings.php b/wiki/lib/plugins/authmysql/lang/hu/settings.php
new file mode 100644
index 0000000..cf7b26b
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/hu/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author Marton Sebok <sebokmarton@gmail.com>
+ * @author Marina Vladi <deldadam@gmail.com>
+ */
+$lang['server']                = 'MySQL-kiszolgáló';
+$lang['user']                  = 'MySQL-felhasználónév';
+$lang['password']              = 'Fenti felhasználó jelszava';
+$lang['database']              = 'Adatbázis';
+$lang['charset']               = 'Az adatbázisban használt karakterkészlet';
+$lang['debug']                 = 'Hibakeresési üzenetek megjelenítése';
+$lang['forwardClearPass']      = 'A jelszó nyílt szövegként történő átadása az alábbi SQL-utasításoknak a passcrypt opció használata helyett';
+$lang['TablesToLock']          = 'Az íráskor zárolni kívánt táblák vesszővel elválasztott listája';
+$lang['checkPass']             = 'SQL-utasítás a jelszavak ellenőrzéséhez';
+$lang['getUserInfo']           = 'SQL-utasítás a felhasználói információk lekérdezéséhez';
+$lang['getGroups']             = 'SQL-utasítás egy felhasználó csoporttagságainak lekérdezéséhez';
+$lang['getUsers']              = 'SQL-utasítás a felhasználók listázásához';
+$lang['FilterLogin']           = 'SQL-kifejezés a felhasználók azonosító alapú szűréséhez';
+$lang['FilterName']            = 'SQL-kifejezés a felhasználók név alapú szűréséhez';
+$lang['FilterEmail']           = 'SQL-kifejezés a felhasználók e-mail cím alapú szűréséhez';
+$lang['FilterGroup']           = 'SQL-kifejezés a felhasználók csoporttagság alapú szűréséhez';
+$lang['SortOrder']             = 'SQL-kifejezés a felhasználók rendezéséhez';
+$lang['addUser']               = 'SQL-utasítás új felhasználó hozzáadásához';
+$lang['addGroup']              = 'SQL-utasítás új csoport hozzáadásához';
+$lang['addUserGroup']          = 'SQL-utasítás egy felhasználó egy meglévő csoporthoz való hozzáadásához';
+$lang['delGroup']              = 'SQL-utasítás egy csoport törléséhez';
+$lang['getUserID']             = 'SQL-utasítás egy felhasználó elsődleges kulcsának lekérdezéséhez';
+$lang['delUser']               = 'SQL-utasítás egy felhasználó törléséhez';
+$lang['delUserRefs']           = 'SQL-utasítás egy felhasználó eltávolításához az összes csoportból';
+$lang['updateUser']            = 'SQL-utasítás egy felhasználó profiljának frissítéséhez';
+$lang['UpdateLogin']           = 'UPDATE-klauzula a felhasználó azonosítójának frissítéséhez';
+$lang['UpdatePass']            = 'UPDATE-klauzula a felhasználó jelszavának frissítéséhez';
+$lang['UpdateEmail']           = 'UPDATE-klauzula a felhasználó e-mail címének frissítéséhez';
+$lang['UpdateName']            = 'UPDATE-klauzula a felhasználó teljes nevének frissítéséhez';
+$lang['UpdateTarget']          = 'LIMIT-klauzula a felhasználó kiválasztásához az adatok frissítésekor';
+$lang['delUserGroup']          = 'SQL-utasítás felhasználó adott csoportból történő törléséhez ';
+$lang['getGroupID']            = 'SQL-utasítás adott csoport elsődleges kulcsának lekérdezéséhez';
+$lang['debug_o_0']             = 'nem';
+$lang['debug_o_1']             = 'csak hiba esetén';
+$lang['debug_o_2']             = 'minden SQL-lekérdezésnél';
diff --git a/wiki/lib/plugins/authmysql/lang/it/lang.php b/wiki/lib/plugins/authmysql/lang/it/lang.php
new file mode 100644
index 0000000..6ba3ef8
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/it/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Torpedo <dgtorpedo@gmail.com>
+ */
+$lang['connectfail']           = 'Connessione fallita al database.';
+$lang['userexists']            = 'Spiacente, esiste già un utente con queste credenziali.';
+$lang['usernotexists']         = 'Spiacente, quell\'utente non esiste.';
+$lang['writefail']             = 'Non è possibile cambiare le informazioni utente. Si prega di informare l\'Amministratore del wiki';
diff --git a/wiki/lib/plugins/authmysql/lang/it/settings.php b/wiki/lib/plugins/authmysql/lang/it/settings.php
new file mode 100644
index 0000000..ec2d670
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/it/settings.php
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Claudio Lanconelli <lancos@libero.it>
+ * @author Mirko <malisan.mirko@gmail.com>
+ * @author Francesco <francesco.cavalli@hotmail.com>
+ * @author Maurizio <mcannavo@katamail.com>
+ * @author Torpedo <dgtorpedo@gmail.com>
+ */
+$lang['server']                = 'Il tuo server MySQL';
+$lang['user']                  = 'User name di MySQL';
+$lang['password']              = 'Password per l\'utente di cui sopra';
+$lang['database']              = 'Database da usare';
+$lang['charset']               = 'Set di caratteri usato nel database';
+$lang['debug']                 = 'Mostra ulteriori informazioni di debug';
+$lang['forwardClearPass']      = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt';
+$lang['TablesToLock']          = 'Lista, separata da virgola, delle tabelle che devono essere bloccate in scrittura';
+$lang['checkPass']             = 'Istruzione SQL per il controllo password';
+$lang['getUserInfo']           = 'Istruzione SQL per recuperare le informazioni utente';
+$lang['getGroups']             = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente';
+$lang['getUsers']              = 'Istruzione SQL per listare tutti gli utenti';
+$lang['FilterLogin']           = 'Condizione SQL per per filtrare gli utenti in funzione del "login name"';
+$lang['FilterName']            = 'Condizione SQL per filtrare gli utenti in base al nome completo';
+$lang['FilterEmail']           = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail';
+$lang['FilterGroup']           = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza';
+$lang['SortOrder']             = 'Condizione SQL per ordinare gli utenti';
+$lang['addUser']               = 'Istruzione SQL per aggiungere un nuovo utente';
+$lang['addGroup']              = 'Istruzione SQL per aggiungere un nuovo gruppo';
+$lang['addUserGroup']          = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente';
+$lang['delGroup']              = 'Istruzione SQL per imuovere un gruppo';
+$lang['getUserID']             = 'Istruzione SQL per recuperare la primary key di un utente';
+$lang['delUser']               = 'Istruzione SQL per cancellare un utente';
+$lang['delUserRefs']           = 'Istruzione SQL per rimuovere un utente da tutti i gruppi';
+$lang['updateUser']            = 'Istruzione SQL per aggiornare il profilo utente';
+$lang['UpdateLogin']           = 'Condizione SQL per aggiornare il nome di accesso dell\'utente';
+$lang['UpdatePass']            = 'Condizione SQL per aggiornare la password utente';
+$lang['UpdateEmail']           = 'Condizione SQL per aggiornare l\'e-mail utente';
+$lang['UpdateName']            = 'Condizione SQL per aggiornare il nome completo dell\'utente';
+$lang['UpdateTarget']          = 'Condizione SQL per identificare l\'utente quando aggiornato';
+$lang['delUserGroup']          = 'Istruzione SQL per rimuovere un utente da un dato gruppo';
+$lang['getGroupID']            = 'Istruzione SQL per avere la primary key di un dato gruppo';
+$lang['debug_o_0']             = 'Nulla';
+$lang['debug_o_1']             = 'Solo in errore';
+$lang['debug_o_2']             = 'Tutte le query SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/ja/lang.php b/wiki/lib/plugins/authmysql/lang/ja/lang.php
new file mode 100644
index 0000000..55c908b
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/ja/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Hideaki SAWADA <chuno@live.jp>
+ */
+$lang['connectfail']           = 'データベースへの接続に失敗しました。';
+$lang['userexists']            = 'このログイン名のユーザーが既に存在しています。';
+$lang['usernotexists']         = 'そのユーザーは存在しません。';
+$lang['writefail']             = 'ユーザーデータを変更できません。Wiki の管理者に連絡してください。';
diff --git a/wiki/lib/plugins/authmysql/lang/ja/settings.php b/wiki/lib/plugins/authmysql/lang/ja/settings.php
new file mode 100644
index 0000000..cc0146b
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/ja/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Satoshi Sahara <sahara.satoshi@gmail.com>
+ */
+$lang['server']                = 'MySQL のホスト名';
+$lang['user']                  = 'MySQL 接続用ユーザー名';
+$lang['password']              = 'MySQL 接続用ユーザーのパスワード';
+$lang['database']              = '使用するデータベース名';
+$lang['charset']               = 'データベースの文字コード';
+$lang['debug']                 = 'デバック情報を表示する';
+$lang['forwardClearPass']      = '以下で定義する SQL ステートメントにおいて, パスワード変数 を平文とする(DokiWiki側で暗号化しない)';
+$lang['TablesToLock']          = '書き込み時にロックするテーブル(コンマ区切りで列挙)';
+$lang['checkPass']             = 'パスワードの照合に用いる SQL ステートメント';
+$lang['getUserInfo']           = 'ユーザー情報の取得に用いる SQL ステートメント';
+$lang['getGroups']             = 'ユーザーが所属する全てのグループの取得に用いる SQL ステートメント';
+$lang['getUsers']              = 'ユーザーリストを取得する SQL ステートメント';
+$lang['FilterLogin']           = 'ユーザーリストをログイン名で絞り込む SQL 句';
+$lang['FilterName']            = 'ユーザーリストをフルネームで絞り込む SQL 句';
+$lang['FilterEmail']           = 'ユーザーリストをメールアドレスで絞り込む SQL 句';
+$lang['FilterGroup']           = 'ユーザーリストを所属グループで絞り込む SQL 句';
+$lang['SortOrder']             = 'ユーザーリストのソート方法を指定する SQL 句';
+$lang['addUser']               = '新規ユーザーを追加する SQL ステートメント';
+$lang['addGroup']              = '新規グループを追加する SQL ステートメント';
+$lang['addUserGroup']          = 'ユーザーをグループに配属する SQL ステートメント';
+$lang['delGroup']              = 'グループを削除する SQL ステートメント';
+$lang['getUserID']             = 'ユーザーIDの取得に用いる SQL ステートメント';
+$lang['delUser']               = 'ユーザーを削除する SQL ステートメント';
+$lang['delUserRefs']           = 'ユーザーのグループ所属を全て取り消す SQL ステートメント';
+$lang['updateUser']            = 'ユーザー情報を変更する SQL ステートメント';
+$lang['UpdateLogin']           = '変更後のログイン名を指定する SQL 句';
+$lang['UpdatePass']            = '変更後のパスワードを指定する SQL 句';
+$lang['UpdateEmail']           = '変更後のメールアドレスを指定する SQL 句';
+$lang['UpdateName']            = '変更後のフルネームを指定する SQL 句';
+$lang['UpdateTarget']          = '変更対象のユーザを特定するための SQL 句';
+$lang['delUserGroup']          = 'ユーザーをグループから除名する SQL ステートメント';
+$lang['getGroupID']            = 'グループIDの取得に用いる SQL ステートメント';
+$lang['debug_o_0']             = '表示しない';
+$lang['debug_o_1']             = 'エラー発生時のみ表示';
+$lang['debug_o_2']             = '全ての SQLクエリで表示';
diff --git a/wiki/lib/plugins/authmysql/lang/ko/lang.php b/wiki/lib/plugins/authmysql/lang/ko/lang.php
new file mode 100644
index 0000000..5e96a44
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/ko/lang.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author hyeonsoft <hyeonsoft@live.co.kr>
+ * @author Myeongjin <aranet100@gmail.com>
+ */
+$lang['connectfail']           = '데이터베이스에 연결하는 데 실패했습니다.';
+$lang['userexists']            = '죄송하지만 이 계정으로 이미 로그인한 사용자가 있습니다.';
+$lang['usernotexists']         = '죄송하지만 해당 사용자가 존재하지 않습니다.';
+$lang['writefail']             = '사용자 데이터를 수정할 수 없습니다. 위키 관리자에게 문의하시기 바랍니다';
diff --git a/wiki/lib/plugins/authmysql/lang/ko/settings.php b/wiki/lib/plugins/authmysql/lang/ko/settings.php
new file mode 100644
index 0000000..ee7c1ef
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/ko/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Myeongjin <aranet100@gmail.com>
+ * @author Garam <rowain8@gmail.com>
+ */
+$lang['server']                = 'MySQL 서버';
+$lang['user']                  = 'MySQL 사용자 이름';
+$lang['password']              = '위 사용자의 비밀번호';
+$lang['database']              = '사용할 데이터베이스';
+$lang['charset']               = '데이터베이스에 사용하는 문자 집합';
+$lang['debug']                 = '추가적인 디버그 정보 보이기';
+$lang['forwardClearPass']      = 'passcrypt 옵션을 사용하는 대신 아래 SQL 문에 일반 텍스트로 사용자 비밀번호를 전달';
+$lang['TablesToLock']          = '쓰기 작업에 잠궈야 하는 테이블의 쉼표로 구분한 목록';
+$lang['checkPass']             = '비밀번호를 확인하기 위한 SQL 문';
+$lang['getUserInfo']           = '사용자 정보를 가져오기 위한 SQL 문';
+$lang['getGroups']             = '사용자의 그룹 구성원을 가져오기 위한 SQL 문';
+$lang['getUsers']              = '모든 사용자를 나타낼 SQL 문';
+$lang['FilterLogin']           = '로그인 이름별로 사용자를 필터하기 위한 SQL 조항';
+$lang['FilterName']            = '전체 이름별로 사용자를 필터하기 위한 SQL 조항';
+$lang['FilterEmail']           = '이메일 주소별로 사용자를 필터하기 위한 SQL 조항';
+$lang['FilterGroup']           = '그룹 구성원별로 사용자를 필터하기 위한 SQL 조항';
+$lang['SortOrder']             = '사용자를 정렬할 SQL 조항';
+$lang['addUser']               = '새 사용자를 추가할 SQL 문';
+$lang['addGroup']              = '새 그룹을 추가할 SQL 문';
+$lang['addUserGroup']          = '기존 그룹에 사용자를 추가할 SQL 문';
+$lang['delGroup']              = '그룹을 제거할 SQL 문';
+$lang['getUserID']             = '사용자의 기본 키를 얻을 SQL 문';
+$lang['delUser']               = '사용자를 삭제할 SQL 문';
+$lang['delUserRefs']           = '모든 그룹에서 사용자를 제거할 SQL 문';
+$lang['updateUser']            = '사용자 프로필을 업데이트할 SQL 문';
+$lang['UpdateLogin']           = '사용자의 로그인 이름을 업데이트하기 위한 Update 조항';
+$lang['UpdatePass']            = '사용자의 비밀번호를 업데이트하기 위한 Update 조항';
+$lang['UpdateEmail']           = '사용자의 이메일 주소를 업데이트하기 위한 Update 조항';
+$lang['UpdateName']            = '사용자의 전체 이름을 업데이트하기 위한 Update 조항';
+$lang['UpdateTarget']          = '업데이트할 때 사용자를 식별할 Limit 조항';
+$lang['delUserGroup']          = '주어진 그룹에서 사용자를 제거할 SQL 문';
+$lang['getGroupID']            = '주어진 그룹의 기본 키를 얻을 SQL 문';
+$lang['debug_o_0']             = '없음';
+$lang['debug_o_1']             = '오류에만';
+$lang['debug_o_2']             = '모든 SQL 쿼리';
diff --git a/wiki/lib/plugins/authmysql/lang/lv/settings.php b/wiki/lib/plugins/authmysql/lang/lv/settings.php
new file mode 100644
index 0000000..008ef34
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/lv/settings.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Oskars Pakers <oskars.pakers@gmail.com>
+ * @author Aivars Miška <allefm@gmail.com>
+ */
+$lang['server']                = 'Jūsu MySQL serveris';
+$lang['user']                  = 'MySQL lietotāja vārds';
+$lang['password']              = 'Lietotāja parole';
+$lang['delUser']               = 'SQL pieprasījums lietotāja dzēšanai';
diff --git a/wiki/lib/plugins/authmysql/lang/nl/lang.php b/wiki/lib/plugins/authmysql/lang/nl/lang.php
new file mode 100644
index 0000000..1f6d8af
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/nl/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Hugo Smet <hugo.smet@scarlet.be>
+ */
+$lang['connectfail']           = 'Connectie met de database mislukt.';
+$lang['userexists']            = 'Sorry, een gebruiker met deze login bestaat reeds.';
+$lang['usernotexists']         = 'Sorry, deze gebruiker bestaat niet.';
+$lang['writefail']             = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.';
diff --git a/wiki/lib/plugins/authmysql/lang/nl/settings.php b/wiki/lib/plugins/authmysql/lang/nl/settings.php
new file mode 100644
index 0000000..a4bab2d
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/nl/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Remon <no@email.local>
+ */
+$lang['server']                = 'De MySQL server';
+$lang['user']                  = 'MySql gebruikersnaam';
+$lang['password']              = 'Wachtwoord van bovenstaande gebruiker';
+$lang['database']              = 'Te gebruiken database';
+$lang['charset']               = 'Tekenset voor database';
+$lang['debug']                 = 'Tonen aanvullende debuginformatie';
+$lang['forwardClearPass']      = 'Wachtwoorden als leesbare tekst in SQL commando\'s opnemen in plaats van versleutelde tekens';
+$lang['TablesToLock']          = 'Kommagescheiden lijst van tabellen die gelocked moeten worden bij schrijfacties';
+$lang['checkPass']             = 'SQL commando voor het verifiëren van wachtwoorden';
+$lang['getUserInfo']           = 'SQL commando voor het ophalen van gebruikersinformatie';
+$lang['getGroups']             = 'SQL commando voor het ophalen van groepslidmaatschappen';
+$lang['getUsers']              = 'SQL commando voor het tonen van alle gebruikers';
+$lang['FilterLogin']           = 'SQL clausule voor het filteren van gebruikers op inlognaam';
+$lang['FilterName']            = 'SQL clausule voor het filteren van gebruikers op volledige naam';
+$lang['FilterEmail']           = 'SQL clausule voor het filteren van gebruikers op e-mailadres';
+$lang['FilterGroup']           = 'SQL clausule voor het filteren van gebruikers op groepslidmaatschap';
+$lang['SortOrder']             = 'SQL clausule voor het sorteren van gebruikers';
+$lang['addUser']               = 'SQL commando om een nieuwe gebruiker toe te voegen';
+$lang['addGroup']              = 'SQL commando om een nieuwe groep toe te voegen';
+$lang['addUserGroup']          = 'SQL commando om een gebruiker aan een bestaande groep toe te voegen';
+$lang['delGroup']              = 'SQL commando om een groep te verwijderen';
+$lang['getUserID']             = 'SQL commando om de de primaire sleutel van een gebruiker op te halen';
+$lang['delUser']               = 'SQL commando om een gebruiker te verwijderen';
+$lang['delUserRefs']           = 'SQL commando om een gebruiker uit alle groepen te verwijderen';
+$lang['updateUser']            = 'SQL commando om een gebruikersprofiel bij te werken';
+$lang['UpdateLogin']           = 'Bijwerkcommando om de inlognaam van de gebruiker bij te werken';
+$lang['UpdatePass']            = 'Bijwerkcommando om het wachtwoord van de gebruiker bij te werken';
+$lang['UpdateEmail']           = 'Bijwerkcommando om het e-mailadres van de gebruiker bij te werken';
+$lang['UpdateName']            = 'Bijwerkcommando om de volledige naam van de gebruiker bij te werken';
+$lang['UpdateTarget']          = 'Beperkingsclausule om de gebruiker te identificeren voor bijwerken';
+$lang['delUserGroup']          = 'SQL commando om een gebruiker uit een bepaalde groep te verwijderen';
+$lang['getGroupID']            = 'SQL commando om de primaire sletel van een bepaalde groep op te halen';
+$lang['debug_o_0']             = 'geen';
+$lang['debug_o_1']             = 'alleen bij fouten';
+$lang['debug_o_2']             = 'alle SQL queries';
diff --git a/wiki/lib/plugins/authmysql/lang/no/lang.php b/wiki/lib/plugins/authmysql/lang/no/lang.php
new file mode 100644
index 0000000..38377b5
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/no/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Arne Hanssen <arne.hanssen@getmail.no>
+ */
+$lang['connectfail']           = 'Klarte ikke koble til databasen.';
+$lang['userexists']            = 'Beklager, men en bruker med dette brukernavnet fins fra før.';
+$lang['usernotexists']         = 'Beklager med bruker fins ikke.';
+$lang['writefail']             = 'Klarte ikke endre brukerdata. Dette bør meldes til wikiens administrator';
diff --git a/wiki/lib/plugins/authmysql/lang/no/settings.php b/wiki/lib/plugins/authmysql/lang/no/settings.php
new file mode 100644
index 0000000..6d4134f
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/no/settings.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Patrick <spill.p@hotmail.com>
+ * @author Arne Hanssen <arne.hanssen@getmail.no>
+ * @author Arne Hanssen <arnehans@getmail.no>
+ */
+$lang['server']                = 'Din MySQL-server';
+$lang['user']                  = 'Ditt MySQL-brukernavn';
+$lang['password']              = 'Passord til brukeren';
+$lang['database']              = 'Database som skal brukes';
+$lang['charset']               = 'Tegnsettet som datasen bruker';
+$lang['debug']                 = 'Vis tilleggsinformasjon for feilsøking';
+$lang['forwardClearPass']      = 'Videresendt passord i klartekst til SQL-uttrykket under, i stedet for å bruke det krypterte passordet';
+$lang['TablesToLock']          = 'Kommaseparert liste over tabeller som må låses ved skriveopperasjoner';
+$lang['checkPass']             = 'SQL-uttrykk for å sjekke passord';
+$lang['getUserInfo']           = 'SQL-uttrykk for å hente informasjon om bruker';
+$lang['getGroups']             = 'SQL-uttrykk for å hente gruppene en bruker tilhører';
+$lang['getUsers']              = 'SQL-utrykk for å liste alle brukere';
+$lang['FilterLogin']           = 'SQL-utrykk for å filtrere brukere etter brukernavn';
+$lang['FilterName']            = 'SQL-utrykk for å filtrere brukere etter fult navn';
+$lang['FilterEmail']           = 'SQL-utrykk for å filtrere brukere etter e-postadresse';
+$lang['FilterGroup']           = 'SQL-uttrykk for å filtrere brukere etter hvilken grupper de tilhører';
+$lang['SortOrder']             = 'SQL-utrykk for å sortere brukere';
+$lang['addUser']               = 'SQL-utrykk for å legge til en ny bruker ';
+$lang['addGroup']              = 'SQL-utrykk for å legge til en ny gruppe';
+$lang['addUserGroup']          = 'SQL-uttrykk for å legge til en bruker i en eksisterende gruppe';
+$lang['delGroup']              = 'SQL-uttrykk for å fjerne en gruppe';
+$lang['getUserID']             = 'SQL-uttrykk for å hente primærnøkkel for en bruker';
+$lang['delUser']               = 'SQL-utrykk for å slette en bruker';
+$lang['delUserRefs']           = 'SQL-utrykk for å fjerne en bruke fra alle grupper';
+$lang['updateUser']            = 'SQL-uttrykk for å oppdatere en brukerprofil';
+$lang['UpdateLogin']           = 'Update-utrykk for å oppdatere brukernavn';
+$lang['UpdatePass']            = 'Update-utrykk for å oppdatere brukers passord';
+$lang['UpdateEmail']           = 'Update-utrykk for å oppdatere brukers e-postadresse';
+$lang['UpdateName']            = 'Update-utrykk for å oppdatere brukers fulle navn';
+$lang['UpdateTarget']          = 'Limit-uttrykk for å identifisere brukeren ved oppdatering';
+$lang['delUserGroup']          = 'SQL-uttrykk for å fjerne en bruker fra en gitt gruppe';
+$lang['getGroupID']            = 'SQL-uttrykk for å hente primærnøkkel for en gitt gruppe ';
+$lang['debug_o_0']             = 'ingen';
+$lang['debug_o_1']             = 'bare ved feil';
+$lang['debug_o_2']             = 'alle SQL-spørringer';
diff --git a/wiki/lib/plugins/authmysql/lang/pl/lang.php b/wiki/lib/plugins/authmysql/lang/pl/lang.php
new file mode 100644
index 0000000..14f645e
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/pl/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Wojciech Lichota <wojciech@lichota.pl>
+ */
+$lang['connectfail']           = 'Nie można połączyć się z bazą danych.';
+$lang['userexists']            = 'Niestety, użytkownik o tym loginie już istnieje.';
+$lang['usernotexists']         = 'Niestety, taki użytkownik nie istnieje.';
+$lang['writefail']             = 'Nie można zmodyfikować danych użytkownika. Proszę poinformować administratora Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/pl/settings.php b/wiki/lib/plugins/authmysql/lang/pl/settings.php
new file mode 100644
index 0000000..e54372e
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/pl/settings.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Wojciech Lichota <wojciech@lichota.pl>
+ * @author Paweł Jan Czochański <czochanski@gmail.com>
+ * @author Mati <mackosa@wp.pl>
+ * @author Maciej Helt <geraldziu@gmail.com>
+ */
+$lang['server']                = 'Twój server MySQL';
+$lang['user']                  = 'Nazwa użytkownika MySQL';
+$lang['password']              = 'Hasło dla powyższego użytkownika';
+$lang['database']              = 'Używana baza danych';
+$lang['charset']               = 'Zestaw znaków uzyty w bazie danych';
+$lang['debug']                 = 'Wyświetlaj dodatkowe informacje do debugowania.';
+$lang['forwardClearPass']      = 'Zamiast używać opcji passcrypt, przekazuj hasła użytkowników jako czysty tekst do poniższej instrukcji SQL';
+$lang['TablesToLock']          = 'Rozdzielana przecinkami lista tabel, które powinny być blokowane podczas operacji zapisu';
+$lang['checkPass']             = 'Zapytanie SQL wykorzystywane do sprawdzania haseł.';
+$lang['getUserInfo']           = 'Zapytanie SQL zwracające informacje o użytkowniku';
+$lang['getGroups']             = 'Zapytanie SQL przynależność do grup danego użytkownika';
+$lang['getUsers']              = 'Zapytanie SQL zwracające listę wszystkich użytkowników';
+$lang['FilterLogin']           = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich loginu';
+$lang['FilterName']            = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich pełnej nazwy';
+$lang['FilterEmail']           = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich adresu email';
+$lang['FilterGroup']           = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich przynależności do grup';
+$lang['SortOrder']             = 'Klauzula SQL używana do sortowania użytkowników';
+$lang['addUser']               = 'Zapytanie SQL dodające nowego użytkownika';
+$lang['addGroup']              = 'Instrukcja SQL dodająca nową grupę';
+$lang['addUserGroup']          = 'Instrukcja SQL dodająca użytkownika do istniejącej grupy';
+$lang['delGroup']              = 'Instrukcja SQL usuwająca grupę';
+$lang['getUserID']             = 'Instrukcja SQL pobierająca klucz główny użytkownika';
+$lang['delUser']               = 'Instrukcja SQL usuwająca użytkownika';
+$lang['delUserRefs']           = 'Instrukcja SQL usuwająca użytkownika ze wszystkich grup';
+$lang['updateUser']            = 'Instrukcja SQL aktualizująca profil użytkownika';
+$lang['UpdateLogin']           = 'Polecenie służące do aktualizacji loginu użytkownika';
+$lang['UpdatePass']            = 'Polecenie służące do aktualizacji hasła użytkownika';
+$lang['UpdateEmail']           = 'Polecenie służące do aktualizacji e-mailu użytkownika';
+$lang['UpdateName']            = 'Polecenie służące do aktualizacji imienia i nazwiska użytkownika';
+$lang['UpdateTarget']          = 'Instrukcja limitu do identyfikacji użytkownika podczas aktualizacji';
+$lang['delUserGroup']          = 'Instrukcja SQL usuwająca użytkownika ze wskazanej grupy';
+$lang['getGroupID']            = 'Instrukcja SQL pobierający klucz główny wskazanej grupy';
+$lang['debug_o_0']             = 'brak';
+$lang['debug_o_1']             = 'tylko w przypadku błędów';
+$lang['debug_o_2']             = 'wszystkie zapytania SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/pt-br/lang.php b/wiki/lib/plugins/authmysql/lang/pt-br/lang.php
new file mode 100644
index 0000000..02c4b9e
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/pt-br/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
+ */
+$lang['connectfail']           = 'Não foi possível conectar ao banco de dados.';
+$lang['userexists']            = 'Desculpe, mas já existe esse nome de usuário.';
+$lang['usernotexists']         = 'Desculpe, mas esse usuário não existe.';
+$lang['writefail']             = 'Não foi possível modificar os dados do usuário. Por favor, informe ao administrador do Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/pt-br/settings.php b/wiki/lib/plugins/authmysql/lang/pt-br/settings.php
new file mode 100644
index 0000000..cc637d6
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/pt-br/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Victor Westmann <victor.westmann@gmail.com>
+ * @author Frederico Guimarães <frederico@teia.bio.br>
+ */
+$lang['server']                = 'Seu servidor MySQL';
+$lang['user']                  = 'usuário MySQL';
+$lang['password']              = 'Senha do usuário acima';
+$lang['database']              = 'Base de dados para usar';
+$lang['charset']               = 'Codificação de caracter usado na base de dados';
+$lang['debug']                 = 'Mostrar informações adicionais de depuração';
+$lang['forwardClearPass']      = 'Passar senhas de usuários como texto puro para comandos SQL abaixo, ao invés de usar opção passcrypt';
+$lang['TablesToLock']          = 'Lista separada por vírgulas para tabelas que devem estar travadas em operações de escrita';
+$lang['checkPass']             = 'Comandos SQL para verificar senhas';
+$lang['getUserInfo']           = 'Comando SQL para obter informações de usuário';
+$lang['getGroups']             = 'Comando SQL para obter as credenciais de grupo de um usuário';
+$lang['getUsers']              = 'Comando SQL para listar todos os usuários';
+$lang['FilterLogin']           = 'Comando SQL para filtrar usuários pelo login';
+$lang['FilterName']            = 'Cláusula SQL para filtrar usuários por nome completo';
+$lang['FilterEmail']           = 'Cláusula SQL para filtrar usuários por endereço de email';
+$lang['FilterGroup']           = 'Cláusula SQL para filtrar usuários por membros de grupos';
+$lang['SortOrder']             = 'Cláusula SQL para ordenar usuários';
+$lang['addUser']               = 'Comando SQL para adicionar um novo usuário';
+$lang['addGroup']              = 'Comando SQL para adicionar um novo grupo';
+$lang['addUserGroup']          = 'Comando SQL para adicionar um usuário a um determinado grupo';
+$lang['delGroup']              = 'Comando SQL para remover um grupo';
+$lang['getUserID']             = 'Comando SQL para obter a chave primária de um usuário';
+$lang['delUser']               = 'Comando SQL para apagar um usuário';
+$lang['delUserRefs']           = 'Comando SQL para apagar um usuário de todos os grupos';
+$lang['updateUser']            = 'Comando SQL para atualizar perfil de usuário';
+$lang['UpdateLogin']           = 'Comando SQL para atualizar o login de um usuário';
+$lang['UpdatePass']            = 'Cláusula de atualização para atualizar senha de usuário';
+$lang['UpdateEmail']           = 'Cláusula de atualização para atualizar email do usuário';
+$lang['UpdateName']            = 'Cláusula de atualização para atualizar nome completo do usuário';
+$lang['UpdateTarget']          = 'Limitar cláusula para identificar usuário quando estiver atualizando';
+$lang['delUserGroup']          = 'Comando SQL para remover um usuário de um grupo determinado';
+$lang['getGroupID']            = 'Comando SQL para obter a chave primária de um grupo determinado';
+$lang['debug_o_0']             = 'nenhum';
+$lang['debug_o_1']             = 'apenas em erros';
+$lang['debug_o_2']             = 'todas as queries SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/pt/lang.php b/wiki/lib/plugins/authmysql/lang/pt/lang.php
new file mode 100644
index 0000000..9e8bd6c
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/pt/lang.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Paulo Carmino <contato@paulocarmino.com>
+ * @author Guilherme Sá <guilherme.sa@hotmail.com>
+ */
+$lang['connectfail']           = 'Falha ao conectar com o banco de dados.';
+$lang['userexists']            = 'Desculpe, esse login já está sendo usado.';
+$lang['usernotexists']         = 'Desculpe, esse login não existe.';
+$lang['writefail']             = 'Incapaz de modificar dados do usuário. Favor informar ao Wiki-Admin.';
diff --git a/wiki/lib/plugins/authmysql/lang/pt/settings.php b/wiki/lib/plugins/authmysql/lang/pt/settings.php
new file mode 100644
index 0000000..2488487
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/pt/settings.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author André Neves <drakferion@gmail.com>
+ * @author Guido Salatino <guidorafael23@gmail.com>
+ */
+$lang['server']                = 'O seu servidor de MySQL';
+$lang['user']                  = 'Utilizador MySQL';
+$lang['password']              = 'Senha para o utilizador acima';
+$lang['database']              = 'Base de dados a usar';
+$lang['charset']               = 'Conjunto de caracteres usado na base de dados';
+$lang['debug']                 = 'Mostrar informação adicional de debug';
+$lang['forwardClearPass']      = 'Passe as senhas do usuário como texto puro para as instruções SQL abaixo, em vez de usar a opção passcrypt';
+$lang['TablesToLock']          = 'Lista de tabelas, separadas por virgula, que devem ser bloqueadas em operações de escrita';
+$lang['checkPass']             = 'Instrução SQL para verificar senhas';
+$lang['getUserInfo']           = 'Instrução SQL para recuperar informações do usuário';
+$lang['getGroups']             = 'Instrução SQL para recuperar os usuários participantes de um grupo';
+$lang['getUsers']              = 'Instrução SQL para listar todos usuários';
+$lang['FilterLogin']           = 'Cláusula SQL para filtrar utilizadores por tipo de login';
+$lang['FilterName']            = 'Cláusula SQL para filtrar utilizadores por nome completo';
+$lang['FilterEmail']           = 'Cláusula SQL para filtrar utilizadores por endereço de email';
+$lang['FilterGroup']           = 'Cláusula SQL para filtrar utilizadores por pertença a grupo';
+$lang['SortOrder']             = 'Cláusula SQL para ordenar utilizadores';
+$lang['addUser']               = 'Instrução SQL para adicionar novo usuário';
+$lang['addGroup']              = 'Instrução SQL para adicionar um novo grupo';
+$lang['addUserGroup']          = 'Instrução SQL para adicionar um usuário a um grupo existente';
+$lang['delGroup']              = 'Instrução SQL para remover um grupo';
+$lang['getUserID']             = 'Instrução SQL para obter a chave principal de um usuário';
+$lang['delUser']               = 'Instrução SQL para excluir um usuário';
+$lang['delUserRefs']           = 'Instrução SQL para excluir um usuário de todos os grupos';
+$lang['updateUser']            = 'Instrução SQL para atualizar um perfil de usuário';
+$lang['UpdateLogin']           = 'Cláusula de atualização para atualizar o nome de login do utilizador';
+$lang['UpdatePass']            = 'Cláusula de atualização para atualizar a senha do utilizador';
+$lang['UpdateEmail']           = 'Cláusula de atualização para atualizar o endereço de email do utilizador';
+$lang['UpdateName']            = 'Cláusula de atualização para atualizar o nome completo do utilizador';
+$lang['UpdateTarget']          = 'Cláusula limite para identificar o usuário ao atualizar';
+$lang['delUserGroup']          = 'Instrução SQL para remover um usuário de um determinado grupo';
+$lang['getGroupID']            = 'Instrução SQL para obter a chave principal de um determinado grupo';
+$lang['debug_o_0']             = 'nenhum';
+$lang['debug_o_1']             = 'só aquando de erros';
+$lang['debug_o_2']             = 'todas as consultas SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/ru/lang.php b/wiki/lib/plugins/authmysql/lang/ru/lang.php
new file mode 100644
index 0000000..27153fd
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/ru/lang.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Takumo <9206984@mail.ru>
+ * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
+ */
+$lang['connectfail']           = 'Ошибка соединения с базой данных.';
+$lang['userexists']            = 'Извините, пользователь с таким логином уже существует.';
+$lang['usernotexists']         = 'Извините, такой пользователь не существует.';
+$lang['writefail']             = 'Невозможно изменить данные пользователя. Сообщите об этом администратору вики.';
diff --git a/wiki/lib/plugins/authmysql/lang/ru/settings.php b/wiki/lib/plugins/authmysql/lang/ru/settings.php
new file mode 100644
index 0000000..8109377
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/ru/settings.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Yuriy Skalko <yuriy.skalko@gmail.com>
+ * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Aleksandr Selivanov <alexgearbox@gmail.com>
+ * @author Type-kun <workwork-1@yandex.ru>
+ */
+$lang['server']                = 'Ваш MySQL-сервер';
+$lang['user']                  = 'Имя пользователя MySQL';
+$lang['password']              = 'Пароль пользователя MySQL';
+$lang['database']              = 'Имя базы данных';
+$lang['charset']               = 'Используемый набор символов в базе данных';
+$lang['debug']                 = 'Отображение дополнительной отладочной информации';
+$lang['forwardClearPass']      = 'Передача пароля пользователя открытым текстом, вместо зашифрованной формы, в используемом выражении SQL';
+$lang['TablesToLock']          = 'Имена таблиц (через запятую), которым необходимо ограничение для записи';
+$lang['checkPass']             = 'Выражение SQL, осуществляющее проверку пароля';
+$lang['getUserInfo']           = 'Выражение SQL, осуществляющее извлечение информации о пользователе';
+$lang['getGroups']             = 'Выражение SQL, осуществляющее извлечение информации о членстве пользователе в группах';
+$lang['getUsers']              = 'Выражение SQL, осуществляющее извлечение полного списка пользователей';
+$lang['FilterLogin']           = 'Выражение SQL, осуществляющее фильтрацию пользователей по логину';
+$lang['FilterName']            = 'Выражение SQL, осуществляющее фильтрацию пользователей по полному имени';
+$lang['FilterEmail']           = 'Выражение SQL, осуществляющее фильтрацию пользователей по адресу электронной почты';
+$lang['FilterGroup']           = 'Выражение SQL, осуществляющее фильтрацию пользователей согласно членству в группе';
+$lang['SortOrder']             = 'Выражение SQL, осуществляющее сортировку пользователей';
+$lang['addUser']               = 'Выражение SQL, осуществляющее добавление нового пользователя';
+$lang['addGroup']              = 'Выражение SQL, осуществляющее добавление новой группы';
+$lang['addUserGroup']          = 'Выражение SQL, осуществляющее добавление пользователя в существующую группу';
+$lang['delGroup']              = 'Выражение SQL, осуществляющее удаление группы';
+$lang['getUserID']             = 'Выражение SQL, обеспечивающее получение первичного ключа пользователя';
+$lang['delUser']               = 'Выражение SQL, осуществляющее удаление пользователя';
+$lang['delUserRefs']           = 'Выражение SQL, осуществляющее удаление пользователя из всех групп';
+$lang['updateUser']            = 'Выражение SQL, осуществляющее обновление профиля пользователя';
+$lang['UpdateLogin']           = 'Условие для обновления имени пользователя';
+$lang['UpdatePass']            = 'Условие для обновления пароля пользователя';
+$lang['UpdateEmail']           = 'Условие для обновления адреса электронной почты пользователя';
+$lang['UpdateName']            = 'Условие для обновления полного имени пользователя';
+$lang['UpdateTarget']          = 'Выражение \'LIMIT\' для идентификации пользователя при обновлении';
+$lang['delUserGroup']          = 'Выражение SQL, осуществляющее удаление пользователя из указанной группы';
+$lang['getGroupID']            = 'Выражение SQL, обеспечивающее получение первичного ключа указанной группы';
+$lang['debug_o_0']             = 'ни один из вариантов';
+$lang['debug_o_1']             = 'только при возникновении ошибок';
+$lang['debug_o_2']             = 'все SQL-запросы';
diff --git a/wiki/lib/plugins/authmysql/lang/sk/lang.php b/wiki/lib/plugins/authmysql/lang/sk/lang.php
new file mode 100644
index 0000000..9d792b7
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sk/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['connectfail']           = 'Nepodarilo sa pripojiť k databáze.';
+$lang['userexists']            = 'Ľutujem, ale používateľ s týmto prihlasovacím menom už existuje.';
+$lang['usernotexists']         = 'Ľutujem, daný používateľ neexistuje.';
+$lang['writefail']             = 'Nie je možné zmeniť údaje používateľa, informujte prosím administrátora Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/sk/settings.php b/wiki/lib/plugins/authmysql/lang/sk/settings.php
new file mode 100644
index 0000000..4def5d6
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sk/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['server']                = 'MySQL server';
+$lang['user']                  = 'Meno používateľa MySQL';
+$lang['password']              = 'Heslo pre vyššie uvedeného používateľa';
+$lang['database']              = 'Použiť databázu';
+$lang['charset']               = 'Znaková sada databázy';
+$lang['debug']                 = 'Zobraziť dodatočné ladiace informácie';
+$lang['forwardClearPass']      = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania';
+$lang['TablesToLock']          = 'Zoznam tabuliek oddelených čiarkou, ktoré by mali byť uzamknuté pri operáciách zápisu';
+$lang['checkPass']             = 'SQL príkaz pre kontrolu hesla';
+$lang['getUserInfo']           = 'SQL príkaz pre získanie informácií o používateľovi';
+$lang['getGroups']             = 'SQL príkaz pre získanie informácií o skupinách používateľa';
+$lang['getUsers']              = 'SQL príkaz pre získanie zoznamu používateľov';
+$lang['FilterLogin']           = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena';
+$lang['FilterName']            = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska';
+$lang['FilterEmail']           = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy';
+$lang['FilterGroup']           = 'SQL podmienka pre filtrovanie používateľov podľa skupiny';
+$lang['SortOrder']             = 'SQL podmienka pre usporiadenia používateľov';
+$lang['addUser']               = 'SQL príkaz pre pridanie nového používateľa';
+$lang['addGroup']              = 'SQL príkaz pre pridanie novej skupiny';
+$lang['addUserGroup']          = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny';
+$lang['delGroup']              = 'SQL príkaz pre zrušenie skupiny';
+$lang['getUserID']             = 'SQL príkaz pre získanie primárneho klúča používateľa';
+$lang['delUser']               = 'SQL príkaz pre zrušenie používateľa';
+$lang['delUserRefs']           = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín';
+$lang['updateUser']            = 'SQL príkaz pre aktualizáciu informácií o používateľovi';
+$lang['UpdateLogin']           = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa';
+$lang['UpdatePass']            = 'SQL podmienka pre aktualizáciu hesla používateľa';
+$lang['UpdateEmail']           = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa';
+$lang['UpdateName']            = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa';
+$lang['UpdateTarget']          = 'Podmienka identifikácie používateľa pri aktualizácii';
+$lang['delUserGroup']          = 'SQL príkaz pre vyradenie používateľa z danej skupiny';
+$lang['getGroupID']            = 'SQL príkaz pre získanie primárneho kľúča skupiny';
+$lang['debug_o_0']             = 'žiadne';
+$lang['debug_o_1']             = 'iba pri chybách';
+$lang['debug_o_2']             = 'všetky SQL dopyty';
diff --git a/wiki/lib/plugins/authmysql/lang/sl/settings.php b/wiki/lib/plugins/authmysql/lang/sl/settings.php
new file mode 100644
index 0000000..8e0b58c
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sl/settings.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Matej Urbančič <mateju@svn.gnome.org>
+ */
+$lang['database']              = 'Podatkovna zbirka za uporabo';
+$lang['debug_o_0']             = 'brez';
+$lang['debug_o_1']             = 'le ob napakah';
+$lang['debug_o_2']             = 'vse poizvedbe SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/sr/lang.php b/wiki/lib/plugins/authmysql/lang/sr/lang.php
new file mode 100644
index 0000000..7ec2fb6
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sr/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Марко М. Костић <marko.m.kostic@gmail.com>
+ */
+$lang['connectfail']           = 'Нисам успео да се повежем на базу.';
+$lang['userexists']            = 'Нажалост, корисник са таквом пријавом већ постоји.';
+$lang['usernotexists']         = 'Нажалост, тај корисник не постоји.';
+$lang['writefail']             = 'Не могу да променим корисничке податке. Обавестите админа викија';
diff --git a/wiki/lib/plugins/authmysql/lang/sr/settings.php b/wiki/lib/plugins/authmysql/lang/sr/settings.php
new file mode 100644
index 0000000..eabdfbc
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sr/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Марко М. Костић <marko.m.kostic@gmail.com>
+ */
+$lang['server']                = 'Ваш MySQL сервер';
+$lang['user']                  = 'MySQL корисничко име';
+$lang['password']              = 'Лозинка корисника изнад';
+$lang['database']              = 'База коју треба користити';
+$lang['charset']               = 'Кодни распоред коришћен у бази';
+$lang['debug']                 = 'Прикажи додатне податке за поправљање грешака';
+$lang['forwardClearPass']      = 'Пренеси корисничке лозинке као чист текст у SQL изјавама испод уместо коришћења passcrypt опције';
+$lang['TablesToLock']          = 'Списак табела одвојених размаком које треба закључати приликом уписивања';
+$lang['checkPass']             = 'SQL упит за проверу лозинки';
+$lang['getUserInfo']           = 'SQL упит за добављање података о кориснику';
+$lang['getGroups']             = 'SQL за добављање корисничких учлањења у групе';
+$lang['getUsers']              = 'SQL упит за излиставање свих корисника';
+$lang['FilterLogin']           = 'SQL услов за филтрирање корисника по имену за пријаву';
+$lang['FilterName']            = 'SQL услов за филтрирање корисника по пуном имену';
+$lang['FilterEmail']           = 'SQL услов за филтрирање корисника по мејл адреси';
+$lang['FilterGroup']           = 'SQL услов за филтрирање корисника по чланству у групама';
+$lang['SortOrder']             = 'SQL услов за сортирање корисника';
+$lang['addUser']               = 'SQL упит за додавање новог корисника';
+$lang['addGroup']              = 'SQL упит за додавање нове групе';
+$lang['addUserGroup']          = 'SQL упит за додавање корисника у постојећу групу';
+$lang['delGroup']              = 'SQL упит за уклањање групе';
+$lang['getUserID']             = 'SQL упит за добављање примарног кључа корисника';
+$lang['delUser']               = 'SQL упит за брисање корисника';
+$lang['delUserRefs']           = 'SQL упит за брисање корисника из свих група';
+$lang['updateUser']            = 'SQL упит за ажурирање корисничког профила';
+$lang['UpdateLogin']           = 'Услов за ажурирање корисничког имена за пријаву';
+$lang['UpdatePass']            = 'Услов за ажурирање корисничке лозинке';
+$lang['UpdateEmail']           = 'Услов за ажурирање корисничке мејл адресе';
+$lang['UpdateName']            = 'Услов за ажурирање корисничког пуног имена';
+$lang['UpdateTarget']          = 'Ограничи услов да би се утврдио корисник приликом ажурирања';
+$lang['delUserGroup']          = 'SQL упит за уклањање корисника из дате групе';
+$lang['getGroupID']            = 'SQL упит за добављање примарног кључа дате групе';
+$lang['debug_o_0']             = 'ништа';
+$lang['debug_o_1']             = 'само на грешкама';
+$lang['debug_o_2']             = 'сви SQL упити';
diff --git a/wiki/lib/plugins/authmysql/lang/sv/lang.php b/wiki/lib/plugins/authmysql/lang/sv/lang.php
new file mode 100644
index 0000000..9c97bd7
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sv/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Tor Härnqvist <tor@harnqvist.se>
+ */
+$lang['connectfail']           = 'Kunde inte ansluta till databas.';
+$lang['userexists']            = 'Tyvärr, en användare med denna inloggning existerar redan.';
+$lang['usernotexists']         = 'Tyvärr, den användaren existerar inte.';
+$lang['writefail']             = 'Kunde inte ändra användardata. Var god inormera Wiki-administratören.';
diff --git a/wiki/lib/plugins/authmysql/lang/sv/settings.php b/wiki/lib/plugins/authmysql/lang/sv/settings.php
new file mode 100644
index 0000000..aa76b89
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/sv/settings.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Tor Härnqvist <tor@harnqvist.se>
+ * @author Smorkster Andersson smorkster@gmail.com
+ */
+$lang['server']                = 'Din MySQL server';
+$lang['user']                  = 'Användarnamn för MySQL';
+$lang['password']              = 'Lösenord för användare ovan';
+$lang['database']              = 'Databas att använda';
+$lang['charset']               = 'Teckenuppsättning som används i databas';
+$lang['debug']                 = 'Visa ytterligare felsökningsinformation';
+$lang['forwardClearPass']      = 'Skicka användares lösenord i klartext till SQL sats nedan, istället för att använda passcrypt alternativet';
+$lang['checkPass']             = 'SQL sats för kontroll av lösenord';
+$lang['getUserInfo']           = 'SQL sats för att hämta användarinformation';
+$lang['getGroups']             = 'SQL sats för att hämta en användares gruppmedlemskap';
+$lang['getUsers']              = 'SQL sats för att lista alla användare';
+$lang['addUser']               = 'SQL sats för att lägga till en användare';
+$lang['addGroup']              = 'SQL sats för att lägga till en grupp';
+$lang['addUserGroup']          = 'SQL sats för att lägga till en användare i en existerande grupp';
+$lang['delGroup']              = 'SQL sats för att ta bort en grupp';
+$lang['delUser']               = 'SQL sats för att ta bort en användare';
+$lang['delUserRefs']           = 'SQL sats för att ta bort en användare från alla grupper';
+$lang['updateUser']            = 'SQL sats för att uppdatera en användarprofil';
+$lang['delUserGroup']          = 'SQL sats för att ta bort en användare från en angiven grupp';
+$lang['debug_o_0']             = 'ingen';
+$lang['debug_o_1']             = 'enbart för fel';
diff --git a/wiki/lib/plugins/authmysql/lang/tr/lang.php b/wiki/lib/plugins/authmysql/lang/tr/lang.php
new file mode 100644
index 0000000..b5c7b2f
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/tr/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author Mete Cuma <mcumax@gmail.com>
+ */
+$lang['connectfail']           = 'Veritabanına bağlantı kurulamadı.';
+$lang['usernotexists']         = 'Üzgünüz, kullanıcı mevcut değil.';
diff --git a/wiki/lib/plugins/authmysql/lang/tr/settings.php b/wiki/lib/plugins/authmysql/lang/tr/settings.php
new file mode 100644
index 0000000..ca6a7c6
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/tr/settings.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author ilker rifat kapaç <irifat@gmail.com>
+ * @author İlker R. Kapaç <irifat@gmail.com>
+ */
+$lang['server']                = 'Sizin MySQL sunucunuz';
+$lang['user']                  = 'MySQL kullanıcısının adı';
+$lang['password']              = 'Üstteki kullanıcı için şifre';
+$lang['database']              = 'Kullanılacak veritabanı';
+$lang['charset']               = 'Veritabanında kullanılacak karakter seti';
+$lang['debug']                 = 'İlave hata ayıklama bilgisini görüntüle';
+$lang['checkPass']             = 'Şifreleri kontrol eden SQL ifadesi';
+$lang['getUserInfo']           = 'Kullanıcı bilgilerini getiren SQL ifadesi';
+$lang['getGroups']             = 'Kullanıcının grup üyeliklerini getiren SQL ifadesi';
+$lang['getUsers']              = 'Tüm kullanıcıları listeleyen SQL ifadesi';
+$lang['FilterLogin']           = 'Kullanıcıları giriş yaptıkları isimlere göre süzmek için SQL şartı';
+$lang['FilterName']            = 'Kullanıcıları tam isimlerine göre süzmek için SQL şartı';
+$lang['FilterEmail']           = 'Kullanıcıları e-posta adreslerine göre süzmek için SQL şartı';
+$lang['FilterGroup']           = 'Kullanıcıları üye oldukları grup isimlerine göre süzmek için SQL şartı';
+$lang['SortOrder']             = 'Kullanıcıları sıralamak için SQL şartı';
+$lang['addUser']               = 'Yeni bir kullanıcı ekleyen SQL ifadesi';
+$lang['addGroup']              = 'Yeni bir grup ekleyen SQL ifadesi';
+$lang['addUserGroup']          = 'Varolan gruba yeni bir kullanıcı ekleyen SQL ifadesi';
+$lang['delGroup']              = 'Grup silen SQL ifadesi';
+$lang['getUserID']             = 'Kullanıcının birincil anahtarını getiren SQL ifadesi';
+$lang['delUser']               = 'Kullanıcı silen SQL ifadesi';
+$lang['delUserRefs']           = 'Kullanıcıyı tüm gruplardan çıkartan SQL ifadesi';
+$lang['updateUser']            = 'Kullanıcı profilini güncelleyen SQL ifadesi';
+$lang['UpdateLogin']           = 'Kullanıcının giriş yaptığı ismi güncelleyen, güncelleme şartı';
+$lang['UpdatePass']            = 'Kullanıcının  şifresini güncelleyen, güncelleme şartı';
+$lang['UpdateEmail']           = 'Kullanıcının e-posta adresini güncelleyen, güncelleme şartı';
+$lang['UpdateName']            = 'Kullanıcının tam adını güncelleyen, güncelleme şartı';
+$lang['UpdateTarget']          = 'Güncelleme esnasında kullanıcıyı belirleyen, sınır şartı';
+$lang['delUserGroup']          = 'Kullanıcıyı verilen gruptan silen SQL ifadesi';
+$lang['getGroupID']            = 'Verilen grubun birincil anahtarını getiren SQL ifadesi';
+$lang['debug_o_0']             = 'hiçbiri';
+$lang['debug_o_1']             = 'sadece hata olduğunda';
+$lang['debug_o_2']             = 'tüm SQL sorguları';
diff --git a/wiki/lib/plugins/authmysql/lang/uk/lang.php b/wiki/lib/plugins/authmysql/lang/uk/lang.php
new file mode 100644
index 0000000..e6cbaf0
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/uk/lang.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Nina Zolotova <nina-z@i.ua>
+ */
+$lang['connectfail']           = 'Не вдалося з\'єднатися з базою даних.';
+$lang['userexists']            = 'Вибачте, користувач з таким логіном вже існує.';
+$lang['usernotexists']         = 'Вибачте, такого користувача не існує.';
diff --git a/wiki/lib/plugins/authmysql/lang/zh-tw/settings.php b/wiki/lib/plugins/authmysql/lang/zh-tw/settings.php
new file mode 100644
index 0000000..3fbee15
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/zh-tw/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * 
+ * @author syaoranhinata@gmail.com
+ */
+$lang['server']                = '您的 MySQL 伺服器';
+$lang['user']                  = 'MySQL 使用者名稱';
+$lang['password']              = '上述使用者的密碼';
+$lang['database']              = '使用的資料庫';
+$lang['charset']               = '資料庫使用的字符集';
+$lang['debug']                 = '顯示額外除錯資訊';
+$lang['forwardClearPass']      = '以明文形式,把使用者密碼傳送给下列的 SQL 語句,而不使用 passcrypt 密碼加密選項';
+$lang['TablesToLock']          = '在寫操作時需要鎖定的數據表列表,以逗號分隔';
+$lang['checkPass']             = '檢查密碼的 SQL 語句';
+$lang['getUserInfo']           = '獲取使用者訊息的 SQL 語句';
+$lang['getGroups']             = '獲取使用者群組成員身份的 SQL 語句';
+$lang['getUsers']              = '把所有使用者列出的 SQL 語句';
+$lang['FilterLogin']           = '根據登入名稱來篩選使用者的 SQL 子句';
+$lang['FilterName']            = '根據全名來篩選使用者的 SQL 子句';
+$lang['FilterEmail']           = '根據電郵地址來篩選使用者的 SQL 子句';
+$lang['FilterGroup']           = '根據群組成員身份來篩選使用者的 SQL 子句';
+$lang['SortOrder']             = '對使用者排序的 SQL 子句';
+$lang['addUser']               = '增加新使用者的 SQL 語句';
+$lang['addGroup']              = '增加新群組的 SQL 語句';
+$lang['addUserGroup']          = '把使用者新增至現有群組的 SQL 語句';
+$lang['delGroup']              = '把群組刪除的 SQL 語句';
+$lang['getUserID']             = '取得使用者主鍵的 SQL 語句';
+$lang['delUser']               = '把使用者刪除的 SQL 語句';
+$lang['delUserRefs']           = '把使用者從所有群組裏刪除的 SQL 語句';
+$lang['updateUser']            = '更新使用者訊息的 SQL 語句';
+$lang['UpdateLogin']           = '更新使用者登入名稱的 Update 子句';
+$lang['UpdatePass']            = '更新帳號密碼的 Update 子句';
+$lang['UpdateEmail']           = '更新使用者電郵地址的 Update 子句';
+$lang['UpdateName']            = '更新使用者全名的 Update 子句';
+$lang['UpdateTarget']          = '在更新時識別使用者的 Limit 子句';
+$lang['delUserGroup']          = '把使用者從指定群組中刪除的 SQL 語句';
+$lang['getGroupID']            = '取得指定群組主鍵的 SQL 語句';
+$lang['debug_o_0']             = '無';
+$lang['debug_o_1']             = '僅在有錯誤時';
+$lang['debug_o_2']             = '所有 SQL 查詢';
diff --git a/wiki/lib/plugins/authmysql/lang/zh/lang.php b/wiki/lib/plugins/authmysql/lang/zh/lang.php
new file mode 100644
index 0000000..d96b7ba
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/zh/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Errol <errol@hotmail.com>
+ */
+$lang['connectfail']           = '连接数据库失败';
+$lang['userexists']            = '抱歉,用户名已被使用。';
+$lang['usernotexists']         = '抱歉,用户不存在。';
+$lang['writefail']             = '无法修改用户数据。请通知管理员';
diff --git a/wiki/lib/plugins/authmysql/lang/zh/settings.php b/wiki/lib/plugins/authmysql/lang/zh/settings.php
new file mode 100644
index 0000000..26ecc6b
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/lang/zh/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author lainme <lainme993@gmail.com>
+ */
+$lang['server']                = '您的 MySQL 服务器';
+$lang['user']                  = 'MySQL 用户名';
+$lang['password']              = '上述用户的密码';
+$lang['database']              = '使用的数据库';
+$lang['charset']               = '数据库中使用的字符集';
+$lang['debug']                 = '显示额外调试信息';
+$lang['forwardClearPass']      = '将用户密码以明文形式传送给下面的 SQL 语句,而不使用 passcrypt 密码加密选项';
+$lang['TablesToLock']          = '在写操作时需要锁定的数据表列表,以逗号分隔';
+$lang['checkPass']             = '检查密码的 SQL 语句';
+$lang['getUserInfo']           = '获取用户信息的 SQL 语句';
+$lang['getGroups']             = '或许用户的组成员身份的 SQL 语句';
+$lang['getUsers']              = '列出所有用户的 SQL 语句';
+$lang['FilterLogin']           = '根据登录名筛选用户的 SQL 子句';
+$lang['FilterName']            = '根据全名筛选用户的 SQL 子句';
+$lang['FilterEmail']           = '根据电子邮件地址筛选用户的 SQL 子句';
+$lang['FilterGroup']           = '根据组成员身份筛选用户的 SQL 子句';
+$lang['SortOrder']             = '对用户排序的 SQL 子句';
+$lang['addUser']               = '添加新用户的 SQL 语句';
+$lang['addGroup']              = '添加新组的 SQL 语句';
+$lang['addUserGroup']          = '将用户添加到现有组的 SQL 语句';
+$lang['delGroup']              = '删除组的 SQL 语句';
+$lang['getUserID']             = '获取用户主键的 SQL 语句';
+$lang['delUser']               = '删除用户的 SQL 语句';
+$lang['delUserRefs']           = '从所有组中删除一个用户的 SQL 语句';
+$lang['updateUser']            = '更新用户信息的 SQL 语句';
+$lang['UpdateLogin']           = '更新用户登录名的 Update 子句';
+$lang['UpdatePass']            = '更新用户密码的 Update 子句';
+$lang['UpdateEmail']           = '更新用户电子邮件地址的 Update 子句';
+$lang['UpdateName']            = '更新用户全名的 Update 子句';
+$lang['UpdateTarget']          = '更新时识别用户的 Limit 子句';
+$lang['delUserGroup']          = '从指定组删除用户的 SQL 语句';
+$lang['getGroupID']            = '获取指定组主键的 SQL 语句';
+$lang['debug_o_0']             = '无';
+$lang['debug_o_1']             = '仅在有错误时';
+$lang['debug_o_2']             = '所有 SQL 查询';
diff --git a/wiki/lib/plugins/authmysql/plugin.info.txt b/wiki/lib/plugins/authmysql/plugin.info.txt
new file mode 100644
index 0000000..5f8493d
--- /dev/null
+++ b/wiki/lib/plugins/authmysql/plugin.info.txt
@@ -0,0 +1,7 @@
+base   authmysql
+author Andreas Gohr
+email  andi@splitbrain.org
+date   2015-07-13
+name   [DEPRECATED] MYSQL Auth Plugin
+desc   ▶This plugin will be removed from DokuWiki in a future release! Use authpdo instead.◀ Provides user authentication against a MySQL database
+url    http://www.dokuwiki.org/plugin:authmysql