tazpanel diff lib/user.js @ rev 293
user.js is translateable; translated to ru
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Thu Apr 12 01:42:49 2012 +0300 (2012-04-12) |
parents | 6f39fe45dc31 |
children | 972b3169b3e4 |
line diff
1.1 --- a/lib/user.js Thu Mar 08 10:31:58 2012 +0100 1.2 +++ b/lib/user.js Thu Apr 12 01:42:49 2012 +0300 1.3 @@ -4,41 +4,75 @@ 1.4 */ 1.5 1.6 //// 1.7 +// i18n for this javascript 1.8 + 1.9 +function i18n(text){ 1.10 + var lang = document.getElementsByTagName("html")[0].getAttribute("lang"); 1.11 + var orig = ["Too short!", "Too long!", "Invalid chars!", "(No Password!)", "(Strong)", "(Medium!)", "(Weak!)", "Do Not Match!"]; 1.12 + var translate = ["es", "fr", "pt", "ru"]; 1.13 + translate['ru'] = ["Слишком короткий!", "Слишком длинный!", "Недопустимые символы!", "(Нет пароля!)", "(Сильный)", "(Средний!)", "(Слабый!)", "Не совпадает!"]; 1.14 + translate['fr'] = [ ]; 1.15 + 1.16 + var output = text; 1.17 + for (var i=0; i<orig.length; i++) { 1.18 + if (translate[lang] !== undefined && orig[i] == text) { 1.19 + var transTry = translate[lang][i]; 1.20 + if (transTry !== undefined && transTry !== '') { 1.21 + var output = transTry; 1.22 + } 1.23 + break 1.24 + } 1.25 + } 1.26 + return(output); 1.27 +} 1.28 + 1.29 +//// 1.30 // Login validation - typical use: 1.31 // <input id="login1" onkeyup="checkLogin('login1','msg1'); return false;" /> 1.32 // <span id="msg1"></span> 1.33 1.34 function checkLogin(user,message){ 1.35 var login = document.getElementById(user); 1.36 - var msg = document.getElementById(message); 1.37 + var msg = document.getElementById(message); 1.38 var enoughRegex = new RegExp("(?=.{3,}).*", "g"); 1.39 var incharRegex = new RegExp("^[A-Za-z0-9_-]{3,32}$"); 1.40 - if (false == enoughRegex.test(login.value)) { 1.41 - msg.innerHTML ="<span class=\"msg-nok\">✖ Too short</span>"; 1.42 + // html fragments 1.43 + var nok='<span class="msg-nok">✖ '; 1.44 + var s='</span>'; 1.45 + 1.46 + if (login.value == '') { 1.47 + msg.innerHTML = ''; 1.48 + } else if (false == enoughRegex.test(login.value)) { 1.49 + msg.innerHTML = nok + i18n('Too short!') + s; 1.50 return false; 1.51 - } else if (login.value > 32) { 1.52 - msg.innerHTML ="<span class=\"msg-nok\">✖ Too long</span>"; 1.53 + } else if (login.value.length > 32) { 1.54 + msg.innerHTML = nok + i18n('Too long!') + s; 1.55 return false; 1.56 } else if (false == incharRegex.test(login.value)) { 1.57 - msg.innerHTML ="<span class=\"msg-nok\">✖ Invalid chars</span>"; 1.58 - return false; 1.59 + msg.innerHTML = nok + i18n('Invalid chars!') + s; 1.60 + return false; 1.61 } else { 1.62 - msg.innerHTML = "<span class=\"msg-ok\">✔</span"; 1.63 + msg.innerHTML = '<span class="msg-ok">✔'+s; 1.64 } 1.65 } 1.66 1.67 //// 1.68 // Password validation - typical use: 1.69 -// <input type="password" id="pass1" onkeyup="checkLogin('pass1','pass2','msg2'); return false;" /> 1.70 -// <input type="password" id="pass2" onkeyup="checkLogin('pass1','pass2','msg2'); return false;" /> 1.71 +// <input type="password" id="pass1" onkeyup="checkPwd('pass1','pass2','msg2'); return false;" /> 1.72 +// <input type="password" id="pass2" onkeyup="checkPwd('pass1','pass2','msg2'); return false;" /> 1.73 // <span id="msg2"></span> 1.74 1.75 function checkPwd(password,confirm,message){ 1.76 var pwd1 = document.getElementById(password); 1.77 var pwd2 = document.getElementById(confirm); 1.78 - var msg = document.getElementById(message); 1.79 + var msg = document.getElementById(message); 1.80 + // html fragments 1.81 + var nok = '<span class="msg-nok">✖ '; 1.82 + var okw = '<span class="msg-ok">✔ </span><span class="msg-warn">'; 1.83 + var s = '</span>'; 1.84 + 1.85 if(pwd1.value == pwd2.value){ 1.86 - // passwords match. 1.87 + // passwords match. 1.88 pwd2.classList.remove('alert'); 1.89 // various checks 1.90 var enoughRegex = new RegExp("(?=.{3,}).*", "g"); 1.91 @@ -46,27 +80,27 @@ 1.92 var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g"); 1.93 var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g"); 1.94 if (pwd1.value.length==0) { 1.95 - msg.innerHTML = "<span class=\"msg-ok\">✔ </span><span class=\"msg-warn\">(No Password!)</span>"; 1.96 + msg.innerHTML = okw + i18n('(No Password!)') + s; 1.97 } else if (pwd1.value.length > 40) { 1.98 - msg.innerHTML ="<span class=\"msg-nok\">✖ Too long!</span>"; 1.99 + msg.innerHTML = nok + i18n('Too long!') + s; 1.100 return false; 1.101 } else if (false == enoughRegex.test(pwd1.value)) { 1.102 - msg.innerHTML ="<span class=\"msg-nok\">✖ Too short!</span>"; 1.103 + msg.innerHTML = nok + i18n('Too short!') + s; 1.104 return false; 1.105 } else if (false == incharRegex.test(pwd1.value)) { 1.106 - msg.innerHTML ="<span class=\"msg-nok\">✖ Invalid chars!</span>"; 1.107 + msg.innerHTML = nok + i18n('Invalid chars!') + s; 1.108 return false; 1.109 } else if (strongRegex.test(pwd1.value)) { 1.110 - msg.innerHTML = "<span class=\"msg-ok\">✔ (Strong)</span>"; 1.111 + msg.innerHTML = '<span class="msg-ok">✔ ' + i18n('(Strong)') + s; 1.112 } else if (mediumRegex.test(pwd1.value)) { 1.113 - msg.innerHTML = "<span class=\"msg-ok\">✔ </span><span class=\"msg-warn\">(Medium!)</span>"; 1.114 + msg.innerHTML = okw + i18n('(Medium!)') + s; 1.115 } else { 1.116 - msg.innerHTML = "<span class=\"msg-ok\">✔ </span><span class=\"msg-warn\">(Weak!)</span>"; 1.117 + msg.innerHTML = okw + i18n('(Weak!)') + s; 1.118 } 1.119 } else { 1.120 // passwords do not match. 1.121 pwd2.classList.add('alert'); 1.122 - msg.innerHTML = "<span class=\"msg-nok\">✖ Do Not Match!</span>" 1.123 + msg.innerHTML = nok + i18n('Do Not Match!') + s; 1.124 return false; 1.125 } 1.126 -} 1.127 \ No newline at end of file 1.128 +}