tazpanel 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 72e9955ebdff
children 1a58d33b9df8
files lib/user.js
line diff
     1.1 --- a/lib/user.js	Wed Apr 11 20:12:41 2012 +0300
     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\">&#x2716; Too short</span>";
    1.42 +	// html fragments
    1.43 +	var nok='<span class="msg-nok">&#x2716; ';
    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\">&#x2716; 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\">&#x2716; 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\">&#x2714;</span";
    1.63 +		msg.innerHTML = '<span class="msg-ok">&#x2714;'+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">&#x2716; ';
    1.82 +	var okw = '<span class="msg-ok">&#x2714; </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\">&#x2714; </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\">&#x2716; 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\">&#x2716; 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\">&#x2716; 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\">&#x2714; (Strong)</span>";
   1.111 +			msg.innerHTML = '<span class="msg-ok">&#x2714; ' + i18n('(Strong)') + s;
   1.112  		} else if (mediumRegex.test(pwd1.value)) {
   1.113 -			msg.innerHTML = "<span class=\"msg-ok\">&#x2714; </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\">&#x2714; </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\">&#x2716; 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 +}