From cf9c22dab00b5a99f9e2a2624cfd56394faeb5e1 Mon Sep 17 00:00:00 2001 From: Newcomer1989 Date: Tue, 26 Jun 2018 17:00:09 +0200 Subject: [PATCH] release 1.2.7 --- index.php | 14 +- install.php | 1334 ++--- jobs/addon_assign_groups.php | 84 +- jobs/bot.php | 799 +-- jobs/calc_serverstats.php | 674 +-- jobs/calc_user.php | 511 +- jobs/calc_userstats.php | 176 +- jobs/check_db.php | 493 +- jobs/clean.php | 188 +- jobs/event_userenter.php | 63 + jobs/get_avatars.php | 88 +- jobs/handle_messages.php | 360 +- jobs/update_groups.php | 336 +- jobs/update_rs.php | 268 +- languages/add_new_language.php | 12 +- languages/core_ar.php | 1063 ++-- languages/core_cz.php | 1061 ++-- languages/core_de.php | 1061 ++-- languages/core_en.php | 1061 ++-- languages/core_fr.php | 1061 ++-- languages/core_it.php | 1061 ++-- languages/core_nl.php | 1061 ++-- languages/core_pl.php | 1065 ++-- languages/core_pt.php | 1061 ++-- languages/core_ro.php | 1061 ++-- languages/core_ru.php | 1061 ++-- languages/nations_en.php | 498 +- languages/nations_fr.php | 498 +- languages/nations_it.php | 498 +- languages/nations_pl.php | 498 +- languages/nations_pt.php | 498 +- languages/nations_ru.php | 498 +- libs/combined_st.css | 18 +- libs/combined_st.js | 14 - libs/combined_wi.css | 14 +- libs/combined_wi.js | 24 +- libs/qb.js | 7 + libs/qbh_bse.js | 11 + libs/qbh_bsw.js | 10 + libs/qbrm.js | 12 + libs/statsindex.js | 1 + libs/ts3_lib/Adapter/Abstract.php | 317 +- libs/ts3_lib/Adapter/Blacklist.php | 238 +- libs/ts3_lib/Adapter/Blacklist/Exception.php | 64 +- libs/ts3_lib/Adapter/Exception.php | 61 +- libs/ts3_lib/Adapter/FileTransfer.php | 377 +- .../Adapter/FileTransfer/Exception.php | 61 +- libs/ts3_lib/Adapter/ServerQuery.php | 521 +- libs/ts3_lib/Adapter/ServerQuery/Event.php | 337 +- .../ts3_lib/Adapter/ServerQuery/Exception.php | 61 +- libs/ts3_lib/Adapter/ServerQuery/Reply.php | 689 ++- libs/ts3_lib/Adapter/TSDNS.php | 190 +- libs/ts3_lib/Adapter/TSDNS/Exception.php | 64 +- libs/ts3_lib/Adapter/Update.php | 434 +- libs/ts3_lib/Adapter/Update/Exception.php | 64 +- libs/ts3_lib/Exception.php | 255 +- libs/ts3_lib/Helper/Char.php | 535 +- libs/ts3_lib/Helper/Convert.php | 719 +-- libs/ts3_lib/Helper/Crypt.php | 963 ++- libs/ts3_lib/Helper/Exception.php | 61 +- libs/ts3_lib/Helper/Profiler.php | 199 +- libs/ts3_lib/Helper/Profiler/Exception.php | 61 +- libs/ts3_lib/Helper/Profiler/Timer.php | 305 +- libs/ts3_lib/Helper/Signal.php | 426 +- libs/ts3_lib/Helper/Signal/Exception.php | 61 +- libs/ts3_lib/Helper/Signal/Handler.php | 153 +- libs/ts3_lib/Helper/Signal/Interface.php | 693 ++- libs/ts3_lib/Helper/String.php | 1875 +++--- libs/ts3_lib/Helper/Uri.php | 1437 ++--- libs/ts3_lib/Node/Abstract.php | 1250 ++-- libs/ts3_lib/Node/Channel.php | 1169 ++-- libs/ts3_lib/Node/Channelgroup.php | 548 +- libs/ts3_lib/Node/Client.php | 912 +-- libs/ts3_lib/Node/Exception.php | 61 +- libs/ts3_lib/Node/Host.php | 2367 ++++---- libs/ts3_lib/Node/Server.php | 5154 +++++++++-------- libs/ts3_lib/Node/Servergroup.php | 593 +- libs/ts3_lib/TeamSpeak3.php | 1896 +++--- libs/ts3_lib/Transport/Abstract.php | 537 +- libs/ts3_lib/Transport/Exception.php | 61 +- libs/ts3_lib/Transport/TCP.php | 361 +- libs/ts3_lib/Transport/UDP.php | 223 +- other/config.php | 400 +- other/load_addons_config.php | 26 +- other/phpcommand.php | 28 +- other/session.php | 163 +- stats/assign_groups.php | 324 +- stats/index.php | 1079 ++-- stats/info.php | 191 +- stats/list_rankup.php | 803 ++- stats/my_stats.php | 746 +-- stats/nations.php | 186 +- stats/nav.php | 711 +-- stats/platforms.php | 172 +- stats/top_all.php | 765 +-- stats/top_month.php | 773 +-- stats/top_week.php | 773 +-- stats/update_graph.php | 44 + stats/verify.php | 415 +- stats/versions.php | 172 +- webinterface/addon_assign_groups.php | 400 +- webinterface/admin.php | 495 +- webinterface/bot.php | 747 +-- webinterface/changepassword.php | 279 +- webinterface/core.php | 1002 ++-- webinterface/db.php | 509 +- webinterface/index.php | 286 +- webinterface/msg.php | 542 +- webinterface/nav.php | 364 +- webinterface/other.php | 545 +- webinterface/resetpassword.php | 333 +- webinterface/stats.php | 989 ++-- webinterface/ts.php | 798 +-- worker.php | 473 +- 114 files changed, 31218 insertions(+), 30844 deletions(-) create mode 100644 jobs/event_userenter.php delete mode 100644 libs/combined_st.js create mode 100644 libs/qb.js create mode 100644 libs/qbh_bse.js create mode 100644 libs/qbh_bsw.js create mode 100644 libs/qbrm.js create mode 100644 libs/statsindex.js create mode 100644 stats/update_graph.php diff --git a/index.php b/index.php index 6ed243d..b125c42 100644 --- a/index.php +++ b/index.php @@ -1,8 +1,8 @@ - \ No newline at end of file diff --git a/install.php b/install.php index 538867b..b84d4e0 100644 --- a/install.php +++ b/install.php @@ -1,654 +1,680 @@ - - - - - - - - - TS-N.NET Ranksystem - - - - - -
- -'; - - $handle=fopen('./other/dbconfig.php','w'); - if(!fwrite($handle,$newconfig)) { - $err_msg = $lang['isntwicfg']; - $err_lvl = 2; - } else { - $count = 1; - if(($mysqlcon->exec("DROP DATABASE $dbname")) === false) { } - - if($mysqlcon->exec("CREATE DATABASE $dbname") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.user (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,cldbid int(10) NOT NULL default '0',count int(10) NOT NULL default '0',ip VARBINARY(16) DEFAULT NULL,name varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci,lastseen bigint(11) NOT NULL default '0',grpid int(10) NOT NULL default '0',nextup int(10) NOT NULL default '0',idle int(10) NOT NULL default '0',cldgroup varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,online tinyint(1) NOT NULL default '0',boosttime int(10) NOT NULL default '0',rank int(10) NOT NULL default '0',platform varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,nation varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci,version varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,firstcon bigint(11) NOT NULL default '0',except tinyint(1) NOT NULL default '0',grpsince bigint(11) NOT NULL default '0',cid int(10) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } else { - if($mysqlcon->exec("CREATE INDEX user_version ON $dbname.user (version)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - if($mysqlcon->exec("CREATE INDEX user_cldbid ON $dbname.user (cldbid ASC,uuid,rank)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - if($mysqlcon->exec("CREATE INDEX user_online ON $dbname.user (online,lastseen)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE $dbname.groups (sgid int(10) NOT NULL default '0' PRIMARY KEY,sgidname varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,iconid bigint(10) NOT NULL default '0',icondate bigint(11) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $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',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++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.server_usage (timestamp bigint(11) NOT NULL default '0',clients smallint(5) NOT NULL default '0',channel smallint(5) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } else { - if($mysqlcon->exec("CREATE INDEX serverusage_timestamp ON $dbname.server_usage (timestamp)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE $dbname.user_snapshot (timestamp bigint(11) NOT NULL default '0',uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,count int(10) NOT NULL default '0',idle int(10) NOT NULL default '0',PRIMARY KEY (timestamp, uuid))") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } else { - if($mysqlcon->exec("CREATE INDEX snapshot_timestamp ON $dbname.user_snapshot (timestamp)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE $dbname.stats_server (total_user int(10) NOT NULL default '0',total_online_time bigint(13) NOT NULL default '0',total_online_month bigint(11) NOT NULL default '0',total_online_week bigint(11) NOT NULL default '0',total_active_time bigint(11) NOT NULL default '0',total_inactive_time bigint(11) NOT NULL default '0',country_nation_name_1 varchar(3) NOT NULL default '0',country_nation_name_2 varchar(3) NOT NULL default '0',country_nation_name_3 varchar(3) NOT NULL default '0',country_nation_name_4 varchar(3) NOT NULL default '0',country_nation_name_5 varchar(3) NOT NULL default '0',country_nation_1 int(10) NOT NULL default '0',country_nation_2 int(10) NOT NULL default '0',country_nation_3 int(10) NOT NULL default '0',country_nation_4 int(10) NOT NULL default '0',country_nation_5 int(10) NOT NULL default '0',country_nation_other int(10) NOT NULL default '0',platform_1 int(10) NOT NULL default '0',platform_2 int(10) NOT NULL default '0',platform_3 int(10) NOT NULL default '0',platform_4 int(10) NOT NULL default '0',platform_5 int(10) NOT NULL default '0',platform_other int(10) NOT NULL default '0',version_name_1 varchar(35) NOT NULL default '0',version_name_2 varchar(35) NOT NULL default '0',version_name_3 varchar(35) NOT NULL default '0',version_name_4 varchar(35) NOT NULL default '0',version_name_5 varchar(35) NOT NULL default '0',version_1 int(10) NOT NULL default '0',version_2 int(10) NOT NULL default '0',version_3 int(10) NOT NULL default '0',version_4 int(10) NOT NULL default '0',version_5 int(10) NOT NULL default '0',version_other int(10) NOT NULL default '0',server_status tinyint(1) NOT NULL default '0',server_free_slots smallint(5) NOT NULL default '0',server_used_slots smallint(5) NOT NULL default '0',server_channel_amount smallint(5) NOT NULL default '0',server_ping smallint(5) NOT NULL default '0',server_packet_loss float (4,4),server_bytes_down bigint(11) NOT NULL default '0',server_bytes_up bigint(11) NOT NULL default '0',server_uptime bigint(11) NOT NULL default '0',server_id smallint(5) NOT NULL default '0',server_name varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,server_pass tinyint(1) NOT NULL default '0',server_creation_date bigint(11) NOT NULL default '0',server_platform varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,server_weblist tinyint(1) NOT NULL default '0',server_version varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,user_today int(10) NOT NULL default '0',user_week int(10) NOT NULL default '0',user_month int(10) NOT NULL default '0',user_quarter int(10) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.stats_user (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,removed tinyint(1) NOT NULL default '0',rank int(10) NOT NULL default '0',total_connections smallint(5) NOT NULL default '0',count_week int(10) NOT NULL default '0',count_month int(10) NOT NULL default '0',idle_week int(10) NOT NULL default '0',idle_month int(10) NOT NULL default '0',achiev_count tinyint(1) NOT NULL default '0',achiev_time int(10) NOT NULL default '0',achiev_connects smallint(5) NOT NULL default '0',achiev_battles tinyint(3) NOT NULL default '0',achiev_time_perc tinyint(3) NOT NULL default '0',achiev_connects_perc tinyint(3) NOT NULL default '0',achiev_battles_perc tinyint(3) NOT NULL default '0',battles_total tinyint(3) NOT NULL default '0',battles_won tinyint(3) NOT NULL default '0',battles_lost tinyint(3) NOT NULL default '0',client_description varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci,base64hash varchar(58) CHARACTER SET utf8 COLLATE utf8_unicode_ci, client_total_up bigint(15) NOT NULL default '0', client_total_down bigint(15) NOT NULL default '0', active_week int(10) NOT NULL default '0', active_month int(10) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("INSERT INTO $dbname.stats_server SET total_user='9999'") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.job_check (job_name varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, timestamp bigint(11) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('calc_user_limit'),('calc_user_lastscan'),('check_update'),('get_version'),('clean_db'),('clean_clients'),('calc_server_stats'),('runtime_check'),('last_update')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.stats_nations (nation varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, count int(10) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.stats_versions (version varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, count int(10) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.stats_platforms (platform varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, count int(10) NOT NULL default '0')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.addons_config (param varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci UNIQUE, value varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("INSERT INTO $dbname.addons_config (param,value) VALUES ('assign_groups_active','0'),('assign_groups_groupids',''),('assign_groups_limit','')") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE $dbname.addon_assign_groups (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, grpids varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; - $count++; - } - - if($count == 1) { - $err_msg = sprintf($lang['instdbsuc'], $dbname); $err_lvl = NULL; - $install_webuser = 1; - } - } - fclose($handle); -} - -if (isset($_POST['install'])) { - unset($err_msg); - if ($_POST['dbtype'] == 'mysql') { - if(!in_array('pdo_mysql', get_loaded_extensions())) { - unset($err_msg); $err_msg .= "
".$lang['insterr9']; $err_lvl = 3; - } else { - $dboptions = array( - PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' - ); - } - } else { - $dboptions = array(); - } - - if(!isset($err_msg)) { - $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].'; dbname='.$_POST['dbname']; - $dbserver2 = $_POST['dbtype'].':host='.$_POST['dbhost']; - $dbexists = 0; - try { - $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass'], $dboptions); - $dbexists = 1; - } catch (PDOException $e) { - try { - $mysqlcon = new PDO($dbserver2, $_POST['dbuser'], $_POST['dbpass'], $dboptions); - } catch (PDOException $e) { - $err_msg = $lang['dbconerr'].$e->getMessage(); $err_lvl = 1; - } - } - - if(!is_writeable('./other/dbconfig.php')) { - $err_msg = $lang['isntwicfg']; - $err_lvl = 2; - } - } - - if(!isset($err_msg)) { - if(isset($_POST['installchecked'])) { - install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); - } elseif($dbexists == 1) { - $err_msg = sprintf($lang['insterr1'],$_POST['dbname']); - $err_lvl = 2; - $show_warning = 1; - } else { - install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); - } - } -} - -if(isset($_POST['confweb'])) { - require_once('other/dbconfig.php'); - $user=$_POST['user']; - $pass=password_hash($_POST['pass'], PASSWORD_DEFAULT); - $logpath = addslashes(__DIR__."/logs/"); - $dbserver = $db['type'].':host='.$db['host'].';dbname='.$db['dbname']; - $dbserver2 = $db['type'].':host='.$db['host']; - try { - $mysqlcon = new PDO($dbserver, $db['user'], $db['pass']); - } catch (PDOException $e) { - try { - $mysqlcon = new PDO($dbserver2, $db['user'], $db['pass']); - } catch (PDOException $e) { - $err_msg = $lang['dbconerr'].$e->getMessage(); $err_lvl = 1; - } - } - if(!isset($err_lvl) || $err_lvl != 1) { - $nextupinfomsg1 = $mysqlcon->quote("Your next rank up will be in %1\$s days, %2\$s hours, %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B]."); - $nextupinfomsg2 = $mysqlcon->quote("You have already reached the highest rank."); - $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,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'].'

'; - $err_msg .= sprintf($lang['isntwiconf'],"/webinterface/").'

'; - if(!unlink('./install.php')) { - $err_msg .= $lang['isntwidel']; - } - $install_finished = 1; $err_lvl = NULL; - } - } -} - -if (!isset($_POST['install']) && !isset($_POST['confweb'])) { - unset($err_msg); - unset($err_lvl); - $err_msg = ''; - if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") { - $host = ""; - $err_msg = sprintf($lang['winav10'], $host,'!
', '
'); $err_lvl = 2; - } - if(!is_writeable('./other/dbconfig.php')) { - unset($err_msg); $err_msg .= "
".$lang['isntwicfg']; $err_lvl = 3; - } - if(substr(sprintf('%o', fileperms('./avatars/')), -4)!='0777') { - unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"avatars"); $err_lvl = 3; - } - if(substr(sprintf('%o', fileperms('./tsicons/')), -4)!='0777') { - unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"tsicons"); $err_lvl = 3; - } - if(substr(sprintf('%o', fileperms('./logs/')), -4)!='0777') { - unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"logs"); $err_lvl = 3; - } - if(substr(sprintf('%o', fileperms('./update/')), -4)!='0777') { - unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"update"); $err_lvl = 3; - } - if(!class_exists('PDO')) { - unset($err_msg); $err_msg .= "
".$lang['insterr2']; $err_lvl = 3; - } - if(!function_exists('exec')) { - unset($err_msg); $err_msg .= "
".$lang['insterr3']; $err_lvl = 3; - } - if(version_compare(phpversion(), '5.5.0', '<')) { - unset($err_msg); $err_msg .= "
".sprintf($lang['insterr4'],phpversion()); $err_lvl = 3; - } - if(!function_exists('simplexml_load_file')) { - unset($err_msg); $err_msg .= "
".$lang['insterr5']; $err_lvl = 3; - } - if(!in_array('curl', get_loaded_extensions())) { - unset($err_msg); $err_msg .= "
".$lang['insterr6']; $err_lvl = 3; - } - if(!in_array('zip', get_loaded_extensions())) { - unset($err_msg); $err_msg .= "
".$lang['insterr7']; $err_lvl = 3; - } - if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - if(!in_array('com_dotnet', get_loaded_extensions())) { - unset($err_msg); $err_msg .= "
".$lang['insterr8']; $err_lvl = 3; - } - } - if(!isset($err_lvl)) { - unset($err_msg); - } -} - -function error_handling($lang,$msg,$type = NULL) { - switch ($type) { - case NULL: echo '
'; break; - case 1: echo '
'; break; - case 2: echo '
'; break; - case 3: echo '
'; break; - } - echo '',$msg,'
'; -} - -if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 || $err_lvl == 2 || $err_lvl == 3) { - if(isset($show_warning)) { - $dbhost = $_POST['dbhost']; - $dbname = $_POST['dbname']; - $dbuser = $_POST['dbuser']; - $dbpass = $_POST['dbpass']; - } else { - $dbhost = "localhost"; - $dbname = "ts3_ranksystem"; - $dbuser = ""; - $dbpass = ""; - } - ?> -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
-
-
- -
- -
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
 
-
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
-
-
 
-
-
- ",$lang['instdb'],""; - } else { - echo ""; - } - if(isset($show_warning)) { - echo ''; - } - ?> -
-
-
 
-
-
-
- - - - - - - - -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
 
-
-
-
 
-
-
- ",$lang['isntwiusrcr'],""; - } else { - echo ""; - } - ?> -
-
-
 
-
-
-
- -
- -
-
-
-
-
- - - + + + + + + + + + TS-N.NET Ranksystem + + + + + +
+ +'; + + $handle=fopen('./other/dbconfig.php','w'); + if(!fwrite($handle,$newconfig)) { + $err_msg = $lang['isntwicfg']; + $err_lvl = 2; + } else { + $count = 1; + if(($mysqlcon->exec("DROP DATABASE `$dbname`")) === false) { } + + if($mysqlcon->exec("CREATE DATABASE `$dbname`") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`user` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`cldbid` int(10) NOT NULL default '0',`count` int(10) NOT NULL default '0',`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`lastseen` bigint(11) NOT NULL default '0',`grpid` int(10) NOT NULL default '0',`nextup` int(10) NOT NULL default '0',`idle` int(10) NOT NULL default '0',`cldgroup` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`online` tinyint(1) NOT NULL default '0',`boosttime` int(10) NOT NULL default '0',`rank` int(10) NOT NULL default '0',`platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`nation` varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`firstcon` bigint(11) NOT NULL default '0',`except` tinyint(1) NOT NULL default '0',`grpsince` bigint(11) NOT NULL default '0',`cid` int(10) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } else { + if($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + if($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`groups` (`sgid` int(10) NOT NULL default '0' PRIMARY KEY,`sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`iconid` bigint(10) NOT NULL default '0',`icondate` bigint(11) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $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 utf8mb4 COLLATE utf8mb4_unicode_ci,`queryname2` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_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(35) 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 utf8mb4 COLLATE utf8mb4_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 utf8mb4 COLLATE utf8mb4_unicode_ci,`adminuuid` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`nextupinfo` tinyint(1) NOT NULL default '0',`nextupinfomsg1` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`nextupinfomsg2` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`nextupinfomsg3` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_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',`iphash` tinyint(1) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`server_usage` (`timestamp` bigint(11) NOT NULL default '0',`clients` smallint(5) NOT NULL default '0',`channel` smallint(5) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } else { + if($mysqlcon->exec("CREATE INDEX `serverusage_timestamp` ON `$dbname`.`server_usage` (`timestamp`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`user_snapshot` (`timestamp` bigint(11) NOT NULL default '0',`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`count` int(10) NOT NULL default '0',`idle` int(10) NOT NULL default '0',PRIMARY KEY (`timestamp`,`uuid`))") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } else { + if($mysqlcon->exec("CREATE INDEX `snapshot_timestamp` ON `$dbname`.`user_snapshot` (`timestamp`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_server` (`total_user` int(10) NOT NULL default '0',`total_online_time` bigint(13) NOT NULL default '0',`total_online_month` bigint(11) NOT NULL default '0',`total_online_week` bigint(11) NOT NULL default '0',`total_active_time` bigint(11) NOT NULL default '0',`total_inactive_time` bigint(11) NOT NULL default '0',`country_nation_name_1` varchar(3) NOT NULL default '0',`country_nation_name_2` varchar(3) NOT NULL default '0',`country_nation_name_3` varchar(3) NOT NULL default '0',`country_nation_name_4` varchar(3) NOT NULL default '0',`country_nation_name_5` varchar(3) NOT NULL default '0',`country_nation_1` int(10) NOT NULL default '0',`country_nation_2` int(10) NOT NULL default '0',`country_nation_3` int(10) NOT NULL default '0',`country_nation_4` int(10) NOT NULL default '0',`country_nation_5` int(10) NOT NULL default '0',`country_nation_other` int(10) NOT NULL default '0',`platform_1` int(10) NOT NULL default '0',`platform_2` int(10) NOT NULL default '0',`platform_3` int(10) NOT NULL default '0',`platform_4` int(10) NOT NULL default '0',`platform_5` int(10) NOT NULL default '0',`platform_other` int(10) NOT NULL default '0',`version_name_1` varchar(35) NOT NULL default '0',`version_name_2` varchar(35) NOT NULL default '0',`version_name_3` varchar(35) NOT NULL default '0',`version_name_4` varchar(35) NOT NULL default '0',`version_name_5` varchar(35) NOT NULL default '0',`version_1` int(10) NOT NULL default '0',`version_2` int(10) NOT NULL default '0',`version_3` int(10) NOT NULL default '0',`version_4` int(10) NOT NULL default '0',`version_5` int(10) NOT NULL default '0',`version_other` int(10) NOT NULL default '0',`server_status` tinyint(1) NOT NULL default '0',`server_free_slots` smallint(5) NOT NULL default '0',`server_used_slots` smallint(5) NOT NULL default '0',`server_channel_amount` smallint(5) NOT NULL default '0',`server_ping` smallint(5) NOT NULL default '0',`server_packet_loss` float (4,4),`server_bytes_down` bigint(11) NOT NULL default '0',`server_bytes_up` bigint(11) NOT NULL default '0',`server_uptime` bigint(11) NOT NULL default '0',`server_id` smallint(5) NOT NULL default '0',`server_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`server_pass` tinyint(1) NOT NULL default '0',`server_creation_date` bigint(11) NOT NULL default '0',`server_platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`server_weblist` tinyint(1) NOT NULL default '0',`server_version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`user_today` int(10) NOT NULL default '0',`user_week` int(10) NOT NULL default '0',`user_month` int(10) NOT NULL default '0',`user_quarter` int(10) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_user` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`removed` tinyint(1) NOT NULL default '0',`rank` int(10) NOT NULL default '0',`total_connections` smallint(5) NOT NULL default '0',`count_week` int(10) NOT NULL default '0',`count_month` int(10) NOT NULL default '0',`idle_week` int(10) NOT NULL default '0',`idle_month` int(10) NOT NULL default '0',`achiev_count` tinyint(1) NOT NULL default '0',`achiev_time` int(10) NOT NULL default '0',`achiev_connects` smallint(5) NOT NULL default '0',`achiev_battles` tinyint(3) NOT NULL default '0',`achiev_time_perc` tinyint(3) NOT NULL default '0',`achiev_connects_perc` tinyint(3) NOT NULL default '0',`achiev_battles_perc` tinyint(3) NOT NULL default '0',`battles_total` tinyint(3) NOT NULL default '0',`battles_won` tinyint(3) NOT NULL default '0',`battles_lost` tinyint(3) NOT NULL default '0',`client_description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`base64hash` varchar(58) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`client_total_up` bigint(15) NOT NULL default '0',`client_total_down` bigint(15) NOT NULL default '0',`active_week` int(10) NOT NULL default '0',`active_month` int(10) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("INSERT INTO `$dbname`.`stats_server` SET `total_user`='9999'") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`admin_addtime` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`timestamp` bigint(11) NOT NULL default '0',`timecount` int(10) NOT NULL default '0', PRIMARY KEY (`uuid`,`timestamp`))") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`user_iphash` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`iphash` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`ip` varchar(39) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`job_check` (`job_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`timestamp` bigint(11) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`) VALUES ('calc_user_limit'),('calc_user_lastscan'),('check_update'),('get_version'),('clean_db'),('clean_clients'),('calc_server_stats'),('runtime_check'),('last_update')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_nations` (`nation` varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`count` int(10) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_versions` (`version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`count` int(10) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_platforms` (`platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`count` int(10) NOT NULL default '0')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`addons_config` (`param` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci UNIQUE,`value` varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_active','0'),('assign_groups_groupids',''),('assign_groups_limit','')") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`addon_assign_groups` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`grpids` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; + $count++; + } + + if($count == 1) { + $err_msg = sprintf($lang['instdbsuc'], $dbname); $err_lvl = NULL; + $install_webuser = 1; + } + } + fclose($handle); +} + +if (isset($_POST['install'])) { + unset($err_msg); + if ($_POST['dbtype'] == 'mysql') { + if(!in_array('pdo_mysql', get_loaded_extensions())) { + unset($err_msg); $err_msg .= "
".$lang['insterr9']; $err_lvl = 3; + } else { + $dboptions = array(); + } + } else { + $dboptions = array(); + } + + if(!isset($err_msg)) { + $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].'; dbname='.$_POST['dbname'].';charset=utf8mb4'; + $dbserver2 = $_POST['dbtype'].':host='.$_POST['dbhost'].';charset=utf8mb4'; + $dbexists = 0; + try { + $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass'], $dboptions); + $dbexists = 1; + } catch (PDOException $e) { + try { + $mysqlcon = new PDO($dbserver2, $_POST['dbuser'], $_POST['dbpass'], $dboptions); + } catch (PDOException $e) { + $err_msg = $lang['dbconerr'].$e->getMessage(); $err_lvl = 1; + } + } + + if(!is_writeable('./other/dbconfig.php')) { + $err_msg = $lang['isntwicfg']; + $err_lvl = 2; + } + } + + if(!isset($err_msg)) { + if(isset($_POST['installchecked'])) { + install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); + } elseif($dbexists == 1) { + $err_msg = sprintf($lang['insterr1'],$_POST['dbname']); + $err_lvl = 2; + $show_warning = 1; + } else { + install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); + } + } +} + +if(isset($_POST['confweb'])) { + require_once('other/dbconfig.php'); + $user=$_POST['user']; + $pass=password_hash($_POST['pass'], PASSWORD_DEFAULT); + $logpath = addslashes(__DIR__."/logs/"); + $dbname = $db['dbname']; + $dbserver = $db['dbtype'].':host='.$db['dbhost'].'; dbname=`'.$db['dbname'].'`;charset=utf8mb4'; + $dbserver2 = $db['type'].':host='.$db['host']; + try { + $mysqlcon = new PDO($dbserver, $db['user'], $db['pass']); + } catch (PDOException $e) { + try { + $mysqlcon = new PDO($dbserver2, $db['user'], $db['pass']); + } catch (PDOException $e) { + $err_msg = $lang['dbconerr'].$e->getMessage(); $err_lvl = 1; + } + } + if(!isset($err_lvl) || $err_lvl != 1) { + $nextupinfomsg1 = $mysqlcon->quote("Your next rank up will be in %1\$s days, %2\$s hours, %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B]."); + $nextupinfomsg2 = $mysqlcon->quote("You have already reached the highest rank."); + $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`,`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`,`iphash`) VALUES ('$user','$pass','localhost','10011','9987','serveradmin','en','Ranksystem','RankSystem','31536000=>47,31536060=>50','1','1','1.2.7','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.7',$servernews,'1',$nextupinfomsg1,$nextupinfomsg2,$nextupinfomsg3,'1','1','0','version','0','0')") === false) { + $err_msg = $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 2; + } else { + $err_msg = $lang['isntwiusr'].'

'; + $err_msg .= sprintf($lang['isntwiconf'],"/webinterface/").'

'; + if(!unlink('./install.php')) { + $err_msg .= $lang['isntwidel']; + } + $install_finished = 1; $err_lvl = NULL; + } + } +} + +if (!isset($_POST['install']) && !isset($_POST['confweb'])) { + unset($err_msg); + unset($err_lvl); + $err_msg = ''; + if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") { + $host = ""; + $err_msg = sprintf($lang['winav10'], $host,'!
', '
'); $err_lvl = 2; + } + if(!is_writeable('./other/dbconfig.php')) { + unset($err_msg); $err_msg .= "
".$lang['isntwicfg']; $err_lvl = 3; + } + if(substr(sprintf('%o', fileperms('./avatars/')), -4)!='0777') { + unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"avatars"); $err_lvl = 3; + } + if(substr(sprintf('%o', fileperms('./tsicons/')), -4)!='0777') { + unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"tsicons"); $err_lvl = 3; + } + if(substr(sprintf('%o', fileperms('./logs/')), -4)!='0777') { + unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"logs"); $err_lvl = 3; + } + if(substr(sprintf('%o', fileperms('./update/')), -4)!='0777') { + unset($err_msg); $err_msg .= "
".sprintf($lang['isntwichm'],"update"); $err_lvl = 3; + } + if(!class_exists('PDO')) { + unset($err_msg); $err_msg .= "
".$lang['insterr2']; $err_lvl = 3; + } + if(!function_exists('exec')) { + unset($err_msg); $err_msg .= "
".$lang['insterr3']; $err_lvl = 3; + } + if(version_compare(phpversion(), '5.5.0', '<')) { + unset($err_msg); $err_msg .= "
".sprintf($lang['insterr4'],phpversion()); $err_lvl = 3; + } + if(!function_exists('simplexml_load_file')) { + unset($err_msg); $err_msg .= "
".$lang['insterr5']; $err_lvl = 3; + } + if(!in_array('curl', get_loaded_extensions())) { + unset($err_msg); $err_msg .= "
".$lang['insterr6']; $err_lvl = 3; + } + if(!in_array('zip', get_loaded_extensions())) { + unset($err_msg); $err_msg .= "
".$lang['insterr7']; $err_lvl = 3; + } + if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + if(!in_array('com_dotnet', get_loaded_extensions())) { + unset($err_msg); $err_msg .= "
".$lang['insterr8']; $err_lvl = 3; + } + } + if(!isset($err_lvl)) { + unset($err_msg); + } +} + +function error_handling($lang,$msg,$type = NULL) { + switch ($type) { + case NULL: echo '
'; break; + case 1: echo '
'; break; + case 2: echo '
'; break; + case 3: echo '
'; break; + } + echo '',$msg,'
'; +} + +if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 || $err_lvl == 2 || $err_lvl == 3) { + if(isset($show_warning)) { + $dbhost = $_POST['dbhost']; + $dbname = $_POST['dbname']; + $dbuser = $_POST['dbuser']; + $dbpass = $_POST['dbpass']; + } else { + $dbhost = "localhost"; + $dbname = "ts3_ranksystem"; + $dbuser = ""; + $dbpass = ""; + } + ?> +
+ +
+
+
+

+ +

+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
*
+
+
+
+ +
+ +
*
+
+
+
+
+
+
 
+
+
+
+ +
+ +
*
+
+
+
+
+ +
+ +
*
+
+
+
+
+
+
+
+
 
+
+
+ ",$lang['instdb'],""; + } else { + echo ""; + } + if(isset($show_warning)) { + echo ''; + } + ?> +
+
+
 
+
+
+
+ + + + + + + + +
+ +
+
+
+

+ +

+
+
+
+
+
+
+
+
+
+
+ +
+ +
*
+
+
+
+ +
+ +
*
+
+
+
+
+
 
+
+
+
 
+
+
+ ",$lang['isntwiusrcr'],""; + } else { + echo ""; + } + ?> +
+
+
 
+
+
+
+ +
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/jobs/addon_assign_groups.php b/jobs/addon_assign_groups.php index 20269ab..81cddbe 100644 --- a/jobs/addon_assign_groups.php +++ b/jobs/addon_assign_groups.php @@ -1,43 +1,43 @@ - $value) { - $cld_groups = explode(',', $value['grpids']); - foreach($cld_groups as $group) { - foreach ($allclients as $client) { - if($client['client_unique_identifier'] == $uuid) { - $cldbid = $client['client_database_id']; - $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); - break; - } - } - if(isset($cldbid)) { - if(strstr($group, '-')) { - $group = str_replace('-','',$group); - usleep($slowmode); - try { - $ts3->serverGroupClientDel($group, $cldbid); - } - catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"addon_assign_groups:".$e->getCode().': '."Error while removing group: ".$e->getMessage()); - } - } else { - usleep($slowmode); - try { - $ts3->serverGroupClientAdd($group, $cldbid); - } - catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"addon_assign_groups:".$e->getCode().': '."Error while adding group: ".$e->getMessage()); - } - } - } - } - } - - $sqlexec .= "DELETE FROM $dbname.addon_assign_groups; "; - } - return($sqlexec); -} + $value) { + $cld_groups = explode(',', $value['grpids']); + foreach($cld_groups as $group) { + foreach ($allclients as $client) { + if($client['client_unique_identifier'] == $uuid) { + $cldbid = $client['client_database_id']; + $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); + break; + } + } + if(isset($cldbid)) { + if(strstr($group, '-')) { + $group = str_replace('-','',$group); + usleep($slowmode); + try { + $ts3->serverGroupClientDel($group, $cldbid); + } + catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"addon_assign_groups:".$e->getCode().': '."Error while removing group: ".$e->getMessage()); + } + } else { + usleep($slowmode); + try { + $ts3->serverGroupClientAdd($group, $cldbid); + } + catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"addon_assign_groups:".$e->getCode().': '."Error while adding group: ".$e->getMessage()); + } + } + } + } + } + + $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups`; "; + } + return($sqlexec); +} ?> \ No newline at end of file diff --git a/jobs/bot.php b/jobs/bot.php index d70a05d..7ff1d79 100644 --- a/jobs/bot.php +++ b/jobs/bot.php @@ -1,396 +1,403 @@ -#!/usr/bin/php -close(); - } - exit; -} - -function enter_logfile($logpath,$timezone,$loglevel,$logtext,$norotate = false) { - global $phpcommand; - $file = $logpath.'ranksystem.log'; - if ($loglevel == 1) { - $loglevel = " CRITICAL "; - } elseif ($loglevel == 2) { - $loglevel = " ERROR "; - } elseif ($loglevel == 3) { - $loglevel = " WARNING "; - } elseif ($loglevel == 4) { - $loglevel = " NOTICE "; - } elseif ($loglevel == 5) { - $loglevel = " INFO "; - } elseif ($loglevel == 6) { - $loglevel = " DEBUG "; - } - $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 ").$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"); - fclose($loghandle); - $file2 = "$file.old"; - if (file_exists($file2)) unlink($file2); - rename($file, $file2); - $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); - } -} - -require_once(substr(__DIR__,0,-4).'other/config.php'); -require_once(substr(__DIR__,0,-4).'other/phpcommand.php'); - -if(isset($_SERVER['HTTP_HOST']) || isset($_SERVER['REMOTE_ADDR'])) { - shutdown($mysqlcon, $logpath, $timezone, 1, "Request to start the Ranksystem from ".$_SERVER['REMOTE_ADDR'].". It seems the request came not from the command line!", 1); -} -if(version_compare(phpversion(), '5.5.0', '<')) { - shutdown($mysqlcon, $logpath, $timezone, 1, "Your PHP version (".phpversion().") is below 5.5.0. Update of PHP is required!"); -} -if(!function_exists('simplexml_load_file')) { - shutdown($mysqlcon, $logpath, $timezone, 1, "SimpleXML is missed. Installation of SimpleXML is required!"); -} -if(!in_array('curl', get_loaded_extensions())) { - shutdown($mysqlcon, $logpath, $timezone, 1, "PHP cURL is missed. Installation of PHP cURL is required!"); -} -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'); -require_once(substr(__DIR__,0,-4).'jobs/get_avatars.php'); -require_once(substr(__DIR__,0,-4).'jobs/update_groups.php'); -require_once(substr(__DIR__,0,-4).'jobs/calc_serverstats.php'); -require_once(substr(__DIR__,0,-4).'jobs/calc_userstats.php'); -require_once(substr(__DIR__,0,-4).'jobs/clean.php'); -require_once(substr(__DIR__,0,-4).'jobs/check_db.php'); -require_once(substr(__DIR__,0,-4).'jobs/handle_messages.php'); -require_once(substr(__DIR__,0,-4).'jobs/update_rs.php'); - -enter_logfile($logpath,$timezone,6,"Running on OS: ".php_uname("s")." ".php_uname("r")); -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!"); - } -} - -enter_logfile($logpath,$timezone,5,"Ranksystem Version: ".$currvers); -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); -if($addons_config['assign_groups_active']['value'] == '1') { - enter_logfile($logpath,$timezone,5," Addon: 'assign_groups' [ON]"); - include(substr(__DIR__,0,-4).'jobs/addon_assign_groups.php'); - define('assign_groups',1); -} else { - enter_logfile($logpath,$timezone,5," Addon: 'assign_groups' [OFF]"); -} -enter_logfile($logpath,$timezone,5,"Loading addons [done]"); - -enter_logfile($logpath,$timezone,5,"Connect to TS3 Server (Address: \"".$ts['host']."\" Voice-Port: \"".$ts['voice']."\" Query-Port: \"".$ts['query']."\")."); -try { - $ts3 = TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0"); - enter_logfile($logpath,$timezone,5," Connection to TS3 Server established."); - try { - usleep($slowmode); - $ts3->notifyRegister("textprivate"); - $ts3->notifyRegister("textchannel"); - $ts3->notifyRegister("textserver"); - TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyTextmessage", "handle_messages"); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2," Error due register notifyTextmessage ".$e->getCode().': '.$e->getMessage()); - } - - try { - usleep($slowmode); - $ts3->selfUpdate(array('client_nickname' => $queryname)); - } - catch (Exception $e) { - try { - usleep($slowmode); - $ts3->selfUpdate(array('client_nickname' => $queryname2)); - } - catch (Exception $e) { - enter_logfile($logpath,$timezone,2,$lang['error'].$e->getCode().': '.$e->getMessage()); - } - } - - usleep($slowmode); - $whoami = $ts3->whoami(); - if($defchid != 0) { - try { - usleep($slowmode); - $ts3->clientMove($whoami['client_id'],$defchid); - enter_logfile($logpath,$timezone,5," Joined to specified Channel."); - } catch (Exception $e) { - if($e->getCode() != 770) { - enter_logfile($logpath,$timezone,5," Could not join specified channel."); - } else { - enter_logfile($logpath,$timezone,5," Joined to specified channel."); - } - } - } 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(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 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) { - $fetched_array = $single_select->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $count_select++; - - switch ($count_select) { - case 1: - $select_arr['all_user'] = $fetched_array; - break; - case 2: - $select_arr['max_timestamp_user_snapshot'] = $fetched_array; - break; - case 3: - $select_arr['count_version_user'] = $fetched_array; - break; - case 4: - $select_arr['max_timestamp_server_usage'] = $fetched_array; - break; - case 5: - $select_arr['job_check'] = $fetched_array; - break; - case 6: - $select_arr['uuid_stats_user'] = $fetched_array; - break; - case 7: - $select_arr['usersnap_min_week'] = $fetched_array; - break; - case 8: - $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, $fetched_array, $single_select); - - check_shutdown($timezone,$logpath); - $addons_config = load_addons_config($mysqlcon,$lang,$dbname,$timezone,$logpath); - $ts3->clientListReset(); - usleep($slowmode); - $allclients = $ts3->clientList(); - $ts3->serverInfoReset(); - usleep($slowmode); - $serverinfo = $ts3->serverInfo(); - $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,$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')) { - enter_logfile($logpath,$timezone,5,"Loading new addon..."); - enter_logfile($logpath,$timezone,5," Addon: 'assign_groups' [ON]"); - include(substr(__DIR__,0,-4).'jobs/addon_assign_groups.php'); - define('assign_groups',1); - enter_logfile($logpath,$timezone,5,"Loading new addon [done]"); - } - $sqlexec .= addon_assign_groups($addons_config,$ts3,$dbname,$slowmode,$timezone,$logpath,$allclients,$select_arr); - } - - if($mysqlcon->exec($sqlexec) === false) { - enter_logfile($logpath,$timezone,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - unset($sqlexec, $select_arr); - - $looptime = microtime(true) - $starttime; - $rotated = substr((number_format(round($looptime, 5),5) . ';' . $rotated),0,79); - - if($looptime < 1) { - $loopsleep = (1 - $looptime) * 1000000; - //enter_logfile($logpath,$timezone,6,"last loop: ".round($looptime, 5)." sec."); - usleep($loopsleep); - } elseif($slowmode == 0) { - //enter_logfile($logpath,$timezone,6,"last loop: ".round($looptime, 5)." sec."); - $rotated_cnt++; - if($rotated_cnt > 3600) { - $rotated_arr = explode(';', $rotated); - $sum_time = 0; - foreach ($rotated_arr as $time) { - $sum_time = $sum_time + $time; - } - if(($sum_time / 10) > 1) { - $rotated_cnt = 0; - enter_logfile($logpath,$timezone,4," Your Ranksystem seems to be slow. This is not a big deal, but it needs more ressources then necessary."); - enter_logfile($logpath,$timezone,4," Here you'll find some information to optimize it: https://ts-n.net/ranksystem.php#optimize"); - enter_logfile($logpath,$timezone,4," Last 10 runtimes in seconds (lower values are better): ".$rotated); - foreach ($uniqueid as $clientid) { - usleep($slowmode); - try { - $ts3->clientGetByUid($clientid)->message("\nYour Ranksystem seems to be slow. This is not a big deal, but it needs more ressources then necessary.\nHere you'll find some information to optimize it: [URL]https://ts-n.net/ranksystem.php#optimize[/URL]\nLast 10 runtimes in seconds (lower values are better):\n".$rotated); - } catch (Exception $e) { } - } - } - } - } - } -} -catch (Exception $e) { - enter_logfile($logpath,$timezone,2,$lang['error'].$e->getCode().': '.$e->getMessage()); - $offline_status = array(110,257,258,1024,1026,1031,1032,1033,1034,1280,1793); - if(in_array($e->getCode(), $offline_status)) { - if($mysqlcon->exec("UPDATE $dbname.stats_server SET server_status='0'") === false) { - enter_logfile($logpath,$timezone,2,$lang['error'].print_r($mysqlcon->errorInfo(), true)); - } - } -} -?> +#!/usr/bin/php +close(); + } + exit; +} + +function enter_logfile($logpath,$timezone,$loglevel,$logtext,$norotate = false) { + global $phpcommand; + $file = $logpath.'ranksystem.log'; + if ($loglevel == 1) { + $loglevel = " CRITICAL "; + } elseif ($loglevel == 2) { + $loglevel = " ERROR "; + } elseif ($loglevel == 3) { + $loglevel = " WARNING "; + } elseif ($loglevel == 4) { + $loglevel = " NOTICE "; + } elseif ($loglevel == 5) { + $loglevel = " INFO "; + } elseif ($loglevel == 6) { + $loglevel = " DEBUG "; + } + $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 ").$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"); + fclose($loghandle); + $file2 = "$file.old"; + if (file_exists($file2)) unlink($file2); + rename($file, $file2); + $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); + } +} + +require_once(substr(__DIR__,0,-4).'other/config.php'); +require_once(substr(__DIR__,0,-4).'other/phpcommand.php'); + +if(isset($_SERVER['HTTP_HOST']) || isset($_SERVER['REMOTE_ADDR'])) { + shutdown($mysqlcon, $logpath, $timezone, 1, "Request to start the Ranksystem from ".$_SERVER['REMOTE_ADDR'].". It seems the request came not from the command line!", 1); +} +if(version_compare(phpversion(), '5.5.0', '<')) { + shutdown($mysqlcon, $logpath, $timezone, 1, "Your PHP version (".phpversion().") is below 5.5.0. Update of PHP is required!"); +} +if(!function_exists('simplexml_load_file')) { + shutdown($mysqlcon, $logpath, $timezone, 1, "SimpleXML is missed. Installation of SimpleXML is required!"); +} +if(!in_array('curl', get_loaded_extensions())) { + shutdown($mysqlcon, $logpath, $timezone, 1, "PHP cURL is missed. Installation of PHP cURL is required!"); +} +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'); +require_once(substr(__DIR__,0,-4).'jobs/get_avatars.php'); +require_once(substr(__DIR__,0,-4).'jobs/update_groups.php'); +require_once(substr(__DIR__,0,-4).'jobs/calc_serverstats.php'); +require_once(substr(__DIR__,0,-4).'jobs/calc_userstats.php'); +require_once(substr(__DIR__,0,-4).'jobs/clean.php'); +require_once(substr(__DIR__,0,-4).'jobs/check_db.php'); +require_once(substr(__DIR__,0,-4).'jobs/handle_messages.php'); +require_once(substr(__DIR__,0,-4).'jobs/event_userenter.php'); +require_once(substr(__DIR__,0,-4).'jobs/update_rs.php'); + +enter_logfile($logpath,$timezone,6,"Running on OS: ".php_uname("s")." ".php_uname("r")); +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!"); + } +} + +enter_logfile($logpath,$timezone,5,"Ranksystem Version: ".$currvers); +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); +if($addons_config['assign_groups_active']['value'] == '1') { + enter_logfile($logpath,$timezone,5," Addon: 'assign_groups' [ON]"); + include(substr(__DIR__,0,-4).'jobs/addon_assign_groups.php'); + define('assign_groups',1); +} else { + enter_logfile($logpath,$timezone,5," Addon: 'assign_groups' [OFF]"); +} +enter_logfile($logpath,$timezone,5,"Loading addons [done]"); + +enter_logfile($logpath,$timezone,5,"Connect to TS3 Server (Address: \"".$ts['host']."\" Voice-Port: \"".$ts['voice']."\" Query-Port: \"".$ts['query']."\")."); +try { + $ts3 = TeamSpeak3::factory("serverquery://".rawurlencode($ts['user']).":".rawurlencode($ts['pass'])."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0"); + enter_logfile($logpath,$timezone,5," Connection to TS3 Server established."); + try { + usleep($slowmode); + $ts3->notifyRegister("server"); + $ts3->notifyRegister("textprivate"); + $ts3->notifyRegister("textchannel"); + $ts3->notifyRegister("textserver"); + TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyTextmessage", "handle_messages"); + TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyCliententerview", "event_userenter"); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2," Error due register notifyTextmessage ".$e->getCode().': '.$e->getMessage()); + } + + try { + usleep($slowmode); + $ts3->selfUpdate(array('client_nickname' => $queryname)); + } + catch (Exception $e) { + try { + usleep($slowmode); + $ts3->selfUpdate(array('client_nickname' => $queryname2)); + } + catch (Exception $e) { + enter_logfile($logpath,$timezone,2,$lang['error'].$e->getCode().': '.$e->getMessage()); + } + } + + usleep($slowmode); + $whoami = $ts3->whoami(); + if($defchid != 0) { + try { + usleep($slowmode); + $ts3->clientMove($whoami['client_id'],$defchid); + enter_logfile($logpath,$timezone,5," Joined to specified Channel."); + } catch (Exception $e) { + if($e->getCode() != 770) { + enter_logfile($logpath,$timezone,5," Could not join specified channel."); + } else { + enter_logfile($logpath,$timezone,5," Joined to specified channel."); + } + } + } 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(3000000); + while(1) { + $sqlexec = $sqlexec2 = ''; + $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 `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`; SELECT * FROM `$dbname`.`admin_addtime`; ")) === 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) { + $fetched_array = $single_select->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $count_select++; + + switch ($count_select) { + case 1: + $select_arr['all_user'] = $fetched_array; + break; + case 2: + $select_arr['max_timestamp_user_snapshot'] = $fetched_array; + break; + case 3: + $select_arr['count_version_user'] = $fetched_array; + break; + case 4: + $select_arr['max_timestamp_server_usage'] = $fetched_array; + break; + case 5: + $select_arr['job_check'] = $fetched_array; + break; + case 6: + $select_arr['uuid_stats_user'] = $fetched_array; + break; + case 7: + $select_arr['usersnap_min_week'] = $fetched_array; + break; + case 8: + $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; + case 11: + $select_arr['admin_addtime'] = $fetched_array; + break 2; + } + $get_db_data->nextRowset(); + } + unset($get_db_data, $fetched_array, $single_select); + + check_shutdown($timezone,$logpath); + $addons_config = load_addons_config($mysqlcon,$lang,$dbname,$timezone,$logpath); + $ts3->clientListReset(); + usleep($slowmode); + $allclients = $ts3->clientList(); + $ts3->serverInfoReset(); + usleep($slowmode); + $serverinfo = $ts3->serverInfo(); + $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,$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); + $sqlexec .= $sqlexec2; + + if($addons_config['assign_groups_active']['value'] == '1') { + if(!defined('assign_groups')) { + enter_logfile($logpath,$timezone,5,"Loading new addon..."); + enter_logfile($logpath,$timezone,5," Addon: 'assign_groups' [ON]"); + include(substr(__DIR__,0,-4).'jobs/addon_assign_groups.php'); + define('assign_groups',1); + enter_logfile($logpath,$timezone,5,"Loading new addon [done]"); + } + $sqlexec .= addon_assign_groups($addons_config,$ts3,$dbname,$slowmode,$timezone,$logpath,$allclients,$select_arr); + } + + if($mysqlcon->exec($sqlexec) === false) { + enter_logfile($logpath,$timezone,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } + unset($sqlexec, $sqlexec2, $select_arr); + + $looptime = microtime(true) - $starttime; + $rotated = substr((number_format(round($looptime, 5),5) . ';' . $rotated),0,79); + + if($looptime < 1) { + $loopsleep = (1 - $looptime) * 1000000; + #enter_logfile($logpath,$timezone,6,"last loop: ".round($looptime, 5)." sec."); + usleep($loopsleep); + } elseif($slowmode == 0) { + #enter_logfile($logpath,$timezone,6,"last loop: ".round($looptime, 5)." sec."); + $rotated_cnt++; + if($rotated_cnt > 3600) { + $rotated_arr = explode(';', $rotated); + $sum_time = 0; + foreach ($rotated_arr as $time) { + $sum_time = $sum_time + $time; + } + if(($sum_time / 10) > 1) { + $rotated_cnt = 0; + enter_logfile($logpath,$timezone,4," Your Ranksystem seems to be slow. This is not a big deal, but it needs more ressources then necessary."); + enter_logfile($logpath,$timezone,4," Here you'll find some information to optimize it: https://ts-n.net/ranksystem.php#optimize"); + enter_logfile($logpath,$timezone,4," Last 10 runtimes in seconds (lower values are better): ".$rotated); + foreach ($uniqueid as $clientid) { + usleep($slowmode); + try { + $ts3->clientGetByUid($clientid)->message("\nYour Ranksystem seems to be slow. This is not a big deal, but it needs more ressources then necessary.\nHere you'll find some information to optimize it: [URL]https://ts-n.net/ranksystem.php#optimize[/URL]\nLast 10 runtimes in seconds (lower values are better):\n".$rotated); + } catch (Exception $e) { } + } + } + } + } + } +} +catch (Exception $e) { + enter_logfile($logpath,$timezone,2,$lang['error'].$e->getCode().': '.$e->getMessage()); + $offline_status = array(110,257,258,1024,1026,1031,1032,1033,1034,1280,1793); + if(in_array($e->getCode(), $offline_status)) { + if($mysqlcon->exec("UPDATE $dbname.stats_server SET server_status='0'") === false) { + enter_logfile($logpath,$timezone,2,$lang['error'].print_r($mysqlcon->errorInfo(), true)); + } + } +} +?> diff --git a/jobs/calc_serverstats.php b/jobs/calc_serverstats.php index d5a4851..499616c 100644 --- a/jobs/calc_serverstats.php +++ b/jobs/calc_serverstats.php @@ -1,338 +1,338 @@ -($nowtime-86400)) { - $user_quarter++; $user_month++; $user_week++; $user_today++; - } elseif ($uuid['lastseen']>($nowtime-604800)) { - $user_quarter++; $user_month++; $user_week++; - } elseif ($uuid['lastseen']>($nowtime-2592000)) { - $user_quarter++; $user_month++; - } elseif ($uuid['lastseen']>($nowtime-7776000)) { - $user_quarter++; - } - - $total_online_time = $total_online_time + $uuid['count']; - $total_inactive_time = $total_inactive_time + $uuid['idle']; - } - $total_active_time = $total_online_time - $total_inactive_time; - - // Event Handling each 6 hours - // Duplicate users Table in snapshot Table - 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) { - $allinsertsnap = $allinsertsnap . "('$nowtime','" . $uuid . "', '" . $insertsnap['count'] . "', '" . $insertsnap['idle'] . "'),"; - } - $allinsertsnap = substr($allinsertsnap, 0, -1); - if ($allinsertsnap != '') { - $sqlexec .= "INSERT INTO $dbname.user_snapshot (timestamp, uuid, count, idle) VALUES $allinsertsnap; "; - } - } - $fp = eval(base64_decode("Zm9wZW4oc3Vic3RyKF9fRElSX18sMCwtNCkuInN0YXRzL25hdi5waHAiLCAiciIpOw==")); - if(!$fp) { - $error_fp_open = 1; - } else { - $buffer=array(); - while($line = fgets($fp, 4096)) { - array_push($buffer, $line); - } - fclose($fp); - $checkarr = array_flip(array('CQkJCQkJPGEgaHJlZj0iaW5mby5waHAiPjxpIGNsYXNzPSJmYSBmYS1mdyBmYS1pbmZvLWNpcmNsZSI+PC9pPiZuYnNwOzw/UEhQIGVjaG8gJGxhbmdbJ3N0bnYwMDMwJ107','CQkJCQk8P1BIUCBlY2hvICc8bGknLihiYXNlbmFtZSgkX1NFUlZFUlsnU0NSSVBUX05BTUUnXSkgPT0gImluZm8ucGhwIiA/ICcgY2xhc3M9ImFjdGl2ZSI+JyA6ICc+Jyk7')); - $countcheck = 0; - foreach($buffer as $line) { - if(isset($checkarr[substr(base64_encode($line), 0, 132)])) { - $countcheck++; - } - } - unset($fp, $checkarr, $buffer); - } - $fp = eval(base64_decode("Zm9wZW4oc3Vic3RyKF9fRElSX18sMCwtNCkuInN0YXRzL2luZm8ucGhwIiwgInIiKTs=")); - if(!$fp) { - $error_fp_open = 1; - } else { - $buffer=array(); - while($line = fgets($fp, 4096)) { - array_push($buffer, $line); - } - fclose($fp); - foreach($buffer as $line) { - if(strstr(base64_encode($line), "VGhlIDxhIGhyZWY9Ii8vdHMtbi5uZXQvcmFua3N5c3RlbS5waHAiIHRhcmdldD0iX2JsYW5rIj5SYW5rc3lzdGVtPC9hPiB3YXMgY29kZWQgYnkgPHN0cm9uZz5OZXdjb21lcjE5ODk8L3N0cm9uZz4gQ29weXJpZ2h0ICZjb3B5OyAyMDA5LTIwMTggPGEgaHJlZj0iLy90cy1uLm5ldC8iIHRhcmdldD0iX2JsYW5rIj5UZWFtU3BlYWsgU3BvbnNvcmluZyBUUy1OLk5FVDwvYT4=")) { - $countcheck++; - } - } - unset($fp, $buffer); - } - - 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==")); - } - } - - $total_user = count($select_arr['all_user']); unset ($allinsertsnap); - - if($serverinfo['virtualserver_status']=="online") { - $server_status = 1; - } elseif($serverinfo['virtualserver_status']=="offline") { - $server_status = 2; - } elseif($serverinfo['virtualserver_status']=="virtual online") { - $server_status = 3; - } else { - $server_status = 4; - } - - $country_array = array_count_values(str_word_count($country_string, 1)); - arsort($country_array); - unset($country_string); - $country_counter = $country_nation_other = $country_nation_name_1 = $country_nation_name_2 = $country_nation_name_3 = $country_nation_name_4 = $country_nation_name_5 = $country_nation_1 = $country_nation_2 = $country_nation_3 = $country_nation_4 = $country_nation_5 = 0; - $allinsertnation = ''; - foreach ($country_array as $k => $v) { - $country_counter++; - if ($country_counter == 1) { - $country_nation_name_1 = $k; - $country_nation_1 = $v; - } elseif ($country_counter == 2) { - $country_nation_name_2 = $k; - $country_nation_2 = $v; - } elseif ($country_counter == 3) { - $country_nation_name_3 = $k; - $country_nation_3 = $v; - } elseif ($country_counter == 4) { - $country_nation_name_4 = $k; - $country_nation_4 = $v; - } elseif ($country_counter == 5) { - $country_nation_name_5 = $k; - $country_nation_5 = $v; - } else { - $country_nation_other = $country_nation_other + $v; - } - $allinsertnation = $allinsertnation . "('" . $k . "', " . $v . "),"; - } - $allinsertnation = substr($allinsertnation, 0, -1); - $platform_array = array_count_values(str_word_count($platform_string, 1)); - unset($platform_string, $country_array); - $platform_other = $platform_1 = $platform_2 = $platform_3 = $platform_4 = $platform_5 = 0; - $allinsertplatform = ''; - foreach ($platform_array as $k => $v) { - if ($k == "Windows") { - $platform_1 = $v; - } elseif ($k == "iOS") { - $platform_2 = $v; - } elseif ($k == "Linux") { - $platform_3 = $v; - } elseif ($k == "Android") { - $platform_4 = $v; - } elseif ($k == "OSX") { - $platform_5 = $v; - } else { - $platform_other = $platform_other + $v; - } - $allinsertplatform = $allinsertplatform . "('" . $k . "', " . $v . "),"; - } - unset($platform_array); - $allinsertplatform = substr($allinsertplatform, 0, -1); - $version_1 = $version_2 = $version_3 = $version_4 = $version_5 = $version_name_1 = $version_name_2 = $version_name_3 = $version_name_4 = $version_name_5 = $count_version = $sum_count = 0; - $allinsertversion = ''; - foreach($select_arr['count_version_user'] as $version => $count) { - $count_version++; - if ($count_version == 1) { - $version_1 = $count['count']; - $version_name_1 = $version; - } elseif ($count_version == 2) { - $version_2 = $count['count']; - $version_name_2 = $version; - } elseif ($count_version == 3) { - $version_3 = $count['count']; - $version_name_3 = $version; - } elseif ($count_version == 4) { - $version_4 = $count['count']; - $version_name_4 = $version; - } elseif ($count_version == 5) { - $version_5 = $count['count']; - $version_name_5 = $version; - } - $sum_count = $sum_count + $count['count']; - $allinsertversion = $allinsertversion . "('" . $version . "', " . $count['count'] . "),"; - } - $allinsertversion = substr($allinsertversion, 0, -1); - $version_other = $sum_count - $version_1 - $version_2 - $version_3 - $version_4 - $version_5; - - $server_used_slots = $serverinfo['virtualserver_clientsonline'] - $serverinfo['virtualserver_queryclientsonline']; - $server_free_slots = $serverinfo['virtualserver_maxclients'] - $server_used_slots; - $server_channel_amount = $serverinfo['virtualserver_channelsonline']; - $server_ping = $serverinfo['virtualserver_total_ping']; - $server_packet_loss = $serverinfo['virtualserver_total_packetloss_total']; - $server_bytes_down = $serverinfo['connection_bytes_received_total']; - $server_bytes_up = $serverinfo['connection_bytes_sent_total']; - $server_uptime = $serverinfo['virtualserver_uptime']; - $server_id = $serverinfo['virtualserver_id']; - $server_name = $mysqlcon->quote($serverinfo['virtualserver_name'], ENT_QUOTES); - $server_pass = $serverinfo['virtualserver_flag_password']; - $server_creation_date = $serverinfo['virtualserver_created']; - $server_platform = $serverinfo['virtualserver_platform']; - $server_weblist = $serverinfo['virtualserver_weblist_enabled']; - $server_version = $serverinfo['virtualserver_version']; - - // Write stats/index and Nations, Platforms & Versions - $sqlexec .= "DELETE FROM $dbname.stats_nations; DELETE FROM $dbname.stats_platforms; DELETE FROM $dbname.stats_versions; UPDATE $dbname.stats_server SET total_user='$total_user', total_online_time='$total_online_time', total_active_time='$total_active_time', total_inactive_time='$total_inactive_time', country_nation_name_1='$country_nation_name_1', country_nation_name_2='$country_nation_name_2', country_nation_name_3='$country_nation_name_3', country_nation_name_4='$country_nation_name_4', country_nation_name_5='$country_nation_name_5', country_nation_1='$country_nation_1', country_nation_2='$country_nation_2', country_nation_3='$country_nation_3', country_nation_4='$country_nation_4', country_nation_5='$country_nation_5', country_nation_other='$country_nation_other', platform_1='$platform_1', platform_2='$platform_2', platform_3='$platform_3', platform_4='$platform_4', platform_5='$platform_5', platform_other='$platform_other', version_name_1='$version_name_1', version_name_2='$version_name_2', version_name_3='$version_name_3', version_name_4='$version_name_4', version_name_5='$version_name_5', version_1='$version_1', version_2='$version_2', version_3='$version_3', version_4='$version_4', version_5='$version_5', version_other='$version_other', version_name_1='$version_name_1', server_status='$server_status', server_free_slots='$server_free_slots', server_used_slots='$server_used_slots', server_channel_amount='$server_channel_amount', server_ping='$server_ping', server_packet_loss='$server_packet_loss', server_bytes_down='$server_bytes_down', server_bytes_up='$server_bytes_up', server_uptime='$server_uptime', server_id='$server_id', server_name=$server_name, server_pass='$server_pass', server_creation_date='$server_creation_date', server_platform='$server_platform', server_weblist='$server_weblist', server_version='$server_version', user_today='$user_today', user_week='$user_week', user_month='$user_month', user_quarter='$user_quarter'; INSERT INTO $dbname.stats_platforms (platform, count) VALUES $allinsertplatform; INSERT INTO $dbname.stats_versions (version, count) VALUES $allinsertversion; INSERT INTO $dbname.stats_nations (nation, count) VALUES $allinsertnation; "; - unset($allinsertnation, $allinsertplatform, $allinsertversion); - - // Stats for Server Usage - 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 - 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)); - } - if(count($uuidsoff) != 0) { - krsort($grouptime); - foreach($uuidsoff as $uuid) { - $count = $uuid['count']; - if ($substridle == 1) { - $activetime = $count - $uuid['idle']; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@$activetime"); - } else { - $activetime = $count; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@$count"); - } - $grpcount=0; - foreach ($grouptime as $time => $groupid) { - $grpcount++; - if ($activetime > $time) { - if($grpcount == 1) { - $nextup = 0; - } - break; - } else { - $nextup = $time - $activetime; - } - } - $updatenextup[] = array( - "uuid" => $uuid['uuid'], - "nextup" => $nextup - ); - } - unset($uuidsoff); - } - - if(isset($updatenextup)) { - $allupdateuuid = $allupdatenextup = ''; - foreach ($updatenextup as $updatedata) { - $allupdateuuid = $allupdateuuid . "'" . $updatedata['uuid'] . "',"; - $allupdatenextup = $allupdatenextup . "WHEN '" . $updatedata['uuid'] . "' THEN '" . $updatedata['nextup'] . "' "; - } - $allupdateuuid = substr($allupdateuuid, 0, -1); - $sqlexec .= "INSERT INTO $dbname.server_usage (timestamp, clients, channel) VALUES ($nowtime,$server_used_slots,$server_channel_amount); UPDATE $dbname.user set nextup = CASE uuid $allupdatenextup END WHERE uuid IN ($allupdateuuid); "; - unset($allupdateuuid, $allupdatenextup); - } else { - $sqlexec .= "INSERT INTO $dbname.server_usage (timestamp, clients, channel) VALUES ($nowtime,$server_used_slots,$server_channel_amount); "; - } - //enter_logfile($logpath,$timezone,6,"Calc next rankup for offline user [DONE]"); - } - - // Calc Values for server stats - if($select_arr['job_check']['calc_server_stats']['timestamp'] < ($nowtime-900)) { - if(($entry_snapshot_count = $mysqlcon->query("SELECT count(DISTINCT(timestamp)) AS timestamp FROM $dbname.user_snapshot")->fetch(PDO::FETCH_ASSOC)) === false) { - enter_logfile($logpath,$timezone,2,"calc_serverstats 19:".print_r($mysqlcon->errorInfo(), true)); - } - if ($entry_snapshot_count['timestamp'] > 27) { - // Calc total_online_week - if(($snapshot_count_week = $mysqlcon->query("SELECT (SELECT SUM(count) 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)) - (SELECT SUM(count) 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) AND uuid IN (SELECT uuid FROM $dbname.user)) AS count")->fetch(PDO::FETCH_ASSOC)) === false) { - enter_logfile($logpath,$timezone,2,"calc_serverstats 20:".print_r($mysqlcon->errorInfo(), true)); - } - if($snapshot_count_week['count'] == NULL) { - $total_online_week = 0; - } else { - $total_online_week = $snapshot_count_week['count']; - } - } else { - $total_online_week = 0; - } - if ($entry_snapshot_count['timestamp'] > 119) { - // Calc total_online_month - if(($snapshot_count_month = $mysqlcon->query("SELECT (SELECT SUM(count) 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)) - (SELECT SUM(count) 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) AND uuid IN (SELECT uuid FROM $dbname.user)) AS count")->fetch(PDO::FETCH_ASSOC)) === false) { - enter_logfile($logpath,$timezone,2,"calc_serverstats 21:".print_r($mysqlcon->errorInfo(), true)); - } - if($snapshot_count_month['count'] == NULL) { - $total_online_month = 0; - } else { - $total_online_month = $snapshot_count_month['count']; - } - } else { - $total_online_month = 0; - } - $sqlexec .= "UPDATE $dbname.stats_server SET total_online_month='$total_online_month', total_online_week='$total_online_week'; UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='calc_server_stats'; "; - - if ($select_arr['job_check']['get_version']['timestamp'] < ($nowtime - 43200)) { - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://ts-n.net/ranksystem/'.$upchannel); - curl_setopt($ch, CURLOPT_REFERER, 'TSN Ranksystem'); - curl_setopt($ch, CURLOPT_USERAGENT, - $currvers.";". - php_uname("s").";". - php_uname("r").";". - phpversion().";". - $dbtype.";". - $ts['host'].";". - $ts['voice'].";". - __DIR__.";". - $total_user.";". - $user_today.";". - $user_week.";". - $user_month.";". - $user_quarter.";". - $total_online_week.";". - $total_online_month.";". - $total_active_time.";". - $total_inactive_time - ); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); - 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); - - 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 - if ($substridle == 1) { - $sqlexec .= "SET @a:=0; UPDATE $dbname.user u INNER JOIN (SELECT @a:=@a+1 nr,uuid FROM $dbname.user WHERE except<2 ORDER BY (count - idle) DESC) s USING (uuid) SET u.rank=s.nr; "; - } else { - $sqlexec .= "SET @a:=0; UPDATE $dbname.user u INNER JOIN (SELECT @a:=@a+1 nr,uuid FROM $dbname.user WHERE except<2 ORDER BY count DESC) s USING (uuid) SET u.rank=s.nr; "; - } - } - return($sqlexec); -} +($nowtime-86400)) { + $user_quarter++; $user_month++; $user_week++; $user_today++; + } elseif ($uuid['lastseen']>($nowtime-604800)) { + $user_quarter++; $user_month++; $user_week++; + } elseif ($uuid['lastseen']>($nowtime-2592000)) { + $user_quarter++; $user_month++; + } elseif ($uuid['lastseen']>($nowtime-7776000)) { + $user_quarter++; + } + + $total_online_time = $total_online_time + $uuid['count']; + $total_inactive_time = $total_inactive_time + $uuid['idle']; + } + $total_active_time = $total_online_time - $total_inactive_time; + + // Event Handling each 6 hours + // Duplicate users Table in snapshot Table + 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) { + $allinsertsnap = $allinsertsnap . "('$nowtime','" . $uuid . "', '" . $insertsnap['count'] . "', '" . $insertsnap['idle'] . "'),"; + } + $allinsertsnap = substr($allinsertsnap, 0, -1); + if ($allinsertsnap != '') { + $sqlexec .= "INSERT INTO $dbname.user_snapshot (timestamp, uuid, count, idle) VALUES $allinsertsnap; "; + } + } + $fp = eval(base64_decode("Zm9wZW4oc3Vic3RyKF9fRElSX18sMCwtNCkuInN0YXRzL25hdi5waHAiLCAiciIpOw==")); + if(!$fp) { + $error_fp_open = 1; + } else { + $buffer=array(); + while($line = fgets($fp, 4096)) { + array_push($buffer, $line); + } + fclose($fp); + $checkarr = array_flip(array('CQkJCQkJPGEgaHJlZj0iaW5mby5waHAiPjxpIGNsYXNzPSJmYSBmYS1mdyBmYS1pbmZvLWNpcmNsZSI+PC9pPiZuYnNwOzw/UEhQIGVjaG8gJGxhbmdbJ3N0bnYwMDMwJ107','CQkJCQk8P1BIUCBlY2hvICc8bGknLihiYXNlbmFtZSgkX1NFUlZFUlsnU0NSSVBUX05BTUUnXSkgPT0gImluZm8ucGhwIiA/ICcgY2xhc3M9ImFjdGl2ZSI+JyA6ICc+Jyk7')); + $countcheck = 0; + foreach($buffer as $line) { + if(isset($checkarr[substr(base64_encode($line), 0, 132)])) { + $countcheck++; + } + } + unset($fp, $checkarr, $buffer); + } + $fp = eval(base64_decode("Zm9wZW4oc3Vic3RyKF9fRElSX18sMCwtNCkuInN0YXRzL2luZm8ucGhwIiwgInIiKTs=")); + if(!$fp) { + $error_fp_open = 1; + } else { + $buffer=array(); + while($line = fgets($fp, 4096)) { + array_push($buffer, $line); + } + fclose($fp); + foreach($buffer as $line) { + if(strstr(base64_encode($line), "VGhlIDxhIGhyZWY9Ii8vdHMtbi5uZXQvcmFua3N5c3RlbS5waHAiIHRhcmdldD0iX2JsYW5rIj5SYW5rc3lzdGVtPC9hPiB3YXMgY29kZWQgYnkgPHN0cm9uZz5OZXdjb21lcjE5ODk8L3N0cm9uZz4gQ29weXJpZ2h0ICZjb3B5OyAyMDA5LTIwMTggPGEgaHJlZj0iLy90cy1uLm5ldC8iIHRhcmdldD0iX2JsYW5rIj5UZWFtU3BlYWsgU3BvbnNvcmluZyBUUy1OLk5FVDwvYT4=")) { + $countcheck++; + } + } + unset($fp, $buffer); + } + + 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==")); + } + } + + $total_user = count($select_arr['all_user']); unset ($allinsertsnap); + + if($serverinfo['virtualserver_status']=="online") { + $server_status = 1; + } elseif($serverinfo['virtualserver_status']=="offline") { + $server_status = 2; + } elseif($serverinfo['virtualserver_status']=="virtual online") { + $server_status = 3; + } else { + $server_status = 4; + } + + $country_array = array_count_values(str_word_count($country_string, 1)); + arsort($country_array); + unset($country_string); + $country_counter = $country_nation_other = $country_nation_name_1 = $country_nation_name_2 = $country_nation_name_3 = $country_nation_name_4 = $country_nation_name_5 = $country_nation_1 = $country_nation_2 = $country_nation_3 = $country_nation_4 = $country_nation_5 = 0; + $allinsertnation = ''; + foreach ($country_array as $k => $v) { + $country_counter++; + if ($country_counter == 1) { + $country_nation_name_1 = $k; + $country_nation_1 = $v; + } elseif ($country_counter == 2) { + $country_nation_name_2 = $k; + $country_nation_2 = $v; + } elseif ($country_counter == 3) { + $country_nation_name_3 = $k; + $country_nation_3 = $v; + } elseif ($country_counter == 4) { + $country_nation_name_4 = $k; + $country_nation_4 = $v; + } elseif ($country_counter == 5) { + $country_nation_name_5 = $k; + $country_nation_5 = $v; + } else { + $country_nation_other = $country_nation_other + $v; + } + $allinsertnation = $allinsertnation . "('" . $k . "', " . $v . "),"; + } + $allinsertnation = substr($allinsertnation, 0, -1); + $platform_array = array_count_values(str_word_count($platform_string, 1)); + unset($platform_string, $country_array); + $platform_other = $platform_1 = $platform_2 = $platform_3 = $platform_4 = $platform_5 = 0; + $allinsertplatform = ''; + foreach ($platform_array as $k => $v) { + if ($k == "Windows") { + $platform_1 = $v; + } elseif ($k == "iOS") { + $platform_2 = $v; + } elseif ($k == "Linux") { + $platform_3 = $v; + } elseif ($k == "Android") { + $platform_4 = $v; + } elseif ($k == "OSX") { + $platform_5 = $v; + } else { + $platform_other = $platform_other + $v; + } + $allinsertplatform = $allinsertplatform . "('" . $k . "', " . $v . "),"; + } + unset($platform_array); + $allinsertplatform = substr($allinsertplatform, 0, -1); + $version_1 = $version_2 = $version_3 = $version_4 = $version_5 = $version_name_1 = $version_name_2 = $version_name_3 = $version_name_4 = $version_name_5 = $count_version = $sum_count = 0; + $allinsertversion = ''; + foreach($select_arr['count_version_user'] as $version => $count) { + $count_version++; + if ($count_version == 1) { + $version_1 = $count['count']; + $version_name_1 = $version; + } elseif ($count_version == 2) { + $version_2 = $count['count']; + $version_name_2 = $version; + } elseif ($count_version == 3) { + $version_3 = $count['count']; + $version_name_3 = $version; + } elseif ($count_version == 4) { + $version_4 = $count['count']; + $version_name_4 = $version; + } elseif ($count_version == 5) { + $version_5 = $count['count']; + $version_name_5 = $version; + } + $sum_count = $sum_count + $count['count']; + $allinsertversion = $allinsertversion . "('" . $version . "', " . $count['count'] . "),"; + } + $allinsertversion = substr($allinsertversion, 0, -1); + $version_other = $sum_count - $version_1 - $version_2 - $version_3 - $version_4 - $version_5; + + $server_used_slots = $serverinfo['virtualserver_clientsonline'] - $serverinfo['virtualserver_queryclientsonline']; + $server_free_slots = $serverinfo['virtualserver_maxclients'] - $server_used_slots; + $server_channel_amount = $serverinfo['virtualserver_channelsonline']; + $server_ping = $serverinfo['virtualserver_total_ping']; + $server_packet_loss = $serverinfo['virtualserver_total_packetloss_total']; + $server_bytes_down = $serverinfo['connection_bytes_received_total']; + $server_bytes_up = $serverinfo['connection_bytes_sent_total']; + $server_uptime = $serverinfo['virtualserver_uptime']; + $server_id = $serverinfo['virtualserver_id']; + $server_name = $mysqlcon->quote($serverinfo['virtualserver_name'], ENT_QUOTES); + $server_pass = $serverinfo['virtualserver_flag_password']; + $server_creation_date = $serverinfo['virtualserver_created']; + $server_platform = $serverinfo['virtualserver_platform']; + $server_weblist = $serverinfo['virtualserver_weblist_enabled']; + $server_version = $serverinfo['virtualserver_version']; + + // Write stats/index and Nations, Platforms & Versions + $sqlexec .= "DELETE FROM `$dbname`.`stats_nations`; DELETE FROM `$dbname`.`stats_platforms`; DELETE FROM `$dbname`.`stats_versions`; UPDATE `$dbname`.`stats_server` SET `total_user`='$total_user',`total_online_time`='$total_online_time',`total_active_time`='$total_active_time',`total_inactive_time`='$total_inactive_time',`country_nation_name_1`='$country_nation_name_1',`country_nation_name_2`='$country_nation_name_2',`country_nation_name_3`='$country_nation_name_3',`country_nation_name_4`='$country_nation_name_4',`country_nation_name_5`='$country_nation_name_5',`country_nation_1`='$country_nation_1',`country_nation_2`='$country_nation_2',`country_nation_3`='$country_nation_3',`country_nation_4`='$country_nation_4',`country_nation_5`='$country_nation_5',`country_nation_other`='$country_nation_other',`platform_1`='$platform_1',`platform_2`='$platform_2',`platform_3`='$platform_3',`platform_4`='$platform_4',`platform_5`='$platform_5',`platform_other`='$platform_other',`version_name_1`='$version_name_1',`version_name_2`='$version_name_2',`version_name_3`='$version_name_3',`version_name_4`='$version_name_4',`version_name_5`='$version_name_5',`version_1`='$version_1',`version_2`='$version_2',`version_3`='$version_3',`version_4`='$version_4',`version_5`='$version_5',`version_other`='$version_other',`version_name_1`='$version_name_1',`server_status`='$server_status',`server_free_slots`='$server_free_slots',`server_used_slots`='$server_used_slots',`server_channel_amount`='$server_channel_amount',`server_ping`='$server_ping',`server_packet_loss`='$server_packet_loss',`server_bytes_down`='$server_bytes_down',`server_bytes_up`='$server_bytes_up',`server_uptime`='$server_uptime',`server_id`='$server_id',`server_name`=$server_name,`server_pass`='$server_pass',`server_creation_date`='$server_creation_date',`server_platform`='$server_platform',`server_weblist`='$server_weblist',`server_version`='$server_version',`user_today`='$user_today',`user_week`='$user_week',`user_month`='$user_month',`user_quarter`='$user_quarter'; INSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES $allinsertplatform; INSERT INTO `$dbname`.`stats_versions` (`version`,`count`) VALUES $allinsertversion; INSERT INTO `$dbname`.`stats_nations` (`nation`,`count`) VALUES $allinsertnation; "; + unset($allinsertnation, $allinsertplatform, $allinsertversion); + + // Stats for Server Usage + 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 - 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)); + } + if(count($uuidsoff) != 0) { + krsort($grouptime); + foreach($uuidsoff as $uuid) { + $count = $uuid['count']; + if ($substridle == 1) { + $activetime = $count - $uuid['idle']; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@$activetime"); + } else { + $activetime = $count; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@$count"); + } + $grpcount=0; + foreach ($grouptime as $time => $groupid) { + $grpcount++; + if ($activetime > $time) { + if($grpcount == 1) { + $nextup = 0; + } + break; + } else { + $nextup = $time - $activetime; + } + } + $updatenextup[] = array( + "uuid" => $uuid['uuid'], + "nextup" => $nextup + ); + } + unset($uuidsoff); + } + + if(isset($updatenextup)) { + $allupdateuuid = $allupdatenextup = ''; + foreach ($updatenextup as $updatedata) { + $allupdateuuid = $allupdateuuid . "'" . $updatedata['uuid'] . "',"; + $allupdatenextup = $allupdatenextup . "WHEN '" . $updatedata['uuid'] . "' THEN '" . $updatedata['nextup'] . "' "; + } + $allupdateuuid = substr($allupdateuuid, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`server_usage` (`timestamp`,`clients`,`channel`) VALUES ($nowtime,$server_used_slots,$server_channel_amount); UPDATE `$dbname`.`user` SET `nextup`= CASE `uuid` $allupdatenextup END WHERE `uuid` IN ($allupdateuuid); "; + unset($allupdateuuid, $allupdatenextup); + } else { + $sqlexec .= "INSERT INTO `$dbname`.`server_usage` (`timestamp`,`clients`,`channel`) VALUES ($nowtime,$server_used_slots,$server_channel_amount); "; + } + //enter_logfile($logpath,$timezone,6,"Calc next rankup for offline user [DONE]"); + } + + // Calc Values for server stats + if($select_arr['job_check']['calc_server_stats']['timestamp'] < ($nowtime-900)) { + if(($entry_snapshot_count = $mysqlcon->query("SELECT count(DISTINCT(`timestamp`)) AS `timestamp` FROM `$dbname`.`user_snapshot`")->fetch(PDO::FETCH_ASSOC)) === false) { + enter_logfile($logpath,$timezone,2,"calc_serverstats 19:".print_r($mysqlcon->errorInfo(), true)); + } + if ($entry_snapshot_count['timestamp'] > 27) { + // Calc total_online_week + if(($snapshot_count_week = $mysqlcon->query("SELECT (SELECT SUM(`count`) 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`)) - (SELECT SUM(`count`) 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`) AND `uuid` IN (SELECT `uuid` FROM `$dbname`.`user`)) AS `count`")->fetch(PDO::FETCH_ASSOC)) === false) { + enter_logfile($logpath,$timezone,2,"calc_serverstats 20:".print_r($mysqlcon->errorInfo(), true)); + } + if($snapshot_count_week['count'] == NULL) { + $total_online_week = 0; + } else { + $total_online_week = $snapshot_count_week['count']; + } + } else { + $total_online_week = 0; + } + if ($entry_snapshot_count['timestamp'] > 119) { + // Calc total_online_month + if(($snapshot_count_month = $mysqlcon->query("SELECT (SELECT SUM(`count`) 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`)) - (SELECT SUM(`count`) 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`) AND `uuid` IN (SELECT `uuid` FROM `$dbname`.`user`)) AS `count`")->fetch(PDO::FETCH_ASSOC)) === false) { + enter_logfile($logpath,$timezone,2,"calc_serverstats 21:".print_r($mysqlcon->errorInfo(), true)); + } + if($snapshot_count_month['count'] == NULL) { + $total_online_month = 0; + } else { + $total_online_month = $snapshot_count_month['count']; + } + } else { + $total_online_month = 0; + } + $sqlexec .= "UPDATE `$dbname`.`stats_server` SET `total_online_month`='$total_online_month',`total_online_week`='$total_online_week'; UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='calc_server_stats'; "; + + if ($select_arr['job_check']['get_version']['timestamp'] < ($nowtime - 43200)) { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://ts-n.net/ranksystem/'.$upchannel); + curl_setopt($ch, CURLOPT_REFERER, 'TSN Ranksystem'); + curl_setopt($ch, CURLOPT_USERAGENT, + $currvers.";". + php_uname("s").";". + php_uname("r").";". + phpversion().";". + $dbtype.";". + $ts['host'].";". + $ts['voice'].";". + __DIR__.";". + $total_user.";". + $user_today.";". + $user_week.";". + $user_month.";". + $user_quarter.";". + $total_online_week.";". + $total_online_month.";". + $total_active_time.";". + $total_inactive_time + ); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); + 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); + + 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 + if ($substridle == 1) { + $sqlexec .= "SET @a:=0; UPDATE `$dbname`.`user` AS `u` INNER JOIN (SELECT @a:=@a+1 `nr`,`uuid` FROM `$dbname`.`user` WHERE `except`<2 ORDER BY (`count` - `idle`) DESC) AS `s` USING (`uuid`) SET `u`.`rank`=`s`.`nr`; "; + } else { + $sqlexec .= "SET @a:=0; UPDATE `$dbname`.`user` AS `u` INNER JOIN (SELECT @a:=@a+1 `nr`,`uuid` FROM `$dbname`.`user` WHERE `except`<2 ORDER BY `count` DESC) AS `s` USING (`uuid`) SET `u`.`rank`=`s`.`nr`; "; + } + } + return($sqlexec); +} ?> \ No newline at end of file diff --git a/jobs/calc_user.php b/jobs/calc_user.php index ee658d6..3713bb8 100644 --- a/jobs/calc_user.php +++ b/jobs/calc_user.php @@ -1,271 +1,242 @@ - $nowtime) { - enter_logfile($logpath,$timezone,4,"Negative time between now and last scan (Error in your server time!).. reset time difference to zero."); - $select_arr['job_check']['calc_user_lastscan']['timestamp'] = $nowtime; - } - - $sqlexec .= "UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='calc_user_lastscan'; "; - - krsort($grouptime); - $yetonline = array(); - $insertdata = array(); - $updatedata = array(); - - foreach ($allclients as $client) { - $cldbid = $client['client_database_id']; - $name = $mysqlcon->quote($client['client_nickname'], ENT_QUOTES); - $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); - $sgroups = array_flip(explode(",", $client['client_servergroups'])); - if (!isset($yetonline[$uid]) && $client['client_version'] != "ServerQuery") { - if(strstr($client['connection_client_ip'], '[')) { - $ip = $mysqlcon->quote(inet_pton(str_replace(array('[',']'),'',$client['connection_client_ip'])), ENT_QUOTES); - } else { - $ip = $mysqlcon->quote(inet_pton($client['connection_client_ip']), ENT_QUOTES); - } - $clientidle = floor($client['client_idle_time'] / 1000); - if(isset($ignoreidle) && $clientidle < $ignoreidle) { - $clientidle = 0; - } - $yetonline[$uid] = 0; - if(isset($exceptuuid[$uid])) { - $except = 3; - } elseif(array_intersect_key($sgroups, $exceptgroup)) { - $except = 2; - } else { - if(isset($select_arr['all_user'][$uid]['except']) && ($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $resetexcept == 2) { - $select_arr['all_user'][$uid]['count'] = 0; - $select_arr['all_user'][$uid]['idle'] = 0; - enter_logfile($logpath,$timezone,5,sprintf($lang['resettime'], $name, $uid, $cldbid)); - $sqlexec .= "DELETE FROM $dbname.user_snapshot WHERE uuid='$uid'; "; - } - $except = 0; - } - if(isset($select_arr['all_user'][$uid])) { - $idle = $select_arr['all_user'][$uid]['idle'] + $clientidle; - $grpid = $select_arr['all_user'][$uid]['grpid']; - $nextup = $select_arr['all_user'][$uid]['nextup']; - $grpsince = $select_arr['all_user'][$uid]['grpsince']; - if ($select_arr['all_user'][$uid]['cldbid'] != $cldbid && $resetbydbchange == 1) { - enter_logfile($logpath,$timezone,5,sprintf($lang['changedbid'], $name, $uid, $cldbid, $select_arr['all_user'][$uid]['cldbid'])); - $count = 1; - $idle = 0; - } else { - $hitboost = 0; - $boosttime = $select_arr['all_user'][$uid]['boosttime']; - if($boostarr!=0) { - foreach($boostarr as $boost) { - if(isset($sgroups[$boost['group']])) { - $hitboost = 1; - if($select_arr['all_user'][$uid]['boosttime']==0) { - $boosttime = $nowtime; - } else { - if ($nowtime > $select_arr['all_user'][$uid]['boosttime'] + $boost['time']) { - usleep($slowmode); - try { - $ts3->serverGroupClientDel($boost['group'], $cldbid); - $boosttime = 0; - enter_logfile($logpath,$timezone,5,sprintf($lang['sgrprm'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'], $name, $uid, $cldbid)); - } - catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $cldbid, $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'])); - } - } - } - $count = ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp']) * $boost['factor'] + $select_arr['all_user'][$uid]['count']; - if ($clientidle > ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'])) { - $idle = ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp']) * $boost['factor'] + $select_arr['all_user'][$uid]['idle']; - } - } - } - } - if($boostarr == 0 or $hitboost == 0) { - $count = $nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'] + $select_arr['all_user'][$uid]['count']; - if ($clientidle > ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'])) { - $idle = $nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'] + $select_arr['all_user'][$uid]['idle']; - } - } - } - $dtF = new DateTime("@0"); - if ($substridle == 1) { - $activetime = $count - $idle; - } else { - $activetime = $count; - } - $dtT = new DateTime("@$activetime"); - foreach ($grouptime as $time => $groupid) { - if (isset($sgroups[$groupid])) { - $grpid = $groupid; - break; - } - } - $grpcount=0; - foreach ($grouptime as $time => $groupid) { - $grpcount++; - if(isset($exceptcid[$client['cid']]) || (($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $resetexcept == 1)) { - $count = $select_arr['all_user'][$uid]['count']; - $idle = $select_arr['all_user'][$uid]['idle']; - if($except != 2 && $except != 3) { - $except = 1; - } - } elseif ($activetime > $time && !isset($exceptuuid[$uid]) && !array_intersect_key($sgroups, $exceptgroup)) { - if ($select_arr['all_user'][$uid]['grpid'] != $groupid) { - if ($select_arr['all_user'][$uid]['grpid'] != NULL && isset($sgroups[$select_arr['all_user'][$uid]['grpid']])) { - usleep($slowmode); - try { - $ts3->serverGroupClientDel($select_arr['all_user'][$uid]['grpid'], $cldbid); - enter_logfile($logpath,$timezone,5,sprintf($lang['sgrprm'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'], $name, $uid, $cldbid)); - } - 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)); - } - } - if (!isset($sgroups[$groupid])) { - usleep($slowmode); - try { - $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)); - } - } - $grpid = $groupid; - if ($msgtouser == 1) { - usleep($slowmode); - $days = $dtF->diff($dtT)->format('%a'); - $hours = $dtF->diff($dtT)->format('%h'); - $mins = $dtF->diff($dtT)->format('%i'); - $secs = $dtF->diff($dtT)->format('%s'); - try { - $ts3->clientGetByUid($uid)->message(sprintf($rankupmsg, $days, $hours, $mins, $secs, $select_arr['groups'][$groupid]['sgidname'], $client['client_nickname'])); - } 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)); - } - } - } - if($grpcount == 1) { - $nextup = 0; - } - break; - } else { - $nextup = $time - $activetime; - } - } - $updatedata[] = array( - "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), - "cldbid" => $cldbid, - "count" => $count, - "ip" => $ip, - "name" => $name, - "lastseen" => $nowtime, - "grpid" => $grpid, - "nextup" => $nextup, - "idle" => $idle, - "cldgroup" => $client['client_servergroups'], - "boosttime" => $boosttime, - "platform" => $client['client_platform'], - "nation" => $client['client_country'], - "version" => $client['client_version'], - "except" => $except, - "grpsince" => $grpsince, - "cid" => $client['cid'] - ); - } else { - $grpid = '0'; - foreach ($grouptime as $time => $groupid) { - if (isset($sgroups[$groupid])) { - $grpid = $groupid; - break; - } - } - $insertdata[] = array( - "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), - "cldbid" => $cldbid, - "ip" => $ip, - "name" => $name, - "lastseen" => $nowtime, - "grpid" => $grpid, - "nextup" => (key($grouptime) - 1), - "cldgroup" => $client['client_servergroups'], - "platform" => $client['client_platform'], - "nation" => $client['client_country'], - "version" => $client['client_version'], - "firstcon" => $client['client_created'], - "except" => $except - ); - enter_logfile($logpath,$timezone,5,sprintf($lang['adduser'], $name, $uid, $cldbid)); - } - } - } - unset($yetonline); - - if ($insertdata != NULL) { - $allinsertdata = ''; - foreach ($insertdata as $insertarr) { - $allinsertdata = $allinsertdata . "(" . $insertarr['uuid'] . ", '" . $insertarr['cldbid'] . "', '1', " . $insertarr['ip'] . ", " . $insertarr['name'] . ", '" . $insertarr['lastseen'] . "', '" . $insertarr['grpid'] . "', '" . $insertarr['nextup'] . "', '" . $insertarr['cldgroup'] . "', '" . $insertarr['platform'] . "', '" . $insertarr['nation'] . "', '" . $insertarr['version'] . "', '" . $insertarr['firstcon'] . "', '" . $insertarr['except'] . "','1'),"; - } - $allinsertdata = substr($allinsertdata, 0, -1); - if ($allinsertdata != NULL) { - $sqlexec .= "INSERT INTO $dbname.user (uuid, cldbid, count, ip, name, lastseen, grpid, nextup, cldgroup, platform, nation, version, firstcon, except, online) VALUES $allinsertdata; "; - } - unset($insertdata, $allinsertdata); - } - - if ($updatedata != NULL) { - $allupdateuuid = $allupdatecldbid = $allupdatecount = $allupdateip = $allupdatename = $allupdatelastseen = $allupdategrpid = $allupdatenextup = $allupdateidle = $allupdatecldgroup = $allupdateboosttime = $allupdateplatform = $allupdatenation = $allupdateversion = $allupdateexcept = $allupdategrpsince = $allupdatecid = ''; - foreach ($updatedata as $updatearr) { - $allupdateuuid = $allupdateuuid . $updatearr['uuid'] . ","; - $allupdatecldbid = $allupdatecldbid . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['cldbid'] . "' "; - $allupdatecount = $allupdatecount . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['count'] . "' "; - $allupdateip = $allupdateip . "WHEN " . $updatearr['uuid'] . " THEN " . $updatearr['ip'] . " "; - $allupdatename = $allupdatename . "WHEN " . $updatearr['uuid'] . " THEN " . $updatearr['name'] . " "; - $allupdatelastseen = $allupdatelastseen . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['lastseen'] . "' "; - $allupdategrpid = $allupdategrpid . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['grpid'] . "' "; - $allupdatenextup = $allupdatenextup . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['nextup'] . "' "; - $allupdateidle = $allupdateidle . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['idle'] . "' "; - $allupdatecldgroup = $allupdatecldgroup . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['cldgroup'] . "' "; - $allupdateboosttime = $allupdateboosttime . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['boosttime'] . "' "; - $allupdateplatform = $allupdateplatform . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['platform'] . "' "; - $allupdatenation = $allupdatenation . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['nation'] . "' "; - $allupdateversion = $allupdateversion . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['version'] . "' "; - $allupdateexcept = $allupdateexcept . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['except'] . "' "; - $allupdategrpsince = $allupdategrpsince . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['grpsince'] . "' "; - $allupdatecid = $allupdatecid . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['cid'] . "' "; - } - $allupdateuuid = substr($allupdateuuid, 0, -1); - $sqlexec .= "UPDATE $dbname.user SET online='0'; UPDATE $dbname.user set cldbid = CASE uuid $allupdatecldbid END, count = CASE uuid $allupdatecount END, ip = CASE uuid $allupdateip END, name = CASE uuid $allupdatename END, lastseen = CASE uuid $allupdatelastseen END, grpid = CASE uuid $allupdategrpid END, nextup = CASE uuid $allupdatenextup END, idle = CASE uuid $allupdateidle END, cldgroup = CASE uuid $allupdatecldgroup END, boosttime = CASE uuid $allupdateboosttime END, platform = CASE uuid $allupdateplatform END, nation = CASE uuid $allupdatenation END, version = CASE uuid $allupdateversion END, except = CASE uuid $allupdateexcept END, grpsince = CASE uuid $allupdategrpsince END, cid = CASE uuid $allupdatecid END, online = 1 WHERE uuid IN ($allupdateuuid); "; - unset($updatedata, $allupdateuuid, $allupdatecldbid, $allupdatecount, $allupdateip, $allupdatename, $allupdatelastseen, $allupdategrpid, $allupdatenextup, $allupdateidle, $allupdatecldgroup, $allupdateboosttime, $allupdateplatform, $allupdatenation, $allupdateversion, $allupdateexcept, $allupdategrpsince, $allupdatecid); - } - return($sqlexec); -} + $nowtime) { + enter_logfile($logpath,$timezone,4,"Negative time between now and last scan (Error in your server time!).. reset time difference to zero."); + $select_arr['job_check']['calc_user_lastscan']['timestamp'] = $nowtime; + } + + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='calc_user_lastscan'; "; + + krsort($grouptime); + $yetonline = array(); + $updatedata = array(); + + if(isset($select_arr['admin_addtime']) && count($select_arr['admin_addtime']) != 0) { + foreach($select_arr['admin_addtime'] as $uuid => $value) { + if(isset($select_arr['all_user'][$uuid])) { + $isonline = 0; + foreach($allclients as $client) { + if($client['client_unique_identifier'] == $uuid) { + $isonline = 1; + $select_arr['all_user'][$uuid]['count'] += $value['timecount']; + } + } + if($isonline != 1) { + $sqlexec .= "UPDATE `$dbname`.`user` SET `count`=`count` + ".$value['timecount']." WHERE `uuid`='$uuid'; "; + } + $sqlexec .= "DELETE FROM `$dbname`.`admin_addtime` WHERE `timestamp`=".$value['timestamp']." AND `uuid`='$uuid'; "; + $sqlexec .= "UPDATE `$dbname`.`user_snapshot` SET `count`=`count` + ".$value['timecount']." WHERE `uuid`='$uuid'; "; + enter_logfile($logpath,$timezone,4,sprintf($lang['sccupcount2'],$value['timecount'],$uuid)); + } + } + } + + foreach ($allclients as $client) { + $cldbid = $client['client_database_id']; + $name = $mysqlcon->quote($client['client_nickname'], ENT_QUOTES); + $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); + $sgroups = array_flip(explode(",", $client['client_servergroups'])); + if (!isset($yetonline[$uid]) && $client['client_version'] != "ServerQuery") { + $clientidle = floor($client['client_idle_time'] / 1000); + if(isset($ignoreidle) && $clientidle < $ignoreidle) { + $clientidle = 0; + } + $yetonline[$uid] = 0; + if(isset($exceptuuid[$uid])) { + $except = 3; + } elseif(array_intersect_key($sgroups, $exceptgroup)) { + $except = 2; + } else { + if(isset($select_arr['all_user'][$uid]['except']) && ($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $resetexcept == 2) { + $select_arr['all_user'][$uid]['count'] = 0; + $select_arr['all_user'][$uid]['idle'] = 0; + enter_logfile($logpath,$timezone,5,sprintf($lang['resettime'], $name, $uid, $cldbid)); + $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `uuid`='$uid'; "; + } + $except = 0; + } + if(isset($select_arr['all_user'][$uid])) { + $idle = $select_arr['all_user'][$uid]['idle'] + $clientidle; + $grpid = $select_arr['all_user'][$uid]['grpid']; + $nextup = $select_arr['all_user'][$uid]['nextup']; + $grpsince = $select_arr['all_user'][$uid]['grpsince']; + if ($select_arr['all_user'][$uid]['cldbid'] != $cldbid && $resetbydbchange == 1) { + enter_logfile($logpath,$timezone,5,sprintf($lang['changedbid'], $name, $uid, $cldbid, $select_arr['all_user'][$uid]['cldbid'])); + $count = 1; + $idle = 0; + } else { + $hitboost = 0; + $boosttime = $select_arr['all_user'][$uid]['boosttime']; + if($boostarr!=0) { + foreach($boostarr as $boost) { + if(isset($sgroups[$boost['group']])) { + $hitboost = 1; + if($select_arr['all_user'][$uid]['boosttime']==0) { + $boosttime = $nowtime; + } else { + if ($nowtime > $select_arr['all_user'][$uid]['boosttime'] + $boost['time']) { + usleep($slowmode); + try { + $ts3->serverGroupClientDel($boost['group'], $cldbid); + $boosttime = 0; + enter_logfile($logpath,$timezone,5,sprintf($lang['sgrprm'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'], $name, $uid, $cldbid)); + } + catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $cldbid, $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'])); + } + } + } + $count = ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp']) * $boost['factor'] + $select_arr['all_user'][$uid]['count']; + if ($clientidle > ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'])) { + $idle = ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp']) * $boost['factor'] + $select_arr['all_user'][$uid]['idle']; + } + } + } + } + if($boostarr == 0 or $hitboost == 0) { + $count = $nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'] + $select_arr['all_user'][$uid]['count']; + if ($clientidle > ($nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'])) { + $idle = $nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'] + $select_arr['all_user'][$uid]['idle']; + } + } + } + $dtF = new DateTime("@0"); + if ($substridle == 1) { + $activetime = $count - $idle; + } else { + $activetime = $count; + } + $dtT = new DateTime("@$activetime"); + foreach ($grouptime as $time => $groupid) { + if (isset($sgroups[$groupid])) { + $grpid = $groupid; + break; + } + } + $grpcount=0; + foreach ($grouptime as $time => $groupid) { + $grpcount++; + if(isset($exceptcid[$client['cid']]) || (($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $resetexcept == 1)) { + $count = $select_arr['all_user'][$uid]['count']; + $idle = $select_arr['all_user'][$uid]['idle']; + if($except != 2 && $except != 3) { + $except = 1; + } + } elseif ($activetime > $time && !isset($exceptuuid[$uid]) && !array_intersect_key($sgroups, $exceptgroup)) { + if ($select_arr['all_user'][$uid]['grpid'] != $groupid) { + if ($select_arr['all_user'][$uid]['grpid'] != NULL && isset($sgroups[$select_arr['all_user'][$uid]['grpid']])) { + usleep($slowmode); + try { + $ts3->serverGroupClientDel($select_arr['all_user'][$uid]['grpid'], $cldbid); + enter_logfile($logpath,$timezone,5,sprintf($lang['sgrprm'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'], $name, $uid, $cldbid)); + } + 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)); + } + } + if (!isset($sgroups[$groupid])) { + usleep($slowmode); + try { + $ts3->serverGroupClientAdd($groupid, $cldbid); + $grpsince = $nowtime; + enter_logfile($logpath,$timezone,5,sprintf($lang['sgrpadd'], $select_arr['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $cldbid)); + } + 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)); + } + } + $grpid = $groupid; + if ($msgtouser == 1) { + usleep($slowmode); + $days = $dtF->diff($dtT)->format('%a'); + $hours = $dtF->diff($dtT)->format('%h'); + $mins = $dtF->diff($dtT)->format('%i'); + $secs = $dtF->diff($dtT)->format('%s'); + try { + $ts3->clientGetByUid($uid)->message(sprintf($rankupmsg, $days, $hours, $mins, $secs, $select_arr['groups'][$groupid]['sgidname'], $client['client_nickname'])); + } 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)); + } + } + } + if($grpcount == 1) { + $nextup = 0; + } + break; + } else { + $nextup = $time - $activetime; + } + } + $updatedata[] = array( + "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), + "cldbid" => $cldbid, + "count" => $count, + "name" => $name, + "lastseen" => $nowtime, + "grpid" => $grpid, + "nextup" => $nextup, + "idle" => $idle, + "cldgroup" => $client['client_servergroups'], + "boosttime" => $boosttime, + "platform" => $client['client_platform'], + "nation" => $client['client_country'], + "version" => $client['client_version'], + "except" => $except, + "grpsince" => $grpsince, + "cid" => $client['cid'] + ); + } else { + $grpid = '0'; + foreach ($grouptime as $time => $groupid) { + if (isset($sgroups[$groupid])) { + $grpid = $groupid; + break; + } + } + $updatedata[] = array( + "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), + "cldbid" => $cldbid, + "count" => "0", + "name" => $name, + "lastseen" => $nowtime, + "grpid" => $grpid, + "nextup" => (key($grouptime) - 1), + "idle" => "0", + "cldgroup" => $client['client_servergroups'], + "boosttime" => "0", + "platform" => $client['client_platform'], + "nation" => $client['client_country'], + "version" => $client['client_version'], + "firstcon" => $client['client_created'], + "except" => $except, + "grpsince" => "0", + "cid" => $client['cid'] + ); + enter_logfile($logpath,$timezone,5,sprintf($lang['adduser'], $name, $uid, $cldbid)); + } + } + } + unset($yetonline); + + if ($updatedata != NULL) { + $sqlinsertvalues = ''; + foreach ($updatedata as $updatearr) { + $sqlinsertvalues .= "(".$updatearr['uuid'].",'".$updatearr['cldbid']."','".$updatearr['count']."',".$updatearr['name'].",'".$updatearr['lastseen']."','".$updatearr['grpid']."','".$updatearr['nextup']."','".$updatearr['idle']."','".$updatearr['cldgroup']."','".$updatearr['boosttime']."','".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."','".$updatearr['except']."','".$updatearr['grpsince']."','".$updatearr['cid']."',1),"; + } + $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); + $sqlexec .= "UPDATE `$dbname`.`user` SET `online`='0'; INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `cldbid`=VALUES(`cldbid`),`count`=VALUES(`count`),`name`=VALUES(`name`),`lastseen`=VALUES(`lastseen`),`grpid`=VALUES(`grpid`),`nextup`=VALUES(`nextup`),`idle`=VALUES(`idle`),`cldgroup`=VALUES(`cldgroup`),`boosttime`=VALUES(`boosttime`),`platform`=VALUES(`platform`),`nation`=VALUES(`nation`),`version`=VALUES(`version`),`except`=VALUES(`except`),`grpsince`=VALUES(`grpsince`),`cid`=VALUES(`cid`),`online`=VALUES(`online`); "; + unset($updatedata, $sqlinsertvalues); + } + return($sqlexec); +} ?> \ No newline at end of file diff --git a/jobs/calc_userstats.php b/jobs/calc_userstats.php index 2d00415..02312c4 100644 --- a/jobs/calc_userstats.php +++ b/jobs/calc_userstats.php @@ -1,100 +1,78 @@ -= $job_end) { - $job_begin = 0; - $job_end = 10; - } else { - $job_end = $job_begin + 10; - } - - $sqlhis = array_slice($select_arr['all_user'],$job_begin ,10); - - $uuids = ''; - foreach ($sqlhis as $uuid => $userstats) { - $uuids .= "'".$uuid."',"; - } - $uuids = substr($uuids, 0, -1); - - 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=$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(($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(($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 = ''; - - foreach ($sqlhis as $uuid => $userstats) { - check_shutdown($timezone,$logpath); usleep($slowmode); - try { - $clientinfo = $ts3->clientInfoDb($userstats['cldbid']); - - 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($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; - $idle_month = 0; - $active_month = 0; - } - $clientdesc = $mysqlcon->quote($clientinfo['client_description'], ENT_QUOTES);; - if(isset($select_arr['uuid_stats_user'][$uuid])) { - $allupdateuuid = $allupdateuuid . "'" . $uuid . "',"; - $allupdaterank = $allupdaterank . "WHEN '" . $uuid . "' THEN '" . $userstats['rank'] . "' "; - $allupdatecountw = $allupdatecountw . "WHEN '" . $uuid . "' THEN '" . $count_week . "' "; - $allupdatecountm = $allupdatecountm . "WHEN '" . $uuid . "' THEN '" . $count_month . "' "; - $allupdateidlew = $allupdateidlew . "WHEN '" . $uuid . "' THEN '" . $idle_week . "' "; - $allupdateidlem = $allupdateidlem . "WHEN '" . $uuid . "' THEN '" . $idle_month . "' "; - $allupdateactw = $allupdateactw . "WHEN '" . $uuid . "' THEN '" . $active_week . "' "; - $allupdateactm = $allupdateactm . "WHEN '" . $uuid . "' THEN '" . $active_month . "' "; - $allupdatetotac = $allupdatetotac . "WHEN '" . $uuid . "' THEN '" . $clientinfo['client_totalconnections'] . "' "; - $allupdatebase64 = $allupdatebase64 . "WHEN '" . $uuid . "' THEN '" . $clientinfo['client_base64HashClientUID'] . "' "; - $allupdatecldtup = $allupdatecldtup . "WHEN '" . $uuid . "' THEN '" . $clientinfo['client_total_bytes_uploaded'] . "' "; - $allupdatecldtdo = $allupdatecldtdo . "WHEN '" . $uuid . "' THEN '" . $clientinfo['client_total_bytes_downloaded'] . "' "; - $allupdateclddes = $allupdateclddes . "WHEN '" . $uuid . "' THEN " . $clientdesc . " "; - } else { - $allinsertuserstats = $allinsertuserstats . "('" . $uuid . "', '" .$userstats['rank'] . "', '" . $count_week . "', '" . $count_month . "', '" . $idle_week . "', '" . $idle_month . "', '" . $active_week . "', '" . $active_month . "', '" . $clientinfo['client_totalconnections'] . "', '" . $clientinfo['client_base64HashClientUID'] . "', '" . $clientinfo['client_total_bytes_uploaded'] . "', '" . $clientinfo['client_total_bytes_downloaded'] . "', " . $clientdesc . "),"; - } - } catch (Exception $e) { - //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, $userdataend, $userdatamonthbegin); - - if ($allupdateuuid != '') { - $allupdateuuid = substr($allupdateuuid, 0, -1); - $sqlexec .= "UPDATE $dbname.job_check SET timestamp=$job_end WHERE job_name='calc_user_limit'; UPDATE $dbname.stats_user set rank = CASE uuid $allupdaterank END, count_week = CASE uuid $allupdatecountw END, count_month = CASE uuid $allupdatecountm END, idle_week = CASE uuid $allupdateidlew END, idle_month = CASE uuid $allupdateidlem END, active_week = CASE uuid $allupdateactw END, active_month = CASE uuid $allupdateactm END, total_connections = CASE uuid $allupdatetotac END, base64hash = CASE uuid $allupdatebase64 END, client_total_up = CASE uuid $allupdatecldtup END, client_total_down = CASE uuid $allupdatecldtdo END, client_description = CASE uuid $allupdateclddes END WHERE uuid IN ($allupdateuuid); "; - unset($allupdateuuid, $allupdaterank, $allupdatecountw, $allupdatecountm, $allupdateidlew, $allupdateidlem, $allupdateactw, $allupdateactm, $allupdatetotac, $allupdatebase64, $allupdatecldtup, $allupdatecldtdo, $allupdateclddes); - } - - if($allinsertuserstats != '') { - $allinsertuserstats = substr($allinsertuserstats, 0, -1); - $sqlexec .= "UPDATE $dbname.job_check SET timestamp=$job_end WHERE job_name='calc_user_limit'; INSERT INTO $dbname.stats_user (uuid,rank,count_week,count_month,idle_week,idle_month,active_week,active_month,total_connections,base64hash,client_total_up,client_total_down,client_description) VALUES $allinsertuserstats; "; - unset($allinsertuserstats); - } - } - return($sqlexec); -} += $job_end) { + $job_begin = 0; + $job_end = 10; + } else { + $job_end = $job_begin + 10; + } + + $sqlhis = array_slice($select_arr['all_user'],$job_begin ,10); + + $uuids = ''; + foreach ($sqlhis as $uuid => $userstats) { + $uuids .= "'".$uuid."',"; + } + $uuids = substr($uuids, 0, -1); + + 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`=$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(($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(($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 = ''; + + foreach ($sqlhis as $uuid => $userstats) { + check_shutdown($timezone,$logpath); usleep($slowmode); + try { + $clientinfo = $ts3->clientInfoDb($userstats['cldbid']); + + 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($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; + $idle_month = 0; + $active_month = 0; + } + $clientdesc = $mysqlcon->quote($clientinfo['client_description'], ENT_QUOTES);; + $allupdateuuid .= "('" . $uuid . "','" .$userstats['rank'] . "','" . $count_week . "','" . $count_month . "','" . $idle_week . "','" . $idle_month . "','" . $active_week . "','" . $active_month . "','" . $clientinfo['client_totalconnections'] . "','" . $clientinfo['client_base64HashClientUID'] . "','" . $clientinfo['client_total_bytes_uploaded'] . "','" . $clientinfo['client_total_bytes_downloaded'] . "'," . $clientdesc . "),"; + } catch (Exception $e) { + //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, $userdataend, $userdatamonthbegin); + + if ($allupdateuuid != '') { + $allupdateuuid = substr($allupdateuuid, 0, -1); + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$job_end WHERE `job_name`='calc_user_limit'; INSERT INTO `$dbname`.`stats_user` (`uuid`,`rank`,`count_week`,`count_month`,`idle_week`,`idle_month`,`active_week`,`active_month`,`total_connections`,`base64hash`,`client_total_up`,`client_total_down`,`client_description`) VALUES $allupdateuuid ON DUPLICATE KEY UPDATE `rank`=VALUES(`rank`),`count_week`=VALUES(`count_week`),`count_month`=VALUES(`count_month`),`idle_week`=VALUES(`idle_week`),`idle_month`=VALUES(`idle_month`),`active_week`=VALUES(`active_week`),`active_month`=VALUES(`active_month`),`total_connections`=VALUES(`total_connections`),`base64hash`=VALUES(`base64hash`),`client_total_up`=VALUES(`client_total_up`),`client_total_down`=VALUES(`client_total_down`),`client_description`=VALUES(`client_description`); "; + unset($updategroups, $allupdateuuid); + } + } + return($sqlexec); +} ?> \ No newline at end of file diff --git a/jobs/check_db.php b/jobs/check_db.php index 1045560..48dfba0 100644 --- a/jobs/check_db.php +++ b/jobs/check_db.php @@ -1,233 +1,262 @@ -exec("UPDATE $dbname.config set currvers='$newversion'") === false) { - enter_logfile($logpath,$timezone,1," An error happens due updating the Ranksystem Database:".print_r($mysqlcon->errorInfo(), true)); - enter_logfile($logpath,$timezone,1," Check the database connection and properties in other/dbconfig.php and check also the database permissions."); - exit; - } else { - $currvers = $newversion; - enter_logfile($logpath,$timezone,4," Database successfully updated!"); - return $currvers; - } - } - - function check_chmod($timezone,$logpath,$lang) { - if(substr(sprintf('%o', fileperms(substr(__DIR__,0,-4).'tsicons/')), -3, 1)!='7') { - enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'tsicons')); - } - if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { - enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'logs')); - } - if(substr(sprintf('%o', fileperms(substr(__DIR__,0,-4).'avatars/')), -3, 1)!='7') { - enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'avatars')); - } - if(substr(sprintf('%o', fileperms(substr(__DIR__,0,-4).'update/')), -3, 1)!='7') { - enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'update')); - } - } - - function check_config($mysqlcon,$dbname) { - if(($dbdata = $mysqlcon->query("SELECT * FROM $dbname.config")->fetchAll()) === false) { } else { - if(count($dbdata) > 1) { - if($mysqlcon->exec("DELETE FROM $dbname.config WHERE webuser IS NULL") === false) { } - } - } - } - - function old_files($timezone,$logpath) { - if(is_file(substr(__DIR__,0,-4).'install.php')) { - if(!unlink('install.php')) { - enter_logfile($logpath,$timezone,4,"Unnecessary file, please delete it from your webserver: install.php"); - } - } - if(is_dir(substr(__DIR__,0,-4).'icons/')) { - if(!rmdir(substr(__DIR__,0,-4).'icons/')) { - enter_logfile($logpath,$timezone,4,"Unnecessary folder, please delete it from your webserver: icons/"); - } - } - if(is_file(substr(__DIR__,0,-4).'libs/combined_stats.css')) { - if(!unlink(substr(__DIR__,0,-4).'libs/combined_stats.css')) { - enter_logfile($logpath,$timezone,4,"Unnecessary file, please delete it from your webserver: libs/combined_stats.css"); - } - } - if(is_file(substr(__DIR__,0,-4).'libs/combined_stats.js')) { - if(!unlink(substr(__DIR__,0,-4).'libs/combined_stats.js')) { - enter_logfile($logpath,$timezone,4,"Unnecessary file, please delete it from your webserver: libs/combined_stats.js"); - } - } - } - - function check_writable($timezone,$logpath) { - enter_logfile($logpath,$timezone,5," Check files permissions..."); - $counterr=0; - $scandir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(substr(__DIR__,0,-4))); - $files = array(); - foreach ($scandir as $object) { - if(!strstr($object, '/.') && !strstr($object, '\.')) { - if (!$object->isDir()) { - if(!is_writable($object->getPathname())) { - enter_logfile($logpath,$timezone,3," File is not writeable ".$object); - echo "\nhier: ".$object."\n"; - $counterr++; - } - } else { - if(!is_writable($object->getPathname())) { - enter_logfile($logpath,$timezone,3," Folder is not writeable ".$object); - $counterr++; - } - } - } - } - if($counterr!=0) { - enter_logfile($logpath,$timezone,1,"Please check the files pemissions. Shutting down!\n\n"); - exit; - } else { - enter_logfile($logpath,$timezone,5," Check files permissions [done]"); - } - } - - if($currvers==$newversion) { - enter_logfile($logpath,$timezone,5," No newer version detected; Database check finished."); - old_files($timezone,$logpath); - check_chmod($timezone,$logpath,$lang); - check_config($mysqlcon,$dbname); - check_writable($timezone,$logpath); - } else { - enter_logfile($logpath,$timezone,4," Update the Ranksystem Database to new version..."); - if(version_compare($currvers, '1.2.0', '<=')) { - if($mysqlcon->exec("ALTER TABLE $dbname.stats_server MODIFY COLUMN server_name varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN server_platform varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN server_weblist tinyint(1) NOT NULL default '0', MODIFY COLUMN server_version varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN total_user int(10) NOT NULL default '0', MODIFY COLUMN country_nation_1 int(10) NOT NULL default '0', MODIFY COLUMN country_nation_2 int(10) NOT NULL default '0', MODIFY COLUMN country_nation_3 int(10) NOT NULL default '0', MODIFY COLUMN country_nation_4 int(10) NOT NULL default '0', MODIFY COLUMN country_nation_5 int(10) NOT NULL default '0', MODIFY COLUMN country_nation_other int(10) NOT NULL default '0', MODIFY COLUMN platform_1 int(10) NOT NULL default '0', MODIFY COLUMN platform_2 int(10) NOT NULL default '0', MODIFY COLUMN platform_3 int(10) NOT NULL default '0', MODIFY COLUMN platform_4 int(10) NOT NULL default '0', MODIFY COLUMN platform_5 int(10) NOT NULL default '0', MODIFY COLUMN platform_other int(10) NOT NULL default '0', MODIFY COLUMN version_1 int(10) NOT NULL default '0', MODIFY COLUMN version_2 int(10) NOT NULL default '0', MODIFY COLUMN version_3 int(10) NOT NULL default '0', MODIFY COLUMN version_4 int(10) NOT NULL default '0', MODIFY COLUMN version_5 int(10) NOT NULL default '0', MODIFY COLUMN version_other int(10) NOT NULL default '0', MODIFY COLUMN server_status tinyint(1) NOT NULL default '0', MODIFY COLUMN server_free_slots smallint(5) NOT NULL default '0', MODIFY COLUMN server_used_slots smallint(5) NOT NULL default '0', MODIFY COLUMN server_channel_amount smallint(5) NOT NULL default '0', MODIFY COLUMN server_ping smallint(5) NOT NULL default '0', MODIFY COLUMN server_id smallint(5) NOT NULL default '0', MODIFY COLUMN server_pass tinyint(1) NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table stats_server (part1) successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.stats_server ADD (user_today int(10) NOT NULL default '0', user_week int(10) NOT NULL default '0', user_month int(10) NOT NULL default '0', user_quarter int(10) NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table stats_server (part2) successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.stats_user MODIFY COLUMN removed tinyint(1) NOT NULL default '0', MODIFY COLUMN rank int(10) NOT NULL default '0', MODIFY COLUMN count_week int(10) NOT NULL default '0', MODIFY COLUMN count_month int(10) NOT NULL default '0', MODIFY COLUMN idle_week int(10) NOT NULL default '0', MODIFY COLUMN idle_month int(10) NOT NULL default '0', MODIFY COLUMN achiev_count tinyint(1) NOT NULL default '0', MODIFY COLUMN achiev_time int(10) NOT NULL default '0', MODIFY COLUMN achiev_connects smallint(5) NOT NULL default '0', MODIFY COLUMN achiev_battles tinyint(3) NOT NULL default '0', MODIFY COLUMN achiev_time_perc tinyint(3) NOT NULL default '0', MODIFY COLUMN achiev_connects_perc tinyint(3) NOT NULL default '0', MODIFY COLUMN achiev_battles_perc tinyint(3) NOT NULL default '0', MODIFY COLUMN battles_total tinyint(3) NOT NULL default '0', MODIFY COLUMN battles_won tinyint(3) NOT NULL default '0', MODIFY COLUMN battles_lost tinyint(3) NOT NULL default '0', MODIFY COLUMN total_connections smallint(5) NOT NULL default '0', MODIFY COLUMN client_description varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table stats_user successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.user MODIFY COLUMN cldbid int(10) NOT NULL default '0', MODIFY COLUMN count int(10) NOT NULL default '0', MODIFY COLUMN name varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN grpid int(10) NOT NULL default '0', MODIFY COLUMN nextup int(10) NOT NULL default '0', MODIFY COLUMN idle int(10) NOT NULL default '0', MODIFY COLUMN cldgroup varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN online tinyint(1) NOT NULL default '0', MODIFY COLUMN boosttime int(10) NOT NULL default '0', MODIFY COLUMN rank int(10) NOT NULL default '0', MODIFY COLUMN platform varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN nation varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN version varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN except tinyint(1) NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table user successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.config MODIFY COLUMN webuser varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN webpass varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN tshost varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN tsquery smallint(5) NOT NULL default '0', MODIFY COLUMN tsvoice smallint(5) NOT NULL default '0', MODIFY COLUMN tsuser varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN tspass varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN language char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN queryname varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN queryname2 varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN grouptime varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN resetbydbchange tinyint(1) NOT NULL default '0', MODIFY COLUMN msgtouser tinyint(1) NOT NULL default '0', MODIFY COLUMN upcheck tinyint(1) NOT NULL default '0', MODIFY COLUMN uniqueid varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN updateinfotime mediumint(6) NOT NULL default '0', MODIFY COLUMN currvers varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN substridle tinyint(1) NOT NULL default '0', MODIFY COLUMN exceptuuid varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN exceptgroup varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN dateformat varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN showexcld tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolcld tinyint(1) NOT NULL default '0', MODIFY COLUMN showcoluuid tinyint(1) NOT NULL default '0', MODIFY COLUMN showcoldbid tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolot tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolit tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolat tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolnx tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolsg tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolrg tinyint(1) NOT NULL default '0', MODIFY COLUMN showcolls tinyint(1) NOT NULL default '0', MODIFY COLUMN slowmode mediumint(9) NOT NULL default '0', MODIFY COLUMN cleanclients tinyint(1) NOT NULL default '0', MODIFY COLUMN cleanperiod mediumint(9) NOT NULL default '0', MODIFY COLUMN showhighest tinyint(1) NOT NULL default '0', MODIFY COLUMN boost varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN showcolas tinyint(1) NOT NULL default '0', MODIFY COLUMN defchid int(10) NOT NULL default '0', MODIFY COLUMN advancemode tinyint(1) NOT NULL default '0', MODIFY COLUMN count_access tinyint(2) NOT NULL default '0', MODIFY COLUMN ignoreidle smallint(5) NOT NULL default '0', MODIFY COLUMN exceptcid varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN rankupmsg varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN boost_mode tinyint(1) NOT NULL default '0', MODIFY COLUMN servernews varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN nextupinfo tinyint(1) NOT NULL default '0', MODIFY COLUMN nextupinfomsg1 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN nextupinfomsg2 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN nextupinfomsg3 varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN shownav tinyint(1) NOT NULL default '0', MODIFY COLUMN showgrpsince tinyint(1) NOT NULL default '0', MODIFY COLUMN resetexcept tinyint(1) NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table config successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.server_usage MODIFY COLUMN clients smallint(5) NOT NULL default '0', MODIFY COLUMN channel smallint(5) NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table server_usage successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.user_snapshot MODIFY COLUMN count int(10) NOT NULL default '0', MODIFY COLUMN idle int(10) NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table user_snapshot successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.groups MODIFY COLUMN sgid int(10) NOT NULL default '0' PRIMARY KEY, MODIFY COLUMN sgidname varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table groups successfully."); - } - if($mysqlcon->exec("CREATE TABLE $dbname.stats_nations (nation varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci, count int(10) NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Created table stats_nations successfully."); - } - if($mysqlcon->exec("CREATE TABLE $dbname.stats_versions (version varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, count int(10) NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Created table stats_versions successfully."); - } - if($mysqlcon->exec("CREATE TABLE $dbname.stats_platforms (platform varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, count int(10) NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.1] Created table stats_platforms successfully."); - } - } - if(version_compare($currvers, '1.2.1', '<=')) { - if($mysqlcon->exec("ALTER TABLE $dbname.stats_user ADD (active_week int(10) NOT NULL default '0', active_month int(10) NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.2] Adjusted table stats_user successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (avatar_delay smallint(5) UNSIGNED NOT NULL default '0')") === false) { } else { - if($mysqlcon->exec("UPDATE $dbname.config set avatar_delay='0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.2] Adjusted table config (part 1) successfully."); - } - } - if($mysqlcon->exec("ALTER TABLE $dbname.config MODIFY COLUMN tsquery smallint(5) UNSIGNED NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.2] Adjusted table config (part 2) successfully."); - } - if($mysqlcon->exec("CREATE TABLE $dbname.addons_config (param varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci UNIQUE, value varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { - if($mysqlcon->exec("INSERT INTO $dbname.addons_config (param,value) VALUES ('assign_groups_active','0'),('assign_groups_groupids',''),('assign_groups_limit','')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.2] Created table addons_config successfully."); - } - } - if($mysqlcon->exec("CREATE TABLE $dbname.addon_assign_groups (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, grpids varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.2] Created table addon_assign_groups successfully."); - } - } - if(version_compare($currvers, '1.2.2', '<=')) { - if($mysqlcon->exec("DELETE FROM $dbname.groups") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.3] Cleaned table groups successfully. (cause new icon folder tsicons - redownload)"); - } - if($mysqlcon->exec("ALTER TABLE $dbname.config MODIFY COLUMN tsvoice smallint(5) UNSIGNED NOT NULL default '0'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.3] Adjusted table config successfully."); - } - if($mysqlcon->exec("CREATE INDEX snapshot_timestamp ON $dbname.user_snapshot (timestamp)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.3] Recreated index on table user_snapshot successfully."); - } - if($mysqlcon->exec("CREATE INDEX serverusage_timestamp ON $dbname.server_usage (timestamp)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.3] Recreated index on table server_usage successfully."); - } - } - if(version_compare($currvers, '1.2.3', '<=')) { - if($mysqlcon->exec("ALTER TABLE $dbname.config MODIFY COLUMN adminuuid varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Adjusted table config (part 1) successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (registercid mediumint(8) UNSIGNED NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Adjusted table config (part 2) successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.user ADD (cid int(10) NOT NULL default '0')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Adjusted table user successfully."); - } - if($mysqlcon->exec("CREATE INDEX user_version ON $dbname.user (version)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Create index 'user_version' on table user successfully."); - } - if($mysqlcon->exec("CREATE INDEX user_cldbid ON $dbname.user (cldbid ASC,uuid,rank)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Create index 'user_cldbid' on table user successfully."); - } - if($mysqlcon->exec("CREATE INDEX user_online ON $dbname.user (online,lastseen)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Create index 'user_online' on table user successfully."); - } - if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('clean_db'),('clean_clients'),('calc_server_stats'),('runtime_check'),('last_update')") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Set new values to table job_check successfully."); - } - if($mysqlcon->exec("DELETE FROM $dbname.job_check WHERE job_name='check_clean'") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Removed old value 'check_clean' from table job_check successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.user_snapshot ADD PRIMARY KEY (timestamp, uuid)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table user_snapshot successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.stats_nations ADD PRIMARY KEY (nation)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table stats_nations successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.stats_platforms ADD PRIMARY KEY (platform)") === false) { } else { - enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table stats_platforms successfully."); - } - if($mysqlcon->exec("ALTER TABLE $dbname.stats_versions ADD PRIMARY KEY (version)") === false) { } else { - 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."); - } - } - 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.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; -} +exec("UPDATE $dbname.config set currvers='$newversion'") === false) { + enter_logfile($logpath,$timezone,1," An error happens due updating the Ranksystem Database:".print_r($mysqlcon->errorInfo(), true)); + enter_logfile($logpath,$timezone,1," Check the database connection and properties in other/dbconfig.php and check also the database permissions."); + exit; + } else { + $currvers = $newversion; + enter_logfile($logpath,$timezone,4," Database successfully updated!"); + return $currvers; + } + } + + function check_chmod($timezone,$logpath,$lang) { + if(substr(sprintf('%o', fileperms(substr(__DIR__,0,-4).'tsicons/')), -3, 1)!='7') { + enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'tsicons')); + } + if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { + enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'logs')); + } + if(substr(sprintf('%o', fileperms(substr(__DIR__,0,-4).'avatars/')), -3, 1)!='7') { + enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'avatars')); + } + if(substr(sprintf('%o', fileperms(substr(__DIR__,0,-4).'update/')), -3, 1)!='7') { + enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'update')); + } + } + + function check_config($mysqlcon,$dbname) { + if(($dbdata = $mysqlcon->query("SELECT * FROM `$dbname`.`config`")->fetchAll()) === false) { } else { + if(count($dbdata) > 1) { + if($mysqlcon->exec("DELETE FROM `$dbname`.`config` WHERE `webuser` IS NULL") === false) { } + } + } + } + + function old_files($timezone,$logpath) { + if(is_file(substr(__DIR__,0,-4).'install.php')) { + if(!unlink('install.php')) { + enter_logfile($logpath,$timezone,4,"Unnecessary file, please delete it from your webserver: install.php"); + } + } + if(is_dir(substr(__DIR__,0,-4).'icons/')) { + if(!rmdir(substr(__DIR__,0,-4).'icons/')) { + enter_logfile($logpath,$timezone,4,"Unnecessary folder, please delete it from your webserver: icons/"); + } + } + if(is_file(substr(__DIR__,0,-4).'libs/combined_stats.css')) { + if(!unlink(substr(__DIR__,0,-4).'libs/combined_stats.css')) { + enter_logfile($logpath,$timezone,4,"Unnecessary file, please delete it from your webserver: libs/combined_stats.css"); + } + } + if(is_file(substr(__DIR__,0,-4).'libs/combined_stats.js')) { + if(!unlink(substr(__DIR__,0,-4).'libs/combined_stats.js')) { + enter_logfile($logpath,$timezone,4,"Unnecessary file, please delete it from your webserver: libs/combined_stats.js"); + } + } + } + + function check_writable($timezone,$logpath) { + enter_logfile($logpath,$timezone,5," Check files permissions..."); + $counterr=0; + $scandir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(substr(__DIR__,0,-4))); + $files = array(); + foreach ($scandir as $object) { + if(!strstr($object, '/.') && !strstr($object, '\.')) { + if (!$object->isDir()) { + if(!is_writable($object->getPathname())) { + enter_logfile($logpath,$timezone,3," File is not writeable ".$object); + echo "\nhier: ".$object."\n"; + $counterr++; + } + } else { + if(!is_writable($object->getPathname())) { + enter_logfile($logpath,$timezone,3," Folder is not writeable ".$object); + $counterr++; + } + } + } + } + if($counterr!=0) { + enter_logfile($logpath,$timezone,1,"Please check the files pemissions. Shutting down!\n\n"); + exit; + } else { + enter_logfile($logpath,$timezone,5," Check files permissions [done]"); + } + } + + if($currvers==$newversion) { + enter_logfile($logpath,$timezone,5," No newer version detected; Database check finished."); + old_files($timezone,$logpath); + check_chmod($timezone,$logpath,$lang); + check_config($mysqlcon,$dbname); + check_writable($timezone,$logpath); + } else { + enter_logfile($logpath,$timezone,4," Update the Ranksystem Database to new version..."); + if(version_compare($currvers, '1.2.0', '<=')) { + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_server` MODIFY COLUMN `server_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `server_platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `server_weblist` tinyint(1) NOT NULL default '0', MODIFY COLUMN `server_version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `total_user` int(10) NOT NULL default '0', MODIFY COLUMN `country_nation_1` int(10) NOT NULL default '0', MODIFY COLUMN `country_nation_2` int(10) NOT NULL default '0', MODIFY COLUMN `country_nation_3` int(10) NOT NULL default '0', MODIFY COLUMN `country_nation_4` int(10) NOT NULL default '0', MODIFY COLUMN `country_nation_5` int(10) NOT NULL default '0', MODIFY COLUMN `country_nation_other` int(10) NOT NULL default '0', MODIFY COLUMN `platform_1` int(10) NOT NULL default '0', MODIFY COLUMN `platform_2` int(10) NOT NULL default '0', MODIFY COLUMN `platform_3` int(10) NOT NULL default '0', MODIFY COLUMN `platform_4` int(10) NOT NULL default '0', MODIFY COLUMN `platform_5` int(10) NOT NULL default '0', MODIFY COLUMN `platform_other` int(10) NOT NULL default '0', MODIFY COLUMN `version_1` int(10) NOT NULL default '0', MODIFY COLUMN `version_2` int(10) NOT NULL default '0', MODIFY COLUMN `version_3` int(10) NOT NULL default '0', MODIFY COLUMN `version_4` int(10) NOT NULL default '0', MODIFY COLUMN `version_5` int(10) NOT NULL default '0', MODIFY COLUMN `version_other` int(10) NOT NULL default '0', MODIFY COLUMN `server_status` tinyint(1) NOT NULL default '0', MODIFY COLUMN `server_free_slots` smallint(5) NOT NULL default '0', MODIFY COLUMN `server_used_slots` smallint(5) NOT NULL default '0', MODIFY COLUMN `server_channel_amount` smallint(5) NOT NULL default '0', MODIFY COLUMN `server_ping` smallint(5) NOT NULL default '0', MODIFY COLUMN `server_id` smallint(5) NOT NULL default '0', MODIFY COLUMN `server_pass` tinyint(1) NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table stats_server (part1) successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_server` ADD (`user_today` int(10) NOT NULL default '0',`user_week` int(10) NOT NULL default '0',`user_month` int(10) NOT NULL default '0',`user_quarter` int(10) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table stats_server (part2) successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `removed` tinyint(1) NOT NULL default '0', MODIFY COLUMN `rank` int(10) NOT NULL default '0', MODIFY COLUMN `count_week` int(10) NOT NULL default '0', MODIFY COLUMN `count_month` int(10) NOT NULL default '0', MODIFY COLUMN `idle_week` int(10) NOT NULL default '0', MODIFY COLUMN `idle_month` int(10) NOT NULL default '0', MODIFY COLUMN `achiev_count` tinyint(1) NOT NULL default '0', MODIFY COLUMN `achiev_time` int(10) NOT NULL default '0', MODIFY COLUMN `achiev_connects` smallint(5) NOT NULL default '0', MODIFY COLUMN `achiev_battles` tinyint(3) NOT NULL default '0', MODIFY COLUMN `achiev_time_perc` tinyint(3) NOT NULL default '0', MODIFY COLUMN `achiev_connects_perc` tinyint(3) NOT NULL default '0', MODIFY COLUMN `achiev_battles_perc` tinyint(3) NOT NULL default '0', MODIFY COLUMN `battles_total` tinyint(3) NOT NULL default '0', MODIFY COLUMN `battles_won` tinyint(3) NOT NULL default '0', MODIFY COLUMN `battles_lost` tinyint(3) NOT NULL default '0', MODIFY COLUMN `total_connections` smallint(5) NOT NULL default '0', MODIFY COLUMN `client_description` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table stats_user successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `cldbid` int(10) NOT NULL default '0', MODIFY COLUMN `count` int(10) NOT NULL default '0', MODIFY COLUMN `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `grpid` int(10) NOT NULL default '0', MODIFY COLUMN `nextup` int(10) NOT NULL default '0', MODIFY COLUMN `idle` int(10) NOT NULL default '0', MODIFY COLUMN `cldgroup` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `online` tinyint(1) NOT NULL default '0', MODIFY COLUMN `boosttime` int(10) NOT NULL default '0', MODIFY COLUMN `rank` int(10) NOT NULL default '0', MODIFY COLUMN `platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `nation` varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `except` tinyint(1) NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table user successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` MODIFY COLUMN `webuser` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `webpass` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `tshost` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `tsquery` smallint(5) NOT NULL default '0', MODIFY COLUMN `tsvoice` smallint(5) NOT NULL default '0', MODIFY COLUMN `tsuser` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `tspass` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `language` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `queryname` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `queryname2` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `grouptime` varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `resetbydbchange` tinyint(1) NOT NULL default '0', MODIFY COLUMN `msgtouser` tinyint(1) NOT NULL default '0', MODIFY COLUMN `upcheck` tinyint(1) NOT NULL default '0', MODIFY COLUMN `uniqueid` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `updateinfotime` mediumint(6) NOT NULL default '0', MODIFY COLUMN `currvers` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `substridle` tinyint(1) NOT NULL default '0', MODIFY COLUMN `exceptuuid` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `exceptgroup` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `dateformat` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `showexcld` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolcld` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcoluuid` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcoldbid` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolot` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolit` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolat` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolnx` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolsg` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolrg` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showcolls` tinyint(1) NOT NULL default '0', MODIFY COLUMN `slowmode` mediumint(9) NOT NULL default '0', MODIFY COLUMN `cleanclients` tinyint(1) NOT NULL default '0', MODIFY COLUMN `cleanperiod` mediumint(9) NOT NULL default '0', MODIFY COLUMN `showhighest` tinyint(1) NOT NULL default '0', MODIFY COLUMN `boost` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `showcolas` tinyint(1) NOT NULL default '0', MODIFY COLUMN `defchid` int(10) NOT NULL default '0', MODIFY COLUMN `advancemode` tinyint(1) NOT NULL default '0', MODIFY COLUMN `count_access` tinyint(2) NOT NULL default '0', MODIFY COLUMN `ignoreidle` smallint(5) NOT NULL default '0', MODIFY COLUMN `exceptcid` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `rankupmsg` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `boost_mode` tinyint(1) NOT NULL default '0', MODIFY COLUMN `servernews` varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `nextupinfo` tinyint(1) NOT NULL default '0', MODIFY COLUMN `nextupinfomsg1` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `nextupinfomsg2` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `nextupinfomsg3` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `shownav` tinyint(1) NOT NULL default '0', MODIFY COLUMN `showgrpsince` tinyint(1) NOT NULL default '0', MODIFY COLUMN `resetexcept` tinyint(1) NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table config successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`server_usage` MODIFY COLUMN `clients` smallint(5) NOT NULL default '0', MODIFY COLUMN `channel` smallint(5) NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table server_usage successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_snapshot` MODIFY COLUMN `count` int(10) NOT NULL default '0', MODIFY COLUMN `idle` int(10) NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table user_snapshot successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` MODIFY COLUMN `sgid` int(10) NOT NULL default '0' PRIMARY KEY, MODIFY COLUMN `sgidname` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Adjusted table groups successfully."); + } + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_nations` (`nation` varchar(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`count` int(10) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Created table stats_nations successfully."); + } + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_versions` (`version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`count` int(10) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Created table stats_versions successfully."); + } + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_platforms` (`platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`count` int(10) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.1] Created table stats_platforms successfully."); + } + } + if(version_compare($currvers, '1.2.1', '<=')) { + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` ADD (`active_week` int(10) NOT NULL default '0',`active_month` int(10) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.2] Adjusted table stats_user successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` ADD (`avatar_delay` smallint(5) UNSIGNED NOT NULL default '0')") === false) { } else { + if($mysqlcon->exec("UPDATE `$dbname`.`config` set `avatar_delay`='0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.2] Adjusted table config (part 1) successfully."); + } + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` MODIFY COLUMN `tsquery` smallint(5) UNSIGNED NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.2] Adjusted table config (part 2) successfully."); + } + if($mysqlcon->exec("CREATE TABLE `$dbname`.`addons_config` (`param` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci UNIQUE,`value` varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { + if($mysqlcon->exec("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_active','0'),('assign_groups_groupids',''),('assign_groups_limit','')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.2] Created table addons_config successfully."); + } + } + if($mysqlcon->exec("CREATE TABLE `$dbname`.`addon_assign_groups` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`grpids` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.2] Created table addon_assign_groups successfully."); + } + } + if(version_compare($currvers, '1.2.2', '<=')) { + if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.3] Cleaned table groups successfully. (cause new icon folder tsicons - redownload)"); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` MODIFY COLUMN `tsvoice` smallint(5) UNSIGNED NOT NULL default '0'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.3] Adjusted table config successfully."); + } + if($mysqlcon->exec("CREATE INDEX `snapshot_timestamp` ON `$dbname`.`user_snapshot` (`timestamp`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.3] Recreated index on table user_snapshot successfully."); + } + if($mysqlcon->exec("CREATE INDEX `serverusage_timestamp` ON `$dbname`.`server_usage` (`timestamp`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.3] Recreated index on table server_usage successfully."); + } + } + if(version_compare($currvers, '1.2.3', '<=')) { + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` MODIFY COLUMN `adminuuid` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Adjusted table config (part 1) successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` ADD (`registercid` mediumint(8) UNSIGNED NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Adjusted table config (part 2) successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` ADD (`cid` int(10) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Adjusted table user successfully."); + } + if($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Create index 'user_version' on table user successfully."); + } + if($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Create index 'user_cldbid' on table user successfully."); + } + if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Create index 'user_online' on table user successfully."); + } + if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`) VALUES ('clean_db'),('clean_clients'),('calc_server_stats'),('runtime_check'),('last_update')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Set new values to table job_check successfully."); + } + if($mysqlcon->exec("DELETE FROM `$dbname`.`job_check` WHERE `job_name`='check_clean'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Removed old value 'check_clean' from table job_check successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_snapshot` ADD PRIMARY KEY (`timestamp`,`uuid`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table user_snapshot successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_nations` ADD PRIMARY KEY (`nation`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table stats_nations successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_platforms` ADD PRIMARY KEY (`platform`)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.4] Added new primary key on table stats_platforms successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_versions` ADD PRIMARY KEY (`version`)") === false) { } else { + 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."); + } + } + 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.6] 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(version_compare($currvers, '1.2.6', '<=')) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`admin_addtime` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`timestamp` bigint(11) NOT NULL default '0',`timecount` int(10) NOT NULL default '0', PRIMARY KEY (`uuid`,`timestamp`))") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Created table admin_addtime successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` DROP COLUMN `ip`") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Dropped client ip from table user sucessfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` MODIFY COLUMN `timezone` varchar(35) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `queryname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, MODIFY COLUMN `queryname2` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, MODIFY COLUMN `rankupmsg` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, MODIFY COLUMN `servernews` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, MODIFY COLUMN `nextupinfomsg1` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, MODIFY COLUMN `nextupinfomsg2` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, MODIFY COLUMN `nextupinfomsg3` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Adjusted table config (part 1) successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` ADD (`iphash` tinyint(1) NOT NULL default '0')") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Adjusted table config (part 2) successfully."); + } + 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.7] Adjusted table groups successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_server` MODIFY COLUMN `server_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Adjusted table stats_server successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `client_description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Adjusted table stats_user successfully."); + } + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Adjusted table user successfully."); + } + if($mysqlcon->exec("CREATE TABLE `$dbname`.`user_iphash` (`uuid` varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`iphash` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`ip` varchar(39) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] Created table user_iphash successfully."); + } + if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='".time()."' WHERE `job_name`='last_update'") === false) { } else { + enter_logfile($logpath,$timezone,4," [1.2.7] 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/clean.php b/jobs/clean.php index 5a6e679..a0e0714 100644 --- a/jobs/clean.php +++ b/jobs/clean.php @@ -1,93 +1,97 @@ -clientListDb($start, $break)) { - $clientdblist=array_merge($clientdblist, $getclientdblist); - $start=$start+$break; - $count_tsuser=array_shift($getclientdblist); - if($count_tsuser['count'] <= $start) { - break; - } - usleep($slowmode); - } - foreach($clientdblist as $uuidts) { - $single_uuid = $uuidts['client_unique_identifier']->toString(); - $uidarrts[$single_uuid]= 1; - } - unset($clientdblist); - - foreach($select_arr['all_user'] as $uuid => $value) { - if(isset($uidarrts[$uuid])) { - $countts++; - } else { - $deleteuuids[] = $uuid; - $countdel++; - } - } - unset($uidarrts); - enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleants'], $countts, $count_tsuser['count'])); - enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleanrs'], count($select_arr['all_user']))); - - if(isset($deleteuuids)) { - $alldeldata = ''; - $fsfilelist = opendir(substr(__DIR__,0,-4).'avatars/'); - while (false !== ($fsfile = readdir($fsfilelist))) { - if ($fsfile != '.' && $fsfile != '..') { - $fsfilelistarray[$fsfile] = filemtime(substr(__DIR__,0,-4).'avatars/'.$fsfile); - } - } - unset($fsfilelist); - $avatarfilepath = substr(__DIR__,0,-4).'avatars/'; - $convert = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'); - foreach ($deleteuuids as $uuid) { - $alldeldata = $alldeldata . "'" . $uuid . "',"; - $uuidasbase16 = ''; - for ($i = 0; $i < 20; $i++) { - $char = ord(substr(base64_decode($uuid), $i, 1)); - $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; - $uuidasbase16 .= $convert[$char & 0x0F]; - } - if (isset($fsfilelistarray[$uuidasbase16.'.png'])) { - if(unlink($avatarfilepath.$uuidasbase16.'.png') === false) { - enter_logfile($logpath,$timezone,2," ".sprintf($lang['clean0002'], $uuidasbase16, $uuid).' '.sprintf($lang['errperm'], 'avatars')); - } else { - enter_logfile($logpath,$timezone,4," ".sprintf($lang['clean0001'], $uuidasbase16, $uuid)); - } - } - } - unset($$deleteuuids); - $alldeldata = substr($alldeldata, 0, -1); - $alldeldata = "(".$alldeldata.")"; - if ($alldeldata != '') { - $sqlexec .= "UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='clean_clients'; UPDATE $dbname.stats_user AS t LEFT JOIN $dbname.user AS u ON t.uuid=u.uuid SET t.removed='1' WHERE u.uuid IS NULL; DELETE FROM $dbname.user WHERE uuid IN $alldeldata; "; - enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleandel'], $countdel)); - unset($$alldeldata); - } - } else { - enter_logfile($logpath,$timezone,4," ".$lang['cleanno']); - $sqlexec .= "UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='clean_clients'; "; - } - } else { - enter_logfile($logpath,$timezone,4,$lang['clean0004']); - $sqlexec .= "UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='clean_clients'; "; - } - } - - // clean usersnaps older then 1 month + clean old server usage - older then a year - if ($select_arr['job_check']['clean_db']['timestamp'] < ($nowtime - 86400)) { - $sqlexec .= "DELETE a FROM $dbname.user_snapshot AS a CROSS JOIN(SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 1000 OFFSET 121) AS b WHERE a.timestamp=b.timestamp; DELETE FROM $dbname.server_usage WHERE timestamp < (UNIX_TIMESTAMP() - 31536000); DELETE b FROM $dbname.user a RIGHT JOIN $dbname.stats_user b ON a.uuid = b.uuid WHERE a.uuid IS NULL; UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='clean_db'; "; - enter_logfile($logpath,$timezone,4,$lang['clean0003']); - } - return($sqlexec); -} +clientListDb($start, $break)) { + $clientdblist=array_merge($clientdblist, $getclientdblist); + $start=$start+$break; + $count_tsuser=array_shift($getclientdblist); + if($count_tsuser['count'] <= $start) { + break; + } + usleep($slowmode); + } + foreach($clientdblist as $uuidts) { + $single_uuid = $uuidts['client_unique_identifier']->toString(); + $uidarrts[$single_uuid]= 1; + } + unset($clientdblist); + + foreach($select_arr['all_user'] as $uuid => $value) { + if(isset($uidarrts[$uuid])) { + $countts++; + } else { + $deleteuuids[] = $uuid; + $countdel++; + } + } + unset($uidarrts); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleants'], $countts, $count_tsuser['count'])); + enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleanrs'], count($select_arr['all_user']))); + + if(isset($deleteuuids)) { + $alldeldata = ''; + $fsfilelist = opendir(substr(__DIR__,0,-4).'avatars/'); + while (false !== ($fsfile = readdir($fsfilelist))) { + if ($fsfile != '.' && $fsfile != '..') { + $fsfilelistarray[$fsfile] = filemtime(substr(__DIR__,0,-4).'avatars/'.$fsfile); + } + } + unset($fsfilelist); + $avatarfilepath = substr(__DIR__,0,-4).'avatars/'; + $convert = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'); + foreach ($deleteuuids as $uuid) { + $alldeldata = $alldeldata . "'" . $uuid . "',"; + $uuidasbase16 = ''; + for ($i = 0; $i < 20; $i++) { + $char = ord(substr(base64_decode($uuid), $i, 1)); + $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; + $uuidasbase16 .= $convert[$char & 0x0F]; + } + if (isset($fsfilelistarray[$uuidasbase16.'.png'])) { + if(unlink($avatarfilepath.$uuidasbase16.'.png') === false) { + enter_logfile($logpath,$timezone,2," ".sprintf($lang['clean0002'], $uuidasbase16, $uuid).' '.sprintf($lang['errperm'], 'avatars')); + } else { + enter_logfile($logpath,$timezone,4," ".sprintf($lang['clean0001'], $uuidasbase16, $uuid)); + } + } + } + unset($$deleteuuids); + $alldeldata = substr($alldeldata, 0, -1); + $alldeldata = "(".$alldeldata.")"; + if ($alldeldata != '') { + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients'; UPDATE `$dbname`.`stats_user` AS `t` LEFT JOIN `$dbname`.`user` AS `u` ON `t`.`uuid`=`u`.`uuid` SET `t`.`removed`='1' WHERE `u`.`uuid` IS NULL; DELETE FROM `$dbname`.`user` WHERE `uuid` IN $alldeldata; "; + enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleandel'], $countdel)); + unset($$alldeldata); + } + } else { + enter_logfile($logpath,$timezone,4," ".$lang['cleanno']); + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients'; "; + } + } else { + enter_logfile($logpath,$timezone,4,$lang['clean0004']); + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients'; "; + } + } + + // clean usersnaps older then 1 month + clean old server usage - older then a year + if ($select_arr['job_check']['clean_db']['timestamp'] < ($nowtime - 86400)) { + $sqlexec .= "DELETE `a` FROM `$dbname`.`user_snapshot` AS `a` CROSS JOIN(SELECT DISTINCT(`timestamp`) FROM `$dbname`.`user_snapshot` ORDER BY `timestamp` DESC LIMIT 1000 OFFSET 121) AS `b` WHERE `a`.`timestamp`=`b`.`timestamp`; DELETE FROM `$dbname`.`server_usage` WHERE `timestamp` < (UNIX_TIMESTAMP() - 31536000); DELETE `b` FROM `$dbname`.`user` AS `a` RIGHT JOIN `$dbname`.`stats_user` AS `b` ON `a`.`uuid`=`b`.`uuid` WHERE `a`.`uuid` IS NULL; UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_db'; "; + enter_logfile($logpath,$timezone,4,$lang['clean0003']); + } + + // delete IP address of offline user + $sqlexec .= "DELETE `a` FROM `$dbname`.`user_iphash` AS `a` INNER JOIN `$dbname`.`user` AS `b` ON `a`.`uuid`=`b`.`uuid` WHERE `b`.`online`!=1; "; + + return($sqlexec); +} ?> \ No newline at end of file diff --git a/jobs/event_userenter.php b/jobs/event_userenter.php new file mode 100644 index 0000000..9af1d02 --- /dev/null +++ b/jobs/event_userenter.php @@ -0,0 +1,63 @@ +serverGetSelected()->clientInfoDb($event["client_database_id"]); + if($clientinfo['client_lastip'] == NULL) { //TeamSpeak sucks sometimes and gives a empty result + enter_logfile($logpath,$timezone,4,"event_userenter: TeamSpeak gives an empty value for the IP address of ".$event['client_nickname']." (uuid: ".$event['client_unique_identifier'].").. retry in 0,1 seconds.."); + usleep(100000); + try { + unset($clientinfo); + usleep($slowmode); + $clientinfo = $host->serverGetSelected()->clientInfoDb($event["client_database_id"]); + if($clientinfo['client_lastip'] == NULL) { + enter_logfile($logpath,$timezone,4,"event_userenter: TeamSpeak gives an empty value for the IP address of ".$event['client_nickname']." (uuid: ".$event['client_unique_identifier'].").. retry in 0,5 seconds.."); + usleep(500000); + try { + unset($clientinfo); + usleep($slowmode); + $clientinfo = $host->serverGetSelected()->clientInfoDb($event["client_database_id"]); + if($clientinfo['client_lastip'] == NULL) { + enter_logfile($logpath,$timezone,2,"event_userenter: Fuck it.. TeamSpeak gives an empty value for the IP address of of ".$event['client_nickname']." (uuid: ".$event['client_unique_identifier'].")."); + return 0; + } + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"event_userenter 4:".$e->getCode().': '.$e->getMessage()); + } + } + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"event_userenter 4:".$e->getCode().': '.$e->getMessage()); + } + } + if($iphash == 1) { + $hash = password_hash($clientinfo['client_lastip'], PASSWORD_DEFAULT); + $ip = ''; + } else { + $hash = ''; + $ip = $clientinfo['client_lastip']; + } + #enter_logfile($logpath,$timezone,6,"Event Userenter: Users IP-hash: ".$hash." IP: ".$ip); + if(($sqlhashs = $mysqlcon->query("SELECT * FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { + enter_logfile($logpath,$timezone,2,"event_userenter 1:".print_r($mysqlcon->errorInfo(), true)); + } + #enter_logfile($logpath,$timezone,6,"User-hash-Table: ".print_r($sqlhashs, true)); + $uuid = htmlspecialchars($event['client_unique_identifier'], ENT_QUOTES); + if(isset($sqlhashs[$uuid])) { + #enter_logfile($logpath,$timezone,6,"UPDATE $dbname.user_iphash SET iphash='".$hash."', ip='".$ip."' WHERE uuid='".$event['client_unique_identifier']."'"); + $sqlexec2 .= "UPDATE `$dbname`.`user_iphash` SET `iphash`='".$hash."',`ip`='".$ip."' WHERE `uuid`='".$event['client_unique_identifier']."'; "; + } else { + #enter_logfile($logpath,$timezone,6,"INSERT INTO $dbname.user_iphash (uuid,iphash,ip) VALUES ('".$event['client_unique_identifier']."','".$hash."','".$ip."')"); + $sqlexec2 .= "INSERT INTO `$dbname`.`user_iphash` (`uuid`,`iphash`,`ip`) VALUES ('".$event['client_unique_identifier']."','".$hash."','".$ip."'); "; + } + + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"event_userenter 4:".$e->getCode().': '.$e->getMessage()); + } + } +} +?> \ No newline at end of file diff --git a/jobs/get_avatars.php b/jobs/get_avatars.php index d503b16..bfdd951 100644 --- a/jobs/get_avatars.php +++ b/jobs/get_avatars.php @@ -1,45 +1,45 @@ -channelFileList($cid="0", $cpw="", $path="/"); - } catch (Exception $e) { - if ($e->getCode() != 1281) { - enter_logfile($logpath,$timezone,2,"get_avatars 1:".$e->getCode().': '."Error while getting avatarlist: ".$e->getMessage()); - } - } - $fsfilelist = opendir(substr(__DIR__,0,-4).'avatars/'); - while (false !== ($fsfile = readdir($fsfilelist))) { - if ($fsfile != '.' && $fsfile != '..') { - $fsfilelistarray[$fsfile] = filemtime(substr(__DIR__,0,-4).'avatars/'.$fsfile); - } - } - unset($fsfilelist); - - if (isset($tsfilelist)) { - foreach($tsfilelist as $tsfile) { - $fullfilename = '/'.$tsfile['name']; - $uuidasbase16 = substr($tsfile['name'],7); - if (!isset($fsfilelistarray[$uuidasbase16.'.png']) || ($tsfile['datetime'] - $avatar_delay) > $fsfilelistarray[$uuidasbase16.'.png']) { - if (substr($tsfile['name'],0,7) == 'avatar_') { - try { - check_shutdown($timezone,$logpath); usleep($slowmode); - $avatar = $ts3->transferInitDownload($clientftfid="5",$cid="0",$name=$fullfilename,$cpw="", $seekpos=0); - $transfer = TeamSpeak3::factory("filetransfer://" . $avatar["host"] . ":" . $avatar["port"]); - $tsfile = $transfer->download($avatar["ftkey"], $avatar["size"]); - $avatarfilepath = substr(__DIR__,0,-4).'avatars/'.$uuidasbase16.'.png'; - enter_logfile($logpath,$timezone,5,"Download avatar: ".$fullfilename); - if(file_put_contents($avatarfilepath, $tsfile) === false) { - enter_logfile($logpath,$timezone,2,"Error while writing out the avatar. Please check the permission for the folder 'avatars'"); - } - } - catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"get_avatars 2:".$e->getCode().': '."Error while downloading avatar: ".$e->getMessage()); - } - } - } - } - unset($fsfilelistarray); - } -} +channelFileList($cid="0", $cpw="", $path="/"); + } catch (Exception $e) { + if ($e->getCode() != 1281) { + enter_logfile($logpath,$timezone,2,"get_avatars 1:".$e->getCode().': '."Error while getting avatarlist: ".$e->getMessage()); + } + } + $fsfilelist = opendir(substr(__DIR__,0,-4).'avatars/'); + while (false !== ($fsfile = readdir($fsfilelist))) { + if ($fsfile != '.' && $fsfile != '..') { + $fsfilelistarray[$fsfile] = filemtime(substr(__DIR__,0,-4).'avatars/'.$fsfile); + } + } + unset($fsfilelist); + + if (isset($tsfilelist)) { + foreach($tsfilelist as $tsfile) { + $fullfilename = '/'.$tsfile['name']; + $uuidasbase16 = substr($tsfile['name'],7); + if (!isset($fsfilelistarray[$uuidasbase16.'.png']) || ($tsfile['datetime'] - $avatar_delay) > $fsfilelistarray[$uuidasbase16.'.png']) { + if (substr($tsfile['name'],0,7) == 'avatar_') { + try { + check_shutdown($timezone,$logpath); usleep($slowmode); + $avatar = $ts3->transferInitDownload($clientftfid="5",$cid="0",$name=$fullfilename,$cpw="", $seekpos=0); + $transfer = TeamSpeak3::factory("filetransfer://" . $avatar["host"] . ":" . $avatar["port"]); + $tsfile = $transfer->download($avatar["ftkey"], $avatar["size"]); + $avatarfilepath = substr(__DIR__,0,-4).'avatars/'.$uuidasbase16.'.png'; + enter_logfile($logpath,$timezone,5,"Download avatar: ".$fullfilename); + if(file_put_contents($avatarfilepath, $tsfile) === false) { + enter_logfile($logpath,$timezone,2,"Error while writing out the avatar. Please check the permission for the folder 'avatars'"); + } + } + catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"get_avatars 2:".$e->getCode().': '."Error while downloading avatar: ".$e->getMessage()); + } + } + } + } + unset($fsfilelistarray); + } +} ?> \ No newline at end of file diff --git a/jobs/handle_messages.php b/jobs/handle_messages.php index 1ecf35c..7cbd30a 100644 --- a/jobs/handle_messages.php +++ b/jobs/handle_messages.php @@ -1,181 +1,181 @@ -whoami()["client_unique_identifier"] != $event["invokeruid"]) { //check whoami need to slowmode or is already stored? - $uuid = $event["invokeruid"]; - $admin = 0; - foreach ($adminuuid as $auuid) { - if ($uuid == $auuid) { - $admin = 1; - } - } - - if((strstr($event["msg"], '!nextup') || strstr($event["msg"], '!next')) && $nextupinfo != 0) { - //enter_logfile($logpath,$timezone,6,"Client ".$event["invokername"]." (".$event["invokeruid"].") sent textmessage: ".$event["msg"]); - if(($user = $mysqlcon->query("SELECT count,nextup,idle,except,name FROM $dbname.user WHERE uuid='$uuid'")->fetch()) === false) { - enter_logfile($logpath,$timezone,2,"handle_messages 1:".print_r($mysqlcon->errorInfo(), true)); - } - - if(($sqlhisgroup = $mysqlcon->query("SELECT sgid,sgidname FROM $dbname.groups")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile($logpath,$timezone,2,"handle_messages 2:".print_r($mysqlcon->errorInfo(), true)); - } - - ksort($grouptime); - $countgrp = count($grouptime); - $grpcount=0; - foreach ($grouptime as $time => $groupid) { - if ($substridle == 1) { - $nextup = $time - $user['count'] + $user['idle']; - } else { - $nextup = $time - $user['count']; - } - $dtF = new DateTime("@0"); - $dtT = new DateTime("@$nextup"); - $days = $dtF->diff($dtT)->format('%a'); - $hours = $dtF->diff($dtT)->format('%h'); - $mins = $dtF->diff($dtT)->format('%i'); - $secs = $dtF->diff($dtT)->format('%s'); - $name = $user['name']; - $grpcount++; - if ($nextup > 0 && $nextup < $time || $grpcount == $countgrp && $nextup <= 0) { - check_shutdown($timezone,$logpath); usleep($slowmode); - if ($grpcount == $countgrp && $nextup <= 0) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg2, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 3:".$e->getCode().': '.$e->getMessage()); - } - } elseif ($user['except'] == 2 || $user['except'] == 3) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg3, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 4:".$e->getCode().': '.$e->getMessage()); - } - } else { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg1, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 5:".$e->getCode().': '.$e->getMessage()); - } - } - if($nextupinfo == 1) { - break; - } - } - } - } - - if(strstr($event["msg"], '!version')) { - if(version_compare(substr($newversion, 0, 5), substr($currvers, 0, 5), '>') && $newversion != '') { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($lang['upmsg'], $currvers, $newversion)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 6:".$e->getCode().': '.$e->getMessage()); - } - } else { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($lang['msg0001'], $currvers)); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 7:".$e->getCode().': '.$e->getMessage()); - } - } - } - - if(strstr($event["msg"], '!help') || strstr($event["msg"], '!info') || strstr($event["msg"], '!commands')) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0002']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 8:".$e->getCode().': '.$e->getMessage()); - } - } - - if((strstr($event["msg"], '!shutdown') || strstr($event["msg"], '!quit') || strstr($event["msg"], '!stop')) && $admin == 1) { - enter_logfile($logpath,$timezone,5,sprintf($lang['msg0004'], $event["invokername"], $event["invokeruid"])); - $path = substr(__DIR__, 0, -4); - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0005']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 9:".$e->getCode().': '.$e->getMessage()); - } - exec($phpcommand." ".$path."worker.php stop"); - } elseif (strstr($event["msg"], '!shutdown') || strstr($event["msg"], '!quit') || strstr($event["msg"], '!stop')) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 10:".$e->getCode().': '.$e->getMessage()); - } - } - - if((strstr($event["msg"], '!restart') || strstr($event["msg"], '!reboot')) && $admin == 1) { - enter_logfile($logpath,$timezone,5,sprintf($lang['msg0007'], $event["invokername"], $event["invokeruid"])); - $path = substr(__DIR__, 0, -4); - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0006']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 11:".$e->getCode().': '.$e->getMessage()); - } - if (substr(php_uname(), 0, 7) == "Windows") { - exec("start ".$phpcommand." ".$path."worker.php restart"); - } else { - exec($phpcommand." ".$path."worker.php restart > /dev/null 2>/dev/null &"); - } - } elseif (strstr($event["msg"], '!restart') || strstr($event["msg"], '!reboot')) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 12:".$e->getCode().': '.$e->getMessage()); - } - } - - if((strstr($event["msg"], '!checkupdate') || strstr($event["msg"], '!update')) && $admin == 1) { - if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='0' WHERE job_name IN ('check_update','get_version','calc_server_stats')") === false) { - enter_logfile($logpath,$timezone,4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); - } - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0008']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 14:".$e->getCode().': '.$e->getMessage()); - } - } elseif(strstr($event["msg"], '!checkupdate') || strstr($event["msg"], '!update')) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 15:".$e->getCode().': '.$e->getMessage()); - } - } - - if((strstr($event["msg"], '!clean')) && $admin == 1) { - if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='0' WHERE job_name IN ('clean_db','clean_clients')") === false) { - enter_logfile($logpath,$timezone,4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); - } - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0009']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 14:".$e->getCode().': '.$e->getMessage()); - } - } elseif(strstr($event["msg"], '!clean')) { - usleep($slowmode); - try { - $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,"handle_messages 15:".$e->getCode().': '.$e->getMessage()); - } - } - } -} +whoami()["client_unique_identifier"] != $event["invokeruid"]) { + $uuid = $event["invokeruid"]; + $admin = 0; + foreach ($adminuuid as $auuid) { + if ($uuid == $auuid) { + $admin = 1; + } + } + + if((strstr($event["msg"], '!nextup') || strstr($event["msg"], '!next')) && $nextupinfo != 0) { + //enter_logfile($logpath,$timezone,6,"Client ".$event["invokername"]." (".$event["invokeruid"].") sent textmessage: ".$event["msg"]); + if(($user = $mysqlcon->query("SELECT `count`,`nextup`,`idle`,`except`,`name` FROM `$dbname`.`user` WHERE `uuid`='$uuid'")->fetch()) === false) { + enter_logfile($logpath,$timezone,2,"handle_messages 1:".print_r($mysqlcon->errorInfo(), true)); + } + + if(($sqlhisgroup = $mysqlcon->query("SELECT `sgid`,`sgidname` FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { + enter_logfile($logpath,$timezone,2,"handle_messages 2:".print_r($mysqlcon->errorInfo(), true)); + } + + ksort($grouptime); + $countgrp = count($grouptime); + $grpcount=0; + foreach ($grouptime as $time => $groupid) { + if ($substridle == 1) { + $nextup = $time - $user['count'] + $user['idle']; + } else { + $nextup = $time - $user['count']; + } + $dtF = new DateTime("@0"); + $dtT = new DateTime("@$nextup"); + $days = $dtF->diff($dtT)->format('%a'); + $hours = $dtF->diff($dtT)->format('%h'); + $mins = $dtF->diff($dtT)->format('%i'); + $secs = $dtF->diff($dtT)->format('%s'); + $name = $user['name']; + $grpcount++; + if ($nextup > 0 && $nextup < $time || $grpcount == $countgrp && $nextup <= 0) { + check_shutdown($timezone,$logpath); usleep($slowmode); + if ($grpcount == $countgrp && $nextup <= 0) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg2, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name)); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 3:".$e->getCode().': '.$e->getMessage()); + } + } elseif ($user['except'] == 2 || $user['except'] == 3) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg3, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name)); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 4:".$e->getCode().': '.$e->getMessage()); + } + } else { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg1, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name)); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 5:".$e->getCode().': '.$e->getMessage()); + } + } + if($nextupinfo == 1) { + break; + } + } + } + } + + if(strstr($event["msg"], '!version')) { + if(version_compare(substr($newversion, 0, 5), substr($currvers, 0, 5), '>') && $newversion != '') { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($lang['upmsg'], $currvers, $newversion)); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 6:".$e->getCode().': '.$e->getMessage()); + } + } else { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($lang['msg0001'], $currvers)); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 7:".$e->getCode().': '.$e->getMessage()); + } + } + } + + if(strstr($event["msg"], '!help') || strstr($event["msg"], '!info') || strstr($event["msg"], '!commands')) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0002']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 8:".$e->getCode().': '.$e->getMessage()); + } + } + + if((strstr($event["msg"], '!shutdown') || strstr($event["msg"], '!quit') || strstr($event["msg"], '!stop')) && $admin == 1) { + enter_logfile($logpath,$timezone,5,sprintf($lang['msg0004'], $event["invokername"], $event["invokeruid"])); + $path = substr(__DIR__, 0, -4); + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0005']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 9:".$e->getCode().': '.$e->getMessage()); + } + exec($phpcommand." ".$path."worker.php stop"); + } elseif (strstr($event["msg"], '!shutdown') || strstr($event["msg"], '!quit') || strstr($event["msg"], '!stop')) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 10:".$e->getCode().': '.$e->getMessage()); + } + } + + if((strstr($event["msg"], '!restart') || strstr($event["msg"], '!reboot')) && $admin == 1) { + enter_logfile($logpath,$timezone,5,sprintf($lang['msg0007'], $event["invokername"], $event["invokeruid"])); + $path = substr(__DIR__, 0, -4); + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0006']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 11:".$e->getCode().': '.$e->getMessage()); + } + if (substr(php_uname(), 0, 7) == "Windows") { + exec("start ".$phpcommand." ".$path."worker.php restart"); + } else { + exec($phpcommand." ".$path."worker.php restart > /dev/null 2>/dev/null &"); + } + } elseif (strstr($event["msg"], '!restart') || strstr($event["msg"], '!reboot')) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 12:".$e->getCode().': '.$e->getMessage()); + } + } + + if((strstr($event["msg"], '!checkupdate') || strstr($event["msg"], '!update')) && $admin == 1) { + if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('check_update','get_version','calc_server_stats')") === false) { + enter_logfile($logpath,$timezone,4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); + } + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0008']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 14:".$e->getCode().': '.$e->getMessage()); + } + } elseif(strstr($event["msg"], '!checkupdate') || strstr($event["msg"], '!update')) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 15:".$e->getCode().': '.$e->getMessage()); + } + } + + if((strstr($event["msg"], '!clean')) && $admin == 1) { + if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('clean_db','clean_clients')") === false) { + enter_logfile($logpath,$timezone,4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); + } + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0009']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 14:".$e->getCode().': '.$e->getMessage()); + } + } elseif(strstr($event["msg"], '!clean')) { + usleep($slowmode); + try { + $host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,"handle_messages 15:".$e->getCode().': '.$e->getMessage()); + } + } + } +} ?> \ No newline at end of file diff --git a/jobs/update_groups.php b/jobs/update_groups.php index c48a4d1..01d5260 100644 --- a/jobs/update_groups.php +++ b/jobs/update_groups.php @@ -1,193 +1,145 @@ -channelFileList($cid="0", $cpw="", $path="/icons/"); - } catch (Exception $e) { - if ($e->getCode() != 1281) { - enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } - } - - foreach($iconlist as $icon) { - $iconid = "i".substr($icon['name'], 5); - $iconarr[$iconid] = $icon['datetime']; - } - - try { - usleep($slowmode); - $ts3->serverGroupListReset(); - $ts3groups = $ts3->serverGroupList(); - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } - - // ServerIcon - if ($serverinfo['virtualserver_icon_id'] < 0) { - $sIconId = (pow(2, 32)) - ($serverinfo['virtualserver_icon_id'] * -1); - } else { - $sIconId = $serverinfo['virtualserver_icon_id']; - } - $sIconFile = 0; - if (!isset($select_arr['groups']['0']) || $select_arr['groups']['0']['iconid'] != $sIconId || $iconarr["i".$sIconId] > $select_arr['groups']['0']['icondate']) { - if($sIconId > 600) { - try { - usleep($slowmode); - enter_logfile($logpath,$timezone,5,$lang['upgrp0002']); - $sIconFile = $ts3->iconDownload(); - if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.png", $sIconFile) === false) { - enter_logfile($logpath,$timezone,2,$lang['upgrp0003'].' '.sprintf($lang['errperm'], 'tsicons')); - } - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().'; '.$lang['upgrp0004'].$e->getMessage()); - } - } elseif($sIconId == 0) { - if(file_exists(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.png")) { - if(unlink(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.png") === false) { - enter_logfile($logpath,$timezone,2,$lang['upgrp0005'].' '.sprintf($lang['errperm'], 'tsicons')); - } else { - enter_logfile($logpath,$timezone,5,$lang['upgrp0006']); - } - } - $iconarr["i".$sIconId] = 0; - } - if (!isset($select_arr['groups']['0'])) { - $insertgroups[] = array( - "sgid" => "0", - "sgidname" => "'ServerIcon'", - "iconid" => $sIconId, - "icondate" => $iconarr["i".$sIconId] - ); - } else { - $updategroups[] = array( - "sgid" => "0", - "sgidname" => "'ServerIcon'", - "iconid" => $sIconId, - "icondate" => $iconarr["i".$sIconId] - ); - } - } - - // GroupIcons - $iconcount= 0; - foreach ($ts3groups as $servergroup) { - $tsgroupids[$servergroup['sgid']] = 0; - $sgid = $servergroup['sgid']; - $sgname = $mysqlcon->quote($servergroup['name'], ENT_QUOTES); - $gefunden = 2; - $iconid = $servergroup['iconid']; - $iconid = ($iconid < 0) ? (pow(2, 32)) - ($iconid * -1) : $iconid; - $iconfile = 0; - if($iconid > 600) { - if (!isset($select_arr['groups'][$sgid]) || $select_arr['groups'][$sgid]['iconid'] != $iconid || $iconarr["i".$iconid] > $select_arr['groups'][$sgid]['icondate']) { - try { - check_shutdown($timezone,$logpath); usleep($slowmode); - enter_logfile($logpath,$timezone,5,sprintf($lang['upgrp0011'], $sgname, $sgid)); - $iconfile = $servergroup->iconDownload(); - if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/" . $sgid . ".png", $iconfile) === false) { - enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0007'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); - } - $iconcount++; - } catch (Exception $e) { - enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().': '.sprintf($lang['upgrp0008'], $sgname, $sgid).$e->getMessage()); - } - } - } elseif($iconid == 0) { - if(file_exists(substr(dirname(__FILE__),0,-4) . "tsicons/" . $sgid . ".png")) { - if(unlink(substr(dirname(__FILE__),0,-4) . "tsicons/" . $sgid . ".png") === false) { - enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0009'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); - } else { - enter_logfile($logpath,$timezone,5,sprintf($lang['upgrp0010'], $sgname, $sgid)); - } - } - $iconarr["i".$iconid] = 0; - } - - if(!isset($iconarr["i".$iconid])) { - $iconarr["i".$iconid] = 0; - } - if(isset($select_arr['groups']) && count($select_arr['groups']) != 0) { - foreach ($select_arr['groups'] as $sqlgid => $groups) { - if ($sqlgid == $sgid) { - $gefunden = 1; - $updategroups[] = array( - "sgid" => $sgid, - "sgidname" => $sgname, - "iconid" => $iconid, - "icondate" => $iconarr["i".$iconid] - ); - break; - } - } - if ($gefunden != 1) { - $insertgroups[] = array( - "sgid" => $servergroup['sgid'], - "sgidname" => $sgname, - "iconid" => $iconid, - "icondate" => $iconarr["i".$iconid] - ); - } - } else { - $insertgroups[] = array( - "sgid" => $servergroup['sgid'], - "sgidname" => $sgname, - "iconid" => $iconid, - "icondate" => $iconarr["i".$iconid] - ); - } - if($iconcount > 9 && $nobreak != 1) { - break; - } - } - - if (isset($insertgroups)) { - $allinsertdata = ''; - foreach ($insertgroups as $insertarr) { - $allinsertdata = $allinsertdata . "('" . $insertarr['sgid'] . "', " . $insertarr['sgidname'] . ", '" . $insertarr['iconid'] . "', '" . $insertarr['icondate'] . "'),"; - } - $allinsertdata = substr($allinsertdata, 0, -1); - if ($allinsertdata != '') { - $sqlexec .= "INSERT INTO $dbname.groups (sgid, sgidname, iconid, icondate) VALUES $allinsertdata; "; - } - } - - if (isset($updategroups)) { - $allsgids = ''; - $allupdatesgid = ''; - $allupdateiconid = ''; - $allupdatedate = ''; - foreach ($updategroups as $updatedata) { - $allsgids = $allsgids . "'" . $updatedata['sgid'] . "',"; - $allupdatesgid = $allupdatesgid . "WHEN '" . $updatedata['sgid'] . "' THEN " . $updatedata['sgidname'] . " "; - $allupdateiconid = $allupdateiconid . "WHEN '" . $updatedata['sgid'] . "' THEN '" . $updatedata['iconid'] . "' "; - $allupdatedate = $allupdatedate . "WHEN '" . $updatedata['sgid'] . "' THEN '" . $updatedata['icondate'] . "' "; - } - $allsgids = substr($allsgids, 0, -1); - $sqlexec .= "UPDATE $dbname.groups set sgidname = CASE sgid $allupdatesgid END, iconid = CASE sgid $allupdateiconid END, icondate = CASE sgid $allupdatedate END WHERE sgid IN ($allsgids); "; - } - - if(isset($select_arr['groups'])) { - foreach ($select_arr['groups'] as $sgid => $groups) { - if(!isset($tsgroupids[$sgid]) && $sgid != 0 && $sgid != NULL) { - $delsgroupids .= "'" . $sgid . "',"; - if(in_array($sgid, $grouptime)) { - enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - } - if(isset($boostarr[$sgid])) { - enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiboost'])); - } - if(isset($exceptgroup[$sgid])) { - enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiexgrp'])); - } - } - } - } - - if(isset($delsgroupids)) { - $delsgroupids = substr($delsgroupids, 0, -1); - $sqlexec .= "DELETE FROM $dbname.groups WHERE sgid IN ($delsgroupids); "; - } - return($sqlexec); -} +channelFileList($cid="0", $cpw="", $path="/icons/"); + } catch (Exception $e) { + if ($e->getCode() != 1281) { + enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } + } + + foreach($iconlist as $icon) { + $iconid = "i".substr($icon['name'], 5); + $iconarr[$iconid] = $icon['datetime']; + } + + try { + usleep($slowmode); + $ts3->serverGroupListReset(); + $ts3groups = $ts3->serverGroupList(); + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } + + // ServerIcon + if ($serverinfo['virtualserver_icon_id'] < 0) { + $sIconId = (pow(2, 32)) - ($serverinfo['virtualserver_icon_id'] * -1); + } else { + $sIconId = $serverinfo['virtualserver_icon_id']; + } + $sIconFile = 0; + if (!isset($select_arr['groups']['0']) || $select_arr['groups']['0']['iconid'] != $sIconId || $iconarr["i".$sIconId] > $select_arr['groups']['0']['icondate']) { + if($sIconId > 600) { + try { + usleep($slowmode); + enter_logfile($logpath,$timezone,5,$lang['upgrp0002']); + $sIconFile = $ts3->iconDownload(); + if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.png", $sIconFile) === false) { + enter_logfile($logpath,$timezone,2,$lang['upgrp0003'].' '.sprintf($lang['errperm'], 'tsicons')); + } + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().'; '.$lang['upgrp0004'].$e->getMessage()); + } + } elseif($sIconId == 0) { + if(file_exists(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.png")) { + if(unlink(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.png") === false) { + enter_logfile($logpath,$timezone,2,$lang['upgrp0005'].' '.sprintf($lang['errperm'], 'tsicons')); + } else { + enter_logfile($logpath,$timezone,5,$lang['upgrp0006']); + } + } + $iconarr["i".$sIconId] = 0; + } + $updategroups[] = array( + "sgid" => "0", + "sgidname" => "'ServerIcon'", + "iconid" => $sIconId, + "icondate" => $iconarr["i".$sIconId] + ); + } + + // GroupIcons + $iconcount= 0; + foreach ($ts3groups as $servergroup) { + $tsgroupids[$servergroup['sgid']] = 0; + $sgid = $servergroup['sgid']; + $sgname = $mysqlcon->quote($servergroup['name'], ENT_QUOTES); + $gefunden = 2; + $iconid = $servergroup['iconid']; + $iconid = ($iconid < 0) ? (pow(2, 32)) - ($iconid * -1) : $iconid; + $iconfile = 0; + if($iconid > 600) { + if (!isset($select_arr['groups'][$sgid]) || $select_arr['groups'][$sgid]['iconid'] != $iconid || $iconarr["i".$iconid] > $select_arr['groups'][$sgid]['icondate']) { + try { + check_shutdown($timezone,$logpath); usleep($slowmode); + enter_logfile($logpath,$timezone,5,sprintf($lang['upgrp0011'], $sgname, $sgid)); + $iconfile = $servergroup->iconDownload(); + if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/" . $sgid . ".png", $iconfile) === false) { + enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0007'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + } + $iconcount++; + } catch (Exception $e) { + enter_logfile($logpath,$timezone,2,$lang['errorts3'].$e->getCode().': '.sprintf($lang['upgrp0008'], $sgname, $sgid).$e->getMessage()); + } + } + } elseif($iconid == 0) { + if(file_exists(substr(dirname(__FILE__),0,-4) . "tsicons/" . $sgid . ".png")) { + if(unlink(substr(dirname(__FILE__),0,-4) . "tsicons/" . $sgid . ".png") === false) { + enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0009'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + } else { + enter_logfile($logpath,$timezone,5,sprintf($lang['upgrp0010'], $sgname, $sgid)); + } + } + $iconarr["i".$iconid] = 0; + } + + if(!isset($iconarr["i".$iconid])) { + $iconarr["i".$iconid] = 0; + } + $updategroups[] = array( + "sgid" => $servergroup['sgid'], + "sgidname" => $sgname, + "iconid" => $iconid, + "icondate" => $iconarr["i".$iconid] + ); + if($iconcount > 9 && $nobreak != 1) { + break; + } + } + + if (isset($updategroups)) { + $sqlinsertvalues = ''; + foreach ($updategroups as $updatedata) { + $sqlinsertvalues .= "(".$updatedata['sgid'].",".$updatedata['sgidname'].",'".$updatedata['iconid']."','".$updatedata['icondate']."'),"; + } + $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`groups` (`sgid`,`sgidname`,`iconid`,`icondate`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `sgidname`=VALUES(`sgidname`),`iconid`=VALUES(`iconid`),`icondate`=VALUES(`icondate`); "; + unset($updategroups, $sqlinsertvalues); + } + + if(isset($select_arr['groups'])) { + foreach ($select_arr['groups'] as $sgid => $groups) { + if(!isset($tsgroupids[$sgid]) && $sgid != 0 && $sgid != NULL) { + $delsgroupids .= "'" . $sgid . "',"; + if(in_array($sgid, $grouptime)) { + enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + } + if(isset($boostarr[$sgid])) { + enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiboost'])); + } + if(isset($exceptgroup[$sgid])) { + enter_logfile($logpath,$timezone,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiexgrp'])); + } + } + } + } + + if(isset($delsgroupids)) { + $delsgroupids = substr($delsgroupids, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`groups` WHERE `sgid` IN ($delsgroupids); "; + } + return($sqlexec); +} ?> \ No newline at end of file diff --git a/jobs/update_rs.php b/jobs/update_rs.php index d4658f6..a54acf7 100644 --- a/jobs/update_rs.php +++ b/jobs/update_rs.php @@ -1,135 +1,135 @@ -query("SELECT 1 FROM bak_$table LIMIT 1") !== false) { - if($mysqlcon->exec("DROP TABLE $dbname.bak_$table") === false) { - enter_logfile($logpath,$timezone,1," Error due deleting old backup table ".$table.".",$norotate); - $countbackuperr++; - } else { - enter_logfile($logpath,$timezone,4," Old backup table ".$table." successfully removed.",$norotate); - } - } - } - - foreach ($tables as $table) { - if($mysqlcon->exec("CREATE TABLE $dbname.bak_$table LIKE $dbname.$table") === false) { - enter_logfile($logpath,$timezone,1," Error due creating table bak_".$table.".",$norotate); - $countbackuperr++; - } else { - if($mysqlcon->exec("INSERT $dbname.bak_$table SELECT * FROM $dbname.$table") === false) { - enter_logfile($logpath,$timezone,1," Error due inserting data from table ".$table.".",$norotate); - $countbackuperr++; - } else { - enter_logfile($logpath,$timezone,4," Table ".$table." successfully cloned.",$norotate); - } - } - } - - if($countbackuperr != 0) { - enter_logfile($logpath,$timezone,4," Backup failed. Please check your database permissions.",$norotate); - enter_logfile($logpath,$timezone,4," Update failed. Go on with normal work on old version.",$norotate); - return; - } else { - enter_logfile($logpath,$timezone,4," Database-tables successfully backuped.",$norotate); - } - - if(!is_file(substr(__DIR__,0,-4).'update/'.$newversion.'.zip')) { - enter_logfile($logpath,$timezone,4," Downloading new update...",$norotate); - $newUpdate = file_get_contents('https://ts-n.net/downloads/ranksystem_'.$newversion.'.zip'); - if(!is_dir(substr(__DIR__,0,-4).'update/')) { - mkdir (substr(__DIR__,0,-4).'update/'); - } - $dlHandler = fopen(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip', 'w'); - if(!fwrite($dlHandler,$newUpdate)) { - enter_logfile($logpath,$timezone,1," Could not save new update. Please check the permissions for folder 'update'.",$norotate); - enter_logfile($logpath,$timezone,4," Update failed. Go on with normal work on old version.",$norotate); - return; - } - if(!is_file(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip')) { - enter_logfile($logpath,$timezone,4," Something gone wrong with downloading/saving the new update file.",$norotate); - enter_logfile($logpath,$timezone,4," Update failed. Go on with normal work on old version.",$norotate); - return; - } - fclose($dlHandler); - enter_logfile($logpath,$timezone,4," New update successfully saved.",$norotate); - } else { - enter_logfile($logpath,$timezone,5," New update file already here...",$norotate); - } - - $zipHandle = zip_open(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip'); - - $countwrongfiles = 0; - $countchangedfiles = 0; - - while ($aF = zip_read($zipHandle)) { - $thisFileName = zip_entry_name($aF); - $thisFileDir = dirname($thisFileName); - - if(substr($thisFileName,-1,1) == '/') { - continue; - } - - if(!is_dir(substr(__DIR__,0,-4).'/'.$thisFileDir)) { - if(mkdir(substr(__DIR__,0,-4).$thisFileDir, 0777, true)) { - enter_logfile($logpath,$timezone,4," Create new folder ".$thisFileDir,$norotate); - } else { - enter_logfile($logpath,$timezone,1," Error by creating folder ".$thisFileDir.". Please check the permissions on your folder ".substr(__DIR__,0,-4),$norotate); - } - } - - if(!is_dir(substr(__DIR__,0,-4).'/'.$thisFileName)) { - $contents = zip_entry_read($aF, zip_entry_filesize($aF)); - $updateThis = ''; - if($thisFileName == 'other/dbconfig.php' || $thisFileName == 'install.php' || $thisFileName == 'other/phpcommand.php') { - enter_logfile($logpath,$timezone,5," Did not touch ".$thisFileName,$norotate); - } else { - if(($updateThis = fopen(substr(__DIR__,0,-4).'/'.$thisFileName, 'w')) === false) { - enter_logfile($logpath,$timezone,1," Failed to open file ".$thisFileName,$norotate); - $countwrongfiles++; - } elseif(!fwrite($updateThis, $contents)) { - enter_logfile($logpath,$timezone,1," Failed to write file ".$thisFileName,$norotate); - $countwrongfiles++; - } else { - enter_logfile($logpath,$timezone,4," Replaced file ".$thisFileName,$norotate); - $countchangedfiles++; - } - fclose($updateThis); - unset($contents); - } - } - } - if($countwrongfiles == 0 && $countchangedfiles != 0) { - if(!unlink(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip')) { - enter_logfile($logpath,$timezone,3," Could not clean update folder. Please remove the unneeded file ".substr(__DIR__,0,-4)."update/ranksystem_".$newversion.".zip",$norotate); - } 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); - - if (substr(php_uname(), 0, 7) == "Windows") { - exec("start ".$phpcommand." ".$path."worker.php restart"); - exit; - } else { - exec($phpcommand." ".$path."worker.php restart > /dev/null 2>/dev/null &"); - exit; - } - } else { - enter_logfile($logpath,$timezone,1," Files updated with at least one error. Please check the log!",$norotate); - // how to handle this.. Perhaps try again automatically in 30 minutes - } +query("SELECT 1 FROM `$dbname`.`bak_$table` LIMIT 1") !== false) { + if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_$table`") === false) { + enter_logfile($logpath,$timezone,1," Error due deleting old backup table ".$table.".",$norotate); + $countbackuperr++; + } else { + enter_logfile($logpath,$timezone,4," Old backup table ".$table." successfully removed.",$norotate); + } + } + } + + foreach ($tables as $table) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`bak_$table` LIKE `$dbname`.`$table`") === false) { + enter_logfile($logpath,$timezone,1," Error due creating table bak_".$table.".",$norotate); + $countbackuperr++; + } else { + if($mysqlcon->exec("INSERT `$dbname`.`bak_$table` SELECT * FROM `$dbname`.`$table`") === false) { + enter_logfile($logpath,$timezone,1," Error due inserting data from table ".$table.".",$norotate); + $countbackuperr++; + } else { + enter_logfile($logpath,$timezone,4," Table ".$table." successfully cloned.",$norotate); + } + } + } + + if($countbackuperr != 0) { + enter_logfile($logpath,$timezone,4," Backup failed. Please check your database permissions.",$norotate); + enter_logfile($logpath,$timezone,4," Update failed. Go on with normal work on old version.",$norotate); + return; + } else { + enter_logfile($logpath,$timezone,4," Database-tables successfully backuped.",$norotate); + } + + if(!is_file(substr(__DIR__,0,-4).'update/'.$newversion.'.zip')) { + enter_logfile($logpath,$timezone,4," Downloading new update...",$norotate); + $newUpdate = file_get_contents('https://ts-n.net/downloads/ranksystem_'.$newversion.'.zip'); + if(!is_dir(substr(__DIR__,0,-4).'update/')) { + mkdir (substr(__DIR__,0,-4).'update/'); + } + $dlHandler = fopen(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip', 'w'); + if(!fwrite($dlHandler,$newUpdate)) { + enter_logfile($logpath,$timezone,1," Could not save new update. Please check the permissions for folder 'update'.",$norotate); + enter_logfile($logpath,$timezone,4," Update failed. Go on with normal work on old version.",$norotate); + return; + } + if(!is_file(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip')) { + enter_logfile($logpath,$timezone,4," Something gone wrong with downloading/saving the new update file.",$norotate); + enter_logfile($logpath,$timezone,4," Update failed. Go on with normal work on old version.",$norotate); + return; + } + fclose($dlHandler); + enter_logfile($logpath,$timezone,4," New update successfully saved.",$norotate); + } else { + enter_logfile($logpath,$timezone,5," New update file already here...",$norotate); + } + + $zipHandle = zip_open(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip'); + + $countwrongfiles = 0; + $countchangedfiles = 0; + + while ($aF = zip_read($zipHandle)) { + $thisFileName = zip_entry_name($aF); + $thisFileDir = dirname($thisFileName); + + if(substr($thisFileName,-1,1) == '/') { + continue; + } + + if(!is_dir(substr(__DIR__,0,-4).'/'.$thisFileDir)) { + if(mkdir(substr(__DIR__,0,-4).$thisFileDir, 0777, true)) { + enter_logfile($logpath,$timezone,4," Create new folder ".$thisFileDir,$norotate); + } else { + enter_logfile($logpath,$timezone,1," Error by creating folder ".$thisFileDir.". Please check the permissions on your folder ".substr(__DIR__,0,-4),$norotate); + } + } + + if(!is_dir(substr(__DIR__,0,-4).'/'.$thisFileName)) { + $contents = zip_entry_read($aF, zip_entry_filesize($aF)); + $updateThis = ''; + if($thisFileName == 'other/dbconfig.php' || $thisFileName == 'install.php' || $thisFileName == 'other/phpcommand.php') { + enter_logfile($logpath,$timezone,5," Did not touch ".$thisFileName,$norotate); + } else { + if(($updateThis = fopen(substr(__DIR__,0,-4).'/'.$thisFileName, 'w')) === false) { + enter_logfile($logpath,$timezone,1," Failed to open file ".$thisFileName,$norotate); + $countwrongfiles++; + } elseif(!fwrite($updateThis, $contents)) { + enter_logfile($logpath,$timezone,1," Failed to write file ".$thisFileName,$norotate); + $countwrongfiles++; + } else { + enter_logfile($logpath,$timezone,4," Replaced file ".$thisFileName,$norotate); + $countchangedfiles++; + } + fclose($updateThis); + unset($contents); + } + } + } + if($countwrongfiles == 0 && $countchangedfiles != 0) { + if(!unlink(substr(__DIR__,0,-4).'update/ranksystem_'.$newversion.'.zip')) { + enter_logfile($logpath,$timezone,3," Could not clean update folder. Please remove the unneeded file ".substr(__DIR__,0,-4)."update/ranksystem_".$newversion.".zip",$norotate); + } 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); + + if (substr(php_uname(), 0, 7) == "Windows") { + exec("start ".$phpcommand." ".$path."worker.php restart"); + exit; + } else { + exec($phpcommand." ".$path."worker.php restart > /dev/null 2>/dev/null &"); + exit; + } + } else { + enter_logfile($logpath,$timezone,1," Files updated with at least one error. Please check the log!",$norotate); + // how to handle this.. Perhaps try again automatically in 30 minutes + } } \ No newline at end of file diff --git a/languages/add_new_language.php b/languages/add_new_language.php index e2b614f..debec49 100644 --- a/languages/add_new_language.php +++ b/languages/add_new_language.php @@ -1,7 +1,7 @@ -'; -echo 'Translate the textes to the wished language
'; -echo 'Send the translated file to admin@ts-n.net
'; -echo 'We will implement it with the next release
'; -echo 'Thx for all supporters!!! +'; +echo 'Translate the textes to the wished language
'; +echo 'Send the translated file to admin@ts-n.net
'; +echo 'We will implement it with the next release
'; +echo 'Thx for all supporters!!! ?> \ No newline at end of file diff --git a/languages/core_ar.php b/languages/core_ar.php index d0f6fa9..479b66e 100644 --- a/languages/core_ar.php +++ b/languages/core_ar.php @@ -1,530 +1,535 @@ - added to the Ranksystem now."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; -$lang['crawl'] = "البحث عن المستخدمين المتواجدين وحساب التفاعل"; -$lang['clean'] = "البحث عن المستخدمين الذين من المفروض حذفهم"; -$lang['cleanc'] = "تصفية المستخدمين"; -$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

This function is only enabled when the 'Slowmode' is deactivated!


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "There were %s clients deleted out of the Ranksystem database, cause they were no longer existing in the TeamSpeak database."; -$lang['cleanno'] = "ليس هناك شيء ليتم مسحه "; -$lang['cleanp'] = "مدى التصفية"; -$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

Set a time in seconds.

Recommended is once a day, cause the client cleaning needs much time for bigger databases."; -$lang['cleanrs'] = "المستخدمون في قاعدة باينات نظام الرتب: %s"; -$lang['cleants'] = "المستخدمين الذين تم العثور عليهم في قاعدة بايانات التيم سبيك: %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['days'] = "يوم %d"; -$lang['dbconerr'] = "فشل الدخول الى قاعدة بيانات قاعدة بيانات: "; -$lang['delcldgrpif'] = "خلل عند حذف المعلومات من مجموعات السيرفر: %s"; -$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; -$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; -$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; -$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'] = "اسم المستخدم او كلمة المرور خاطئة! حاول مجددا..."; -$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; -$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; -$lang['error'] = "خلل "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; -$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; -$lang['errselusr'] = "Please choose at least one user!"; -$lang['errseltime'] = "Please enter an online time to add!"; -$lang['errukwn'] = "حدث خلل غير معروف!"; -$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; -$lang['highest'] = "تم الوصول الى اعلى رتبة"; -$lang['install'] = "Installation"; -$lang['instdb'] = "تنصيب قاعدة البيانات"; -$lang['instdbsuc'] = "قاعدة البيانات %s أنشات بنجاح."; -$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; -$lang['insterr2'] = "PDO is needed but seems not installed. Install PDO and try it again!"; -$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP exec function and try it again!"; -$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; -$lang['insterr5'] = "SimpleXML is needed but seems not available. Install simpleXML and try it again!"; -$lang['insterr6'] = "PHP cURL is needed but seems not available. Install PHP cURL and try it again!"; -$lang['insterr7'] = "PHP Zip is needed but seems not available. Install PHP Zip and try it again!"; -$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 (on windows 'full access') and try again after."; -$lang['isntwicfg2'] = "Configurate Webinterface"; -$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 (on windows 'full access') and try to start the Ranksystem again."; -$lang['isntwiconf'] = "Open the %s to configure the Ranksystem!"; -$lang['isntwidbhost'] = "DB Hostaddress:"; -$lang['isntwidbhostdesc'] = "عنوان خادم قاعدة البيانات
(IP or DNS)"; -$lang['isntwidbmsg'] = "خلل في قاعدة البيانات: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "اسم قاعدة البيانات"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "كلمة مرور قاعدة البيانات"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "Database type

You have to install the needed PDO Driver.
For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "User to access the database"; -$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver!"; -$lang['isntwiusr'] = "المستخدم للوحة التحكم انشئ بنجاح"; -$lang['isntwiusrcr'] = "Create Webinterface-User"; -$lang['isntwiusrdesc'] = "ادخل الاسم وكلمة المرور للدخول الى لوحة التحكم . بإستخدام لوحة التحكم يمكنك التعديل على نظام الرتب"; -$lang['isntwiusrh'] = "Access - Webinterface"; -$lang['listacsg'] = "الرتبة الحالية"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "No, cause excepted"; -$lang['listgrps'] = "actual group since"; -$lang['listip'] = "IP address"; -$lang['listnick'] = "اسم المستخدم"; -$lang['listnxsg'] = "الرتبة التالية"; -$lang['listnxup'] = "الرتبة القادمة بعد"; -$lang['listrank'] = "رتبة"; -$lang['listseen'] = "اخر ظهور"; -$lang['listsuma'] = "وقت النشاط الكلي"; -$lang['listsumi'] = "وقت عدم النشاط الكلي"; -$lang['listsumo'] = "وقت التواجد الكلي"; -$lang['listuid'] = "unique Client-ID"; -$lang['login'] = "Login"; -$lang['msg0001'] = "running version: %s"; -$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; -$lang['msg0003'] = "You are not eligible for this command!"; -$lang['msg0004'] = "Client %s (%s) requests shutdown."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) requests 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['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; -$lang['noentry'] = "لم يتم العثور على اي مدخلات"; -$lang['pass'] = "كلمة المرور"; -$lang['pass2'] = "Change password"; -$lang['pass3'] = "old password"; -$lang['pass4'] = "new password"; -$lang['pass5'] = "Forgot Password?"; -$lang['queryname'] = "اسم البوت الاول قيد الاستخدام جاري المحاولة باسم البوت الثاني"; -$lang['repeat'] = "repeat"; -$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; -$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; -$lang['sccupcount'] = "Added successfully an online time of %s seconds to the users with the unique Client-IDs (%s)"; -$lang['setontime'] = "add time"; -$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; -$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!"; -$lang['sgrprm'] = "تم حذف مجموعة السيرفر %s (ID: %s) من المستخدم %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'] = "Assign Servergroup"; -$lang['stag0002'] = "Allowed Groups"; -$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; -$lang['stag0004'] = "Limit Groups"; -$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; -$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of simultaneous groups: "; -$lang['stag0012'] = "set groups"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "حالة الخادم"; -$lang['stix0002'] = "مجموع المستخدمين"; -$lang['stix0003'] = "عرض التفاصيل"; -$lang['stix0004'] = "مجموع وقت التواجد لكل المستخدمين"; -$lang['stix0005'] = "إظهار الاول في كل الاوقات"; -$lang['stix0006'] = "إظهار الاول لهذا الشهر"; -$lang['stix0007'] = "إظهار الاول لهذا الاسبوع"; -$lang['stix0008'] = "مدة إستعمال الخادم"; -$lang['stix0009'] = "في اخر 7 ايام"; -$lang['stix0010'] = "في اخر 30 يوم"; -$lang['stix0011'] = "في اخر 24 ساعة"; -$lang['stix0012'] = "حدد المدة"; -$lang['stix0013'] = "قبل يوم"; -$lang['stix0014'] = "قبل اسبوع"; -$lang['stix0015'] = "قبل شهر"; -$lang['stix0016'] = "(وقت النشاط/وقت الخمول (لكل المستخدمين"; -$lang['stix0017'] = "(الإصدارات (لكل المستخدمين"; -$lang['stix0018'] = "(الدول (لكل المستخدمين"; -$lang['stix0019'] = "(الأنظمة (لكل المستخدمين"; -$lang['stix0020'] = "الإحصاءات الحالية"; -$lang['stix0023'] = "حالة الخادم"; -$lang['stix0024'] = "متواجد"; -$lang['stix0025'] = "غير متواجد"; -$lang['stix0026'] = "(أقصى عدد للمتصلين / المتصلين)"; -$lang['stix0027'] = "عدد القنوات"; -$lang['stix0028'] = "متوسط زمن الوصول للسيرفر"; -$lang['stix0029'] = "مجموع البيانات المتلقيه"; -$lang['stix0030'] = "مجموع البيانات المرسلة"; -$lang['stix0031'] = "وقت عمل الخادم"; -$lang['stix0032'] = "قبل ايقاف التشغيل:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "متوسط فقد البيانات"; -$lang['stix0035'] = "الإحصاءات العامة"; -$lang['stix0036'] = "اسم الخادم"; -$lang['stix0037'] = "المنفذ:عنوان الخادم"; -$lang['stix0038'] = "كلمة مرور الخادم"; -$lang['stix0039'] = "(لايوجد (الخادم عام"; -$lang['stix0040'] = "نعم (الخادم خاص)"; -$lang['stix0041'] = "هوية الخادم"; -$lang['stix0042'] = "نظام الخادم"; -$lang['stix0043'] = "إصدار الخادم"; -$lang['stix0044'] = "(تاريخ إنشاء الخادم (يوم/شهر/سنة"; -$lang['stix0045'] = "إضافة الخادم إلى قائمة الخوادم"; -$lang['stix0046'] = "مفعل"; -$lang['stix0047'] = "غير مفعل"; -$lang['stix0048'] = "عدد غير كافي من المعلومات حتى الان"; -$lang['stix0049'] = "وقت التواجد لكل المستخدمين / شهر"; -$lang['stix0050'] = "وقت التواجد لكل المستخدمين / اسبوع"; -$lang['stix0051'] = "لقد فشل التيم سبيك لذا لن يكون هناك عملية انشاء"; -$lang['stix0052'] = "others"; -$lang['stix0053'] = "Active Time (in Days)"; -$lang['stix0054'] = "Inactive Time (in Days)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stmy0001'] = "العضوية"; -$lang['stmy0002'] = "رتبة"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "عدد مرات الدخول إلى الخادم:"; -$lang['stmy0006'] = "أول دخول للسيرفر:"; -$lang['stmy0007'] = "المجموع الكلي لوقت التواجد:"; -$lang['stmy0008'] = "Online time last %s days:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "أكتملت الإنجازات:"; -$lang['stmy0011'] = "التقدم بالإنجازات"; -$lang['stmy0012'] = "التواجد : أسطوري"; -$lang['stmy0013'] = "لأن وقت تواجدك بالسيرفر %s ساعات"; -$lang['stmy0014'] = "أكتمل التقدم"; -$lang['stmy0015'] = "التواجد : ذهبي"; -$lang['stmy0016'] = "% أكتمل أسطوري"; -$lang['stmy0017'] = "التواجد : فضي"; -$lang['stmy0018'] = "% أكتمل ذهبي"; -$lang['stmy0019'] = "التواجد : برونزي"; -$lang['stmy0020'] = "% أكتمل فضي"; -$lang['stmy0021'] = "التواجد : لايوجد رتبة"; -$lang['stmy0022'] = "% أكتمل برونزي"; -$lang['stmy0023'] = "تقدم عدد مرات الإتصال"; -$lang['stmy0024'] = "عدد مرات الإتصال : أسطوري"; -$lang['stmy0025'] = "عدد مرات الدخول إلى الخادم %s مرة"; -$lang['stmy0026'] = "عدد مرات الإتصال : ذهبي"; -$lang['stmy0027'] = "عدد مرات الإتصال : فضي"; -$lang['stmy0028'] = "عدد مرات الإتصال: برونزي"; -$lang['stmy0029'] = "عدد مرات الإتصال: لايوجد رتبة"; -$lang['stmy0030'] = "التقدم للمستوى القادم"; -$lang['stmy0031'] = "Total active time"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "اخبار الخادم"; -$lang['stnv0002'] = "اغلاق"; -$lang['stnv0003'] = "تحديث معلومات المستخدم"; -$lang['stnv0004'] = "إستخدم التحديث فقط في حالة تغير معلوماتك في التيم سبيك مثل : اسمك"; -$lang['stnv0005'] = "يعمل فقط عند تواجدك بالتيم سبيك"; -$lang['stnv0006'] = "تحديث"; -$lang['stnv0007'] = "منطقة النزال - مضمون الصفحة"; -$lang['stnv0008'] = "يمكنك تحدي المستخدمين الاخرين في معركة بين اثنين او بين فريقين"; -$lang['stnv0009'] = "في خلال المعركة سيتم حساب وقت التواجد للاعبين او للفريقين"; -$lang['stnv0010'] = "عند انتهاء المعركة المستخدم او الفريق الذي لديه اعلى وقت تواحد سيعتبر الفائز"; -$lang['stnv0011'] = "(الوقت الاعتيادي للمعركة هو 48 ساعة)"; -$lang['stnv0012'] = "المستخدم او الفريق الفائز يحصل على مبلغ يمكنه استخدامه عندما يريد"; -$lang['stnv0013'] = "سيتم اضهاره على لوحة My statistics "; -$lang['stnv0014'] = "( يمكن ان يكون تسريع وقت تواجد لمدة 8 ساعات, زيادة وقت التواجد 4 ساعات اضافية , الخ "; -$lang['stnv0015'] = "يمكن استخدام هذه التسريعات للصعود على سبيل المثال فوق افضل المستخدمين للاسبوع"; -$lang['stnv0016'] = "غير متوفر"; -$lang['stnv0017'] = "أنت غير متصل بالتيم سبيك"; -$lang['stnv0018'] = "الرجاء الإتصال بالتيم سبيك و الضغط على زر التحديث لعرض معلوماتك"; -$lang['stnv0019'] = "العضوية - شرح"; -$lang['stnv0020'] = "تحتوي هذا الصفحة على مختصر لحالتك الخاصة ومجموع وقت تواجدك على السيرفر"; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "نظام الرتب"; -$lang['stnv0025'] = "تحديد المدخلات"; -$lang['stnv0026'] = "الكل"; -$lang['stnv0027'] = "المعلومات على هذه الصفحة قد تكون منتهية الصلاحية! يبدو ان نظام الرتب لم يعد متصلا بسيرفر التيم سبيك"; -$lang['stnv0028'] = "(انت غير متصل بسيرفر التيم سبيك!)"; -$lang['stnv0029'] = "قائمة الرتب"; -$lang['stnv0030'] = "معلومات عن نظام الرتب"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "معلومات عن نظام الرتب"; -$lang['stri0002'] = "ماهو نظام الرتب؟"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "من الذي اخترع نظام الرتب؟"; -$lang['stri0005'] = "متى تم اطلاق نظام الرتب ؟"; -$lang['stri0006'] = "اول اصدار اولي: 05/10/2014."; -$lang['stri0007'] = "اول اصدار تجريبي: 01/02/2015."; -$lang['stri0008'] = "يمكنك رؤية اخر اصدار على Ranksystem Website."; -$lang['stri0009'] = "كيف تم انشاء نظام الرتب ؟"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = ": شكر خاص إلى"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; -$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; -$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; -$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; -$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'] = "افضل مستخدمين"; -$lang['sttw0002'] = "لهذا الاسبوع"; -$lang['sttw0003'] = "وقت التواجد %s %s ساعات"; -$lang['sttw0004'] = "أفضل 10 بالسيرفر"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "أفضل 10 إحصائيات"; -$lang['sttw0008'] = "أفضل 10 ضد أخرون في زمن الإتصال"; -$lang['sttw0009'] = "أفصل 10 ضد أخرون في وقت النشاط"; -$lang['sttw0010'] = "أفضل 10 ضد أخرون في زمن الخمول"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "لهذا الشهر"; -$lang['stta0001'] = "لكل الوقت"; -$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'] = "\nHello %s,\nhere a [B]token[/B] to verify you for the Ranksystem:\n[B]%s[/B]\n\nPut this on the Ranksystem page inside the token field.\n\nIf you didn't request this message, please ignore it. If you get it repeated times, please contact an admin."; -$lang['stve0002'] = "A message with the token was sent to you on the TS3 server."; -$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_day'] = "Day(s)"; -$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'] = "يتوفر اصدار جديد من نظام الرتب; ابلغ المستخدمين في السيرفر"; -$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]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]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "المستخدم %s المستخدمح"; -$lang['user'] = "اسم المستخدم"; -$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'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "admin ID"; -$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$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 should be stopped. Check the log below for more information!"; -$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; -$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; -$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'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; -$lang['wichpw1'] = "Your old password is wrong. Please try again"; -$lang['wichpw2'] = "The new passwords dismatch. Please try again."; -$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; -$lang['wichpw4'] = "Change Password"; -$lang['widaform'] = "نظام التاريخ"; -$lang['widaformdesc'] = "اختر كيفية ضهور التاريخ.

Example:
%a ايام, %h ساعات, %i دقائق, %s ثوان"; -$lang['widbcfgsuc'] = "تعديلات قاعدة البيانات حفظت بنجاح"; -$lang['widbcfgerr'] = "'other/dbconfig.php'خلل عند حفظ تعديلات قاعدة البيانات فشل الاتصال مع "; -$lang['widelcld'] = "حذف المستخدمين"; -$lang['widelcldgrp'] = "اعادة انشاء المجاميع"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; -$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; -$lang['widelsg'] = "حذف من مجموعات السيرفر"; -$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; -$lang['wideltime'] = "وقت الحذف"; -$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; -$lang['wiexcid'] = "Channel-Ausnahmen"; -$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "exception mode"; -$lang['wiexres1'] = "default (count time)"; -$lang['wiexres2'] = "break time"; -$lang['wiexres3'] = "reset time"; -$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; -$lang['wiexuid'] = "استثناء المستخدم"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wigrptime'] = "ترفيع رتبة"; -$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; -$lang['wihladm'] = "List Rankup (Admin-Mode)"; -$lang['wihladm1'] = "Add online Time to User"; -$lang['wihlcfg'] = "خيارات النواة"; -$lang['wihldb'] = "اعدادات قاعدة البيانات"; -$lang['wihlmsg'] = "Message settings"; -$lang['wihlsty'] = "Stats page settings"; -$lang['wihlts'] = "TeamSpeak settings"; -$lang['wihlvs'] = "Various settings"; -$lang['wiignidle'] = "Ignoriere Idle"; -$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0= disable the feature

Example:
Ignore idle= 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; -$lang['wimsgmsg'] = "Message"; -$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wilogout'] = "تسجيل الخروج"; -$lang['wimsgusr'] = "Rank up notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Other"; -$lang['winav5'] = "Message"; -$lang['winav6'] = "Stats page"; -$lang['winav7'] = "Administrate"; -$lang['winav8'] = "Start / Stop Bot"; -$lang['winav9'] = "Update available!"; -$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; -$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Command \"!nextup\""; -$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; -$lang['winxmode1'] = "deactivated"; -$lang['winxmode2'] = "allowed - only next rank"; -$lang['winxmode3'] = "allowed - all next ranks"; -$lang['winxmsg1'] = "Message"; -$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; -$lang['winxmsg2'] = "Message (highest)"; -$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; -$lang['winxmsg3'] = "Message (excepted)"; -$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; -$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; -$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; -$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; -$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$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."; -$lang['wishcolas'] = "actual servergroup"; -$lang['wishcolasdesc'] = "Show column 'actual servergroup' in stats/list_rankup.php"; -$lang['wishcolat'] = "active time"; -$lang['wishcolatdesc'] = "Show column 'sum. active time' in stats/list_rankup.php"; -$lang['wishcolcld'] = "Client-name"; -$lang['wishcolclddesc'] = "Show column 'Client-name' in stats/list_rankup.php"; -$lang['wishcoldbid'] = "database-ID"; -$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in stats/list_rankup.php"; -$lang['wishcolgs'] = "actual group since"; -$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; -$lang['wishcolit'] = "idle time"; -$lang['wishcolitdesc'] = "Show column 'sum idle time' in stats/list_rankup.php"; -$lang['wishcolls'] = "last seen"; -$lang['wishcollsdesc'] = "Show column 'last seen' in stats/list_rankup.php"; -$lang['wishcolnx'] = "next rank up"; -$lang['wishcolnxdesc'] = "Show column 'next rank up' in stats/list_rankup.php"; -$lang['wishcolot'] = "online time"; -$lang['wishcolotdesc'] = "Show column 'sum. online time' in stats/list_rankup.php"; -$lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Show column 'rank' in stats/list_rankup.php"; -$lang['wishcolsg'] = "next servergroup"; -$lang['wishcolsgdesc'] = "Show column 'next servergroup' in stats/list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in stats/list_rankup.php"; -$lang['wishexcld'] = "excepted client"; -$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; -$lang['wishexgrp'] = "excepted groups"; -$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wishnav'] = "show site-navigation"; -$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; -$lang['wisupidle'] = "Mode"; -$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; -$lang['wisvconf'] = "save"; -$lang['wisvsuc'] = "Changes successfully saved!"; -$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; -$lang['wits3avat'] = "Avatar Delay"; -$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The Bot will join this channel after connecting to the TeamSpeak server."; -$lang['wits3host'] = "TS3 Hostaddress"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Botname"; -$lang['wits3qnm2'] = "2nd Botname"; -$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; -$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; -$lang['wits3querpw'] = "TS3 Query-Password"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; -$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['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"; -$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; + added to the Ranksystem now."; +$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; +$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; +$lang['crawl'] = "البحث عن المستخدمين المتواجدين وحساب التفاعل"; +$lang['clean'] = "البحث عن المستخدمين الذين من المفروض حذفهم"; +$lang['cleanc'] = "تصفية المستخدمين"; +$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

This function is only enabled when the 'Slowmode' is deactivated!


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "There were %s clients deleted out of the Ranksystem database, cause they were no longer existing in the TeamSpeak database."; +$lang['cleanno'] = "ليس هناك شيء ليتم مسحه "; +$lang['cleanp'] = "مدى التصفية"; +$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

Set a time in seconds.

Recommended is once a day, cause the client cleaning needs much time for bigger databases."; +$lang['cleanrs'] = "المستخدمون في قاعدة باينات نظام الرتب: %s"; +$lang['cleants'] = "المستخدمين الذين تم العثور عليهم في قاعدة بايانات التيم سبيك: %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['day'] = "day %d"; +$lang['days'] = "يوم %d"; +$lang['dbconerr'] = "فشل الدخول الى قاعدة بيانات قاعدة بيانات: "; +$lang['delcldgrpif'] = "خلل عند حذف المعلومات من مجموعات السيرفر: %s"; +$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; +$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; +$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "اسم المستخدم او كلمة المرور خاطئة! حاول مجددا..."; +$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; +$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; +$lang['error'] = "خلل "; +$lang['errorts3'] = "TS3 Error: "; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; +$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; +$lang['errselusr'] = "Please choose at least one user!"; +$lang['errseltime'] = "Please enter an online time to add!"; +$lang['errukwn'] = "حدث خلل غير معروف!"; +$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; +$lang['highest'] = "تم الوصول الى اعلى رتبة"; +$lang['install'] = "Installation"; +$lang['instdb'] = "تنصيب قاعدة البيانات"; +$lang['instdbsuc'] = "قاعدة البيانات %s أنشات بنجاح."; +$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; +$lang['insterr2'] = "PDO is needed but seems not installed. Install PDO and try it again!"; +$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP exec function and try it again!"; +$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; +$lang['insterr5'] = "SimpleXML is needed but seems not available. Install simpleXML and try it again!"; +$lang['insterr6'] = "PHP cURL is needed but seems not available. Install PHP cURL and try it again!"; +$lang['insterr7'] = "PHP Zip is needed but seems not available. Install PHP Zip and try it again!"; +$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 (on windows 'full access') and try again after."; +$lang['isntwicfg2'] = "Configurate Webinterface"; +$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 (on windows 'full access') and try to start the Ranksystem again."; +$lang['isntwiconf'] = "Open the %s to configure the Ranksystem!"; +$lang['isntwidbhost'] = "DB Hostaddress:"; +$lang['isntwidbhostdesc'] = "عنوان خادم قاعدة البيانات
(IP or DNS)"; +$lang['isntwidbmsg'] = "خلل في قاعدة البيانات: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc'] = "اسم قاعدة البيانات"; +$lang['isntwidbpass'] = "DB Password:"; +$lang['isntwidbpassdesc'] = "كلمة مرور قاعدة البيانات"; +$lang['isntwidbtype'] = "DB Type:"; +$lang['isntwidbtypedesc'] = "Database type

You have to install the needed PDO Driver.
For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc'] = "User to access the database"; +$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver!"; +$lang['isntwiusr'] = "المستخدم للوحة التحكم انشئ بنجاح"; +$lang['isntwiusrcr'] = "Create Webinterface-User"; +$lang['isntwiusrdesc'] = "ادخل الاسم وكلمة المرور للدخول الى لوحة التحكم . بإستخدام لوحة التحكم يمكنك التعديل على نظام الرتب"; +$lang['isntwiusrh'] = "Access - Webinterface"; +$lang['listacsg'] = "الرتبة الحالية"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexcept'] = "No, cause excepted"; +$lang['listgrps'] = "actual group since"; +$lang['listnick'] = "اسم المستخدم"; +$lang['listnxsg'] = "الرتبة التالية"; +$lang['listnxup'] = "الرتبة القادمة بعد"; +$lang['listrank'] = "رتبة"; +$lang['listseen'] = "اخر ظهور"; +$lang['listsuma'] = "وقت النشاط الكلي"; +$lang['listsumi'] = "وقت عدم النشاط الكلي"; +$lang['listsumo'] = "وقت التواجد الكلي"; +$lang['listuid'] = "unique Client-ID"; +$lang['login'] = "Login"; +$lang['msg0001'] = "running version: %s"; +$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; +$lang['msg0003'] = "You are not eligible for this command!"; +$lang['msg0004'] = "Client %s (%s) requests shutdown."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Client %s (%s) requests 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['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; +$lang['noentry'] = "لم يتم العثور على اي مدخلات"; +$lang['pass'] = "كلمة المرور"; +$lang['pass2'] = "Change password"; +$lang['pass3'] = "old password"; +$lang['pass4'] = "new password"; +$lang['pass5'] = "Forgot Password?"; +$lang['queryname'] = "اسم البوت الاول قيد الاستخدام جاري المحاولة باسم البوت الثاني"; +$lang['repeat'] = "repeat"; +$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; +$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "add time"; +$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; +$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!"; +$lang['sgrprm'] = "تم حذف مجموعة السيرفر %s (ID: %s) من المستخدم %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'] = "Assign Servergroup"; +$lang['stag0002'] = "Allowed Groups"; +$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; +$lang['stag0004'] = "Limit Groups"; +$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; +$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; +$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; +$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; +$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; +$lang['stag0010'] = "Please choose at least one new group."; +$lang['stag0011'] = "Limit of simultaneous groups: "; +$lang['stag0012'] = "set groups"; +$lang['stag0013'] = "Addon ON/OFF"; +$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "حالة الخادم"; +$lang['stix0002'] = "مجموع المستخدمين"; +$lang['stix0003'] = "عرض التفاصيل"; +$lang['stix0004'] = "مجموع وقت التواجد لكل المستخدمين"; +$lang['stix0005'] = "إظهار الاول في كل الاوقات"; +$lang['stix0006'] = "إظهار الاول لهذا الشهر"; +$lang['stix0007'] = "إظهار الاول لهذا الاسبوع"; +$lang['stix0008'] = "مدة إستعمال الخادم"; +$lang['stix0009'] = "في اخر 7 ايام"; +$lang['stix0010'] = "في اخر 30 يوم"; +$lang['stix0011'] = "في اخر 24 ساعة"; +$lang['stix0012'] = "حدد المدة"; +$lang['stix0013'] = "قبل يوم"; +$lang['stix0014'] = "قبل اسبوع"; +$lang['stix0015'] = "قبل شهر"; +$lang['stix0016'] = "(وقت النشاط/وقت الخمول (لكل المستخدمين"; +$lang['stix0017'] = "(الإصدارات (لكل المستخدمين"; +$lang['stix0018'] = "(الدول (لكل المستخدمين"; +$lang['stix0019'] = "(الأنظمة (لكل المستخدمين"; +$lang['stix0020'] = "الإحصاءات الحالية"; +$lang['stix0023'] = "حالة الخادم"; +$lang['stix0024'] = "متواجد"; +$lang['stix0025'] = "غير متواجد"; +$lang['stix0026'] = "(أقصى عدد للمتصلين / المتصلين)"; +$lang['stix0027'] = "عدد القنوات"; +$lang['stix0028'] = "متوسط زمن الوصول للسيرفر"; +$lang['stix0029'] = "مجموع البيانات المتلقيه"; +$lang['stix0030'] = "مجموع البيانات المرسلة"; +$lang['stix0031'] = "وقت عمل الخادم"; +$lang['stix0032'] = "قبل ايقاف التشغيل:"; +$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; +$lang['stix0034'] = "متوسط فقد البيانات"; +$lang['stix0035'] = "الإحصاءات العامة"; +$lang['stix0036'] = "اسم الخادم"; +$lang['stix0037'] = "المنفذ:عنوان الخادم"; +$lang['stix0038'] = "كلمة مرور الخادم"; +$lang['stix0039'] = "(لايوجد (الخادم عام"; +$lang['stix0040'] = "نعم (الخادم خاص)"; +$lang['stix0041'] = "هوية الخادم"; +$lang['stix0042'] = "نظام الخادم"; +$lang['stix0043'] = "إصدار الخادم"; +$lang['stix0044'] = "(تاريخ إنشاء الخادم (يوم/شهر/سنة"; +$lang['stix0045'] = "إضافة الخادم إلى قائمة الخوادم"; +$lang['stix0046'] = "مفعل"; +$lang['stix0047'] = "غير مفعل"; +$lang['stix0048'] = "عدد غير كافي من المعلومات حتى الان"; +$lang['stix0049'] = "وقت التواجد لكل المستخدمين / شهر"; +$lang['stix0050'] = "وقت التواجد لكل المستخدمين / اسبوع"; +$lang['stix0051'] = "لقد فشل التيم سبيك لذا لن يكون هناك عملية انشاء"; +$lang['stix0052'] = "others"; +$lang['stix0053'] = "Active Time (in Days)"; +$lang['stix0054'] = "Inactive Time (in Days)"; +$lang['stix0055'] = "online last 24 hours"; +$lang['stix0056'] = "online last %s days"; +$lang['stix0059'] = "List of user"; +$lang['stix0060'] = "User"; +$lang['stix0061'] = "View all versions"; +$lang['stix0062'] = "View all nations"; +$lang['stix0063'] = "View all platforms"; +$lang['stmy0001'] = "العضوية"; +$lang['stmy0002'] = "رتبة"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unique ID:"; +$lang['stmy0005'] = "عدد مرات الدخول إلى الخادم:"; +$lang['stmy0006'] = "أول دخول للسيرفر:"; +$lang['stmy0007'] = "المجموع الكلي لوقت التواجد:"; +$lang['stmy0008'] = "Online time last %s days:"; +$lang['stmy0009'] = "Active time last %s days:"; +$lang['stmy0010'] = "أكتملت الإنجازات:"; +$lang['stmy0011'] = "التقدم بالإنجازات"; +$lang['stmy0012'] = "التواجد : أسطوري"; +$lang['stmy0013'] = "لأن وقت تواجدك بالسيرفر %s ساعات"; +$lang['stmy0014'] = "أكتمل التقدم"; +$lang['stmy0015'] = "التواجد : ذهبي"; +$lang['stmy0016'] = "% أكتمل أسطوري"; +$lang['stmy0017'] = "التواجد : فضي"; +$lang['stmy0018'] = "% أكتمل ذهبي"; +$lang['stmy0019'] = "التواجد : برونزي"; +$lang['stmy0020'] = "% أكتمل فضي"; +$lang['stmy0021'] = "التواجد : لايوجد رتبة"; +$lang['stmy0022'] = "% أكتمل برونزي"; +$lang['stmy0023'] = "تقدم عدد مرات الإتصال"; +$lang['stmy0024'] = "عدد مرات الإتصال : أسطوري"; +$lang['stmy0025'] = "عدد مرات الدخول إلى الخادم %s مرة"; +$lang['stmy0026'] = "عدد مرات الإتصال : ذهبي"; +$lang['stmy0027'] = "عدد مرات الإتصال : فضي"; +$lang['stmy0028'] = "عدد مرات الإتصال: برونزي"; +$lang['stmy0029'] = "عدد مرات الإتصال: لايوجد رتبة"; +$lang['stmy0030'] = "التقدم للمستوى القادم"; +$lang['stmy0031'] = "Total active time"; +$lang['stna0001'] = "Nations"; +$lang['stna0002'] = "statistics"; +$lang['stna0003'] = "Code"; +$lang['stna0004'] = "Count"; +$lang['stna0005'] = "Versions"; +$lang['stna0006'] = "Platforms"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "اخبار الخادم"; +$lang['stnv0002'] = "اغلاق"; +$lang['stnv0003'] = "تحديث معلومات المستخدم"; +$lang['stnv0004'] = "إستخدم التحديث فقط في حالة تغير معلوماتك في التيم سبيك مثل : اسمك"; +$lang['stnv0005'] = "يعمل فقط عند تواجدك بالتيم سبيك"; +$lang['stnv0006'] = "تحديث"; +$lang['stnv0007'] = "منطقة النزال - مضمون الصفحة"; +$lang['stnv0008'] = "يمكنك تحدي المستخدمين الاخرين في معركة بين اثنين او بين فريقين"; +$lang['stnv0009'] = "في خلال المعركة سيتم حساب وقت التواجد للاعبين او للفريقين"; +$lang['stnv0010'] = "عند انتهاء المعركة المستخدم او الفريق الذي لديه اعلى وقت تواحد سيعتبر الفائز"; +$lang['stnv0011'] = "(الوقت الاعتيادي للمعركة هو 48 ساعة)"; +$lang['stnv0012'] = "المستخدم او الفريق الفائز يحصل على مبلغ يمكنه استخدامه عندما يريد"; +$lang['stnv0013'] = "سيتم اضهاره على لوحة My statistics "; +$lang['stnv0014'] = "( يمكن ان يكون تسريع وقت تواجد لمدة 8 ساعات, زيادة وقت التواجد 4 ساعات اضافية , الخ "; +$lang['stnv0015'] = "يمكن استخدام هذه التسريعات للصعود على سبيل المثال فوق افضل المستخدمين للاسبوع"; +$lang['stnv0016'] = "غير متوفر"; +$lang['stnv0017'] = "أنت غير متصل بالتيم سبيك"; +$lang['stnv0018'] = "الرجاء الإتصال بالتيم سبيك و الضغط على زر التحديث لعرض معلوماتك"; +$lang['stnv0019'] = "العضوية - شرح"; +$lang['stnv0020'] = "تحتوي هذا الصفحة على مختصر لحالتك الخاصة ومجموع وقت تواجدك على السيرفر"; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "نظام الرتب"; +$lang['stnv0025'] = "تحديد المدخلات"; +$lang['stnv0026'] = "الكل"; +$lang['stnv0027'] = "المعلومات على هذه الصفحة قد تكون منتهية الصلاحية! يبدو ان نظام الرتب لم يعد متصلا بسيرفر التيم سبيك"; +$lang['stnv0028'] = "(انت غير متصل بسيرفر التيم سبيك!)"; +$lang['stnv0029'] = "قائمة الرتب"; +$lang['stnv0030'] = "معلومات عن نظام الرتب"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "connect TS3"; +$lang['stri0001'] = "معلومات عن نظام الرتب"; +$lang['stri0002'] = "ماهو نظام الرتب؟"; +$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "من الذي اخترع نظام الرتب؟"; +$lang['stri0005'] = "متى تم اطلاق نظام الرتب ؟"; +$lang['stri0006'] = "اول اصدار اولي: 05/10/2014."; +$lang['stri0007'] = "اول اصدار تجريبي: 01/02/2015."; +$lang['stri0008'] = "يمكنك رؤية اخر اصدار على Ranksystem Website."; +$lang['stri0009'] = "كيف تم انشاء نظام الرتب ؟"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = ": شكر خاص إلى"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; +$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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "افضل مستخدمين"; +$lang['sttw0002'] = "لهذا الاسبوع"; +$lang['sttw0003'] = "وقت التواجد %s %s ساعات"; +$lang['sttw0004'] = "أفضل 10 بالسيرفر"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "أفضل 10 إحصائيات"; +$lang['sttw0008'] = "أفضل 10 ضد أخرون في زمن الإتصال"; +$lang['sttw0009'] = "أفصل 10 ضد أخرون في وقت النشاط"; +$lang['sttw0010'] = "أفضل 10 ضد أخرون في زمن الخمول"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "Other %s users (in hours)"; +$lang['sttw0013'] = "With %s %s active time"; +$lang['sttw0014'] = "hours"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "لهذا الشهر"; +$lang['stta0001'] = "لكل الوقت"; +$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'] = "\nHello %s,\nhere a [B]token[/B] to verify you for the Ranksystem:\n[B]%s[/B]\n\nPut this on the Ranksystem page inside the token field.\n\nIf you didn't request this message, please ignore it. If you get it repeated times, please contact an admin."; +$lang['stve0002'] = "A message with the token was sent to you on the TS3 server."; +$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; +$lang['stve0004'] = "The entered token does not match! Please try it again."; +$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; +$lang['stve0009'] = " -- select yourself -- "; +$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verify"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_day'] = "Day(s)"; +$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'] = "يتوفر اصدار جديد من نظام الرتب; ابلغ المستخدمين في السيرفر"; +$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]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]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "المستخدم %s المستخدمح"; +$lang['user'] = "اسم المستخدم"; +$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'] = "Webinterface"; +$lang['wiaction'] = "action"; +$lang['wiadmhide'] = "hide excepted clients"; +$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; +$lang['wiadmuuid'] = "admin ID"; +$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$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 should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; +$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'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['wichpw1'] = "Your old password is wrong. Please try again"; +$lang['wichpw2'] = "The new passwords dismatch. Please try again."; +$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; +$lang['wichpw4'] = "Change Password"; +$lang['widaform'] = "نظام التاريخ"; +$lang['widaformdesc'] = "اختر كيفية ضهور التاريخ.

Example:
%a ايام, %h ساعات, %i دقائق, %s ثوان"; +$lang['widbcfgsuc'] = "تعديلات قاعدة البيانات حفظت بنجاح"; +$lang['widbcfgerr'] = "'other/dbconfig.php'خلل عند حفظ تعديلات قاعدة البيانات فشل الاتصال مع "; +$lang['widelcld'] = "حذف المستخدمين"; +$lang['widelcldgrp'] = "اعادة انشاء المجاميع"; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "حذف من مجموعات السيرفر"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "وقت الحذف"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "Channel-Ausnahmen"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexres'] = "exception mode"; +$lang['wiexres1'] = "default (count time)"; +$lang['wiexres2'] = "break time"; +$lang['wiexres3'] = "reset time"; +$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; +$lang['wiexuid'] = "استثناء المستخدم"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "ترفيع رتبة"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihladm1'] = "Add online Time to User"; +$lang['wihlcfg'] = "خيارات النواة"; +$lang['wihldb'] = "اعدادات قاعدة البيانات"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignoriere Idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0= disable the feature

Example:
Ignore idle= 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; +$lang['wilogout'] = "تسجيل الخروج"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Command \"!nextup\""; +$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; +$lang['winxmode1'] = "deactivated"; +$lang['winxmode2'] = "allowed - only next rank"; +$lang['winxmode3'] = "allowed - all next ranks"; +$lang['winxmsg1'] = "Message"; +$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"!nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; +$lang['winxmsg2'] = "Message (highest)"; +$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; +$lang['winxmsg3'] = "Message (excepted)"; +$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; +$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; +$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; +$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; +$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; +$lang['wirtpw7'] = "Reset Password"; +$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; +$lang['wirtpw9'] = "Following things are required to reset the password:"; +$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."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in stats/list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in stats/list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in stats/list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in stats/list_rankup.php"; +$lang['wishcolgs'] = "actual group since"; +$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in stats/list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in stats/list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in stats/list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in stats/list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in stats/list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in stats/list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in stats/list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wishnav'] = "show site-navigation"; +$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3avat'] = "Avatar Delay"; +$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The Bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Botname"; +$lang['wits3qnm2'] = "2nd Botname"; +$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; +$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['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"; +$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; ?> \ No newline at end of file diff --git a/languages/core_cz.php b/languages/core_cz.php index bf54bf9..13dfa6a 100644 --- a/languages/core_cz.php +++ b/languages/core_cz.php @@ -1,529 +1,534 @@ - 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 s požadovaným identifikátorem serverové skupiny."; -$lang['stnv0041'] = "Zobrazit pouze klienty, které jsou vybrány podle lastseen.
Nahradit OPERATOR 's' & lt; nebo ">" nebo '=' nebo '! ='.
A nahradit TIME č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 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) : 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 : 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í : 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
- pro podtržení
- 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 - Funkce je deaktivována. Příkaz 'nextup' bude ignorován

Povoleno - pouze další pozice - Poskytne potřebný čas pro další skupinu

Povoleno - všechny další řady - 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):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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."; + 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['day'] = "%s den"; +$lang['days'] = "%s dny"; +$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['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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['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č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'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$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 s požadovaným identifikátorem serverové skupiny."; +$lang['stnv0041'] = "Zobrazit pouze klienty, které jsou vybrány podle lastseen.
Nahradit OPERATOR 's' & lt; nebo ">" nebo '=' nebo '! ='.
A nahradit TIME č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 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['stri0025'] = "DoktorekOne - for polish 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) : 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 : 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í : 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
- pro podtržení
- 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 - Funkce je deaktivována. Příkaz '!nextup' bude ignorován

Povoleno - pouze další pozice - Poskytne potřebný čas pro další skupinu

Povoleno - všechny další řady - 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['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$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):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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 709d45f..1c5f07a 100644 --- a/languages/core_de.php +++ b/languages/core_de.php @@ -1,529 +1,534 @@ - wurde nun zum Ranksystem hinzugefügt."; -$lang['brute'] = "Es wurden einige fehlgeschlagene Login-Versuche festgestellt. Blocke login für 300 Sekunden! Letzter Versuch von IP %s."; -$lang['changedbid'] = "User %s (eindeutige Client-ID: %s) hat eine neue TeamSpeak Client-Datenbank-ID (%s). Ersetze die alte Client-Datenbank-ID (%s) und setze die gesammelte Zeiten zurück"; -$lang['crawl'] = "Scanne nach verbundenen Usern und sammle die online Zeit..."; -$lang['clean'] = "Scanne nach Usern, welche zu löschen sind..."; -$lang['cleanc'] = "Clientlöschung"; -$lang['cleancdesc'] = "Mit dieser Funktion werden alte Clients aus dem Ranksystem gelöscht.

Hierzu wird die TeamSpeak Datenbank mit dem Ranksystem abgeglichen. Clients, welche nicht mehr in der TeamSpeak Datenbank existieren, werden aus dem Ranksystem gelöscht.

Diese Funktion kann nur genutzt werden, wenn der 'Slowmode' deaktiviert ist!


Zur automatischen Bereinigung der TeamSpeak Datenbank kann der ClientCleaner genutzt werden:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "Es wurden %s Clients aus der Ranksystem-Datenbank gelöscht, da sie nicht mehr in der TeamSpeak Datenbank vorhanden sind."; -$lang['cleanno'] = "Es gab nichts zu löschen..."; -$lang['cleanp'] = "Löschintervall"; -$lang['cleanpdesc'] = "Bestimme einen Intervall, wie oft die 'Clientlöschung' laufen soll.

Angabe der Zeit in Sekunden!

Empfohlen wird die Clientlöschung nur einmal am Tag laufen zu lassen, da für größere Datenbanken die Laufzeit extrem steigt."; -$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 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"; -$lang['dbconerr'] = "Verbindung zur Datenbank gescheitert: "; -$lang['delcldgrpif'] = "Fehler beim Löschen der Servergruppen aus der Datenbank: %s"; -$lang['delcldgrpsc'] = "Knowledge der Servergruppen für %s User erfolgreich gelöscht."; -$lang['delclientsif'] = "%s Clients aus der Ranksystem Datenbank gelöscht!"; -$lang['delclientssc'] = "%s Clients aus der Ranksystem Datenbank erfolgreich gelöscht!"; -$lang['errgrpid'] = "Your changes were not saved to the database due errors occured. Please fix the problems and save your changes after!"; -$lang['errgrplist'] = "Fehler beim Abholen der Servergruppenliste: "; -$lang['errlogin'] = "Benutzername und/oder Passwort sind falsch! Versuche es erneut..."; -$lang['errlogin2'] = "Brute force Schutz: Bitte versuche es in %s Sekunden erneut!"; -$lang['errlogin3'] = "Brute force Schutz: Zu viele Fehlversuche. Für 300 Sekunden gesperrt!"; -$lang['error'] = "Fehler "; -$lang['errorts3'] = "TS3 Fehler: "; -$lang['errperm'] = "Bitte überprüfe die Dateiberechtigungen für das Verzeichnis '%s'!"; -$lang['errremgrp'] = "Fehler beim Entfernen des Users mit der eindeutigen Client-ID %s aus der Servergruppe mit der Servergruppen-Datenbank-ID %s!"; -$lang['errremdb'] = "Fehler beim Löschen des Users mit der eindeutigen Client-ID %s aus der Ranksystem Datenbank!"; -$lang['errselusr'] = "Bitte wähle zumindest einen User!"; -$lang['errseltime'] = "Bitte trage eine online Zeit zum Hinzufügen ein!"; -$lang['errukwn'] = "Unbekannter Fehler aufgetreten!"; -$lang['errupcount'] = "Fehler beim Überschreiben der ges. online Zeit %s bei User mit der eindeutigen Client-ID %s!"; -$lang['highest'] = "höchster Rang erreicht"; -$lang['install'] = "Installation"; -$lang['instdb'] = "Installiere Datenbank"; -$lang['instdbsuc'] = "Datenbank %s wurde erfolgreich angelegt."; -$lang['insterr1'] = "ACHTUNG: Du versuchst gerade das Ranksystem zu installieren, allerdings existiert die Datenbank mit den Namen \"%s\" bereits.
Während der Installation wird die Datenbank zunächst vollständig gelöscht!
Stelle sicher, dass du das möchtest. Falls nein, wähle einen anderen Datenbank-Namen."; -$lang['insterr2'] = "PDO wird benötigt, scheint jedoch nicht installiert zu sein. Installiere PDO und versuche es erneut!"; -$lang['insterr3'] = "PHP exec wird benötigt, scheint jedoch deaktiviert zu sein. Bitte aktiviere PHP exec und versuche es erneut!"; -$lang['insterr4'] = "Deine PHP Version (%s) ist unter 5.5.0. Aktualisiere dein PHP und versuche es erneut!"; -$lang['insterr5'] = "SimpleXML wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere simpleXML und versuche es erneut!"; -$lang['insterr6'] = "PHP cURL wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere PHP cURL und versuche es erneut!"; -$lang['insterr7'] = "PHP Zip wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere PHP Zip und versuche es erneut!"; -$lang['insterr8'] = "PHP COM Extension (php_com_dotnet.dll) wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere PHP COM und versuche es erneut!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Die Datenbankkonfigurationen konnten nicht gespeichert werden! Bitte versehe die 'other/dbconfig.php' mit einem chmod 0777 (für Windows 'Vollzugriff') und versuche es anschließend erneut."; -$lang['isntwicfg2'] = "Konfiguriere Webinterface"; -$lang['isntwichm'] = "Schreibrechte fehlen für Verzeichnis \"%s\". Bitte setze auf dieses einen chmod 777 (für Windows 'Vollzugriff') und starte anschließend das Ranksystem erneut."; -$lang['isntwiconf'] = "Öffne das %s um das Ranksystem zu konfigurieren!"; -$lang['isntwidbhost'] = "DB Hostadresse:"; -$lang['isntwidbhostdesc'] = "Datenbank Server Adresse
(IP oder DNS)"; -$lang['isntwidbmsg'] = "Datenbank-Fehler: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name der Datenbank"; -$lang['isntwidbpass'] = "DB Passwort:"; -$lang['isntwidbpassdesc'] = "Passwort für die Datenbank"; -$lang['isntwidbtype'] = "DB Typ:"; -$lang['isntwidbtypedesc'] = "Datenbank Typ

Der benötigte PDO Treiber muss installiert sein.
Für mehr Informationen beachte die Anforderungen auf http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB Benutzer:"; -$lang['isntwidbusrdesc'] = "Username für die Datenbank"; -$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver!"; -$lang['isntwiusr'] = "Benutzer für das Webinterface wurde erfolgreich erstellt."; -$lang['isntwiusrcr'] = "Erstelle Webinterface-User"; -$lang['isntwiusrdesc'] = "Gib einen frei wählbaren Benutzer und ein Passwort für das Webinterface ein. Mit dem Webinterface wird das Ranksystem konfiguriert."; -$lang['isntwiusrh'] = "Zugang - Webinterface"; -$lang['listacsg'] = "aktuelle Servergruppe"; -$lang['listcldbid'] = "Client-Datenbank-ID"; -$lang['listexcept'] = "Keine, da ausgeschlossen"; -$lang['listgrps'] = "aktuelle Gruppe seit"; -$lang['listip'] = "IP Adresse"; -$lang['listnick'] = "Client-Name"; -$lang['listnxsg'] = "nächste Servergruppe"; -$lang['listnxup'] = "nächster Rang"; -$lang['listrank'] = "Rang"; -$lang['listseen'] = "zuletzt gesehen"; -$lang['listsuma'] = "ges. aktive Zeit"; -$lang['listsumi'] = "ges. idle Zeit"; -$lang['listsumo'] = "ges. online Zeit"; -$lang['listuid'] = "eindeutige Client-ID"; -$lang['login'] = "Login"; -$lang['msg0001'] = "eingesetzte Version: %s"; -$lang['msg0002'] = "Verfügbare Befehle sind:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t erhalte Liste der Befehle\n[B]!version[/B]\t\t\t\t\t\t\t\t erhalte die aktuelle Version\n[B]!update[/B], [B]!checkupdate[/B]\t\t\tprüfe auf neue Version und update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t bereinge User-Datenbank\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t erhalte die Zeit zur nächsten Rangsteigerung\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\tden Ranksystem bot neu starten\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t den Ranksystem Bot stoppen"; -$lang['msg0003'] = "Du bist nicht berechtigt diesen Befehl abzusetzen!"; -$lang['msg0004'] = "Client %s (%s) fordert Abschaltung."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) fordert Neustart."; -$lang['msg0008'] = "Update check erfolgt. Wenn eine neue Version bereit steht, erfolgt das Update unverzüglich."; -$lang['msg0009'] = "Die Bereinigung der Userdatenbank wurde gestartet. Für mehr Informationen werfe einen Blick in die Ranksystem-Log."; -$lang['nocount'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) ist ein Query-User oder ist mehrmals online (nur erste Verbindung zählt) -> diese wird nicht gewertet!"; -$lang['noentry'] = "Keine Einträge gefunden.."; -$lang['pass'] = "Passwort"; -$lang['pass2'] = "Passwort ändern"; -$lang['pass3'] = "altes Passwort"; -$lang['pass4'] = "neues Passwort"; -$lang['pass5'] = "Passwort vergessen?"; -$lang['queryname'] = "Erster Botname ist bereits in Verwendung. Versuche zweiten Botnamen zu nutzen..."; -$lang['repeat'] = "wiederholen"; -$lang['resettime'] = "Setze die online und aktive Zeit des Benutzers %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) auf Null zurück, da er aus der Ausnahme entfernt wurde."; -$lang['sccrmcld'] = "User mit der eindeutigen Client-ID %s wurde erfolgreich aus der Ranksystem Datenbank gelöscht."; -$lang['sccupcount'] = "Online Zeit von %s Sekunden erfolgreich zu den Benutzer mit der eindeutigen Client-ID (%s) hinzugefügt."; -$lang['setontime'] = "Zeit hinzufügen"; -$lang['setontimedesc'] = "Füge eine online Zeit den zuvor ausgewählten Usern hinzu. Jeder User erhält diese Zeit zusätzlich zur bestehenden.

Die eingegebene online Zeit wird direkt berücksichtigt für die Rangsteigerung und sollte sofort Wirkung zeigen."; -$lang['sgrpadd'] = "Servergruppe %s (ID: %s) zu User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) hinzugefügt."; -$lang['sgrprerr'] = "Betroffener User: %s (unique Client-ID: %s; Client-database-ID %s) und ServerGruppe %s (ID: %s)."; -$lang['sgrprm'] = "Servergruppe %s (ID: %s) von User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) entfernt."; -$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'] = "Servergruppe zuweisen"; -$lang['stag0002'] = "Erlaubte Gruppen"; -$lang['stag0003'] = "Definiere die Servergruppen, welche ein User sich selbst geben kann.

Die Servergruppen sind mit ihrer Gruppen-ID (Servergruppen-Datenbank-ID) durch Komma getrennt zu erfassen.

Beispiel:
23,24,28"; -$lang['stag0004'] = "Gruppen Limit"; -$lang['stag0005'] = "Max. Anzahl der Servergruppen, welche gleichzeitig gesetzt sein können."; -$lang['stag0006'] = "Es sind meherer eindeutige IDs online mit deiner IP Adresse. Bitte %sklicke hier%s um dich zunächst zu verifizieren."; -$lang['stag0007'] = "Bitte warte, bis die letzten Änderungen durchgeführt wurden, bevor du weitere Dinge änderst..."; -$lang['stag0008'] = "Gruppen-Änderungen erfolgreich gespeichert. Es kann ein paar Sekunden dauern, bis die Änderungen auf dem TS3 Server erfolgt."; -$lang['stag0009'] = "Du kannst nicht mehr als %s Gruppe(n) zur selben Zeit setzen!"; -$lang['stag0010'] = "Bitte wähle mind. eine Gruppe."; -$lang['stag0011'] = "Limit gleichzeitiger Gruppen: "; -$lang['stag0012'] = "setze Gruppe(n)"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Schalte das Addon ON (aktiv) oder OFF (inaktiv).

Beim Deaktivieren des Addons wird eine etwaige stats/ Seite ausgeblendet."; -$lang['stag0015'] = "Du konntest nicht auf dem TeamSpeak gefunden werden. Bitte %sklicke hier%s um dich zunächst zu verifizieren."; -$lang['stix0001'] = "Server Statistiken"; -$lang['stix0002'] = "Anzahl User"; -$lang['stix0003'] = "zeige Liste aller User"; -$lang['stix0004'] = "Online Zeit aller User / Total"; -$lang['stix0005'] = "zeige Top User aller Zeiten"; -$lang['stix0006'] = "zeige Top User des Monats"; -$lang['stix0007'] = "zeige Top User der Woche"; -$lang['stix0008'] = "Server Nutzung"; -$lang['stix0009'] = "der letzten 7 Tage"; -$lang['stix0010'] = "der letzten 30 Tage"; -$lang['stix0011'] = "der letzten 24 Stunden"; -$lang['stix0012'] = "wähle Zeitraum"; -$lang['stix0013'] = "letzten 24 Stunden"; -$lang['stix0014'] = "letzte Woche"; -$lang['stix0015'] = "letzer Monat"; -$lang['stix0016'] = "Aktive / Inaktive Zeit (aller User)"; -$lang['stix0017'] = "Versionen (aller User)"; -$lang['stix0018'] = "Nationalitäten (aller User)"; -$lang['stix0019'] = "Plattformen (aller User)"; -$lang['stix0020'] = "Server Details"; -$lang['stix0023'] = "Server Status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "User (Online / Max)"; -$lang['stix0027'] = "Anzahl aller Channel"; -$lang['stix0028'] = "Server Ping (Mittelwert)"; -$lang['stix0029'] = "Eingehende Daten insg."; -$lang['stix0030'] = "Ausgehende Daten insg."; -$lang['stix0031'] = "Server online seit"; -$lang['stix0032'] = "vor Offlineschaltung:"; -$lang['stix0033'] = "00 Tage, 00 Stunden, 00 Min., 00 Sek."; -$lang['stix0034'] = "Paketverlust (Mittelwert)"; -$lang['stix0035'] = " "; -$lang['stix0036'] = "Server Name"; -$lang['stix0037'] = "Server Adresse (Host Adresse : Port)"; -$lang['stix0038'] = "Server Passwort"; -$lang['stix0039'] = "Nein (Öffentlich)"; -$lang['stix0040'] = "Ja (Privat)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server Plattform"; -$lang['stix0043'] = "Server Version"; -$lang['stix0044'] = "Server Erstelldatum (dd/mm/yyyy)"; -$lang['stix0045'] = "Report an Serverliste"; -$lang['stix0046'] = "Aktiv"; -$lang['stix0047'] = "Deaktiviert"; -$lang['stix0048'] = "nicht genügend Daten ..."; -$lang['stix0049'] = "Online Zeit aller User / Monat"; -$lang['stix0050'] = "Online Zeit aller User / Woche"; -$lang['stix0051'] = "TeamSpeak hat gefailed, daher kein Erstelldatum..."; -$lang['stix0052'] = "Andere"; -$lang['stix0053'] = "Aktive Zeit (in Tagen)"; -$lang['stix0054'] = "Inaktive Zeit (in Tagen)"; -$lang['stix0055'] = "online in d. letzten 24 Std."; -$lang['stix0056'] = "online in d. letzten %s Tagen"; -$lang['stix0059'] = "Liste der User"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "zeige alle Versionen"; -$lang['stix0062'] = "zeige alle Nationen"; -$lang['stix0063'] = "zeige alle Plattformen"; -$lang['stmy0001'] = "Meine Statistiken"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Datenbank ID:"; -$lang['stmy0004'] = "Eindeutige Client ID:"; -$lang['stmy0005'] = "Insg. Verbunden zum TS:"; -$lang['stmy0006'] = "Startzeitpunkt der Statistiken:"; -$lang['stmy0007'] = "Gesamte online Zeit:"; -$lang['stmy0008'] = "Online Zeit der letzten %s Tage:"; -$lang['stmy0009'] = "Aktive Zeit der letzten %s Tage:"; -$lang['stmy0010'] = "Errungenschaften:"; -$lang['stmy0011'] = "Fortschritt Errungenschaft Zeit"; -$lang['stmy0012'] = "Zeit: Legendär"; -$lang['stmy0013'] = "Da du bereits %s Stunden auf dem Server online bist."; -$lang['stmy0014'] = "Abgeschlossen"; -$lang['stmy0015'] = "Zeit: Gold"; -$lang['stmy0016'] = "% erreicht für Legendär"; -$lang['stmy0017'] = "Zeit: Silber"; -$lang['stmy0018'] = "% erreicht für Gold"; -$lang['stmy0019'] = "Zeit: Bronze"; -$lang['stmy0020'] = "% erreicht für Silber"; -$lang['stmy0021'] = "Zeit: Unranked"; -$lang['stmy0022'] = "% erreicht für Bronze"; -$lang['stmy0023'] = "Fortschritt Errungenschaft Verbindungen"; -$lang['stmy0024'] = "Verbindungen: Legendär"; -$lang['stmy0025'] = "Da du bereits %s mal zum Server verbunden warst."; -$lang['stmy0026'] = "Verbindungen: Gold"; -$lang['stmy0027'] = "Verbindungen: Silber"; -$lang['stmy0028'] = "Verbindungen: Bronze"; -$lang['stmy0029'] = "Verbindungen: Unranked"; -$lang['stmy0030'] = "Fortschritt nächste Servergruppe"; -$lang['stmy0031'] = "Gesamte aktive Zeit:"; -$lang['stna0001'] = "Nationen"; -$lang['stna0002'] = "Statistiken"; -$lang['stna0003'] = "Kürzel"; -$lang['stna0004'] = "Anzahl"; -$lang['stna0005'] = "Versionen"; -$lang['stna0006'] = "Plattformen"; -$lang['stna0007'] = "Prozent"; -$lang['stnv0001'] = "Server News"; -$lang['stnv0002'] = "Schließen"; -$lang['stnv0003'] = "Client Informationen aktualisieren"; -$lang['stnv0004'] = "Benutze diese Funktion, wenn sich deine TS3 Daten geändert haben, wie z.B. dein Username."; -$lang['stnv0005'] = "Du musst hierfür mit dem TS3 Server verbunden sein!"; -$lang['stnv0006'] = "Aktualisieren"; -$lang['stnv0007'] = "Battle Area - Seiteninhalt"; -$lang['stnv0008'] = "Du kannst dich mit anderen Usern battle."; -$lang['stnv0009'] = "So lange das Battle läuft, wird die online Zeit bzw. aktive Zeit gewertet."; -$lang['stnv0010'] = "Wenn das Battle abgeschlossen ist, gewinnt der User, welcher die höchste online Zeit bzw. aktive Zeit hat.."; -$lang['stnv0011'] = "(Die Standard Battle Dauer ist 48 Stunden)"; -$lang['stnv0012'] = "Der Sieger erhält einen Preis, welcher zu einem eigens bestimmten Zeitpunkt eingelöst werden kann."; -$lang['stnv0013'] = "Dieser wird auf der Seite Meine Statistiken angezeigt."; -$lang['stnv0014'] = "(Kann sein ein Zeit Boost(2x) für 8 Stunden, instant online Zeit (4 Stunden), etc."; -$lang['stnv0015'] = "Diese Boosts können benutzt werden, um z.B. die Chancen auf den Top User der Woche zu erhöhen."; -$lang['stnv0016'] = "nicht verfügbar"; -$lang['stnv0017'] = "Du bist nicht mit dem TS3 Server verbunden, daher können kein Daten angezeigt werden."; -$lang['stnv0018'] = "Bitte verbinde dich mit dem TS3 Server und aktualisiere anschließend die Session über den Aktualisierungs-Button oben rechts in der Ecke."; -$lang['stnv0019'] = "Statistiken - Inhaltserläuterung"; -$lang['stnv0020'] = "Diese Seite zeigt u.a. eine Übersicht deiner persönlichen Statistiken und Aktivität auf dem TS3 Server."; -$lang['stnv0021'] = "Die Informationen wurden gesammelt seit Beginn des Ranksystems, nicht seit Beginn des TS3 Servers."; -$lang['stnv0022'] = "Die Seite erhält ihre Daten aus einer Datenbank. Es ist also möglich, dass die angezeigten Werte von den live Werten abweichen."; -$lang['stnv0023'] = "Die Werte der online Zeit aller User per Woche bzw. Monat werden nur alle 15 Minuten berechnet. Alle anderen Werte sollten nahezu live sein (maximal wenige Sekunden verzögert)."; -$lang['stnv0024'] = "Ranksystem - Statistiken"; -$lang['stnv0025'] = "Anzahl Einträge"; -$lang['stnv0026'] = "alle"; -$lang['stnv0027'] = "Die Informationen auf dieser Seite scheinen veraltet! Es scheint, das Ranksystem ist nicht mehr mit dem TS3 verbunden."; -$lang['stnv0028'] = "(Du bist nicht zum TS3 verbunden!)"; -$lang['stnv0029'] = "Rank-Liste"; -$lang['stnv0030'] = "Ranksystem Info"; -$lang['stnv0031'] = "Über das Suchfeld können nach Teile im Clientnamen, der eindeutigen Client-ID und der Client-Datenbank-ID gesucht werden."; -$lang['stnv0032'] = "Es ist auch möglich bestimmte Filterregeln anzuwenden (siehe unterhalb). Der Filter wird auch im Suchfeld hinterlegt."; -$lang['stnv0033'] = "Kombinationen von Filter und einem Suchwert sind möglich. Trage hierfür den/die Filter gefolgt von dem Suchwert ein."; -$lang['stnv0034'] = "Auch ist es möglich mehrere Filter zu kombinieren. Trage diese einfach fortlaufend in das Suchfeld ein."; -$lang['stnv0035'] = "Beispiel:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Zeigt nur Clients an, welche ausgeschlossen sind (Client, Severgruppen oder Channel-Ausnahme)."; -$lang['stnv0037'] = "Zeigt nur Clients an, welche nicht ausgeschlossen sind."; -$lang['stnv0038'] = "Zeigt nur Clients an, welche online sind"; -$lang['stnv0039'] = "Zeigt nur Clients an, welche nicht online sind"; -$lang['stnv0040'] = "Zeigt nur Clients an, welche sich in einer bestimmten Servergruppe befinden. Stellt das aktuelle Level (Rang) dar.
Ersetze GROUPID mi der gewünschten Servergruppen ID."; -$lang['stnv0041'] = "Zeigt nur Clients an, welche dem ausgewählten 'zuletzt gesehen' Zeitraum entsprechen.
Ersetze OPERATOR mit '<' oder '>' oder '=' oder '!='.
Und ersetze TIME mit einem Zeitstempel (Timestamp) oder Datum mit im Format 'Y-m-d H-i' (Beispiel: 2016-06-18 20-25).
Vollständiges Beispiel: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Zeigt nur Clients an, welche sich im definierten Land befinden.
Ersetze TS3-COUNTRY-CODE mit dem gewünschten Land.
Für eine Liste der gültigen Ländercodes, bitte nach dem 'ISO 3166-1 alpha-2' googlen."; -$lang['stnv0043'] = "verbinde zum TS3"; -$lang['stri0001'] = "Ranksystem Informationen"; -$lang['stri0002'] = "Was ist das Ranksystem?"; -$lang['stri0003'] = "Ein TS3 Bot, der automatisch Servergruppen an User für online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar."; -$lang['stri0004'] = "Wer hat das Ranksystem erstellt?"; -$lang['stri0005'] = "Wann wurde das Ranksystem erstellt?"; -$lang['stri0006'] = "Erste Alpha Version: 05.10.2014."; -$lang['stri0007'] = "Erste Beta Version: 01.02.2015."; -$lang['stri0008'] = "Die neuste Version kannst du auf der Ranksystem Website finden."; -$lang['stri0009'] = "Wie wurde das Ranksystem erstellt?"; -$lang['stri0010'] = "Das Ranksystem basiert auf"; -$lang['stri0011'] = "Es nutzt weiterhin die folgenden Programmbibliotheken:"; -$lang['stri0012'] = "Ein spezieller Dank ergeht an:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - für die russische Übersetzung"; -$lang['stri0014'] = "Bejamin Frost - für die Initialisierung des Bootstrap Designs"; -$lang['stri0015'] = "ZanK & jacopomozzy - für die italienische Übersetzung"; -$lang['stri0016'] = "DeStRoYzR & Jehad - für die Initiierung der arabischen Übersetzung"; -$lang['stri0017'] = "SakaLuX - für die Initiierung der rumänischen Übersetzung"; -$lang['stri0018'] = "0x0539 - für die Initiierung der niederländischen Übersetzung"; -$lang['stri0019'] = "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'] = "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"; -$lang['sttw0004'] = "Top 10 im Vergleich"; -$lang['sttw0005'] = "Stunden (definiert 100 %)"; -$lang['sttw0006'] = "%s Stunden (%s%)"; -$lang['sttw0007'] = "Top 10 Statistiken"; -$lang['sttw0008'] = "Top 10 vs Andere; Online Zeit"; -$lang['sttw0009'] = "Top 10 Vs Others; Aktive Zeit"; -$lang['sttw0010'] = "Top 10 Vs Others; Inaktive Zeit"; -$lang['sttw0011'] = "Top 10 (in Stunden)"; -$lang['sttw0012'] = "Andere %s User (in Stunden)"; -$lang['sttw0013'] = "mit %s %s aktive Zeit"; -$lang['sttw0014'] = "Stunden"; -$lang['sttw0015'] = "Minuten"; -$lang['sttm0001'] = "des Monats"; -$lang['stta0001'] = "aller Zeiten"; -$lang['stve0001'] = "\nHallo %s,\num dich für das Ranksystem zu verifizieren klicke bitte auf den folgenden Link:\n[B]%s[/B]\n\nSollte dieser nicht funktionieren, so kannst du auch den folgenden Token manuell eintragen:\n%s\n\nHast du diese Nachricht nicht angefordert, so ignoriere sie bitte. Bei wiederholtem Erhalt kontaktiere bitte einen Admin."; -$lang['stve0002'] = "Eine Nachricht mit dem Token wurde auf dem TS3 Server an dich versandt."; -$lang['stve0003'] = "Bitte trage den token ein, welchen du auf dem TS3 server erhalten hast. Wenn du keine Nachricht bekommen hast, überprüfe, ob du die richtige eindeutige ID gewählt hast."; -$lang['stve0004'] = "Der eingegebene Token stimmt nicht überein! Bitte versuche es erneut."; -$lang['stve0005'] = "Gratulation, du wurdest erfolgreich verifiziert! Du kannst nun fortfahren..."; -$lang['stve0006'] = "Ein unbekannter Fehler ist passiert. Bei wiederholtem Vorkommen benachrichtige bitte einen Admin."; -$lang['stve0007'] = "Verifizier-Prozess (über TeamSpeak)"; -$lang['stve0008'] = "Wähle hier deine eindeutige Client-ID auf dem TS3 Server um dich zu verifizieren."; -$lang['stve0009'] = " -- wähle dich aus -- "; -$lang['stve0010'] = "Du wirst einen Token auf dem TS3 Server erhalten, welcher hier einzugeben ist:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verifizieren"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sek."; -$lang['time_min'] = "Min."; -$lang['time_hour'] = "Std."; -$lang['time_day'] = "Tag(e)"; -$lang['upgrp0001'] = "Es ist die Servergruppe mit der ID %s im Parameter '%s' (Webinterface -> Kern) konfiguriert, jedoch ist diese Servergruppe nicht (mehr) auf dem TS3 Server vorhanden! Bitte korrigiere dies oder es können hierdurch Fehler auftreten!"; -$lang['upgrp0002'] = "Lade neues ServerIcon herunter"; -$lang['upgrp0003'] = "Fehler beim Schreiben des ServerIcons."; -$lang['upgrp0004'] = "Fehler beim Herunterladen des ServerIcons vom TS3 Server: "; -$lang['upgrp0005'] = "Fehler beim Löschen des ServerIcons."; -$lang['upgrp0006'] = "Das ServerIcon wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt."; -$lang['upgrp0007'] = "Fehler beim Schreiben des Servergruppen-Icons bei Gruppe %s mit ID %s."; -$lang['upgrp0008'] = "Fehler beim Herunterladen des Servergruppen-Icons bei Gruppe %s mit ID %s: "; -$lang['upgrp0009'] = "Fehler beim Löschen des Servergruppen-Icons bei Gruppe %s mit ID %s."; -$lang['upgrp0010'] = "Das Icon der Servergruppe %s mit der ID %s wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt."; -$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]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]."; -$lang['upusrerr'] = "Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!"; -$lang['upusrinf'] = "User %s wurde erfolgreich benachrichtigt."; -$lang['user'] = "Benutzername"; -$lang['verify0001'] = "Bitte stelle sicher, dass du wirklich mit dem TS3 server verbunden bist!"; -$lang['verify0002'] = "Betrete, falls noch nicht geschehen, den Ranksystem %sVerifizierungs-Channel%s!"; -$lang['verify0003'] = "Wenn du wirklich zum TS3 Server verbunden bist, kontaktiere bitte dort einen Admin.
Dieser muss einen Verifizierungs-Channel auf dem TS3 Server erstellen. Danach ist der erstellte Channel im Ranksystem zu hinterlegen, was nur ein Admin tun kann.
Weitere Informationen findet dieser im Webinterface (-> Kern) des Ranksystems.

Bis dahin ist leider keine Verifizierung für das Ranksystem möglich! Sorry :( "; -$lang['verify0004'] = "Keine User im Verifizierungs-Channel gefunden..."; -$lang['wi'] = "Webinterface"; -$lang['wiaction'] = "ausführen"; -$lang['wiadmhide'] = "unterdrücke ausgeschl. User"; -$lang['wiadmhidedesc'] = "Hiermit können vom Ranksystem ausgeschlossene User in der folgenden Auswahl unterdrückt werden."; -$lang['wiadmuuid'] = "admin ID"; -$lang['wiadmuuiddesc'] = "Gebe hier die eindeutige Client-ID ein; als Administrator des Ranksystems.
Mehrere Admins können auch erfasst werden -> Komma getrennt!

Diese wird benötigt um das Passwort des Webinterfaces resetten zu können.
Wenn hier keine eindeutige Client-ID angegeben ist, ist es nicht möglich das Passwort im Bedarfsfall zurückzusetzen.

Auch sind hier hinterlegte Admins berechtigt, Admin-Befehle an den Bot zu schicken (!reboot, !shutdown, !update)."; -$lang['wiboost'] = "Boost"; -$lang['wiboostdesc'] = "Gebe einen User auf dem TeamSpeak Server eine Servergruppe (ist manuell zu erstellen), welche hier für das Ranksystem als Boost Gruppe deklariert werden kann. Definiere hierfür noch einen Faktor (z.B. 2x) und eine Zeit, wie lange der Boost gewährt werden soll.
Umso höher der Faktor, umso schneller erreicht ein User den nächst höheren Rang.
Ist die Zeit abgelaufen, so wird dem betroffenen User die Servergruppe automatisch entfernt. Die Zeit beginnt in dem Moment zu laufen, in dem der User die Servergruppe erhält.

Servergruppen-ID=> Faktor=> Zeit (in Sekunden)

Beispiel:
12=>2=>6000,13=>3=>2500,14=>5=>600

Hier werden den Usern in der Servergruppe mit der ID 12 dem Faktor 2 für 6000 Sekunden, den Usern in der Servergruppe 13 dem Faktor 3 für 2500 Sekunden gewährt, und so weiter..."; -$lang['wibot1'] = "Der Ranksystem Bot sollte gestoppt sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; -$lang['wibot2'] = "Der Ranksystem Bot sollte gestartet sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; -$lang['wibot3'] = "Der Ranksystem Bot sollte neu gestartet sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; -$lang['wibot4'] = "Start / Stop Ranksystem Bot"; -$lang['wibot5'] = "Bot starten"; -$lang['wibot6'] = "Bot stoppen"; -$lang['wibot7'] = "Bot neustarten"; -$lang['wibot8'] = "Ranksystem Log (Auszug):"; -$lang['wibot9'] = "Bitte fülle alle erforderlichen Felder aus, bevor der Ranksystem Bot gestartet werden kann!"; -$lang['wichdbid'] = "Client-Datenbank-ID Reset"; -$lang['wichdbiddesc'] = "Setzt die online Zeit eines Users zurück, wenn sich seine TeamSpeak Client-Datenbank-ID ändert.

Beispiel:
Wird ein Client vom TeamSpeak Server gelöscht, so erhält er mit der nächsten Verbindung zum Server eine neue Client-Datenbank-ID."; -$lang['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Kern-Einstellungen auf Richtigkeit. Besonders sollte die Einstellung 'Rangsteigerung' geprüft werden!"; -$lang['wichpw1'] = "Das alte Passwort ist falsch! Versuche es erneut."; -$lang['wichpw2'] = "Die neuen Passwörter stimmen nicht überein. Versuche es erneut."; -$lang['wichpw3'] = "Das Passwort für das Webinterface wurde erfolgreich geändert. Anforderung von IP %s."; -$lang['wichpw4'] = "Passwort ändern"; -$lang['widaform'] = "Datumsformat"; -$lang['widaformdesc'] = "Gebe ein Datumsformat zur Anzeige vor.

Beispiel:
%a Tage, %h Std., %i Min., %s Sek."; -$lang['widbcfgsuc'] = "Datenbank Einstellungen erfolgreich gespeichert."; -$lang['widbcfgerr'] = "Fehler beim Speichern der Datenbank Einstellungen! Verbindung zur Datenbank oder speichern der 'other/dbconfig.php' nicht möglich."; -$lang['widelcld'] = "lösche Clients"; -$lang['widelcldgrp'] = "Servergruppen zurücksetzen"; -$lang['widelcldgrpdesc'] = "Das Ranksystem merkt sich die vergebenen Servergruppen, sodass nicht mit jedem Lauf der worker.php diese nochmals überprüft bzw. vergeben werden.

Mit dieser Funktion ist es möglich, dieses Wissen einmalig zurückzusetzen. Dadurch versucht das Ranksystem alle User (welche auf dem TS3 Server online sind) in die aktuell gültige Servergruppe zu setzen.
Für jeden User, welcher eine Servergruppe erhält bzw. in der vorhanden verbleibt, wird die Wissensdatenbank wie zu Anfang beschrieben wieder aufgebaut.

Diese Funktion kann hilreich sein, wenn sich User nicht in der Servergruppe befinden, welche für die jeweilige online Zeit vorgesehen ist.

Achtung: Bitte diese Funktion in einem Moment ausführen, in dem für nächsten Minuten kein Rankup ansteht!!! Das Ranksystem kann dann nämlich die alten Gruppen entfernen, da es hiervon nichts mehr weiß ;-)"; -$lang['widelclddesc'] = "Lösche zuvor selektierte User aus der Ranksystem Datenbank.

Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; -$lang['widelsg'] = "entferne aus Servergruppen"; -$lang['widelsgdesc'] = "Wähle, ob Clients auch aus den Servergruppen entfernt werden sollen, wenn sie aus der Ranksystem Datenbank gelöscht werden.

Es werden nur Servergruppen beachtet, welche das Ranksystem betreffen!"; -$lang['wideltime'] = "Löschzeitraum"; -$lang['wideltimedesc'] = "Lösche alte Clients aus aus der Ranksystem Datenbank.
Gib eine Zeit in Sekunden ein, welche ein User nicht mehr online war, damit er gelöscht wird.

0 - löscht alle User aus dem Ranksystem

Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; -$lang['wiexcid'] = "Channel-Ausnahmen"; -$lang['wiexciddesc'] = "Eine mit Komma getrennte Liste von den Channel-IDs, die nicht am Ranksystem teilnehmen sollen.

Halten sich User in einem der aufgelisteten Channel auf, so wird die Zeit darin vollständig ignoriert. Es wird weder die online Zeit, noch die Idle Zeit gewertet.

Sinn macht diese Funktion mit dem Modus 'online Zeit', da hier z.B. AFK Räume ausgeschlossen werden können.
Mit dem Modus 'aktive Zeit' ist diese Funktion sinnlos, da z.B. in AFK Räumen die Idle-Zeit abgezogen und somit sowieso nicht gewertet würde.

Befindet sich ein User in einem ausgeschlossenen Channel, so wird er für diese Zeit als 'vom Ranksystem ausgeschlossen' vermerkt. Der User erscheint damit auch nicht mehr in der Liste 'stats/list_rankup.php', sofern ausgeschlossene Clients dort nicht angezeigt werden sollen (Statistik Seite - ausgeschl. Clients)."; -$lang['wiexgrp'] = "Servergruppen-Ausnahmen"; -$lang['wiexgrpdesc'] = "Eine mit Komma getrennte Liste von Servergruppen-IDs, welche nicht am Ranksystem teilnehmen sollen.

User in mindestens einer dieser Gruppen sind von Rangsteigerungen ausgenommen."; -$lang['wiexres'] = "Modus Ausnahmen"; -$lang['wiexres1'] = "Standard (bewerte Zeit)"; -$lang['wiexres2'] = "pausiere Zeit"; -$lang['wiexres3'] = "resette Zeit"; -$lang['wiexresdesc'] = "Es gibt drei Möglichkeiten wie mit den Ausnahmen umgegangen werden kann. In jedem Fall wird die Rangsteigerung deaktiviert (Vergabe der Servergruppe). Als verschiedene Modi kann ausgewählt werden, wie die auf dem Server verbrachte Zeit von Usern (welche ausgeschlossen sind) behandelt werden soll.

1) Standard (bewerte Zeit): Im Standard wertet das Ranksystem auch die online/aktive Zeit von Usern, welche vom Ranksystem ausgeschlossen sind (Client-/Servergruppenausnahme). Mit Ausschluss aus dem Ranksystem ist nur das Setzen des Rangs (Servergruppe) deaktiviert. Das heißt, wenn ein User nicht mehr ausgeschlossen ist, würde er einer Servergruppe abhängig seiner gesammelten Zeit (z.B. Level 3) zugeordnet.

2) pausiere Zeit: Bei dieser Option wird die online/aktive Zeit eingefrorren (pausiert) in dem Moment, in dem der User ausgenommen wird. Nach Rücknahme der Ausnahme (entfernen der ausgeschlossenen Servergruppe oder entfernen der Ausnahmeregel) läuft die online/aktive Zeit weiter.

3) resette Zeit: Mit dieser Funktion wird die gesammelte online/aktive Zeit in dem Moment auf Null zurückgesetzt, in dem der User nicht mehr ausgeschlossen ist (durch Entfernen der ausgeschlossenen Servergruppe oder entfernen der Ausnahmeregel). Die auf dem Server verbrachte Zeit wird hierbei zunächst weiterhin gewertet bis der Reset erfolgt.


Die Channel-Ausnahmen spielen hier keine Rolle, da diese Zeit immer ignoriert wird (entspricht Modus pausiere Zeit)."; -$lang['wiexuid'] = "Client-Ausnahmen"; -$lang['wiexuiddesc'] = "Eine mit Komma getrennte Liste von eindeutigen Client-IDs, welche nicht am Ranksystem teilnehmen sollen.

Aufgelistete User sind von Rangsteigerungen ausgenommen."; -$lang['wigrptime'] = "Rangsteigerung Definition"; -$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden)=>Servergruppen ID

Entscheidend hierfür ist die 'online Zeit' bzw. die 'aktive Zeit' des Users, je nach Einstellung des Modus.

Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.

Die Zeiten sind kummulativ zu hinterlegen.

Beispiel:
60=>9,120=>10,180=>11

Hier werden die User nach 60 Sekunden in die Servergruppe 9, nach wiederum 60 Sekunden in die Servergruppe 10, usw..., hinzugefügt."; -$lang['wihladm'] = "List Rankup (Admin-Modus)"; -$lang['wihladm1'] = "Zeit zu User hinzufügen"; -$lang['wihlcfg'] = "Kern-Einstellungen"; -$lang['wihldb'] = "Datenbank"; -$lang['wihlmsg'] = "Nachrichten"; -$lang['wihlsty'] = "Statistik Seite"; -$lang['wihlts'] = "TeamSpeak"; -$lang['wihlvs'] = "Sonstiges"; -$lang['wiignidle'] = "Ignoriere Idle"; -$lang['wiignidledesc'] = "Lege eine Zeit fest, bis zu der die Idlezeit eines Users ignoriert werden soll.

Wenn ein Client nichts auf dem Server unternimmt (=Idle), wird diese Zeit vom Ranksystem notiert. Mit dieser Funktion wird die Idlezeit eines User bis zur definierten Grenze nicht als Idlezeit gewertet. Erst wenn der definierte Wert überschritten wird, zählt sie ab diesem Zeitpunkt für das Ranksystem auch als Idlezeit.

Diese Funktion spielt nur in Verbindung mit dem Modus 'aktive Zeit' eine Rolle.
Sinn der Funktion ist es z.B. die Zeit des Zuhörens bei Gesprächen als Aktivität zu werten.

0= Deaktivieren der Funktion

Beispiel:
Ignoriere Idle= 600 (Sekunden)
Ein Client hat einen Idle von 8 Minunten.
Folge:
Die 8 Minuten Idle werden ignoriert und er erhält demnach diese Zeit als aktive Zeit. Wenn sich die Idlezeit nun auf über 12 Minuten erhöht, so wird die Zeit über 10 Minuten, also 2 Minuten, auch als Idlezeit gewertet."; -$lang['wilog'] = "Log-Pfad"; -$lang['wilogdesc'] = "Pfad in dem das Logfile des Ranksystems geschrieben werden soll.

Beispiel:
/var/logs/ranksystem/

Beachte, dass der Webuser Schreibrechte in dem Verzeichnis hat."; -$lang['wilogout'] = "Abmelden"; -$lang['wimsgmsg'] = "Nachricht"; -$lang['wimsgmsgdesc'] = "Definiere eine Nachricht, welche ein User erhält, wenn er im Rang aufsteigt.

Die Nachricht wird über TS3 als private Text-Nachricht versendet. Daher können alle bekannten BB-Codes genutzt werden, die auch sonst in Text-Nachrichten funktionieren.
http://ts-n.net/lexicon.php?showid=97#lexindex

Weiterhin kann die bisher verbrachte Zeit mittels Argumenten angegeben werden:
%1\$s - Tage
%2\$s - Stunden
%3\$s - Minuten
%4\$s - Sekunden
%5\$s - Name der erreichten Servergruppe
%6$s - Name des Users (Empfänger)

Beispiel:
Hey,\\ndu bist im Rang gestiegen, da du bereits %1\$s Tage, %2\$s Stunden und %3\$s Minuten mit unserem TS3 Server verbunden bist.[B]Weiter so![/B] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Definiere eine Nachricht, welche auf der /stats/ Seite unter den Server News gezeigt wird.

Es können die regulären HTML Funktionen zum Editieren des Layouts benutzt werden.

Beispiel:
<b> - für Fettschrift
<u> - zum Unterstreichen
<i> - für Kursiv
<br> - für einen Zeilenumbruch"; -$lang['wimsgusr'] = "Rangsteigerung-Info"; -$lang['wimsgusrdesc'] = "Informiere den User per privater Textnachricht über seine Rangsteigerung."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Datenbank"; -$lang['winav3'] = "Kern"; -$lang['winav4'] = "Anderes"; -$lang['winav5'] = "Nachrichten"; -$lang['winav6'] = "Statistik Seite"; -$lang['winav7'] = "Administration"; -$lang['winav8'] = "Start / Stop Bot"; -$lang['winav9'] = "Update verfügbar!"; -$lang['winav10'] = "Bitte nutze das Webinterface nur via %s HTTPS%s Eine Verschlüsselung ist wichtig um die Privatsphäre und Sicherheit zu gewährleisten.%sUm HTTPS nutzen zu können, muss der Webserver eine SSL Verbindung unterstützen."; -$lang['winav11'] = "Bitte hinterlege die eindeutige Client-ID des Admins des Ranksystems (Anderes -> admin ID). Dies ist sehr wichtig im Falle des Verlustes der Logindaten für das Webinterface."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Befehl \"!nextup\""; -$lang['winxinfodesc'] = "Erlaubt einen User auf dem TeamSpeak3 Server den Befehl \"!nextup\" dem Ranksystem (Query) Bot als private Textnachricht zu schreiben.

Als Antwort erhält der User eine Nachricht mit der benötigten Zeit zur nächsten Rangsteigerung.

deaktiviert - Die Funktion ist deaktiviert. Der Befehl '!nextup' wird ignoriert.
erlaubt - nur nächsten Rang - Gibt die benötigte Zeit zum nächsten Rang zurück.
erlaubt - alle nächsten Ränge - Gibt die benötigte Zeit für alle höheren Ränge zurück.

Unter folgender URL ein Beispiel zum Setzen einer Verlinkung mit \"client://\" für den Ranksystem (Query) Bot, da nicht unbedingt für alle die Query-User sichtbar sind:
http://ts-n.net/lexicon.php?showid=98#lexindex

Dieser kann dann mit dem [URL] Tag in einem Channel als Link eingefügt werden.
http://ts-n.net/lexicon.php?showid=97#lexindex"; -$lang['winxmode1'] = "deaktiviert"; -$lang['winxmode2'] = "erlaubt - nur nächster Rang"; -$lang['winxmode3'] = "erlaubt - alle nächsten Ränge"; -$lang['winxmsg1'] = "Nachricht (Standard)"; -$lang['winxmsgdesc1'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"nextup\" erhält.

Argumente:
%1$s - Tage zur nächsten Rangsteigerung
%2$s - Stunden zur nächsten Rangsteigerung
%3$s - Minuten zur nächsten Rangsteigerung
%4$s - Sekunden zur nächsten Rangsteigerung
%5\$s - Name der nächsten Servergruppe (Rank)
%6$s - Name des Users (Empfänger)

Beispiel:
Deine nächste Rangsteigerung ist in %1$s Tagen, %2$s Stunden, %3$s Minuten und %4$s Sekunden. Die nächste Servergruppe, die du erreichst ist [B]%5$s[/B]."; -$lang['winxmsg2'] = "Nachricht (Höchste)"; -$lang['winxmsgdesc2'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"nextup\" erhält, wenn der User bereits im höchsten Rang ist.

Argumente:
%1$s - Tage zur nächsten Rangsteigerung
%2$s - Stunden zur nächsten Rangsteigerung
%3$s - Minuten zur nächsten Rangsteigerung
%4$s - Sekunden zur nächsten Rangsteigerung
%5vs - Name der nächsten Servergruppe (Rank)
%6$s - Name des Users (Empfänger)

Beispiel:
Du hast bereits den höchsten Rang erreicht seit %1$s Tagen, %2$s Stunden, %3$s Minuten und %4$s Sekunden."; -$lang['winxmsg3'] = "Nachricht (Ausnahme)"; -$lang['winxmsgdesc3'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"nextup\" erhält, wemm der User vom Ranksystem ausgeschlossen ist.

Argumente:
%1$s - Tage zur nächsten Rangsteigerung
%2$s - Stunden zur nächsten Rangsteigerung
%3$s - Minuten zur nächsten Rangsteigerung
%4$s - Sekunden zur nächsten Rangsteigerung
%5$s - Name der nächsten Servergruppe (Rank)
%6$s - Name des Users (Empfänger)

Beispiel:
Du bist vom Ranksystem ausgeschlossen. Wenn du eine Teilnahme am Ranksystem wünschst, kontaktiere einen Admin auf dem TS3 Server."; -$lang['wirtpw1'] = "Sorry Bro, du hast vergessen die admin ID zuvor im Webinterface zu hinterlegen. Nun besteht keine Möglichkeit das Passwort zurückzusetzen!"; -$lang['wirtpw2'] = "Admin ID konnte auf dem TS3 Server nicht gefunden werden. Du musst auf dem TS3 mit der hinterlegten admin ID online sein."; -$lang['wirtpw3'] = "Deine IP Adresse stimmt nicht mit der IP des Admins auf dem TS3 überein. Bitte stelle sicher, dass du die gleiche IP Adresse auf dem TS3 Server nutzt wie auch hier auf dieser Seite (und auch das gleiche Protokoll IPv4 / IPv6)."; -$lang['wirtpw4'] = "\nDas Passwort für das Webinterface wurde erfolgreich zurückgesetzt.\nUsername: %s\nPasswort: [B]%s[/B]\n\n%sHier%s einloggen."; -$lang['wirtpw5'] = "Es wurde eine private Nachricht mit dem neuen Passwort an den Admin auf dem TS3 Server geschickt."; -$lang['wirtpw6'] = "Das Passwort für das Webinterface wurde erfolgreich zurückgesetzt. Anforderung von IP %s."; -$lang['wirtpw7'] = "Password zurücksetzen"; -$lang['wirtpw8'] = "Hier kannst du das Passwort für das Webinterface zurücksetzen."; -$lang['wirtpw9'] = "Folgende Dinge werden für den Reset benötigt:"; -$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."; -$lang['wishcolas'] = "aktuelle Servergruppe"; -$lang['wishcolasdesc'] = "Zeige Spalte 'aktuelle Servergruppe' in der stats/list_rankup.php"; -$lang['wishcolat'] = "aktive Zeit"; -$lang['wishcolatdesc'] = "Zeige Spalte 'ges. aktive Zeit' in der stats/list_rankup.php"; -$lang['wishcolcld'] = "Client-Name"; -$lang['wishcolclddesc'] = "Zeige Spalte 'Client-Name' in der stats/list_rankup.php"; -$lang['wishcoldbid'] = "Datenbank-ID"; -$lang['wishcoldbiddesc'] = "Zeige Spalte 'Client-Datenbank-ID' in der stats/list_rankup.php"; -$lang['wishcolgs'] = "aktuelle Gruppe seit"; -$lang['wishcolgsdesc'] = "Zeige Spalte 'aktuelle Gruppe seit' in der stats/list_rankup.php"; -$lang['wishcolit'] = "idle Zeit"; -$lang['wishcolitdesc'] = "Zeige Spalte 'ges. idle Zeit' in der stats/list_rankup.php"; -$lang['wishcolls'] = "zuletzt gesehen"; -$lang['wishcollsdesc'] = "Zeige Spalte 'zuletzt gesehen' in der stats/list_rankup.php"; -$lang['wishcolnx'] = "nächster rank up"; -$lang['wishcolnxdesc'] = "Zeige Spalte 'nächster Rang' in der stats/list_rankup.php"; -$lang['wishcolot'] = "online Zeit"; -$lang['wishcolotdesc'] = "Zeige Spalte 'ges. online Zeit' in der stats/list_rankup.php"; -$lang['wishcolrg'] = "Rang"; -$lang['wishcolrgdesc'] = "Zeige Spalte 'Rang' in der stats/list_rankup.php"; -$lang['wishcolsg'] = "nächste Servergruppe"; -$lang['wishcolsgdesc'] = "Zeige Spalte 'nächste Servergruppe' in der stats/list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Zeige Spalte 'eindeutige Client-ID' in der stats/list_rankup.php"; -$lang['wishexcld'] = "ausgeschl. Clients"; -$lang['wishexclddesc'] = "Zeige User in der list_rankup.php, welche ausgeschlossen sind und demnach nicht am Ranksystem teilnehmen."; -$lang['wishexgrp'] = "ausgeschl. Servergruppen"; -$lang['wishexgrpdesc'] = "Zeige User in der list_rankup.php, welche über die 'Servergruppen-Ausnahmen' nicht am Ranksystem teilnehmen."; -$lang['wishhicld'] = "User in höchestem Rang"; -$lang['wishhiclddesc'] = "Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben."; -$lang['wishnav'] = "Zeige Seitennavigation"; -$lang['wishnavdesc'] = "Zeige die Seitennavigation auf der 'stats/' Seite.

Wenn diese Option deaktiviert ist, wird die Seitennavigation auf der Stats Seite ausgeblendet.
So kannst du jede einzelne Seite z.B. die 'stats/list_rankup.php' besser als Frame in eine bestehende Website bzw. Forum einbinden."; -$lang['wisupidle'] = "Modus"; -$lang['wisupidledesc'] = "Es gibt zwei Ausprägungen, wie Zeiten gewertet werden können und dann für eine Rangsteigerung herangezogen werden.

1) online Zeit: Hier wird die reine online Zeit des Users beachtet (siehe Spalte 'ges. online Zeit' in der stats/list_rankup.php).

2) aktive Zeit: Hier wird von der online Zeit eines Users noch die inaktive Zeit (Idle) abgezogen (siehe Spalte 'ges. aktive Zeit' in der stats/list_rankup.php).


Eine Umstellung des Modus mit einer bereits länger laufenden Datenbank wird nicht empfohlen, kann aber funktionieren."; -$lang['wisvconf'] = "speichern"; -$lang['wisvsuc'] = "Änderungen erfolgreich gesichert!"; -$lang['wisvres'] = "Damit die Änderungen wirksam werden ist ein Neustart des Ranksystems erforderlich! %s"; -$lang['witime'] = "Zeitzone"; -$lang['witimedesc'] = "Wähle die Zeitzone, die für den Sever gilt."; -$lang['wits3avat'] = "Avatar Verzögerung"; -$lang['wits3avatdesc'] = "Definiere eine Zeit in Sekunden als Verzögerung zum Download geänderter TS3 Avatare.
Aktualisierte bzw. geänderte Avatare werden dann erst X Sekunden nach Änderung/Upload auf dem TS3, herunter geladen.

Diese Funktion ist speziell bei (Musik)Bots nützlich, welche ihr Avatare stetig ändern."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "Die channel-ID, mit der sich der Bot verbindet.

In diesem Channel wechselt der Bot nach dem Verbinden mit dem TeamSpeak Server."; -$lang['wits3host'] = "TS3 Hostadresse"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server Adresse
(IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "Mit dem Slowmode werden die Query-Anfragen an den TeamSpeak Server reduziert. Dies schützt vor einem Ban aufgrund von flooding.
TeamSpeak Query Befehle werden mit dieser Funktion verzögert abgeschickt.

!!! AUCH REDUZIERT DER SLOWMODE DIE CPU USAGE !!!

Die Aktivierung ist nicht empfohlen, wenn nicht benötigt. Die Verzögerung (delay) erhöht die Laufzeit eines Durchgangs des Bots, dadurch wird er unpräziser. Umso höher der Delay, umso unpräziser sind die Ergebnisse.

Die letzte Spalte zeigt die benötigte Laufzeit für einen Durchgang (in Sekunden):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

Folglich werden die Werte (Zeiten) im ultra delay um ca. 65 Sekunden ungenau! Je nach Umfang, was zu tun ist bzw. Servergröße noch höher!"; -$lang['wits3qnm'] = "Botname"; -$lang['wits3qnm2'] = "2. Botname"; -$lang['wits3qnm2desc'] = "Ein zweiter Botname, falls der erste bereits genutzt wird."; -$lang['wits3qnmdesc'] = "Der Name, mit dem die Query-Verbindung augebaut werden soll.
Der Name kann frei gewählt werden."; -$lang['wits3querpw'] = "TS3 Query-Passwort"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 Query Passwort
Passwort des Query Benutzers"; -$lang['wits3querusr'] = "TS3 Query-Benutzer"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 Query Benutzername
Standard ist serveradmin
Natürlich kann auch ein gesonderter Query-Benutzer erstellt und genutzt werden.
Die benötigten Rechte sind hier aufgelistet:
http://ts-n.net/ranksystem.php"; -$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['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."; + wurde nun zum Ranksystem hinzugefügt."; +$lang['brute'] = "Es wurden einige fehlgeschlagene Login-Versuche festgestellt. Blocke login für 300 Sekunden! Letzter Versuch von IP %s."; +$lang['changedbid'] = "User %s (eindeutige Client-ID: %s) hat eine neue TeamSpeak Client-Datenbank-ID (%s). Ersetze die alte Client-Datenbank-ID (%s) und setze die gesammelte Zeiten zurück"; +$lang['crawl'] = "Scanne nach verbundenen Usern und sammle die online Zeit..."; +$lang['clean'] = "Scanne nach Usern, welche zu löschen sind..."; +$lang['cleanc'] = "Clientlöschung"; +$lang['cleancdesc'] = "Mit dieser Funktion werden alte Clients aus dem Ranksystem gelöscht.

Hierzu wird die TeamSpeak Datenbank mit dem Ranksystem abgeglichen. Clients, welche nicht mehr in der TeamSpeak Datenbank existieren, werden aus dem Ranksystem gelöscht.

Diese Funktion kann nur genutzt werden, wenn der 'Slowmode' deaktiviert ist!


Zur automatischen Bereinigung der TeamSpeak Datenbank kann der ClientCleaner genutzt werden:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Es wurden %s Clients aus der Ranksystem-Datenbank gelöscht, da sie nicht mehr in der TeamSpeak Datenbank vorhanden sind."; +$lang['cleanno'] = "Es gab nichts zu löschen..."; +$lang['cleanp'] = "Löschintervall"; +$lang['cleanpdesc'] = "Bestimme einen Intervall, wie oft die 'Clientlöschung' laufen soll.

Angabe der Zeit in Sekunden!

Empfohlen wird die Clientlöschung nur einmal am Tag laufen zu lassen, da für größere Datenbanken die Laufzeit extrem steigt."; +$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 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['day'] = "%s Tag"; +$lang['days'] = "%s Tage"; +$lang['dbconerr'] = "Verbindung zur Datenbank gescheitert: "; +$lang['delcldgrpif'] = "Fehler beim Löschen der Servergruppen aus der Datenbank: %s"; +$lang['delcldgrpsc'] = "Knowledge der Servergruppen für %s User erfolgreich gelöscht."; +$lang['delclientsif'] = "%s Clients aus der Ranksystem Datenbank gelöscht!"; +$lang['delclientssc'] = "%s Clients aus der Ranksystem Datenbank erfolgreich gelöscht!"; +$lang['errcsrf'] = "CSRF Token ist inkorrekt (=Sicherheitsprüfung fehlgeschlagen)! Bitte lade die Seite neu und versuche es noch einmal! Bei wiederholtem Fehlerfall bitte den Session Cookie aus deinem Browser löschen und es noch einmal versuchen!"; +$lang['errgrpid'] = "Your changes were not saved to the database due errors occured. Please fix the problems and save your changes after!"; +$lang['errgrplist'] = "Fehler beim Abholen der Servergruppenliste: "; +$lang['errlogin'] = "Benutzername und/oder Passwort sind falsch! Versuche es erneut..."; +$lang['errlogin2'] = "Brute force Schutz: Bitte versuche es in %s Sekunden erneut!"; +$lang['errlogin3'] = "Brute force Schutz: Zu viele Fehlversuche. Für 300 Sekunden gesperrt!"; +$lang['error'] = "Fehler "; +$lang['errorts3'] = "TS3 Fehler: "; +$lang['errperm'] = "Bitte überprüfe die Dateiberechtigungen für das Verzeichnis '%s'!"; +$lang['errremgrp'] = "Fehler beim Entfernen des Users mit der eindeutigen Client-ID %s aus der Servergruppe mit der Servergruppen-Datenbank-ID %s!"; +$lang['errremdb'] = "Fehler beim Löschen des Users mit der eindeutigen Client-ID %s aus der Ranksystem Datenbank!"; +$lang['errselusr'] = "Bitte wähle zumindest einen User!"; +$lang['errseltime'] = "Bitte trage eine online Zeit zum Hinzufügen ein!"; +$lang['errukwn'] = "Unbekannter Fehler aufgetreten!"; +$lang['errupcount'] = "Fehler beim Überschreiben der ges. online Zeit %s bei User mit der eindeutigen Client-ID %s!"; +$lang['highest'] = "höchster Rang erreicht"; +$lang['install'] = "Installation"; +$lang['instdb'] = "Installiere Datenbank"; +$lang['instdbsuc'] = "Datenbank %s wurde erfolgreich angelegt."; +$lang['insterr1'] = "ACHTUNG: Du versuchst gerade das Ranksystem zu installieren, allerdings existiert die Datenbank mit den Namen \"%s\" bereits.
Während der Installation wird die Datenbank zunächst vollständig gelöscht!
Stelle sicher, dass du das möchtest. Falls nein, wähle einen anderen Datenbank-Namen."; +$lang['insterr2'] = "PDO wird benötigt, scheint jedoch nicht installiert zu sein. Installiere PDO und versuche es erneut!"; +$lang['insterr3'] = "PHP exec wird benötigt, scheint jedoch deaktiviert zu sein. Bitte aktiviere PHP exec und versuche es erneut!"; +$lang['insterr4'] = "Deine PHP Version (%s) ist unter 5.5.0. Aktualisiere dein PHP und versuche es erneut!"; +$lang['insterr5'] = "SimpleXML wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere simpleXML und versuche es erneut!"; +$lang['insterr6'] = "PHP cURL wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere PHP cURL und versuche es erneut!"; +$lang['insterr7'] = "PHP Zip wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere PHP Zip und versuche es erneut!"; +$lang['insterr8'] = "PHP COM Extension (php_com_dotnet.dll) wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere PHP COM und versuche es erneut!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Die Datenbankkonfigurationen konnten nicht gespeichert werden! Bitte versehe die 'other/dbconfig.php' mit einem chmod 0777 (für Windows 'Vollzugriff') und versuche es anschließend erneut."; +$lang['isntwicfg2'] = "Konfiguriere Webinterface"; +$lang['isntwichm'] = "Schreibrechte fehlen für Verzeichnis \"%s\". Bitte setze auf dieses einen chmod 777 (für Windows 'Vollzugriff') und starte anschließend das Ranksystem erneut."; +$lang['isntwiconf'] = "Öffne das %s um das Ranksystem zu konfigurieren!"; +$lang['isntwidbhost'] = "DB Hostadresse:"; +$lang['isntwidbhostdesc'] = "Datenbank Server Adresse
(IP oder DNS)"; +$lang['isntwidbmsg'] = "Datenbank-Fehler: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc'] = "Name der Datenbank"; +$lang['isntwidbpass'] = "DB Passwort:"; +$lang['isntwidbpassdesc'] = "Passwort für die Datenbank"; +$lang['isntwidbtype'] = "DB Typ:"; +$lang['isntwidbtypedesc'] = "Datenbank Typ

Der benötigte PDO Treiber muss installiert sein.
Für mehr Informationen beachte die Anforderungen auf http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB Benutzer:"; +$lang['isntwidbusrdesc'] = "Username für die Datenbank"; +$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver!"; +$lang['isntwiusr'] = "Benutzer für das Webinterface wurde erfolgreich erstellt."; +$lang['isntwiusrcr'] = "Erstelle Webinterface-User"; +$lang['isntwiusrdesc'] = "Gib einen frei wählbaren Benutzer und ein Passwort für das Webinterface ein. Mit dem Webinterface wird das Ranksystem konfiguriert."; +$lang['isntwiusrh'] = "Zugang - Webinterface"; +$lang['listacsg'] = "aktuelle Servergruppe"; +$lang['listcldbid'] = "Client-Datenbank-ID"; +$lang['listexcept'] = "Keine, da ausgeschlossen"; +$lang['listgrps'] = "aktuelle Gruppe seit"; +$lang['listnick'] = "Client-Name"; +$lang['listnxsg'] = "nächste Servergruppe"; +$lang['listnxup'] = "nächster Rang"; +$lang['listrank'] = "Rang"; +$lang['listseen'] = "zuletzt gesehen"; +$lang['listsuma'] = "ges. aktive Zeit"; +$lang['listsumi'] = "ges. idle Zeit"; +$lang['listsumo'] = "ges. online Zeit"; +$lang['listuid'] = "eindeutige Client-ID"; +$lang['login'] = "Login"; +$lang['msg0001'] = "eingesetzte Version: %s"; +$lang['msg0002'] = "Verfügbare Befehle sind:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t erhalte Liste der Befehle\n[B]!version[/B]\t\t\t\t\t\t\t\t erhalte die aktuelle Version\n[B]!update[/B], [B]!checkupdate[/B]\t\t\tprüfe auf neue Version und update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t bereinge User-Datenbank\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t erhalte die Zeit zur nächsten Rangsteigerung\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\tden Ranksystem bot neu starten\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t den Ranksystem Bot stoppen"; +$lang['msg0003'] = "Du bist nicht berechtigt diesen Befehl abzusetzen!"; +$lang['msg0004'] = "Client %s (%s) fordert Abschaltung."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Client %s (%s) fordert Neustart."; +$lang['msg0008'] = "Update check erfolgt. Wenn eine neue Version bereit steht, erfolgt das Update unverzüglich."; +$lang['msg0009'] = "Die Bereinigung der Userdatenbank wurde gestartet. Für mehr Informationen werfe einen Blick in die Ranksystem-Log."; +$lang['nocount'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) ist ein Query-User oder ist mehrmals online (nur erste Verbindung zählt) -> diese wird nicht gewertet!"; +$lang['noentry'] = "Keine Einträge gefunden.."; +$lang['pass'] = "Passwort"; +$lang['pass2'] = "Passwort ändern"; +$lang['pass3'] = "altes Passwort"; +$lang['pass4'] = "neues Passwort"; +$lang['pass5'] = "Passwort vergessen?"; +$lang['queryname'] = "Erster Botname ist bereits in Verwendung. Versuche zweiten Botnamen zu nutzen..."; +$lang['repeat'] = "wiederholen"; +$lang['resettime'] = "Setze die online und aktive Zeit des Benutzers %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) auf Null zurück, da er aus der Ausnahme entfernt wurde."; +$lang['sccrmcld'] = "User mit der eindeutigen Client-ID %s wurde erfolgreich aus der Ranksystem Datenbank gelöscht."; +$lang['sccupcount'] = "Aktive Zeit von %s Sekunden für die eindeutige Client-ID (%s) wird in wenigen Sekunden hinzugefügt (siehe Ranksystem log)."; +$lang['sccupcount2'] = "Füge eine aktive Zeit von %s Sekunden der eindeutigen Client-ID (%s) hinzu; angefordert über Admin Funktion."; +$lang['setontime'] = "Zeit hinzufügen"; +$lang['setontimedesc'] = "Füge eine online Zeit den zuvor ausgewählten Usern hinzu. Jeder User erhält diese Zeit zusätzlich zur bestehenden.

Die eingegebene online Zeit wird direkt berücksichtigt für die Rangsteigerung und sollte sofort Wirkung zeigen."; +$lang['sgrpadd'] = "Servergruppe %s (ID: %s) zu User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) hinzugefügt."; +$lang['sgrprerr'] = "Betroffener User: %s (unique Client-ID: %s; Client-database-ID %s) und ServerGruppe %s (ID: %s)."; +$lang['sgrprm'] = "Servergruppe %s (ID: %s) von User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) entfernt."; +$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'] = "Servergruppe zuweisen"; +$lang['stag0002'] = "Erlaubte Gruppen"; +$lang['stag0003'] = "Definiere die Servergruppen, welche ein User sich selbst geben kann.

Die Servergruppen sind mit ihrer Gruppen-ID (Servergruppen-Datenbank-ID) durch Komma getrennt zu erfassen.

Beispiel:
23,24,28"; +$lang['stag0004'] = "Gruppen Limit"; +$lang['stag0005'] = "Max. Anzahl der Servergruppen, welche gleichzeitig gesetzt sein können."; +$lang['stag0006'] = "Es sind meherer eindeutige IDs online mit deiner IP Adresse. Bitte %sklicke hier%s um dich zunächst zu verifizieren."; +$lang['stag0007'] = "Bitte warte, bis die letzten Änderungen durchgeführt wurden, bevor du weitere Dinge änderst..."; +$lang['stag0008'] = "Gruppen-Änderungen erfolgreich gespeichert. Es kann ein paar Sekunden dauern, bis die Änderungen auf dem TS3 Server erfolgt."; +$lang['stag0009'] = "Du kannst nicht mehr als %s Gruppe(n) zur selben Zeit setzen!"; +$lang['stag0010'] = "Bitte wähle mind. eine Gruppe."; +$lang['stag0011'] = "Limit gleichzeitiger Gruppen: "; +$lang['stag0012'] = "setze Gruppe(n)"; +$lang['stag0013'] = "Addon ON/OFF"; +$lang['stag0014'] = "Schalte das Addon ON (aktiv) oder OFF (inaktiv).

Beim Deaktivieren des Addons wird eine etwaige stats/ Seite ausgeblendet."; +$lang['stag0015'] = "Du konntest nicht auf dem TeamSpeak gefunden werden. Bitte %sklicke hier%s um dich zunächst zu verifizieren."; +$lang['stix0001'] = "Server Statistiken"; +$lang['stix0002'] = "Anzahl User"; +$lang['stix0003'] = "zeige Liste aller User"; +$lang['stix0004'] = "Online Zeit aller User / Total"; +$lang['stix0005'] = "zeige Top User aller Zeiten"; +$lang['stix0006'] = "zeige Top User des Monats"; +$lang['stix0007'] = "zeige Top User der Woche"; +$lang['stix0008'] = "Server Nutzung"; +$lang['stix0009'] = "der letzten 7 Tage"; +$lang['stix0010'] = "der letzten 30 Tage"; +$lang['stix0011'] = "der letzten 24 Stunden"; +$lang['stix0012'] = "wähle Zeitraum"; +$lang['stix0013'] = "letzten 24 Stunden"; +$lang['stix0014'] = "letzte Woche"; +$lang['stix0015'] = "letzer Monat"; +$lang['stix0016'] = "Aktive / Inaktive Zeit (aller User)"; +$lang['stix0017'] = "Versionen (aller User)"; +$lang['stix0018'] = "Nationalitäten (aller User)"; +$lang['stix0019'] = "Plattformen (aller User)"; +$lang['stix0020'] = "Server Details"; +$lang['stix0023'] = "Server Status"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "User (Online / Max)"; +$lang['stix0027'] = "Anzahl aller Channel"; +$lang['stix0028'] = "Server Ping (Mittelwert)"; +$lang['stix0029'] = "Eingehende Daten insg."; +$lang['stix0030'] = "Ausgehende Daten insg."; +$lang['stix0031'] = "Server online seit"; +$lang['stix0032'] = "vor Offlineschaltung:"; +$lang['stix0033'] = "00 Tage, 00 Stunden, 00 Min., 00 Sek."; +$lang['stix0034'] = "Paketverlust (Mittelwert)"; +$lang['stix0035'] = " "; +$lang['stix0036'] = "Server Name"; +$lang['stix0037'] = "Server Adresse (Host Adresse : Port)"; +$lang['stix0038'] = "Server Passwort"; +$lang['stix0039'] = "Nein (Öffentlich)"; +$lang['stix0040'] = "Ja (Privat)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server Plattform"; +$lang['stix0043'] = "Server Version"; +$lang['stix0044'] = "Server Erstelldatum (dd/mm/yyyy)"; +$lang['stix0045'] = "Report an Serverliste"; +$lang['stix0046'] = "Aktiv"; +$lang['stix0047'] = "Deaktiviert"; +$lang['stix0048'] = "nicht genügend Daten ..."; +$lang['stix0049'] = "Online Zeit aller User / Monat"; +$lang['stix0050'] = "Online Zeit aller User / Woche"; +$lang['stix0051'] = "TeamSpeak hat gefailed, daher kein Erstelldatum..."; +$lang['stix0052'] = "Andere"; +$lang['stix0053'] = "Aktive Zeit (in Tagen)"; +$lang['stix0054'] = "Inaktive Zeit (in Tagen)"; +$lang['stix0055'] = "online in d. letzten 24 Std."; +$lang['stix0056'] = "online in d. letzten %s Tagen"; +$lang['stix0059'] = "Liste der User"; +$lang['stix0060'] = "User"; +$lang['stix0061'] = "zeige alle Versionen"; +$lang['stix0062'] = "zeige alle Nationen"; +$lang['stix0063'] = "zeige alle Plattformen"; +$lang['stmy0001'] = "Meine Statistiken"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Datenbank ID:"; +$lang['stmy0004'] = "Eindeutige Client ID:"; +$lang['stmy0005'] = "Insg. Verbunden zum TS:"; +$lang['stmy0006'] = "Startzeitpunkt der Statistiken:"; +$lang['stmy0007'] = "Gesamte online Zeit:"; +$lang['stmy0008'] = "Online Zeit der letzten %s Tage:"; +$lang['stmy0009'] = "Aktive Zeit der letzten %s Tage:"; +$lang['stmy0010'] = "Errungenschaften:"; +$lang['stmy0011'] = "Fortschritt Errungenschaft Zeit"; +$lang['stmy0012'] = "Zeit: Legendär"; +$lang['stmy0013'] = "Da du bereits %s Stunden auf dem Server online bist."; +$lang['stmy0014'] = "Abgeschlossen"; +$lang['stmy0015'] = "Zeit: Gold"; +$lang['stmy0016'] = "% erreicht für Legendär"; +$lang['stmy0017'] = "Zeit: Silber"; +$lang['stmy0018'] = "% erreicht für Gold"; +$lang['stmy0019'] = "Zeit: Bronze"; +$lang['stmy0020'] = "% erreicht für Silber"; +$lang['stmy0021'] = "Zeit: Unranked"; +$lang['stmy0022'] = "% erreicht für Bronze"; +$lang['stmy0023'] = "Fortschritt Errungenschaft Verbindungen"; +$lang['stmy0024'] = "Verbindungen: Legendär"; +$lang['stmy0025'] = "Da du bereits %s mal zum Server verbunden warst."; +$lang['stmy0026'] = "Verbindungen: Gold"; +$lang['stmy0027'] = "Verbindungen: Silber"; +$lang['stmy0028'] = "Verbindungen: Bronze"; +$lang['stmy0029'] = "Verbindungen: Unranked"; +$lang['stmy0030'] = "Fortschritt nächste Servergruppe"; +$lang['stmy0031'] = "Gesamte aktive Zeit:"; +$lang['stna0001'] = "Nationen"; +$lang['stna0002'] = "Statistiken"; +$lang['stna0003'] = "Kürzel"; +$lang['stna0004'] = "Anzahl"; +$lang['stna0005'] = "Versionen"; +$lang['stna0006'] = "Plattformen"; +$lang['stna0007'] = "Prozent"; +$lang['stnv0001'] = "Server News"; +$lang['stnv0002'] = "Schließen"; +$lang['stnv0003'] = "Client Informationen aktualisieren"; +$lang['stnv0004'] = "Benutze diese Funktion, wenn sich deine TS3 Daten geändert haben, wie z.B. dein Username."; +$lang['stnv0005'] = "Du musst hierfür mit dem TS3 Server verbunden sein!"; +$lang['stnv0006'] = "Aktualisieren"; +$lang['stnv0007'] = "Battle Area - Seiteninhalt"; +$lang['stnv0008'] = "Du kannst dich mit anderen Usern battle."; +$lang['stnv0009'] = "So lange das Battle läuft, wird die online Zeit bzw. aktive Zeit gewertet."; +$lang['stnv0010'] = "Wenn das Battle abgeschlossen ist, gewinnt der User, welcher die höchste online Zeit bzw. aktive Zeit hat.."; +$lang['stnv0011'] = "(Die Standard Battle Dauer ist 48 Stunden)"; +$lang['stnv0012'] = "Der Sieger erhält einen Preis, welcher zu einem eigens bestimmten Zeitpunkt eingelöst werden kann."; +$lang['stnv0013'] = "Dieser wird auf der Seite Meine Statistiken angezeigt."; +$lang['stnv0014'] = "(Kann sein ein Zeit Boost(2x) für 8 Stunden, instant online Zeit (4 Stunden), etc."; +$lang['stnv0015'] = "Diese Boosts können benutzt werden, um z.B. die Chancen auf den Top User der Woche zu erhöhen."; +$lang['stnv0016'] = "nicht verfügbar"; +$lang['stnv0017'] = "Du bist nicht mit dem TS3 Server verbunden, daher können kein Daten angezeigt werden."; +$lang['stnv0018'] = "Bitte verbinde dich mit dem TS3 Server und aktualisiere anschließend die Session über den Aktualisierungs-Button oben rechts in der Ecke."; +$lang['stnv0019'] = "Statistiken - Inhaltserläuterung"; +$lang['stnv0020'] = "Diese Seite zeigt u.a. eine Übersicht deiner persönlichen Statistiken und Aktivität auf dem TS3 Server."; +$lang['stnv0021'] = "Die Informationen wurden gesammelt seit Beginn des Ranksystems, nicht seit Beginn des TS3 Servers."; +$lang['stnv0022'] = "Die Seite erhält ihre Daten aus einer Datenbank. Es ist also möglich, dass die angezeigten Werte von den live Werten abweichen."; +$lang['stnv0023'] = "Die Werte der online Zeit aller User per Woche bzw. Monat werden nur alle 15 Minuten berechnet. Alle anderen Werte sollten nahezu live sein (maximal wenige Sekunden verzögert)."; +$lang['stnv0024'] = "Ranksystem - Statistiken"; +$lang['stnv0025'] = "Anzahl Einträge"; +$lang['stnv0026'] = "alle"; +$lang['stnv0027'] = "Die Informationen auf dieser Seite scheinen veraltet! Es scheint, das Ranksystem ist nicht mehr mit dem TS3 verbunden."; +$lang['stnv0028'] = "(Du bist nicht zum TS3 verbunden!)"; +$lang['stnv0029'] = "Rank-Liste"; +$lang['stnv0030'] = "Ranksystem Info"; +$lang['stnv0031'] = "Über das Suchfeld können nach Teile im Clientnamen, der eindeutigen Client-ID und der Client-Datenbank-ID gesucht werden."; +$lang['stnv0032'] = "Es ist auch möglich bestimmte Filterregeln anzuwenden (siehe unterhalb). Der Filter wird auch im Suchfeld hinterlegt."; +$lang['stnv0033'] = "Kombinationen von Filter und einem Suchwert sind möglich. Trage hierfür den/die Filter gefolgt von dem Suchwert ein."; +$lang['stnv0034'] = "Auch ist es möglich mehrere Filter zu kombinieren. Trage diese einfach fortlaufend in das Suchfeld ein."; +$lang['stnv0035'] = "Beispiel:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Zeigt nur Clients an, welche ausgeschlossen sind (Client, Severgruppen oder Channel-Ausnahme)."; +$lang['stnv0037'] = "Zeigt nur Clients an, welche nicht ausgeschlossen sind."; +$lang['stnv0038'] = "Zeigt nur Clients an, welche online sind"; +$lang['stnv0039'] = "Zeigt nur Clients an, welche nicht online sind"; +$lang['stnv0040'] = "Zeigt nur Clients an, welche sich in einer bestimmten Servergruppe befinden. Stellt das aktuelle Level (Rang) dar.
Ersetze GROUPID mi der gewünschten Servergruppen ID."; +$lang['stnv0041'] = "Zeigt nur Clients an, welche dem ausgewählten 'zuletzt gesehen' Zeitraum entsprechen.
Ersetze OPERATOR mit '<' oder '>' oder '=' oder '!='.
Und ersetze TIME mit einem Zeitstempel (Timestamp) oder Datum mit im Format 'Y-m-d H-i' (Beispiel: 2016-06-18 20-25).
Vollständiges Beispiel: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = "Zeigt nur Clients an, welche sich im definierten Land befinden.
Ersetze TS3-COUNTRY-CODE mit dem gewünschten Land.
Für eine Liste der gültigen Ländercodes, bitte nach dem 'ISO 3166-1 alpha-2' googlen."; +$lang['stnv0043'] = "verbinde zum TS3"; +$lang['stri0001'] = "Ranksystem Informationen"; +$lang['stri0002'] = "Was ist das Ranksystem?"; +$lang['stri0003'] = "Ein TS3 Bot, der automatisch Servergruppen an User für online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar."; +$lang['stri0004'] = "Wer hat das Ranksystem erstellt?"; +$lang['stri0005'] = "Wann wurde das Ranksystem erstellt?"; +$lang['stri0006'] = "Erste Alpha Version: 05.10.2014."; +$lang['stri0007'] = "Erste Beta Version: 01.02.2015."; +$lang['stri0008'] = "Die neuste Version kannst du auf der Ranksystem Website finden."; +$lang['stri0009'] = "Wie wurde das Ranksystem erstellt?"; +$lang['stri0010'] = "Das Ranksystem basiert auf"; +$lang['stri0011'] = "Es nutzt weiterhin die folgenden Programmbibliotheken:"; +$lang['stri0012'] = "Ein spezieller Dank ergeht an:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - für die russische Übersetzung"; +$lang['stri0014'] = "Bejamin Frost - für die Initialisierung des Bootstrap Designs"; +$lang['stri0015'] = "ZanK & jacopomozzy - für die italienische Übersetzung"; +$lang['stri0016'] = "DeStRoYzR & Jehad - für die Initiierung der arabischen Übersetzung"; +$lang['stri0017'] = "SakaLuX - für die Initiierung der rumänischen Übersetzung"; +$lang['stri0018'] = "0x0539 - für die Initiierung der niederländischen Übersetzung"; +$lang['stri0019'] = "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'] = "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['stri0025'] = "DoktorekOne - für die polnische Übersetzung"; +$lang['sttw0001'] = "Top User"; +$lang['sttw0002'] = "der Woche"; +$lang['sttw0003'] = "mit %s %s online Zeit"; +$lang['sttw0004'] = "Top 10 im Vergleich"; +$lang['sttw0005'] = "Stunden (definiert 100 %)"; +$lang['sttw0006'] = "%s Stunden (%s%)"; +$lang['sttw0007'] = "Top 10 Statistiken"; +$lang['sttw0008'] = "Top 10 vs Andere; Online Zeit"; +$lang['sttw0009'] = "Top 10 Vs Others; Aktive Zeit"; +$lang['sttw0010'] = "Top 10 Vs Others; Inaktive Zeit"; +$lang['sttw0011'] = "Top 10 (in Stunden)"; +$lang['sttw0012'] = "Andere %s User (in Stunden)"; +$lang['sttw0013'] = "mit %s %s aktive Zeit"; +$lang['sttw0014'] = "Stunden"; +$lang['sttw0015'] = "Minuten"; +$lang['sttm0001'] = "des Monats"; +$lang['stta0001'] = "aller Zeiten"; +$lang['stve0001'] = "\nHallo %s,\num dich für das Ranksystem zu verifizieren klicke bitte auf den folgenden Link:\n[B]%s[/B]\n\nSollte dieser nicht funktionieren, so kannst du auch den folgenden Token manuell eintragen:\n%s\n\nHast du diese Nachricht nicht angefordert, so ignoriere sie bitte. Bei wiederholtem Erhalt kontaktiere bitte einen Admin."; +$lang['stve0002'] = "Eine Nachricht mit dem Token wurde auf dem TS3 Server an dich versandt."; +$lang['stve0003'] = "Bitte trage den token ein, welchen du auf dem TS3 server erhalten hast. Wenn du keine Nachricht bekommen hast, überprüfe, ob du die richtige eindeutige ID gewählt hast."; +$lang['stve0004'] = "Der eingegebene Token stimmt nicht überein! Bitte versuche es erneut."; +$lang['stve0005'] = "Gratulation, du wurdest erfolgreich verifiziert! Du kannst nun fortfahren..."; +$lang['stve0006'] = "Ein unbekannter Fehler ist passiert. Bei wiederholtem Vorkommen benachrichtige bitte einen Admin."; +$lang['stve0007'] = "Verifizier-Prozess (über TeamSpeak)"; +$lang['stve0008'] = "Wähle hier deine eindeutige Client-ID auf dem TS3 Server um dich zu verifizieren."; +$lang['stve0009'] = " -- wähle dich aus -- "; +$lang['stve0010'] = "Du wirst einen Token auf dem TS3 Server erhalten, welcher hier einzugeben ist:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verifizieren"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sek."; +$lang['time_min'] = "Min."; +$lang['time_hour'] = "Std."; +$lang['time_day'] = "Tag(e)"; +$lang['upgrp0001'] = "Es ist die Servergruppe mit der ID %s im Parameter '%s' (Webinterface -> Kern) konfiguriert, jedoch ist diese Servergruppe nicht (mehr) auf dem TS3 Server vorhanden! Bitte korrigiere dies oder es können hierdurch Fehler auftreten!"; +$lang['upgrp0002'] = "Lade neues ServerIcon herunter"; +$lang['upgrp0003'] = "Fehler beim Schreiben des ServerIcons."; +$lang['upgrp0004'] = "Fehler beim Herunterladen des ServerIcons vom TS3 Server: "; +$lang['upgrp0005'] = "Fehler beim Löschen des ServerIcons."; +$lang['upgrp0006'] = "Das ServerIcon wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt."; +$lang['upgrp0007'] = "Fehler beim Schreiben des Servergruppen-Icons bei Gruppe %s mit ID %s."; +$lang['upgrp0008'] = "Fehler beim Herunterladen des Servergruppen-Icons bei Gruppe %s mit ID %s: "; +$lang['upgrp0009'] = "Fehler beim Löschen des Servergruppen-Icons bei Gruppe %s mit ID %s."; +$lang['upgrp0010'] = "Das Icon der Servergruppe %s mit der ID %s wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt."; +$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]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]."; +$lang['upusrerr'] = "Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!"; +$lang['upusrinf'] = "User %s wurde erfolgreich benachrichtigt."; +$lang['user'] = "Benutzername"; +$lang['verify0001'] = "Bitte stelle sicher, dass du wirklich mit dem TS3 server verbunden bist!"; +$lang['verify0002'] = "Betrete, falls noch nicht geschehen, den Ranksystem %sVerifizierungs-Channel%s!"; +$lang['verify0003'] = "Wenn du wirklich zum TS3 Server verbunden bist, kontaktiere bitte dort einen Admin.
Dieser muss einen Verifizierungs-Channel auf dem TS3 Server erstellen. Danach ist der erstellte Channel im Ranksystem zu hinterlegen, was nur ein Admin tun kann.
Weitere Informationen findet dieser im Webinterface (-> Kern) des Ranksystems.

Bis dahin ist leider keine Verifizierung für das Ranksystem möglich! Sorry :( "; +$lang['verify0004'] = "Keine User im Verifizierungs-Channel gefunden..."; +$lang['wi'] = "Webinterface"; +$lang['wiaction'] = "ausführen"; +$lang['wiadmhide'] = "unterdrücke ausgeschl. User"; +$lang['wiadmhidedesc'] = "Hiermit können vom Ranksystem ausgeschlossene User in der folgenden Auswahl unterdrückt werden."; +$lang['wiadmuuid'] = "admin ID"; +$lang['wiadmuuiddesc'] = "Gebe hier die eindeutige Client-ID ein; als Administrator des Ranksystems.
Mehrere Admins können auch erfasst werden -> Komma getrennt!

Diese wird benötigt um das Passwort des Webinterfaces resetten zu können.
Wenn hier keine eindeutige Client-ID angegeben ist, ist es nicht möglich das Passwort im Bedarfsfall zurückzusetzen.

Auch sind hier hinterlegte Admins berechtigt, Admin-Befehle an den Bot zu schicken (!reboot, !shutdown, !update)."; +$lang['wiboost'] = "Boost"; +$lang['wiboostdesc'] = "Gebe einen User auf dem TeamSpeak Server eine Servergruppe (ist manuell zu erstellen), welche hier für das Ranksystem als Boost Gruppe deklariert werden kann. Definiere hierfür noch einen Faktor (z.B. 2x) und eine Zeit, wie lange der Boost gewährt werden soll.
Umso höher der Faktor, umso schneller erreicht ein User den nächst höheren Rang.
Ist die Zeit abgelaufen, so wird dem betroffenen User die Servergruppe automatisch entfernt. Die Zeit beginnt in dem Moment zu laufen, in dem der User die Servergruppe erhält.

Servergruppen-ID=> Faktor=> Zeit (in Sekunden)

Beispiel:
12=>2=>6000,13=>3=>2500,14=>5=>600

Hier werden den Usern in der Servergruppe mit der ID 12 dem Faktor 2 für 6000 Sekunden, den Usern in der Servergruppe 13 dem Faktor 3 für 2500 Sekunden gewährt, und so weiter..."; +$lang['wibot1'] = "Der Ranksystem Bot sollte gestoppt sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; +$lang['wibot2'] = "Der Ranksystem Bot sollte gestartet sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; +$lang['wibot3'] = "Der Ranksystem Bot sollte neu gestartet sein. Für mehr Informationen bitte die Log unterhalb prüfen!"; +$lang['wibot4'] = "Start / Stop Ranksystem Bot"; +$lang['wibot5'] = "Bot starten"; +$lang['wibot6'] = "Bot stoppen"; +$lang['wibot7'] = "Bot neustarten"; +$lang['wibot8'] = "Ranksystem Log (Auszug):"; +$lang['wibot9'] = "Bitte fülle alle erforderlichen Felder aus, bevor der Ranksystem Bot gestartet werden kann!"; +$lang['wichdbid'] = "Client-Datenbank-ID Reset"; +$lang['wichdbiddesc'] = "Setzt die online Zeit eines Users zurück, wenn sich seine TeamSpeak Client-Datenbank-ID ändert.

Beispiel:
Wird ein Client vom TeamSpeak Server gelöscht, so erhält er mit der nächsten Verbindung zum Server eine neue Client-Datenbank-ID."; +$lang['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Kern-Einstellungen auf Richtigkeit. Besonders sollte die Einstellung 'Rangsteigerung' geprüft werden!"; +$lang['wichpw1'] = "Das alte Passwort ist falsch! Versuche es erneut."; +$lang['wichpw2'] = "Die neuen Passwörter stimmen nicht überein. Versuche es erneut."; +$lang['wichpw3'] = "Das Passwort für das Webinterface wurde erfolgreich geändert. Anforderung von IP %s."; +$lang['wichpw4'] = "Passwort ändern"; +$lang['widaform'] = "Datumsformat"; +$lang['widaformdesc'] = "Gebe ein Datumsformat zur Anzeige vor.

Beispiel:
%a Tage, %h Std., %i Min., %s Sek."; +$lang['widbcfgsuc'] = "Datenbank Einstellungen erfolgreich gespeichert."; +$lang['widbcfgerr'] = "Fehler beim Speichern der Datenbank Einstellungen! Verbindung zur Datenbank oder speichern der 'other/dbconfig.php' nicht möglich."; +$lang['widelcld'] = "lösche Clients"; +$lang['widelcldgrp'] = "Servergruppen zurücksetzen"; +$lang['widelcldgrpdesc'] = "Das Ranksystem merkt sich die vergebenen Servergruppen, sodass nicht mit jedem Lauf der worker.php diese nochmals überprüft bzw. vergeben werden.

Mit dieser Funktion ist es möglich, dieses Wissen einmalig zurückzusetzen. Dadurch versucht das Ranksystem alle User (welche auf dem TS3 Server online sind) in die aktuell gültige Servergruppe zu setzen.
Für jeden User, welcher eine Servergruppe erhält bzw. in der vorhanden verbleibt, wird die Wissensdatenbank wie zu Anfang beschrieben wieder aufgebaut.

Diese Funktion kann hilreich sein, wenn sich User nicht in der Servergruppe befinden, welche für die jeweilige online Zeit vorgesehen ist.

Achtung: Bitte diese Funktion in einem Moment ausführen, in dem für nächsten Minuten kein Rankup ansteht!!! Das Ranksystem kann dann nämlich die alten Gruppen entfernen, da es hiervon nichts mehr weiß ;-)"; +$lang['widelclddesc'] = "Lösche zuvor selektierte User aus der Ranksystem Datenbank.

Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; +$lang['widelsg'] = "entferne aus Servergruppen"; +$lang['widelsgdesc'] = "Wähle, ob Clients auch aus den Servergruppen entfernt werden sollen, wenn sie aus der Ranksystem Datenbank gelöscht werden.

Es werden nur Servergruppen beachtet, welche das Ranksystem betreffen!"; +$lang['wideltime'] = "Löschzeitraum"; +$lang['wideltimedesc'] = "Lösche alte Clients aus aus der Ranksystem Datenbank.
Gib eine Zeit in Sekunden ein, welche ein User nicht mehr online war, damit er gelöscht wird.

0 - löscht alle User aus dem Ranksystem

Hiermit bleiben die Userdaten auf dem TeamSpeak Server unberührt!"; +$lang['wiexcid'] = "Channel-Ausnahmen"; +$lang['wiexciddesc'] = "Eine mit Komma getrennte Liste von den Channel-IDs, die nicht am Ranksystem teilnehmen sollen.

Halten sich User in einem der aufgelisteten Channel auf, so wird die Zeit darin vollständig ignoriert. Es wird weder die online Zeit, noch die Idle Zeit gewertet.

Sinn macht diese Funktion mit dem Modus 'online Zeit', da hier z.B. AFK Räume ausgeschlossen werden können.
Mit dem Modus 'aktive Zeit' ist diese Funktion sinnlos, da z.B. in AFK Räumen die Idle-Zeit abgezogen und somit sowieso nicht gewertet würde.

Befindet sich ein User in einem ausgeschlossenen Channel, so wird er für diese Zeit als 'vom Ranksystem ausgeschlossen' vermerkt. Der User erscheint damit auch nicht mehr in der Liste 'stats/list_rankup.php', sofern ausgeschlossene Clients dort nicht angezeigt werden sollen (Statistik Seite - ausgeschl. Clients)."; +$lang['wiexgrp'] = "Servergruppen-Ausnahmen"; +$lang['wiexgrpdesc'] = "Eine mit Komma getrennte Liste von Servergruppen-IDs, welche nicht am Ranksystem teilnehmen sollen.

User in mindestens einer dieser Gruppen sind von Rangsteigerungen ausgenommen."; +$lang['wiexres'] = "Modus Ausnahmen"; +$lang['wiexres1'] = "Standard (bewerte Zeit)"; +$lang['wiexres2'] = "pausiere Zeit"; +$lang['wiexres3'] = "resette Zeit"; +$lang['wiexresdesc'] = "Es gibt drei Möglichkeiten wie mit den Ausnahmen umgegangen werden kann. In jedem Fall wird die Rangsteigerung deaktiviert (Vergabe der Servergruppe). Als verschiedene Modi kann ausgewählt werden, wie die auf dem Server verbrachte Zeit von Usern (welche ausgeschlossen sind) behandelt werden soll.

1) Standard (bewerte Zeit): Im Standard wertet das Ranksystem auch die online/aktive Zeit von Usern, welche vom Ranksystem ausgeschlossen sind (Client-/Servergruppenausnahme). Mit Ausschluss aus dem Ranksystem ist nur das Setzen des Rangs (Servergruppe) deaktiviert. Das heißt, wenn ein User nicht mehr ausgeschlossen ist, würde er einer Servergruppe abhängig seiner gesammelten Zeit (z.B. Level 3) zugeordnet.

2) pausiere Zeit: Bei dieser Option wird die online/aktive Zeit eingefrorren (pausiert) in dem Moment, in dem der User ausgenommen wird. Nach Rücknahme der Ausnahme (entfernen der ausgeschlossenen Servergruppe oder entfernen der Ausnahmeregel) läuft die online/aktive Zeit weiter.

3) resette Zeit: Mit dieser Funktion wird die gesammelte online/aktive Zeit in dem Moment auf Null zurückgesetzt, in dem der User nicht mehr ausgeschlossen ist (durch Entfernen der ausgeschlossenen Servergruppe oder entfernen der Ausnahmeregel). Die auf dem Server verbrachte Zeit wird hierbei zunächst weiterhin gewertet bis der Reset erfolgt.


Die Channel-Ausnahmen spielen hier keine Rolle, da diese Zeit immer ignoriert wird (entspricht Modus pausiere Zeit)."; +$lang['wiexuid'] = "Client-Ausnahmen"; +$lang['wiexuiddesc'] = "Eine mit Komma getrennte Liste von eindeutigen Client-IDs, welche nicht am Ranksystem teilnehmen sollen.

Aufgelistete User sind von Rangsteigerungen ausgenommen."; +$lang['wigrptime'] = "Rangsteigerung Definition"; +$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden)=>Servergruppen ID

Entscheidend hierfür ist die 'online Zeit' bzw. die 'aktive Zeit' des Users, je nach Einstellung des Modus.

Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.

Die Zeiten sind kummulativ zu hinterlegen.

Beispiel:
60=>9,120=>10,180=>11

Hier werden die User nach 60 Sekunden in die Servergruppe 9, nach wiederum 60 Sekunden in die Servergruppe 10, usw..., hinzugefügt."; +$lang['wihladm'] = "List Rankup (Admin-Modus)"; +$lang['wihladm1'] = "Zeit zu User hinzufügen"; +$lang['wihlcfg'] = "Kern-Einstellungen"; +$lang['wihldb'] = "Datenbank"; +$lang['wihlmsg'] = "Nachrichten"; +$lang['wihlsty'] = "Statistik Seite"; +$lang['wihlts'] = "TeamSpeak"; +$lang['wihlvs'] = "Sonstiges"; +$lang['wiignidle'] = "Ignoriere Idle"; +$lang['wiignidledesc'] = "Lege eine Zeit fest, bis zu der die Idlezeit eines Users ignoriert werden soll.

Wenn ein Client nichts auf dem Server unternimmt (=Idle), wird diese Zeit vom Ranksystem notiert. Mit dieser Funktion wird die Idlezeit eines User bis zur definierten Grenze nicht als Idlezeit gewertet. Erst wenn der definierte Wert überschritten wird, zählt sie ab diesem Zeitpunkt für das Ranksystem auch als Idlezeit.

Diese Funktion spielt nur in Verbindung mit dem Modus 'aktive Zeit' eine Rolle.
Sinn der Funktion ist es z.B. die Zeit des Zuhörens bei Gesprächen als Aktivität zu werten.

0 = Deaktivieren der Funktion

Beispiel:
Ignoriere Idle= 600 (Sekunden)
Ein Client hat einen Idle von 8 Minunten.
Folge:
Die 8 Minuten Idle werden ignoriert und er erhält demnach diese Zeit als aktive Zeit. Wenn sich die Idlezeit nun auf über 12 Minuten erhöht, so wird die Zeit über 10 Minuten, also 2 Minuten, auch als Idlezeit gewertet."; +$lang['wilog'] = "Log-Pfad"; +$lang['wilogdesc'] = "Pfad in dem das Logfile des Ranksystems geschrieben werden soll.

Beispiel:
/var/logs/ranksystem/

Beachte, dass der Webuser Schreibrechte in dem Verzeichnis hat."; +$lang['wilogout'] = "Abmelden"; +$lang['wimsgmsg'] = "Nachricht"; +$lang['wimsgmsgdesc'] = "Definiere eine Nachricht, welche ein User erhält, wenn er im Rang aufsteigt.

Die Nachricht wird über TS3 als private Text-Nachricht versendet. Daher können alle bekannten BB-Codes genutzt werden, die auch sonst in Text-Nachrichten funktionieren.
http://ts-n.net/lexicon.php?showid=97#lexindex

Weiterhin kann die bisher verbrachte Zeit mittels Argumenten angegeben werden:
%1\$s - Tage
%2\$s - Stunden
%3\$s - Minuten
%4\$s - Sekunden
%5\$s - Name der erreichten Servergruppe
%6$s - Name des Users (Empfänger)

Beispiel:
Hey,\\ndu bist im Rang gestiegen, da du bereits %1\$s Tage, %2\$s Stunden und %3\$s Minuten mit unserem TS3 Server verbunden bist.[B]Weiter so![/B] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Definiere eine Nachricht, welche auf der /stats/ Seite unter den Server News gezeigt wird.

Es können die regulären HTML Funktionen zum Editieren des Layouts benutzt werden.

Beispiel:
<b> - für Fettschrift
<u> - zum Unterstreichen
<i> - für Kursiv
<br> - für einen Zeilenumbruch"; +$lang['wimsgusr'] = "Rangsteigerung-Info"; +$lang['wimsgusrdesc'] = "Informiere den User per privater Textnachricht über seine Rangsteigerung."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Datenbank"; +$lang['winav3'] = "Kern"; +$lang['winav4'] = "Anderes"; +$lang['winav5'] = "Nachrichten"; +$lang['winav6'] = "Statistik Seite"; +$lang['winav7'] = "Administration"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update verfügbar!"; +$lang['winav10'] = "Bitte nutze das Webinterface nur via %s HTTPS%s Eine Verschlüsselung ist wichtig um die Privatsphäre und Sicherheit zu gewährleisten.%sUm HTTPS nutzen zu können, muss der Webserver eine SSL Verbindung unterstützen."; +$lang['winav11'] = "Bitte hinterlege die eindeutige Client-ID des Admins des Ranksystems (Anderes -> admin ID). Dies ist sehr wichtig im Falle des Verlustes der Logindaten für das Webinterface."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Befehl \"!nextup\""; +$lang['winxinfodesc'] = "Erlaubt einen User auf dem TeamSpeak3 Server den Befehl \"!nextup\" dem Ranksystem (Query) Bot als private Textnachricht zu schreiben.

Als Antwort erhält der User eine Nachricht mit der benötigten Zeit zur nächsten Rangsteigerung.

deaktiviert - Die Funktion ist deaktiviert. Der Befehl '!nextup' wird ignoriert.
erlaubt - nur nächsten Rang - Gibt die benötigte Zeit zum nächsten Rang zurück.
erlaubt - alle nächsten Ränge - Gibt die benötigte Zeit für alle höheren Ränge zurück.

Unter folgender URL ein Beispiel zum Setzen einer Verlinkung mit \"client://\" für den Ranksystem (Query) Bot, da nicht unbedingt für alle die Query-User sichtbar sind:
http://ts-n.net/lexicon.php?showid=98#lexindex

Dieser kann dann mit dem [URL] Tag in einem Channel als Link eingefügt werden.
http://ts-n.net/lexicon.php?showid=97#lexindex"; +$lang['winxmode1'] = "deaktiviert"; +$lang['winxmode2'] = "erlaubt - nur nächster Rang"; +$lang['winxmode3'] = "erlaubt - alle nächsten Ränge"; +$lang['winxmsg1'] = "Nachricht (Standard)"; +$lang['winxmsgdesc1'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"!nextup\" erhält.

Argumente:
%1$s - Tage zur nächsten Rangsteigerung
%2$s - Stunden zur nächsten Rangsteigerung
%3$s - Minuten zur nächsten Rangsteigerung
%4$s - Sekunden zur nächsten Rangsteigerung
%5\$s - Name der nächsten Servergruppe (Rank)
%6$s - Name des Users (Empfänger)

Beispiel:
Deine nächste Rangsteigerung ist in %1$s Tagen, %2$s Stunden, %3$s Minuten und %4$s Sekunden. Die nächste Servergruppe, die du erreichst ist [B]%5$s[/B]."; +$lang['winxmsg2'] = "Nachricht (Höchste)"; +$lang['winxmsgdesc2'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"!nextup\" erhält, wenn der User bereits im höchsten Rang ist.

Argumente:
%1$s - Tage zur nächsten Rangsteigerung
%2$s - Stunden zur nächsten Rangsteigerung
%3$s - Minuten zur nächsten Rangsteigerung
%4$s - Sekunden zur nächsten Rangsteigerung
%5vs - Name der nächsten Servergruppe (Rank)
%6$s - Name des Users (Empfänger)

Beispiel:
Du hast bereits den höchsten Rang erreicht seit %1$s Tagen, %2$s Stunden, %3$s Minuten und %4$s Sekunden."; +$lang['winxmsg3'] = "Nachricht (Ausnahme)"; +$lang['winxmsgdesc3'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"!nextup\" erhält, wemm der User vom Ranksystem ausgeschlossen ist.

Argumente:
%1$s - Tage zur nächsten Rangsteigerung
%2$s - Stunden zur nächsten Rangsteigerung
%3$s - Minuten zur nächsten Rangsteigerung
%4$s - Sekunden zur nächsten Rangsteigerung
%5$s - Name der nächsten Servergruppe (Rank)
%6$s - Name des Users (Empfänger)

Beispiel:
Du bist vom Ranksystem ausgeschlossen. Wenn du eine Teilnahme am Ranksystem wünschst, kontaktiere einen Admin auf dem TS3 Server."; +$lang['wirtpw1'] = "Sorry Bro, du hast vergessen die admin ID zuvor im Webinterface zu hinterlegen. Nun besteht keine Möglichkeit das Passwort zurückzusetzen!"; +$lang['wirtpw2'] = "Admin ID konnte auf dem TS3 Server nicht gefunden werden. Du musst auf dem TS3 mit der hinterlegten admin ID online sein."; +$lang['wirtpw3'] = "Deine IP Adresse stimmt nicht mit der IP des Admins auf dem TS3 überein. Bitte stelle sicher, dass du die gleiche IP Adresse auf dem TS3 Server nutzt wie auch hier auf dieser Seite (und auch das gleiche Protokoll IPv4 / IPv6)."; +$lang['wirtpw4'] = "\nDas Passwort für das Webinterface wurde erfolgreich zurückgesetzt.\nUsername: %s\nPasswort: [B]%s[/B]\n\n%sHier%s einloggen."; +$lang['wirtpw5'] = "Es wurde eine private Nachricht mit dem neuen Passwort an den Admin auf dem TS3 Server geschickt."; +$lang['wirtpw6'] = "Das Passwort für das Webinterface wurde erfolgreich zurückgesetzt. Anforderung von IP %s."; +$lang['wirtpw7'] = "Password zurücksetzen"; +$lang['wirtpw8'] = "Hier kannst du das Passwort für das Webinterface zurücksetzen."; +$lang['wirtpw9'] = "Folgende Dinge werden für den Reset benötigt:"; +$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."; +$lang['wishcolas'] = "aktuelle Servergruppe"; +$lang['wishcolasdesc'] = "Zeige Spalte 'aktuelle Servergruppe' in der stats/list_rankup.php"; +$lang['wishcolat'] = "aktive Zeit"; +$lang['wishcolatdesc'] = "Zeige Spalte 'ges. aktive Zeit' in der stats/list_rankup.php"; +$lang['wishcolcld'] = "Client-Name"; +$lang['wishcolclddesc'] = "Zeige Spalte 'Client-Name' in der stats/list_rankup.php"; +$lang['wishcoldbid'] = "Datenbank-ID"; +$lang['wishcoldbiddesc'] = "Zeige Spalte 'Client-Datenbank-ID' in der stats/list_rankup.php"; +$lang['wishcolgs'] = "aktuelle Gruppe seit"; +$lang['wishcolgsdesc'] = "Zeige Spalte 'aktuelle Gruppe seit' in der stats/list_rankup.php"; +$lang['wishcolha'] = "hashe IP Adressen"; +$lang['wishcolhadesc'] = "Aktiviert das Verschlüsseln / Hashen von IP Adressen von TeamSpeak Benutzern und speichert lediglich den gehashten Wert in der Datenbank.
Dies kann aufgrund von bestimmten Datenschutzbestimmungen erforderlich werden; insbesondere fordert dies die EU-DSGVO.
Wir können jedoch nicht gänzlich auf die IP Adresse verzichten, da diese für das Verknüpfen des Webseiten-Besuchers mit dem zugehörigen TeamSpeak User benötigt wird.

Wenn diese Funktion deaktiviert (OFF) ist, wird die IP Adresse eines TeamSpeak Nutzers im Klartext gespeichert.

In beiden Varianten (ON und OFF) wird die IP Adresse jedoch nur so lange gespeichert, wie der Benutzer mit dem TS3 Server verbunden ist.

!!! Verschlüsseln / Hashen von IP Adressen benötigt mehr Ressourcen und wirkt sich negativ auf die Performance der Webseite aus !!!

Die IP Adressen von Benutzern werden beim Verbinden des Users auf dem TS3 Server gespeichert. Beim Wechsel der Funktion ist es daher erforderlich, dass der User sich erneut zum TS3 Server verbindet, bevor er sich auf der Ranksystem Webseite verifizieren kann."; +$lang['wishcolit'] = "idle Zeit"; +$lang['wishcolitdesc'] = "Zeige Spalte 'ges. idle Zeit' in der stats/list_rankup.php"; +$lang['wishcolls'] = "zuletzt gesehen"; +$lang['wishcollsdesc'] = "Zeige Spalte 'zuletzt gesehen' in der stats/list_rankup.php"; +$lang['wishcolnx'] = "nächster rank up"; +$lang['wishcolnxdesc'] = "Zeige Spalte 'nächster Rang' in der stats/list_rankup.php"; +$lang['wishcolot'] = "online Zeit"; +$lang['wishcolotdesc'] = "Zeige Spalte 'ges. online Zeit' in der stats/list_rankup.php"; +$lang['wishcolrg'] = "Rang"; +$lang['wishcolrgdesc'] = "Zeige Spalte 'Rang' in der stats/list_rankup.php"; +$lang['wishcolsg'] = "nächste Servergruppe"; +$lang['wishcolsgdesc'] = "Zeige Spalte 'nächste Servergruppe' in der stats/list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Zeige Spalte 'eindeutige Client-ID' in der stats/list_rankup.php"; +$lang['wishexcld'] = "ausgeschl. Clients"; +$lang['wishexclddesc'] = "Zeige User in der list_rankup.php, welche ausgeschlossen sind und demnach nicht am Ranksystem teilnehmen."; +$lang['wishexgrp'] = "ausgeschl. Servergruppen"; +$lang['wishexgrpdesc'] = "Zeige User in der list_rankup.php, welche über die 'Servergruppen-Ausnahmen' nicht am Ranksystem teilnehmen."; +$lang['wishhicld'] = "User in höchestem Rang"; +$lang['wishhiclddesc'] = "Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben."; +$lang['wishnav'] = "Zeige Seitennavigation"; +$lang['wishnavdesc'] = "Zeige die Seitennavigation auf der 'stats/' Seite.

Wenn diese Option deaktiviert ist, wird die Seitennavigation auf der Stats Seite ausgeblendet.
So kannst du jede einzelne Seite z.B. die 'stats/list_rankup.php' besser als Frame in eine bestehende Website bzw. Forum einbinden."; +$lang['wisupidle'] = "Modus"; +$lang['wisupidledesc'] = "Es gibt zwei Ausprägungen, wie Zeiten gewertet werden können und dann für eine Rangsteigerung herangezogen werden.

1) online Zeit: Hier wird die reine online Zeit des Users beachtet (siehe Spalte 'ges. online Zeit' in der stats/list_rankup.php).

2) aktive Zeit: Hier wird von der online Zeit eines Users noch die inaktive Zeit (Idle) abgezogen (siehe Spalte 'ges. aktive Zeit' in der stats/list_rankup.php).


Eine Umstellung des Modus mit einer bereits länger laufenden Datenbank wird nicht empfohlen, kann aber funktionieren."; +$lang['wisvconf'] = "speichern"; +$lang['wisvsuc'] = "Änderungen erfolgreich gesichert!"; +$lang['wisvres'] = "Damit die Änderungen wirksam werden ist ein Neustart des Ranksystems erforderlich! %s"; +$lang['witime'] = "Zeitzone"; +$lang['witimedesc'] = "Wähle die Zeitzone, die für den Sever gilt."; +$lang['wits3avat'] = "Avatar Verzögerung"; +$lang['wits3avatdesc'] = "Definiere eine Zeit in Sekunden als Verzögerung zum Download geänderter TS3 Avatare.
Aktualisierte bzw. geänderte Avatare werden dann erst X Sekunden nach Änderung/Upload auf dem TS3, herunter geladen.

Diese Funktion ist speziell bei (Musik)Bots nützlich, welche ihr Avatare stetig ändern."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "Die channel-ID, mit der sich der Bot verbindet.

In diesem Channel wechselt der Bot nach dem Verbinden mit dem TeamSpeak Server."; +$lang['wits3host'] = "TS3 Hostadresse"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server Adresse
(IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "Mit dem Slowmode werden die Query-Anfragen an den TeamSpeak Server reduziert. Dies schützt vor einem Ban aufgrund von flooding.
TeamSpeak Query Befehle werden mit dieser Funktion verzögert abgeschickt.

!!! AUCH REDUZIERT DER SLOWMODE DIE CPU USAGE !!!

Die Aktivierung ist nicht empfohlen, wenn nicht benötigt. Die Verzögerung (delay) erhöht die Laufzeit eines Durchgangs des Bots, dadurch wird er unpräziser. Umso höher der Delay, umso unpräziser sind die Ergebnisse.

Die letzte Spalte zeigt die benötigte Laufzeit für einen Durchgang (in Sekunden):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

Folglich werden die Werte (Zeiten) im ultra delay um ca. 65 Sekunden ungenau! Je nach Umfang, was zu tun ist bzw. Servergröße noch höher!"; +$lang['wits3qnm'] = "Botname"; +$lang['wits3qnm2'] = "2. Botname"; +$lang['wits3qnm2desc'] = "Ein zweiter Botname, falls der erste bereits genutzt wird."; +$lang['wits3qnmdesc'] = "Der Name, mit dem die Query-Verbindung augebaut werden soll.
Der Name kann frei gewählt werden."; +$lang['wits3querpw'] = "TS3 Query-Passwort"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 Query Passwort
Passwort des Query Benutzers"; +$lang['wits3querusr'] = "TS3 Query-Benutzer"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 Query Benutzername
Standard ist serveradmin
Natürlich kann auch ein gesonderter Query-Benutzer erstellt und genutzt werden.
Die benötigten Rechte sind hier aufgelistet:
http://ts-n.net/ranksystem.php"; +$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['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 43f5d9d..2aa136d 100644 --- a/languages/core_en.php +++ b/languages/core_en.php @@ -1,529 +1,534 @@ - added to the Ranksystem now."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; -$lang['crawl'] = "Scanning for connected users and count the activity..."; -$lang['clean'] = "Scanning for clients to delete..."; -$lang['cleanc'] = "clean clients"; -$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

This function is only enabled when the 'Slowmode' is deactivated!


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "%s clients were deleted out of the Ranksystem database, because they were no longer existing in the TeamSpeak database."; -$lang['cleanno'] = "There was nothing to delete..."; -$lang['cleanp'] = "clean period"; -$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

Set a time in seconds.

Recommended is once a day, because the client cleaning needs much time for bigger databases."; -$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; -$lang['cleants'] = "Clients found in the TeamSpeak database: %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 days"; -$lang['dbconerr'] = "Failed to connect to database: "; -$lang['delcldgrpif'] = "Error while removing the knowledge for servergroups: %s"; -$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; -$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; -$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; -$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'] = "Username and/or password are incorrect! Try again..."; -$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; -$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; -$lang['error'] = "Error "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; -$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; -$lang['errselusr'] = "Please choose at least one user!"; -$lang['errseltime'] = "Please enter an online time to add!"; -$lang['errukwn'] = "An unknown error has occurred!"; -$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; -$lang['highest'] = "highest rank reached"; -$lang['install'] = "Installation"; -$lang['instdb'] = "Install database"; -$lang['instdbsuc'] = "Database %s successfully created."; -$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; -$lang['insterr2'] = "PDO is needed but seems not to be installed. Install PDO and try it again!"; -$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP exec function and try it again!"; -$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; -$lang['insterr5'] = "SimpleXML is needed but seems not to be available. Install simpleXML and try it again!"; -$lang['insterr6'] = "PHP cURL is needed but seems not to be available. Install PHP cURL and try it again!"; -$lang['insterr7'] = "PHP Zip is needed but seems not to be available. Install PHP Zip and try it again!"; -$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Can't save the database configuration! Please assign full rights on 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') and try again after."; -$lang['isntwicfg2'] = "Configure Webinterface"; -$lang['isntwichm'] = "Writing permissions on folder \"%s\" are absent. Please assign full rights (Linux: chmod 777; Windows: 'full access') and try to start the Ranksystem again."; -$lang['isntwiconf'] = "Open the %s to configure the Ranksystem!"; -$lang['isntwidbhost'] = "DB Hostaddress:"; -$lang['isntwidbhostdesc'] = "Database server address
(IP or DNS)"; -$lang['isntwidbmsg'] = "Database error: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name of database"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "Password to access the database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "Database type

You have to install the needed PDO Driver.
For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "User to access the database"; -$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver"; -$lang['isntwiusr'] = "User for the webinterface successfully created."; -$lang['isntwiusrcr'] = "Create Webinterface-User"; -$lang['isntwiusrdesc'] = "Enter a username and password for access the webinterface. With the webinterface you can configurate the ranksytem."; -$lang['isntwiusrh'] = "Access - Webinterface"; -$lang['listacsg'] = "current servergroup"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "No, cause excepted"; -$lang['listgrps'] = "current group since"; -$lang['listip'] = "IP address"; -$lang['listnick'] = "Clientname"; -$lang['listnxsg'] = "next servergroup"; -$lang['listnxup'] = "next rank up"; -$lang['listrank'] = "rank"; -$lang['listseen'] = "last seen"; -$lang['listsuma'] = "sum. active time"; -$lang['listsumi'] = "sum. idle time"; -$lang['listsumo'] = "sum. online time"; -$lang['listuid'] = "unique Client-ID"; -$lang['login'] = "Login"; -$lang['msg0001'] = "running version: %s"; -$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; -$lang['msg0003'] = "You are not eligible for this command!"; -$lang['msg0004'] = "Client %s (%s) requests shutdown."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) requests 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['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; -$lang['noentry'] = "No entries found.."; -$lang['pass'] = "Password"; -$lang['pass2'] = "Change password"; -$lang['pass3'] = "old password"; -$lang['pass4'] = "new password"; -$lang['pass5'] = "Forgot password?"; -$lang['queryname'] = "First bot name already in use. Trying with second bot name..."; -$lang['repeat'] = "repeat"; -$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; -$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; -$lang['sccupcount'] = "Added successfully an online time of %s seconds to the users with the unique Client-IDs (%s)"; -$lang['setontime'] = "add time"; -$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; -$lang['sgrpadd'] = "Grant servergroup %s (ID: %s) to user %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "Removed servergroup %s (ID: %s) from user %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'] = "Assign Servergroups"; -$lang['stag0002'] = "Allowed Groups"; -$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; -$lang['stag0004'] = "Limit Groups"; -$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; -$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of simultaneous groups: "; -$lang['stag0012'] = "set groups"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Turn the addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "Server statistics"; -$lang['stix0002'] = "Total users"; -$lang['stix0003'] = "View details"; -$lang['stix0004'] = "Online time of all user / Total"; -$lang['stix0005'] = "View top of all time"; -$lang['stix0006'] = "View top of the month"; -$lang['stix0007'] = "View top of the week"; -$lang['stix0008'] = "Server usage"; -$lang['stix0009'] = "In the last 7 days"; -$lang['stix0010'] = "In the last 30 days"; -$lang['stix0011'] = "In the last 24 hours"; -$lang['stix0012'] = "select period"; -$lang['stix0013'] = "Last day"; -$lang['stix0014'] = "Last week"; -$lang['stix0015'] = "Last month"; -$lang['stix0016'] = "Active / inactive time (of all clients)"; -$lang['stix0017'] = "Versions (of all clients)"; -$lang['stix0018'] = "Nationalities (of all clients)"; -$lang['stix0019'] = "Platforms (of all clients)"; -$lang['stix0020'] = "Current statistics"; -$lang['stix0023'] = "Server status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clients (Online / Max)"; -$lang['stix0027'] = "Amount of channels"; -$lang['stix0028'] = "Average server ping"; -$lang['stix0029'] = "Total bytes received"; -$lang['stix0030'] = "Total bytes sent"; -$lang['stix0031'] = "Server uptime"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Average packet loss"; -$lang['stix0035'] = "Overall statistics"; -$lang['stix0036'] = "Server name"; -$lang['stix0037'] = "Server address (Host Address : Port)"; -$lang['stix0038'] = "Server password"; -$lang['stix0039'] = "No (Server is public)"; -$lang['stix0040'] = "Yes (Server Is private)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platform"; -$lang['stix0043'] = "Server version"; -$lang['stix0044'] = "Server creation date (dd/mm/yyyy)"; -$lang['stix0045'] = "Report to server list"; -$lang['stix0046'] = "Activated"; -$lang['stix0047'] = "Not activated"; -$lang['stix0048'] = "not enough data yet..."; -$lang['stix0049'] = "Online time of all user / month"; -$lang['stix0050'] = "Online time of all user / week"; -$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; -$lang['stix0052'] = "others"; -$lang['stix0053'] = "Active Time (in Days)"; -$lang['stix0054'] = "Inactive Time (in Days)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stmy0001'] = "My statistics"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "Total connections to the server:"; -$lang['stmy0006'] = "Start date for statistics:"; -$lang['stmy0007'] = "Total online time:"; -$lang['stmy0008'] = "Online time last %s days:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "Achievements completed:"; -$lang['stmy0011'] = "Time achievement progress"; -$lang['stmy0012'] = "Time: Legendary"; -$lang['stmy0013'] = "Because you have an online time of %s hours."; -$lang['stmy0014'] = "Progress completed"; -$lang['stmy0015'] = "Time: Gold"; -$lang['stmy0016'] = "% Completed for Legendary"; -$lang['stmy0017'] = "Time: Silver"; -$lang['stmy0018'] = "% Completed for Gold"; -$lang['stmy0019'] = "Time: Bronze"; -$lang['stmy0020'] = "% Completed for Silver"; -$lang['stmy0021'] = "Time: Unranked"; -$lang['stmy0022'] = "% Completed for Bronze"; -$lang['stmy0023'] = "Connection achievement progress"; -$lang['stmy0024'] = "Connects: Legendary"; -$lang['stmy0025'] = "Because You connected %s times to the server."; -$lang['stmy0026'] = "Connects: Gold"; -$lang['stmy0027'] = "Connects: Silver"; -$lang['stmy0028'] = "Connects: Bronze"; -$lang['stmy0029'] = "Connects: Unranked"; -$lang['stmy0030'] = "Progress next servergroup"; -$lang['stmy0031'] = "Total active time"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Server news"; -$lang['stnv0002'] = "Close"; -$lang['stnv0003'] = "Refresh client information"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0007'] = "Battle area - Page content"; -$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; -$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; -$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; -$lang['stnv0011'] = "(The regular battling time is 48 hours)"; -$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; -$lang['stnv0013'] = "It will be displayed on the My statistics tab."; -$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; -$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(You are not connected to the TS3!)"; -$lang['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "Ranksystem information"; -$lang['stri0002'] = "What is the Ranksystem?"; -$lang['stri0003'] = "A TS3 bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; -$lang['stri0009'] = "How was the Ranksystem created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; -$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; -$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; -$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; -$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'] = "Top users"; -$lang['sttw0002'] = "Of the week"; -$lang['sttw0003'] = "With %s %s online time"; -$lang['sttw0004'] = "Top 10 compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 vs others in online time"; -$lang['sttw0009'] = "Top 10 vs others in active time"; -$lang['sttw0010'] = "Top 10 vs others in inactive time"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "Of the month"; -$lang['stta0001'] = "Of all time"; -$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['stve0002'] = "A message with the token was sent to you on the TS3 server."; -$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_day'] = "Day(s)"; -$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]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]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "User %s was successfully informed."; -$lang['user'] = "Username"; -$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'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "admin ID"; -$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$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 should be stopped. Check the log below for more information!"; -$lang['wibot2'] = "Ranksystem bot should be started. Check the log below for more information!"; -$lang['wibot3'] = "Ranksystem bot should be restarted. Check the log below for more information!"; -$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'] = "Fill out all mandatory fields before starting the Ranksystem bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; -$lang['wichpw1'] = "Your old password is wrong. Please try again"; -$lang['wichpw2'] = "The new passwords dismatch. Please try again."; -$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; -$lang['wichpw4'] = "Change Password"; -$lang['widaform'] = "Date format"; -$lang['widaformdesc'] = "Choose the showing date format.

Example:
%a days, %h hours, %i mins, %s secs"; -$lang['widbcfgsuc'] = "Database configurations saved successfully."; -$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; -$lang['widelcld'] = "delete clients"; -$lang['widelcldgrp'] = "renew groups"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; -$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; -$lang['widelsg'] = "remove out of servergroups"; -$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; -$lang['wideltime'] = "Deletiontime"; -$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; -$lang['wiexcid'] = "channel exception"; -$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

This function makes only sense with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user does no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "exception mode"; -$lang['wiexres1'] = "default (count time)"; -$lang['wiexres2'] = "break time"; -$lang['wiexres3'] = "reset time"; -$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; -$lang['wiexuid'] = "client exception"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wigrptime'] = "rank up definition"; -$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; -$lang['wihladm'] = "List Rankup (Admin-Mode)"; -$lang['wihladm1'] = "Add online Time to User"; -$lang['wihlcfg'] = "Core settings"; -$lang['wihldb'] = "Database settings"; -$lang['wihlmsg'] = "Message settings"; -$lang['wihlsty'] = "Stats page settings"; -$lang['wihlts'] = "TeamSpeak settings"; -$lang['wihlvs'] = "Various settings"; -$lang['wiignidle'] = "Ignore idle"; -$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 = disable the feature

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; -$lang['wilogout'] = "Logout"; -$lang['wimsgmsg'] = "Messages"; -$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wimsgusr'] = "Rank up notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Other"; -$lang['winav5'] = "Message"; -$lang['winav6'] = "Stats page"; -$lang['winav7'] = "Administrate"; -$lang['winav8'] = "Start / Stop bot"; -$lang['winav9'] = "Update available!"; -$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; -$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Command \"!nextup\""; -$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

disabled - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; -$lang['winxmode1'] = "disabled"; -$lang['winxmode2'] = "allowed - only next rank"; -$lang['winxmode3'] = "allowed - all next ranks"; -$lang['winxmsg1'] = "Message"; -$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; -$lang['winxmsg2'] = "Message (highest)"; -$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; -$lang['winxmsg3'] = "Message (excepted)"; -$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; -$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; -$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; -$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; -$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$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."; -$lang['wishcolas'] = "actual servergroup"; -$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; -$lang['wishcolat'] = "active time"; -$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; -$lang['wishcolcld'] = "Client-name"; -$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; -$lang['wishcoldbid'] = "database-ID"; -$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; -$lang['wishcolgs'] = "actual group since"; -$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; -$lang['wishcolit'] = "idle time"; -$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; -$lang['wishcolls'] = "last seen"; -$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; -$lang['wishcolnx'] = "next rank up"; -$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; -$lang['wishcolot'] = "online time"; -$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; -$lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; -$lang['wishcolsg'] = "next servergroup"; -$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; -$lang['wishexcld'] = "excepted client"; -$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; -$lang['wishexgrp'] = "excepted groups"; -$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wishnav'] = "show site-navigation"; -$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site e.g. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; -$lang['wisupidle'] = "Mode"; -$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; -$lang['wisvconf'] = "save"; -$lang['wisvsuc'] = "Changes successfully saved!"; -$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; -$lang['wits3avat'] = "Avatar Delay"; -$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The bot will join this channel after connecting to the TeamSpeak server."; -$lang['wits3host'] = "TS3 Hostaddress"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Bot name"; -$lang['wits3qnm2'] = "2nd bot name"; -$lang['wits3qnm2desc'] = "A fallback bot name, if the first one is already in use."; -$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; -$lang['wits3querpw'] = "TS3 Query-Password"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; -$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['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"; -$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; + added to the Ranksystem now."; +$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; +$lang['changedbid'] = "User %s (unique Client-ID: %s) got a new TeamSpeak Client-database-ID (%s). Update the old Client-database-ID (%s) and reset collected times!"; +$lang['crawl'] = "Scanning for connected users and count the activity..."; +$lang['clean'] = "Scanning for clients to delete..."; +$lang['cleanc'] = "clean clients"; +$lang['cleancdesc'] = "With this function the old clients in the Ranksystem get deleted.

To this end, the Ranksystem sychronized with the TeamSpeak database. Clients, which do not exist in TeamSpeak, will be deleted from the Ranksystem.

This function is only enabled when the 'Slowmode' is deactivated!


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "%s clients were deleted out of the Ranksystem database, because they were no longer existing in the TeamSpeak database."; +$lang['cleanno'] = "There was nothing to delete..."; +$lang['cleanp'] = "clean period"; +$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

Set a time in seconds.

Recommended is once a day, because the client cleaning needs much time for bigger databases."; +$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; +$lang['cleants'] = "Clients found in the TeamSpeak database: %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['day'] = "%s day"; +$lang['days'] = "%s days"; +$lang['dbconerr'] = "Failed to connect to database: "; +$lang['delcldgrpif'] = "Error while removing the knowledge for servergroups: %s"; +$lang['delcldgrpsc'] = "Knowledge about servergroups for %s User successfully removed."; +$lang['delclientsif'] = "%s Clients deleted out of the Ranksystem database!"; +$lang['delclientssc'] = "%s Clients successfully deleted out of the Ranksystem database!"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "Username and/or password are incorrect! Try again..."; +$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; +$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; +$lang['error'] = "Error "; +$lang['errorts3'] = "TS3 Error: "; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!"; +$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!"; +$lang['errselusr'] = "Please choose at least one user!"; +$lang['errseltime'] = "Please enter an online time to add!"; +$lang['errukwn'] = "An unknown error has occurred!"; +$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s"; +$lang['highest'] = "highest rank reached"; +$lang['install'] = "Installation"; +$lang['instdb'] = "Install database"; +$lang['instdbsuc'] = "Database %s successfully created."; +$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; +$lang['insterr2'] = "PDO is needed but seems not to be installed. Install PDO and try it again!"; +$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP exec function and try it again!"; +$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; +$lang['insterr5'] = "SimpleXML is needed but seems not to be available. Install simpleXML and try it again!"; +$lang['insterr6'] = "PHP cURL is needed but seems not to be available. Install PHP cURL and try it again!"; +$lang['insterr7'] = "PHP Zip is needed but seems not to be available. Install PHP Zip and try it again!"; +$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Can't save the database configuration! Please assign full rights on 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') and try again after."; +$lang['isntwicfg2'] = "Configure Webinterface"; +$lang['isntwichm'] = "Writing permissions on folder \"%s\" are absent. Please assign full rights (Linux: chmod 777; Windows: 'full access') and try to start the Ranksystem again."; +$lang['isntwiconf'] = "Open the %s to configure the Ranksystem!"; +$lang['isntwidbhost'] = "DB Hostaddress:"; +$lang['isntwidbhostdesc'] = "Database server address
(IP or DNS)"; +$lang['isntwidbmsg'] = "Database error: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc'] = "Name of database"; +$lang['isntwidbpass'] = "DB Password:"; +$lang['isntwidbpassdesc'] = "Password to access the database"; +$lang['isntwidbtype'] = "DB Type:"; +$lang['isntwidbtypedesc'] = "Database type

You have to install the needed PDO Driver.
For more informations have look at the requirements on http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc'] = "User to access the database"; +$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver"; +$lang['isntwiusr'] = "User for the webinterface successfully created."; +$lang['isntwiusrcr'] = "Create Webinterface-User"; +$lang['isntwiusrdesc'] = "Enter a username and password for access the webinterface. With the webinterface you can configurate the ranksytem."; +$lang['isntwiusrh'] = "Access - Webinterface"; +$lang['listacsg'] = "current servergroup"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexcept'] = "No, cause excepted"; +$lang['listgrps'] = "current group since"; +$lang['listnick'] = "Clientname"; +$lang['listnxsg'] = "next servergroup"; +$lang['listnxup'] = "next rank up"; +$lang['listrank'] = "rank"; +$lang['listseen'] = "last seen"; +$lang['listsuma'] = "sum. active time"; +$lang['listsumi'] = "sum. idle time"; +$lang['listsumo'] = "sum. online time"; +$lang['listuid'] = "unique Client-ID"; +$lang['login'] = "Login"; +$lang['msg0001'] = "running version: %s"; +$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; +$lang['msg0003'] = "You are not eligible for this command!"; +$lang['msg0004'] = "Client %s (%s) requests shutdown."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Client %s (%s) requests 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['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!"; +$lang['noentry'] = "No entries found.."; +$lang['pass'] = "Password"; +$lang['pass2'] = "Change password"; +$lang['pass3'] = "old password"; +$lang['pass4'] = "new password"; +$lang['pass5'] = "Forgot password?"; +$lang['queryname'] = "First bot name already in use. Trying with second bot name..."; +$lang['repeat'] = "repeat"; +$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; +$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "add time"; +$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; +$lang['sgrpadd'] = "Grant servergroup %s (ID: %s) to user %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "Removed servergroup %s (ID: %s) from user %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'] = "Assign Servergroups"; +$lang['stag0002'] = "Allowed Groups"; +$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; +$lang['stag0004'] = "Limit Groups"; +$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; +$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; +$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; +$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; +$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; +$lang['stag0010'] = "Please choose at least one new group."; +$lang['stag0011'] = "Limit of simultaneous groups: "; +$lang['stag0012'] = "set groups"; +$lang['stag0013'] = "Addon ON/OFF"; +$lang['stag0014'] = "Turn the addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "Server statistics"; +$lang['stix0002'] = "Total users"; +$lang['stix0003'] = "View details"; +$lang['stix0004'] = "Online time of all user / Total"; +$lang['stix0005'] = "View top of all time"; +$lang['stix0006'] = "View top of the month"; +$lang['stix0007'] = "View top of the week"; +$lang['stix0008'] = "Server usage"; +$lang['stix0009'] = "In the last 7 days"; +$lang['stix0010'] = "In the last 30 days"; +$lang['stix0011'] = "In the last 24 hours"; +$lang['stix0012'] = "select period"; +$lang['stix0013'] = "Last day"; +$lang['stix0014'] = "Last week"; +$lang['stix0015'] = "Last month"; +$lang['stix0016'] = "Active / inactive time (of all clients)"; +$lang['stix0017'] = "Versions (of all clients)"; +$lang['stix0018'] = "Nationalities (of all clients)"; +$lang['stix0019'] = "Platforms (of all clients)"; +$lang['stix0020'] = "Current statistics"; +$lang['stix0023'] = "Server status"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Clients (Online / Max)"; +$lang['stix0027'] = "Amount of channels"; +$lang['stix0028'] = "Average server ping"; +$lang['stix0029'] = "Total bytes received"; +$lang['stix0030'] = "Total bytes sent"; +$lang['stix0031'] = "Server uptime"; +$lang['stix0032'] = "before offline:"; +$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; +$lang['stix0034'] = "Average packet loss"; +$lang['stix0035'] = "Overall statistics"; +$lang['stix0036'] = "Server name"; +$lang['stix0037'] = "Server address (Host Address : Port)"; +$lang['stix0038'] = "Server password"; +$lang['stix0039'] = "No (Server is public)"; +$lang['stix0040'] = "Yes (Server Is private)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server platform"; +$lang['stix0043'] = "Server version"; +$lang['stix0044'] = "Server creation date (dd/mm/yyyy)"; +$lang['stix0045'] = "Report to server list"; +$lang['stix0046'] = "Activated"; +$lang['stix0047'] = "Not activated"; +$lang['stix0048'] = "not enough data yet..."; +$lang['stix0049'] = "Online time of all user / month"; +$lang['stix0050'] = "Online time of all user / week"; +$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; +$lang['stix0052'] = "others"; +$lang['stix0053'] = "Active Time (in Days)"; +$lang['stix0054'] = "Inactive Time (in Days)"; +$lang['stix0055'] = "online last 24 hours"; +$lang['stix0056'] = "online last %s days"; +$lang['stix0059'] = "List of user"; +$lang['stix0060'] = "User"; +$lang['stix0061'] = "View all versions"; +$lang['stix0062'] = "View all nations"; +$lang['stix0063'] = "View all platforms"; +$lang['stmy0001'] = "My statistics"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unique ID:"; +$lang['stmy0005'] = "Total connections to the server:"; +$lang['stmy0006'] = "Start date for statistics:"; +$lang['stmy0007'] = "Total online time:"; +$lang['stmy0008'] = "Online time last %s days:"; +$lang['stmy0009'] = "Active time last %s days:"; +$lang['stmy0010'] = "Achievements completed:"; +$lang['stmy0011'] = "Time achievement progress"; +$lang['stmy0012'] = "Time: Legendary"; +$lang['stmy0013'] = "Because you have an online time of %s hours."; +$lang['stmy0014'] = "Progress completed"; +$lang['stmy0015'] = "Time: Gold"; +$lang['stmy0016'] = "% Completed for Legendary"; +$lang['stmy0017'] = "Time: Silver"; +$lang['stmy0018'] = "% Completed for Gold"; +$lang['stmy0019'] = "Time: Bronze"; +$lang['stmy0020'] = "% Completed for Silver"; +$lang['stmy0021'] = "Time: Unranked"; +$lang['stmy0022'] = "% Completed for Bronze"; +$lang['stmy0023'] = "Connection achievement progress"; +$lang['stmy0024'] = "Connects: Legendary"; +$lang['stmy0025'] = "Because You connected %s times to the server."; +$lang['stmy0026'] = "Connects: Gold"; +$lang['stmy0027'] = "Connects: Silver"; +$lang['stmy0028'] = "Connects: Bronze"; +$lang['stmy0029'] = "Connects: Unranked"; +$lang['stmy0030'] = "Progress next servergroup"; +$lang['stmy0031'] = "Total active time"; +$lang['stna0001'] = "Nations"; +$lang['stna0002'] = "statistics"; +$lang['stna0003'] = "Code"; +$lang['stna0004'] = "Count"; +$lang['stna0005'] = "Versions"; +$lang['stna0006'] = "Platforms"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "Server news"; +$lang['stnv0002'] = "Close"; +$lang['stnv0003'] = "Refresh client information"; +$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; +$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; +$lang['stnv0006'] = "Refresh"; +$lang['stnv0007'] = "Battle area - Page content"; +$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; +$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; +$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; +$lang['stnv0011'] = "(The regular battling time is 48 hours)"; +$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; +$lang['stnv0013'] = "It will be displayed on the My statistics tab."; +$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; +$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; +$lang['stnv0016'] = "Not available"; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; +$lang['stnv0019'] = "My statistics - Page content"; +$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "Ranksystem - Statistics"; +$lang['stnv0025'] = "Limit entries"; +$lang['stnv0026'] = "all"; +$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; +$lang['stnv0028'] = "(You are not connected to the TS3!)"; +$lang['stnv0029'] = "List Rankup"; +$lang['stnv0030'] = "Ranksystem info"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "connect TS3"; +$lang['stri0001'] = "Ranksystem information"; +$lang['stri0002'] = "What is the Ranksystem?"; +$lang['stri0003'] = "A TS3 bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "Who created the Ranksystem?"; +$lang['stri0005'] = "When the Ranksystem was Created?"; +$lang['stri0006'] = "First alpha release: 05/10/2014."; +$lang['stri0007'] = "First beta release: 01/02/2015."; +$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; +$lang['stri0009'] = "How was the Ranksystem created?"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = "Special Thanks To:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; +$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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Top users"; +$lang['sttw0002'] = "Of the week"; +$lang['sttw0003'] = "With %s %s online time"; +$lang['sttw0004'] = "Top 10 compared"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "Top 10 Statistics"; +$lang['sttw0008'] = "Top 10 vs others in online time"; +$lang['sttw0009'] = "Top 10 vs others in active time"; +$lang['sttw0010'] = "Top 10 vs others in inactive time"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "Other %s users (in hours)"; +$lang['sttw0013'] = "With %s %s active time"; +$lang['sttw0014'] = "hours"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "Of the month"; +$lang['stta0001'] = "Of all time"; +$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['stve0002'] = "A message with the token was sent to you on the TS3 server."; +$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; +$lang['stve0004'] = "The entered token does not match! Please try it again."; +$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; +$lang['stve0009'] = " -- select yourself -- "; +$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verify"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_day'] = "Day(s)"; +$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]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]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "User %s was successfully informed."; +$lang['user'] = "Username"; +$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'] = "Webinterface"; +$lang['wiaction'] = "action"; +$lang['wiadmhide'] = "hide excepted clients"; +$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; +$lang['wiadmuuid'] = "admin ID"; +$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$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 should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem bot should be restarted. Check the log below for more information!"; +$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'] = "Fill out all mandatory fields before starting the Ranksystem bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['wichpw1'] = "Your old password is wrong. Please try again"; +$lang['wichpw2'] = "The new passwords dismatch. Please try again."; +$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; +$lang['wichpw4'] = "Change Password"; +$lang['widaform'] = "Date format"; +$lang['widaformdesc'] = "Choose the showing date format.

Example:
%a days, %h hours, %i mins, %s secs"; +$lang['widbcfgsuc'] = "Database configurations saved successfully."; +$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; +$lang['widelcld'] = "delete clients"; +$lang['widelcldgrp'] = "renew groups"; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "remove out of servergroups"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "Deletiontime"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "channel exception"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

This function makes only sense with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user does no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexres'] = "exception mode"; +$lang['wiexres1'] = "default (count time)"; +$lang['wiexres2'] = "break time"; +$lang['wiexres3'] = "reset time"; +$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; +$lang['wiexuid'] = "client exception"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "rank up definition"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihladm1'] = "Add online Time to User"; +$lang['wihlcfg'] = "Core settings"; +$lang['wihldb'] = "Database settings"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignore idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 = disable the feature

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; +$lang['wilogout'] = "Logout"; +$lang['wimsgmsg'] = "Messages"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Command \"!nextup\""; +$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

disabled - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; +$lang['winxmode1'] = "disabled"; +$lang['winxmode2'] = "allowed - only next rank"; +$lang['winxmode3'] = "allowed - all next ranks"; +$lang['winxmsg1'] = "Message"; +$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"!nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; +$lang['winxmsg2'] = "Message (highest)"; +$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; +$lang['winxmsg3'] = "Message (excepted)"; +$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; +$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; +$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; +$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; +$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; +$lang['wirtpw7'] = "Reset Password"; +$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; +$lang['wirtpw9'] = "Following things are required to reset the password:"; +$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."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; +$lang['wishcolgs'] = "actual group since"; +$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wishnav'] = "show site-navigation"; +$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site e.g. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3avat'] = "Avatar Delay"; +$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Bot name"; +$lang['wits3qnm2'] = "2nd bot name"; +$lang['wits3qnm2desc'] = "A fallback bot name, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; +$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['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"; +$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; ?> \ No newline at end of file diff --git a/languages/core_fr.php b/languages/core_fr.php index 18f8c84..56fde07 100644 --- a/languages/core_fr.php +++ b/languages/core_fr.php @@ -1,529 +1,534 @@ - Il vient d'être ajouté dans le Ranksystem."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "L'utilisateur %s (Identifiant unique: %s) a obtenu un nouveau TeamSpeak ID dans la base de donnée (%s). Mettez à jour l'ancien ID dans la base de donnée (%s) et réinitialisez les heures collectées !"; -$lang['crawl'] = "Scan des utilisateurs connectés et comptage de leur activité..."; -$lang['clean'] = "Scan des clients, certains doivent être supprimer..."; -$lang['cleanc'] = "Clients propres"; -$lang['cleancdesc'] = "Avec cette fonction, les anciens clients dans le ranksystem sont supprimés.

A la fin, le Ranksystem se sychronise avec la base de donnée du TeamSpeak. Les clients, qui n'existe pas ou plus dans le serveur TeamSpeak, seront alors supprimé du Ranksystem.

Cette fonction est uniquement active lorsque le 'Slowmode' est désactivé !


Pour un ajustement automatique de la base de données le 'ClientCleaner' peut être utilisé:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "%s clients ont été supprimés de la base de données du Ranksystem, parce qu'ils n'existaient plus dans la base de données du serveur TeamSpeak."; -$lang['cleanno'] = "Il n'y avait rien à supprimer..."; -$lang['cleanp'] = "Période de nettoyage"; -$lang['cleanpdesc'] = "Définissez un délai qui doit s'écouler avant que les 'clients propres' ne soient exécutés.

Mettez un temps en seconde.

C'est recommandé de la faire une fois par jour, le nettoyage du client nécessite beaucoup de temps pour les bases de données plus importantes."; -$lang['cleanrs'] = "Clients dans la base de donnée du Ranksystem: %s"; -$lang['cleants'] = "Clients trouvé dans la base de donnée du TeamSpeak: %s (De %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['days'] = "%s jours"; -$lang['dbconerr'] = "Échec de la connexion à la base de données: "; -$lang['delcldgrpif'] = "Erreur lors de la suppression des connaissances pour les groupes de serveurs: %s"; -$lang['delcldgrpsc'] = "Connaissances sur les groupes de serveurs de l'utilisateur %s ont été bien supprimées."; -$lang['delclientsif'] = "%s Clients supprimés de la base de données du Ranksystem !"; -$lang['delclientssc'] = "%s Clients supprimés avec succès de la base de données du 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['errlogin'] = "Nom d'utilisateur et/ou mot de passe erronés ! Réessayer de nouveau..."; -$lang['errlogin2'] = "Protection contre la brutalitée: Essayez à nouveau dans %s secondes!"; -$lang['errlogin3'] = "Protection contre la brutalitée: Vous avez fait trop d'erreurs. Ainsi résulte un banissement de 300 secondes !"; -$lang['error'] = "Erreur "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Erreur lors de la suppression de l'utilisateur avec l'identifiant unique %s qui est hors du groupe de serveur possédant l'id dans la base de données %s!"; -$lang['errremdb'] = "Erreur lors de la suppression de l'utilisateur avec l'identifiant unique %s qui est hors de la base de données du Ranksystem !"; -$lang['errselusr'] = "Veuillez choisir au moins un utilisateur !"; -$lang['errseltime'] = "Veuillez saisir une heure en ligne à ajouter !"; -$lang['errukwn'] = "Une erreur inconnue s'est produite !"; -$lang['errupcount'] = "Erreur lors du renouvellement du temps en ligne %s de l'utilisateur avec l'identifiant unique %s"; -$lang['highest'] = "plus haut rang atteint"; -$lang['install'] = "Installation"; -$lang['instdb'] = "Installer la base de données"; -$lang['instdbsuc'] = "La base de données %s a été créée."; -$lang['insterr1'] = "ATTENTION: Vous essayez d'installer le Ranksystem, mais il existe déjà une base de données avec le nom \"%s\".
L'installation supprimera alors cette base de données !
Assurez-vous que vous voulez cela. Sinon, veuillez choisir un autre nom de base de données."; -$lang['insterr2'] = "PDO est nécessaire, mais semble ne pas être installé. Installez PDO et essayez à nouveau !"; -$lang['insterr3'] = "La fonction PHP exec doit être activé, mais semble être désactivé. Veuillez activer la fonction PHP exec et essayez à nouveau !"; -$lang['insterr4'] = "Votre version PHP (%s) est inférieure à 5.5.0. Mettez à jour votre version de PHP et essayez à nouveau !"; -$lang['insterr5'] = "SimpleXML est nécessaire, mais semble ne pas être disponible. Install simpleXML et essayez à nouveau !"; -$lang['insterr6'] = "PHP cURL est nécessaire, mais semble ne pas être disponible. Installez PHP cURL et essayez à nouveau !"; -$lang['insterr7'] = "PHP Zip est nécessaire, mais semble ne pas être disponible. Installez PHP Zip and try it again!"; -$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Impossible d'enregistrer la configuration de la base de données ! Veuillez modifier le fichier 'other/dbconfig.php' avec un chmod 0777 (dans la fênetre 'accès complet') et essayez de nouveau après."; -$lang['isntwicfg2'] = "Configurer l'interface Web"; -$lang['isntwichm'] = "Échec des autorisations d'écriture sur le dossier \"%s\". Veuillez modifier le dossier avec un chmod 0777 (dans la fênetre 'accès complet') et essayez de nouveau après de démarer le ranksystem."; -$lang['isntwiconf'] = "Ouvrez le %s pour configurer le système de classement !"; -$lang['isntwidbhost'] = "Adresse de l'hôte BDD:"; -$lang['isntwidbhostdesc'] = "Adresse du serveur de base de données
(IP ou DNS)"; -$lang['isntwidbmsg'] = "Erreur de la base de données: "; -$lang['isntwidbname'] = "Nom de la BDD:"; -$lang['isntwidbnamedesc'] = "Nom de la base de données"; -$lang['isntwidbpass'] = "Mot de passe de la BDD:"; -$lang['isntwidbpassdesc'] = "Mot de passe pour accéder à la base de données"; -$lang['isntwidbtype'] = "Type de BDD:"; -$lang['isntwidbtypedesc'] = "Type de base de données

Vous devez installer le pilote PDO car il est nécessaire.
Pour plus d'informations, consultez les éléments requis sur http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "Utilisateur BDD:"; -$lang['isntwidbusrdesc'] = "Utilisateur pour accéder à la base de données"; -$lang['isntwidel'] = "Veuillez supprimer le fichier 'install.php' de votre serveur web"; -$lang['isntwiusr'] = "Utilisateur de l'interface Web créée avec succès."; -$lang['isntwiusrcr'] = "Créer un utilisateur pour l'interface web"; -$lang['isntwiusrdesc'] = "Saisissez un nom d'utilisateur et un mot de passe pour accéder à l'interface Web. Avec l'interface web, vous pouvez configurer le système de classement (RankSystem)."; -$lang['isntwiusrh'] = "Accès - Interface Web"; -$lang['listacsg'] = "Actuel groupe de serveur"; -$lang['listcldbid'] = "ID du client dans la base de donnée"; -$lang['listexcept'] = "Non, sauf exception"; -$lang['listgrps'] = "Groupe actuel depuis"; -$lang['listip'] = "Adresse IP"; -$lang['listnick'] = "Nom du client"; -$lang['listnxsg'] = "Groupe de serveur suivant"; -$lang['listnxup'] = "Rang suivant"; -$lang['listrank'] = "Rang"; -$lang['listseen'] = "Dernière apparition "; -$lang['listsuma'] = "Temps actif"; -$lang['listsumi'] = "Temps d'inactivité"; -$lang['listsumo'] = "Temps en ligne"; -$lang['listuid'] = "Identifiant unique de l'utilisateur"; -$lang['login'] = "S'identifier"; -$lang['msg0001'] = "version actuelle: %s"; -$lang['msg0002'] = "Les commandes valides sont:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t obtenir une liste de commandes\n[B]!version[/B]\t\t\t\t\t\t\t\t obtenir la version du Ranksystem\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t obtenir le temps pour le prochain rang \n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\tRedémarrer le bot du ranksystem\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t Arrêter le bot du ranksystem"; -$lang['msg0003'] = "Vous n'êtes pas admissible à cette commande !"; -$lang['msg0004'] = "Client %s (%s) demmande l'arrêt."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) demmande le redémarrage."; -$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['nocount'] = "L'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) est un utilisateur query ou est plusieurs fois en ligne (seulement les premiers comptages de connexion ) -> Cela ne compte pas !"; -$lang['noentry'] = "Aucune entrée trouvée..."; -$lang['pass'] = "Mot de passe"; -$lang['pass2'] = "Changer le mot de passe"; -$lang['pass3'] = "Ancien mot de passe"; -$lang['pass4'] = "Nouveau mot de passe"; -$lang['pass5'] = "Mot de passe oublié ?"; -$lang['queryname'] = "Premier nom de robot déjà utilisé. Essayer avec le second nom de robot (bot)..."; -$lang['repeat'] = "Répéter"; -$lang['resettime'] = "Réinitialiser le temps d'inactivité et d'inactivité de l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) à zéro, parce que l'utilisateur a été supprimé de l'exception."; -$lang['sccrmcld'] = "L'utilisateur avec l'identifiant unique %s a été retiré avec succès de la base de données du RankSystem."; -$lang['sccupcount'] = "Ajout avec succès d'un temps en ligne de %s secondes au(x) utilisateur(s) avec l'identifiant unique (%s)"; -$lang['setontime'] = "ajouter du temps"; -$lang['setontimedesc'] = "Ajouter du temps en ligne aux anciens clients sélectionnés. Chaque utilisateur obtiendra ce temps supplémentaire à son ancien temps en ligne.

Le nouveau temps en ligne entré sera considéré pour le rang et devrait prendre effet immédiatement."; -$lang['sgrpadd'] = "Groupe de serveur %s (ID: %s) accordé à l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "Groupe de serveur %s (ID: %s) supprimé à l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %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'] = "Attribuer des groupes de serveurs"; -$lang['stag0002'] = "Groupes autorisés"; -$lang['stag0003'] = "Définissez une liste de groupes de serveurs qu'un utilisateur peut lui-même affecter.

Les groupes de serveurs doivent être entrés ici avec leur ID de groupe séparé par des virgules.

Exemple:
23,24,28"; -$lang['stag0004'] = "Limiter les groupes"; -$lang['stag0005'] = "Limitez le nombre de groupes de serveurs, qui peuvent être définis en même temps."; -$lang['stag0006'] = "Il existe plusieurs identifiants uniques en ligne avec votre adresse IP. S'il vous plaît %cliquez ici%s pour vérifier en premier."; -$lang['stag0007'] = "Veuillez patienter jusqu'à ce que vos dernières modifications prennent effet avant que vous changiez déjà les prochaines choses ..."; -$lang['stag0008'] = "Les modifications de groupe ont été enregistrées avec succès. Cela peut prendre quelques secondes jusqu'à ce qu'ils prennent effet sur le serveur ts3."; -$lang['stag0009'] = "Vous ne pouvez pas choisir plus de %s groupe(s) en même temps !"; -$lang['stag0010'] = "Veuillez choisir au moins un nouveau groupe."; -$lang['stag0011'] = "Limite des groupes simultanés: "; -$lang['stag0012'] = "Définir un groupe"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Tournez l'Addon en on (activé) ou off (désactivé).

Lors de la désactivation de l'addon une partie possible sur les stats / site sera masqué."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "Statistiques du serveur"; -$lang['stix0002'] = "Nombre total d'utilisateurs"; -$lang['stix0003'] = "Voir les détails"; -$lang['stix0004'] = "Temps en ligne de tous les utilisateurs / Total"; -$lang['stix0005'] = "Voir le top de tous les temps"; -$lang['stix0006'] = "Voir le top du mois"; -$lang['stix0007'] = "Voir le top de la semaine"; -$lang['stix0008'] = "Utilisation du serveur"; -$lang['stix0009'] = "Au cours des 7 derniers jours"; -$lang['stix0010'] = "Au cours des 30 derniers jours"; -$lang['stix0011'] = "Au cours des 24 dernières heures"; -$lang['stix0012'] = "Période choisie"; -$lang['stix0013'] = "Dernier jour"; -$lang['stix0014'] = "La semaine dernière"; -$lang['stix0015'] = "Le mois dernier"; -$lang['stix0016'] = "Temps actif / inactif (de tous les clients)"; -$lang['stix0017'] = "Versions (de tous les clients)"; -$lang['stix0018'] = "Nationalités (de tous les clients)"; -$lang['stix0019'] = "Plateformes (de tous les clients)"; -$lang['stix0020'] = "Statistiques actuelles"; -$lang['stix0023'] = "État du serveur"; -$lang['stix0024'] = "En ligne"; -$lang['stix0025'] = "Hors ligne"; -$lang['stix0026'] = "Clients (En ligne / Max)"; -$lang['stix0027'] = "Nombre de canaux"; -$lang['stix0028'] = "Ping moyen du serveur"; -$lang['stix0029'] = "Total des octets reçus"; -$lang['stix0030'] = "Nombre total d'octets envoyés"; -$lang['stix0031'] = "Temps de disponibilité du serveur"; -$lang['stix0032'] = "avant d'être hors ligne:"; -$lang['stix0033'] = "00 Jours, 00 Heures, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Perte moyenne de paquets"; -$lang['stix0035'] = "Statistiques générales"; -$lang['stix0036'] = "Nom du serveur"; -$lang['stix0037'] = "Adresse du serveur (Adresse de l'hôte: Port)"; -$lang['stix0038'] = "Mot de passe du serveur"; -$lang['stix0039'] = "Non (Le serveur est alors public)"; -$lang['stix0040'] = "Oui (Le serveur est alors privé)"; -$lang['stix0041'] = "ID du serveur"; -$lang['stix0042'] = "Plate-forme du serveur"; -$lang['stix0043'] = "Version du serveur"; -$lang['stix0044'] = "Date de création du serveur (jj/mm/aaaa)"; -$lang['stix0045'] = "Rapport de la liste des serveurs"; -$lang['stix0046'] = "Activé"; -$lang['stix0047'] = "Non activé"; -$lang['stix0048'] = "Pas assez de données pour le moment ..."; -$lang['stix0049'] = "Heure en ligne de tous les utilisateurs / mois"; -$lang['stix0050'] = "Heure en ligne de tous les utilisateurs / semaine"; -$lang['stix0051'] = "Le serveur TeamSpeak a échoué, donc aucune date de création ..."; -$lang['stix0052'] = "Autres"; -$lang['stix0053'] = "Temps actif (en jours)"; -$lang['stix0054'] = "Temps inactif (en jours)"; -$lang['stix0055'] = "en ligne depuis 24 heures"; -$lang['stix0056'] = "en ligne les 7 derniers jours"; -$lang['stix0059'] = "Liste des utilisateurs"; -$lang['stix0060'] = "Utilisateur"; -$lang['stix0061'] = "Voir toutes les versions"; -$lang['stix0062'] = "Voir toutes les nations"; -$lang['stix0063'] = "Voir toutes les plateformes"; -$lang['stmy0001'] = "Mes statistiques"; -$lang['stmy0002'] = "Rang"; -$lang['stmy0003'] = "ID dans la base de donnée:"; -$lang['stmy0004'] = "Identifiant unique:"; -$lang['stmy0005'] = "Total des connexions au serveur:"; -$lang['stmy0006'] = "Date de début des statistiques:"; -$lang['stmy0007'] = "Temps total en ligne:"; -$lang['stmy0008'] = "Temps en ligne les 7 derniers jours:"; -$lang['stmy0009'] = "Temps en ligne les 30 derniers jours:"; -$lang['stmy0010'] = "Réussites achevées:"; -$lang['stmy0011'] = "Temps pour la progession des réussites"; -$lang['stmy0012'] = "Durée: Légendaire"; -$lang['stmy0013'] = "Parce que vous avez un temps en ligne de %s heures."; -$lang['stmy0014'] = "Progrès réalisés"; -$lang['stmy0015'] = "Durée: Or"; -$lang['stmy0016'] = "% Achevé pour légendaire "; -$lang['stmy0017'] = "Durée: Argent"; -$lang['stmy0018'] = "% Achevé pour Or"; -$lang['stmy0019'] = "Durée: Bronze"; -$lang['stmy0020'] = "% Achevé pour Argent"; -$lang['stmy0021'] = "Durée: Non classé"; -$lang['stmy0022'] = "% Terminé pour Bronze"; -$lang['stmy0023'] = "Progrès de réalisation de connexion"; -$lang['stmy0024'] = "Connexions: Légendaire"; -$lang['stmy0025'] = "Parce que vous avez été connecté %s fois sur le serveur."; -$lang['stmy0026'] = "Connexions: Or"; -$lang['stmy0027'] = "Connexions: Argent"; -$lang['stmy0028'] = "Connexions: Bronze"; -$lang['stmy0029'] = "Connexions: Non classé"; -$lang['stmy0030'] = "Progression pour le prochain groupe de serveurs"; -$lang['stmy0031'] = "Temps actif total"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "Statistiques"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Nombre"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Plateformes"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "News du serveur"; -$lang['stnv0002'] = "Fermer"; -$lang['stnv0003'] = "Actualiser les informations des clients"; -$lang['stnv0004'] = "N'utilisez cette actualisation que lorsque vos informations TS3 ont été modifiées, telles que votre nom d'utilisateur TS3"; -$lang['stnv0005'] = "Cela ne fonctionne que lorsque vous êtes connecté au serveur TS3 en même temps"; -$lang['stnv0006'] = "Rafraîchir"; -$lang['stnv0007'] = "Zone de combat - Contenu de la page"; -$lang['stnv0008'] = "Vous pouvez défier d'autres utilisateurs dans une bataille entre deux utilisateurs ou deux équipes."; -$lang['stnv0009'] = "Pendant que la bataille est active, le temps en ligne des équipes / utilisateurs sera compté."; -$lang['stnv0010'] = "Lorsque la bataille se termine, l'équipe / utilisateur avec le meilleur temps en ligne gagne."; -$lang['stnv0011'] = "(Le temps de combat régulier est de 48 heures)"; -$lang['stnv0012'] = "L'équipe gagnante / l'utilisateur recevra un prix, que l'utilisateur peut utiliser chaque fois qu'il le souhaite."; -$lang['stnv0013'] = "Il s'affichera sur l'onglet Mes statistiques."; -$lang['stnv0014'] = "(Peut être un gain de temps en ligne (2x) pendant 8 heures, un temps en ligne instantané (4 heures), etc."; -$lang['stnv0015'] = "Ces boosts peuvent être utilisées par exemple pour grimper parmi les meilleurs utilisateurs de la semaine."; -$lang['stnv0016'] = "Indisponible"; -$lang['stnv0017'] = "Vous n'êtes pas connecté au serveur TS3, on ne peut donc pas afficher de données pour vous."; -$lang['stnv0018'] = "Connectez-vous au serveur TS3 puis régénérez votre session en appuyant sur le bouton bleu Rafraîchir situé en haut à droite."; -$lang['stnv0019'] = "Mes statistiques - Contenu de la page"; -$lang['stnv0020'] = "Cette page contient un résumé général de vos statistiques et activités personnelles sur le serveur."; -$lang['stnv0021'] = "Les informations sont collectées depuis la mise en place du Ranksystem, elles ne sont pas depuis le début du serveur TeamSpeak."; -$lang['stnv0022'] = "Cette page reçoit ses valeurs d'une base de données. Les valeurs peuvent donc être retardées un peu."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistiques"; -$lang['stnv0025'] = "Limiter les entrées"; -$lang['stnv0026'] = "tout"; -$lang['stnv0027'] = "Les informations sur ce site pourraient être périmées ! Il semble que le Ranksystem ne soit connecté au TeamSpeak."; -$lang['stnv0028'] = "(Vous n'êtes pas connecté au TS3 !)"; -$lang['stnv0029'] = "Liste de classement"; -$lang['stnv0030'] = "À propos du Ranksystem"; -$lang['stnv0031'] = "À propos du champ de recherche, vous pouvez rechercher le motif dans le nom du client, indentifiant unique et ID dans la base de donnée."; -$lang['stnv0032'] = "Vous pouvez également utiliser des options de filtre de vue (voir ci-dessous). Entrez le filtre dans le champ de recherche."; -$lang['stnv0033'] = "Des combinaison de filtre et de motif de recherche sont possibles. Entrez d'abord les filtres) suivi sans aucun signe votre modèle de recherche."; -$lang['stnv0034'] = "Il est également possible de combiner plusieurs filtres. Entrez ceci consécutivement dans le champ de recherche."; -$lang['stnv0035'] = "Exemple:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Afficher uniquement les clients acceptés (client, groupe de serveurs ou exception de canal)."; -$lang['stnv0037'] = "Afficher uniquement les clients qui ne sont pas exceptés."; -$lang['stnv0038'] = "Afficher uniquement les clients qui sont en ligne."; -$lang['stnv0039'] = "Afficher uniquement les clients qui ne sont pas en ligne."; -$lang['stnv0040'] = "Afficher uniquement les clients, qui sont dans le groupe défini. Représenter le rang / niveau actuel.
Remplacez GROUPID avec l'ID du groupe de serveurs voulu."; -$lang['stnv0041'] = "Afficher uniquement les clients sélectionnés par la dernière fois.
Remplacez OPERATOR avec '<' ou '>' ou '=' ou '!='.
Et remplacez TIME Avec un horodatage ou une date de format 'Y-m-d H-i' (exemple: 2016-06-18 20-25).
Exemple complet: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Afficher uniquement les clients qui proviennent d'un pays défini.
Remplacez TS3-COUNTRY-CODE avec le pays voulu.
Pour la liste des codes google pour ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connexion au TS3"; -$lang['stri0001'] = "Informations sur le Ranksystem"; -$lang['stri0002'] = "Qu'est-ce que le Ranksystem ?"; -$lang['stri0003'] = "C'est un robot TeamSpeak3. Il accorde automatiquement des rangs (groupes de serveurs) à l'utilisateur sur un serveur TeamSpeak 3 pour un temps d'activité ou en ligne. Il rassemble également des informations et des statistiques sur l'utilisateur et affiche le celle çi sur ce site."; -$lang['stri0004'] = "Qui a créé le Ranksystem ?"; -$lang['stri0005'] = "Quand le Ranksystem a été créé ?"; -$lang['stri0006'] = "Première version en alpha: 05/10/2014."; -$lang['stri0007'] = "Première version en bêta: 01/02/2015."; -$lang['stri0008'] = "Vous pouvez voir la dernière version sur le site du Ranksystem ."; -$lang['stri0009'] = "Comment le Ranksystem a-t-il été créé?"; -$lang['stri0010'] = "Le Ranksystem est codé en"; -$lang['stri0011'] = "Il utilise également les bibliothèques suivantes:"; -$lang['stri0012'] = "Remerciements spéciaux à:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - pour la traduction en russe"; -$lang['stri0014'] = "Bejamin Frost - pour l'initialisation de la conception du design du bootstrap"; -$lang['stri0015'] = "ZanK & jacopomozzy - pour la traduction italienne"; -$lang['stri0016'] = "DeStRoYzR & Jehad - pour l'initialisation de la traduction en arabe"; -$lang['stri0017'] = "SakaLuX - pour l'initialisation de la traduction en roumain"; -$lang['stri0018'] = "0x0539 - pour l'initialisation de la traduction en néerlandais"; -$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'] = "Top des utilisateurs"; -$lang['sttw0002'] = "De la semaine"; -$lang['sttw0003'] = "Avec %s %s de temps en ligne"; -$lang['sttw0004'] = "Top 10 comparés"; -$lang['sttw0005'] = "Heures (Définit 100%)"; -$lang['sttw0006'] = "%s heures (%s%)"; -$lang['sttw0007'] = "Top 10 des statistiques"; -$lang['sttw0008'] = "Top 10 vs d'autres en ligne"; -$lang['sttw0009'] = "Top 10 vs autres en temps actif"; -$lang['sttw0010'] = "Top 10 vs autres en temps inactif"; -$lang['sttw0011'] = "Top 10 (en heures)"; -$lang['sttw0012'] = "Autres %s utilisateurs (en heures)"; -$lang['sttw0013'] = "Avec %s %s de temps actif"; -$lang['sttw0014'] = "heures"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "Du mois"; -$lang['stta0001'] = "De tous les temps"; -$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['stve0002'] = "Un message avec le jeton vous a été envoyé sur le serveur TeamSpeak3."; -$lang['stve0003'] = "Veuillez entrer le jeton, que vous avez reçu sur le serveur TeamSpeak3. Si vous n'avez pas reçu de message, assurez-vous d'avoir choisi le bon identifiant unique."; -$lang['stve0004'] = "Le jeton saisi ne correspond pas ! Veuillez réessayer."; -$lang['stve0005'] = "Félicitations, vous avez réussi la vérification ! Vous pouvez maintenant continuer ..."; -$lang['stve0006'] = "Une erreur inconnue s'est produite. Veuillez réessayer. Si ce message apparait à plusieurs reprises, veuillez contacter un administrateur"; -$lang['stve0007'] = "Vérification sur le TeamSpeak"; -$lang['stve0008'] = "Choisissez ici votre identifiant unique sur le serveur TS3 pour vous vérifier."; -$lang['stve0009'] = " -- Choisissez vous-même -- "; -$lang['stve0010'] = "Vous recevrez un jeton sur le serveur TS3, que vous devrez saisir ici:"; -$lang['stve0011'] = "Jeton:"; -$lang['stve0012'] = "Vérifier"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_day'] = "Day(s)"; -$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'] = "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]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]."; -$lang['upusrerr'] = "L'indentifiant unique %s n'a pas pu être trouvé sur le TeamSpeak !"; -$lang['upusrinf'] = "L'utilisateur %s a été informé avec succès."; -$lang['user'] = "Nom d'utilisateur"; -$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'] = "Interface Web"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "clients exceptés masquer"; -$lang['wiadmhidedesc'] = "Pour masquer l'utilisateur excepté dans la sélection suivante"; -$lang['wiadmuuid'] = "Identifiant unique de l'administrateur"; -$lang['wiadmuuiddesc'] = "Entrez ici votre indentifiant unique; comme administrateur du Ranksystem.
Also multiple Client-IDs are possible -> comma separated

Ceci est nécessaire pour réinitialiser le mot de passe de l'interface Web. Ceci est nécessaire pour réinitialiser le mot de passe de l'interface Web.

S'il n'y a pas d'adresse client unique définie, il n'est pas possible de réinitialiser le mot de passe!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$lang['wiboost'] = "Boost"; -$lang['wiboostdesc'] = "Donnez à un utilisateur sur votre serveur TeamSpeak un groupe de serveurs (doit être créé manuellement), que vous pouvez déclarer ici en tant que groupe boost. Définir aussi un facteur qui doit être utilisé (par exemple 2x) et un temps, Combien de temps le boost doit être actif.
Plus le facteur est élevé, plus l'utilisateur atteint rapidement le rang supérieur.
Si le délai est écoulé, le groupe de serveurs boost est automatiquement supprimé de l'utilisateur concerné. Le temps découle dès que l'utilisateur reçoit le groupe de serveurs.

ID du groupe de serveurs => facteur => temps (en secondes)

Chaque entrée doit se séparer de la suivante avec une virgule.

Exemple:
12=>2=>6000,13=>3=>2500,14=>5=>600

Sur ce, un utilisateur dans le groupe de serveurs 12 obtient le facteur 2 pour les 6000 secondes suivantes, un utilisateur du groupe de serveurs 13 obtient le facteur 3 pour 2500 secondes, et ainsi de suite ..."; -$lang['wibot1'] = "Le robot du Ranksystem a été arrêté. Consultez le journal ci-dessous pour plus d'informations !"; -$lang['wibot2'] = "Le robot du Ranksystem a été démarer. Consultez le journal ci-dessous pour plus d'informations !"; -$lang['wibot3'] = "Le robot du Ranksystem a été redémarer. Consultez le journal ci-dessous pour plus d'informations !"; -$lang['wibot4'] = "Démarer / Arrêter le robot du Ranksystem"; -$lang['wibot5'] = "Démarer le bot"; -$lang['wibot6'] = "Stop le bot"; -$lang['wibot7'] = "Redémarer le bot"; -$lang['wibot8'] = "Journal du Ranksystem (extrait):"; -$lang['wibot9'] = "Remplissez tous les champs obligatoires avant de commencer le Ranksystem !"; -$lang['wichdbid'] = "ID des clients dans la base de donnée réinitialisé"; -$lang['wichdbiddesc'] = "Réinitialiser le temps en ligne d'un utilisateur, si son ID de client dans la base de donnée du serveur TeamSpeak a changé.

Exemple:
Si un client est retiré du serveur TeamSpeak, il obtient un nouveau ID de client dans la base de données lors de la prochaine connexion au serveur."; -$lang['wiconferr'] = "Il y a une erreur dans la configuration du Ranksystem. Veuillez aller à l'interface Web et corriger les paramètres de base (coeur). Surtout vérifier la configuration 'rank up'!"; -$lang['wichpw1'] = "Votre ancien mot de passe est incorrect. Veuillez réessayer."; -$lang['wichpw2'] = "Les nouveaux mots de passe ne sont pas identiques. Veuillez réessayer."; -$lang['wichpw3'] = "Le mot de passe de l'interface Web a été modifié avec succès. Demande de l'adresse IP %s."; -$lang['wichpw4'] = "Changer le mot de passe"; -$lang['widaform'] = "Format de date"; -$lang['widaformdesc'] = "Choisissez le format de date à afficher.

Exemple:
%a jours, %h heures, %i minutes, %s secondes"; -$lang['widbcfgsuc'] = "Configuration de la base de données enregistrée avec succès."; -$lang['widbcfgerr'] = "Erreur lors de l'enregistrement des configurations de base de données ! Échec de la connexion ou erreur d'écriture pour le fichier 'other/dbconfig.php'"; -$lang['widelcld'] = "Supprimer des clients"; -$lang['widelcldgrp'] = "Renouveler les groupes"; -$lang['widelcldgrpdesc'] = "Le Ranksystem se souvient des groupes de serveurs donnés, de sorte qu'il n'a pas besoin de donner / vérifier cela à chaque exécution du fichier worker.php à nouveau.

Avec cette fonction, vous pouvez supprimer une fois la connaissance de groupes de serveurs donnés. En effet, le Ranksystem tente de donner à tous les clients (qui sont sur le serveur TS3 en ligne) le groupe de serveurs du rang réel.
Pour chaque client, qui obtient le groupe ou rester dans le groupe, le Ranksystem se rappele ceci comme décrit au début.

Cette fonction peut être utile, lorsque l'utilisateur n'est pas dans le groupe de serveurs, ils doivent être pour la durée en ligne définie.

Attention: Exécuter dans un instant, où les prochaines minutes aucun rang ups deviennent dus ! Le Ranksystem ne peut pas supprimer l'ancien groupe, parce qu'il ne peut pas s'en rappeler ;-)"; -$lang['widelclddesc'] = "Supprimez les clients sélectionnés avant de la base de données du Ranksystem.

Avec cette suppression, les clients du serveur TeamSpeak sont intacts."; -$lang['widelsg'] = "Supprimer des groupes de serveurs"; -$lang['widelsgdesc'] = "Choisissez si les clients doivent également être supprimés du dernier groupe de serveurs connu, lorsque vous supprimez des clients de la base de données du Ranksystem.

Il ne considérera que les groupes de serveurs, qui concernent le Ranksystem"; -$lang['wideltime'] = "Heure de suppression"; -$lang['wideltimedesc'] = "Nettoyer les anciens clients de la base de données du Ranksystem.
Entrer un temps en secondes pendant lequel un client n'a pas été vu depuis pour le supprimer.

0 - Supprime tous les clients hors du Ranksystem

Les données des utilisateurs sur le serveur TeamSpeak sont intouché !"; -$lang['wiexcid'] = "Exception de canal"; -$lang['wiexciddesc'] = "Les virgules séparent une liste des ID de canaux qui ne doivent pas participer au système de classement.

Restez utilisateurs dans l'un des canaux répertoriés, le temps il sera complètement ignoré. Il n'y a ni l'heure en ligne, mais le temps d'inactivité compté.

Sense ne fait cette fonction que avec le mode 'temps en ligne', avec cette fonction on pourrait ignoré les canaux AFK par exemple.
Avec le mode 'active time', cette fonction est inutile parce que comme serait déduit le temps d'inactivité dans les salles AFK, et donc pas compté de toute façon.

Si un utilisateur est dans un canal exclu, il est alors noté pour cette période comme 'exclu du système de classement'. L'utilisateur n'apparaît plus dans la liste 'stats/list_rankup.php', sauf si les clients exclus ne doivent pas y être affichés (Page statistiques - Client exclu)."; -$lang['wiexgrp'] = "Exception de groupe de serveurs"; -$lang['wiexgrpdesc'] = "Des virgules séparent une liste d'ID de groupes de serveur, ces groupes ne seront pas considéré par le système de classement.
L'utilisateur dans au moins un de ces ID de groupes de serveurs sera ignoré pour le classement."; -$lang['wiexres'] = "Mode d'exception"; -$lang['wiexres1'] = "Défaut (temps de comptage)"; -$lang['wiexres2'] = "Pause"; -$lang['wiexres3'] = "Temps de réinitialisation"; -$lang['wiexresdesc'] = "Il existe trois modes, comment gérer une exception. Dans tous les cas, le classement en haut (assign server group) est désactivé. Vous pouvez choisir différentes options comment ils passent le temps d'un utilisateur (qui est accepté) devrait être manipulé.

1) Défaut (temps de comptage): Par défaut, le système de classement compte également la durée en ligne / active des utilisateurs, qui sont acceptés (groupe client / serveur). Avec une exception, seul le rang supérieur (assign servergroup) est désactivé. Cela signifie que si un utilisateur n'est plus exclu, il serait assigné au groupe en fonction de son temps collecté (par exemple niveau 3).

2) Pause: Sur cette option, la durée de dépensement en ligne et le temps d'inactivité seront gelés (pause) à la valeur réelle (avant que l'utilisateur ne soit exclu). Après une exception, le (après avoir supprimé le groupe de service excepté ou supprimé la règle d'exception) 'comptage' va continuer.

3) Temps de réinitialisation: Avec cette fonction, le temps compté en ligne et le temps d'inactivité seront réinitialisés à zéro au moment où l'utilisateur n'est plus exclu (en supprimant le groupe de serveurs excepté ou en supprimant la règle d'exception). Le temps de dépenser exception due serait encore compter jusqu'à ce qu'il a été réinitialisé.


L'exception de canal n'a pas d'importance ici, car le temps sera toujours ignoré (comme le mode de pause)."; -$lang['wiexuid'] = "Exception d'un client"; -$lang['wiexuiddesc'] = "Des virgules séparent une liste d'indentifiant unique de client, qui ne doivent pas être prise en considération pour le système de rang (Ranksystem).
Les utilisateurs de cette liste seront ignorés pour le classement."; -$lang['wigrptime'] = "Définition des prochains rangs"; -$lang['wigrptimedesc'] = "Définissez ici après quoi un utilisateur doit automatiquement obtenir un groupe de serveurs prédéfini.

temps (secondes)=>ID du groupe de serveur

Important pour cela est le 'online time' ou le 'active time' d'un utilisateur, en fonction du réglage du mode.

Chaque entrée doit se séparer de la suivante avec une virgule.

L'heure doit être saisie cumulative

Exemple:
60=>9,120=>10,180=>11

Sur ce un utilisateur obtient après 60 secondes le groupe de serveurs 9, à son tour après 60 secondes le groupe de serveurs 10, et ainsi de suite ..."; -$lang['wihladm'] = "Liste de classement (Mode-Admin)"; -$lang['wihladm1'] = "Ajouter du temps en ligne à un utilisateur"; -$lang['wihlcfg'] = "Paramètres de base"; -$lang['wihldb'] = "Paramètres de la base de données"; -$lang['wihlmsg'] = "Paramètres des messages"; -$lang['wihlsty'] = "Paramètres de la page des statistiques"; -$lang['wihlts'] = "Paramètres TeamSpeak"; -$lang['wihlvs'] = "Différents réglages"; -$lang['wiignidle'] = "Ignorer le mode inactif"; -$lang['wiignidledesc'] = "Définissez une période, jusqu'à laquelle le temps d'inactivité d'un utilisateur sera ignoré.

Lorsqu'un client ne fait rien sur le serveur (= inactif), ce temps est noté par le Ranksystem. Avec cette fonction, le temps d'inactivité d'un utilisateur ne sera compté que lorsque la limite définie. Seulement quand la limite définie est dépassée, le Ranksystem compte le temps d'inactivité

Cette fonction joue seulement en conjonction avec le mode 'active time' un rôle.

Ce qui signifie que la fonction est, par exemple, pour évaluer le temps d'écoute dans les conversations, cela est définie comme une activitée.

0 = désactiver la fonction

Exemple:
Ignorer le mode inactif = 600 (secondes)
Un client a un ralenti de 8 minutes
Conséquence:
8 minutes de ralenti sont ignorés et il reçoit donc cette fois comme temps actif. Si le temps d'inactivité augmente maintenant à plus de 12 minutes, le temps dépasse 10 minutes et, dans ce cas, 2 minutes seront comptées comme temps d'inactivité."; -$lang['wilog'] = "Emplacement des logs"; -$lang['wilogdesc'] = "Chemin du fichier journal du Ranksystem.

Exemple:
/var/logs/ranksystem/

Assurez-vous que l'utilisateur Web possède les autorisations d'écriture dans le chemin d'accès aux log."; -$lang['wilogout'] = "Déconnexion"; -$lang['wimsgmsg'] = "Message"; -$lang['wimsgmsgdesc'] = "Définissez un message, qui sera envoyé à un utilisateur, quand il se passe le rang supérieur.

Ce message sera envoyé via message privé à l'utilisateur sur le TeamSpeak. Donc si vous conaissez le bb-code, il pourrait alors être utilisé, ce qui fonctionne aussi pour un message privé normal.
http://ts-n.net/lexicon.php?showid=97#lexindex

En outre, le temps précédemment passé peut être exprimé par des arguments:
%1\$s - jours
%2\$s - heures
%3\$s - minutes
%4\$s - secondes
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Exemple:
Bravo !\\nVous venez d'atteindre un nouveau rang.Vous avez un total de %1\$s jour(s), %2\$s heure(s) et %3\$s minute(s) [B]Continuez ainsi ![/B] ;-)"; -$lang['wimsgsn'] = "Nouvelles du serveur"; -$lang['wimsgsndesc'] = "Définissez un message, qui sera affiché sur la page /stats/ comme news du serveur.

Vous pouvez utiliser les fonctions html par défaut pour modifier la mise en page

Exemple:
<b> - pour du gras
<u> - pour souligné
<i> - pour l'italic
<br> - pour une nouvelle ligne"; -$lang['wimsgusr'] = "Notification lors l'obtention du grade supérieur"; -$lang['wimsgusrdesc'] = "Informer un utilisateur avec un message texte privé sur son rang."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Base de données"; -$lang['winav3'] = "Coeur"; -$lang['winav4'] = "Autres"; -$lang['winav5'] = "Messages"; -$lang['winav6'] = "Page des statistiques"; -$lang['winav7'] = "Gestion"; -$lang['winav8'] = "Marche/Arrêt du bot"; -$lang['winav9'] = "Mise à jour disponible !"; -$lang['winav10'] = "Veuillez utiliser l'interface Web uniquement via %s HTTPS%s Un cryptage est essentiel pour assurer votre confidentialité et votre sécurité.%sPour pouvoir utiliser le protocole HTTPS, votre serveur Web doit prendre en charge une connexion SSL."; -$lang['winav11'] = "Veuillez saisir l'identifiant client unique de l'administrateur du Ranksystem (Autre -> ID d'administrateur). Ceci est très important dans le cas où vous avez perdu vos informations de connexion pour l'interface Web (pour les réinitialiser)."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Commande \"!nextup\""; -$lang['winxinfodesc'] = "Permet à l'utilisateur sur le serveur TeamSpeak3 d'écrire la commande \"!nextup\" Au bot Ranksystem (requête (query)) en tant que message texte privé.

Comme réponse à l'utilisateur, vous obtiendrez un message texte défini avec le temps nécessaire pour le classement suivant.

Désactivé - La fonction est désactivée. La commande '!nextup' sera ignorée.
Autorisée - seulement le rang suivant - Renvoie le temps nécessaire pour le prochain groupe.
Autorisée - tous les rangs suivants - Donne le temps nécessaire à tous les rangs supérieurs."; -$lang['winxmode1'] = "Désactivé"; -$lang['winxmode2'] = "Autorisée - seulement le rang suivant"; -$lang['winxmode3'] = "Autorisée - tous les rangs suivants"; -$lang['winxmsg1'] = "Message"; -$lang['winxmsgdesc1'] = "Définir un message, que l'utilisateur obtiendra comme réponse à la commande \"nextup\".

Arguments:
%1$s - Jours pour le classement suivant
%2$s - Heures pour le classement suivant
%3$s - Minutes pour le classement suivant
%4$s - Secondes pour le classement suivant
%5$s - Nom du groupe de serveurs suivant
%6$s - name of the user (recipient)

Exemple:
Votre prochain rang sera dans %1$s jours, %2$s heures et %3$s minutes et %4$s secondes. Le prochain groupe de serveurs que vous allez atteindre est [B]%5$s[/B]."; -$lang['winxmsg2'] = "Message (le plus élevé)"; -$lang['winxmsgdesc2'] = "Définir un message, que l'utilisateur obtiendra comme réponse à la commande \"nextup\", lorsque l'utilisateur atteint déjà le rang le plus élevé.

Arguments:
%1$s - Jours pour le classement suivant
%2$s - Heures pour le classement suivant
%3$s - Minutes pour le classement suivant
%4$s - Secondes pour le classement suivant
%5$s - Nom du groupe de serveurs suivant
%6$s - name of the user (recipient)

Exemple:
Vous avez atteint le rang le plus élevé pour %1$s jours, %2$s heures et %3$s minutes et %4$s secondes."; -$lang['winxmsg3'] = "Message (exclu)"; -$lang['winxmsgdesc3'] = "Définir un message, que l'utilisateur obtiendra comme réponse à la commande \"nextup\", lorsque l'utilisateur est exclu du Ranksystem.

Arguments:
%1$s - Jours pour le classement suivant
%2$s - Heures pour le classement suivant
%3$s - Minutes pour le classement suivant
%4$s - Secondes pour le classement suivant
%5$s - Nom du groupe de serveurs suivant
%6$s - name of the user (recipient)

Exemple:
Vous êtes excepté du Ranksystem. Si vous souhaitez revenir dans le classement, contactez un administrateur sur le serveur TS3."; -$lang['wirtpw1'] = "Désolé l'ami, vous avez oublié d'entrer votre identifiant d'administrateur dans l'interface web avant. Il n'y a aucun moyen de réinitialiser le mot de passe !"; -$lang['wirtpw2'] = "L'identifiant unique de l'administrateur introuvable sur le serveur TeamSpeak3. Vous devez être en ligne avec l'indentifiant unique, qui est enregistré en tant qu'administrateur."; -$lang['wirtpw3'] = "Votre adresse IP ne correspond pas à l'adresse IP de l'administrateur sur le serveur TeamSpeak3. Assurez-vous d'avoir la même adresse IP sur le serveur TS3 et sur cette page (le même protocole IPv4 / IPv6 est également nécessaire)."; -$lang['wirtpw4'] = "\nLe mot de passe de l'interface Web a été réinitialisé.\nUtilisateur: %s\nMot de passe: [B]%s[/B]\n\nConnexion %sici%s"; -$lang['wirtpw5'] = "Un message privé a été envoyé à l'administrateur avec le nouveau mot de passe sur le serveur TeamSpeak3. Cliquez %s ici %s pour vous connecter."; -$lang['wirtpw6'] = "Le mot de passe de l'interface Web a été réinitialisé. Demande de l'adresse IP %s."; -$lang['wirtpw7'] = "Réinitialiser le mot de passe"; -$lang['wirtpw8'] = "Ici, vous pouvez réinitialiser le mot de passe de l'interface Web."; -$lang['wirtpw9'] = "Les éléments suivants sont nécessaires pour réinitialiser le mot de passe:"; -$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."; -$lang['wishcolas'] = "Actuel groupe de serveurs"; -$lang['wishcolasdesc'] = "Afficher la colonne 'Actuel groupe de serveurs' dans list_rankup.php"; -$lang['wishcolat'] = "Temps actif"; -$lang['wishcolatdesc'] = "Afficher la colonne 'sum. Temps actif 'dans list_rankup.php"; -$lang['wishcolcld'] = "Nom du client"; -$lang['wishcolclddesc'] = "Afficher la colonne 'Nom du client' dans list_rankup.php"; -$lang['wishcoldbid'] = "ID dans la BDD"; -$lang['wishcoldbiddesc'] = "Afficher la colonne 'ID dans la BDD' dans list_rankup.php"; -$lang['wishcolgs'] = "Groupe actuel depuis"; -$lang['wishcolgsdesc'] = "Afficher la colonne 'groupe actuel depuis' dans list_rankup.php"; -$lang['wishcolit'] = "Temps d'inactivité"; -$lang['wishcolitdesc'] = "Afficher la colonne 'sum. temps d'inactivité' dans list_rankup.php"; -$lang['wishcolls'] = "Dernière apparition"; -$lang['wishcollsdesc'] = "Afficher la colonne 'Dernière apparition' dans list_rankup.php"; -$lang['wishcolnx'] = "Rang suivant"; -$lang['wishcolnxdesc'] = "Afficher la colonne 'Rang suivant' dans list_rankup.php"; -$lang['wishcolot'] = "Temps en ligne"; -$lang['wishcolotdesc'] = "Afficher la colonne 'Temps en ligne' dans list_rankup.php"; -$lang['wishcolrg'] = "Rang"; -$lang['wishcolrgdesc'] = "Afficher la colonne 'Rang' dans list_rankup.php"; -$lang['wishcolsg'] = "Groupe serveur suivant"; -$lang['wishcolsgdesc'] = "Afficher la colonne 'Groupe serveur suivant' dans list_rankup.php"; -$lang['wishcoluuid'] = "Identifiant unique du client"; -$lang['wishcoluuiddesc'] = "Afficher la colonne 'Identifiant unique du client' dans list_rankup.php"; -$lang['wishexcld'] = "Clients exclus"; -$lang['wishexclddesc'] = "Afficher les clients dans list_rankup.php,
qui sont exclus et ne participent donc pas au système de classement."; -$lang['wishexgrp'] = "Groupes exceptés"; -$lang['wishexgrpdesc'] = "Affichez les clients dans list_rankup.php, qui sont dans la liste 'Clients exclus' et ne participent donc pas au système de classement."; -$lang['wishhicld'] = "Clients au plus haut niveau"; -$lang['wishhiclddesc'] = "Afficher les clients dans list_rankup.php, qui ont atteints le niveau le plus élevé dans le système de classement."; -$lang['wishnav'] = "Afficher le site de navigation"; -$lang['wishnavdesc'] = "Afficher la navigation du site sur la page 'stats/'.

Si cette option est désactivée sur la page stats, la navigation du site sera masquée.
Vous pouvez alors prendre chaque site, par exemple 'stats/list_rankup.php' et incorporez-le comme cadre dans votre site Web ou tableau d'affichage existant."; -$lang['wisupidle'] = "Mode"; -$lang['wisupidledesc'] = "Il y a deux modes, comme le temps peut être compté et peut ensuite demander une augmentation de rang.

1) Temps en ligne: Ici, le temps en ligne pur de l'utilisateur est pris en compte (Voir la colonne 'Temps en ligne ' dans la page 'stats/list_rankup.php')

2) Temps actif: Ceci sera déduit de l'heure en ligne d'un utilisateur, le temps inactif (inactif) (voir la colonne 'Temps actif' dans la page 'stats/list_rankup.php').

Un changement de mode avec une base de données déjà utilisée n'est pas recommandé, mais ça peut fonctionner."; -$lang['wisvconf'] = "Sauvegarder"; -$lang['wisvsuc'] = "Modifications enregistrées avec succès !"; -$lang['wisvres'] = "Vous devez redémarrer le Ranksystem avant que les modifications prennent effet! %s"; -$lang['witime'] = "Fuseau horaire"; -$lang['witimedesc'] = "Sélectionnez le fuseau horaire du serveur."; -$lang['wits3avat'] = "Délais sur les avatars"; -$lang['wits3avatdesc'] = "Définir un temps en secondes pour retarder le téléchargement des avatars TS3 qui ont été modifiés.

Cette fonction est particulièrement utile pour les bots (musique), qui changent périodiquement leurs avatars."; -$lang['wits3dch'] = "Canal par défaut"; -$lang['wits3dchdesc'] = "L'ID du canal où le bot doit se connecter.

Le Bot rejoindra ce canal après sa connexion au serveur TeamSpeak."; -$lang['wits3host'] = "Adresse de l'hôte TS3"; -$lang['wits3hostdesc'] = "Adresse du serveur TeamSpeak 3
(IP ou DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "Avec le Slowmode, vous pouvez réduire le \"spam\" des commandes query (requêtes) vers le serveur TeamSpeak. Cela empêche les interdictions en cas de flood.
Les commandes sont retardées avec cette fonction.

!!! CELA REDUIT L'UTILISATION DU CPU !!!

L'activation n'est pas recommandée, si ce n'est pas nécessaire. Le retard augmente la durée du Bot, ce qui le rend imprécis.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Nom du robot (bot)"; -$lang['wits3qnm2'] = "Nom du deuxième bot"; -$lang['wits3qnm2desc'] = "Un nom de rechange est requis, si le premier est déjà utilisé."; -$lang['wits3qnmdesc'] = "Le nom avec lequel la connexion en query sera établie.
Vous pouvez le nommer gratuitement :)."; -$lang['wits3querpw'] = "Mot de passe query du TS3"; -$lang['wits3querpwdesc'] = "Mot de passe query du serveur TeamSpeak 3
Mot de passe pour l'utilisateur de la requête."; -$lang['wits3querusr'] = "Utilisateur query du TS3"; -$lang['wits3querusrdesc'] = "Nom d'utilisateur query du serveur TeamSpeak3
La valeur par défaut est serveradmin
Bien sûr, vous pouvez également créer un compte serverquery supplémentaire uniquement pour le Ranksystem.
Les autorisations nécessaires sont trouvable sur:
http://ts-n.net/ranksystem.php"; -$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['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"; -$lang['wivlangdesc'] = "Choisissez une langue par défaut pour le Ranksystem.

La langue est également sélectionnable sur le site web pour les utilisateurs et sera stockée pour sa session."; + Il vient d'être ajouté dans le Ranksystem."; +$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; +$lang['changedbid'] = "L'utilisateur %s (Identifiant unique: %s) a obtenu un nouveau TeamSpeak ID dans la base de donnée (%s). Mettez à jour l'ancien ID dans la base de donnée (%s) et réinitialisez les heures collectées !"; +$lang['crawl'] = "Scan des utilisateurs connectés et comptage de leur activité..."; +$lang['clean'] = "Scan des clients, certains doivent être supprimer..."; +$lang['cleanc'] = "Clients propres"; +$lang['cleancdesc'] = "Avec cette fonction, les anciens clients dans le ranksystem sont supprimés.

A la fin, le Ranksystem se sychronise avec la base de donnée du TeamSpeak. Les clients, qui n'existe pas ou plus dans le serveur TeamSpeak, seront alors supprimé du Ranksystem.

Cette fonction est uniquement active lorsque le 'Slowmode' est désactivé !


Pour un ajustement automatique de la base de données le 'ClientCleaner' peut être utilisé:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "%s clients ont été supprimés de la base de données du Ranksystem, parce qu'ils n'existaient plus dans la base de données du serveur TeamSpeak."; +$lang['cleanno'] = "Il n'y avait rien à supprimer..."; +$lang['cleanp'] = "Période de nettoyage"; +$lang['cleanpdesc'] = "Définissez un délai qui doit s'écouler avant que les 'clients propres' ne soient exécutés.

Mettez un temps en seconde.

C'est recommandé de la faire une fois par jour, le nettoyage du client nécessite beaucoup de temps pour les bases de données plus importantes."; +$lang['cleanrs'] = "Clients dans la base de donnée du Ranksystem: %s"; +$lang['cleants'] = "Clients trouvé dans la base de donnée du TeamSpeak: %s (De %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['day'] = "%s jour"; +$lang['days'] = "%s jours"; +$lang['dbconerr'] = "Échec de la connexion à la base de données: "; +$lang['delcldgrpif'] = "Erreur lors de la suppression des connaissances pour les groupes de serveurs: %s"; +$lang['delcldgrpsc'] = "Connaissances sur les groupes de serveurs de l'utilisateur %s ont été bien supprimées."; +$lang['delclientsif'] = "%s Clients supprimés de la base de données du Ranksystem !"; +$lang['delclientssc'] = "%s Clients supprimés avec succès de la base de données du Ranksystem !"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "Nom d'utilisateur et/ou mot de passe erronés ! Réessayer de nouveau..."; +$lang['errlogin2'] = "Protection contre la brutalitée: Essayez à nouveau dans %s secondes!"; +$lang['errlogin3'] = "Protection contre la brutalitée: Vous avez fait trop d'erreurs. Ainsi résulte un banissement de 300 secondes !"; +$lang['error'] = "Erreur "; +$lang['errorts3'] = "TS3 Error: "; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['errremgrp'] = "Erreur lors de la suppression de l'utilisateur avec l'identifiant unique %s qui est hors du groupe de serveur possédant l'id dans la base de données %s!"; +$lang['errremdb'] = "Erreur lors de la suppression de l'utilisateur avec l'identifiant unique %s qui est hors de la base de données du Ranksystem !"; +$lang['errselusr'] = "Veuillez choisir au moins un utilisateur !"; +$lang['errseltime'] = "Veuillez saisir une heure en ligne à ajouter !"; +$lang['errukwn'] = "Une erreur inconnue s'est produite !"; +$lang['errupcount'] = "Erreur lors du renouvellement du temps en ligne %s de l'utilisateur avec l'identifiant unique %s"; +$lang['highest'] = "plus haut rang atteint"; +$lang['install'] = "Installation"; +$lang['instdb'] = "Installer la base de données"; +$lang['instdbsuc'] = "La base de données %s a été créée."; +$lang['insterr1'] = "ATTENTION: Vous essayez d'installer le Ranksystem, mais il existe déjà une base de données avec le nom \"%s\".
L'installation supprimera alors cette base de données !
Assurez-vous que vous voulez cela. Sinon, veuillez choisir un autre nom de base de données."; +$lang['insterr2'] = "PDO est nécessaire, mais semble ne pas être installé. Installez PDO et essayez à nouveau !"; +$lang['insterr3'] = "La fonction PHP exec doit être activé, mais semble être désactivé. Veuillez activer la fonction PHP exec et essayez à nouveau !"; +$lang['insterr4'] = "Votre version PHP (%s) est inférieure à 5.5.0. Mettez à jour votre version de PHP et essayez à nouveau !"; +$lang['insterr5'] = "SimpleXML est nécessaire, mais semble ne pas être disponible. Install simpleXML et essayez à nouveau !"; +$lang['insterr6'] = "PHP cURL est nécessaire, mais semble ne pas être disponible. Installez PHP cURL et essayez à nouveau !"; +$lang['insterr7'] = "PHP Zip est nécessaire, mais semble ne pas être disponible. Installez PHP Zip and try it again!"; +$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Impossible d'enregistrer la configuration de la base de données ! Veuillez modifier le fichier 'other/dbconfig.php' avec un chmod 0777 (dans la fênetre 'accès complet') et essayez de nouveau après."; +$lang['isntwicfg2'] = "Configurer l'interface Web"; +$lang['isntwichm'] = "Échec des autorisations d'écriture sur le dossier \"%s\". Veuillez modifier le dossier avec un chmod 0777 (dans la fênetre 'accès complet') et essayez de nouveau après de démarer le ranksystem."; +$lang['isntwiconf'] = "Ouvrez le %s pour configurer le système de classement !"; +$lang['isntwidbhost'] = "Adresse de l'hôte BDD:"; +$lang['isntwidbhostdesc'] = "Adresse du serveur de base de données
(IP ou DNS)"; +$lang['isntwidbmsg'] = "Erreur de la base de données: "; +$lang['isntwidbname'] = "Nom de la BDD:"; +$lang['isntwidbnamedesc'] = "Nom de la base de données"; +$lang['isntwidbpass'] = "Mot de passe de la BDD:"; +$lang['isntwidbpassdesc'] = "Mot de passe pour accéder à la base de données"; +$lang['isntwidbtype'] = "Type de BDD:"; +$lang['isntwidbtypedesc'] = "Type de base de données

Vous devez installer le pilote PDO car il est nécessaire.
Pour plus d'informations, consultez les éléments requis sur http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "Utilisateur BDD:"; +$lang['isntwidbusrdesc'] = "Utilisateur pour accéder à la base de données"; +$lang['isntwidel'] = "Veuillez supprimer le fichier 'install.php' de votre serveur web"; +$lang['isntwiusr'] = "Utilisateur de l'interface Web créée avec succès."; +$lang['isntwiusrcr'] = "Créer un utilisateur pour l'interface web"; +$lang['isntwiusrdesc'] = "Saisissez un nom d'utilisateur et un mot de passe pour accéder à l'interface Web. Avec l'interface web, vous pouvez configurer le système de classement (RankSystem)."; +$lang['isntwiusrh'] = "Accès - Interface Web"; +$lang['listacsg'] = "Actuel groupe de serveur"; +$lang['listcldbid'] = "ID du client dans la base de donnée"; +$lang['listexcept'] = "Non, sauf exception"; +$lang['listgrps'] = "Groupe actuel depuis"; +$lang['listnick'] = "Nom du client"; +$lang['listnxsg'] = "Groupe de serveur suivant"; +$lang['listnxup'] = "Rang suivant"; +$lang['listrank'] = "Rang"; +$lang['listseen'] = "Dernière apparition "; +$lang['listsuma'] = "Temps actif"; +$lang['listsumi'] = "Temps d'inactivité"; +$lang['listsumo'] = "Temps en ligne"; +$lang['listuid'] = "Identifiant unique de l'utilisateur"; +$lang['login'] = "S'identifier"; +$lang['msg0001'] = "version actuelle: %s"; +$lang['msg0002'] = "Les commandes valides sont:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t obtenir une liste de commandes\n[B]!version[/B]\t\t\t\t\t\t\t\t obtenir la version du Ranksystem\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t obtenir le temps pour le prochain rang \n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\tRedémarrer le bot du ranksystem\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t Arrêter le bot du ranksystem"; +$lang['msg0003'] = "Vous n'êtes pas admissible à cette commande !"; +$lang['msg0004'] = "Client %s (%s) demmande l'arrêt."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Client %s (%s) demmande le redémarrage."; +$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['nocount'] = "L'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) est un utilisateur query ou est plusieurs fois en ligne (seulement les premiers comptages de connexion ) -> Cela ne compte pas !"; +$lang['noentry'] = "Aucune entrée trouvée..."; +$lang['pass'] = "Mot de passe"; +$lang['pass2'] = "Changer le mot de passe"; +$lang['pass3'] = "Ancien mot de passe"; +$lang['pass4'] = "Nouveau mot de passe"; +$lang['pass5'] = "Mot de passe oublié ?"; +$lang['queryname'] = "Premier nom de robot déjà utilisé. Essayer avec le second nom de robot (bot)..."; +$lang['repeat'] = "Répéter"; +$lang['resettime'] = "Réinitialiser le temps d'inactivité et d'inactivité de l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) à zéro, parce que l'utilisateur a été supprimé de l'exception."; +$lang['sccrmcld'] = "L'utilisateur avec l'identifiant unique %s a été retiré avec succès de la base de données du RankSystem."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "ajouter du temps"; +$lang['setontimedesc'] = "Ajouter du temps en ligne aux anciens clients sélectionnés. Chaque utilisateur obtiendra ce temps supplémentaire à son ancien temps en ligne.

Le nouveau temps en ligne entré sera considéré pour le rang et devrait prendre effet immédiatement."; +$lang['sgrpadd'] = "Groupe de serveur %s (ID: %s) accordé à l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "Groupe de serveur %s (ID: %s) supprimé à l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %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'] = "Attribuer des groupes de serveurs"; +$lang['stag0002'] = "Groupes autorisés"; +$lang['stag0003'] = "Définissez une liste de groupes de serveurs qu'un utilisateur peut lui-même affecter.

Les groupes de serveurs doivent être entrés ici avec leur ID de groupe séparé par des virgules.

Exemple:
23,24,28"; +$lang['stag0004'] = "Limiter les groupes"; +$lang['stag0005'] = "Limitez le nombre de groupes de serveurs, qui peuvent être définis en même temps."; +$lang['stag0006'] = "Il existe plusieurs identifiants uniques en ligne avec votre adresse IP. S'il vous plaît %cliquez ici%s pour vérifier en premier."; +$lang['stag0007'] = "Veuillez patienter jusqu'à ce que vos dernières modifications prennent effet avant que vous changiez déjà les prochaines choses ..."; +$lang['stag0008'] = "Les modifications de groupe ont été enregistrées avec succès. Cela peut prendre quelques secondes jusqu'à ce qu'ils prennent effet sur le serveur ts3."; +$lang['stag0009'] = "Vous ne pouvez pas choisir plus de %s groupe(s) en même temps !"; +$lang['stag0010'] = "Veuillez choisir au moins un nouveau groupe."; +$lang['stag0011'] = "Limite des groupes simultanés: "; +$lang['stag0012'] = "Définir un groupe"; +$lang['stag0013'] = "Addon ON/OFF"; +$lang['stag0014'] = "Tournez l'Addon en on (activé) ou off (désactivé).

Lors de la désactivation de l'addon une partie possible sur les stats / site sera masqué."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "Statistiques du serveur"; +$lang['stix0002'] = "Nombre total d'utilisateurs"; +$lang['stix0003'] = "Voir les détails"; +$lang['stix0004'] = "Temps en ligne de tous les utilisateurs / Total"; +$lang['stix0005'] = "Voir le top de tous les temps"; +$lang['stix0006'] = "Voir le top du mois"; +$lang['stix0007'] = "Voir le top de la semaine"; +$lang['stix0008'] = "Utilisation du serveur"; +$lang['stix0009'] = "Au cours des 7 derniers jours"; +$lang['stix0010'] = "Au cours des 30 derniers jours"; +$lang['stix0011'] = "Au cours des 24 dernières heures"; +$lang['stix0012'] = "Période choisie"; +$lang['stix0013'] = "Dernier jour"; +$lang['stix0014'] = "La semaine dernière"; +$lang['stix0015'] = "Le mois dernier"; +$lang['stix0016'] = "Temps actif / inactif (de tous les clients)"; +$lang['stix0017'] = "Versions (de tous les clients)"; +$lang['stix0018'] = "Nationalités (de tous les clients)"; +$lang['stix0019'] = "Plateformes (de tous les clients)"; +$lang['stix0020'] = "Statistiques actuelles"; +$lang['stix0023'] = "État du serveur"; +$lang['stix0024'] = "En ligne"; +$lang['stix0025'] = "Hors ligne"; +$lang['stix0026'] = "Clients (En ligne / Max)"; +$lang['stix0027'] = "Nombre de canaux"; +$lang['stix0028'] = "Ping moyen du serveur"; +$lang['stix0029'] = "Total des octets reçus"; +$lang['stix0030'] = "Nombre total d'octets envoyés"; +$lang['stix0031'] = "Temps de disponibilité du serveur"; +$lang['stix0032'] = "avant d'être hors ligne:"; +$lang['stix0033'] = "00 Jours, 00 Heures, 00 Mins, 00 Secs"; +$lang['stix0034'] = "Perte moyenne de paquets"; +$lang['stix0035'] = "Statistiques générales"; +$lang['stix0036'] = "Nom du serveur"; +$lang['stix0037'] = "Adresse du serveur (Adresse de l'hôte: Port)"; +$lang['stix0038'] = "Mot de passe du serveur"; +$lang['stix0039'] = "Non (Le serveur est alors public)"; +$lang['stix0040'] = "Oui (Le serveur est alors privé)"; +$lang['stix0041'] = "ID du serveur"; +$lang['stix0042'] = "Plate-forme du serveur"; +$lang['stix0043'] = "Version du serveur"; +$lang['stix0044'] = "Date de création du serveur (jj/mm/aaaa)"; +$lang['stix0045'] = "Rapport de la liste des serveurs"; +$lang['stix0046'] = "Activé"; +$lang['stix0047'] = "Non activé"; +$lang['stix0048'] = "Pas assez de données pour le moment ..."; +$lang['stix0049'] = "Heure en ligne de tous les utilisateurs / mois"; +$lang['stix0050'] = "Heure en ligne de tous les utilisateurs / semaine"; +$lang['stix0051'] = "Le serveur TeamSpeak a échoué, donc aucune date de création ..."; +$lang['stix0052'] = "Autres"; +$lang['stix0053'] = "Temps actif (en jours)"; +$lang['stix0054'] = "Temps inactif (en jours)"; +$lang['stix0055'] = "en ligne depuis 24 heures"; +$lang['stix0056'] = "en ligne les 7 derniers jours"; +$lang['stix0059'] = "Liste des utilisateurs"; +$lang['stix0060'] = "Utilisateur"; +$lang['stix0061'] = "Voir toutes les versions"; +$lang['stix0062'] = "Voir toutes les nations"; +$lang['stix0063'] = "Voir toutes les plateformes"; +$lang['stmy0001'] = "Mes statistiques"; +$lang['stmy0002'] = "Rang"; +$lang['stmy0003'] = "ID dans la base de donnée:"; +$lang['stmy0004'] = "Identifiant unique:"; +$lang['stmy0005'] = "Total des connexions au serveur:"; +$lang['stmy0006'] = "Date de début des statistiques:"; +$lang['stmy0007'] = "Temps total en ligne:"; +$lang['stmy0008'] = "Temps en ligne les 7 derniers jours:"; +$lang['stmy0009'] = "Temps en ligne les 30 derniers jours:"; +$lang['stmy0010'] = "Réussites achevées:"; +$lang['stmy0011'] = "Temps pour la progession des réussites"; +$lang['stmy0012'] = "Durée: Légendaire"; +$lang['stmy0013'] = "Parce que vous avez un temps en ligne de %s heures."; +$lang['stmy0014'] = "Progrès réalisés"; +$lang['stmy0015'] = "Durée: Or"; +$lang['stmy0016'] = "% Achevé pour légendaire "; +$lang['stmy0017'] = "Durée: Argent"; +$lang['stmy0018'] = "% Achevé pour Or"; +$lang['stmy0019'] = "Durée: Bronze"; +$lang['stmy0020'] = "% Achevé pour Argent"; +$lang['stmy0021'] = "Durée: Non classé"; +$lang['stmy0022'] = "% Terminé pour Bronze"; +$lang['stmy0023'] = "Progrès de réalisation de connexion"; +$lang['stmy0024'] = "Connexions: Légendaire"; +$lang['stmy0025'] = "Parce que vous avez été connecté %s fois sur le serveur."; +$lang['stmy0026'] = "Connexions: Or"; +$lang['stmy0027'] = "Connexions: Argent"; +$lang['stmy0028'] = "Connexions: Bronze"; +$lang['stmy0029'] = "Connexions: Non classé"; +$lang['stmy0030'] = "Progression pour le prochain groupe de serveurs"; +$lang['stmy0031'] = "Temps actif total"; +$lang['stna0001'] = "Nations"; +$lang['stna0002'] = "Statistiques"; +$lang['stna0003'] = "Code"; +$lang['stna0004'] = "Nombre"; +$lang['stna0005'] = "Versions"; +$lang['stna0006'] = "Plateformes"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "News du serveur"; +$lang['stnv0002'] = "Fermer"; +$lang['stnv0003'] = "Actualiser les informations des clients"; +$lang['stnv0004'] = "N'utilisez cette actualisation que lorsque vos informations TS3 ont été modifiées, telles que votre nom d'utilisateur TS3"; +$lang['stnv0005'] = "Cela ne fonctionne que lorsque vous êtes connecté au serveur TS3 en même temps"; +$lang['stnv0006'] = "Rafraîchir"; +$lang['stnv0007'] = "Zone de combat - Contenu de la page"; +$lang['stnv0008'] = "Vous pouvez défier d'autres utilisateurs dans une bataille entre deux utilisateurs ou deux équipes."; +$lang['stnv0009'] = "Pendant que la bataille est active, le temps en ligne des équipes / utilisateurs sera compté."; +$lang['stnv0010'] = "Lorsque la bataille se termine, l'équipe / utilisateur avec le meilleur temps en ligne gagne."; +$lang['stnv0011'] = "(Le temps de combat régulier est de 48 heures)"; +$lang['stnv0012'] = "L'équipe gagnante / l'utilisateur recevra un prix, que l'utilisateur peut utiliser chaque fois qu'il le souhaite."; +$lang['stnv0013'] = "Il s'affichera sur l'onglet Mes statistiques."; +$lang['stnv0014'] = "(Peut être un gain de temps en ligne (2x) pendant 8 heures, un temps en ligne instantané (4 heures), etc."; +$lang['stnv0015'] = "Ces boosts peuvent être utilisées par exemple pour grimper parmi les meilleurs utilisateurs de la semaine."; +$lang['stnv0016'] = "Indisponible"; +$lang['stnv0017'] = "Vous n'êtes pas connecté au serveur TS3, on ne peut donc pas afficher de données pour vous."; +$lang['stnv0018'] = "Connectez-vous au serveur TS3 puis régénérez votre session en appuyant sur le bouton bleu Rafraîchir situé en haut à droite."; +$lang['stnv0019'] = "Mes statistiques - Contenu de la page"; +$lang['stnv0020'] = "Cette page contient un résumé général de vos statistiques et activités personnelles sur le serveur."; +$lang['stnv0021'] = "Les informations sont collectées depuis la mise en place du Ranksystem, elles ne sont pas depuis le début du serveur TeamSpeak."; +$lang['stnv0022'] = "Cette page reçoit ses valeurs d'une base de données. Les valeurs peuvent donc être retardées un peu."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "Ranksystem - Statistiques"; +$lang['stnv0025'] = "Limiter les entrées"; +$lang['stnv0026'] = "tout"; +$lang['stnv0027'] = "Les informations sur ce site pourraient être périmées ! Il semble que le Ranksystem ne soit connecté au TeamSpeak."; +$lang['stnv0028'] = "(Vous n'êtes pas connecté au TS3 !)"; +$lang['stnv0029'] = "Liste de classement"; +$lang['stnv0030'] = "À propos du Ranksystem"; +$lang['stnv0031'] = "À propos du champ de recherche, vous pouvez rechercher le motif dans le nom du client, indentifiant unique et ID dans la base de donnée."; +$lang['stnv0032'] = "Vous pouvez également utiliser des options de filtre de vue (voir ci-dessous). Entrez le filtre dans le champ de recherche."; +$lang['stnv0033'] = "Des combinaison de filtre et de motif de recherche sont possibles. Entrez d'abord les filtres) suivi sans aucun signe votre modèle de recherche."; +$lang['stnv0034'] = "Il est également possible de combiner plusieurs filtres. Entrez ceci consécutivement dans le champ de recherche."; +$lang['stnv0035'] = "Exemple:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Afficher uniquement les clients acceptés (client, groupe de serveurs ou exception de canal)."; +$lang['stnv0037'] = "Afficher uniquement les clients qui ne sont pas exceptés."; +$lang['stnv0038'] = "Afficher uniquement les clients qui sont en ligne."; +$lang['stnv0039'] = "Afficher uniquement les clients qui ne sont pas en ligne."; +$lang['stnv0040'] = "Afficher uniquement les clients, qui sont dans le groupe défini. Représenter le rang / niveau actuel.
Remplacez GROUPID avec l'ID du groupe de serveurs voulu."; +$lang['stnv0041'] = "Afficher uniquement les clients sélectionnés par la dernière fois.
Remplacez OPERATOR avec '<' ou '>' ou '=' ou '!='.
Et remplacez TIME Avec un horodatage ou une date de format 'Y-m-d H-i' (exemple: 2016-06-18 20-25).
Exemple complet: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Afficher uniquement les clients qui proviennent d'un pays défini.
Remplacez TS3-COUNTRY-CODE avec le pays voulu.
Pour la liste des codes google pour ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "connexion au TS3"; +$lang['stri0001'] = "Informations sur le Ranksystem"; +$lang['stri0002'] = "Qu'est-ce que le Ranksystem ?"; +$lang['stri0003'] = "C'est un robot TeamSpeak3. Il accorde automatiquement des rangs (groupes de serveurs) à l'utilisateur sur un serveur TeamSpeak 3 pour un temps d'activité ou en ligne. Il rassemble également des informations et des statistiques sur l'utilisateur et affiche le celle çi sur ce site."; +$lang['stri0004'] = "Qui a créé le Ranksystem ?"; +$lang['stri0005'] = "Quand le Ranksystem a été créé ?"; +$lang['stri0006'] = "Première version en alpha: 05/10/2014."; +$lang['stri0007'] = "Première version en bêta: 01/02/2015."; +$lang['stri0008'] = "Vous pouvez voir la dernière version sur le site du Ranksystem ."; +$lang['stri0009'] = "Comment le Ranksystem a-t-il été créé?"; +$lang['stri0010'] = "Le Ranksystem est codé en"; +$lang['stri0011'] = "Il utilise également les bibliothèques suivantes:"; +$lang['stri0012'] = "Remerciements spéciaux à:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - pour la traduction en russe"; +$lang['stri0014'] = "Bejamin Frost - pour l'initialisation de la conception du design du bootstrap"; +$lang['stri0015'] = "ZanK & jacopomozzy - pour la traduction italienne"; +$lang['stri0016'] = "DeStRoYzR & Jehad - pour l'initialisation de la traduction en arabe"; +$lang['stri0017'] = "SakaLuX - pour l'initialisation de la traduction en roumain"; +$lang['stri0018'] = "0x0539 - pour l'initialisation de la traduction en néerlandais"; +$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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Top des utilisateurs"; +$lang['sttw0002'] = "De la semaine"; +$lang['sttw0003'] = "Avec %s %s de temps en ligne"; +$lang['sttw0004'] = "Top 10 comparés"; +$lang['sttw0005'] = "Heures (Définit 100%)"; +$lang['sttw0006'] = "%s heures (%s%)"; +$lang['sttw0007'] = "Top 10 des statistiques"; +$lang['sttw0008'] = "Top 10 vs d'autres en ligne"; +$lang['sttw0009'] = "Top 10 vs autres en temps actif"; +$lang['sttw0010'] = "Top 10 vs autres en temps inactif"; +$lang['sttw0011'] = "Top 10 (en heures)"; +$lang['sttw0012'] = "Autres %s utilisateurs (en heures)"; +$lang['sttw0013'] = "Avec %s %s de temps actif"; +$lang['sttw0014'] = "heures"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "Du mois"; +$lang['stta0001'] = "De tous les temps"; +$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['stve0002'] = "Un message avec le jeton vous a été envoyé sur le serveur TeamSpeak3."; +$lang['stve0003'] = "Veuillez entrer le jeton, que vous avez reçu sur le serveur TeamSpeak3. Si vous n'avez pas reçu de message, assurez-vous d'avoir choisi le bon identifiant unique."; +$lang['stve0004'] = "Le jeton saisi ne correspond pas ! Veuillez réessayer."; +$lang['stve0005'] = "Félicitations, vous avez réussi la vérification ! Vous pouvez maintenant continuer ..."; +$lang['stve0006'] = "Une erreur inconnue s'est produite. Veuillez réessayer. Si ce message apparait à plusieurs reprises, veuillez contacter un administrateur"; +$lang['stve0007'] = "Vérification sur le TeamSpeak"; +$lang['stve0008'] = "Choisissez ici votre identifiant unique sur le serveur TS3 pour vous vérifier."; +$lang['stve0009'] = " -- Choisissez vous-même -- "; +$lang['stve0010'] = "Vous recevrez un jeton sur le serveur TS3, que vous devrez saisir ici:"; +$lang['stve0011'] = "Jeton:"; +$lang['stve0012'] = "Vérifier"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_day'] = "Day(s)"; +$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'] = "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]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]."; +$lang['upusrerr'] = "L'indentifiant unique %s n'a pas pu être trouvé sur le TeamSpeak !"; +$lang['upusrinf'] = "L'utilisateur %s a été informé avec succès."; +$lang['user'] = "Nom d'utilisateur"; +$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'] = "Interface Web"; +$lang['wiaction'] = "action"; +$lang['wiadmhide'] = "clients exceptés masquer"; +$lang['wiadmhidedesc'] = "Pour masquer l'utilisateur excepté dans la sélection suivante"; +$lang['wiadmuuid'] = "Identifiant unique de l'administrateur"; +$lang['wiadmuuiddesc'] = "Entrez ici votre indentifiant unique; comme administrateur du Ranksystem.
Also multiple Client-IDs are possible -> comma separated

Ceci est nécessaire pour réinitialiser le mot de passe de l'interface Web. Ceci est nécessaire pour réinitialiser le mot de passe de l'interface Web.

S'il n'y a pas d'adresse client unique définie, il n'est pas possible de réinitialiser le mot de passe!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$lang['wiboost'] = "Boost"; +$lang['wiboostdesc'] = "Donnez à un utilisateur sur votre serveur TeamSpeak un groupe de serveurs (doit être créé manuellement), que vous pouvez déclarer ici en tant que groupe boost. Définir aussi un facteur qui doit être utilisé (par exemple 2x) et un temps, Combien de temps le boost doit être actif.
Plus le facteur est élevé, plus l'utilisateur atteint rapidement le rang supérieur.
Si le délai est écoulé, le groupe de serveurs boost est automatiquement supprimé de l'utilisateur concerné. Le temps découle dès que l'utilisateur reçoit le groupe de serveurs.

ID du groupe de serveurs => facteur => temps (en secondes)

Chaque entrée doit se séparer de la suivante avec une virgule.

Exemple:
12=>2=>6000,13=>3=>2500,14=>5=>600

Sur ce, un utilisateur dans le groupe de serveurs 12 obtient le facteur 2 pour les 6000 secondes suivantes, un utilisateur du groupe de serveurs 13 obtient le facteur 3 pour 2500 secondes, et ainsi de suite ..."; +$lang['wibot1'] = "Le robot du Ranksystem a été arrêté. Consultez le journal ci-dessous pour plus d'informations !"; +$lang['wibot2'] = "Le robot du Ranksystem a été démarer. Consultez le journal ci-dessous pour plus d'informations !"; +$lang['wibot3'] = "Le robot du Ranksystem a été redémarer. Consultez le journal ci-dessous pour plus d'informations !"; +$lang['wibot4'] = "Démarer / Arrêter le robot du Ranksystem"; +$lang['wibot5'] = "Démarer le bot"; +$lang['wibot6'] = "Stop le bot"; +$lang['wibot7'] = "Redémarer le bot"; +$lang['wibot8'] = "Journal du Ranksystem (extrait):"; +$lang['wibot9'] = "Remplissez tous les champs obligatoires avant de commencer le Ranksystem !"; +$lang['wichdbid'] = "ID des clients dans la base de donnée réinitialisé"; +$lang['wichdbiddesc'] = "Réinitialiser le temps en ligne d'un utilisateur, si son ID de client dans la base de donnée du serveur TeamSpeak a changé.

Exemple:
Si un client est retiré du serveur TeamSpeak, il obtient un nouveau ID de client dans la base de données lors de la prochaine connexion au serveur."; +$lang['wiconferr'] = "Il y a une erreur dans la configuration du Ranksystem. Veuillez aller à l'interface Web et corriger les paramètres de base (coeur). Surtout vérifier la configuration 'rank up'!"; +$lang['wichpw1'] = "Votre ancien mot de passe est incorrect. Veuillez réessayer."; +$lang['wichpw2'] = "Les nouveaux mots de passe ne sont pas identiques. Veuillez réessayer."; +$lang['wichpw3'] = "Le mot de passe de l'interface Web a été modifié avec succès. Demande de l'adresse IP %s."; +$lang['wichpw4'] = "Changer le mot de passe"; +$lang['widaform'] = "Format de date"; +$lang['widaformdesc'] = "Choisissez le format de date à afficher.

Exemple:
%a jours, %h heures, %i minutes, %s secondes"; +$lang['widbcfgsuc'] = "Configuration de la base de données enregistrée avec succès."; +$lang['widbcfgerr'] = "Erreur lors de l'enregistrement des configurations de base de données ! Échec de la connexion ou erreur d'écriture pour le fichier 'other/dbconfig.php'"; +$lang['widelcld'] = "Supprimer des clients"; +$lang['widelcldgrp'] = "Renouveler les groupes"; +$lang['widelcldgrpdesc'] = "Le Ranksystem se souvient des groupes de serveurs donnés, de sorte qu'il n'a pas besoin de donner / vérifier cela à chaque exécution du fichier worker.php à nouveau.

Avec cette fonction, vous pouvez supprimer une fois la connaissance de groupes de serveurs donnés. En effet, le Ranksystem tente de donner à tous les clients (qui sont sur le serveur TS3 en ligne) le groupe de serveurs du rang réel.
Pour chaque client, qui obtient le groupe ou rester dans le groupe, le Ranksystem se rappele ceci comme décrit au début.

Cette fonction peut être utile, lorsque l'utilisateur n'est pas dans le groupe de serveurs, ils doivent être pour la durée en ligne définie.

Attention: Exécuter dans un instant, où les prochaines minutes aucun rang ups deviennent dus ! Le Ranksystem ne peut pas supprimer l'ancien groupe, parce qu'il ne peut pas s'en rappeler ;-)"; +$lang['widelclddesc'] = "Supprimez les clients sélectionnés avant de la base de données du Ranksystem.

Avec cette suppression, les clients du serveur TeamSpeak sont intacts."; +$lang['widelsg'] = "Supprimer des groupes de serveurs"; +$lang['widelsgdesc'] = "Choisissez si les clients doivent également être supprimés du dernier groupe de serveurs connu, lorsque vous supprimez des clients de la base de données du Ranksystem.

Il ne considérera que les groupes de serveurs, qui concernent le Ranksystem"; +$lang['wideltime'] = "Heure de suppression"; +$lang['wideltimedesc'] = "Nettoyer les anciens clients de la base de données du Ranksystem.
Entrer un temps en secondes pendant lequel un client n'a pas été vu depuis pour le supprimer.

0 - Supprime tous les clients hors du Ranksystem

Les données des utilisateurs sur le serveur TeamSpeak sont intouché !"; +$lang['wiexcid'] = "Exception de canal"; +$lang['wiexciddesc'] = "Les virgules séparent une liste des ID de canaux qui ne doivent pas participer au système de classement.

Restez utilisateurs dans l'un des canaux répertoriés, le temps il sera complètement ignoré. Il n'y a ni l'heure en ligne, mais le temps d'inactivité compté.

Sense ne fait cette fonction que avec le mode 'temps en ligne', avec cette fonction on pourrait ignoré les canaux AFK par exemple.
Avec le mode 'active time', cette fonction est inutile parce que comme serait déduit le temps d'inactivité dans les salles AFK, et donc pas compté de toute façon.

Si un utilisateur est dans un canal exclu, il est alors noté pour cette période comme 'exclu du système de classement'. L'utilisateur n'apparaît plus dans la liste 'stats/list_rankup.php', sauf si les clients exclus ne doivent pas y être affichés (Page statistiques - Client exclu)."; +$lang['wiexgrp'] = "Exception de groupe de serveurs"; +$lang['wiexgrpdesc'] = "Des virgules séparent une liste d'ID de groupes de serveur, ces groupes ne seront pas considéré par le système de classement.
L'utilisateur dans au moins un de ces ID de groupes de serveurs sera ignoré pour le classement."; +$lang['wiexres'] = "Mode d'exception"; +$lang['wiexres1'] = "Défaut (temps de comptage)"; +$lang['wiexres2'] = "Pause"; +$lang['wiexres3'] = "Temps de réinitialisation"; +$lang['wiexresdesc'] = "Il existe trois modes, comment gérer une exception. Dans tous les cas, le classement en haut (assign server group) est désactivé. Vous pouvez choisir différentes options comment ils passent le temps d'un utilisateur (qui est accepté) devrait être manipulé.

1) Défaut (temps de comptage): Par défaut, le système de classement compte également la durée en ligne / active des utilisateurs, qui sont acceptés (groupe client / serveur). Avec une exception, seul le rang supérieur (assign servergroup) est désactivé. Cela signifie que si un utilisateur n'est plus exclu, il serait assigné au groupe en fonction de son temps collecté (par exemple niveau 3).

2) Pause: Sur cette option, la durée de dépensement en ligne et le temps d'inactivité seront gelés (pause) à la valeur réelle (avant que l'utilisateur ne soit exclu). Après une exception, le (après avoir supprimé le groupe de service excepté ou supprimé la règle d'exception) 'comptage' va continuer.

3) Temps de réinitialisation: Avec cette fonction, le temps compté en ligne et le temps d'inactivité seront réinitialisés à zéro au moment où l'utilisateur n'est plus exclu (en supprimant le groupe de serveurs excepté ou en supprimant la règle d'exception). Le temps de dépenser exception due serait encore compter jusqu'à ce qu'il a été réinitialisé.


L'exception de canal n'a pas d'importance ici, car le temps sera toujours ignoré (comme le mode de pause)."; +$lang['wiexuid'] = "Exception d'un client"; +$lang['wiexuiddesc'] = "Des virgules séparent une liste d'indentifiant unique de client, qui ne doivent pas être prise en considération pour le système de rang (Ranksystem).
Les utilisateurs de cette liste seront ignorés pour le classement."; +$lang['wigrptime'] = "Définition des prochains rangs"; +$lang['wigrptimedesc'] = "Définissez ici après quoi un utilisateur doit automatiquement obtenir un groupe de serveurs prédéfini.

temps (secondes)=>ID du groupe de serveur

Important pour cela est le 'online time' ou le 'active time' d'un utilisateur, en fonction du réglage du mode.

Chaque entrée doit se séparer de la suivante avec une virgule.

L'heure doit être saisie cumulative

Exemple:
60=>9,120=>10,180=>11

Sur ce un utilisateur obtient après 60 secondes le groupe de serveurs 9, à son tour après 60 secondes le groupe de serveurs 10, et ainsi de suite ..."; +$lang['wihladm'] = "Liste de classement (Mode-Admin)"; +$lang['wihladm1'] = "Ajouter du temps en ligne à un utilisateur"; +$lang['wihlcfg'] = "Paramètres de base"; +$lang['wihldb'] = "Paramètres de la base de données"; +$lang['wihlmsg'] = "Paramètres des messages"; +$lang['wihlsty'] = "Paramètres de la page des statistiques"; +$lang['wihlts'] = "Paramètres TeamSpeak"; +$lang['wihlvs'] = "Différents réglages"; +$lang['wiignidle'] = "Ignorer le mode inactif"; +$lang['wiignidledesc'] = "Définissez une période, jusqu'à laquelle le temps d'inactivité d'un utilisateur sera ignoré.

Lorsqu'un client ne fait rien sur le serveur (= inactif), ce temps est noté par le Ranksystem. Avec cette fonction, le temps d'inactivité d'un utilisateur ne sera compté que lorsque la limite définie. Seulement quand la limite définie est dépassée, le Ranksystem compte le temps d'inactivité

Cette fonction joue seulement en conjonction avec le mode 'active time' un rôle.

Ce qui signifie que la fonction est, par exemple, pour évaluer le temps d'écoute dans les conversations, cela est définie comme une activitée.

0 = désactiver la fonction

Exemple:
Ignorer le mode inactif = 600 (secondes)
Un client a un ralenti de 8 minutes
Conséquence:
8 minutes de ralenti sont ignorés et il reçoit donc cette fois comme temps actif. Si le temps d'inactivité augmente maintenant à plus de 12 minutes, le temps dépasse 10 minutes et, dans ce cas, 2 minutes seront comptées comme temps d'inactivité."; +$lang['wilog'] = "Emplacement des logs"; +$lang['wilogdesc'] = "Chemin du fichier journal du Ranksystem.

Exemple:
/var/logs/ranksystem/

Assurez-vous que l'utilisateur Web possède les autorisations d'écriture dans le chemin d'accès aux log."; +$lang['wilogout'] = "Déconnexion"; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Définissez un message, qui sera envoyé à un utilisateur, quand il se passe le rang supérieur.

Ce message sera envoyé via message privé à l'utilisateur sur le TeamSpeak. Donc si vous conaissez le bb-code, il pourrait alors être utilisé, ce qui fonctionne aussi pour un message privé normal.
http://ts-n.net/lexicon.php?showid=97#lexindex

En outre, le temps précédemment passé peut être exprimé par des arguments:
%1\$s - jours
%2\$s - heures
%3\$s - minutes
%4\$s - secondes
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Exemple:
Bravo !\\nVous venez d'atteindre un nouveau rang.Vous avez un total de %1\$s jour(s), %2\$s heure(s) et %3\$s minute(s) [B]Continuez ainsi ![/B] ;-)"; +$lang['wimsgsn'] = "Nouvelles du serveur"; +$lang['wimsgsndesc'] = "Définissez un message, qui sera affiché sur la page /stats/ comme news du serveur.

Vous pouvez utiliser les fonctions html par défaut pour modifier la mise en page

Exemple:
<b> - pour du gras
<u> - pour souligné
<i> - pour l'italic
<br> - pour une nouvelle ligne"; +$lang['wimsgusr'] = "Notification lors l'obtention du grade supérieur"; +$lang['wimsgusrdesc'] = "Informer un utilisateur avec un message texte privé sur son rang."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Base de données"; +$lang['winav3'] = "Coeur"; +$lang['winav4'] = "Autres"; +$lang['winav5'] = "Messages"; +$lang['winav6'] = "Page des statistiques"; +$lang['winav7'] = "Gestion"; +$lang['winav8'] = "Marche/Arrêt du bot"; +$lang['winav9'] = "Mise à jour disponible !"; +$lang['winav10'] = "Veuillez utiliser l'interface Web uniquement via %s HTTPS%s Un cryptage est essentiel pour assurer votre confidentialité et votre sécurité.%sPour pouvoir utiliser le protocole HTTPS, votre serveur Web doit prendre en charge une connexion SSL."; +$lang['winav11'] = "Veuillez saisir l'identifiant client unique de l'administrateur du Ranksystem (Autre -> ID d'administrateur). Ceci est très important dans le cas où vous avez perdu vos informations de connexion pour l'interface Web (pour les réinitialiser)."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Commande \"!nextup\""; +$lang['winxinfodesc'] = "Permet à l'utilisateur sur le serveur TeamSpeak3 d'écrire la commande \"!nextup\" Au bot Ranksystem (requête (query)) en tant que message texte privé.

Comme réponse à l'utilisateur, vous obtiendrez un message texte défini avec le temps nécessaire pour le classement suivant.

Désactivé - La fonction est désactivée. La commande '!nextup' sera ignorée.
Autorisée - seulement le rang suivant - Renvoie le temps nécessaire pour le prochain groupe.
Autorisée - tous les rangs suivants - Donne le temps nécessaire à tous les rangs supérieurs."; +$lang['winxmode1'] = "Désactivé"; +$lang['winxmode2'] = "Autorisée - seulement le rang suivant"; +$lang['winxmode3'] = "Autorisée - tous les rangs suivants"; +$lang['winxmsg1'] = "Message"; +$lang['winxmsgdesc1'] = "Définir un message, que l'utilisateur obtiendra comme réponse à la commande \"!nextup\".

Arguments:
%1$s - Jours pour le classement suivant
%2$s - Heures pour le classement suivant
%3$s - Minutes pour le classement suivant
%4$s - Secondes pour le classement suivant
%5$s - Nom du groupe de serveurs suivant
%6$s - name of the user (recipient)

Exemple:
Votre prochain rang sera dans %1$s jours, %2$s heures et %3$s minutes et %4$s secondes. Le prochain groupe de serveurs que vous allez atteindre est [B]%5$s[/B]."; +$lang['winxmsg2'] = "Message (le plus élevé)"; +$lang['winxmsgdesc2'] = "Définir un message, que l'utilisateur obtiendra comme réponse à la commande \"!nextup\", lorsque l'utilisateur atteint déjà le rang le plus élevé.

Arguments:
%1$s - Jours pour le classement suivant
%2$s - Heures pour le classement suivant
%3$s - Minutes pour le classement suivant
%4$s - Secondes pour le classement suivant
%5$s - Nom du groupe de serveurs suivant
%6$s - name of the user (recipient)

Exemple:
Vous avez atteint le rang le plus élevé pour %1$s jours, %2$s heures et %3$s minutes et %4$s secondes."; +$lang['winxmsg3'] = "Message (exclu)"; +$lang['winxmsgdesc3'] = "Définir un message, que l'utilisateur obtiendra comme réponse à la commande \"!nextup\", lorsque l'utilisateur est exclu du Ranksystem.

Arguments:
%1$s - Jours pour le classement suivant
%2$s - Heures pour le classement suivant
%3$s - Minutes pour le classement suivant
%4$s - Secondes pour le classement suivant
%5$s - Nom du groupe de serveurs suivant
%6$s - name of the user (recipient)

Exemple:
Vous êtes excepté du Ranksystem. Si vous souhaitez revenir dans le classement, contactez un administrateur sur le serveur TS3."; +$lang['wirtpw1'] = "Désolé l'ami, vous avez oublié d'entrer votre identifiant d'administrateur dans l'interface web avant. Il n'y a aucun moyen de réinitialiser le mot de passe !"; +$lang['wirtpw2'] = "L'identifiant unique de l'administrateur introuvable sur le serveur TeamSpeak3. Vous devez être en ligne avec l'indentifiant unique, qui est enregistré en tant qu'administrateur."; +$lang['wirtpw3'] = "Votre adresse IP ne correspond pas à l'adresse IP de l'administrateur sur le serveur TeamSpeak3. Assurez-vous d'avoir la même adresse IP sur le serveur TS3 et sur cette page (le même protocole IPv4 / IPv6 est également nécessaire)."; +$lang['wirtpw4'] = "\nLe mot de passe de l'interface Web a été réinitialisé.\nUtilisateur: %s\nMot de passe: [B]%s[/B]\n\nConnexion %sici%s"; +$lang['wirtpw5'] = "Un message privé a été envoyé à l'administrateur avec le nouveau mot de passe sur le serveur TeamSpeak3. Cliquez %s ici %s pour vous connecter."; +$lang['wirtpw6'] = "Le mot de passe de l'interface Web a été réinitialisé. Demande de l'adresse IP %s."; +$lang['wirtpw7'] = "Réinitialiser le mot de passe"; +$lang['wirtpw8'] = "Ici, vous pouvez réinitialiser le mot de passe de l'interface Web."; +$lang['wirtpw9'] = "Les éléments suivants sont nécessaires pour réinitialiser le mot de passe:"; +$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."; +$lang['wishcolas'] = "Actuel groupe de serveurs"; +$lang['wishcolasdesc'] = "Afficher la colonne 'Actuel groupe de serveurs' dans list_rankup.php"; +$lang['wishcolat'] = "Temps actif"; +$lang['wishcolatdesc'] = "Afficher la colonne 'sum. Temps actif 'dans list_rankup.php"; +$lang['wishcolcld'] = "Nom du client"; +$lang['wishcolclddesc'] = "Afficher la colonne 'Nom du client' dans list_rankup.php"; +$lang['wishcoldbid'] = "ID dans la BDD"; +$lang['wishcoldbiddesc'] = "Afficher la colonne 'ID dans la BDD' dans list_rankup.php"; +$lang['wishcolgs'] = "Groupe actuel depuis"; +$lang['wishcolgsdesc'] = "Afficher la colonne 'groupe actuel depuis' dans list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "Temps d'inactivité"; +$lang['wishcolitdesc'] = "Afficher la colonne 'sum. temps d'inactivité' dans list_rankup.php"; +$lang['wishcolls'] = "Dernière apparition"; +$lang['wishcollsdesc'] = "Afficher la colonne 'Dernière apparition' dans list_rankup.php"; +$lang['wishcolnx'] = "Rang suivant"; +$lang['wishcolnxdesc'] = "Afficher la colonne 'Rang suivant' dans list_rankup.php"; +$lang['wishcolot'] = "Temps en ligne"; +$lang['wishcolotdesc'] = "Afficher la colonne 'Temps en ligne' dans list_rankup.php"; +$lang['wishcolrg'] = "Rang"; +$lang['wishcolrgdesc'] = "Afficher la colonne 'Rang' dans list_rankup.php"; +$lang['wishcolsg'] = "Groupe serveur suivant"; +$lang['wishcolsgdesc'] = "Afficher la colonne 'Groupe serveur suivant' dans list_rankup.php"; +$lang['wishcoluuid'] = "Identifiant unique du client"; +$lang['wishcoluuiddesc'] = "Afficher la colonne 'Identifiant unique du client' dans list_rankup.php"; +$lang['wishexcld'] = "Clients exclus"; +$lang['wishexclddesc'] = "Afficher les clients dans list_rankup.php,
qui sont exclus et ne participent donc pas au système de classement."; +$lang['wishexgrp'] = "Groupes exceptés"; +$lang['wishexgrpdesc'] = "Affichez les clients dans list_rankup.php, qui sont dans la liste 'Clients exclus' et ne participent donc pas au système de classement."; +$lang['wishhicld'] = "Clients au plus haut niveau"; +$lang['wishhiclddesc'] = "Afficher les clients dans list_rankup.php, qui ont atteints le niveau le plus élevé dans le système de classement."; +$lang['wishnav'] = "Afficher le site de navigation"; +$lang['wishnavdesc'] = "Afficher la navigation du site sur la page 'stats/'.

Si cette option est désactivée sur la page stats, la navigation du site sera masquée.
Vous pouvez alors prendre chaque site, par exemple 'stats/list_rankup.php' et incorporez-le comme cadre dans votre site Web ou tableau d'affichage existant."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "Il y a deux modes, comme le temps peut être compté et peut ensuite demander une augmentation de rang.

1) Temps en ligne: Ici, le temps en ligne pur de l'utilisateur est pris en compte (Voir la colonne 'Temps en ligne ' dans la page 'stats/list_rankup.php')

2) Temps actif: Ceci sera déduit de l'heure en ligne d'un utilisateur, le temps inactif (inactif) (voir la colonne 'Temps actif' dans la page 'stats/list_rankup.php').

Un changement de mode avec une base de données déjà utilisée n'est pas recommandé, mais ça peut fonctionner."; +$lang['wisvconf'] = "Sauvegarder"; +$lang['wisvsuc'] = "Modifications enregistrées avec succès !"; +$lang['wisvres'] = "Vous devez redémarrer le Ranksystem avant que les modifications prennent effet! %s"; +$lang['witime'] = "Fuseau horaire"; +$lang['witimedesc'] = "Sélectionnez le fuseau horaire du serveur."; +$lang['wits3avat'] = "Délais sur les avatars"; +$lang['wits3avatdesc'] = "Définir un temps en secondes pour retarder le téléchargement des avatars TS3 qui ont été modifiés.

Cette fonction est particulièrement utile pour les bots (musique), qui changent périodiquement leurs avatars."; +$lang['wits3dch'] = "Canal par défaut"; +$lang['wits3dchdesc'] = "L'ID du canal où le bot doit se connecter.

Le Bot rejoindra ce canal après sa connexion au serveur TeamSpeak."; +$lang['wits3host'] = "Adresse de l'hôte TS3"; +$lang['wits3hostdesc'] = "Adresse du serveur TeamSpeak 3
(IP ou DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "Avec le Slowmode, vous pouvez réduire le \"spam\" des commandes query (requêtes) vers le serveur TeamSpeak. Cela empêche les interdictions en cas de flood.
Les commandes sont retardées avec cette fonction.

!!! CELA REDUIT L'UTILISATION DU CPU !!!

L'activation n'est pas recommandée, si ce n'est pas nécessaire. Le retard augmente la durée du Bot, ce qui le rend imprécis.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Nom du robot (bot)"; +$lang['wits3qnm2'] = "Nom du deuxième bot"; +$lang['wits3qnm2desc'] = "Un nom de rechange est requis, si le premier est déjà utilisé."; +$lang['wits3qnmdesc'] = "Le nom avec lequel la connexion en query sera établie.
Vous pouvez le nommer gratuitement :)."; +$lang['wits3querpw'] = "Mot de passe query du TS3"; +$lang['wits3querpwdesc'] = "Mot de passe query du serveur TeamSpeak 3
Mot de passe pour l'utilisateur de la requête."; +$lang['wits3querusr'] = "Utilisateur query du TS3"; +$lang['wits3querusrdesc'] = "Nom d'utilisateur query du serveur TeamSpeak3
La valeur par défaut est serveradmin
Bien sûr, vous pouvez également créer un compte serverquery supplémentaire uniquement pour le Ranksystem.
Les autorisations nécessaires sont trouvable sur:
http://ts-n.net/ranksystem.php"; +$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['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"; +$lang['wivlangdesc'] = "Choisissez une langue par défaut pour le Ranksystem.

La langue est également sélectionnable sur le site web pour les utilisateurs et sera stockée pour sa session."; ?> \ No newline at end of file diff --git a/languages/core_it.php b/languages/core_it.php index 83ef54b..a903d56 100644 --- a/languages/core_it.php +++ b/languages/core_it.php @@ -1,529 +1,534 @@ - L'utente è stato aggiunto al sistema."; -$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..."; -$lang['cleanc'] = "Utenti eliminati con successo dal database"; -$lang['cleancdesc'] = "Con questa funzione i vecchi utenti nel database verranno eliminati.

Così da poter sincronizzare gli utenti del Ranksystem con il database di TeamSpeak. Gli utenti non presenti nel database di TeamSpeak verranno cancellati dal Ranksystem.

Questa funzione puo essere abilitata solo quando la modalità slowmode non è abilitata!


Per la correzione automatica del database di utenti TeamSpeak potrete usare \"Client Cleaner\" :
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "Sono stati cancellati %s utenti dal database del RankSystem perché non esistevano piu nel database di TeamSpeak."; -$lang['cleanno'] = "Non è stato rilevato nulla da cancellare..."; -$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'] = "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'] = "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'] = "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!"; -$lang['errseltime'] = "Inserire tempo online da aggiungere!"; -$lang['errukwn'] = "È stato riscontrato un errore sconosciuto!"; -$lang['errupcount'] = "Errore nel rinnovo della somma del tempo online dell’utente %s con l’Id Univoco %s"; -$lang['highest'] = "È stato raggiunto il rank massimo"; -$lang['install'] = "Installazione"; -$lang['instdb'] = "Installa il database:"; -$lang['instdbsuc'] = "Il database %s è stato creato con successo."; -$lang['insterr1'] = "ATTENZIONE: Il database selezionato per il Ranksystem esiste già \"%s\".
Durante l'installazione il database verrà resettato
Se non sei sicuro che sia il database corretto usa un database differente."; -$lang['insterr2'] = "PDO è necessario ma non sembra essere installato. Installa PDO e riprova!"; -$lang['insterr3'] = "La funzione PHP exec deve essere abilitata, ma sembra non lo sia. Per favore, abilita la funzione PHP exec e riprova!"; -$lang['insterr4'] = "La tua versione PHP (%s) is antecedente alla 5.5.0. Aggiorna la tua PHP e prova ancora!"; -$lang['insterr5'] = "SimpleXML è richiesto, ma non sembra disponibile. Installa simpleXML e riprova!"; -$lang['insterr6'] = "PHP cURL è richiesto ma sembra non disponibile. Installa PHP cURL e riprova!"; -$lang['insterr7'] = "PHP Zip è richiesto ma sembra non disponibile. Installa PHP Zip e riprova!"; -$lang['insterr8'] = "PHP COM è richiesto (php_com_dotnet.dll) ma sembra non disponibile. Installa PHP COM e riprova!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Impossibile salvare la configurazione del database! Modifica il file 'other/dbconfig.php' dandogli i permessi 0777 (chmod 777 nomefile on windows 'full access') e riprova."; -$lang['isntwicfg2'] = "Configura Webinterface"; -$lang['isntwichm'] = "Permessi di scrittura negati per la cartella \"%s\". Per favore dai i permessi chmod 777 (on windows 'full access') e prova ad avviare il Ranksystem di nuovo."; -$lang['isntwiconf'] = "Apri la %s per configurare il Ranksystem!"; -$lang['isntwidbhost'] = "Indirizzo host DB:"; -$lang['isntwidbhostdesc'] = "L'indirizzo del server su cui si trova il database (Se il database è in locale basterà inserire 127.0.0.1)
(IP o DNS)"; -$lang['isntwidbmsg'] = "Errore del Database: "; -$lang['isntwidbname'] = "Nome DB:"; -$lang['isntwidbnamedesc'] = "Nome del database"; -$lang['isntwidbpass'] = "Password DB:"; -$lang['isntwidbpassdesc'] = "La Password per accedere al database"; -$lang['isntwidbtype'] = "Tipo DB:"; -$lang['isntwidbtypedesc'] = "Il tipo di Database

Dovrai installare i driver PDO.
Per maggiori informazioni sui requisiti guarda sulla pagina http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "Utente DB:"; -$lang['isntwidbusrdesc'] = "Nome dell'utente che ha l'accesso al database"; -$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver"; -$lang['isntwiusr'] = "L'utente dell'interfaccia Web è stato creato con successo."; -$lang['isntwiusrcr'] = "Crea Webinterface-User"; -$lang['isntwiusrdesc'] = "Inserisci nome utente e password per l'accesso all'interfaccia web. Con l'interfaccia web tu potrai configurare il Ranksystem."; -$lang['isntwiusrh'] = "Accesso - Interfaccia Web"; -$lang['listacsg'] = "Gruppo attuale"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "Nessuno (disabilitato)"; -$lang['listgrps'] = "Gruppo attuale da"; -$lang['listip'] = "Indirizzo IP"; -$lang['listnick'] = "Nome Utente"; -$lang['listnxsg'] = "Prossimo Gruppo"; -$lang['listnxup'] = "Prossimo Rank Tra"; -$lang['listrank'] = "Rank"; -$lang['listseen'] = "Ultima Volta Online"; -$lang['listsuma'] = "Somma del tempo di attività"; -$lang['listsumi'] = "Somma del tempo in IDLE"; -$lang['listsumo'] = "Somma del tempo Online"; -$lang['listuid'] = "Client-ID Univoco"; -$lang['login'] = "Login"; -$lang['msg0001'] = "Versione in uso: %s"; -$lang['msg0002'] = "I comandi validi sono:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tvedi la lista dei comandi\n[B]version[/B]\t\t\t\t\t\t\t\t vedi la versione di Ranksystem\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t vedi il tempo rimasto per aumentare di rank\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\tRiavvia il bot di Ranksystem\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t Arresta il bot del Ranksystem"; -$lang['msg0003'] = "Non sei idoneo per eseguire questo comando!"; -$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'] = "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'] = "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."; -$lang['sccrmcld'] = "L'utente con il Client-ID %s è stato correttamente cancellato dal database del ranksystem."; -$lang['sccupcount'] = "Aggiunto con successo un tempo online di %s secondi agli utenti con unique Client-IDs (%s)"; -$lang['setontime'] = "aggiungi tempo"; -$lang['setontimedesc'] = "Aggiungi tempo online agli utenti precedentemente selezionati. Ogni utente avrà questo tempo addizionale aggiunto al loro vecchio tempo online.

Il tempo online digitato sarà considerato per l'aumento di rank e avrà effetto immediato."; -$lang['sgrpadd'] = "All'utente %s è stato assegnato il servergroup %s (Client-ID Univoco: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "All'utente %s è stato rimosso il servergroup %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'] = "Assegna un Servergroup"; -$lang['stag0002'] = "Gruppi permessi"; -$lang['stag0003'] = "Definisci una lista di gruppi, che un utente può assegnarsi.

I servergroups vanno inseriti qui separati da virgola.

Esempio:
23,24,28"; -$lang['stag0004'] = "Limite Gruppi"; -$lang['stag0005'] = "Limita il numero di servergroups che possono essere aggiunti."; -$lang['stag0006'] = "Ci sono multipli unique IDs online con il tuo IP. Per favore %sclicca qui%s per verificarti."; -$lang['stag0007'] = "Per favore attendi finchè la tua modifica venga applicata prima di apportare nuove modifiche..."; -$lang['stag0008'] = "Mofiche del gruppo effettuate con successo. Potrebbe metterci alcuni secondi per essere attivo anche sul Ts3."; -$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'] = "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'] = "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"; -$lang['stix0004'] = "Tempo online di tutti gli utenti / Totale"; -$lang['stix0005'] = "Vedi i migliori di sempre"; -$lang['stix0006'] = "Vedi i migliori del mese"; -$lang['stix0007'] = "Vedi i migliori della settimana"; -$lang['stix0008'] = "Utilizzo del server"; -$lang['stix0009'] = "Negli ultimi 7 giorni"; -$lang['stix0010'] = "Negli ultimi 30 giorni"; -$lang['stix0011'] = "Nelle ultime 24 ore"; -$lang['stix0012'] = "seleziona il periodo"; -$lang['stix0013'] = "Ultimo giorno"; -$lang['stix0014'] = "Ultima settimana"; -$lang['stix0015'] = "Ultimo mese"; -$lang['stix0016'] = "Tempo di attività/inattività (di tutti gli utenti)"; -$lang['stix0017'] = "Versioni (di tutti gli utenti)"; -$lang['stix0018'] = "Nazionalità (di tutti gli utenti)"; -$lang['stix0019'] = "Piattaforme (di tutti gli utenti)"; -$lang['stix0020'] = "Statistiche correnti"; -$lang['stix0023'] = "Stato del server"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Utenti (Online / Max)"; -$lang['stix0027'] = "Numero delle stanze"; -$lang['stix0028'] = "Ping medio del server"; -$lang['stix0029'] = "Totale byte ricevuti"; -$lang['stix0030'] = "Totale byte inviati"; -$lang['stix0031'] = "Tempo online del server"; -$lang['stix0032'] = "Prima di essere offline:"; -$lang['stix0033'] = "00 Giorni, 00 Ore, 00 Min, 00 Sec"; -$lang['stix0034'] = "Media Pacchetti persi"; -$lang['stix0035'] = "Statistiche complessive"; -$lang['stix0036'] = "Nome del server"; -$lang['stix0037'] = "Indirizzo del server (Indirizzo del server : Porta)"; -$lang['stix0038'] = "Password del server"; -$lang['stix0039'] = "Nessuna (Il server è pubblico)"; -$lang['stix0040'] = "Si (Il server è privato)"; -$lang['stix0041'] = "ID del server"; -$lang['stix0042'] = "Piattaforma del server"; -$lang['stix0043'] = "Versione del Server"; -$lang['stix0044'] = "Data di creazione del server (dd/mm/yyyy)"; -$lang['stix0045'] = "Inserito nella lista dei server"; -$lang['stix0046'] = "Attivato"; -$lang['stix0047'] = "Non attivato"; -$lang['stix0048'] = "Non vi sono ancora abbastanza informazioni..."; -$lang['stix0049'] = "Tempo online di tutti gli utenti / mese"; -$lang['stix0050'] = "Tempo online di tutti gli utenti / settimana"; -$lang['stix0051'] = "Il TeamSpeak non ha una data di creazione..."; -$lang['stix0052'] = "Altri"; -$lang['stix0053'] = "Tempo di Attività (in Giorni)"; -$lang['stix0054'] = "Tempo di Inattività (in Giorni)"; -$lang['stix0055'] = "online nelle ultime 24 ore"; -$lang['stix0056'] = "online negli ultimi %s giorni"; -$lang['stix0059'] = "Lista degli utenti"; -$lang['stix0060'] = "Utenti"; -$lang['stix0061'] = "Visualizza tutte le versioni"; -$lang['stix0062'] = "Viaualizza tutte le nazionalità"; -$lang['stix0063'] = "Visualizza tutte le piattaforme"; -$lang['stmy0001'] = "Le mie statistiche"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "ID Univoco:"; -$lang['stmy0005'] = "Connessioni totali al server:"; -$lang['stmy0006'] = "Data di inzio statistiche:"; -$lang['stmy0007'] = "Tempo totale online:"; -$lang['stmy0008'] = "Tempo online negli ultimi %s giorni:"; -$lang['stmy0009'] = "Tempo di attività negli ultimi %s giorni:"; -$lang['stmy0010'] = "Obbiettivi completati:"; -$lang['stmy0011'] = "Progresso obbiettivo tempo online"; -$lang['stmy0012'] = "Tempo: Leggendario"; -$lang['stmy0013'] = "Perché hai raggiunto il tempo online di %s ore."; -$lang['stmy0014'] = "Completato"; -$lang['stmy0015'] = "Tempo: Oro"; -$lang['stmy0016'] = "% Completato per il raggiungimento del livello 'Leggendario'"; -$lang['stmy0017'] = "Tempo: Argento"; -$lang['stmy0018'] = "% Completato per il raggiungimento del livello 'Oro'"; -$lang['stmy0019'] = "Tempo: Bronzo"; -$lang['stmy0020'] = "% Completato per il raggiungimento del livello 'Argento'"; -$lang['stmy0021'] = "Tempo: Non Classificato"; -$lang['stmy0022'] = "% Completato per il raggiungimento del livello 'Bronzo'"; -$lang['stmy0023'] = "Progresso obbiettivo connessioni"; -$lang['stmy0024'] = "Connessioni: Leggendario"; -$lang['stmy0025'] = "Perchè ti sei connesso %s volte al server."; -$lang['stmy0026'] = "Connessioni: Oro"; -$lang['stmy0027'] = "Connessioni: Argento"; -$lang['stmy0028'] = "Connessioni: Bronzo"; -$lang['stmy0029'] = "Connessioni: Non Classificato"; -$lang['stmy0030'] = "Progresso prossimo gruppo"; -$lang['stmy0031'] = "Tempo di attività totale:"; -$lang['stna0001'] = "Nazionalità"; -$lang['stna0002'] = "statistiche"; -$lang['stna0003'] = "Codice"; -$lang['stna0004'] = "Contati"; -$lang['stna0005'] = "Versioni"; -$lang['stna0006'] = "Piattaforme"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "News del server"; -$lang['stnv0002'] = "Chiudi"; -$lang['stnv0003'] = "Aggiorna le informazioni utente"; -$lang['stnv0004'] = "Aggiorna solamente quando vengono modificate le informazioni su TS3, come ad esempio un cambio del nome od un nuovo collegamento"; -$lang['stnv0005'] = "Funziona solamente se sei connesso al server TS3 in contemporaneo (devi avere TeamSpeak aperto ed essere collegato con la tua identità per vedere le tue statistiche)"; -$lang['stnv0006'] = "Aggiorna"; -$lang['stnv0007'] = "Area Battaglie"; -$lang['stnv0008'] = "Puoi sfidare gli altri utenti in una battaglia tra 2 utenti o 2 team."; -$lang['stnv0009'] = "Mentre la battaglia è attiva il tempo online dell'utente o del team sarà contato."; -$lang['stnv0010'] = "Quando la battaglia giungerà alla fine il team o l'utente col maggior tempo online vincerà."; -$lang['stnv0011'] = "(Regolarmente un combattimento dura 48 ore)"; -$lang['stnv0012'] = "Il tema o l'utente vincitore riceverà un boost, che l'utente potrà utilizzare quando vorrà."; -$lang['stnv0013'] = "Questo sarà mostrato nella pagina Le mie statistiche tab."; -$lang['stnv0014'] = "(Potrebbe essere un booster(2x) per 8 hours, o un aggiunta istantanea del tempo online (4 hours), etc."; -$lang['stnv0015'] = "Questi boost possono essere utilizzati ad esempio per scalare la classifica della settimana."; -$lang['stnv0016'] = "Non disponibile"; -$lang['stnv0017'] = "Non sei connesso al server TeamSpeak, perciò non potrai vedere le tue statistiche personali."; -$lang['stnv0018'] = "Per favore connettiti al server TeamSpeak e ricarica questa sessione premendo il pulsante blu in alto a destra."; -$lang['stnv0019'] = "Le mie statistiche - contenuto della pagina"; -$lang['stnv0020'] = "Questa pagina contiene un sommario generale delle tue statistiche personali e le attività nel server."; -$lang['stnv0021'] = "Queste informazioni sono state inserite dal primo avvio del Ranksystem e non dall'inizio del server TeamSpeak."; -$lang['stnv0022'] = "Questa pagina riceve i dati dal database. Perciò potrebbe avere un lieve ritardo nel ricevere le informazioni."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistiche"; -$lang['stnv0025'] = "Inserimenti limitati"; -$lang['stnv0026'] = "tutti"; -$lang['stnv0027'] = "Le informazioni su questo sito potrebbero NON essere aggiornate in quanto sembra che il Ranksystem non sia connesso al server TeamSpeak."; -$lang['stnv0028'] = "(Non sei connesso al TS3!)"; -$lang['stnv0029'] = "Lista Utenti"; -$lang['stnv0030'] = "Informazioni Ranksystem"; -$lang['stnv0031'] = "Nel campo di ricerca potrai inserire un nome utente, un Client-ID o un Client-database-ID."; -$lang['stnv0032'] = "Potrai inoltre filtrare i risultati (vedi sotto). Puoi inserire i filtri nel campo di ricerca."; -$lang['stnv0033'] = "La ricerca di utenti combinata a dei filtri è possible. Inserire prima il filtro e successivamente nome utente o ID."; -$lang['stnv0034'] = "È inoltre possibile combinare diversi filtri. Inseriscili consecutivamente nel campo di ricerca."; -$lang['stnv0035'] = "Esempio:
filtro:non esclusi:Utente Teamspeak"; -$lang['stnv0036'] = "Mostra solo gli utenti che sono esclusi (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Mostra solo gli utenti che non sono esclusi."; -$lang['stnv0038'] = "Mostra solo gli utenti online."; -$lang['stnv0039'] = "Mostra solo gli utenti offline"; -$lang['stnv0040'] = "Mostra solo gli utenti che sono in un determinato Server Group. Rappresentano il rank attuale.
Sostituisci qui GROUPID."; -$lang['stnv0041'] = "Mostra solo gli utenti selezionati per ultima visita effettuata.
Replace OPERATOR con '<' or '>' or '=' or '!='.
E Sostituisci qui TIME con formato data 'Y-m-d H-i' (example: 2016-06-18 20-25).
Esempio: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Mostra solo gli utenti di un determinato paese.
Sostituisci qui TS3-COUNTRY-CODE e il codice del paese.
Per la lista dei codici google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "Connettiti al Ts3"; -$lang['stri0001'] = "Informazioni sul Ranksystem"; -$lang['stri0002'] = "Che cos'è il ranksystem?"; -$lang['stri0003'] = "E' un bot di Ts3, che automaticamente attribuisce i rank (servergroups) agli utenti su un TeamSpeak 3 per il tempo trascorso online o di attività online. Inoltre raccoglie informazioni e statistiche sull’utente e sul server mostrandoli sul sito."; -$lang['stri0004'] = "Chi ha creato il Ranksystem?"; -$lang['stri0005'] = "Quando è stato creato?"; -$lang['stri0006'] = "Prima Alpha: 05/10/2014."; -$lang['stri0007'] = "Prima Beta: 01/02/2015."; -$lang['stri0008'] = "Puoi trovare l'ultima versione nel sito web del Ranksystem."; -$lang['stri0009'] = "Com'è stato creato il RankSystem?"; -$lang['stri0010'] = "Che linguaggio è stato utilizzato"; -$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['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 - 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"; -$lang['sttw0004'] = "Top 10 a confronto"; -$lang['sttw0005'] = "Ore (Definisce il 100 %)"; -$lang['sttw0006'] = "%s ore (%s%)"; -$lang['sttw0007'] = "Top 10 Statistiche"; -$lang['sttw0008'] = "Top 10 vs Altri utenti in tempo online"; -$lang['sttw0009'] = "Top 10 vs Altri utenti in tempo di attività"; -$lang['sttw0010'] = "Top 10 vs Altri utenti in tempo di inattività"; -$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'] = "minuti"; -$lang['sttm0001'] = "Del mese"; -$lang['stta0001'] = "Di sempre"; -$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."; -$lang['stve0005'] = "Congratulazioni, sei stato verificato con successo! Ora puoi continuare.."; -$lang['stve0006'] = "C'è stato un errore sconosciuto. Per favore riprova. Se ricapita contatta un amministratore."; -$lang['stve0007'] = "Verifica sul server TeamSpeak"; -$lang['stve0008'] = "Scegli qui il tuo Unique ID del server Ts3 per verificarti."; -$lang['stve0009'] = " -- Seleziona -- "; -$lang['stve0010'] = "Riceverai un token sul server Teamspeak3, il quale devi inserire qui:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verifica"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Ora(e)"; -$lang['time_day'] = "Giorno(i)"; -$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'] = "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"; -$lang['wiadmhidedesc'] = "Per nascondere i clients esclusi dalla lista"; -$lang['wiadmuuid'] = "admin ID"; -$lang['wiadmuuiddesc'] = "Inserisci qui il tuo unique Client-ID; come amministratore del Ranksystem.
Also multiple Client-IDs are possible -> comma separated

Questo è richiesto per effettuare un reset della password della webinterface.

Non c'è un indirizzo unique Client-ID definito, non è possibile effettuare un reset della password!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$lang['wiboost'] = "Boost"; -$lang['wiboostdesc'] = "Dai all'utente sul TS3 un servergroup (che dovrà essere creato manualmente), con il quale potrai definire il Boost. Definisci anche il fattore di moltiplicazione (per esempio 2x) e il (per quanto il boost durerà).
Più alto è il fattore, più velocemente l'utente raggiungerà il rank successivo.
Uno volta che il tempo impostato finirà il servergroup verrà rimosso in automatico dal RankSystem.Il tempo parte non appena viene assegnato il servergroup all'utente.

servergroup ID => fattore (2,3) => tempo (in secondi)

Per separare ogni voce utilizza la virgola.

Esempio:
12=>2=>6000,13=>3=>2500,14=>5=>600

Nell'esempio il servergroup 12 per i successivi 6000 secondi gli verrà conteggiato il doppio del tempo online, al servergroup 13 verrà moltiplicato il tempo per 3 per 2500 secondi, e cosi via..."; -$lang['wibot1'] = "Il bot del Ranksystem dovrebbe essere stato arrestato. Controlla il log qui sotto per maggiori informazioni!"; -$lang['wibot2'] = "Il bot del Ranksystem dovrebbe essere stato avviato. Controlla il log qui sotto per maggiori informazioni!"; -$lang['wibot3'] = "Il bot del Ranksystem dovrebbe essere stato riavviato. Controlla il log qui sotto per maggiori informazioni!"; -$lang['wibot4'] = "Avvia / Arresta il Bot Ranksystem"; -$lang['wibot5'] = "Avvia il Bot"; -$lang['wibot6'] = "Arresta il Bot"; -$lang['wibot7'] = "Riavvia il Bot"; -$lang['wibot8'] = "Log Ranksystem (estrai):"; -$lang['wibot9'] = "Compila tutti i campi obbligatori prima di avviare il bot Ranksystem!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Resetta il tempo online di un utente se il suo database-ID è cambiato.

Esempio:
Se un utente viene rimosso da TeamSpeak, gli viene assegnato un nuovo database-ID con la successiva connesione al server."; -$lang['wiconferr'] = "C'è un errore nella configurazione del RankSystem. Vai nell'interfaccia web i sistema le Impostazioni Principali. Specialmente la configurazione 'rank'!"; -$lang['wichpw1'] = "La vecchia password è errata. Riprova."; -$lang['wichpw2'] = "La nuova password non corrisponde. Riprova."; -$lang['wichpw3'] = "La password è stata cambiata con successo. Connettiti con le credenziali su IP %s."; -$lang['wichpw4'] = "Cambia Password"; -$lang['widaform'] = "Formato data"; -$lang['widaformdesc'] = "scegli il formato della data.

Esempio:
%a Giorni, %h Ore, %i Min, %s Sec"; -$lang['widbcfgsuc'] = "Configurazione del database salvata con successo."; -$lang['widbcfgerr'] = "Errore nel salvataggio della configurazione del database! Connessione fallita o errore nella sovrascrittura del file 'other/dbconfig.php'"; -$lang['widelcld'] = "elimina utenti"; -$lang['widelcldgrp'] = "rinnova gruppi"; -$lang['widelcldgrpdesc'] = "Il Ranksystem memorizzerà il servergroup assegnato, così che non sia più necessario eseguire continuamente il worker.php.

Con questa funzione potrai rimuovere le informazioni salvate relative ad un servergroup. Il Ranksystem proverà a dare a tutti gli utenti connessi al TS3 il servergroup del loro rank.
Per ogni utente, che ottenga il servergroup o che sia su un servergroup, il Ranksystem lo memorizzerà come descritto all'inizio.

Questa funzione può essere molto utile, quando un utente non è in un servergroup, Gli può essere attribuito il tempo online.

Attenzione: Eseguilo solo quando sei sicuro che non vi sia un aumento di rank per l'utente! Altrimenti il Ranksystem non potrà rimuovere il precedente servergroup in quanto non è memorizzato ;-)"; -$lang['widelclddesc'] = "Cancella gli utenti precedentemente selezionati dal Ranksystem.

Ciò non modificherà lo stato degli utenti nel database di TeamSpeak."; -$lang['widelsg'] = "rimosso(i) dal servergroup"; -$lang['widelsgdesc'] = "Scegli se agli utenti venga rimosso anche l'ultimo servergroup conosciuto, quando cancelli gli utenti dal database del Ranksystem.

Considererà solamente i servergroup riguardanti il Ranksystem"; -$lang['wideltime'] = "Tempo di eliminazione"; -$lang['wideltimedesc'] = "Cancella i 'vecchi utenti' dal database del Ranksystem.
Inserisci il tempo dopo cui un utente che non si connette al TeamSpeak verrà eliminato.

0 - Cancellerà gli utenti dal Ranksystem

I dati degli utenti su TeamSpeak non verranno toccati!"; -$lang['wiexcid'] = "Eccezione Stanze"; -$lang['wiexciddesc'] = "Inserisci gli ID delle stanze dove non verrà conteggiato il tempo del Rank.

Se un utente resta in uno dei canali elencati, il tempo non sarà completamente ignorato ma verrà conteggiato come tempo in IDLE.

Di conseguenza avrà senso solo se si utilizzerà la modalità 'Tempo di attività'."; -$lang['wiexgrp'] = "Eccezione dei servergroup"; -$lang['wiexgrpdesc'] = "Lista dei servergroup ID che non verranno contati dal Ranksystem (separati da virgola. es. 9,10,11)
Gli utenti che avranno almeno uno di questi servergroup verranno ignorati."; -$lang['wiexres'] = "Modalità di Esclusione"; -$lang['wiexres1'] = "default (conteggia il tempo)"; -$lang['wiexres2'] = "Ferma il tempo"; -$lang['wiexres3'] = "Resetta il tempo"; -$lang['wiexresdesc'] = "Ci sono tre modalità, su come gestire un esclusione. In tutti i casi il rankup (assegnazione di servergroups) è disabilitato. Puoi decidere diverse opzioni su come gestire il tempo speso da un utente (il quale è escluso).

1) default (conteggia il tempo): Con il Default, il Ranksystem conteggia il tempo online/di attività degli utenti, i quali sono esclusi (client/servergroup). Con l'unica esclusione che il rankup (assegnazione di servergroups) è disabilitato. Questo significa che se un utente non è più escluso, gli verrà assegnato il servergroup in base al suo tempo collezionato (es. Livello 3).

2) Ferma il tempo: Con questa opzione il tempo passato online/in idle viene congelato (fermato) sul valore attuale (prima che l'utente sia stato escluso). Dopo aver rimosso l'esclusione (dopo aver rimosso il servergroup escluso all'utente o la regola di esclusione) il 'conteggio' torna attivo.

3) resetta il tempo: Con questa opzione il tempo online conteggiato dell'utente viene resettato (riportato a 0) dopo aver rimosso l'esclusione (dopo aver rimosso il servergroup escluso all'utente o la regola di esclusione). Il tempo calcolato prima dell'esclusione verrà cancellato.


L'esclusione dei canali non c'entra qui, perchè il tempo sarà sempre ignorato (come la modalità 'Ferma il tempo')."; -$lang['wiexuid'] = "Eccezione degli utenti"; -$lang['wiexuiddesc'] = "Lista degli utenti (ID Univoco) che non verranno contati dal Ranksystem (separati da virgola. es 5GFxciykQMojlrvugWti835Wdto=,YQf+7x/4LJ2Tw5cuQGItsVEn+S4=)
Questi utentiverranno ignorati."; -$lang['wigrptime'] = "Definisci Rankup"; -$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI)=>servergroup ID

Sono importanti per questa impostazione il 'Tempo online' o il 'Tempo di attività' di un utente, dipende da come impostata la modalità.

Ogni voce deve essere separate dalla successive con una virgola. br>
Dovrà essere inserito il tempo cumulativo

Esempio:
60=>9,120=>10,180=>11

Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via..."; -$lang['wihladm'] = "Lista Utenti (Modalità Admin)"; -$lang['wihladm1'] = "Aggiungi del tempo online ad un utente"; -$lang['wihlcfg'] = "Impostazioni Principali"; -$lang['wihldb'] = "Impostazioni Database"; -$lang['wihlmsg'] = "Impostazioni Messaggi"; -$lang['wihlsty'] = "Impostazione Pagina Statistiche"; -$lang['wihlts'] = "Impostazioni Server Teamspeak"; -$lang['wihlvs'] = "Altre Impostazioni"; -$lang['wiignidle'] = "Ignora Idle"; -$lang['wiignidledesc'] = "Definisci un periodo di tempo, fino a che il tempo di inattività di un utente verrà ignorato.

Quando un cliente non fa nulla sul server (=idle), questo tempo viene conteggiato dal Ranksystem. Grazie a questa funzione il tempo di inattività di un utente non sarà conteggiato fino al limite definito. Solo quando il limite definito viene superato, conta da tale data per il Ranksystem come il tempo di inattività.

Questà funzione è compatibile solo con il tempo di attività.

Significato La funzione è ad esempio per valutare il tempo di ascolto in conversazioni come l'attività.

0 = Disabilità la funzione

Esempio:
Ignore idle = 600 (seconds)
Un utente ha un idle di 8 minunti
Conseguenza:
8 minuti in IDLE verranno ignorati e poi il tempo successivo verrà conteggiato come tempo di attività. Se il tempo di inattività ora viene aumentato a oltre 12 minuti (quindi il tempo è più di 10 minuti) 2 minuti verrebbero conteggiati come tempo di inattività."; -$lang['wilog'] = "Path dei Log"; -$lang['wilogdesc'] = "La path dei log del RankSystem.

Esempio:
/var/logs/ranksystem/

Assicurati che l'utente che hai assegnato (del web server) abbia i poteri per scrivere nella directory (oppure dai direttamente chmod 777 alla cartella log)."; -$lang['wimsgmsg'] = "Messaggio"; -$lang['wimsgmsgdesc'] = "Imposta un messaggio che verrà inviato come messaggio privato su TS3 per quando un utente raggiunge il Rank Successivo.

Potrete utilizzare i BB-code di un comunissimo messaggio .
http://ts-n.net/lexicon.php?showid=97#lexindex

Inoltre il tempo trascorsco potrà essere espresso con la stringa:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Esempio:
Hey,\\nComplimenti! hai raggiunto il Ranksuccessivo grazie al tuo tempo online di %1\$s days, %2\$s hours and %3\$s minutes. [B]Continua Così[/B] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Definisci un messaggio, che sarà mostrato nella pagina /stats/ come notizia del server.

Puoi usare le funzioni base html per modificare il layout

Esempio:
<b> - per grassetto
<u> - per sottolineato
<i> - per italico
<br> - per andata a capo (new line)"; -$lang['wilogout'] = "Esci"; -$lang['wimsgusr'] = "Notifica di aumento di rank"; -$lang['wimsgusrdesc'] = "Informa un utente con un messaggio privato sul suo aumento di rank."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Altri"; -$lang['winav5'] = "Messaggio"; -$lang['winav6'] = "Pagina delle Statistiche"; -$lang['winav7'] = "Amministra"; -$lang['winav8'] = "Avvia / Arresta il Bot"; -$lang['winav9'] = "Aggiornamento disponibile!"; -$lang['winav10'] = "Per favore utilizzare l'interfaccia solo attraverso %s HTTPS%s Una crittografia è fondamentale per garantire la privacy e la sicurezza.%sPer essere in grado di utilizzare HTTPS il vostro web server deve supportare una connessione SSL."; -$lang['winav11'] = "Per favore digita lo unique Client-ID dell'admin per il Ranksystem (Altro -> admin ID). Questo è molto importante nel caso perdessi le credenziali di accesso per la webinterface (per effettuarne un reset)."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Comando \"!nextup\""; -$lang['winxinfodesc'] = "Permette all'utente nel server TS3 di scrivere nel comando \"!nextup\" al bot del Ranksystem (coda) come messaggio privato.

Come risposta l'utente riceverà un messaggio di testo definito con il tempo rimanente alla prossimo rank.

Disattivato - La funzione è disabilitata. Il comando '!nextup' verrà ignorato.
Permesso - prossimo rank - Invia all'utente un messaggio contenente il tempo rimasto per aumentare di grado.
Permesso - Ultimo rank - Invia all'utente un messaggio contenente il tempo rimasto per arrivare all'ultimo rank."; -$lang['winxmode1'] = "Disattivato"; -$lang['winxmode2'] = "Permesso - Prossimo rank"; -$lang['winxmode3'] = "Permesso - Ultimo rank"; -$lang['winxmsg1'] = "Messaggio"; -$lang['winxmsgdesc1'] = "Definisci il messaggio, che l'utente riceverà come risposta al comando \"nextup\".

Argomenti:
%1$s - giorni al prossimo aumento di rank
%2$s - ore al prossimo aumento di rank
%3$s - minuti al prossimo aumento di rank
%4$s - secondi al prossimo aumento di rank
%5$s - nome del prossimo servergroup
%6$s - name of the user (recipient)

Esempio:
Il tuo prossimo aumento di rank sarà tra %1$s giorni, %2$s ore and %3$s minuti and %4$s secondi. Il prossimo servergroup che raggiungerai è [B]%5$s[/B]."; -$lang['winxmsg2'] = "Messaggio (Maggiore)"; -$lang['winxmsgdesc2'] = "Definisci un messaggio, che l'utente riceverà come risposta al comando \"nextup\", quando l'utente ha già raggiunto il rank più alto.

Argomenti:
%1$s - giorni al prossimo aumento di rank
%2$s - ore al prossimo aumento di rank
%3$s - minuti al prossimo aumento di rank
%4$s - secondi al prossimo aumento di rank
%5$s - nome del prossimo servergroup
%6$s - name of the user (recipient)

Esempio:
Hai raggiunto l'ultimo rank con %1$s gioni, %2$s ore e %3$s minuti e %4$s secondi."; -$lang['winxmsg3'] = "Messaggio (Escluso)"; -$lang['winxmsgdesc3'] = "Definisci un messaggio, che l'utente riceverà come risposta al comando \"nextup\",quando l'utente è escluso dal Ranksystem.

Argomenti:
%1$s - giorni al prossimo aumento di rank
%2$s - ore al prossimo aumento di rank
%3$s - minuti al prossimo aumento di rank
%4$s - secondi al prossimo aumento di rank
%5$s - nome del prossimo servergroup
%6$s - name of the user (recipient)

Esempio:
Sei escluso dal Ranksystem. Se desideri poter aumentare di rank contatta un amministratore nel server di TS3."; -$lang['wirtpw1'] = "Scusa, hai dimenticato di inserire il tuo admin ID prima all'interno della webinterface. Non c'è modo di resettare la password!"; -$lang['wirtpw2'] = "Admin ID non trovato nel server TS3. Devi essere online con l' unique Client ID che è salvato come admin ID."; -$lang['wirtpw3'] = "Il tuo indirizzo IP non coincide con l'indirizzo IP dell'amministratore nel server TS3. Assicurati di avere lo stesso indirizzo IP online nel server TS3 e anche in questa pagina (stesso protocollo IPv4 / IPv6 è inoltre richiesto)."; -$lang['wirtpw4'] = "\nLa password per la webinterface è stata resettata con successo.\nUsername: %s\nPassword: [B]%s[/B]"; -$lang['wirtpw5'] = "E' stato inviato a TeamSpeak3 un messaggio privato all'amministratore con la nuova password."; -$lang['wirtpw6'] = "La password della webinterface è stata resettata con successo. Richiesta dall' IP %s."; -$lang['wirtpw7'] = "Resetta la Password"; -$lang['wirtpw8'] = "Qui puoi resettare la password dell'interfaccia web."; -$lang['wirtpw9'] = "I seguenti campi sono necessari per resettare la password:"; -$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."; -$lang['wishcolas'] = "Servergroup attuale"; -$lang['wishcolasdesc'] = "Mostra colonna 'Servergroup attuale' in stats/list_rankup.php"; -$lang['wishcolat'] = "Tempo Attività"; -$lang['wishcolatdesc'] = "Mostra colonna 'Tempo Attività' in stats/list_rankup.php"; -$lang['wishcolcld'] = "Nome Utente"; -$lang['wishcolclddesc'] = "Mostra colonna 'Nome Utente' in stats/list_rankup.php"; -$lang['wishcoldbid'] = "ID del database"; -$lang['wishcoldbiddesc'] = "Mostra colonna 'ID del database' in stats/list_rankup.php"; -$lang['wishcolgs'] = "Gruppo attuale da"; -$lang['wishcolgsdesc'] = "Mostra colonna 'Gruppo auttuale da' in list_rankup.php"; -$lang['wishcolit'] = "tempo in IDLE"; -$lang['wishcolitdesc'] = "Mostra colonna 'tempo in IDLE' in stats/list_rankup.php"; -$lang['wishcolls'] = "Ultimo volta online"; -$lang['wishcollsdesc'] = "Mostra colonna 'Ultimo volta online' in stats/list_rankup.php"; -$lang['wishcolnx'] = "Prossimo Rank"; -$lang['wishcolnxdesc'] = "Mostra colonna 'Prossimo Rank' in stats/list_rankup.php"; -$lang['wishcolot'] = "Tempo Online"; -$lang['wishcolotdesc'] = "Mostra colonna 'Tempo Online' in stats/list_rankup.php"; -$lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Mostra colonna 'rank' in stats/list_rankup.php"; -$lang['wishcolsg'] = "Prossimo Servergroup"; -$lang['wishcolsgdesc'] = "Mostra colonna 'Prossimo Servergroup' in stats/list_rankup.php"; -$lang['wishcoluuid'] = "ID del Utente"; -$lang['wishcoluuiddesc'] = "Mostra colonna 'ID del Utente' in stats/list_rankup.php"; -$lang['wishexcld'] = "Eccetto gli utenti"; -$lang['wishexclddesc'] = "Mostra gli utenti in list_rankup.php,
Chi è escluso dai rank non partecipa alla lista."; -$lang['wishexgrp'] = "Eccetto i Servergroups"; -$lang['wishexgrpdesc'] = "Mostra gli utenti in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem."; -$lang['wishhicld'] = "Utenti col massimo rank"; -$lang['wishhiclddesc'] = "Mostra gli utenti in list_rankup.php, che hanno raggiunto il più elevato rank nel Ranksystem."; -$lang['wishnav'] = "Mostra navigazione-sito"; -$lang['wishnavdesc'] = "Mostra colonna navigazione-sito nella pagina 'stats/'.

Se disattivata la tabella di navigazione verrà nascosta.
Ora puoi creare a ogni pagina il suo singolo link. 'stats/list_rankup.php' ed incorporarla al tuo sito già esistente."; -$lang['wisupidle'] = "Modalità"; -$lang['wisupidledesc'] = "Ci sono due modalità di conteggio del tempo per applicare un aumento di rank.

1) Tempo Online: Tutto il tempo che l'utente passa in TS in IDLE o meno (Vedi colonna 'sum. online time' in the 'stats/list_rankup.php')

2) Tempo di attività: Al tempo online dell'utente viene sottratto il tempo in IDLE (AFK) (Vedi colonna 'sum. active time' in the 'stats/list_rankup.php').

Il cambiamento di modalità dopo lungo tempo non è consigliato ma dovrebbe funzionare comunque."; -$lang['wisvconf'] = "Salva"; -$lang['wisvsuc'] = "Modifiche salvate con successo!"; -$lang['wisvres'] = "Dovrai riavviare il Ranksystem affinché i cambiamenti vengano applicati!"; -$lang['witime'] = "Fuso orario"; -$lang['witimedesc'] = "Selezione il fuso orario di dove è hostato il server."; -$lang['wits3avat'] = "Avatar Delay"; -$lang['wits3avatdesc'] = "Definisci il tempo in secondi ogni quanto vengono scaricati gli avatars.

Questa funzione è molto utile per i (music) bots, i quali cambiano molte volte il loro avatar."; -$lang['wits3dch'] = "Canale di Default"; -$lang['wits3dchdesc'] = "Il channel-ID cui il bot deve connettersi.

Il Bot entrerà in questo canale appena entrato nel TeamSpeak server."; -$lang['wits3host'] = "Indirizzo TS3"; -$lang['wits3hostdesc'] = "Indirizzo del vostro server Teamspeak
(IP o DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "Con la modalità Slowmode potrai ridurre lo \"spam\" dei comandi query di TeamSpeak. E previene inoltre i ban per flood nel server Teamspeak.
I comandi della query arriveranno con un lieve ritardo in base al ritardo di risposta scelto.

!!! INOLTRE RIDURRA L'UTILIZZO DELLE RISORSE DEL SERVER !!!

Questa funzione non è consigliata, se non è richiesta. Il ritardo dei comandi del bot potrebbe causare imprecisione, sopratutto nell'utilizzo dei boost.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Nome del Bot"; -$lang['wits3qnm2'] = "2° nome del Bot"; -$lang['wits3qnm2desc'] = "Un secondo nome in caso in cui il primo nome sia già in uso nel server teamspeak."; -$lang['wits3qnmdesc'] = "Il nome con il quale la query si conneterà al TS3.
Potrai dare il nome che preferisci.
Ricorda che sarà anche il nome con il quale gli utenti riceveranno i messaggi su Teamspeak."; -$lang['wits3querpw'] = "TS3 - Password della Query"; -$lang['wits3querpwdesc'] = "Password della query di Teamspeak (di norma viene creata al primo avvio di Teamspeak, guarda qui per modificarla: CHANGE QUERY PASSWORD
."; -$lang['wits3querusr'] = "TS3 - Utente della Query"; -$lang['wits3querusrdesc'] = "Il nome utente della Query scelta
Di default è serveradmin
Ma se preferisci potrai creare un ulteriore query solo per il Ranksystem.
Per vedere i permessi necessari alla Query guarda:
http://ts-n.net/ranksystem.php"; -$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['wiverify'] = "Verification-Channel"; -$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."; + L'utente è stato aggiunto al sistema."; +$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..."; +$lang['cleanc'] = "Utenti eliminati con successo dal database"; +$lang['cleancdesc'] = "Con questa funzione i vecchi utenti nel database verranno eliminati.

Così da poter sincronizzare gli utenti del Ranksystem con il database di TeamSpeak. Gli utenti non presenti nel database di TeamSpeak verranno cancellati dal Ranksystem.

Questa funzione puo essere abilitata solo quando la modalità slowmode non è abilitata!


Per la correzione automatica del database di utenti TeamSpeak potrete usare \"Client Cleaner\" :
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Sono stati cancellati %s utenti dal database del RankSystem perché non esistevano piu nel database di TeamSpeak."; +$lang['cleanno'] = "Non è stato rilevato nulla da cancellare..."; +$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'] = "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['day'] = "%s giorno"; +$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['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "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!"; +$lang['errseltime'] = "Inserire tempo online da aggiungere!"; +$lang['errukwn'] = "È stato riscontrato un errore sconosciuto!"; +$lang['errupcount'] = "Errore nel rinnovo della somma del tempo online dell’utente %s con l’Id Univoco %s"; +$lang['highest'] = "È stato raggiunto il rank massimo"; +$lang['install'] = "Installazione"; +$lang['instdb'] = "Installa il database:"; +$lang['instdbsuc'] = "Il database %s è stato creato con successo."; +$lang['insterr1'] = "ATTENZIONE: Il database selezionato per il Ranksystem esiste già \"%s\".
Durante l'installazione il database verrà resettato
Se non sei sicuro che sia il database corretto usa un database differente."; +$lang['insterr2'] = "PDO è necessario ma non sembra essere installato. Installa PDO e riprova!"; +$lang['insterr3'] = "La funzione PHP exec deve essere abilitata, ma sembra non lo sia. Per favore, abilita la funzione PHP exec e riprova!"; +$lang['insterr4'] = "La tua versione PHP (%s) is antecedente alla 5.5.0. Aggiorna la tua PHP e prova ancora!"; +$lang['insterr5'] = "SimpleXML è richiesto, ma non sembra disponibile. Installa simpleXML e riprova!"; +$lang['insterr6'] = "PHP cURL è richiesto ma sembra non disponibile. Installa PHP cURL e riprova!"; +$lang['insterr7'] = "PHP Zip è richiesto ma sembra non disponibile. Installa PHP Zip e riprova!"; +$lang['insterr8'] = "PHP COM è richiesto (php_com_dotnet.dll) ma sembra non disponibile. Installa PHP COM e riprova!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Impossibile salvare la configurazione del database! Modifica il file 'other/dbconfig.php' dandogli i permessi 0777 (chmod 777 nomefile on windows 'full access') e riprova."; +$lang['isntwicfg2'] = "Configura Webinterface"; +$lang['isntwichm'] = "Permessi di scrittura negati per la cartella \"%s\". Per favore dai i permessi chmod 777 (on windows 'full access') e prova ad avviare il Ranksystem di nuovo."; +$lang['isntwiconf'] = "Apri la %s per configurare il Ranksystem!"; +$lang['isntwidbhost'] = "Indirizzo host DB:"; +$lang['isntwidbhostdesc'] = "L'indirizzo del server su cui si trova il database (Se il database è in locale basterà inserire 127.0.0.1)
(IP o DNS)"; +$lang['isntwidbmsg'] = "Errore del Database: "; +$lang['isntwidbname'] = "Nome DB:"; +$lang['isntwidbnamedesc'] = "Nome del database"; +$lang['isntwidbpass'] = "Password DB:"; +$lang['isntwidbpassdesc'] = "La Password per accedere al database"; +$lang['isntwidbtype'] = "Tipo DB:"; +$lang['isntwidbtypedesc'] = "Il tipo di Database

Dovrai installare i driver PDO.
Per maggiori informazioni sui requisiti guarda sulla pagina http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "Utente DB:"; +$lang['isntwidbusrdesc'] = "Nome dell'utente che ha l'accesso al database"; +$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver"; +$lang['isntwiusr'] = "L'utente dell'interfaccia Web è stato creato con successo."; +$lang['isntwiusrcr'] = "Crea Webinterface-User"; +$lang['isntwiusrdesc'] = "Inserisci nome utente e password per l'accesso all'interfaccia web. Con l'interfaccia web tu potrai configurare il Ranksystem."; +$lang['isntwiusrh'] = "Accesso - Interfaccia Web"; +$lang['listacsg'] = "Gruppo attuale"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexcept'] = "Nessuno (disabilitato)"; +$lang['listgrps'] = "Gruppo attuale da"; +$lang['listnick'] = "Nome Utente"; +$lang['listnxsg'] = "Prossimo Gruppo"; +$lang['listnxup'] = "Prossimo Rank Tra"; +$lang['listrank'] = "Rank"; +$lang['listseen'] = "Ultima Volta Online"; +$lang['listsuma'] = "Somma del tempo di attività"; +$lang['listsumi'] = "Somma del tempo in IDLE"; +$lang['listsumo'] = "Somma del tempo Online"; +$lang['listuid'] = "Client-ID Univoco"; +$lang['login'] = "Login"; +$lang['msg0001'] = "Versione in uso: %s"; +$lang['msg0002'] = "I comandi validi sono:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tvedi la lista dei comandi\n[B]version[/B]\t\t\t\t\t\t\t\t vedi la versione di Ranksystem\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t\t\t vedi il tempo rimasto per aumentare di rank\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\tRiavvia il bot di Ranksystem\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t Arresta il bot del Ranksystem"; +$lang['msg0003'] = "Non sei idoneo per eseguire questo comando!"; +$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'] = "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'] = "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."; +$lang['sccrmcld'] = "L'utente con il Client-ID %s è stato correttamente cancellato dal database del ranksystem."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "aggiungi tempo"; +$lang['setontimedesc'] = "Aggiungi tempo online agli utenti precedentemente selezionati. Ogni utente avrà questo tempo addizionale aggiunto al loro vecchio tempo online.

Il tempo online digitato sarà considerato per l'aumento di rank e avrà effetto immediato."; +$lang['sgrpadd'] = "All'utente %s è stato assegnato il servergroup %s (Client-ID Univoco: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "All'utente %s è stato rimosso il servergroup %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'] = "Assegna un Servergroup"; +$lang['stag0002'] = "Gruppi permessi"; +$lang['stag0003'] = "Definisci una lista di gruppi, che un utente può assegnarsi.

I servergroups vanno inseriti qui separati da virgola.

Esempio:
23,24,28"; +$lang['stag0004'] = "Limite Gruppi"; +$lang['stag0005'] = "Limita il numero di servergroups che possono essere aggiunti."; +$lang['stag0006'] = "Ci sono multipli unique IDs online con il tuo IP. Per favore %sclicca qui%s per verificarti."; +$lang['stag0007'] = "Per favore attendi finchè la tua modifica venga applicata prima di apportare nuove modifiche..."; +$lang['stag0008'] = "Mofiche del gruppo effettuate con successo. Potrebbe metterci alcuni secondi per essere attivo anche sul Ts3."; +$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'] = "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'] = "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"; +$lang['stix0004'] = "Tempo online di tutti gli utenti / Totale"; +$lang['stix0005'] = "Vedi i migliori di sempre"; +$lang['stix0006'] = "Vedi i migliori del mese"; +$lang['stix0007'] = "Vedi i migliori della settimana"; +$lang['stix0008'] = "Utilizzo del server"; +$lang['stix0009'] = "Negli ultimi 7 giorni"; +$lang['stix0010'] = "Negli ultimi 30 giorni"; +$lang['stix0011'] = "Nelle ultime 24 ore"; +$lang['stix0012'] = "seleziona il periodo"; +$lang['stix0013'] = "Ultimo giorno"; +$lang['stix0014'] = "Ultima settimana"; +$lang['stix0015'] = "Ultimo mese"; +$lang['stix0016'] = "Tempo di attività/inattività (di tutti gli utenti)"; +$lang['stix0017'] = "Versioni (di tutti gli utenti)"; +$lang['stix0018'] = "Nazionalità (di tutti gli utenti)"; +$lang['stix0019'] = "Piattaforme (di tutti gli utenti)"; +$lang['stix0020'] = "Statistiche correnti"; +$lang['stix0023'] = "Stato del server"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Utenti (Online / Max)"; +$lang['stix0027'] = "Numero delle stanze"; +$lang['stix0028'] = "Ping medio del server"; +$lang['stix0029'] = "Totale byte ricevuti"; +$lang['stix0030'] = "Totale byte inviati"; +$lang['stix0031'] = "Tempo online del server"; +$lang['stix0032'] = "Prima di essere offline:"; +$lang['stix0033'] = "00 Giorni, 00 Ore, 00 Min, 00 Sec"; +$lang['stix0034'] = "Media Pacchetti persi"; +$lang['stix0035'] = "Statistiche complessive"; +$lang['stix0036'] = "Nome del server"; +$lang['stix0037'] = "Indirizzo del server (Indirizzo del server : Porta)"; +$lang['stix0038'] = "Password del server"; +$lang['stix0039'] = "Nessuna (Il server è pubblico)"; +$lang['stix0040'] = "Si (Il server è privato)"; +$lang['stix0041'] = "ID del server"; +$lang['stix0042'] = "Piattaforma del server"; +$lang['stix0043'] = "Versione del Server"; +$lang['stix0044'] = "Data di creazione del server (dd/mm/yyyy)"; +$lang['stix0045'] = "Inserito nella lista dei server"; +$lang['stix0046'] = "Attivato"; +$lang['stix0047'] = "Non attivato"; +$lang['stix0048'] = "Non vi sono ancora abbastanza informazioni..."; +$lang['stix0049'] = "Tempo online di tutti gli utenti / mese"; +$lang['stix0050'] = "Tempo online di tutti gli utenti / settimana"; +$lang['stix0051'] = "Il TeamSpeak non ha una data di creazione..."; +$lang['stix0052'] = "Altri"; +$lang['stix0053'] = "Tempo di Attività (in Giorni)"; +$lang['stix0054'] = "Tempo di Inattività (in Giorni)"; +$lang['stix0055'] = "online nelle ultime 24 ore"; +$lang['stix0056'] = "online negli ultimi %s giorni"; +$lang['stix0059'] = "Lista degli utenti"; +$lang['stix0060'] = "Utenti"; +$lang['stix0061'] = "Visualizza tutte le versioni"; +$lang['stix0062'] = "Viaualizza tutte le nazionalità"; +$lang['stix0063'] = "Visualizza tutte le piattaforme"; +$lang['stmy0001'] = "Le mie statistiche"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "ID Univoco:"; +$lang['stmy0005'] = "Connessioni totali al server:"; +$lang['stmy0006'] = "Data di inzio statistiche:"; +$lang['stmy0007'] = "Tempo totale online:"; +$lang['stmy0008'] = "Tempo online negli ultimi %s giorni:"; +$lang['stmy0009'] = "Tempo di attività negli ultimi %s giorni:"; +$lang['stmy0010'] = "Obbiettivi completati:"; +$lang['stmy0011'] = "Progresso obbiettivo tempo online"; +$lang['stmy0012'] = "Tempo: Leggendario"; +$lang['stmy0013'] = "Perché hai raggiunto il tempo online di %s ore."; +$lang['stmy0014'] = "Completato"; +$lang['stmy0015'] = "Tempo: Oro"; +$lang['stmy0016'] = "% Completato per il raggiungimento del livello 'Leggendario'"; +$lang['stmy0017'] = "Tempo: Argento"; +$lang['stmy0018'] = "% Completato per il raggiungimento del livello 'Oro'"; +$lang['stmy0019'] = "Tempo: Bronzo"; +$lang['stmy0020'] = "% Completato per il raggiungimento del livello 'Argento'"; +$lang['stmy0021'] = "Tempo: Non Classificato"; +$lang['stmy0022'] = "% Completato per il raggiungimento del livello 'Bronzo'"; +$lang['stmy0023'] = "Progresso obbiettivo connessioni"; +$lang['stmy0024'] = "Connessioni: Leggendario"; +$lang['stmy0025'] = "Perchè ti sei connesso %s volte al server."; +$lang['stmy0026'] = "Connessioni: Oro"; +$lang['stmy0027'] = "Connessioni: Argento"; +$lang['stmy0028'] = "Connessioni: Bronzo"; +$lang['stmy0029'] = "Connessioni: Non Classificato"; +$lang['stmy0030'] = "Progresso prossimo gruppo"; +$lang['stmy0031'] = "Tempo di attività totale:"; +$lang['stna0001'] = "Nazionalità"; +$lang['stna0002'] = "statistiche"; +$lang['stna0003'] = "Codice"; +$lang['stna0004'] = "Contati"; +$lang['stna0005'] = "Versioni"; +$lang['stna0006'] = "Piattaforme"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "News del server"; +$lang['stnv0002'] = "Chiudi"; +$lang['stnv0003'] = "Aggiorna le informazioni utente"; +$lang['stnv0004'] = "Aggiorna solamente quando vengono modificate le informazioni su TS3, come ad esempio un cambio del nome od un nuovo collegamento"; +$lang['stnv0005'] = "Funziona solamente se sei connesso al server TS3 in contemporaneo (devi avere TeamSpeak aperto ed essere collegato con la tua identità per vedere le tue statistiche)"; +$lang['stnv0006'] = "Aggiorna"; +$lang['stnv0007'] = "Area Battaglie"; +$lang['stnv0008'] = "Puoi sfidare gli altri utenti in una battaglia tra 2 utenti o 2 team."; +$lang['stnv0009'] = "Mentre la battaglia è attiva il tempo online dell'utente o del team sarà contato."; +$lang['stnv0010'] = "Quando la battaglia giungerà alla fine il team o l'utente col maggior tempo online vincerà."; +$lang['stnv0011'] = "(Regolarmente un combattimento dura 48 ore)"; +$lang['stnv0012'] = "Il tema o l'utente vincitore riceverà un boost, che l'utente potrà utilizzare quando vorrà."; +$lang['stnv0013'] = "Questo sarà mostrato nella pagina Le mie statistiche tab."; +$lang['stnv0014'] = "(Potrebbe essere un booster(2x) per 8 hours, o un aggiunta istantanea del tempo online (4 hours), etc."; +$lang['stnv0015'] = "Questi boost possono essere utilizzati ad esempio per scalare la classifica della settimana."; +$lang['stnv0016'] = "Non disponibile"; +$lang['stnv0017'] = "Non sei connesso al server TeamSpeak, perciò non potrai vedere le tue statistiche personali."; +$lang['stnv0018'] = "Per favore connettiti al server TeamSpeak e ricarica questa sessione premendo il pulsante blu in alto a destra."; +$lang['stnv0019'] = "Le mie statistiche - contenuto della pagina"; +$lang['stnv0020'] = "Questa pagina contiene un sommario generale delle tue statistiche personali e le attività nel server."; +$lang['stnv0021'] = "Queste informazioni sono state inserite dal primo avvio del Ranksystem e non dall'inizio del server TeamSpeak."; +$lang['stnv0022'] = "Questa pagina riceve i dati dal database. Perciò potrebbe avere un lieve ritardo nel ricevere le informazioni."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "Ranksystem - Statistiche"; +$lang['stnv0025'] = "Inserimenti limitati"; +$lang['stnv0026'] = "tutti"; +$lang['stnv0027'] = "Le informazioni su questo sito potrebbero NON essere aggiornate in quanto sembra che il Ranksystem non sia connesso al server TeamSpeak."; +$lang['stnv0028'] = "(Non sei connesso al TS3!)"; +$lang['stnv0029'] = "Lista Utenti"; +$lang['stnv0030'] = "Informazioni Ranksystem"; +$lang['stnv0031'] = "Nel campo di ricerca potrai inserire un nome utente, un Client-ID o un Client-database-ID."; +$lang['stnv0032'] = "Potrai inoltre filtrare i risultati (vedi sotto). Puoi inserire i filtri nel campo di ricerca."; +$lang['stnv0033'] = "La ricerca di utenti combinata a dei filtri è possible. Inserire prima il filtro e successivamente nome utente o ID."; +$lang['stnv0034'] = "È inoltre possibile combinare diversi filtri. Inseriscili consecutivamente nel campo di ricerca."; +$lang['stnv0035'] = "Esempio:
filtro:non esclusi:Utente Teamspeak"; +$lang['stnv0036'] = "Mostra solo gli utenti che sono esclusi (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Mostra solo gli utenti che non sono esclusi."; +$lang['stnv0038'] = "Mostra solo gli utenti online."; +$lang['stnv0039'] = "Mostra solo gli utenti offline"; +$lang['stnv0040'] = "Mostra solo gli utenti che sono in un determinato Server Group. Rappresentano il rank attuale.
Sostituisci qui GROUPID."; +$lang['stnv0041'] = "Mostra solo gli utenti selezionati per ultima visita effettuata.
Replace OPERATOR con '<' or '>' or '=' or '!='.
E Sostituisci qui TIME con formato data 'Y-m-d H-i' (example: 2016-06-18 20-25).
Esempio: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Mostra solo gli utenti di un determinato paese.
Sostituisci qui TS3-COUNTRY-CODE e il codice del paese.
Per la lista dei codici google for ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "Connettiti al Ts3"; +$lang['stri0001'] = "Informazioni sul Ranksystem"; +$lang['stri0002'] = "Che cos'è il ranksystem?"; +$lang['stri0003'] = "E' un bot di Ts3, che automaticamente attribuisce i rank (servergroups) agli utenti su un TeamSpeak 3 per il tempo trascorso online o di attività online. Inoltre raccoglie informazioni e statistiche sull’utente e sul server mostrandoli sul sito."; +$lang['stri0004'] = "Chi ha creato il Ranksystem?"; +$lang['stri0005'] = "Quando è stato creato?"; +$lang['stri0006'] = "Prima Alpha: 05/10/2014."; +$lang['stri0007'] = "Prima Beta: 01/02/2015."; +$lang['stri0008'] = "Puoi trovare l'ultima versione nel sito web del Ranksystem."; +$lang['stri0009'] = "Com'è stato creato il RankSystem?"; +$lang['stri0010'] = "Che linguaggio è stato utilizzato"; +$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['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 - 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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Top utenti"; +$lang['sttw0002'] = "Della settimana"; +$lang['sttw0003'] = "con %s %s di tempo online"; +$lang['sttw0004'] = "Top 10 a confronto"; +$lang['sttw0005'] = "Ore (Definisce il 100 %)"; +$lang['sttw0006'] = "%s ore (%s%)"; +$lang['sttw0007'] = "Top 10 Statistiche"; +$lang['sttw0008'] = "Top 10 vs Altri utenti in tempo online"; +$lang['sttw0009'] = "Top 10 vs Altri utenti in tempo di attività"; +$lang['sttw0010'] = "Top 10 vs Altri utenti in tempo di inattività"; +$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'] = "minuti"; +$lang['sttm0001'] = "Del mese"; +$lang['stta0001'] = "Di sempre"; +$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."; +$lang['stve0005'] = "Congratulazioni, sei stato verificato con successo! Ora puoi continuare.."; +$lang['stve0006'] = "C'è stato un errore sconosciuto. Per favore riprova. Se ricapita contatta un amministratore."; +$lang['stve0007'] = "Verifica sul server TeamSpeak"; +$lang['stve0008'] = "Scegli qui il tuo Unique ID del server Ts3 per verificarti."; +$lang['stve0009'] = " -- Seleziona -- "; +$lang['stve0010'] = "Riceverai un token sul server Teamspeak3, il quale devi inserire qui:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verifica"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Ora(e)"; +$lang['time_day'] = "Giorno(i)"; +$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'] = "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"; +$lang['wiadmhidedesc'] = "Per nascondere i clients esclusi dalla lista"; +$lang['wiadmuuid'] = "admin ID"; +$lang['wiadmuuiddesc'] = "Inserisci qui il tuo unique Client-ID; come amministratore del Ranksystem.
Also multiple Client-IDs are possible -> comma separated

Questo è richiesto per effettuare un reset della password della webinterface.

Non c'è un indirizzo unique Client-ID definito, non è possibile effettuare un reset della password!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$lang['wiboost'] = "Boost"; +$lang['wiboostdesc'] = "Dai all'utente sul TS3 un servergroup (che dovrà essere creato manualmente), con il quale potrai definire il Boost. Definisci anche il fattore di moltiplicazione (per esempio 2x) e il (per quanto il boost durerà).
Più alto è il fattore, più velocemente l'utente raggiungerà il rank successivo.
Uno volta che il tempo impostato finirà il servergroup verrà rimosso in automatico dal RankSystem.Il tempo parte non appena viene assegnato il servergroup all'utente.

servergroup ID => fattore (2,3) => tempo (in secondi)

Per separare ogni voce utilizza la virgola.

Esempio:
12=>2=>6000,13=>3=>2500,14=>5=>600

Nell'esempio il servergroup 12 per i successivi 6000 secondi gli verrà conteggiato il doppio del tempo online, al servergroup 13 verrà moltiplicato il tempo per 3 per 2500 secondi, e cosi via..."; +$lang['wibot1'] = "Il bot del Ranksystem dovrebbe essere stato arrestato. Controlla il log qui sotto per maggiori informazioni!"; +$lang['wibot2'] = "Il bot del Ranksystem dovrebbe essere stato avviato. Controlla il log qui sotto per maggiori informazioni!"; +$lang['wibot3'] = "Il bot del Ranksystem dovrebbe essere stato riavviato. Controlla il log qui sotto per maggiori informazioni!"; +$lang['wibot4'] = "Avvia / Arresta il Bot Ranksystem"; +$lang['wibot5'] = "Avvia il Bot"; +$lang['wibot6'] = "Arresta il Bot"; +$lang['wibot7'] = "Riavvia il Bot"; +$lang['wibot8'] = "Log Ranksystem (estrai):"; +$lang['wibot9'] = "Compila tutti i campi obbligatori prima di avviare il bot Ranksystem!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Resetta il tempo online di un utente se il suo database-ID è cambiato.

Esempio:
Se un utente viene rimosso da TeamSpeak, gli viene assegnato un nuovo database-ID con la successiva connesione al server."; +$lang['wiconferr'] = "C'è un errore nella configurazione del RankSystem. Vai nell'interfaccia web i sistema le Impostazioni Principali. Specialmente la configurazione 'rank'!"; +$lang['wichpw1'] = "La vecchia password è errata. Riprova."; +$lang['wichpw2'] = "La nuova password non corrisponde. Riprova."; +$lang['wichpw3'] = "La password è stata cambiata con successo. Connettiti con le credenziali su IP %s."; +$lang['wichpw4'] = "Cambia Password"; +$lang['widaform'] = "Formato data"; +$lang['widaformdesc'] = "scegli il formato della data.

Esempio:
%a Giorni, %h Ore, %i Min, %s Sec"; +$lang['widbcfgsuc'] = "Configurazione del database salvata con successo."; +$lang['widbcfgerr'] = "Errore nel salvataggio della configurazione del database! Connessione fallita o errore nella sovrascrittura del file 'other/dbconfig.php'"; +$lang['widelcld'] = "elimina utenti"; +$lang['widelcldgrp'] = "rinnova gruppi"; +$lang['widelcldgrpdesc'] = "Il Ranksystem memorizzerà il servergroup assegnato, così che non sia più necessario eseguire continuamente il worker.php.

Con questa funzione potrai rimuovere le informazioni salvate relative ad un servergroup. Il Ranksystem proverà a dare a tutti gli utenti connessi al TS3 il servergroup del loro rank.
Per ogni utente, che ottenga il servergroup o che sia su un servergroup, il Ranksystem lo memorizzerà come descritto all'inizio.

Questa funzione può essere molto utile, quando un utente non è in un servergroup, Gli può essere attribuito il tempo online.

Attenzione: Eseguilo solo quando sei sicuro che non vi sia un aumento di rank per l'utente! Altrimenti il Ranksystem non potrà rimuovere il precedente servergroup in quanto non è memorizzato ;-)"; +$lang['widelclddesc'] = "Cancella gli utenti precedentemente selezionati dal Ranksystem.

Ciò non modificherà lo stato degli utenti nel database di TeamSpeak."; +$lang['widelsg'] = "rimosso(i) dal servergroup"; +$lang['widelsgdesc'] = "Scegli se agli utenti venga rimosso anche l'ultimo servergroup conosciuto, quando cancelli gli utenti dal database del Ranksystem.

Considererà solamente i servergroup riguardanti il Ranksystem"; +$lang['wideltime'] = "Tempo di eliminazione"; +$lang['wideltimedesc'] = "Cancella i 'vecchi utenti' dal database del Ranksystem.
Inserisci il tempo dopo cui un utente che non si connette al TeamSpeak verrà eliminato.

0 - Cancellerà gli utenti dal Ranksystem

I dati degli utenti su TeamSpeak non verranno toccati!"; +$lang['wiexcid'] = "Eccezione Stanze"; +$lang['wiexciddesc'] = "Inserisci gli ID delle stanze dove non verrà conteggiato il tempo del Rank.

Se un utente resta in uno dei canali elencati, il tempo non sarà completamente ignorato ma verrà conteggiato come tempo in IDLE.

Di conseguenza avrà senso solo se si utilizzerà la modalità 'Tempo di attività'."; +$lang['wiexgrp'] = "Eccezione dei servergroup"; +$lang['wiexgrpdesc'] = "Lista dei servergroup ID che non verranno contati dal Ranksystem (separati da virgola. es. 9,10,11)
Gli utenti che avranno almeno uno di questi servergroup verranno ignorati."; +$lang['wiexres'] = "Modalità di Esclusione"; +$lang['wiexres1'] = "default (conteggia il tempo)"; +$lang['wiexres2'] = "Ferma il tempo"; +$lang['wiexres3'] = "Resetta il tempo"; +$lang['wiexresdesc'] = "Ci sono tre modalità, su come gestire un esclusione. In tutti i casi il rankup (assegnazione di servergroups) è disabilitato. Puoi decidere diverse opzioni su come gestire il tempo speso da un utente (il quale è escluso).

1) default (conteggia il tempo): Con il Default, il Ranksystem conteggia il tempo online/di attività degli utenti, i quali sono esclusi (client/servergroup). Con l'unica esclusione che il rankup (assegnazione di servergroups) è disabilitato. Questo significa che se un utente non è più escluso, gli verrà assegnato il servergroup in base al suo tempo collezionato (es. Livello 3).

2) Ferma il tempo: Con questa opzione il tempo passato online/in idle viene congelato (fermato) sul valore attuale (prima che l'utente sia stato escluso). Dopo aver rimosso l'esclusione (dopo aver rimosso il servergroup escluso all'utente o la regola di esclusione) il 'conteggio' torna attivo.

3) resetta il tempo: Con questa opzione il tempo online conteggiato dell'utente viene resettato (riportato a 0) dopo aver rimosso l'esclusione (dopo aver rimosso il servergroup escluso all'utente o la regola di esclusione). Il tempo calcolato prima dell'esclusione verrà cancellato.


L'esclusione dei canali non c'entra qui, perchè il tempo sarà sempre ignorato (come la modalità 'Ferma il tempo')."; +$lang['wiexuid'] = "Eccezione degli utenti"; +$lang['wiexuiddesc'] = "Lista degli utenti (ID Univoco) che non verranno contati dal Ranksystem (separati da virgola. es 5GFxciykQMojlrvugWti835Wdto=,YQf+7x/4LJ2Tw5cuQGItsVEn+S4=)
Questi utentiverranno ignorati."; +$lang['wigrptime'] = "Definisci Rankup"; +$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI)=>servergroup ID

Sono importanti per questa impostazione il 'Tempo online' o il 'Tempo di attività' di un utente, dipende da come impostata la modalità.

Ogni voce deve essere separate dalla successive con una virgola. br>
Dovrà essere inserito il tempo cumulativo

Esempio:
60=>9,120=>10,180=>11

Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via..."; +$lang['wihladm'] = "Lista Utenti (Modalità Admin)"; +$lang['wihladm1'] = "Aggiungi del tempo online ad un utente"; +$lang['wihlcfg'] = "Impostazioni Principali"; +$lang['wihldb'] = "Impostazioni Database"; +$lang['wihlmsg'] = "Impostazioni Messaggi"; +$lang['wihlsty'] = "Impostazione Pagina Statistiche"; +$lang['wihlts'] = "Impostazioni Server Teamspeak"; +$lang['wihlvs'] = "Altre Impostazioni"; +$lang['wiignidle'] = "Ignora Idle"; +$lang['wiignidledesc'] = "Definisci un periodo di tempo, fino a che il tempo di inattività di un utente verrà ignorato.

Quando un cliente non fa nulla sul server (=idle), questo tempo viene conteggiato dal Ranksystem. Grazie a questa funzione il tempo di inattività di un utente non sarà conteggiato fino al limite definito. Solo quando il limite definito viene superato, conta da tale data per il Ranksystem come il tempo di inattività.

Questà funzione è compatibile solo con il tempo di attività.

Significato La funzione è ad esempio per valutare il tempo di ascolto in conversazioni come l'attività.

0 = Disabilità la funzione

Esempio:
Ignore idle = 600 (seconds)
Un utente ha un idle di 8 minunti
Conseguenza:
8 minuti in IDLE verranno ignorati e poi il tempo successivo verrà conteggiato come tempo di attività. Se il tempo di inattività ora viene aumentato a oltre 12 minuti (quindi il tempo è più di 10 minuti) 2 minuti verrebbero conteggiati come tempo di inattività."; +$lang['wilog'] = "Path dei Log"; +$lang['wilogdesc'] = "La path dei log del RankSystem.

Esempio:
/var/logs/ranksystem/

Assicurati che l'utente che hai assegnato (del web server) abbia i poteri per scrivere nella directory (oppure dai direttamente chmod 777 alla cartella log)."; +$lang['wimsgmsg'] = "Messaggio"; +$lang['wimsgmsgdesc'] = "Imposta un messaggio che verrà inviato come messaggio privato su TS3 per quando un utente raggiunge il Rank Successivo.

Potrete utilizzare i BB-code di un comunissimo messaggio .
http://ts-n.net/lexicon.php?showid=97#lexindex

Inoltre il tempo trascorsco potrà essere espresso con la stringa:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Esempio:
Hey,\\nComplimenti! hai raggiunto il Ranksuccessivo grazie al tuo tempo online di %1\$s days, %2\$s hours and %3\$s minutes. [B]Continua Così[/B] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Definisci un messaggio, che sarà mostrato nella pagina /stats/ come notizia del server.

Puoi usare le funzioni base html per modificare il layout

Esempio:
<b> - per grassetto
<u> - per sottolineato
<i> - per italico
<br> - per andata a capo (new line)"; +$lang['wilogout'] = "Esci"; +$lang['wimsgusr'] = "Notifica di aumento di rank"; +$lang['wimsgusrdesc'] = "Informa un utente con un messaggio privato sul suo aumento di rank."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Altri"; +$lang['winav5'] = "Messaggio"; +$lang['winav6'] = "Pagina delle Statistiche"; +$lang['winav7'] = "Amministra"; +$lang['winav8'] = "Avvia / Arresta il Bot"; +$lang['winav9'] = "Aggiornamento disponibile!"; +$lang['winav10'] = "Per favore utilizzare l'interfaccia solo attraverso %s HTTPS%s Una crittografia è fondamentale per garantire la privacy e la sicurezza.%sPer essere in grado di utilizzare HTTPS il vostro web server deve supportare una connessione SSL."; +$lang['winav11'] = "Per favore digita lo unique Client-ID dell'admin per il Ranksystem (Altro -> admin ID). Questo è molto importante nel caso perdessi le credenziali di accesso per la webinterface (per effettuarne un reset)."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Comando \"!nextup\""; +$lang['winxinfodesc'] = "Permette all'utente nel server TS3 di scrivere nel comando \"!nextup\" al bot del Ranksystem (coda) come messaggio privato.

Come risposta l'utente riceverà un messaggio di testo definito con il tempo rimanente alla prossimo rank.

Disattivato - La funzione è disabilitata. Il comando '!nextup' verrà ignorato.
Permesso - prossimo rank - Invia all'utente un messaggio contenente il tempo rimasto per aumentare di grado.
Permesso - Ultimo rank - Invia all'utente un messaggio contenente il tempo rimasto per arrivare all'ultimo rank."; +$lang['winxmode1'] = "Disattivato"; +$lang['winxmode2'] = "Permesso - Prossimo rank"; +$lang['winxmode3'] = "Permesso - Ultimo rank"; +$lang['winxmsg1'] = "Messaggio"; +$lang['winxmsgdesc1'] = "Definisci il messaggio, che l'utente riceverà come risposta al comando \"!nextup\".

Argomenti:
%1$s - giorni al prossimo aumento di rank
%2$s - ore al prossimo aumento di rank
%3$s - minuti al prossimo aumento di rank
%4$s - secondi al prossimo aumento di rank
%5$s - nome del prossimo servergroup
%6$s - name of the user (recipient)

Esempio:
Il tuo prossimo aumento di rank sarà tra %1$s giorni, %2$s ore and %3$s minuti and %4$s secondi. Il prossimo servergroup che raggiungerai è [B]%5$s[/B]."; +$lang['winxmsg2'] = "Messaggio (Maggiore)"; +$lang['winxmsgdesc2'] = "Definisci un messaggio, che l'utente riceverà come risposta al comando \"!nextup\", quando l'utente ha già raggiunto il rank più alto.

Argomenti:
%1$s - giorni al prossimo aumento di rank
%2$s - ore al prossimo aumento di rank
%3$s - minuti al prossimo aumento di rank
%4$s - secondi al prossimo aumento di rank
%5$s - nome del prossimo servergroup
%6$s - name of the user (recipient)

Esempio:
Hai raggiunto l'ultimo rank con %1$s gioni, %2$s ore e %3$s minuti e %4$s secondi."; +$lang['winxmsg3'] = "Messaggio (Escluso)"; +$lang['winxmsgdesc3'] = "Definisci un messaggio, che l'utente riceverà come risposta al comando \"!nextup\",quando l'utente è escluso dal Ranksystem.

Argomenti:
%1$s - giorni al prossimo aumento di rank
%2$s - ore al prossimo aumento di rank
%3$s - minuti al prossimo aumento di rank
%4$s - secondi al prossimo aumento di rank
%5$s - nome del prossimo servergroup
%6$s - name of the user (recipient)

Esempio:
Sei escluso dal Ranksystem. Se desideri poter aumentare di rank contatta un amministratore nel server di TS3."; +$lang['wirtpw1'] = "Scusa, hai dimenticato di inserire il tuo admin ID prima all'interno della webinterface. Non c'è modo di resettare la password!"; +$lang['wirtpw2'] = "Admin ID non trovato nel server TS3. Devi essere online con l' unique Client ID che è salvato come admin ID."; +$lang['wirtpw3'] = "Il tuo indirizzo IP non coincide con l'indirizzo IP dell'amministratore nel server TS3. Assicurati di avere lo stesso indirizzo IP online nel server TS3 e anche in questa pagina (stesso protocollo IPv4 / IPv6 è inoltre richiesto)."; +$lang['wirtpw4'] = "\nLa password per la webinterface è stata resettata con successo.\nUsername: %s\nPassword: [B]%s[/B]"; +$lang['wirtpw5'] = "E' stato inviato a TeamSpeak3 un messaggio privato all'amministratore con la nuova password."; +$lang['wirtpw6'] = "La password della webinterface è stata resettata con successo. Richiesta dall' IP %s."; +$lang['wirtpw7'] = "Resetta la Password"; +$lang['wirtpw8'] = "Qui puoi resettare la password dell'interfaccia web."; +$lang['wirtpw9'] = "I seguenti campi sono necessari per resettare la password:"; +$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."; +$lang['wishcolas'] = "Servergroup attuale"; +$lang['wishcolasdesc'] = "Mostra colonna 'Servergroup attuale' in stats/list_rankup.php"; +$lang['wishcolat'] = "Tempo Attività"; +$lang['wishcolatdesc'] = "Mostra colonna 'Tempo Attività' in stats/list_rankup.php"; +$lang['wishcolcld'] = "Nome Utente"; +$lang['wishcolclddesc'] = "Mostra colonna 'Nome Utente' in stats/list_rankup.php"; +$lang['wishcoldbid'] = "ID del database"; +$lang['wishcoldbiddesc'] = "Mostra colonna 'ID del database' in stats/list_rankup.php"; +$lang['wishcolgs'] = "Gruppo attuale da"; +$lang['wishcolgsdesc'] = "Mostra colonna 'Gruppo auttuale da' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "tempo in IDLE"; +$lang['wishcolitdesc'] = "Mostra colonna 'tempo in IDLE' in stats/list_rankup.php"; +$lang['wishcolls'] = "Ultimo volta online"; +$lang['wishcollsdesc'] = "Mostra colonna 'Ultimo volta online' in stats/list_rankup.php"; +$lang['wishcolnx'] = "Prossimo Rank"; +$lang['wishcolnxdesc'] = "Mostra colonna 'Prossimo Rank' in stats/list_rankup.php"; +$lang['wishcolot'] = "Tempo Online"; +$lang['wishcolotdesc'] = "Mostra colonna 'Tempo Online' in stats/list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Mostra colonna 'rank' in stats/list_rankup.php"; +$lang['wishcolsg'] = "Prossimo Servergroup"; +$lang['wishcolsgdesc'] = "Mostra colonna 'Prossimo Servergroup' in stats/list_rankup.php"; +$lang['wishcoluuid'] = "ID del Utente"; +$lang['wishcoluuiddesc'] = "Mostra colonna 'ID del Utente' in stats/list_rankup.php"; +$lang['wishexcld'] = "Eccetto gli utenti"; +$lang['wishexclddesc'] = "Mostra gli utenti in list_rankup.php,
Chi è escluso dai rank non partecipa alla lista."; +$lang['wishexgrp'] = "Eccetto i Servergroups"; +$lang['wishexgrpdesc'] = "Mostra gli utenti in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem."; +$lang['wishhicld'] = "Utenti col massimo rank"; +$lang['wishhiclddesc'] = "Mostra gli utenti in list_rankup.php, che hanno raggiunto il più elevato rank nel Ranksystem."; +$lang['wishnav'] = "Mostra navigazione-sito"; +$lang['wishnavdesc'] = "Mostra colonna navigazione-sito nella pagina 'stats/'.

Se disattivata la tabella di navigazione verrà nascosta.
Ora puoi creare a ogni pagina il suo singolo link. 'stats/list_rankup.php' ed incorporarla al tuo sito già esistente."; +$lang['wisupidle'] = "Modalità"; +$lang['wisupidledesc'] = "Ci sono due modalità di conteggio del tempo per applicare un aumento di rank.

1) Tempo Online: Tutto il tempo che l'utente passa in TS in IDLE o meno (Vedi colonna 'sum. online time' in the 'stats/list_rankup.php')

2) Tempo di attività: Al tempo online dell'utente viene sottratto il tempo in IDLE (AFK) (Vedi colonna 'sum. active time' in the 'stats/list_rankup.php').

Il cambiamento di modalità dopo lungo tempo non è consigliato ma dovrebbe funzionare comunque."; +$lang['wisvconf'] = "Salva"; +$lang['wisvsuc'] = "Modifiche salvate con successo!"; +$lang['wisvres'] = "Dovrai riavviare il Ranksystem affinché i cambiamenti vengano applicati!"; +$lang['witime'] = "Fuso orario"; +$lang['witimedesc'] = "Selezione il fuso orario di dove è hostato il server."; +$lang['wits3avat'] = "Avatar Delay"; +$lang['wits3avatdesc'] = "Definisci il tempo in secondi ogni quanto vengono scaricati gli avatars.

Questa funzione è molto utile per i (music) bots, i quali cambiano molte volte il loro avatar."; +$lang['wits3dch'] = "Canale di Default"; +$lang['wits3dchdesc'] = "Il channel-ID cui il bot deve connettersi.

Il Bot entrerà in questo canale appena entrato nel TeamSpeak server."; +$lang['wits3host'] = "Indirizzo TS3"; +$lang['wits3hostdesc'] = "Indirizzo del vostro server Teamspeak
(IP o DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "Con la modalità Slowmode potrai ridurre lo \"spam\" dei comandi query di TeamSpeak. E previene inoltre i ban per flood nel server Teamspeak.
I comandi della query arriveranno con un lieve ritardo in base al ritardo di risposta scelto.

!!! INOLTRE RIDURRA L'UTILIZZO DELLE RISORSE DEL SERVER !!!

Questa funzione non è consigliata, se non è richiesta. Il ritardo dei comandi del bot potrebbe causare imprecisione, sopratutto nell'utilizzo dei boost.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Nome del Bot"; +$lang['wits3qnm2'] = "2° nome del Bot"; +$lang['wits3qnm2desc'] = "Un secondo nome in caso in cui il primo nome sia già in uso nel server teamspeak."; +$lang['wits3qnmdesc'] = "Il nome con il quale la query si conneterà al TS3.
Potrai dare il nome che preferisci.
Ricorda che sarà anche il nome con il quale gli utenti riceveranno i messaggi su Teamspeak."; +$lang['wits3querpw'] = "TS3 - Password della Query"; +$lang['wits3querpwdesc'] = "Password della query di Teamspeak (di norma viene creata al primo avvio di Teamspeak, guarda qui per modificarla: CHANGE QUERY PASSWORD
."; +$lang['wits3querusr'] = "TS3 - Utente della Query"; +$lang['wits3querusrdesc'] = "Il nome utente della Query scelta
Di default è serveradmin
Ma se preferisci potrai creare un ulteriore query solo per il Ranksystem.
Per vedere i permessi necessari alla Query guarda:
http://ts-n.net/ranksystem.php"; +$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['wiverify'] = "Verification-Channel"; +$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 ca530d6..074e9d0 100644 --- a/languages/core_nl.php +++ b/languages/core_nl.php @@ -1,529 +1,534 @@ - zojuist toegevoegd aan ranksysteem."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "Gebruiker %s (unieke Client-ID: %s) heeft een nieuwe TeamSpeak Client-database-ID (%s). Update de oude Client-database-ID (%s) en reset gecollecteerde tijden!"; -$lang['crawl'] = "Scannen naar geconnecte gebruikers en de activiteiten aan het optellen..."; -$lang['clean'] = "Scannen naar clients, die moeten worden verwijderd..."; -$lang['cleanc'] = "opschonen clients"; -$lang['cleancdesc'] = "Met deze functie worden de oude clients in de Ranksysteem verwijderd.

Op dit einde, de Ranksysteem gesynchroniseerd met de TeamSpeak database. Clients, dat niet bestaan in Teamspeak zullen worden verwijderd van de TeamSpeak database. Clients, dat niet bestaat in Teamspeak, zal worden verwijderd van het Ranksysteem

Deze functie is alleen beschikbaar wanneer de 'Slowmode' is gedeactiveerd!


Voor de automatische aanpassing van de TeamSpeak database de ClientCleaner kan worden gebruikt:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "Er waren %s clients verwijderd uit de Ranksysteem database, omdat ze niet meer bestaan in de TeamSpeak database."; -$lang['cleanno'] = "Er was niks om te verwijderen..."; -$lang['cleanp'] = "opschoon periode"; -$lang['cleanpdesc'] = "Zet een tijd dat moet zijn verstreken voordat de 'clean clients' nogmaals start.

Zet een tijd in seconden.

Één keer per dag is aangeraden, omdat het opschonen van clients veel meer tijd nodig heeft voor grotere databasen."; -$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; -$lang['cleants'] = "Clients gevonden in de TeamSpeak database: %s (van de %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['days'] = "%s dagen"; -$lang['dbconerr'] = "Connectie naar de Database mislukt: "; -$lang['delcldgrpif'] = "Fout tijdens het verwijderen van kennis voor servergroepen: %s"; -$lang['delcldgrpsc'] = "Kennis van servergroepen voor %s Gebruikers succesvol verwijderd."; -$lang['delclientsif'] = "%s Clients zijn verwijderd uit de Ranksysteem database!"; -$lang['delclientssc'] = "%s Clients zijn successvol verwijderd uit de Ranksysteem database!"; -$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'] = "Gebruikersnaam en/of wachtwoord zijn onjuist! Probeer opnieuw..."; -$lang['errlogin2'] = "Brute force protection: Probeer nogmaals in %s seconde!"; -$lang['errlogin3'] = "Brute force protection: Te vaak mislukt. Verbannen voor 300 seconden!"; -$lang['error'] = "Foutmelding "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Foutmelding tijdens het verwijderen van de gebruiker met de unieke Client-ID %s van de servergroep met servergroep-database-ID %s!"; -$lang['errremdb'] = "Foutmelding tijdens het verwijderen van de gebruiker met de unieke Client-ID %s uit de Ranksysteem database!"; -$lang['errselusr'] = "Selecteer A.U.B minstens één gebruiker!"; -$lang['errseltime'] = "Voeg A.U.B een online tijd toe."; -$lang['errukwn'] = "Een onbekende foutmelding is opgetreden!"; -$lang['errupcount'] = "Foutmelding tijdens het vernieuwen van de overzicht online tijd van %s door gebruiker met de unieke Client-ID %s"; -$lang['highest'] = "hoogste rank bereikt"; -$lang['install'] = "Installatie"; -$lang['instdb'] = "Installeer database"; -$lang['instdbsuc'] = "Database %s successvol aangemaakt."; -$lang['insterr1'] = "LET OP: Je probeert de Ranksysteem te installeren, maar er bestaat al een database met de naam \"%s\".
Door dit te installeren zal de bestaande database worden verwijderd!
Weet zeker dat je dit wilt. Zo niet, kies dan A.U.B. een andere database naam."; -$lang['insterr2'] = "PDO is nodig maar is niet geinstalleerd. Installeer PDO en probeer nogmaals!"; -$lang['insterr3'] = "PHP exec function moet zijn ingeschakeld maar is uitgeschakeld. Schakel A.U.B. PHP exec functie en probeer nogmaals!"; -$lang['insterr4'] = "Je PHP versie (%s) is onder 5.5.0. Update je PHP en probeer nogmaals!"; -$lang['insterr5'] = "SimpleXML is nodig maar is niet beschikbaar. Installeer simpleXML en probeer nogmaals!"; -$lang['insterr6'] = "PHP cURL is nodig maar is niet beschikbaar. Installeer PHP cURL en probeer nogmaals!"; -$lang['insterr7'] = "PHP Zip is needed but seems not available. Install PHP Zip and try it again!"; -$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Kan de database configuratie niet opslaan! Bewerk A.U.B de 'other/dbconfig.php' met chmod 0777 (op windows 'full access') en probeer nogmaals."; -$lang['isntwicfg2'] = "Configuratie Webinterface"; -$lang['isntwichm'] = "Schrijven toestemming mislukt op map \"%s\". Geef A.U.B. chmod 777 (op windows 'full access') en probeer de Ranksysteem nogmaals te starten."; -$lang['isntwiconf'] = "Open de %s om het Ranksysteem te configureren!"; -$lang['isntwidbhost'] = "DB Hostaddress:"; -$lang['isntwidbhostdesc'] = "Database server adres
(IP of DNS)"; -$lang['isntwidbmsg'] = "Database foutmelding: "; -$lang['isntwidbname'] = "DB Naam:"; -$lang['isntwidbnamedesc'] = "Naam van database"; -$lang['isntwidbpass'] = "DB Wachtwoord:"; -$lang['isntwidbpassdesc'] = "Wachtwoord voor toegang van de database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "Database type

Je moet de benodigde PDO Driver installeren.
Voor meer informatie neem een kijkje bij de vereisten op http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB Gebruiker:"; -$lang['isntwidbusrdesc'] = "Gebruiker voor toegang van de database"; -$lang['isntwidel'] = "Verwijder A.U.B het bestand 'install.php' van je webserver"; -$lang['isntwiusr'] = "Gebruiker voor de webinterface is succesvol aangemaakt."; -$lang['isntwiusrcr'] = "Creëer Webinterface-User"; -$lang['isntwiusrdesc'] = "Voer een gebruikersnaam en wachtwoord in voor toegang van de webinterface. Met de webinterface kan je de ranksysteem configureren."; -$lang['isntwiusrh'] = "Toegang - Webinterface"; -$lang['listacsg'] = "actuele servergroep"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "Nee, want uitgesloten"; -$lang['listgrps'] = "actuele groep sinds"; -$lang['listip'] = "IP adres"; -$lang['listnick'] = "Clientnaam"; -$lang['listnxsg'] = "volgende servergroep"; -$lang['listnxup'] = "volgende rang omhoog"; -$lang['listrank'] = "rang"; -$lang['listseen'] = "laatst gezien"; -$lang['listsuma'] = "overzicht actieve tijd"; -$lang['listsumi'] = "overzicht inactieve tijd"; -$lang['listsumo'] = "overzicht online tijd"; -$lang['listuid'] = "unieke Client-ID"; -$lang['login'] = "Inloggen"; -$lang['msg0001'] = "versie: %s"; -$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; -$lang['msg0003'] = "Je bent niet in beschikking van deze commando!"; -$lang['msg0004'] = "Client %s (%s) verzoekt afsluiten."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) verzoekt opnieuw opstarten."; -$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['nocount'] = "Gebruiker %s (unieke Client-ID: %s; Client-database-ID %s) is een query-gebruiker of is meerdere keren online (alleen de eerste connectie telt mee) -> dit telt niet mee!"; -$lang['noentry'] = "Geen invoer gevonden.."; -$lang['pass'] = "Wachtwoord"; -$lang['pass2'] = "Verander wachtwoord"; -$lang['pass3'] = "oud wachtwoord"; -$lang['pass4'] = "nieuw wachtwoord"; -$lang['pass5'] = "Wachtwoord Vergeten?"; -$lang['queryname'] = "Eerst naam van de bot is al in gebruikt. Connectie aanleggen met tweede botnaam..."; -$lang['repeat'] = "herhalen"; -$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; -$lang['sccrmcld'] = "Gebruiker met unieke Client-ID %s succesvol verwijderd van de Ranksysteem database."; -$lang['sccupcount'] = "Succesvol online tijd toegevoegd van %s seconden aan de gebruikers met de unieke Client-IDs (%s)"; -$lang['setontime'] = "voeg tijd toe"; -$lang['setontimedesc'] = "Voeg online tijd toe aan de hiervoor geselecteerde clients. Elke gebruiker zal de tijd erbij krijgen op hun oude online tijd.

De ingevoerde online tijd zal onmiddelijk plaatsvinden en de servergroepen zullen meteen worden toegevoegd."; -$lang['sgrpadd'] = "Verleen servergroep %s (ID: %s) naar gebruiker %s (unieke Client-ID: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "Servergroep verwijderd van gebruiker %s (ID: %s) user %s (unieke 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'] = "Assign Servergroup"; -$lang['stag0002'] = "Allowed Groups"; -$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; -$lang['stag0004'] = "Limit Groups"; -$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; -$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of simultaneous groups: "; -$lang['stag0012'] = "set groups"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "Server statistieken"; -$lang['stix0002'] = "Totaal gebruikers"; -$lang['stix0003'] = "Bekijk gegevens"; -$lang['stix0004'] = "Online tijd van alle gebruiker / Totaal"; -$lang['stix0005'] = "Bekijk de top van alle tijd"; -$lang['stix0006'] = "Bekijk de top van de maand"; -$lang['stix0007'] = "Bekijk de top van de week"; -$lang['stix0008'] = "Server gebruik"; -$lang['stix0009'] = "In de laatste 7 dagen"; -$lang['stix0010'] = "In de laatste 30 dagen"; -$lang['stix0011'] = "In de laatste 24 uren"; -$lang['stix0012'] = "selecteer periode"; -$lang['stix0013'] = "Laatste dag"; -$lang['stix0014'] = "Laatste week"; -$lang['stix0015'] = "Laatste maand"; -$lang['stix0016'] = "Actieve / inactieve tijd (van alle clients)"; -$lang['stix0017'] = "Versies (van alle clients)"; -$lang['stix0018'] = "Nationaliteiten (van alle clients)"; -$lang['stix0019'] = "Platform (van alle clients)"; -$lang['stix0020'] = "Actuele statistieken"; -$lang['stix0023'] = "Server toestand"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clients (Online / Max)"; -$lang['stix0027'] = "Aantal kanalen"; -$lang['stix0028'] = "Gemiddelde server ping"; -$lang['stix0029'] = "Totaal bytes ontvangen"; -$lang['stix0030'] = "Totaal bytes verzonden"; -$lang['stix0031'] = "Server uptijd"; -$lang['stix0032'] = "voor offline:"; -$lang['stix0033'] = "00 Dagen, 00 Uren, 00 Minuten, 00 Seconden"; -$lang['stix0034'] = "Gemiddelde pakketverlies"; -$lang['stix0035'] = "Globaal statistieken"; -$lang['stix0036'] = "Server naam"; -$lang['stix0037'] = "Server adres (Host Adres : Port)"; -$lang['stix0038'] = "Server wachtwoord"; -$lang['stix0039'] = "Nee (Server is globaal)"; -$lang['stix0040'] = "Ja (Server is privé)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platform"; -$lang['stix0043'] = "Server versie"; -$lang['stix0044'] = "Server aanmaakdatum (dd/mm/yyyy)"; -$lang['stix0045'] = "Rapport naar serverlijst"; -$lang['stix0046'] = "Geactiveerd"; -$lang['stix0047'] = "Niet geactiveerd"; -$lang['stix0048'] = "niet genoeg gegevens..."; -$lang['stix0049'] = "Online tijd van alle gebruikers / maand"; -$lang['stix0050'] = "Online tijd van alle gebruikers / week"; -$lang['stix0051'] = "TeamSpeak mislukt, geen aanmaakdatum..."; -$lang['stix0052'] = "overige"; -$lang['stix0053'] = "Actieve Tijd (in Dagen)"; -$lang['stix0054'] = "Inactieve Tijd (in Dagen)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stmy0001'] = "Mijn statistieken"; -$lang['stmy0002'] = "Rang"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unieke ID:"; -$lang['stmy0005'] = "Totaal connecties naar de server:"; -$lang['stmy0006'] = "Start datum van statistieken:"; -$lang['stmy0007'] = "Totaal online tijd.:"; -$lang['stmy0008'] = "Online tijd laatste %s dagen:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "Prestaties voltooid:"; -$lang['stmy0011'] = "Tijd prestaties vooruitgang"; -$lang['stmy0012'] = "Tijd: Legendarisch"; -$lang['stmy0013'] = "Omdat je een online tijd hebt van %s uren."; -$lang['stmy0014'] = "Vooruitgang voltooid"; -$lang['stmy0015'] = "Tijd: Goud"; -$lang['stmy0016'] = "% voltooid voor Legendarisch"; -$lang['stmy0017'] = "Tijd: Zilver"; -$lang['stmy0018'] = "% voltooid voor Goud"; -$lang['stmy0019'] = "Tijd: Brons"; -$lang['stmy0020'] = "% voltooid voor Zilver"; -$lang['stmy0021'] = "Tijd: Geen rang"; -$lang['stmy0022'] = "% voltooid voor Brons"; -$lang['stmy0023'] = "Connectie prestaties vooruitgang"; -$lang['stmy0024'] = "Connecties: Legendarisch"; -$lang['stmy0025'] = "Omdat je %s connecties hebt op de server."; -$lang['stmy0026'] = "Connecties: Goud"; -$lang['stmy0027'] = "Connecties: Zilver"; -$lang['stmy0028'] = "Connecties: Brons"; -$lang['stmy0029'] = "Connecties: Geen rang"; -$lang['stmy0030'] = "Vooruitgang volgende servergroep"; -$lang['stmy0031'] = "Total active time"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Server nieuws"; -$lang['stnv0002'] = "Sluiten"; -$lang['stnv0003'] = "Ververs client informatie"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0007'] = "Battle area - Page content"; -$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; -$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; -$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; -$lang['stnv0011'] = "(The regular battling time is 48 hours)"; -$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; -$lang['stnv0013'] = "It will be displayed on the My statistics tab."; -$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; -$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(You are not connected to the TS3!)"; -$lang['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "Ranksystem information"; -$lang['stri0002'] = "What is the Ranksystem?"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; -$lang['stri0009'] = "How was the Ranksystem created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; -$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; -$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; -$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; -$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'] = "Top users"; -$lang['sttw0002'] = "Of the week"; -$lang['sttw0003'] = "With %s %s online time"; -$lang['sttw0004'] = "Top 10 compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 vs others in online time"; -$lang['sttw0009'] = "Top 10 vs others in active time"; -$lang['sttw0010'] = "Top 10 vs others in inactive time"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "Of the month"; -$lang['stta0001'] = "Of all time"; -$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['stve0002'] = "A message with the token was sent to you on the TS3 server."; -$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_day'] = "Day(s)"; -$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'] = "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]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]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "User %s was successfully informed."; -$lang['user'] = "Username"; -$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'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "admin ID"; -$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$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 should be stopped. Check the log below for more information!"; -$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; -$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; -$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'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; -$lang['wichpw1'] = "Your old password is wrong. Please try again"; -$lang['wichpw2'] = "The new passwords dismatch. Please try again."; -$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; -$lang['wichpw4'] = "Change Password"; -$lang['widaform'] = "Date format"; -$lang['widaformdesc'] = "Choose the showing date format.

Example:
%a days, %h hours, %i mins, %s secs"; -$lang['widbcfgsuc'] = "Database configurations saved successfully."; -$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; -$lang['widelcld'] = "delete clients"; -$lang['widelcldgrp'] = "renew groups"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; -$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; -$lang['widelsg'] = "remove out of servergroups"; -$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; -$lang['wideltime'] = "Deletiontime"; -$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; -$lang['wiexcid'] = "channel exception"; -$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "exception mode"; -$lang['wiexres1'] = "default (count time)"; -$lang['wiexres2'] = "break time"; -$lang['wiexres3'] = "reset time"; -$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; -$lang['wiexuid'] = "client exception"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wigrptime'] = "rank up definition"; -$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; -$lang['wihladm'] = "List Rankup (Admin-Mode)"; -$lang['wihladm1'] = "Add online Time to User"; -$lang['wihlcfg'] = "Core settings"; -$lang['wihldb'] = "Database settings"; -$lang['wihlmsg'] = "Message settings"; -$lang['wihlsty'] = "Stats page settings"; -$lang['wihlts'] = "TeamSpeak settings"; -$lang['wihlvs'] = "Various settings"; -$lang['wiignidle'] = "Ignore idle"; -$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 = disable the feature

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; -$lang['wilogout'] = "Logout"; -$lang['wimsgmsg'] = "Message"; -$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wimsgusr'] = "Rank up notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Other"; -$lang['winav5'] = "Message"; -$lang['winav6'] = "Stats page"; -$lang['winav7'] = "Administrate"; -$lang['winav8'] = "Start / Stop Bot"; -$lang['winav9'] = "Update available!"; -$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; -$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Command \"!nextup\""; -$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; -$lang['winxmode1'] = "deactivated"; -$lang['winxmode2'] = "allowed - only next rank"; -$lang['winxmode3'] = "allowed - all next ranks"; -$lang['winxmsg1'] = "Message"; -$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; -$lang['winxmsg2'] = "Message (highest)"; -$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; -$lang['winxmsg3'] = "Message (excepted)"; -$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; -$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; -$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; -$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; -$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$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."; -$lang['wishcolas'] = "actual servergroup"; -$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; -$lang['wishcolat'] = "active time"; -$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; -$lang['wishcolcld'] = "Client-name"; -$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; -$lang['wishcoldbid'] = "database-ID"; -$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; -$lang['wishcolgs'] = "actual group since"; -$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; -$lang['wishcolit'] = "idle time"; -$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; -$lang['wishcolls'] = "last seen"; -$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; -$lang['wishcolnx'] = "next rank up"; -$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; -$lang['wishcolot'] = "online time"; -$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; -$lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; -$lang['wishcolsg'] = "next servergroup"; -$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; -$lang['wishexcld'] = "excepted client"; -$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; -$lang['wishexgrp'] = "excepted groups"; -$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wishnav'] = "show site-navigation"; -$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; -$lang['wisupidle'] = "Mode"; -$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; -$lang['wisvconf'] = "save"; -$lang['wisvsuc'] = "Changes successfully saved!"; -$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; -$lang['wits3avat'] = "Avatar Delay"; -$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The Bot will join this channel after connecting to the TeamSpeak server."; -$lang['wits3host'] = "TS3 Hostaddress"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Botname"; -$lang['wits3qnm2'] = "2nd Botname"; -$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; -$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; -$lang['wits3querpw'] = "TS3 Query-Password"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; -$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['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"; -$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; + zojuist toegevoegd aan ranksysteem."; +$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; +$lang['changedbid'] = "Gebruiker %s (unieke Client-ID: %s) heeft een nieuwe TeamSpeak Client-database-ID (%s). Update de oude Client-database-ID (%s) en reset gecollecteerde tijden!"; +$lang['crawl'] = "Scannen naar geconnecte gebruikers en de activiteiten aan het optellen..."; +$lang['clean'] = "Scannen naar clients, die moeten worden verwijderd..."; +$lang['cleanc'] = "opschonen clients"; +$lang['cleancdesc'] = "Met deze functie worden de oude clients in de Ranksysteem verwijderd.

Op dit einde, de Ranksysteem gesynchroniseerd met de TeamSpeak database. Clients, dat niet bestaan in Teamspeak zullen worden verwijderd van de TeamSpeak database. Clients, dat niet bestaat in Teamspeak, zal worden verwijderd van het Ranksysteem

Deze functie is alleen beschikbaar wanneer de 'Slowmode' is gedeactiveerd!


Voor de automatische aanpassing van de TeamSpeak database de ClientCleaner kan worden gebruikt:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Er waren %s clients verwijderd uit de Ranksysteem database, omdat ze niet meer bestaan in de TeamSpeak database."; +$lang['cleanno'] = "Er was niks om te verwijderen..."; +$lang['cleanp'] = "opschoon periode"; +$lang['cleanpdesc'] = "Zet een tijd dat moet zijn verstreken voordat de 'clean clients' nogmaals start.

Zet een tijd in seconden.

Één keer per dag is aangeraden, omdat het opschonen van clients veel meer tijd nodig heeft voor grotere databasen."; +$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; +$lang['cleants'] = "Clients gevonden in de TeamSpeak database: %s (van de %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['day'] = "%s dag"; +$lang['days'] = "%s dagen"; +$lang['dbconerr'] = "Connectie naar de Database mislukt: "; +$lang['delcldgrpif'] = "Fout tijdens het verwijderen van kennis voor servergroepen: %s"; +$lang['delcldgrpsc'] = "Kennis van servergroepen voor %s Gebruikers succesvol verwijderd."; +$lang['delclientsif'] = "%s Clients zijn verwijderd uit de Ranksysteem database!"; +$lang['delclientssc'] = "%s Clients zijn successvol verwijderd uit de Ranksysteem database!"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "Gebruikersnaam en/of wachtwoord zijn onjuist! Probeer opnieuw..."; +$lang['errlogin2'] = "Brute force protection: Probeer nogmaals in %s seconde!"; +$lang['errlogin3'] = "Brute force protection: Te vaak mislukt. Verbannen voor 300 seconden!"; +$lang['error'] = "Foutmelding "; +$lang['errorts3'] = "TS3 Error: "; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['errremgrp'] = "Foutmelding tijdens het verwijderen van de gebruiker met de unieke Client-ID %s van de servergroep met servergroep-database-ID %s!"; +$lang['errremdb'] = "Foutmelding tijdens het verwijderen van de gebruiker met de unieke Client-ID %s uit de Ranksysteem database!"; +$lang['errselusr'] = "Selecteer A.U.B minstens één gebruiker!"; +$lang['errseltime'] = "Voeg A.U.B een online tijd toe."; +$lang['errukwn'] = "Een onbekende foutmelding is opgetreden!"; +$lang['errupcount'] = "Foutmelding tijdens het vernieuwen van de overzicht online tijd van %s door gebruiker met de unieke Client-ID %s"; +$lang['highest'] = "hoogste rank bereikt"; +$lang['install'] = "Installatie"; +$lang['instdb'] = "Installeer database"; +$lang['instdbsuc'] = "Database %s successvol aangemaakt."; +$lang['insterr1'] = "LET OP: Je probeert de Ranksysteem te installeren, maar er bestaat al een database met de naam \"%s\".
Door dit te installeren zal de bestaande database worden verwijderd!
Weet zeker dat je dit wilt. Zo niet, kies dan A.U.B. een andere database naam."; +$lang['insterr2'] = "PDO is nodig maar is niet geinstalleerd. Installeer PDO en probeer nogmaals!"; +$lang['insterr3'] = "PHP exec function moet zijn ingeschakeld maar is uitgeschakeld. Schakel A.U.B. PHP exec functie en probeer nogmaals!"; +$lang['insterr4'] = "Je PHP versie (%s) is onder 5.5.0. Update je PHP en probeer nogmaals!"; +$lang['insterr5'] = "SimpleXML is nodig maar is niet beschikbaar. Installeer simpleXML en probeer nogmaals!"; +$lang['insterr6'] = "PHP cURL is nodig maar is niet beschikbaar. Installeer PHP cURL en probeer nogmaals!"; +$lang['insterr7'] = "PHP Zip is needed but seems not available. Install PHP Zip and try it again!"; +$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Kan de database configuratie niet opslaan! Bewerk A.U.B de 'other/dbconfig.php' met chmod 0777 (op windows 'full access') en probeer nogmaals."; +$lang['isntwicfg2'] = "Configuratie Webinterface"; +$lang['isntwichm'] = "Schrijven toestemming mislukt op map \"%s\". Geef A.U.B. chmod 777 (op windows 'full access') en probeer de Ranksysteem nogmaals te starten."; +$lang['isntwiconf'] = "Open de %s om het Ranksysteem te configureren!"; +$lang['isntwidbhost'] = "DB Hostaddress:"; +$lang['isntwidbhostdesc'] = "Database server adres
(IP of DNS)"; +$lang['isntwidbmsg'] = "Database foutmelding: "; +$lang['isntwidbname'] = "DB Naam:"; +$lang['isntwidbnamedesc'] = "Naam van database"; +$lang['isntwidbpass'] = "DB Wachtwoord:"; +$lang['isntwidbpassdesc'] = "Wachtwoord voor toegang van de database"; +$lang['isntwidbtype'] = "DB Type:"; +$lang['isntwidbtypedesc'] = "Database type

Je moet de benodigde PDO Driver installeren.
Voor meer informatie neem een kijkje bij de vereisten op http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB Gebruiker:"; +$lang['isntwidbusrdesc'] = "Gebruiker voor toegang van de database"; +$lang['isntwidel'] = "Verwijder A.U.B het bestand 'install.php' van je webserver"; +$lang['isntwiusr'] = "Gebruiker voor de webinterface is succesvol aangemaakt."; +$lang['isntwiusrcr'] = "Creëer Webinterface-User"; +$lang['isntwiusrdesc'] = "Voer een gebruikersnaam en wachtwoord in voor toegang van de webinterface. Met de webinterface kan je de ranksysteem configureren."; +$lang['isntwiusrh'] = "Toegang - Webinterface"; +$lang['listacsg'] = "actuele servergroep"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexcept'] = "Nee, want uitgesloten"; +$lang['listgrps'] = "actuele groep sinds"; +$lang['listnick'] = "Clientnaam"; +$lang['listnxsg'] = "volgende servergroep"; +$lang['listnxup'] = "volgende rang omhoog"; +$lang['listrank'] = "rang"; +$lang['listseen'] = "laatst gezien"; +$lang['listsuma'] = "overzicht actieve tijd"; +$lang['listsumi'] = "overzicht inactieve tijd"; +$lang['listsumo'] = "overzicht online tijd"; +$lang['listuid'] = "unieke Client-ID"; +$lang['login'] = "Inloggen"; +$lang['msg0001'] = "versie: %s"; +$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; +$lang['msg0003'] = "Je bent niet in beschikking van deze commando!"; +$lang['msg0004'] = "Client %s (%s) verzoekt afsluiten."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Client %s (%s) verzoekt opnieuw opstarten."; +$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['nocount'] = "Gebruiker %s (unieke Client-ID: %s; Client-database-ID %s) is een query-gebruiker of is meerdere keren online (alleen de eerste connectie telt mee) -> dit telt niet mee!"; +$lang['noentry'] = "Geen invoer gevonden.."; +$lang['pass'] = "Wachtwoord"; +$lang['pass2'] = "Verander wachtwoord"; +$lang['pass3'] = "oud wachtwoord"; +$lang['pass4'] = "nieuw wachtwoord"; +$lang['pass5'] = "Wachtwoord Vergeten?"; +$lang['queryname'] = "Eerst naam van de bot is al in gebruikt. Connectie aanleggen met tweede botnaam..."; +$lang['repeat'] = "herhalen"; +$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; +$lang['sccrmcld'] = "Gebruiker met unieke Client-ID %s succesvol verwijderd van de Ranksysteem database."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "voeg tijd toe"; +$lang['setontimedesc'] = "Voeg online tijd toe aan de hiervoor geselecteerde clients. Elke gebruiker zal de tijd erbij krijgen op hun oude online tijd.

De ingevoerde online tijd zal onmiddelijk plaatsvinden en de servergroepen zullen meteen worden toegevoegd."; +$lang['sgrpadd'] = "Verleen servergroep %s (ID: %s) naar gebruiker %s (unieke Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "Servergroep verwijderd van gebruiker %s (ID: %s) user %s (unieke 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'] = "Assign Servergroup"; +$lang['stag0002'] = "Allowed Groups"; +$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; +$lang['stag0004'] = "Limit Groups"; +$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; +$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; +$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; +$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; +$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; +$lang['stag0010'] = "Please choose at least one new group."; +$lang['stag0011'] = "Limit of simultaneous groups: "; +$lang['stag0012'] = "set groups"; +$lang['stag0013'] = "Addon ON/OFF"; +$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "Server statistieken"; +$lang['stix0002'] = "Totaal gebruikers"; +$lang['stix0003'] = "Bekijk gegevens"; +$lang['stix0004'] = "Online tijd van alle gebruiker / Totaal"; +$lang['stix0005'] = "Bekijk de top van alle tijd"; +$lang['stix0006'] = "Bekijk de top van de maand"; +$lang['stix0007'] = "Bekijk de top van de week"; +$lang['stix0008'] = "Server gebruik"; +$lang['stix0009'] = "In de laatste 7 dagen"; +$lang['stix0010'] = "In de laatste 30 dagen"; +$lang['stix0011'] = "In de laatste 24 uren"; +$lang['stix0012'] = "selecteer periode"; +$lang['stix0013'] = "Laatste dag"; +$lang['stix0014'] = "Laatste week"; +$lang['stix0015'] = "Laatste maand"; +$lang['stix0016'] = "Actieve / inactieve tijd (van alle clients)"; +$lang['stix0017'] = "Versies (van alle clients)"; +$lang['stix0018'] = "Nationaliteiten (van alle clients)"; +$lang['stix0019'] = "Platform (van alle clients)"; +$lang['stix0020'] = "Actuele statistieken"; +$lang['stix0023'] = "Server toestand"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Clients (Online / Max)"; +$lang['stix0027'] = "Aantal kanalen"; +$lang['stix0028'] = "Gemiddelde server ping"; +$lang['stix0029'] = "Totaal bytes ontvangen"; +$lang['stix0030'] = "Totaal bytes verzonden"; +$lang['stix0031'] = "Server uptijd"; +$lang['stix0032'] = "voor offline:"; +$lang['stix0033'] = "00 Dagen, 00 Uren, 00 Minuten, 00 Seconden"; +$lang['stix0034'] = "Gemiddelde pakketverlies"; +$lang['stix0035'] = "Globaal statistieken"; +$lang['stix0036'] = "Server naam"; +$lang['stix0037'] = "Server adres (Host Adres : Port)"; +$lang['stix0038'] = "Server wachtwoord"; +$lang['stix0039'] = "Nee (Server is globaal)"; +$lang['stix0040'] = "Ja (Server is privé)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server platform"; +$lang['stix0043'] = "Server versie"; +$lang['stix0044'] = "Server aanmaakdatum (dd/mm/yyyy)"; +$lang['stix0045'] = "Rapport naar serverlijst"; +$lang['stix0046'] = "Geactiveerd"; +$lang['stix0047'] = "Niet geactiveerd"; +$lang['stix0048'] = "niet genoeg gegevens..."; +$lang['stix0049'] = "Online tijd van alle gebruikers / maand"; +$lang['stix0050'] = "Online tijd van alle gebruikers / week"; +$lang['stix0051'] = "TeamSpeak mislukt, geen aanmaakdatum..."; +$lang['stix0052'] = "overige"; +$lang['stix0053'] = "Actieve Tijd (in Dagen)"; +$lang['stix0054'] = "Inactieve Tijd (in Dagen)"; +$lang['stix0055'] = "online last 24 hours"; +$lang['stix0056'] = "online last %s days"; +$lang['stix0059'] = "List of user"; +$lang['stix0060'] = "User"; +$lang['stix0061'] = "View all versions"; +$lang['stix0062'] = "View all nations"; +$lang['stix0063'] = "View all platforms"; +$lang['stmy0001'] = "Mijn statistieken"; +$lang['stmy0002'] = "Rang"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unieke ID:"; +$lang['stmy0005'] = "Totaal connecties naar de server:"; +$lang['stmy0006'] = "Start datum van statistieken:"; +$lang['stmy0007'] = "Totaal online tijd.:"; +$lang['stmy0008'] = "Online tijd laatste %s dagen:"; +$lang['stmy0009'] = "Active time last %s days:"; +$lang['stmy0010'] = "Prestaties voltooid:"; +$lang['stmy0011'] = "Tijd prestaties vooruitgang"; +$lang['stmy0012'] = "Tijd: Legendarisch"; +$lang['stmy0013'] = "Omdat je een online tijd hebt van %s uren."; +$lang['stmy0014'] = "Vooruitgang voltooid"; +$lang['stmy0015'] = "Tijd: Goud"; +$lang['stmy0016'] = "% voltooid voor Legendarisch"; +$lang['stmy0017'] = "Tijd: Zilver"; +$lang['stmy0018'] = "% voltooid voor Goud"; +$lang['stmy0019'] = "Tijd: Brons"; +$lang['stmy0020'] = "% voltooid voor Zilver"; +$lang['stmy0021'] = "Tijd: Geen rang"; +$lang['stmy0022'] = "% voltooid voor Brons"; +$lang['stmy0023'] = "Connectie prestaties vooruitgang"; +$lang['stmy0024'] = "Connecties: Legendarisch"; +$lang['stmy0025'] = "Omdat je %s connecties hebt op de server."; +$lang['stmy0026'] = "Connecties: Goud"; +$lang['stmy0027'] = "Connecties: Zilver"; +$lang['stmy0028'] = "Connecties: Brons"; +$lang['stmy0029'] = "Connecties: Geen rang"; +$lang['stmy0030'] = "Vooruitgang volgende servergroep"; +$lang['stmy0031'] = "Total active time"; +$lang['stna0001'] = "Nations"; +$lang['stna0002'] = "statistics"; +$lang['stna0003'] = "Code"; +$lang['stna0004'] = "Count"; +$lang['stna0005'] = "Versions"; +$lang['stna0006'] = "Platforms"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "Server nieuws"; +$lang['stnv0002'] = "Sluiten"; +$lang['stnv0003'] = "Ververs client informatie"; +$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; +$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; +$lang['stnv0006'] = "Refresh"; +$lang['stnv0007'] = "Battle area - Page content"; +$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; +$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; +$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; +$lang['stnv0011'] = "(The regular battling time is 48 hours)"; +$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; +$lang['stnv0013'] = "It will be displayed on the My statistics tab."; +$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; +$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; +$lang['stnv0016'] = "Not available"; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; +$lang['stnv0019'] = "My statistics - Page content"; +$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "Ranksystem - Statistics"; +$lang['stnv0025'] = "Limit entries"; +$lang['stnv0026'] = "all"; +$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; +$lang['stnv0028'] = "(You are not connected to the TS3!)"; +$lang['stnv0029'] = "List Rankup"; +$lang['stnv0030'] = "Ranksystem info"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "connect TS3"; +$lang['stri0001'] = "Ranksystem information"; +$lang['stri0002'] = "What is the Ranksystem?"; +$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "Who created the Ranksystem?"; +$lang['stri0005'] = "When the Ranksystem was Created?"; +$lang['stri0006'] = "First alpha release: 05/10/2014."; +$lang['stri0007'] = "First beta release: 01/02/2015."; +$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; +$lang['stri0009'] = "How was the Ranksystem created?"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = "Special Thanks To:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; +$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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Top users"; +$lang['sttw0002'] = "Of the week"; +$lang['sttw0003'] = "With %s %s online time"; +$lang['sttw0004'] = "Top 10 compared"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "Top 10 Statistics"; +$lang['sttw0008'] = "Top 10 vs others in online time"; +$lang['sttw0009'] = "Top 10 vs others in active time"; +$lang['sttw0010'] = "Top 10 vs others in inactive time"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "Other %s users (in hours)"; +$lang['sttw0013'] = "With %s %s active time"; +$lang['sttw0014'] = "hours"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "Of the month"; +$lang['stta0001'] = "Of all time"; +$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['stve0002'] = "A message with the token was sent to you on the TS3 server."; +$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; +$lang['stve0004'] = "The entered token does not match! Please try it again."; +$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; +$lang['stve0009'] = " -- select yourself -- "; +$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verify"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_day'] = "Day(s)"; +$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'] = "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]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]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "User %s was successfully informed."; +$lang['user'] = "Username"; +$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'] = "Webinterface"; +$lang['wiaction'] = "action"; +$lang['wiadmhide'] = "hide excepted clients"; +$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; +$lang['wiadmuuid'] = "admin ID"; +$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$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 should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; +$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'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['wichpw1'] = "Your old password is wrong. Please try again"; +$lang['wichpw2'] = "The new passwords dismatch. Please try again."; +$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; +$lang['wichpw4'] = "Change Password"; +$lang['widaform'] = "Date format"; +$lang['widaformdesc'] = "Choose the showing date format.

Example:
%a days, %h hours, %i mins, %s secs"; +$lang['widbcfgsuc'] = "Database configurations saved successfully."; +$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; +$lang['widelcld'] = "delete clients"; +$lang['widelcldgrp'] = "renew groups"; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "remove out of servergroups"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "Deletiontime"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "channel exception"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexres'] = "exception mode"; +$lang['wiexres1'] = "default (count time)"; +$lang['wiexres2'] = "break time"; +$lang['wiexres3'] = "reset time"; +$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; +$lang['wiexuid'] = "client exception"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "rank up definition"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihladm1'] = "Add online Time to User"; +$lang['wihlcfg'] = "Core settings"; +$lang['wihldb'] = "Database settings"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignore idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 = disable the feature

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; +$lang['wilogout'] = "Logout"; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Command \"!nextup\""; +$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; +$lang['winxmode1'] = "deactivated"; +$lang['winxmode2'] = "allowed - only next rank"; +$lang['winxmode3'] = "allowed - all next ranks"; +$lang['winxmsg1'] = "Message"; +$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"!nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; +$lang['winxmsg2'] = "Message (highest)"; +$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; +$lang['winxmsg3'] = "Message (excepted)"; +$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; +$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; +$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; +$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; +$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; +$lang['wirtpw7'] = "Reset Password"; +$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; +$lang['wirtpw9'] = "Following things are required to reset the password:"; +$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."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; +$lang['wishcolgs'] = "actual group since"; +$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wishnav'] = "show site-navigation"; +$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3avat'] = "Avatar Delay"; +$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The Bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Botname"; +$lang['wits3qnm2'] = "2nd Botname"; +$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; +$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['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"; +$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; ?> \ No newline at end of file diff --git a/languages/core_pl.php b/languages/core_pl.php index 9842839..6c7a052 100644 --- a/languages/core_pl.php +++ b/languages/core_pl.php @@ -1,533 +1,534 @@ - added to the Ranksystem now."; -$lang['brute'] = "Wykryto wiele niepoprawnych logowan na WWW Zablokowane logowanie przez 300 sekund! Ostatni dostep z IP% s."; -$lang['changedbid'] = "Uzytkownik %s (unique Client-ID: %s) ma nowy identyfikator klienta TeamSpeak (%s). Zaktualizuj stary identyfikator bazy danych klienta (%s). i zresetuj zebrany czasy!"; -$lang['crawl'] = "Skanowanie dla podłączonych uzytkownikow i zliczanie aktywnosci..."; -$lang['clean'] = "Skanowanie w celu usuniecia klientow..."; -$lang['cleanc'] = "Wyczyszczono klientow"; -$lang['cleancdesc'] = "Dzieki tej funkcji stare klienty z Systemu Rankow zostają usuniete. W tym celu system Ranksystem został zsynchronizowany z bazą danych TeamSpeak. Klienci, ktorych nie ma w TeamSpeak, zostaną usunieci z Systemu Rank.

Ta funkcja jest aktywna tylko wtedy, gdy 'Tryb Wolny' jest nieaktywny!

Do automatycznej regulacji TeamSpeak baza danych moze byc uzywana."; -$lang['cleandel'] = "%s klientow zostało usunietych z bazy danych systemu Ranksystem, poniewaz nie istniały juz w bazie danych TeamSpeak."; -$lang['cleanno'] = "Nie było niczego do usuniecia..."; -$lang['cleanp'] = "czysty okres"; -$lang['cleanpdesc'] = "Ustaw czas, ktory musi upłynąc, zanim nastepny 'czysty' klient bedzie działał.

Ustaw czas w sekundach.

Zalecany jest raz dziennie, poniewaz czyszczenie klienta wymaga duzo czasu w przypadku wiekszych baz danych."; -$lang['cleanrs'] = "Klienci w bazie danych Systemu Ranks: %s"; -$lang['cleants'] = "Klienci znalezieni w bazie danych TeamSpeak: %s (of %s)"; -$lang['clean0001'] = "Usunieto niepotrzebny awatar %s (poprzedni unikalny identyfikator klienta:% s) pomyslnie."; -$lang['clean0002'] = "Błąd podczas usuwania niepotrzebnego awatara %s (Unikalny identyfikator klienta: %s)."; -$lang['clean0003'] = "Sprawdz, czy wykonano czyszczenie bazy danych. Wszystkie niepotrzebne rzeczy zostały usuniete."; -$lang['clean0004'] = "Sprawdz, czy wykonano usuwanie uzytkownikow. Nic sie nie zmieniło, poniewaz funkcja 'clean clients' jest wyłączona (webinterface - core) .."; -$lang['days'] = "%s dni"; -$lang['dbconerr'] = "Nie mozna połączyc sie z bazą danych: "; -$lang['delcldgrpif'] = "Błąd podczas usuwania rang dla grup serwerow: %s"; -$lang['delcldgrpsc'] = "Wiedza na temat grup serwerow dla %s Uzytkownik pomyslnie usuniety."; -$lang['delclientsif'] = "%s Klienci usunieci z bazy danych Ranksystem!"; -$lang['delclientssc'] = "%s Klienci pomyslnie usunieci z bazy danych Ranksystem!"; -$lang['errgrpid'] = "Twoje zmiany nie zostały zapisane w bazie danych z powodu błedow. Napraw problemy i zapisz zmiany ponownie.!"; -$lang['errgrplist'] = "Błąd podczas pobierania listy grup: "; -$lang['errlogin'] = "Nazwa uzytkownika i / lub hasło są nieprawidłowe! Sprobuj ponownie..."; -$lang['errlogin2'] = "Ochrona przed włamaniem: Sprobuj ponownie za %s sekund!"; -$lang['errlogin3'] = "Ochrona przed włamaniem: Zbyt wiele pomyłek. Zbanowany na 300 sekund!"; -$lang['error'] = "Błąd "; -$lang['errorts3'] = "Błąd TS3: "; -$lang['errperm'] = "Sprawdz uprawnienia do folderu '%s'!"; -$lang['errremgrp'] = "Błąd podczas usuwania uzytkownika z unikatowym identyfikatorem klienta %s z grupy serwerow z identyfikatorem-bazy danych-serwera %s!"; -$lang['errremdb'] = "Błąd podczas usuwania uzytkownika z unikatowym identyfikatorem klienta %s z bazy danych Ranksystem!"; -$lang['errselusr'] = "Wybierz co najmniej jednego uzytkownika!"; -$lang['errseltime'] = "Wprowadz czas online, aby dodac!"; -$lang['errukwn'] = "Wystąpił nieznany błąd!"; -$lang['errupcount'] = "Błąd podczas odnawiania podsumowania czasu online %s przez uzytkownika z unikalnym identyfikatorem klienta %s"; -$lang['highest'] = "osiągnieto najwyzszą range"; -$lang['install'] = "Instalacja"; -$lang['instdb'] = "Zainstaluj baze danych"; -$lang['instdbsuc'] = "Baza danych %s została pomyslnie utworzona."; -$lang['insterr1'] = "UWAGA: Probujesz zainstalowac system Ranksystem, ale istnieje juz baza danych o nazwie \"%s\".
Wymagana instalacja tej bazy danych zostanie usunieta!
Upewnij sie, ze tego chcesz. Jesli nie, wybierz inną nazwe bazy danych."; -$lang['insterr2'] = "PDO jest potrzebny, ale wydaje sie, ze nie jest zainstalowany. Zainstaluj PDO i sprobuj ponownie!"; -$lang['insterr3'] = "Funkcja PHP exec musi byc włączona, ale wydaje sie byc wyłączona. Włącz funkcje PHP exec i sprobuj ponownie!"; -$lang['insterr4'] = "Twoja wersja PHP (%s) jest starsza niz 5.5.0. Zaktualizuj PHP i sprobuj ponownie!"; -$lang['insterr5'] = "SimpleXML jest potrzebny, ale wydaje sie, ze nie jest dostepny. Zainstaluj simpleXML i sprobuj ponownie!"; -$lang['insterr6'] = "PHP cURL jest potrzebny, ale wydaje sie, ze nie jest dostepny. Zainstaluj PHP cURL i sprobuj ponownie!"; -$lang['insterr7'] = "Zip PHP jest potrzebny, ale wydaje sie, ze nie jest dostepny. Zainstaluj PHP Zip i sprobuj ponownie!"; -$lang['insterr8'] = "Rozszerzenie PHP COM (php_com_dotnet.dll) jest potrzebne, ale wydaje sie, ze nie jest dostepne. Zainstaluj PHP COM i sprobuj ponownie!"; -$lang['insterr9'] = "Rozszerzenie PHP PDO MySQL (php_pdo_mysql.so) jest potrzebne, ale wydaje sie, ze nie jest dostepne. Zainstaluj PHP PDO MySQL i sprobuj ponownie!"; -$lang['isntwicfg'] = "Nie mozna zapisac konfiguracji bazy danych! Prosze przypisac pełne prawa do 'other/dbconfig.php' (Linux: chmod 777; Windows: 'pełny dostep') i sprobowac ponownie ponownie."; -$lang['isntwicfg2'] = "Skonfiguruj interfejs WWW"; -$lang['isntwichm'] = "Zapisywanie uprawnien do folderu \"%s\" jest nieobecne. Przydziel pełne prawa (Linux: chmod 777; Windows: 'pełny dostep') i sprobuj ponownie uruchomic system Ranksystem."; -$lang['isntwiconf'] = "Otworz %s aby skonfigurowac system rang!"; -$lang['isntwidbhost'] = "DB Hostaddress:"; -$lang['isntwidbhostdesc'] = "Database server address
(IP or DNS)"; -$lang['isntwidbmsg'] = "Database error: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name of database"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "Password to access the database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "Typ bazy danych

Musisz zainstalowac potrzebny sterownik PDO.
Aby uzyskac wiecej informacji, zapoznaj sie z wymaganiami na stronie http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "Uzytkownik uzyskuje dostep do bazy danych"; -$lang['isntwidel'] = "Usun plik 'install.php' ze swojego serwera WWW"; -$lang['isntwiusr'] = "Uzytkownik pomyslnie utworzony interfejs WWW."; -$lang['isntwiusrcr'] = "Utworz interfejs uzytkownika sieci"; -$lang['isntwiusrdesc'] = "Wprowadz nazwe uzytkownika i hasło, aby uzyskac dostep do interfejsu internetowego. Dzieki webinterface mozesz skonfigurowac system rang."; -$lang['isntwiusrh'] = "Dostep - interfejs sieciowy"; -$lang['listacsg'] = "obecna grupa serwerow"; -$lang['listcldbid'] = "Identyfikator bazy danych klienta"; -$lang['listexcept'] = "Nie, przyczyną jest wyjątek"; -$lang['listgrps'] = "Obecna grupa od"; -$lang['listip'] = "Adres IP"; -$lang['listnick'] = "Nazwa klienta"; -$lang['listnxsg'] = "nastepna grupa serwerow"; -$lang['listnxup'] = "nastepna ranga"; -$lang['listrank'] = "ranga"; -$lang['listseen'] = "ostatnio widziany"; -$lang['listsuma'] = "suma. czas aktywny"; -$lang['listsumi'] = "suma. czas bezczynnosci"; -$lang['listsumo'] = "suma. czas online"; -$lang['listuid'] = "unikalny identyfikator klienta"; -$lang['login'] = "Zaloguj Sie"; -$lang['msg0001'] = "Uruchomiona wersja: %s"; -$lang['msg0002'] = "Prawidłowe polecenia to:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t otrzymują liste polecen\n[B]!version[/B]\t\t\t\t\t\t\t\t pobierz wersje systemu Ranksystem\n[B]!update[/B], [B]!checkupdate[/B]\t\t sprawdz dla nowej wersji i uruchamiania aktualizacji\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t rozpoczyna czyszczenie bazy uzytkownikow\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t\tget czas na kolejną range\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart bota Ranksystem\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t zatrzymaj bota Ranksystem"; -$lang['msg0003'] = "Nie kwalifikujesz sie do tego polecenia!"; -$lang['msg0004'] = "Klient %s (%s) ząda zamkniecia systemu."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Klient %s (%s) ządania ponownego uruchomienia."; -$lang['msg0008'] = "Wykonaj kontrole aktualizacji. Jesli aktualizacja jest dostepna, uruchomi sie natychmiast."; -$lang['msg0009'] = "Czyszczenie bazy danych uzytkownikow zostało uruchomione. Zajrzyj do dziennika systemow rang, aby uzyskac wiecej informacji."; -$lang['nocount'] = "Uzytkownik %s (unique Client-ID: %s; Client-database-ID %s) jest uzytkownikiem zapytan lub jest kilka razy online (liczy sie tylko pierwsze połączenie) -> to sie nie liczy!"; -$lang['noentry'] = "Nie znaleziono wpisow ..."; -$lang['pass'] = "Hasło"; -$lang['pass2'] = "Zmien hasło"; -$lang['pass3'] = "stare hasło"; -$lang['pass4'] = "nowe hasło"; -$lang['pass5'] = "Zapomniałes hasła?"; -$lang['queryname'] = "Pierwsza nazwa botow w uzyciu. Probuje uzyc drugiej nazwy bota..."; -$lang['repeat'] = "powtarzac"; -$lang['resettime'] = "Zresetuj czas online i czas bezczynnosci uzytkownika %s (unique Client-ID: %s; Client-database-ID %s) na zero, poniewaz uzytkownik został usuniety z wyjątku."; -$lang['sccrmcld'] = "Uzytkownik z unikalnym identyfikatorem klienta %s został usuniety z bazy danych systemu Ranksystem."; -$lang['sccupcount'] = "Dodano pomyslny czas online wynoszący %s sekund dla uzytkownikow o unikalnych identyfikatorach klienta (%s)"; -$lang['setontime'] = "Dodaj czas"; -$lang['setontimedesc'] = "Dodaj czas online do poprzednich wybranych klientow. Kazdy uzytkownik otrzyma dodatkowy czas na swoj stary czas online.

Wprowadzony czas online zostanie uwzgledniony w rankingu i powinien zacząc obowiązywac natychmiast."; -$lang['sgrpadd'] = "Przyznaj grupie serwerowej %s (ID: %s) do uzytkownika %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "Dotkniety uzytkownik: %s (unique Client-ID: %s; Client-database-ID %s) i grupa serwerow %s (ID: %s)."; -$lang['sgrprm'] = "Usunieto grupe serwerow %s (ID: %s) od uzytkownika %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'] = "Dodaj rangi na TS3"; -$lang['stag0002'] = "Dozwolone grupy"; -$lang['stag0003'] = "Zdefiniuj liste grup serwerow, ktore uzytkownik moze sam przypisac.

Grupy serwerow powinny zostac tutaj wprowadzone z oddzielonym przecinkiem grupowymID.

Przykład:
23,24,28"; -$lang['stag0004'] = "Limit Grup"; -$lang['stag0005'] = "Ogranicz liczbe grup serwerow, ktore mozna ustawic w tym samym czasie."; -$lang['stag0006'] = "Istnieje wiele unikalnych identyfikatorow online z Twoim adresem IP. Prosze %skliknij tutaj%s aby najpierw zweryfikowac."; -$lang['stag0007'] = "Poczekaj, az ostatnie zmiany zaczną obowiązywac, zanim zmienisz juz nastepne rzeczy..."; -$lang['stag0008'] = "Zmiany grup zostały pomyslnie zapisane. Moze minąc kilka sekund, zanim zadziała na serwerze ts3."; -$lang['stag0009'] = "Nie mozesz wybrac wiecej niz %s grup w tym samym czasie!"; -$lang['stag0010'] = "Wybierz co najmniej jedną nową grupe."; -$lang['stag0011'] = "Limit grup jednoczesnych: "; -$lang['stag0012'] = "Ustaw grupy"; -$lang['stag0013'] = "Dodatek ON/OFF"; -$lang['stag0014'] = "Włącz dodatek (włączony) lub wyłącz (wyłączony).

Po wyłączeniu dodatku mozliwa czesc na statystykach / stronie zostanie ukryta."; -$lang['stag0015'] = "Nie mozna znalezc na serwerze TeamSpeak. Prosze %wyczyscic%s aby sie zweryfikowac."; -$lang['stix0001'] = "Statystyki serwera"; -$lang['stix0002'] = "Wszystkich uzytkownikow"; -$lang['stix0003'] = "Pokaz szczegoły"; -$lang['stix0004'] = "Czas online wszystkich uzytkownikow"; -$lang['stix0005'] = "Zobacz najwyzszy czas"; -$lang['stix0006'] = "Wyswietl gore miesiąca"; -$lang['stix0007'] = "Zobacz początek tygodnia"; -$lang['stix0008'] = "Wykorzystanie serwera"; -$lang['stix0009'] = "W ciągu ostatnich 7 dni"; -$lang['stix0010'] = "W ciągu ostatnich 30 dni"; -$lang['stix0011'] = "W ciągu ostatnich 24 godzin"; -$lang['stix0012'] = "wybierz okres"; -$lang['stix0013'] = "Ostatni dzien"; -$lang['stix0014'] = "Zeszły tydzien"; -$lang['stix0015'] = "W zeszłym miesiącu"; -$lang['stix0016'] = "Aktywny / nieaktywny czas (wszystkich klientow)"; -$lang['stix0017'] = "Wersje (wszystkich klientow)"; -$lang['stix0018'] = "Narodowosci (wszystkich klientow)"; -$lang['stix0019'] = "Platformy (wszystkich klientow)"; -$lang['stix0020'] = "Aktualne statystyki"; -$lang['stix0023'] = "Status serwera"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Klienci (Online / Max)"; -$lang['stix0027'] = "Ilosc kanałow"; -$lang['stix0028'] = "Średni ping serwera"; -$lang['stix0029'] = "Łącznie otrzymane bajty"; -$lang['stix0030'] = "Wysłano wszystkie bajty"; -$lang['stix0031'] = "Czas pracy serwera"; -$lang['stix0032'] = "Przed offline:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Średnia utrata pakietow"; -$lang['stix0035'] = "Ogolne statystyki"; -$lang['stix0036'] = "Nazwa serwera"; -$lang['stix0037'] = "Adres serwera (adres hosta: port)"; -$lang['stix0038'] = "Hasło serwera"; -$lang['stix0039'] = "Nie (serwer jest publiczny)"; -$lang['stix0040'] = "Tak (serwer jest prywatny)"; -$lang['stix0041'] = "ID serwera"; -$lang['stix0042'] = "Platforma serwerowa"; -$lang['stix0043'] = "Wersja serwerowa"; -$lang['stix0044'] = "Data utworzenia serwera (dd/mm/yyyy)"; -$lang['stix0045'] = "Zgłos do listy serwerow"; -$lang['stix0046'] = "Aktywowany"; -$lang['stix0047'] = "Nie aktywowany"; -$lang['stix0048'] = "za mało danych..."; -$lang['stix0049'] = "Czas online dla wszystkich uzytkownikow / miesiecy"; -$lang['stix0050'] = "Czas online dla wszystkich uzytkownikow / tygodni"; -$lang['stix0051'] = "TeamSpeak sie nie udało, wiec nie ma daty utworzenia..."; -$lang['stix0052'] = "inni"; -$lang['stix0053'] = "Aktywny czas (w dniach)"; -$lang['stix0054'] = "Nieaktywny czas (w dniach)"; -$lang['stix0055'] = "Online w ciągu ostatnich 24 godzin"; -$lang['stix0056'] = "Ostatnie %s dni"; -$lang['stix0059'] = "Lista uzytkownikow"; -$lang['stix0060'] = "Uzytkownik"; -$lang['stix0061'] = "Wyswietl wszystkie wersje"; -$lang['stix0062'] = "Zobacz wszystkie narody"; -$lang['stix0063'] = "Wyswietl wszystkie platformy"; -$lang['stmy0001'] = "Moje statystyki"; -$lang['stmy0002'] = "Ranga"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unikalny identyfikator:"; -$lang['stmy0005'] = "Łączne połączenia z serwerem:"; -$lang['stmy0006'] = "Data rozpoczecia statystyk:"; -$lang['stmy0007'] = "Łączny czas online:"; -$lang['stmy0008'] = "Czas online ostatniego %s dni:"; -$lang['stmy0009'] = "Aktywny czas ostatnich %s dni:"; -$lang['stmy0010'] = "Osiągniecia ukonczone:"; -$lang['stmy0011'] = "Osiągniecie postepu czasu"; -$lang['stmy0012'] = "Czas: legendarny"; -$lang['stmy0013'] = "Poniewaz masz czas online w ciągu %s godzin."; -$lang['stmy0014'] = "Postep został zakonczony"; -$lang['stmy0015'] = "Czas: złoto"; -$lang['stmy0016'] = "% Ukonczony dla Legendary"; -$lang['stmy0017'] = "Czas: srebrny"; -$lang['stmy0018'] = "% Ukonczono dla złota"; -$lang['stmy0019'] = "Czas: Brązowy"; -$lang['stmy0020'] = "% Ukonczono dla Silver"; -$lang['stmy0021'] = "Czas: Unranked"; -$lang['stmy0022'] = "% Ukonczono dla Bronze"; -$lang['stmy0023'] = "Postep osiągniecia połączenia"; -$lang['stmy0024'] = "Łączy: Legendarny"; -$lang['stmy0025'] = "Poniewaz Połączyłes %s razy z serwerem."; -$lang['stmy0026'] = "Łączy: złoto"; -$lang['stmy0027'] = "Łączy: srebro"; -$lang['stmy0028'] = "Łączy: Brązowy"; -$lang['stmy0029'] = "Łączy: Unranked"; -$lang['stmy0030'] = "Przejdz do nastepnej grupy serwerow"; -$lang['stmy0031'] = "Całkowity czas aktywnosci"; -$lang['stna0001'] = "Narody"; -$lang['stna0002'] = "Statystyka"; -$lang['stna0003'] = "Kod"; -$lang['stna0004'] = "Liczyc"; -$lang['stna0005'] = "Wersje"; -$lang['stna0006'] = "Platformy"; -$lang['stna0007'] = "Odsetek"; -$lang['stnv0001'] = "Wiadomosci na temat serwera"; -$lang['stnv0002'] = "Zamkniete"; -$lang['stnv0003'] = "Odswiez informacje o kliencie"; -$lang['stnv0004'] = "Korzystaj tylko z tego odswiezania, gdy zmieniła sie informacja o TS3, na przykład nazwa uzytkownika TS3"; -$lang['stnv0005'] = "Działa tylko wtedy, gdy jestes podłączony do serwera TS3 w tym samym czasie"; -$lang['stnv0006'] = "Odswiezac"; -$lang['stnv0007'] = "Obszar bitwy - zawartosc strony"; -$lang['stnv0008'] = "Mozesz rzucic wyzwanie innym uzytkownikom w bitwie pomiedzy dwoma uzytkownikami lub dwoma zespołami."; -$lang['stnv0009'] = "Podczas bitwy aktywny bedzie czas online druzyn / uzytkownikow."; -$lang['stnv0010'] = "Po zakonczeniu bitwy wygrywa zespoł / uzytkownik z najwyzszym czasem online."; -$lang['stnv0011'] = "(Regularny czas walki wynosi 48 godzin)"; -$lang['stnv0012'] = "Zwycieski zespoł / uzytkownik otrzyma cene, ktorą uzytkownik moze wykorzystac, ilekroc uzytkownik tego chce."; -$lang['stnv0013'] = "Zostanie wyswietlony na karcie Moje statystyki tab."; -$lang['stnv0014'] = "(Moze to byc zwiekszenie czasu online (2x) przez 8 godzin, natychmiastowy czas online (4 godziny) itp."; -$lang['stnv0015'] = "Zwiekszenia te mozna wykorzystac na przykład do wziecia udziału w czołowych uzytkownikach tygodnia."; -$lang['stnv0016'] = "Niedostepne"; -$lang['stnv0017'] = "Nie jestes podłączony do serwera TS3, wiec nie mozesz wyswietlic zadnych danych."; -$lang['stnv0018'] = "Połącz sie z serwerem TS3, a nastepnie odswiez sesje, naciskając niebieski przycisk Odswiez w prawym gornym rogu."; -$lang['stnv0019'] = "Moje statystyki - Zawartosc strony"; -$lang['stnv0020'] = "Ta strona zawiera ogolne podsumowanie osobistych statystyk i aktywnosci na serwerze."; -$lang['stnv0021'] = "Informacje są zbierane od początku systemu Ranksystem, nie są one od początku serwera TeamSpeak."; -$lang['stnv0022'] = "Ta strona odbiera swoje wartosci z bazy danych. Wiec wartosci mogą byc nieco opoznione."; -$lang['stnv0023'] = "Ilosc czasu online dla wszystkich uzytkownikow tygodniowo i miesiecznie bedzie obliczana tylko co 15 minut. Wszystkie inne wartosci powinny byc prawie na zywo (maksymalnie opoznione o kilka sekund)."; -$lang['stnv0024'] = "Ranksystem - Statystyki"; -$lang['stnv0025'] = "Ogranicz pozycje"; -$lang['stnv0026'] = "Wszystko"; -$lang['stnv0027'] = "Informacje na tej stronie mogą byc nieaktualne! Wygląda na to, ze Ranksystem nie jest juz połączony z TeamSpeakiem."; -$lang['stnv0028'] = "(Nie jestes podłączony do TS3!)"; -$lang['stnv0029'] = "Lista Rankup"; -$lang['stnv0030'] = "Informacje o systemie Ranksystem"; -$lang['stnv0031'] = "O polu wyszukiwania mozna wyszukac wzorzec w nazwie klienta, unikatowy identyfikator klienta i identyfikator bazy danych klienta."; -$lang['stnv0032'] = "Mozesz takze uzyc opcji filtra widoku (patrz ponizej). Wprowadz filtr rowniez w polu wyszukiwania."; -$lang['stnv0033'] = "Mozliwe jest połączenie filtra i wzoru wyszukiwania. Najpierw wprowadz filtr (y), a nastepnie nie oznaczaj swojego wzorca wyszukiwania."; -$lang['stnv0034'] = "Mozliwe jest rowniez łączenie wielu filtrow. Wprowadz to kolejno w polu wyszukiwania."; -$lang['stnv0035'] = "Przykład:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Pokaz tylko klientow, ktorzy są wyłączeni (wyjątek dotyczący klienta, grupy serwerow lub kanału)."; -$lang['stnv0037'] = "Pokaz tylko klientow, ktorzy nie są wyjątkiem."; -$lang['stnv0038'] = "Pokaz tylko klientow, ktorzy są online."; -$lang['stnv0039'] = "Pokaz tylko klientow, ktorzy nie są online."; -$lang['stnv0040'] = "Pokaz tylko klientow, ktorzy są w zdefiniowanej grupie. Reprezentuj range / poziom.
Replace GROUPID z poządanym identyfikatorem grupy serwerow."; -$lang['stnv0041'] = "Pokaz tylko klientow, ktorzy zostali wybrani przez ostatnią.
Zastąpic OPERATOR z '<' lub '>' lub '=' lub '!='.
I wymien TIME ze znacznikiem czasu lub datą z formatem 'Y-m-d H-i' (example: 2016-06-18 20-25).
Pełny przykład: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Pokaz tylko klientow, ktorzy pochodzą z okreslonego kraju.
Replace TS3-COUNTRY-CODE z ządanym krajem.
Aby wyswietlic liste kodow Google dla ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "podłącz TS3"; -$lang['stri0001'] = "Informacje o systemie Ranksystem"; -$lang['stri0002'] = "Czym jest Ranksystem?"; -$lang['stri0003'] = "Bota TS3, ktory automatycznie przyznaje rangi (grupy serwerow) uzytkownikowi na serwerze TeamSpeak 3, aby uzyskac czas online lub aktywnosc online. Gromadzi rowniez informacje i statystyki dotyczące uzytkownika i wyswietla wyniki na tej stronie."; -$lang['stri0004'] = "Kto stworzył system rang?"; -$lang['stri0005'] = "Kiedy system rang został utworzony?"; -$lang['stri0006'] = "Pierwsze wydanie alfa: 05/10/2014."; -$lang['stri0007'] = "Pierwsze wydanie beta: 01/02/2015."; -$lang['stri0008'] = "Mozesz zobaczyc najnowszą wersje na Ranksystem Website."; -$lang['stri0009'] = "Jak powstał system Ranksystem?"; -$lang['stri0010'] = "System Ranks jest zakodowany w"; -$lang['stri0011'] = "Uzywa rowniez nastepujących bibliotek:"; -$lang['stri0012'] = "Specjalne podziekowania dla:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - dla rosyjskiego tłumaczenia"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK & jacopomozzy - do włoskiego tłumaczenia"; -$lang['stri0016'] = "DeStRoYzR & Jehad - do inicjalizacji tłumaczenia arabskiego"; -$lang['stri0017'] = "SakaLuX - do inicjalizacji tłumaczenia rumunskiego"; -$lang['stri0018'] = "0x0539 - do inicjalizacji tłumaczenia na holenderski"; -$lang['stri0019'] = "Quentinti - do tłumaczenia na francuski"; -$lang['stri0020'] = "Pasha - do tłumaczenia portugalskiego"; -$lang['stri0021'] = "Shad86 - za swietne wsparcie w GitHub & nasz publiczny serwer, dzielenie sie swoimi pomysłami, wstepne testowanie całego tego gowna i wiele wiecej"; -$lang['stri0022'] = "mightybrocolli - za dzielenie sie swoimi pomysłami i wstepnymi testami"; -$lang['stri0023'] = "Stabilny od: 18/04/2016."; -$lang['sttw0001'] = "Najlepsi uzytkownicy"; -$lang['sttw0002'] = "Tygodnia"; -$lang['sttw0003'] = "Z %s %s czas online"; -$lang['sttw0004'] = "Top 10 w porownaniu"; -$lang['sttw0005'] = "Godziny (Definiuje 100 %)"; -$lang['sttw0006'] = "%s godziny (%s%)"; -$lang['sttw0007'] = "Top 10 najlepszych statystyk"; -$lang['sttw0008'] = "Top 10 najlepszych w porownaniu do innych w czasie online"; -$lang['sttw0009'] = "Top 10 a inne w czasie aktywnym"; -$lang['sttw0010'] = "Top 10 a inne w nieaktywnym czasie"; -$lang['sttw0011'] = "Top 10 (w godzinach)"; -$lang['sttw0012'] = "Inny %s uzytkownicy (w godzinach)"; -$lang['sttw0013'] = "Z %s %s czasu aktywnego"; -$lang['sttw0014'] = "Godziny"; -$lang['sttw0015'] = "minuty"; -$lang['sttm0001'] = "Miesiąca"; -$lang['stta0001'] = "Cały czas"; -$lang['stve0001'] = "\nCzesc %s,\naby zweryfikowac cie za pomocą systemu Ranksystem, kliknij ponizszy link:\n[B]%s[/B]\n\nJesli łącze nie działa, mozesz rowniez wpisac token recznie:\n%s\n\nJesli nie poprosiłes o te wiadomosc, zignoruj ją. Gdy otrzymujesz to powtarzające sie razy, skontaktuj sie z administratorem."; -$lang['stve0002'] = "Wiadomosc z tokenem została wysłana do ciebie na serwerze TS3."; -$lang['stve0003'] = "Wprowadz token, ktory otrzymałes na serwerze TS3. Jesli nie otrzymałes wiadomosci, upewnij sie, ze wybrałes poprawny unikatowy identyfikator."; -$lang['stve0004'] = "Wprowadzony token nie pasuje! Sprobuj ponownie."; -$lang['stve0005'] = "Gratulacje! Pomyslnie zweryfikowałes! Mozesz teraz isc dalej."; -$lang['stve0006'] = "Wystąpił nieznany błąd. Sprobuj ponownie. Wielokrotnie kontaktuj sie z administratorem"; -$lang['stve0007'] = "Sprawdz na TeamSpeak"; -$lang['stve0008'] = "Wybierz tutaj swoj unikatowy identyfikator na serwerze TS3, aby zweryfikowac siebie."; -$lang['stve0009'] = " -- wybierz siebie -- "; -$lang['stve0010'] = "Otrzymasz token na serwerze TS3, ktory musisz wprowadzic tutaj:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "zweryfikowac"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Godzina(s)"; -$lang['time_day'] = "Dzien"; -$lang['upgrp0001'] = "Istnieje grupa serwerow z identyfikatorem %s skonfigurowanym w parametrze '%s' (interfejs WWW -> rdzen), ale ten identyfikator grupy serwerow nie istnieje na twoim serwerze TS3 (juz)! Prosze to poprawic lub mogą wystąpic błedy!"; -$lang['upgrp0002'] = "Pobierz nową ServerIcon"; -$lang['upgrp0003'] = "Błąd podczas wypisywania serwera."; -$lang['upgrp0004'] = "Błąd podczas pobierania serwera TS3 ServerIcon z serwera TS3: "; -$lang['upgrp0005'] = "Błąd podczas usuwania serwera."; -$lang['upgrp0006'] = "Zauwazyłem, ze ServerIcon został usuniety z serwera TS3, teraz został rowniez usuniety z systemu Ranksystem."; -$lang['upgrp0007'] = "Błąd podczas wypisywania ikony grupy serwerow z grupy %s z identyfikatorem %s."; -$lang['upgrp0008'] = "Błąd podczas pobierania ikony grupy serwerow z grupy %s z identyfikatorem %s: "; -$lang['upgrp0009'] = "Błąd podczas usuwania ikony grupy serwerow z grupy %s z identyfikatorem %s."; -$lang['upgrp0010'] = "Ikona severgroup %s o identyfikatorze %s została usunieta z serwera TS3, teraz została rowniez usunieta z systemu Ranksystem."; -$lang['upgrp0011'] = "Pobierz nową ServerGroupIcon dla grupy %s z identyfikatorem: %s"; -$lang['upinf'] = "Dostepna jest nowa wersja systemu Ranksystem; Poinformuj klientow na serwerze..."; -$lang['upinf2'] = "System Ranksystem został ostatnio zaktualizowany. (%s) Sprawdz %sChangelog%s aby uzyskac wiecej informacji o zmianach."; -$lang['upmsg'] = "\Hej, nowa wersja systemu [B]Ranksystem[/B] jest dostepna!\n\nnaktualna wersja: %s\n[B]nowa wersja: %s[/B]\n\nProsze zajrzec na naszą strone po wiecej Informacje [URL]http://ats3.pl/ Uruchamianie procesu aktualizacji w tle. [B]Sprawdz system ranksystem.log![/B]"; -$lang['upsucc'] = "Udana aktualizacja bazy danych."; -$lang['upuser'] = "Uzytkownik %s (unique Client-ID: %s; Client-database-ID %s) dostaje nową liczbe (sum. online time) of %s (thereof active %s)."; -$lang['upuserboost'] = "Uzytkownik %s (unique Client-ID: %s; Client-database-ID %s) dostaje nową liczbe (sum. online time) of %s (thereof active %s) [BOOST %sx]."; -$lang['upusrerr'] = "Unikatowy identyfikator klienta %s nie został osiągniety w TeamSpeak!"; -$lang['upusrinf'] = "Uzytkownik %s został poinformowany."; -$lang['user'] = "Nazwa Uzytkownika"; -$lang['verify0001'] = "Upewnij sie, ze naprawde jestes podłączony do serwera TS3!"; -$lang['verify0002'] = "Wprowadz, jesli jeszcze nie zostało zrobione, system rang %sverification-channel%s!"; -$lang['verify0003'] = "Jesli jestes naprawde podłączony do serwera TS3, skontaktuj sie z administratorem.
To musi stworzyc kanał weryfikacji na serwerze TeamSpeak. Nastepnie utworzony kanał musi zostac zdefiniowany w systemie rangowym, ktory moze wykonac tylko administrator.
Wiecej informacji admin znajdzie w interfejsie WWW (-> core) systemu rangowego.

Bez tego Aktywnosc nie jest mozliwa, aby zweryfikowac cie w Ranksystem w tej chwili! Przepraszam :("; -$lang['verify0004'] = "Nie znaleziono uzytkownika w kanale weryfikacyjnym..."; -$lang['wi'] = "Interfejs sieciowy"; -$lang['wiaction'] = "akcja"; -$lang['wiadmhide'] = "ukryj wyjątkow klientow"; -$lang['wiadmhidedesc'] = "Aby ukryc uzytkownika z wyjątkiem w nastepującym wyborze"; -$lang['wiadmuuid'] = "identyfikator administratora"; -$lang['wiadmuuiddesc'] = "Wprowadz tutaj swoj unikalny identyfikator klienta; jako administrator systemu Ranksystem.
Mozliwe są takze rozne identyfikatory klientow -> oddzielone przecinkami

Wymagane jest zresetowanie hasła interfejsu WWW.
Czy nie zdefiniowano unikalnego adresu klienta? , nie jest mozliwe zresetowanie hasła!

Tutaj zdefiniowane unikalne identyfikatory klienta są rowniez dozwolone do wysyłania polecen administracyjnych do Bot (! reboot,! shutdown,! update)."; -$lang['wiboost'] = "podniesc"; -$lang['wiboostdesc'] = "Daj uzytkownikowi na serwerze TeamSpeak grupe serwerow (musisz utworzyc recznie), ktorą mozesz zadeklarowac tutaj jako grupe doładowania. Zdefiniuj takze czynnik, ktory powinien zostac uzyty (na przykład 2x) i czas, jak długo nalezy oceniac podbicie.
Im wyzszy wspołczynnik, tym szybciej uzytkownik osiąga wyzszą range.
Czy minął czas , doładowanie grupy serwerow zostanie automatycznie usuniete z danego uzytkownika. Czas zaczyna biec, gdy tylko uzytkownik otrzyma grupe serwerow.

identyfikator grupy serwerow => czynnik => czas (w sekundach)

Kazdy wpis musi oddzielac sie od nastepnego za pomocą przecinka.

Przykład:
12=>2=>6000,13=>3=>2500,14=>5=>600

W tym przypadku uzytkownik w grupie serwerowej 12 uzyska wspołczynnik 2 nastepne 6000 sekund, uzytkownik w grupie serwerowej 13 uzyska wspołczynnik 3 na 2500 sekund, i tak dalej..."; -$lang['wibot1'] = "Bot Ranksystem powinien zostac zatrzymany. Sprawdz ponizszy dziennik, aby uzyskac wiecej informacji!"; -$lang['wibot2'] = "Bot Ranksystem powinien zostac uruchomiony. Sprawdz ponizszy dziennik, aby uzyskac wiecej informacji!"; -$lang['wibot3'] = "Bot Ranksystem powinien zostac uruchomiony ponownie. Sprawdz ponizszy dziennik, aby uzyskac wiecej informacji!"; -$lang['wibot4'] = "Start / Stop bota Ranksystem"; -$lang['wibot5'] = "Start bot"; -$lang['wibot6'] = "Stop bot"; -$lang['wibot7'] = "Restart bot"; -$lang['wibot8'] = "Dziennik systemu Ranksystem (wyciąg):"; -$lang['wibot9'] = "Wypełnij wszystkie obowiązkowe pola przed uruchomieniem bota Ranksystem!"; -$lang['wichdbid'] = "Resetowanie bazy danych bazy danych klienta"; -$lang['wichdbiddesc'] = "Zresetuj czas online uzytkownika, jesli zmienił sie identyfikator bazy danych klienta TeamSpeak.

Przykład:
Jesli klient zostanie usuniety z serwera TeamSpeak, otrzyma nowy identyfikator bazy danych klienta nastepnie połącz sie z serwerem."; -$lang['wiconferr'] = "Wystąpił błąd w konfiguracji systemu Ranksystem. Przejdz do interfejsu sieciowego i popraw ustawienia podstawowe. Szczegolnie sprawdz konfiguracje 'rank up'!"; -$lang['wichpw1'] = "Twoje stare hasło jest nieprawidłowe. Prosze sprobuj ponownie"; -$lang['wichpw2'] = "Nowe hasła sie psują. Prosze sprobuj ponownie."; -$lang['wichpw3'] = "Hasło interfejsu WWW zostało pomyslnie zmienione. Żądanie z adresu IP %s."; -$lang['wichpw4'] = "Zmien hasło"; -$lang['widaform'] = "Format daty"; -$lang['widaformdesc'] = "Wybierz format daty wyswietlania.

Przykład:
%a days, %h hours, %i mins, %s secs"; -$lang['widbcfgsuc'] = "Konfiguracje bazy danych zostały pomyslnie zapisane."; -$lang['widbcfgerr'] = "Błąd podczas zapisywania konfiguracji bazy danych! Połączenie nie powiodło sie lub błąd zapisu dla 'other/dbconfig.php'"; -$lang['widelcld'] = "usun klientow"; -$lang['widelcldgrp'] = "odnow grupy"; -$lang['widelcldgrpdesc'] = "odnawianie grup System Rankow zapamietuje podane grupy serwerow, wiec nie trzeba tego sprawdzac przy kazdym uruchomieniu pliku worker.php.

Za pomocą tej funkcji mozna raz usunąc wiedze o podanych grupach serwerow. W efekcie system rang probuje przekazac wszystkim klientom (znajdującym sie na serwerze TS3) grupe serwerow rzeczywistej rangi.
Dla kazdego klienta, ktory dostaje grupe lub pozostaje w grupie, System Rankow pamieta to jak opisano na początku.

Ta funkcja moze byc przydatna, gdy uzytkownik nie znajduje sie w grupie serwerow, powinien byc ustawiony na zdefiniowany czas online.

Uwaga: Uruchom to za chwile, w ciągu nastepnych kilku minut bez rankups stają sie wymagalne!!! System Ranksystem nie moze usunąc starej grupy, poniewaz nie moze zapamietac ;-)"; -$lang['widelclddesc'] = "Usun wczesniej wybranych klientow z bazy danych systemu Ranksystem.

Z tym usunieciem klienci na serwerze TeamSpeak pozostaną nietknieci."; -$lang['widelsg'] = "usun z grup serwerow"; -$lang['widelsgdesc'] = "Wybierz, czy klienci powinni zostac usunieci z ostatniej znanej grupy serwerow, gdy usuniesz klientow z bazy danych systemu Ranksystem.

Bedzie to dotyczyc tylko grup serwerow, ktore dotyczyły systemu Ranksystem."; -$lang['wideltime'] = "Deletiontime"; -$lang['wideltimedesc'] = "Wyczysc starych klientow z bazy danych Ranksystem.
Wprowadz czas w sekundach, ktorego klient nie widział, aby go usunąc.

0 - usuwa wszystkich klientow z Ranksystem

Userdatas na serwerze TeamSpeak są z tym nietkniete!"; -$lang['wiexcid'] = "wyjątek kanału"; -$lang['wiexciddesc'] = "Rozdzielona przecinkami lista identyfikatorow kanałow, ktore nie mają uczestniczyc w systemie rang.

Zachowaj uzytkownikow w jednym z wymienionych kanałow, czas bedzie całkowicie ignorowany. Nie ma czasu online, ale liczy sie czas bezczynnosci.

Gdy tryb jest 'aktywny czas', funkcja ta jest bezuzyteczna, poniewaz zostanie odjety czas bezczynnosci w pomieszczeniach AFK, a zatem i tak nie zostanie policzony.
Bądz uzytkownikiem w wykluczonym kanale, jest to odnotowane w tym okresie jako 'wykluczone z Ranksystem'. Uzytkownik nie pojawia sie juz na liscie 'stats / list_rankup.php'-, chyba ze wykluczeni klienci nie powinni byc tam wyswietlani (Strona statystyk - wyjątek klienta)."; -$lang['wiexgrp'] = "wyjątek servergroup"; -$lang['wiexgrpdesc'] = "Rozdzielona przecinkami lista identyfikatorow grup serwerow, ktore nie powinny byc brane pod uwage w Systemie Rang.
Uzytkownik w co najmniej jednym z tych identyfikatorow grup serwerow zostanie zignorowany w rankingu."; -$lang['wiexres'] = "tryb wyjątku"; -$lang['wiexres1'] = "domyslny (czas zliczania)"; -$lang['wiexres2'] = "przerwa"; -$lang['wiexres3'] = "Zresetuj czas"; -$lang['wiexresdesc'] = "Istnieją trzy tryby radzenia sobie z wyjątkami. W kazdym przypadku ranking (przypisanie grupy serwerow) jest wyłączony. Mozesz wybrac rozne opcje, w jaki sposob nalezy obchodzic spedzony czas od uzytkownika (ktory jest wyjątkiem).

1) domyslny (czas zliczania): Domyslnie system rol rowniez liczy czas online / aktywny uzytkownikow, ktore są wyłączone (klient / grupa serwerow). Z wyjątkiem tylko ranking (przypisanie grupy serwerow) jest wyłączony. Oznacza to, ze jesli uzytkownik nie jest juz wykluczony, byłby przypisany do grupy w zaleznosci od jego zebranego czasu (np. Poziom 3).

2) przerwa: OW tej opcji wydatki online i czas bezczynnosci zostaną zamrozone (przerwane) na rzeczywistą wartosc (przed wyłączeniem uzytkownika). Po wystąpieniu wyjątku (po usunieciu wyłączonej grupy serwerow lub usunieciu reguły wygasniecia) 'liczenie' bedzie kontynuowane.

3) Zresetuj czas: Dzieki tej funkcji liczony czas online i czas bezczynnosci zostaną zresetowane do zera w momencie, gdy uzytkownik nie bedzie juz wiecej wyłączony (z powodu usuniecia wyłączonej grupy serwerow lub usuniecia reguły wyjątku). Spedzony wyjątek bedzie nadal liczony do czasu zresetowania.


Wyjątek kanału nie ma tutaj znaczenia, poniewaz czas bedzie zawsze ignorowany (jak tryb przerwy)."; -$lang['wiexuid'] = "wyjątek klienta"; -$lang['wiexuiddesc'] = "Rozdzielona przecinkiem lista unikalnych identyfikatorow klientow, ktorych nie nalezy uwzgledniac w systemie Ranksystem.
Uzytkownik na tej liscie zostanie zignorowany w rankingu."; -$lang['wigrptime'] = "rangowa definicja"; -$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasie uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy) => identyfikator grupy serwerow

Wazne w tym przypadku jest 'czas online' lub 'czas aktywnosci' uzytkownika, w zaleznosci od ustawienia trybu.

Kazdy wpis musi oddzielac sie od nastepnego za pomocą przecinka.

Czas musi byc wprowadzony łącznie

Przykład:
60=>9,120=>10,180=>11

W tym przypadku uzytkownik dostaje po 60 sekundach grupe serwerow 9, po kolei po 60 sekundach grupa serwerow 10 itd."; -$lang['wihladm'] = "Lista Rankup (tryb administratora)"; -$lang['wihladm1'] = "Dodaj czas online do uzytkownika"; -$lang['wihlcfg'] = "Ustawienia podstawowe"; -$lang['wihldb'] = "Ustawienia bazy danych"; -$lang['wihlmsg'] = "Ustawienia wiadomosci"; -$lang['wihlsty'] = "Ustawienia strony statystyk"; -$lang['wihlts'] = "Ustawienia TeamSpeak"; -$lang['wihlvs'] = "Rozne ustawienia"; -$lang['wiignidle'] = "Ignoruj bezczynnosc"; -$lang['wiignidledesc'] = "Okresl okres, do ktorego ignorowany bedzie czas bezczynnosci uzytkownika.

Gdy klient nie robi niczego na serwerze (= bezczynnosc), ten czas jest zapisywany przez system rangowy. Dzieki tej funkcji czas bezczynnosci uzytkownika nie zostanie policzony do okreslonego limitu. Dopiero gdy okreslony limit zostanie przekroczony, liczy sie od tej daty dla Systemu Rankow jako czas bezczynnosci.

Ta funkcja odgrywa role tylko w połączeniu z trybem 'aktywny czas'.

Znaczenie funkcji to np. ocenic czas słuchania w rozmowach jako aktywnosc.

0 = wyłącz te funkcje

Przykład:
Ignoruj bezczynnosc = 600 (sekundy)
Klient ma czas bezczynnosci wynoszący 8 minut
consequence:
8 minut bezczynnosci są ignorowane i dlatego otrzymuje ten czas jako czas aktywny. Jesli czas bezczynnosci zwiekszył sie teraz do ponad 12 minut, wiec czas wynosi ponad 10 minut, w tym przypadku 2 minuty bedą liczone jako czas bezczynnosci."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Ściezka pliku dziennika systemu Ranksystem.

Przykład:
/var/logs/ranksystem/

Upewnij sie, ze webuser ma uprawnienia do zapisu do logpath."; -$lang['wilogout'] = "Wyloguj"; -$lang['wimsgmsg'] = "Wiadomosci"; -$lang['wimsgmsgdesc'] = "Zdefiniuj wiadomosc, ktora zostanie wysłana do uzytkownika, gdy podniesie kolejną wyzszą range.

Ta wiadomosc zostanie wysłana za posrednictwem wiadomosci prywatnej TS3. Wiec kazdy znany kod bb-code moze byc uzyty, co działa rowniez dla normalnej prywatnej wiadomosci.
http://ts-n.net/lexicon.php?showid=97#lexindex

Ponadto poprzednio spedzony czas mozna wyrazic za pomocą argumentow:
%1\$s - dzien
%2\$s - godzin
%3\$s - minut
%4\$s - sekund
%5\$s - nazwa osiągnietej grupy serwerow
%6$s - imie i nazwisko uzytkownika (odbiorcy)

Example:
Hey,\\nosiągnąłes wyzszą range, poniewaz juz sie połączyłes %1\$s dni, %2\$s godzin and %3\$s minut na naszym serwerze TS3.[B]Tak trzymaj![/B] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Zdefiniuj wiadomosc, ktora bedzie wyswietlana na stronie / stats / page jako aktualnosci serwera.

Mozesz uzyc domyslnych funkcji html, aby zmodyfikowac układ

Przykład:
<b> - dla odwaznych
<u> - dla podkreslenia
<i> - dla kursywy
<br> - do zawijania wyrazow (nowa linia)"; -$lang['wimsgusr'] = "Uzupełnij powiadomienie"; -$lang['wimsgusrdesc'] = "Poinformuj uzytkownika o prywatnej wiadomosci tekstowej o jego randze."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Baza danych"; -$lang['winav3'] = "Rdzen"; -$lang['winav4'] = "Inny"; -$lang['winav5'] = "Wiadomosc"; -$lang['winav6'] = "Strona statystyk"; -$lang['winav7'] = "ACP"; -$lang['winav8'] = "Start / Stop bot"; -$lang['winav9'] = "Dostepna aktualizacja!"; -$lang['winav10'] = "Uzyj interfejsu sieciowego tylko przez %s HTTPS%s Szyfrowanie ma kluczowe znaczenie dla zapewnienia prywatnosci i bezpieczenstwa.%sAby moc korzystac z HTTPS, twoj serwer internetowy musi obsługiwac połączenie SSL"; -$lang['winav11'] = "Wprowadz unikalny identyfikator klienta administratora systemu Ranksystem (Other -> admin ID). Jest to bardzo wazne w przypadku, gdy straciłes dane logowania do interfejsu WWW (aby je zresetowac)."; -$lang['winav12'] = "Dodatki"; -$lang['winxinfo'] = "Polecenie \"!nextup\""; -$lang['winxinfodesc'] = "Umozliwia uzytkownikowi na serwerze TS3 napisanie polecenia \"!nextup\" do bota Ranksystem (zapytania) jako prywatna wiadomosc tekstowa.

Jako odpowiedz uzytkownik otrzyma zdefiniowaną wiadomosc tekstową z potrzebnym czasem na nastepną rango.

disabled - Funkcja jest wyłączona. Komenda '!nextup' zostaną zignorowane.
dozwolone - tylko nastepna ranga - Zwraca potrzebny czas nastepnej grupie.
dozwolone - wszystkie kolejne stopnie - Oddaje potrzebny czas dla wszystkich wyzszych rang."; -$lang['winxmode1'] = "disabled"; -$lang['winxmode2'] = "dozwolone - tylko nastepna ranga"; -$lang['winxmode3'] = "dozwolone - wszystkie kolejne stopnie"; -$lang['winxmsg1'] = "Wiadomosc"; -$lang['winxmsgdesc1'] = "Zdefiniuj komunikat, ktory uzytkownik otrzyma jako odpowiedz na polecenie '\nextup\'.

Argumenty:
%1$s - dni do nastepnego awansu
%2$s - godzin do nastepnego awansu
%3$s - minuty do nastepnego awansu
%4$s - sekundy do nastepnego awansu
%5$s - nazwa nastepnej grupy serwerow
%6$s - Nick uzytkownika (recipient)

Przykład:
Twoja nastepna ranga bedzie w %1$s dni, %2$s godziny i %3$s minutach i %4$s sekundach. Nastepna grupa serwerow, do ktorej dojdziesz, to [B]%5$s[/B]."; -$lang['winxmsg2'] = "Wiadomosc (najwyzsza)"; -$lang['winxmsgdesc2'] = "Zdefiniuj wiadomosc, ktorą uzytkownik otrzyma jako odpowiedz na polecenie '\nextup\', gdy uzytkownik osiągnie najwyzszą pozycje.

Argumenty:
%1$s - dni do nastepnego awansowania
%2$s - godzin do nastepnego awansowania
%3$s - minuty do nastepnego awansowania
%4$s - sekundy do nastepnego awansowania
%5$s - nazwa nastepnej grupy serwerow
%6$s - nazwa uzytkownika (odbiorca)

Przykład:
Osiągnąłes najwyzszą pozycje w rankingu %1$s dni, %2$s godziny i %3$s minuty i %4$s sekundy."; -$lang['winxmsg3'] = "Wiadomosc (z wyjątkiem)"; -$lang['winxmsgdesc3'] = "Zdefiniuj komunikat, ktory uzytkownik otrzyma jako odpowiedz na polecenie '\nextup\', gdy uzytkownik zostanie wyłączony z systemu Ranksystem.

Argumenty:
%1$s - dni do nastepnego awansowania
%2$s - godzin do nastepnego awansowania
%3$s - minuty do nastepnego awansowania
%4$s - ekundy do nastepnego awansowania
%5$s - nnazwa nastepnej grupy serwerow
%6$s - nazwa uzytkownika (odbiorca)

Przykład:
Jestes wyłączony z Systemu Rankow. Jesli chcesz ustalic pozycje, skontaktuj sie z administratorem na serwerze TS3."; -$lang['wirtpw1'] = "Przepraszam, Bro, zapomniałes wczesniej wpisac swoj identyfikator administratora w interfejsie internetowym. Nie ma sposobu na zresetowanie hasła!"; -$lang['wirtpw2'] = "Nie znaleziono identyfikatora administratora na serwerze TS3. Musisz byc online z unikalnym identyfikatorem klienta, ktory jest zapisywany jako identyfikator administratora."; -$lang['wirtpw3'] = "Twoj adres IP nie jest zgodny z adresem IP administratora na serwerze TS3. Upewnij sie, ze masz ten sam adres IP online na serwerze TS3, a takze na tej stronie (wymagany jest rowniez ten sam protokoł IPv4 / IPv6)."; -$lang['wirtpw4'] = "\nHasło dla interfejsu WWW zostało pomyslnie zresetowane.\nNazwa Uzytkownika: %s\nHasło: [B]%s[/B]\n\nZaloguj Sie %shere%s"; -$lang['wirtpw5'] = "Do administratora wysłano prywatną wiadomosc tekstową TeamSpeak 3 z nowym hasłem. Kliknij %s tutaj %s aby sie zalogowac."; -$lang['wirtpw6'] = "Hasło interfejsu WWW zostało pomyslnie zresetowane. Żądanie z adresu IP %s."; -$lang['wirtpw7'] = "Zresetuj hasło"; -$lang['wirtpw8'] = "Tutaj mozesz zresetowac hasło do interfejsu internetowego."; -$lang['wirtpw9'] = "Nastepujące rzeczy są wymagane, aby zresetowac hasło:"; -$lang['wirtpw10'] = "Musisz byc online na serwerze TeamSpeak3."; -$lang['wirtpw11'] = "Musisz byc w trybie online z unikalnym identyfikatorem klienta, ktory jest zapisywany jako identyfikator administratora."; -$lang['wirtpw12'] = "Musisz byc w trybie online z tym samym adresem IP na serwerze TeamSpeak3, jak tutaj na tej stronie (rowniez ten sam protokoł IPv4 / IPv6)."; -$lang['wiselcld'] = "wybierz klientow"; -$lang['wiselclddesc'] = "Wybierz klientow według ich ostatniej znanej nazwy uzytkownika, unikalnego identyfikatora klienta lub identyfikatora bazy danych klienta.
Mozliwe są rowniez wielokrotne selekcje.

W wiekszych bazach danych wybor ten moze znacznie spowolnic. Zaleca sie skopiowanie i wklejenie pełnego pseudonimu zamiast wpisywania go."; -$lang['wishcolas'] = "rzeczywista grupa serwerow"; -$lang['wishcolasdesc'] = "Pokaz kolumne 'aktualna grupa serwerow' w list_rankup.php"; -$lang['wishcolat'] = "czas aktywny"; -$lang['wishcolatdesc'] = "Pokaz sume kolumn. 'czas aktywny' in list_rankup.php"; -$lang['wishcolcld'] = "Nazwa klienta"; -$lang['wishcolclddesc'] = "Pokaz kolumne 'Nazwa klienta' in list_rankup.php"; -$lang['wishcoldbid'] = "identyfikator bazy danych"; -$lang['wishcoldbiddesc'] = "Pokaz kolumne 'Identyfikator bazy danych klienta' in list_rankup.php"; -$lang['wishcolgs'] = "aktualna grupa od"; -$lang['wishcolgsdesc'] = "Pokaz kolumne 'aktualna grupa od' w list_rankup.php"; -$lang['wishcolit'] = "czas bezczynnosci"; -$lang['wishcolitdesc'] = "Pokaz kolumne 'suma czasu bezczynnosci' w list_rankup.php"; -$lang['wishcolls'] = "ostatnio widziany"; -$lang['wishcollsdesc'] = "Pokaz kolumne 'ostatnio widziano' w list_rankup.php"; -$lang['wishcolnx'] = "nastepna ranga"; -$lang['wishcolnxdesc'] = "Pokaz kolumne 'nastepna ranga w gore' w list_rankup.php"; -$lang['wishcolot'] = "czas online"; -$lang['wishcolotdesc'] = "Pokaz sume kolumn. 'czas online' w list_rankup.php"; -$lang['wishcolrg'] = "ranga"; -$lang['wishcolrgdesc'] = "Pokaz kolumne 'ranga' w list_rankup.php"; -$lang['wishcolsg'] = "nastepna grupa serwerow"; -$lang['wishcolsgdesc'] = "Pokaz kolumne 'nastepna grupa serwerow' in list_rankup.php"; -$lang['wishcoluuid'] = "Identyfikator klienta"; -$lang['wishcoluuiddesc'] = "Pokaz kolumne 'unikalny identyfikator klienta' w list_rankup.php"; -$lang['wishexcld'] = "z wyjątkiem klienta"; -$lang['wishexclddesc'] = "Pokaz klientow w list_rankup.php,
ktore są wyłączone, a zatem nie uczestniczą w Systemie Rang."; -$lang['wishexgrp'] = "Z wyjątkiem grup"; -$lang['wishexgrpdesc'] = "Pokaz klientow w list_rankup.php, ktore znajdują sie na liscie 'wyjątek klienta 'i nie nalezy go uwzgledniac w systemie rang."; -$lang['wishhicld'] = "Klienci na najwyzszym poziomie"; -$lang['wishhiclddesc'] = "Pokaz klientow w list_rankup.php, ktory osiągnął najwyzszy poziom w Ranksystem."; -$lang['wishnav'] = "pokaz nawigacje witryny"; -$lang['wishnavdesc'] = "Pokaz nawigacje po stronie 'stats/' strona.

Jesli ta opcja zostanie wyłączona na stronie statystyk, nawigacja po stronie bedzie ukryta.
Nastepnie mozesz wziąc kazdą witryne, np. 'stats/list_rankup.php' i umiesc to jako ramke w swojej istniejącej stronie internetowej lub tablicy ogłoszen."; -$lang['wisupidle'] = "Tryb"; -$lang['wisupidledesc'] = "Istnieją dwa tryby, poniewaz czas moze byc policzony, a nastepnie mozna ubiegac sie o podwyzszenie rangi.

1) czas online: bierze sie pod uwage czysty czas online uzytkownika (see column 'sum. online time' in the 'stats/list_rankup.php')

2) czas aktywny: zostanie odjety od czasu online uzytkownika, nieaktywny czas (bezczynnosc) (patrz kolumna 'suma aktywnego czasu' w 'stats / list_rankup.php').

Zmiana trybu z juz działającą bazą danych nie jest zalecana, ale moze działac."; -$lang['wisvconf'] = "zapisac"; -$lang['wisvsuc'] = "Zmiany zostały pomyslnie zapisane!"; -$lang['wisvres'] = "Musisz ponownie uruchomic system Ranksystem, zanim zmiany zaczną obowiązywac! %s"; -$lang['witime'] = "Strefa czasowa"; -$lang['witimedesc'] = "Wybierz strefe czasową, w ktorej serwer jest hostowany."; -$lang['wits3avat'] = "Avatar Delay"; -$lang['wits3avatdesc'] = "Zdefiniuj czas w sekundach, aby opoznic pobieranie zmienionych awatarow TS3.

Ta funkcja jest szczegolnie przydatna dla botow (muzycznych), ktore zmieniają okresowo swoj avatar."; -$lang['wits3dch'] = "Kanał domyslny"; -$lang['wits3dchdesc'] = "Identyfikator kanału, z ktorym bot powinien sie połączyc.

Bot połączy sie z tym kanałem po połączeniu z serwerem TeamSpeak."; -$lang['wits3host'] = "TS3 Hostaddress"; -$lang['wits3hostdesc'] = "Adres serwera TeamSpeak 3
(IP oder DNS)"; -$lang['wits3sm'] = "Wolny tryb"; -$lang['wits3smdesc'] = "Dzieki Slowmode mozesz zmniejszyc \"spam\" polecen zapytania do serwera TeamSpeak. Zapobiega to zakazy w przypadku powodzi.
Komendy TeamSpeak Query są opoznione przy uzyciu tej funkcji.

!!! ALSO IT REDUCE THE CPU USAGE !!!

Aktywacja nie jest zalecana, jesli nie jest wymagana. Opoznienie zwieksza czas działania bota, co czyni go nieprecyzyjnym.

Ostatnia kolumna pokazuje wymagany czas na jeden czas (w sekundach):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

W związku z tym wartosci (czasy) z opoznieniem ultra stają sie niedokładne o około 65 sekund! W zaleznosci od tego, co zrobic i / lub rozmiar serwera jeszcze wiekszy!"; -$lang['wits3qnm'] = "Nazwa bota"; -$lang['wits3qnm2'] = "Druga nazwa bota"; -$lang['wits3qnm2desc'] = "Nazwa awaryjnego bota, jesli pierwsza jest juz uzywana."; -$lang['wits3qnmdesc'] = "Nazwa, z tym połączeniem zapytania, zostanie ustanowiona.
Mozesz nazwac to za darmo."; -$lang['wits3querpw'] = "Hasło zapytania TS3"; -$lang['wits3querpwdesc'] = "Hasło do zapytania TeamSpeak 3
Hasło dla uzytkownika zapytania."; -$lang['wits3querusr'] = "Uzytkownik zapytan TS3"; -$lang['wits3querusrdesc'] = "Nazwa uzytkownika zapytania TeamSpeak 3
Domyslna wartosc to serveradmin
Oczywiscie, mozesz takze utworzyc dodatkowe konto serwerowe tylko dla systemu Ranksystem.
Potrzebne uprawnienia, ktore mozna znalezc:
http://ts-n.net/ranksystem.php"; -$lang['wits3query'] = "TS-Query-Port"; -$lang['wits3querydesc'] = "Port zapytania TeamSpeak 3
Domyslna wartosc to 10011 (TCP)
Jesli nie jest domyslny, powinienes go znalezc w swoim 'ts3server.ini'."; -$lang['wits3voice'] = "Port głosowy TS3"; -$lang['wits3voicedesc'] = "Port głosowy TeamSpeak 3
Domyslna wartosc to 9987 (UDP)
To jest port, ktorego uzywasz rowniez do łączenia sie z klientem TS3."; -$lang['wiupcheck'] = "Zaktualizuj informacje"; -$lang['wiupcheckdesc'] = "Jesli opcja Aktualizuj informacje jest włączona, wymieniony uzytkownik otrzymuje powiadomienie z prywatną wiadomoscią tekstową, gdy aktualizacja bedzie dostepna."; -$lang['wiuptime'] = "Interval"; -$lang['wiuptimedesc'] = "Podaj tutaj, ile sekund mineło, zanim system rangowy powinien sprawdzic dostepne aktualizacje.

Uwaga, dla kazdego sprawdzenia wymieniony uzytkownik otrzymuje powiadomienie. Jesli zaden z wymienionych uzytkownikow nie jest online, System Ranks bedzie probował notyfikowac z nastepnym interwałem."; -$lang['wiupuid'] = "Odbiorca"; -$lang['wiupuiddesc'] = "Przecinek oddzielna lista unikalnych identyfikatorow klientow, ktore powinny byc informowane w TeamSpeak za posrednictwem wiadomosci prywatnej o dostepnych aktualizacjach."; -$lang['wiverify'] = "Weryfikacja - kanał"; -$lang['wiverifydesc'] = "Wprowadz tutaj identyfikator kanału kanału weryfikacyjnego.

Ten kanał nalezy skonfigurowac manual na twoim serwerze TeamSpeak. Nazwe, uprawnienia i inne własciwosci mozna zdefiniowac według własnego wyboru; Tylko uzytkownik powinien miec mozliwosc dołączenia do tego kanału!

Weryfikacja jest przeprowadzana przez samego uzytkownika na stronie statystyk (/stats/). Jest to konieczne tylko wtedy, gdy odwiedzający strone nie moze automatycznie zostac dopasowany / powiązany z uzytkownikiem TeamSpeak.

Aby zweryfikowac, ze uzytkownik TeamSpeak musi znajdowac sie w kanale weryfikacyjnym. Tam moze otrzymac token, za pomocą ktorego sprawdza sie na stronie statystyk."; -$lang['wivlang'] = "Jezyk"; -$lang['wivlangdesc'] = "Wybierz domyslny jezyk dla systemu Ranksystem.

Jezyk jest rowniez dostepny na stronach internetowych dla uzytkownikow i bedzie przechowywany dla sesji."; + added to the Ranksystem now."; +$lang['brute'] = "Wykryto wiele niepoprawnych logowan na WWW Zablokowane logowanie przez 300 sekund! Ostatni dostep z IP% s."; +$lang['changedbid'] = "Uzytkownik %s (unique Client-ID: %s) ma nowy identyfikator klienta TeamSpeak (%s). Zaktualizuj stary identyfikator bazy danych klienta (%s). i zresetuj zebrany czasy!"; +$lang['crawl'] = "Skanowanie dla podłączonych uzytkownikow i zliczanie aktywnosci..."; +$lang['clean'] = "Skanowanie w celu usuniecia klientow..."; +$lang['cleanc'] = "Wyczyszczono klientow"; +$lang['cleancdesc'] = "Dzieki tej funkcji stare klienty z Systemu Rankow zostają usuniete. W tym celu system Ranksystem został zsynchronizowany z bazą danych TeamSpeak. Klienci, ktorych nie ma w TeamSpeak, zostaną usunieci z Systemu Rank.

Ta funkcja jest aktywna tylko wtedy, gdy 'Tryb Wolny' jest nieaktywny!

Do automatycznej regulacji TeamSpeak baza danych moze byc uzywana."; +$lang['cleandel'] = "%s klientow zostało usunietych z bazy danych systemu Ranksystem, poniewaz nie istniały juz w bazie danych TeamSpeak."; +$lang['cleanno'] = "Nie było niczego do usuniecia..."; +$lang['cleanp'] = "czysty okres"; +$lang['cleanpdesc'] = "Ustaw czas, ktory musi upłynąc, zanim nastepny 'czysty' klient bedzie działał.

Ustaw czas w sekundach.

Zalecany jest raz dziennie, poniewaz czyszczenie klienta wymaga duzo czasu w przypadku wiekszych baz danych."; +$lang['cleanrs'] = "Klienci w bazie danych Systemu Ranks: %s"; +$lang['cleants'] = "Klienci znalezieni w bazie danych TeamSpeak: %s (of %s)"; +$lang['clean0001'] = "Usunieto niepotrzebny awatar %s (poprzedni unikalny identyfikator klienta:% s) pomyslnie."; +$lang['clean0002'] = "Błąd podczas usuwania niepotrzebnego awatara %s (Unikalny identyfikator klienta: %s)."; +$lang['clean0003'] = "Sprawdz, czy wykonano czyszczenie bazy danych. Wszystkie niepotrzebne rzeczy zostały usuniete."; +$lang['clean0004'] = "Sprawdz, czy wykonano usuwanie uzytkownikow. Nic sie nie zmieniło, poniewaz funkcja 'clean clients' jest wyłączona (webinterface - core) .."; +$lang['day'] = "%s dzień"; +$lang['days'] = "%s dni"; +$lang['dbconerr'] = "Nie mozna połączyc sie z bazą danych: "; +$lang['delcldgrpif'] = "Błąd podczas usuwania rang dla grup serwerow: %s"; +$lang['delcldgrpsc'] = "Wiedza na temat grup serwerow dla %s Uzytkownik pomyslnie usuniety."; +$lang['delclientsif'] = "%s Klienci usunieci z bazy danych Ranksystem!"; +$lang['delclientssc'] = "%s Klienci pomyslnie usunieci z bazy danych Ranksystem!"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$lang['errgrpid'] = "Twoje zmiany nie zostały zapisane w bazie danych z powodu błedow. Napraw problemy i zapisz zmiany ponownie.!"; +$lang['errgrplist'] = "Błąd podczas pobierania listy grup: "; +$lang['errlogin'] = "Nazwa uzytkownika i / lub hasło są nieprawidłowe! Sprobuj ponownie..."; +$lang['errlogin2'] = "Ochrona przed włamaniem: Sprobuj ponownie za %s sekund!"; +$lang['errlogin3'] = "Ochrona przed włamaniem: Zbyt wiele pomyłek. Zbanowany na 300 sekund!"; +$lang['error'] = "Błąd "; +$lang['errorts3'] = "Błąd TS3: "; +$lang['errperm'] = "Sprawdz uprawnienia do folderu '%s'!"; +$lang['errremgrp'] = "Błąd podczas usuwania uzytkownika z unikatowym identyfikatorem klienta %s z grupy serwerow z identyfikatorem-bazy danych-serwera %s!"; +$lang['errremdb'] = "Błąd podczas usuwania uzytkownika z unikatowym identyfikatorem klienta %s z bazy danych Ranksystem!"; +$lang['errselusr'] = "Wybierz co najmniej jednego uzytkownika!"; +$lang['errseltime'] = "Wprowadz czas online, aby dodac!"; +$lang['errukwn'] = "Wystąpił nieznany błąd!"; +$lang['errupcount'] = "Błąd podczas odnawiania podsumowania czasu online %s przez uzytkownika z unikalnym identyfikatorem klienta %s"; +$lang['highest'] = "osiągnieto najwyzszą range"; +$lang['install'] = "Instalacja"; +$lang['instdb'] = "Zainstaluj baze danych"; +$lang['instdbsuc'] = "Baza danych %s została pomyslnie utworzona."; +$lang['insterr1'] = "UWAGA: Probujesz zainstalowac system Ranksystem, ale istnieje juz baza danych o nazwie \"%s\".
Wymagana instalacja tej bazy danych zostanie usunieta!
Upewnij sie, ze tego chcesz. Jesli nie, wybierz inną nazwe bazy danych."; +$lang['insterr2'] = "PDO jest potrzebny, ale wydaje sie, ze nie jest zainstalowany. Zainstaluj PDO i sprobuj ponownie!"; +$lang['insterr3'] = "Funkcja PHP exec musi byc włączona, ale wydaje sie byc wyłączona. Włącz funkcje PHP exec i sprobuj ponownie!"; +$lang['insterr4'] = "Twoja wersja PHP (%s) jest starsza niz 5.5.0. Zaktualizuj PHP i sprobuj ponownie!"; +$lang['insterr5'] = "SimpleXML jest potrzebny, ale wydaje sie, ze nie jest dostepny. Zainstaluj simpleXML i sprobuj ponownie!"; +$lang['insterr6'] = "PHP cURL jest potrzebny, ale wydaje sie, ze nie jest dostepny. Zainstaluj PHP cURL i sprobuj ponownie!"; +$lang['insterr7'] = "Zip PHP jest potrzebny, ale wydaje sie, ze nie jest dostepny. Zainstaluj PHP Zip i sprobuj ponownie!"; +$lang['insterr8'] = "Rozszerzenie PHP COM (php_com_dotnet.dll) jest potrzebne, ale wydaje sie, ze nie jest dostepne. Zainstaluj PHP COM i sprobuj ponownie!"; +$lang['insterr9'] = "Rozszerzenie PHP PDO MySQL (php_pdo_mysql.so) jest potrzebne, ale wydaje sie, ze nie jest dostepne. Zainstaluj PHP PDO MySQL i sprobuj ponownie!"; +$lang['isntwicfg'] = "Nie mozna zapisac konfiguracji bazy danych! Prosze przypisac pełne prawa do 'other/dbconfig.php' (Linux: chmod 777; Windows: 'pełny dostep') i sprobowac ponownie ponownie."; +$lang['isntwicfg2'] = "Skonfiguruj interfejs WWW"; +$lang['isntwichm'] = "Zapisywanie uprawnien do folderu \"%s\" jest nieobecne. Przydziel pełne prawa (Linux: chmod 777; Windows: 'pełny dostep') i sprobuj ponownie uruchomic system Ranksystem."; +$lang['isntwiconf'] = "Otworz %s aby skonfigurowac system rang!"; +$lang['isntwidbhost'] = "DB Hostaddress:"; +$lang['isntwidbhostdesc'] = "Database server address
(IP or DNS)"; +$lang['isntwidbmsg'] = "Database error: "; +$lang['isntwidbname'] = "DB Name:"; +$lang['isntwidbnamedesc'] = "Name of database"; +$lang['isntwidbpass'] = "DB Password:"; +$lang['isntwidbpassdesc'] = "Password to access the database"; +$lang['isntwidbtype'] = "DB Type:"; +$lang['isntwidbtypedesc'] = "Typ bazy danych

Musisz zainstalowac potrzebny sterownik PDO.
Aby uzyskac wiecej informacji, zapoznaj sie z wymaganiami na stronie http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc'] = "Uzytkownik uzyskuje dostep do bazy danych"; +$lang['isntwidel'] = "Usun plik 'install.php' ze swojego serwera WWW"; +$lang['isntwiusr'] = "Uzytkownik pomyslnie utworzony interfejs WWW."; +$lang['isntwiusrcr'] = "Utworz interfejs uzytkownika sieci"; +$lang['isntwiusrdesc'] = "Wprowadz nazwe uzytkownika i hasło, aby uzyskac dostep do interfejsu internetowego. Dzieki webinterface mozesz skonfigurowac system rang."; +$lang['isntwiusrh'] = "Dostep - interfejs sieciowy"; +$lang['listacsg'] = "obecna grupa serwerow"; +$lang['listcldbid'] = "Identyfikator bazy danych klienta"; +$lang['listexcept'] = "Nie, przyczyną jest wyjątek"; +$lang['listgrps'] = "Obecna grupa od"; +$lang['listnick'] = "Nazwa klienta"; +$lang['listnxsg'] = "nastepna grupa serwerow"; +$lang['listnxup'] = "nastepna ranga"; +$lang['listrank'] = "ranga"; +$lang['listseen'] = "ostatnio widziany"; +$lang['listsuma'] = "suma. czas aktywny"; +$lang['listsumi'] = "suma. czas bezczynnosci"; +$lang['listsumo'] = "suma. czas online"; +$lang['listuid'] = "unikalny identyfikator klienta"; +$lang['login'] = "Zaloguj Sie"; +$lang['msg0001'] = "Uruchomiona wersja: %s"; +$lang['msg0002'] = "Prawidłowe polecenia to:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t otrzymują liste polecen\n[B]!version[/B]\t\t\t\t\t\t\t\t pobierz wersje systemu Ranksystem\n[B]!update[/B], [B]!checkupdate[/B]\t\t sprawdz dla nowej wersji i uruchamiania aktualizacji\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t rozpoczyna czyszczenie bazy uzytkownikow\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t\t\t\tget czas na kolejną range\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart bota Ranksystem\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t zatrzymaj bota Ranksystem"; +$lang['msg0003'] = "Nie kwalifikujesz sie do tego polecenia!"; +$lang['msg0004'] = "Klient %s (%s) ząda zamkniecia systemu."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Klient %s (%s) ządania ponownego uruchomienia."; +$lang['msg0008'] = "Wykonaj kontrole aktualizacji. Jesli aktualizacja jest dostepna, uruchomi sie natychmiast."; +$lang['msg0009'] = "Czyszczenie bazy danych uzytkownikow zostało uruchomione. Zajrzyj do dziennika systemow rang, aby uzyskac wiecej informacji."; +$lang['nocount'] = "Uzytkownik %s (unique Client-ID: %s; Client-database-ID %s) jest uzytkownikiem zapytan lub jest kilka razy online (liczy sie tylko pierwsze połączenie) -> to sie nie liczy!"; +$lang['noentry'] = "Nie znaleziono wpisow ..."; +$lang['pass'] = "Hasło"; +$lang['pass2'] = "Zmien hasło"; +$lang['pass3'] = "stare hasło"; +$lang['pass4'] = "nowe hasło"; +$lang['pass5'] = "Zapomniałes hasła?"; +$lang['queryname'] = "Pierwsza nazwa botow w uzyciu. Probuje uzyc drugiej nazwy bota..."; +$lang['repeat'] = "powtarzac"; +$lang['resettime'] = "Zresetuj czas online i czas bezczynnosci uzytkownika %s (unique Client-ID: %s; Client-database-ID %s) na zero, poniewaz uzytkownik został usuniety z wyjątku."; +$lang['sccrmcld'] = "Uzytkownik z unikalnym identyfikatorem klienta %s został usuniety z bazy danych systemu Ranksystem."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "Dodaj czas"; +$lang['setontimedesc'] = "Dodaj czas online do poprzednich wybranych klientow. Kazdy uzytkownik otrzyma dodatkowy czas na swoj stary czas online.

Wprowadzony czas online zostanie uwzgledniony w rankingu i powinien zacząc obowiązywac natychmiast."; +$lang['sgrpadd'] = "Przyznaj grupie serwerowej %s (ID: %s) do uzytkownika %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "Dotkniety uzytkownik: %s (unique Client-ID: %s; Client-database-ID %s) i grupa serwerow %s (ID: %s)."; +$lang['sgrprm'] = "Usunieto grupe serwerow %s (ID: %s) od uzytkownika %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'] = "Dodaj rangi na TS3"; +$lang['stag0002'] = "Dozwolone grupy"; +$lang['stag0003'] = "Zdefiniuj liste grup serwerow, ktore uzytkownik moze sam przypisac.

Grupy serwerow powinny zostac tutaj wprowadzone z oddzielonym przecinkiem grupowymID.

Przykład:
23,24,28"; +$lang['stag0004'] = "Limit Grup"; +$lang['stag0005'] = "Ogranicz liczbe grup serwerow, ktore mozna ustawic w tym samym czasie."; +$lang['stag0006'] = "Istnieje wiele unikalnych identyfikatorow online z Twoim adresem IP. Prosze %skliknij tutaj%s aby najpierw zweryfikowac."; +$lang['stag0007'] = "Poczekaj, az ostatnie zmiany zaczną obowiązywac, zanim zmienisz juz nastepne rzeczy..."; +$lang['stag0008'] = "Zmiany grup zostały pomyslnie zapisane. Moze minąc kilka sekund, zanim zadziała na serwerze ts3."; +$lang['stag0009'] = "Nie mozesz wybrac wiecej niz %s grup w tym samym czasie!"; +$lang['stag0010'] = "Wybierz co najmniej jedną nową grupe."; +$lang['stag0011'] = "Limit grup jednoczesnych: "; +$lang['stag0012'] = "Ustaw grupy"; +$lang['stag0013'] = "Dodatek ON/OFF"; +$lang['stag0014'] = "Włącz dodatek (włączony) lub wyłącz (wyłączony).

Po wyłączeniu dodatku mozliwa czesc na statystykach / stronie zostanie ukryta."; +$lang['stag0015'] = "Nie mozna znalezc na serwerze TeamSpeak. Prosze %wyczyscic%s aby sie zweryfikowac."; +$lang['stix0001'] = "Statystyki serwera"; +$lang['stix0002'] = "Wszystkich uzytkownikow"; +$lang['stix0003'] = "Pokaz szczegoły"; +$lang['stix0004'] = "Czas online wszystkich uzytkownikow"; +$lang['stix0005'] = "Zobacz najwyzszy czas"; +$lang['stix0006'] = "Wyswietl gore miesiąca"; +$lang['stix0007'] = "Zobacz początek tygodnia"; +$lang['stix0008'] = "Wykorzystanie serwera"; +$lang['stix0009'] = "W ciągu ostatnich 7 dni"; +$lang['stix0010'] = "W ciągu ostatnich 30 dni"; +$lang['stix0011'] = "W ciągu ostatnich 24 godzin"; +$lang['stix0012'] = "wybierz okres"; +$lang['stix0013'] = "Ostatni dzien"; +$lang['stix0014'] = "Zeszły tydzien"; +$lang['stix0015'] = "W zeszłym miesiącu"; +$lang['stix0016'] = "Aktywny / nieaktywny czas (wszystkich klientow)"; +$lang['stix0017'] = "Wersje (wszystkich klientow)"; +$lang['stix0018'] = "Narodowosci (wszystkich klientow)"; +$lang['stix0019'] = "Platformy (wszystkich klientow)"; +$lang['stix0020'] = "Aktualne statystyki"; +$lang['stix0023'] = "Status serwera"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Klienci (Online / Max)"; +$lang['stix0027'] = "Ilosc kanałow"; +$lang['stix0028'] = "Średni ping serwera"; +$lang['stix0029'] = "Łącznie otrzymane bajty"; +$lang['stix0030'] = "Wysłano wszystkie bajty"; +$lang['stix0031'] = "Czas pracy serwera"; +$lang['stix0032'] = "Przed offline:"; +$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; +$lang['stix0034'] = "Średnia utrata pakietow"; +$lang['stix0035'] = "Ogolne statystyki"; +$lang['stix0036'] = "Nazwa serwera"; +$lang['stix0037'] = "Adres serwera (adres hosta: port)"; +$lang['stix0038'] = "Hasło serwera"; +$lang['stix0039'] = "Nie (serwer jest publiczny)"; +$lang['stix0040'] = "Tak (serwer jest prywatny)"; +$lang['stix0041'] = "ID serwera"; +$lang['stix0042'] = "Platforma serwerowa"; +$lang['stix0043'] = "Wersja serwerowa"; +$lang['stix0044'] = "Data utworzenia serwera (dd/mm/yyyy)"; +$lang['stix0045'] = "Zgłos do listy serwerow"; +$lang['stix0046'] = "Aktywowany"; +$lang['stix0047'] = "Nie aktywowany"; +$lang['stix0048'] = "za mało danych..."; +$lang['stix0049'] = "Czas online dla wszystkich uzytkownikow / miesiecy"; +$lang['stix0050'] = "Czas online dla wszystkich uzytkownikow / tygodni"; +$lang['stix0051'] = "TeamSpeak sie nie udało, wiec nie ma daty utworzenia..."; +$lang['stix0052'] = "inni"; +$lang['stix0053'] = "Aktywny czas (w dniach)"; +$lang['stix0054'] = "Nieaktywny czas (w dniach)"; +$lang['stix0055'] = "Online w ciągu ostatnich 24 godzin"; +$lang['stix0056'] = "Ostatnie %s dni"; +$lang['stix0059'] = "Lista uzytkownikow"; +$lang['stix0060'] = "Uzytkownik"; +$lang['stix0061'] = "Wyswietl wszystkie wersje"; +$lang['stix0062'] = "Zobacz wszystkie narody"; +$lang['stix0063'] = "Wyswietl wszystkie platformy"; +$lang['stmy0001'] = "Moje statystyki"; +$lang['stmy0002'] = "Ranga"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unikalny identyfikator:"; +$lang['stmy0005'] = "Łączne połączenia z serwerem:"; +$lang['stmy0006'] = "Data rozpoczecia statystyk:"; +$lang['stmy0007'] = "Łączny czas online:"; +$lang['stmy0008'] = "Czas online ostatniego %s dni:"; +$lang['stmy0009'] = "Aktywny czas ostatnich %s dni:"; +$lang['stmy0010'] = "Osiągniecia ukonczone:"; +$lang['stmy0011'] = "Osiągniecie postepu czasu"; +$lang['stmy0012'] = "Czas: legendarny"; +$lang['stmy0013'] = "Poniewaz masz czas online w ciągu %s godzin."; +$lang['stmy0014'] = "Postep został zakonczony"; +$lang['stmy0015'] = "Czas: złoto"; +$lang['stmy0016'] = "% Ukonczony dla Legendary"; +$lang['stmy0017'] = "Czas: srebrny"; +$lang['stmy0018'] = "% Ukonczono dla złota"; +$lang['stmy0019'] = "Czas: Brązowy"; +$lang['stmy0020'] = "% Ukonczono dla Silver"; +$lang['stmy0021'] = "Czas: Unranked"; +$lang['stmy0022'] = "% Ukonczono dla Bronze"; +$lang['stmy0023'] = "Postep osiągniecia połączenia"; +$lang['stmy0024'] = "Łączy: Legendarny"; +$lang['stmy0025'] = "Poniewaz Połączyłes %s razy z serwerem."; +$lang['stmy0026'] = "Łączy: złoto"; +$lang['stmy0027'] = "Łączy: srebro"; +$lang['stmy0028'] = "Łączy: Brązowy"; +$lang['stmy0029'] = "Łączy: Unranked"; +$lang['stmy0030'] = "Przejdz do nastepnej grupy serwerow"; +$lang['stmy0031'] = "Całkowity czas aktywnosci"; +$lang['stna0001'] = "Narody"; +$lang['stna0002'] = "Statystyka"; +$lang['stna0003'] = "Kod"; +$lang['stna0004'] = "Liczyc"; +$lang['stna0005'] = "Wersje"; +$lang['stna0006'] = "Platformy"; +$lang['stna0007'] = "Odsetek"; +$lang['stnv0001'] = "Wiadomosci na temat serwera"; +$lang['stnv0002'] = "Zamkniete"; +$lang['stnv0003'] = "Odswiez informacje o kliencie"; +$lang['stnv0004'] = "Korzystaj tylko z tego odswiezania, gdy zmieniła sie informacja o TS3, na przykład nazwa uzytkownika TS3"; +$lang['stnv0005'] = "Działa tylko wtedy, gdy jestes podłączony do serwera TS3 w tym samym czasie"; +$lang['stnv0006'] = "Odswiezac"; +$lang['stnv0007'] = "Obszar bitwy - zawartosc strony"; +$lang['stnv0008'] = "Mozesz rzucic wyzwanie innym uzytkownikom w bitwie pomiedzy dwoma uzytkownikami lub dwoma zespołami."; +$lang['stnv0009'] = "Podczas bitwy aktywny bedzie czas online druzyn / uzytkownikow."; +$lang['stnv0010'] = "Po zakonczeniu bitwy wygrywa zespoł / uzytkownik z najwyzszym czasem online."; +$lang['stnv0011'] = "(Regularny czas walki wynosi 48 godzin)"; +$lang['stnv0012'] = "Zwycieski zespoł / uzytkownik otrzyma cene, ktorą uzytkownik moze wykorzystac, ilekroc uzytkownik tego chce."; +$lang['stnv0013'] = "Zostanie wyswietlony na karcie Moje statystyki tab."; +$lang['stnv0014'] = "(Moze to byc zwiekszenie czasu online (2x) przez 8 godzin, natychmiastowy czas online (4 godziny) itp."; +$lang['stnv0015'] = "Zwiekszenia te mozna wykorzystac na przykład do wziecia udziału w czołowych uzytkownikach tygodnia."; +$lang['stnv0016'] = "Niedostepne"; +$lang['stnv0017'] = "Nie jestes podłączony do serwera TS3, wiec nie mozesz wyswietlic zadnych danych."; +$lang['stnv0018'] = "Połącz sie z serwerem TS3, a nastepnie odswiez sesje, naciskając niebieski przycisk Odswiez w prawym gornym rogu."; +$lang['stnv0019'] = "Moje statystyki - Zawartosc strony"; +$lang['stnv0020'] = "Ta strona zawiera ogolne podsumowanie osobistych statystyk i aktywnosci na serwerze."; +$lang['stnv0021'] = "Informacje są zbierane od początku systemu Ranksystem, nie są one od początku serwera TeamSpeak."; +$lang['stnv0022'] = "Ta strona odbiera swoje wartosci z bazy danych. Wiec wartosci mogą byc nieco opoznione."; +$lang['stnv0023'] = "Ilosc czasu online dla wszystkich uzytkownikow tygodniowo i miesiecznie bedzie obliczana tylko co 15 minut. Wszystkie inne wartosci powinny byc prawie na zywo (maksymalnie opoznione o kilka sekund)."; +$lang['stnv0024'] = "Ranksystem - Statystyki"; +$lang['stnv0025'] = "Ogranicz pozycje"; +$lang['stnv0026'] = "Wszystko"; +$lang['stnv0027'] = "Informacje na tej stronie mogą byc nieaktualne! Wygląda na to, ze Ranksystem nie jest juz połączony z TeamSpeakiem."; +$lang['stnv0028'] = "(Nie jestes podłączony do TS3!)"; +$lang['stnv0029'] = "Lista Rankup"; +$lang['stnv0030'] = "Informacje o systemie Ranksystem"; +$lang['stnv0031'] = "O polu wyszukiwania mozna wyszukac wzorzec w nazwie klienta, unikatowy identyfikator klienta i identyfikator bazy danych klienta."; +$lang['stnv0032'] = "Mozesz takze uzyc opcji filtra widoku (patrz ponizej). Wprowadz filtr rowniez w polu wyszukiwania."; +$lang['stnv0033'] = "Mozliwe jest połączenie filtra i wzoru wyszukiwania. Najpierw wprowadz filtr (y), a nastepnie nie oznaczaj swojego wzorca wyszukiwania."; +$lang['stnv0034'] = "Mozliwe jest rowniez łączenie wielu filtrow. Wprowadz to kolejno w polu wyszukiwania."; +$lang['stnv0035'] = "Przykład:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Pokaz tylko klientow, ktorzy są wyłączeni (wyjątek dotyczący klienta, grupy serwerow lub kanału)."; +$lang['stnv0037'] = "Pokaz tylko klientow, ktorzy nie są wyjątkiem."; +$lang['stnv0038'] = "Pokaz tylko klientow, ktorzy są online."; +$lang['stnv0039'] = "Pokaz tylko klientow, ktorzy nie są online."; +$lang['stnv0040'] = "Pokaz tylko klientow, ktorzy są w zdefiniowanej grupie. Reprezentuj range / poziom.
Replace GROUPID z poządanym identyfikatorem grupy serwerow."; +$lang['stnv0041'] = "Pokaz tylko klientow, ktorzy zostali wybrani przez ostatnią.
Zastąpic OPERATOR z '<' lub '>' lub '=' lub '!='.
I wymien TIME ze znacznikiem czasu lub datą z formatem 'Y-m-d H-i' (example: 2016-06-18 20-25).
Pełny przykład: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = "Pokaz tylko klientow, ktorzy pochodzą z okreslonego kraju.
Replace TS3-COUNTRY-CODE z ządanym krajem.
Aby wyswietlic liste kodow Google dla ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "podłącz TS3"; +$lang['stri0001'] = "Informacje o systemie Ranksystem"; +$lang['stri0002'] = "Czym jest Ranksystem?"; +$lang['stri0003'] = "Bota TS3, ktory automatycznie przyznaje rangi (grupy serwerow) uzytkownikowi na serwerze TeamSpeak 3, aby uzyskac czas online lub aktywnosc online. Gromadzi rowniez informacje i statystyki dotyczące uzytkownika i wyswietla wyniki na tej stronie."; +$lang['stri0004'] = "Kto stworzył system rang?"; +$lang['stri0005'] = "Kiedy system rang został utworzony?"; +$lang['stri0006'] = "Pierwsze wydanie alfa: 05/10/2014."; +$lang['stri0007'] = "Pierwsze wydanie beta: 01/02/2015."; +$lang['stri0008'] = "Mozesz zobaczyc najnowszą wersje na Ranksystem Website."; +$lang['stri0009'] = "Jak powstał system Ranksystem?"; +$lang['stri0010'] = "System Ranks jest zakodowany w"; +$lang['stri0011'] = "Uzywa rowniez nastepujących bibliotek:"; +$lang['stri0012'] = "Specjalne podziekowania dla:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - dla rosyjskiego tłumaczenia"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK & jacopomozzy - do włoskiego tłumaczenia"; +$lang['stri0016'] = "DeStRoYzR & Jehad - do inicjalizacji tłumaczenia arabskiego"; +$lang['stri0017'] = "SakaLuX - do inicjalizacji tłumaczenia rumunskiego"; +$lang['stri0018'] = "0x0539 - do inicjalizacji tłumaczenia na holenderski"; +$lang['stri0019'] = "Quentinti - do tłumaczenia na francuski"; +$lang['stri0020'] = "Pasha - do tłumaczenia portugalskiego"; +$lang['stri0021'] = "Shad86 - za swietne wsparcie w GitHub & nasz publiczny serwer, dzielenie sie swoimi pomysłami, wstepne testowanie całego tego gowna i wiele wiecej"; +$lang['stri0022'] = "mightyBroccoli - za dzielenie sie swoimi pomysłami i wstepnymi testami"; +$lang['stri0023'] = "Stabilny od: 18/04/2016."; +$lang['stri0024'] = "KeviN - for czech translation"; +$lang['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Najlepsi uzytkownicy"; +$lang['sttw0002'] = "Tygodnia"; +$lang['sttw0003'] = "Z %s %s czas online"; +$lang['sttw0004'] = "Top 10 w porownaniu"; +$lang['sttw0005'] = "Godziny (Definiuje 100 %)"; +$lang['sttw0006'] = "%s godziny (%s%)"; +$lang['sttw0007'] = "Top 10 najlepszych statystyk"; +$lang['sttw0008'] = "Top 10 najlepszych w porownaniu do innych w czasie online"; +$lang['sttw0009'] = "Top 10 a inne w czasie aktywnym"; +$lang['sttw0010'] = "Top 10 a inne w nieaktywnym czasie"; +$lang['sttw0011'] = "Top 10 (w godzinach)"; +$lang['sttw0012'] = "Inny %s uzytkownicy (w godzinach)"; +$lang['sttw0013'] = "Z %s %s czasu aktywnego"; +$lang['sttw0014'] = "Godziny"; +$lang['sttw0015'] = "minuty"; +$lang['sttm0001'] = "Miesiąca"; +$lang['stta0001'] = "Cały czas"; +$lang['stve0001'] = "\nCzesc %s,\naby zweryfikowac cie za pomocą systemu Ranksystem, kliknij ponizszy link:\n[B]%s[/B]\n\nJesli łącze nie działa, mozesz rowniez wpisac token recznie:\n%s\n\nJesli nie poprosiłes o te wiadomosc, zignoruj ją. Gdy otrzymujesz to powtarzające sie razy, skontaktuj sie z administratorem."; +$lang['stve0002'] = "Wiadomosc z tokenem została wysłana do ciebie na serwerze TS3."; +$lang['stve0003'] = "Wprowadz token, ktory otrzymałes na serwerze TS3. Jesli nie otrzymałes wiadomosci, upewnij sie, ze wybrałes poprawny unikatowy identyfikator."; +$lang['stve0004'] = "Wprowadzony token nie pasuje! Sprobuj ponownie."; +$lang['stve0005'] = "Gratulacje! Pomyslnie zweryfikowałes! Mozesz teraz isc dalej."; +$lang['stve0006'] = "Wystąpił nieznany błąd. Sprobuj ponownie. Wielokrotnie kontaktuj sie z administratorem"; +$lang['stve0007'] = "Sprawdz na TeamSpeak"; +$lang['stve0008'] = "Wybierz tutaj swoj unikatowy identyfikator na serwerze TS3, aby zweryfikowac siebie."; +$lang['stve0009'] = " -- wybierz siebie -- "; +$lang['stve0010'] = "Otrzymasz token na serwerze TS3, ktory musisz wprowadzic tutaj:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "zweryfikowac"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Godzina(s)"; +$lang['time_day'] = "Dzien"; +$lang['upgrp0001'] = "Istnieje grupa serwerow z identyfikatorem %s skonfigurowanym w parametrze '%s' (interfejs WWW -> rdzen), ale ten identyfikator grupy serwerow nie istnieje na twoim serwerze TS3 (juz)! Prosze to poprawic lub mogą wystąpic błedy!"; +$lang['upgrp0002'] = "Pobierz nową ServerIcon"; +$lang['upgrp0003'] = "Błąd podczas wypisywania serwera."; +$lang['upgrp0004'] = "Błąd podczas pobierania serwera TS3 ServerIcon z serwera TS3: "; +$lang['upgrp0005'] = "Błąd podczas usuwania serwera."; +$lang['upgrp0006'] = "Zauwazyłem, ze ServerIcon został usuniety z serwera TS3, teraz został rowniez usuniety z systemu Ranksystem."; +$lang['upgrp0007'] = "Błąd podczas wypisywania ikony grupy serwerow z grupy %s z identyfikatorem %s."; +$lang['upgrp0008'] = "Błąd podczas pobierania ikony grupy serwerow z grupy %s z identyfikatorem %s: "; +$lang['upgrp0009'] = "Błąd podczas usuwania ikony grupy serwerow z grupy %s z identyfikatorem %s."; +$lang['upgrp0010'] = "Ikona severgroup %s o identyfikatorze %s została usunieta z serwera TS3, teraz została rowniez usunieta z systemu Ranksystem."; +$lang['upgrp0011'] = "Pobierz nową ServerGroupIcon dla grupy %s z identyfikatorem: %s"; +$lang['upinf'] = "Dostepna jest nowa wersja systemu Ranksystem; Poinformuj klientow na serwerze..."; +$lang['upinf2'] = "System Ranksystem został ostatnio zaktualizowany. (%s) Sprawdz %sChangelog%s aby uzyskac wiecej informacji o zmianach."; +$lang['upmsg'] = "\Hej, nowa wersja systemu [B]Ranksystem[/B] jest dostepna!\n\nnaktualna wersja: %s\n[B]nowa wersja: %s[/B]\n\nProsze zajrzec na naszą strone po wiecej Informacje [URL]http://ats3.pl/ Uruchamianie procesu aktualizacji w tle. [B]Sprawdz system 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'] = "Udana aktualizacja bazy danych."; +$lang['upuser'] = "Uzytkownik %s (unique Client-ID: %s; Client-database-ID %s) dostaje nową liczbe (sum. online time) of %s (thereof active %s)."; +$lang['upuserboost'] = "Uzytkownik %s (unique Client-ID: %s; Client-database-ID %s) dostaje nową liczbe (sum. online time) of %s (thereof active %s) [BOOST %sx]."; +$lang['upusrerr'] = "Unikatowy identyfikator klienta %s nie został osiągniety w TeamSpeak!"; +$lang['upusrinf'] = "Uzytkownik %s został poinformowany."; +$lang['user'] = "Nazwa Uzytkownika"; +$lang['verify0001'] = "Upewnij sie, ze naprawde jestes podłączony do serwera TS3!"; +$lang['verify0002'] = "Wprowadz, jesli jeszcze nie zostało zrobione, system rang %sverification-channel%s!"; +$lang['verify0003'] = "Jesli jestes naprawde podłączony do serwera TS3, skontaktuj sie z administratorem.
To musi stworzyc kanał weryfikacji na serwerze TeamSpeak. Nastepnie utworzony kanał musi zostac zdefiniowany w systemie rangowym, ktory moze wykonac tylko administrator.
Wiecej informacji admin znajdzie w interfejsie WWW (-> core) systemu rangowego.

Bez tego Aktywnosc nie jest mozliwa, aby zweryfikowac cie w Ranksystem w tej chwili! Przepraszam :("; +$lang['verify0004'] = "Nie znaleziono uzytkownika w kanale weryfikacyjnym..."; +$lang['wi'] = "Interfejs sieciowy"; +$lang['wiaction'] = "akcja"; +$lang['wiadmhide'] = "ukryj wyjątkow klientow"; +$lang['wiadmhidedesc'] = "Aby ukryc uzytkownika z wyjątkiem w nastepującym wyborze"; +$lang['wiadmuuid'] = "identyfikator administratora"; +$lang['wiadmuuiddesc'] = "Wprowadz tutaj swoj unikalny identyfikator klienta; jako administrator systemu Ranksystem.
Mozliwe są takze rozne identyfikatory klientow -> oddzielone przecinkami

Wymagane jest zresetowanie hasła interfejsu WWW.
Czy nie zdefiniowano unikalnego adresu klienta? , nie jest mozliwe zresetowanie hasła!

Tutaj zdefiniowane unikalne identyfikatory klienta są rowniez dozwolone do wysyłania polecen administracyjnych do Bot (! reboot,! shutdown,! update)."; +$lang['wiboost'] = "podniesc"; +$lang['wiboostdesc'] = "Daj uzytkownikowi na serwerze TeamSpeak grupe serwerow (musisz utworzyc recznie), ktorą mozesz zadeklarowac tutaj jako grupe doładowania. Zdefiniuj takze czynnik, ktory powinien zostac uzyty (na przykład 2x) i czas, jak długo nalezy oceniac podbicie.
Im wyzszy wspołczynnik, tym szybciej uzytkownik osiąga wyzszą range.
Czy minął czas , doładowanie grupy serwerow zostanie automatycznie usuniete z danego uzytkownika. Czas zaczyna biec, gdy tylko uzytkownik otrzyma grupe serwerow.

identyfikator grupy serwerow => czynnik => czas (w sekundach)

Kazdy wpis musi oddzielac sie od nastepnego za pomocą przecinka.

Przykład:
12=>2=>6000,13=>3=>2500,14=>5=>600

W tym przypadku uzytkownik w grupie serwerowej 12 uzyska wspołczynnik 2 nastepne 6000 sekund, uzytkownik w grupie serwerowej 13 uzyska wspołczynnik 3 na 2500 sekund, i tak dalej..."; +$lang['wibot1'] = "Bot Ranksystem powinien zostac zatrzymany. Sprawdz ponizszy dziennik, aby uzyskac wiecej informacji!"; +$lang['wibot2'] = "Bot Ranksystem powinien zostac uruchomiony. Sprawdz ponizszy dziennik, aby uzyskac wiecej informacji!"; +$lang['wibot3'] = "Bot Ranksystem powinien zostac uruchomiony ponownie. Sprawdz ponizszy dziennik, aby uzyskac wiecej informacji!"; +$lang['wibot4'] = "Start / Stop bota Ranksystem"; +$lang['wibot5'] = "Start bot"; +$lang['wibot6'] = "Stop bot"; +$lang['wibot7'] = "Restart bot"; +$lang['wibot8'] = "Dziennik systemu Ranksystem (wyciąg):"; +$lang['wibot9'] = "Wypełnij wszystkie obowiązkowe pola przed uruchomieniem bota Ranksystem!"; +$lang['wichdbid'] = "Resetowanie bazy danych bazy danych klienta"; +$lang['wichdbiddesc'] = "Zresetuj czas online uzytkownika, jesli zmienił sie identyfikator bazy danych klienta TeamSpeak.

Przykład:
Jesli klient zostanie usuniety z serwera TeamSpeak, otrzyma nowy identyfikator bazy danych klienta nastepnie połącz sie z serwerem."; +$lang['wiconferr'] = "Wystąpił błąd w konfiguracji systemu Ranksystem. Przejdz do interfejsu sieciowego i popraw ustawienia podstawowe. Szczegolnie sprawdz konfiguracje 'rank up'!"; +$lang['wichpw1'] = "Twoje stare hasło jest nieprawidłowe. Prosze sprobuj ponownie"; +$lang['wichpw2'] = "Nowe hasła sie psują. Prosze sprobuj ponownie."; +$lang['wichpw3'] = "Hasło interfejsu WWW zostało pomyslnie zmienione. Żądanie z adresu IP %s."; +$lang['wichpw4'] = "Zmien hasło"; +$lang['widaform'] = "Format daty"; +$lang['widaformdesc'] = "Wybierz format daty wyswietlania.

Przykład:
%a days, %h hours, %i mins, %s secs"; +$lang['widbcfgsuc'] = "Konfiguracje bazy danych zostały pomyslnie zapisane."; +$lang['widbcfgerr'] = "Błąd podczas zapisywania konfiguracji bazy danych! Połączenie nie powiodło sie lub błąd zapisu dla 'other/dbconfig.php'"; +$lang['widelcld'] = "usun klientow"; +$lang['widelcldgrp'] = "odnow grupy"; +$lang['widelcldgrpdesc'] = "odnawianie grup System Rankow zapamietuje podane grupy serwerow, wiec nie trzeba tego sprawdzac przy kazdym uruchomieniu pliku worker.php.

Za pomocą tej funkcji mozna raz usunąc wiedze o podanych grupach serwerow. W efekcie system rang probuje przekazac wszystkim klientom (znajdującym sie na serwerze TS3) grupe serwerow rzeczywistej rangi.
Dla kazdego klienta, ktory dostaje grupe lub pozostaje w grupie, System Rankow pamieta to jak opisano na początku.

Ta funkcja moze byc przydatna, gdy uzytkownik nie znajduje sie w grupie serwerow, powinien byc ustawiony na zdefiniowany czas online.

Uwaga: Uruchom to za chwile, w ciągu nastepnych kilku minut bez rankups stają sie wymagalne!!! System Ranksystem nie moze usunąc starej grupy, poniewaz nie moze zapamietac ;-)"; +$lang['widelclddesc'] = "Usun wczesniej wybranych klientow z bazy danych systemu Ranksystem.

Z tym usunieciem klienci na serwerze TeamSpeak pozostaną nietknieci."; +$lang['widelsg'] = "usun z grup serwerow"; +$lang['widelsgdesc'] = "Wybierz, czy klienci powinni zostac usunieci z ostatniej znanej grupy serwerow, gdy usuniesz klientow z bazy danych systemu Ranksystem.

Bedzie to dotyczyc tylko grup serwerow, ktore dotyczyły systemu Ranksystem."; +$lang['wideltime'] = "Deletiontime"; +$lang['wideltimedesc'] = "Wyczysc starych klientow z bazy danych Ranksystem.
Wprowadz czas w sekundach, ktorego klient nie widział, aby go usunąc.

0 - usuwa wszystkich klientow z Ranksystem

Userdatas na serwerze TeamSpeak są z tym nietkniete!"; +$lang['wiexcid'] = "wyjątek kanału"; +$lang['wiexciddesc'] = "Rozdzielona przecinkami lista identyfikatorow kanałow, ktore nie mają uczestniczyc w systemie rang.

Zachowaj uzytkownikow w jednym z wymienionych kanałow, czas bedzie całkowicie ignorowany. Nie ma czasu online, ale liczy sie czas bezczynnosci.

Gdy tryb jest 'aktywny czas', funkcja ta jest bezuzyteczna, poniewaz zostanie odjety czas bezczynnosci w pomieszczeniach AFK, a zatem i tak nie zostanie policzony.
Bądz uzytkownikiem w wykluczonym kanale, jest to odnotowane w tym okresie jako 'wykluczone z Ranksystem'. Uzytkownik nie pojawia sie juz na liscie 'stats / list_rankup.php'-, chyba ze wykluczeni klienci nie powinni byc tam wyswietlani (Strona statystyk - wyjątek klienta)."; +$lang['wiexgrp'] = "wyjątek servergroup"; +$lang['wiexgrpdesc'] = "Rozdzielona przecinkami lista identyfikatorow grup serwerow, ktore nie powinny byc brane pod uwage w Systemie Rang.
Uzytkownik w co najmniej jednym z tych identyfikatorow grup serwerow zostanie zignorowany w rankingu."; +$lang['wiexres'] = "tryb wyjątku"; +$lang['wiexres1'] = "domyslny (czas zliczania)"; +$lang['wiexres2'] = "przerwa"; +$lang['wiexres3'] = "Zresetuj czas"; +$lang['wiexresdesc'] = "Istnieją trzy tryby radzenia sobie z wyjątkami. W kazdym przypadku ranking (przypisanie grupy serwerow) jest wyłączony. Mozesz wybrac rozne opcje, w jaki sposob nalezy obchodzic spedzony czas od uzytkownika (ktory jest wyjątkiem).

1) domyslny (czas zliczania): Domyslnie system rol rowniez liczy czas online / aktywny uzytkownikow, ktore są wyłączone (klient / grupa serwerow). Z wyjątkiem tylko ranking (przypisanie grupy serwerow) jest wyłączony. Oznacza to, ze jesli uzytkownik nie jest juz wykluczony, byłby przypisany do grupy w zaleznosci od jego zebranego czasu (np. Poziom 3).

2) przerwa: OW tej opcji wydatki online i czas bezczynnosci zostaną zamrozone (przerwane) na rzeczywistą wartosc (przed wyłączeniem uzytkownika). Po wystąpieniu wyjątku (po usunieciu wyłączonej grupy serwerow lub usunieciu reguły wygasniecia) 'liczenie' bedzie kontynuowane.

3) Zresetuj czas: Dzieki tej funkcji liczony czas online i czas bezczynnosci zostaną zresetowane do zera w momencie, gdy uzytkownik nie bedzie juz wiecej wyłączony (z powodu usuniecia wyłączonej grupy serwerow lub usuniecia reguły wyjątku). Spedzony wyjątek bedzie nadal liczony do czasu zresetowania.


Wyjątek kanału nie ma tutaj znaczenia, poniewaz czas bedzie zawsze ignorowany (jak tryb przerwy)."; +$lang['wiexuid'] = "wyjątek klienta"; +$lang['wiexuiddesc'] = "Rozdzielona przecinkiem lista unikalnych identyfikatorow klientow, ktorych nie nalezy uwzgledniac w systemie Ranksystem.
Uzytkownik na tej liscie zostanie zignorowany w rankingu."; +$lang['wigrptime'] = "rangowa definicja"; +$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasie uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy) => identyfikator grupy serwerow

Wazne w tym przypadku jest 'czas online' lub 'czas aktywnosci' uzytkownika, w zaleznosci od ustawienia trybu.

Kazdy wpis musi oddzielac sie od nastepnego za pomocą przecinka.

Czas musi byc wprowadzony łącznie

Przykład:
60=>9,120=>10,180=>11

W tym przypadku uzytkownik dostaje po 60 sekundach grupe serwerow 9, po kolei po 60 sekundach grupa serwerow 10 itd."; +$lang['wihladm'] = "Lista Rankup (tryb administratora)"; +$lang['wihladm1'] = "Dodaj czas online do uzytkownika"; +$lang['wihlcfg'] = "Ustawienia podstawowe"; +$lang['wihldb'] = "Ustawienia bazy danych"; +$lang['wihlmsg'] = "Ustawienia wiadomosci"; +$lang['wihlsty'] = "Ustawienia strony statystyk"; +$lang['wihlts'] = "Ustawienia TeamSpeak"; +$lang['wihlvs'] = "Rozne ustawienia"; +$lang['wiignidle'] = "Ignoruj bezczynnosc"; +$lang['wiignidledesc'] = "Okresl okres, do ktorego ignorowany bedzie czas bezczynnosci uzytkownika.

Gdy klient nie robi niczego na serwerze (= bezczynnosc), ten czas jest zapisywany przez system rangowy. Dzieki tej funkcji czas bezczynnosci uzytkownika nie zostanie policzony do okreslonego limitu. Dopiero gdy okreslony limit zostanie przekroczony, liczy sie od tej daty dla Systemu Rankow jako czas bezczynnosci.

Ta funkcja odgrywa role tylko w połączeniu z trybem 'aktywny czas'.

Znaczenie funkcji to np. ocenic czas słuchania w rozmowach jako aktywnosc.

0 = wyłącz te funkcje

Przykład:
Ignoruj bezczynnosc = 600 (sekundy)
Klient ma czas bezczynnosci wynoszący 8 minut
consequence:
8 minut bezczynnosci są ignorowane i dlatego otrzymuje ten czas jako czas aktywny. Jesli czas bezczynnosci zwiekszył sie teraz do ponad 12 minut, wiec czas wynosi ponad 10 minut, w tym przypadku 2 minuty bedą liczone jako czas bezczynnosci."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Ściezka pliku dziennika systemu Ranksystem.

Przykład:
/var/logs/ranksystem/

Upewnij sie, ze webuser ma uprawnienia do zapisu do logpath."; +$lang['wilogout'] = "Wyloguj"; +$lang['wimsgmsg'] = "Wiadomosci"; +$lang['wimsgmsgdesc'] = "Zdefiniuj wiadomosc, ktora zostanie wysłana do uzytkownika, gdy podniesie kolejną wyzszą range.

Ta wiadomosc zostanie wysłana za posrednictwem wiadomosci prywatnej TS3. Wiec kazdy znany kod bb-code moze byc uzyty, co działa rowniez dla normalnej prywatnej wiadomosci.
http://ts-n.net/lexicon.php?showid=97#lexindex

Ponadto poprzednio spedzony czas mozna wyrazic za pomocą argumentow:
%1\$s - dzien
%2\$s - godzin
%3\$s - minut
%4\$s - sekund
%5\$s - nazwa osiągnietej grupy serwerow
%6$s - imie i nazwisko uzytkownika (odbiorcy)

Example:
Hey,\\nosiągnąłes wyzszą range, poniewaz juz sie połączyłes %1\$s dni, %2\$s godzin and %3\$s minut na naszym serwerze TS3.[B]Tak trzymaj![/B] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Zdefiniuj wiadomosc, ktora bedzie wyswietlana na stronie / stats / page jako aktualnosci serwera.

Mozesz uzyc domyslnych funkcji html, aby zmodyfikowac układ

Przykład:
<b> - dla odwaznych
<u> - dla podkreslenia
<i> - dla kursywy
<br> - do zawijania wyrazow (nowa linia)"; +$lang['wimsgusr'] = "Uzupełnij powiadomienie"; +$lang['wimsgusrdesc'] = "Poinformuj uzytkownika o prywatnej wiadomosci tekstowej o jego randze."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Baza danych"; +$lang['winav3'] = "Rdzen"; +$lang['winav4'] = "Inny"; +$lang['winav5'] = "Wiadomosc"; +$lang['winav6'] = "Strona statystyk"; +$lang['winav7'] = "ACP"; +$lang['winav8'] = "Start / Stop bot"; +$lang['winav9'] = "Dostepna aktualizacja!"; +$lang['winav10'] = "Uzyj interfejsu sieciowego tylko przez %s HTTPS%s Szyfrowanie ma kluczowe znaczenie dla zapewnienia prywatnosci i bezpieczenstwa.%sAby moc korzystac z HTTPS, twoj serwer internetowy musi obsługiwac połączenie SSL"; +$lang['winav11'] = "Wprowadz unikalny identyfikator klienta administratora systemu Ranksystem (Other -> admin ID). Jest to bardzo wazne w przypadku, gdy straciłes dane logowania do interfejsu WWW (aby je zresetowac)."; +$lang['winav12'] = "Dodatki"; +$lang['winxinfo'] = "Polecenie \"!nextup\""; +$lang['winxinfodesc'] = "Umozliwia uzytkownikowi na serwerze TS3 napisanie polecenia \"!nextup\" do bota Ranksystem (zapytania) jako prywatna wiadomosc tekstowa.

Jako odpowiedz uzytkownik otrzyma zdefiniowaną wiadomosc tekstową z potrzebnym czasem na nastepną rango.

disabled - Funkcja jest wyłączona. Komenda '!nextup' zostaną zignorowane.
dozwolone - tylko nastepna ranga - Zwraca potrzebny czas nastepnej grupie.
dozwolone - wszystkie kolejne stopnie - Oddaje potrzebny czas dla wszystkich wyzszych rang."; +$lang['winxmode1'] = "disabled"; +$lang['winxmode2'] = "dozwolone - tylko nastepna ranga"; +$lang['winxmode3'] = "dozwolone - wszystkie kolejne stopnie"; +$lang['winxmsg1'] = "Wiadomosc"; +$lang['winxmsgdesc1'] = "Zdefiniuj komunikat, ktory uzytkownik otrzyma jako odpowiedz na polecenie \"!nextup\".

Argumenty:
%1$s - dni do nastepnego awansu
%2$s - godzin do nastepnego awansu
%3$s - minuty do nastepnego awansu
%4$s - sekundy do nastepnego awansu
%5$s - nazwa nastepnej grupy serwerow
%6$s - Nick uzytkownika (recipient)

Przykład:
Twoja nastepna ranga bedzie w %1$s dni, %2$s godziny i %3$s minutach i %4$s sekundach. Nastepna grupa serwerow, do ktorej dojdziesz, to [B]%5$s[/B]."; +$lang['winxmsg2'] = "Wiadomosc (najwyzsza)"; +$lang['winxmsgdesc2'] = "Zdefiniuj wiadomosc, ktorą uzytkownik otrzyma jako odpowiedz na polecenie \"!nextup\", gdy uzytkownik osiągnie najwyzszą pozycje.

Argumenty:
%1$s - dni do nastepnego awansowania
%2$s - godzin do nastepnego awansowania
%3$s - minuty do nastepnego awansowania
%4$s - sekundy do nastepnego awansowania
%5$s - nazwa nastepnej grupy serwerow
%6$s - nazwa uzytkownika (odbiorca)

Przykład:
Osiągnąłes najwyzszą pozycje w rankingu %1$s dni, %2$s godziny i %3$s minuty i %4$s sekundy."; +$lang['winxmsg3'] = "Wiadomosc (z wyjątkiem)"; +$lang['winxmsgdesc3'] = "Zdefiniuj komunikat, ktory uzytkownik otrzyma jako odpowiedz na polecenie \"!nextup\", gdy uzytkownik zostanie wyłączony z systemu Ranksystem.

Argumenty:
%1$s - dni do nastepnego awansowania
%2$s - godzin do nastepnego awansowania
%3$s - minuty do nastepnego awansowania
%4$s - ekundy do nastepnego awansowania
%5$s - nnazwa nastepnej grupy serwerow
%6$s - nazwa uzytkownika (odbiorca)

Przykład:
Jestes wyłączony z Systemu Rankow. Jesli chcesz ustalic pozycje, skontaktuj sie z administratorem na serwerze TS3."; +$lang['wirtpw1'] = "Przepraszam, Bro, zapomniałes wczesniej wpisac swoj identyfikator administratora w interfejsie internetowym. Nie ma sposobu na zresetowanie hasła!"; +$lang['wirtpw2'] = "Nie znaleziono identyfikatora administratora na serwerze TS3. Musisz byc online z unikalnym identyfikatorem klienta, ktory jest zapisywany jako identyfikator administratora."; +$lang['wirtpw3'] = "Twoj adres IP nie jest zgodny z adresem IP administratora na serwerze TS3. Upewnij sie, ze masz ten sam adres IP online na serwerze TS3, a takze na tej stronie (wymagany jest rowniez ten sam protokoł IPv4 / IPv6)."; +$lang['wirtpw4'] = "\nHasło dla interfejsu WWW zostało pomyslnie zresetowane.\nNazwa Uzytkownika: %s\nHasło: [B]%s[/B]\n\nZaloguj Sie %shere%s"; +$lang['wirtpw5'] = "Do administratora wysłano prywatną wiadomosc tekstową TeamSpeak 3 z nowym hasłem. Kliknij %s tutaj %s aby sie zalogowac."; +$lang['wirtpw6'] = "Hasło interfejsu WWW zostało pomyslnie zresetowane. Żądanie z adresu IP %s."; +$lang['wirtpw7'] = "Zresetuj hasło"; +$lang['wirtpw8'] = "Tutaj mozesz zresetowac hasło do interfejsu internetowego."; +$lang['wirtpw9'] = "Nastepujące rzeczy są wymagane, aby zresetowac hasło:"; +$lang['wirtpw10'] = "Musisz byc online na serwerze TeamSpeak3."; +$lang['wirtpw11'] = "Musisz byc w trybie online z unikalnym identyfikatorem klienta, ktory jest zapisywany jako identyfikator administratora."; +$lang['wirtpw12'] = "Musisz byc w trybie online z tym samym adresem IP na serwerze TeamSpeak3, jak tutaj na tej stronie (rowniez ten sam protokoł IPv4 / IPv6)."; +$lang['wiselcld'] = "wybierz klientow"; +$lang['wiselclddesc'] = "Wybierz klientow według ich ostatniej znanej nazwy uzytkownika, unikalnego identyfikatora klienta lub identyfikatora bazy danych klienta.
Mozliwe są rowniez wielokrotne selekcje.

W wiekszych bazach danych wybor ten moze znacznie spowolnic. Zaleca sie skopiowanie i wklejenie pełnego pseudonimu zamiast wpisywania go."; +$lang['wishcolas'] = "rzeczywista grupa serwerow"; +$lang['wishcolasdesc'] = "Pokaz kolumne 'aktualna grupa serwerow' w list_rankup.php"; +$lang['wishcolat'] = "czas aktywny"; +$lang['wishcolatdesc'] = "Pokaz sume kolumn. 'czas aktywny' in list_rankup.php"; +$lang['wishcolcld'] = "Nazwa klienta"; +$lang['wishcolclddesc'] = "Pokaz kolumne 'Nazwa klienta' in list_rankup.php"; +$lang['wishcoldbid'] = "identyfikator bazy danych"; +$lang['wishcoldbiddesc'] = "Pokaz kolumne 'Identyfikator bazy danych klienta' in list_rankup.php"; +$lang['wishcolgs'] = "aktualna grupa od"; +$lang['wishcolgsdesc'] = "Pokaz kolumne 'aktualna grupa od' w list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "czas bezczynnosci"; +$lang['wishcolitdesc'] = "Pokaz kolumne 'suma czasu bezczynnosci' w list_rankup.php"; +$lang['wishcolls'] = "ostatnio widziany"; +$lang['wishcollsdesc'] = "Pokaz kolumne 'ostatnio widziano' w list_rankup.php"; +$lang['wishcolnx'] = "nastepna ranga"; +$lang['wishcolnxdesc'] = "Pokaz kolumne 'nastepna ranga w gore' w list_rankup.php"; +$lang['wishcolot'] = "czas online"; +$lang['wishcolotdesc'] = "Pokaz sume kolumn. 'czas online' w list_rankup.php"; +$lang['wishcolrg'] = "ranga"; +$lang['wishcolrgdesc'] = "Pokaz kolumne 'ranga' w list_rankup.php"; +$lang['wishcolsg'] = "nastepna grupa serwerow"; +$lang['wishcolsgdesc'] = "Pokaz kolumne 'nastepna grupa serwerow' in list_rankup.php"; +$lang['wishcoluuid'] = "Identyfikator klienta"; +$lang['wishcoluuiddesc'] = "Pokaz kolumne 'unikalny identyfikator klienta' w list_rankup.php"; +$lang['wishexcld'] = "z wyjątkiem klienta"; +$lang['wishexclddesc'] = "Pokaz klientow w list_rankup.php,
ktore są wyłączone, a zatem nie uczestniczą w Systemie Rang."; +$lang['wishexgrp'] = "Z wyjątkiem grup"; +$lang['wishexgrpdesc'] = "Pokaz klientow w list_rankup.php, ktore znajdują sie na liscie 'wyjątek klienta 'i nie nalezy go uwzgledniac w systemie rang."; +$lang['wishhicld'] = "Klienci na najwyzszym poziomie"; +$lang['wishhiclddesc'] = "Pokaz klientow w list_rankup.php, ktory osiągnął najwyzszy poziom w Ranksystem."; +$lang['wishnav'] = "pokaz nawigacje witryny"; +$lang['wishnavdesc'] = "Pokaz nawigacje po stronie 'stats/' strona.

Jesli ta opcja zostanie wyłączona na stronie statystyk, nawigacja po stronie bedzie ukryta.
Nastepnie mozesz wziąc kazdą witryne, np. 'stats/list_rankup.php' i umiesc to jako ramke w swojej istniejącej stronie internetowej lub tablicy ogłoszen."; +$lang['wisupidle'] = "Tryb"; +$lang['wisupidledesc'] = "Istnieją dwa tryby, poniewaz czas moze byc policzony, a nastepnie mozna ubiegac sie o podwyzszenie rangi.

1) czas online: bierze sie pod uwage czysty czas online uzytkownika (see column 'sum. online time' in the 'stats/list_rankup.php')

2) czas aktywny: zostanie odjety od czasu online uzytkownika, nieaktywny czas (bezczynnosc) (patrz kolumna 'suma aktywnego czasu' w 'stats / list_rankup.php').

Zmiana trybu z juz działającą bazą danych nie jest zalecana, ale moze działac."; +$lang['wisvconf'] = "zapisac"; +$lang['wisvsuc'] = "Zmiany zostały pomyslnie zapisane!"; +$lang['wisvres'] = "Musisz ponownie uruchomic system Ranksystem, zanim zmiany zaczną obowiązywac! %s"; +$lang['witime'] = "Strefa czasowa"; +$lang['witimedesc'] = "Wybierz strefe czasową, w ktorej serwer jest hostowany."; +$lang['wits3avat'] = "Avatar Delay"; +$lang['wits3avatdesc'] = "Zdefiniuj czas w sekundach, aby opoznic pobieranie zmienionych awatarow TS3.

Ta funkcja jest szczegolnie przydatna dla botow (muzycznych), ktore zmieniają okresowo swoj avatar."; +$lang['wits3dch'] = "Kanał domyslny"; +$lang['wits3dchdesc'] = "Identyfikator kanału, z ktorym bot powinien sie połączyc.

Bot połączy sie z tym kanałem po połączeniu z serwerem TeamSpeak."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "Adres serwera TeamSpeak 3
(IP oder DNS)"; +$lang['wits3sm'] = "Wolny tryb"; +$lang['wits3smdesc'] = "Dzieki Slowmode mozesz zmniejszyc \"spam\" polecen zapytania do serwera TeamSpeak. Zapobiega to zakazy w przypadku powodzi.
Komendy TeamSpeak Query są opoznione przy uzyciu tej funkcji.

!!! ALSO IT REDUCE THE CPU USAGE !!!

Aktywacja nie jest zalecana, jesli nie jest wymagana. Opoznienie zwieksza czas działania bota, co czyni go nieprecyzyjnym.

Ostatnia kolumna pokazuje wymagany czas na jeden czas (w sekundach):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

W związku z tym wartosci (czasy) z opoznieniem ultra stają sie niedokładne o około 65 sekund! W zaleznosci od tego, co zrobic i / lub rozmiar serwera jeszcze wiekszy!"; +$lang['wits3qnm'] = "Nazwa bota"; +$lang['wits3qnm2'] = "Druga nazwa bota"; +$lang['wits3qnm2desc'] = "Nazwa awaryjnego bota, jesli pierwsza jest juz uzywana."; +$lang['wits3qnmdesc'] = "Nazwa, z tym połączeniem zapytania, zostanie ustanowiona.
Mozesz nazwac to za darmo."; +$lang['wits3querpw'] = "Hasło zapytania TS3"; +$lang['wits3querpwdesc'] = "Hasło do zapytania TeamSpeak 3
Hasło dla uzytkownika zapytania."; +$lang['wits3querusr'] = "Uzytkownik zapytan TS3"; +$lang['wits3querusrdesc'] = "Nazwa uzytkownika zapytania TeamSpeak 3
Domyslna wartosc to serveradmin
Oczywiscie, mozesz takze utworzyc dodatkowe konto serwerowe tylko dla systemu Ranksystem.
Potrzebne uprawnienia, ktore mozna znalezc:
http://ts-n.net/ranksystem.php"; +$lang['wits3query'] = "TS-Query-Port"; +$lang['wits3querydesc'] = "Port zapytania TeamSpeak 3
Domyslna wartosc to 10011 (TCP)
Jesli nie jest domyslny, powinienes go znalezc w swoim 'ts3server.ini'."; +$lang['wits3voice'] = "Port głosowy TS3"; +$lang['wits3voicedesc'] = "Port głosowy TeamSpeak 3
Domyslna wartosc to 9987 (UDP)
To jest port, ktorego uzywasz rowniez do łączenia sie z klientem TS3."; +$lang['wiverify'] = "Weryfikacja - kanał"; +$lang['wiverifydesc'] = "Wprowadz tutaj identyfikator kanału kanału weryfikacyjnego.

Ten kanał nalezy skonfigurowac manual na twoim serwerze TeamSpeak. Nazwe, uprawnienia i inne własciwosci mozna zdefiniowac według własnego wyboru; Tylko uzytkownik powinien miec mozliwosc dołączenia do tego kanału!

Weryfikacja jest przeprowadzana przez samego uzytkownika na stronie statystyk (/stats/). Jest to konieczne tylko wtedy, gdy odwiedzający strone nie moze automatycznie zostac dopasowany / powiązany z uzytkownikiem TeamSpeak.

Aby zweryfikowac, ze uzytkownik TeamSpeak musi znajdowac sie w kanale weryfikacyjnym. Tam moze otrzymac token, za pomocą ktorego sprawdza sie na stronie statystyk."; +$lang['wivlang'] = "Jezyk"; +$lang['wivlangdesc'] = "Wybierz domyslny jezyk dla systemu Ranksystem.

Jezyk jest rowniez dostepny na stronach internetowych dla uzytkownikow i bedzie przechowywany dla sesji."; ?> \ No newline at end of file diff --git a/languages/core_pt.php b/languages/core_pt.php index 38b3ba1..6a3fc75 100644 --- a/languages/core_pt.php +++ b/languages/core_pt.php @@ -1,529 +1,534 @@ - adicionado ao sistema de ranking agora."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "O usuário %s (ID-Ùnica:: %s) obteve um novo ID no banco de dados do teamspeak (%s). Atualize o antigo Client-banco de dados-ID (%s) e reinicie os tempos coletados!"; -$lang['crawl'] = "Scan for connected user and count the activity..."; -$lang['clean'] = "Procurando por clientes, que devem ser excluidos..."; -$lang['cleanc'] = "Clientes limpos"; -$lang['cleancdesc'] = "Com essa função os antigos clientes do Sistema de ranking são excluidos.

o Sistema de ranking sincronizado com o banco de dados TeamSpeak. Os clientes, que não existem no TeamSpeak, serão excluídos do Sistema de ranking.

Esta função só é ativada quando o 'Modo Lento' está desativado!


Para o ajuste automático do banco de dados TeamSpeak, o ClientCleaner pode ser usado:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "Havia %s clientes para ser excluídos do banco de dados do Sistema de ranking, porque eles não estavam mais no banco de dados TeamSpeak."; -$lang['cleanno'] = "Não havia nada para excluir..."; -$lang['cleanp'] = "Período de limpeza"; -$lang['cleanpdesc'] = "Defina o tempo que deve decorrer antes que os 'Período de limpeza' seja executado.

Defina o tempo em segundos.

Recomendado é uma vez por dia, porque a limpeza do cliente precisa de muito tempo para grandes banco de dados."; -$lang['cleanrs'] = "Clientes no banco de dados do Sistema de ranking: %s"; -$lang['cleants'] = "Clienes encontratos no banco de dados do TeamSpeak: %s (de %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['days'] = "%s dias"; -$lang['dbconerr'] = "Falha ao conectar ao banco de dados: "; -$lang['delcldgrpif'] = "Erro ao remover o conhecimento para os grupos do servidor: %s"; -$lang['delcldgrpsc'] = "Conhecimento sobre os grupos do servidor para %s Usuário removido com sucesso."; -$lang['delclientsif'] = "%s Clientes excluídos do banco de dados do Sistema de ranking!"; -$lang['delclientssc'] = "%s clientes excluídos com sucesso do banco de dados do Sistema de ranking"; -$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'] = "Nome de usuário e/ou senha estão incorretos! Tente novamente..."; -$lang['errlogin2'] = "Proteção de força bruta: tente novamente em %s segundos!"; -$lang['errlogin3'] = "Proteção de força bruta: muitos erros. Banido por 300 segundos!"; -$lang['error'] = "Erro "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Erro ao remover o usuário com ID-Ùnica %s do grupo de servidor Data base-ID %s!"; -$lang['errremdb'] = "Erro ao remover o usuário com ID-Ùnica %s do banco de dados do Sistema de ranking!"; -$lang['errselusr'] = "Escolha pelo menos um usuário!"; -$lang['errseltime'] = "Por favor, indique um tempo on-line para adicionar!"; -$lang['errukwn'] = "Um erro desconhecido ocorreu!"; -$lang['errupcount'] = "Erro ao renovar o tempo on-line de %s do usuário com o ID-Ùnica %s"; -$lang['highest'] = "maior classificação alcançada"; -$lang['install'] = "Instalação"; -$lang['instdb'] = "Instalar o banco de dados"; -$lang['instdbsuc'] = "Banco de dados %s criado com sucesso."; -$lang['insterr1'] = "ATENÇÃO: Você está tentando instalar o Sistema de ranking, mas já existe um banco de dados com o nome \"%s\".
Devido a instalação, este banco de dados será descartado!
Certifique-se se quer escolher isso. Caso contrário, escolha um outro nome de banco de dados."; -$lang['insterr2'] = "PDO é necessário, mas parece que não está instalado. Instalar PDO e tente novamente!"; -$lang['insterr3'] = "A função PHP exec precisa ser ativada, mas parece estar desativada. Por favor, ative o PHP exec e tente novamente!"; -$lang['insterr4'] = "Sua versão PHP (%s) está abaixo de 5.5.0. Atualize seu PHP e tente novamente!"; -$lang['insterr5'] = "SimpleXML é necessário, mas parece não estar disponível. Instalar simpleXML e tente novamente!"; -$lang['insterr6'] = "PHP cURL é necessário, mas parece não estar disponível. Instalar PHP cURL e tente novamente!"; -$lang['insterr7'] = "PHP Zip é necessário, mas parece não estar disponível. Instalar PHP Zip e tente novamente!"; -$lang['insterr8'] = "PHP COM extensão (php_com_dotnet.dll) é necessário, mas não parece estar disponível. Instalar PHP COM e tente novamente!"; -$lang['insterr9'] = "PHP PDO MySQL extensão (php_pdo_mysql.so) é necessário, mas parece não estar disponível. Instalar PHP PDO MySQL e tente novamente!"; -$lang['isntwicfg'] = "Não é possível salvar a configuração do banco de dados! Edite o 'other/dbconfig.php' com um chmod 0777 (no windows 'acesso total') e tente novamente após."; -$lang['isntwicfg2'] = "Configure a Interface da Web"; -$lang['isntwichm'] = "Permissões de gravação falhou na pasta \"%s\". Por favor, dê a permissão chmod 777 (no windows 'acesso total') e tente iniciar o Sistema de ranking novamente."; -$lang['isntwiconf'] = "Abra o %s para configurar o Sistema de ranking!"; -$lang['isntwidbhost'] = "Endereço do host da DB:"; -$lang['isntwidbhostdesc'] = "Endereço do servidor de banco de dados
(IP ou DNS)"; -$lang['isntwidbmsg'] = "Erro de banco de dados: "; -$lang['isntwidbname'] = "Nome da DB:"; -$lang['isntwidbnamedesc'] = "Nome do banco de dados"; -$lang['isntwidbpass'] = "Senha da DB:"; -$lang['isntwidbpassdesc'] = "Senha para acessar o banco de dados"; -$lang['isntwidbtype'] = "Tipo de DB:"; -$lang['isntwidbtypedesc'] = "Tipo de banco de dados

Você precisa instalar o necessário PDO Driver.
Para mais informações, veja os requisitos em http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "Usuário da DB:"; -$lang['isntwidbusrdesc'] = "Usuário para acessar o banco de dados"; -$lang['isntwidel'] = "Por favor, exclua o arquivo 'install.php' do seu servidor web"; -$lang['isntwiusr'] = "Usuário para a interface web criado com sucesso."; -$lang['isntwiusrcr'] = "Criar usuário para Interface web"; -$lang['isntwiusrdesc'] = "Digite um nome de usuário e uma senha para acessar a interface da web. Com a interface web, você pode configurar o sistema de ranking."; -$lang['isntwiusrh'] = "Acesso - Interface da Web"; -$lang['listacsg'] = "Grupo atual do Servidor"; -$lang['listcldbid'] = "Cliente-database-ID"; -$lang['listexcept'] = "Não, client em exceção"; -$lang['listgrps'] = "actual group since"; -$lang['listip'] = "endereço de IP"; -$lang['listnick'] = "Nome"; -$lang['listnxsg'] = "Próximo grupo"; -$lang['listnxup'] = "Próximo ranking em"; -$lang['listrank'] = "Ranking"; -$lang['listseen'] = "Visto pela última vez"; -$lang['listsuma'] = "Tempo total ativo"; -$lang['listsumi'] = "Tempo total afk"; -$lang['listsumo'] = "Tempo total Online"; -$lang['listuid'] = "ID ùnica"; -$lang['login'] = "Entrar"; -$lang['msg0001'] = "versão em execução: %s"; -$lang['msg0002'] = "Os comandos válidos são:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot"; -$lang['msg0003'] = "Você não é elegível para usar este comando!"; -$lang['msg0004'] = "Cliente %s (%s) fez o pedido de desligamento."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Cliente %s (%s) fez o pedido de inicialização."; -$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['nocount'] = "Usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) é um usuário de query ou está se conectando vezes online (apenas contagens de primeira conexão) -> isso não vai contar!"; -$lang['noentry'] = "Nenhuma entrada encontrada.."; -$lang['pass'] = "Senha"; -$lang['pass2'] = "Alterar a senha"; -$lang['pass3'] = "Senha antiga"; -$lang['pass4'] = "Nova senha"; -$lang['pass5'] = "Esqueceu a senha?"; -$lang['queryname'] = "Primeiro nome do bot já em uso. Tentando com o segundo Nome..."; -$lang['repeat'] = "repetir"; -$lang['resettime'] = "Redefinir o tempo de inatividade e tempo livre do usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) para zero, porque o usuário foi removido fora da exceção."; -$lang['sccrmcld'] = "Usuário com ID-Ùnica %s removido com sucesso do banco de dados do Sistema de ranking."; -$lang['sccupcount'] = "Adicionado com sucesso um tempo online de %s segundos para os usuários com o ID-Ùnico (%s)"; -$lang['setontime'] = "tempo extra"; -$lang['setontimedesc'] = "Adicione tempo online aos clientes selecionados. Cada usuário obterá esse tempo adicional ao seu antigo tempo online.

O tempo online estabelecido será considerado para o ranking e deverá entrar em vigor imediatamente."; -$lang['sgrpadd'] = "Conceder o grupo do servidor %s ao usuário %s (ID-Ùnica: %s; Cliente-database-ID %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "Grupo do servidor removido %s do usuário %s (ID-Ùnica: %s; Cliente-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'] = "Adicionar Grupos/Tags"; -$lang['stag0002'] = "Grupos permitidos"; -$lang['stag0003'] = "Defina uma lista de grupos do servidor, que um usuário pode se atribuir.

Os grupos do servidor devem ser inseridos aqui com o seu grupo-ID separado por vírgulas.

Exemplo:
23,24,28"; -$lang['stag0004'] = "Limite de grupos"; -$lang['stag0005'] = "Limite o número de grupos do servidor, que podem ser configurados ao mesmo tempo."; -$lang['stag0006'] = "Existem vários ID únicos online com seu endereço IP. Por favor, %sClique aqui%s para verificar primeiro."; -$lang['stag0007'] = "Aguarde até as últimas alterações terem efeito antes de mudar outras coisas..."; -$lang['stag0008'] = "Alterações de grupo salvas com sucesso. Pode levar alguns segundos até ter efeito no servidor ts3."; -$lang['stag0009'] = "Você não pode escolher mais de %s grupo(s) ao mesmo tempo!"; -$lang['stag0010'] = "Escolha pelo menos um novo grupo."; -$lang['stag0011'] = "Limite de Grupos: "; -$lang['stag0012'] = "Salvar"; -$lang['stag0013'] = "Módulo ONline/OFFline"; -$lang['stag0014'] = "Troque o módulo online (habilitado) ou desligado (desativado).

Ao desativar o addon, uma possível parte nas stats/ do site estará escondida."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "Estatísticas do Servidor"; -$lang['stix0002'] = "Total de usuários"; -$lang['stix0003'] = "Ver detalhes"; -$lang['stix0004'] = "Tempo online de todos os usuários/total"; -$lang['stix0005'] = "Veja o top de todos os tempos"; -$lang['stix0006'] = "Veja o top do mês"; -$lang['stix0007'] = "Veja o top da semana"; -$lang['stix0008'] = "Uso do servidor"; -$lang['stix0009'] = "Nos últimos 7 Dias"; -$lang['stix0010'] = "Nos últimos 30 Dias"; -$lang['stix0011'] = "Nas últimas 24 horas"; -$lang['stix0012'] = "Selecionar peíodo"; -$lang['stix0013'] = "Ùltimo dia"; -$lang['stix0014'] = "Ùtima semana"; -$lang['stix0015'] = "Ùtimo mês"; -$lang['stix0016'] = "Tempo ativo / inativo (de todos os clientes)"; -$lang['stix0017'] = "Versões (de todos os clientes)"; -$lang['stix0018'] = "Nacionalidades (de todos os clientes)"; -$lang['stix0019'] = "Plataformas (de todos os clientes)"; -$lang['stix0020'] = "Estatísticas atuais"; -$lang['stix0023'] = "Status do servidor"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clientes (Online / Max)"; -$lang['stix0027'] = "Quantidade de canais"; -$lang['stix0028'] = "Média de ping"; -$lang['stix0029'] = "Total de bytes recebidos"; -$lang['stix0030'] = "Total de bytes enviados"; -$lang['stix0031'] = "Tempo ativo do servidor"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 Dias, 00 Horas, 00 Min, 00 Seg"; -$lang['stix0034'] = "Perda média de pacotes"; -$lang['stix0035'] = "Estatísticas gerais"; -$lang['stix0036'] = "Nome do Servidor"; -$lang['stix0037'] = "Endereço do servidor (endereço : porta)"; -$lang['stix0038'] = "Senha do servidor"; -$lang['stix0039'] = "Não (Servidor é publico)"; -$lang['stix0040'] = "Sim (Servidor é privado)"; -$lang['stix0041'] = "ID do servidor"; -$lang['stix0042'] = "Plataforma do servidor"; -$lang['stix0043'] = "Versão do servidor"; -$lang['stix0044'] = "Data da criação do servidor (dd/mm/yyyy)"; -$lang['stix0045'] = "Relatório de servidores"; -$lang['stix0046'] = "Ativado"; -$lang['stix0047'] = "Não ativado"; -$lang['stix0048'] = "ainda não há dados suficientes..."; -$lang['stix0049'] = "Tempo online de todos os usuários / Mês"; -$lang['stix0050'] = "Tempo online de todos os usuários / Semana"; -$lang['stix0051'] = "TeamSpeak falhou, então nenhuma data de criação"; -$lang['stix0052'] = "outros"; -$lang['stix0053'] = "Tempo Ativo (em Dias)"; -$lang['stix0054'] = "Tempo Inativo (em Dias)"; -$lang['stix0055'] = "on-line nas últimas 24 horas"; -$lang['stix0056'] = "online nos últimos %s Dias"; -$lang['stix0059'] = "Lista de usuários"; -$lang['stix0060'] = "Usuário"; -$lang['stix0061'] = "Ver todas as versões"; -$lang['stix0062'] = "Veja todas as nações"; -$lang['stix0063'] = "Ver todas as plataformas"; -$lang['stmy0001'] = "Minhas estatísticas"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "ID da data base:"; -$lang['stmy0004'] = "ID Ùnica:"; -$lang['stmy0005'] = "Conexões totais no servidor:"; -$lang['stmy0006'] = "Data de início das estatísticas:"; -$lang['stmy0007'] = "Tempo total online:"; -$lang['stmy0008'] = "Tempo online nos últimos %s Dias:"; -$lang['stmy0009'] = "Ativo nos últimos %s Dias:"; -$lang['stmy0010'] = "Realizações concluídas:"; -$lang['stmy0011'] = "Progresso da conquista de tempo"; -$lang['stmy0012'] = "Tempo: Lendário"; -$lang['stmy0013'] = "Porque você tem um tempo online de %s horas."; -$lang['stmy0014'] = "Progresso concluído"; -$lang['stmy0015'] = "Tempo: Ouro"; -$lang['stmy0016'] = "% Completado para o Lendário"; -$lang['stmy0017'] = "Tempo: Prata"; -$lang['stmy0018'] = "% Completado para o Ouro"; -$lang['stmy0019'] = "Tempo: Bronze"; -$lang['stmy0020'] = "% Completado para o Prata"; -$lang['stmy0021'] = "Tempo: Não classificado"; -$lang['stmy0022'] = "% Completado para o Bronze"; -$lang['stmy0023'] = "Progresso da realização de conexão"; -$lang['stmy0024'] = "conexões: Lendário"; -$lang['stmy0025'] = "Porque você se conectou %s vezes no servidor."; -$lang['stmy0026'] = "Conexões: Ouro"; -$lang['stmy0027'] = "Conexões: Prata"; -$lang['stmy0028'] = "Conexões: Bronze"; -$lang['stmy0029'] = "Conexões: Não classificado"; -$lang['stmy0030'] = "Progresso para o próximo grupo"; -$lang['stmy0031'] = "Tempo total ativo"; -$lang['stna0001'] = "Nações"; -$lang['stna0002'] = "Estatisticas"; -$lang['stna0003'] = "Código"; -$lang['stna0004'] = "País"; -$lang['stna0005'] = "Versões"; -$lang['stna0006'] = "Plataformas"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Notícias do Servidor"; -$lang['stnv0002'] = "Fechar"; -$lang['stnv0003'] = "Atualizar informações do cliente"; -$lang['stnv0004'] = "Use apenas esta atualização, quando suas informações TS3 foram alteradas, como seu nome de usuário TS3"; -$lang['stnv0005'] = "Só funciona, quando você está conectado ao servidor TS3 ao mesmo tempo"; -$lang['stnv0006'] = "Atualizar"; -$lang['stnv0007'] = "Área de batalha - Conteúdo da página"; -$lang['stnv0008'] = "Você pode desafiar outros usuários em uma batalha entre dois usuários ou duas equipes."; -$lang['stnv0009'] = "Enquanto a batalha estiver ativa, o tempo online dos times / usuários será contado.."; -$lang['stnv0010'] = "Quando a batalha termina, o time / usuário com maior tempo online ganha."; -$lang['stnv0011'] = "(O tempo de luta regular é de 48 horas)"; -$lang['stnv0012'] = "O time / usuário vencedor receberá um preço, que o usuário pode usar sempre que o usuário quiser."; -$lang['stnv0013'] = "Será exibido na aba Minhas estatísticas."; -$lang['stnv0014'] = "(Pode ser o impulso de tempo online (2x) por 8 horas, tempo instantâneo online (4 horas), etc."; -$lang['stnv0015'] = "Esses impulsos podem ser usados, por exemplo, para escalar os principais usuários da semana."; -$lang['stnv0016'] = "Não disponível"; -$lang['stnv0017'] = "Você não está conectado ao servidor TS3, portanto, ele não pode exibir dados para você."; -$lang['stnv0018'] = "Conecte-se ao servidor TS3 e, em seguida, atualize sua sessão pressionando o botão de atualização azul no canto superior direito."; -$lang['stnv0019'] = "Minhas estatísticas - Conteúdo da página"; -$lang['stnv0020'] = "Esta página contém um resumo geral de suas estatísticas e atividades pessoais no servidor."; -$lang['stnv0021'] = "As informações são coletadas desde o início do sistems de Ranking, elas não são desde o início do servidor TeamSpeak."; -$lang['stnv0022'] = "Esta página recebe seus valores de um banco de dados. Portanto, os valores podem ser atrasados um pouco."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranking - Estatisticas"; -$lang['stnv0025'] = "Limite de Nomes"; -$lang['stnv0026'] = "Todos"; -$lang['stnv0027'] = "As informações neste site podem estar desatualizadas! Parece que o Sistema de ranking não está mais conectado ao TeamSpeak."; -$lang['stnv0028'] = "(Você não está conectado ao TS3!)"; -$lang['stnv0029'] = "Ranking"; -$lang['stnv0030'] = "Informações"; -$lang['stnv0031'] = "Sobre o campo de pesquisa, você pode procurar pelo o nome do cliente, ID do cliente e pelo ID do banco de dados do cliente.."; -$lang['stnv0032'] = "Você também pode usar as opções de filtro de exibição (veja abaixo). Digite o filtro também dentro do campo de pesquisa."; -$lang['stnv0033'] = "Combinação de filtro e padrão de busca são possíveis. Digite primeiro o (s) filtro (s) seguido sem nenhum padrão de busca."; -$lang['stnv0034'] = "Também é possível combinar vários filtros. Digite isso consecutivamente dentro do campo de pesquisa."; -$lang['stnv0035'] = "Exemplo:
Filtro:exceção:TeamSpeakUser"; -$lang['stnv0036'] = "Mostrar apenas clientes, que são aceitos (cliente, grupo de servidores ou exceção de canal)."; -$lang['stnv0037'] = "Mostrar apenas clientes, que não estão excluídos."; -$lang['stnv0038'] = "Mostrar apenas clientes, que estão online."; -$lang['stnv0039'] = "Mostrar apenas clientes, que não estão online."; -$lang['stnv0040'] = "Mostrar apenas clientes, que estão em grupo definido. Represente o nível / ranking.
Substituir GRUPOIP com o desejado grupo de servidores ID."; -$lang['stnv0041'] = "Mostrar apenas clientes, que são selecionados por entre.
Substituir OPERATOR por '<' or '>' or '=' or '!='.
E Substituir TEMPO com data / hora com formato"; -$lang['stnv0042'] = "Mostrar apenas clientes, que são de país definido.
Substitua TS3-COUNTRY-CODE com o país desejado.
Para a lista de códigos google"; -$lang['stnv0043'] = "Conectar no TS3"; -$lang['stri0001'] = "Informações"; -$lang['stri0002'] = "Oque é o Sistema de ranking?"; -$lang['stri0003'] = "È um script, que automaticamente atribui classificações (grupos do servidor) ao usuário no TeamSpeak 3 Server para tempo on-line ou atividade on-line. Ele também reúne informações e estatísticas sobre o usuário e exibe o resultado neste site."; -$lang['stri0004'] = "Quem criou o Sistema de Ranking?"; -$lang['stri0005'] = "Quando foi criado o Sistema de Ranking?"; -$lang['stri0006'] = "Primeira versão alfa: 05/10/2014."; -$lang['stri0007'] = "Lançamento aberto: 01/02/2015."; -$lang['stri0008'] = "Você pode ver a versão mais recente em Sistema de ranking Website.."; -$lang['stri0009'] = "Como o Sistema de ranking foi criado?"; -$lang['stri0010'] = "O Sistema de ranking está codificado em"; -$lang['stri0011'] = "Ele também usa as seguintes bibliotecas:"; -$lang['stri0012'] = "Agradecimentos especiais para:"; -$lang['stri0013'] = "sergey, Arselopster & DeviantUser - pela tradução em russo"; -$lang['stri0014'] = "Bejamin Frost - pela inicialização do design bootstrap"; -$lang['stri0015'] = "ZanK & jacopomozzy - pela tradução em italiano"; -$lang['stri0016'] = "DeStRoYzR & Jehad - pela tradução em arábico"; -$lang['stri0017'] = "SakaLuX - pela tradução em romena"; -$lang['stri0018'] = "0x0539 - pela tradução em holandês"; -$lang['stri0019'] = "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'] = "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"; -$lang['sttw0004'] = "Top 10 comparação"; -$lang['sttw0005'] = "Horas (O Melhor 100 %)"; -$lang['sttw0006'] = "%s horas (%s%)"; -$lang['sttw0007'] = "Top 10 Estatisticas"; -$lang['sttw0008'] = "Top 10 vs outros em tempo online"; -$lang['sttw0009'] = "Top 10 vs outros em tempo ativo"; -$lang['sttw0010'] = "Top 10 vs outros em tempo inativo"; -$lang['sttw0011'] = "Top 10 (in horas)"; -$lang['sttw0012'] = "Outros %s usuários (em horas)"; -$lang['sttw0013'] = "Com %s %s ativo"; -$lang['sttw0014'] = "horas"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "Do Mês"; -$lang['stta0001'] = "De Todos os Tempos"; -$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['stve0002'] = "Uma mensagem com o token foi enviada para você no servidor TS3."; -$lang['stve0003'] = "Digite o token, que você recebeu no servidor TS3. Se você não recebeu uma mensagem, certifique-se de ter escolhido a ID exclusiva correta."; -$lang['stve0004'] = "O token inserido não corresponde! Por favor, tente novamente."; -$lang['stve0005'] = "Parabéns, você foi verificado com sucesso! Você pode continuar .."; -$lang['stve0006'] = "Ocorreu um erro desconhecido. Por favor, tente novamente. Se o erro continuar, entre em contato com um administrador"; -$lang['stve0007'] = "Verifique no TeamSpeak"; -$lang['stve0008'] = "Escolha aqui sua ID/Nick no servidor TS3 para verificar-se."; -$lang['stve0009'] = " -- Escolha um -- "; -$lang['stve0010'] = "Você receberá um token no servidor TS3, que você deve inserir aqui:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verificar"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_day'] = "Day(s)"; -$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'] = "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]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]."; -$lang['upusrerr'] = "O ID-Ùnico %s não conseguiu alcançar o TeamSpeak!"; -$lang['upusrinf'] = "Usuário %s foi informado com sucesso."; -$lang['user'] = "Nome de usuário"; -$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'] = "Interface web"; -$lang['wiaction'] = "açao"; -$lang['wiadmhide'] = "Esconder clientes em exceção"; -$lang['wiadmhidedesc'] = "Para ocultar o usuário excluído na seguinte seleção"; -$lang['wiadmuuid'] = "ID do administrador"; -$lang['wiadmuuiddesc'] = "Digite aqui o seu ID-Ùnico; como administrador do Sistema de ranking.
Also multiple Client-IDs are possible -> comma separated

Isso é necessário para redefinir a senha do interface da web.

Não existe um endereço de identificação de cliente Ùnico, não é possível redefinir a senha!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$lang['wiboost'] = "Impulso"; -$lang['wiboostdesc'] = "Forneça ao usuário do TeamSpeak um servidor de grupo (deve ser criado manualmente), que você pode declarar aqui como grupo de impulsionar. Definir também um fator que deve ser usado (por exemplo, 2x) e um tempo, quanto tempo o impulso deve ser avaliado. Quanto maior o fator, mais rápido um usuário atinge o próximo ranking mais alto.
O tempo expirou , o grupo de servidores boost é automaticamente removido do usuário em questão. O tempo começa a correr logo que o usuário recebe o grupo de servidores.

grupo do servidor ID => factor => time (em segundos)

Cada entrada deve separar do próximo com uma vírgula.

Exemplo:
12 => 2 => 6000,13 => 3 => 2500,14 => 5 => 600

Neste usuário no grupo de servidores 12, obtenha o fator 2 para nos próximos 6000 segundos, um usuário no grupo de servidores 13 obtém o fator 3 por 2500 segundos, e assim por diante ..."; -$lang['wibot1'] = "O Sistema de ranking foi interrompido. Verifique o registro abaixo para obter mais informações!"; -$lang['wibot2'] = "O Sistema de ranking foi iniciado. Verifique o registro abaixo para obter mais informações!"; -$lang['wibot3'] = "O Sistema de ranking foi reiniciado. Verifique o registro abaixo para obter mais informações!"; -$lang['wibot4'] = "Iniciar / Parar Ranking Bot"; -$lang['wibot5'] = "Iniciar Bot"; -$lang['wibot6'] = "Parar Bot"; -$lang['wibot7'] = "Reiniciar Bot"; -$lang['wibot8'] = "Logs do Sistema de ranking(extraido):"; -$lang['wibot9'] = "Preencha todos os campos obrigatórios antes de iniciar o Sistems de ranking Bot!"; -$lang['wichdbid'] = "Resetar data base de clientes"; -$lang['wichdbiddesc'] = "Redefinir o tempo online de um usuário, se o seu TeamSpeak Client-database-ID mudado.

Exemplo:
Se um cliente for removido do servidor TeamSpeak, ele obtém uma nova ID do banco de dados do cliente com o Depois conecte-se ao servidor."; -$lang['wiconferr'] = "Há um erro na configuração do Sistema de ranking. Acesse a interface da web e corrija as Configurações do núcleo. Especialmente verifique o config 'Classificações'!"; -$lang['wichpw1'] = "Sua senha antiga está errada. Por favor, tente novamente"; -$lang['wichpw2'] = "As novas senhas são incompatíveis. Por favor, tente novamente."; -$lang['wichpw3'] = "A senha da interface web foi alterada com sucesso. Pedido do IP %s."; -$lang['wichpw4'] = "Mudar senha"; -$lang['widaform'] = "Formato de data"; -$lang['widaformdesc'] = "Escolha o formato da data de exibição.

Exemplo:
%a Dias, %h horas, %i minutos, %s segundos"; -$lang['widbcfgsuc'] = "Configurações de banco de dados salvas com sucesso."; -$lang['widbcfgerr'] = "Erro ao salvar as configurações do banco de dados! A conexão falhou ou escreveu erro para 'other/dbconfig.php'"; -$lang['widelcld'] = "excluir clientes"; -$lang['widelcldgrp'] = "renovar grupos"; -$lang['widelcldgrpdesc'] = "O Sistema de ranking lembra os grupos de servidores fornecidos, portanto, não precisa dar / verificar isso com cada execução do worker.php novamente.

Com esta função, você pode remover uma vez o conhecimento de determinados grupos de servidores. Com efeito, o sistema de classificação tenta dar a todos os clientes (que estão no servidor TS3 on-line) o grupo de servidores da classificação real.
Para cada cliente, que recebe o grupo ou permaneça em grupo, o Sistema de ranking lembre-se disso, como descrito no início.

Esta função pode ser útil, quando o usuário não estiver no grupo de servidores, eles devem ser para o tempo definido online.

Atenção: Execute isso em um momento, onde os próximos minutos não há rankings tornar-se devido !!! O Sistema de ranking não pode remover o grupo antigo, porque não pode lembrar;-)"; -$lang['widelclddesc'] = "Exclua os clientes antes selecionados do banco de dados do Sistema de ranking.

Com essa exclusão, os clientes no TeamSpeak Server não foram tocados."; -$lang['widelsg'] = "remova os grupos do servidor"; -$lang['widelsgdesc'] = "Escolha se os clientes também devem ser removidos do último grupo de servidores encontrado, quando você exclui clientes do banco de dados do Sistema de ranking.

Só considerou os grupos de servidores, que diziam respeito ao Sistema de ranking"; -$lang['wideltime'] = "Tempo de exclusão"; -$lang['wideltimedesc'] = "Limpe os clientes antigos do banco de dados do Sistema de ranking.
Insira um tempo em segundos que um cliente não foi visto para excluí-lo.

0 - exclui todos os clientes do Sistema de Ranking

Os dados do usuário no servidor TeamSpeak são intocados!"; -$lang['wiexcid'] = "Exceção de canal"; -$lang['wiexciddesc'] = "Uma lista separada por vírgulas dos IDs de canais que não devem participar no Sistema de ranking.

Mantenha os usuários em um dos canais listados, o tempo em que será completamente ignorado. Não vai contar o tempo online, mas o tempo ocioso vai contar.

Esta função faz apenas sentido com o modo 'tempo online', porque aqui podem ser ignorados os canais AFK, por exemplo.
Com o modo 'tempo ativo', esta função é inútil porque, como seria deduzido o tempo de inatividade em salas AFK, portanto, não contado de qualquer maneira.

Um usuário em um canal excluído, é alterado por esse período como 'excluído do Sistema de Ranks'. O usuário não aparece mais na lista 'stats/list_rankup.php' a menos que os clientes excluídos não sejam exibidos lá (Página de Estatísticas - cliente em exceção)."; -$lang['wiexgrp'] = "Grupo em exceção"; -$lang['wiexgrpdesc'] = "Uma lista separada de vírgulas de IDs de grupos de servidores, que não devem participar do Sistema de ranking.
O usuário em pelo menos uma dessas IDs de grupos de servidores será ignorado para o ranking."; -$lang['wiexres'] = "Modo de exceção"; -$lang['wiexres1'] = "padrão (tempo de contagem)"; -$lang['wiexres2'] = "Intervalo"; -$lang['wiexres3'] = "Redefinir o tempo"; -$lang['wiexresdesc'] = "Existem três modos, como lidar com uma exceção. Em todos os casos, a classificação (atribuir grupo de servidores) está desativado. Você pode escolher diferentes opções de como o tempo gasto de um usuário (que é excecionado) deve ser tratado.

1) padrão (tempo de contagem) : Por padrão, o Sistema de ranking conta também o on-line / tempo ativo dos usuários, exceto (cliente / grupo de servidores). Com uma exceção, apenas a classificação (atribuir grupo de servidores) está desativado. Isso significa que se um usuário não for mais salvo, ele seria atribuído ao grupo dependendo do tempo coletado (por exemplo, nível 3).

2) tempo de pausa : nesta opção o gastar online e tempo ocioso será congelado (intervalo) para o valor real (antes do usuário ter sido salvo). Após uma exceção (após remover o grupo de servidores excecionado ou remover a regra de expectativa), 'contagem' continuará.

3) tempo de reinicialização : Com esta função, o tempo contado online e ocioso será redefinir para zero no momento em que o usuário não seja mais salvo (removendo o grupo de servidores excecionado ou remova a regra de exceção). A exceção de tempo de tempo gasto seria ainda contabilizada até que ela fosse reiniciada.


A exceção do canal não importa aqui, porque o tempo sempre será ignorado (como o modo de interrupção)."; -$lang['wiexuid'] = "Exceção de cliente"; -$lang['wiexuiddesc'] = "Uma lista separada de vírgulas de ID-Ùnica, que não deve considerar para o Sistema de Rank.
O usuário nesta lista será ignorado e não vai participar do ranking."; -$lang['wigrptime'] = "Definições de classifiaões"; -$lang['wigrptimedesc'] = "Defina aqui, após quanto tempo um usuário deve obter automaticamente um grupo de servidores predefinido.

Tempo (em segundos) => ID do grupo do servidor

Importante para este é o 'tempo online' ou o 'tempo ativo' de um usuário, dependendo da configuração do modo.

Cada entrada deve se separar do próximo com uma vírgula.

O tempo deve ser inserido cumulativo

Exemplo:
60 => 9,120 => 10,180 => 11

Neste usuário, pegue após 60 segundos o grupo de servidores 9, por sua vez, após 60 segundos, o grupo de servidores 10 e assim por diante ..."; -$lang['wihladm'] = "Classificação (Modo Admin)"; -$lang['wihladm1'] = "Adicionar tempo online ao usuário"; -$lang['wihlcfg'] = "Configurações do núcleo"; -$lang['wihldb'] = "Configurações do banco de dados"; -$lang['wihlmsg'] = "Configurações de mensagens"; -$lang['wihlsty'] = "Configurações da página de estatísticas"; -$lang['wihlts'] = "Configurações do TeamSpeak"; -$lang['wihlvs'] = "Várias configurações"; -$lang['wiignidle'] = "Ignore ocioso"; -$lang['wiignidledesc'] = "Defina um período até o qual o tempo de inatividade de um usuário será ignorado.

Quando um cliente não faz nada no servidor (=ocioso), esse tempo é anotado pelo Sistema de ranking. Com este recurso, o tempo de inatividade de um usuário não será contado até o limite definido. Somente quando o limite definido é excedido, ele conta a partir dessa data para o Sistema de ranking como tempo ocioso.

Esta função só é reproduzida em conjunto com o modo 'tempo ativo' uma função.

Significado do a função é, por exemplo, para avaliar o tempo de audição em conversas como atividade.

0 = desativar o recurso

Exemplo:
Ignorar ocioso = 600 (segundos)
Um cliente tem um ocioso de 8 Minuntes
consequência:
8 minutos inativos são ignorados e, portanto, ele recebe esse tempo como tempo ativo. Se o tempo de inatividade agora aumentou para mais de 12 minutos, então o tempo é superior a 10 minutos, e nesse caso, 2 minutos serão contados como tempo ocioso."; -$lang['wilog'] = "Caminha de logs"; -$lang['wilogdesc'] = "Caminho do arquivo de log do Sistema de ranking.

Exemplo:
/var/logs/ranksystem/

Certifique-se, o usuário da web tem as permissões de gravação"; -$lang['wilogout'] = "Sair"; -$lang['wimsgmsg'] = "Mensagens"; -$lang['wimsgmsgdesc'] = "Defina uma mensagem, que será enviada para um usuário, quando ele subir a próxima classificação mais alta.

Esta mensagem será enviada via mensagem privada TS3. Então, todos sabem que o código bb pode ser usado, o que também funciona para uma mensagem privada normal.
http://ts-n.net/lexicon.php?showid=97#lexindex

Além disso, o tempo gasto anteriormente pode ser expresso por argumentos:
%1\$s - Dias
%2\$s - horas
%3\$s - minutos
%4\$s - segundos
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Exemplo:
Eii,\\nVocê alcançou uma classificação mais alta, já que você já se conectou para %1\$s Dias, %2\$s horas e %3\$s minutos nosso servidor de TS [b]Continue assim ![/b];-)"; -$lang['wimsgsn'] = "Notícias do servidor"; -$lang['wimsgsndesc'] = "Defina uma mensagem, que será mostrada no /stats/ página como notícias do servidor.

Você pode usar as funções html padrão para modificar o layout

Exemplo:
<b> - para negrito
<u> - para sublinhar
<i> - para itálico
<br> - para uma nova linha"; -$lang['wimsgusr'] = "Notificação de Classificação"; -$lang['wimsgusrdesc'] = "Informar um usuário com uma mensagem de texto privada sobre sua classificação."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Base de dados"; -$lang['winav3'] = "Núcleo"; -$lang['winav4'] = "Outras configuraões"; -$lang['winav5'] = "Mensagem"; -$lang['winav6'] = "Página de estatísticas"; -$lang['winav7'] = "Administrar"; -$lang['winav8'] = "Iniciar / Parar Bot"; -$lang['winav9'] = "Atualização disponível!"; -$lang['winav10'] = "Use a interface web apenas via %s HTTPS%s Uma criptografia é fundamental para garantir sua privacidade e segurança.%sPara poder usar HTTPS, seu servidor web precisa suportar uma conexão SSL."; -$lang['winav11'] = "Digite o ID-Ùnico do administrador do Sistema de ranking (outros -> admin ID). Isso é muito importante caso você perdeu seus dados de login para a interface da web (redefinir usando o ID-Ùnico)."; -$lang['winav12'] = "Complementos"; -$lang['winxinfo'] = "Comando \"!nextup\""; -$lang['winxinfodesc'] = "Permite que o usuário no servidor TS3 escreva o comando \"!nextup\" para o Sistema de ranking (usuário query) como mensagem de texto privada.

Como resposta, o usuário receberá uma mensagem de texto definida com o tempo necessário para o próximo promoção.

desativado - A função está desativada. O comando '!nextup' será ignorado.
permitido - apenas próximo rank - Retorna o tempo necessário para o próximo grupo.
Permitido - permitido - todas as próximas classificações - Retorna o tempo necessário para todas as classificações mais altas."; -$lang['winxmode1'] = "desativado"; -$lang['winxmode2'] = "permitido - apenas a próxima classificação"; -$lang['winxmode3'] = "permitido - todas as próximas classificações"; -$lang['winxmsg1'] = "Mensagem"; -$lang['winxmsgdesc1'] = "Defina uma mensagem, que o usuário receberá como resposta no comando \"nextup\".

Argumentos:
%1$s - Dias para a próxima classificação
%2$s - horas para a próxima classificação
%3$s - minutos para a próxima classificação
%4$s - para a próxima classificação
%5$s - Nome do próximo grupo do servidor
%6$s - name of the user (recipient)

Exemplo:
Seu próximo ranking será em %1$s Dias, %2$s horas e %3$s minutos e %4$s segundos. O próximo grupo do servidor que você alcançará é [B]%5$s[/B]."; -$lang['winxmsg2'] = "Mensagem (Máxima classificação)"; -$lang['winxmsgdesc2'] = "Defina uma mensagem, que o usuário receberá como resposta no comando \"nextup\", quando o usuário já alcançou a classificação mais alta.

Argumentos:
%1$s - Dias para a próxima classificação
%2$s - horas para a próxima classificação
%3$s - minutos para a próxima classificação
%4$s - segundos para a próxima classificação
%5$s - Nome do próximo grupo do servidor
%6$s - name of the user (recipient)

Exemplo:
Você alcançou a maior classificação de %1$s Dias, %2$s horas e %3$s minutos e %4$s segundos."; -$lang['winxmsg3'] = "Mensagem (exceção)"; -$lang['winxmsgdesc3'] = "Defina uma mensagem, que o usuário receberá como resposta no comando\"nextup\", quando o usuário está excluído do Sistema de ranking.

Argumentos:
%1$s - Dias para a próxima classificação
%2$s - horas para a próxima classificação
%3$s - minutos para a próxima classificação
%4$s - segundos para a próxima classificação rankup
%5$s - Nome do próximo grupo do servidor
%6$s - name of the user (recipient)

Exemplo:
Você está excluído do Sistema de ranking. Se você deseja se classificar entre em contato com um administrador no servidor TS3."; -$lang['wirtpw1'] = "Desculpe, mano, você se esqueceu de inserir sua ID de administrador dentro da interface web antes. Não há como redefinir a senha! ;-;"; -$lang['wirtpw2'] = "ID do administrador não encontrada no servidor TS3. Você precisa estar online com o ID exclusivo do cliente, que é salvo como ID de administrador."; -$lang['wirtpw3'] = "O seu endereço IP não corresponde ao endereço IP do administrador no servidor TS3. Certifique-se de que está com o mesmo endereço IP on-line no servidor TS3 e também nesta página o mesmo protocolo (IPv4 / IPv6 também é necessário)."; -$lang['wirtpw4'] = "\nA senha para a interface web foi redefinida com sucesso.\nNome de usuário: %s\nSenha: [B]%s[/B]\n\nEntre %saqui%s"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "A senha da interface web foi redefinida com sucesso.com o pedido do IP %s."; -$lang['wirtpw7'] = "Redefinir Senha"; -$lang['wirtpw8'] = "Aqui você pode redefinir a senha da interface da web."; -$lang['wirtpw9'] = "Seguem-se as coisas necessárias para redefinir a senha:"; -$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."; -$lang['wishcolas'] = "Grupo atual de servidor"; -$lang['wishcolasdesc'] = "Mostrar a coluna 'Grupo atual de servidor' na list_rankup.php"; -$lang['wishcolat'] = "Tempo ativo"; -$lang['wishcolatdesc'] = "Mostrar a coluna 'sum. tempo ativo' na list_rankup.php"; -$lang['wishcolcld'] = "Nome do cliente"; -$lang['wishcolclddesc'] = "Mostrar a coluna 'Nome do cliente' na list_rankup.php"; -$lang['wishcoldbid'] = "ID do banco de dados"; -$lang['wishcoldbiddesc'] = "Mostrar a coluna 'Cliente-database-ID' na list_rankup.php"; -$lang['wishcolgs'] = "Grupo atual desde"; -$lang['wishcolgsdesc'] = "Mostrar a coluna 'Grupo atual desde' na list_rankup.php"; -$lang['wishcolit'] = "Tempo inativo"; -$lang['wishcolitdesc'] = "Mostrar coluna 'Tempo inativo' na list_rankup.php"; -$lang['wishcolls'] = "Visto pela ultima vez"; -$lang['wishcollsdesc'] = "Mostrar a coluna 'visto por ultimo' na list_rankup.php"; -$lang['wishcolnx'] = "Próxima classificação"; -$lang['wishcolnxdesc'] = "Mostrar a coluna 'próxima classificação' na list_rankup.php"; -$lang['wishcolot'] = "Tempo online"; -$lang['wishcolotdesc'] = "Mostrar a coluna 'Tempo online' na list_rankup.php"; -$lang['wishcolrg'] = "Ranking"; -$lang['wishcolrgdesc'] = "Mostrar a coluna 'ranking' na list_rankup.php"; -$lang['wishcolsg'] = "Próxima grupo do servidor"; -$lang['wishcolsgdesc'] = "Mostrar a coluna 'Próximo grupo do servidor' ma list_rankup.php"; -$lang['wishcoluuid'] = "Cliente-ID"; -$lang['wishcoluuiddesc'] = "Mostrar a coluna 'ID-Ùnica' na list_rankup.php"; -$lang['wishexcld'] = "Clientes em exceção"; -$lang['wishexclddesc'] = "Mostrar clientes ma list_rankup.php,
que são excluídos e, portanto, não participam do Sistema de ranking."; -$lang['wishexgrp'] = "Grupos em exceção"; -$lang['wishexgrpdesc'] = "Mostrar clientes na list_rankup.php, que estão na lista 'clientes em exceção' e não devem ser considerados para o Sistema de Ranking."; -$lang['wishhicld'] = "Clientes com o mais alto nível"; -$lang['wishhiclddesc'] = "Mostrar clientes na list_rankup.php, que atingiu o nível mais alto no Sistema de ranking."; -$lang['wishnav'] = "Mostrar o site de navegação "; -$lang['wishnavdesc'] = "Mostrar a aba de navegação na 'stats/' pagina.

Se esta opção estiver desativada na página de estatísticas, a navegação do site será escondida.
Você pode então pegar cada site, por exemplo, 'stats/list_rankup.php' e incorporar isso como quadro em seu site ou quadro de avisos existente."; -$lang['wisupidle'] = "Modo"; -$lang['wisupidledesc'] = "Existem dois modos, pois o tempo pode ser contado e pode então se inscrever para um aumento de classificação.

1) Tempo online: Aqui, o tempo online do usuário é levado em consideração (ver coluna 'tempo online' na 'stats/list_rankup.php')

2) tempo ativo: isso será deduzido do tempo online de um usuário, o tempo inativo.o ranking classifica quem tem o maior tempo ativo no servidor.

Não é recomendada uma mudança de modo com um banco de dados já executado mais longo, mas pode funcionar."; -$lang['wisvconf'] = "Salvar"; -$lang['wisvsuc'] = "Mudanças salvas com sucesso!"; -$lang['wisvres'] = "Você precisa reiniciar o Sistema de ranking antes para que as mudanças entrem em vigor!"; -$lang['witime'] = "Fuso horário"; -$lang['witimedesc'] = "Selecione o fuso horário em que o servidor está hospedado."; -$lang['wits3avat'] = "Atraso do Avatar"; -$lang['wits3avatdesc'] = "Defina um tempo em segundos para atrasar o download dos avatares TS3 alterados.

Esta função é especialmente útil para bots (de música), que estão mudando seu avatar periodicamente."; -$lang['wits3dch'] = "Canal padrão"; -$lang['wits3dchdesc'] = "O ID do canal que o bot vai se conectar.

O Bot irá se juntar a este canal depois de se conectar ao servidor TeamSpeak."; -$lang['wits3host'] = "TS3 Endereço do host"; -$lang['wits3hostdesc'] = "Endereço do servidor TeamSpeak 3
(IP ou DNS)"; -$lang['wits3sm'] = "Modo lento"; -$lang['wits3smdesc'] = "Com o modo lento, você pode reduzir \"spam\" de comandos de consulta para o servidor TeamSpeak. Isso evita proibições em caso de inundação.
Os comandos do TeamSpeak Query são atrasados com esta função.

!!! TAMBÉM REDUZ O USO DA CPU !!!

A ativação não é recomendada, se não for necessária. O atraso aumenta a duração do Bot, o que o torna impreciso.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Nome do bot"; -$lang['wits3qnm2'] = "Segundo nome do bot"; -$lang['wits3qnm2desc'] = "Um nome reserva, se o primeiro já estiver em uso."; -$lang['wits3qnmdesc'] = "O nome, com isso, a conexão de consulta será estabelecida.
Você pode nomeá-lo livremente."; -$lang['wits3querpw'] = "TS3 Query-senha"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 senha query
Senha para o usuário da consulta."; -$lang['wits3querusr'] = "TS3 Usuário-query"; -$lang['wits3querusrdesc'] = "Nome de usuário da consulta TeamSpeak 3
O padrão é serveradmin
Claro, você também pode criar uma conta de serverquery adicional somente para o Sistema de ranking.
As permissões necessárias que você encontra em:
http://ts-n.net/ranksystem.php"; -$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['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"; -$lang['wivlangdesc'] = "Escolha um idioma padrão para o Sistema de ranking.

O idioma também é selecionável nos sites para os usuários e será armazenado para as próximas sessões."; + adicionado ao sistema de ranking agora."; +$lang['brute'] = "Muitos logins incorretos detectados na interface da web. Acesso bloqueado por 300 segundos! Último acesso pelo IP %s."; +$lang['changedbid'] = "O usuário %s (ID-Ùnica:: %s) obteve um novo ID no banco de dados do teamspeak (%s). Atualize o antigo Client-banco de dados-ID (%s) e reinicie os tempos coletados!"; +$lang['crawl'] = "Procure o usuário conectado e conte a atividade..."; +$lang['clean'] = "Procurando por clientes, que devem ser excluidos..."; +$lang['cleanc'] = "Clientes limpos"; +$lang['cleancdesc'] = "Com essa função os antigos clientes do Sistema de ranking são excluidos.

o Sistema de ranking sincronizado com o banco de dados TeamSpeak. Os clientes, que não existem no TeamSpeak, serão excluídos do Sistema de ranking.

Esta função só é ativada quando o 'Modo Lento' está desativado!


Para o ajuste automático do banco de dados TeamSpeak, o ClientCleaner pode ser usado:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Havia %s clientes para ser excluídos do banco de dados do Sistema de ranking, porque eles não estavam mais no banco de dados TeamSpeak."; +$lang['cleanno'] = "Não havia nada para excluir..."; +$lang['cleanp'] = "Período de limpeza"; +$lang['cleanpdesc'] = "Defina o tempo que deve decorrer antes que os 'Período de limpeza' seja executado.

Defina o tempo em segundos.

Recomendado é uma vez por dia, porque a limpeza do cliente precisa de muito tempo para grandes banco de dados."; +$lang['cleanrs'] = "Clientes no banco de dados do Sistema de ranking: %s"; +$lang['cleants'] = "Clienes encontratos no banco de dados do TeamSpeak: %s (de %s)"; +$lang['clean0001'] = "Avatar desnecessário eliminado %s (ID-Ùnica: %s) com êxito."; +$lang['clean0002'] = "Erro ao excluir o avatar desnecessário %s (ID-Ùnica: %s). Verifique a permissão para a pasta 'avatars'!"; +$lang['clean0003'] = "Verifique se o banco de dados de limpeza está pronto. Todas as coisas desnecessárias foram excluídas."; +$lang['clean0004'] = "Verifique se há exclusão de usuários. Nada foi alterado, porque a função 'clean clients' está desabilitada. (interface web - núcleo)."; +$lang['day'] = "%s dia"; +$lang['days'] = "%s dias"; +$lang['dbconerr'] = "Falha ao conectar ao banco de dados: "; +$lang['delcldgrpif'] = "Erro ao remover o conhecimento para os grupos do servidor: %s"; +$lang['delcldgrpsc'] = "Conhecimento sobre os grupos do servidor para %s Usuário removido com sucesso."; +$lang['delclientsif'] = "%s Clientes excluídos do banco de dados do Sistema de ranking!"; +$lang['delclientssc'] = "%s clientes excluídos com sucesso do banco de dados do Sistema de ranking"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$lang['errgrpid'] = "Suas alterações não foram armazenadas no banco de dados, devido aos erros ocorridos. Por favor corrija os problemas e salve suas alterações depois!"; +$lang['errgrplist'] = "Erro ao obter servergrouplist: "; +$lang['errlogin'] = "Nome de usuário e/ou senha estão incorretos! Tente novamente..."; +$lang['errlogin2'] = "Proteção de força bruta: tente novamente em %s segundos!"; +$lang['errlogin3'] = "Proteção de força bruta: muitos erros. Banido por 300 segundos!"; +$lang['error'] = "Erro "; +$lang['errorts3'] = "TS3 Erro: "; +$lang['errperm'] = "Porfavor verifique a permissão da pasta '%s'!"; +$lang['errremgrp'] = "Erro ao remover o usuário com ID-Ùnica %s do grupo de servidor Data base-ID %s!"; +$lang['errremdb'] = "Erro ao remover o usuário com ID-Ùnica %s do banco de dados do Sistema de ranking!"; +$lang['errselusr'] = "Escolha pelo menos um usuário!"; +$lang['errseltime'] = "Por favor, indique um tempo on-line para adicionar!"; +$lang['errukwn'] = "Um erro desconhecido ocorreu!"; +$lang['errupcount'] = "Erro ao renovar o tempo on-line de %s do usuário com o ID-Ùnica %s"; +$lang['highest'] = "maior classificação alcançada"; +$lang['install'] = "Instalação"; +$lang['instdb'] = "Instalar o banco de dados"; +$lang['instdbsuc'] = "Banco de dados %s criado com sucesso."; +$lang['insterr1'] = "ATENÇÃO: Você está tentando instalar o Sistema de ranking, mas já existe um banco de dados com o nome \"%s\".
Devido a instalação, este banco de dados será descartado!
Certifique-se se quer escolher isso. Caso contrário, escolha um outro nome de banco de dados."; +$lang['insterr2'] = "PDO é necessário, mas parece que não está instalado. Instalar PDO e tente novamente!"; +$lang['insterr3'] = "A função PHP exec precisa ser ativada, mas parece estar desativada. Por favor, ative o PHP exec e tente novamente!"; +$lang['insterr4'] = "Sua versão PHP (%s) está abaixo de 5.5.0. Atualize seu PHP e tente novamente!"; +$lang['insterr5'] = "SimpleXML é necessário, mas parece não estar disponível. Instalar simpleXML e tente novamente!"; +$lang['insterr6'] = "PHP cURL é necessário, mas parece não estar disponível. Instalar PHP cURL e tente novamente!"; +$lang['insterr7'] = "PHP Zip é necessário, mas parece não estar disponível. Instalar PHP Zip e tente novamente!"; +$lang['insterr8'] = "PHP COM extensão (php_com_dotnet.dll) é necessário, mas não parece estar disponível. Instalar PHP COM e tente novamente!"; +$lang['insterr9'] = "PHP PDO MySQL extensão (php_pdo_mysql.so) é necessário, mas parece não estar disponível. Instalar PHP PDO MySQL e tente novamente!"; +$lang['isntwicfg'] = "Não é possível salvar a configuração do banco de dados! Edite o 'other/dbconfig.php' com um chmod 0777 (no windows 'acesso total') e tente novamente após."; +$lang['isntwicfg2'] = "Configure a Interface da Web"; +$lang['isntwichm'] = "Permissões de gravação falhou na pasta \"%s\". Por favor, dê a permissão chmod 777 (no windows 'acesso total') e tente iniciar o Sistema de ranking novamente."; +$lang['isntwiconf'] = "Abra o %s para configurar o Sistema de ranking!"; +$lang['isntwidbhost'] = "Endereço do host da DB:"; +$lang['isntwidbhostdesc'] = "Endereço do servidor de banco de dados
(IP ou DNS)"; +$lang['isntwidbmsg'] = "Erro de banco de dados: "; +$lang['isntwidbname'] = "Nome da DB:"; +$lang['isntwidbnamedesc'] = "Nome do banco de dados"; +$lang['isntwidbpass'] = "Senha da DB:"; +$lang['isntwidbpassdesc'] = "Senha para acessar o banco de dados"; +$lang['isntwidbtype'] = "Tipo de DB:"; +$lang['isntwidbtypedesc'] = "Tipo de banco de dados

Você precisa instalar o necessário PDO Driver.
Para mais informações, veja os requisitos em http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "Usuário da DB:"; +$lang['isntwidbusrdesc'] = "Usuário para acessar o banco de dados"; +$lang['isntwidel'] = "Por favor, exclua o arquivo 'install.php' do seu servidor web"; +$lang['isntwiusr'] = "Usuário para a interface web criado com sucesso."; +$lang['isntwiusrcr'] = "Criar usuário para Interface web"; +$lang['isntwiusrdesc'] = "Digite um nome de usuário e uma senha para acessar a interface da web. Com a interface web, você pode configurar o sistema de ranking."; +$lang['isntwiusrh'] = "Acesso - Interface da Web"; +$lang['listacsg'] = "Grupo atual do Servidor"; +$lang['listcldbid'] = "Cliente-database-ID"; +$lang['listexcept'] = "Não, client em exceção"; +$lang['listgrps'] = "actual group since"; +$lang['listnick'] = "Nome"; +$lang['listnxsg'] = "Próximo grupo"; +$lang['listnxup'] = "Próximo ranking em"; +$lang['listrank'] = "Ranking"; +$lang['listseen'] = "Visto pela última vez"; +$lang['listsuma'] = "Tempo total ativo"; +$lang['listsumi'] = "Tempo total afk"; +$lang['listsumo'] = "Tempo total Online"; +$lang['listuid'] = "ID ùnica"; +$lang['login'] = "Entrar"; +$lang['msg0001'] = "versão em execução: %s"; +$lang['msg0002'] = "Os comandos válidos são:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot"; +$lang['msg0003'] = "Você não é elegível para usar este comando!"; +$lang['msg0004'] = "Cliente %s (%s) fez o pedido de desligamento."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Cliente %s (%s) fez o pedido de inicialização."; +$lang['msg0008'] = "Verificação de atualização concluída. Se uma atualização estiver disponível, ela será executada imediatamente."; +$lang['msg0009'] = "A limpeza do banco de dados do usuário foi iniciada. Dê uma olhada no log do sistema de ranking para obter mais informações."; +$lang['nocount'] = "Usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) é um usuário de query ou está se conectando vezes online (apenas contagens de primeira conexão) -> isso não vai contar!"; +$lang['noentry'] = "Nenhuma entrada encontrada.."; +$lang['pass'] = "Senha"; +$lang['pass2'] = "Alterar a senha"; +$lang['pass3'] = "Senha antiga"; +$lang['pass4'] = "Nova senha"; +$lang['pass5'] = "Esqueceu a senha?"; +$lang['queryname'] = "Primeiro nome do bot já em uso. Tentando com o segundo Nome..."; +$lang['repeat'] = "repetir"; +$lang['resettime'] = "Redefinir o tempo de inatividade e tempo livre do usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) para zero, porque o usuário foi removido fora da exceção."; +$lang['sccrmcld'] = "Usuário com ID-Ùnica %s removido com sucesso do banco de dados do Sistema de ranking."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "tempo extra"; +$lang['setontimedesc'] = "Adicione tempo online aos clientes selecionados. Cada usuário obterá esse tempo adicional ao seu antigo tempo online.

O tempo online estabelecido será considerado para o ranking e deverá entrar em vigor imediatamente."; +$lang['sgrpadd'] = "Conceder o grupo do servidor %s ao usuário %s (ID-Ùnica: %s; Cliente-database-ID %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "Grupo do servidor removido %s do usuário %s (ID-Ùnica: %s; Cliente-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'] = "Adicionar Grupos/Tags"; +$lang['stag0002'] = "Grupos permitidos"; +$lang['stag0003'] = "Defina uma lista de grupos do servidor, que um usuário pode se atribuir.

Os grupos do servidor devem ser inseridos aqui com o seu grupo-ID separado por vírgulas.

Exemplo:
23,24,28"; +$lang['stag0004'] = "Limite de grupos"; +$lang['stag0005'] = "Limite o número de grupos do servidor, que podem ser configurados ao mesmo tempo."; +$lang['stag0006'] = "Existem vários ID únicos online com seu endereço IP. Por favor, %sClique aqui%s para verificar primeiro."; +$lang['stag0007'] = "Aguarde até as últimas alterações terem efeito antes de mudar outras coisas..."; +$lang['stag0008'] = "Alterações de grupo salvas com sucesso. Pode levar alguns segundos até ter efeito no servidor ts3."; +$lang['stag0009'] = "Você não pode escolher mais de %s grupo(s) ao mesmo tempo!"; +$lang['stag0010'] = "Escolha pelo menos um novo grupo."; +$lang['stag0011'] = "Limite de Grupos: "; +$lang['stag0012'] = "Salvar"; +$lang['stag0013'] = "Módulo ONline/OFFline"; +$lang['stag0014'] = "Troque o módulo online (habilitado) ou desligado (desativado).

Ao desativar o addon, uma possível parte nas stats/ do site estará escondida."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "Estatísticas do Servidor"; +$lang['stix0002'] = "Total de usuários"; +$lang['stix0003'] = "Ver detalhes"; +$lang['stix0004'] = "Tempo online de todos os usuários/total"; +$lang['stix0005'] = "Veja o top de todos os tempos"; +$lang['stix0006'] = "Veja o top do mês"; +$lang['stix0007'] = "Veja o top da semana"; +$lang['stix0008'] = "Uso do servidor"; +$lang['stix0009'] = "Nos últimos 7 Dias"; +$lang['stix0010'] = "Nos últimos 30 Dias"; +$lang['stix0011'] = "Nas últimas 24 horas"; +$lang['stix0012'] = "Selecionar peíodo"; +$lang['stix0013'] = "Ùltimo dia"; +$lang['stix0014'] = "Ùtima semana"; +$lang['stix0015'] = "Ùtimo mês"; +$lang['stix0016'] = "Tempo ativo / inativo (de todos os clientes)"; +$lang['stix0017'] = "Versões (de todos os clientes)"; +$lang['stix0018'] = "Nacionalidades (de todos os clientes)"; +$lang['stix0019'] = "Plataformas (de todos os clientes)"; +$lang['stix0020'] = "Estatísticas atuais"; +$lang['stix0023'] = "Status do servidor"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Clientes (Online / Max)"; +$lang['stix0027'] = "Quantidade de canais"; +$lang['stix0028'] = "Média de ping"; +$lang['stix0029'] = "Total de bytes recebidos"; +$lang['stix0030'] = "Total de bytes enviados"; +$lang['stix0031'] = "Tempo ativo do servidor"; +$lang['stix0032'] = "before offline:"; +$lang['stix0033'] = "00 Dias, 00 Horas, 00 Min, 00 Seg"; +$lang['stix0034'] = "Perda média de pacotes"; +$lang['stix0035'] = "Estatísticas gerais"; +$lang['stix0036'] = "Nome do Servidor"; +$lang['stix0037'] = "Endereço do servidor (endereço : porta)"; +$lang['stix0038'] = "Senha do servidor"; +$lang['stix0039'] = "Não (Servidor é publico)"; +$lang['stix0040'] = "Sim (Servidor é privado)"; +$lang['stix0041'] = "ID do servidor"; +$lang['stix0042'] = "Plataforma do servidor"; +$lang['stix0043'] = "Versão do servidor"; +$lang['stix0044'] = "Data da criação do servidor (dd/mm/yyyy)"; +$lang['stix0045'] = "Relatório de servidores"; +$lang['stix0046'] = "Ativado"; +$lang['stix0047'] = "Não ativado"; +$lang['stix0048'] = "ainda não há dados suficientes..."; +$lang['stix0049'] = "Tempo online de todos os usuários / Mês"; +$lang['stix0050'] = "Tempo online de todos os usuários / Semana"; +$lang['stix0051'] = "TeamSpeak falhou, então nenhuma data de criação"; +$lang['stix0052'] = "outros"; +$lang['stix0053'] = "Tempo Ativo (em Dias)"; +$lang['stix0054'] = "Tempo Inativo (em Dias)"; +$lang['stix0055'] = "on-line nas últimas 24 horas"; +$lang['stix0056'] = "online nos últimos %s Dias"; +$lang['stix0059'] = "Lista de usuários"; +$lang['stix0060'] = "Usuário"; +$lang['stix0061'] = "Ver todas as versões"; +$lang['stix0062'] = "Veja todas as nações"; +$lang['stix0063'] = "Ver todas as plataformas"; +$lang['stmy0001'] = "Minhas estatísticas"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "ID da data base:"; +$lang['stmy0004'] = "ID Ùnica:"; +$lang['stmy0005'] = "Conexões totais no servidor:"; +$lang['stmy0006'] = "Data de início das estatísticas:"; +$lang['stmy0007'] = "Tempo total online:"; +$lang['stmy0008'] = "Tempo online nos últimos %s Dias:"; +$lang['stmy0009'] = "Ativo nos últimos %s Dias:"; +$lang['stmy0010'] = "Realizações concluídas:"; +$lang['stmy0011'] = "Progresso da conquista de tempo"; +$lang['stmy0012'] = "Tempo: Lendário"; +$lang['stmy0013'] = "Porque você tem um tempo online de %s horas."; +$lang['stmy0014'] = "Progresso concluído"; +$lang['stmy0015'] = "Tempo: Ouro"; +$lang['stmy0016'] = "% Completado para o Lendário"; +$lang['stmy0017'] = "Tempo: Prata"; +$lang['stmy0018'] = "% Completado para o Ouro"; +$lang['stmy0019'] = "Tempo: Bronze"; +$lang['stmy0020'] = "% Completado para o Prata"; +$lang['stmy0021'] = "Tempo: Não classificado"; +$lang['stmy0022'] = "% Completado para o Bronze"; +$lang['stmy0023'] = "Progresso da realização de conexão"; +$lang['stmy0024'] = "conexões: Lendário"; +$lang['stmy0025'] = "Porque você se conectou %s vezes no servidor."; +$lang['stmy0026'] = "Conexões: Ouro"; +$lang['stmy0027'] = "Conexões: Prata"; +$lang['stmy0028'] = "Conexões: Bronze"; +$lang['stmy0029'] = "Conexões: Não classificado"; +$lang['stmy0030'] = "Progresso para o próximo grupo"; +$lang['stmy0031'] = "Tempo total ativo"; +$lang['stna0001'] = "Nações"; +$lang['stna0002'] = "Estatisticas"; +$lang['stna0003'] = "Código"; +$lang['stna0004'] = "País"; +$lang['stna0005'] = "Versões"; +$lang['stna0006'] = "Plataformas"; +$lang['stna0007'] = "Porcentagem"; +$lang['stnv0001'] = "Notícias do Servidor"; +$lang['stnv0002'] = "Fechar"; +$lang['stnv0003'] = "Atualizar informações do cliente"; +$lang['stnv0004'] = "Use apenas esta atualização, quando suas informações TS3 foram alteradas, como seu nome de usuário TS3"; +$lang['stnv0005'] = "Só funciona, quando você está conectado ao servidor TS3 ao mesmo tempo"; +$lang['stnv0006'] = "Atualizar"; +$lang['stnv0007'] = "Área de batalha - Conteúdo da página"; +$lang['stnv0008'] = "Você pode desafiar outros usuários em uma batalha entre dois usuários ou duas equipes."; +$lang['stnv0009'] = "Enquanto a batalha estiver ativa, o tempo online dos times / usuários será contado.."; +$lang['stnv0010'] = "Quando a batalha termina, o time / usuário com maior tempo online ganha."; +$lang['stnv0011'] = "(O tempo de luta regular é de 48 horas)"; +$lang['stnv0012'] = "O time / usuário vencedor receberá um preço, que o usuário pode usar sempre que o usuário quiser."; +$lang['stnv0013'] = "Será exibido na aba Minhas estatísticas."; +$lang['stnv0014'] = "(Pode ser o impulso de tempo online (2x) por 8 horas, tempo instantâneo online (4 horas), etc."; +$lang['stnv0015'] = "Esses impulsos podem ser usados, por exemplo, para escalar os principais usuários da semana."; +$lang['stnv0016'] = "Não disponível"; +$lang['stnv0017'] = "Você não está conectado ao servidor TS3, portanto, ele não pode exibir dados para você."; +$lang['stnv0018'] = "Conecte-se ao servidor TS3 e, em seguida, atualize sua sessão pressionando o botão de atualização azul no canto superior direito."; +$lang['stnv0019'] = "Minhas estatísticas - Conteúdo da página"; +$lang['stnv0020'] = "Esta página contém um resumo geral de suas estatísticas e atividades pessoais no servidor."; +$lang['stnv0021'] = "As informações são coletadas desde o início do sistems de Ranking, elas não são desde o início do servidor TeamSpeak."; +$lang['stnv0022'] = "Esta página recebe seus valores de um banco de dados. Portanto, os valores podem ser atrasados um pouco."; +$lang['stnv0023'] = "A quantidade de tempo online para todos os usuários por semana e por mês será calculada apenas a cada 15 minutos. Todos os outros valores devem estar quase ao vivo (no máximo atrasado por alguns segundos)."; +$lang['stnv0024'] = "Ranking - Estatisticas"; +$lang['stnv0025'] = "Limite de Nomes"; +$lang['stnv0026'] = "Todos"; +$lang['stnv0027'] = "As informações neste site podem estar desatualizadas! Parece que o Sistema de ranking não está mais conectado ao TeamSpeak."; +$lang['stnv0028'] = "(Você não está conectado ao TS3!)"; +$lang['stnv0029'] = "Ranking"; +$lang['stnv0030'] = "Informações"; +$lang['stnv0031'] = "Sobre o campo de pesquisa, você pode procurar pelo o nome do cliente, ID do cliente e pelo ID do banco de dados do cliente.."; +$lang['stnv0032'] = "Você também pode usar as opções de filtro de exibição (veja abaixo). Digite o filtro também dentro do campo de pesquisa."; +$lang['stnv0033'] = "Combinação de filtro e padrão de busca são possíveis. Digite primeiro o (s) filtro (s) seguido sem nenhum padrão de busca."; +$lang['stnv0034'] = "Também é possível combinar vários filtros. Digite isso consecutivamente dentro do campo de pesquisa."; +$lang['stnv0035'] = "Exemplo:
Filtro:exceção:TeamSpeakUser"; +$lang['stnv0036'] = "Mostrar apenas clientes, que são aceitos (cliente, grupo de servidores ou exceção de canal)."; +$lang['stnv0037'] = "Mostrar apenas clientes, que não estão excluídos."; +$lang['stnv0038'] = "Mostrar apenas clientes, que estão online."; +$lang['stnv0039'] = "Mostrar apenas clientes, que não estão online."; +$lang['stnv0040'] = "Mostrar apenas clientes, que estão em grupo definido. Represente o nível / ranking.
Substituir GRUPOIP com o desejado grupo de servidores ID."; +$lang['stnv0041'] = "Mostrar apenas clientes, que são selecionados por entre.
Substituir OPERATOR por '<' or '>' or '=' or '!='.
E Substituir TEMPO com data / hora com formato"; +$lang['stnv0042'] = "Mostrar apenas clientes, que são de país definido.
Substitua TS3-COUNTRY-CODE com o país desejado.
Para a lista de códigos google"; +$lang['stnv0043'] = "Conectar no TS3"; +$lang['stri0001'] = "Informações"; +$lang['stri0002'] = "Oque é o Sistema de ranking?"; +$lang['stri0003'] = "È um script, que automaticamente atribui classificações (grupos do servidor) ao usuário no TeamSpeak 3 Server para tempo on-line ou atividade on-line. Ele também reúne informações e estatísticas sobre o usuário e exibe o resultado neste site."; +$lang['stri0004'] = "Quem criou o Sistema de Ranking?"; +$lang['stri0005'] = "Quando foi criado o Sistema de Ranking?"; +$lang['stri0006'] = "Primeira versão alfa: 05/10/2014."; +$lang['stri0007'] = "Lançamento aberto: 01/02/2015."; +$lang['stri0008'] = "Você pode ver a versão mais recente em Sistema de ranking Website.."; +$lang['stri0009'] = "Como o Sistema de ranking foi criado?"; +$lang['stri0010'] = "O Sistema de ranking está codificado em"; +$lang['stri0011'] = "Ele também usa as seguintes bibliotecas:"; +$lang['stri0012'] = "Agradecimentos especiais para:"; +$lang['stri0013'] = "sergey, Arselopster & DeviantUser - pela tradução em russo"; +$lang['stri0014'] = "Bejamin Frost - pela inicialização do design bootstrap"; +$lang['stri0015'] = "ZanK & jacopomozzy - pela tradução em italiano"; +$lang['stri0016'] = "DeStRoYzR & Jehad - pela tradução em arábico"; +$lang['stri0017'] = "SakaLuX - pela tradução em romena"; +$lang['stri0018'] = "0x0539 - pela tradução em holandês"; +$lang['stri0019'] = "Quentinti - pela tradução em francês"; +$lang['stri0020'] = "Pasha - pela tradução em português"; +$lang['stri0021'] = "Shad86 - pelo excelente suporte no GitHub e no nosso servidor público, compartilhando suas idéias, testando antes toda merda e muito mais"; +$lang['stri0022'] = "mightyBroccoli - por compartilhar suas idéias e pré-teste"; +$lang['stri0023'] = "Estável desde: 18/04/2016."; +$lang['stri0024'] = "KeviN - for czech translation"; +$lang['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Top Usuários"; +$lang['sttw0002'] = "Da Semana"; +$lang['sttw0003'] = "Com %s %s online"; +$lang['sttw0004'] = "Top 10 comparação"; +$lang['sttw0005'] = "Horas (O Melhor 100 %)"; +$lang['sttw0006'] = "%s horas (%s%)"; +$lang['sttw0007'] = "Top 10 Estatisticas"; +$lang['sttw0008'] = "Top 10 vs outros em tempo online"; +$lang['sttw0009'] = "Top 10 vs outros em tempo ativo"; +$lang['sttw0010'] = "Top 10 vs outros em tempo inativo"; +$lang['sttw0011'] = "Top 10 (in horas)"; +$lang['sttw0012'] = "Outros %s usuários (em horas)"; +$lang['sttw0013'] = "Com %s %s ativo"; +$lang['sttw0014'] = "horas"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "Do Mês"; +$lang['stta0001'] = "De Todos os Tempos"; +$lang['stve0001'] = "\nOlá %s,\npara verificar você com o Sistema de Ranking clique no link abaixo:\n[B]%s[/B]\n\nSe o link não funcionar, você também pode digitar o token manualmente em:\n%s\n\nSe você não solicitou esta mensagem, ignore-a. Quando você está recebendo várias vezes, entre em contato com um administrador."; +$lang['stve0002'] = "Uma mensagem com o token foi enviada para você no servidor TS3."; +$lang['stve0003'] = "Digite o token, que você recebeu no servidor TS3. Se você não recebeu uma mensagem, certifique-se de ter escolhido a ID exclusiva correta."; +$lang['stve0004'] = "O token inserido não corresponde! Por favor, tente novamente."; +$lang['stve0005'] = "Parabéns, você foi verificado com sucesso! Você pode continuar .."; +$lang['stve0006'] = "Ocorreu um erro desconhecido. Por favor, tente novamente. Se o erro continuar, entre em contato com um administrador"; +$lang['stve0007'] = "Verifique no TeamSpeak"; +$lang['stve0008'] = "Escolha aqui sua ID/Nick no servidor TS3 para verificar-se."; +$lang['stve0009'] = " -- Escolha um -- "; +$lang['stve0010'] = "Você receberá um token no servidor TS3, que você deve inserir aqui:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verificar"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Seg(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Hr(s)"; +$lang['time_day'] = "Dia(s)"; +$lang['upgrp0001'] = "Existe um grupo de servidor ID %s configurado dentro de seu '%s' parâmetro, mas a ID do grupo de servidores não está saindo no seu servidor TS3 (ou não mais)! Corrija isso ou os erros podem acontecer!"; +$lang['upgrp0002'] = "Baixar novos ícones de servidor"; +$lang['upgrp0003'] = "Erro ao ler icones de servidor."; +$lang['upgrp0004'] = "Erro durante o download do ícone TS3 do seu servidor: "; +$lang['upgrp0005'] = "Erro ao excluir o ícone do servidor."; +$lang['upgrp0006'] = "Avisou que o Ícone do Servidor foi removido do servidor TS3, agora também foi removido do Sistema de Ranking."; +$lang['upgrp0007'] = "Erro ao escrever o ícone do grupo do servidor, do grupo %s Com ID %s."; +$lang['upgrp0008'] = "Erro durante o download do ícone do grupo de servidores, do grupo %s Com ID %s: "; +$lang['upgrp0009'] = "Erro ao excluir o ícone do grupo do servidor, do grupo %s Com ID %s."; +$lang['upgrp0010'] = "Avisou que o grupo de servidor %s com ID %s foi removido do servidor TS3, agora também foi removido do Sistema de Ranking"; +$lang['upgrp0011'] = "Baixe o novo ícone do grupo de servidores para o grupo %s com ID: %s"; +$lang['upinf'] = "Uma nova versão do Sistema de ranking está disponível; Informar clientes no servidor..."; +$lang['upinf2'] = "O Sistema de Ranking foi recentemente(%s) atualizado. Confira a %sChangelog%s para obter mais informações sobre as mudanças."; +$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['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]."; +$lang['upusrerr'] = "O ID-Ùnico %s não conseguiu alcançar o TeamSpeak!"; +$lang['upusrinf'] = "Usuário %s foi informado com sucesso."; +$lang['user'] = "Nome de usuário"; +$lang['verify0001'] = "Certifique-se, você está realmente conectado ao servidor TS3!"; +$lang['verify0002'] = "Digite, se não estiver feito, o Sistema de Ranking %sverification-channel%s!"; +$lang['verify0003'] = "Se você realmente está conectado ao servidor TS3, entre em contato com um administrador lá.
Isso precisa criar um canal de verificação no servidor TeamSpeak. Depois disso, o canal criado precisa ser definido no Sistema de Ranking, que apenas um administrador pode fazer.
Mais informações o administrador encontrará dentro da interface web (-> núcleo) do Sistema de Ranking.

Sem esta atividade, não é possível verificar você para o Sistema de Ranking neste momento! Desculpa :("; +$lang['verify0004'] = "Nenhum usuário dentro do canal de verificação encontrado..."; +$lang['wi'] = "Interface web"; +$lang['wiaction'] = "açao"; +$lang['wiadmhide'] = "Esconder clientes em exceção"; +$lang['wiadmhidedesc'] = "Para ocultar o usuário excluído na seguinte seleção"; +$lang['wiadmuuid'] = "ID do administrador"; +$lang['wiadmuuiddesc'] = "Digite aqui o seu ID-Ùnico; como administrador do Sistema de ranking.
Also multiple Client-IDs are possible -> comma separated

Isso é necessário para redefinir a senha do interface da web.

Não existe um endereço de identificação de cliente Ùnico, não é possível redefinir a senha!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$lang['wiboost'] = "Impulso"; +$lang['wiboostdesc'] = "Forneça ao usuário do TeamSpeak um servidor de grupo (deve ser criado manualmente), que você pode declarar aqui como grupo de impulsionar. Definir também um fator que deve ser usado (por exemplo, 2x) e um tempo, quanto tempo o impulso deve ser avaliado. Quanto maior o fator, mais rápido um usuário atinge o próximo ranking mais alto.
O tempo expirou , o grupo de servidores boost é automaticamente removido do usuário em questão. O tempo começa a correr logo que o usuário recebe o grupo de servidores.

grupo do servidor ID => factor => time (em segundos)

Cada entrada deve separar do próximo com uma vírgula.

Exemplo:
12 => 2 => 6000,13 => 3 => 2500,14 => 5 => 600

Neste usuário no grupo de servidores 12, obtenha o fator 2 para nos próximos 6000 segundos, um usuário no grupo de servidores 13 obtém o fator 3 por 2500 segundos, e assim por diante ..."; +$lang['wibot1'] = "O Sistema de ranking foi interrompido. Verifique o registro abaixo para obter mais informações!"; +$lang['wibot2'] = "O Sistema de ranking foi iniciado. Verifique o registro abaixo para obter mais informações!"; +$lang['wibot3'] = "O Sistema de ranking foi reiniciado. Verifique o registro abaixo para obter mais informações!"; +$lang['wibot4'] = "Iniciar / Parar Ranking Bot"; +$lang['wibot5'] = "Iniciar Bot"; +$lang['wibot6'] = "Parar Bot"; +$lang['wibot7'] = "Reiniciar Bot"; +$lang['wibot8'] = "Logs do Sistema de ranking(extraido):"; +$lang['wibot9'] = "Preencha todos os campos obrigatórios antes de iniciar o Sistems de ranking Bot!"; +$lang['wichdbid'] = "Resetar data base de clientes"; +$lang['wichdbiddesc'] = "Redefinir o tempo online de um usuário, se o seu TeamSpeak Client-database-ID mudado.

Exemplo:
Se um cliente for removido do servidor TeamSpeak, ele obtém uma nova ID do banco de dados do cliente com o Depois conecte-se ao servidor."; +$lang['wiconferr'] = "Há um erro na configuração do Sistema de ranking. Acesse a interface da web e corrija as Configurações do núcleo. Especialmente verifique o config 'Classificações'!"; +$lang['wichpw1'] = "Sua senha antiga está errada. Por favor, tente novamente"; +$lang['wichpw2'] = "As novas senhas são incompatíveis. Por favor, tente novamente."; +$lang['wichpw3'] = "A senha da interface web foi alterada com sucesso. Pedido do IP %s."; +$lang['wichpw4'] = "Mudar senha"; +$lang['widaform'] = "Formato de data"; +$lang['widaformdesc'] = "Escolha o formato da data de exibição.

Exemplo:
%a Dias, %h horas, %i minutos, %s segundos"; +$lang['widbcfgsuc'] = "Configurações de banco de dados salvas com sucesso."; +$lang['widbcfgerr'] = "Erro ao salvar as configurações do banco de dados! A conexão falhou ou escreveu erro para 'other/dbconfig.php'"; +$lang['widelcld'] = "excluir clientes"; +$lang['widelcldgrp'] = "renovar grupos"; +$lang['widelcldgrpdesc'] = "O Sistema de ranking lembra os grupos de servidores fornecidos, portanto, não precisa dar / verificar isso com cada execução do worker.php novamente.

Com esta função, você pode remover uma vez o conhecimento de determinados grupos de servidores. Com efeito, o sistema de classificação tenta dar a todos os clientes (que estão no servidor TS3 on-line) o grupo de servidores da classificação real.
Para cada cliente, que recebe o grupo ou permaneça em grupo, o Sistema de ranking lembre-se disso, como descrito no início.

Esta função pode ser útil, quando o usuário não estiver no grupo de servidores, eles devem ser para o tempo definido online.

Atenção: Execute isso em um momento, onde os próximos minutos não há rankings tornar-se devido !!! O Sistema de ranking não pode remover o grupo antigo, porque não pode lembrar;-)"; +$lang['widelclddesc'] = "Exclua os clientes antes selecionados do banco de dados do Sistema de ranking.

Com essa exclusão, os clientes no TeamSpeak Server não foram tocados."; +$lang['widelsg'] = "remova os grupos do servidor"; +$lang['widelsgdesc'] = "Escolha se os clientes também devem ser removidos do último grupo de servidores encontrado, quando você exclui clientes do banco de dados do Sistema de ranking.

Só considerou os grupos de servidores, que diziam respeito ao Sistema de ranking"; +$lang['wideltime'] = "Tempo de exclusão"; +$lang['wideltimedesc'] = "Limpe os clientes antigos do banco de dados do Sistema de ranking.
Insira um tempo em segundos que um cliente não foi visto para excluí-lo.

0 - exclui todos os clientes do Sistema de Ranking

Os dados do usuário no servidor TeamSpeak são intocados!"; +$lang['wiexcid'] = "Exceção de canal"; +$lang['wiexciddesc'] = "Uma lista separada por vírgulas dos IDs de canais que não devem participar no Sistema de ranking.

Mantenha os usuários em um dos canais listados, o tempo em que será completamente ignorado. Não vai contar o tempo online, mas o tempo ocioso vai contar.

Esta função faz apenas sentido com o modo 'tempo online', porque aqui podem ser ignorados os canais AFK, por exemplo.
Com o modo 'tempo ativo', esta função é inútil porque, como seria deduzido o tempo de inatividade em salas AFK, portanto, não contado de qualquer maneira.

Um usuário em um canal excluído, é alterado por esse período como 'excluído do Sistema de Ranks'. O usuário não aparece mais na lista 'stats/list_rankup.php' a menos que os clientes excluídos não sejam exibidos lá (Página de Estatísticas - cliente em exceção)."; +$lang['wiexgrp'] = "Grupo em exceção"; +$lang['wiexgrpdesc'] = "Uma lista separada de vírgulas de IDs de grupos de servidores, que não devem participar do Sistema de ranking.
O usuário em pelo menos uma dessas IDs de grupos de servidores será ignorado para o ranking."; +$lang['wiexres'] = "Modo de exceção"; +$lang['wiexres1'] = "padrão (tempo de contagem)"; +$lang['wiexres2'] = "Intervalo"; +$lang['wiexres3'] = "Redefinir o tempo"; +$lang['wiexresdesc'] = "Existem três modos, como lidar com uma exceção. Em todos os casos, a classificação (atribuir grupo de servidores) está desativado. Você pode escolher diferentes opções de como o tempo gasto de um usuário (que é excecionado) deve ser tratado.

1) padrão (tempo de contagem) : Por padrão, o Sistema de ranking conta também o on-line / tempo ativo dos usuários, exceto (cliente / grupo de servidores). Com uma exceção, apenas a classificação (atribuir grupo de servidores) está desativado. Isso significa que se um usuário não for mais salvo, ele seria atribuído ao grupo dependendo do tempo coletado (por exemplo, nível 3).

2) tempo de pausa : nesta opção o gastar online e tempo ocioso será congelado (intervalo) para o valor real (antes do usuário ter sido salvo). Após uma exceção (após remover o grupo de servidores excecionado ou remover a regra de expectativa), 'contagem' continuará.

3) tempo de reinicialização : Com esta função, o tempo contado online e ocioso será redefinir para zero no momento em que o usuário não seja mais salvo (removendo o grupo de servidores excecionado ou remova a regra de exceção). A exceção de tempo de tempo gasto seria ainda contabilizada até que ela fosse reiniciada.


A exceção do canal não importa aqui, porque o tempo sempre será ignorado (como o modo de interrupção)."; +$lang['wiexuid'] = "Exceção de cliente"; +$lang['wiexuiddesc'] = "Uma lista separada de vírgulas de ID-Ùnica, que não deve considerar para o Sistema de Rank.
O usuário nesta lista será ignorado e não vai participar do ranking."; +$lang['wigrptime'] = "Definições de classifiaões"; +$lang['wigrptimedesc'] = "Defina aqui, após quanto tempo um usuário deve obter automaticamente um grupo de servidores predefinido.

Tempo (em segundos) => ID do grupo do servidor

Importante para este é o 'tempo online' ou o 'tempo ativo' de um usuário, dependendo da configuração do modo.

Cada entrada deve se separar do próximo com uma vírgula.

O tempo deve ser inserido cumulativo

Exemplo:
60 => 9,120 => 10,180 => 11

Neste usuário, pegue após 60 segundos o grupo de servidores 9, por sua vez, após 60 segundos, o grupo de servidores 10 e assim por diante ..."; +$lang['wihladm'] = "Classificação (Modo Admin)"; +$lang['wihladm1'] = "Adicionar tempo online ao usuário"; +$lang['wihlcfg'] = "Configurações do núcleo"; +$lang['wihldb'] = "Configurações do banco de dados"; +$lang['wihlmsg'] = "Configurações de mensagens"; +$lang['wihlsty'] = "Configurações da página de estatísticas"; +$lang['wihlts'] = "Configurações do TeamSpeak"; +$lang['wihlvs'] = "Várias configurações"; +$lang['wiignidle'] = "Ignore ocioso"; +$lang['wiignidledesc'] = "Defina um período até o qual o tempo de inatividade de um usuário será ignorado.

Quando um cliente não faz nada no servidor (=ocioso), esse tempo é anotado pelo Sistema de ranking. Com este recurso, o tempo de inatividade de um usuário não será contado até o limite definido. Somente quando o limite definido é excedido, ele conta a partir dessa data para o Sistema de ranking como tempo ocioso.

Esta função só é reproduzida em conjunto com o modo 'tempo ativo' uma função.

Significado do a função é, por exemplo, para avaliar o tempo de audição em conversas como atividade.

0 = desativar o recurso

Exemplo:
Ignorar ocioso = 600 (segundos)
Um cliente tem um ocioso de 8 Minuntes
consequência:
8 minutos inativos são ignorados e, portanto, ele recebe esse tempo como tempo ativo. Se o tempo de inatividade agora aumentou para mais de 12 minutos, então o tempo é superior a 10 minutos, e nesse caso, 2 minutos serão contados como tempo ocioso."; +$lang['wilog'] = "Caminha de logs"; +$lang['wilogdesc'] = "Caminho do arquivo de log do Sistema de ranking.

Exemplo:
/var/logs/ranksystem/

Certifique-se, o usuário da web tem as permissões de gravação"; +$lang['wilogout'] = "Sair"; +$lang['wimsgmsg'] = "Mensagens"; +$lang['wimsgmsgdesc'] = "Defina uma mensagem, que será enviada para um usuário, quando ele subir a próxima classificação mais alta.

Esta mensagem será enviada via mensagem privada TS3. Então, todos sabem que o código bb pode ser usado, o que também funciona para uma mensagem privada normal.
http://ts-n.net/lexicon.php?showid=97#lexindex

Além disso, o tempo gasto anteriormente pode ser expresso por argumentos:
%1\$s - Dias
%2\$s - horas
%3\$s - minutos
%4\$s - segundos
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Exemplo:
Eii,\\nVocê alcançou uma classificação mais alta, já que você já se conectou para %1\$s Dias, %2\$s horas e %3\$s minutos nosso servidor de TS [b]Continue assim ![/b];-)"; +$lang['wimsgsn'] = "Notícias do servidor"; +$lang['wimsgsndesc'] = "Defina uma mensagem, que será mostrada no /stats/ página como notícias do servidor.

Você pode usar as funções html padrão para modificar o layout

Exemplo:
<b> - para negrito
<u> - para sublinhar
<i> - para itálico
<br> - para uma nova linha"; +$lang['wimsgusr'] = "Notificação de Classificação"; +$lang['wimsgusrdesc'] = "Informar um usuário com uma mensagem de texto privada sobre sua classificação."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Base de dados"; +$lang['winav3'] = "Núcleo"; +$lang['winav4'] = "Outras configuraões"; +$lang['winav5'] = "Mensagem"; +$lang['winav6'] = "Página de estatísticas"; +$lang['winav7'] = "Administrar"; +$lang['winav8'] = "Iniciar / Parar Bot"; +$lang['winav9'] = "Atualização disponível!"; +$lang['winav10'] = "Use a interface web apenas via %s HTTPS%s Uma criptografia é fundamental para garantir sua privacidade e segurança.%sPara poder usar HTTPS, seu servidor web precisa suportar uma conexão SSL."; +$lang['winav11'] = "Digite o ID-Ùnico do administrador do Sistema de ranking (outros -> admin ID). Isso é muito importante caso você perdeu seus dados de login para a interface da web (redefinir usando o ID-Ùnico)."; +$lang['winav12'] = "Complementos"; +$lang['winxinfo'] = "Comando \"!nextup\""; +$lang['winxinfodesc'] = "Permite que o usuário no servidor TS3 escreva o comando \"!nextup\" para o Sistema de ranking (usuário query) como mensagem de texto privada.

Como resposta, o usuário receberá uma mensagem de texto definida com o tempo necessário para o próximo promoção.

desativado - A função está desativada. O comando '!nextup' será ignorado.
permitido - apenas próximo rank - Retorna o tempo necessário para o próximo grupo.
Permitido - permitido - todas as próximas classificações - Retorna o tempo necessário para todas as classificações mais altas."; +$lang['winxmode1'] = "desativado"; +$lang['winxmode2'] = "permitido - apenas a próxima classificação"; +$lang['winxmode3'] = "permitido - todas as próximas classificações"; +$lang['winxmsg1'] = "Mensagem"; +$lang['winxmsgdesc1'] = "Defina uma mensagem, que o usuário receberá como resposta no comando \"!nextup\".

Argumentos:
%1$s - Dias para a próxima classificação
%2$s - horas para a próxima classificação
%3$s - minutos para a próxima classificação
%4$s - para a próxima classificação
%5$s - Nome do próximo grupo do servidor
%6$s - name of the user (recipient)

Exemplo:
Seu próximo ranking será em %1$s Dias, %2$s horas e %3$s minutos e %4$s segundos. O próximo grupo do servidor que você alcançará é [B]%5$s[/B]."; +$lang['winxmsg2'] = "Mensagem (Máxima classificação)"; +$lang['winxmsgdesc2'] = "Defina uma mensagem, que o usuário receberá como resposta no comando \"!nextup\", quando o usuário já alcançou a classificação mais alta.

Argumentos:
%1$s - Dias para a próxima classificação
%2$s - horas para a próxima classificação
%3$s - minutos para a próxima classificação
%4$s - segundos para a próxima classificação
%5$s - Nome do próximo grupo do servidor
%6$s - name of the user (recipient)

Exemplo:
Você alcançou a maior classificação de %1$s Dias, %2$s horas e %3$s minutos e %4$s segundos."; +$lang['winxmsg3'] = "Mensagem (exceção)"; +$lang['winxmsgdesc3'] = "Defina uma mensagem, que o usuário receberá como resposta no comando\"!nextup\", quando o usuário está excluído do Sistema de ranking.

Argumentos:
%1$s - Dias para a próxima classificação
%2$s - horas para a próxima classificação
%3$s - minutos para a próxima classificação
%4$s - segundos para a próxima classificação rankup
%5$s - Nome do próximo grupo do servidor
%6$s - name of the user (recipient)

Exemplo:
Você está excluído do Sistema de ranking. Se você deseja se classificar entre em contato com um administrador no servidor TS3."; +$lang['wirtpw1'] = "Desculpe, mano, você se esqueceu de inserir sua ID de administrador dentro da interface web antes. Não há como redefinir a senha! ;-;"; +$lang['wirtpw2'] = "ID do administrador não encontrada no servidor TS3. Você precisa estar online com o ID exclusivo do cliente, que é salvo como ID de administrador."; +$lang['wirtpw3'] = "O seu endereço IP não corresponde ao endereço IP do administrador no servidor TS3. Certifique-se de que está com o mesmo endereço IP on-line no servidor TS3 e também nesta página o mesmo protocolo (IPv4 / IPv6 também é necessário)."; +$lang['wirtpw4'] = "\nA senha para a interface web foi redefinida com sucesso.\nNome de usuário: %s\nSenha: [B]%s[/B]\n\nEntre %saqui%s"; +$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; +$lang['wirtpw6'] = "A senha da interface web foi redefinida com sucesso.com o pedido do IP %s."; +$lang['wirtpw7'] = "Redefinir Senha"; +$lang['wirtpw8'] = "Aqui você pode redefinir a senha da interface da web."; +$lang['wirtpw9'] = "Seguem-se as coisas necessárias para redefinir a senha:"; +$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['wishcolas'] = "Grupo atual de servidor"; +$lang['wishcolasdesc'] = "Mostrar a coluna 'Grupo atual de servidor' na list_rankup.php"; +$lang['wishcolat'] = "Tempo ativo"; +$lang['wishcolatdesc'] = "Mostrar a coluna 'sum. tempo ativo' na list_rankup.php"; +$lang['wishcolcld'] = "Nome do cliente"; +$lang['wishcolclddesc'] = "Mostrar a coluna 'Nome do cliente' na list_rankup.php"; +$lang['wishcoldbid'] = "ID do banco de dados"; +$lang['wishcoldbiddesc'] = "Mostrar a coluna 'Cliente-database-ID' na list_rankup.php"; +$lang['wishcolgs'] = "Grupo atual desde"; +$lang['wishcolgsdesc'] = "Mostrar a coluna 'Grupo atual desde' na list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "Tempo inativo"; +$lang['wishcolitdesc'] = "Mostrar coluna 'Tempo inativo' na list_rankup.php"; +$lang['wishcolls'] = "Visto pela ultima vez"; +$lang['wishcollsdesc'] = "Mostrar a coluna 'visto por ultimo' na list_rankup.php"; +$lang['wishcolnx'] = "Próxima classificação"; +$lang['wishcolnxdesc'] = "Mostrar a coluna 'próxima classificação' na list_rankup.php"; +$lang['wishcolot'] = "Tempo online"; +$lang['wishcolotdesc'] = "Mostrar a coluna 'Tempo online' na list_rankup.php"; +$lang['wishcolrg'] = "Ranking"; +$lang['wishcolrgdesc'] = "Mostrar a coluna 'ranking' na list_rankup.php"; +$lang['wishcolsg'] = "Próxima grupo do servidor"; +$lang['wishcolsgdesc'] = "Mostrar a coluna 'Próximo grupo do servidor' ma list_rankup.php"; +$lang['wishcoluuid'] = "Cliente-ID"; +$lang['wishcoluuiddesc'] = "Mostrar a coluna 'ID-Ùnica' na list_rankup.php"; +$lang['wishexcld'] = "Clientes em exceção"; +$lang['wishexclddesc'] = "Mostrar clientes ma list_rankup.php,
que são excluídos e, portanto, não participam do Sistema de ranking."; +$lang['wishexgrp'] = "Grupos em exceção"; +$lang['wishexgrpdesc'] = "Mostrar clientes na list_rankup.php, que estão na lista 'clientes em exceção' e não devem ser considerados para o Sistema de Ranking."; +$lang['wishhicld'] = "Clientes com o mais alto nível"; +$lang['wishhiclddesc'] = "Mostrar clientes na list_rankup.php, que atingiu o nível mais alto no Sistema de ranking."; +$lang['wishnav'] = "Mostrar o site de navegação "; +$lang['wishnavdesc'] = "Mostrar a aba de navegação na 'stats/' pagina.

Se esta opção estiver desativada na página de estatísticas, a navegação do site será escondida.
Você pode então pegar cada site, por exemplo, 'stats/list_rankup.php' e incorporar isso como quadro em seu site ou quadro de avisos existente."; +$lang['wisupidle'] = "Modo"; +$lang['wisupidledesc'] = "Existem dois modos, pois o tempo pode ser contado e pode então se inscrever para um aumento de classificação.

1) Tempo online: Aqui, o tempo online do usuário é levado em consideração (ver coluna 'tempo online' na 'stats/list_rankup.php')

2) tempo ativo: isso será deduzido do tempo online de um usuário, o tempo inativo.o ranking classifica quem tem o maior tempo ativo no servidor.

Não é recomendada uma mudança de modo com um banco de dados já executado mais longo, mas pode funcionar."; +$lang['wisvconf'] = "Salvar"; +$lang['wisvsuc'] = "Mudanças salvas com sucesso!"; +$lang['wisvres'] = "Você precisa reiniciar o Sistema de ranking antes para que as mudanças entrem em vigor!"; +$lang['witime'] = "Fuso horário"; +$lang['witimedesc'] = "Selecione o fuso horário em que o servidor está hospedado."; +$lang['wits3avat'] = "Atraso do Avatar"; +$lang['wits3avatdesc'] = "Defina um tempo em segundos para atrasar o download dos avatares TS3 alterados.

Esta função é especialmente útil para bots (de música), que estão mudando seu avatar periodicamente."; +$lang['wits3dch'] = "Canal padrão"; +$lang['wits3dchdesc'] = "O ID do canal que o bot vai se conectar.

O Bot irá se juntar a este canal depois de se conectar ao servidor TeamSpeak."; +$lang['wits3host'] = "TS3 Endereço do host"; +$lang['wits3hostdesc'] = "Endereço do servidor TeamSpeak 3
(IP ou DNS)"; +$lang['wits3sm'] = "Modo lento"; +$lang['wits3smdesc'] = "Com o modo lento, você pode reduzir \"spam\" de comandos de consulta para o servidor TeamSpeak. Isso evita proibições em caso de inundação.
Os comandos do TeamSpeak Query são atrasados com esta função.

!!! TAMBÉM REDUZ O USO DA CPU !!!

A ativação não é recomendada, se não for necessária. O atraso aumenta a duração do Bot, o que o torna impreciso.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Nome do bot"; +$lang['wits3qnm2'] = "Segundo nome do bot"; +$lang['wits3qnm2desc'] = "Um nome reserva, se o primeiro já estiver em uso."; +$lang['wits3qnmdesc'] = "O nome, com isso, a conexão de consulta será estabelecida.
Você pode nomeá-lo livremente."; +$lang['wits3querpw'] = "TS3 Query-senha"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 senha query
Senha para o usuário da consulta."; +$lang['wits3querusr'] = "TS3 Usuário-query"; +$lang['wits3querusrdesc'] = "Nome de usuário da consulta TeamSpeak 3
O padrão é serveradmin
Claro, você também pode criar uma conta de serverquery adicional somente para o Sistema de ranking.
As permissões necessárias que você encontra em:
http://ts-n.net/ranksystem.php"; +$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['wiverify'] = "Verificação-Canal"; +$lang['wiverifydesc'] = "Digite aqui a ID do canal de verificação.

Este canal precisa ser configurado manualmente no seu servidor TeamSpeak. Nome, permissões e outras propriedades podem ser definidos por sua escolha; o usuário deve apenas se juntar a este canal!

A verificação é feita pelo próprio usuário na página de estatísticas (/stats/). Isso só é necessário se o visitante do site não puder ser automaticamente encontrado / relacionado com o usuário do TeamSpeak.

Para verificar-se o usuário do TeamSpeak deve estar dentro do canal de verificação. Lá, ele pode receber o token com o qual ele se verifica para na página de estatísticas."; +$lang['wivlang'] = "Tradução"; +$lang['wivlangdesc'] = "Escolha um idioma padrão para o Sistema de ranking.

O idioma também é selecionável nos sites para os usuários e será armazenado para as próximas sessões."; ?> \ No newline at end of file diff --git a/languages/core_ro.php b/languages/core_ro.php index eb1c9e5..3fd88a3 100644 --- a/languages/core_ro.php +++ b/languages/core_ro.php @@ -1,529 +1,534 @@ - adăugat la Ranksystem acum."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "Userul %s (unique Client-ID: %s) a primit un nouă identitate (%s). Actualizăm vechea identitate (%s) și resetăm timpul colectat!"; -$lang['crawl'] = "Scanăm clientul conectat și contorizăm activitatea..."; -$lang['clean'] = "Scanăm clienții care trebuie șterși..."; -$lang['cleanc'] = "Utilizatori curați"; -$lang['cleancdesc'] = "Cu aceasta funcție clienții vechi din Ranksystem se elimină.

La sfârșit, Ranksystem sincronizat cu baza de date TeamSpeak. Utilizatorii , care nu există în TeamSpeak, vor fi șterși din Ranksystem.

Această funcție este activată numai atunci când \"SlowMode\" este dezactivat!


Pentru reglarea automată a bazei de date TeamSpeak , ClientCleaner poate fi folosit:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "Au fost %s clienții eliminați din baza de date Ranksystem , pentru că ei nu mai erau existenți în baza de date TeamSpeak "; -$lang['cleanno'] = "Nu a fost nimic de eliminat..."; -$lang['cleanp'] = "Perioada de curațare"; -$lang['cleanpdesc'] = "Setați un timp care trebuie să treacă înainte de a se executa curățirea clienților.

Setați un timp în secunde.

Recomandat este o dată pe zi , deoarece curățarea clienților are nevoie de mult timp pentru baze de date mai mari."; -$lang['cleanrs'] = "Clienți in baza de date Ranksystem: %s"; -$lang['cleants'] = "Clienți în baza de date 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['days'] = "%s zile"; -$lang['dbconerr'] = "Nu a reușit să se conecteze la baza de date MySQL: "; -$lang['delcldgrpif'] = "Eroare la eliminarea cunoștințelor pentru servergroups: %s"; -$lang['delcldgrpsc'] = "Cunoștințe despre servergroups pentru %s Utilizatorul a eliminat cu succes."; -$lang['delclientsif'] = "%s Clienții eliminați din baza de date Ranksystem!"; -$lang['delclientssc'] = "%s Clienții eliminați cu succes din baza de date 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['errlogin'] = "Numele de utilizator și / sau parola sunt incorecte ! Încearcă din nou..."; -$lang['errlogin2'] = "Protecție forță brută: încercați din nou în %s seconde!"; -$lang['errlogin3'] = "Protecție forță brută: Prea multe greșeli. Banat pentru 300 de secunde!"; -$lang['error'] = "Eroare "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Eroare la eliminarea utilizatorului cu identitatea %s din servergroup cu servergroup-database-ID %s!"; -$lang['errremdb'] = "Eroare când eliminăm utilizatorului cu identitatea %s din baza de date Ranksystem!"; -$lang['errselusr'] = "Please choose at least one user!"; -$lang['errseltime'] = "Please enter an online time to add!"; -$lang['errukwn'] = "A apărut o eroare necunoscută!"; -$lang['errupcount'] = "Eroare în timp ce reînnoim timpul rezumat on-line de %s de către utilizator cu identitatea %s"; -$lang['highest'] = "Cel mai înalt rang atins"; -$lang['install'] = "Instalare"; -$lang['instdb'] = "Instalăm baza de date:"; -$lang['instdbsuc'] = "Baza de date %s a fost creată cu succes."; -$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; -$lang['insterr2'] = "PDO is needed but seems not installed. Install PDO and try it again!"; -$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP exec function and try it again!"; -$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; -$lang['insterr5'] = "SimpleXML is needed but seems not available. Install simpleXML and try it again!"; -$lang['insterr6'] = "PHP cURL is needed but seems not available. Install PHP cURL and try it again!"; -$lang['insterr7'] = "PHP Zip is needed but seems not available. Install PHP Zip and try it again!"; -$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['insttb'] = "Instalăm tabelele:"; -$lang['isntwicfg'] = "Nu se poate salva configurația bazei de date ! Vă rugăm să modificați 'other/dbconfig.php' cu acces chmod 0777 (on windows 'full access') și incercați iar."; -$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 (on windows 'full access') and try to start the Ranksystem again."; -$lang['isntwiconf'] = "Deschideți %s să configurați Ranksystem!"; -$lang['isntwidbhost'] = "Host-ul bazei de date:"; -$lang['isntwidbhostdesc'] = "Server-ul DB
(IP sau DNS)"; -$lang['isntwidbmsg'] = "Eroare DB: "; -$lang['isntwidbname'] = "Nume DB:"; -$lang['isntwidbnamedesc'] = "Nume DB"; -$lang['isntwidbpass'] = "Parolă DB:"; -$lang['isntwidbpassdesc'] = "Parola pentru a accesa DB"; -$lang['isntwidbtype'] = "Tipul DB:"; -$lang['isntwidbtypedesc'] = "Tipul DB

Trebuie să instalați necesarul de PDO Driver.
Pentru mai multe informatii accesați http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "User-ul pentru acces la DB"; -$lang['isntwidel'] = "Vă rugăm să ștergeți fișierul 'install.php' din webserver"; -$lang['isntwiusr'] = "Utilizator pentru webinterface creat cu succes."; -$lang['isntwiusrcr'] = "Creare acces"; -$lang['isntwiusrdesc'] = "Introduceți un nume de utilizator și o parolă pentru accesul webinterface. Cu webinterface vă puteți configura Ranksytem-ul."; -$lang['isntwiusrh'] = "Acces - Webinterface"; -$lang['listacsg'] = "Servergroup actual"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "No, cause excepted"; -$lang['listgrps'] = "actual group since"; -$lang['listip'] = "Adresă IP"; -$lang['listnick'] = "Nume Client"; -$lang['listnxsg'] = "Următorul servergroup"; -$lang['listnxup'] = "Următorul rank up"; -$lang['listrank'] = "rank"; -$lang['listseen'] = "Văzut ultima dată"; -$lang['listsuma'] = "sum. timp activ"; -$lang['listsumi'] = "sum. timpul de inactivitate"; -$lang['listsumo'] = "sum. timp online"; -$lang['listuid'] = "unique Client-ID"; -$lang['login'] = "Logare"; -$lang['msg0001'] = "running version: %s"; -$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; -$lang['msg0003'] = "You are not eligible for this command!"; -$lang['msg0004'] = "Client %s (%s) requests shutdown."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) requests 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['nocount'] = "User-ul %s (Client-ID unic: %s; Client-database-ID %s) este un query-user sau este de mai multe ori on-line ( numai primul număr de conexiune ) - > acest lucru nu va conta !"; -$lang['noentry'] = "Nu au gasit .."; -$lang['pass'] = "Parolă"; -$lang['pass2'] = "Change password"; -$lang['pass3'] = "old password"; -$lang['pass4'] = "new password"; -$lang['pass5'] = "Forgot Password?"; -$lang['queryname'] = "În primul rând Botname deja în uz . Încerc cu al doilea Botname ..."; -$lang['repeat'] = "repeat"; -$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; -$lang['sccrmcld'] = "User-ul cu unic Client-ID %s scos cu success din baza de date Ranksystem ."; -$lang['sccupcount'] = "Added successfully an online time of %s seconds to the users with the unique Client-IDs (%s)"; -$lang['setontime'] = "add time"; -$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; -$lang['sgrpadd'] = "Aloca servergroup %s (ID: %s) user-ului %s (unique Client-ID: %s; Client-database-ID %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "S-a șters servergroup %s (ID: %s) de la user-ul %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'] = "Assign Servergroup"; -$lang['stag0002'] = "Allowed Groups"; -$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; -$lang['stag0004'] = "Limit Groups"; -$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; -$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of simultaneous groups: "; -$lang['stag0012'] = "set groups"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "Statistică de server"; -$lang['stix0002'] = "Numărul total de utilizatori"; -$lang['stix0003'] = "Vezi detalii"; -$lang['stix0004'] = "Timp on-line al tuturor utilizator / Total"; -$lang['stix0005'] = "Vedere de sus din toate timpurile"; -$lang['stix0006'] = "Vedere de sus a lunii"; -$lang['stix0007'] = "Vedere de sus a săptămânii"; -$lang['stix0008'] = "Utilizarea serverului"; -$lang['stix0009'] = "În ultimele 7 zile"; -$lang['stix0010'] = "În ultimele 30 de zile"; -$lang['stix0011'] = "În ultimele 24 de ore"; -$lang['stix0012'] = "Selectare perioadă"; -$lang['stix0013'] = "Ultima zi"; -$lang['stix0014'] = "Săptămâna trecută"; -$lang['stix0015'] = "Luna trecută"; -$lang['stix0016'] = "Timp activ / inactiv ( tuturor clienților )"; -$lang['stix0017'] = "Versiunile ( tuturor clienților )"; -$lang['stix0018'] = "Naționalitățile ( tuturor clienților )"; -$lang['stix0019'] = "Platforme ( tuturor clienților )"; -$lang['stix0020'] = "Statisticile curente"; -$lang['stix0023'] = "Status server"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clienți (Online / Max)"; -$lang['stix0027'] = "Număr de canale"; -$lang['stix0028'] = "Ping mediu pe server"; -$lang['stix0029'] = "Număr total de octeți primit"; -$lang['stix0030'] = "Număr total de octeți trimiși"; -$lang['stix0031'] = "Server uptime"; -$lang['stix0032'] = "După offline:"; -$lang['stix0033'] = "00 Zile, 00 Ore, 00 Minute, 00 Secunde"; -$lang['stix0034'] = "Pierderea medie de pachete"; -$lang['stix0035'] = "Statisticile generale"; -$lang['stix0036'] = "Nume Server"; -$lang['stix0037'] = "Adresa Server(Adresa Host : Port)"; -$lang['stix0038'] = "Parola Server"; -$lang['stix0039'] = "Nu (Server-ul este public)"; -$lang['stix0040'] = "Da (Server este privat)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platformă"; -$lang['stix0043'] = "Server versiune"; -$lang['stix0044'] = "Server creat in data (dd/mm/yyyy)"; -$lang['stix0045'] = "Raport la lista de servere"; -$lang['stix0046'] = "Activat"; -$lang['stix0047'] = "Nu este activat"; -$lang['stix0048'] = "Nu sunt suficiente date încă ..."; -$lang['stix0049'] = "Timp on-line la toți utilizatorii / luna"; -$lang['stix0050'] = "Timp on-line la toți utilizatorii / săptămână"; -$lang['stix0051'] = "TeamSpeak nu a reușit , deci nici o data creată..."; -$lang['stix0052'] = "others"; -$lang['stix0053'] = "Active Time (in Days)"; -$lang['stix0054'] = "Inactive Time (in Days)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stmy0001'] = "Statisticile mele"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unic ID:"; -$lang['stmy0005'] = "Conexiuni totale la serverul:"; -$lang['stmy0006'] = "Inceputul dății pentru statistici:"; -$lang['stmy0007'] = "Timp total on-line:"; -$lang['stmy0008'] = "Timp online ultimele %s zile:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "Realizări finalizate:"; -$lang['stmy0011'] = "Timp progres realizare"; -$lang['stmy0012'] = "Ora: Legendarul"; -$lang['stmy0013'] = "Pentru că ai un timp online %s ore."; -$lang['stmy0014'] = "Progres finalizat"; -$lang['stmy0015'] = "Ora: Aur"; -$lang['stmy0016'] = "% completat pentru Legendar"; -$lang['stmy0017'] = "Ora: Argint"; -$lang['stmy0018'] = "% completat pentru Aur"; -$lang['stmy0019'] = "Ora: Bronz"; -$lang['stmy0020'] = "% completat pentru Argint"; -$lang['stmy0021'] = "Ora: Ne-rank-at"; -$lang['stmy0022'] = "% completat pentru Bronz"; -$lang['stmy0023'] = "Conexiune progres realizare"; -$lang['stmy0024'] = "Connects: Legendary"; -$lang['stmy0025'] = "Because You connected %s times to the server."; -$lang['stmy0026'] = "Connects: Gold"; -$lang['stmy0027'] = "Connects: Silver"; -$lang['stmy0028'] = "Connects: Bronze"; -$lang['stmy0029'] = "Connects: Unranked"; -$lang['stmy0030'] = "Progress next servergroup"; -$lang['stmy0031'] = "Total active time"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Server news"; -$lang['stnv0002'] = "Close"; -$lang['stnv0003'] = "Refresh client information"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0007'] = "Battle area - Page content"; -$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; -$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; -$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; -$lang['stnv0011'] = "(The regular battling time is 48 hours)"; -$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; -$lang['stnv0013'] = "It will be displayed on the My statistics tab."; -$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; -$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(You are not connected to the TS3!)"; -$lang['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "Ranksystem information"; -$lang['stri0002'] = "What is the Ranksystem?"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; -$lang['stri0009'] = "How was the Ranksystem created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; -$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; -$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; -$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; -$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'] = "Top users"; -$lang['sttw0002'] = "Of the week"; -$lang['sttw0003'] = "With %s %s online time"; -$lang['sttw0004'] = "Top 10 compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 vs others in online time"; -$lang['sttw0009'] = "Top 10 vs others in active time"; -$lang['sttw0010'] = "Top 10 vs others in inactive time"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "Of the month"; -$lang['stta0001'] = "Of all time"; -$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['stve0002'] = "A message with the token was sent to you on the TS3 server."; -$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_day'] = "Day(s)"; -$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'] = "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]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]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "User %s was successfully informed."; -$lang['user'] = "Username"; -$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'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "admin ID"; -$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$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 should be stopped. Check the log below for more information!"; -$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; -$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; -$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'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; -$lang['wichpw1'] = "Your old password is wrong. Please try again"; -$lang['wichpw2'] = "The new passwords dismatch. Please try again."; -$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; -$lang['wichpw4'] = "Change Password"; -$lang['widaform'] = "Date format"; -$lang['widaformdesc'] = "Choose the showing date format.

Example:
%a days, %h hours, %i mins, %s secs"; -$lang['widbcfgsuc'] = "Database configurations saved successfully."; -$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; -$lang['widelcld'] = "delete clients"; -$lang['widelcldgrp'] = "renew groups"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; -$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; -$lang['widelsg'] = "remove out of servergroups"; -$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; -$lang['wideltime'] = "Deletiontime"; -$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; -$lang['wiexcid'] = "channel exception"; -$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "exception mode"; -$lang['wiexres1'] = "default (count time)"; -$lang['wiexres2'] = "break time"; -$lang['wiexres3'] = "reset time"; -$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; -$lang['wiexuid'] = "client exception"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wigrptime'] = "rank up definition"; -$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; -$lang['wihladm'] = "List Rankup (Admin-Mode)"; -$lang['wihladm1'] = "Add online Time to User"; -$lang['wihlcfg'] = "Core settings"; -$lang['wihldb'] = "Database settings"; -$lang['wihlmsg'] = "Message settings"; -$lang['wihlsty'] = "Stats page settings"; -$lang['wihlts'] = "TeamSpeak settings"; -$lang['wihlvs'] = "Various settings"; -$lang['wiignidle'] = "Ignore idle"; -$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 = disable the feature

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; -$lang['wilogout'] = "Logout"; -$lang['wimsgmsg'] = "Message"; -$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; -$lang['wimsgsn'] = "Server-News"; -$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wimsgusr'] = "Rank up notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Other"; -$lang['winav5'] = "Message"; -$lang['winav6'] = "Stats page"; -$lang['winav7'] = "Administrate"; -$lang['winav8'] = "Start / Stop Bot"; -$lang['winav9'] = "Update available!"; -$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; -$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; -$lang['winav12'] = "Addons"; -$lang['winxinfo'] = "Command \"!nextup\""; -$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; -$lang['winxmode1'] = "deactivated"; -$lang['winxmode2'] = "allowed - only next rank"; -$lang['winxmode3'] = "allowed - all next ranks"; -$lang['winxmsg1'] = "Message"; -$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; -$lang['winxmsg2'] = "Message (highest)"; -$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; -$lang['winxmsg3'] = "Message (excepted)"; -$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; -$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; -$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; -$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; -$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$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."; -$lang['wishcolas'] = "actual servergroup"; -$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; -$lang['wishcolat'] = "active time"; -$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; -$lang['wishcolcld'] = "Client-name"; -$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; -$lang['wishcoldbid'] = "database-ID"; -$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; -$lang['wishcolgs'] = "actual group since"; -$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; -$lang['wishcolit'] = "idle time"; -$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; -$lang['wishcolls'] = "last seen"; -$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; -$lang['wishcolnx'] = "next rank up"; -$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; -$lang['wishcolot'] = "online time"; -$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; -$lang['wishcolrg'] = "rank"; -$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; -$lang['wishcolsg'] = "next servergroup"; -$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; -$lang['wishcoluuid'] = "Client-ID"; -$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; -$lang['wishexcld'] = "excepted client"; -$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; -$lang['wishexgrp'] = "excepted groups"; -$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wishnav'] = "show site-navigation"; -$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; -$lang['wisupidle'] = "Mode"; -$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; -$lang['wisvconf'] = "save"; -$lang['wisvsuc'] = "Changes successfully saved!"; -$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted."; -$lang['wits3avat'] = "Avatar Delay"; -$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; -$lang['wits3dch'] = "Default Channel"; -$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The Bot will join this channel after connecting to the TeamSpeak server."; -$lang['wits3host'] = "TS3 Hostaddress"; -$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Slowmode"; -$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Botname"; -$lang['wits3qnm2'] = "2nd Botname"; -$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; -$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; -$lang['wits3querpw'] = "TS3 Query-Password"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; -$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['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"; -$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; + adăugat la Ranksystem acum."; +$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; +$lang['changedbid'] = "Userul %s (unique Client-ID: %s) a primit un nouă identitate (%s). Actualizăm vechea identitate (%s) și resetăm timpul colectat!"; +$lang['crawl'] = "Scanăm clientul conectat și contorizăm activitatea..."; +$lang['clean'] = "Scanăm clienții care trebuie șterși..."; +$lang['cleanc'] = "Utilizatori curați"; +$lang['cleancdesc'] = "Cu aceasta funcție clienții vechi din Ranksystem se elimină.

La sfârșit, Ranksystem sincronizat cu baza de date TeamSpeak. Utilizatorii , care nu există în TeamSpeak, vor fi șterși din Ranksystem.

Această funcție este activată numai atunci când \"SlowMode\" este dezactivat!


Pentru reglarea automată a bazei de date TeamSpeak , ClientCleaner poate fi folosit:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "Au fost %s clienții eliminați din baza de date Ranksystem , pentru că ei nu mai erau existenți în baza de date TeamSpeak "; +$lang['cleanno'] = "Nu a fost nimic de eliminat..."; +$lang['cleanp'] = "Perioada de curațare"; +$lang['cleanpdesc'] = "Setați un timp care trebuie să treacă înainte de a se executa curățirea clienților.

Setați un timp în secunde.

Recomandat este o dată pe zi , deoarece curățarea clienților are nevoie de mult timp pentru baze de date mai mari."; +$lang['cleanrs'] = "Clienți in baza de date Ranksystem: %s"; +$lang['cleants'] = "Clienți în baza de date 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['day'] = "%s zi"; +$lang['days'] = "%s zile"; +$lang['dbconerr'] = "Nu a reușit să se conecteze la baza de date MySQL: "; +$lang['delcldgrpif'] = "Eroare la eliminarea cunoștințelor pentru servergroups: %s"; +$lang['delcldgrpsc'] = "Cunoștințe despre servergroups pentru %s Utilizatorul a eliminat cu succes."; +$lang['delclientsif'] = "%s Clienții eliminați din baza de date Ranksystem!"; +$lang['delclientssc'] = "%s Clienții eliminați cu succes din baza de date Ranksystem!"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "Numele de utilizator și / sau parola sunt incorecte ! Încearcă din nou..."; +$lang['errlogin2'] = "Protecție forță brută: încercați din nou în %s seconde!"; +$lang['errlogin3'] = "Protecție forță brută: Prea multe greșeli. Banat pentru 300 de secunde!"; +$lang['error'] = "Eroare "; +$lang['errorts3'] = "TS3 Error: "; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['errremgrp'] = "Eroare la eliminarea utilizatorului cu identitatea %s din servergroup cu servergroup-database-ID %s!"; +$lang['errremdb'] = "Eroare când eliminăm utilizatorului cu identitatea %s din baza de date Ranksystem!"; +$lang['errselusr'] = "Please choose at least one user!"; +$lang['errseltime'] = "Please enter an online time to add!"; +$lang['errukwn'] = "A apărut o eroare necunoscută!"; +$lang['errupcount'] = "Eroare în timp ce reînnoim timpul rezumat on-line de %s de către utilizator cu identitatea %s"; +$lang['highest'] = "Cel mai înalt rang atins"; +$lang['install'] = "Instalare"; +$lang['instdb'] = "Instalăm baza de date:"; +$lang['instdbsuc'] = "Baza de date %s a fost creată cu succes."; +$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; +$lang['insterr2'] = "PDO is needed but seems not installed. Install PDO and try it again!"; +$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP exec function and try it again!"; +$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; +$lang['insterr5'] = "SimpleXML is needed but seems not available. Install simpleXML and try it again!"; +$lang['insterr6'] = "PHP cURL is needed but seems not available. Install PHP cURL and try it again!"; +$lang['insterr7'] = "PHP Zip is needed but seems not available. Install PHP Zip and try it again!"; +$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['insttb'] = "Instalăm tabelele:"; +$lang['isntwicfg'] = "Nu se poate salva configurația bazei de date ! Vă rugăm să modificați 'other/dbconfig.php' cu acces chmod 0777 (on windows 'full access') și incercați iar."; +$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 (on windows 'full access') and try to start the Ranksystem again."; +$lang['isntwiconf'] = "Deschideți %s să configurați Ranksystem!"; +$lang['isntwidbhost'] = "Host-ul bazei de date:"; +$lang['isntwidbhostdesc'] = "Server-ul DB
(IP sau DNS)"; +$lang['isntwidbmsg'] = "Eroare DB: "; +$lang['isntwidbname'] = "Nume DB:"; +$lang['isntwidbnamedesc'] = "Nume DB"; +$lang['isntwidbpass'] = "Parolă DB:"; +$lang['isntwidbpassdesc'] = "Parola pentru a accesa DB"; +$lang['isntwidbtype'] = "Tipul DB:"; +$lang['isntwidbtypedesc'] = "Tipul DB

Trebuie să instalați necesarul de PDO Driver.
Pentru mai multe informatii accesați http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "DB User:"; +$lang['isntwidbusrdesc'] = "User-ul pentru acces la DB"; +$lang['isntwidel'] = "Vă rugăm să ștergeți fișierul 'install.php' din webserver"; +$lang['isntwiusr'] = "Utilizator pentru webinterface creat cu succes."; +$lang['isntwiusrcr'] = "Creare acces"; +$lang['isntwiusrdesc'] = "Introduceți un nume de utilizator și o parolă pentru accesul webinterface. Cu webinterface vă puteți configura Ranksytem-ul."; +$lang['isntwiusrh'] = "Acces - Webinterface"; +$lang['listacsg'] = "Servergroup actual"; +$lang['listcldbid'] = "Client-database-ID"; +$lang['listexcept'] = "No, cause excepted"; +$lang['listgrps'] = "actual group since"; +$lang['listnick'] = "Nume Client"; +$lang['listnxsg'] = "Următorul servergroup"; +$lang['listnxup'] = "Următorul rank up"; +$lang['listrank'] = "rank"; +$lang['listseen'] = "Văzut ultima dată"; +$lang['listsuma'] = "sum. timp activ"; +$lang['listsumi'] = "sum. timpul de inactivitate"; +$lang['listsumo'] = "sum. timp online"; +$lang['listuid'] = "unique Client-ID"; +$lang['login'] = "Logare"; +$lang['msg0001'] = "running version: %s"; +$lang['msg0002'] = "Valid commands are:\n[B]!help[/B], [B]!info[/B], [B]!commands[/B]\t\t get a command list\n[B]!version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t\t\t\tget the time to the next rank up\n[B]!restart[/B], [B]!reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]!shutdown[/B], [B]!quit[/B], [B]!stop[/B]\t\t stop the Ranksystem bot"; +$lang['msg0003'] = "You are not eligible for this command!"; +$lang['msg0004'] = "Client %s (%s) requests shutdown."; +$lang['msg0005'] = "cya"; +$lang['msg0006'] = "brb"; +$lang['msg0007'] = "Client %s (%s) requests 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['nocount'] = "User-ul %s (Client-ID unic: %s; Client-database-ID %s) este un query-user sau este de mai multe ori on-line ( numai primul număr de conexiune ) - > acest lucru nu va conta !"; +$lang['noentry'] = "Nu au gasit .."; +$lang['pass'] = "Parolă"; +$lang['pass2'] = "Change password"; +$lang['pass3'] = "old password"; +$lang['pass4'] = "new password"; +$lang['pass5'] = "Forgot Password?"; +$lang['queryname'] = "În primul rând Botname deja în uz . Încerc cu al doilea Botname ..."; +$lang['repeat'] = "repeat"; +$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; +$lang['sccrmcld'] = "User-ul cu unic Client-ID %s scos cu success din baza de date Ranksystem ."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "add time"; +$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; +$lang['sgrpadd'] = "Aloca servergroup %s (ID: %s) user-ului %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "S-a șters servergroup %s (ID: %s) de la user-ul %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'] = "Assign Servergroup"; +$lang['stag0002'] = "Allowed Groups"; +$lang['stag0003'] = "Define a list of servergroups, which a user can assign himself.

The servergroups should entered here with its groupID comma seperated.

Example:
23,24,28"; +$lang['stag0004'] = "Limit Groups"; +$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; +$lang['stag0006'] = "There are multiple unique IDs online with your IP address. Please %sclick here%s to verify first."; +$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; +$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; +$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; +$lang['stag0010'] = "Please choose at least one new group."; +$lang['stag0011'] = "Limit of simultaneous groups: "; +$lang['stag0012'] = "set groups"; +$lang['stag0013'] = "Addon ON/OFF"; +$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "Statistică de server"; +$lang['stix0002'] = "Numărul total de utilizatori"; +$lang['stix0003'] = "Vezi detalii"; +$lang['stix0004'] = "Timp on-line al tuturor utilizator / Total"; +$lang['stix0005'] = "Vedere de sus din toate timpurile"; +$lang['stix0006'] = "Vedere de sus a lunii"; +$lang['stix0007'] = "Vedere de sus a săptămânii"; +$lang['stix0008'] = "Utilizarea serverului"; +$lang['stix0009'] = "În ultimele 7 zile"; +$lang['stix0010'] = "În ultimele 30 de zile"; +$lang['stix0011'] = "În ultimele 24 de ore"; +$lang['stix0012'] = "Selectare perioadă"; +$lang['stix0013'] = "Ultima zi"; +$lang['stix0014'] = "Săptămâna trecută"; +$lang['stix0015'] = "Luna trecută"; +$lang['stix0016'] = "Timp activ / inactiv ( tuturor clienților )"; +$lang['stix0017'] = "Versiunile ( tuturor clienților )"; +$lang['stix0018'] = "Naționalitățile ( tuturor clienților )"; +$lang['stix0019'] = "Platforme ( tuturor clienților )"; +$lang['stix0020'] = "Statisticile curente"; +$lang['stix0023'] = "Status server"; +$lang['stix0024'] = "Online"; +$lang['stix0025'] = "Offline"; +$lang['stix0026'] = "Clienți (Online / Max)"; +$lang['stix0027'] = "Număr de canale"; +$lang['stix0028'] = "Ping mediu pe server"; +$lang['stix0029'] = "Număr total de octeți primit"; +$lang['stix0030'] = "Număr total de octeți trimiși"; +$lang['stix0031'] = "Server uptime"; +$lang['stix0032'] = "După offline:"; +$lang['stix0033'] = "00 Zile, 00 Ore, 00 Minute, 00 Secunde"; +$lang['stix0034'] = "Pierderea medie de pachete"; +$lang['stix0035'] = "Statisticile generale"; +$lang['stix0036'] = "Nume Server"; +$lang['stix0037'] = "Adresa Server(Adresa Host : Port)"; +$lang['stix0038'] = "Parola Server"; +$lang['stix0039'] = "Nu (Server-ul este public)"; +$lang['stix0040'] = "Da (Server este privat)"; +$lang['stix0041'] = "Server ID"; +$lang['stix0042'] = "Server platformă"; +$lang['stix0043'] = "Server versiune"; +$lang['stix0044'] = "Server creat in data (dd/mm/yyyy)"; +$lang['stix0045'] = "Raport la lista de servere"; +$lang['stix0046'] = "Activat"; +$lang['stix0047'] = "Nu este activat"; +$lang['stix0048'] = "Nu sunt suficiente date încă ..."; +$lang['stix0049'] = "Timp on-line la toți utilizatorii / luna"; +$lang['stix0050'] = "Timp on-line la toți utilizatorii / săptămână"; +$lang['stix0051'] = "TeamSpeak nu a reușit , deci nici o data creată..."; +$lang['stix0052'] = "others"; +$lang['stix0053'] = "Active Time (in Days)"; +$lang['stix0054'] = "Inactive Time (in Days)"; +$lang['stix0055'] = "online last 24 hours"; +$lang['stix0056'] = "online last %s days"; +$lang['stix0059'] = "List of user"; +$lang['stix0060'] = "User"; +$lang['stix0061'] = "View all versions"; +$lang['stix0062'] = "View all nations"; +$lang['stix0063'] = "View all platforms"; +$lang['stmy0001'] = "Statisticile mele"; +$lang['stmy0002'] = "Rank"; +$lang['stmy0003'] = "Database ID:"; +$lang['stmy0004'] = "Unic ID:"; +$lang['stmy0005'] = "Conexiuni totale la serverul:"; +$lang['stmy0006'] = "Inceputul dății pentru statistici:"; +$lang['stmy0007'] = "Timp total on-line:"; +$lang['stmy0008'] = "Timp online ultimele %s zile:"; +$lang['stmy0009'] = "Active time last %s days:"; +$lang['stmy0010'] = "Realizări finalizate:"; +$lang['stmy0011'] = "Timp progres realizare"; +$lang['stmy0012'] = "Ora: Legendarul"; +$lang['stmy0013'] = "Pentru că ai un timp online %s ore."; +$lang['stmy0014'] = "Progres finalizat"; +$lang['stmy0015'] = "Ora: Aur"; +$lang['stmy0016'] = "% completat pentru Legendar"; +$lang['stmy0017'] = "Ora: Argint"; +$lang['stmy0018'] = "% completat pentru Aur"; +$lang['stmy0019'] = "Ora: Bronz"; +$lang['stmy0020'] = "% completat pentru Argint"; +$lang['stmy0021'] = "Ora: Ne-rank-at"; +$lang['stmy0022'] = "% completat pentru Bronz"; +$lang['stmy0023'] = "Conexiune progres realizare"; +$lang['stmy0024'] = "Connects: Legendary"; +$lang['stmy0025'] = "Because You connected %s times to the server."; +$lang['stmy0026'] = "Connects: Gold"; +$lang['stmy0027'] = "Connects: Silver"; +$lang['stmy0028'] = "Connects: Bronze"; +$lang['stmy0029'] = "Connects: Unranked"; +$lang['stmy0030'] = "Progress next servergroup"; +$lang['stmy0031'] = "Total active time"; +$lang['stna0001'] = "Nations"; +$lang['stna0002'] = "statistics"; +$lang['stna0003'] = "Code"; +$lang['stna0004'] = "Count"; +$lang['stna0005'] = "Versions"; +$lang['stna0006'] = "Platforms"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "Server news"; +$lang['stnv0002'] = "Close"; +$lang['stnv0003'] = "Refresh client information"; +$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; +$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; +$lang['stnv0006'] = "Refresh"; +$lang['stnv0007'] = "Battle area - Page content"; +$lang['stnv0008'] = "You can challenge other users in a battle between two users or two teams."; +$lang['stnv0009'] = "While the battle is active the online time of the teams/users will be counted."; +$lang['stnv0010'] = "When the battle ends the team/user with the highest online time wins."; +$lang['stnv0011'] = "(The regular battling time is 48 hours)"; +$lang['stnv0012'] = "The winning team/user will recieve a price, which the user can use whenever the user wants."; +$lang['stnv0013'] = "It will be displayed on the My statistics tab."; +$lang['stnv0014'] = "(Could be online time boost(2x) for 8 hours, instant online time (4 hours), etc."; +$lang['stnv0015'] = "These boosts can be used for example to climb in the top users of the week."; +$lang['stnv0016'] = "Not available"; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; +$lang['stnv0019'] = "My statistics - Page content"; +$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; +$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; +$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "Ranksystem - Statistics"; +$lang['stnv0025'] = "Limit entries"; +$lang['stnv0026'] = "all"; +$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; +$lang['stnv0028'] = "(You are not connected to the TS3!)"; +$lang['stnv0029'] = "List Rankup"; +$lang['stnv0030'] = "Ranksystem info"; +$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; +$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; +$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; +$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; +$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; +$lang['stnv0037'] = "Show only clients, which are not excepted."; +$lang['stnv0038'] = "Show only clients, which are online."; +$lang['stnv0039'] = "Show only clients, which are not online."; +$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; +$lang['stnv0043'] = "connect TS3"; +$lang['stri0001'] = "Ranksystem information"; +$lang['stri0002'] = "What is the Ranksystem?"; +$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; +$lang['stri0004'] = "Who created the Ranksystem?"; +$lang['stri0005'] = "When the Ranksystem was Created?"; +$lang['stri0006'] = "First alpha release: 05/10/2014."; +$lang['stri0007'] = "First beta release: 01/02/2015."; +$lang['stri0008'] = "You can see the newest version on the Ranksystem Website."; +$lang['stri0009'] = "How was the Ranksystem created?"; +$lang['stri0010'] = "The Ranksystem is coded in"; +$lang['stri0011'] = "It uses also the following libraries:"; +$lang['stri0012'] = "Special Thanks To:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - for russian translation"; +$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; +$lang['stri0015'] = "ZanK & jacopomozzy - for italian translation"; +$lang['stri0016'] = "DeStRoYzR & Jehad - for initialisation arabic translation"; +$lang['stri0017'] = "SakaLuX - for initialisation romanian translation"; +$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; +$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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Top users"; +$lang['sttw0002'] = "Of the week"; +$lang['sttw0003'] = "With %s %s online time"; +$lang['sttw0004'] = "Top 10 compared"; +$lang['sttw0005'] = "Hours (Defines 100 %)"; +$lang['sttw0006'] = "%s hours (%s%)"; +$lang['sttw0007'] = "Top 10 Statistics"; +$lang['sttw0008'] = "Top 10 vs others in online time"; +$lang['sttw0009'] = "Top 10 vs others in active time"; +$lang['sttw0010'] = "Top 10 vs others in inactive time"; +$lang['sttw0011'] = "Top 10 (in hours)"; +$lang['sttw0012'] = "Other %s users (in hours)"; +$lang['sttw0013'] = "With %s %s active time"; +$lang['sttw0014'] = "hours"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "Of the month"; +$lang['stta0001'] = "Of all time"; +$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['stve0002'] = "A message with the token was sent to you on the TS3 server."; +$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; +$lang['stve0004'] = "The entered token does not match! Please try it again."; +$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'] = "Choose here your unique ID on the TS3 server to verify yourself."; +$lang['stve0009'] = " -- select yourself -- "; +$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; +$lang['stve0011'] = "Token:"; +$lang['stve0012'] = "verify"; +$lang['time_ms'] = "ms"; +$lang['time_sec'] = "Sec(s)"; +$lang['time_min'] = "Min(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_day'] = "Day(s)"; +$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'] = "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]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]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = "User %s was successfully informed."; +$lang['user'] = "Username"; +$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'] = "Webinterface"; +$lang['wiaction'] = "action"; +$lang['wiadmhide'] = "hide excepted clients"; +$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; +$lang['wiadmuuid'] = "admin ID"; +$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.
Also multiple Client-IDs are possible -> comma separated

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!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$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 should be stopped. Check the log below for more information!"; +$lang['wibot2'] = "Ranksystem Bot should be started. Check the log below for more information!"; +$lang['wibot3'] = "Ranksystem Bot should be restarted. Check the log below for more information!"; +$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'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; +$lang['wichdbid'] = "Client-database-ID reset"; +$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.

Example:
If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server."; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!"; +$lang['wichpw1'] = "Your old password is wrong. Please try again"; +$lang['wichpw2'] = "The new passwords dismatch. Please try again."; +$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s."; +$lang['wichpw4'] = "Change Password"; +$lang['widaform'] = "Date format"; +$lang['widaformdesc'] = "Choose the showing date format.

Example:
%a days, %h hours, %i mins, %s secs"; +$lang['widbcfgsuc'] = "Database configurations saved successfully."; +$lang['widbcfgerr'] = "Error while saving the database configurations! Connection failed or writeout error for 'other/dbconfig.php'"; +$lang['widelcld'] = "delete clients"; +$lang['widelcldgrp'] = "renew groups"; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

With this function you can remove once time the knowledge of given servergroups. In effect the ranksystem try to give all clients (which are on the TS3 server online) the servergroup of the actual rank.
For each client, which gets the group or stay in group, the Ranksystem remember this like described at beginning.

This function can be helpful, when user are not in the servergroup, they should be for the defined online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['widelclddesc'] = "Delete the before selected clients out of the Ranksystem database.

With this deletion are the clients on the TeamSpeak Server untouched."; +$lang['widelsg'] = "remove out of servergroups"; +$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; +$lang['wideltime'] = "Deletiontime"; +$lang['wideltimedesc'] = "Clean old clients out of the Ranksystem database.
Entry a time in seconds which a client was not seen to delete it.

0 - deletes all clients out of the Ranksystem

The Userdatas on the TeamSpeak server are with this untouched!"; +$lang['wiexcid'] = "channel exception"; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

Stay users in one of the listed channels, the time there will be completely ignored. There is neither the online time, yet the idle time counted.

Sense does this function only with the mode 'online time', cause here could be ignored AFK channels for example.
With the mode 'active time', this function is useless because as would be deducted the idle time in AFK rooms and thus not counted anyway.

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = "servergroup exception"; +$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; +$lang['wiexres'] = "exception mode"; +$lang['wiexres1'] = "default (count time)"; +$lang['wiexres2'] = "break time"; +$lang['wiexres3'] = "reset time"; +$lang['wiexresdesc'] = "There are three modes, how to handle an exception. In every case the rank up (assign servergroup) is disabled. You can choose different options how the spended time from a user (which is excepted) should be handled.

1) default (count time): At default the Ranksystem also count the online/active time of users, which are excepted (client/servergroup). With an exception only the rank up (assign servergroup) is disabled. That means if a user is not any more excepted, he would be assign to the group depending his collected time (e.g. level 3).

2) break time: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After an exception the (after removing the excepted servergroup or remove the expection rule) 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The spend time due exception would be still count till it got reset.


The channel exception doesn't matter here, cause the time will always be ignored (like the break mode)."; +$lang['wiexuid'] = "client exception"; +$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; +$lang['wigrptime'] = "rank up definition"; +$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.

Each entry have to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11

On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on..."; +$lang['wihladm'] = "List Rankup (Admin-Mode)"; +$lang['wihladm1'] = "Add online Time to User"; +$lang['wihlcfg'] = "Core settings"; +$lang['wihldb'] = "Database settings"; +$lang['wihlmsg'] = "Message settings"; +$lang['wihlsty'] = "Stats page settings"; +$lang['wihlts'] = "TeamSpeak settings"; +$lang['wihlvs'] = "Various settings"; +$lang['wiignidle'] = "Ignore idle"; +$lang['wiignidledesc'] = "Define a period, up to which the idle time of an user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that date for the Ranksystem as idle time.

This function plays only in conjunction with the mode 'active time' a role.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 = disable the feature

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes
consequence:
8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to over 12 minutes so the time is over 10 minutes, and in this case 2 minutes would be counted as idle time."; +$lang['wilog'] = "Logpath"; +$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; +$lang['wilogout'] = "Logout"; +$lang['wimsgmsg'] = "Message"; +$lang['wimsgmsgdesc'] = "Define a message, which will be send to an user, when he rises the next higher rank.

This message will be send via TS3 private message. So every know bb-code could be used, which also works for a normal private message.
http://ts-n.net/lexicon.php?showid=97#lexindex

Furthermore, the previously spent time can be expressed by arguments:
%1\$s - days
%2\$s - hours
%3\$s - minutes
%4\$s - seconds
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Example:
Hey,\\nyou 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] ;-)"; +$lang['wimsgsn'] = "Server-News"; +$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; +$lang['wimsgusr'] = "Rank up notification"; +$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "Database"; +$lang['winav3'] = "Core"; +$lang['winav4'] = "Other"; +$lang['winav5'] = "Message"; +$lang['winav6'] = "Stats page"; +$lang['winav7'] = "Administrate"; +$lang['winav8'] = "Start / Stop Bot"; +$lang['winav9'] = "Update available!"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these)."; +$lang['winav12'] = "Addons"; +$lang['winxinfo'] = "Command \"!nextup\""; +$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"!nextup\" to the Ranksystem (query) bot as private textmessage.

As answer the user will get a defined text message with the needed time for the next rankup.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; +$lang['winxmode1'] = "deactivated"; +$lang['winxmode2'] = "allowed - only next rank"; +$lang['winxmode3'] = "allowed - all next ranks"; +$lang['winxmsg1'] = "Message"; +$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"!nextup\".

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
Your next rank up will be in %1$s days, %2$s hours and %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B]."; +$lang['winxmsg2'] = "Message (highest)"; +$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user already reached the highest rank.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds."; +$lang['winxmsg3'] = "Message (excepted)"; +$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"!nextup\", when the user is excepted from the Ranksystem.

Arguments:
%1$s - days to next rankup
%2$s - hours to next rankup
%3$s - minutes to next rankup
%4$s - seconds to next rankup
%5$s - name of the next servergroup
%6$s - name of the user (recipient)

Example:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID."; +$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed)."; +$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s"; +$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; +$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; +$lang['wirtpw7'] = "Reset Password"; +$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; +$lang['wirtpw9'] = "Following things are required to reset the password:"; +$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."; +$lang['wishcolas'] = "actual servergroup"; +$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php"; +$lang['wishcolat'] = "active time"; +$lang['wishcolatdesc'] = "Show column 'sum. active time' in list_rankup.php"; +$lang['wishcolcld'] = "Client-name"; +$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php"; +$lang['wishcoldbid'] = "database-ID"; +$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; +$lang['wishcolgs'] = "actual group since"; +$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "idle time"; +$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; +$lang['wishcolls'] = "last seen"; +$lang['wishcollsdesc'] = "Show column 'last seen' in list_rankup.php"; +$lang['wishcolnx'] = "next rank up"; +$lang['wishcolnxdesc'] = "Show column 'next rank up' in list_rankup.php"; +$lang['wishcolot'] = "online time"; +$lang['wishcolotdesc'] = "Show column 'sum. online time' in list_rankup.php"; +$lang['wishcolrg'] = "rank"; +$lang['wishcolrgdesc'] = "Show column 'rank' in list_rankup.php"; +$lang['wishcolsg'] = "next servergroup"; +$lang['wishcolsgdesc'] = "Show column 'next servergroup' in list_rankup.php"; +$lang['wishcoluuid'] = "Client-ID"; +$lang['wishcoluuiddesc'] = "Show column 'unique Client-ID' in list_rankup.php"; +$lang['wishexcld'] = "excepted client"; +$lang['wishexclddesc'] = "Show clients in list_rankup.php,
which are excluded and therefore not participate in the Ranksystem."; +$lang['wishexgrp'] = "excepted groups"; +$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem."; +$lang['wishhicld'] = "Clients in highest Level"; +$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; +$lang['wishnav'] = "show site-navigation"; +$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.

If this option is deactivated on the stats page the site navigation will be hidden.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; +$lang['wisupidle'] = "Mode"; +$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.

1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').

A change of mode with an already longer running database is not recommended, but may work."; +$lang['wisvconf'] = "save"; +$lang['wisvsuc'] = "Changes successfully saved!"; +$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; +$lang['witime'] = "Timezone"; +$lang['witimedesc'] = "Select the timezone the server is hosted."; +$lang['wits3avat'] = "Avatar Delay"; +$lang['wits3avatdesc'] = "Define a time in seconds to delay the download of changed TS3 avatars.

This function is especially useful for (music) bots, which are changing his avatar periodic."; +$lang['wits3dch'] = "Default Channel"; +$lang['wits3dchdesc'] = "The channel-ID, the bot should connect with.

The Bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3host'] = "TS3 Hostaddress"; +$lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; +$lang['wits3sm'] = "Slowmode"; +$lang['wits3smdesc'] = "With the Slowmode you can reduce \"spam\" of query commands to the TeamSpeak server. This prevent bans in case of flood.
TeamSpeak Query commands get delayed with this function.

!!! ALSO IT REDUCE THE CPU USAGE !!!

The activation is not recommended, if not required. The delay increases the duration of the Bot, which makes it imprecisely.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Botname"; +$lang['wits3qnm2'] = "2nd Botname"; +$lang['wits3qnm2desc'] = "A fallback Botname, if the first one is already in use."; +$lang['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; +$lang['wits3querpw'] = "TS3 Query-Password"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; +$lang['wits3querusr'] = "TS3 Query-User"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
http://ts-n.net/ranksystem.php"; +$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['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"; +$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; ?> \ No newline at end of file diff --git a/languages/core_ru.php b/languages/core_ru.php index b90dd3b..00e8764 100644 --- a/languages/core_ru.php +++ b/languages/core_ru.php @@ -1,529 +1,534 @@ - добавлен в БД RankSystem."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['changedbid'] = "У пользователя %s (UID: %s) изменился TeamSpeak DBID (%s). Обновляем старый Client-DBID (%s) и сбрасываем ему старое время!"; -$lang['crawl'] = "Сканирование активности подключенных пользователей..."; -$lang['clean'] = "Сканирование пользователей, которых необходимо удалить..."; -$lang['cleanc'] = "Чистка пользователей"; -$lang['cleancdesc'] = "При включении данной функции, старые пользователи в БД Ranksystem будут удалены.

С этой целью, Ranksystem синхронизируется с базой данных TeamSpeak. Пользователи, которых не существует в базе данных TeamSpeak, будут удалены из Ranksystem.

Эта функция работает когда режим 'Slowmode' отключен!


Для автоматической очистки базы данных TeamSpeak 3 вы можете использовать утилиту ClientCleaner:
http://ts-n.net/clientcleaner.php"; -$lang['cleandel'] = "%s пользователя удалены из базы данных Ranksystem, так как они больше не существуют в базе данных TeamSpeak."; -$lang['cleanno'] = "Не найдены пользователи, которых необходимо удалить из базы данных."; -$lang['cleanp'] = "Период очистки БД RankSystem"; -$lang['cleanpdesc'] = "Укажите время, которое должно пройти перед очередной очисткой пользователей.

Устанавливается в секундах.

Для больших баз данных рекомендуется использовать один раз в день."; -$lang['cleanrs'] = "Пользователей в базе данных Ranksystem: %s"; -$lang['cleants'] = "Пользователей найдено в базе данных TeamSpeak: %s (at %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['days'] = "%s дней"; -$lang['dbconerr'] = "Ошибка подключения к базе данных: "; -$lang['delcldgrpif'] = "Ошибка удаления пользователя из группы сервера: %s"; -$lang['delcldgrpsc'] = "Данные о группах сервера для пользователя %s успешно удалены."; -$lang['delclientsif'] = "%s клиент(ов) удалено из базы данных RankSystem!"; -$lang['delclientssc'] = "%s клиент(ов) успешно удалено из базы данных 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['errlogin'] = "Неверно введён логин или пароль! Пожалуйста, повторите ввод данных заново."; -$lang['errlogin2'] = "Защита от перебора: Попробуйте повторить через %s секунд!"; -$lang['errlogin3'] = "Защита от перебора: От вас поступает слишком много запросов. Вы были забанены на 300 секунд!"; -$lang['error'] = "Ошибка "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errremgrp'] = "Ошибка удаления пользователя с UID: %s из группы сервера ID: %s!"; -$lang['errremdb'] = "Ошибка удаления пользователя с UID %s из базы данных RankSystem!"; -$lang['errselusr'] = "Пожалуйста, укажите пользователя!"; -$lang['errseltime'] = "Пожалуйста, введите время, которое хотите начислить."; -$lang['errukwn'] = "Произошла неизвестная ошибка!"; -$lang['errupcount'] = "Ошибка подсчета суммарного времени подключения %s пользователя с UCI %s"; -$lang['highest'] = "Достигнут максимальный ранг"; -$lang['install'] = "Установка"; -$lang['instdb'] = "Установка базы данных"; -$lang['instdbsuc'] = "База данных %s успешно создана."; -$lang['insterr1'] = "ВНИМАНИЕ: Указанная база данных \"%s\" уже существует!
При продолжении процесса установки, старые данные в этой базе данных будут удалены.
Если вы не уверены, нужно ли очищать данную базу данных, то укажите другую базу."; -$lang['insterr2'] = "Для работы RankSystem требуется наличие модуля PHP PDO. Пожалуйста, установите PDO модуль и попробуйте заново!"; -$lang['insterr3'] = "Для работы RankSystem требуется наличие включеной функции PHP exec. Пожалуйста, включите данную exec функцию и попробуйте заново!"; -$lang['insterr4'] = "Ваша версия PHP (%s) ниже допустимой 5.5.0. Пожалуйста, обновите версию PHP и попробуйте заново!"; -$lang['insterr5'] = "Для установки требуется SimpleXML. Пожалуйста, установите simpleXML и попробуйте заново!"; -$lang['insterr6'] = "Для запуска системы необходим PHP cURL. Установите PHP cURL и попробуйте заново!"; -$lang['insterr7'] = "Для запуска системы необходим PHP Zip . Установите PHP Zip и попробуйте заново!"; -$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; -$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; -$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 0777 (В windows 'Полный доступ') и попробуйте заново."; -$lang['isntwicfg2'] = "Конфигурирование веб-интерфейса"; -$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 0777 (В windows 'полный доступ') и повторите этот этап заново."; -$lang['isntwiconf'] = "После, откройте страницу %s для настройки Системы рангов(RankSystem)!"; -$lang['isntwidbhost'] = "Адрес:"; -$lang['isntwidbhostdesc'] = "Адрес сервера базы данных
(IP или домен)"; -$lang['isntwidbmsg'] = "Ошибка базы данных: "; -$lang['isntwidbname'] = "Имя:"; -$lang['isntwidbnamedesc'] = "Название базы данных"; -$lang['isntwidbpass'] = "Пароль:"; -$lang['isntwidbpassdesc'] = "Пароль для подключения к базе данных"; -$lang['isntwidbtype'] = "Тип базы данных:"; -$lang['isntwidbtypedesc'] = "Тип базы данных

Для корректной работы у вас должен быть установлен модуль PHP PDO.
Для получения дополнительной информации см. http://ts-n.net/ranksystem.php"; -$lang['isntwidbusr'] = "Пользователь:"; -$lang['isntwidbusrdesc'] = "Пользователь с доступом к базе данных"; -$lang['isntwidel'] = "Пожалуйста, удалите файл 'install.php' с веб-сервера в целях безопасности!"; -$lang['isntwiusr'] = "Пользователь веб-панели успешно создан."; -$lang['isntwiusrcr'] = "Создание аккаунта Администратора"; -$lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в веб-банель. С помощью веб-панели вы сможете настроить RankSystem."; -$lang['isntwiusrh'] = "Доступ - Веб-Панель"; -$lang['listacsg'] = "Текущая группа ранга"; -$lang['listcldbid'] = "ID клиента в базе данных"; -$lang['listexcept'] = "Нет, исключен"; -$lang['listgrps'] = "Текущая группа начиная с"; -$lang['listip'] = "IP-адрес"; -$lang['listnick'] = "Никнейм"; -$lang['listnxsg'] = "Следующая группа ранга"; -$lang['listnxup'] = "Следующий Ранг через"; -$lang['listrank'] = "Ранг"; -$lang['listseen'] = "Последняя активность"; -$lang['listsuma'] = "Сумм. время активности"; -$lang['listsumi'] = "Сумм. время простоя"; -$lang['listsumo'] = "Сумм. время подключения"; -$lang['listuid'] = "Уникальный ID клиента(UID)"; -$lang['login'] = "Авторизоваться"; -$lang['msg0001'] = "используемая версия: %s"; -$lang['msg0002'] = "Список доступных команд:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\t выводят список доступных команд\n[B]version[/B]\t\t\t\t\t\t\t\t выводит информацию о версии системы рангов\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]nextup[/B]\t\t\t\t\t\t выводит время, через которое произойдет повышение ранга\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\tперезапускают систему рангов\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t выключают систему рангов"; -$lang['msg0003'] = "У вас нет доступа для выполнения данной команды!"; -$lang['msg0004'] = "Клиент %s (%s) выключил систему рангов."; -$lang['msg0005'] = "Система рангов выключается... Прямо сейчас!"; -$lang['msg0006'] = "Система рангов перезапускается..."; -$lang['msg0007'] = "Клиент %s (%s) перезапустил систему рангов."; -$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['nocount'] = "Пользователь %s (UID: %s; Клиент ID %s) является query-пользователем -> не будет учитываться!"; -$lang['noentry'] = "Записей не найдено.."; -$lang['pass'] = "Пароль"; -$lang['pass2'] = "Изменить пароль"; -$lang['pass3'] = "Старый пароль"; -$lang['pass4'] = "Новый пароль"; -$lang['pass5'] = "Забыли пароль?"; -$lang['queryname'] = "Первый никнейм для бота уже занят другим пользователем. Пробуем использовать второй никнейм..."; -$lang['repeat'] = "Повтор нового пароля"; -$lang['resettime'] = "Сбрасываем онлайн и время простоя пользователя %s (UID: %s; DBID %s), так как пользователь был удален из исключений."; -$lang['sccrmcld'] = "Пользователь с UID %s успешно удален из базы данных RankSystem."; -$lang['sccupcount'] = "Клиенту(ам) => (%s) успешно начислено %s секунд времени онлайна."; -$lang['setontime'] = "Начислить время"; -$lang['setontimedesc'] = "Данная функция начисляет пользователю время онлайна с учётом прошлых накоплений. От этого времени также будет впоследствии сформирован ранг пользователя.

Введенное время будет учитываться при выдаче ранга и должно подействовать мгновенно (немного дольше при включенном SlowMode'е)."; -$lang['sgrpadd'] = "Выдана группа сервера №%s (ID: %s) пользователю %s (UID клиента: %s; DBID: %s)."; -$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; -$lang['sgrprm'] = "С пользователя %s (ID: %s) снята группа сервера %s (UID: %s; DBID: %s)."; -$lang['size_byte'] = "Б"; -$lang['size_kib'] = "КиБ"; -$lang['size_mib'] = "МиБ"; -$lang['size_gib'] = "ГиБ"; -$lang['size_tib'] = "ТиБ"; -$lang['size_pib'] = "ПиБ"; -$lang['size_eib'] = "ЭиБ"; -$lang['size_zib'] = "ЗиБ"; -$lang['size_yib'] = "ЙиБ"; -$lang['stag0001'] = "Менеджер групп"; -$lang['stag0002'] = "Разрешенные группы"; -$lang['stag0003'] = "Введите список групп сервера, которые пользователь сможет назначить себе сам.

Необходимо ввести ID групп через запятую.

Например:
23,24,28"; -$lang['stag0004'] = "Лимит количества групп"; -$lang['stag0005'] = "Максимальное количество групп, которые можно установить одновременно."; -$lang['stag0006'] = "Система определила несколько GUIDов подключенных к серверу с вашим IP. Пожалуйста %sнажмите сюда%s что бы перепроверить."; -$lang['stag0007'] = "Прежде чем вносить новые изменения подождите пока ваши предыдущие изменения вступят в силу..."; -$lang['stag0008'] = "Изменения успешно сохранены. Через несколько секунд группы будут выданы на сервере."; -$lang['stag0009'] = "Вы не можете установить более %s групп(ы)!"; -$lang['stag0010'] = "Пожалуйста выберите как минимум одну новую группу."; -$lang['stag0011'] = "Максимум групп одновременно: "; -$lang['stag0012'] = "Установить группы"; -$lang['stag0013'] = "Аддон ВКЛ/ВЫКЛ"; -$lang['stag0014'] = "Позволяет включить (ВКЛ) или выключить (ВЫКЛ) аддон.

Если отключить аддон то пункт меню на странице навигации stats/ так же будет скрыт."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stix0001'] = "Статистика сервера"; -$lang['stix0002'] = "Пользователей зарегистрировано в базе RankSystem"; -$lang['stix0003'] = "Посмотреть подробнее"; -$lang['stix0004'] = "Общий накопленный онлайн за всё время"; -$lang['stix0005'] = "Рейтинг за всё время"; -$lang['stix0006'] = "Рейтинг за месяц"; -$lang['stix0007'] = "Рейтинг за неделю"; -$lang['stix0008'] = "Активность сервера"; -$lang['stix0009'] = "За последние 7 дней"; -$lang['stix0010'] = "За последние 30 дней"; -$lang['stix0011'] = "За последние 24 часа"; -$lang['stix0012'] = "Выберите период"; -$lang['stix0013'] = "За день"; -$lang['stix0014'] = "За неделю"; -$lang['stix0015'] = "За месяц"; -$lang['stix0016'] = "Соотнош. активн./AFK"; -$lang['stix0017'] = "Версии клиентов"; -$lang['stix0018'] = "Рейтинг стран"; -$lang['stix0019'] = "Популярные платформы"; -$lang['stix0020'] = "Текущая статистика"; -$lang['stix0023'] = "Статус сервера"; -$lang['stix0024'] = "Активен"; -$lang['stix0025'] = "Неактивен"; -$lang['stix0026'] = "Пользователей (Онлайн / Максимум)"; -$lang['stix0027'] = "Количество каналов"; -$lang['stix0028'] = "Средний пинг на сервере"; -$lang['stix0029'] = "Всего байт получено"; -$lang['stix0030'] = "Всего байт отправлено"; -$lang['stix0031'] = "Сервер онлайн"; -$lang['stix0032'] = "Находится в оффлайне:"; -$lang['stix0033'] = "00 дней, 00 часов, 00 мин., 00 сек."; -$lang['stix0034'] = "Средняя потеря пакетов"; -$lang['stix0035'] = "Информация о сервере"; -$lang['stix0036'] = "Название сервера"; -$lang['stix0037'] = "Адрес сервера (IP:Порт)"; -$lang['stix0038'] = "Защищен паролем"; -$lang['stix0039'] = "Нет (Публичный сервер)"; -$lang['stix0040'] = "Да (Приватный сервер)"; -$lang['stix0041'] = "ID сервера"; -$lang['stix0042'] = "Платформа сервера"; -$lang['stix0043'] = "Версия сервера"; -$lang['stix0044'] = "Дата создания (дд/мм/гггг)"; -$lang['stix0045'] = "Видимость в глобал. списке"; -$lang['stix0046'] = "Отображается"; -$lang['stix0047'] = "Не отображается"; -$lang['stix0048'] = "Нет информации..."; -$lang['stix0049'] = "Общий накопленный онлайн за месяц"; -$lang['stix0050'] = "Общий накопленный онлайн за неделю"; -$lang['stix0051'] = "Ошибка при получении даты"; -$lang['stix0052'] = "другие"; -$lang['stix0053'] = "Активное время (в днях)"; -$lang['stix0054'] = "Неактивное время (в днях)"; -$lang['stix0055'] = "онлайн в течение суток"; -$lang['stix0056'] = "онлайн в течение %s дней"; -$lang['stix0059'] = "Список пользователей"; -$lang['stix0060'] = "Клиентов"; -$lang['stix0061'] = "Показать все версии"; -$lang['stix0062'] = "Показать все страны"; -$lang['stix0063'] = "Показать все платформы"; -$lang['stmy0001'] = "Моя статистика"; -$lang['stmy0002'] = "Ранг"; -$lang['stmy0003'] = "ID в базе данных:"; -$lang['stmy0004'] = "Уникальный ID(UID):"; -$lang['stmy0005'] = "Всего подключений к серверу:"; -$lang['stmy0006'] = "Занесён в базу статистики"; -$lang['stmy0007'] = "Проведенное время на сервере:"; -$lang['stmy0008'] = "Онлайн за %s дней:"; -$lang['stmy0009'] = "Активное время за %s дней:"; -$lang['stmy0010'] = "Получено достижений:"; -$lang['stmy0011'] = "Достижение за онлайн на сервере"; -$lang['stmy0012'] = "Уровень: Легенда"; -$lang['stmy0013'] = "Вы провели в онлайне на сервере %s часа(ов)."; -$lang['stmy0014'] = "Полностью выполнена вся цепочка"; -$lang['stmy0015'] = "Уровень: Золото"; -$lang['stmy0016'] = "% завершено до получения уровня \"Легенда\""; -$lang['stmy0017'] = "Уровень: Серебро"; -$lang['stmy0018'] = "% завершено до получения уровня \"Золото\""; -$lang['stmy0019'] = "Уровень: Бронза"; -$lang['stmy0020'] = "% завершено до получения уровня \"Серебро\""; -$lang['stmy0021'] = "Уровень: Без достижений"; -$lang['stmy0022'] = "% завершено до получения уровня \"Бронза\""; -$lang['stmy0023'] = "Достижение за количество подключений"; -$lang['stmy0024'] = "Уровень: Легенда"; -$lang['stmy0025'] = "Всего ваших подключений к серверу: %s раз."; -$lang['stmy0026'] = "Уровень: Золото"; -$lang['stmy0027'] = "Уровень: Серебро"; -$lang['stmy0028'] = "Уровень: Бронза"; -$lang['stmy0029'] = "Уровень: Без достижений"; -$lang['stmy0030'] = "Прогресс до следующего ранга на сервере"; -$lang['stmy0031'] = "Общее время активности"; -$lang['stna0001'] = "Страны"; -$lang['stna0002'] = "статистика"; -$lang['stna0003'] = "Код страны"; -$lang['stna0004'] = "зарегистрировано"; -$lang['stna0005'] = "Версии"; -$lang['stna0006'] = "Платформы"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Наши новости"; -$lang['stnv0002'] = "Закрыть"; -$lang['stnv0003'] = "Обновление информации о клиенте"; -$lang['stnv0004'] = "Используйте это, если хотите чтобы обновилась информация о вас. К примеру, вы зашли под другим аккаунтом на сервер TeamSpeak и хотите увидеть его статистику."; -$lang['stnv0005'] = "Это работает только если вы подключены к серверу TeamSpeak в данный момент."; -$lang['stnv0006'] = "Обновить"; -$lang['stnv0007'] = "Battle area - Содержимое"; -$lang['stnv0008'] = "Вы можете создать состязание между двумя пользователями или командами."; -$lang['stnv0009'] = "Во время \"Битвы\" подсчитывается время, проведенное на сервере у обеих команд или игроков."; -$lang['stnv0010'] = "Для победы необходимо набрать больше времени в онлайне, чем команда противника."; -$lang['stnv0011'] = "(Продолжительность \"Битвы\" - 48 часов)"; -$lang['stnv0012'] = "Команда победителей получает приз, который пользователь может затем использовать."; -$lang['stnv0013'] = "Полученный приз будет отображаться в вкладкеМоя статистика."; -$lang['stnv0014'] = "(Это может быть множитель времени(2x) на 8 часов или же бонус, в виде прибавки к основному времени (4 часа), и т.д."; -$lang['stnv0015'] = "Также, \"множители времени\" можно использовать для поднятия себя в рейтинге пользователей за неделю/месяц"; -$lang['stnv0016'] = "Недоступно"; -$lang['stnv0017'] = "Для доступа к данной странице необходимо, чтобы вы подключились к серверу TeamSpeak"; -$lang['stnv0018'] = "Пожалуйста, подключитесь к TeamSpeak серверу, а затем нажмите синюю кнопку ''Обновить'' в правом верхнем углу браузера."; -$lang['stnv0019'] = "Статистика сервера - содержимое"; -$lang['stnv0020'] = "Эта страница содержит информацию о вашей статистике и активности на сервере."; -$lang['stnv0021'] = "Большинство этой информации было собрано с момента начального старта системы RankSystem, никак не с момента первого запуска TeamSpeak сервера."; -$lang['stnv0022'] = "Данная информация получена из базы данных RankSystem и может отличаться от той, которая хранится в базе данных TeamSpeak."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "RankSystem — статистика TeamSpeak 3 сервера"; -$lang['stnv0025'] = "Ограничение списка"; -$lang['stnv0026'] = "Все"; -$lang['stnv0027'] = "Информация на сайте может быть устаревшей! Кажется,\"RankSystem\" больше не подключена к TeamSpeak 3 серверу. Потеряно соединение?"; -$lang['stnv0028'] = "(Вы не подключены к TS3!)"; -$lang['stnv0029'] = "Общая статистика"; -$lang['stnv0030'] = "О RankSystem"; -$lang['stnv0031'] = "Поиск также поддерживает шаблоны: никнейм пользователя, уникальный ID(UID) и ID клиента в базе данных."; -$lang['stnv0032'] = "Вы также можете использовать фильтр запроса (смотрите ниже). Для этого введите его в поисковое поле."; -$lang['stnv0033'] = "Также допустимы комбинации шаблонов и фильтров. Для этого введите первым фильтр, за ним без пробелов шаблон."; -$lang['stnv0034'] = "Это позволяет комбинировать множество фильтров, вводить которые необходимо последовательно."; -$lang['stnv0035'] = "Пример:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Показывать только пользователей находящихся в исключении (пользователей, групп сервера или исключение канала)."; -$lang['stnv0037'] = "Показывать только неисключенных пользователей"; -$lang['stnv0038'] = "Показывать только пользователей находящихся в онлайне"; -$lang['stnv0039'] = "Показывать только пользователей не находящихся в онлайне"; -$lang['stnv0040'] = "Показывать только пользователей в указанных группах, она же - выборка юзеров по рангам
Замените GROUPID на желаемые ID группы ранга."; -$lang['stnv0041'] = "Показать пользователей, удовлетворяющих поисковому запросу по дате последнего посещения сервера.
Замените OPERATOR на '<' или '>' или '=' или '!='.
Также замените TIME на желаемую дату поиска в формате 'Y-m-d H-i'(год-месяц-день час-минута) (пример: 2016-06-18 20-25).
Более подробный пример запроса: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Показывать только пользователей из указанной страны.
Замените TS3-COUNTRY-CODE на желаемый код страны.
Коды стран вы можете взять Здесь(Википедия)"; -$lang['stnv0043'] = "Подключиться к серверу TS3"; -$lang['stri0001'] = "Информация о системе рангов"; -$lang['stri0002'] = "Что такое TSN RankSystem?"; -$lang['stri0003'] = "Удобная система, позволяющая создать на сервере TeamSpeak 3 систему рангов-поощрений, основанную на времени, которое пользователи проводят на сервере. Ко всему прочему, она также занимается сбором информации о пользователях и последующим её отображением на сайте."; -$lang['stri0004'] = "Кто является её разработчиком?"; -$lang['stri0005'] = "Когда была создана TSN Ranksystem?"; -$lang['stri0006'] = "Альфа-релиз: 05/10/2014."; -$lang['stri0007'] = "Бета-релиз: 01/02/2015."; -$lang['stri0008'] = "Вы можете найти новую версию на сайте: Ranksystem Website."; -$lang['stri0009'] = "Как создавалась TSN Ranksystem?"; -$lang['stri0010'] = "\"RankSystem\" разрабатывалась на языке"; -$lang['stri0011'] = "При создании использовался следующий набор инструментов:"; -$lang['stri0012'] = "Особая благодарность:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - За русскоязычный перевод интерфейса."; -$lang['stri0014'] = "Bejamin Frost - За помощь в создании дизайна сайта с помощью Bootstrap."; -$lang['stri0015'] = "ZanK & jacopomozzy - За перевод интерфейса на итальянский язык."; -$lang['stri0016'] = "DeStRoYzR & Jehad - За перевод интерфейса на арабский язык"; -$lang['stri0017'] = "SakaLuX - За перевод интерфейса на румынский язык."; -$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; -$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'] = "Топ-10 пользователей"; -$lang['sttw0002'] = "За неделю"; -$lang['sttw0003'] = "Набрал %s %s часов онлайна"; -$lang['sttw0004'] = "Топ-10 в графике (Разрыв между участниками)"; -$lang['sttw0005'] = "Часов (Представляет собой 100 %)"; -$lang['sttw0006'] = "%s часов (%s%)"; -$lang['sttw0007'] = "Участники топ-10 в сравнении"; -$lang['sttw0008'] = "Топ-10 против остальных по онлайну"; -$lang['sttw0009'] = "Топ-10 против остальных по активности"; -$lang['sttw0010'] = "Tоп-10 против остальных по оффлайну"; -$lang['sttw0011'] = "Топ-10 в графике"; -$lang['sttw0012'] = "Остальные %s клиенты (в часах)"; -$lang['sttw0013'] = "С %s %s часами активности"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['sttm0001'] = "За месяц"; -$lang['stta0001'] = "За все время"; -$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['stve0002'] = "Сообщение с ключем было отправлено вам через личное сообщение на сервере TS3."; -$lang['stve0003'] = "Пожалуйста, введите ключ, который вы получили на сервере TS3. Если вы не получили ключ - убедитесь что вы выбрали правильный уникальный ID."; -$lang['stve0004'] = "Ключ, который вы ввели не подходит! Попробуйте снова."; -$lang['stve0005'] = "Поздравляем, проверка произошла успешно! Теперь вы можете пользоваться всем функционалом.."; -$lang['stve0006'] = "Произошла неизвестная ошибка. Попробуйте ещё раз. Если не получится - свяжитесь с администратором."; -$lang['stve0007'] = "Проверка на сервере TS"; -$lang['stve0008'] = "Выберите свой уникальный ID на сервере что бы произвести проверку."; -$lang['stve0009'] = " -- выберите себя -- "; -$lang['stve0010'] = "Вы получите ключ для подтверждения на сервере, который вам необходимо ввести в данное поле:"; -$lang['stve0011'] = "Ключ:"; -$lang['stve0012'] = "проверить"; -$lang['time_ms'] = "мс"; -$lang['time_sec'] = "Секунды"; -$lang['time_min'] = "Минуты"; -$lang['time_hour'] = "Часы"; -$lang['time_day'] = "Дни"; -$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'] = "Доступна новая версия 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]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]."; -$lang['upusrerr'] = "Пользователь с уникальным ID %s не был найден (не правильно указан Уникальный ID или пользователь в настоящий момент не подключен к серверу Teamspeak)!"; -$lang['upusrinf'] = "Пользователь %s был успешно проинформирован."; -$lang['user'] = "Логин"; -$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'] = "Веб-панель"; -$lang['wiaction'] = "Выполнить"; -$lang['wiadmhide'] = "скрывать исключенных клиентов"; -$lang['wiadmhidedesc'] = "Нужно ли скрывать исключенных клиентов в данном списке"; -$lang['wiadmuuid'] = "UID администратора"; -$lang['wiadmuuiddesc'] = "Введите здесь уникальный Teamspeak 3 идентификатор(UID) Администратора RankSystem.
Also multiple Client-IDs are possible -> comma separated

В дальнейшем это пригодится вам, если вы потеряете пароль и доступ к веб-панели.

Если UID не задан, то сбросить пароль будет невозможно!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; -$lang['wiboost'] = "Бустер онлайна"; -$lang['wiboostdesc'] = "Вы можете указать здесь ID групп сервера (Их необходимо создать на TeamSpeak сервере заранее), выступающие в роли множителя накапливаемого времени, которое получает пользователь за онлайн на сервере. Также вы должны указать на сколько должно умножаться время и период действия группы-множителя. Чем больше множитель времени, тем быстрее пользователь достигнет следующий ранг. По окончанию действия множителя, группа-множитель автоматически снимается с пользователя. Пример указания группы-множителя следующий: ID группы=> множитель=> время(В секундах). Если вы хотите сделать две или больше таких групп, то разделите их между собой запятой.

Пример:
12=>2=>6000,13=>3=>2500,14=>5=>600

Из примера выше следует, что группа с ID 12 дает множитель времени х2 на 6000 секунд, а группа 13 имеет множитель х3 на 2500 секунд. 14 группа соответственно, имеет множитель х5 на 600 секунд."; -$lang['wibot1'] = "RankSystem была выключена. Более подробную информацию смотрите в логе ниже!"; -$lang['wibot2'] = "RankSystem запущена. Более подробную информацию смотрите в логе ниже!"; -$lang['wibot3'] = "RankSystem перезагружается. Более подробную информацию смотрите в логе ниже!"; -$lang['wibot4'] = "Включить / Выключить бота RankSystem"; -$lang['wibot5'] = "Запустить"; -$lang['wibot6'] = "Остановить"; -$lang['wibot7'] = "Перезапустить"; -$lang['wibot8'] = "Лог RankSystem:"; -$lang['wibot9'] = "Заполните все обязательные поля перед запуском RankSystem!"; -$lang['wichdbid'] = "Сброс при изменении DBID"; -$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базе данных клиента TeamSpeak изменился.

Пример:
Если пользователь удален из БД сервера TeamSpeak, то, новый ID в базе данных клиента будет записан со следующим подключением к серверу."; -$lang['wiconferr'] = "Есть ошибка в конфигурации Ranksystem. Пожалуйста, зайдите в Веб-Панель и проверьте настройки раздела 'Настройка RankSystem'. Особенно тщательно проверьте 'Ранги'!"; -$lang['wichpw1'] = "Неверный старый пароль. Пожалуйста, повторите ввод заново."; -$lang['wichpw2'] = "Новые пароли не совпадают. Пожалуйста, повторите ввод заново."; -$lang['wichpw3'] = "Пароль для веб-панели успешно изменён. IP инициировавший сброс: IP %s."; -$lang['wichpw4'] = "Изменить пароль"; -$lang['widaform'] = "Формат даты"; -$lang['widaformdesc'] = "Выберите формат показа даты.

Пример:
%a дней, %h часов, %i минут, %s секунд"; -$lang['widbcfgsuc'] = "Настройки Базы Данных успешно сохранены."; -$lang['widbcfgerr'] = "Ошибка сохранения настроек в базе данных! Ошибка подключения, проверьте на правильность настройки '/other/dbconfig.php'"; -$lang['widelcld'] = "удаление пользователей"; -$lang['widelcldgrp'] = "Обновить группы"; -$lang['widelcldgrpdesc'] = "RankSystem хранит текущие группы рангов пользователей в своей базе данных и после того, как вы отредактируете этих пользователей должно пройти некоторое время, прежде чем RankSystem уберёт затронутых пользователей из их прежних групп ранга.
Однако, этой функцией вы можете принудительно запустить процесс обновления групп ранга у всех пользователей, которые в данный момент подключены к серверу."; -$lang['widelclddesc'] = "Удаление выбранных пользователей из базы данных RankSystem.

Пользователь из базы данных сервера Teamspeak не будет удален."; -$lang['widelsg'] = "Удалить их также из групп сервера"; -$lang['widelsgdesc'] = "Выберите, если клиенты должны также быть удалены из последней заработанной ими группы-ранга."; -$lang['wideltime'] = "Время удаления"; -$lang['wideltimedesc'] = "Очистка базы данных RankSystem от старых пользователей.
Введите время в секундах, достигнув которого, пользователь не будет удален из БД RankSystem.

0 - Удаление всех пользователей из БД RankSystem

При этом база данных пользователей на сервере TeamSpeak затронута не будет!"; -$lang['wiexcid'] = "Исключ. каналы"; -$lang['wiexciddesc'] = "Через запятую должен будет указан список каналов, пользователей в которых должна будет игнорировать RankSystem

Находясь в этих каналах, пользователям не будет начисляться время за онлайн на сервере.

Данную функция можно использовать к примеру, для AFK каналов.
При режиме подсчёта за 'активное время', эта функция становится бесполезной, т.к. в канале юзеру перестает вовсе начисляться время бездействия

Пользователи находящиеся в таких каналах, помечаются на этот период как 'исключенные из RankSystem'. К тому же, данные пользователи перестают отображаться в 'stats/list_rankup.php' и становятся доступны только с фильтром поиска или с включенным отображением \"исключенных пользователей\"(Страница статистики - \"исключенные пользователи\")."; -$lang['wiexgrp'] = "Исключ. группы сервера"; -$lang['wiexgrpdesc'] = "Укажите через запятую ID групп сервера, пользователи в которых будут игнорироваться RankSystem.
Если пользователь находится хоты бы в одной из этих групп, то RankSystem будет игнорировать его.(Также не будет начислять онлайн)"; -$lang['wiexres'] = "Режим исключения"; -$lang['wiexres1'] = "стандартный (всегда считать время)"; -$lang['wiexres2'] = "заморозка времени"; -$lang['wiexres3'] = "сброс времени"; -$lang['wiexresdesc'] = "Существует три режима работы с исключенными пользователями. Во всех случаях время не начисляется, а ранги не выдаются. Вы можете выбрать разные варианты того, как накопленное пользователем время будет обрабатываться после того как он будет удален из исключений.

1) стандартный (всегда считать время): По умолчанию, система рангов всегда считает время онлайн/активных пользователей, которые исключены из системы рангов (клиент/серверная группа). В данном режиме не работает только повышение ранга. Это означает, что как только пользователь удалится из исключений, ему будут выданы группы из системы рангов основываясь на времени его активности (например, уровень 3).

2) заморозка времени: С этой опцией онлайн и время простоя будут заморожены на текущем значении (до того как пользователь был исключен). После того как пользователь будет удален из исключений его время онлайн и неактивности будут снова накапливаться.

3) сброс времени: С этой опцией при исключении пользователя время его активности и неактивности будут учитываться, однако после того как пользователь будет удален из исключений его время активности и неактивности будут сброшены.


Исключения по каналам не играют никакой роли, так как время всегда будет игнорироваться (как в режиме заморозки)."; -$lang['wiexuid'] = "Исключенные пользователи"; -$lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы пользователей (UID), которых будет игнорировать RankSystem и им не будет засчитываться время, проведенное на сервере.
"; -$lang['wigrptime'] = "Настройка рангов"; -$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

Время (в секундах)=>номер группы сервера(ServerGroupID)

К тому же, от выбранного режима будет зависеть.

Каждый параметр должен разделяться запятой.

Так же время должно быть указано по 'нарастающей'

Пример:
60=>9,120=>10,180=>11

По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечению еще 120 секунд пользователь получает сервер группу SGID 10, и так далее..."; -$lang['wihladm'] = "Список пользователей (Admin-Mode)"; -$lang['wihladm1'] = "Начислить время пользователю"; -$lang['wihlcfg'] = "Настройка RankSystem"; -$lang['wihldb'] = "Настройки Базы Данных"; -$lang['wihlmsg'] = "Настройка оповещения"; -$lang['wihlsty'] = "Отображение пользователей на странице статистики"; -$lang['wihlts'] = "Настройка подключения к TeamSpeak"; -$lang['wihlvs'] = "Прочие настройки"; -$lang['wiignidle'] = "Игнорировать время бездействия"; -$lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.

Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), это время также учитывается RankSystem. Только когда установленный лимит будет достигнут, RankSystem начнет подсчитывать время бездействия для пользователя.

Эта функция работает только при включенном режиме подсчёта за 'активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).

Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии.

0= отключить данную функцию

Пример:
Игнорировать бездействие= 600 (секунд)
Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя."; -$lang['wilog'] = "Папка логирования работы RankSystem"; -$lang['wilogdesc'] = "Расположение логов Ranksystem на диске.

Пример:
/var/logs/ranksystem/

Убедитесь, что веб-пользователь имеет разрешение на редактирование этой папки/файлов(chmod)."; -$lang['wilogout'] = "Выход"; -$lang['wimsgmsg'] = "Оповещение"; -$lang['wimsgmsgdesc'] = "Задать сообщение, которое будет отправлено пользователю, при достижении высшего ранга.

Данное сообщение отправляется посредством личных сообщений на TeamSpeak 3 сервере. Текст поддерживает использование bb-кодов программы Teamspeak.
http://ts-n.net/lexicon.php?showid=97#lexindex

Кроме того, также поддерживаются следующие аргументы в сообщении:
%1\$s - дни
%2\$s - часы
%3\$s - минут
%4\$s - секунды
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Пример:
Привет,\\nты достиг высший ранг, за время онлайн на сервере в течение %1\$s дней, %2\$s часов и %3\$s минут на нашем сервере.[B]Продолжай в том же духе![/B] ;-)"; -$lang['wimsgsn'] = "Новости сервера"; -$lang['wimsgsndesc'] = "Здесь указывается новостное сообщение, отображаемое пользователям в каталоге сайта \"/stats/\".

Вы можете использвать html-разметку для создания красивого оформления текста.

Пример:
<b>TEXT</b> - Жирный
<u>TEXT</u> - Подчеркнутый
<i>TEXT</i> - Наклонный
<br> - Перенос текста на новую строку"; -$lang['wimsgusr'] = "Уведомление при повышении"; -$lang['wimsgusrdesc'] = "Сообщение пользователю о повышении ранга."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "База данных"; -$lang['winav3'] = "Система"; -$lang['winav4'] = "Прочее"; -$lang['winav5'] = "Оповещения"; -$lang['winav6'] = "Статистика"; -$lang['winav7'] = "Администрирование"; -$lang['winav8'] = "Запустить / Остановить бота"; -$lang['winav9'] = "Доступно обновление!"; -$lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение."; -$lang['winav11'] = "Пожалуйста, укажите ваш уникальный идентификатор(UID) в разделе меню \"Прочее\". Это очень важно, на случай, если вы потеряете пароль от аккаунта веб-панели."; -$lang['winav12'] = "Аддоны"; -$lang['winxinfo'] = "Команда \"!nextup\""; -$lang['winxinfodesc'] = "Разрешает отправлять RankSytem-боту команду \"!nextup\" личным сообщением.

После отправки команды пользователю будет отправлено ответное сообщение с информацией о требуемом времени до следующего повышения.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; -$lang['winxmode1'] = "Отключена"; -$lang['winxmode2'] = "Включена - только следующий ранг"; -$lang['winxmode3'] = "Включена - все следующие ранги"; -$lang['winxmsg1'] = "Сообщение-ответ"; -$lang['winxmsgdesc1'] = "Задайте форматирование и текст для сообщения, которое будет отправлено ответом на команду \"nextup\".

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)

Пример:
Вы достигнете следующего ранга через: %1$s дней, %2$s часов, %3$s минут и %4$s секунд. Название следующей группы-ранга: [B]%5$s[/B]."; -$lang['winxmsg2'] = "Сообщ. о макс.ранге"; -$lang['winxmsgdesc2'] = "Данный текст будет отправлен пользователю при вводе команды \"nextup\", если пользователь уже достиг высшего ранга

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%6$s - name of the user (recipient)

Пример:
Вы получили максимальный ранг за %1$s дней, %2$s часов %3$s минут и %4$s секунд онлайна."; -$lang['winxmsg3'] = "Сообщ. о исключении"; -$lang['winxmsgdesc3'] = "Данный текст будет отправлен пользователю при вводе команды \"nextup\", если пользователь исключен из системы рангов RankSystem(Исключенный канал, группа, UID)

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)

Пример:
Вы исключены из системы рангов RankSystem. Такое могло произойти, если Вы находитесь в \"Исключенном канале\", группе сервера или ваш идентификатор был вручную добавлен в исключение. За подробной информацией обратитесь к администратору сервера."; -$lang['wirtpw1'] = "Увы. Вами ранее не был указан UID администратора, с помощью которого должно производиться восстановление пароля от веб-панели. В данном случае, восстановление пароля невозможно средствами RankSystem.
Вы можете попробовать вручную изменить пароль от аккаунта через базу данных, но не забудьте при этом, что там хранится md5-хеш пароля( md5(\"password\") -> d41d8cd98f00b204e9800998ecf8427e )."; -$lang['wirtpw2'] = "Администратор с заданным UID не был найден среди пользователей онлайн на сервере. Вам необходимо подключиться к серверу с заданного в веб-панели уникального идентификатора(UID)!"; -$lang['wirtpw3'] = "Ваш IP-адрес не совпадает с IP Администратора. Такое могло произойти, если ваш траффик в браузере перенаправлен на прокси-сервер или VPN(протоколы IPv4 / IPv6 также учитываются при сверке IP)."; -$lang['wirtpw4'] = "\nПароль к веб-интерфейсу был успешно сброшен.\nЛогин: %s\nПароль: [B]%s[/B]\n\nВойдите %sздесь%s"; -$lang['wirtpw5'] = "Сообщение с новым паролем было отправлено через Teamspeak 3 сервер Администратору. Нажмите %sздесь%s, чтобы войти"; -$lang['wirtpw6'] = "Пароль от веб-панели успешно сброшен. IP, с которого произведен сброс: %s."; -$lang['wirtpw7'] = "Сбросить пароль"; -$lang['wirtpw8'] = "Здесь вы можете сбросить пароль для восстановления доступа к веб-панели"; -$lang['wirtpw9'] = "Для сброса пароля потребуется следующее:"; -$lang['wirtpw10'] = "Вы должны находиться онлайн на сервере."; -$lang['wirtpw11'] = "Ранее в веб-панели должен был быть указан UID Администратора."; -$lang['wirtpw12'] = "Ваши IP-адреса на сервере и на данной странице сайта должны совпадать (протоколы IPv4 / IPv6 также учитываются при сверке IP)."; -$lang['wiselcld'] = "Выбор пользователя"; -$lang['wiselclddesc'] = "Укажите пользователя по его последнему никнейму или уникальному идентификатору(UID), или ID в базе данных Teamspeak 3 сервера."; -$lang['wishcolas'] = "Текущая группа сервера"; -$lang['wishcolasdesc'] = "Показывать колонку 'Текущая группа сервера' в stats/list_rankup.php"; -$lang['wishcolat'] = "Время активности"; -$lang['wishcolatdesc'] = "Показывать колонку 'Суммарное время активности' в stats/list_rankup.php"; -$lang['wishcolcld'] = "Ник клиента"; -$lang['wishcolclddesc'] = "Показывать колонку 'Ник клиента' в stats/list_rankup.php"; -$lang['wishcoldbid'] = "ID в Базе данных"; -$lang['wishcoldbiddesc'] = "Показывать колонку 'ID в Базе данных' в stats/list_rankup.php"; -$lang['wishcolgs'] = "Текущая группа начиная с"; -$lang['wishcolgsdesc'] = "Показывать колонку 'Текущая группа начиная с' на странице list_rankup.php"; -$lang['wishcolit'] = "Учитывать время простоя"; -$lang['wishcolitdesc'] = "Показывать колонку 'суммарное время простоя' в stats/list_rankup.php"; -$lang['wishcolls'] = "Последний раз замечен"; -$lang['wishcollsdesc'] = "Показывать колонку 'Последний раз замечен' в stats/list_rankup.php"; -$lang['wishcolnx'] = "Время до след. ранга"; -$lang['wishcolnxdesc'] = "Показывать колонку 'Следующий Ранг' в stats/list_rankup.php"; -$lang['wishcolot'] = "Время подключения"; -$lang['wishcolotdesc'] = "Показывать колонку 'суммарное время подключения' в stats/list_rankup.php"; -$lang['wishcolrg'] = "Ранг"; -$lang['wishcolrgdesc'] = "Показывать колонку 'Ранг' в stats/list_rankup.php"; -$lang['wishcolsg'] = "Следующая сервер группа"; -$lang['wishcolsgdesc'] = "Показывать колонку 'следующая сервер группа' в stats/list_rankup.php"; -$lang['wishcoluuid'] = "UID пользов."; -$lang['wishcoluuiddesc'] = "Показывать колонку 'уникальный ID клиента'(UID) в stats/list_rankup.php"; -$lang['wishexcld'] = "Исключенные пользователи"; -$lang['wishexclddesc'] = "Показывать пользователей в list_rankup.php,
которые исключены и не участвуют в системе рангов."; -$lang['wishexgrp'] = "Группы исключения"; -$lang['wishexgrpdesc'] = "Показывать пользователей в list_rankup.php, которые находятся в списке 'исключенных пользователей' и не должны учитываться RankSystem."; -$lang['wishhicld'] = "Пользователи с высшим рангом"; -$lang['wishhiclddesc'] = "Показывать пользователей в list_rankup.php, достигших высшего уровня в Ranksystem."; -$lang['wishnav'] = "Показывать навигацию по системе"; -$lang['wishnavdesc'] = "Показывать ли навигацию на странице on 'stats/'.

Если эта опция отключена то навигация на сайте не будет отображаться.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; -$lang['wisupidle'] = "Режим"; -$lang['wisupidledesc'] = "Предоставлены два режима, по которым будет высчиваться ранг пользователей:

1) Время подключения(Общее время): Общее время подключения на сервере, складывается из \"Активного времени\" и \"времени бездействия\"(колонка 'Сумм. время подключения' в 'stats/list_rankup.php')

2) Активное время(Время активности): Время, которое пользователь не находился в бездействии. Значение этого времени высчитывается путем вычитания \"времени бездействия из\" из \"Общего времени подключения на сервере\" (Колонка 'Сумм. время активности' в 'stats/list_rankup.php').

Не рекомендуется смена режима при уже отработавшем долгий срок старом режиме, но допустимо."; -$lang['wisvconf'] = "Сохранить"; -$lang['wisvsuc'] = "Изменения успешно сохранены!"; -$lang['wisvres'] = "Для принятия внесенных правок вам необходимо перезагрузить RankSystem! %s"; -$lang['witime'] = "Часовой пояс"; -$lang['witimedesc'] = "Выбрать часовой пояс сервера."; -$lang['wits3avat'] = "Задержка загрузки аватаров"; -$lang['wits3avatdesc'] = "Определяет задержку при загрузке аватаров на сервере TS3.

Эта функция особенно полезна для серверов с (музыкальными) ботами, которые переодически меняют свои аватарки."; -$lang['wits3dch'] = "Канал по умолчанию"; -$lang['wits3dchdesc'] = "При подключении к серверу, бот RankSystem будет пытаться войти в этот канал и останется там."; -$lang['wits3host'] = "Адрес TS3"; -$lang['wits3hostdesc'] = "Адрес TeamSpeak 3 Сервера
(IP или DNS)"; -$lang['wits3sm'] = "Замедленный режим"; -$lang['wits3smdesc'] = "Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которых RankSystem может получить временный бан со стороны TeamSpeak 3 сервера.

!!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!

Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Основн. ник бота"; -$lang['wits3qnm2'] = "Запас. ник бота"; -$lang['wits3qnm2desc'] = "Этот никнейм будет использоваться, если первый уже занят. Рекомендуется заполнить!"; -$lang['wits3qnmdesc'] = "Никнейм, под которым будет авторизовываться RankSystem на сервере.
Убедитесь, что оно не занято кем-то другим."; -$lang['wits3querpw'] = "TS3 Query-Пароль"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query-Пароль
Ваш пароль от query-пользователя."; -$lang['wits3querusr'] = "TS3 Query-Логин"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query-Логин
По умолчанию: serveradmin
Конечно вы можете указать другой логин для Ranksystem.
Необходимые разрешения привилегий вы можете найти на:
http://ts-n.net/ranksystem.php"; -$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['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'] = "Язык"; -$lang['wivlangdesc'] = "Выберите язык, используемый системой RankSystem по умолчанию.

Язык сайта по-прежнему будет доступен для переключения всем пользователям."; + добавлен в БД RankSystem."; +$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; +$lang['changedbid'] = "У пользователя %s (UID: %s) изменился TeamSpeak DBID (%s). Обновляем старый Client-DBID (%s) и сбрасываем ему старое время!"; +$lang['crawl'] = "Сканирование активности подключенных пользователей..."; +$lang['clean'] = "Сканирование пользователей, которых необходимо удалить..."; +$lang['cleanc'] = "Чистка пользователей"; +$lang['cleancdesc'] = "При включении данной функции, старые пользователи в БД Ranksystem будут удалены.

С этой целью, Ranksystem синхронизируется с базой данных TeamSpeak. Пользователи, которых не существует в базе данных TeamSpeak, будут удалены из Ranksystem.

Эта функция работает когда режим 'Slowmode' отключен!


Для автоматической очистки базы данных TeamSpeak 3 вы можете использовать утилиту ClientCleaner:
http://ts-n.net/clientcleaner.php"; +$lang['cleandel'] = "%s пользователя удалены из базы данных Ranksystem, так как они больше не существуют в базе данных TeamSpeak."; +$lang['cleanno'] = "Не найдены пользователи, которых необходимо удалить из базы данных."; +$lang['cleanp'] = "Период очистки БД RankSystem"; +$lang['cleanpdesc'] = "Укажите время, которое должно пройти перед очередной очисткой пользователей.

Устанавливается в секундах.

Для больших баз данных рекомендуется использовать один раз в день."; +$lang['cleanrs'] = "Пользователей в базе данных Ranksystem: %s"; +$lang['cleants'] = "Пользователей найдено в базе данных TeamSpeak: %s (at %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['day'] = "%s день"; +$lang['days'] = "%s дня"; +$lang['dbconerr'] = "Ошибка подключения к базе данных: "; +$lang['delcldgrpif'] = "Ошибка удаления пользователя из группы сервера: %s"; +$lang['delcldgrpsc'] = "Данные о группах сервера для пользователя %s успешно удалены."; +$lang['delclientsif'] = "%s клиент(ов) удалено из базы данных RankSystem!"; +$lang['delclientssc'] = "%s клиент(ов) успешно удалено из базы данных RankSystem!"; +$lang['errcsrf'] = "CSRF Token is wrong (=security-check failed)! Please reload this site and try it again. If you get this error repeated times, remove the session cookie from your Browser and try it again!"; +$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'] = "Неверно введён логин или пароль! Пожалуйста, повторите ввод данных заново."; +$lang['errlogin2'] = "Защита от перебора: Попробуйте повторить через %s секунд!"; +$lang['errlogin3'] = "Защита от перебора: От вас поступает слишком много запросов. Вы были забанены на 300 секунд!"; +$lang['error'] = "Ошибка "; +$lang['errorts3'] = "TS3 Error: "; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['errremgrp'] = "Ошибка удаления пользователя с UID: %s из группы сервера ID: %s!"; +$lang['errremdb'] = "Ошибка удаления пользователя с UID %s из базы данных RankSystem!"; +$lang['errselusr'] = "Пожалуйста, укажите пользователя!"; +$lang['errseltime'] = "Пожалуйста, введите время, которое хотите начислить."; +$lang['errukwn'] = "Произошла неизвестная ошибка!"; +$lang['errupcount'] = "Ошибка подсчета суммарного времени подключения %s пользователя с UCI %s"; +$lang['highest'] = "Достигнут максимальный ранг"; +$lang['install'] = "Установка"; +$lang['instdb'] = "Установка базы данных"; +$lang['instdbsuc'] = "База данных %s успешно создана."; +$lang['insterr1'] = "ВНИМАНИЕ: Указанная база данных \"%s\" уже существует!
При продолжении процесса установки, старые данные в этой базе данных будут удалены.
Если вы не уверены, нужно ли очищать данную базу данных, то укажите другую базу."; +$lang['insterr2'] = "Для работы RankSystem требуется наличие модуля PHP PDO. Пожалуйста, установите PDO модуль и попробуйте заново!"; +$lang['insterr3'] = "Для работы RankSystem требуется наличие включеной функции PHP exec. Пожалуйста, включите данную exec функцию и попробуйте заново!"; +$lang['insterr4'] = "Ваша версия PHP (%s) ниже допустимой 5.5.0. Пожалуйста, обновите версию PHP и попробуйте заново!"; +$lang['insterr5'] = "Для установки требуется SimpleXML. Пожалуйста, установите simpleXML и попробуйте заново!"; +$lang['insterr6'] = "Для запуска системы необходим PHP cURL. Установите PHP cURL и попробуйте заново!"; +$lang['insterr7'] = "Для запуска системы необходим PHP Zip . Установите PHP Zip и попробуйте заново!"; +$lang['insterr8'] = "PHP COM extension (php_com_dotnet.dll) is needed but seems not to be available. Install PHP COM and try it again!"; +$lang['insterr9'] = "PHP PDO MySQL extension (php_pdo_mysql.so) is needed but seems not to be available. Install PHP PDO MySQL and try it again!"; +$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 0777 (В windows 'Полный доступ') и попробуйте заново."; +$lang['isntwicfg2'] = "Конфигурирование веб-интерфейса"; +$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 0777 (В windows 'полный доступ') и повторите этот этап заново."; +$lang['isntwiconf'] = "После, откройте страницу %s для настройки Системы рангов(RankSystem)!"; +$lang['isntwidbhost'] = "Адрес:"; +$lang['isntwidbhostdesc'] = "Адрес сервера базы данных
(IP или домен)"; +$lang['isntwidbmsg'] = "Ошибка базы данных: "; +$lang['isntwidbname'] = "Имя:"; +$lang['isntwidbnamedesc'] = "Название базы данных"; +$lang['isntwidbpass'] = "Пароль:"; +$lang['isntwidbpassdesc'] = "Пароль для подключения к базе данных"; +$lang['isntwidbtype'] = "Тип базы данных:"; +$lang['isntwidbtypedesc'] = "Тип базы данных

Для корректной работы у вас должен быть установлен модуль PHP PDO.
Для получения дополнительной информации см. http://ts-n.net/ranksystem.php"; +$lang['isntwidbusr'] = "Пользователь:"; +$lang['isntwidbusrdesc'] = "Пользователь с доступом к базе данных"; +$lang['isntwidel'] = "Пожалуйста, удалите файл 'install.php' с веб-сервера в целях безопасности!"; +$lang['isntwiusr'] = "Пользователь веб-панели успешно создан."; +$lang['isntwiusrcr'] = "Создание аккаунта Администратора"; +$lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в веб-банель. С помощью веб-панели вы сможете настроить RankSystem."; +$lang['isntwiusrh'] = "Доступ - Веб-Панель"; +$lang['listacsg'] = "Текущая группа ранга"; +$lang['listcldbid'] = "ID клиента в базе данных"; +$lang['listexcept'] = "Нет, исключен"; +$lang['listgrps'] = "Текущая группа начиная с"; +$lang['listnick'] = "Никнейм"; +$lang['listnxsg'] = "Следующая группа ранга"; +$lang['listnxup'] = "Следующий Ранг через"; +$lang['listrank'] = "Ранг"; +$lang['listseen'] = "Последняя активность"; +$lang['listsuma'] = "Сумм. время активности"; +$lang['listsumi'] = "Сумм. время простоя"; +$lang['listsumo'] = "Сумм. время подключения"; +$lang['listuid'] = "Уникальный ID клиента(UID)"; +$lang['login'] = "Авторизоваться"; +$lang['msg0001'] = "используемая версия: %s"; +$lang['msg0002'] = "Список доступных команд:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\t выводят список доступных команд\n[B]version[/B]\t\t\t\t\t\t\t\t выводит информацию о версии системы рангов\n[B]!update[/B], [B]!checkupdate[/B]\t\t check for new version and run update\n[B]!clean[/B]\t\t\t\t\t\t\t\t\t start cleaning of the user database\n[B]!next[/B], [B]!nextup[/B]\t\t\t\t\t\t выводит время, через которое произойдет повышение ранга\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\tперезапускают систему рангов\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t выключают систему рангов"; +$lang['msg0003'] = "У вас нет доступа для выполнения данной команды!"; +$lang['msg0004'] = "Клиент %s (%s) выключил систему рангов."; +$lang['msg0005'] = "Система рангов выключается... Прямо сейчас!"; +$lang['msg0006'] = "Система рангов перезапускается..."; +$lang['msg0007'] = "Клиент %s (%s) перезапустил систему рангов."; +$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['nocount'] = "Пользователь %s (UID: %s; Клиент ID %s) является query-пользователем -> не будет учитываться!"; +$lang['noentry'] = "Записей не найдено.."; +$lang['pass'] = "Пароль"; +$lang['pass2'] = "Изменить пароль"; +$lang['pass3'] = "Старый пароль"; +$lang['pass4'] = "Новый пароль"; +$lang['pass5'] = "Забыли пароль?"; +$lang['queryname'] = "Первый никнейм для бота уже занят другим пользователем. Пробуем использовать второй никнейм..."; +$lang['repeat'] = "Повтор нового пароля"; +$lang['resettime'] = "Сбрасываем онлайн и время простоя пользователя %s (UID: %s; DBID %s), так как пользователь был удален из исключений."; +$lang['sccrmcld'] = "Пользователь с UID %s успешно удален из базы данных RankSystem."; +$lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; +$lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; +$lang['setontime'] = "Начислить время"; +$lang['setontimedesc'] = "Данная функция начисляет пользователю время онлайна с учётом прошлых накоплений. От этого времени также будет впоследствии сформирован ранг пользователя.

Введенное время будет учитываться при выдаче ранга и должно подействовать мгновенно (немного дольше при включенном SlowMode'е)."; +$lang['sgrpadd'] = "Выдана группа сервера №%s (ID: %s) пользователю %s (UID клиента: %s; DBID: %s)."; +$lang['sgrprerr'] = "Affected user: %s (unique Client-ID: %s; Client-database-ID %s) and server group %s (ID: %s)."; +$lang['sgrprm'] = "С пользователя %s (ID: %s) снята группа сервера %s (UID: %s; DBID: %s)."; +$lang['size_byte'] = "Б"; +$lang['size_kib'] = "КиБ"; +$lang['size_mib'] = "МиБ"; +$lang['size_gib'] = "ГиБ"; +$lang['size_tib'] = "ТиБ"; +$lang['size_pib'] = "ПиБ"; +$lang['size_eib'] = "ЭиБ"; +$lang['size_zib'] = "ЗиБ"; +$lang['size_yib'] = "ЙиБ"; +$lang['stag0001'] = "Менеджер групп"; +$lang['stag0002'] = "Разрешенные группы"; +$lang['stag0003'] = "Введите список групп сервера, которые пользователь сможет назначить себе сам.

Необходимо ввести ID групп через запятую.

Например:
23,24,28"; +$lang['stag0004'] = "Лимит количества групп"; +$lang['stag0005'] = "Максимальное количество групп, которые можно установить одновременно."; +$lang['stag0006'] = "Система определила несколько GUIDов подключенных к серверу с вашим IP. Пожалуйста %sнажмите сюда%s что бы перепроверить."; +$lang['stag0007'] = "Прежде чем вносить новые изменения подождите пока ваши предыдущие изменения вступят в силу..."; +$lang['stag0008'] = "Изменения успешно сохранены. Через несколько секунд группы будут выданы на сервере."; +$lang['stag0009'] = "Вы не можете установить более %s групп(ы)!"; +$lang['stag0010'] = "Пожалуйста выберите как минимум одну новую группу."; +$lang['stag0011'] = "Максимум групп одновременно: "; +$lang['stag0012'] = "Установить группы"; +$lang['stag0013'] = "Аддон ВКЛ/ВЫКЛ"; +$lang['stag0014'] = "Позволяет включить (ВКЛ) или выключить (ВЫКЛ) аддон.

Если отключить аддон то пункт меню на странице навигации stats/ так же будет скрыт."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stix0001'] = "Статистика сервера"; +$lang['stix0002'] = "Пользователей зарегистрировано в базе RankSystem"; +$lang['stix0003'] = "Посмотреть подробнее"; +$lang['stix0004'] = "Общий накопленный онлайн за всё время"; +$lang['stix0005'] = "Рейтинг за всё время"; +$lang['stix0006'] = "Рейтинг за месяц"; +$lang['stix0007'] = "Рейтинг за неделю"; +$lang['stix0008'] = "Активность сервера"; +$lang['stix0009'] = "За последние 7 дней"; +$lang['stix0010'] = "За последние 30 дней"; +$lang['stix0011'] = "За последние 24 часа"; +$lang['stix0012'] = "Выберите период"; +$lang['stix0013'] = "За день"; +$lang['stix0014'] = "За неделю"; +$lang['stix0015'] = "За месяц"; +$lang['stix0016'] = "Соотнош. активн./AFK"; +$lang['stix0017'] = "Версии клиентов"; +$lang['stix0018'] = "Рейтинг стран"; +$lang['stix0019'] = "Популярные платформы"; +$lang['stix0020'] = "Текущая статистика"; +$lang['stix0023'] = "Статус сервера"; +$lang['stix0024'] = "Активен"; +$lang['stix0025'] = "Неактивен"; +$lang['stix0026'] = "Пользователей (Онлайн / Максимум)"; +$lang['stix0027'] = "Количество каналов"; +$lang['stix0028'] = "Средний пинг на сервере"; +$lang['stix0029'] = "Всего байт получено"; +$lang['stix0030'] = "Всего байт отправлено"; +$lang['stix0031'] = "Сервер онлайн"; +$lang['stix0032'] = "Находится в оффлайне:"; +$lang['stix0033'] = "00 дней, 00 часов, 00 мин., 00 сек."; +$lang['stix0034'] = "Средняя потеря пакетов"; +$lang['stix0035'] = "Информация о сервере"; +$lang['stix0036'] = "Название сервера"; +$lang['stix0037'] = "Адрес сервера (IP:Порт)"; +$lang['stix0038'] = "Защищен паролем"; +$lang['stix0039'] = "Нет (Публичный сервер)"; +$lang['stix0040'] = "Да (Приватный сервер)"; +$lang['stix0041'] = "ID сервера"; +$lang['stix0042'] = "Платформа сервера"; +$lang['stix0043'] = "Версия сервера"; +$lang['stix0044'] = "Дата создания (дд/мм/гггг)"; +$lang['stix0045'] = "Видимость в глобал. списке"; +$lang['stix0046'] = "Отображается"; +$lang['stix0047'] = "Не отображается"; +$lang['stix0048'] = "Нет информации..."; +$lang['stix0049'] = "Общий накопленный онлайн за месяц"; +$lang['stix0050'] = "Общий накопленный онлайн за неделю"; +$lang['stix0051'] = "Ошибка при получении даты"; +$lang['stix0052'] = "другие"; +$lang['stix0053'] = "Активное время (в днях)"; +$lang['stix0054'] = "Неактивное время (в днях)"; +$lang['stix0055'] = "онлайн в течение суток"; +$lang['stix0056'] = "онлайн в течение %s дней"; +$lang['stix0059'] = "Список пользователей"; +$lang['stix0060'] = "Клиентов"; +$lang['stix0061'] = "Показать все версии"; +$lang['stix0062'] = "Показать все страны"; +$lang['stix0063'] = "Показать все платформы"; +$lang['stmy0001'] = "Моя статистика"; +$lang['stmy0002'] = "Ранг"; +$lang['stmy0003'] = "ID в базе данных:"; +$lang['stmy0004'] = "Уникальный ID(UID):"; +$lang['stmy0005'] = "Всего подключений к серверу:"; +$lang['stmy0006'] = "Занесён в базу статистики"; +$lang['stmy0007'] = "Проведенное время на сервере:"; +$lang['stmy0008'] = "Онлайн за %s дней:"; +$lang['stmy0009'] = "Активное время за %s дней:"; +$lang['stmy0010'] = "Получено достижений:"; +$lang['stmy0011'] = "Достижение за онлайн на сервере"; +$lang['stmy0012'] = "Уровень: Легенда"; +$lang['stmy0013'] = "Вы провели в онлайне на сервере %s часа(ов)."; +$lang['stmy0014'] = "Полностью выполнена вся цепочка"; +$lang['stmy0015'] = "Уровень: Золото"; +$lang['stmy0016'] = "% завершено до получения уровня \"Легенда\""; +$lang['stmy0017'] = "Уровень: Серебро"; +$lang['stmy0018'] = "% завершено до получения уровня \"Золото\""; +$lang['stmy0019'] = "Уровень: Бронза"; +$lang['stmy0020'] = "% завершено до получения уровня \"Серебро\""; +$lang['stmy0021'] = "Уровень: Без достижений"; +$lang['stmy0022'] = "% завершено до получения уровня \"Бронза\""; +$lang['stmy0023'] = "Достижение за количество подключений"; +$lang['stmy0024'] = "Уровень: Легенда"; +$lang['stmy0025'] = "Всего ваших подключений к серверу: %s раз."; +$lang['stmy0026'] = "Уровень: Золото"; +$lang['stmy0027'] = "Уровень: Серебро"; +$lang['stmy0028'] = "Уровень: Бронза"; +$lang['stmy0029'] = "Уровень: Без достижений"; +$lang['stmy0030'] = "Прогресс до следующего ранга на сервере"; +$lang['stmy0031'] = "Общее время активности"; +$lang['stna0001'] = "Страны"; +$lang['stna0002'] = "статистика"; +$lang['stna0003'] = "Код страны"; +$lang['stna0004'] = "зарегистрировано"; +$lang['stna0005'] = "Версии"; +$lang['stna0006'] = "Платформы"; +$lang['stna0007'] = "Percentage"; +$lang['stnv0001'] = "Наши новости"; +$lang['stnv0002'] = "Закрыть"; +$lang['stnv0003'] = "Обновление информации о клиенте"; +$lang['stnv0004'] = "Используйте это, если хотите чтобы обновилась информация о вас. К примеру, вы зашли под другим аккаунтом на сервер TeamSpeak и хотите увидеть его статистику."; +$lang['stnv0005'] = "Это работает только если вы подключены к серверу TeamSpeak в данный момент."; +$lang['stnv0006'] = "Обновить"; +$lang['stnv0007'] = "Battle area - Содержимое"; +$lang['stnv0008'] = "Вы можете создать состязание между двумя пользователями или командами."; +$lang['stnv0009'] = "Во время \"Битвы\" подсчитывается время, проведенное на сервере у обеих команд или игроков."; +$lang['stnv0010'] = "Для победы необходимо набрать больше времени в онлайне, чем команда противника."; +$lang['stnv0011'] = "(Продолжительность \"Битвы\" - 48 часов)"; +$lang['stnv0012'] = "Команда победителей получает приз, который пользователь может затем использовать."; +$lang['stnv0013'] = "Полученный приз будет отображаться в вкладкеМоя статистика."; +$lang['stnv0014'] = "(Это может быть множитель времени(2x) на 8 часов или же бонус, в виде прибавки к основному времени (4 часа), и т.д."; +$lang['stnv0015'] = "Также, \"множители времени\" можно использовать для поднятия себя в рейтинге пользователей за неделю/месяц"; +$lang['stnv0016'] = "Недоступно"; +$lang['stnv0017'] = "Для доступа к данной странице необходимо, чтобы вы подключились к серверу TeamSpeak"; +$lang['stnv0018'] = "Пожалуйста, подключитесь к TeamSpeak серверу, а затем нажмите синюю кнопку ''Обновить'' в правом верхнем углу браузера."; +$lang['stnv0019'] = "Статистика сервера - содержимое"; +$lang['stnv0020'] = "Эта страница содержит информацию о вашей статистике и активности на сервере."; +$lang['stnv0021'] = "Большинство этой информации было собрано с момента начального старта системы RankSystem, никак не с момента первого запуска TeamSpeak сервера."; +$lang['stnv0022'] = "Данная информация получена из базы данных RankSystem и может отличаться от той, которая хранится в базе данных TeamSpeak."; +$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; +$lang['stnv0024'] = "RankSystem — статистика TeamSpeak 3 сервера"; +$lang['stnv0025'] = "Ограничение списка"; +$lang['stnv0026'] = "Все"; +$lang['stnv0027'] = "Информация на сайте может быть устаревшей! Кажется,\"RankSystem\" больше не подключена к TeamSpeak 3 серверу. Потеряно соединение?"; +$lang['stnv0028'] = "(Вы не подключены к TS3!)"; +$lang['stnv0029'] = "Общая статистика"; +$lang['stnv0030'] = "О RankSystem"; +$lang['stnv0031'] = "Поиск также поддерживает шаблоны: никнейм пользователя, уникальный ID(UID) и ID клиента в базе данных."; +$lang['stnv0032'] = "Вы также можете использовать фильтр запроса (смотрите ниже). Для этого введите его в поисковое поле."; +$lang['stnv0033'] = "Также допустимы комбинации шаблонов и фильтров. Для этого введите первым фильтр, за ним без пробелов шаблон."; +$lang['stnv0034'] = "Это позволяет комбинировать множество фильтров, вводить которые необходимо последовательно."; +$lang['stnv0035'] = "Пример:
filter:nonexcepted:TeamSpeakUser"; +$lang['stnv0036'] = "Показывать только пользователей находящихся в исключении (пользователей, групп сервера или исключение канала)."; +$lang['stnv0037'] = "Показывать только неисключенных пользователей"; +$lang['stnv0038'] = "Показывать только пользователей находящихся в онлайне"; +$lang['stnv0039'] = "Показывать только пользователей не находящихся в онлайне"; +$lang['stnv0040'] = "Показывать только пользователей в указанных группах, она же - выборка юзеров по рангам
Замените GROUPID на желаемые ID группы ранга."; +$lang['stnv0041'] = "Показать пользователей, удовлетворяющих поисковому запросу по дате последнего посещения сервера.
Замените OPERATOR на '<' или '>' или '=' или '!='.
Также замените TIME на желаемую дату поиска в формате 'Y-m-d H-i'(год-месяц-день час-минута) (пример: 2016-06-18 20-25).
Более подробный пример запроса: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Показывать только пользователей из указанной страны.
Замените TS3-COUNTRY-CODE на желаемый код страны.
Коды стран вы можете взять Здесь(Википедия)"; +$lang['stnv0043'] = "Подключиться к серверу TS3"; +$lang['stri0001'] = "Информация о системе рангов"; +$lang['stri0002'] = "Что такое TSN RankSystem?"; +$lang['stri0003'] = "Удобная система, позволяющая создать на сервере TeamSpeak 3 систему рангов-поощрений, основанную на времени, которое пользователи проводят на сервере. Ко всему прочему, она также занимается сбором информации о пользователях и последующим её отображением на сайте."; +$lang['stri0004'] = "Кто является её разработчиком?"; +$lang['stri0005'] = "Когда была создана TSN Ranksystem?"; +$lang['stri0006'] = "Альфа-релиз: 05/10/2014."; +$lang['stri0007'] = "Бета-релиз: 01/02/2015."; +$lang['stri0008'] = "Вы можете найти новую версию на сайте: Ranksystem Website."; +$lang['stri0009'] = "Как создавалась TSN Ranksystem?"; +$lang['stri0010'] = "\"RankSystem\" разрабатывалась на языке"; +$lang['stri0011'] = "При создании использовался следующий набор инструментов:"; +$lang['stri0012'] = "Особая благодарность:"; +$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - За русскоязычный перевод интерфейса."; +$lang['stri0014'] = "Bejamin Frost - За помощь в создании дизайна сайта с помощью Bootstrap."; +$lang['stri0015'] = "ZanK & jacopomozzy - За перевод интерфейса на итальянский язык."; +$lang['stri0016'] = "DeStRoYzR & Jehad - За перевод интерфейса на арабский язык"; +$lang['stri0017'] = "SakaLuX - За перевод интерфейса на румынский язык."; +$lang['stri0018'] = "0x0539 - for initialisation dutch translation"; +$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['stri0025'] = "DoktorekOne - for polish translation"; +$lang['sttw0001'] = "Топ-10 пользователей"; +$lang['sttw0002'] = "За неделю"; +$lang['sttw0003'] = "Набрал %s %s часов онлайна"; +$lang['sttw0004'] = "Топ-10 в графике (Разрыв между участниками)"; +$lang['sttw0005'] = "Часов (Представляет собой 100 %)"; +$lang['sttw0006'] = "%s часов (%s%)"; +$lang['sttw0007'] = "Участники топ-10 в сравнении"; +$lang['sttw0008'] = "Топ-10 против остальных по онлайну"; +$lang['sttw0009'] = "Топ-10 против остальных по активности"; +$lang['sttw0010'] = "Tоп-10 против остальных по оффлайну"; +$lang['sttw0011'] = "Топ-10 в графике"; +$lang['sttw0012'] = "Остальные %s клиенты (в часах)"; +$lang['sttw0013'] = "С %s %s часами активности"; +$lang['sttw0014'] = "hours"; +$lang['sttw0015'] = "minutes"; +$lang['sttm0001'] = "За месяц"; +$lang['stta0001'] = "За все время"; +$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['stve0002'] = "Сообщение с ключем было отправлено вам через личное сообщение на сервере TS3."; +$lang['stve0003'] = "Пожалуйста, введите ключ, который вы получили на сервере TS3. Если вы не получили ключ - убедитесь что вы выбрали правильный уникальный ID."; +$lang['stve0004'] = "Ключ, который вы ввели не подходит! Попробуйте снова."; +$lang['stve0005'] = "Поздравляем, проверка произошла успешно! Теперь вы можете пользоваться всем функционалом.."; +$lang['stve0006'] = "Произошла неизвестная ошибка. Попробуйте ещё раз. Если не получится - свяжитесь с администратором."; +$lang['stve0007'] = "Проверка на сервере TS"; +$lang['stve0008'] = "Выберите свой уникальный ID на сервере что бы произвести проверку."; +$lang['stve0009'] = " -- выберите себя -- "; +$lang['stve0010'] = "Вы получите ключ для подтверждения на сервере, который вам необходимо ввести в данное поле:"; +$lang['stve0011'] = "Ключ:"; +$lang['stve0012'] = "проверить"; +$lang['time_ms'] = "мс"; +$lang['time_sec'] = "Секунды"; +$lang['time_min'] = "Минуты"; +$lang['time_hour'] = "Часы"; +$lang['time_day'] = "Дни"; +$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'] = "Доступна новая версия 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]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]."; +$lang['upusrerr'] = "Пользователь с уникальным ID %s не был найден (не правильно указан Уникальный ID или пользователь в настоящий момент не подключен к серверу Teamspeak)!"; +$lang['upusrinf'] = "Пользователь %s был успешно проинформирован."; +$lang['user'] = "Логин"; +$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'] = "Веб-панель"; +$lang['wiaction'] = "Выполнить"; +$lang['wiadmhide'] = "скрывать исключенных клиентов"; +$lang['wiadmhidedesc'] = "Нужно ли скрывать исключенных клиентов в данном списке"; +$lang['wiadmuuid'] = "UID администратора"; +$lang['wiadmuuiddesc'] = "Введите здесь уникальный Teamspeak 3 идентификатор(UID) Администратора RankSystem.
Also multiple Client-IDs are possible -> comma separated

В дальнейшем это пригодится вам, если вы потеряете пароль и доступ к веб-панели.

Если UID не задан, то сбросить пароль будет невозможно!

Here defined unique Client-IDs are also permitted to send admin commands to the Bot (!reboot, !shutdown, !update)."; +$lang['wiboost'] = "Бустер онлайна"; +$lang['wiboostdesc'] = "Вы можете указать здесь ID групп сервера (Их необходимо создать на TeamSpeak сервере заранее), выступающие в роли множителя накапливаемого времени, которое получает пользователь за онлайн на сервере. Также вы должны указать на сколько должно умножаться время и период действия группы-множителя. Чем больше множитель времени, тем быстрее пользователь достигнет следующий ранг. По окончанию действия множителя, группа-множитель автоматически снимается с пользователя. Пример указания группы-множителя следующий: ID группы=> множитель=> время(В секундах). Если вы хотите сделать две или больше таких групп, то разделите их между собой запятой.

Пример:
12=>2=>6000,13=>3=>2500,14=>5=>600

Из примера выше следует, что группа с ID 12 дает множитель времени х2 на 6000 секунд, а группа 13 имеет множитель х3 на 2500 секунд. 14 группа соответственно, имеет множитель х5 на 600 секунд."; +$lang['wibot1'] = "RankSystem была выключена. Более подробную информацию смотрите в логе ниже!"; +$lang['wibot2'] = "RankSystem запущена. Более подробную информацию смотрите в логе ниже!"; +$lang['wibot3'] = "RankSystem перезагружается. Более подробную информацию смотрите в логе ниже!"; +$lang['wibot4'] = "Включить / Выключить бота RankSystem"; +$lang['wibot5'] = "Запустить"; +$lang['wibot6'] = "Остановить"; +$lang['wibot7'] = "Перезапустить"; +$lang['wibot8'] = "Лог RankSystem:"; +$lang['wibot9'] = "Заполните все обязательные поля перед запуском RankSystem!"; +$lang['wichdbid'] = "Сброс при изменении DBID"; +$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базе данных клиента TeamSpeak изменился.

Пример:
Если пользователь удален из БД сервера TeamSpeak, то, новый ID в базе данных клиента будет записан со следующим подключением к серверу."; +$lang['wiconferr'] = "Есть ошибка в конфигурации Ranksystem. Пожалуйста, зайдите в Веб-Панель и проверьте настройки раздела 'Настройка RankSystem'. Особенно тщательно проверьте 'Ранги'!"; +$lang['wichpw1'] = "Неверный старый пароль. Пожалуйста, повторите ввод заново."; +$lang['wichpw2'] = "Новые пароли не совпадают. Пожалуйста, повторите ввод заново."; +$lang['wichpw3'] = "Пароль для веб-панели успешно изменён. IP инициировавший сброс: IP %s."; +$lang['wichpw4'] = "Изменить пароль"; +$lang['widaform'] = "Формат даты"; +$lang['widaformdesc'] = "Выберите формат показа даты.

Пример:
%a дней, %h часов, %i минут, %s секунд"; +$lang['widbcfgsuc'] = "Настройки Базы Данных успешно сохранены."; +$lang['widbcfgerr'] = "Ошибка сохранения настроек в базе данных! Ошибка подключения, проверьте на правильность настройки '/other/dbconfig.php'"; +$lang['widelcld'] = "удаление пользователей"; +$lang['widelcldgrp'] = "Обновить группы"; +$lang['widelcldgrpdesc'] = "RankSystem хранит текущие группы рангов пользователей в своей базе данных и после того, как вы отредактируете этих пользователей должно пройти некоторое время, прежде чем RankSystem уберёт затронутых пользователей из их прежних групп ранга.
Однако, этой функцией вы можете принудительно запустить процесс обновления групп ранга у всех пользователей, которые в данный момент подключены к серверу."; +$lang['widelclddesc'] = "Удаление выбранных пользователей из базы данных RankSystem.

Пользователь из базы данных сервера Teamspeak не будет удален."; +$lang['widelsg'] = "Удалить их также из групп сервера"; +$lang['widelsgdesc'] = "Выберите, если клиенты должны также быть удалены из последней заработанной ими группы-ранга."; +$lang['wideltime'] = "Время удаления"; +$lang['wideltimedesc'] = "Очистка базы данных RankSystem от старых пользователей.
Введите время в секундах, достигнув которого, пользователь не будет удален из БД RankSystem.

0 - Удаление всех пользователей из БД RankSystem

При этом база данных пользователей на сервере TeamSpeak затронута не будет!"; +$lang['wiexcid'] = "Исключ. каналы"; +$lang['wiexciddesc'] = "Через запятую должен будет указан список каналов, пользователей в которых должна будет игнорировать RankSystem

Находясь в этих каналах, пользователям не будет начисляться время за онлайн на сервере.

Данную функция можно использовать к примеру, для AFK каналов.
При режиме подсчёта за 'активное время', эта функция становится бесполезной, т.к. в канале юзеру перестает вовсе начисляться время бездействия

Пользователи находящиеся в таких каналах, помечаются на этот период как 'исключенные из RankSystem'. К тому же, данные пользователи перестают отображаться в 'stats/list_rankup.php' и становятся доступны только с фильтром поиска или с включенным отображением \"исключенных пользователей\"(Страница статистики - \"исключенные пользователи\")."; +$lang['wiexgrp'] = "Исключ. группы сервера"; +$lang['wiexgrpdesc'] = "Укажите через запятую ID групп сервера, пользователи в которых будут игнорироваться RankSystem.
Если пользователь находится хоты бы в одной из этих групп, то RankSystem будет игнорировать его.(Также не будет начислять онлайн)"; +$lang['wiexres'] = "Режим исключения"; +$lang['wiexres1'] = "стандартный (всегда считать время)"; +$lang['wiexres2'] = "заморозка времени"; +$lang['wiexres3'] = "сброс времени"; +$lang['wiexresdesc'] = "Существует три режима работы с исключенными пользователями. Во всех случаях время не начисляется, а ранги не выдаются. Вы можете выбрать разные варианты того, как накопленное пользователем время будет обрабатываться после того как он будет удален из исключений.

1) стандартный (всегда считать время): По умолчанию, система рангов всегда считает время онлайн/активных пользователей, которые исключены из системы рангов (клиент/серверная группа). В данном режиме не работает только повышение ранга. Это означает, что как только пользователь удалится из исключений, ему будут выданы группы из системы рангов основываясь на времени его активности (например, уровень 3).

2) заморозка времени: С этой опцией онлайн и время простоя будут заморожены на текущем значении (до того как пользователь был исключен). После того как пользователь будет удален из исключений его время онлайн и неактивности будут снова накапливаться.

3) сброс времени: С этой опцией при исключении пользователя время его активности и неактивности будут учитываться, однако после того как пользователь будет удален из исключений его время активности и неактивности будут сброшены.


Исключения по каналам не играют никакой роли, так как время всегда будет игнорироваться (как в режиме заморозки)."; +$lang['wiexuid'] = "Исключенные пользователи"; +$lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы пользователей (UID), которых будет игнорировать RankSystem и им не будет засчитываться время, проведенное на сервере.
"; +$lang['wigrptime'] = "Настройка рангов"; +$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

Время (в секундах)=>номер группы сервера(ServerGroupID)

К тому же, от выбранного режима будет зависеть.

Каждый параметр должен разделяться запятой.

Так же время должно быть указано по 'нарастающей'

Пример:
60=>9,120=>10,180=>11

По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечению еще 120 секунд пользователь получает сервер группу SGID 10, и так далее..."; +$lang['wihladm'] = "Список пользователей (Admin-Mode)"; +$lang['wihladm1'] = "Начислить время пользователю"; +$lang['wihlcfg'] = "Настройка RankSystem"; +$lang['wihldb'] = "Настройки Базы Данных"; +$lang['wihlmsg'] = "Настройка оповещения"; +$lang['wihlsty'] = "Отображение пользователей на странице статистики"; +$lang['wihlts'] = "Настройка подключения к TeamSpeak"; +$lang['wihlvs'] = "Прочие настройки"; +$lang['wiignidle'] = "Игнорировать время бездействия"; +$lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.

Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), это время также учитывается RankSystem. Только когда установленный лимит будет достигнут, RankSystem начнет подсчитывать время бездействия для пользователя.

Эта функция работает только при включенном режиме подсчёта за 'активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).

Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии.

0= отключить данную функцию

Пример:
Игнорировать бездействие= 600 (секунд)
Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя."; +$lang['wilog'] = "Папка логирования работы RankSystem"; +$lang['wilogdesc'] = "Расположение логов Ranksystem на диске.

Пример:
/var/logs/ranksystem/

Убедитесь, что веб-пользователь имеет разрешение на редактирование этой папки/файлов(chmod)."; +$lang['wilogout'] = "Выход"; +$lang['wimsgmsg'] = "Оповещение"; +$lang['wimsgmsgdesc'] = "Задать сообщение, которое будет отправлено пользователю, при достижении высшего ранга.

Данное сообщение отправляется посредством личных сообщений на TeamSpeak 3 сервере. Текст поддерживает использование bb-кодов программы Teamspeak.
http://ts-n.net/lexicon.php?showid=97#lexindex

Кроме того, также поддерживаются следующие аргументы в сообщении:
%1\$s - дни
%2\$s - часы
%3\$s - минут
%4\$s - секунды
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Пример:
Привет,\\nты достиг высший ранг, за время онлайн на сервере в течение %1\$s дней, %2\$s часов и %3\$s минут на нашем сервере.[B]Продолжай в том же духе![/B] ;-)"; +$lang['wimsgsn'] = "Новости сервера"; +$lang['wimsgsndesc'] = "Здесь указывается новостное сообщение, отображаемое пользователям в каталоге сайта \"/stats/\".

Вы можете использвать html-разметку для создания красивого оформления текста.

Пример:
<b>TEXT</b> - Жирный
<u>TEXT</u> - Подчеркнутый
<i>TEXT</i> - Наклонный
<br> - Перенос текста на новую строку"; +$lang['wimsgusr'] = "Уведомление при повышении"; +$lang['wimsgusrdesc'] = "Сообщение пользователю о повышении ранга."; +$lang['winav1'] = "TeamSpeak"; +$lang['winav2'] = "База данных"; +$lang['winav3'] = "Система"; +$lang['winav4'] = "Прочее"; +$lang['winav5'] = "Оповещения"; +$lang['winav6'] = "Статистика"; +$lang['winav7'] = "Администрирование"; +$lang['winav8'] = "Запустить / Остановить бота"; +$lang['winav9'] = "Доступно обновление!"; +$lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение."; +$lang['winav11'] = "Пожалуйста, укажите ваш уникальный идентификатор(UID) в разделе меню \"Прочее\". Это очень важно, на случай, если вы потеряете пароль от аккаунта веб-панели."; +$lang['winav12'] = "Аддоны"; +$lang['winxinfo'] = "Команда \"!nextup\""; +$lang['winxinfodesc'] = "Разрешает отправлять RankSytem-боту команду \"!nextup\" личным сообщением.

После отправки команды пользователю будет отправлено ответное сообщение с информацией о требуемом времени до следующего повышения.

deactivated - The function is deactivated. The command '!nextup' will be ignored.
allowed - only next rank - Gives back the needed time for the next group.
allowed - all next ranks - Gives back the needed time for all higher ranks."; +$lang['winxmode1'] = "Отключена"; +$lang['winxmode2'] = "Включена - только следующий ранг"; +$lang['winxmode3'] = "Включена - все следующие ранги"; +$lang['winxmsg1'] = "Сообщение-ответ"; +$lang['winxmsgdesc1'] = "Задайте форматирование и текст для сообщения, которое будет отправлено ответом на команду \"!nextup\".

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)

Пример:
Вы достигнете следующего ранга через: %1$s дней, %2$s часов, %3$s минут и %4$s секунд. Название следующей группы-ранга: [B]%5$s[/B]."; +$lang['winxmsg2'] = "Сообщ. о макс.ранге"; +$lang['winxmsgdesc2'] = "Данный текст будет отправлен пользователю при вводе команды \"!nextup\", если пользователь уже достиг высшего ранга

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%6$s - name of the user (recipient)

Пример:
Вы получили максимальный ранг за %1$s дней, %2$s часов %3$s минут и %4$s секунд онлайна."; +$lang['winxmsg3'] = "Сообщ. о исключении"; +$lang['winxmsgdesc3'] = "Данный текст будет отправлен пользователю при вводе команды \"!nextup\", если пользователь исключен из системы рангов RankSystem(Исключенный канал, группа, UID)

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)

Пример:
Вы исключены из системы рангов RankSystem. Такое могло произойти, если Вы находитесь в \"Исключенном канале\", группе сервера или ваш идентификатор был вручную добавлен в исключение. За подробной информацией обратитесь к администратору сервера."; +$lang['wirtpw1'] = "Увы. Вами ранее не был указан UID администратора, с помощью которого должно производиться восстановление пароля от веб-панели. В данном случае, восстановление пароля невозможно средствами RankSystem.
Вы можете попробовать вручную изменить пароль от аккаунта через базу данных, но не забудьте при этом, что там хранится md5-хеш пароля( md5(\"password\") -> d41d8cd98f00b204e9800998ecf8427e )."; +$lang['wirtpw2'] = "Администратор с заданным UID не был найден среди пользователей онлайн на сервере. Вам необходимо подключиться к серверу с заданного в веб-панели уникального идентификатора(UID)!"; +$lang['wirtpw3'] = "Ваш IP-адрес не совпадает с IP Администратора. Такое могло произойти, если ваш траффик в браузере перенаправлен на прокси-сервер или VPN(протоколы IPv4 / IPv6 также учитываются при сверке IP)."; +$lang['wirtpw4'] = "\nПароль к веб-интерфейсу был успешно сброшен.\nЛогин: %s\nПароль: [B]%s[/B]\n\nВойдите %sздесь%s"; +$lang['wirtpw5'] = "Сообщение с новым паролем было отправлено через Teamspeak 3 сервер Администратору. Нажмите %sздесь%s, чтобы войти"; +$lang['wirtpw6'] = "Пароль от веб-панели успешно сброшен. IP, с которого произведен сброс: %s."; +$lang['wirtpw7'] = "Сбросить пароль"; +$lang['wirtpw8'] = "Здесь вы можете сбросить пароль для восстановления доступа к веб-панели"; +$lang['wirtpw9'] = "Для сброса пароля потребуется следующее:"; +$lang['wirtpw10'] = "Вы должны находиться онлайн на сервере."; +$lang['wirtpw11'] = "Ранее в веб-панели должен был быть указан UID Администратора."; +$lang['wirtpw12'] = "Ваши IP-адреса на сервере и на данной странице сайта должны совпадать (протоколы IPv4 / IPv6 также учитываются при сверке IP)."; +$lang['wiselcld'] = "Выбор пользователя"; +$lang['wiselclddesc'] = "Укажите пользователя по его последнему никнейму или уникальному идентификатору(UID), или ID в базе данных Teamspeak 3 сервера."; +$lang['wishcolas'] = "Текущая группа сервера"; +$lang['wishcolasdesc'] = "Показывать колонку 'Текущая группа сервера' в stats/list_rankup.php"; +$lang['wishcolat'] = "Время активности"; +$lang['wishcolatdesc'] = "Показывать колонку 'Суммарное время активности' в stats/list_rankup.php"; +$lang['wishcolcld'] = "Ник клиента"; +$lang['wishcolclddesc'] = "Показывать колонку 'Ник клиента' в stats/list_rankup.php"; +$lang['wishcoldbid'] = "ID в Базе данных"; +$lang['wishcoldbiddesc'] = "Показывать колонку 'ID в Базе данных' в stats/list_rankup.php"; +$lang['wishcolgs'] = "Текущая группа начиная с"; +$lang['wishcolgsdesc'] = "Показывать колонку 'Текущая группа начиная с' на странице list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; +$lang['wishcolhadesc'] = "Activate encrypting / hashing of IP addresses of TeamSpeak user and saves only the hashed value inside the database.
This is needed in some cases of your privacy legal; especially required due the EU-GDPR
We can't do without the IP address, because we need it to bind the TeamSpeak user with the website user.

If this function is \"OFF\" the IP address of a user will be stored in plain text.

In both variants (ON an OFF) the IP addresses of a user will only be stored as long as the user is connected to the TS3 server.

!!! Encrypting / Hashing of IP addresses will increase the needed resources and will negatively affect the performance of the website !!!

The IP addresses of users will only be stored once a user connected to the TS3 server. On changing this function the user needs to reconnect to the TS3 server to be able to verify with the Ranksystem webpage."; +$lang['wishcolit'] = "Учитывать время простоя"; +$lang['wishcolitdesc'] = "Показывать колонку 'суммарное время простоя' в stats/list_rankup.php"; +$lang['wishcolls'] = "Последний раз замечен"; +$lang['wishcollsdesc'] = "Показывать колонку 'Последний раз замечен' в stats/list_rankup.php"; +$lang['wishcolnx'] = "Время до след. ранга"; +$lang['wishcolnxdesc'] = "Показывать колонку 'Следующий Ранг' в stats/list_rankup.php"; +$lang['wishcolot'] = "Время подключения"; +$lang['wishcolotdesc'] = "Показывать колонку 'суммарное время подключения' в stats/list_rankup.php"; +$lang['wishcolrg'] = "Ранг"; +$lang['wishcolrgdesc'] = "Показывать колонку 'Ранг' в stats/list_rankup.php"; +$lang['wishcolsg'] = "Следующая сервер группа"; +$lang['wishcolsgdesc'] = "Показывать колонку 'следующая сервер группа' в stats/list_rankup.php"; +$lang['wishcoluuid'] = "UID пользов."; +$lang['wishcoluuiddesc'] = "Показывать колонку 'уникальный ID клиента'(UID) в stats/list_rankup.php"; +$lang['wishexcld'] = "Исключенные пользователи"; +$lang['wishexclddesc'] = "Показывать пользователей в list_rankup.php,
которые исключены и не участвуют в системе рангов."; +$lang['wishexgrp'] = "Группы исключения"; +$lang['wishexgrpdesc'] = "Показывать пользователей в list_rankup.php, которые находятся в списке 'исключенных пользователей' и не должны учитываться RankSystem."; +$lang['wishhicld'] = "Пользователи с высшим рангом"; +$lang['wishhiclddesc'] = "Показывать пользователей в list_rankup.php, достигших высшего уровня в Ranksystem."; +$lang['wishnav'] = "Показывать навигацию по системе"; +$lang['wishnavdesc'] = "Показывать ли навигацию на странице on 'stats/'.

Если эта опция отключена то навигация на сайте не будет отображаться.
You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board."; +$lang['wisupidle'] = "Режим"; +$lang['wisupidledesc'] = "Предоставлены два режима, по которым будет высчиваться ранг пользователей:

1) Время подключения(Общее время): Общее время подключения на сервере, складывается из \"Активного времени\" и \"времени бездействия\"(колонка 'Сумм. время подключения' в 'stats/list_rankup.php')

2) Активное время(Время активности): Время, которое пользователь не находился в бездействии. Значение этого времени высчитывается путем вычитания \"времени бездействия из\" из \"Общего времени подключения на сервере\" (Колонка 'Сумм. время активности' в 'stats/list_rankup.php').

Не рекомендуется смена режима при уже отработавшем долгий срок старом режиме, но допустимо."; +$lang['wisvconf'] = "Сохранить"; +$lang['wisvsuc'] = "Изменения успешно сохранены!"; +$lang['wisvres'] = "Для принятия внесенных правок вам необходимо перезагрузить RankSystem! %s"; +$lang['witime'] = "Часовой пояс"; +$lang['witimedesc'] = "Выбрать часовой пояс сервера."; +$lang['wits3avat'] = "Задержка загрузки аватаров"; +$lang['wits3avatdesc'] = "Определяет задержку при загрузке аватаров на сервере TS3.

Эта функция особенно полезна для серверов с (музыкальными) ботами, которые переодически меняют свои аватарки."; +$lang['wits3dch'] = "Канал по умолчанию"; +$lang['wits3dchdesc'] = "При подключении к серверу, бот RankSystem будет пытаться войти в этот канал и останется там."; +$lang['wits3host'] = "Адрес TS3"; +$lang['wits3hostdesc'] = "Адрес TeamSpeak 3 Сервера
(IP или DNS)"; +$lang['wits3sm'] = "Замедленный режим"; +$lang['wits3smdesc'] = "Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которых RankSystem может получить временный бан со стороны TeamSpeak 3 сервера.

!!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!

Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов.

The last column shows the required time for one duration (in seconds):

disabled    0,0   0,10
low delay   0,2   2,60
middle delay   0,5   6,50
high delay   1,0  13,00
huge delay  2,0  26,00
ultra delay   5,0  65,00

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'] = "Основн. ник бота"; +$lang['wits3qnm2'] = "Запас. ник бота"; +$lang['wits3qnm2desc'] = "Этот никнейм будет использоваться, если первый уже занят. Рекомендуется заполнить!"; +$lang['wits3qnmdesc'] = "Никнейм, под которым будет авторизовываться RankSystem на сервере.
Убедитесь, что оно не занято кем-то другим."; +$lang['wits3querpw'] = "TS3 Query-Пароль"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query-Пароль
Ваш пароль от query-пользователя."; +$lang['wits3querusr'] = "TS3 Query-Логин"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query-Логин
По умолчанию: serveradmin
Конечно вы можете указать другой логин для Ranksystem.
Необходимые разрешения привилегий вы можете найти на:
http://ts-n.net/ranksystem.php"; +$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['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'] = "Язык"; +$lang['wivlangdesc'] = "Выберите язык, используемый системой RankSystem по умолчанию.

Язык сайта по-прежнему будет доступен для переключения всем пользователям."; ?> \ No newline at end of file diff --git a/languages/nations_en.php b/languages/nations_en.php index 86be869..f1c1d86 100644 --- a/languages/nations_en.php +++ b/languages/nations_en.php @@ -1,250 +1,250 @@ - \ No newline at end of file diff --git a/languages/nations_fr.php b/languages/nations_fr.php index be3c298..a253dfc 100644 --- a/languages/nations_fr.php +++ b/languages/nations_fr.php @@ -1,250 +1,250 @@ - \ No newline at end of file diff --git a/languages/nations_it.php b/languages/nations_it.php index 652a996..36ee950 100644 --- a/languages/nations_it.php +++ b/languages/nations_it.php @@ -1,250 +1,250 @@ - \ No newline at end of file diff --git a/languages/nations_pl.php b/languages/nations_pl.php index 542e027..ca2726f 100644 --- a/languages/nations_pl.php +++ b/languages/nations_pl.php @@ -1,250 +1,250 @@ - \ No newline at end of file diff --git a/languages/nations_pt.php b/languages/nations_pt.php index c8c4821..d2f1efb 100644 --- a/languages/nations_pt.php +++ b/languages/nations_pt.php @@ -1,250 +1,250 @@ - \ No newline at end of file diff --git a/languages/nations_ru.php b/languages/nations_ru.php index a800af2..b6238d3 100644 --- a/languages/nations_ru.php +++ b/languages/nations_ru.php @@ -1,250 +1,250 @@ - \ No newline at end of file diff --git a/libs/combined_st.css b/libs/combined_st.css index d9fbda3..90a80c5 100644 --- a/libs/combined_st.css +++ b/libs/combined_st.css @@ -1,9 +1,9 @@ -html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(fonts/glyphicons-halflings-regular.eot);src:url(fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(fonts/glyphicons-halflings-regular.woff) format('woff'),url(fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.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}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-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}.form-control:focus{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)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:170px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ -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} -.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0} -@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)} -.required-field-block{position:relative}.required-field-block .required-icon{display:inline-block;vertical-align:middle;margin:-0.25em .25em 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.required-field-block{position:relative}.required-field-block-spin .required-icon{display:inline-block;vertical-align:middle;margin:0 21px 0 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block-spin .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0 21px 0 0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block-spin .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block-spin .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.divider{height:1px;width:100%;display:block;margin:5px 0;overflow:hidden;background-color:#111111}.help-hover{display:none}.form-group:hover .help-hover{display:block;cursor:pointer;margin: -19px -17px 5px 0}.affix{top:50px;width:calc(100% - 275px);color:#000;background-color:#fff!important;position:fixed;}.dropdown-menu{min-width:180px!important;}.tophuge{font-size:200%} -.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} -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} \ No newline at end of file +html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(fonts/glyphicons-halflings-regular.eot);src:url(fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(fonts/glyphicons-halflings-regular.woff) format('woff'),url(fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.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}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-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}.form-control:focus{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)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:170px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +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} +.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0} +@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)} +.required-field-block{position:relative}.required-field-block .required-icon{display:inline-block;vertical-align:middle;margin:-0.25em .25em 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.required-field-block{position:relative}.required-field-block-spin .required-icon{display:inline-block;vertical-align:middle;margin:0 21px 0 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block-spin .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0 21px 0 0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block-spin .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block-spin .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.divider{height:1px;width:100%;display:block;margin:5px 0;overflow:hidden;background-color:#111111}.help-hover{display:none}.form-group:hover .help-hover{display:block;cursor:pointer;margin: -19px -17px 5px 0}.affix{top:50px;width:calc(100% - 275px);color:#000;background-color:#fff!important;position:fixed;}.dropdown-menu{min-width:180px!important;}.tophuge{font-size:200%;white-space:nowrap} +.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-Select 1.13.1 */ +.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;z-index:1;text-align:right;white-space:nowrap}.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>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.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}:not(.input-group)>.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}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.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}.bootstrap-select .dropdown-toggle .filter-option{position:absolute;top:0;left:0;padding-top:inherit;padding-right:inherit;padding-bottom:inherit;padding-left:inherit;height:100%;width:100%;text-align:left}.bootstrap-select .dropdown-toggle .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.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;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.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,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option: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 .filter-option: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 .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option: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} \ No newline at end of file diff --git a/libs/combined_st.js b/libs/combined_st.js deleted file mode 100644 index 16d03dc..0000000 --- a/libs/combined_st.js +++ /dev/null @@ -1,14 +0,0 @@ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - +query("SELECT * FROM `$dbname`.`stats_server`")->fetch()) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; +} + +require_once('nav.php'); +?> +
+ +
+
+
+

+ + + + +

+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+

 

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+

 

+
+
+
+
+
+
+
+
+
+

 

+
+
+
+
+ + + +
+
+
+
+
+

 

+
+
+
+
+ + + +
+
+
+
+
+

 

+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + + +
+
+
+
+
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
'.$lang['stix0024'].''; } else { echo ''.$lang['stix0025'].''; } ?>
'.$lang['stix0032'].' '.(new DateTime("@0"))->diff($serveruptime)->format($timeformat).')'; } else { echo $lang['stix0033']; } ?>
+
+
+
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
servericon'; + } else { echo $sql_res['server_name']; } ?>
+
'.$lang['stix0046'].''; } else { echo $lang['stix0047']; } ?>
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +'; +} else { + echo 'unkown0'; +} +if (isset($nation[$sql_res['country_nation_name_2']])) { + echo ''; +} else { + echo 'unkown0'; +} +if (isset($nation[$sql_res['country_nation_name_3']])) { + echo ''; +} else { + echo 'unkown0'; +} +if (isset($nation[$sql_res['country_nation_name_4']])) { + echo ''; +} else { + echo 'unkown0'; +} +if (isset($nation[$sql_res['country_nation_name_5']])) { + echo ''; +} else { + echo 'unkown0'; +} +?> + + + + + + + + \ No newline at end of file diff --git a/stats/info.php b/stats/info.php index bc71123..212662a 100644 --- a/stats/info.php +++ b/stats/info.php @@ -1,92 +1,101 @@ - -
- -
-
-
-

- -

-
-
-
-
-

-

-
-
-
-
-
-

-

The Ranksystem was coded by Newcomer1989 Copyright © 2009-2018 TeamSpeak Sponsoring TS-N.NET

-
-
-
-
-
-

-

-

-

-

-
-
-
-
-
-

-

-

PHP - Copyright © 2001-2016 the PHP Group


-

-

jQuery v3.1.1 - Copyright © 2016 The jQuery Foundation

-

Font Awesome 4.7.0 - Copyright © davegandy

-

flag-icon-css 2.8.0 - Copyright © 2016 lipis

-

TeamSpeak 3 PHP Framework 1.1.24 - Copyright © 2010 Planet TeamSpeak

-

Bootstrap 3.3.7 - Copyright © 2011-2016 Twitter, Inc.

-

morris.js 0.5.0 - Copyright © 2013 Olly Smith

-

Raphaël 2.2.1 - JavaScript Vector Library - Copyright © 2008-2012 Dmitry Baranovskiy

-

SB Admin Bootstrap Admin Template - Copyright © 2013-2016 Blackrock Digital LLC.

-

Bootstrap Switch 3.3.2 - Copyright © 2013-2015 Mattia Larentis

-

Bootstrap TouchSpin 3.1.2 - Copyright © 2013-2016 István Ujj-Mészáros

-

bootstrap-select v1.13.0-beta - Copyright © 2012-2018 SnapAppointments, LLC

-

Bootstrap Show Password 1.0.3 - Copyright © 2014 zhixin wen

-
-
-
-
-
-

-

-

-

-

-

-

-

-

-

-

-

-
-
-
-
-
-
- + +
+ +
+
+
+

+ +

+
+
+
+
+

+

+
+
+
+
+
+

+

The Ranksystem was coded by Newcomer1989 Copyright © 2009-2018 TeamSpeak Sponsoring TS-N.NET

+
+
+
+
+
+

+

+

+

+

+
+
+
+
+
+

+

+

PHP - Copyright © 2001-2016 the PHP Group


+

+

jQuery v3.1.1 - Copyright © 2016 The jQuery Foundation

+

Font Awesome 4.7.0 - Copyright © davegandy

+

flag-icon-css 2.8.0 - Copyright © 2016 lipis

+

TeamSpeak 3 PHP Framework 1.1.33 - Copyright © 2010 Planet TeamSpeak

+

Bootstrap 3.3.7 - Copyright © 2011-2016 Twitter, Inc.

+

morris.js 0.5.0 - Copyright © 2013 Olly Smith

+

Raphaël 2.2.1 - JavaScript Vector Library - Copyright © 2008-2012 Dmitry Baranovskiy

+

SB Admin Bootstrap Admin Template - Copyright © 2013-2016 Blackrock Digital LLC.

+

Bootstrap Switch 3.3.2 - Copyright © 2013-2015 Mattia Larentis

+

Bootstrap TouchSpin 3.1.2 - Copyright © 2013-2016 István Ujj-Mészáros

+

bootstrap-select v1.13.0-beta - Copyright © 2012-2018 SnapAppointments, LLC

+

Bootstrap Show Password 1.0.3 - Copyright © 2014 zhixin wen

+
+
+
+
+
+

+

+

+

+

+

+

+

+

+

+

+

+

+
+
+
+
+
+
+ \ No newline at end of file diff --git a/stats/list_rankup.php b/stats/list_rankup.php index 87c5078..77e5606 100644 --- a/stats/list_rankup.php +++ b/stats/list_rankup.php @@ -1,404 +1,401 @@ -')) { - $operator = '>'; - } elseif(isset($seenvalue[1]) && $seenvalue[1] == '!=') { - $operator = '!='; - } else { - $operator = '='; - } - $filter .= " AND lastseen".$operator."'".$lastseen."'"; -} - -if(isset($getstring)) { - $dbdata_full = $mysqlcon->prepare("SELECT COUNT(*) FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter"); - $dbdata_full->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); - $dbdata_full->execute(); - $sumentries = $dbdata_full->fetch(PDO::FETCH_NUM); -} else { - $getstring = ''; - $sumentries = $mysqlcon->query("SELECT COUNT(*) FROM $dbname.user")->fetch(PDO::FETCH_NUM); -} - -if(!isset($_GET["seite"])) { - $seite = 1; -} else { - $seite = preg_replace('/\D/', '', $_GET["seite"]); -} -$adminlogin = 0; - -$keysort = ''; -$keyorder = ''; -if (isset($_GET['sort'])) { - $keysort = strip_tags(htmlspecialchars($_GET['sort'])); -} -if ($keysort != 'name' && $keysort != 'uuid' && $keysort != 'cldbid' && $keysort != 'rank' && $keysort != 'lastseen' && $keysort != 'count' && $keysort != 'idle' && $keysort != 'active' && $keysort != 'grpid' && $keysort != 'grpsince') { - $keysort = 'nextup'; -} -if (isset($_GET['order'])) { - $keyorder = strip_tags(htmlspecialchars($_GET['order'])); -} -$keyorder = ($keyorder == 'desc' ? 'desc' : 'asc'); -if (isset($_GET['admin'])) { - if($_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { - $adminlogin = 1; - } -} -require_once('nav.php'); - -$countentries = 0; - - -if(!isset($_GET["user"])) { - $user_pro_seite = 25; -} elseif($_GET['user'] == "all") { - $user_pro_seite = $sumentries[0]; -} else { - $user_pro_seite = preg_replace('/\D/', '', $_GET["user"]); -} - -$start = ($seite * $user_pro_seite) - $user_pro_seite; - -if ($keysort == 'active' && $keyorder == 'asc') { - $dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY (count - idle) LIMIT :start, :userproseite"); - $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); - $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); - $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); - $dbdata->execute(); -} elseif ($keysort == 'active' && $keyorder == 'desc') { - $dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY (idle - count) LIMIT :start, :userproseite"); - $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); - $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); - $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); - $dbdata->execute(); -} elseif ($searchstring == '') { - $dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE 1=1$filter ORDER BY $keysort $keyorder LIMIT :start, :userproseite"); - $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); - $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); - $dbdata->execute(); -} else { - $dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY $keysort $keyorder LIMIT :start, :userproseite"); - $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); - $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); - $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); - $dbdata->execute(); -} - -$seiten_anzahl_gerundet = ceil($sumentries[0] / $user_pro_seite); - -function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring) { - ?> - - fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); - -$sqlhisgroup = $mysqlcon->query("SELECT sgid,sgidname FROM $dbname.groups")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); -foreach($sqlhisgroup as $sgid => $servergroup) { - if(file_exists('../tsicons/'.$sgid.'.png')) { - $sqlhisgroup[$sgid]['iconfile'] = 1; - } else { - $sqlhisgroup[$sgid]['iconfile'] = 0; - } -} -if($adminlogin == 1) { - switch ($keyorder) { - case "asc": - $keyorder2 = "desc&admin=true"; - break; - case "desc": - $keyorder2 = "asc&admin=true"; - } -} else { - switch ($keyorder) { - case "asc": - $keyorder2 = "desc"; - break; - case "desc": - $keyorder2 = "asc"; - } -} -?> -
- -
- - - - - ' , $lang['listrank'] , ''; - if ($showcolcld == 1 || $adminlogin == 1) - echo ($keysort == 'name') ? '' : ''; - if ($showcoluuid == 1 || $adminlogin == 1) - echo ''; - if ($showcoldbid == 1 || $adminlogin == 1) - echo ''; - if ($adminlogin == 1) - echo ''; - if ($showcolls == 1 || $adminlogin == 1) - echo ''; - if ($showcolot == 1 || $adminlogin == 1) - echo ''; - if ($showcolit == 1 || $adminlogin == 1) - echo ''; - if ($showcolat == 1 || $adminlogin == 1) - echo ''; - if ($showcolas == 1 || $adminlogin == 1) - echo ''; - if ($showgrpsince == 1 || $adminlogin == 1) - echo ''; - if ($showcolnx == 1 || $adminlogin == 1) - echo ($keysort == 'nextup') ? '' : ''; - if (($showcolsg == 1 || $adminlogin == 1) && $substridle == 1) { - echo ''; - } elseif (($showcolsg == 1 || $adminlogin == 1) && $substridle != 1) { - echo ''; - } - echo ''; - ksort($grouptime); - if (count($sqlhis) > 0) { - foreach ($sqlhis as $uuid => $value) { - if ($substridle == 1) { - $activetime = $value['count'] - $value['idle']; - } else { - $activetime = $value['count']; - } - $grpcount=0; - foreach ($grouptime as $time => $groupid) { - $grpcount++; - if ($activetime < $time || $grpcount == count($grouptime) && $value['nextup'] <= 0 && $showhighest == 1 || $grpcount == count($grouptime) && $value['nextup'] == 0 && $adminlogin == 1) { - echo ''; - if ($showcolrg == 1 || $adminlogin == 1) { - if($value['except'] == 2 || $value['except'] == 3) { - echo ''; - } else { - echo ''; - } - } - if ($adminlogin == 1) { - echo ''; - } elseif ($showcolcld == 1) { - echo ''; - } - if ($adminlogin == 1) { - echo ''; - } elseif ($showcoluuid == 1) { - echo ''; - } - if ($showcoldbid == 1 || $adminlogin == 1) - echo ''; - if ($adminlogin == 1) - echo ''; - if ($showcolls == 1 || $adminlogin == 1) { - if ($value['online'] == 1) { - echo ''; - } else { - echo ''; - } - } - if ($showcolot == 1 || $adminlogin == 1) { - echo ''; - } elseif ($sqlhisgroup[$value['grpid']]['iconfile'] == 1) { - echo ''; - } else { - echo ''; - } - } - if ($showgrpsince == 1 || $adminlogin == 1) { - if ($value['grpsince'] == 0) { - echo ''; - } else { - echo ''; - } - } - if ($showcolnx == 1 || $adminlogin == 1) { - echo ''; - } elseif ($value['except'] == 0 || $value['except'] == 1) { - echo '0'; - } elseif ($value['except'] == 2 || $value['except'] == 3) { - echo '0'; - } else { - echo $lang['errukwn'], ''; - } - } - if ($showcolsg == 1 || $adminlogin == 1) { - if ($grpcount == count($grouptime) && $value['nextup'] == 0 && $showhighest == 1 || $grpcount == count($grouptime) && $value['nextup'] == 0 && $adminlogin == 1) { - echo ''; - } elseif ($value['except'] == 2 || $value['except'] == 3) { - echo ''; - } elseif (isset($sqlhisgroup[$groupid]) && $sqlhisgroup[$groupid]['iconfile'] == 1) { - echo ''; - } elseif (isset($sqlhisgroup[$groupid])) { - echo ''; - } else { - echo ''; - } - } - echo ''; - break; - } - } - } - } else { - echo ''; - } - echo '
' . $lang['listnick'] . '' . $lang['listnick'] . '' , $lang['listuid'] , '' , $lang['listcldbid'] , '' , $lang['listip'] , '' , $lang['listseen'] , '' , $lang['listsumo'] , '' , $lang['listsumi'] , '' , $lang['listsuma'] , '' , $lang['listacsg'] , '' , $lang['listgrps'] , '' . $lang['listnxup'] . '' . $lang['listnxup'] . '' , $lang['listnxsg'] , '' , $lang['listnxsg'] , '
' , $value['rank'] , '' , htmlspecialchars($value['name']) , '' , htmlspecialchars($value['name']) , '' , $uuid , '' , $uuid , '' , $value['cldbid'] , '' , inet_ntop($value['ip']) , 'online' , date('Y-m-d H:i:s',$value['lastseen']), ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".$value['count']); - echo $dtF->diff($dtT)->format($timeformat); - } - if ($showcolit == 1 || $adminlogin == 1) { - echo ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".$value['idle']); - echo $dtF->diff($dtT)->format($timeformat); - } - if ($showcolat == 1 || $adminlogin == 1) { - echo ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".($value['count']-$value['idle'])); - echo $dtF->diff($dtT)->format($timeformat); - } - if ($showcolas == 1 || $adminlogin == 1) { - if ($value['grpid'] == 0) { - echo 'groupicon  ' , $sqlhisgroup[$value['grpid']]['sgidname'] , '' , $sqlhisgroup[$value['grpid']]['sgidname'] , '' , date('Y-m-d H:i:s',$value['grpsince']), ''; - if (($value['except'] == 0 || $value['except'] == 1) && $value['nextup'] > 0) { - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".$value['nextup']); - echo $dtF->diff($dtT)->format($timeformat) , '',$lang['highest'],'',$lang['listexcept'],'groupicon  ' , $sqlhisgroup[$groupid]['sgidname'] , '' , $sqlhisgroup[$groupid]['sgidname'] , '
' , $lang['noentry'] , '
'; - if($user_pro_seite != "all") { - pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring); - } - ?> -
-
-
- - +')) { + $operator = '>'; + } elseif(isset($seenvalue[1]) && $seenvalue[1] == '!=') { + $operator = '!='; + } else { + $operator = '='; + } + $filter .= " AND `lastseen`".$operator."'".$lastseen."'"; +} +$searchstring = htmlspecialchars_decode($searchstring); + +if(isset($getstring)) { + $dbdata_full = $mysqlcon->prepare("SELECT COUNT(*) FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue)$filter"); + $dbdata_full->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); + $dbdata_full->execute(); + $sumentries = $dbdata_full->fetch(PDO::FETCH_NUM); +} else { + $getstring = ''; + $sumentries = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`user`")->fetch(PDO::FETCH_NUM); +} + +if(!isset($_GET["seite"])) { + $seite = 1; +} else { + $seite = preg_replace('/\D/', '', $_GET["seite"]); +} +$adminlogin = 0; + +$keysort = ''; +$keyorder = ''; +if (isset($_GET['sort'])) { + $keysort = htmlspecialchars($_GET['sort']); +} +if ($keysort != 'name' && $keysort != 'uuid' && $keysort != 'cldbid' && $keysort != 'rank' && $keysort != 'lastseen' && $keysort != 'count' && $keysort != 'idle' && $keysort != 'active' && $keysort != 'grpid' && $keysort != 'grpsince') { + $keysort = 'nextup'; +} +if (isset($_GET['order'])) { + $keyorder = htmlspecialchars($_GET['order']); +} +$keyorder = ($keyorder == 'desc' ? 'desc' : 'asc'); +if (isset($_GET['admin'])) { + if($_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { + $adminlogin = 1; + } +} +require_once('nav.php'); + +$countentries = 0; + + +if(!isset($_GET["user"])) { + $user_pro_seite = 25; +} elseif($_GET['user'] == "all") { + $user_pro_seite = $sumentries[0]; +} else { + $user_pro_seite = preg_replace('/\D/', '', $_GET["user"]); +} + +$start = ($seite * $user_pro_seite) - $user_pro_seite; + +if ($keysort == 'active' && $keyorder == 'asc') { + $dbdata = $mysqlcon->prepare("SELECT `uuid`,`cldbid`,`rank`,`count`,`name`,`idle`,`cldgroup`,`online`,`nextup`,`lastseen`,`grpid`,`except`,`grpsince` FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue)$filter ORDER BY (`count` - `idle`) LIMIT :start, :userproseite"); + $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); + $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); + $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); + $dbdata->execute(); +} elseif ($keysort == 'active' && $keyorder == 'desc') { + $dbdata = $mysqlcon->prepare("SELECT `uuid`,`cldbid`,`rank`,`count`,`name`,`idle`,`cldgroup`,`online`,`nextup`,`lastseen`,`grpid`,`except`,`grpsince` FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue)$filter ORDER BY (`idle` - `count`) LIMIT :start, :userproseite"); + $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); + $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); + $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); + $dbdata->execute(); +} elseif ($searchstring == '') { + $dbdata = $mysqlcon->prepare("SELECT `uuid`,`cldbid`,`rank`,`count`,`name`,`idle`,`cldgroup`,`online`,`nextup`,`lastseen`,`grpid`,`except`,`grpsince` FROM `$dbname`.`user` WHERE 1=1$filter ORDER BY `$keysort` $keyorder LIMIT :start, :userproseite"); + $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); + $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); + $dbdata->execute(); +} else { + $dbdata = $mysqlcon->prepare("SELECT `uuid`,`cldbid`,`rank`,`count`,`name`,`idle`,`cldgroup`,`online`,`nextup`,`lastseen`,`grpid`,`except`,`grpsince` FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue)$filter ORDER BY `$keysort` $keyorder LIMIT :start, :userproseite"); + $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); + $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); + $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); + $dbdata->execute(); +} + +$seiten_anzahl_gerundet = ceil($sumentries[0] / $user_pro_seite); + +function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring) { + ?> + + fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); + +$sqlhisgroup = $mysqlcon->query("SELECT `sgid`,`sgidname` FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); +foreach($sqlhisgroup as $sgid => $servergroup) { + if(file_exists('../tsicons/'.$sgid.'.png')) { + $sqlhisgroup[$sgid]['iconfile'] = 1; + } else { + $sqlhisgroup[$sgid]['iconfile'] = 0; + } +} +if($adminlogin == 1) { + switch ($keyorder) { + case "asc": + $keyorder2 = "desc&admin=true"; + break; + case "desc": + $keyorder2 = "asc&admin=true"; + } +} else { + switch ($keyorder) { + case "asc": + $keyorder2 = "desc"; + break; + case "desc": + $keyorder2 = "asc"; + } +} +?> +
+ +
+ + + + + ' , $lang['listrank'] , ''; + if ($showcolcld == 1 || $adminlogin == 1) + echo ($keysort == 'name') ? '' : ''; + if ($showcoluuid == 1 || $adminlogin == 1) + echo ''; + if ($showcoldbid == 1 || $adminlogin == 1) + echo ''; + if ($showcolls == 1 || $adminlogin == 1) + echo ''; + if ($showcolot == 1 || $adminlogin == 1) + echo ''; + if ($showcolit == 1 || $adminlogin == 1) + echo ''; + if ($showcolat == 1 || $adminlogin == 1) + echo ''; + if ($showcolas == 1 || $adminlogin == 1) + echo ''; + if ($showgrpsince == 1 || $adminlogin == 1) + echo ''; + if ($showcolnx == 1 || $adminlogin == 1) + echo ($keysort == 'nextup') ? '' : ''; + if (($showcolsg == 1 || $adminlogin == 1) && $substridle == 1) { + echo ''; + } elseif (($showcolsg == 1 || $adminlogin == 1) && $substridle != 1) { + echo ''; + } + echo ''; + ksort($grouptime); + if (count($sqlhis) > 0) { + foreach ($sqlhis as $uuid => $value) { + if ($substridle == 1) { + $activetime = $value['count'] - $value['idle']; + } else { + $activetime = $value['count']; + } + $grpcount=0; + foreach ($grouptime as $time => $groupid) { + $grpcount++; + if ($activetime < $time || $grpcount == count($grouptime) && $value['nextup'] <= 0 && $showhighest == 1 || $grpcount == count($grouptime) && $value['nextup'] == 0 && $adminlogin == 1) { + echo ''; + if ($showcolrg == 1 || $adminlogin == 1) { + if($value['except'] == 2 || $value['except'] == 3) { + echo ''; + } else { + echo ''; + } + } + if ($adminlogin == 1) { + echo ''; + } elseif ($showcolcld == 1) { + echo ''; + } + if ($adminlogin == 1) { + echo ''; + } elseif ($showcoluuid == 1) { + echo ''; + } + if ($showcoldbid == 1 || $adminlogin == 1) + echo ''; + if ($showcolls == 1 || $adminlogin == 1) { + if ($value['online'] == 1) { + echo ''; + } else { + echo ''; + } + } + if ($showcolot == 1 || $adminlogin == 1) { + echo ''; + } elseif ($sqlhisgroup[$value['grpid']]['iconfile'] == 1) { + echo ''; + } else { + echo ''; + } + } + if ($showgrpsince == 1 || $adminlogin == 1) { + if ($value['grpsince'] == 0) { + echo ''; + } else { + echo ''; + } + } + if ($showcolnx == 1 || $adminlogin == 1) { + echo ''; + } elseif ($value['except'] == 0 || $value['except'] == 1) { + echo '0'; + } elseif ($value['except'] == 2 || $value['except'] == 3) { + echo '0'; + } else { + echo $lang['errukwn'], ''; + } + } + if ($showcolsg == 1 || $adminlogin == 1) { + if ($grpcount == count($grouptime) && $value['nextup'] == 0 && $showhighest == 1 || $grpcount == count($grouptime) && $value['nextup'] == 0 && $adminlogin == 1) { + echo ''; + } elseif ($value['except'] == 2 || $value['except'] == 3) { + echo ''; + } elseif (isset($sqlhisgroup[$groupid]) && $sqlhisgroup[$groupid]['iconfile'] == 1) { + echo ''; + } elseif (isset($sqlhisgroup[$groupid])) { + echo ''; + } else { + echo ''; + } + } + echo ''; + break; + } + } + } + } else { + echo ''; + } + echo '
' . $lang['listnick'] . '' . $lang['listnick'] . '' , $lang['listuid'] , '' , $lang['listcldbid'] , '' , $lang['listseen'] , '' , $lang['listsumo'] , '' , $lang['listsumi'] , '' , $lang['listsuma'] , '' , $lang['listacsg'] , '' , $lang['listgrps'] , '' . $lang['listnxup'] . '' . $lang['listnxup'] . '' , $lang['listnxsg'] , '' , $lang['listnxsg'] , '
' , $value['rank'] , '' , htmlspecialchars($value['name']) , '' , htmlspecialchars($value['name']) , '' , $uuid , '' , $uuid , '' , $value['cldbid'] , 'online' , date('Y-m-d H:i:s',$value['lastseen']), ''; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@".$value['count']); + echo $dtF->diff($dtT)->format($timeformat); + } + if ($showcolit == 1 || $adminlogin == 1) { + echo ''; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@".$value['idle']); + echo $dtF->diff($dtT)->format($timeformat); + } + if ($showcolat == 1 || $adminlogin == 1) { + echo ''; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@".($value['count']-$value['idle'])); + echo $dtF->diff($dtT)->format($timeformat); + } + if ($showcolas == 1 || $adminlogin == 1) { + if ($value['grpid'] == 0) { + echo 'groupicon  ' , $sqlhisgroup[$value['grpid']]['sgidname'] , '' , $sqlhisgroup[$value['grpid']]['sgidname'] , '' , date('Y-m-d H:i:s',$value['grpsince']), ''; + if (($value['except'] == 0 || $value['except'] == 1) && $value['nextup'] > 0) { + $dtF = new DateTime("@0"); + $dtT = new DateTime("@".$value['nextup']); + echo $dtF->diff($dtT)->format($timeformat) , '',$lang['highest'],'',$lang['listexcept'],'groupicon  ' , $sqlhisgroup[$groupid]['sgidname'] , '' , $sqlhisgroup[$groupid]['sgidname'] , '
' , $lang['noentry'] , '
'; + if($user_pro_seite != "all") { + pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring); + } + ?> +
+
+
+ \ No newline at end of file diff --git a/stats/my_stats.php b/stats/my_stats.php index d9aa560..6470d11 100644 --- a/stats/my_stats.php +++ b/stats/my_stats.php @@ -1,370 +1,378 @@ - 1 && !isset($_SESSION[$rspathhex.'uuid_verified'])) { - $err_msg = sprintf($lang['stag0006'], '', ''); $err_lvl = 3; -} elseif ($_SESSION[$rspathhex.'connected'] == 0) { - $err_msg = sprintf("Du konntest nicht auf dem TeamSpeak gefunden werden. Bitte %sklicke hier%s um dich zunächst zu verifizieren.", '', ''); $err_lvl = 3; -} else { - $dbdata_fetched = $mysqlcon->query("SELECT * FROM $dbname.user WHERE uuid LIKE '%".$_SESSION[$rspathhex.'tsuid']."%'")->fetch(); - $count_hours = round($dbdata_fetched['count']/3600); - $idle_hours = round($dbdata_fetched['idle']/3600); - - if ($substridle == 1) { - $activetime = $dbdata_fetched['count'] - $dbdata_fetched['idle']; - } else { - $activetime = $dbdata_fetched['count']; - } - $active_count = $dbdata_fetched['count'] - $dbdata_fetched['idle']; - - krsort($grouptime); - $nextgrp = ''; - - foreach ($grouptime as $time => $groupid) { - $actualgrp = $time; - if ($activetime > $time) { - break; - } else { - $nextgrp = $time; - } - } - if($actualgrp==$nextgrp) { - $actualgrp = 0; - } - if($activetime>$nextgrp) { - $percentage_rankup = 100; - } else { - $takedtime = $activetime - $actualgrp; - $neededtime = $nextgrp - $actualgrp; - $percentage_rankup = round($takedtime/$neededtime*100); - } - - $stats_user = $mysqlcon->query("SELECT count_week,active_week,count_month,active_month FROM $dbname.stats_user WHERE uuid='".$_SESSION[$rspathhex.'tsuid']."'")->fetch(); - - if (isset($stats_user['count_week'])) $count_week = $stats_user['count_week']; else $count_week = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_week"); $count_week = $dtF->diff($dtT)->format($timeformat); - if (isset($stats_user['active_week'])) $active_week = $stats_user['active_week']; else $active_week = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_week"); $active_week = $dtF->diff($dtT)->format($timeformat); - if (isset($stats_user['count_month'])) $count_month = $stats_user['count_month']; else $count_month = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_month"); $count_month = $dtF->diff($dtT)->format($timeformat); - if (isset($stats_user['active_month'])) $active_month = $stats_user['active_month']; else $active_month = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_month"); $active_month = $dtF->diff($dtT)->format($timeformat); - if (isset($dbdata_fetched['count'])) $count_total = $dbdata_fetched['count']; else $count_total = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_total"); $count_total = $dtF->diff($dtT)->format($timeformat); - $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_count"); $active_count = $dtF->diff($dtT)->format($timeformat); - - $time_for_bronze = 50; - $time_for_silver = 100; - $time_for_gold = 250; - $time_for_legendary = 500; - - $connects_for_bronze = 50; - $connects_for_silver = 100; - $connects_for_gold = 250; - $connects_for_legendary = 500; - - $achievements_done = 0; - - if($count_hours >= $time_for_legendary) { - $achievements_done = $achievements_done + 4; - } elseif($count_hours >= $time_for_gold) { - $achievements_done = $achievements_done + 3; - } elseif($count_hours >= $time_for_silver) { - $achievements_done = $achievements_done + 2; - } else { - $achievements_done = $achievements_done + 1; - } - if($_SESSION[$rspathhex.'tsconnections'] >= $connects_for_legendary) { - $achievements_done = $achievements_done + 4; - } elseif($_SESSION[$rspathhex.'tsconnections'] >= $connects_for_gold) { - $achievements_done = $achievements_done + 3; - } elseif($_SESSION[$rspathhex.'tsconnections'] >= $connects_for_silver) { - $achievements_done = $achievements_done + 2; - } else { - $achievements_done = $achievements_done + 1; - } -} - -function get_percentage($max_value, $value) { - return (round(($value/$max_value)*100)); -} -require_once('nav.php'); -?> -
- 1 || $_SESSION[$rspathhex.'connected'] == 0) { echo "
"; exit; } ?> -
-
-
-

- - - - -

-
-
-
-
-
-
-
-
-
-
-
-
- '; - } else { - echo ''; - } - ?> -
-
-
- -
-
- -
-

-
-
- -
-
-
- -
-

- = $time_for_legendary) { ?> -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- = $time_for_gold) { ?> -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- = $time_for_silver) { ?> -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- = $time_for_bronze) { ?> -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- -
-
-

- = $connects_for_legendary) { ?> -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- = $connects_for_gold) { ?> -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- = $connects_for_silver) { ?> -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- = $connects_for_bronze) { ?> -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
- + 1 && !isset($_SESSION[$rspathhex.'uuid_verified'])) { + $err_msg = sprintf($lang['stag0006'], '', ''); $err_lvl = 3; +} elseif ($_SESSION[$rspathhex.'connected'] == 0) { + $err_msg = sprintf("Du konntest nicht auf dem TeamSpeak gefunden werden. Bitte %sklicke hier%s um dich zunächst zu verifizieren.", '', ''); $err_lvl = 3; +} else { + $dbdata_fetched = $mysqlcon->query("SELECT * FROM `$dbname`.`user` WHERE `uuid` LIKE '%".$_SESSION[$rspathhex.'tsuid']."%'")->fetch(); + $count_hours = round($dbdata_fetched['count']/3600); + $idle_hours = round($dbdata_fetched['idle']/3600); + + if ($substridle == 1) { + $activetime = $dbdata_fetched['count'] - $dbdata_fetched['idle']; + } else { + $activetime = $dbdata_fetched['count']; + } + $active_count = $dbdata_fetched['count'] - $dbdata_fetched['idle']; + + krsort($grouptime); + $nextgrp = ''; + + foreach ($grouptime as $time => $groupid) { + $actualgrp = $time; + if ($activetime > $time) { + break; + } else { + $nextgrp = $time; + } + } + if($actualgrp==$nextgrp) { + $actualgrp = 0; + } + if($activetime>$nextgrp) { + $percentage_rankup = 100; + } else { + $takedtime = $activetime - $actualgrp; + $neededtime = $nextgrp - $actualgrp; + $percentage_rankup = round($takedtime/$neededtime*100); + } + + $stats_user = $mysqlcon->query("SELECT `count_week`,`active_week`,`count_month`,`active_month` FROM `$dbname`.`stats_user` WHERE `uuid`='".$_SESSION[$rspathhex.'tsuid']."'")->fetch(); + + if (isset($stats_user['count_week'])) $count_week = $stats_user['count_week']; else $count_week = 0; + $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_week"); $count_week = $dtF->diff($dtT)->format($timeformat); + if (isset($stats_user['active_week'])) $active_week = $stats_user['active_week']; else $active_week = 0; + $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_week"); $active_week = $dtF->diff($dtT)->format($timeformat); + if (isset($stats_user['count_month'])) $count_month = $stats_user['count_month']; else $count_month = 0; + $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_month"); $count_month = $dtF->diff($dtT)->format($timeformat); + if (isset($stats_user['active_month'])) $active_month = $stats_user['active_month']; else $active_month = 0; + $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_month"); $active_month = $dtF->diff($dtT)->format($timeformat); + if (isset($dbdata_fetched['count'])) $count_total = $dbdata_fetched['count']; else $count_total = 0; + $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_total"); $count_total = $dtF->diff($dtT)->format($timeformat); + $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_count"); $active_count = $dtF->diff($dtT)->format($timeformat); + + $time_for_bronze = 50; + $time_for_silver = 100; + $time_for_gold = 250; + $time_for_legendary = 500; + + $connects_for_bronze = 50; + $connects_for_silver = 100; + $connects_for_gold = 250; + $connects_for_legendary = 500; + + $achievements_done = 0; + + if($count_hours >= $time_for_legendary) { + $achievements_done = $achievements_done + 4; + } elseif($count_hours >= $time_for_gold) { + $achievements_done = $achievements_done + 3; + } elseif($count_hours >= $time_for_silver) { + $achievements_done = $achievements_done + 2; + } else { + $achievements_done = $achievements_done + 1; + } + if($_SESSION[$rspathhex.'tsconnections'] >= $connects_for_legendary) { + $achievements_done = $achievements_done + 4; + } elseif($_SESSION[$rspathhex.'tsconnections'] >= $connects_for_gold) { + $achievements_done = $achievements_done + 3; + } elseif($_SESSION[$rspathhex.'tsconnections'] >= $connects_for_silver) { + $achievements_done = $achievements_done + 2; + } else { + $achievements_done = $achievements_done + 1; + } +} + +function get_percentage($max_value, $value) { + return (round(($value/$max_value)*100)); +} +require_once('nav.php'); +?> +
+ 1 || $_SESSION[$rspathhex.'connected'] == 0) { echo "
"; exit; } ?> +
+
+
+

+ + + + +

+
+
+
+
+
+
+
+
+
+
+
+
+ '; + } else { + echo ''; + } + ?> +
+
+
+ +
+
+ +
+

+
+
+ +
+
+
+ +
+

+ = $time_for_legendary) { ?> +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ = $time_for_gold) { ?> +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ = $time_for_silver) { ?> +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ = $time_for_bronze) { ?> +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+

+ = $connects_for_legendary) { ?> +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ = $connects_for_gold) { ?> +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ = $connects_for_silver) { ?> +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ = $connects_for_bronze) { ?> +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/stats/nations.php b/stats/nations.php index 022e715..0969c3b 100644 --- a/stats/nations.php +++ b/stats/nations.php @@ -1,90 +1,98 @@ -query("SELECT * FROM $dbname.stats_nations ORDER BY count DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - -require_once('nav.php'); -?> -
- -
-
-
-

- -

-
-
-
-
-
- - - - - - - - - - $value) { - $sum_of_all = $sum_of_all + $value['count']; -} -foreach ($sql_res as $country => $value) { - $count++; - echo ' - - - - - - - '; -} -?> - -
#
',$count,'  ',$country,'',$nation[$country],'',$value['count'],'',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %
-
-
-
-
-
- - +query("SELECT * FROM `$dbname`.`stats_nations` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + +require_once('nav.php'); +?> +
+ +
+
+
+

+ +

+
+
+
+
+
+ + + + + + + + + + $value) { + $sum_of_all = $sum_of_all + $value['count']; +} +foreach ($sql_res as $country => $value) { + $count++; + echo ' + + + + + + + '; +} +?> + +
#
',$count,'  ',$country,'',$nation[$country],'',$value['count'],'',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %
+
+
+
+
+
+ + \ No newline at end of file diff --git a/stats/nav.php b/stats/nav.php index f47b178..8e5d57b 100644 --- a/stats/nav.php +++ b/stats/nav.php @@ -1,343 +1,368 @@ -query("SELECT * FROM $dbname.job_check")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); -if((time() - $job_check['last_update']['timestamp']) < 259200 && !isset($_SESSION[$rspathhex.'upinfomsg'])) { - if(!isset($err_msg)) { - $err_msg = ' '.sprintf($lang['upinf2'], date("Y-m-d H:i",$job_check['last_update']['timestamp']), ' ', ''); $err_lvl = 1; - $_SESSION[$rspathhex.'upinfomsg'] = 1; - } -} -?> - - - - - - - - - TS-N.NET Ranksystem - - - - - - - - - - - - - - -
- -'; - } - - -function error_handling($msg,$type = NULL) { - switch ($type) { - case NULL: echo '
'; break; - case 1: echo '
'; break; - case 2: echo '
'; break; - case 3: echo '
'; break; - } - echo '',$msg,'
'; -} -?> +query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); +if((time() - $job_check['last_update']['timestamp']) < 259200 && !isset($_SESSION[$rspathhex.'upinfomsg'])) { + if(!isset($err_msg)) { + $err_msg = ' '.sprintf($lang['upinf2'], date("Y-m-d H:i",$job_check['last_update']['timestamp']), ' ', ''); $err_lvl = 1; + $_SESSION[$rspathhex.'upinfomsg'] = 1; + } +} +?> + + + + + + + + + TS-N.NET Ranksystem + + + + + + + + + + + + + +
+ +'; + } + + +function error_handling($msg,$type = NULL) { + switch ($type) { + case NULL: echo '
'; break; + case 1: echo '
'; break; + case 2: echo '
'; break; + case 3: echo '
'; break; + } + echo '',$msg,'
'; +} +?> \ No newline at end of file diff --git a/stats/platforms.php b/stats/platforms.php index 6683b41..240c65c 100644 --- a/stats/platforms.php +++ b/stats/platforms.php @@ -1,87 +1,87 @@ -query("SELECT * FROM $dbname.stats_platforms ORDER BY count DESC")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - -require_once('nav.php'); -?> -
- -
-
-
-

- -

-
-
-
-
-
- - - - - - - - - $value) { - $sum_of_all = $sum_of_all + $value['count']; -} -foreach ($sql_res as $platform => $value) { - $count++; - echo ' - - - - - - '; -} -?> - -
#
',$count,'',$platform,'',$value['count'],'',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %
-
-
-
-
-
-
- +query("SELECT * FROM `$dbname`.`stats_platforms` ORDER BY `count` DESC")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + +require_once('nav.php'); +?> +
+ +
+
+
+

+ +

+
+
+
+
+
+ + + + + + + + + $value) { + $sum_of_all = $sum_of_all + $value['count']; +} +foreach ($sql_res as $platform => $value) { + $count++; + echo ' + + + + + + '; +} +?> + +
#
',$count,'',$platform,'',$value['count'],'',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/stats/top_all.php b/stats/top_all.php index ea618d8..5f2149e 100644 --- a/stats/top_all.php +++ b/stats/top_all.php @@ -1,381 +1,386 @@ -query("SELECT uuid,name,count,idle,cldgroup,online FROM $dbname.user ORDER BY (count - idle) DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $texttime = $lang['sttw0013']; -} else { - $db_arr = $mysqlcon->query("SELECT uuid,name,count,idle,cldgroup,online FROM $dbname.user ORDER BY count DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $texttime = $lang['sttw0003']; -} -$sumentries = count($db_arr) - 10; -$count10 = 0; -$top10_sum = 0; -$top10_idle_sum = 0; - - -foreach ($db_arr as $uuid => $client) { - $sgroups = array_flip(explode(",", $client['cldgroup'])); - if (!isset($exceptuuid[$uuid]) && !array_intersect_key($sgroups, $exceptgroup)) { - if ($count10 == 10) break; - if ($substridle == 1) { - $hours = $client['count'] - $client['idle']; - } else { - $hours = $client['count']; - } - $top10_sum = round(($client['count']/3600)) + $top10_sum; - $top10_idle_sum = round(($client['idle']/3600)) + $top10_idle_sum; - $client_data[$count10] = array( - 'name' => $client['name'], - 'count' => $hours, - 'online' => $client['online'] - ); - $count10++; - } -} - -for($count10 = $count10; $count10 <= 10; $count10++) { - $client_data[$count10] = array( - 'name' => "unkown", - 'count' => "0", - 'online' => "0" - ); -} - -$sum = $mysqlcon->query("SELECT SUM(count) AS count, SUM(idle) AS idle FROM $dbname.user")->fetch(); -$others_sum = round(($sum['count']/3600)) - $top10_sum; -$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; - -function get_percentage($max_value, $value) { - return (round(($value/$max_value)*100)); -} -require_once('nav.php'); -?> -
- -
-
-
-

- - -

-
-
-
-
-
-
-
-
-

#1st

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-

#2nd

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-

#3rd

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
- #4th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
- #5th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
- #6th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #7th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #8th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #9th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #10th -
-
-
>
-
-
-
-
-
-
-
-
-
-

-

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-
-
-
-
-

-
-
-
-

 

-
-
-
-
-
-
-
- -
-
-

 

-
-
-
-
-
-
-
- -
-
-

 

-
-
-
-
-
-
-
-
-
-
-
- - - +query("SELECT `uuid`,`name`,`count`,`idle`,`cldgroup`,`online` FROM `$dbname`.`user` ORDER BY (`count` - `idle`) DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $texttime = $lang['sttw0013']; +} else { + $db_arr = $mysqlcon->query("SELECT `uuid`,`name`,`count`,`idle`,`cldgroup`,`online` FROM `$dbname`.`user` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $texttime = $lang['sttw0003']; +} +$sumentries = count($db_arr) - 10; +$count10 = 0; +$top10_sum = 0; +$top10_idle_sum = 0; + + +foreach ($db_arr as $uuid => $client) { + $sgroups = array_flip(explode(",", $client['cldgroup'])); + if (!isset($exceptuuid[$uuid]) && !array_intersect_key($sgroups, $exceptgroup)) { + if ($count10 == 10) break; + if ($substridle == 1) { + $hours = $client['count'] - $client['idle']; + } else { + $hours = $client['count']; + } + $top10_sum = round(($client['count']/3600)) + $top10_sum; + $top10_idle_sum = round(($client['idle']/3600)) + $top10_idle_sum; + $client_data[$count10] = array( + 'name' => $client['name'], + 'count' => $hours, + 'online' => $client['online'] + ); + $count10++; + } +} + +for($count10 = $count10; $count10 <= 10; $count10++) { + $client_data[$count10] = array( + 'name' => "unkown", + 'count' => "0", + 'online' => "0" + ); +} + +$sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle` FROM `$dbname`.`user`")->fetch(); +$others_sum = round(($sum['count']/3600)) - $top10_sum; +$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; + +function get_percentage($max_value, $value) { + return (round(($value/$max_value)*100)); +} +require_once('nav.php'); +?> +
+ +
+
+
+

+ + +

+
+
+
+
+
+
+
+
+

#1st

+

+
+
+
 
+
',$client_data[0]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+

#2nd

+

+
+
+
 
+
',$client_data[1]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+

#3rd

+

+
+
+
 
+
',$client_data[2]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #4th +
+
+
',$client_data[3]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+ #5th +
+
+
',$client_data[4]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+ #6th +
+
+
',$client_data[5]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #7th +
+
+
',$client_data[6]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #8th +
+
+
',$client_data[7]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #9th +
+
+
',$client_data[8]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #10th +
+
+
',$client_data[9]['name']; ?>
+
+
+
+
+
+
+
+
+
+

+

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+
+
+
+
+

+
+
+
+

 

+
+
+
+
+
+
+
+ +
+
+

 

+
+
+
+
+
+
+
+ +
+
+

 

+
+
+
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/stats/top_month.php b/stats/top_month.php index 8a63689..93c31b4 100644 --- a/stats/top_month.php +++ b/stats/top_month.php @@ -1,385 +1,390 @@ -query("SELECT s.uuid,s.count_month,s.idle_month,u.name,u.online,u.cldgroup FROM $dbname.stats_user AS s INNER JOIN $dbname.user AS u ON s.uuid = u.uuid WHERE s.removed='0' ORDER BY (s.count_month - s.idle_month) DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $texttime = $lang['sttw0013']; -} else { - $db_arr = $mysqlcon->query("SELECT s.uuid,s.count_month,s.idle_month,u.name,u.online,u.cldgroup FROM $dbname.stats_user AS s INNER JOIN $dbname.user AS u ON s.uuid = u.uuid WHERE s.removed='0' ORDER BY s.count_month DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $texttime = $lang['sttw0003']; -} - -$count_timestamps = $mysqlcon->query("SELECT COUNT(DISTINCT(timestamp)) as count from $dbname.user_snapshot;")->fetch(); - -$sumentries = count($db_arr) - 10; -$count10 = 0; -$top10_sum = 0; -$top10_idle_sum = 0; - -foreach ($db_arr as $uuid => $client) { - $sgroups = array_flip(explode(",", $client['cldgroup'])); - if (!isset($exceptuuid[$uuid]) && !array_intersect_key($sgroups, $exceptgroup)) { - if ($count10 == 10) break; - if ($substridle == 1) { - $hours = $client['count_month'] - $client['idle_month']; - } else { - $hours = $client['count_month']; - } - $top10_sum = round(($client['count_month']/3600)) + $top10_sum; - $top10_idle_sum = round(($client['idle_month']/3600)) + $top10_idle_sum; - $client_data[$count10] = array( - 'name' => $client['name'], - 'count' => $hours, - 'online' => $client['online'] - ); - $count10++; - } -} - -for($count10 = $count10; $count10 <= 10; $count10++) { - $client_data[$count10] = array( - 'name' => "unkown", - 'count' => "0", - 'online' => "0" - ); -} - -$sum = $mysqlcon->query("SELECT SUM(count_month) AS count, SUM(idle_month) AS idle FROM $dbname.stats_user")->fetch(); -$others_sum = round(($sum['count']/3600)) - $top10_sum; -$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; - -function get_percentage($max_value, $value) { - return (round(($value/$max_value)*100)); -} -require_once('nav.php'); -?> -
- -
-
-
-

- - -

-
-
- -
-
-
-
-
-
-

#1st

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-

#2nd

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-

#3rd

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
- #4th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
- #5th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
- #6th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #7th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #8th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #9th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #10th -
-
-
>
-
-
-
-
-
-
-
-
-
-

-

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-
-
-
-
-

-
-
-
-

 

-
-
-
-
-
-
-
- -
-
-

 

-
-
-
-
-
-
-
- -
-
-

 

-
-
-
-
-
-
-
-
- -
-
-
- - < - +query("SELECT `s`.`uuid`,`s`.`count_month`,`s`.`idle_month`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` AS `s` INNER JOIN `$dbname`.`user` AS `u` ON `s`.`uuid`=`u`.`uuid` WHERE `s`.`removed`='0' ORDER BY (`s`.`count_month` - `s`.`idle_month`) DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $texttime = $lang['sttw0013']; +} else { + $db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_month`,`s`.`idle_month`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` AS `s` INNER JOIN `$dbname`.`user` AS `u` ON `s`.`uuid`=`u`.`uuid` WHERE `s`.`removed`='0' ORDER BY `s`.`count_month` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $texttime = $lang['sttw0003']; +} + +$count_timestamps = $mysqlcon->query("SELECT COUNT(DISTINCT(`timestamp`)) AS `count` from `$dbname`.`user_snapshot`")->fetch(); + +$sumentries = count($db_arr) - 10; +$count10 = 0; +$top10_sum = 0; +$top10_idle_sum = 0; + +foreach ($db_arr as $uuid => $client) { + $sgroups = array_flip(explode(",", $client['cldgroup'])); + if (!isset($exceptuuid[$uuid]) && !array_intersect_key($sgroups, $exceptgroup)) { + if ($count10 == 10) break; + if ($substridle == 1) { + $hours = $client['count_month'] - $client['idle_month']; + } else { + $hours = $client['count_month']; + } + $top10_sum = round(($client['count_month']/3600)) + $top10_sum; + $top10_idle_sum = round(($client['idle_month']/3600)) + $top10_idle_sum; + $client_data[$count10] = array( + 'name' => $client['name'], + 'count' => $hours, + 'online' => $client['online'] + ); + $count10++; + } +} + +for($count10 = $count10; $count10 <= 10; $count10++) { + $client_data[$count10] = array( + 'name' => "unkown", + 'count' => "0", + 'online' => "0" + ); +} + +$sum = $mysqlcon->query("SELECT SUM(`count_month`) AS `count`, SUM(`idle_month`) AS `idle` FROM `$dbname`.`stats_user`")->fetch(); +$others_sum = round(($sum['count']/3600)) - $top10_sum; +$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; + +function get_percentage($max_value, $value) { + return (round(($value/$max_value)*100)); +} +require_once('nav.php'); +?> +
+ +
+
+
+

+ + +

+
+
+ +
+
+
+
+
+
+

#1st

+

+
+
+
 
+
',$client_data[0]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+

#2nd

+

+
+
+
 
+
',$client_data[1]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+

#3rd

+

+
+
+
 
+
',$client_data[2]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #4th +
+
+
',$client_data[3]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+ #5th +
+
+
',$client_data[4]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+ #6th +
+
+
',$client_data[5]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #7th +
+
+
',$client_data[6]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #8th +
+
+
',$client_data[7]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #9th +
+
+
',$client_data[8]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #10th +
+
+
',$client_data[9]['name']; ?>
+
+
+
+
+
+
+
+
+
+

+

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+
+
+
+
+

+
+
+
+

 

+
+
+
+
+
+
+
+ +
+
+

 

+
+
+
+
+
+
+
+ +
+
+

 

+
+
+
+
+
+
+
+
+ +
+
+
+ < + \ No newline at end of file diff --git a/stats/top_week.php b/stats/top_week.php index 18b5b0f..f6902c1 100644 --- a/stats/top_week.php +++ b/stats/top_week.php @@ -1,385 +1,390 @@ -query("SELECT s.uuid,s.count_week,s.idle_week,u.name,u.online,u.cldgroup FROM $dbname.stats_user AS s INNER JOIN $dbname.user AS u ON s.uuid = u.uuid WHERE s.removed='0' ORDER BY (s.count_week - s.idle_week) DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $texttime = $lang['sttw0013']; -} else { - $db_arr = $mysqlcon->query("SELECT s.uuid,s.count_week,s.idle_week,u.name,u.online,u.cldgroup FROM $dbname.stats_user AS s INNER JOIN $dbname.user AS u ON s.uuid = u.uuid WHERE s.removed='0' ORDER BY s.count_week DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - $texttime = $lang['sttw0003']; -} - -$count_timestamps = $mysqlcon->query("SELECT COUNT(DISTINCT(timestamp)) as count from $dbname.user_snapshot;")->fetch(); - -$sumentries = count($db_arr) - 10; -$count10 = 0; -$top10_sum = 0; -$top10_idle_sum = 0; - -foreach ($db_arr as $uuid => $client) { - $sgroups = array_flip(explode(",", $client['cldgroup'])); - if (!isset($exceptuuid[$uuid]) && !array_intersect_key($sgroups, $exceptgroup)) { - if ($count10 == 10) break; - if ($substridle == 1) { - $hours = $client['count_week'] - $client['idle_week']; - } else { - $hours = $client['count_week']; - } - $top10_sum = round(($client['count_week']/3600)) + $top10_sum; - $top10_idle_sum = round(($client['idle_week']/3600)) + $top10_idle_sum; - $client_data[$count10] = array( - 'name' => $client['name'], - 'count' => $hours, - 'online' => $client['online'] - ); - $count10++; - } -} - -for($count = $count10; $count10 < 10; $count10++) { - $client_data[$count] = array( - 'name' => "unkown", - 'count' => "0", - 'online' => "0" - ); -} - -$sum = $mysqlcon->query("SELECT SUM(count_week) AS count, SUM(idle_week) AS idle FROM $dbname.stats_user")->fetch(); -$others_sum = round(($sum['count']/3600)) - $top10_sum; -$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; - -function get_percentage($max_value, $value) { - return (round(($value/$max_value)*100)); -} -require_once('nav.php'); -?> -
- -
-
-
-

- - -

-
-
- -
-
-
-
-
-
-

#1st

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-

#2nd

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-

#3rd

-

-
-
-
 
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
- #4th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
- #5th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
- #6th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #7th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #8th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #9th -
-
-
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #10th -
-
-
>
-
-
-
-
-
-
-
-
-
-

-

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
-
-
-
-
-
-
-
-

-
-
-
-

 

-
-
-
-
-
-
-
- -
-
-

 

-
-
-
-
-
-
-
- -
-
-

 

-
-
-
-
-
-
-
-
- -
-
-
- - - +query("SELECT `s`.`uuid`,`s`.`count_week`,`s`.`idle_week`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` AS `s` INNER JOIN `$dbname`.`user` AS `u` ON `s`.`uuid`=`u`.`uuid` WHERE `s`.`removed`='0' ORDER BY (`s`.`count_week` - `s`.`idle_week`) DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $texttime = $lang['sttw0013']; +} else { + $db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_week`,`s`.`idle_week`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` AS `s` INNER JOIN `$dbname`.`user` AS `u` ON `s`.`uuid`=`u`.`uuid` WHERE `s`.`removed`='0' ORDER BY `s`.`count_week` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $texttime = $lang['sttw0003']; +} + +$count_timestamps = $mysqlcon->query("SELECT COUNT(DISTINCT(`timestamp`)) AS `count` from `$dbname`.`user_snapshot`")->fetch(); + +$sumentries = count($db_arr) - 10; +$count10 = 0; +$top10_sum = 0; +$top10_idle_sum = 0; + +foreach ($db_arr as $uuid => $client) { + $sgroups = array_flip(explode(",", $client['cldgroup'])); + if (!isset($exceptuuid[$uuid]) && !array_intersect_key($sgroups, $exceptgroup)) { + if ($count10 == 10) break; + if ($substridle == 1) { + $hours = $client['count_week'] - $client['idle_week']; + } else { + $hours = $client['count_week']; + } + $top10_sum = round(($client['count_week']/3600)) + $top10_sum; + $top10_idle_sum = round(($client['idle_week']/3600)) + $top10_idle_sum; + $client_data[$count10] = array( + 'name' => $client['name'], + 'count' => $hours, + 'online' => $client['online'] + ); + $count10++; + } +} + +for($count = $count10; $count10 < 10; $count10++) { + $client_data[$count] = array( + 'name' => "unkown", + 'count' => "0", + 'online' => "0" + ); +} + +$sum = $mysqlcon->query("SELECT SUM(`count_week`) AS `count`, SUM(`idle_week`) AS `idle` FROM `$dbname`.`stats_user`")->fetch(); +$others_sum = round(($sum['count']/3600)) - $top10_sum; +$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; + +function get_percentage($max_value, $value) { + return (round(($value/$max_value)*100)); +} +require_once('nav.php'); +?> +
+ +
+
+
+

+ + +

+
+
+ +
+
+
+
+
+
+

#1st

+

+
+
+
 
+
',$client_data[0]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+

#2nd

+

+
+
+
 
+
',$client_data[1]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+

#3rd

+

+
+
+
 
+
',$client_data[2]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #4th +
+
+
',$client_data[3]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+ #5th +
+
+
',$client_data[4]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+ #6th +
+
+
',$client_data[5]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #7th +
+
+
',$client_data[6]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #8th +
+
+
',$client_data[7]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #9th +
+
+
',$client_data[8]['name']; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #10th +
+
+
',$client_data[9]['name']; ?>
+
+
+
+
+
+
+
+
+
+

+

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+
+
+
+
+
+
+
+
+

+
+
+
+

 

+
+
+
+
+
+
+
+ +
+
+

 

+
+
+
+
+
+
+
+ +
+
+

 

+
+
+
+
+
+
+
+
+ +
+
+
+ + \ No newline at end of file diff --git a/stats/update_graph.php b/stats/update_graph.php new file mode 100644 index 0000000..cb057b0 --- /dev/null +++ b/stats/update_graph.php @@ -0,0 +1,44 @@ +query("SET @a:=0"); + +switch($_GET['serverusagechart']) { + case 'week': + $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,2) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 336")->fetchAll(PDO::FETCH_ASSOC); + break; + case 'month': + $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,4) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 720")->fetchAll(PDO::FETCH_ASSOC); + break; + case '3month': + $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,16) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 548")->fetchAll(PDO::FETCH_ASSOC); + break; + default: + $server_usage = $mysqlcon->query("SELECT `timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage` ORDER BY `timestamp` DESC LIMIT 96")->fetchAll(PDO::FETCH_ASSOC); +} + +$chart_data = array(); + +foreach($server_usage as $chart_value) { + $chart_data[] = array( + "y" => date('Y-m-d H:i',$chart_value['timestamp']), + "a" => $chart_value['clients'], + "b" => $chart_value['channel'] + ); +} + +echo json_encode($chart_data); +?> \ No newline at end of file diff --git a/stats/verify.php b/stats/verify.php index 6a918d0..a136321 100644 --- a/stats/verify.php +++ b/stats/verify.php @@ -1,204 +1,213 @@ -prepare("SELECT a.firstcon AS firstcon, b.total_connections AS total_connections FROM $dbname.user a INNER JOIN $dbname.stats_user b ON a.uuid = b.uuid WHERE b.uuid = :uuid"); - $dbdata->bindValue(':uuid', $_SESSION[$rspathhex.'tsuid'], PDO::PARAM_STR); - $dbdata->execute(); - $clientinfo = $dbdata->fetchAll(); - if ($clientinfo[0]['total_connections'] != NULL) { - $_SESSION[$rspathhex.'tsconnections'] = $clientinfo[0]['total_connections']; - } else { - $_SESSION[$rspathhex.'tsconnections'] = 0; - } - if ($clientinfo[0]['firstcon'] == 0) { - $_SESSION[$rspathhex.'tscreated'] = "unkown"; - } else { - $_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $clientinfo[0]['firstcon']); - } - $uuidasbase16 = ''; - for ($i = 0; $i < 20; $i++) { - $char = ord(substr(base64_decode($_SESSION[$rspathhex.'tsuid']), $i, 1)); - $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; - $uuidasbase16 .= $convert[$char & 0x0F]; - } - if (is_file('../avatars/' . $uuidasbase16 . '.png')) { - $_SESSION[$rspathhex.'tsavatar'] = $uuidasbase16 . '.png'; - } else { - $_SESSION[$rspathhex.'tsavatar'] = "none"; - } - $_SESSION[$rspathhex.'language'] = $language; - } else { - $err_msg = $lang['stve0006']; $err_lvl = 3; - } -} - -if(!isset($_SESSION[$rspathhex.'tsuid'])) { - set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid); -} - -if(isset($_SESSION[$rspathhex.'multiple'])) { - $multi_uuid = explode(',', substr($_SESSION[$rspathhex.'multiple'], 0, -1)); -} - -if($_SESSION[$rspathhex.'multiple'] == NULL && count($multi_uuid) < 2 && ($registercid == NULL || $registercid == 0)) { - $err_msg = $lang['verify0001']."

".$lang['verify0003']; - $err_lvl = 3; -} elseif($_SESSION[$rspathhex.'connected'] == 0 && $registercid != NULL && $registercid != 0) { - $err_msg = $lang['verify0001']; $err_lvl = 1; - $uuids = $mysqlcon->query("SELECT name,uuid FROM $dbname.user WHERE online='1' and cid='$registercid' ORDER BY name ASC")->fetchAll(); - foreach($uuids as $entry) { - $multiple_uuid[$entry['uuid']] = $entry['name']; - } -} elseif(count($multi_uuid) == 1 && $_SESSION[$rspathhex.'connected'] == 1) { - $err_msg = $lang['stve0005']; $err_lvl = 1; -} elseif(count($multi_uuid) > 1) { - $multi_uuid = explode(',', substr($_SESSION[$rspathhex.'multiple'], 0, -1)); - foreach ($multi_uuid as $entry) { - list($key, $value) = explode('=>', $entry); - $multiple_uuid[$key] = $value; - } -} else { - $err_msg = $lang['stve0006']; $err_lvl = 3; -} - -if(isset($_POST['uuid']) && !isset($_SESSION[$rspathhex.'temp_uuid'])) { - require_once('../libs/ts3_lib/TeamSpeak3.php'); - try { - $ts3 = TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0"); - - try { - usleep($slowmode); - $ts3->selfUpdate(array('client_nickname' => "Ranksystem - Verification")); - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - - try { - usleep($slowmode); - $allclients = $ts3->clientList(); - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - - foreach ($allclients as $client) { - if($client['client_unique_identifier'] == $_POST['uuid']) { - $cldbid = $client['client_database_id']; - $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); - $_SESSION[$rspathhex.'temp_uuid'] = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); - $_SESSION[$rspathhex.'temp_cldbid'] = $cldbid; - $_SESSION[$rspathhex.'temp_name'] = $nickname; - $pwd = substr(str_shuffle("abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"),0,6); - $_SESSION[$rspathhex.'token'] = $pwd; - $tokenlink = '[URL]http'.(!empty($_SERVER['HTTPS'])?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?token='.$pwd.'[/URL]'; - try { - $ts3->clientGetByUid($_SESSION[$rspathhex.'temp_uuid'])->message(sprintf($lang['stve0001'], $nickname, $tokenlink, $pwd)); - $err_msg = $lang['stve0002']; $err_lvl = 1; - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - break; - } - } - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } -} - -require_once('nav.php'); -?> -
- 1 || ($_SESSION[$rspathhex.'connected'] == 0 && $registercid != NULL && $registercid != 0)) { - ?> -
- -
- -
- - +prepare("SELECT `a`.`firstcon` AS `firstcon`, `b`.`total_connections` AS `total_connections` FROM `$dbname`.`user` `a` INNER JOIN `$dbname`.`stats_user` `b` ON `a`.`uuid`=`b`.`uuid` WHERE `b`.`uuid` = :uuid"); + $dbdata->bindValue(':uuid', $_SESSION[$rspathhex.'tsuid'], PDO::PARAM_STR); + $dbdata->execute(); + $clientinfo = $dbdata->fetchAll(); + if ($clientinfo[0]['total_connections'] != NULL) { + $_SESSION[$rspathhex.'tsconnections'] = $clientinfo[0]['total_connections']; + } else { + $_SESSION[$rspathhex.'tsconnections'] = 0; + } + if ($clientinfo[0]['firstcon'] == 0) { + $_SESSION[$rspathhex.'tscreated'] = "unkown"; + } else { + $_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $clientinfo[0]['firstcon']); + } + $uuidasbase16 = ''; + for ($i = 0; $i < 20; $i++) { + $char = ord(substr(base64_decode($_SESSION[$rspathhex.'tsuid']), $i, 1)); + $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; + $uuidasbase16 .= $convert[$char & 0x0F]; + } + if (is_file('../avatars/' . $uuidasbase16 . '.png')) { + $_SESSION[$rspathhex.'tsavatar'] = $uuidasbase16 . '.png'; + } else { + $_SESSION[$rspathhex.'tsavatar'] = "none"; + } + $_SESSION[$rspathhex.'language'] = $language; + } else { + $err_msg = $lang['stve0006']; $err_lvl = 3; + } +} + +if(isset($_SESSION[$rspathhex.'multiple'])) { + $multi_uuid = explode(',', substr($_SESSION[$rspathhex.'multiple'], 0, -1)); +} + +if($_SESSION[$rspathhex.'multiple'] == NULL && count($multi_uuid) < 2 && ($registercid == NULL || $registercid == 0)) { + $err_msg = $lang['verify0001']."

".$lang['verify0003']; + $err_lvl = 3; +} elseif($_SESSION[$rspathhex.'connected'] == 0 && $registercid != NULL && $registercid != 0) { + $err_msg = $lang['verify0001']; $err_lvl = 1; + $uuids = $mysqlcon->query("SELECT `name`,`uuid` FROM `$dbname`.`user` WHERE `online`='1' AND `cid`='$registercid' ORDER BY `name` ASC")->fetchAll(); + foreach($uuids as $entry) { + $multiple_uuid[$entry['uuid']] = $entry['name']; + } +} elseif(count($multi_uuid) == 1 && $_SESSION[$rspathhex.'connected'] == 1) { + $err_msg = $lang['stve0005']; $err_lvl = 1; +} elseif(count($multi_uuid) > 1) { + $multi_uuid = explode(',', substr($_SESSION[$rspathhex.'multiple'], 0, -1)); + foreach ($multi_uuid as $entry) { + list($key, $value) = explode('=>', $entry); + $multiple_uuid[$key] = $value; + } +} else { + $err_msg = $lang['stve0006']; $err_lvl = 3; +} + +if(isset($_POST['uuid']) && !isset($_SESSION[$rspathhex.'temp_uuid']) && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + require_once('../libs/ts3_lib/TeamSpeak3.php'); + try { + $ts3 = TeamSpeak3::factory("serverquery://".rawurlencode($ts['user']).":".rawurlencode($ts['pass'])."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0"); + + try { + usleep($slowmode); + $ts3->selfUpdate(array('client_nickname' => "Ranksystem - Verification")); + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; + } + + try { + usleep($slowmode); + $allclients = $ts3->clientList(); + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; + } + + foreach ($allclients as $client) { + if($client['client_unique_identifier'] == $_POST['uuid']) { + $cldbid = $client['client_database_id']; + $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); + $_SESSION[$rspathhex.'temp_uuid'] = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); + $_SESSION[$rspathhex.'temp_cldbid'] = $cldbid; + $_SESSION[$rspathhex.'temp_name'] = $nickname; + $pwd = substr(str_shuffle("abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"),0,6); + $_SESSION[$rspathhex.'token'] = $pwd; + $tokenlink = '[URL]http'.(!empty($_SERVER['HTTPS'])?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?token='.$pwd.'[/URL]'; + try { + $ts3->clientGetByUid($_SESSION[$rspathhex.'temp_uuid'])->message(sprintf($lang['stve0001'], $nickname, $tokenlink, $pwd)); + $err_msg = $lang['stve0002']; $err_lvl = 1; + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; + } + break; + } + } + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; + } +} + +if(!isset($_SESSION[$rspathhex.'tsuid'])) { + set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid); +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); + +require_once('nav.php'); +?> +
+ 1 || ($_SESSION[$rspathhex.'connected'] == 0 && $registercid != NULL && $registercid != 0)) { + ?> +
+ +
+ +
+ + \ No newline at end of file diff --git a/stats/versions.php b/stats/versions.php index c757c72..4c4fe32 100644 --- a/stats/versions.php +++ b/stats/versions.php @@ -1,87 +1,87 @@ -query("SELECT * FROM $dbname.stats_versions ORDER BY count DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - -require_once('nav.php'); -?> -
- -
-
-
-

- -

-
-
-
-
-
- - - - - - - - - $value) { - $sum_of_all = $sum_of_all + $value['count']; -} -foreach ($sql_res as $version => $value) { - $count++; - echo ' - - - - - - '; -} -?> - -
#
',$count,'',$version,'',$value['count'],'',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %
-
-
-
-
-
- - +query("SELECT * FROM `$dbname`.`stats_versions` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + +require_once('nav.php'); +?> +
+ +
+
+
+

+ +

+
+
+
+
+
+ + + + + + + + + $value) { + $sum_of_all = $sum_of_all + $value['count']; +} +foreach ($sql_res as $version => $value) { + $count++; + echo ' + + + + + + '; +} +?> + +
#
',$count,'',$version,'',$value['count'],'',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %
+
+
+
+
+
+ + \ No newline at end of file diff --git a/webinterface/addon_assign_groups.php b/webinterface/addon_assign_groups.php index f312623..5ef2af9 100644 --- a/webinterface/addon_assign_groups.php +++ b/webinterface/addon_assign_groups.php @@ -1,196 +1,206 @@ -exec("UPDATE $dbname.addons_config SET value = CASE param WHEN 'assign_groups_active' THEN '$assign_groups_active' WHEN 'assign_groups_limit' THEN '$assign_groups_limit' WHEN 'assign_groups_groupids' THEN '$assign_groups_groupids' END WHERE param IN ('assign_groups_active','assign_groups_groupids','assign_groups_limit')") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']; - $err_lvl = NULL; - } - $addons_config['assign_groups_groupids']['value'] = $_POST['assign_groups_groupids']; - $addons_config['assign_groups_limit']['value'] = $_POST['assign_groups_limit']; - $addons_config['assign_groups_active']['value'] = $assign_groups_active; -} -?> -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
-
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
 
-
 
-
- -
- -
*
-
-
-
-
- -
- - -
-
-
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
-
- - - - - - +exec("UPDATE `$dbname`.`addons_config` SET `value` = CASE `param` WHEN 'assign_groups_active' THEN '$assign_groups_active' WHEN 'assign_groups_limit' THEN '$assign_groups_limit' WHEN 'assign_groups_groupids' THEN '$assign_groups_groupids' END WHERE `param` IN ('assign_groups_active','assign_groups_groupids','assign_groups_limit')") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']; + $err_lvl = NULL; + } + $addons_config['assign_groups_groupids']['value'] = $_POST['assign_groups_groupids']; + $addons_config['assign_groups_limit']['value'] = $_POST['assign_groups_limit']; + $addons_config['assign_groups_active']['value'] = $assign_groups_active; +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+
+
+
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
 
+
 
+
+ +
+ +
*
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/webinterface/admin.php b/webinterface/admin.php index 219c1af..c3f4dc2 100644 --- a/webinterface/admin.php +++ b/webinterface/admin.php @@ -1,240 +1,257 @@ -query("SELECT uuid,cldbid,name FROM $dbname.user WHERE 1=1$filter ORDER BY name ASC")) === false) { - $err_msg = "DB Error: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; -} -$user_arr = $dbuserdata->fetchAll(PDO::FETCH_ASSOC); - -if (isset($_POST['update']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { - $setontime = 0; - if($_POST['setontime_day']) { $setontime = $setontime + $_POST['setontime_day'] * 86400; } - if($_POST['setontime_hour']) { $setontime = $setontime + $_POST['setontime_hour'] * 3600; } - if($_POST['setontime_min']) { $setontime = $setontime + $_POST['setontime_min'] * 60; } - if($_POST['setontime_sec']) { $setontime = $setontime + $_POST['setontime_sec']; } - if($setontime == 0) { - $err_msg = $lang['errseltime']; $err_lvl = 3; - } elseif($_POST['user'] == NULL) { - $err_msg = $lang['errselusr']; $err_lvl = 3; - } else { - $allupdateuuid = ''; - foreach($_POST['user'] as $user) { - $allupdateuuid .= "'".$user."',"; - } - $allupdateuuid = substr($allupdateuuid, 0, -1); - if($mysqlcon->exec("UPDATE $dbname.user set count = count + $setontime WHERE uuid IN ($allupdateuuid)") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } else { - if($mysqlcon->exec("UPDATE $dbname.user_snapshot set count = count + $setontime WHERE uuid IN ($allupdateuuid)") === false) { } - $err_msg = sprintf($lang['sccupcount'],$setontime,$allupdateuuid); $err_lvl = NULL; - } - } -} -?> -
- -
-
-
-

- -

-
-
- -
-
-
-
-
-
-
-
-
- -
- -
-
-
- -
- -
-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- - -
-
-
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
-
- - - - - - +query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` WHERE $filter ORDER BY `name` ASC")) === false) { + $err_msg = "DB Error: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; +} +$user_arr = $dbuserdata->fetchAll(PDO::FETCH_ASSOC); + +if (isset($_POST['update']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip() && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + $setontime = 0; + if($_POST['setontime_day']) { $setontime = $setontime + $_POST['setontime_day'] * 86400; } + if($_POST['setontime_hour']) { $setontime = $setontime + $_POST['setontime_hour'] * 3600; } + if($_POST['setontime_min']) { $setontime = $setontime + $_POST['setontime_min'] * 60; } + if($_POST['setontime_sec']) { $setontime = $setontime + $_POST['setontime_sec']; } + if($setontime == 0) { + $err_msg = $lang['errseltime']; $err_lvl = 3; + } elseif($_POST['user'] == NULL) { + $err_msg = $lang['errselusr']; $err_lvl = 3; + } else { + $allinsertdata = ''; + $succmsg = ''; + $nowtime = time(); + foreach($_POST['user'] as $uuid) { + $allinsertdata .= "('".$uuid."', ".$nowtime.", ".$setontime."),"; + $succmsg .= sprintf($lang['sccupcount'],$setontime,$uuid)."
"; + } + $allinsertdata = substr($allinsertdata, 0, -1); + if($mysqlcon->exec("INSERT INTO `$dbname`.`admin_addtime` (`uuid`,`timestamp`,`timecount`) VALUES $allinsertdata;") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; + } else { + $err_msg = substr($succmsg,0,-4); $err_lvl = NULL; + } + } +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/webinterface/bot.php b/webinterface/bot.php index 74cd2b5..c2328c2 100644 --- a/webinterface/bot.php +++ b/webinterface/bot.php @@ -1,364 +1,385 @@ -$number_lines) { - break; - } - continue; - } - foreach($filters as $filter) { - if(($filter != NULL && strstr($line, $filter) && $filter2 == NULL) || ($filter2 != NULL && strstr($line, $filter2) && $filter != NULL && strstr($line, $filter))) { - if($filter == "CRITICAL" || $filter == "ERROR") { - array_push($lines, ''.$line.''); - } else { - array_push($lines, $line); - } - $lastfilter = $filter; - if (count($lines)>$number_lines) { - break 2; - } - continue; - } elseif($inactivefilter != NULL) { - foreach($inactivefilter as $defilter) { - if($defilter != NULL && strstr($line, $defilter)) { - $lastfilter = $defilter; - continue; - } - } - continue; - } - } - } - } else { - $lines[] = "No log entry found...\n"; - $lines[] = "The logfile will be created with next startup.\n"; - } - return $lines; -} - -$number_lines = 20; -if (isset($_POST['number'])) { - if($_POST['number'] == 20) { - $number_lines = 20; - } elseif($_POST['number'] == 50) { - $number_lines = 50; - } elseif($_POST['number'] == 100) { - $number_lines = 100; - } elseif($_POST['number'] == 200) { - $number_lines = 200; - } elseif($_POST['number'] == 500) { - $number_lines = 500; - } elseif($_POST['number'] == 9999) { - $number_lines = 9999; - } else { - $number_lines = 20; - } - $_SESSION[$rspathhex.'number_lines'] = $number_lines; -} elseif (isset($_SESSION[$rspathhex.'number_lines'])) { - $number_lines = $_SESSION[$rspathhex.'number_lines']; -} - -if(isset($_SESSION[$rspathhex.'logfilter2'])) { - $filter2 = $_SESSION[$rspathhex.'logfilter2']; -} else { - $filter2 = ''; -} -$filters = ''; -$inactivefilter = ''; -if(isset($_POST['logfilter']) && in_array('critical', $_POST['logfilter'])) { - $filters .= "CRITICAL,"; -} elseif(isset($_POST['logfilter'])) { - $inactivefilter .= "CRITICAL,"; -} -if(isset($_POST['logfilter']) && in_array('error', $_POST['logfilter'])) { - $filters .= "ERROR,"; -} elseif(isset($_POST['logfilter'])) { - $inactivefilter .= "ERROR,"; -} -if(isset($_POST['logfilter']) && in_array('warning', $_POST['logfilter'])) { - $filters .= "WARNING,"; -} elseif(isset($_POST['logfilter'])) { - $inactivefilter .= "WARNING,"; -} -if(isset($_POST['logfilter']) && in_array('notice', $_POST['logfilter'])) { - $filters .= "NOTICE,"; -} elseif(isset($_POST['logfilter'])) { - $inactivefilter .= "NOTICE,"; -} -if(isset($_POST['logfilter']) && in_array('info', $_POST['logfilter'])) { - $filters .= "INFO,"; -} elseif(isset($_POST['logfilter'])) { - $inactivefilter .= "INFO,"; -} -if(isset($_POST['logfilter']) && in_array('debug', $_POST['logfilter'])) { - $filters .= "DEBUG,"; -} elseif(isset($_POST['logfilter'])) { - $inactivefilter .= "DEBUG,"; -} -if(isset($_POST['logfilter'][0])) { - $filter2 = htmlspecialchars($_POST['logfilter'][0]); - $_SESSION[$rspathhex.'logfilter2'] = $filter2; -} - -if($filters != '') { - $_SESSION[$rspathhex.'logfilter'] = $filters; -} - -if($inactivefilter != '') { - $_SESSION[$rspathhex.'inactivefilter'] = $inactivefilter; -} -if(isset($_SESSION[$rspathhex.'inactivefilter']) && $_SESSION[$rspathhex.'inactivefilter'] != NULL) { - $inactivefilter = explode(',', $_SESSION[$rspathhex.'inactivefilter']); -} - -if (!isset($_SESSION[$rspathhex.'logfilter'])) { - $_SESSION[$rspathhex.'logfilter'] = "CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG"; -} - -$filters = explode(',', $_SESSION[$rspathhex.'logfilter']); - - -if (isset($_POST['logout'])) { - echo "logout"; - rem_session_ts3($rspathhex); - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); - exit; -} - -if (!isset($_SESSION[$rspathhex.'username']) || $_SESSION[$rspathhex.'username'] != $webuser || $_SESSION[$rspathhex.'password'] != $webpass || $_SESSION[$rspathhex.'clientip'] != getclientip()) { - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); - exit; -} - -require_once('nav.php'); -$logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); - -if (isset($_POST['start']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { - if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { - $err_msg = "!!!! Logs folder is not writable !!!!
Cancel start request!"; $err_lvl = 3; - } else { - if (substr(php_uname(), 0, 7) == "Windows") { - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."\worker.php start", 0, false); - if (file_exists(substr(__DIR__,0,-12)."\logs\autostart_deactivated")) { - unlink(substr(__DIR__,0,-12)."\logs\autostart_deactivated"); - } - } else { - exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); - if (file_exists(substr(__DIR__,0,-12)."logs/autostart_deactivated")) { - unlink(substr(__DIR__,0,-12)."logs/autostart_deactivated"); - } - } - $err_msg = $lang['wibot2']; - $err_lvl = 1; - usleep(80000); - $logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); - } -} - -if (isset($_POST['stop']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { - if (substr(php_uname(), 0, 7) == "Windows") { - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."\worker.php stop", 0, false); - file_put_contents(substr(__DIR__,0,-12)."\logs\autostart_deactivated"); - } else { - exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php stop"); - file_put_contents(substr(__DIR__,0,-12)."logs/autostart_deactivated"); - } - $err_msg = $lang['wibot1']; - $err_lvl = 1; - usleep(80000); - $logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); -} - -if (isset($_POST['restart']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { - if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { - $err_msg = "!!!! Logs folder is not writable !!!!
Cancel restart request!"; $err_lvl = 3; - } else { - if (substr(php_uname(), 0, 7) == "Windows") { - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."\worker.php restart", 0, false); - if (file_exists(substr(__DIR__,0,-12)."\logs\autostart_deactivated")) { - unlink(substr(__DIR__,0,-12)."\logs\autostart_deactivated"); - } - } else { - exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php restart"); - if (file_exists(substr(__DIR__,0,-12)."logs/autostart_deactivated")) { - unlink(substr(__DIR__,0,-12)."logs/autostart_deactivated"); - } - } - $err_msg = $lang['wibot3']; - $err_lvl = 1; - usleep(80000); - $logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); - } -} - -$disabled = ''; -if($ts['host'] == NULL || $ts['query'] == NULL || $ts['voice'] == NULL || $ts['user'] == NULL || $ts['pass'] == NULL || $queryname == NULL || $queryname2 == NULL || $grouptime == NULL || $logpath == NULL) { - $disabled = 1; - $err_msg = $lang['wibot9']; - $err_lvl = 2; -} -?> -
- -
-
-
-

- -

-
-
-
-
 
-
-
- -
-
-
 
-
-
-
 
-
-
- -
-
-
 
-
-
-
 
-
-
- -
-
-
 
-
-
 
-
-
-

- -

-
-
-
-
- - - - - -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
- - +$number_lines) { + break; + } + continue; + } + foreach($filters as $filter) { + if(($filter != NULL && strstr($line, $filter) && $filter2 == NULL) || ($filter2 != NULL && strstr($line, $filter2) && $filter != NULL && strstr($line, $filter))) { + if($filter == "CRITICAL" || $filter == "ERROR") { + array_push($lines, ''.$line.''); + } else { + array_push($lines, $line); + } + $lastfilter = $filter; + if (count($lines)>$number_lines) { + break 2; + } + continue; + } elseif($inactivefilter != NULL) { + foreach($inactivefilter as $defilter) { + if($defilter != NULL && strstr($line, $defilter)) { + $lastfilter = $defilter; + continue; + } + } + continue; + } + } + } + } else { + $lines[] = "No log entry found...\n"; + $lines[] = "The logfile will be created with next startup.\n"; + } + return $lines; +} + +$number_lines = 20; +if (isset($_POST['number'])) { + if($_POST['number'] == 20) { + $number_lines = 20; + } elseif($_POST['number'] == 50) { + $number_lines = 50; + } elseif($_POST['number'] == 100) { + $number_lines = 100; + } elseif($_POST['number'] == 200) { + $number_lines = 200; + } elseif($_POST['number'] == 500) { + $number_lines = 500; + } elseif($_POST['number'] == 9999) { + $number_lines = 9999; + } else { + $number_lines = 20; + } + $_SESSION[$rspathhex.'number_lines'] = $number_lines; +} elseif (isset($_SESSION[$rspathhex.'number_lines'])) { + $number_lines = $_SESSION[$rspathhex.'number_lines']; +} + +if(isset($_SESSION[$rspathhex.'logfilter2'])) { + $filter2 = $_SESSION[$rspathhex.'logfilter2']; +} else { + $filter2 = ''; +} +$filters = ''; +$inactivefilter = ''; +if(isset($_POST['logfilter']) && in_array('critical', $_POST['logfilter'])) { + $filters .= "CRITICAL,"; +} elseif(isset($_POST['logfilter'])) { + $inactivefilter .= "CRITICAL,"; +} +if(isset($_POST['logfilter']) && in_array('error', $_POST['logfilter'])) { + $filters .= "ERROR,"; +} elseif(isset($_POST['logfilter'])) { + $inactivefilter .= "ERROR,"; +} +if(isset($_POST['logfilter']) && in_array('warning', $_POST['logfilter'])) { + $filters .= "WARNING,"; +} elseif(isset($_POST['logfilter'])) { + $inactivefilter .= "WARNING,"; +} +if(isset($_POST['logfilter']) && in_array('notice', $_POST['logfilter'])) { + $filters .= "NOTICE,"; +} elseif(isset($_POST['logfilter'])) { + $inactivefilter .= "NOTICE,"; +} +if(isset($_POST['logfilter']) && in_array('info', $_POST['logfilter'])) { + $filters .= "INFO,"; +} elseif(isset($_POST['logfilter'])) { + $inactivefilter .= "INFO,"; +} +if(isset($_POST['logfilter']) && in_array('debug', $_POST['logfilter'])) { + $filters .= "DEBUG,"; +} elseif(isset($_POST['logfilter'])) { + $inactivefilter .= "DEBUG,"; +} +if(isset($_POST['logfilter'][0])) { + $filter2 = htmlspecialchars($_POST['logfilter'][0]); + $_SESSION[$rspathhex.'logfilter2'] = $filter2; +} + +if($filters != '') { + $_SESSION[$rspathhex.'logfilter'] = $filters; +} + +if($inactivefilter != '') { + $_SESSION[$rspathhex.'inactivefilter'] = $inactivefilter; +} +if(isset($_SESSION[$rspathhex.'inactivefilter']) && $_SESSION[$rspathhex.'inactivefilter'] != NULL) { + $inactivefilter = explode(',', $_SESSION[$rspathhex.'inactivefilter']); +} + +if (!isset($_SESSION[$rspathhex.'logfilter'])) { + $_SESSION[$rspathhex.'logfilter'] = "CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG"; +} + +$filters = explode(',', $_SESSION[$rspathhex.'logfilter']); + + +if (isset($_POST['logout'])) { + echo "logout"; + rem_session_ts3($rspathhex); + header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + exit; +} + +if (!isset($_SESSION[$rspathhex.'username']) || $_SESSION[$rspathhex.'username'] != $webuser || $_SESSION[$rspathhex.'password'] != $webpass || $_SESSION[$rspathhex.'clientip'] != getclientip()) { + rem_session_ts3($rspathhex); + header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + exit; +} + +if ((isset($_POST['start']) || isset($_POST['stop']) || isset($_POST['restart']) || isset($_POST['logfilter'])) && $_POST['csrf_token'] != $_SESSION[$rspathhex.'csrf_token']) { + echo $lang['errcsrf']; + rem_session_ts3($rspathhex); + exit; +} + +require_once('nav.php'); +$logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); + +if (isset($_POST['start']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip() && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { + $err_msg = "!!!! Logs folder is not writable !!!!
Cancel start request!"; $err_lvl = 3; + } else { + if (substr(php_uname(), 0, 7) == "Windows") { + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."\worker.php start", 0, false); + if (file_exists(substr(__DIR__,0,-12)."\logs\autostart_deactivated")) { + unlink(substr(__DIR__,0,-12)."\logs\autostart_deactivated"); + } + } else { + exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); + if (file_exists(substr(__DIR__,0,-12)."logs/autostart_deactivated")) { + unlink(substr(__DIR__,0,-12)."logs/autostart_deactivated"); + } + } + $err_msg = $lang['wibot2']; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); + } +} + +if (isset($_POST['stop']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip() && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + if (substr(php_uname(), 0, 7) == "Windows") { + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."\worker.php stop", 0, false); + file_put_contents(substr(__DIR__,0,-12)."\logs\autostart_deactivated"); + } else { + exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php stop"); + file_put_contents(substr(__DIR__,0,-12)."logs/autostart_deactivated"); + } + $err_msg = $lang['wibot1']; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); +} + +if (isset($_POST['restart']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip() && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { + $err_msg = "!!!! Logs folder is not writable !!!!
Cancel restart request!"; $err_lvl = 3; + } else { + if (substr(php_uname(), 0, 7) == "Windows") { + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."\worker.php restart", 0, false); + if (file_exists(substr(__DIR__,0,-12)."\logs\autostart_deactivated")) { + unlink(substr(__DIR__,0,-12)."\logs\autostart_deactivated"); + } + } else { + exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php restart"); + if (file_exists(substr(__DIR__,0,-12)."logs/autostart_deactivated")) { + unlink(substr(__DIR__,0,-12)."logs/autostart_deactivated"); + } + } + $err_msg = $lang['wibot3']; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($logpath,$number_lines,$filters,$filter2,$inactivefilter); + } +} + +$disabled = ''; +if($ts['host'] == NULL || $ts['query'] == NULL || $ts['voice'] == NULL || $ts['user'] == NULL || $ts['pass'] == NULL || $queryname == NULL || $queryname2 == NULL || $grouptime == NULL || $logpath == NULL) { + $disabled = 1; + $err_msg = $lang['wibot9']; + $err_lvl = 2; +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); +?> +
+ +
+
+
+

+ +

+
+
+
+ +
 
+
+
+ +
+
+
 
+
+
+ +
 
+
+
+ +
+
+
 
+
+
+ +
 
+
+
+ +
+
+
 
+
+
 
+
+
+

+ +

+
+
+ +
+
+ + + + + +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/webinterface/changepassword.php b/webinterface/changepassword.php index 2ee66f6..e08468a 100644 --- a/webinterface/changepassword.php +++ b/webinterface/changepassword.php @@ -1,132 +1,149 @@ -setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; - $loghandle = fopen($file, 'a'); - fwrite($loghandle, $input); - if (filesize($file) > 5242880) { - 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,-12).'logs/pid'); - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."worker.php start", 0, false); - exit; - } else { - exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); - exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); - exit; - } - } -} - -function getclientip() { - if (!empty($_SERVER['HTTP_CLIENT_IP'])) - return $_SERVER['HTTP_CLIENT_IP']; - elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) - return $_SERVER['HTTP_X_FORWARDED_FOR']; - elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) - return $_SERVER['HTTP_X_FORWARDED']; - elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) - return $_SERVER['HTTP_FORWARDED_FOR']; - elseif(!empty($_SERVER['HTTP_FORWARDED'])) - return $_SERVER['HTTP_FORWARDED']; - elseif(!empty($_SERVER['REMOTE_ADDR'])) - return $_SERVER['REMOTE_ADDR']; - else - return false; -} - -if (isset($_POST['logout'])) { - rem_session_ts3($rspathhex); - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); - exit; -} - -if (!isset($_SESSION[$rspathhex.'username']) || $_SESSION[$rspathhex.'username'] != $webuser || $_SESSION[$rspathhex.'password'] != $webpass || $_SESSION[$rspathhex.'clientip'] != getclientip()) { - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); - exit; -} - -require_once('nav.php'); - -if (isset($_POST['changepw']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip()) { - $newpass = password_hash($_POST['newpwd1'], PASSWORD_DEFAULT); - if (!password_verify($_POST['oldpwd'], $webpass)) { - $err_msg = $lang['wichpw1']; $err_lvl = 3; - } elseif ($_POST['newpwd1'] != $_POST['newpwd2'] || $_POST['newpwd1'] == NULL) { - $err_msg = $lang['wichpw2']; $err_lvl = 3; - } elseif ($mysqlcon->exec("UPDATE $dbname.config set webpass='$newpass'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } else { - enter_logfile($logpath,$timezone,3,sprintf($lang['wichpw3'],getclientip())); - $err_msg = $lang['wisvsuc']; $err_lvl = NULL; - } -} -?> -
- -
- -
-
- - +setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; + $loghandle = fopen($file, 'a'); + fwrite($loghandle, $input); + if (filesize($file) > 5242880) { + 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,-12).'logs/pid'); + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."worker.php start", 0, false); + exit; + } else { + exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); + exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); + exit; + } + } +} + +function getclientip() { + if (!empty($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) + return $_SERVER['HTTP_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_FORWARDED'])) + return $_SERVER['HTTP_FORWARDED']; + elseif(!empty($_SERVER['REMOTE_ADDR'])) + return $_SERVER['REMOTE_ADDR']; + else + return false; +} + +if (isset($_POST['logout'])) { + rem_session_ts3($rspathhex); + header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + exit; +} + +if (!isset($_SESSION[$rspathhex.'username']) || $_SESSION[$rspathhex.'username'] != $webuser || $_SESSION[$rspathhex.'password'] != $webpass || $_SESSION[$rspathhex.'clientip'] != getclientip()) { + header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + exit; +} + +if (isset($_POST['changepw']) && $_POST['csrf_token'] != $_SESSION[$rspathhex.'csrf_token']) { + echo $lang['errcsrf']; + rem_session_ts3($rspathhex); + exit; +} + +require_once('nav.php'); + +if (isset($_POST['changepw']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass && $_SESSION[$rspathhex.'clientip'] == getclientip() && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + $newpass = password_hash($_POST['newpwd1'], PASSWORD_DEFAULT); + if (!password_verify($_POST['oldpwd'], $webpass)) { + $err_msg = $lang['wichpw1']; $err_lvl = 3; + } elseif ($_POST['newpwd1'] != $_POST['newpwd2'] || $_POST['newpwd1'] == NULL) { + $err_msg = $lang['wichpw2']; $err_lvl = 3; + } elseif ($mysqlcon->exec("UPDATE `$dbname`.`config` SET `webpass`='$newpass'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; + } else { + enter_logfile($logpath,$timezone,3,sprintf($lang['wichpw3'],getclientip())); + $err_msg = $lang['wisvsuc']; $err_lvl = NULL; + } +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); +?> +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/webinterface/core.php b/webinterface/core.php index 5342f85..ad18b1c 100644 --- a/webinterface/core.php +++ b/webinterface/core.php @@ -1,493 +1,511 @@ -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(empty($_POST['boost'])) { - $boostarr = null; - } else { - $boostarr = null; - foreach (explode(',', $_POST['boost']) as $entry) { - list($key, $value1, $value2) = explode('=>', $entry); - $boostarr[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); - } - } - if(empty($_POST['grouptime'])) { - $grouparr = null; - } else { - foreach (explode(',', $_POST['grouptime']) as $entry) { - list($time, $groupid) = explode('=>', $entry); - $grouparr[$groupid] = $time; - } - } - - $err_msg = ''; - $errcnf = 0; - if(isset($groupslist) && $groupslist != NULL) { - foreach($grouparr as $groupid => $time) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
'; - $err_lvl = 3; - $errcnf++; - } - } - foreach($boostarr as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wiboost']).'
'; - $err_lvl = 3; - $errcnf++; - } - } - foreach(array_flip(explode(',', $_POST['exceptgroup'])) as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wiexgrp']).'
'; - $err_lvl = 3; - $errcnf++; - } - } - } - unset($groupslist); - - - $substridle = $_POST['substridle']; - $exceptuuid = $_POST['exceptuuid']; - $exceptgroup = $_POST['exceptgroup']; - $exceptcid = $_POST['exceptcid']; - $grouptime = $_POST['grouptime']; - $ignoreidle = $_POST['ignoreidle']; - $resetexcept = $_POST['resetexcept']; - if (isset($_POST['resetbydbchange'])) $resetbydbchange = 1; else $resetbydbchange = 0; - if (isset($_POST['cleanclients'])) $cleanclients = 1; else $cleanclients = 0; - $cleanperiod = $_POST['cleanperiod']; - $boost = $_POST['boost']; - if($_POST['registercid'] == NULL) { - $registercid = 0; - } else { - $registercid = $_POST['registercid']; - } - if($errcnf == 0) { - if ($mysqlcon->exec("UPDATE $dbname.config set substridle='$substridle',exceptuuid='$exceptuuid',exceptgroup='$exceptgroup',exceptcid='$exceptcid',grouptime='$grouptime',ignoreidle='$ignoreidle',resetbydbchange='$resetbydbchange',cleanclients='$cleanclients',cleanperiod='$cleanperiod',boost='$boost',resetexcept='$resetexcept',registercid='$registercid'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); - $err_lvl = NULL; - } - } else { - $err_msg .= "
".$lang['errgrpid']; - } - $config['grouptime'] = $_POST['grouptime']; - $config['exceptuuid'] = $_POST['exceptuuid']; - $config['exceptgroup'] = $_POST['exceptgroup']; - $config['exceptcid'] = $_POST['exceptcid']; - $config['boost'] = $_POST['boost']; -} -?> -
- -
-
-
-

-
-
-
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
- -
- -
-
-
-
- -
- -
-
-
-
- -
- -
-
-
-
-
-
 
-
- -
- -
*
-
-
-
-
-
-
- -
- - -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
 
-
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
 
-
- -
- - -
-
-
-
-
 
-
 
-
- -
- - -
-
-
 
-
 
-
- -
- -
-
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
- - - - - - - - - - - - - - - - +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(empty($_POST['boost'])) { + $boostarr = null; + } else { + $boostarr = null; + foreach (explode(',', $_POST['boost']) as $entry) { + list($key, $value1, $value2) = explode('=>', $entry); + $boostarr[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); + } + } + if(empty($_POST['grouptime'])) { + $grouparr = null; + } else { + foreach (explode(',', $_POST['grouptime']) as $entry) { + list($time, $groupid) = explode('=>', $entry); + $grouparr[$groupid] = $time; + } + } + + $err_msg = ''; + $errcnf = 0; + if(isset($groupslist) && $groupslist != NULL) { + foreach($grouparr as $groupid => $time) { + if(!isset($groupslist[$groupid]) && $groupid != NULL) { + $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
'; + $err_lvl = 3; + $errcnf++; + } + } + foreach($boostarr as $groupid => $value) { + if(!isset($groupslist[$groupid]) && $groupid != NULL) { + $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wiboost']).'
'; + $err_lvl = 3; + $errcnf++; + } + } + foreach(array_flip(explode(',', $_POST['exceptgroup'])) as $groupid => $value) { + if(!isset($groupslist[$groupid]) && $groupid != NULL) { + $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wiexgrp']).'
'; + $err_lvl = 3; + $errcnf++; + } + } + } + unset($groupslist); + + + $substridle = $_POST['substridle']; + $exceptuuid = $_POST['exceptuuid']; + $exceptgroup = $_POST['exceptgroup']; + $exceptcid = $_POST['exceptcid']; + $grouptime = $_POST['grouptime']; + $ignoreidle = $_POST['ignoreidle']; + $resetexcept = $_POST['resetexcept']; + if (isset($_POST['resetbydbchange'])) $resetbydbchange = 1; else $resetbydbchange = 0; + if (isset($_POST['cleanclients'])) $cleanclients = 1; else $cleanclients = 0; + $cleanperiod = $_POST['cleanperiod']; + $boost = $_POST['boost']; + if($_POST['registercid'] == NULL) { + $registercid = 0; + } else { + $registercid = $_POST['registercid']; + } + if($errcnf == 0) { + if ($mysqlcon->exec("UPDATE `$dbname`.`config` SET `substridle`='$substridle',`exceptuuid`='$exceptuuid',`exceptgroup`='$exceptgroup',`exceptcid`='$exceptcid',`grouptime`='$grouptime',`ignoreidle`='$ignoreidle',`resetbydbchange`='$resetbydbchange',`cleanclients`='$cleanclients',`cleanperiod`='$cleanperiod',`boost`='$boost',`resetexcept`='$resetexcept',`registercid`='$registercid'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); + $err_lvl = NULL; + } + } else { + $err_msg .= "
".$lang['errgrpid']; + } + $config['grouptime'] = $_POST['grouptime']; + $config['exceptuuid'] = $_POST['exceptuuid']; + $config['exceptgroup'] = $_POST['exceptgroup']; + $config['exceptcid'] = $_POST['exceptcid']; + $config['boost'] = $_POST['boost']; +} + +$_SESSION[$rspathhex.'csrf_token'] = $newcsrf; +?> +
+ +
+
+
+

+
+
+
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+
+
 
+
+ +
+ +
*
+
+
+
+
+
+
+ +
+ + +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
 
+
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
 
+
+ +
+ + +
+
+
+
+
 
+
 
+
+ +
+ + +
+
+
 
+
 
+
+ +
+ +
+
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webinterface/db.php b/webinterface/db.php index b7d709c..a9f95fb 100644 --- a/webinterface/db.php +++ b/webinterface/db.php @@ -1,238 +1,273 @@ -'; - $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].';dbname='.$_POST['dbname']; - try { - $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass']); - $handle=fopen('../other/dbconfig.php','w'); - if(!fwrite($handle,$newconfig)) - { - $err_msg = sprintf($lang['widbcfgerr']); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); - $err_lvl = 0; - } - fclose($handle); - } catch (PDOException $e) { - $err_msg = sprintf($lang['widbcfgerr']); - $err_lvl = 3; - } - $db['type'] = $_POST['dbtype']; - $db['host'] = $_POST['dbhost']; - $dbname = $_POST['dbname']; - $db['user'] = $_POST['dbuser']; - $db['pass'] = $_POST['dbpass']; -} -?> -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
-
-
- -
- -
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
 
-
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
- - - - - - - - +'; + $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].';dbname='.$_POST['dbname'].';charset=utf8mb4'; + try { + $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass']); + $handle=fopen('../other/dbconfig.php','w'); + if(!fwrite($handle,$newconfig)) + { + $err_msg = sprintf($lang['widbcfgerr']); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); + $err_lvl = 0; + $db['type'] = $_POST['dbtype']; + $db['host'] = $_POST['dbhost']; + $dbname = $_POST['dbname']; + $db['user'] = $_POST['dbuser']; + $db['pass'] = $_POST['dbpass']; + } + fclose($handle); + } catch (PDOException $e) { + $err_msg = sprintf($lang['widbcfgerr']); + $err_lvl = 3; + } +} + +$_SESSION[$rspathhex.'csrf_token'] = $newcsrf; +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
*
+
+
+
+ +
+ +
*
+
+
+
+
+
+
 
+
+
+
+ +
+ +
*
+
+
+
+
+ +
+ +
*
+
+
+
+
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/webinterface/index.php b/webinterface/index.php index 27763b7..b4fe98a 100644 --- a/webinterface/index.php +++ b/webinterface/index.php @@ -1,139 +1,149 @@ -setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; - $loghandle = fopen($file, 'a'); - fwrite($loghandle, $input); - if (filesize($file) > 5242880) { - 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,-12).'logs/pid'); - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."worker.php start", 0, false); - exit; - } else { - exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); - exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); - exit; - } - } -} - -function getclientip() { - if (!empty($_SERVER['HTTP_CLIENT_IP'])) - return $_SERVER['HTTP_CLIENT_IP']; - elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) - return $_SERVER['HTTP_X_FORWARDED_FOR']; - elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) - return $_SERVER['HTTP_X_FORWARDED']; - elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) - return $_SERVER['HTTP_FORWARDED_FOR']; - elseif(!empty($_SERVER['HTTP_FORWARDED'])) - return $_SERVER['HTTP_FORWARDED']; - elseif(!empty($_SERVER['REMOTE_ADDR'])) - return $_SERVER['REMOTE_ADDR']; - else - return false; -} - -if(($last_access = $mysqlcon->query("SELECT last_access,count_access FROM $dbname.config")) === false) { - $err_msg .= print_r($mysqlcon->errorInfo(), true); -} -$last_access = $last_access->fetchAll(); - -if(($last_access[0]['last_access'] + 1) >= time()) { - $again = $last_access[0]['last_access'] + 2 - time(); - $err_msg = sprintf($lang['errlogin2'],$again); - $err_lvl = 3; -} elseif ($last_access[0]['count_access'] >= 10) { - enter_logfile($logpath,$timezone,3,sprintf($lang['brute'], getclientip())); - $err_msg = $lang['errlogin3']; - $err_lvl = 3; - $bantime = time() + 299; - if($mysqlcon->exec("UPDATE $dbname.config SET last_access='$bantime', count_access='0'") === false) { } -} elseif (isset($_POST['username']) && $_POST['username'] == $webuser && password_verify($_POST['password'], $webpass)) { - $_SESSION[$rspathhex.'username'] = $webuser; - $_SESSION[$rspathhex.'password'] = $webpass; - $_SESSION[$rspathhex.'clientip'] = getclientip(); - $_SESSION[$rspathhex.'newversion'] = $newversion; - if($mysqlcon->exec("UPDATE $dbname.config SET count_access='0'") === false) { } - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); - exit; -} elseif(isset($_POST['username'])) { - $nowtime = time(); - if($mysqlcon->exec("UPDATE $dbname.config SET last_access='$nowtime', count_access = count_access + 1") === false) { } - $err_msg = $lang['errlogin']; - $err_lvl = 3; -} - -if(isset($_SESSION[$rspathhex.'username']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass) { - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); -} - -require_once('nav.php'); -?> -
- -
- -
-
- - +setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; + $loghandle = fopen($file, 'a'); + fwrite($loghandle, $input); + if (filesize($file) > 5242880) { + 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,-12).'logs/pid'); + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."worker.php start", 0, false); + exit; + } else { + exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); + exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); + exit; + } + } +} + +function getclientip() { + if (!empty($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) + return $_SERVER['HTTP_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_FORWARDED'])) + return $_SERVER['HTTP_FORWARDED']; + elseif(!empty($_SERVER['REMOTE_ADDR'])) + return $_SERVER['REMOTE_ADDR']; + else + return false; +} + +if(($last_access = $mysqlcon->query("SELECT `last_access`,`count_access` FROM `$dbname`.`config`")) === false) { + $err_msg .= print_r($mysqlcon->errorInfo(), true); +} +$last_access = $last_access->fetchAll(); + +if(($last_access[0]['last_access'] + 1) >= time()) { + $again = $last_access[0]['last_access'] + 2 - time(); + $err_msg = sprintf($lang['errlogin2'],$again); + $err_lvl = 3; +} elseif ($last_access[0]['count_access'] >= 10) { + enter_logfile($logpath,$timezone,3,sprintf($lang['brute'], getclientip())); + $err_msg = $lang['errlogin3']; + $err_lvl = 3; + $bantime = time() + 299; + if($mysqlcon->exec("UPDATE `$dbname`.`config` SET `last_access`='$bantime',`count_access`='0'") === false) { } +} elseif (isset($_POST['username']) && $_POST['username'] == $webuser && password_verify($_POST['password'], $webpass)) { + $_SESSION[$rspathhex.'username'] = $webuser; + $_SESSION[$rspathhex.'password'] = $webpass; + $_SESSION[$rspathhex.'clientip'] = getclientip(); + $_SESSION[$rspathhex.'newversion'] = $newversion; + $_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); + if($mysqlcon->exec("UPDATE `$dbname`.`config` SET `count_access`='0'") === false) { } + header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); + exit; +} elseif(isset($_POST['username'])) { + $nowtime = time(); + if($mysqlcon->exec("UPDATE `$dbname`.`config` SET `last_access`='$nowtime',`count_access`=`count_access` + 1") === false) { } + $err_msg = $lang['errlogin']; + $err_lvl = 3; +} + +if(isset($_SESSION[$rspathhex.'username']) && $_SESSION[$rspathhex.'username'] == $webuser && $_SESSION[$rspathhex.'password'] == $webpass) { + header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); + exit; +} + +require_once('nav.php'); +?> +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/webinterface/msg.php b/webinterface/msg.php index f96c400..7c0c00a 100644 --- a/webinterface/msg.php +++ b/webinterface/msg.php @@ -1,263 +1,281 @@ -exec("UPDATE $dbname.config set msgtouser='$msgtouser',rankupmsg='$rankupmsg',servernews='$servernews',nextupinfo='$nextupinfo',nextupinfomsg1='$nextupinfomsg1',nextupinfomsg2='$nextupinfomsg2',nextupinfomsg3='$nextupinfomsg3'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); - $err_lvl = NULL; - } - $rankupmsg = $_POST['rankupmsg']; - $servernews = $_POST['servernews']; - $nextupinfomsg1 = $_POST['nextupinfomsg1']; - $nextupinfomsg2 = $_POST['nextupinfomsg2']; - $nextupinfomsg3 = $_POST['nextupinfomsg3']; -} -?> -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- -
-
-
-
-
-
- -
- -
-
-
-
-
-
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
- - - - - - - - - - +exec("UPDATE `$dbname`.`config` SET `msgtouser`='$msgtouser',`rankupmsg`='$rankupmsg',`servernews`='$servernews',`nextupinfo`='$nextupinfo',`nextupinfomsg1`='$nextupinfomsg1',`nextupinfomsg2`='$nextupinfomsg2',`nextupinfomsg3`='$nextupinfomsg3'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); + $err_lvl = NULL; + } + $rankupmsg = $_POST['rankupmsg']; + $servernews = $_POST['servernews']; + $nextupinfomsg1 = $_POST['nextupinfomsg1']; + $nextupinfomsg2 = $_POST['nextupinfomsg2']; + $nextupinfomsg3 = $_POST['nextupinfomsg3']; +} + +$_SESSION[$rspathhex.'csrf_token'] = $newcsrf; +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/webinterface/nav.php b/webinterface/nav.php index e545ac8..ee6f05a 100644 --- a/webinterface/nav.php +++ b/webinterface/nav.php @@ -1,182 +1,182 @@ -query("SELECT * FROM $dbname.job_check")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); -if((time() - $job_check['last_update']['timestamp']) < 259200 && !isset($_SESSION[$rspathhex.'upinfomsg'])) { - if(!isset($err_msg)) { - $err_msg = ' '.sprintf($lang['upinf2'], date("Y-m-d H:i",$job_check['last_update']['timestamp']), ' ', ''); $err_lvl = 1; - $_SESSION[$rspathhex.'upinfomsg'] = 1; - } -} -?> - - - - - - - - - TS-N.NET Ranksystem - - - - - -
- -"; - $err_msg = sprintf($lang['winav10'], $host,'!
', '
'); $err_lvl = 2; -} - -function error_handling($msg,$type = NULL) { - switch ($type) { - case NULL: echo '
'; break; - case 1: echo '
'; break; - case 2: echo '
'; break; - case 3: echo '
'; break; - } - echo '',$msg,'
'; -} -?> +query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); +if((time() - $job_check['last_update']['timestamp']) < 259200 && !isset($_SESSION[$rspathhex.'upinfomsg'])) { + if(!isset($err_msg)) { + $err_msg = ' '.sprintf($lang['upinf2'], date("Y-m-d H:i",$job_check['last_update']['timestamp']), ' ', ''); $err_lvl = 1; + $_SESSION[$rspathhex.'upinfomsg'] = 1; + } +} +?> + + + + + + + + + TS-N.NET Ranksystem + + + + + +
+ +"; + $err_msg = sprintf($lang['winav10'], $host,'!
', '
'); $err_lvl = 2; +} + +function error_handling($msg,$type = NULL) { + switch ($type) { + case NULL: echo '
'; break; + case 1: echo '
'; break; + case 2: echo '
'; break; + case 3: echo '
'; break; + } + echo '',$msg,'
'; +} +?> \ No newline at end of file diff --git a/webinterface/other.php b/webinterface/other.php index 37b5daf..688f6a4 100644 --- a/webinterface/other.php +++ b/webinterface/other.php @@ -1,237 +1,308 @@ -exec("UPDATE $dbname.config set timezone='$timezone',dateformat='$timeformat',logpath='$logpath',language='$language',adminuuid='$adminuuid'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); - $err_lvl = NULL; - } - $logpath = $_POST['logpath']; - $config['adminuuid'] = $_POST['adminuuid']; -} -?> -
- -
-
-
-

- -

-
-
-
-
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
*
-
-
-
- -
- -
-
-
-
-
- -
- -
-
*
-
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
-
- - - - - - - - - +exec("UPDATE `$dbname`.`config` SET `timezone`='$timezone',`dateformat`='$timeformat',`logpath`='$logpath',`language`='$language',`adminuuid`='$adminuuid',`iphash`='$iphash'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); + $err_lvl = NULL; + } + $logpath = $_POST['logpath']; + $config['adminuuid'] = $_POST['adminuuid']; + if(!isset($language) || $language == "en") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_en.php'); + } elseif($language == "ar") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_ar.php'); + } elseif($language == "cz") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_cz.php'); + } elseif($language == "de") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_de.php'); + } elseif($language == "fr") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_fr.php'); + } elseif($language == "it") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_it.php'); + } elseif($language == "nl") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_nl.php'); + } elseif($language == "pl") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_pl.php'); + } elseif($language == "ro") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_ro.php'); + } elseif($language == "ru") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_ru.php'); + } elseif($language == "pt") { + require_once(substr(dirname(__FILE__),0,-12).'languages/core_pt.php'); + } +} + +$_SESSION[$rspathhex.'csrf_token'] = $newcsrf; + +require_once('nav.php'); +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
*
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
*
+
+
+
 
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/webinterface/resetpassword.php b/webinterface/resetpassword.php index 509b3d8..3d98bd4 100644 --- a/webinterface/resetpassword.php +++ b/webinterface/resetpassword.php @@ -1,159 +1,176 @@ -setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; - $loghandle = fopen($file, 'a'); - fwrite($loghandle, $input); - if (filesize($file) > 5242880) { - 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,-12).'logs/pid'); - $WshShell = new COM("WScript.Shell"); - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."worker.php start", 0, false); - exit; - } else { - exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); - exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); - exit; - } - } -} - -function getclientip() { - if (!empty($_SERVER['HTTP_CLIENT_IP'])) - return $_SERVER['HTTP_CLIENT_IP']; - elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) - return $_SERVER['HTTP_X_FORWARDED_FOR']; - elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) - return $_SERVER['HTTP_X_FORWARDED']; - elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) - return $_SERVER['HTTP_FORWARDED_FOR']; - elseif(!empty($_SERVER['HTTP_FORWARDED'])) - return $_SERVER['HTTP_FORWARDED']; - elseif(!empty($_SERVER['REMOTE_ADDR'])) - return $_SERVER['REMOTE_ADDR']; - else - return false; -} - -if(($last_access = $mysqlcon->query("SELECT last_access,count_access FROM $dbname.config")) === false) { - $err_msg .= print_r($mysqlcon->errorInfo(), true); -} -$last_access = $last_access->fetchAll(); - -if (($last_access[0]['last_access'] + 1) >= time()) { - $again = $last_access[0]['last_access'] + 2 - time(); - $err_msg = sprintf($lang['errlogin2'],$again); - $err_lvl = 3; -} elseif (isset($_POST['resetpw']) && ($adminuuid==NULL || count($adminuuid) == 0)) { - $err_msg = $lang['wirtpw1']; $err_lvl=3; -} elseif (isset($_POST['resetpw'])) { - $nowtime = time(); - if($mysqlcon->exec("UPDATE $dbname.config SET last_access='$nowtime', count_access = count_access + 1") === false) { } - - require_once(substr(__DIR__,0,-12).'libs/ts3_lib/TeamSpeak3.php'); - try { - $ts3 = TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0"); - - try { - usleep($slowmode); - $ts3->selfUpdate(array('client_nickname' => "Ranksystem - Reset Password")); - } catch (Exception $e) { } - - usleep($slowmode); - $allclients = $ts3->clientList(); - $adminuuid_flipped = array_flip($adminuuid); - - foreach ($allclients as $client) { - if(in_array($client['client_unique_identifier'] , $adminuuid)) { - $uuid = $client['client_unique_identifier']; - $checkuuid = 1; - if($client['connection_client_ip'] == getclientip()) { - $checkip = 1; - } - } - } - - if (!isset($checkuuid)) { - $err_msg = $lang['wirtpw2']; $err_lvl = 3; - } elseif (!isset($checkip)) { - $err_msg = $lang['wirtpw3']; $err_lvl = 3; - } else { - usleep($slowmode); - $pwd = substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#*+;:-_~?=%&$!()"),0,12); - $webpass = password_hash($pwd, PASSWORD_DEFAULT); - if($mysqlcon->exec("UPDATE $dbname.config set webpass='$webpass', last_access='0'") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } else { - try { - $ts3->clientGetByUid($uuid)->message(sprintf($lang['wirtpw4'], $webuser, $pwd, '[URL=http'.(!empty($_SERVER['HTTPS'])?"s":"").'://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).']','[/URL]')); - $err_msg = sprintf($lang['wirtpw5'],'',''); $err_lvl = 1; - enter_logfile($logpath,$timezone,3,sprintf($lang['wirtpw6'],getclientip())); - } catch (Exception $e) { - $err_msg = 'TeamSpeak '.$lang['error'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - } - } - } catch (Exception $e) { - $err_msg = 'TeamSpeak '.$lang['error'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } -} - -require_once('nav.php'); -?> -
- -
- -
-
-
- +setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"; + $loghandle = fopen($file, 'a'); + fwrite($loghandle, $input); + if (filesize($file) > 5242880) { + 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,-12).'logs/pid'); + $WshShell = new COM("WScript.Shell"); + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".substr(__DIR__,0,-12)."worker.php start", 0, false); + exit; + } else { + exec("rm -f ".substr(__DIR__,0,-12).'logs/pid'); + exec($phpcommand." ".substr(__DIR__,0,-12)."worker.php start"); + exit; + } + } +} + +function getclientip() { + if (!empty($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + elseif(!empty($_SERVER['HTTP_FORWARDED_FOR'])) + return $_SERVER['HTTP_FORWARDED_FOR']; + elseif(!empty($_SERVER['HTTP_FORWARDED'])) + return $_SERVER['HTTP_FORWARDED']; + elseif(!empty($_SERVER['REMOTE_ADDR'])) + return $_SERVER['REMOTE_ADDR']; + else + return false; +} + +if(($last_access = $mysqlcon->query("SELECT `last_access`,`count_access` FROM `$dbname`.`config`")) === false) { + $err_msg .= print_r($mysqlcon->errorInfo(), true); +} +$last_access = $last_access->fetchAll(); + +if (isset($_POST['resetpw']) && $_POST['csrf_token'] != $_SESSION[$rspathhex.'csrf_token']) { + echo $lang['errcsrf']; + rem_session_ts3($rspathhex); + exit; +} + +if (($last_access[0]['last_access'] + 1) >= time()) { + $again = $last_access[0]['last_access'] + 2 - time(); + $err_msg = sprintf($lang['errlogin2'],$again); + $err_lvl = 3; +} elseif (isset($_POST['resetpw']) && ($adminuuid==NULL || count($adminuuid) == 0)) { + $err_msg = $lang['wirtpw1']; $err_lvl=3; +} elseif (isset($_POST['resetpw']) && $_POST['csrf_token'] == $_SESSION[$rspathhex.'csrf_token']) { + $nowtime = time(); + if($mysqlcon->exec("UPDATE `$dbname`.`config` SET `last_access`='$nowtime',`count_access`=`count_access` + 1") === false) { } + + require_once(substr(__DIR__,0,-12).'libs/ts3_lib/TeamSpeak3.php'); + try { + $ts3 = TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0"); + + try { + usleep($slowmode); + $ts3->selfUpdate(array('client_nickname' => "Ranksystem - Reset Password")); + } catch (Exception $e) { } + + usleep($slowmode); + $allclients = $ts3->clientList(); + $adminuuid_flipped = array_flip($adminuuid); + + foreach ($allclients as $client) { + if(in_array($client['client_unique_identifier'] , $adminuuid)) { + $uuid = $client['client_unique_identifier']; + $checkuuid = 1; + if($client['connection_client_ip'] == getclientip()) { + $checkip = 1; + } + } + } + + if (!isset($checkuuid)) { + $err_msg = $lang['wirtpw2']; $err_lvl = 3; + } elseif (!isset($checkip)) { + $err_msg = $lang['wirtpw3']; $err_lvl = 3; + } else { + usleep($slowmode); + $pwd = substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#*+;:-_~?=%&$!()"),0,12); + $webpass = password_hash($pwd, PASSWORD_DEFAULT); + if($mysqlcon->exec("UPDATE `$dbname`.`config` SET `webpass`='$webpass',`last_access`='0'") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; + } else { + try { + $ts3->clientGetByUid($uuid)->message(sprintf($lang['wirtpw4'], $webuser, $pwd, '[URL=http'.(!empty($_SERVER['HTTPS'])?"s":"").'://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).']','[/URL]')); + $err_msg = sprintf($lang['wirtpw5'],'',''); $err_lvl = 1; + enter_logfile($logpath,$timezone,3,sprintf($lang['wirtpw6'],getclientip())); + } catch (Exception $e) { + $err_msg = 'TeamSpeak '.$lang['error'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; + } + } + } + } catch (Exception $e) { + $err_msg = 'TeamSpeak '.$lang['error'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; + } +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); + +require_once('nav.php'); +?> +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/webinterface/stats.php b/webinterface/stats.php index 1ef881f..b6a6a26 100644 --- a/webinterface/stats.php +++ b/webinterface/stats.php @@ -1,487 +1,504 @@ -exec("UPDATE $dbname.config set showexcld='$showexcld',showcolrg='$showcolrg',showcolcld='$showcolcld',showcoluuid='$showcoluuid',showcoldbid='$showcoldbid',showcolls='$showcolls',showcolot='$showcolot',showcolit='$showcolit',showcolat='$showcolat',showcolas='$showcolas',showcolnx='$showcolnx',showcolsg='$showcolsg',showhighest='$showhighest',showgrpsince='$showgrpsince',shownav='$shownav'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']; - $err_lvl = NULL; - } -} -?> -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
-
-
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
 
-
- -
- '; - } else { - echo ''; - } ?> -
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
-
- - - - - - - - - - - - - - - - - +exec("UPDATE `$dbname`.`config` SET `showexcld`='$showexcld',`showcolrg`='$showcolrg',`showcolcld`='$showcolcld',`showcoluuid`='$showcoluuid',`showcoldbid`='$showcoldbid',`showcolls`='$showcolls',`showcolot`='$showcolot',`showcolit`='$showcolit',`showcolat`='$showcolat',`showcolas`='$showcolas',`showcolnx`='$showcolnx',`showcolsg`='$showcolsg',`showhighest`='$showhighest',`showgrpsince`='$showgrpsince',`shownav`='$shownav'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']; + $err_lvl = NULL; + } +} + +$_SESSION[$rspathhex.'csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+
+
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
 
+
+ +
+ '; + } else { + echo ''; + } ?> +
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/webinterface/ts.php b/webinterface/ts.php index e7617a2..faa6217 100644 --- a/webinterface/ts.php +++ b/webinterface/ts.php @@ -1,391 +1,409 @@ -exec("UPDATE $dbname.config set tshost='$tshost',tsquery='$tsquery',tsvoice='$tsvoice',tsuser='$tsuser',tspass='$tspass',queryname='$queryname',queryname2='$queryname2',slowmode='$slowmode',defchid='$defchid',avatar_delay='$avatar_delay'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); - $err_lvl = NULL; - } - $ts['host'] = $_POST['tshost']; - $ts['query'] = $_POST['tsquery']; - $ts['voice'] = $_POST['tsvoice']; - $ts['user'] = $_POST['tsuser']; - $ts['pass'] = $_POST['tspass']; -} -?> -
- -
-
-
-

- -

-
-
-
-
-
-
-
-
- -
- -
*
-
-
-
-
- -
- - -
*
-
-
-
- -
- - -
*
-
-
-
-
-
 
-
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
-
-
-
-
- -
- -
*
-
-
-
- -
- -
*
-
-
-
-
-
 
-
- -
- - -
-
-
 
-
- -
- -
-
-
 
-
- -
- - -
-
-
-
-
 
-
-
- -
-
-
 
-
-
-
-
- - - - - - - - - - - - +exec("UPDATE `$dbname`.`config` SET `tshost`='$tshost',`tsquery`='$tsquery',`tsvoice`='$tsvoice',`tsuser`='$tsuser',`tspass`='$tspass',`queryname`='$queryname',`queryname2`='$queryname2',`slowmode`='$slowmode',`defchid`='$defchid',`avatar_delay`='$avatar_delay'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '  
'); + $err_lvl = NULL; + } + $ts['host'] = $_POST['tshost']; + $ts['query'] = $_POST['tsquery']; + $ts['voice'] = $_POST['tsvoice']; + $ts['user'] = $_POST['tsuser']; + $ts['pass'] = $_POST['tspass']; +} + +$_SESSION[$rspathhex.'csrf_token'] = $newcsrf; +?> +
+ +
+
+
+

+ +

+
+
+
+ +
+
+
+
+
+ +
+ +
*
+
+
+
+
+ +
+ + +
*
+
+
+
+ +
+ + +
*
+
+
+
+
+
 
+
+
+
+ +
+ +
*
+
+
+
+ +
+ +
*
+
+
+
+
+
+
+
+
+
+ +
+ +
*
+
+
+
+ +
+ +
*
+
+
+
+
+
 
+
+ +
+ + +
+
+
 
+
+ +
+ +
+
+
 
+
+ +
+ + +
+
+
+
+
 
+
+
+ +
+
+
 
+
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/worker.php b/worker.php index 81077f7..523aa5d 100644 --- a/worker.php +++ b/worker.php @@ -1,238 +1,237 @@ -nul", $result); - if(isset($result[1]) && is_numeric($result[1])) { - return TRUE; - } else { - return FALSE; - } - } else { - if (file_exists($GLOBALS['pidfile'])) { - preg_match_all('!\d+!', file_get_contents($GLOBALS['pidfile']), $pid); - exec("wmic process where \"Name=\"php.exe\" and processid=\"".$pid[0][0]."\"\" get processid", $result); - if(isset($result[1]) && is_numeric($result[1])) { - return TRUE; - } else { - return FALSE; - } - } else { - return FALSE; - } - } - } else { - if(!empty($pid)) { - $check_pid = "ps ".$pid; - $result = shell_exec($check_pid); - if (count(preg_split("/\n/", $result)) > 2) { - return TRUE; - } else { - return FALSE; - } - } else { - if (file_exists($GLOBALS['pidfile'])) { - $check_pid = "ps ".file_get_contents($GLOBALS['pidfile']); - $result = shell_exec($check_pid); - if (count(preg_split("/\n/", $result)) > 2) { - return TRUE; - } else { - return FALSE; - } - } else { - return FALSE; - } - } - } -} - -function start() { - global $phpcommand; - if(isset($_SERVER['USER']) && $_SERVER['USER'] == "root" || isset($_SERVER['USERNAME']) && $_SERVER['USERNAME'] == "administrator") { - echo "\n !!!! Do not start the Ranksystem with root privileges !!!!\n\n"; - echo " Start Ranksystem Bot in 10 seconds...\n\n"; - sleep(10); - } - - global $logpath; - if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { - echo "\n !!!! Logs folder is not writable !!!!\n\n"; - echo " Cancel start request...\n\n"; - exit; - } - - if (substr(php_uname(), 0, 7) == "Windows") { - if (checkProcess() == FALSE) { - echo "Starting the Ranksystem Bot."; - try { - $WshShell = new COM("WScript.Shell"); - } catch (Exception $e) { - echo "\n Error due loading the PHP COM module (wrong server configuration!): ",$e->getMessage(),"\n"; - } - try { - $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".__DIR__."\jobs\bot.php", 0, false); - } catch (Exception $e) { - echo "\n Error due starting Bot (exec command enabled?): ",$e->getMessage(),"\n"; - } - try { - exec("wmic process WHERE \"Name=\"php.exe\" AND CommandLine LIKE \"%bot.php%\"\" get ProcessId", $pid); - } catch (Exception $e) { - echo "\n Error due getting process list (wmic command enabled?): ",$e->getMessage(),"\n"; - } - if(isset($pid[1]) && is_numeric($pid[1])) { - exec("echo ".$pid[1]." > ".$GLOBALS['pidfile']); - echo " [OK]\n"; - if (file_exists($GLOBALS['autostart'])) { - unlink($GLOBALS['autostart']); - } - } else { - echo " [Failed]\n"; - } - } else { - echo "The Ranksystem is already running.\n"; - } - $GLOBALS['exec'] = TRUE; - } else { - if (checkProcess() == FALSE) { - echo "Starting the Ranksystem Bot."; - exec($phpcommand." ".dirname(__FILE__)."/jobs/bot.php >/dev/null 2>&1 & echo $! > ".$GLOBALS['pidfile']); - if (checkProcess() == FALSE) { - echo " [Failed]\n"; - } else { - echo " [OK]\n"; - if (file_exists($GLOBALS['autostart'])) { - unlink($GLOBALS['autostart']); - } - } - } else { - echo "The Ranksystem is already running.\n"; - } - $GLOBALS['exec'] = TRUE; - } -} - -function stop() { - if (substr(php_uname(), 0, 7) == "Windows") { - if (checkProcess() == TRUE) { - echo "Stopping the Ranksystem Bot.\n"; - preg_match_all('!\d+!', file_get_contents($GLOBALS['pidfile']), $pid); - exec("del /F ".$GLOBALS['pidfile']); - echo "Wait until Bot is down"; - $count_check=0; - while (checkProcess($pid[0][0]) == TRUE) { - sleep(1); - echo "."; - $count_check ++; - if($count_check > 10) { - exec("taskkill /F /PID ".$pid[0][0]); - break; - } - } - if (checkProcess($pid[0][0]) == TRUE) { - echo " [Failed]\n"; - } else { - echo " [OK]\n"; - touch($GLOBALS['autostart']); - } - } else { - echo "The Ranksystem seems not running.\n"; - } - $GLOBALS['exec'] = TRUE; - } else { - if (checkProcess() == TRUE) { - echo "Stopping the Ranksystem Bot.\n"; - $pid = file_get_contents($GLOBALS['pidfile']); - exec("rm -f ".$GLOBALS['pidfile']); - echo "Wait until Bot is down"; - $count_check=0; - while (checkProcess($pid) == TRUE) { - sleep(1); - echo "."; - $count_check ++; - if($count_check > 10) { - exec("kill -9 ".$pid); - break; - } - } - if (checkProcess($pid) == TRUE) { - echo " [Failed]\n"; - } else { - echo " [OK]\n"; - touch($GLOBALS['autostart']); - } - } else { - echo "The Ranksystem seems not running.\n"; - } - $GLOBALS['exec'] = TRUE; - } -} - -function check() { - if (checkProcess() == FALSE) { - if (!file_exists($GLOBALS['autostart'])) { - if (file_exists($GLOBALS['pidfile'])) { - unlink($GLOBALS['pidfile']); - } - start(); - } else { - echo "Starting the Ranksystem Bot. [Failed]\nAutostart is deactivated. Use start command instead.\n"; - } - } - $GLOBALS['exec'] = TRUE; -} - -function restart() { - stop(); - start(); - $GLOBALS['exec'] = TRUE; -} - -function status() { - if (checkProcess() == FALSE) { - echo "The Ranksystem does not seem to run.\n"; - } else { - echo "The Ranksystem seems to be running.\n"; - } - $GLOBALS['exec'] = TRUE; -} - -function help() { - echo " Usage: php worker.php {start|stop|restart|check|status}\n\n", - "\t* start \t\t [start Ranksystem Bot]\n", - "\t* stop \t\t [stop Ranksystem Bot]\n", - "\t* restart \t\t [restart Ranksystem Bot]\n", - "\t* check \t\t [check Ranksystem Bot is running; if not, start it; no output if all is ok]\n", - "\t* status \t\t [output status Ranksystem Bot]\n"; - $GLOBALS['exec'] = TRUE; -} - -if (isset($_SERVER['argv'][1]) == 0) { - help(); -} else { - $cmd = $_SERVER['argv'][1]; - if ($cmd == 'start') start(); - if ($cmd == 'stop') stop(); - if ($cmd == 'restart') restart(); - if ($cmd == 'check') check(); - if ($cmd == 'status') status(); - if ($cmd == 'help') help(); - - if ($GLOBALS['exec'] == FALSE) echo " Error parameter '$cmd' not valid. Type \"php worker.php help\" to get a list of valid parameter.\n"; -} +nul", $result); + if(isset($result[1]) && is_numeric($result[1])) { + return TRUE; + } else { + return FALSE; + } + } else { + if (file_exists($GLOBALS['pidfile'])) { + $pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); + exec("wmic process where \"Name=\"php.exe\" and processid=\"".$pid."\"\" get processid", $result); + if(isset($result[1]) && is_numeric($result[1])) { + return TRUE; + } else { + return FALSE; + } + } else { + return FALSE; + } + } + } else { + if(!empty($pid)) { + $result = str_replace(array("\r", "\n"), '', shell_exec("ps ".$pid)); + if (strstr($result, $pid)) { + return TRUE; + } else { + return FALSE; + } + } else { + if (file_exists($GLOBALS['pidfile'])) { + $check_pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); + $result = str_replace(array("\r", "\n"), '', shell_exec("ps ".$check_pid)); + if (strstr($result, $check_pid)) { + return TRUE; + } else { + return FALSE; + } + } else { + return FALSE; + } + } + } +} + +function start() { + global $phpcommand; + if(isset($_SERVER['USER']) && $_SERVER['USER'] == "root" || isset($_SERVER['USERNAME']) && $_SERVER['USERNAME'] == "administrator") { + echo "\n !!!! Do not start the Ranksystem with root privileges !!!!\n\n"; + echo " Start Ranksystem Bot in 10 seconds...\n\n"; + sleep(10); + } + + global $logpath; + if(substr(sprintf('%o', fileperms($logpath)), -3, 1)!='7') { + echo "\n !!!! Logs folder is not writable !!!!\n\n"; + echo " Cancel start request...\n\n"; + exit; + } + + if (substr(php_uname(), 0, 7) == "Windows") { + if (checkProcess() == FALSE) { + echo "Starting the Ranksystem Bot."; + try { + $WshShell = new COM("WScript.Shell"); + } catch (Exception $e) { + echo "\n Error due loading the PHP COM module (wrong server configuration!): ",$e->getMessage(),"\n"; + } + try { + $oExec = $WshShell->Run("cmd /C ".$phpcommand." ".__DIR__."\jobs\bot.php", 0, false); + } catch (Exception $e) { + echo "\n Error due starting Bot (exec command enabled?): ",$e->getMessage(),"\n"; + } + try { + exec("wmic process WHERE \"Name=\"php.exe\" AND CommandLine LIKE \"%bot.php%\"\" get ProcessId", $pid); + } catch (Exception $e) { + echo "\n Error due getting process list (wmic command enabled?): ",$e->getMessage(),"\n"; + } + if(isset($pid[1]) && is_numeric($pid[1])) { + exec("echo ".$pid[1]." > ".$GLOBALS['pidfile']); + echo " [OK]\n"; + if (file_exists($GLOBALS['autostart'])) { + unlink($GLOBALS['autostart']); + } + } else { + echo " [Failed]\n"; + } + } else { + echo "The Ranksystem is already running.\n"; + } + $GLOBALS['exec'] = TRUE; + } else { + if (checkProcess() == FALSE) { + echo "Starting the Ranksystem Bot."; + exec($phpcommand." ".dirname(__FILE__)."/jobs/bot.php >/dev/null 2>&1 & echo $! > ".$GLOBALS['pidfile']); + if (checkProcess() == FALSE) { + echo " [Failed]\n"; + } else { + echo " [OK]\n"; + if (file_exists($GLOBALS['autostart'])) { + unlink($GLOBALS['autostart']); + } + } + } else { + echo "The Ranksystem is already running.\n"; + } + $GLOBALS['exec'] = TRUE; + } +} + +function stop() { + if (substr(php_uname(), 0, 7) == "Windows") { + if (checkProcess() == TRUE) { + echo "Stopping the Ranksystem Bot.\n"; + $pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); + exec("del /F ".$GLOBALS['pidfile']); + echo "Wait until Bot is down"; + $count_check=0; + while (checkProcess($pid) == TRUE) { + sleep(1); + echo "."; + $count_check ++; + if($count_check > 10) { + exec("taskkill /F /PID ".$pid); + break; + } + } + if (checkProcess($pid) == TRUE) { + echo " [Failed]\n"; + } else { + echo " [OK]\n"; + touch($GLOBALS['autostart']); + } + } else { + echo "The Ranksystem seems not running.\n"; + } + $GLOBALS['exec'] = TRUE; + } else { + if (checkProcess() == TRUE) { + echo "Stopping the Ranksystem Bot.\n"; + $pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); + exec("rm -f ".$GLOBALS['pidfile']); + echo "Wait until Bot is down"; + $count_check=0; + while (checkProcess($pid) == TRUE) { + sleep(1); + echo "."; + $count_check ++; + if($count_check > 10) { + exec("kill -9 ".$pid); + break; + } + } + if (checkProcess($pid) == TRUE) { + echo " [Failed]\n"; + } else { + echo " [OK]\n"; + touch($GLOBALS['autostart']); + } + } else { + echo "The Ranksystem seems not running.\n"; + } + $GLOBALS['exec'] = TRUE; + } +} + +function check() { + if (checkProcess() == FALSE) { + if (!file_exists($GLOBALS['autostart'])) { + if (file_exists($GLOBALS['pidfile'])) { + unlink($GLOBALS['pidfile']); + } + start(); + } else { + echo "Starting the Ranksystem Bot. [Failed]\nAutostart is deactivated. Use start command instead.\n"; + } + } + $GLOBALS['exec'] = TRUE; +} + +function restart() { + stop(); + start(); + $GLOBALS['exec'] = TRUE; +} + +function status() { + if (checkProcess() == FALSE) { + echo "The Ranksystem does not seem to run.\n"; + } else { + echo "The Ranksystem seems to be running.\n"; + } + $GLOBALS['exec'] = TRUE; +} + +function help() { + echo " Usage: php worker.php {start|stop|restart|check|status}\n\n", + "\t* start \t\t [start Ranksystem Bot]\n", + "\t* stop \t\t [stop Ranksystem Bot]\n", + "\t* restart \t\t [restart Ranksystem Bot]\n", + "\t* check \t\t [check Ranksystem Bot is running; if not, start it; no output if all is ok]\n", + "\t* status \t\t [output status Ranksystem Bot]\n"; + $GLOBALS['exec'] = TRUE; +} + +if (isset($_SERVER['argv'][1]) == 0) { + help(); +} else { + $cmd = $_SERVER['argv'][1]; + if ($cmd == 'start') start(); + if ($cmd == 'stop') stop(); + if ($cmd == 'restart') restart(); + if ($cmd == 'check') check(); + if ($cmd == 'status') status(); + if ($cmd == 'help') help(); + + if ($GLOBALS['exec'] == FALSE) echo " Error parameter '$cmd' not valid. Type \"php worker.php help\" to get a list of valid parameter.\n"; +} ?> \ No newline at end of file