summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2015-05-07 09:42:30 +0200
committerAndreas Gohr <andi@splitbrain.org>2015-05-07 09:42:30 +0200
commitaf865bf3762dff1ddfeb3bd15be46b605499a58b (patch)
treed5635fb24073ca01b733a66f29ae8f836ce51d1f /lib
parent15e0e2356bfd266851932e1cde1287da7c5e201a (diff)
parente6c4392f11bb5a668be8e874560af910b71d72f8 (diff)
downloadrpg-af865bf3762dff1ddfeb3bd15be46b605499a58b.tar.gz
rpg-af865bf3762dff1ddfeb3bd15be46b605499a58b.tar.bz2
Merge pull request #1134 from ptbrown/auth-error-reporting
Refactor error messages from auth plugins.
Diffstat (limited to 'lib')
-rw-r--r--lib/plugins/auth.php2
-rw-r--r--lib/plugins/authad/auth.php8
-rw-r--r--lib/plugins/authad/lang/en/lang.php6
-rw-r--r--lib/plugins/authldap/auth.php8
-rw-r--r--lib/plugins/authldap/lang/en/lang.php11
-rw-r--r--lib/plugins/authmysql/auth.php19
-rw-r--r--lib/plugins/authmysql/lang/en/lang.php13
-rw-r--r--lib/plugins/authplain/auth.php33
-rw-r--r--lib/plugins/authplain/lang/af/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ar/lang.php6
-rw-r--r--lib/plugins/authplain/lang/az/lang.php6
-rw-r--r--lib/plugins/authplain/lang/bg/lang.php6
-rw-r--r--lib/plugins/authplain/lang/bn/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ca-valencia/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ca/lang.php6
-rw-r--r--lib/plugins/authplain/lang/cs/lang.php6
-rw-r--r--lib/plugins/authplain/lang/da/lang.php6
-rw-r--r--lib/plugins/authplain/lang/de-informal/lang.php6
-rw-r--r--lib/plugins/authplain/lang/de/lang.php6
-rw-r--r--lib/plugins/authplain/lang/el/lang.php6
-rw-r--r--lib/plugins/authplain/lang/en/lang.php8
-rw-r--r--lib/plugins/authplain/lang/eo/lang.php6
-rw-r--r--lib/plugins/authplain/lang/es/lang.php6
-rw-r--r--lib/plugins/authplain/lang/et/lang.php6
-rw-r--r--lib/plugins/authplain/lang/eu/lang.php6
-rw-r--r--lib/plugins/authplain/lang/fa/lang.php6
-rw-r--r--lib/plugins/authplain/lang/fi/lang.php6
-rw-r--r--lib/plugins/authplain/lang/fo/lang.php6
-rw-r--r--lib/plugins/authplain/lang/fr/lang.php6
-rw-r--r--lib/plugins/authplain/lang/gl/lang.php6
-rw-r--r--lib/plugins/authplain/lang/he/lang.php6
-rw-r--r--lib/plugins/authplain/lang/hr/lang.php6
-rw-r--r--lib/plugins/authplain/lang/hu/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ia/lang.php6
-rw-r--r--lib/plugins/authplain/lang/id-ni/lang.php6
-rw-r--r--lib/plugins/authplain/lang/id/lang.php6
-rw-r--r--lib/plugins/authplain/lang/is/lang.php6
-rw-r--r--lib/plugins/authplain/lang/it/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ja/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ka/lang.php6
-rw-r--r--lib/plugins/authplain/lang/kk/lang.php6
-rw-r--r--lib/plugins/authplain/lang/km/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ko/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ku/lang.php6
-rw-r--r--lib/plugins/authplain/lang/la/lang.php6
-rw-r--r--lib/plugins/authplain/lang/lb/lang.php6
-rw-r--r--lib/plugins/authplain/lang/lt/lang.php6
-rw-r--r--lib/plugins/authplain/lang/lv/lang.php6
-rw-r--r--lib/plugins/authplain/lang/mg/lang.php6
-rw-r--r--lib/plugins/authplain/lang/mk/lang.php6
-rw-r--r--lib/plugins/authplain/lang/mr/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ms/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ne/lang.php6
-rw-r--r--lib/plugins/authplain/lang/nl/lang.php6
-rw-r--r--lib/plugins/authplain/lang/no/lang.php6
-rw-r--r--lib/plugins/authplain/lang/pl/lang.php6
-rw-r--r--lib/plugins/authplain/lang/pt-br/lang.php6
-rw-r--r--lib/plugins/authplain/lang/pt/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ro/lang.php6
-rw-r--r--lib/plugins/authplain/lang/ru/lang.php6
-rw-r--r--lib/plugins/authplain/lang/sk/lang.php6
-rw-r--r--lib/plugins/authplain/lang/sl/lang.php6
-rw-r--r--lib/plugins/authplain/lang/sq/lang.php6
-rw-r--r--lib/plugins/authplain/lang/sr/lang.php6
-rw-r--r--lib/plugins/authplain/lang/sv/lang.php6
-rw-r--r--lib/plugins/authplain/lang/th/lang.php6
-rw-r--r--lib/plugins/authplain/lang/tr/lang.php6
-rw-r--r--lib/plugins/authplain/lang/uk/lang.php6
-rw-r--r--lib/plugins/authplain/lang/vi/lang.php6
-rw-r--r--lib/plugins/authplain/lang/zh-tw/lang.php6
-rw-r--r--lib/plugins/authplain/lang/zh/lang.php6
71 files changed, 456 insertions, 24 deletions
diff --git a/lib/plugins/auth.php b/lib/plugins/auth.php
index 4799b3a38..036cb0d77 100644
--- a/lib/plugins/auth.php
+++ b/lib/plugins/auth.php
@@ -295,7 +295,7 @@ class DokuWiki_Auth_Plugin extends DokuWiki_Plugin {
*/
public function deleteUsers($users) {
msg("authorisation method does not allow deleting of users", -1);
- return false;
+ return 0;
}
/**
diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php
index 40c56ef09..60c68efc4 100644
--- a/lib/plugins/authad/auth.php
+++ b/lib/plugins/authad/auth.php
@@ -522,7 +522,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin {
public function modifyUser($user, $changes) {
$return = true;
$adldap = $this->_adldap($this->_userDomain($user));
- if(!$adldap) return false;
+ if(!$adldap) {
+ msg($this->getLang('connectfail'), -1);
+ return false;
+ }
// password changing
if(isset($changes['pass'])) {
@@ -532,7 +535,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin {
if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1);
$return = false;
}
- if(!$return) msg('AD Auth: failed to change the password. Maybe the password policy was not met?', -1);
+ if(!$return) msg($this->getLang('passchangefail'), -1);
}
// changing user data
@@ -554,6 +557,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin {
if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1);
$return = false;
}
+ if(!$return) msg($this->getLang('userchangefail'), -1);
}
return $return;
diff --git a/lib/plugins/authad/lang/en/lang.php b/lib/plugins/authad/lang/en/lang.php
index 4f96a71fd..751aa9f47 100644
--- a/lib/plugins/authad/lang/en/lang.php
+++ b/lib/plugins/authad/lang/en/lang.php
@@ -6,7 +6,9 @@
* @author Andreas Gohr <gohr@cosmocode.de>
*/
-$lang['domain'] = 'Logon Domain';
-$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.';
+$lang['domain'] = 'Logon Domain';
+$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.';
+$lang['passchangefail'] = 'Failed to change the password. Maybe the password policy was not met?';
+$lang['connectfail'] = 'Failed to connect to Active Directory server.';
//Setup VIM: ex: et ts=4 :
diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php
index 9d031c049..247a0fec2 100644
--- a/lib/plugins/authldap/auth.php
+++ b/lib/plugins/authldap/auth.php
@@ -281,14 +281,14 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
// open the connection to the ldap
if(!$this->_openLDAP()){
- msg('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con)));
+ $this->_debug('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
return false;
}
// find the information about the user, in particular the "dn"
$info = $this->getUserData($user,true);
if(empty($info['dn'])) {
- msg('LDAP cannot find your user dn');
+ $this->_debug('LDAP cannot find your user dn', 0, __LINE__, __FILE__);
return false;
}
$dn = $info['dn'];
@@ -301,7 +301,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
// bind with the ldap
if(!@ldap_bind($this->con, $dn, $pass)){
- msg('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
+ $this->_debug('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
return false;
}
} elseif ($this->getConf('binddn') && $this->getConf('bindpw')) {
@@ -322,7 +322,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
// change the password
if(!@ldap_mod_replace($this->con, $dn,array('userpassword' => $hash))){
- msg('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)));
+ $this->_debug('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
return false;
}
diff --git a/lib/plugins/authldap/lang/en/lang.php b/lib/plugins/authldap/lang/en/lang.php
new file mode 100644
index 000000000..8185a84fa
--- /dev/null
+++ b/lib/plugins/authldap/lang/en/lang.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * English language file for authldap plugin
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+
+$lang['connectfail'] = 'LDAP cannot connect: %s';
+$lang['domainfail'] = 'LDAP cannot find your user dn';
+
+//Setup VIM: ex: et ts=4 :
diff --git a/lib/plugins/authmysql/auth.php b/lib/plugins/authmysql/auth.php
index 0d423b6c9..1b7d0bfa4 100644
--- a/lib/plugins/authmysql/auth.php
+++ b/lib/plugins/authmysql/auth.php
@@ -222,6 +222,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
if($this->_openDB()) {
if(($info = $this->_getUserInfo($user)) !== false) {
+ msg($this->getLang('userexists'), -1);
return false; // user already exists
}
@@ -235,7 +236,13 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$rc = $this->_addUser($user, $pwd, $name, $mail, $grps);
$this->_unlockTables();
$this->_closeDB();
- if($rc) return true;
+ if(!$rc) {
+ msg($this->getLang('writefail'));
+ return null;
+ }
+ return true;
+ } else {
+ msg($this->getLang('connectfail'), -1);
}
return null; // return error
}
@@ -279,7 +286,9 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$rc = $this->_updateUserInfo($user, $changes);
- if($rc && isset($changes['grps']) && $this->cando['modGroups']) {
+ 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']);
@@ -295,10 +304,14 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$rc = false;
}
}
+
+ if(!$rc) msg($this->getLang('writefail'));
}
$this->_unlockTables();
$this->_closeDB();
+ } else {
+ msg($this->getLang('connectfail'), -1);
}
return $rc;
}
@@ -328,6 +341,8 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$this->_unlockTables();
}
$this->_closeDB();
+ } else {
+ msg($this->getLang('connectfail'), -1);
}
return $count;
}
diff --git a/lib/plugins/authmysql/lang/en/lang.php b/lib/plugins/authmysql/lang/en/lang.php
new file mode 100644
index 000000000..8313616c6
--- /dev/null
+++ b/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/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php
index b31c02fc8..bd46c61a7 100644
--- a/lib/plugins/authplain/auth.php
+++ b/lib/plugins/authplain/auth.php
@@ -134,7 +134,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
global $config_cascade;
// user mustn't already exist
- if($this->getUserData($user) !== false) return false;
+ if($this->getUserData($user) !== false) {
+ msg($this->getLang('userexists'), -1);
+ return false;
+ }
$pass = auth_cryptPassword($pwd);
@@ -144,16 +147,13 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
// prepare user line
$userline = $this->_createUserLine($user, $pass, $name, $mail, $grps);
- if(io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) {
- $this->users[$user] = compact('pass', 'name', 'mail', 'grps');
- return $pwd;
+ if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) {
+ msg($this->getLang('writefail'), -1);
+ return null;
}
- msg(
- 'The '.$config_cascade['plainauth.users']['default'].
- ' file is not writable. Please inform the Wiki-Admin', -1
- );
- return null;
+ $this->users[$user] = compact('pass', 'name', 'mail', 'grps');
+ return $pwd;
}
/**
@@ -169,7 +169,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
global $config_cascade;
// sanity checks, user must already exist and there must be something to change
- if(($userinfo = $this->getUserData($user)) === false) return false;
+ if(($userinfo = $this->getUserData($user)) === false) {
+ msg($this->getLang('usernotexists'), -1);
+ return false;
+ }
if(!is_array($changes) || !count($changes)) return true;
// update userinfo with new data, remembering to encrypt any password
@@ -186,13 +189,14 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
$userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']);
if(!$this->deleteUsers(array($user))) {
- msg('Unable to modify user data. Please inform the Wiki-Admin', -1);
+ msg($this->getLang('writefail'), -1);
return false;
}
if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) {
msg('There was an error modifying your user data. You should register again.', -1);
// FIXME, user has been deleted but not recreated, should force a logout and redirect to login page
+ // Should replace the delete/save hybrid modify with an atomic io_replaceInFile
$ACT = 'register';
return false;
}
@@ -223,7 +227,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
if(empty($deleted)) return 0;
$pattern = '/^('.join('|', $deleted).'):/';
- io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true);
+ if (!io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true)) {
+ msg($this->getLang('writefail'), -1);
+ return 0;
+ }
// reload the user list and count the difference
$count = count($this->users);
@@ -407,4 +414,4 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
$this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters
}
}
-} \ No newline at end of file
+}
diff --git a/lib/plugins/authplain/lang/af/lang.php b/lib/plugins/authplain/lang/af/lang.php
new file mode 100644
index 000000000..29742cfd2
--- /dev/null
+++ b/lib/plugins/authplain/lang/af/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief \'n ander gebruikersnaam.';
diff --git a/lib/plugins/authplain/lang/ar/lang.php b/lib/plugins/authplain/lang/ar/lang.php
new file mode 100644
index 000000000..16d59f397
--- /dev/null
+++ b/lib/plugins/authplain/lang/ar/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'عذرا، يوجد مشترك بنفس الاسم.';
diff --git a/lib/plugins/authplain/lang/az/lang.php b/lib/plugins/authplain/lang/az/lang.php
new file mode 100644
index 000000000..f98eccde1
--- /dev/null
+++ b/lib/plugins/authplain/lang/az/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.';
diff --git a/lib/plugins/authplain/lang/bg/lang.php b/lib/plugins/authplain/lang/bg/lang.php
new file mode 100644
index 000000000..5b8e6bc37
--- /dev/null
+++ b/lib/plugins/authplain/lang/bg/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Вече съществува потребител с избраното име.';
diff --git a/lib/plugins/authplain/lang/bn/lang.php b/lib/plugins/authplain/lang/bn/lang.php
new file mode 100644
index 000000000..43fe4ca6e
--- /dev/null
+++ b/lib/plugins/authplain/lang/bn/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'দুঃখিত, এই লগইন সঙ্গে একটি ব্যবহারকারী ইতিমধ্যেই বিদ্যমান.';
diff --git a/lib/plugins/authplain/lang/ca-valencia/lang.php b/lib/plugins/authplain/lang/ca-valencia/lang.php
new file mode 100644
index 000000000..3e973beae
--- /dev/null
+++ b/lib/plugins/authplain/lang/ca-valencia/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Disculpe, pero ya existix un usuari en este nom.';
diff --git a/lib/plugins/authplain/lang/ca/lang.php b/lib/plugins/authplain/lang/ca/lang.php
new file mode 100644
index 000000000..5a675639d
--- /dev/null
+++ b/lib/plugins/authplain/lang/ca/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Ja existeix un altre usuari amb aquest nom.';
diff --git a/lib/plugins/authplain/lang/cs/lang.php b/lib/plugins/authplain/lang/cs/lang.php
new file mode 100644
index 000000000..8128d45a3
--- /dev/null
+++ b/lib/plugins/authplain/lang/cs/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Uživatel se stejným jménem už je zaregistrován.';
diff --git a/lib/plugins/authplain/lang/da/lang.php b/lib/plugins/authplain/lang/da/lang.php
new file mode 100644
index 000000000..c7dd376c1
--- /dev/null
+++ b/lib/plugins/authplain/lang/da/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Dette brugernavn er allerede i brug.';
diff --git a/lib/plugins/authplain/lang/de-informal/lang.php b/lib/plugins/authplain/lang/de-informal/lang.php
new file mode 100644
index 000000000..f1d484947
--- /dev/null
+++ b/lib/plugins/authplain/lang/de-informal/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Der Benutzername existiert leider schon.';
diff --git a/lib/plugins/authplain/lang/de/lang.php b/lib/plugins/authplain/lang/de/lang.php
new file mode 100644
index 000000000..f1d484947
--- /dev/null
+++ b/lib/plugins/authplain/lang/de/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Der Benutzername existiert leider schon.';
diff --git a/lib/plugins/authplain/lang/el/lang.php b/lib/plugins/authplain/lang/el/lang.php
new file mode 100644
index 000000000..7f7e4e76d
--- /dev/null
+++ b/lib/plugins/authplain/lang/el/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Αυτός ο λογαριασμός υπάρχει ήδη.';
diff --git a/lib/plugins/authplain/lang/en/lang.php b/lib/plugins/authplain/lang/en/lang.php
new file mode 100644
index 000000000..6f8abfdb6
--- /dev/null
+++ b/lib/plugins/authplain/lang/en/lang.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$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';
diff --git a/lib/plugins/authplain/lang/eo/lang.php b/lib/plugins/authplain/lang/eo/lang.php
new file mode 100644
index 000000000..ab7655e81
--- /dev/null
+++ b/lib/plugins/authplain/lang/eo/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Pardonu, ĉi tiu uzanto-nomo jam ekzistas.';
diff --git a/lib/plugins/authplain/lang/es/lang.php b/lib/plugins/authplain/lang/es/lang.php
new file mode 100644
index 000000000..8f03e79cb
--- /dev/null
+++ b/lib/plugins/authplain/lang/es/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Lo siento, ya existe un usuario con este nombre.';
diff --git a/lib/plugins/authplain/lang/et/lang.php b/lib/plugins/authplain/lang/et/lang.php
new file mode 100644
index 000000000..7f9f7771b
--- /dev/null
+++ b/lib/plugins/authplain/lang/et/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Tegelikult on sellise nimega kasutaja juba olemas.';
diff --git a/lib/plugins/authplain/lang/eu/lang.php b/lib/plugins/authplain/lang/eu/lang.php
new file mode 100644
index 000000000..09ca4d3b7
--- /dev/null
+++ b/lib/plugins/authplain/lang/eu/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Barkatu, izen bereko erabiltzailea existitzen da.';
diff --git a/lib/plugins/authplain/lang/fa/lang.php b/lib/plugins/authplain/lang/fa/lang.php
new file mode 100644
index 000000000..49083ad60
--- /dev/null
+++ b/lib/plugins/authplain/lang/fa/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'نام کاربری‌ای که وارد کردید قبلن استفاده شده است. خواهشمندیم یک نام دیگر انتخاب کنید.';
diff --git a/lib/plugins/authplain/lang/fi/lang.php b/lib/plugins/authplain/lang/fi/lang.php
new file mode 100644
index 000000000..3a77f3e3a
--- /dev/null
+++ b/lib/plugins/authplain/lang/fi/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.';
diff --git a/lib/plugins/authplain/lang/fo/lang.php b/lib/plugins/authplain/lang/fo/lang.php
new file mode 100644
index 000000000..a9654664b
--- /dev/null
+++ b/lib/plugins/authplain/lang/fo/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Hetta brúkaranavn er upptiki.';
diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php
new file mode 100644
index 000000000..9316836e4
--- /dev/null
+++ b/lib/plugins/authplain/lang/fr/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.';
diff --git a/lib/plugins/authplain/lang/gl/lang.php b/lib/plugins/authplain/lang/gl/lang.php
new file mode 100644
index 000000000..35138d378
--- /dev/null
+++ b/lib/plugins/authplain/lang/gl/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Sentímolo, mais xa existe un usuario con ese nome.';
diff --git a/lib/plugins/authplain/lang/he/lang.php b/lib/plugins/authplain/lang/he/lang.php
new file mode 100644
index 000000000..01d877b62
--- /dev/null
+++ b/lib/plugins/authplain/lang/he/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'משתמש בשם זה כבר נרשם, עמך הסליחה.';
diff --git a/lib/plugins/authplain/lang/hr/lang.php b/lib/plugins/authplain/lang/hr/lang.php
new file mode 100644
index 000000000..ffcbf5f61
--- /dev/null
+++ b/lib/plugins/authplain/lang/hr/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Korisnik s tim korisničkim imenom već postoji.';
diff --git a/lib/plugins/authplain/lang/hu/lang.php b/lib/plugins/authplain/lang/hu/lang.php
new file mode 100644
index 000000000..6de5db772
--- /dev/null
+++ b/lib/plugins/authplain/lang/hu/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Sajnáljuk, ilyen azonosítójú felhasználónk már van.';
diff --git a/lib/plugins/authplain/lang/ia/lang.php b/lib/plugins/authplain/lang/ia/lang.php
new file mode 100644
index 000000000..7596f3f4c
--- /dev/null
+++ b/lib/plugins/authplain/lang/ia/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Regrettabilemente, un usator con iste nomine ja existe.';
diff --git a/lib/plugins/authplain/lang/id-ni/lang.php b/lib/plugins/authplain/lang/id-ni/lang.php
new file mode 100644
index 000000000..729c9f9dc
--- /dev/null
+++ b/lib/plugins/authplain/lang/id-ni/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Bologö dödöu, no so zangoguna\'ö töi da\'a.';
diff --git a/lib/plugins/authplain/lang/id/lang.php b/lib/plugins/authplain/lang/id/lang.php
new file mode 100644
index 000000000..5e6a99830
--- /dev/null
+++ b/lib/plugins/authplain/lang/id/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Maaf, user dengan user login ini telah ada.';
diff --git a/lib/plugins/authplain/lang/is/lang.php b/lib/plugins/authplain/lang/is/lang.php
new file mode 100644
index 000000000..21392ee5e
--- /dev/null
+++ b/lib/plugins/authplain/lang/is/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Afsakið, notandi með þessu nafni er þegar skráður inn.';
diff --git a/lib/plugins/authplain/lang/it/lang.php b/lib/plugins/authplain/lang/it/lang.php
new file mode 100644
index 000000000..716041ffb
--- /dev/null
+++ b/lib/plugins/authplain/lang/it/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Il nome utente inserito esiste già.';
diff --git a/lib/plugins/authplain/lang/ja/lang.php b/lib/plugins/authplain/lang/ja/lang.php
new file mode 100644
index 000000000..aad08a8bd
--- /dev/null
+++ b/lib/plugins/authplain/lang/ja/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'このユーザー名は既に存在しています。';
diff --git a/lib/plugins/authplain/lang/ka/lang.php b/lib/plugins/authplain/lang/ka/lang.php
new file mode 100644
index 000000000..8983791c9
--- /dev/null
+++ b/lib/plugins/authplain/lang/ka/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'მსგავსი ლოგინი უკვე არსებობს';
diff --git a/lib/plugins/authplain/lang/kk/lang.php b/lib/plugins/authplain/lang/kk/lang.php
new file mode 100644
index 000000000..95fe53204
--- /dev/null
+++ b/lib/plugins/authplain/lang/kk/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Кешіріңіз, бұл түпнұскамен де пайдаланушы бар.';
diff --git a/lib/plugins/authplain/lang/km/lang.php b/lib/plugins/authplain/lang/km/lang.php
new file mode 100644
index 000000000..322e454e5
--- /dev/null
+++ b/lib/plugins/authplain/lang/km/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'សុំអាទោស​ នាមប្រើនេះមានរួចហើ។';
diff --git a/lib/plugins/authplain/lang/ko/lang.php b/lib/plugins/authplain/lang/ko/lang.php
new file mode 100644
index 000000000..de5a7c02f
--- /dev/null
+++ b/lib/plugins/authplain/lang/ko/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.';
diff --git a/lib/plugins/authplain/lang/ku/lang.php b/lib/plugins/authplain/lang/ku/lang.php
new file mode 100644
index 000000000..64cb834f3
--- /dev/null
+++ b/lib/plugins/authplain/lang/ku/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Sorry, a user with this login already exists.';
diff --git a/lib/plugins/authplain/lang/la/lang.php b/lib/plugins/authplain/lang/la/lang.php
new file mode 100644
index 000000000..5f2eecfd8
--- /dev/null
+++ b/lib/plugins/authplain/lang/la/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Nomen Sodalis ab aliquo iam elegitur.';
diff --git a/lib/plugins/authplain/lang/lb/lang.php b/lib/plugins/authplain/lang/lb/lang.php
new file mode 100644
index 000000000..4c760dfe4
--- /dev/null
+++ b/lib/plugins/authplain/lang/lb/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Et get schonn e Benotzer mat deem Numm.';
diff --git a/lib/plugins/authplain/lang/lt/lang.php b/lib/plugins/authplain/lang/lt/lang.php
new file mode 100644
index 000000000..5ad435a04
--- /dev/null
+++ b/lib/plugins/authplain/lang/lt/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Vartotojas su pasirinktu prisijungimo vardu jau egzistuoja.';
diff --git a/lib/plugins/authplain/lang/lv/lang.php b/lib/plugins/authplain/lang/lv/lang.php
new file mode 100644
index 000000000..3a9d4d3e5
--- /dev/null
+++ b/lib/plugins/authplain/lang/lv/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Atvaino, tāds lietotājs jau ir.';
diff --git a/lib/plugins/authplain/lang/mg/lang.php b/lib/plugins/authplain/lang/mg/lang.php
new file mode 100644
index 000000000..8472161b7
--- /dev/null
+++ b/lib/plugins/authplain/lang/mg/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Indrisy fa efa nisy namandrika io anarana io.';
diff --git a/lib/plugins/authplain/lang/mk/lang.php b/lib/plugins/authplain/lang/mk/lang.php
new file mode 100644
index 000000000..8ebb9fab8
--- /dev/null
+++ b/lib/plugins/authplain/lang/mk/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Жалам, корисник со ова корисничко име веќе постои.';
diff --git a/lib/plugins/authplain/lang/mr/lang.php b/lib/plugins/authplain/lang/mr/lang.php
new file mode 100644
index 000000000..15dcf18a0
--- /dev/null
+++ b/lib/plugins/authplain/lang/mr/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'या नावाने सदस्याची नोंदणी झालेली आहे, कृपया दुसरे सदस्य नाव निवडा.';
diff --git a/lib/plugins/authplain/lang/ms/lang.php b/lib/plugins/authplain/lang/ms/lang.php
new file mode 100644
index 000000000..14c3b11af
--- /dev/null
+++ b/lib/plugins/authplain/lang/ms/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Maaf, nama pengguna yang dimasukkan telah diguna. Sila pilih nama yang lain.';
diff --git a/lib/plugins/authplain/lang/ne/lang.php b/lib/plugins/authplain/lang/ne/lang.php
new file mode 100644
index 000000000..942757855
--- /dev/null
+++ b/lib/plugins/authplain/lang/ne/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'यो नामको प्रयोगकर्ता पहिले देखि रहेको छ।';
diff --git a/lib/plugins/authplain/lang/nl/lang.php b/lib/plugins/authplain/lang/nl/lang.php
new file mode 100644
index 000000000..1a5397234
--- /dev/null
+++ b/lib/plugins/authplain/lang/nl/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Er bestaat al een gebruiker met deze loginnaam.';
diff --git a/lib/plugins/authplain/lang/no/lang.php b/lib/plugins/authplain/lang/no/lang.php
new file mode 100644
index 000000000..981881369
--- /dev/null
+++ b/lib/plugins/authplain/lang/no/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Det finnes allerede en konto med dette brukernavnet.';
diff --git a/lib/plugins/authplain/lang/pl/lang.php b/lib/plugins/authplain/lang/pl/lang.php
new file mode 100644
index 000000000..9a61b0047
--- /dev/null
+++ b/lib/plugins/authplain/lang/pl/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Użytkownik o tej nazwie już istnieje.';
diff --git a/lib/plugins/authplain/lang/pt-br/lang.php b/lib/plugins/authplain/lang/pt-br/lang.php
new file mode 100644
index 000000000..3a9b67218
--- /dev/null
+++ b/lib/plugins/authplain/lang/pt-br/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Desculpe, mas já existe um usuário com esse nome.';
diff --git a/lib/plugins/authplain/lang/pt/lang.php b/lib/plugins/authplain/lang/pt/lang.php
new file mode 100644
index 000000000..c49649d4e
--- /dev/null
+++ b/lib/plugins/authplain/lang/pt/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.';
diff --git a/lib/plugins/authplain/lang/ro/lang.php b/lib/plugins/authplain/lang/ro/lang.php
new file mode 100644
index 000000000..eb243a12f
--- /dev/null
+++ b/lib/plugins/authplain/lang/ro/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.';
diff --git a/lib/plugins/authplain/lang/ru/lang.php b/lib/plugins/authplain/lang/ru/lang.php
new file mode 100644
index 000000000..8a40852d6
--- /dev/null
+++ b/lib/plugins/authplain/lang/ru/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Извините, пользователь с таким логином уже существует.';
diff --git a/lib/plugins/authplain/lang/sk/lang.php b/lib/plugins/authplain/lang/sk/lang.php
new file mode 100644
index 000000000..5153fc1c9
--- /dev/null
+++ b/lib/plugins/authplain/lang/sk/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Užívateľ s rovnakým menom je už zaregistrovaný.';
diff --git a/lib/plugins/authplain/lang/sl/lang.php b/lib/plugins/authplain/lang/sl/lang.php
new file mode 100644
index 000000000..d4ee30fda
--- /dev/null
+++ b/lib/plugins/authplain/lang/sl/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Uporabnik s tem imenom že obstaja.';
diff --git a/lib/plugins/authplain/lang/sq/lang.php b/lib/plugins/authplain/lang/sq/lang.php
new file mode 100644
index 000000000..e3a93502f
--- /dev/null
+++ b/lib/plugins/authplain/lang/sq/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.';
diff --git a/lib/plugins/authplain/lang/sr/lang.php b/lib/plugins/authplain/lang/sr/lang.php
new file mode 100644
index 000000000..2d85ca42a
--- /dev/null
+++ b/lib/plugins/authplain/lang/sr/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Извините, корисник са истим именом већ постоји.';
diff --git a/lib/plugins/authplain/lang/sv/lang.php b/lib/plugins/authplain/lang/sv/lang.php
new file mode 100644
index 000000000..fb80df956
--- /dev/null
+++ b/lib/plugins/authplain/lang/sv/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Det finns redan en användare med det användarnamnet.';
diff --git a/lib/plugins/authplain/lang/th/lang.php b/lib/plugins/authplain/lang/th/lang.php
new file mode 100644
index 000000000..c7aaf68dd
--- /dev/null
+++ b/lib/plugins/authplain/lang/th/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'ชื่อบัญชีที่ใส่นั้นมีผู้อื่นได้ใช้แล้ว กรุณาเลือกชื่อผู้ใช้อื่น';
diff --git a/lib/plugins/authplain/lang/tr/lang.php b/lib/plugins/authplain/lang/tr/lang.php
new file mode 100644
index 000000000..d7064e8bf
--- /dev/null
+++ b/lib/plugins/authplain/lang/tr/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Üzgünüz, bu isime sahip bir kullanıcı zaten mevcut.';
diff --git a/lib/plugins/authplain/lang/uk/lang.php b/lib/plugins/authplain/lang/uk/lang.php
new file mode 100644
index 000000000..d8f0a32b2
--- /dev/null
+++ b/lib/plugins/authplain/lang/uk/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Користувач з таким іменем вже існує.';
diff --git a/lib/plugins/authplain/lang/vi/lang.php b/lib/plugins/authplain/lang/vi/lang.php
new file mode 100644
index 000000000..7ecb0a27c
--- /dev/null
+++ b/lib/plugins/authplain/lang/vi/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = 'Bạn khác đã dùng username này rồi.';
diff --git a/lib/plugins/authplain/lang/zh-tw/lang.php b/lib/plugins/authplain/lang/zh-tw/lang.php
new file mode 100644
index 000000000..8a5d290e5
--- /dev/null
+++ b/lib/plugins/authplain/lang/zh-tw/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = '很抱歉,有人已使用了這個帳號。';
diff --git a/lib/plugins/authplain/lang/zh/lang.php b/lib/plugins/authplain/lang/zh/lang.php
new file mode 100644
index 000000000..03542fe72
--- /dev/null
+++ b/lib/plugins/authplain/lang/zh/lang.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ */
+$lang['userexists'] = '对不起,该用户名已经存在。';