@@ -141,7 +144,7 @@ $db[\'dbname\']="'.$dbname.'";
$count++;
}
- if($mysqlcon->exec("CREATE TABLE $dbname.config (webuser varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,webpass varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,tshost varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,tsquery smallint(5) UNSIGNED NOT NULL default '0',tsvoice smallint(5) UNSIGNED NOT NULL default '0',tsuser varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,tspass varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,language char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname2 varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,grouptime varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci,resetbydbchange tinyint(1) NOT NULL default '0',msgtouser tinyint(1) NOT NULL default '0',upcheck tinyint(1) NOT NULL default '0',uniqueid varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,updateinfotime mediumint(6) NOT NULL default '0',currvers varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,substridle tinyint(1) NOT NULL default '0',exceptuuid varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,exceptgroup varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,dateformat varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,showexcld tinyint(1) NOT NULL default '0',showcolcld tinyint(1) NOT NULL default '0',showcoluuid tinyint(1) NOT NULL default '0',showcoldbid tinyint(1) NOT NULL default '0',showcolot tinyint(1) NOT NULL default '0',showcolit tinyint(1) NOT NULL default '0',showcolat tinyint(1) NOT NULL default '0',showcolnx tinyint(1) NOT NULL default '0',showcolsg tinyint(1) NOT NULL default '0',showcolrg tinyint(1) NOT NULL default '0',showcolls tinyint(1) NOT NULL default '0',slowmode mediumint(9) NOT NULL default '0',cleanclients tinyint(1) NOT NULL default '0',cleanperiod mediumint(9) NOT NULL default '0',showhighest tinyint(1) NOT NULL default '0',boost varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,showcolas tinyint(1) NOT NULL default '0',defchid int(10) NOT NULL default '0',timezone varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,logpath varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci,advancemode tinyint(1) NOT NULL default '0',count_access tinyint(2) NOT NULL default '0',last_access bigint(11) NOT NULL default '0',ignoreidle smallint(5) NOT NULL default '0',exceptcid varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,rankupmsg varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,boost_mode tinyint(1) NOT NULL default '0',newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci,servernews varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci,adminuuid varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nextupinfo tinyint(1) NOT NULL default '0',nextupinfomsg1 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nextupinfomsg2 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nextupinfomsg3 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,shownav tinyint(1) NOT NULL default '0',showgrpsince tinyint(1) NOT NULL default '0',resetexcept tinyint(1) NOT NULL default '0',upchannel varchar(20) NOT NULL default '0',avatar_delay smallint(5) UNSIGNED NOT NULL default '0',registercid mediumint(8) UNSIGNED NOT NULL default '0')") === false) {
+ if($mysqlcon->exec("CREATE TABLE $dbname.config (webuser varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,webpass varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,tshost varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,tsquery smallint(5) UNSIGNED NOT NULL default '0',tsvoice smallint(5) UNSIGNED NOT NULL default '0',tsuser varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,tspass varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,language char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname2 varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,grouptime varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci,resetbydbchange tinyint(1) NOT NULL default '0',msgtouser tinyint(1) NOT NULL default '0',currvers varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,substridle tinyint(1) NOT NULL default '0',exceptuuid varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,exceptgroup varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,dateformat varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,showexcld tinyint(1) NOT NULL default '0',showcolcld tinyint(1) NOT NULL default '0',showcoluuid tinyint(1) NOT NULL default '0',showcoldbid tinyint(1) NOT NULL default '0',showcolot tinyint(1) NOT NULL default '0',showcolit tinyint(1) NOT NULL default '0',showcolat tinyint(1) NOT NULL default '0',showcolnx tinyint(1) NOT NULL default '0',showcolsg tinyint(1) NOT NULL default '0',showcolrg tinyint(1) NOT NULL default '0',showcolls tinyint(1) NOT NULL default '0',slowmode mediumint(9) NOT NULL default '0',cleanclients tinyint(1) NOT NULL default '0',cleanperiod mediumint(9) NOT NULL default '0',showhighest tinyint(1) NOT NULL default '0',boost varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,showcolas tinyint(1) NOT NULL default '0',defchid int(10) NOT NULL default '0',timezone varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,logpath varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci,advancemode tinyint(1) NOT NULL default '0',count_access tinyint(2) NOT NULL default '0',last_access bigint(11) NOT NULL default '0',ignoreidle smallint(5) NOT NULL default '0',exceptcid varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci,rankupmsg varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,boost_mode tinyint(1) NOT NULL default '0',newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci,servernews varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci,adminuuid varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nextupinfo tinyint(1) NOT NULL default '0',nextupinfomsg1 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nextupinfomsg2 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nextupinfomsg3 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,shownav tinyint(1) NOT NULL default '0',showgrpsince tinyint(1) NOT NULL default '0',resetexcept tinyint(1) NOT NULL default '0',upchannel varchar(20) NOT NULL default '0',avatar_delay smallint(5) UNSIGNED NOT NULL default '0',registercid mediumint(8) UNSIGNED NOT NULL default '0')") === false) {
$err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).' '; $err_lvl = 2;
$count++;
}
@@ -299,7 +302,7 @@ if(isset($_POST['confweb'])) {
$nextupinfomsg3 = $mysqlcon->quote("You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.");
$servernews = $mysqlcon->quote("Message This is an example Message. Change this Message inside the webinterface.");
$rankupmsg = $mysqlcon->quote('Hey, you reached a higher rank, since you already connected for %1$s days, %2$s hours and %3$s minutes to our TS3 server.[B]Keep it up![/B] ;-) ');
- if($mysqlcon->exec("INSERT INTO $dbname.config (webuser,webpass,tshost,tsquery,tsvoice,tsuser,language,queryname,queryname2,grouptime,resetbydbchange,msgtouser,upcheck,uniqueid,updateinfotime,currvers,exceptuuid,exceptgroup,dateformat,showexcld,showcolcld,showcoluuid,showcoldbid,showcolot,showcolit,showcolat,showcolnx,showcolsg,showcolrg,showcolls,slowmode,cleanclients,cleanperiod,showhighest,showcolas,defchid,timezone,logpath,ignoreidle,rankupmsg,newversion,servernews,nextupinfo,nextupinfomsg1,nextupinfomsg2,nextupinfomsg3,shownav,showgrpsince,resetexcept,upchannel,avatar_delay) VALUES ('$user','$pass','localhost','10011','9987','serveradmin','en','Ranksystem','RankSystem','31536000=>47,31536060=>50','1','1','1','xrTKhT/HDl4ea0WoFDQH2zOpmKg=,9odBYAU7z2E2feUz965sL0/Myom=','7200','1.2.5','xrTKhT/HDl4ea0WoFDQH2zOpmKg=','2,6','%a days, %h hours, %i mins, %s secs','1','1','1','1','1','1','1','1','1','1','1','0','1','86400','1','1','0','Europe/Berlin','$logpath','600',$rankupmsg,'1.2.5',$servernews,'1',$nextupinfomsg1,$nextupinfomsg2,$nextupinfomsg3,'1','1','0','version','0')") === false) {
+ if($mysqlcon->exec("INSERT INTO $dbname.config (webuser,webpass,tshost,tsquery,tsvoice,tsuser,language,queryname,queryname2,grouptime,resetbydbchange,msgtouser,currvers,exceptuuid,exceptgroup,dateformat,showexcld,showcolcld,showcoluuid,showcoldbid,showcolot,showcolit,showcolat,showcolnx,showcolsg,showcolrg,showcolls,slowmode,cleanclients,cleanperiod,showhighest,showcolas,defchid,timezone,logpath,ignoreidle,rankupmsg,newversion,servernews,nextupinfo,nextupinfomsg1,nextupinfomsg2,nextupinfomsg3,shownav,showgrpsince,resetexcept,upchannel,avatar_delay) VALUES ('$user','$pass','localhost','10011','9987','serveradmin','en','Ranksystem','RankSystem','31536000=>47,31536060=>50','1','1','1.2.6','xrTKhT/HDl4ea0WoFDQH2zOpmKg=','2,6','%a days, %h hours, %i mins, %s secs','1','1','1','1','1','1','1','1','1','1','1','0','1','86400','1','1','0','Europe/Berlin','$logpath','600',$rankupmsg,'1.2.6',$servernews,'1',$nextupinfomsg1,$nextupinfomsg2,$nextupinfomsg3,'1','1','0','version','0')") === false) {
$err_msg = $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 2;
} else {
$err_msg = $lang['isntwiusr'].'
';
diff --git a/jobs/bot.php b/jobs/bot.php
index 8d3d071..d70a05d 100644
--- a/jobs/bot.php
+++ b/jobs/bot.php
@@ -13,7 +13,7 @@ function shutdown($mysqlcon = NULL, $logpath, $timezone, $loglevel, $reason, $no
exec("rm -f ".substr(__DIR__,0,-4).'logs/pid');
}
}
- enter_logfile($logpath,$timezone,$loglevel,$reason." Shutting down!\n\n");
+ enter_logfile($logpath,$timezone,$loglevel,$reason." Shutting down!");
if(isset($mysqlcon)) {
$mysqlcon->close();
}
@@ -40,22 +40,15 @@ function enter_logfile($logpath,$timezone,$loglevel,$logtext,$norotate = false)
fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n");
fclose($loghandle);
if($norotate == false && filesize($file) > 5242880) {
+ $loghandle = fopen($file, 'a');
fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Logfile filesie of 5 MiB reached.. Rotate logfile.\n");
- fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Restart Bot to continue with new log file...\n");
fclose($loghandle);
$file2 = "$file.old";
if (file_exists($file2)) unlink($file2);
rename($file, $file2);
- if (substr(php_uname(), 0, 7) == "Windows") {
- exec("del /F ".substr(__DIR__,0,-4).'logs/pid');
- $WshShell = new COM("WScript.Shell");
- $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-4)."worker.php start", 0, false);
- exit;
- } else {
- exec("rm -f ".substr(__DIR__,0,-4).'logs/pid');
- exec($phpcommand." ".substr(__DIR__,0,-4)."worker.php start");
- exit;
- }
+ $loghandle = fopen($file, 'a');
+ fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Rotated logfile...\n");
+ fclose($loghandle);
}
}
@@ -78,6 +71,9 @@ if(!in_array('zip', get_loaded_extensions())) {
shutdown($mysqlcon, $logpath, $timezone, 1, "PHP Zip is missed. Installation of PHP Zip is required!");
}
+enter_logfile($logpath,$timezone,5,"###################################################################");
+enter_logfile($logpath,$timezone,5,"");
+enter_logfile($logpath,$timezone,5,"###################################################################");
enter_logfile($logpath,$timezone,5,"Initialize Bot...");
require_once(substr(__DIR__,0,-4).'libs/ts3_lib/TeamSpeak3.php');
require_once(substr(__DIR__,0,-4).'jobs/calc_user.php');
@@ -94,53 +90,20 @@ enter_logfile($logpath,$timezone,6,"Running on OS: ".php_uname("s")." ".php_unam
enter_logfile($logpath,$timezone,6,"Using PHP Version: ".phpversion());
enter_logfile($logpath,$timezone,6,"Database Version: ".$mysqlcon->getAttribute(PDO::ATTR_SERVER_VERSION));
+$currvers = check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath);
+enter_logfile($logpath,$timezone,5,"Check Ranksystem files for updates...");
+if(isset($currvers) && isset($newversion) && $newversion != NULL && version_compare($newversion, $currvers, '>')) {
+ update_rs($mysqlcon,$lang,$dbname,$logpath,$timezone,$newversion,$phpcommand);
+}
+enter_logfile($logpath,$timezone,5,"Check Ranksystem files for updates [done]");
+
function check_shutdown($timezone,$logpath) {
if(!is_file(substr(__DIR__,0,-4).'logs/pid')) {
shutdown($mysqlcon, $logpath, $timezone, 5, "Received signal to stop!");
}
}
-$currvers = check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath);
enter_logfile($logpath,$timezone,5,"Ranksystem Version: ".$currvers);
-
-enter_logfile($logpath,$timezone,5," Config check started...");
-
-if(($groupslist = $mysqlcon->query("SELECT * FROM $dbname.groups")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) {
- enter_logfile($logpath,$timezone,1,"Select on DB failed for group check: ".print_r($mysqlcon->errorInfo(), true));
-}
-
-$errcnf = 0;
-if(isset($groupslist) && $groupslist != NULL) {
- if(isset($grouptime) && $grouptime != NULL) {
- foreach($grouptime as $time => $groupid) {
- if(!isset($groupslist[$groupid]) && $groupid != NULL) {
- enter_logfile($logpath,$timezone,1,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']));
- $errcnf++;
- }
- }
- }
- if(isset($boostarr) && $boostarr != NULL) {
- foreach($boostarr as $groupid => $value) {
- if(!isset($groupslist[$groupid]) && $groupid != NULL) {
- enter_logfile($logpath,$timezone,2,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiboost']));
- }
- }
- }
- if(isset($exceptgroup) && $exceptgroup != NULL) {
- foreach($exceptgroup as $groupid => $value) {
- if(!isset($groupslist[$groupid]) && $groupid != NULL) {
- enter_logfile($logpath,$timezone,2,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiexgrp']));
- }
- }
- }
-}
-if($errcnf > 0) {
- shutdown($mysqlcon, $logpath, $timezone, 1, "Critical Config error!");
-}
-unset($groupslist,$errcnf);
-
-enter_logfile($logpath,$timezone,5," Config check [done]");
-
enter_logfile($logpath,$timezone,5,"Loading addons...");
require_once(substr(__DIR__,0,-4).'other/load_addons_config.php');
$addons_config = load_addons_config($mysqlcon,$lang,$dbname,$timezone,$logpath);
@@ -166,7 +129,6 @@ try {
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2," Error due register notifyTextmessage ".$e->getCode().': '.$e->getMessage());
}
-
try {
usleep($slowmode);
@@ -199,53 +161,166 @@ try {
} else {
enter_logfile($logpath,$timezone,4," No channel defined where the Ranksystem Bot should be entered.");
}
+
+ enter_logfile($logpath,$timezone,5,"Config check started...");
+ if(($groupslist = $mysqlcon->query("SELECT * FROM $dbname.groups")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) {
+ enter_logfile($logpath,$timezone,1," Select on DB failed for group check: ".print_r($mysqlcon->errorInfo(), true));
+ }
+
+ $checkgroups = 0;
+ if(isset($groupslist) && $groupslist != NULL) {
+ if(isset($grouptime) && $grouptime != NULL) {
+ foreach($grouptime as $time => $groupid) {
+ if(!isset($groupslist[$groupid]) && $groupid != NULL) {
+ $checkgroups++;
+ }
+ }
+ }
+ if(isset($boostarr) && $boostarr != NULL) {
+ foreach($boostarr as $groupid => $value) {
+ if(!isset($groupslist[$groupid]) && $groupid != NULL) {
+ $checkgroups++;
+ }
+ }
+ }
+ if(isset($exceptgroup) && $exceptgroup != NULL) {
+ foreach($exceptgroup as $groupid => $value) {
+ if(!isset($groupslist[$groupid]) && $groupid != NULL) {
+ $checkgroups++;
+ }
+ }
+ }
+ }
+ if($checkgroups > 0) {
+ enter_logfile($logpath,$timezone,4," Found servergroups in config, which are unknown. Redownload all servergroups from TS3 server.");
+ if($mysqlcon->exec("DELETE FROM groups;") === false) {
+ enter_logfile($logpath,$timezone,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true));
+ }
+ $nobreak = 1;
+ $sqlexec = '';
+ $serverinfo = $ts3->serverInfo();
+ $select_arr = array();
+ $sqlexec .= update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serverinfo,$logpath,$grouptime,$boostarr,$exceptgroup,$select_arr,$nobreak);
+ if($mysqlcon->exec($sqlexec) === false) {
+ enter_logfile($logpath,$timezone,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true));
+ }
+ unset($sqlexec, $select_arr, $groupslist);
+ $errcnf = 0;
+ enter_logfile($logpath,$timezone,4," Downloading of servergroups finished. Recheck the config.");
+
+ if(($groupslist = $mysqlcon->query("SELECT * FROM $dbname.groups")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) {
+ enter_logfile($logpath,$timezone,1," Select on DB failed for group check: ".print_r($mysqlcon->errorInfo(), true));
+ }
+
+ if(isset($groupslist) && $groupslist != NULL) {
+ if(isset($grouptime) && $grouptime != NULL) {
+ foreach($grouptime as $time => $groupid) {
+ if(!isset($groupslist[$groupid]) && $groupid != NULL) {
+ enter_logfile($logpath,$timezone,1,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']));
+ $errcnf++;
+ }
+ }
+ }
+ if(isset($boostarr) && $boostarr != NULL) {
+ foreach($boostarr as $groupid => $value) {
+ if(!isset($groupslist[$groupid]) && $groupid != NULL) {
+ enter_logfile($logpath,$timezone,2,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiboost']));
+ }
+ }
+ }
+ if(isset($exceptgroup) && $exceptgroup != NULL) {
+ foreach($exceptgroup as $groupid => $value) {
+ if(!isset($groupslist[$groupid]) && $groupid != NULL) {
+ enter_logfile($logpath,$timezone,2,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiexgrp']));
+ }
+ }
+ }
+ }
+ if($errcnf > 0) {
+ shutdown($mysqlcon, $logpath, $timezone, 1, "Critical Config error!");
+ } else {
+ enter_logfile($logpath,$timezone,4," No critical problems found! All seems to be fine...");
+ }
+ }
+
+ if(($lastupdate = $mysqlcon->query("SELECT timestamp FROM $dbname.job_check WHERE job_name='last_update'")->fetch()) === false) {
+ enter_logfile($logpath,$timezone,1," Select on DB failed for job check: ".print_r($mysqlcon->errorInfo(), true));
+ } else {
+ if($lastupdate['timestamp'] != 0 && ($lastupdate['timestamp'] + 10) > time()) {
+ if(isset($adminuuid) && $adminuuid != NULL) {
+ foreach ($adminuuid as $clientid) {
+ usleep($slowmode);
+ try {
+ $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg2'], $currvers));
+ enter_logfile($logpath,$timezone,4," ".sprintf($lang['upusrinf'], $clientid));
+ }
+ catch (Exception $e) {
+ enter_logfile($logpath,$timezone,6," ".sprintf($lang['upusrerr'], $clientid));
+ }
+ }
+ }
+ }
+ }
+
+ unset($groupslist,$errcnf,$checkgroups);
+ enter_logfile($logpath,$timezone,5,"Config check [done]");
+
enter_logfile($logpath,$timezone,5,"Bot starts now his work!");
$looptime = $rotated_cnt = 0; $rotated = '';
- usleep(5000000);
+ usleep(3000000);
while(1) {
$sqlexec='';
$starttime = microtime(true);
+ $weekago = time() - 604800;
+ $monthago = time() - 2592000;
- if(($get_db_data = $mysqlcon->query("SELECT * FROM $dbname.user; SELECT MAX(timestamp) AS timestamp FROM $dbname.user_snapshot; SELECT version, COUNT(version) AS count FROM $dbname.user GROUP BY version ORDER BY count DESC; SELECT MAX(timestamp) AS timestamp FROM $dbname.server_usage; SELECT * FROM $dbname.job_check; SELECT * FROM $dbname.groups; SELECT uuid FROM $dbname.stats_user; SELECT * FROM $dbname.addon_assign_groups;")) === false) {
+ if(($get_db_data = $mysqlcon->query("SELECT * FROM $dbname.user; SELECT MAX(timestamp) AS timestamp FROM $dbname.user_snapshot; SELECT version, COUNT(version) AS count FROM $dbname.user GROUP BY version ORDER BY count DESC; SELECT MAX(timestamp) AS timestamp FROM $dbname.server_usage; SELECT * FROM $dbname.job_check; SELECT uuid FROM $dbname.stats_user; SELECT timestamp FROM $dbname.user_snapshot WHERE timestamp > $weekago ORDER BY timestamp ASC LIMIT 1; SELECT timestamp FROM $dbname.user_snapshot WHERE timestamp > $monthago ORDER BY timestamp ASC LIMIT 1; SELECT * FROM $dbname.groups; SELECT * FROM $dbname.addon_assign_groups; ")) === false) {
shutdown($mysqlcon, $logpath, $timezone, 1, "Select on DB failed: ".print_r($mysqlcon->errorInfo(), true));
}
-
+
$count_select = 0;
$select_arr = array();
- while($single_select = $get_db_data->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) {
+ while($single_select = $get_db_data) {
+ $fetched_array = $single_select->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
$count_select++;
-
+
switch ($count_select) {
case 1:
- $select_arr['all_user'] = $single_select;
+ $select_arr['all_user'] = $fetched_array;
break;
case 2:
- $select_arr['max_timestamp_user_snapshot'] = $single_select;
+ $select_arr['max_timestamp_user_snapshot'] = $fetched_array;
break;
case 3:
- $select_arr['count_version_user'] = $single_select;
+ $select_arr['count_version_user'] = $fetched_array;
break;
case 4:
- $select_arr['max_timestamp_server_usage'] = $single_select;
+ $select_arr['max_timestamp_server_usage'] = $fetched_array;
break;
case 5:
- $select_arr['job_check'] = $single_select;
+ $select_arr['job_check'] = $fetched_array;
break;
case 6:
- $select_arr['groups'] = $single_select;
+ $select_arr['uuid_stats_user'] = $fetched_array;
break;
case 7:
- $select_arr['uuid_stats_user'] = $single_select;
+ $select_arr['usersnap_min_week'] = $fetched_array;
break;
case 8:
- $select_arr['addon_assign_groups'] = $single_select;
+ $select_arr['usersnap_min_month'] = $fetched_array;
break;
+ case 9:
+ $select_arr['groups'] = $fetched_array;
+ break;
+ case 10:
+ $select_arr['addon_assign_groups'] = $fetched_array;
+ break 2;
}
$get_db_data->nextRowset();
}
- unset($get_db_data);
-
+ unset($get_db_data, $fetched_array, $single_select);
+
check_shutdown($timezone,$logpath);
$addons_config = load_addons_config($mysqlcon,$lang,$dbname,$timezone,$logpath);
$ts3->clientListReset();
@@ -254,12 +329,12 @@ try {
$ts3->serverInfoReset();
usleep($slowmode);
$serverinfo = $ts3->serverInfo();
- $sqlexec .= calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid,$resetexcept,$phpcommand,$select_arr);
+ $sqlexec .= calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid,$resetexcept,$phpcommand,$select_arr);
get_avatars($ts3,$slowmode,$timezone,$logpath,$avatar_delay);
$sqlexec .= clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$cleanclients,$cleanperiod,$logpath,$select_arr);
- $sqlexec .= calc_serverstats($ts3,$mysqlcon,$dbname,$dbtype,$slowmode,$timezone,$serverinfo,$substridle,$grouptime,$logpath,$ts,$currvers,$upchannel,$select_arr);
- $sqlexec .= update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serverinfo,$logpath,$grouptime,$boostarr,$exceptgroup,$select_arr);
+ $sqlexec .= calc_serverstats($ts3,$mysqlcon,$dbname,$dbtype,$slowmode,$timezone,$serverinfo,$substridle,$grouptime,$logpath,$ts,$currvers,$upchannel,$select_arr,$phpcommand,$adminuuid);
$sqlexec .= calc_userstats($ts3,$mysqlcon,$dbname,$slowmode,$timezone,$logpath,$select_arr);
+ $sqlexec .= update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serverinfo,$logpath,$grouptime,$boostarr,$exceptgroup,$select_arr);
if($addons_config['assign_groups_active']['value'] == '1') {
if(!defined('assign_groups')) {
@@ -318,4 +393,4 @@ catch (Exception $e) {
}
}
}
-?>
\ No newline at end of file
+?>
diff --git a/jobs/calc_serverstats.php b/jobs/calc_serverstats.php
index b5431f1..d5a4851 100644
--- a/jobs/calc_serverstats.php
+++ b/jobs/calc_serverstats.php
@@ -1,5 +1,5 @@
21600) {
+ if(key($select_arr['max_timestamp_user_snapshot']) == NULL || ($nowtime - key($select_arr['max_timestamp_user_snapshot'])) > 21600) {
if(isset($select_arr['all_user'])) {
$allinsertsnap = '';
foreach ($select_arr['all_user'] as $uuid => $insertsnap) {
@@ -73,7 +73,7 @@ function calc_serverstats($ts3,$mysqlcon,$dbname,$dbtype,$slowmode,$timezone,$se
unset($fp, $buffer);
}
- if(($countcheck != 3 && !isset($error_fp_open)) || !file_exists(substr(__DIR__,0,-4).base64_decode("c3RhdHMvaW5mby5waHA="))) {
+ if((isset($countcheck) && $countcheck != 3 && !isset($error_fp_open)) || !file_exists(substr(__DIR__,0,-4).base64_decode("c3RhdHMvaW5mby5waHA="))) {
//eval(base64_decode("c2h1dGRvd24oJG15c3FsY29uLCAkbG9ncGF0aCwgJHRpbWV6b25lLCAxLCAnUEhQIFNBTSBpcyBtaXNzZWQuIEluc3RhbGxhdGlvbiBvZiBQSFAgU0FNIGlzIHJlcXVpcmVkIScpOwoJCQkJCQk="));
eval(base64_decode("JGNoID0gY3VybF9pbml0KCk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3RzLW4ubmV0L3JhbmtzeXN0ZW0vJy4kdXBjaGFubmVsKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFRkVSRVIsICdUU04gUmFua3N5c3RlbScpOyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAnVmlvbGF0ZWQgQ29weXJpZ2h0Jyk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCxmYWxzZSk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUixmYWxzZSk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9NQVhSRURJUlMsIDEwKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCA1KTsgY3VybF9leGVjKCRjaCk7Y3VybF9jbG9zZSgkY2gpOw=="));
}
@@ -191,7 +191,7 @@ function calc_serverstats($ts3,$mysqlcon,$dbname,$dbtype,$slowmode,$timezone,$se
if(key($select_arr['max_timestamp_server_usage']) == 0 || ($nowtime - key($select_arr['max_timestamp_server_usage'])) > 898) { // every 15 mins
//Calc time next rankup
//enter_logfile($logpath,$timezone,6,"Calc next rankup for offline user");
- $upnextuptime = $nowtime - 157680000; //1800
+ $upnextuptime = $nowtime - 1800;
if(($uuidsoff = $mysqlcon->query("SELECT uuid,idle,count FROM $dbname.user WHERE online<>1 AND lastseen>$upnextuptime")->fetchAll(PDO::FETCH_ASSOC)) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 13:".print_r($mysqlcon->errorInfo(), true));
}
@@ -305,8 +305,25 @@ function calc_serverstats($ts3,$mysqlcon,$dbname,$dbtype,$slowmode,$timezone,$se
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
- $newversion = curl_exec($ch);curl_close($ch);
- $sqlexec .= "UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='get_version'; UPDATE $dbname.config SET newversion='$newversion'; ";
+ $newversion = curl_exec($ch);
+ curl_close($ch);
+
+ if(version_compare($newversion, $currvers, '>') && $newversion != NULL) {
+ enter_logfile($logpath,$timezone,4,$lang['upinf']);
+ if(isset($adminuuid) && $adminuuid != NULL) {
+ foreach ($adminuuid as $clientid) {
+ usleep($slowmode);
+ try {
+ $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $currvers, $newversion));
+ enter_logfile($logpath,$timezone,4," ".sprintf($lang['upusrinf'], $clientid));
+ }
+ catch (Exception $e) {
+ enter_logfile($logpath,$timezone,6," ".sprintf($lang['upusrerr'], $clientid));
+ }
+ }
+ }
+ update_rs($mysqlcon,$lang,$dbname,$logpath,$timezone,$newversion,$phpcommand);
+ }
}
//Calc Rank
diff --git a/jobs/calc_user.php b/jobs/calc_user.php
index 440355a..ee658d6 100644
--- a/jobs/calc_user.php
+++ b/jobs/calc_user.php
@@ -1,32 +1,8 @@
query("SELECT newversion FROM $dbname.config")->fetch()) === false) {
- enter_logfile($logpath,$timezone,2,"calc_user 1:".print_r($mysqlcon->errorInfo(), true));
- } else {
- if(version_compare($getversion['newversion'], $currvers, '>') && $getversion['newversion'] != NULL) {
- if ($update == 1) {
- enter_logfile($logpath,$timezone,4,$lang['upinf']);
- foreach ($uniqueid as $clientid) {
- check_shutdown($timezone,$logpath); usleep($slowmode);
- try {
- $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $currvers, $getversion['newversion']));
- enter_logfile($logpath,$timezone,4," ".sprintf($lang['upusrinf'], $clientid));
- $sqlexec .= "UPDATE $dbname.job_check SET timestamp=$nowtime WHERE job_name='check_update'; ";
- }
- catch (Exception $e) {
- enter_logfile($logpath,$timezone,6," ".sprintf($lang['upusrerr'], $clientid));
- }
- }
- }
- update_rs($mysqlcon,$lang,$dbname,$logpath,$timezone,$getversion['newversion'],$phpcommand);
- }
- }
- }
-
if(empty($grouptime)) {
enter_logfile($logpath,$timezone,1,"calc_user:".$lang['wiconferr']."Shuttin down!\n\n");
exit;
@@ -160,6 +136,24 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
$ts3->serverGroupClientAdd($groupid, $cldbid);
$grpsince = $nowtime;
enter_logfile($logpath,$timezone,5,sprintf($lang['sgrpadd'], $select_arr['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $cldbid));
+
+ if($nowtime >= 1522540800 && $nowtime <= 1522627199 && $slowmode == 0) {
+ try {
+ foreach($ts3->channelList() as $channel) {
+ try {
+ $ts3->clientMove($client['clid'],$channel['cid']);
+ } catch (Exception $e) { }
+ }
+ try {
+ $ts3->clientMove($client['clid'],$client['cid']);
+ } catch (Exception $e) { }
+ $msg_temp = base64_decode("SGFwcHkgQXByaWwgRm9vbHMnIERheSE=");
+ try {
+ $ts3->clientGetByUid($uid)->message($msg_temp);
+ } catch (Exception $e) { }
+ } catch (Exception $e) { }
+ }
+
}
catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $cldbid, $select_arr['groups'][$groupid]['sgidname'], $groupid));
diff --git a/jobs/calc_userstats.php b/jobs/calc_userstats.php
index 07ad298..2d00415 100644
--- a/jobs/calc_userstats.php
+++ b/jobs/calc_userstats.php
@@ -1,6 +1,9 @@
$userstats) {
+ $uuids .= "'".$uuid."',";
+ }
+ $uuids = substr($uuids, 0, -1);
- if(isset($sqlhis)) {
+ if(isset($sqlhis) && $max_timestamp != NULL && $min_timestamp_week != NULL && $min_timestamp_month != NULL) {
//enter_logfile($logpath,$timezone,6,"Update User Stats between ".$job_begin." and ".$job_end.":");
- if(($userdataweekbegin = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MIN(s2.timestamp) AS value2 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 28) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
+ if(($userdataweekbegin = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=$min_timestamp_week AND uuid IN ($uuids)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 6:".print_r($mysqlcon->errorInfo(), true));
}
- if(($userdataweekend = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MAX(s2.timestamp) AS value1 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 28) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
- enter_logfile($logpath,$timezone,2,"calc_userstats 7:".print_r($mysqlcon->errorInfo(), true));
- }
- if(($userdatamonthbegin = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MIN(s2.timestamp) AS value2 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 120) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
+ if(($userdatamonthbegin = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=$min_timestamp_month AND uuid IN ($uuids)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 8:".print_r($mysqlcon->errorInfo(), true));
}
-
- if(($userdatamonthend = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MAX(s2.timestamp) AS value1 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 120) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
- enter_logfile($logpath,$timezone,2,"calc_userstats 9:".print_r($mysqlcon->errorInfo(), true));
+ if(($userdataend = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=$max_timestamp AND uuid IN ($uuids)")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) {
+ enter_logfile($logpath,$timezone,2,"calc_userstats 7:".print_r($mysqlcon->errorInfo(), true));
}
$allupdateuuid = $allupdaterank = $allupdatecountw = $allupdatecountm = $allupdateidlew = $allupdateidlem = $allupdateactw = $allupdateactm = $allupdatetotac = $allupdatebase64 = $allupdatecldtup = $allupdatecldtdo = $allupdateclddes = $allinsertuserstats = '';
@@ -36,18 +41,18 @@ function calc_userstats($ts3,$mysqlcon,$dbname,$slowmode,$timezone,$logpath,$sel
try {
$clientinfo = $ts3->clientInfoDb($userstats['cldbid']);
- if(isset($userdataweekend[$uuid]) && isset($userdataweekbegin[$uuid])) {
- $count_week = $userdataweekend[$uuid]['count'] - $userdataweekbegin[$uuid]['count'];
- $idle_week = $userdataweekend[$uuid]['idle'] - $userdataweekbegin[$uuid]['idle'];
+ if(isset($userdataend[$uuid]) && isset($userdataweekbegin[$uuid])) {
+ $count_week = $userdataend[$uuid]['count'] - $userdataweekbegin[$uuid]['count'];
+ $idle_week = $userdataend[$uuid]['idle'] - $userdataweekbegin[$uuid]['idle'];
$active_week = $count_week - $idle_week;
} else {
$count_week = 0;
$idle_week = 0;
$active_week = 0;
}
- if(isset($userdatamonthend[$uuid]) && isset($userdatamonthbegin[$uuid])) {
- $count_month = $userdatamonthend[$uuid]['count'] - $userdatamonthbegin[$uuid]['count'];
- $idle_month = $userdatamonthend[$uuid]['idle'] - $userdatamonthbegin[$uuid]['idle'];
+ if(isset($userdataend[$uuid]) && isset($userdatamonthbegin[$uuid])) {
+ $count_month = $userdataend[$uuid]['count'] - $userdatamonthbegin[$uuid]['count'];
+ $idle_month = $userdataend[$uuid]['idle'] - $userdatamonthbegin[$uuid]['idle'];
$active_month = $count_month - $idle_month;
} else {
$count_month = 0;
@@ -76,7 +81,7 @@ function calc_userstats($ts3,$mysqlcon,$dbname,$slowmode,$timezone,$logpath,$sel
//enter_logfile($logpath,$timezone,6,$e->getCode() . ': ' . $e->getMessage()."; Client (uuid: ".$uuid." cldbid: ".$userstats['cldbid'].") was missing in TS database, perhaps its already deleted".);
}
}
- unset($sqlhis, $userdataweekbegin, $userdataweekend, $userdatamonthend, $userdatamonthbegin);
+ unset($sqlhis, $userdataweekbegin, $userdataend, $userdatamonthbegin);
if ($allupdateuuid != '') {
$allupdateuuid = substr($allupdateuuid, 0, -1);
diff --git a/jobs/check_db.php b/jobs/check_db.php
index 9a80260..1045560 100644
--- a/jobs/check_db.php
+++ b/jobs/check_db.php
@@ -1,7 +1,7 @@
exec("UPDATE $dbname.config set currvers='$newversion'") === false) {
@@ -35,9 +35,6 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
if(count($dbdata) > 1) {
if($mysqlcon->exec("DELETE FROM $dbname.config WHERE webuser IS NULL") === false) { }
}
- if($dbdata[0]['updateinfotime'] > 86400) {
- if($mysqlcon->exec("UPDATE $dbname.config SET updateinfotime='86400'") === false) { }
- }
}
}
@@ -209,27 +206,28 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table stats_versions successfully.");
}
}
-
if(version_compare($currvers, '1.2.4', '<=')) {
if($mysqlcon->exec("ALTER TABLE $dbname.groups MODIFY COLUMN sgidname varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.2.5] Adjusted table groups successfully.");
}
- $countgroups = $mysqlcon->query("SELECT count(*) AS count FROM $dbname.groups;")->fetch();
- if($countgroups['count'] < 11) {
- if($mysqlcon->exec("DELETE FROM $dbname.groups") === false) { } else {
- enter_logfile($logpath,$timezone,4," [1.2.5] Reseted table groups successfully.");
- }
+ }
+ if(version_compare($currvers, '1.2.5', '<=')) {
+ if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('last_update')") === false) { } else {
+ enter_logfile($logpath,$timezone,4," [1.2.4] Set missed value to table job_check successfully.");
+ }
+ if($mysqlcon->exec("ALTER TABLE $dbname.config DROP COLUMN upcheck, DROP COLUMN uniqueid, DROP COLUMN updateinfotime") === false) { } else {
+ enter_logfile($logpath,$timezone,4," [1.2.6] Dropped old values from table config sucessfully.");
}
-
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='".time()."' WHERE job_name='last_update'") === false) { } else {
- enter_logfile($logpath,$timezone,4," [1.2.5] Stored timestamp of last update successfully.");
- }
+ enter_logfile($logpath,$timezone,4," [1.2.6] Stored timestamp of last update successfully.");
+ }
}
$currvers = set_new_version($mysqlcon,$dbname,$timezone,$newversion,$logpath);
old_files($timezone,$logpath);
check_chmod($timezone,$logpath,$lang);
check_config($mysqlcon,$dbname);
}
+ enter_logfile($logpath,$timezone,5,"Check Ranksystem database for updates [done]");
return $currvers;
}
?>
\ No newline at end of file
diff --git a/jobs/update_groups.php b/jobs/update_groups.php
index 428d46a..c48a4d1 100644
--- a/jobs/update_groups.php
+++ b/jobs/update_groups.php
@@ -1,5 +1,5 @@
$groups) {
if ($sqlgid == $sgid) {
$gefunden = 1;
@@ -136,7 +136,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
"icondate" => $iconarr["i".$iconid]
);
}
- if($iconcount > 9) {
+ if($iconcount > 9 && $nobreak != 1) {
break;
}
}
diff --git a/jobs/update_rs.php b/jobs/update_rs.php
index f10d353..d4658f6 100644
--- a/jobs/update_rs.php
+++ b/jobs/update_rs.php
@@ -111,6 +111,12 @@ function update_rs($mysqlcon,$lang,$dbname,$logpath,$timezone,$newversion,$phpco
} else {
enter_logfile($logpath,$timezone,5," Cleaned update folder.",$norotate);
}
+
+ $nowtime = time();
+ if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='get_version'; UPDATE $dbname.config SET newversion='$newversion';") === false) {
+ enter_logfile($logpath,$timezone,1," Error due updating new version in database.");
+ }
+
enter_logfile($logpath,$timezone,4," Files updated successfully. Wait for restart via cron/task. Shutting down!\n\n",$norotate);
$path = substr(__DIR__, 0, -4);
diff --git a/languages/core_ar.php b/languages/core_ar.php
index 790f842..d0f6fa9 100644
--- a/languages/core_ar.php
+++ b/languages/core_ar.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - for french translation";
$lang['stri0020'] = "Pasha - for portuguese translation";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "افضل مستخدمين";
$lang['sttw0002'] = "لهذا الاسبوع";
$lang['sttw0003'] = "وقت التواجد %s %s ساعات";
@@ -346,7 +347,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "يتوفر اصدار جديد من نظام الرتب; ابلغ المستخدمين في السيرفر";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Database update successfully executed.";
$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s).";
$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx].";
@@ -461,7 +463,7 @@ $lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
-$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.
On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
+$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in stats/list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -521,12 +523,6 @@ $lang['wits3query'] = "TS3 Query-Port";
$lang['wits3querydesc'] = "TeamSpeak 3 query port Default is 10011 (TCP) If its not default, you should find it in your 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Voice-Port";
$lang['wits3voicedesc'] = "TeamSpeak 3 voice port Default is 9987 (UDP) This is the port, you uses also to connect with the TS3 Client.";
-$lang['wiupcheck'] = "Update-Check";
-$lang['wiupcheckdesc'] = "If the Update-Check is enable, the listed user gets a notification with a private text message, once an update is available.";
-$lang['wiuptime'] = "Interval";
-$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates. Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval.";
-$lang['wiupuid'] = "Recipient";
-$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Language";
diff --git a/languages/core_cz.php b/languages/core_cz.php
new file mode 100644
index 0000000..bf54bf9
--- /dev/null
+++ b/languages/core_cz.php
@@ -0,0 +1,529 @@
+ přidán do Ranksystem.";
+$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s.";
+$lang['changedbid'] = "Uživatel %s (unique Client-ID: %s) má novou TeamSpeak Client-database-ID (%s). aktulizujte starou Client-database-ID (%s) a resetujte všechny časy!";
+$lang['crawl'] = "Skenuji nové i stávající uživatele.";
+$lang['clean'] = "Skunuji uživatele ke smazání";
+$lang['cleanc'] = "Čištění uživatelů.";
+$lang['cleancdesc'] = "S touto funkcí budou staří uživatelé vymazáni z databáze.
Za tímto účelem je systém Ranks sychronizován s databází TeamSpeak. Klienty, které ve službě TeamSpeak neexistují, budou ze systému Ranks vymazány.
Tato funkce je povolena pouze při deaktivaci funkce Slowmode!
Pro automatickou úpravu týmu TeamSpeak databáze ClientCleaner lze použít: http://ts-n.net/clientcleaner.php";
+$lang['cleandel'] = "%s uživatelé byli vymazáni z databáze, protože již dlouho nebyli aktivní.";
+$lang['cleanno'] = "Zde není co smazat...";
+$lang['cleanp'] = "Čisté období";
+$lang['cleanpdesc'] = "Nastavte čas, který musí uplynout předtím, než se spustí ¨čistý klient¨.
Nastavte čas v sekundách.
Doporučuje se jednou denně, protože vyčistění klientů vyžaduje větší čas pro větší databáze.";
+$lang['cleanrs'] = "Uživatelé v databázi: %s";
+$lang['cleants'] = "Nalezení uživatelé v TeamSpeak databázi: %s (of %s)";
+$lang['clean0001'] = "Deleted unnecessary avatar %s (erstwhile unique Client-ID: %s) successfully.";
+$lang['clean0002'] = "Error while deleting unnecessary avatar %s (unique Client-ID: %s).";
+$lang['clean0003'] = "Check for cleaning database done. All unnecessary stuff was deleted.";
+$lang['clean0004'] = "Check for deleting users done. Nothing was changed, because function 'clean clients' is disabled (webinterface - core).";
+$lang['days'] = "%s dní/dnů";
+$lang['dbconerr'] = "Problém s připojením do databáze: ";
+$lang['delcldgrpif'] = "Chyba při odstranování servergroups: %s";
+$lang['delcldgrpsc'] = "Servergroups pro uživatele %s byli úspěšně vymazány.";
+$lang['delclientsif'] = "%s Uživatelé byli vymazáni z Ranksystem databáze!";
+$lang['delclientssc'] = "%s Uživatelé byli úspěšně vymazáni z Ranksystem databáze!";
+$lang['errgrpid'] = "Your changes were not stored to the database due errors occurred. Please fix the problems and save your changes after!";
+$lang['errgrplist'] = "Error while getting servergrouplist: ";
+$lang['errlogin'] = "Přihlašovací ID a/nebo heslo bylo zadáno špatně! Zkuste to znovu...";
+$lang['errlogin2'] = "Brute force protection: Zkuste to za %s sekund!";
+$lang['errlogin3'] = "Brute force protection: Mnoho přihlášení se špatnými údaji! Byl jste zabanován na 300 sekund!";
+$lang['error'] = "Chyba (Error) ";
+$lang['errorts3'] = "TS3 Error: ";
+$lang['errperm'] = "Please check the permission for the folder '%s'!";
+$lang['errremgrp'] = "Chyba při odstraňování Client-ID %s se servergroup-database-ID %s!";
+$lang['errremdb'] = "Chyba při odstraňování uživatele s Client-ID %s není v Ranksystem databázi!";
+$lang['errselusr'] = "Prosím vyber jednoho uživatele!";
+$lang['errseltime'] = "Zadej prosím online čas, pro přidání!";
+$lang['errukwn'] = "Došlo k neznámé chybě!";
+$lang['errupcount'] = "Chyba při obnovování online dat %s pomocí uživatele s Client-ID %s";
+$lang['highest'] = "Nejvyšší rank byl již dosažen!";
+$lang['install'] = "Instalace";
+$lang['instdb'] = "Nainstalovat databázi";
+$lang['instdbsuc'] = "Databáze %s úspěšně vytvořena.";
+$lang['insterr1'] = "ATTENTION: Pokoušíte se Nainstalovat Ranksystem, ale již existuje databáze s tímto jménem \"%s\". Instalace tato databáze bude vynechána! Ujistěte se, že to tak chcete. Pokud ne, vyberte prosím jiný název databáze.";
+$lang['insterr2'] = "PDO je potřebné k instalaci, ale není nainstalované! Nainstalujte ho pomocí--> PDO a zkuste to znovu!";
+$lang['insterr3'] = "PHP musí být povoleno!. Prosím povolte PHP pomocí--> exec a zkuste to znovu!";
+$lang['insterr4'] = "Vaše PHP verze (%s) je nižší než 5.5.0. Prosím aktulizujte PHP a zkuste to znovu!";
+$lang['insterr5'] = "SimpleXML je potřebné, ale není nainstalované. Nainstalujte pomocí--> simpleXML a zkuste to znovu!";
+$lang['insterr6'] = "PHP cURL je potřebné, ale není nainstalované. Nainstalujte pomocí--> PHP cURL a zkuse to znovu!";
+$lang['insterr7'] = "PHP Zip je potřebné, ale není nainstalované. Nainstalujte pomocí--> PHP Zip a zkuse to znovu!";
+$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) je potřebné, ale není nainstalované. Nainstalujte pomocí--> PHP COM a zkuse to znovu!";
+$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) je potřebné, ale není nainstalované. Nainstalujte pomocí--> PHP PDO MySQL a zkuse to znovu!";
+$lang['isntwicfg'] = "Nemohu uložit konfiguraci do databáze! Prosím přidělte všechna práva pomocí 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') a zkuste to znovu!";
+$lang['isntwicfg2'] = "Nakonfigurujte webinterface";
+$lang['isntwichm'] = "Práva pro zápis do složky \"%s\" nejsou plná! Prosím přidělte všechna práva pomocí (Linux: chmod 777; Windows: 'full access') a aktulizujte (obnovte- F5) stránku.";
+$lang['isntwiconf'] = "Otevřete %s pro nastavení Ranksystemu.";
+$lang['isntwidbhost'] = "DB Hostaddress (/url\ Databáze):";
+$lang['isntwidbhostdesc'] = "Adresa pro databázi (IP nebo DNS)";
+$lang['isntwidbmsg'] = "Database error: ";
+$lang['isntwidbname'] = "DB Name:";
+$lang['isntwidbnamedesc'] = "Jméno databáze";
+$lang['isntwidbpass'] = "Heslo do databáze:";
+$lang['isntwidbpassdesc'] = "Heslo pro přístup do databáze";
+$lang['isntwidbtype'] = "Typ Databáze:";
+$lang['isntwidbtypedesc'] = "Databáze
Pro instalaci potřebujete PDO ovladač. Pro více informací navštivte tento web-> http://ts-n.net/ranksystem.php";
+$lang['isntwidbusr'] = "DB uživatel:";
+$lang['isntwidbusrdesc'] = "Uživatel pro přístup do databáze";
+$lang['isntwidel'] = "Prosím odstraňte 'install.php' z vašeho web uložiště.";
+$lang['isntwiusr'] = "Uživatel byl úspěšně vytvořen a přidán do Admin panelu!";
+$lang['isntwiusrcr'] = "Přidat/Vytvořit uživatele do admin panelu.";
+$lang['isntwiusrdesc'] = "Zadejte uživatelské jméno a heslo pro připojení do admin panelu. Přes admin panel můžete nastavovat Ranksystem.";
+$lang['isntwiusrh'] = "Admin panel (webinterface)";
+$lang['listacsg'] = "Aktuální úroveň";
+$lang['listcldbid'] = "uživatelské-ID-v-databázi";
+$lang['listexcept'] = "Ne, udělat vyjímku";
+$lang['listgrps'] = "Aktuální skupina od";
+$lang['listip'] = "IP adresa";
+$lang['listnick'] = "Jméno uživatele";
+$lang['listnxsg'] = "Další úroveň";
+$lang['listnxup'] = "Další úroveň za";
+$lang['listrank'] = "Úroveň";
+$lang['listseen'] = "Naposledy připojen";
+$lang['listsuma'] = "Dohromady online (aktivně)";
+$lang['listsumi'] = "Dohromady online (neaktivně)";
+$lang['listsumo'] = "Dohromady online";
+$lang['listuid'] = "unique Client-ID";
+$lang['login'] = "Přihlášení";
+$lang['msg0001'] = "Aktuální verze: %s";
+$lang['msg0002'] = "Příkazy pro ovládání bota:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t vypíše seznam příkazů\n[B]!version[/B]\t\t\t\t\t\t\t\t vypíše verzi Ranksystemu\n[B]!update[/B], [B]!checkupdate[/B]\t\t Zkontroje dostupné aktualizace, popř. aktulizuje Ranksystem\n[B]nextup[/B]\t\t\t\t\t\t\t\t\tčas do dalšího ranku (úrovně)\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestartuje Ranksystem bota\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t vypne Ranksystem bota";
+$lang['msg0003'] = "Nemáto dostatečné oprávnění pro tento příkaz!";
+$lang['msg0004'] = "Uživatel %s (%s) požádal o vypnutí Ranksystemu!";
+$lang['msg0005'] = "cya";
+$lang['msg0006'] = "brb";
+$lang['msg0007'] = "Uživatel %s (%s) požádal o restart Ranksystemu!";
+$lang['msg0008'] = "Kontrola aktulizací hotova! Pokud je update k dispozici, zanedlouho se Ranksystem začne aktulizovat.";
+$lang['msg0009'] = "Cleaning of the user-database was started. Have a look to the ranksystem log for more information.";
+$lang['nocount'] = "Uživatel %s (unique Client-ID: %s; Client-database-ID %s) je dotazovaný uživatel nebo je několikrát online (pouze první počet spojení) -> to nebude započítáno!";
+$lang['noentry'] = "Žádné vstupy nenalezeny.";
+$lang['pass'] = "Heslo";
+$lang['pass2'] = "Změnit heslo";
+$lang['pass3'] = "Staré heslo";
+$lang['pass4'] = "Nové heslo";
+$lang['pass5'] = "Zapomenuté heslo?";
+$lang['queryname'] = "První jméno bota využito, zkouším druhého bota...";
+$lang['repeat'] = "Opakovat (obnovit)";
+$lang['resettime'] = "Obnovení času online a nečinnosti uživatele% s (jedinečné ID klienta:% s; klientské databáze-ID% s) na nulu, což způsobilo, že uživatel byl odstraněn z výjimky.";
+$lang['sccrmcld'] = "Uživatel s unique Client-ID %s úspěšně odstraněn z ranksystem databáze.";
+$lang['sccupcount'] = "Úspěšně přidáno %s sekund uživateli/ům s unique Client-IDs (%s)";
+$lang['setontime'] = "Přidat čas";
+$lang['setontimedesc'] = "Přidejte čas online k předchozím vybraným klientům. Každý uživatel dostane tentokrát navíc ke svému stávajícímu online času.
Zadaný online čas bude považován za pozici a měl by se projevit okamžitě.";
+$lang['sgrpadd'] = "Udělení servergroup %s (ID: %s) uživateli s %s (unique Client-ID: %s; Client-database-ID %s).";
+$lang['sgrprerr'] = "Chyba při nastavování servergroup pro uživatele %s (unique Client-ID: %s; Client-database-ID %s)!";
+$lang['sgrprm'] = "Odstraněna servergroup %s (ID: %s) uživateli %s (unique Client-ID: %s; Client-database-ID %s).";
+$lang['size_byte'] = "B";
+$lang['size_kib'] = "KiB";
+$lang['size_mib'] = "MiB";
+$lang['size_gib'] = "GiB";
+$lang['size_tib'] = "TiB";
+$lang['size_pib'] = "PiB";
+$lang['size_eib'] = "EiB";
+$lang['size_zib'] = "ZiB";
+$lang['size_yib'] = "YiB";
+$lang['stag0001'] = "Přiřadit Servergroups";
+$lang['stag0002'] = "Povolené skupiny";
+$lang['stag0003'] = "Definujte seznam serverových skupin, které může uživatel přiřadit.
Servergroups mohou být přidány také pomocí groupID (oddělte čádkou!)
Example: 23,24,28";
+$lang['stag0004'] = "Limit skupiny";
+$lang['stag0005'] = "Limit servergroups, které mohou být nastaveny současně!";
+$lang['stag0006'] = "Je zde více uživatelů online se stejnou unique ID s vaší IP adresou. Prosím %sklikněte sem%s pro ověření.";
+$lang['stag0007'] = "Počkejte, než se vaše poslední změny projeví dříve, než změníte další věci ...";
+$lang['stag0008'] = "Skupiny úspěšně uloženy. Může to nějakou dobu trvat, než se změny projeví na TS3 serveru!";
+$lang['stag0009'] = "Nemůžete vybrat(mít) více %s skupin v ten stejný čas!";
+$lang['stag0010'] = "Zvolte prosím alespoň jednu novou skupinu.";
+$lang['stag0011'] = "Limit souběžných skupin: ";
+$lang['stag0012'] = "nastavit skupiny";
+$lang['stag0013'] = "Doplněk ON/OFF";
+$lang['stag0014'] = "Zapněte doplněk ON (enabled) nebo OFF (disabled).
Při deaktivaci doplňku se možná část na statistiku / webu skryje.";
+$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself.";
+$lang['stix0001'] = "Statistiky serveru";
+$lang['stix0002'] = "Celkem uživatelů";
+$lang['stix0003'] = "Zobrazit podrobnosti";
+$lang['stix0004'] = "Online čas všech uživatelů";
+$lang['stix0005'] = "Nejaktivnější uživatelé za celý čas";
+$lang['stix0006'] = "Nejaktivnější uživatelé za měsíc";
+$lang['stix0007'] = "Nejaktivnější uživatelé za týden";
+$lang['stix0008'] = "Využití serveru";
+$lang['stix0009'] = "Za 7 dnů";
+$lang['stix0010'] = "Za 30 dnů";
+$lang['stix0011'] = "Za 24 hodin";
+$lang['stix0012'] = "Vyberte období";
+$lang['stix0013'] = "Last day";
+$lang['stix0014'] = "Last week";
+$lang['stix0015'] = "Last month";
+$lang['stix0016'] = "Aktivní / neaktivní čas (všech Uživatelů)";
+$lang['stix0017'] = "Verze (všech uživatelů)";
+$lang['stix0018'] = "Národnost uživatelů";
+$lang['stix0019'] = "Platformy (všech uživatelů)";
+$lang['stix0020'] = "Aktuální statistiky";
+$lang['stix0023'] = "Stav serveru";
+$lang['stix0024'] = "Online";
+$lang['stix0025'] = "Offline";
+$lang['stix0026'] = "Uživatelů (Online / Max.)";
+$lang['stix0027'] = "Počet kanálů";
+$lang['stix0028'] = "Průměrný ping serveru";
+$lang['stix0029'] = "Celkem bajtů přijato";
+$lang['stix0030'] = "Celkem bajtů odesláno";
+$lang['stix0031'] = "Online čas serveru";
+$lang['stix0032'] = "Předtím Offline:";
+$lang['stix0033'] = "00 dnů/dní, 00 hodin, 00 minut, 00 sekund";
+$lang['stix0034'] = "Průměrná ztráta paketů";
+$lang['stix0035'] = "Celkové statistiky";
+$lang['stix0036'] = "Jméno serveru";
+$lang['stix0037'] = "IP/adresa serveru (adresa : Port)";
+$lang['stix0038'] = "Heslo na serveru";
+$lang['stix0039'] = "Server je veřejný";
+$lang['stix0040'] = "Server zapezpečen (Server je soukromý)";
+$lang['stix0041'] = "ID serveru";
+$lang['stix0042'] = "Platforma na které je server hostován";
+$lang['stix0043'] = "Verze serveru";
+$lang['stix0044'] = "Vytvoření serveru (dd/mm/yyyy)";
+$lang['stix0045'] = "Nahlásit server";
+$lang['stix0046'] = "Aktivováno (Aktivní)";
+$lang['stix0047'] = "Není aktivováno!";
+$lang['stix0048'] = "Nedostatek dat";
+$lang['stix0049'] = "Online čas uživatelů / za měsíc";
+$lang['stix0050'] = "Online čas uživatelů / za týden";
+$lang['stix0051'] = "TeamSpeak je rozbitý, žádné datum Vytvoření!";
+$lang['stix0052'] = "Ostatní";
+$lang['stix0053'] = "Aktivní čas (v dnech)";
+$lang['stix0054'] = "Neaktivní čas (v dnech)";
+$lang['stix0055'] = "online za posledních 24 hodin";
+$lang['stix0056'] = "online poslední %s dny/dnů";
+$lang['stix0059'] = "seznam uživatelů";
+$lang['stix0060'] = "Uživatel";
+$lang['stix0061'] = "Ukaž všechny verze";
+$lang['stix0062'] = "Ukaž všechny národnosti";
+$lang['stix0063'] = "Ukaž všechny platformy";
+$lang['stmy0001'] = "Mé statistiky";
+$lang['stmy0002'] = "Moje úroveň";
+$lang['stmy0003'] = "Pořadí v databázi (ID):";
+$lang['stmy0004'] = "Tajný ID klíč:";
+$lang['stmy0005'] = "Počet připojení na server:";
+$lang['stmy0006'] = "První připojení:";
+$lang['stmy0007'] = "Celkem online:";
+$lang['stmy0008'] = "Online za posledních %s dnů:";
+$lang['stmy0009'] = "Aktivní za posledních %s dnů:";
+$lang['stmy0010'] = "Dokončeno úkolů:";
+$lang['stmy0011'] = "Časová překážka do další hodnosti";
+$lang['stmy0012'] = "čas: legendární";
+$lang['stmy0013'] = "Protože jsi byl online %s hodin.";
+$lang['stmy0014'] = "Celkem hotovo";
+$lang['stmy0015'] = "Čas: Zlatý";
+$lang['stmy0016'] = "% hotovo pro legendární";
+$lang['stmy0017'] = "Čas: stříbro";
+$lang['stmy0018'] = "% hotovo pro zlato";
+$lang['stmy0019'] = "Čas: bronz";
+$lang['stmy0020'] = "% Completed for Silver";
+$lang['stmy0021'] = "Time: Unranked";
+$lang['stmy0022'] = "% Hotovo pro bronz";
+$lang['stmy0023'] = "Úroveň v počtu připojení";
+$lang['stmy0024'] = "Legendární";
+$lang['stmy0025'] = "Celkvově jste se připojil %s na server.";
+$lang['stmy0026'] = "Zlato";
+$lang['stmy0027'] = "Silver";
+$lang['stmy0028'] = "Bronz";
+$lang['stmy0029'] = "Bez hodnosti (unranked)";
+$lang['stmy0030'] = "Postup do další úrovně aktivity";
+$lang['stmy0031'] = "Z toho aktivní";
+$lang['stna0001'] = "Národnost";
+$lang['stna0002'] = "Statistiky";
+$lang['stna0003'] = "Kod";
+$lang['stna0004'] = "Spočítat";
+$lang['stna0005'] = "Verze";
+$lang['stna0006'] = "Platformy";
+$lang['stna0007'] = "Percentage";
+$lang['stnv0001'] = "Serverové novinky";
+$lang['stnv0002'] = "Zavřít";
+$lang['stnv0003'] = "Obnovit informace o uživateli";
+$lang['stnv0004'] = "Použijte toto obnovení pouze tehdy, když se změnily informace o TS3, například vaše uživatelské jméno TS3";
+$lang['stnv0005'] = "Funguje to pouze pokud jste právě připojeni na TeamSpeak serveru!";
+$lang['stnv0006'] = "Obnovit";
+$lang['stnv0007'] = "Válečná zona - Obsah";
+$lang['stnv0008'] = "Můžete vyzvat ostatní uživatele v bitvě mezi dvěma uživateli nebo dvěma týmy.";
+$lang['stnv0009'] = "Během bitvy je započítáván čas online týmů / uživatelů.";
+$lang['stnv0010'] = "Když bitva skončí tým / uživatel s nejvyššími vítězstvími v online čase vyhrává.";
+$lang['stnv0011'] = "(Doporučený čas pro bitvy je 48 hodin)";
+$lang['stnv0012'] = "Vítězný tým/uživatel obdrží cenu, kterou může uživatel kdykoliv použít.";
+$lang['stnv0013'] = "Zobrazí se v MÉ STATISTIKY.";
+$lang['stnv0014'] = "(Mohlo by to být online zvýšení času (2x) po dobu 8 hodin, okamžitý čas online (4 hodiny) atd.";
+$lang['stnv0015'] = "Tyto zrychlení by Vám mohli pomoci dostat se do žebříčku nejlepších uživatelů za týden.";
+$lang['stnv0016'] = "Není dostupné";
+$lang['stnv0017'] = "Nejste připojen na server! Po připojení obnovte (F5) stránku.";
+$lang['stnv0018'] = "Připojte se k serveru TS3 a poté Aktualizujte relaci stisknutím modrého tlačítka Aktualizovat v pravém horním rohu.";
+$lang['stnv0019'] = "Moje statistiky - obsah stránky";
+$lang['stnv0020'] = "Tato stránka obsahuje celkové shrnutí vašich osobních statistik a aktivity na serveru.";
+$lang['stnv0021'] = "Informace jsou shromažďovány od počátku systému Ranksystem, nejsou od počátku serveru TeamSpeak.";
+$lang['stnv0022'] = "Tato stránka obdrží své hodnoty z databáze. Takže hodnoty mohou být trochu zpožděny.";
+$lang['stnv0023'] = "Součet uvnitř tabulky se může lišit od částky „Celkový uživatel“. Důvodem je, že tyto údaje nebyly shromážděny se staršími verzemi systému Ranksystem.";
+$lang['stnv0024'] = "Ranksystem";
+$lang['stnv0025'] = "Omezený vstup";
+$lang['stnv0026'] = "Vše";
+$lang['stnv0027'] = "Chyba! Vypadá to, že Ranksystem není spojen s TeamSpeak serverem!";
+$lang['stnv0028'] = "(Nejste připojen na TS3!)";
+$lang['stnv0029'] = "Seznam všech uživatelů";
+$lang['stnv0030'] = "Informace o Ranksystemu";
+$lang['stnv0031'] = "O vyhledávacím poli můžete vyhledávat vzor v názve klienta, unique Client-ID a Client-database-ID.";
+$lang['stnv0032'] = "Můžete také použít možnosti filtru zobrazení (viz níže). Zadejte také filtr do vyhledávacího pole.";
+$lang['stnv0033'] = "Kombinace filtru a vyhledávacího vzoru je možná. Nejprve zadejte filtr bez jakéhokoli podepisování vzoru vyhledávání.";
+$lang['stnv0034'] = "Je také možné kombinovat více filtrů. Zadejte postupně toto pole do vyhledávacího pole.";
+$lang['stnv0035'] = "Příklad: filter:nonexcepted:TeamSpeakUser";
+$lang['stnv0036'] = "Zobrazit pouze klienty, které jsou vyloučeny (client, servergroup or channel vyjímka).";
+$lang['stnv0037'] = "Zobrazit pouze klienty, které nejsou vyloučeny.";
+$lang['stnv0038'] = "Zobrazit pouze klienty, které jsou online.";
+$lang['stnv0039'] = "Zobrazit pouze klienty, které nejsou online.";
+$lang['stnv0040'] = "Zobrazit pouze klienty, které jsou v definované skupině. Reprezentace pozice / úrovně aktu. Nahradit GROUPID i> s požadovaným identifikátorem serverové skupiny.";
+$lang['stnv0041'] = "Zobrazit pouze klienty, které jsou vybrány podle lastseen. Nahradit OPERATOR i> 's' & lt; nebo ">" nebo '=' nebo '! ='. A nahradit TIME i> časovým razítkem nebo datem s formátem 'Ymd Hi' (příklad: 2016-06-18 20-25). Příklad: filtr: lastseen: & lt;: 2016-06-18 20-25:";
+$lang['stnv0042'] = "Zobrazit pouze klienty, které jsou z definované země
Nahradit TS3-COUNTRY-CODE i> se zamýšlenou zemí. Seznam kódů google pro ISO 3166-1 alpha-2";
+$lang['stnv0043'] = "Připojit se na TS3";
+$lang['stri0001'] = "Informace o Ranksystemu";
+$lang['stri0002'] = "Co je to Ranksystem?";
+$lang['stri0003'] = "Je to bot pro TS3, který automaticky uděluje hodnosti (serverové skupiny) uživateli na serveru TeamSpeak 3 pro online čas nebo on-line činnost. Také shromažďuje informace a statistiky o uživateli a zobrazí výsledek na tomto webu.";
+$lang['stri0004'] = "Kdo vytvořil Ranksystem?";
+$lang['stri0005'] = "Kdy byl vytvořen Ranksystem?";
+$lang['stri0006'] = "První alpha byla vydána: 05/10/2014.";
+$lang['stri0007'] = "První beta byla vydána: 01/02/2015.";
+$lang['stri0008'] = "Nejnovější verzi najde na Ranksystem Website.";
+$lang['stri0009'] = "V čem byl Ranksystem napsán?";
+$lang['stri0010'] = "Ranksystem byl napsán v";
+$lang['stri0011'] = "Používá také následující knihovny:";
+$lang['stri0012'] = "Speciální poděkování:";
+$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - za Ruský překlad";
+$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design";
+$lang['stri0015'] = "ZanK & jacopomozzy - za Italský překlad";
+$lang['stri0016'] = "DeStRoYzR & Jehad - za Arabský překlad";
+$lang['stri0017'] = "SakaLuX - za Rumunský překlad";
+$lang['stri0018'] = "0x0539 - za Nizozemský překlad";
+$lang['stri0019'] = "Quentinti - for french translation";
+$lang['stri0020'] = "Pasha - for portuguese translation";
+$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
+$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
+$lang['sttw0001'] = "Nejlepší uživatelé";
+$lang['sttw0002'] = "Tohoto týdne";
+$lang['sttw0003'] = "S časem %s";
+$lang['sttw0004'] = "Top 10 nejlepších";
+$lang['sttw0005'] = "Hodin (Defines 100 %)";
+$lang['sttw0006'] = "%s hodin (%s%)";
+$lang['sttw0007'] = "Top 10 statistik";
+$lang['sttw0008'] = "Top 10 vs. ostatní v online čase";
+$lang['sttw0009'] = "Top 10 vs. ostatní v online čase (aktivní)";
+$lang['sttw0010'] = "Top 10 vs. ostatní v online čase (neaktivní)";
+$lang['sttw0011'] = "Top 10 (v hodinách)";
+$lang['sttw0012'] = "Ostatní čas uživatelů %s (v hodinách)";
+$lang['sttw0013'] = "S aktivním časem %s hodin";
+$lang['sttw0014'] = "hours";
+$lang['sttw0015'] = "minutes";
+$lang['sttm0001'] = "Tohoto měsíce";
+$lang['stta0001'] = "Z celého času";
+$lang['stve0001'] = "\nZdravím! %s,\nzde je [B]token[/B] pro vaše ověření v Ranksystemu:\n[B]%s[/B]\n\nA Token zadejte zde na webové stránce\n\nPokud jste nežádali o obnovu tokunu (hesla) tak tuto zprávu ignorujte. Pokud to bude opakované, kontaktujte administrátora.";
+$lang['stve0002'] = "Zpráva s tokenem byla zaslána na váš TS3 server!";
+$lang['stve0003'] = "Prosím zadejte token, který jsme Vám zaslali na TS3 server. Pokud Vám zpráva nepřišla, překontrujte si prosím unique ID.";
+$lang['stve0004'] = "Zadaný token nebyl přijat! Zkuste jiný!";
+$lang['stve0005'] = "Congratulations, you are successfully verified! You can now go on..";
+$lang['stve0006'] = "An unknown error happened. Please try it again. On repeated times contact an admin";
+$lang['stve0007'] = "Verify on TeamSpeak";
+$lang['stve0008'] = "1. Choose here your unique ID on the TS3 server to verify yourself.";
+$lang['stve0009'] = " -- select yourself -- ";
+$lang['stve0010'] = "2. You will receive a token on the TS3 server, which you have to enter here:";
+$lang['stve0011'] = "Token:";
+$lang['stve0012'] = "Ověření";
+$lang['time_ms'] = "ms";
+$lang['time_sec'] = "sekund(sec)";
+$lang['time_min'] = "minut(min.)";
+$lang['time_hour'] = "hodin(h)";
+$lang['time_day'] = "dní/dnů(d)";
+$lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' paramter (webinterface -> core), but that servergroup ID isn't existent on your TS3 server (anymore)! Please correct this or errors might happen!";
+$lang['upgrp0002'] = "Download new ServerIcon";
+$lang['upgrp0003'] = "Error while writing out the servericon.";
+$lang['upgrp0004'] = "Error while downloading TS3 ServerIcon from TS3 server: ";
+$lang['upgrp0005'] = "Error while deleting the servericon.";
+$lang['upgrp0006'] = "Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem.";
+$lang['upgrp0007'] = "Error while writing out the servergroup icon from group %s with ID %s.";
+$lang['upgrp0008'] = "Error while downloading servergroup icon from group %s with ID %s: ";
+$lang['upgrp0009'] = "Error while deleting the servergroup icon from group %s with ID %s.";
+$lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem.";
+$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
+$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server...";
+$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
+$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
+$lang['upsucc'] = "Database update successfully executed.";
+$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s).";
+$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx].";
+$lang['upusrerr'] = "Unique Client-ID %s se nemohl připojit na TeamSpeak!";
+$lang['upusrinf'] = "Uživatel %s byl úspěšně informovaný..";
+$lang['user'] = "Jméno";
+$lang['verify0001'] = "Please be sure, you are really connected to the TS3 server!";
+$lang['verify0002'] = "Enter, if not already done, the Ranksystem %sverification-channel%s!";
+$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there. This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do. More information the admin will find inside the webinterface (-> core) of the Ranksystem.
Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :(";
+$lang['verify0004'] = "No user inside the verification channel found...";
+$lang['wi'] = "Admin panel";
+$lang['wiaction'] = "Akce";
+$lang['wiadmhide'] = "Skrýt vyloučené uživatele";
+$lang['wiadmhidedesc'] = "Skrýt výjimku uživatele v následujícím výběru";
+$lang['wiadmuuid'] = "Admin ID";
+$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
This is required to reset the password of the webinterface.
Is there no unique Client-ID address defined, it is not possible to reset the password!";
+$lang['wiboost'] = "boost";
+$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated. The higher the factor, the faster an user reaches the next higher rank. Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.
servergroup ID => factor => time (in seconds)
Each entry have to separate from next with a comma.
Example: 12=>2=>6000,13=>3=>2500,14=>5=>600
On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on...";
+$lang['wibot1'] = "Ranksystem bot by měl být zastaven. Zkontrolujte níže uvedený protokol pro více informací!";
+$lang['wibot2'] = "Ranksystem bot by měl být spuštěn. Zkontrolujte níže uvedený protokol pro více informací!";
+$lang['wibot3'] = "Ranksystem bot by měl být restartován. Zkontrolujte níže uvedený protokol pro více informací!";
+$lang['wibot4'] = "Start / Stop Ranksystem bot";
+$lang['wibot5'] = "Start bot";
+$lang['wibot6'] = "Stop bot";
+$lang['wibot7'] = "Restart bot";
+$lang['wibot8'] = "Ranksystem log (extract):";
+$lang['wibot9'] = "Vyplňte všechna povinná pole před spuštěním systému Ranksystemu!";
+$lang['wichdbid'] = "Client-database-ID reset";
+$lang['wichdbiddesc'] = "Resetovat čas online uživatele, pokud se změnil jeho ID týmu TeamSpeak Client-database
Příklad: Pokud jsou klienti odebráni ze serveru TeamSpeak, dostane nový ID klientské databáze s poté se připojte k serveru.";
+$lang['wiconferr'] = "Došlo k chybě v konfiguraci systému Ranks. Přejděte na webové rozhraní a opravte nastavení jádra. Zvláště zkontrolujte konfiguraci 'rank up'!";
+$lang['wichpw1'] = "Vaše staré heslo je nesprávné. Prosím zkuste to znovu.";
+$lang['wichpw2'] = "Nové hesla se vymažou. Prosím zkuste to znovu.";
+$lang['wichpw3'] = "Heslo webové rozhraní bylo úspěšně změněno. Žádost od IP %s.";
+$lang['wichpw4'] = "Změnit heslo";
+$lang['widaform'] = "Časový formát";
+$lang['widaformdesc'] = "Vyberte formát zobrazení data.
Příklad: % a dny,% h hodiny,% i mins,% s secs";
+$lang['widbcfgsuc'] = "Databázové konfigurace byly úspěšně uloženy.";
+$lang['widbcfgerr'] = "Chyba při ukládání konfigurací databáze! Připojení selhalo nebo chyba zápisu pro 'other / dbconfig.php'";
+$lang['widelcld'] = "vymazat uživatele";
+$lang['widelcldgrp'] = "Obnovit skupiny (groups)";
+$lang['widelcldgrpdesc'] = "Rankssystém si vzpomíná na dané serverové skupiny, takže to nemusíte dávat / zkontrolovat s každým spustením pracovníka.php.
Pomocí této funkce můžete jednou jednou odstranit znalosti o daných serverových skupinách. Ve skutečnosti se řadový systém snaží poskytnout všem klientům (které jsou na serveru TS3 online) serverovou skupinu skutečné pozice. Pro každého klienta, který dostane skupinu nebo zůstane ve skupině, si Ranksystem pamatuje to tak, jak bylo popsáno na začátku.
Tato funkce může být užitečná, pokud uživatel není v serverové skupině, měl by být pro definovaný čas online.
Pozor: Spusťte to v okamžiku, kdy v následujících několika minutách nekupujete být splatný !!! Ranksystem nemůže odstranit starou skupinu, protože si ji nemůže vzpomenout ;-)";
+$lang['widelclddesc'] = "Odstranit vybrané klienty z databáze Ranksystem.
S tímto odstraněním jsou klienti na serveru TeamSpeak nedotčeni.";
+$lang['widelsg'] = "odebrat ze serverových skupin";
+$lang['widelsgdesc'] = "Zvolte, zda by klienti měli být také odstraněni z poslední známé skupiny serverů, když odstraníte klienty z databáze Ranksystem.
Bude se jednat pouze o serverové skupiny, které se týkaly systému Ranksystem";
+$lang['wideltime'] = "Doba vymazání";
+$lang['wideltimedesc'] = "Vyčistěte staré klienty z databáze Ranksystem
Zadejte čas v sekundách, který nebyl klient viděn k odstranění.
0 - odstraní všechny klienty z Ranksystem
Userdatas na serveru TeamSpeak jsou s tímto nedotčeny!";
+$lang['wiexcid'] = "kanálová výjimka";
+$lang['wiexciddesc'] = "Seznam oddělených čárkami ID kanálů, které se nepodílejí na systému Ranks.
Zůstaňte uživatelé v jednom z uvedených kanálů, čas, který bude zcela ignorován. Neexistuje ani on-line čas, ale počítá se doba nečinnosti.
Tato funkce má smysl pouze s režimem 'online čas', protože zde mohou být ignorovány například kanály AFK. Režim 'aktivní' čas , tato funkce je zbytečná, protože by byla odečtena doba nečinnosti v místnostech AFK a tudíž nebyla započítána.
Být uživatel v vyloučené kanálu, je to pro toto období poznamenáno jako' vyloučeno z Ranksystemu '. Uživatel se už nezobrazuje v seznamu 'stats / list_rankup.php', pokud se tam na něm nezobrazí vyloučené klienty (stránka Statistiky - výjimka pro klienta).";
+$lang['wiexgrp'] = "výjimka pro serverovou skupinu";
+$lang['wiexgrpdesc'] = "Čárka oddělený seznam ID serverových skupin, který by neměl být považován za Ranksystem. Uživatel v alespoň jednom z těchto ID serverových skupin bude ignorován pro hodnocení.";
+$lang['wiexres'] = "výjímkový mod";
+$lang['wiexres1'] = "výchozí (doba počítání)";
+$lang['wiexres2'] = "přestávka";
+$lang['wiexres3'] = "čas resetování";
+$lang['wiexresdesc'] = "Existují tři režimy, jak zacházet s výjimkou. V každém případě je pozici (přiřazení serverové skupiny) zakázáno. Můžete si zvolit různé možnosti, jak by měl být vynaložen čas strávený od uživatele (který je vyloučen).
1) výchozí (count time) b>: Ve výchozím nastavení Ranksystem také počítá online / aktivní čas uživatelů, které jsou vyloučeny (klient / servergroup). S výjimkou je zakázána pouze pozice (přiřazení serverové skupiny). To znamená, že pokud uživatel není více vyloučen, bude mu přiřazen do skupiny v závislosti na jeho shromážděném čase (např. Úroveň 3).
2) čas přestávky b>: Na této volbě strávit čas online a nečinně zmrznout (zlomit) na skutečnou hodnotu (předtím, než je uživatel vyloučen). Po vynechání výjimky (po odebrání výjimky pro skupinu serverů nebo odebrání pravopisu výpovědi) se počítá 'počítání'.
3) čas vynulování b>: S touto funkcí se počítá doba online a nečinnosti bude v okamžiku, kdy již uživatel není vyloučen, vynulován (vynecháním výjimky skupiny serverů nebo odebráním pravidla výjimky). Týdenní výjimka by se stále počítala, dokud se neobnoví.
Výjimka z kanálu nezáleží na tom, protože čas bude vždy ignorován (jako je režim přerušení).";
+$lang['wiexuid'] = "klientská výjimka";
+$lang['wiexuiddesc'] = "Čárka odděluje seznam jedinečných identifikátorů klientů, které by se neměly týkat systému Ranks. Uživatel v tomto seznamu bude ignorován pro hodnocení.";
+$lang['wigrptime'] = "definice pořadí";
+$lang['wigrptimedesc'] = "Definujte zde a po uplynutí této doby by měl uživatel automaticky získat předdefinovanou serverovou skupinu.
čas (sekund) => ID skupiny serverů
Důležité pro toto je 'online čas' nebo 'aktivní čas' uživatel v závislosti na nastavení režimu.
Každý záznam se oddělí od dalšího čárkou.
Čas musí být zadán kumulativní
Příklad: 60 => 9,120 => 10,180 => 11
Na tomto uživatelé dostanou po 60 sekundách servergroup 9, poté po 60 sekundách servergroup 10 a tak dále ...";
+$lang['wihladm'] = "Seznam hodnocení (režim administrátora)";
+$lang['wihladm1'] = "Přidat čas online uživateli";
+$lang['wihlcfg'] = "Základní nastavení";
+$lang['wihldb'] = "Nastavení databáze";
+$lang['wihlmsg'] = "Nastavení zpráv";
+$lang['wihlsty'] = "Nastavení stránky Statistiky";
+$lang['wihlts'] = "Nastavení nabídky TeamSpeak";
+$lang['wihlvs'] = "Různá nastavení";
+$lang['wiignidle'] = "Ignorujte volno";
+$lang['wiignidledesc'] = "Definujte dobu, po kterou bude ignorována doba nečinnosti uživatele.
Když klient na serveru nečiní nic (= nečinný), tento čas je zaznamenán systémem Ranks. S touto funkcí nebude doba pohotovosti uživatele započítána, dokud nedojde k definovanému limitu. Pouze při překročení definovaného limitu se počítá od tohoto data pro systém Ranks jako nečinný čas.
Tato funkce se přehrává pouze ve spojení s rolí 'aktivní čas'. funkce je např vyhodnotit čas poslechu v konverzacích jako aktivita.
0 = vypnout funkci
Příklad: Ignorovat nečinnost = 600 (vteřin) Klient má nečinnost 8 minuntes důsledky: 8 minut nečinnosti jsou ignorovány, a proto přijímá tento čas jako aktivní čas. Pokud se doba volnoběhu nyní zvýší na více než 12 minut, takže je čas delší než 10 minut, v tomto případě by se 2 minuty považovaly za nečinné.";
+$lang['wilog'] = "Logpath";
+$lang['wilogdesc'] = "Cesta souboru protokolu systému Ranks.
Příklad: / var / logs / ranksystem /
Ujistěte se, že webuser má oprávnění zápisu do protokolu.";
+$lang['wilogout'] = "Odhlásit se";
+$lang['wimsgmsg'] = "Zprávy";
+$lang['wimsgmsgdesc'] = "Definujte zprávu, která bude odeslána uživateli, když se zvedne další vyšší hodnost.
Tato zpráva bude odeslána prostřednictvím soukromé zprávy TS3. Takže každý znalý bb-kód může být použit, což také funguje pro normální soukromou zprávu. http://ts-n.net/lexicon.php?showid=97#lexindex dříve strávený čas lze vyjádřit argumenty: % 1 \ $ s - dny % 2 \ $ s - hodiny % 3 \ $ s -
% již připojen na% 1 \ $ s dny,% 2 \ $ s hodin a% 3 \ $ s minut na náš TS3 server.";
+$lang['wimsgsn'] = "Serverové zprávy";
+$lang['wimsgsndesc'] = "Definujte zprávu, která se zobrazí na serveru / stats / page jako serverové zprávy.
Můžete upravit výchozí html funkce
Příklad: & # 60b> pro tučné písmo b> - pro podtržení u> i> - pro obálku slov (nový řádek)";
+$lang['wimsgusr'] = "Oznámení o hodnocení";
+$lang['wimsgusrdesc'] = "Informujte uživatele se soukromou textovou zprávou o jeho pozici.";
+$lang['winav1'] = "TeamSpeak";
+$lang['winav2'] = "Databaze";
+$lang['winav3'] = "Hlavní nastavení";
+$lang['winav4'] = "Ostatní";
+$lang['winav5'] = "Zpráva";
+$lang['winav6'] = "Stránka se statistiky";
+$lang['winav7'] = "Administrace";
+$lang['winav8'] = "Start / Stop bot";
+$lang['winav9'] = "Aktualizace k dispozici!";
+$lang['winav10'] = "Použijte webinterface pouze přes% s HTTPS% s Šifrování je důležité pro zajištění ochrany osobních údajů a zabezpečení.% SPomocí použití protokolu HTTPS, který potřebuje webový server k podpoře připojení SSL.";
+$lang['winav11'] = "Zadejte prosím jedinečné ID klienta administrátora Ranksystem (Ostatní -> ID administrátora). To je velmi důležité v případě, že jste přišli o své přihlašovací údaje pro webinterface (resetovat je).";
+$lang['winav12'] = "Doplňky";
+$lang['winxinfo'] = "Příkaz \'nextup\'";
+$lang['winxinfodesc'] = "Umožňuje uživateli na serveru TS3 napsat příkaz 'nextup' do bot systému Ranksystem (dotaz) jako soukromou textovou zprávu.
Jako odpověď uživatel obdrží definovanou textovou zprávu s potřebným časem pro další rankup.
zakázáno b> - Funkce je deaktivována. Příkaz 'nextup' bude ignorován
Povoleno - pouze další pozice b> - Poskytne potřebný čas pro další skupinu
Povoleno - všechny další řady b> - Poskytne potřebný čas všem vyšším hodnostem.";
+$lang['winxmode1'] = "zakázáno";
+$lang['winxmode2'] = "povoleno - pouze další úrovně";
+$lang['winxmode3'] = "povoleno - všechny další úrovně";
+$lang['winxmsg1'] = "Zpráva";
+$lang['winxmsgdesc1'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď příkazem \ 'nextup \'.
Argumenty: % 1 $ s - dny na další rankup % 2 $ s - hodiny next rankup % 3 $ s - minuty do dalšího rankupu % 4 $ s - sekundy do dalšího rankupu % 5 $ s - název další skupiny serverů% 6 $ s - název uživatel (příjemce)
Příklad: Vaše další hodnocení bude v% 1 $ s dny,% 2 $ s hodinách a% 3 $ s minut a% 4 $ s vteřin. Další skupina serverů, které dosáhnete, je [B]% 5 $ s [/ B].";
+$lang['winxmsg2'] = "Zpráva (nejvyšší)";
+$lang['winxmsgdesc2'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď na příkaz \ 'nextup \', když uživatel již dosáhl nejvyšší pozici.
Argumenty: % 1 $ s - br>% 2 $ s - hodiny do dalšího rankupu % 3 $ s - minuty do dalšího rankupu % 4 $ s - sekundy do dalšího rankupu % 5 $ s - název další skupiny serverů % 6 $ s - jméno uživatele (příjemce)
Příklad: Dosáhli jste nejvyšší pozici za% 1 $ s dní,% 2 $ s hodin a% 3 $ s minut a % 4 $ s sekund.";
+$lang['winxmsg3'] = "Zpráva (s výjimkou)";
+$lang['winxmsgdesc3'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď na příkaz \ 'nextup \', když je uživatel vyloučen z Ranksystemu.
Argumenty: % 1 $ s - br>% 2 $ s - hodiny do dalšího rankupu % 3 $ s - minuty do dalšího rankupu % 4 $ s - sekund do dalšího rankupu % 5 $ s - název další skupiny serverů % 6 $ s - jméno uživatele (příjemce)
Příklad: Jste výjimka ze systému Ranks. Pokud chcete hodit, kontaktujte administrátora na serveru TS3.";
+$lang['wirtpw1'] = "Promiň Bro, už jste zapomněli zadat vaše ID administrátora do webového rozhraní dříve. Neexistuje žádný způsob, jak obnovit heslo!";
+$lang['wirtpw2'] = "Administrátorský identifikátor nebyl nalezen na serveru TS3. Musíte být online s jedinečným ID klienta, který je uložen jako ID administrátora.";
+$lang['wirtpw3'] = "Vaše IP adresa neodpovídá adrese IP administrátora na serveru TS3. Ujistěte se, že máte stejnou IP adresu online na serveru TS3 a také na této stránce (stejný protokol IPv4 / IPv6 je také potřeba).";
+$lang['wirtpw4'] = "\nHeslo webového rozhraní bylo úspěšně obnoveno.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s";
+$lang['wirtpw5'] = "Byla odeslána soukromá textová zpráva TeamSpeak 3 adminu s novým heslem. Klikněte zde% s pro přihlášení.";
+$lang['wirtpw6'] = "Heslo webového rozhraní bylo úspěšně resetováno. Požadavek na IP% s.";
+$lang['wirtpw7'] = "Obnovit heslo";
+$lang['wirtpw8'] = "Zde můžete obnovit heslo webinterface.";
+$lang['wirtpw9'] = "Pro obnovení hesla je třeba provést následující kroky:";
+$lang['wirtpw10'] = "Musíte být online na serveru TeamSpeak3.";
+$lang['wirtpw11'] = "Musíte být online s jedinečným ID klienta, který je uložen jako ID administrátora.";
+$lang['wirtpw12'] = "Musíte být online se stejnou IP adresou na serveru TeamSpeak3 jako zde na této stránce (stejný protokol IPv4 / IPv6).";
+$lang['wiselcld'] = "vyberte klienty";
+$lang['wiselclddesc'] = "Vyberte klienty podle jejich posledního známého uživatelského jména, jedinečného ID klienta nebo ID databáze klienta. Více možností je možné vybrat.";
+$lang['wishcolas'] = "skutečná serverová skupina";
+$lang['wishcolasdesc'] = "Zobrazit sloupec 'aktuální serverová skupina' v list_rankup.php";
+$lang['wishcolat'] = "aktivní čas";
+$lang['wishcolatdesc'] = "Zobrazit sloupcový součet. aktivní čas 'v list_rankup.php";
+$lang['wishcolcld'] = "Jméno klienta";
+$lang['wishcolclddesc'] = "Zobrazit sloupec 'Název klienta' v list_rankup.php";
+$lang['wishcoldbid'] = "database-ID";
+$lang['wishcoldbiddesc'] = "Zobrazit sloupec 'Client-database-ID' ve sloupci list_rankup.php";
+$lang['wishcolgs'] = "aktuální skupina od";
+$lang['wishcolgsdesc'] = "Zobrazit aktuální sloupec 'od roku' v list_rankup.php";
+$lang['wishcolit'] = "doba nečinnosti";
+$lang['wishcolitdesc'] = "Zobrazit sloupec 'součet čas nečinnosti' v list_rankup.php";
+$lang['wishcolls'] = "naposledy viděn";
+$lang['wishcollsdesc'] = "Zobrazit sloupec 'naposledy viděný' v list_rankup.php";
+$lang['wishcolnx'] = "další úroveň";
+$lang['wishcolnxdesc'] = "Zobrazit sloupec 'další pozice nahoru' v list_rankup.php";
+$lang['wishcolot'] = "online čas";
+$lang['wishcolotdesc'] = "Zobrazit sloupcový součet. online čas 'v list_rankup.php";
+$lang['wishcolrg'] = "rank/úroveň";
+$lang['wishcolrgdesc'] = "Zobrazit sloupec 'rank' v list_rankup.php";
+$lang['wishcolsg'] = "další serverová skupina";
+$lang['wishcolsgdesc'] = "Zobrazit sloupec 'next servergroup' v list_rankup.php";
+$lang['wishcoluuid'] = "Client-ID";
+$lang['wishcoluuiddesc'] = "Zobrazit sloupec 'unique Client ID' v list_rankup.php";
+$lang['wishexcld'] = "s výjimkou klienta";
+$lang['wishexclddesc'] = "Zobrazit klienty v seznamu_rankup.php, které jsou vyloučeny, a proto se nezúčastní systému Ranks.";
+$lang['wishexgrp'] = "s výjimkou skupin";
+$lang['wishexgrpdesc'] = "Zobrazte klienty v seznamu_rankup.php, které jsou v seznamu 'výjimka pro klienty' a neměli by se považovat za systém Ranks.";
+$lang['wishhicld'] = "Klienti na nejvyšší úrovni";
+$lang['wishhiclddesc'] = "Zobrazit klienty v seznamu_rankup.php, který dosáhl nejvyšší úrovně v systému Ranks.";
+$lang['wishnav'] = "zobrazit navigaci na webu";
+$lang['wishnavdesc'] = "Zobrazit stránku navigace na stránce 'statistiky'.
Pokud je tato možnost deaktivována na stránce statistik, navigace na webu bude skryta. 'stats / list_rankup.php' a vložte jej jako rámeček do stávajícího webu nebo do tabulky.";
+$lang['wisupidle'] = "Mod";
+$lang['wisupidledesc'] = "Existují dva režimy, protože může být započítán čas a může se použít pro zvýšení počtu bodů.
1) online čas: Zde je zohledněna čistá doba online uživatele (viz sloupec 'Součet online času 'v' stats / list_rankup.php ')
2) aktivní čas: bude odečten z online času uživatele, neaktivního času (nečinnosti) (viz sloupec' součet aktivního času 'v 'stats / list_rankup.php').
Změna režimu s již delší běžící databází se nedoporučuje, ale může fungovat.";
+$lang['wisvconf'] = "uložit";
+$lang['wisvsuc'] = "Změny byly úspěšně uloženy!";
+$lang['wisvres'] = "Potřebujete restartovat systém Ranks předtím, než se změny projeví! % s";
+$lang['witime'] = "Časové pásmo";
+$lang['witimedesc'] = "Vyberte časové pásmo hostované serveru.";
+$lang['wits3avat'] = "Avatar Delay";
+$lang['wits3avatdesc'] = "Definujte čas v sekundách, abyste zpožděli stahování změněných avatarů TS3.
Tato funkce je užitečná zejména pro (hudební) boty, které mění svůj pravidelný avatar.";
+$lang['wits3dch'] = "Výchozí kanál";
+$lang['wits3dchdesc'] = "Identifikátor kanálu, se kterým by se bot měl spojit.
Po přihlášení na server TeamSpeak bude bot připojen k tomuto kanálu.";
+$lang['wits3host'] = "TS3 Hostaddress";
+$lang['wits3hostdesc'] = "TeamSpeak 3 adresa serveru (IP oder DNS)";
+$lang['wits3sm'] = "Slowmode";
+$lang['wits3smdesc'] = "Pomocí funkce Slowmode můžete snížit \ 'spam \'' příkazů dotazů na server TeamSpeak. Tím zabráníte zákazu v případě povodní. Příkazy TeamSpeak Query jsou zpožděny touto funkcí.
!!! TAKÉ ZTRÁTAJÍ POUŽITÍ PROCESU !!!
Aktivace se nedoporučuje, pokud není požadována. Zpoždění zvyšuje trvání bot, což je nepřesné.
The last column shows the required time for one duration (in seconds):
Consequently, the values (times) with the ultra delay become inaccurate by about 65 seconds! Depending on, what to do and/or server size even higher!";
+$lang['wits3qnm'] = "Název Bota";
+$lang['wits3qnm2'] = "2. bot- jméno";
+$lang['wits3qnm2desc'] = "Název bot, pokud se první používá již.";
+$lang['wits3qnmdesc'] = "Název, s tím spojením dotazu bude vytvořen. Můžete jej pojmenovat zdarma.";
+$lang['wits3querpw'] = "TS3 Query-Password";
+$lang['wits3querpwdesc'] = "TeamSpeak 3 query password Heslo pro uživatele query.";
+$lang['wits3querusr'] = "TS3 Query-uživatel";
+$lang['wits3querusrdesc'] = "TeamSpeak 3 query (přihlašovací jméno) Ve výchozím nastavení nastaveno-> serveradmin Samozřejmě můžete vytvořit nový query účet přímo pro Ranksystem. Potřebné oprávnění najdete zde: http://ts-n.net/ranksystem.php";
+$lang['wits3query'] = "TS3 Query-Port";
+$lang['wits3querydesc'] = "TeamSpeak 3 query port Ve výchozím nastavení > 10011 (TCP) Pokud nepoužíváte výchozí port (10011) koukněte do configu--> 'ts3server.ini'.";
+$lang['wits3voice'] = "TS3 Voice-Port";
+$lang['wits3voicedesc'] = "TeamSpeak 3 voice port Default is 9987 (UDP) Toto je port, který používáš při připojení na TS3 server v TS3 Clientu.";
+$lang['wiverify'] = "Verification-Channel";
+$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
+$lang['wivlang'] = "Jazyk";
+$lang['wivlangdesc'] = "Nastavte hlavní jazyk pro Ranksystem
Jazyk můžete kdykoliv změnit.";
+?>
\ No newline at end of file
diff --git a/languages/core_de.php b/languages/core_de.php
index 3a466b7..709d45f 100644
--- a/languages/core_de.php
+++ b/languages/core_de.php
@@ -15,7 +15,6 @@ $lang['cleanrs'] = "Clients in der Ranksystem Datenbank: %s";
$lang['cleants'] = "Clients in der TeamSpeak Datenbank gefunden: %s (von %s)";
$lang['clean0001'] = "Nicht benötigtes Avatar %s (ehemals eindeutige Client-ID: %s) erfolgreich gelöscht.";
$lang['clean0002'] = "Fehler beim Löschen eines nicht benötigten Avatars %s (eindeutige Client-ID: %s). Bitte überprüfe die Zugriffsrechte auf das Verzeichnis 'avatars'!";
-$lang['clean0003'] = "Überprüfung der zu löschenden User abgeschlossen. Es gab nichts zu löschen.";
$lang['clean0003'] = "Überprüfung der Datenbankbereinigung abgeschlossen. Alle unnötigen Daten wurden gelöscht.";
$lang['clean0004'] = "Überprüfung der zu löschenden User abgeschlossen. Nichs wurde getan, da die Funktion 'Clientlöschung' deaktiviert ist (Webinterface - Kern).";
$lang['days'] = "%s Tage";
@@ -297,8 +296,9 @@ $lang['stri0018'] = "Quentinti - für die französische Übersetzung";
$lang['stri0020'] = "Pasha - für die portugiesische Übersetzung";
$lang['stri0021'] = "Shad86 - für den super Support auf GitHub & unserem Public TS3 server, die vielen Ideen, dem Pre-Testen des ganzen Shits & vielem mehr";
-$lang['stri0022'] = "mightybrocolli - für die vielen Ideen & dem Pre-Testen";
+$lang['stri0022'] = "mightyBroccoli - für die vielen Ideen & dem Pre-Testen";
$lang['stri0023'] = "Stable seit: 18.04.2016.";
+$lang['stri0024'] = "KeviN - für die tschechische Übersetzung";
$lang['sttw0001'] = "Top User";
$lang['sttw0002'] = "der Woche";
$lang['sttw0003'] = "mit %s %s online Zeit";
@@ -346,7 +346,8 @@ $lang['upgrp0010'] = "Das Icon der Servergruppe %s mit der ID %s wurde vom TS3
$lang['upgrp0011'] = "Lade neues Servergruppen-Icon für die Servergruppe %s mit der ID: %s herunter.";
$lang['upinf'] = "Eine neue Version des Ranksystems ist verfügbar. Informiere Clients auf dem Server...";
$lang['upinf2'] = "Das Ranksystem wurde kürzlich (%s) aktualisiert. Die %sChangelog%s enthält weitere Informationen über die enthaltenen Änderungen.";
-$lang['upmsg'] = "\nHey, eine neue Version des [B]Ranksystems[/B] ist verfügbar!\n\naktuelle Version: %s\n[B]neue Version: %s[/B]\n\nBitte schaue auf unsere Homepage für weitere Informationen [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarte den Update Prozess im Hintergrund. [B]Bitte prüfe die ranksystem.log![/B]";
+$lang['upmsg'] = "\nHey, eine neue Version des [B]Ranksystems[/B] ist verfügbar!\n\naktuelle Version: %s\n[B]neue Version: %s[/B]\n\nBitte schaue auf unsere Homepage für weitere Informationen [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarte den Update Prozess im Hintergrund. [B]Bitte prüfe die ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, das [B]Ranksystem[/B] wurde kürzlich aktualisiert.\n\n[B]neue Version: %s[/B]\n\nBitte schaue auf unsere Homepage für weitere Informationen [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Datenbank-Update erfolgreich durchgeführt";
$lang['upuser'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) erhält eine neue ges. online Zeit von %s (davon aktiv: %s).";
$lang['upuserboost'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) erhält eine neue ges. online Zeit von %s (davon aktiv: %s) [BOOST %sx].";
@@ -461,7 +462,7 @@ $lang['wirtpw10'] = "Du musst mit dem TeamSpeak3 Server verbunden sein.";
$lang['wirtpw11'] = "Du musst mit der eindeutigen Client-ID online sein, welche als admin ID hinterlegt wurde.";
$lang['wirtpw12'] = "Du musst mit der gleichen IP Adresse mit dem TeamSpeak3 server verbunden sein, welche auch hier auf dieser Seite genutzt wird (und auch das gleiche Protokoll IPv4 / IPv6).";
$lang['wiselcld'] = "wähle User";
-$lang['wiselclddesc'] = "Wähle User anhand des letzt bekannten Nicknamen, der eindeutigen Client-ID oder der Client-Datenbank-ID. Mehrfachselektionen sind ebenso möglich.
Größere Datenbanken können die Suche stark verlangsamen. Es wird empfohlen dann die Suche per copy and paste zu nutzen an Stelle der manuellen Eingabe.";
+$lang['wiselclddesc'] = "Wähle User anhand des letzt bekannten Nicknamen, der eindeutigen Client-ID oder der Client-Datenbank-ID. Mehrfachselektionen sind ebenso möglich.";
$lang['wishcolas'] = "aktuelle Servergruppe";
$lang['wishcolasdesc'] = "Zeige Spalte 'aktuelle Servergruppe' in der stats/list_rankup.php";
$lang['wishcolat'] = "aktive Zeit";
@@ -521,14 +522,8 @@ $lang['wits3query'] = "TS3 Query-Port";
$lang['wits3querydesc'] = "TeamSpeak 3 Query Port Standard ist 10011 (TCP) andere Werte sollten in der 'ts3server.ini' zu finden sein.";
$lang['wits3voice'] = "TS3 Voice-Port";
$lang['wits3voicedesc'] = "TeamSpeak 3 Voice Port Standard ist 9987 (UDP) Dieser Port wird zum Verbinden mit dem TS3 Client genutzt.";
-$lang['wiupcheck'] = "Update Info";
-$lang['wiupcheckdesc'] = "Ist die Update Info aktiv, werden nachfolgend genannte User mit einer privaten Textnachricht informiert, sobald ein Update verfügbar ist.";
-$lang['wiuptime'] = "Intervall";
-$lang['wiuptimedesc'] = "Gib an alle wie viel Sekunden das Ranksystem prüfen soll, ob ein Update verfügbar ist. Beachte, bei jeder Prüfung werden die hinterlegten User über ein verfügbares Update benachrichtigt. Ist kein hinterlegter User online, wird mit dem nächsten Intervall versucht zu benachrichtigen.";
-$lang['wiupuid'] = "Empfänger";
-$lang['wiupuiddesc'] = "Eine Komma getrennte Liste von eindeutigen Client-IDs, welche via privater Textnachricht auf dem TeamSpeak über ein Update informiert werden sollen.";
$lang['wiverify'] = "Verifizierung-Channel";
$lang['wiverifydesc'] = "Hier ist die Channel-ID des Verifizierungschannels zu hinterlegen.
Dieser Channel ist manuell auf dem TeamSpeak Server anzulegen. Name, Berechtigungen und sonstige Eigenschaften können völlig nach Belieben gesetzt werden; lediglich sollten User ihn betreten können!
Die Verifizierung erfolgt durch den jeweiligen Benutzer selbst auf der Statistik-Seite (/stats/). Sie ist nur dann erforderlich, wenn eine Zuordnung des Webseitenbesuchers mit dem TeamSpeak-User nicht automatisch erfolgen kann.
Für die Verifizierung muss sich der User auf dem TeamSpeak Server in den Verifizierungschannel begeben. Dort kann er den Token empfangen, mit welchem er sich für die Statistik-Seite verifiziert.";
$lang['wivlang'] = "Sprache";
$lang['wivlangdesc'] = "Wähle die Standardsprache des Ranksystems.
Die Sprache kann über die Webseite für jeden Besucher übersteuert werden und wird dann für die laufende Sitzung gespeichert.";
-?>
+?>
\ No newline at end of file
diff --git a/languages/core_en.php b/languages/core_en.php
index ae4d6e6..43f5d9d 100644
--- a/languages/core_en.php
+++ b/languages/core_en.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - for french translation";
$lang['stri0020'] = "Pasha - for portuguese translation";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Top users";
$lang['sttw0002'] = "Of the week";
$lang['sttw0003'] = "With %s %s online time";
@@ -345,7 +346,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server...";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Database update successfully executed.";
$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s).";
$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx].";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
-$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.
On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
+$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -520,12 +522,6 @@ $lang['wits3query'] = "TS3 Query-Port";
$lang['wits3querydesc'] = "TeamSpeak 3 query port Default is 10011 (TCP) If its not default, you should find it in your 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Voice-Port";
$lang['wits3voicedesc'] = "TeamSpeak 3 voice port Default is 9987 (UDP) This is the port, you uses also to connect with the TS3 Client.";
-$lang['wiupcheck'] = "Update info";
-$lang['wiupcheckdesc'] = "If the Update info is enable, the listed user gets a notification with a private text message, once an update is available.";
-$lang['wiuptime'] = "Interval";
-$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.
Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval.";
-$lang['wiupuid'] = "Recipient";
-$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Language";
diff --git a/languages/core_fr.php b/languages/core_fr.php
index d1db9ad..18f8c84 100644
--- a/languages/core_fr.php
+++ b/languages/core_fr.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - for french translation";
$lang['stri0020'] = "Pasha - for portuguese translation";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Top des utilisateurs";
$lang['sttw0002'] = "De la semaine";
$lang['sttw0003'] = "Avec %s %s de temps en ligne";
@@ -345,7 +346,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "Une nouvelle version du Ranksystem est disponible. Informer les clients sur le serveur ...";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nHey, une nouvelle version du [B]Ranksystem[/B] est disponible !\n\nversion actuelle: %s\n[B]nouvelle version: %s[/B]\n\nS'il vous plaît consulter notre site pour plus d'informations [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nDémarrage du processus de mise à jour en arrière-plan. [B]Veuillez vérifier le ranksystem.log ![/B]";
+$lang['upmsg'] = "\nHey, une nouvelle version du [B]Ranksystem[/B] est disponible !\n\nversion actuelle: %s\n[B]nouvelle version: %s[/B]\n\nS'il vous plaît consulter notre site pour plus d'informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\nDémarrage du processus de mise à jour en arrière-plan. [B]Veuillez vérifier le ranksystem.log ![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Mise à jour de la base de données réussie.";
$lang['upuser'] = "L'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) obtient un nouveau temps (sum. temps en ligne) de %s (dont actif %s).";
$lang['upuserboost'] = "L'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) obtient un nouveau temps (sum. temps en ligne) de %s (dont actif %s) [BOOST x%s].";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "Vous devez être en ligne sur le serveur TeamSpeak3.";
$lang['wirtpw11'] = "Vous devez être en ligne avec l'identifiant unique qui est enregistré en tant qu'administrateur.";
$lang['wirtpw12'] = "Vous devez être en ligne avec la même adresse IP sur le serveur TeamSpeak 3 que sur cette page (également le même protocole IPv4 / IPv6).";
$lang['wiselcld'] = "Sélectionner des clients";
-$lang['wiselclddesc'] = "Sélectionnez les clients par leur dernier nom d'utilisateur connu, leur identifiant unique ou leur ID dans la base de données. Des sélections multiples sont également possibles.
Sur les bases de données plus importantes, cette sélection pourrait être beaucoup plus lente.Il est recommandé de copier et coller le pseudonyme complet au lieu de le taper lettre par lettre.";
+$lang['wiselclddesc'] = "Sélectionnez les clients par leur dernier nom d'utilisateur connu, leur identifiant unique ou leur ID dans la base de données. Des sélections multiples sont également possibles.";
$lang['wishcolas'] = "Actuel groupe de serveurs";
$lang['wishcolasdesc'] = "Afficher la colonne 'Actuel groupe de serveurs' dans list_rankup.php";
$lang['wishcolat'] = "Temps actif";
@@ -520,12 +522,6 @@ $lang['wits3query'] = "TS3 Query-Port";
$lang['wits3querydesc'] = "Port query TeamSpeak 3 La valeur par défaut est 10011 (TCP) Si ce n'est pas par défaut, vous devriez le trouver dans votre 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Voix-Port";
$lang['wits3voicedesc'] = "Port vocal TeamSpeak 3 La valeur par défaut est 9987 (UDP) Il s'agit du port, que vous utilisez également pour vous connecter avec le logiciel client TS3.";
-$lang['wiupcheck'] = "Information sur la mise à jour";
-$lang['wiupcheckdesc'] = "Si les informations de mise à jour sont activées, l'utilisateur inscrit obtient une notification dans un message privé, quand une mise à jour est disponible.";
-$lang['wiuptime'] = "Intervalle";
-$lang['wiuptimedesc'] = "Entrez ici combien de secondes doivent durer jusqu'à ce que le Ranksystem vérifie les mises à jour disponibles.
Attention, pour chaque contrôle, l'utilisateur inscrit obtient une notification. Si aucun des utilisateurs listés n'est en ligne, le Ranksystem essaiera de le notifier lors de l'intervalle suivant.";
-$lang['wiupuid'] = "Bénéficiaire";
-$lang['wiupuiddesc'] = "Une virgule sépare une liste d'identifiant unique de clients, qui doivent être informés sur le TeamSpeak par message privé des mises à jour disponibles.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Langue";
diff --git a/languages/core_it.php b/languages/core_it.php
index 4b484c6..83ef54b 100644
--- a/languages/core_it.php
+++ b/languages/core_it.php
@@ -1,7 +1,7 @@
L'utente è stato aggiunto al sistema.";
-$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s.";
+$lang['brute'] = "Rilevati molti accessi non corretti nell'interfaccia web. Login bloccato per 300 secondi! Ultimo accesso dall'IP %s.";
$lang['changedbid'] = "L'utente %s (unique Client-ID: %s) ha ottenuto un nuovo database-ID (%s). Aggiorna il vecchio Client-database-ID (%s) e resetta il tempo raggiunto!";
$lang['crawl'] = "Scansione degli utenti connessi e conteggio delle attività...";
$lang['clean'] = "Scansione degli utenti che vanno eliminati...";
@@ -13,24 +13,24 @@ $lang['cleanp'] = "tempo di pulitura del database";
$lang['cleanpdesc'] = "Imposta il tempo che deve trascorrere alla prossima pulitura del database.
Imposta il tempo in secondi.
È consigliato eseguire la 'pulitura' del database almeno una volta al giorno, in quanto il tempo di 'pulitura' del database aumenta nel caso vi sia un database di grandi dimensioni.";
$lang['cleanrs'] = "Numero di utenti trovati nel database del Ranksystem: %s";
$lang['cleants'] = "Numero di utenti trovati nel database di TeamSpeak: %s (of %s)";
-$lang['clean0001'] = "Deleted unnecessary avatar %s (erstwhile unique Client-ID: %s) successfully.";
-$lang['clean0002'] = "Error while deleting unnecessary avatar %s (unique Client-ID: %s). Please check the permission for the folder 'avatars'!";
-$lang['clean0003'] = "Check for cleaning database done. All unnecessary stuff was deleted.";
-$lang['clean0004'] = "Check for deleting users done. Nothing was changed, because function 'clean clients' is disabled (webinterface - core).";
+$lang['clean0001'] = "Avatar non necessario eliminato con successo %s (erstwhile unique Client-ID: %s).";
+$lang['clean0002'] = "Errore durante l'eliminazione di avatar non necessari %s (unique Client-ID: %s). Controlla i permessi per la cartella 'avatars'!";
+$lang['clean0003'] = "Controllo per la pulizia del database completato. Tutto ciò non necessario è stato eliminato.";
+$lang['clean0004'] = "Controllo per l'eliminazione di utenti completato. Nulla è stato cambiato, perchè la funzione 'clean clients' è disabilitata (webinterface - core).";
$lang['days'] = "%s giorni";
$lang['dbconerr'] = "Connessione al Database fallita: ";
$lang['delcldgrpif'] = "Errore nella rimozione delle informazioni del servergroup: %s";
$lang['delcldgrpsc'] = "Informazioni su servergroup per l'utente %s cancellate correttamente.";
$lang['delclientsif'] = "%s Utenti cancellati dal database del Ranksystem!";
$lang['delclientssc'] = "%s Utenti correttamente cancellati dal database del Ranksystem!";
-$lang['errgrpid'] = "Your changes were not stored to the database due errors occurred. Please fix the problems and save your changes after!";
-$lang['errgrplist'] = "Error while getting servergrouplist: ";
+$lang['errgrpid'] = "Le tue modifiche non sono state archiviate nel database a causa di alcuni errori. Risolvi i problemi e poi salva le modifiche!";
+$lang['errgrplist'] = "Errore nel ricevere servergrouplist: ";
$lang['errlogin'] = "Nome utente e/o password errati! Riprova...";
$lang['errlogin2'] = "Protezione attacchi brute force: Riprova in %s secondi!";
$lang['errlogin3'] = "Protezione attacchi brute force: Hai commesso troppi errori. Sei stato bannato per 5 minuti!";
$lang['error'] = "Errore ";
-$lang['errorts3'] = "TS3 Error: ";
-$lang['errperm'] = "Please check the permission for the folder '%s'!";
+$lang['errorts3'] = "Errore TS3: ";
+$lang['errperm'] = "Controlla i permessi per la cartella '%s'!";
$lang['errremgrp'] = "Errore nella rimozione dell'utente: %s (Client-ID) Dal server Group con il servergroup-database-ID: %s!";
$lang['errremdb'] = "Errore nella rimozione dell'utente: %s (Client-ID) dal database del RankSystem!";
$lang['errselusr'] = "Seleziona almeno un utente!";
@@ -92,15 +92,15 @@ $lang['msg0004'] = "Il client %s (%s) ha richiesto uno shotdown.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Il client %s (%s) ha richiesto un restart.";
-$lang['msg0008'] = "Update check done. If an update is available, it will runs immediately.";
-$lang['msg0009'] = "Cleaning of the user-database was started. Have a look to the ranksystem log for more information.";
+$lang['msg0008'] = "Controllo aggiornamenti completato. Se un aggiornamento è disponibile, Funzionerà immediatamente.";
+$lang['msg0009'] = "Pulizia del database-utenti iniziata. Controlla i logs del RankSystem per maggiori informazioni.";
$lang['nocount'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) è una query oppure effettua molte connessioni (conterà solo la prima connessione) -> Non verrà contato!";
$lang['noentry'] = "Nessuna voce trovata..";
$lang['pass'] = "Password";
$lang['pass2'] = "Cambia la password";
$lang['pass3'] = "vecchia password";
$lang['pass4'] = "nuova password";
-$lang['pass5'] = "dimenticato password?";
+$lang['pass5'] = "Password Dimenticata?";
$lang['queryname'] = "Il primo nome del bot è già in uso. Sto riprovando con il secondo...";
$lang['repeat'] = "ripetere";
$lang['resettime'] = "Resetta il tempo online e in idle dell'utente %s (Client-ID univico: %s; Client-database-ID %s), perchè è stato rimmosso perchè escluso.";
@@ -132,9 +132,9 @@ $lang['stag0009'] = "Non puoi scegliere più di %s gruppi nello stesso momento
$lang['stag0010'] = "Per favore scegli almeno un gruppo.";
$lang['stag0011'] = "Limite gruppi simultanei: ";
$lang['stag0012'] = "Imposta gruppi";
-$lang['stag0013'] = "Addon ON/OFF";
+$lang['stag0013'] = "Addons ON/OFF";
$lang['stag0014'] = "Imposta l'Addon su on (abilitato) o off (disabilitato).
nel disabilitare l'addon una parte della pagina stats/ potrebbe essere nascosta.";
-$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself.";
+$lang['stag0015'] = "Non è possibile trovarti nel server TS3. %sClicca Qui%s per essere verificato.";
$lang['stix0001'] = "Statistiche del server";
$lang['stix0002'] = "Utenti totali";
$lang['stix0003'] = "Vedi dettagli";
@@ -289,15 +289,16 @@ $lang['stri0011'] = "Utilizza inoltre le seguenti librerie:";
$lang['stri0012'] = "Un ringraziamento speciale a:";
$lang['stri0013'] = "sergey, Arselopster & DeviantUser - per la traduzione in Russo";
$lang['stri0014'] = "Bejamin Frost - per i primi design del bootstrap";
-$lang['stri0015'] = "ZanK & jacopomozzy - per la traduzione in Italiano";
+$lang['stri0015'] = "ZanK & jacopomozzy - per la traduzione in Italiano";
$lang['stri0016'] = "DeStRoYzR & Jehad - per aver avviato la traduzione in Arabo";
$lang['stri0017'] = "SakaLuX - per aver avviato la traduzione in Rumeno";
$lang['stri0018'] = "0x0539 - per la traduzione in Olandese";
$lang['stri0019'] = "Quentinti - per la traduzione in Francese";
$lang['stri0020'] = "Pasha - per la traduzione in Portoghese";
-$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
-$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0021'] = "Shad86 - Per il grande supporto su GitHub e sul nostro server pubblico, per aver condiviso le sue idee, per aver pre-testato tutto ciò e molto altro";
+$lang['stri0022'] = "mightybrocolli - per aver condiviso le sue idee e per il pre-testing";
+$lang['stri0023'] = "Versione stabile dal: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Top utenti";
$lang['sttw0002'] = "Della settimana";
$lang['sttw0003'] = "con %s %s di tempo online";
@@ -312,10 +313,10 @@ $lang['sttw0011'] = "Top 10 (in ore)";
$lang['sttw0012'] = "Gli altri %s utenti (in ore)";
$lang['sttw0013'] = "con %s %s di tempo attivo";
$lang['sttw0014'] = "ore";
-$lang['sttw0015'] = "minutes";
+$lang['sttw0015'] = "minuti";
$lang['sttm0001'] = "Del mese";
$lang['stta0001'] = "Di sempre";
-$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin.";
+$lang['stve0001'] = "\nSalve %s,\nPer essere verificato nel RankSystem clicca il link qui sotto:\n[B]%s[/B]\n\nSe il link non funziona, puoi inserire il token manualmente:\n%s\n\nSe non hai eseguito tu questa richiesta, allora ignora questo messaggio. Se stai ricevendo questo messaggio varie volte, contatta un Admin.";
$lang['stve0002'] = "Un messaggio contenente il token ti è stato inviato in chat privata sul server Ts3.";
$lang['stve0003'] = "Inserisci il token che hai ricevuto nel server Ts3. Se non hai ricevuto il messaggio, assicurati di aver selezionato l'Unique ID corretto.";
$lang['stve0004'] = "Il token inserito è errato! Per favore reinseriscilo.";
@@ -332,30 +333,31 @@ $lang['time_sec'] = "Sec(s)";
$lang['time_min'] = "Min(s)";
$lang['time_hour'] = "Ora(e)";
$lang['time_day'] = "Giorno(i)";
-$lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' paramter, but that servergroup ID isn't exitent on your TS3 server (anymore)! Please correct this or errors might happen!";
-$lang['upgrp0002'] = "Download new ServerIcon";
-$lang['upgrp0003'] = "Error while writing out the servericon.";
-$lang['upgrp0004'] = "Error while downloading TS3 ServerIcon from TS3 server: ";
-$lang['upgrp0005'] = "Error while deleting the servericon.";
-$lang['upgrp0006'] = "Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem.";
-$lang['upgrp0007'] = "Error while writing out the servergroup icon from group %s with ID %s.";
-$lang['upgrp0008'] = "Error while downloading servergroup icon from group %s with ID %s: ";
-$lang['upgrp0009'] = "Error while deleting the servergroup icon from group %s with ID %s.";
-$lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem.";
-$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
-$lang['upinf'] = "È stata trovato una versione piu recente del RankSystem. Informa gli utenti del server...";
-$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nHey, Una nuova versione del [B]Ranksystem[/B] è disponibile!\n\nVersione corrente: %s\n[B]Nuova Versione: %s[/B]\n\nPer maggiori informazioni visita il nostro sito [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upgrp0001'] = "C'è un server group con l' ID %s Configurato nei paramentri del tuo '%s', Ma questo server group ID non esiste nel tuo server TeamSpeak3 (non più)! Correggi ciò o potrebbero verificarsi degli errori!";
+$lang['upgrp0002'] = "Scaricando la nuova ServerIcon";
+$lang['upgrp0003'] = "Errore nello scrivere l'icona del server.";
+$lang['upgrp0004'] = "Errore nel scaricare la nuova icona del server dal server TS3: ";
+$lang['upgrp0005'] = "Errore nell'eliminare l'icona del server.";
+$lang['upgrp0006'] = "L'icona del server è stata eliminata dal server TS3, ora è eliminata anche dal Ranksystem.";
+$lang['upgrp0007'] = "Errore nello scrivere l'icona del servergroup %s con l'ID %s.";
+$lang['upgrp0008'] = "Errore nello scaricare l'icona del servergroup %s con l'ID %s: ";
+$lang['upgrp0009'] = "Errore nell'eliminare l'icona del server group %s con l'ID %s.";
+$lang['upgrp0010'] = "l'icona del servergroup %s con l'ID %s è stata rimossa dal server TS3, ora è eliminata anche dal Ranksystem.";
+$lang['upgrp0011'] = "Scaricando la nuova ServerGroupIcon pwe il gruppo %s con l'ID: %s";
+$lang['upinf'] = "È stata trovata una versione piu recente del RankSystem. Informa gli utenti del server...";
+$lang['upinf2'] = "Il RankSystem è stato aggiornato di recente (%s). Controlla il %sChangelog%s per maggiori informazioni sui cambiamenti.";
+$lang['upmsg'] = "\nHey, Una nuova versione del [B]Ranksystem[/B] è disponibile!\n\nVersione corrente: %s\n[B]Nuova Versione: %s[/B]\n\nPer maggiori informazioni visita il nostro sito [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nPer iniziare l'aggiornamento in background. [B]Controlla ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Aggiornamento del database eseguito con successo.";
$lang['upuser'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) ha ottenuto un nuovo conteggio (somma del tempo online) di %s (tempo di attività (rispetto al nuovo conteggio): %s).";
$lang['upuserboost'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) ha ottenuto un nuovo conteggi (somma del tempo online) di %s (tempo di attività (rispetto al nuovo conteggio): %s) [BOOST %sx].";
$lang['upusrerr'] = "Il Client-ID Univoco %s non è stato trovato sul TeamSpeak!";
$lang['upusrinf'] = "L'utente %s è stato informato correttamente.";
$lang['user'] = "Nome Utente";
-$lang['verify0001'] = "Please be sure, you are really connected to the TS3 server!";
-$lang['verify0002'] = "Enter, if not already done, the Ranksystem %sverification-channel%s!";
-$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there. This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do. More information the admin will find inside the webinterface (-> core) of the Ranksystem.
Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :(";
-$lang['verify0004'] = "No user inside the verification channel found...";
+$lang['verify0001'] = "Assicurati di essere realmente connesso al server TS3!";
+$lang['verify0002'] = "Entra, se non l'hai già fatto, nel %sverification-channel%s!";
+$lang['verify0003'] = "Se sei già connesso al server TS3, Contatta un amministratore. L'amministratore deve creare un canale di verifica nel server TS3. Poi, Il canale deve essere impostato nel RankSystem, ciò può essere fatto solo da un amministratore. Maggiori informazioni possono essere trovate nella pagina di amministrazione (-> core) del Ranksystem.
Senza ciò non possiamo verificarti nel Ranksystem! Scusa :(";
+$lang['verify0004'] = "Nessun utente nel canale di verifica trovato...";
$lang['wi'] = "Interfaccia Web";
$lang['wiaction'] = "Azione";
$lang['wiadmhide'] = "Nascondi clients esclusi";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "Devi essere online nel server Teamspeak.";
$lang['wirtpw11'] = "Devi essere online con l' unique Client-ID, che è salvato come admin ID.";
$lang['wirtpw12'] = "Devi essere online con lo stesso indirizzo IP nel server TeamSpeak3 come qui in questa pagina (anche con lo stesso protocollo IPv4 / IPv6).";
$lang['wiselcld'] = "Seleziona gli utenti";
-$lang['wiselclddesc'] = "Seleziona gli utenti con il loro nickname, con l'ID Univoco o con il Client-database-ID. È possibile selezionare più utenti.
Nei database più grandi questa operazione potrebbe risultare molto lenta.";
+$lang['wiselclddesc'] = "Seleziona gli utenti con il loro nickname, con l'ID Univoco o con il Client-database-ID. È possibile selezionare più utenti.";
$lang['wishcolas'] = "Servergroup attuale";
$lang['wishcolasdesc'] = "Mostra colonna 'Servergroup attuale' in stats/list_rankup.php";
$lang['wishcolat'] = "Tempo Attività";
@@ -520,14 +522,8 @@ $lang['wits3query'] = "TS3 - Porta della Query";
$lang['wits3querydesc'] = "La porta per l'accesso delle query a Teamspeak La porta di default è 10011 (TCP) Se non è la porta di default e non sai che porta possa essere guarda all'interno del file 'ts3server.ini' nella directory principale del server Teamspeak dove troverai tutte le informazioni sul server.";
$lang['wits3voice'] = "TS3 - Voice-Port";
$lang['wits3voicedesc'] = "La voice port del vostro Teamspeak Di default è 9987 (UDP) Questa è inoltre la porta con cui vi connettete al TS3.";
-$lang['wiupcheck'] = "Controlla aggiornamenti";
-$lang['wiupcheckdesc'] = "Se le funzione 'Controlla aggiornamenti', la lista di utenti inseriti (ID Univoco dell'utente) riceveranno una notifica su Teamspeak (come messaggio privato), quando sarà disponibile uin aggiornamento.";
-$lang['wiuptime'] = "Intervallo di cotrollo aggiornamenti";
-$lang['wiuptimedesc'] = "Inserisci qui ogni quanti secondi il Ranksystem verificherà se vi sono aggiornamenti disponibili. Attenzione, Ogni utente inserito riceverà la notifica di aggiornamento attraverso un messaggio privato su Temaspeak. Se nessuno degli utenti inseriti sarà online, Il Ranksystem proverà ad inviare il messaggio nell'intervallo di tempo successivo.";
-$lang['wiupuid'] = "Info Aggiornamenti";
-$lang['wiupuiddesc'] = "La lista di utenti (dovrà essere inserito l'ID Univoco dell'utente(i) es. YdicUS4yofeBEONN7J3FeLic8b4=,RiGqBf8hU1kbCV/vwfPL0rzAwZQ=), che verranno informati di eventuali aggiornamenti attraverso un messaggio privato su Teamspeak.";
$lang['wiverify'] = "Verification-Channel";
-$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
+$lang['wiverifydesc'] = "Inserisci l'ID del canale di verifica.
Questo canale va impostato manualmente nel tuo server Teamspeak. Nome, permessi e altre proprietà possono essere impostati a tua scelta; Solo gli utenti potranno entrare in questo canale!
La verifica va fatta dall'utente nella sua pagina delle informazioni (/stats/). Questo è necessario solo se i visitatori della pagina web non possono essere direttamente associati al profilo del server Teamspeak.
Per essere verificato l'utente deve essere all'interno del canale di verifica sul server Teamspeak. Qui riceverà un token per la sua pagina delle statistiche.";
$lang['wivlang'] = "Lingua";
$lang['wivlangdesc'] = "Scegli la lingua di default del Ranksystem.
La lingua è inoltre selezionabile dal sito e viene salvata per tutta la sessione.";
?>
\ No newline at end of file
diff --git a/languages/core_nl.php b/languages/core_nl.php
index 82094c3..ca530d6 100644
--- a/languages/core_nl.php
+++ b/languages/core_nl.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - for french translation";
$lang['stri0020'] = "Pasha - for portuguese translation";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Top users";
$lang['sttw0002'] = "Of the week";
$lang['sttw0003'] = "With %s %s online time";
@@ -345,7 +346,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server...";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Database update successfully executed.";
$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s).";
$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx].";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
-$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.
On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
+$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -520,12 +522,6 @@ $lang['wits3query'] = "TS3 Query-Port";
$lang['wits3querydesc'] = "TeamSpeak 3 query port Default is 10011 (TCP) If its not default, you should find it in your 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Voice-Port";
$lang['wits3voicedesc'] = "TeamSpeak 3 voice port Default is 9987 (UDP) This is the port, you uses also to connect with the TS3 Client.";
-$lang['wiupcheck'] = "Update info";
-$lang['wiupcheckdesc'] = "If the Update info is enable, the listed user gets a notification with a private text message, once an update is available.";
-$lang['wiuptime'] = "Interval";
-$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.
Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval.";
-$lang['wiupuid'] = "Recipient";
-$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Language";
diff --git a/languages/core_pt.php b/languages/core_pt.php
index 8cc5e9c..38b3ba1 100644
--- a/languages/core_pt.php
+++ b/languages/core_pt.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - pela tradução em francês";
$lang['stri0020'] = "Pasha - pela tradução em português";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Top Usuários";
$lang['sttw0002'] = "Da Semana";
$lang['sttw0003'] = "Com %s %s online";
@@ -345,7 +346,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "Uma nova versão do Sistema de ranking está disponível; Informar clientes no servidor...";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nOlá, uma nova versão do [B]Sistema de ranking[/B] está disponível!\n\nversão atual: %s\n[B]nova versão: %s[/B]\n\nConfira nosso site para obter mais informações [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\niniciando o processo de atualização em segundo plano. [B]Verifique o arquivo ranksystem.log![/B]";
+$lang['upmsg'] = "\nOlá, uma nova versão do [B]Sistema de ranking[/B] está disponível!\n\nversão atual: %s\n[B]nova versão: %s[/B]\n\nConfira nosso site para obter mais informações [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\niniciando o processo de atualização em segundo plano. [B]Verifique o arquivo ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Atualização de banco de dados executada com sucesso.";
$lang['upuser'] = "Usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) recebe uma nova contagem (soma de tempo online) de %s (ativo %s).";
$lang['upuserboost'] = "Usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) recebe uma nova contagem (soma de tempo online) de %s (ativo %s) [BOOST %sx].";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "Você precisa estar online no servidor TeamSpeak3.";
$lang['wirtpw11'] = "Você precisa estar online com o ID-Ùnico, que é salvo como ID de administrador.";
$lang['wirtpw12'] = "Você precisa estar online com o mesmo endereço IP no servidor TeamSpeak3 como aqui nesta página (também o mesmo protocolo IPv4 / IPv6).";
$lang['wiselcld'] = "selecionar clientes";
-$lang['wiselclddesc'] = "Selecione os clientes pelo seu último nome de usuário conhecido, ID-Ùnico ou Cliente-ID do banco de dados. Também são possíveis seleções múltiplas.
Em bases de dados maiores, essa seleção poderia diminuir muito. Recomenda-se copiar e colar o apelido completo no interior, em vez de digitá-lo.";
+$lang['wiselclddesc'] = "Selecione os clientes pelo seu último nome de usuário conhecido, ID-Ùnico ou Cliente-ID do banco de dados. Também são possíveis seleções múltiplas.";
$lang['wishcolas'] = "Grupo atual de servidor";
$lang['wishcolasdesc'] = "Mostrar a coluna 'Grupo atual de servidor' na list_rankup.php";
$lang['wishcolat'] = "Tempo ativo";
@@ -520,12 +522,6 @@ $lang['wits3query'] = "TS3 Porta-query";
$lang['wits3querydesc'] = "TeamSpeak 3 porta query O padrão é 10011 (TCP) Se não for padrão, você deve encontrar a sua em 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Porta de voz";
$lang['wits3voicedesc'] = "TeamSpeak 3 porta de voz O padrão é 9987 (UDP) Esta é a porta, que você também usa para se conectar ao TS3 Client.";
-$lang['wiupcheck'] = "Informação de atualização";
-$lang['wiupcheckdesc'] = "Se a Informação de Atualização for habilitada, o usuário listado receberá uma notificação com uma mensagem de texto privada, uma vez que uma atualização esteja disponível.";
-$lang['wiuptime'] = "Intervalo";
-$lang['wiuptimedesc'] = "Digite aqui quantos segundos devem ter ocorrido até o Sistema d eranking verificar as atualizações disponíveis.
Atenção, para cada verificação, o usuário listado recebe uma notificação. Se nenhum dos usuários listados estiver online, o Sistema de ranking tentará notificar com o próximo intervalo.";
-$lang['wiupuid'] = "Destinatário";
-$lang['wiupuiddesc'] = "Uma lista separada de vírgulas de ID-Ùnica, que deve ser informado no TeamSpeak por meio de mensagem privada para atualizações disponíveis.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Tradução";
diff --git a/languages/core_ro.php b/languages/core_ro.php
index 7f7bced..eb1c9e5 100644
--- a/languages/core_ro.php
+++ b/languages/core_ro.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - for french translation";
$lang['stri0020'] = "Pasha - for portuguese translation";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Top users";
$lang['sttw0002'] = "Of the week";
$lang['sttw0003'] = "With %s %s online time";
@@ -345,7 +346,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server...";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]http://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].\n\nStarting the update process in background. [B]Please check the ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Database update successfully executed.";
$lang['upuser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s).";
$lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) gets a new count (sum. online time) of %s (thereof active %s) [BOOST %sx].";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
-$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.
On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
+$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID. Multiple selections are also possible.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -520,12 +522,6 @@ $lang['wits3query'] = "TS3 Query-Port";
$lang['wits3querydesc'] = "TeamSpeak 3 query port Default is 10011 (TCP) If its not default, you should find it in your 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Voice-Port";
$lang['wits3voicedesc'] = "TeamSpeak 3 voice port Default is 9987 (UDP) This is the port, you uses also to connect with the TS3 Client.";
-$lang['wiupcheck'] = "Update info";
-$lang['wiupcheckdesc'] = "If the Update info is enable, the listed user gets a notification with a private text message, once an update is available.";
-$lang['wiuptime'] = "Interval";
-$lang['wiuptimedesc'] = "Enter here how much seconds have to gone till the Ranksystem should check for available updates.
Attention, for each check the listed user gets a notification. If no one of the listed users is online, the Ranksystem will try to notificate with the next interval.";
-$lang['wiupuid'] = "Recipient";
-$lang['wiupuiddesc'] = "A comma separate list of unique Client-IDs, which shoud be informed on the TeamSpeak via private message for available updates.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Language";
diff --git a/languages/core_ru.php b/languages/core_ru.php
index b889ec7..b90dd3b 100644
--- a/languages/core_ru.php
+++ b/languages/core_ru.php
@@ -296,8 +296,9 @@ $lang['stri0018'] = "Quentinti - for french translation";
$lang['stri0020'] = "Pasha - for portuguese translation";
$lang['stri0021'] = "Shad86 - for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more";
-$lang['stri0022'] = "mightybrocolli - for sharing their ideas & pre-testing";
+$lang['stri0022'] = "mightyBroccoli - for sharing their ideas & pre-testing";
$lang['stri0023'] = "Stable since: 18/04/2016.";
+$lang['stri0024'] = "KeviN - for czech translation";
$lang['sttw0001'] = "Топ-10 пользователей";
$lang['sttw0002'] = "За неделю";
$lang['sttw0003'] = "Набрал %s %s часов онлайна";
@@ -345,7 +346,8 @@ $lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed fro
$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s";
$lang['upinf'] = "Доступна новая версия RankSystem; Сообщаю пользователям из списка на сервере...";
$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.";
-$lang['upmsg'] = "\nЭй, доступна новая версия [B]RankSystem[/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]http://ts-n.net/ranksystem.php#changelog[/URL] для получения более подробной информации.\n\nПроцесс обновления был запущен в фоне. [B]Больше информации в файле /logs/ranksystem.log![/B]";
+$lang['upmsg'] = "\nЭй, доступна новая версия [B]RankSystem[/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]https://ts-n.net/ranksystem.php#changelog[/URL] для получения более подробной информации.\n\nПроцесс обновления был запущен в фоне. [B]Больше информации в файле /logs/ranksystem.log![/B]";
+$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]https://ts-n.net/ranksystem.php#changelog[/URL].";
$lang['upsucc'] = "Обновление базы данных успешно выполнено.";
$lang['upuser'] = "Пользователь %s (Никнейм: %s; DBID: %s) получает новое количество (сумм. время подключения) из %s (активное время онлайна %s).";
$lang['upuserboost'] = "Пользователь %s (Никнейм: %s; DBID: %s) получает новое количество (сумм. время подключения) из %s (активное время онлайна %s) [BOOST %sx].";
@@ -460,7 +462,7 @@ $lang['wirtpw10'] = "Вы должны находиться онлайн на
$lang['wirtpw11'] = "Ранее в веб-панели должен был быть указан UID Администратора.";
$lang['wirtpw12'] = "Ваши IP-адреса на сервере и на данной странице сайта должны совпадать (протоколы IPv4 / IPv6 также учитываются при сверке IP).";
$lang['wiselcld'] = "Выбор пользователя";
-$lang['wiselclddesc'] = "Укажите пользователя по его последнему никнейму или уникальному идентификатору(UID), или ID в базе данных Teamspeak 3 сервера.
Для большой базы данных поиск пользователя может занять некоторое время. Рекомендуется вставлять сразу скопированный никнейм(или UID) пользователя.";
+$lang['wiselclddesc'] = "Укажите пользователя по его последнему никнейму или уникальному идентификатору(UID), или ID в базе данных Teamspeak 3 сервера.";
$lang['wishcolas'] = "Текущая группа сервера";
$lang['wishcolasdesc'] = "Показывать колонку 'Текущая группа сервера' в stats/list_rankup.php";
$lang['wishcolat'] = "Время активности";
@@ -520,12 +522,6 @@ $lang['wits3query'] = "TS3 Query-Порт";
$lang['wits3querydesc'] = "TeamSpeak 3 query-Порт По умолчанию: 10011 (TCP) Если порт изменен, то укажите его согласно настройкам из 'ts3server.ini'.";
$lang['wits3voice'] = "TS3 Voice-Порт";
$lang['wits3voicedesc'] = "TeamSpeak 3 voice-Порт По умолчанию: 9987 (UDP) Этот порт используется Teamspeak 3 клиентом для подключения к серверу.";
-$lang['wiupcheck'] = "Проверка обновлений";
-$lang['wiupcheckdesc'] = "Если проверка обновлений включена, то пользователь получит приватное сообщение, когда обновление доступно.";
-$lang['wiuptime'] = "Интервал проверки";
-$lang['wiuptimedesc'] = "Введите здесь промежуток в секундах, через который RankSystem должна проверять наличие обновлений RankSystem. Внимание, после каждой проверки перечисленные пользователи получат уведомление о новой версии. Если ни один из перечисленных пользователей не онлайн, RankSystem будет пытаться уведомить пользователей при следующем сканировании.";
-$lang['wiupuid'] = "Получатель обновлений";
-$lang['wiupuiddesc'] = "Укажите через запятую UID Teamspeak 3 пользователей, которые будут проинформированы о доступных обновлениях RankSystem, посредством отправки приватного сообщения через TeamSpeak.";
$lang['wiverify'] = "Verification-Channel";
$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.
This channel need to be set up manual on your TeamSpeak server. Name, permissions and other properties could be defined for your choice; only user should be possible to join this channel!
The verification is done by the respective user himself on the statistics-page (/stats/). This is only necessary if the website visitor can't automatically be matched/related with the TeamSpeak user.
To verify the TeamSpeak user has to be inside of the verification channel. There he can receive the token with which he verifies himself for the statistics page.";
$lang['wivlang'] = "Язык";
diff --git a/libs/combined_wi.css b/libs/combined_wi.css
index 34b95ab..67364f7 100644
--- a/libs/combined_wi.css
+++ b/libs/combined_wi.css
@@ -3,6 +3,6 @@ html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:1
body{margin-top:100px;background-color:#222}#wrapper{padding-left:0}#page-wrapper{width:100%;padding:0;background-color:#fff}.huge{line-height:normal;font-size:40px}@media(min-width:768px){body{margin-top:50px}#wrapper{padding-left:225px}#page-wrapper{padding:10px}}.top-nav{padding:0 15px}.top-nav>li{display:inline-block;float:left}.top-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px;color:#999}.top-nav>.open>a,.top-nav>.open>a:focus,.top-nav>.open>a:hover,.top-nav>li>a:focus,.top-nav>li>a:hover{color:#fff;background-color:#000}.top-nav>.open>.dropdown-menu{float:left;position:absolute;margin-top:0;border:1px solid rgba(0,0,0,.15);border-top-left-radius:0;border-top-right-radius:0;background-color:#fff;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.top-nav>.open>.dropdown-menu>li>a{white-space:normal}ul.message-dropdown{padding:0;max-height:250px;overflow-x:hidden;overflow-y:auto}li.message-preview{width:275px;border-bottom:1px solid rgba(0,0,0,.15)}li.message-preview>a{padding-top:15px;padding-bottom:15px}li.message-footer{margin:5px 0}ul.alert-dropdown{width:200px}@media(min-width:768px){.side-nav,.side-nav>li>a{width:225px}.side-nav{position:fixed;top:51px;left:225px;margin-left:-225px;border:none;border-radius:0;overflow-y:auto;background-color:#222;bottom:0;overflow-x:hidden;padding-bottom:40px}.side-nav li a:focus,.side-nav li a:hover{outline:0;background-color:#000!important}}.side-nav>li>ul{padding:0}.side-nav>li>ul>li>a{display:block;padding:10px 15px 10px 38px;text-decoration:none;color:#999}.side-nav>li>ul>li>a:hover{color:#fff}.flot-chart{display:block;height:400px}.flot-chart-content{width:100%;height:100%}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{border-color:#5cb85c;color:#fff;background-color:#5cb85c}.panel-green>a{color:#5cb85c}.panel-green>a:hover{color:#3d8b3d}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{border-color:#d9534f;color:#fff;background-color:#d9534f}.panel-red>a{color:#d9534f}.panel-red>a:hover{color:#b52b27}.panel-yellow{border-color:#f0ad4e}.panel-yellow>.panel-heading{border-color:#f0ad4e;color:#fff;background-color:#f0ad4e}.panel-yellow>a{color:#f0ad4e}.panel-yellow>a:hover{color:#df8a13}
.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
.bootstrap-touchspin .input-group-btn-vertical{position:relative;white-space:nowrap;width:1%;vertical-align:middle;display:table-cell}.bootstrap-touchspin .input-group-btn-vertical>.btn{display:block;float:none;width:100%;max-width:100%;padding:8px 10px;margin-left:-1px;position:relative}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up{border-radius:0;border-top-right-radius:4px}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down{margin-top:-2px;border-radius:0;border-bottom-right-radius:4px}.bootstrap-touchspin .input-group-btn-vertical i{position:absolute;top:3px;left:5px;font-size:9px;font-weight:400}
-select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group.bs-container{position:absolute;height:0!important;padding:0!important}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
+select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle:before{content:'';display:inline-block;width:100%}.bootstrap-select .dropdown-toggle .filter-option{position:absolute;top:0;left:0;padding-top:inherit;padding-right:inherit;padding-left:inherit;overflow:hidden;width:100%;text-align:left}.bootstrap-select .dropdown-toggle .filter-option-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:#fff}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
@font-face{font-family:'FontAwesome';src:url('fonts/fontawesome-webfont.eot?');src:url('fonts/fontawesome-webfont.eot?#iefix&') format('embedded-opentype'),url('fonts/fontawesome-webfont.woff2?') format('woff2'),url('fonts/fontawesome-webfont.woff?') format('woff'),url('fonts/fontawesome-webfont.ttf?') format('truetype'),url('fonts/fontawesome-webfont.svg?#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon-arab{background-image:url(flags/arab.svg)}.flag-icon-ptbr{background-image:url(flags/ptbr.svg)}.flag-icon-ad{background-image:url(flags/ad.svg)}.flag-icon-ae{background-image:url(flags/ae.svg)}.flag-icon-af{background-image:url(flags/af.svg)}.flag-icon-ag{background-image:url(flags/ag.svg)}.flag-icon-ai{background-image:url(flags/ai.svg)}.flag-icon-al{background-image:url(flags/al.svg)}.flag-icon-am{background-image:url(flags/am.svg)}.flag-icon-ao{background-image:url(flags/ao.svg)}.flag-icon-aq{background-image:url(flags/aq.svg)}.flag-icon-ar{background-image:url(flags/ar.svg)}.flag-icon-as{background-image:url(flags/as.svg)}.flag-icon-at{background-image:url(flags/at.svg)}.flag-icon-au{background-image:url(flags/au.svg)}.flag-icon-aw{background-image:url(flags/aw.svg)}.flag-icon-ax{background-image:url(flags/ax.svg)}.flag-icon-az{background-image:url(flags/az.svg)}.flag-icon-ba{background-image:url(flags/ba.svg)}.flag-icon-bb{background-image:url(flags/bb.svg)}.flag-icon-bd{background-image:url(flags/bd.svg)}.flag-icon-be{background-image:url(flags/be.svg)}.flag-icon-bf{background-image:url(flags/bf.svg)}.flag-icon-bg{background-image:url(flags/bg.svg)}.flag-icon-bh{background-image:url(flags/bh.svg)}.flag-icon-bi{background-image:url(flags/bi.svg)}.flag-icon-bj{background-image:url(flags/bj.svg)}.flag-icon-bl{background-image:url(flags/bl.svg)}.flag-icon-bm{background-image:url(flags/bm.svg)}.flag-icon-bn{background-image:url(flags/bn.svg)}.flag-icon-bo{background-image:url(flags/bo.svg)}.flag-icon-bq{background-image:url(flags/bq.svg)}.flag-icon-br{background-image:url(flags/br.svg)}.flag-icon-bs{background-image:url(flags/bs.svg)}.flag-icon-bt{background-image:url(flags/bt.svg)}.flag-icon-bv{background-image:url(flags/bv.svg)}.flag-icon-bw{background-image:url(flags/bw.svg)}.flag-icon-by{background-image:url(flags/by.svg)}.flag-icon-bz{background-image:url(flags/bz.svg)}.flag-icon-ca{background-image:url(flags/ca.svg)}.flag-icon-cc{background-image:url(flags/cc.svg)}.flag-icon-cd{background-image:url(flags/cd.svg)}.flag-icon-cf{background-image:url(flags/cf.svg)}.flag-icon-cg{background-image:url(flags/cg.svg)}.flag-icon-ch{background-image:url(flags/ch.svg)}.flag-icon-ci{background-image:url(flags/ci.svg)}.flag-icon-ck{background-image:url(flags/ck.svg)}.flag-icon-cl{background-image:url(flags/cl.svg)}.flag-icon-cm{background-image:url(flags/cm.svg)}.flag-icon-cn{background-image:url(flags/cn.svg)}.flag-icon-co{background-image:url(flags/co.svg)}.flag-icon-cr{background-image:url(flags/cr.svg)}.flag-icon-cu{background-image:url(flags/cu.svg)}.flag-icon-cv{background-image:url(flags/cv.svg)}.flag-icon-cw{background-image:url(flags/cw.svg)}.flag-icon-cx{background-image:url(flags/cx.svg)}.flag-icon-cy{background-image:url(flags/cy.svg)}.flag-icon-cz{background-image:url(flags/cz.svg)}.flag-icon-de{background-image:url(flags/de.svg)}.flag-icon-dj{background-image:url(flags/dj.svg)}.flag-icon-dk{background-image:url(flags/dk.svg)}.flag-icon-dm{background-image:url(flags/dm.svg)}.flag-icon-do{background-image:url(flags/do.svg)}.flag-icon-dz{background-image:url(flags/dz.svg)}.flag-icon-ec{background-image:url(flags/ec.svg)}.flag-icon-ee{background-image:url(flags/ee.svg)}.flag-icon-eg{background-image:url(flags/eg.svg)}.flag-icon-eh{background-image:url(flags/eh.svg)}.flag-icon-er{background-image:url(flags/er.svg)}.flag-icon-es{background-image:url(flags/es.svg)}.flag-icon-et{background-image:url(flags/et.svg)}.flag-icon-fi{background-image:url(flags/fi.svg)}.flag-icon-fj{background-image:url(flags/fj.svg)}.flag-icon-fk{background-image:url(flags/fk.svg)}.flag-icon-fm{background-image:url(flags/fm.svg)}.flag-icon-fo{background-image:url(flags/fo.svg)}.flag-icon-fr{background-image:url(flags/fr.svg)}.flag-icon-ga{background-image:url(flags/ga.svg)}.flag-icon-gb{background-image:url(flags/gb.svg)}.flag-icon-gd{background-image:url(flags/gd.svg)}.flag-icon-ge{background-image:url(flags/ge.svg)}.flag-icon-gf{background-image:url(flags/gf.svg)}.flag-icon-gg{background-image:url(flags/gg.svg)}.flag-icon-gh{background-image:url(flags/gh.svg)}.flag-icon-gi{background-image:url(flags/gi.svg)}.flag-icon-gl{background-image:url(flags/gl.svg)}.flag-icon-gm{background-image:url(flags/gm.svg)}.flag-icon-gn{background-image:url(flags/gn.svg)}.flag-icon-gp{background-image:url(flags/gp.svg)}.flag-icon-gq{background-image:url(flags/gq.svg)}.flag-icon-gr{background-image:url(flags/gr.svg)}.flag-icon-gs{background-image:url(flags/gs.svg)}.flag-icon-gt{background-image:url(flags/gt.svg)}.flag-icon-gu{background-image:url(flags/gu.svg)}.flag-icon-gw{background-image:url(flags/gw.svg)}.flag-icon-gy{background-image:url(flags/gy.svg)}.flag-icon-hk{background-image:url(flags/hk.svg)}.flag-icon-hm{background-image:url(flags/hm.svg)}.flag-icon-hn{background-image:url(flags/hn.svg)}.flag-icon-hr{background-image:url(flags/hr.svg)}.flag-icon-ht{background-image:url(flags/ht.svg)}.flag-icon-hu{background-image:url(flags/hu.svg)}.flag-icon-id{background-image:url(flags/id.svg)}.flag-icon-ie{background-image:url(flags/ie.svg)}.flag-icon-il{background-image:url(flags/il.svg)}.flag-icon-im{background-image:url(flags/im.svg)}.flag-icon-in{background-image:url(flags/in.svg)}.flag-icon-io{background-image:url(flags/io.svg)}.flag-icon-iq{background-image:url(flags/iq.svg)}.flag-icon-ir{background-image:url(flags/ir.svg)}.flag-icon-is{background-image:url(flags/is.svg)}.flag-icon-it{background-image:url(flags/it.svg)}.flag-icon-je{background-image:url(flags/je.svg)}.flag-icon-jm{background-image:url(flags/jm.svg)}.flag-icon-jo{background-image:url(flags/jo.svg)}.flag-icon-jp{background-image:url(flags/jp.svg)}.flag-icon-ke{background-image:url(flags/ke.svg)}.flag-icon-kg{background-image:url(flags/kg.svg)}.flag-icon-kh{background-image:url(flags/kh.svg)}.flag-icon-ki{background-image:url(flags/ki.svg)}.flag-icon-km{background-image:url(flags/km.svg)}.flag-icon-kn{background-image:url(flags/kn.svg)}.flag-icon-kp{background-image:url(flags/kp.svg)}.flag-icon-kr{background-image:url(flags/kr.svg)}.flag-icon-kw{background-image:url(flags/kw.svg)}.flag-icon-ky{background-image:url(flags/ky.svg)}.flag-icon-kz{background-image:url(flags/kz.svg)}.flag-icon-la{background-image:url(flags/la.svg)}.flag-icon-lb{background-image:url(flags/lb.svg)}.flag-icon-lc{background-image:url(flags/lc.svg)}.flag-icon-li{background-image:url(flags/li.svg)}.flag-icon-lk{background-image:url(flags/lk.svg)}.flag-icon-lr{background-image:url(flags/lr.svg)}.flag-icon-ls{background-image:url(flags/ls.svg)}.flag-icon-lt{background-image:url(flags/lt.svg)}.flag-icon-lu{background-image:url(flags/lu.svg)}.flag-icon-lv{background-image:url(flags/lv.svg)}.flag-icon-ly{background-image:url(flags/ly.svg)}.flag-icon-ma{background-image:url(flags/ma.svg)}.flag-icon-mc{background-image:url(flags/mc.svg)}.flag-icon-md{background-image:url(flags/md.svg)}.flag-icon-me{background-image:url(flags/me.svg)}.flag-icon-mf{background-image:url(flags/mf.svg)}.flag-icon-mg{background-image:url(flags/mg.svg)}.flag-icon-mh{background-image:url(flags/mh.svg)}.flag-icon-mk{background-image:url(flags/mk.svg)}.flag-icon-ml{background-image:url(flags/ml.svg)}.flag-icon-mm{background-image:url(flags/mm.svg)}.flag-icon-mn{background-image:url(flags/mn.svg)}.flag-icon-mo{background-image:url(flags/mo.svg)}.flag-icon-mp{background-image:url(flags/mp.svg)}.flag-icon-mq{background-image:url(flags/mq.svg)}.flag-icon-mr{background-image:url(flags/mr.svg)}.flag-icon-ms{background-image:url(flags/ms.svg)}.flag-icon-mt{background-image:url(flags/mt.svg)}.flag-icon-mu{background-image:url(flags/mu.svg)}.flag-icon-mv{background-image:url(flags/mv.svg)}.flag-icon-mw{background-image:url(flags/mw.svg)}.flag-icon-mx{background-image:url(flags/mx.svg)}.flag-icon-my{background-image:url(flags/my.svg)}.flag-icon-mz{background-image:url(flags/mz.svg)}.flag-icon-na{background-image:url(flags/na.svg)}.flag-icon-nc{background-image:url(flags/nc.svg)}.flag-icon-ne{background-image:url(flags/ne.svg)}.flag-icon-nf{background-image:url(flags/nf.svg)}.flag-icon-ng{background-image:url(flags/ng.svg)}.flag-icon-ni{background-image:url(flags/ni.svg)}.flag-icon-nl{background-image:url(flags/nl.svg)}.flag-icon-no{background-image:url(flags/no.svg)}.flag-icon-np{background-image:url(flags/np.svg)}.flag-icon-nr{background-image:url(flags/nr.svg)}.flag-icon-nu{background-image:url(flags/nu.svg)}.flag-icon-nz{background-image:url(flags/nz.svg)}.flag-icon-om{background-image:url(flags/om.svg)}.flag-icon-pa{background-image:url(flags/pa.svg)}.flag-icon-pe{background-image:url(flags/pe.svg)}.flag-icon-pf{background-image:url(flags/pf.svg)}.flag-icon-pg{background-image:url(flags/pg.svg)}.flag-icon-ph{background-image:url(flags/ph.svg)}.flag-icon-pk{background-image:url(flags/pk.svg)}.flag-icon-pl{background-image:url(flags/pl.svg)}.flag-icon-pm{background-image:url(flags/pm.svg)}.flag-icon-pn{background-image:url(flags/pn.svg)}.flag-icon-pr{background-image:url(flags/pr.svg)}.flag-icon-ps{background-image:url(flags/ps.svg)}.flag-icon-pt{background-image:url(flags/pt.svg)}.flag-icon-pw{background-image:url(flags/pw.svg)}.flag-icon-py{background-image:url(flags/py.svg)}.flag-icon-qa{background-image:url(flags/qa.svg)}.flag-icon-re{background-image:url(flags/re.svg)}.flag-icon-ro{background-image:url(flags/ro.svg)}.flag-icon-rs{background-image:url(flags/rs.svg)}.flag-icon-ru{background-image:url(flags/ru.svg)}.flag-icon-rw{background-image:url(flags/rw.svg)}.flag-icon-sa{background-image:url(flags/sa.svg)}.flag-icon-sb{background-image:url(flags/sb.svg)}.flag-icon-sc{background-image:url(flags/sc.svg)}.flag-icon-sd{background-image:url(flags/sd.svg)}.flag-icon-se{background-image:url(flags/se.svg)}.flag-icon-sg{background-image:url(flags/sg.svg)}.flag-icon-sh{background-image:url(flags/sh.svg)}.flag-icon-si{background-image:url(flags/si.svg)}.flag-icon-sj{background-image:url(flags/sj.svg)}.flag-icon-sk{background-image:url(flags/sk.svg)}.flag-icon-sl{background-image:url(flags/sl.svg)}.flag-icon-sm{background-image:url(flags/sm.svg)}.flag-icon-sn{background-image:url(flags/sn.svg)}.flag-icon-so{background-image:url(flags/so.svg)}.flag-icon-sr{background-image:url(flags/sr.svg)}.flag-icon-ss{background-image:url(flags/ss.svg)}.flag-icon-st{background-image:url(flags/st.svg)}.flag-icon-sv{background-image:url(flags/sv.svg)}.flag-icon-sx{background-image:url(flags/sx.svg)}.flag-icon-sy{background-image:url(flags/sy.svg)}.flag-icon-sz{background-image:url(flags/sz.svg)}.flag-icon-tc{background-image:url(flags/tc.svg)}.flag-icon-td{background-image:url(flags/td.svg)}.flag-icon-tf{background-image:url(flags/tf.svg)}.flag-icon-tg{background-image:url(flags/tg.svg)}.flag-icon-th{background-image:url(flags/th.svg)}.flag-icon-tj{background-image:url(flags/tj.svg)}.flag-icon-tk{background-image:url(flags/tk.svg)}.flag-icon-tl{background-image:url(flags/tl.svg)}.flag-icon-tm{background-image:url(flags/tm.svg)}.flag-icon-tn{background-image:url(flags/tn.svg)}.flag-icon-to{background-image:url(flags/to.svg)}.flag-icon-tr{background-image:url(flags/tr.svg)}.flag-icon-tt{background-image:url(flags/tt.svg)}.flag-icon-tv{background-image:url(flags/tv.svg)}.flag-icon-tw{background-image:url(flags/tw.svg)}.flag-icon-tz{background-image:url(flags/tz.svg)}.flag-icon-ua{background-image:url(flags/ua.svg)}.flag-icon-ug{background-image:url(flags/ug.svg)}.flag-icon-um{background-image:url(flags/um.svg)}.flag-icon-us{background-image:url(flags/us.svg)}.flag-icon-uy{background-image:url(flags/uy.svg)}.flag-icon-uz{background-image:url(flags/uz.svg)}.flag-icon-va{background-image:url(flags/va.svg)}.flag-icon-vc{background-image:url(flags/vc.svg)}.flag-icon-ve{background-image:url(flags/ve.svg)}.flag-icon-vg{background-image:url(flags/vg.svg)}.flag-icon-vi{background-image:url(flags/vi.svg)}.flag-icon-vn{background-image:url(flags/vn.svg)}.flag-icon-vu{background-image:url(flags/vu.svg)}.flag-icon-wf{background-image:url(flags/wf.svg)}.flag-icon-ws{background-image:url(flags/ws.svg)}.flag-icon-ye{background-image:url(flags/ye.svg)}.flag-icon-yt{background-image:url(flags/yt.svg)}.flag-icon-za{background-image:url(flags/za.svg)}.flag-icon-zm{background-image:url(flags/zm.svg)}.flag-icon-zw{background-image:url(flags/zw.svg)}.flag-icon-eu{background-image:url(flags/eu.svg)}.flag-icon-gb-eng{background-image:url(flags/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(flags/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(flags/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(flags/gb-wls.svg)}.flag-icon-un{background-image:url(flags/un.svg)}
\ No newline at end of file
diff --git a/libs/combined_wi.js b/libs/combined_wi.js
index 5536e6a..8c7ff00 100644
--- a/libs/combined_wi.js
+++ b/libs/combined_wi.js
@@ -7,7 +7,7 @@ var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(/<
(function(){var a;a=null,$(function(){var b,c,d;return c=$(window),d=$(".top").outerHeight()+20,b=$("#switch-create-destroy"),hljs.initHighlightingOnLoad(),$('a[href*="#"]').on("click",function(a){var b;if(a.preventDefault(),b=$($(this).attr("href").slice("#")),b.length)return c.scrollTop(b.offset().top-d)}),$('input[type="checkbox"], input[type="radio"]').not("[data-switch-no-init]").bootstrapSwitch(),$("[data-switch-get]").on("click",function(){var a;return a=$(this).data("switch-get"),alert($("#switch-"+a).bootstrapSwitch(a))}),$("[data-switch-set]").on("click",function(){var a;return a=$(this).data("switch-set"),$("#switch-"+a).bootstrapSwitch(a,$(this).data("switch-value"))}),$("[data-switch-toggle]").on("click",function(){var a;return a=$(this).data("switch-toggle"),$("#switch-"+a).bootstrapSwitch("toggle"+a.charAt(0).toUpperCase()+a.slice(1))}),$("[data-switch-set-value]").on("input",function(a){var b,c;if(a.preventDefault(),b=$(this).data("switch-set-value"),c=$.trim($(this).val()),$(this).data("value")!==c)return $("#switch-"+b).bootstrapSwitch(b,c)}),$("[data-switch-create-destroy]").on("click",function(){var a;return a=b.data("bootstrap-switch"),b.bootstrapSwitch(a?"destroy":null),$(this).button(a?"reset":"destroy")}),a=$("#confirm").bootstrapSwitch({size:"large",onSwitchChange:function(a,b){return a.preventDefault(),console.log(b,a.isDefaultPrevented())}})})}).call(this);
(function(){var t=[].slice;!function(e,i){"use strict";var n;return n=function(){function t(t,i){null==i&&(i={}),this.$element=e(t),this.options=e.extend({},e.fn.bootstrapSwitch.defaults,{state:this.$element.is(":checked"),size:this.$element.data("size"),animate:this.$element.data("animate"),disabled:this.$element.is(":disabled"),readonly:this.$element.is("[readonly]"),indeterminate:this.$element.data("indeterminate"),inverse:this.$element.data("inverse"),radioAllOff:this.$element.data("radio-all-off"),onColor:this.$element.data("on-color"),offColor:this.$element.data("off-color"),onText:this.$element.data("on-text"),offText:this.$element.data("off-text"),labelText:this.$element.data("label-text"),handleWidth:this.$element.data("handle-width"),labelWidth:this.$element.data("label-width"),baseClass:this.$element.data("base-class"),wrapperClass:this.$element.data("wrapper-class")},i),this.prevOptions={},this.$wrapper=e("