diff --git a/api/index.php b/api/index.php index d835169..3853b42 100644 --- a/api/index.php +++ b/api/index.php @@ -1,7 +1,7 @@ $desc) { + if ($apikey == $_GET['apikey']) $matchkey = 1; + } + if ($matchkey == 0) { + $json = array( + "Error" => array( + "invalid" => array( + "apikey" => "API Key is invalid" + ) + ) + ); + echo json_encode($json); + exit; + } +} else { + $json = array( + "Error" => array( + "required" => array( + "apikey" => array( + "desc" => "API Key for authentification. API keys can be created inside the Ranksystem Webinterface", + "usage" => "Use \$_GET parameter 'apikey' and add as value a valid API key", + "example" => "/api/?apikey=XXXXX" + ) + ) + ) + ); + echo json_encode($json); + exit; +} + +$limit = (isset($_GET['limit']) && is_numeric($_GET['limit']) && $_GET['limit'] > 0 && $_GET['limit'] <= 1000) ? $_GET['limit'] : 100; +$sort = (isset($_GET['sort'])) ? htmlspecialchars_decode($_GET['sort']) : '1'; +$order = (isset($_GET['order']) && strtolower($_GET['order']) == 'desc') ? 'DESC' : 'ASC'; +$part = (isset($_GET['part']) && is_numeric($_GET['part']) && $_GET['part'] > 0) ? (($_GET['part'] - 1) * $limit) : 0; + if (isset($_GET['groups'])) { $sgidname = $all = '----------_none_selected_----------'; $sgid = -1; - if(isset($_GET['all'])) { - $all = 1; - } - if(isset($_GET['sgid'])) { - $sgid = htmlspecialchars_decode($_GET['sgid']); - } - if(isset($_GET['sgidname'])) { - $sgidname = htmlspecialchars_decode($_GET['sgidname']); - } + if(isset($_GET['all'])) $all = 1; + if(isset($_GET['sgid'])) $sgid = htmlspecialchars_decode($_GET['sgid']); + if(isset($_GET['sgidname'])) $sgidname = htmlspecialchars_decode($_GET['sgidname']); if($sgid == -1 && $sgidname == '----------_none_selected_----------' && $all == '----------_none_selected_----------') { $json = array( @@ -37,6 +68,16 @@ if (isset($_GET['groups'])) { "usage" => "Use \$_GET parameter 'all' without any value", "example" => "/api/?groups&all" ), + "limit" => array( + "desc" => "Define a number that limits the number of results. Maximum value is 1000. Default is 100.", + "usage" => "Use \$_GET parameter 'limit' and add as value a number above 1", + "example" => "/api/?groups&limit=10" + ), + "order" => array( + "desc" => "Define a sorting order. Value of 'sort' param is necessary.", + "usage" => "Use \$_GET parameter 'order' and add as value 'asc' for ascending or 'desc' for descending", + "example" => "/api/?groups&all&sort=sgid&order=asc" + ), "sgid" => array( "desc" => "Get details about TeamSpeak servergroups by the servergroup TS-database-ID", "usage" => "Use \$_GET parameter 'sgid' and add as value the servergroup TS-database-ID", @@ -45,25 +86,54 @@ if (isset($_GET['groups'])) { "sgidname" => array( "desc" => "Get details about TeamSpeak servergroups by servergroup name or a part of it", "usage" => "Use \$_GET parameter 'sgidname' and add as value a name or a part of it", - "example" => "/api/?groups&sgidname=Level01" + "example" => array( + "1" => array( + "desc" => "Filter by servergroup name", + "url" => "/api/?groups&sgidname=Level01" + ), + "2" => array( + "desc" => "Filter by servergroup name with a percent sign as placeholder", + "url" => "/api/?groups&sgidname=Level%" + ) + ) + ), + "sort" => array( + "desc" => "Define a sorting. Available is each column name, which is given back as a result.", + "usage" => "Use \$_GET parameter 'sort' and add as value a column name", + "example" => array( + "1" => array( + "desc" => "Sort by servergroup name", + "url" => "/api/?groups&all&sort=sgidname" + ), + "2" => array( + "desc" => "Sort by TeamSpeak sort-ID", + "url" => "/api/?groups&all&sort=sortid" + ) + ) ) ) ); } else { if ($all == 1) { - $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`groups`"); + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`groups` ORDER BY {$sort} {$order} LIMIT :start, :limit"); } else { - $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`groups` WHERE (`sgidname` LIKE :sgidname OR `sgid` LIKE :sgid)"); + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`groups` WHERE (`sgidname` LIKE :sgidname OR `sgid` LIKE :sgid) ORDER BY {$sort} {$order} LIMIT :start, :limit"); + $dbdata->bindValue(':sgidname', '%'.$sgidname.'%', PDO::PARAM_STR); + $dbdata->bindValue(':sgid', (int) $sgid, PDO::PARAM_INT); } - $dbdata->bindValue(':sgidname', '%'.$sgidname.'%', PDO::PARAM_STR); - $dbdata->bindValue(':sgid', (int) $sgid, PDO::PARAM_INT); + $dbdata->bindValue(':start', (int) $part, PDO::PARAM_INT); + $dbdata->bindValue(':limit', (int) $limit, PDO::PARAM_INT); $dbdata->execute(); $json = $dbdata->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); foreach ($json as $sgid => $sqlpart) { if ($sqlpart['icondate'] != 0 && $sqlpart['sgidname'] == 'ServerIcon') { - $json[$sgid]['iconpath'] = './tsicons/servericon.png'; - } elseif ($sqlpart['iconid'] != 0) { - $json[$sgid]['iconpath'] = './tsicons/'.$sqlpart['iconid'].'.png'; + $json[$sgid]['iconpath'] = './tsicons/servericon.'.$sqlpart['ext']; + } elseif ($sqlpart['icondate'] == 0 && $sqlpart['iconid'] > 0 && $sqlpart['iconid'] < 601) { + $json[$sgid]['iconpath'] = './tsicons/'.$sqlpart['iconid'].'.'.$sqlpart['ext']; + } elseif ($sqlpart['icondate'] != 0) { + $json[$sgid]['iconpath'] = './tsicons/'.$sgid.'.'.$sqlpart['ext']; + } else { + $json[$sgid]['iconpath'] = ''; } } } @@ -99,69 +169,180 @@ if (isset($_GET['groups'])) { } elseif (isset($_GET['user'])) { $uuid = $name = '----------_none_selected_----------'; $filter = ''; - $part = $cldbid = 0; - if(isset($_GET['uuid'])) { - $uuid = htmlspecialchars_decode($_GET['uuid']); - } - if(isset($_GET['cldbid'])) { - $cldbid = htmlspecialchars_decode($_GET['cldbid']); - } - if(isset($_GET['name'])) { - $name = htmlspecialchars_decode($_GET['name']); - } - if(isset($_GET['part'])) { - $part = (htmlspecialchars_decode($_GET['part']) - 1) * 100; - } + $part = $cldbid = $all = 0; + if(!isset($_GET['sort'])) $sort = '`rank`'; + if(isset($_GET['all'])) $all = 1; + if(isset($_GET['uuid'])) $uuid = htmlspecialchars_decode($_GET['uuid']); + if(isset($_GET['cldbid'])) $cldbid = htmlspecialchars_decode($_GET['cldbid']); + if(isset($_GET['name'])) $name = htmlspecialchars_decode($_GET['name']); + if(isset($_GET['part'])) $part = (htmlspecialchars_decode($_GET['part']) - 1) * 100; if(isset($_GET['online']) && $uuid == '----------_none_selected_----------' && $name == '----------_none_selected_----------' && $cldbid == 0) { $filter = '`online`=1'; } elseif(isset($_GET['online'])) { $filter = '(`uuid` LIKE :uuid OR `cldbid` LIKE :cldbid OR `name` LIKE :name) AND `online`=1'; - } else { + } elseif($uuid != '----------_none_selected_----------' || $name != '----------_none_selected_----------' || $cldbid != 0) { $filter = '(`uuid` LIKE :uuid OR `cldbid` LIKE :cldbid OR `name` LIKE :name)'; } - if($uuid == '----------_none_selected_----------' && $name == '----------_none_selected_----------' && $filter == '' && $cldbid == 0) { + if($uuid == '----------_none_selected_----------' && $name == '----------_none_selected_----------' && $filter == '' && $cldbid == 0 && $all == 0) { $json = array( "usage" => array( - "uuid" => array( - "desc" => "Get details about TeamSpeak user by unique client ID", - "usage" => "Use \$_GET parameter 'uuid' and add as value one unique client ID or a part of it", - "example" => "/api/?user&uuid=xrTKhT/HDl4ea0WoFDQH2zOpmKg=" + "all" => array( + "desc" => "Get details about all TeamSpeak user. Result is limited by 100 entries.", + "usage" => "Use \$_GET parameter 'all' without any value", + "example" => "/api/?user&all" ), "cldbid" => array( "desc" => "Get details about TeamSpeak user by client TS-database ID", "usage" => "Use \$_GET parameter 'cldbid' and add as value a single client TS-database ID", "example" => "/api/?user&cldbid=7775" ), + "limit" => array( + "desc" => "Define a number that limits the number of results. Maximum value is 1000. Default is 100.", + "usage" => "Use \$_GET parameter 'limit' and add as value a number above 1", + "example" => "/api/?user&all&limit=10" + ), "name" => array( "desc" => "Get details about TeamSpeak user by client nickname", "usage" => "Use \$_GET parameter 'name' and add as value a name or a part of it", - "example" => "/api/?user&name=Newcomer1989" + "example" => array( + "1" => array( + "desc" => "Filter by client nickname", + "url" => "/api/?user&name=Newcomer1989" + ), + "2" => array( + "desc" => "Filter by client nickname with a percent sign as placeholder", + "url" => "/api/?user&name=%user%" + ) + ) ), "online" => array( "desc" => "Get the online TeamSpeak user", "usage" => "Use \$_GET parameter 'online' without any value", "example" => "/api/?user&online" ), + "order" => array( + "desc" => "Define a sorting order.", + "usage" => "Use \$_GET parameter 'order' and add as value 'asc' for ascending or 'desc' for descending", + "example" => "/api/?user&all&order=asc" + ), "part" => array( - "desc" => "Define, which part of the result you want to get. This is needed, when more then 10 clients are inside the result. At default you will get the first 100 clients. To get the next 100 clients, you will need to answer for part 2.", + "desc" => "Define, which part of the result you want to get. This is needed, when more then 100 clients are inside the result. At default you will get the first 100 clients. To get the next 100 clients, you will need to ask for part 2.", "usage" => "Use \$_GET parameter 'part' and add as value a number above 1", "example" => "/api/?user&name=TeamSpeakUser&part=2" + ), + "sort" => array( + "desc" => "Define a sorting. Available is each column name, which is given back as a result.", + "usage" => "Use \$_GET parameter 'sort' and add as value a column name", + "example" => array( + "1" => array( + "desc" => "Sort by online time", + "url" => "/api/?user&all&sort=count" + ), + "2" => array( + "desc" => "Sort by active time", + "url" => "/api/?user&all&sort=(count-idle)" + ), + "3" => array( + "desc" => "Sort by rank", + "url" => "/api/?user&all&sort=rank" + ) + ) + ), + "uuid" => array( + "desc" => "Get details about TeamSpeak user by unique client ID", + "usage" => "Use \$_GET parameter 'uuid' and add as value one unique client ID or a part of it", + "example" => "/api/?user&uuid=xrTKhT/HDl4ea0WoFDQH2zOpmKg=" ) ) ); } else { - $dbdata = $mysqlcon->prepare("SELECT `uuid`,`cldbid`,`rank`,`count`,`name`,`idle`,`cldgroup`,`online`,`nextup`,`lastseen`,`grpid`,`except`,`grpsince` FROM `$dbname`.`user` WHERE {$filter} LIMIT :start, :limit"); - if($filter != '`online`=1') { + if ($all == 1) { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user` ORDER BY {$sort} {$order} LIMIT :start, :limit"); + } else { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user` WHERE {$filter} ORDER BY {$sort} {$order} LIMIT :start, :limit"); + } + if($filter != '`online`=1' && $all == 0) { $dbdata->bindValue(':uuid', '%'.$uuid.'%', PDO::PARAM_STR); $dbdata->bindValue(':cldbid', (int) $cldbid, PDO::PARAM_INT); $dbdata->bindValue(':name', '%'.$name.'%', PDO::PARAM_STR); } $dbdata->bindValue(':start', (int) $part, PDO::PARAM_INT); - $dbdata->bindValue(':limit', (int) 100, PDO::PARAM_INT); + $dbdata->bindValue(':limit', (int) $limit, PDO::PARAM_INT); $dbdata->execute(); $json = $dbdata->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); - } + } +} elseif (isset($_GET['userstats'])) { + $uuid = '----------_none_selected_----------'; + $filter = ''; + $part = $all = 0; + if(isset($_GET['all'])) $all = 1; + if(!isset($_GET['sort'])) $sort = '`count_week`'; + if(isset($_GET['uuid'])) { + $uuid = htmlspecialchars_decode($_GET['uuid']); + $filter = '`stats_user`.`uuid` LIKE :uuid'; + } + + if($uuid == '----------_none_selected_----------' && $all == 0 && $filter == '') { + $json = array( + "usage" => array( + "all" => array( + "desc" => "Get additional statistics about all TeamSpeak user. Result is limited by 100 entries.", + "usage" => "Use \$_GET parameter 'all' without any value", + "example" => "/api/?userstats&all" + ), + "limit" => array( + "desc" => "Define a number that limits the number of results. Maximum value is 1000. Default is 100.", + "usage" => "Use \$_GET parameter 'limit' and add as value a number above 1", + "example" => "/api/?userstats&limit=10" + ), + "order" => array( + "desc" => "Define a sorting order.", + "usage" => "Use \$_GET parameter 'order' and add as value 'asc' for ascending or 'desc' for descending", + "example" => "/api/?userstats&all&order=asc" + ), + "part" => array( + "desc" => "Define, which part of the result you want to get. This is needed, when more then 100 clients are inside the result. At default you will get the first 100 clients. To get the next 100 clients, you will need to ask for part 2.", + "usage" => "Use \$_GET parameter 'part' and add as value a number above 1", + "example" => "/api/?userstats&all&part=2" + ), + "sort" => array( + "desc" => "Define a sorting. Available is each column name, which is given back as a result.", + "usage" => "Use \$_GET parameter 'sort' and add as value a column name", + "example" => array( + "1" => array( + "desc" => "Sort by online time of the week", + "url" => "/api/?userstats&all&sort=count_week" + ), + "2" => array( + "desc" => "Sort by active time of the week", + "url" => "/api/?userstats&all&sort=(count_week-idle_week)" + ), + "3" => array( + "desc" => "Sort by online time of the month", + "url" => "/api/?userstats&all&sort=count_month" + ) + ) + ), + "uuid" => array( + "desc" => "Get additional statistics about TeamSpeak user by unique client ID", + "usage" => "Use \$_GET parameter 'uuid' and add as value one unique client ID or a part of it", + "example" => "/api/?userstats&uuid=xrTKhT/HDl4ea0WoFDQH2zOpmKg=" + ) + ) + ); + } else { + if ($all == 1) { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`stats_user` INNER JOIN `user` ON `user`.`uuid` = `stats_user`.`uuid` ORDER BY {$sort} {$order} LIMIT :start, :limit"); + } else { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`stats_user` INNER JOIN `user` ON `user`.`uuid` = `stats_user`.`uuid` WHERE {$filter} ORDER BY {$sort} {$order} LIMIT :start, :limit"); + $dbdata->bindValue(':uuid', '%'.$uuid.'%', PDO::PARAM_STR); + } + $dbdata->bindValue(':start', (int) $part, PDO::PARAM_INT); + $dbdata->bindValue(':limit', (int) $limit, PDO::PARAM_INT); + $dbdata->execute(); + $json = $dbdata->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); + } } else { $json = array( "usage" => array( @@ -184,6 +365,11 @@ if (isset($_GET['groups'])) { "desc" => "Get details about the TeamSpeak user", "usage" => "Use \$_GET parameter 'user'", "example" => "/api/?user" + ), + "userstats" => array( + "desc" => "Get additional statistics about the TeamSpeak user", + "usage" => "Use \$_GET parameter 'userstats'", + "example" => "/api/?userstats" ) ) ); diff --git a/install.php b/install.php index 820540c..7406889 100644 --- a/install.php +++ b/install.php @@ -1,6 +1,6 @@  @@ -81,8 +81,8 @@ $db[\'dbname\']=\''.$dbname.'\'; $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; $count++; } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`user` (`uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`cldbid` int(10) NOT NULL default '0',`count` DECIMAL(14,3),`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`lastseen` int(10) UNSIGNED NOT NULL default '0',`grpid` int(10) NOT NULL default '0',`nextup` int(10) NOT NULL default '0',`idle` DECIMAL(14,3),`cldgroup` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`online` tinyint(1) NOT NULL default '0',`boosttime` int(10) UNSIGNED NOT NULL default '0',`rank` smallint(5) UNSIGNED NOT NULL default '65535',`platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`firstcon` int(10) UNSIGNED NOT NULL default '0',`except` tinyint(1) NOT NULL default '0',`grpsince` int(10) UNSIGNED NOT NULL default '0',`cid` int(10) NOT NULL default '0')") === false) { + + if($mysqlcon->exec("CREATE TABLE `$dbname`.`user` (`uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`cldbid` int(10) NOT NULL default '0',`count` DECIMAL(14,3) NOT NULL default '0',`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,`lastseen` int(10) UNSIGNED NOT NULL default '0',`grpid` int(10) NOT NULL default '0',`nextup` int(10) NOT NULL default '0',`idle` DECIMAL(14,3) NOT NULL default '0',`cldgroup` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`online` tinyint(1) NOT NULL default '0',`boosttime` int(10) UNSIGNED NOT NULL default '0',`rank` smallint(5) UNSIGNED NOT NULL default '65535',`platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,`nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,`version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,`firstcon` int(10) UNSIGNED NOT NULL default '0',`except` tinyint(1) NOT NULL default '0',`grpsince` int(10) UNSIGNED 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 { @@ -100,7 +100,7 @@ $db[\'dbname\']=\''.$dbname.'\'; } } - if($mysqlcon->exec("CREATE TABLE `$dbname`.`groups` (`sgid` int(10) UNSIGNED NOT NULL default '0' PRIMARY KEY,`sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`iconid` bigint(10) NOT NULL default '0',`icondate` int(10) UNSIGNED NOT NULL default '0',`sortid` int(10) NOT NULL default '0',`type` tinyint(1) NOT NULL default '0',`ext` char(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`groups` (`sgid` int(10) UNSIGNED NOT NULL default '0' PRIMARY KEY,`sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,`iconid` bigint(10) NOT NULL default '0',`icondate` int(10) UNSIGNED NOT NULL default '0',`sortid` int(10) NOT NULL default '0',`type` tinyint(1) NOT NULL default '0',`ext` char(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; $count++; } @@ -139,7 +139,7 @@ $db[\'dbname\']=\''.$dbname.'\'; $count++; } - if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_user` (`uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`removed` tinyint(1) NOT NULL default '0',`total_connections` smallint(5) NOT NULL default '0',`count_week` mediumint(8) UNSIGNED NOT NULL default '0',`count_month` mediumint(8) UNSIGNED NOT NULL default '0',`idle_week` mediumint(8) UNSIGNED NOT NULL default '0',`idle_month` mediumint(8) UNSIGNED NOT NULL default '0',`client_description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`base64hash` char(40) 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` mediumint(8) UNSIGNED NOT NULL default '0',`active_month` mediumint(8) UNSIGNED NOT NULL default '0')") === false) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_user` (`uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`removed` tinyint(1) NOT NULL default '0',`total_connections` smallint(5) NOT NULL default '0',`count_week` mediumint(8) UNSIGNED NOT NULL default '0',`count_month` mediumint(8) UNSIGNED NOT NULL default '0',`idle_week` mediumint(8) UNSIGNED NOT NULL default '0',`idle_month` mediumint(8) UNSIGNED NOT NULL default '0',`client_description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,`base64hash` char(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,`client_total_up` bigint(15) NOT NULL default '0',`client_total_down` bigint(15) NOT NULL default '0',`active_week` mediumint(8) UNSIGNED NOT NULL default '0',`active_month` mediumint(8) UNSIGNED NOT NULL default '0')") === false) { $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; $count++; } @@ -149,12 +149,12 @@ $db[\'dbname\']=\''.$dbname.'\'; $count++; } - if($mysqlcon->exec("CREATE TABLE `$dbname`.`admin_addtime` (`uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`timestamp` int(10) UNSIGNED NOT NULL default '0',`timecount` int(10) NOT NULL default '0', PRIMARY KEY (`uuid`,`timestamp`))") === false) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`admin_addtime` (`uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`timestamp` int(10) UNSIGNED 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` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`iphash` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,`ip` varchar(39) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`user_iphash` (`uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`iphash` varchar(255) 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++; } @@ -164,7 +164,7 @@ $db[\'dbname\']=\''.$dbname.'\'; $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_snapshot_id'),('last_snapshot_time'),('last_update'),('reset_user_time'),('reset_user_delete'),('reset_group_withdraw'),('reset_webspace_cache'),('reset_usage_graph'),('reset_stop_after')") === false) { + 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_donut_chars'),('calc_server_stats'),('get_avatars'),('last_snapshot_id'),('last_snapshot_time'),('last_update'),('reload_trigger'),('reset_user_time'),('reset_user_delete'),('reset_group_withdraw'),('reset_webspace_cache'),('reset_usage_graph'),('reset_stop_after'),('runtime_check'),('update_groups')") === false) { $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; $count++; } @@ -199,12 +199,12 @@ $db[\'dbname\']=\''.$dbname.'\'; $count++; } - if($mysqlcon->exec("CREATE TABLE `$dbname`.`addon_assign_groups` (`uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`grpids` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`addon_assign_groups` (`uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,`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($mysqlcon->exec("CREATE TABLE `$dbname`.`csrf_token` (`token` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `timestamp` int(10) UNSIGNED NOT NULL default '0', `sessionid` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { + if($mysqlcon->exec("CREATE TABLE `$dbname`.`csrf_token` (`token` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `timestamp` int(10) UNSIGNED NOT NULL default '0', `sessionid` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL)") === false) { $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
'; $err_lvl = 2; $count++; } @@ -227,7 +227,7 @@ if (isset($_POST['install'])) { unset($err_msg); if ($_POST['dbtype'] == 'mysql') { if(!in_array('pdo_mysql', get_loaded_extensions())) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP MySQL','//php.net/manual/en/ref.pdo-mysql.php'); $err_lvl = 3; + unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP MySQL','//php.net/manual/en/ref.pdo-mysql.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; } else { $dboptions = array(); } @@ -293,7 +293,7 @@ if(isset($_POST['confweb'])) { $nextupinfomsg3 = $mysqlcon->quote("You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."); $servernews = $mysqlcon->quote("Message
This is an example Message.
Change this Message inside the webinterface."); $rankupmsg = $mysqlcon->quote('Hey, you reached a higher rank, since you already connected for %1$s days, %2$s hours and %3$s minutes to our TS3 server.[B]Keep it up![/B] ;-) '); - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_date_format', $dateformat), ('default_language', 'en'), ('logs_path', '{$logpath}'), ('logs_timezone', 'Europe/Berlin'), ('logs_debug_level', '5'), ('logs_rotation_size', '5'), ('rankup_boost_definition', ''), ('rankup_clean_clients_period', '86400'), ('rankup_clean_clients_switch', '1'), ('rankup_client_database_id_change_switch', '0'), ('rankup_definition', '31536000=>8'), ('rankup_excepted_channel_id_list', ''), ('rankup_excepted_group_id_list', ''), ('rankup_excepted_mode', '0'), ('rankup_excepted_unique_client_id_list', ''), ('rankup_hash_ip_addresses_mode', '2'), ('rankup_ignore_idle_time', '600'), ('rankup_message_to_user', $rankupmsg), ('rankup_message_to_user_switch', '1'), ('rankup_next_message_1', $nextupinfomsg1), ('rankup_next_message_2', $nextupinfomsg2), ('rankup_next_message_3', $nextupinfomsg3), ('rankup_next_message_mode', '1'), ('rankup_time_assess_mode', '0'), ('stats_column_active_time_switch', '0'), ('stats_column_current_group_since_switch', '1'), ('stats_column_current_server_group_switch', '1'), ('stats_column_client_db_id_switch', '0'), ('stats_column_client_name_switch', '1'), ('stats_column_idle_time_switch', '1'), ('stats_column_last_seen_switch', '1'), ('stats_column_next_rankup_switch', '1'), ('stats_column_next_server_group_switch', '1'), ('stats_column_online_time_switch', '1'), ('stats_column_rank_switch', '1'), ('stats_column_unique_id_switch', '0'), ('stats_column_default_sort', 'rank'), ('stats_column_default_order', 'asc'), ('stats_server_news', $servernews), ('stats_show_clients_in_highest_rank_switch', '1'), ('stats_show_excepted_clients_switch', '1'), ('stats_show_maxclientsline_switch', 0), ('stats_show_site_navigation_switch', '1'), ('stats_time_bronze','50'), ('stats_time_silver','100'), ('stats_time_gold','250'), ('stats_time_legend','500'), ('stats_connects_bronze','50'), ('stats_connects_silver','100'), ('stats_connects_gold','250'), ('stats_connects_legend','500'), ('teamspeak_avatar_download_delay', '0'), ('teamspeak_default_channel_id', '0'), ('teamspeak_host_address', '127.0.0.1'), ('teamspeak_query_command_delay', '0'), ('teamspeak_query_encrypt_switch', '0'), ('teamspeak_query_nickname', 'Ranksystem'), ('teamspeak_query_pass', ''), ('teamspeak_query_port', '10011'), ('teamspeak_query_user', 'serveradmin'), ('teamspeak_verification_channel_id', '0'), ('teamspeak_voice_port', '9987'), ('version_current_using', '{$rsversion}'), ('version_latest_available', '{$rsversion}'), ('version_update_channel', 'stable'), ('webinterface_access_count', '0'), ('webinterface_access_last', '0'), ('webinterface_admin_client_unique_id_list', ''), ('webinterface_advanced_mode', '0'), ('webinterface_fresh_installation', '1'), ('webinterface_pass', '{$pass}'), ('webinterface_user', '{$user}');") === false) { + if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_date_format', $dateformat), ('default_language', 'en'), ('logs_path', '{$logpath}'), ('logs_timezone', 'Europe/Berlin'), ('logs_debug_level', '5'), ('logs_rotation_size', '5'), ('rankup_boost_definition', ''), ('rankup_clean_clients_period', '86400'), ('rankup_clean_clients_switch', '1'), ('rankup_client_database_id_change_switch', '0'), ('rankup_definition', '31536000=>7'), ('rankup_excepted_channel_id_list', ''), ('rankup_excepted_group_id_list', ''), ('rankup_excepted_mode', '0'), ('rankup_excepted_unique_client_id_list', ''), ('rankup_hash_ip_addresses_mode', '2'), ('rankup_ignore_idle_time', '600'), ('rankup_message_to_user', $rankupmsg), ('rankup_message_to_user_switch', '1'), ('rankup_next_message_1', $nextupinfomsg1), ('rankup_next_message_2', $nextupinfomsg2), ('rankup_next_message_3', $nextupinfomsg3), ('rankup_next_message_mode', '1'), ('rankup_time_assess_mode', '0'), ('stats_api_keys', ''), ('stats_column_active_time_switch', '0'), ('stats_column_current_group_since_switch', '1'), ('stats_column_current_server_group_switch', '1'), ('stats_column_client_db_id_switch', '0'), ('stats_column_client_name_switch', '1'), ('stats_column_idle_time_switch', '1'), ('stats_column_last_seen_switch', '1'), ('stats_column_next_rankup_switch', '1'), ('stats_column_next_server_group_switch', '1'), ('stats_column_online_time_switch', '1'), ('stats_column_rank_switch', '1'), ('stats_column_unique_id_switch', '0'), ('stats_column_default_sort', 'rank'), ('stats_column_default_order', 'asc'), ('stats_server_news', $servernews), ('stats_show_clients_in_highest_rank_switch', '1'), ('stats_show_excepted_clients_switch', '1'), ('stats_show_maxclientsline_switch', 0), ('stats_show_site_navigation_switch', '1'), ('stats_time_bronze','50'), ('stats_time_silver','100'), ('stats_time_gold','250'), ('stats_time_legend','500'), ('stats_connects_bronze','50'), ('stats_connects_silver','100'), ('stats_connects_gold','250'), ('stats_connects_legend','500'), ('teamspeak_avatar_download_delay', '0'), ('teamspeak_default_channel_id', '0'), ('teamspeak_host_address', '127.0.0.1'), ('teamspeak_query_command_delay', '0'), ('teamspeak_query_encrypt_switch', '0'), ('teamspeak_query_nickname', 'Ranksystem'), ('teamspeak_query_pass', ''), ('teamspeak_query_port', '10011'), ('teamspeak_query_user', 'serveradmin'), ('teamspeak_verification_channel_id', '0'), ('teamspeak_voice_port', '9987'), ('version_current_using', '{$rsversion}'), ('version_latest_available', '{$rsversion}'), ('version_update_channel', 'stable'), ('webinterface_access_count', '0'), ('webinterface_access_last', '0'), ('webinterface_admin_client_unique_id_list', ''), ('webinterface_advanced_mode', '0'), ('webinterface_fresh_installation', '1'), ('webinterface_pass', '{$pass}'), ('webinterface_user', '{$user}');") === false) { $err_msg = $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 2; } else { $err_msg = $lang['isntwiusr'].'

'; @@ -311,12 +311,8 @@ 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_writable('./other/dbconfig.php')) { - unset($err_msg); $err_msg = $lang['isntwicfg']; $err_lvl = 3; + $err_msg = $lang['isntwicfg']; $err_lvl = 3; } $file_err_count=0; @@ -350,50 +346,59 @@ if (!isset($_POST['install']) && !isset($_POST['confweb'])) { $err_msg .= $file_err_msg; } - if(!function_exists('exec')) { - unset($err_msg); $err_msg = sprintf($lang['insterr3'],'exec','//php.net/manual/en/book.exec.php'); $err_lvl = 3; - } else { - require_once('other/phpcommand.php'); - exec("$phpcommand -v", $phpversioncheck); - $output = ''; - foreach($phpversioncheck as $line) $output .= print_r($line, true).'
'; - if(empty($phpversioncheck) || strtoupper(substr($phpversioncheck[0], 0, 3)) != "PHP") { - $err_msg = sprintf($lang['chkphpcmd'], "\"other/phpcommand.php\"", "\"other/phpcommand.php\"", '
'.$phpcommand.'
', '
'.$output.'


', '
php -v
'); - $err_lvl = 3; - } else { - $exploded = explode(' ',$phpversioncheck[0]); - if($exploded[1] != phpversion()) { - $err_msg = sprintf($lang['chkphpmulti'], phpversion(), "\"other/phpcommand.php\"", $exploded[1], "\"other/phpcommand.php\"", "\"other/phpcommand.php\"", '
'.$phpcommand.'
'); - if(getenv('PATH')!='') { - $err_msg .= "

".sprintf($lang['chkphpmulti2'], '
'.getenv('PATH')); - } - $err_lvl = 2; - } - } - } if(!class_exists('PDO')) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP PDO','//php.net/manual/en/book.pdo.php'); $err_lvl = 3; + $err_msg = sprintf($lang['insterr2'],'PHP PDO','//php.net/manual/en/book.pdo.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; } if(version_compare(phpversion(), '5.5.0', '<')) { - unset($err_msg); $err_msg = sprintf($lang['insterr4'],phpversion()); $err_lvl = 3; + $err_msg = sprintf($lang['insterr4'],phpversion()); $err_lvl = 3; } if(!function_exists('simplexml_load_file')) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP SimpleXML','//php.net/manual/en/book.simplexml.php'); $err_lvl = 3; + $err_msg = sprintf($lang['insterr2'],'PHP SimpleXML','//php.net/manual/en/book.simplexml.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; } if(!in_array('curl', get_loaded_extensions())) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP cURL','//php.net/manual/en/book.curl.php'); $err_lvl = 3; + $err_msg = sprintf($lang['insterr2'],'PHP cURL','//php.net/manual/en/book.curl.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; } if(!in_array('zip', get_loaded_extensions())) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP Zip','//php.net/manual/en/book.zip.php'); $err_lvl = 3; + $err_msg = sprintf($lang['insterr2'],'PHP Zip','//php.net/manual/en/book.zip.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; } if(!in_array('mbstring', get_loaded_extensions())) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP mbstring','//php.net/manual/en/book.mbstring.php'); $err_lvl = 3; + $err_msg = sprintf($lang['insterr2'],'PHP mbstring','//php.net/manual/en/book.mbstring.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; + } + if(!in_array('openssl', get_loaded_extensions())) { + unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP OpenSSL','//php.net/manual/en/book.openssl.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; $dis_login = 1; } if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { if(!in_array('com_dotnet', get_loaded_extensions())) { - unset($err_msg); $err_msg = sprintf($lang['insterr2'],'PHP COM and .NET (Windows only)','//php.net/manual/en/book.com.php'); $err_lvl = 3; + $err_msg = sprintf($lang['insterr2'],'PHP COM and .NET (Windows only)','//php.net/manual/en/book.com.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; } } + if(!function_exists('exec')) { + unset($err_msg); $err_msg = sprintf($lang['insterr3'],'exec','//php.net/manual/en/book.exec.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; + } else { + if ($err_msg == NULL) { + require_once('other/phpcommand.php'); + exec("$phpcommand -v", $phpversioncheck); + $output = ''; + foreach($phpversioncheck as $line) $output .= print_r($line, true).'
'; + if(empty($phpversioncheck) || strtoupper(substr($phpversioncheck[0], 0, 3)) != "PHP") { + $err_msg .= sprintf($lang['chkphpcmd'], "\"other/phpcommand.php\"", "\"other/phpcommand.php\"", '
'.$phpcommand.'
', '
'.$output.'


', '
php -v
'); $err_lvl = 3; + } else { + $exploded = explode(' ',$phpversioncheck[0]); + if($exploded[1] != phpversion()) { + $err_msg .= sprintf($lang['chkphpmulti'], phpversion(), "\"other/phpcommand.php\"", $exploded[1], "\"other/phpcommand.php\"", "\"other/phpcommand.php\"", '
'.$phpcommand.'
'); + if(getenv('PATH')!='') { + $err_msg .= "

".sprintf($lang['chkphpmulti2'], '
'.getenv('PATH')); $err_lvl = 2; + } + } + } + } + } + + if($err_msg == '' && (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")) { + $host = ""; + $err_msg = sprintf($lang['winav10'], $host,'!
', '
'); $err_lvl = 2; + } + if(!isset($err_lvl)) { unset($err_msg); } @@ -415,6 +420,11 @@ if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 || $dbname = $_POST['dbname']; $dbuser = $_POST['dbuser']; $dbpass = $_POST['dbpass']; + } elseif(isset($_GET["dbhost"]) && isset($_GET["dbname"]) && isset($_GET["dbuser"]) && isset($_GET["dbpass"])) { + $dbhost = $_GET["dbhost"]; + $dbname = $_GET['dbname']; + $dbuser = $_GET['dbuser']; + $dbpass = $_GET['dbpass']; } else { $dbhost = ""; $dbname = ""; @@ -626,7 +636,12 @@ if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 ||

+

+ +

+
 
+
 
diff --git a/jobs/addon_assign_groups.php b/jobs/addon_assign_groups.php index f84cb62..b9a3ac8 100644 --- a/jobs/addon_assign_groups.php +++ b/jobs/addon_assign_groups.php @@ -1,9 +1,9 @@ $value) { + if(isset($db_cache['addon_assign_groups']) && count($db_cache['addon_assign_groups']) != 0) { + foreach($db_cache['addon_assign_groups'] as $uuid => $value) { $cld_groups = explode(',', $value['grpids']); foreach($cld_groups as $group) { foreach ($allclients as $client) { @@ -30,15 +30,15 @@ function addon_assign_groups($addons_config,$ts3,$cfg,$dbname,$allclients,$selec usleep($cfg['teamspeak_query_command_delay']); $ts3->serverGroupClientAdd($group, $cldbid); enter_logfile($cfg,6,"Added servergroup $group from user $nickname (UID: $uid), requested by Add-on 'Assign Servergroups'"); - } - catch (Exception $e) { + } catch (Exception $e) { enter_logfile($cfg,2,"addon_assign_groups:".$e->getCode().': '."Error while adding group: ".$e->getMessage()); } } } } } - $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups`; "; + $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups`;\n"; + unset($db_cache['addon_assign_groups']); } return $sqlexec; } diff --git a/jobs/bot.php b/jobs/bot.php index ec946ac..02225e9 100644 --- a/jobs/bot.php +++ b/jobs/bot.php @@ -13,7 +13,6 @@ if(ini_get('memory_limit') !== NULL) { $memory_limit = "{none set}"; } set_time_limit(0); -error_reporting(0); function shutdown($mysqlcon = NULL,$cfg,$loglevel,$reason,$nodestroypid = TRUE) { if($nodestroypid === TRUE) { @@ -33,26 +32,13 @@ function enter_logfile($cfg,$loglevel,$logtext,$norotate = false) { if($loglevel!=9 && $loglevel > $cfg['logs_debug_level']) return; $file = $cfg['logs_path'].'ranksystem.log'; switch ($loglevel) { - case 1: - $loglevel = " CRITICAL "; - break; - case 2: - $loglevel = " ERROR "; - break; - case 3: - $loglevel = " WARNING "; - break; - case 4: - $loglevel = " NOTICE "; - break; - case 5: - $loglevel = " INFO "; - break; - case 6: - $loglevel = " DEBUG "; - break; - default: - $loglevel = " NONE "; + case 1: $loglevel = " CRITICAL "; break; + case 2: $loglevel = " ERROR "; break; + case 3: $loglevel = " WARNING "; break; + case 4: $loglevel = " NOTICE "; break; + case 5: $loglevel = " INFO "; break; + case 6: $loglevel = " DEBUG "; break; + default:$loglevel = " NONE "; } $loghandle = fopen($file, 'a'); fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"); @@ -103,6 +89,8 @@ 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/server_usage.php'); +require_once(substr(__DIR__,0,-4).'jobs/calc_user_snapshot.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'); @@ -221,8 +209,8 @@ function run_bot() { enter_logfile($cfg,2," Error due getting TS3 server version - ".$e->getCode().': '.$e->getMessage()); } - if(version_compare($ts3version['version'],'3.6.9','=<')) { - enter_logfile($cfg,3," Your TS3 server is outdated, please update it.. also to be ready for TS5!"); + if(version_compare($ts3version['version'],'3.11.9','<=')) { + enter_logfile($cfg,3," Your TS3 server is outdated, please update it!"); } enter_logfile($cfg,9," Select virtual server..."); @@ -304,7 +292,7 @@ function run_bot() { $loglevel = "6 - DEBUG"; break; default: - $loglevel = "UNKOWN"; + $loglevel = "UNKNOWN"; } enter_logfile($cfg,9," Log Level: ".$loglevel); enter_logfile($cfg,6," Serverside config 'max_execution_time' (PHP.ini): ".$max_execution_time." sec."); @@ -348,11 +336,12 @@ function run_bot() { $serverinfo = $ts3server->serverInfo(); $select_arr = array(); - $sqlexec2 .= update_groups($ts3server,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,$select_arr,1); + $db_cache = array(); + $sqlexec2 .= update_groups($ts3server,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,$db_cache,1); if($mysqlcon->exec($sqlexec2) === false) { enter_logfile($cfg,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } - unset($sqlexec2,$select_arr,$groupslist,$serverinfo,$ts3version); + unset($sqlexec2,$select_arr,$db_cache,$groupslist,$serverinfo,$ts3version); $errcnf = 0; enter_logfile($cfg,4," Downloading of servergroups finished. Recheck the config."); @@ -402,13 +391,13 @@ function run_bot() { } } } - + if($cfg['webinterface_fresh_installation'] == 1) { if($mysqlcon->exec("UPDATE `$dbname`.`cfg_params` SET `value`=0 WHERE `param`='webinterface_fresh_installation'") === false) { enter_logfile($cfg,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } } - + unset($groupslist,$errcnf,$checkgroups,$lastupdate,$updcld,$loglevel,$whoami,$ts3host,$max_execution_time,$memory_limit,$memory_limit); enter_logfile($cfg,9,"Config check [done]"); @@ -416,101 +405,130 @@ function run_bot() { $looptime = $cfg['temp_count_laps'] = $cfg['temp_whole_laptime'] = $cfg['temp_count_laptime'] = 0; $cfg['temp_last_laptime'] = ''; usleep(3000000); + if(($get_db_data = $mysqlcon->query("SELECT * FROM `$dbname`.`user`; SELECT MAX(`timestamp`) AS `timestamp` FROM `$dbname`.`server_usage`; SELECT * FROM `$dbname`.`job_check`; SELECT * FROM `$dbname`.`groups`; SELECT * FROM `$dbname`.`addon_assign_groups`; SELECT * FROM `$dbname`.`admin_addtime`; ")) === false) { + shutdown($mysqlcon,$cfg,1,"Select on DB failed: ".print_r($mysqlcon->errorInfo(), true)); + } + + $count_select = 0; + $db_cache = 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: + $db_cache['all_user'] = $fetched_array; + break; + case 2: + $db_cache['max_timestamp_server_usage'] = $fetched_array; + break; + case 3: + $db_cache['job_check'] = $fetched_array; + break; + case 4: + $db_cache['groups'] = $fetched_array; + break; + case 5: + $db_cache['addon_assign_groups'] = $fetched_array; + break; + case 6: + $db_cache['admin_addtime'] = $fetched_array; + break 2; + } + $get_db_data->nextRowset(); + } + unset($get_db_data,$fetched_array,$single_select); + + $addons_config = load_addons_config($mysqlcon,$lang,$cfg,$dbname); + while(1) { $sqlexec = ''; $starttime = microtime(true); + + unset($db_cache['job_check']); + if(($db_cache['job_check'] = $mysqlcon->query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { + enter_logfile($cfg,3," Select on DB failed for job check: ".print_r($mysqlcon->errorInfo(), true)); + } - if(($get_db_data = $mysqlcon->query("SELECT * FROM `$dbname`.`user`; 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 * FROM `$dbname`.`groups`; SELECT * FROM `$dbname`.`addon_assign_groups`; SELECT * FROM `$dbname`.`admin_addtime`; ")) === false) { - shutdown($mysqlcon,$cfg,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['count_version_user'] = $fetched_array; - break; - case 3: - $select_arr['max_timestamp_server_usage'] = $fetched_array; - break; - case 4: - $select_arr['job_check'] = $fetched_array; - break; - case 5: - $select_arr['uuid_stats_user'] = $fetched_array; - break; - case 6: - $select_arr['groups'] = $fetched_array; - break; - case 7: - $select_arr['addon_assign_groups'] = $fetched_array; - break; - case 8: - $select_arr['admin_addtime'] = $fetched_array; - break 2; + if($db_cache['job_check']['reload_trigger']['timestamp'] == 1) { + unset($db_cache['addon_assign_groups'],$db_cache['admin_addtime']); + if(($get_db_data = $mysqlcon->query("SELECT * FROM `$dbname`.`addon_assign_groups`; SELECT * FROM `$dbname`.`admin_addtime`;")) === false) { + shutdown($mysqlcon,$cfg,1,"Select on DB failed: ".print_r($mysqlcon->errorInfo(), true)); } - $get_db_data->nextRowset(); + + $count_select = 0; + while($single_select = $get_db_data) { + $fetched_array = $single_select->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); + $count_select++; + + switch ($count_select) { + case 1: + $db_cache['addon_assign_groups'] = $fetched_array; + break; + case 2: + $db_cache['admin_addtime'] = $fetched_array; + break 2; + } + $get_db_data->nextRowset(); + } + unset($get_db_data,$fetched_array,$single_select,$count_select); + $db_cache['job_check']['reload_trigger']['timestamp'] = 0; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=0 WHERE `job_name`='reload_trigger';\n"; } - unset($get_db_data,$fetched_array,$single_select); - enter_logfile($cfg,6,"SQL select needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); + + enter_logfile($cfg,6,"SQL Select needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); check_shutdown($cfg); - $addons_config = load_addons_config($mysqlcon,$lang,$cfg,$dbname); + $ts3server->clientListReset(); - usleep($cfg['teamspeak_query_command_delay']); - $allclients = $ts3server->clientList(); + $allclients = $ts3server->clientListtsn("-uid -groups -times -info -country"); usleep($cfg['teamspeak_query_command_delay']); $ts3server->serverInfoReset(); - usleep($cfg['teamspeak_query_command_delay']); $serverinfo = $ts3server->serverInfo(); - $sqlexec .= calc_user($ts3server,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$select_arr); - get_avatars($ts3server,$cfg); - $sqlexec .= clean($ts3server,$mysqlcon,$lang,$cfg,$dbname,$select_arr); - $sqlexec .= calc_serverstats($ts3server,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$select_arr,$phpcommand,$lang); - $sqlexec .= calc_userstats($ts3server,$mysqlcon,$cfg,$dbname,$select_arr); - $sqlexec .= update_groups($ts3server,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,$select_arr); + usleep($cfg['teamspeak_query_command_delay']); + + $sqlexec .= calc_user($ts3server,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$db_cache); + $sqlexec .= calc_userstats($ts3server,$mysqlcon,$cfg,$dbname,$db_cache); + $sqlexec .= get_avatars($ts3server,$cfg,$dbname,$db_cache); + $sqlexec .= clean($ts3server,$mysqlcon,$lang,$cfg,$dbname,$db_cache); + $sqlexec .= calc_serverstats($ts3server,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$db_cache,$phpcommand,$lang); + $sqlexec .= server_usage($mysqlcon,$cfg,$dbname,$serverinfo,$db_cache); + $sqlexec .= calc_user_snapshot($cfg,$dbname,$db_cache); + $sqlexec .= update_groups($ts3server,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,$db_cache); if($addons_config['assign_groups_active']['value'] == '1') { - if($cfg['temp_addon_assign_groups'] == "disabled") { - enter_logfile($cfg,5,"Loading new addon..."); - enter_logfile($cfg,5," Addon: 'assign_groups' [ON]"); - if(!function_exists('addon_assign_groups')) { - include(substr(__DIR__,0,-4).'jobs/addon_assign_groups.php'); - } - $cfg['temp_addon_assign_groups'] = "enabled"; - enter_logfile($cfg,5,"Loading new addon [done]"); - } - $sqlexec .= addon_assign_groups($addons_config,$ts3server,$cfg,$dbname,$allclients,$select_arr); - } elseif ($cfg['temp_addon_assign_groups'] == "enabled") { - enter_logfile($cfg,5,"Disable addon..."); - enter_logfile($cfg,5," Addon: 'assign_groups' [OFF]"); - $cfg['temp_addon_assign_groups'] = "disabled"; - enter_logfile($cfg,5,"Disable addon [done]"); + $sqlexec .= addon_assign_groups($addons_config,$ts3server,$cfg,$dbname,$allclients,$db_cache); } - + $startsql = microtime(true); - if($mysqlcon->exec($sqlexec) === false) { - enter_logfile($cfg,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - enter_logfile($cfg,6,"SQL exections needs: ".(number_format(round((microtime(true) - $startsql), 5),5))); if($cfg['logs_debug_level'] > 5) { + $sqlexec = substr($sqlexec, 0, -1); + $sqlarr = explode(";\n", $sqlexec); + foreach($sqlarr as $singlesql) { + if(strpos($singlesql, 'UPDATE') !== false || strpos($singlesql, 'INSERT') !== false || strpos($singlesql, 'DELETE') !== false || strpos($singlesql, 'SET') !== false) { + if($mysqlcon->exec($singlesql) === false) { + enter_logfile($cfg,4,"Executing SQL: ".$singlesql); + enter_logfile($cfg,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } + } elseif(strpos($singlesql, ' ') === false) { + enter_logfile($cfg,2,"Command not recognized as SQL: ".$singlesql); + } + } $sqlfile = $cfg['logs_path'].'temp_sql_dump.sql'; $sqldump = fopen($sqlfile, 'wa+'); - fwrite($sqldump, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").' SQL: '.$sqlexec."\n"); + fwrite($sqldump, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ")." SQL:\n".$sqlexec); fclose($sqldump); + } else { + if($mysqlcon->exec($sqlexec) === false) { + enter_logfile($cfg,2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } } + enter_logfile($cfg,6,"SQL executions needs: ".(number_format(round((microtime(true) - $startsql), 5),5))); - reset_rs($ts3server,$mysqlcon,$lang,$cfg,$dbname,$select_arr); + reset_rs($ts3server,$mysqlcon,$lang,$cfg,$dbname,$db_cache); unset($sqlexec,$select_arr,$sqldump); - + $looptime = microtime(true) - $starttime; $cfg['temp_whole_laptime'] = $cfg['temp_whole_laptime'] + $looptime; $cfg['temp_count_laptime']++; diff --git a/jobs/calc_serverstats.php b/jobs/calc_serverstats.php index f02aa0a..06f18dd 100644 --- a/jobs/calc_serverstats.php +++ b/jobs/calc_serverstats.php @@ -1,103 +1,72 @@ ($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_online_time = round($total_online_time); - $total_inactive_time = round($total_inactive_time); - $total_active_time = $total_online_time - $total_inactive_time; - - // Event Handling each 6 hours - // Duplicate users Table in snapshot Table - if(($nowtime - $select_arr['job_check']['last_snapshot_time']['timestamp']) > 21600) { - if(isset($select_arr['all_user'])) { - $nextid = $select_arr['job_check']['last_snapshot_id']['timestamp'] + 1; - if ($nextid > 121) $nextid = $nextid - 121; - - $allinsertsnap = ''; - foreach ($select_arr['all_user'] as $uuid => $insertsnap) { - if(isset($insertsnap['cldbid']) && $insertsnap['cldbid'] != NULL) { - $allinsertsnap = $allinsertsnap . "({$nextid},{$insertsnap['cldbid']},".round($insertsnap['count']).",".round($insertsnap['idle'])."),"; - } + foreach($db_cache['all_user'] as $uuid) { + if ($uuid['lastseen']>($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++; } - $allinsertsnap = substr($allinsertsnap, 0, -1); - if ($allinsertsnap != '') { - $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `id`={$nextid}; INSERT INTO `$dbname`.`user_snapshot` (`id`,`cldbid`,`count`,`idle`) VALUES $allinsertsnap; UPDATE `$dbname`.`job_check` SET `timestamp`={$nextid} WHERE `job_name`='last_snapshot_id'; UPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='last_snapshot_time'; "; - } - unset($allinsertsnap); - } - } - - $total_user = count($select_arr['all_user']); - 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; - } - - $platform_array = array_count_values(str_word_count($platform_string, 1)); - unset($platform_string); - $platform_other = $platform_1 = $platform_2 = $platform_3 = $platform_4 = $platform_5 = 0; - if(!isset($cfg['temp_cache_platforms'])) { - $allinsertplatform = ''; - foreach ($platform_array as $platform => $count) { - switch ($platform) { - case "Windows": - $platform_1 = $count; - break; - case "iOS": - $platform_2 = $count; - break; - case "Linux": - $platform_3 = $count; - break; - case "Android": - $platform_4 = $count; - break; - case "OSX": - $platform_5 = $count; - break; - default: - $platform_other = $platform_other + $count; + if(isset($country_array[$uuid['nation']])) { + $country_array[$uuid['nation']]++; + } else { + $country_array[$uuid['nation']] = 1; } - $allinsertplatform .= "('{$platform}',{$count}),"; - $cfg['temp_cache_platforms'][$platform] = $count; + + if(isset($platform_array[$uuid['platform']])) { + $platform_array[$uuid['platform']]++; + } else { + $platform_array[$uuid['platform']] = 1; + } + + if(isset($count_version_user[$uuid['version']])) { + $count_version_user[$uuid['version']]++; + } else { + $count_version_user[$uuid['version']] = 1; + } + + $total_online_time = $total_online_time + $uuid['count']; + $total_inactive_time = $total_inactive_time + $uuid['idle']; } - if($allinsertplatform != '') { - $allinsertplatform = substr($allinsertplatform, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`stats_platforms`; INSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES $allinsertplatform; "; + + arsort($country_array); + arsort($platform_array); + arsort($count_version_user); + $total_online_time = round($total_online_time); + $total_inactive_time = round($total_inactive_time); + $total_active_time = $total_online_time - $total_inactive_time; + + $total_user = count($db_cache['all_user']); + + 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; } - unset($platform_array,$allinsertplatform,$platform,$count); - } else { - $allupdateplatform = $updateplatform = $insertplatform = ''; - if(isset($cfg['temp_cache_platforms'])) { + + + $platform_other = $platform_1 = $platform_2 = $platform_3 = $platform_4 = $platform_5 = 0; + if(!isset($cfg['temp_cache_platforms'])) { + $allinsertplatform = ''; foreach ($platform_array as $platform => $count) { switch ($platform) { case "Windows": @@ -118,74 +87,65 @@ function calc_serverstats($ts3,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$selec default: $platform_other = $platform_other + $count; } - - if(isset($cfg['temp_cache_platforms'][$platform]) && $cfg['temp_cache_platforms'][$platform] == $count) { - continue; - } elseif(isset($cfg['temp_cache_platforms'][$platform])) { - $cfg['temp_cache_platforms'][$platform] = $count; - $allupdateplatform = "'{$platform}',"; - $updateplatform .= "WHEN `platform`='{$platform}' THEN {$count} "; - } else { - $cfg['temp_cache_platforms'][$platform] = $count; - $insertplatform .= "('{$platform}',{$count}),"; + $allinsertplatform .= "('{$platform}',{$count}),"; + $cfg['temp_cache_platforms'][$platform] = $count; + } + if($allinsertplatform != '') { + $allinsertplatform = substr($allinsertplatform, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`stats_platforms`;\nINSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES $allinsertplatform;\n"; + } + unset($platform_array,$allinsertplatform,$platform,$count); + } else { + $allupdateplatform = $updateplatform = $insertplatform = ''; + if(isset($cfg['temp_cache_platforms'])) { + foreach ($platform_array as $platform => $count) { + switch ($platform) { + case "Windows": + $platform_1 = $count; + break; + case "iOS": + $platform_2 = $count; + break; + case "Linux": + $platform_3 = $count; + break; + case "Android": + $platform_4 = $count; + break; + case "OSX": + $platform_5 = $count; + break; + default: + $platform_other = $platform_other + $count; + } + + if(isset($cfg['temp_cache_platforms'][$platform]) && $cfg['temp_cache_platforms'][$platform] == $count) { + continue; + } elseif(isset($cfg['temp_cache_platforms'][$platform])) { + $cfg['temp_cache_platforms'][$platform] = $count; + $allupdateplatform = "'{$platform}',"; + $updateplatform .= "WHEN `platform`='{$platform}' THEN {$count} "; + } else { + $cfg['temp_cache_platforms'][$platform] = $count; + $insertplatform .= "('{$platform}',{$count}),"; + } } } - } - if($updateplatform != '' && $allupdateplatform != '') { - $allupdateplatform = substr($allupdateplatform, 0, -1); - $sqlexec .= "UPDATE `$dbname`.`stats_platforms` SET `count`=CASE {$updateplatform}END WHERE `platform` IN ({$allupdateplatform}); "; - } - if($insertplatform != '') { - $insertplatform = substr($insertplatform, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES $insertplatform; "; - } - unset($platform_array,$allupdateplatform,$updateplatform,$insertplatform,$platform,$count); - } - - - $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 = ''; - if(!isset($cfg['temp_cache_nations'])) { - foreach ($country_array as $nation => $count) { - $country_counter++; - switch ($country_counter) { - case 1: - $country_nation_name_1 = $nation; - $country_nation_1 = $count; - break; - case 2: - $country_nation_name_2 = $nation; - $country_nation_2 = $count; - break; - case 3: - $country_nation_name_3 = $nation; - $country_nation_3 = $count; - break; - case 4: - $country_nation_name_4 = $nation; - $country_nation_4 = $count; - break; - case 5: - $country_nation_name_5 = $nation; - $country_nation_5 = $count; - break; - default: - $country_nation_other = $country_nation_other + $count; + if($updateplatform != '' && $allupdateplatform != '') { + $allupdateplatform = substr($allupdateplatform, 0, -1); + $sqlexec .= "UPDATE `$dbname`.`stats_platforms` SET `count`=CASE {$updateplatform}END WHERE `platform` IN ({$allupdateplatform});\n"; } - $allinsertnation .= "('{$nation}',{$count}),"; - $cfg['temp_cache_nations'][$nation] = $count; + if($insertplatform != '') { + $insertplatform = substr($insertplatform, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES $insertplatform;\n"; + } + unset($platform_array,$allupdateplatform,$updateplatform,$insertplatform,$platform,$count); } - if($allinsertnation != '') { - $allinsertnation = substr($allinsertnation, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`stats_nations`; INSERT INTO `$dbname`.`stats_nations` (`nation`,`count`) VALUES $allinsertnation; "; - } - unset($country_array,$allinsertnation,$nation,$count); - } else { - $allupdatenation = $updatenation = $insertnation = ''; - if(isset($cfg['temp_cache_nations'])) { + + + $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 = ''; + if(!isset($cfg['temp_cache_nations'])) { foreach ($country_array as $nation => $count) { $country_counter++; switch ($country_counter) { @@ -212,188 +172,173 @@ function calc_serverstats($ts3,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$selec default: $country_nation_other = $country_nation_other + $count; } - - if(isset($cfg['temp_cache_nations'][$nation]) && $cfg['temp_cache_nations'][$nation] == $count) { - continue; - } elseif(isset($cfg['temp_cache_nations'][$nation])) { - $cfg['temp_cache_nations'][$nation] = $count; - $allupdatenation = "'{$nation}',"; - $updatenation .= "WHEN `nation`='{$nation}' THEN {$count} "; - } else { - $cfg['temp_cache_nations'][$nation] = $count; - $insertnation .= "('{$nation}',{$count}),"; + $allinsertnation .= "('{$nation}',{$count}),"; + $cfg['temp_cache_nations'][$nation] = $count; + } + if($allinsertnation != '') { + $allinsertnation = substr($allinsertnation, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`stats_nations`;\nINSERT INTO `$dbname`.`stats_nations` (`nation`,`count`) VALUES $allinsertnation;\n"; + } + unset($country_array,$allinsertnation,$nation,$count); + } else { + $allupdatenation = $updatenation = $insertnation = ''; + if(isset($cfg['temp_cache_nations'])) { + foreach ($country_array as $nation => $count) { + $country_counter++; + switch ($country_counter) { + case 1: + $country_nation_name_1 = $nation; + $country_nation_1 = $count; + break; + case 2: + $country_nation_name_2 = $nation; + $country_nation_2 = $count; + break; + case 3: + $country_nation_name_3 = $nation; + $country_nation_3 = $count; + break; + case 4: + $country_nation_name_4 = $nation; + $country_nation_4 = $count; + break; + case 5: + $country_nation_name_5 = $nation; + $country_nation_5 = $count; + break; + default: + $country_nation_other = $country_nation_other + $count; + } + + if(isset($cfg['temp_cache_nations'][$nation]) && $cfg['temp_cache_nations'][$nation] == $count) { + continue; + } elseif(isset($cfg['temp_cache_nations'][$nation])) { + $cfg['temp_cache_nations'][$nation] = $count; + $allupdatenation = "'{$nation}',"; + $updatenation .= "WHEN `nation`='{$nation}' THEN {$count} "; + } else { + $cfg['temp_cache_nations'][$nation] = $count; + $insertnation .= "('{$nation}',{$count}),"; + } } } - } - if($updatenation != '' && $allupdatenation != '') { - $allupdatenation = substr($allupdatenation, 0, -1); - $sqlexec .= "UPDATE `$dbname`.`stats_nations` SET `count`=CASE {$updatenation}END WHERE `nation` IN ({$allupdatenation}); "; - } - if($insertnation != '') { - $insertnation = substr($insertnation, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`stats_nations` (`nation`,`count`) VALUES $insertnation; "; - } - unset($country_array,$allupdatenation,$updatenation,$insertnation,$nation,$count); - } - - - $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 = $version_other = 0; - if(!isset($cfg['temp_cache_versions'])) { - $allinsertversion = ''; - foreach($select_arr['count_version_user'] as $version => $count) { - $count_version++; - switch ($count_version) { - case 1: - $version_name_1 = $version; - $version_1 = $count['count']; - break; - case 2: - $version_name_2 = $version; - $version_2 = $count['count']; - break; - case 3: - $version_name_3 = $version; - $version_3 = $count['count']; - break; - case 4: - $version_name_4 = $version; - $version_4 = $count['count']; - break; - case 5: - $version_name_5 = $version; - $version_5 = $count['count']; - break; - default: - $version_other = $version_other + $count['count']; + if($updatenation != '' && $allupdatenation != '') { + $allupdatenation = substr($allupdatenation, 0, -1); + $sqlexec .= "UPDATE `$dbname`.`stats_nations` SET `count`=CASE {$updatenation}END WHERE `nation` IN ({$allupdatenation});\n"; } - $allinsertversion .= "('{$version}',{$count['count']}),"; - $cfg['temp_cache_versions'][$version] = $count['count']; + if($insertnation != '') { + $insertnation = substr($insertnation, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`stats_nations` (`nation`,`count`) VALUES $insertnation;\n"; + } + unset($country_array,$allupdatenation,$updatenation,$insertnation,$nation,$count); } - if($allinsertversion != '') { - $allinsertversion = substr($allinsertversion, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`stats_versions`; INSERT INTO `$dbname`.`stats_versions` (`version`,`count`) VALUES $allinsertversion; "; - } - unset($allinsertversion); - } else { - $allupdatenversion = $updateversion = $insertversion = ''; - if(isset($cfg['temp_cache_versions'])) { - foreach($select_arr['count_version_user'] as $version => $count) { + + + $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 = $version_other = 0; + if(!isset($cfg['temp_cache_versions'])) { + $allinsertversion = ''; + foreach($count_version_user as $version => $count) { $count_version++; switch ($count_version) { case 1: $version_name_1 = $version; - $version_1 = $count['count']; + $version_1 = $count; break; case 2: $version_name_2 = $version; - $version_2 = $count['count']; + $version_2 = $count; break; case 3: $version_name_3 = $version; - $version_3 = $count['count']; + $version_3 = $count; break; case 4: $version_name_4 = $version; - $version_4 = $count['count']; + $version_4 = $count; break; case 5: $version_name_5 = $version; - $version_5 = $count['count']; + $version_5 = $count; break; default: - $version_other = $version_other + $count['count']; - } - - if(isset($cfg['temp_cache_versions'][$version]) && $cfg['temp_cache_versions'][$version] == $count['count']) { - continue; - } elseif(isset($cfg['temp_cache_versions'][$version])) { - $cfg['temp_cache_versions'][$version] = $count['count']; - $allupdatenversion = "'{$version}',"; - $updateversion .= "WHEN `version`='{$version}' THEN {$count['count']} "; - } else { - $cfg['temp_cache_versions'][$version] = $count['count']; - $insertversion .= "('{$version}',{$count['count']}),"; + $version_other = $version_other + $count; } + $allinsertversion .= "('{$version}',{$count}),"; + $cfg['temp_cache_versions'][$version] = $count; } - } - if($updateversion != '' && $allupdatenversion != '') { - $allupdatenversion = substr($allupdatenversion, 0, -1); - $sqlexec .= "UPDATE `$dbname`.`stats_versions` SET `count`=CASE {$updateversion}END WHERE `version` IN ({$allupdatenversion}); "; - } - if($insertversion != '') { - $insertversion = substr($insertversion, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`stats_versions` (`version`,`count`) VALUES $insertversion; "; - } - unset($allupdatenversion,$updateversion,$insertversion); - } - - - $server_used_slots = $serverinfo['virtualserver_clientsonline'] - $serverinfo['virtualserver_queryclientsonline']; - $server_free_slots = $serverinfo['virtualserver_maxclients'] - $server_used_slots; - $server_name = $mysqlcon->quote($serverinfo['virtualserver_name'], ENT_QUOTES); - - // Write stats/index and Nations, Platforms & Versions - $sqlexec .= "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,`server_status`=$server_status,`server_free_slots`=$server_free_slots,`server_used_slots`=$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`=$server_name,`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']}',`user_today`=$user_today,`user_week`=$user_week,`user_month`=$user_month,`user_quarter`=$user_quarter; "; - - // 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($cfg,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($cfg,2,"calc_serverstats 13:".print_r($mysqlcon->errorInfo(), true)); - } - if(count($uuidsoff) != 0) { - foreach($uuidsoff as $uuid) { - $count = $uuid['count']; - if ($cfg['rankup_time_assess_mode'] == 1) { - $activetime = $count - $uuid['idle']; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($activetime)); - } else { - $activetime = $count; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($count)); - } - $grpcount=0; - foreach ($cfg['rankup_definition'] as $time => $groupid) { - $grpcount++; - if ($activetime > $time) { - if($grpcount == 1) { - $nextup = 0; - } - break; + if($allinsertversion != '') { + $allinsertversion = substr($allinsertversion, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`stats_versions`;\nINSERT INTO `$dbname`.`stats_versions` (`version`,`count`) VALUES $allinsertversion;\n"; + } + unset($allinsertversion); + } else { + $allupdatenversion = $updateversion = $insertversion = ''; + if(isset($cfg['temp_cache_versions'])) { + foreach($count_version_user as $version => $count) { + $count_version++; + switch ($count_version) { + case 1: + $version_name_1 = $version; + $version_1 = $count; + break; + case 2: + $version_name_2 = $version; + $version_2 = $count; + break; + case 3: + $version_name_3 = $version; + $version_3 = $count; + break; + case 4: + $version_name_4 = $version; + $version_4 = $count; + break; + case 5: + $version_name_5 = $version; + $version_5 = $count; + break; + default: + $version_other = $version_other + $count; + } + + if(isset($cfg['temp_cache_versions'][$version]) && $cfg['temp_cache_versions'][$version] == $count) { + continue; + } elseif(isset($cfg['temp_cache_versions'][$version])) { + $cfg['temp_cache_versions'][$version] = $count; + $allupdatenversion = "'{$version}',"; + $updateversion .= "WHEN `version`='{$version}' THEN {$count} "; } else { - $nextup = $time - $activetime; + $cfg['temp_cache_versions'][$version] = $count; + $insertversion .= "('{$version}',{$count}),"; } } - $updatenextup[] = array( - "uuid" => $uuid['uuid'], - "nextup" => $nextup - ); } - unset($uuidsoff); + if($updateversion != '' && $allupdatenversion != '') { + $allupdatenversion = substr($allupdatenversion, 0, -1); + $sqlexec .= "UPDATE `$dbname`.`stats_versions` SET `count`=CASE {$updateversion}END WHERE `version` IN ({$allupdatenversion});\n"; + } + if($insertversion != '') { + $insertversion = substr($insertversion, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`stats_versions` (`version`,`count`) VALUES $insertversion;\n"; + } + unset($allupdatenversion,$updateversion,$insertversion); } + - 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,{$serverinfo['virtualserver_channelsonline']}); 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,{$serverinfo['virtualserver_channelsonline']}); "; - } - enter_logfile($cfg,6,"Calc next rankup for offline user [DONE]"); + $server_used_slots = $serverinfo['virtualserver_clientsonline'] - $serverinfo['virtualserver_queryclientsonline']; + $server_free_slots = $serverinfo['virtualserver_maxclients'] - $server_used_slots; + $server_name = $mysqlcon->quote($serverinfo['virtualserver_name'], ENT_QUOTES); + + // Write stats/index and Nations, Platforms & Versions + $sqlexec .= "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,`server_status`=$server_status,`server_free_slots`=$server_free_slots,`server_used_slots`=$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`=$server_name,`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']}',`user_today`=$user_today,`user_week`=$user_week,`user_month`=$user_month,`user_quarter`=$user_quarter;\n"; } + // Calc Values for server stats - if($select_arr['job_check']['calc_server_stats']['timestamp'] < ($nowtime - 900)) { - $weekago = $select_arr['job_check']['last_snapshot_id']['timestamp'] - 28; - $monthago = $select_arr['job_check']['last_snapshot_id']['timestamp'] - 120; + if($db_cache['job_check']['calc_server_stats']['timestamp'] < ($nowtime - 899)) { + $db_cache['job_check']['calc_server_stats']['timestamp'] = $nowtime; + $weekago = $db_cache['job_check']['last_snapshot_id']['timestamp'] - 28; + $monthago = $db_cache['job_check']['last_snapshot_id']['timestamp'] - 120; if ($weekago < 1) $weekago = $weekago + 121; if ($monthago < 1) $monthago = $monthago + 121; @@ -402,7 +347,7 @@ function calc_serverstats($ts3,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$selec } if ($entry_snapshot_count['id'] > 28) { // Calc total_online_week - if(($snapshot_count_week = $mysqlcon->query("SELECT (SELECT SUM(`count`) FROM `user_snapshot` WHERE `id`={$select_arr['job_check']['last_snapshot_id']['timestamp']}) - (SELECT SUM(`count`) FROM `user_snapshot` WHERE `id`={$weekago}) AS `count`;")->fetch(PDO::FETCH_ASSOC)) === false) { + if(($snapshot_count_week = $mysqlcon->query("SELECT (SELECT SUM(`count`) FROM `$dbname`.`user_snapshot` WHERE `id`={$db_cache['job_check']['last_snapshot_id']['timestamp']}) - (SELECT SUM(`count`) FROM `$dbname`.`user_snapshot` WHERE `id`={$weekago}) AS `count`;")->fetch(PDO::FETCH_ASSOC)) === false) { enter_logfile($cfg,2,"calc_serverstats 20:".print_r($mysqlcon->errorInfo(), true)); } if($snapshot_count_week['count'] == NULL) { @@ -415,7 +360,7 @@ function calc_serverstats($ts3,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$selec } if ($entry_snapshot_count['id'] > 120) { // Calc total_online_month - if(($snapshot_count_month = $mysqlcon->query("SELECT (SELECT SUM(`count`) FROM `user_snapshot` WHERE `id`={$select_arr['job_check']['last_snapshot_id']['timestamp']}) - (SELECT SUM(`count`) FROM `user_snapshot` WHERE `id`={$monthago}) AS `count`;")->fetch(PDO::FETCH_ASSOC)) === false) { + if(($snapshot_count_month = $mysqlcon->query("SELECT (SELECT SUM(`count`) FROM `$dbname`.`user_snapshot` WHERE `id`={$db_cache['job_check']['last_snapshot_id']['timestamp']}) - (SELECT SUM(`count`) FROM `$dbname`.`user_snapshot` WHERE `id`={$monthago}) AS `count`;")->fetch(PDO::FETCH_ASSOC)) === false) { enter_logfile($cfg,2,"calc_serverstats 21:".print_r($mysqlcon->errorInfo(), true)); } if($snapshot_count_month['count'] == NULL) { @@ -426,9 +371,10 @@ function calc_serverstats($ts3,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$selec } 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'; "; + $sqlexec .= "UPDATE `$dbname`.`stats_server` SET `total_online_month`={$total_online_month},`total_online_week`={$total_online_week};\nUPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='calc_server_stats';\n"; - if ($select_arr['job_check']['get_version']['timestamp'] < ($nowtime - 43200)) { + if ($db_cache['job_check']['get_version']['timestamp'] < ($nowtime - 43199)) { + $db_cache['job_check']['get_version']['timestamp'] = $nowtime; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://ts-n.net/ranksystem/'.$cfg['version_update_channel']); curl_setopt($ch, CURLOPT_REFERER, 'TSN Ranksystem'); @@ -477,18 +423,18 @@ function calc_serverstats($ts3,$mysqlcon,$cfg,$dbname,$dbtype,$serverinfo,$selec } update_rs($mysqlcon,$lang,$cfg,$dbname,$phpcommand); } - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='get_version'; UPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['version_latest_available']}' WHERE `param`='version_latest_available';"; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='get_version';\nUPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['version_latest_available']}' WHERE `param`='version_latest_available';\n"; } //Calc Rank if ($cfg['rankup_time_assess_mode'] == 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`; "; + $sqlexec .= "SET @a:=0;\nUPDATE `$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`;\n"; //MySQL 8 or above - //UPDATE `user` AS `u` INNER JOIN (SELECT RANK() OVER (ORDER BY (`count` - `idle`) DESC) AS `rank`, `uuid` FROM `user` WHERE `except`<2) AS `s` USING (`uuid`) SET `u`.`rank`=`s`.`rank`; + //UPDATE `user` AS `u` INNER JOIN (SELECT RANK() OVER (ORDER BY (`count` - `idle`) DESC) AS `rank`, `uuid` FROM `$dbname`.`user` WHERE `except`<2) AS `s` USING (`uuid`) SET `u`.`rank`=`s`.`rank`; } 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`; "; + $sqlexec .= "SET @a:=0;\nUPDATE `$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`;\n"; //MySQL 8 or above - //UPDATE `user` AS `u` INNER JOIN (SELECT RANK() OVER (ORDER BY `count` DESC) AS `rank`, `uuid` FROM `user` WHERE `except`<2) AS `s` USING (`uuid`) SET `u`.`rank`=`s`.`rank`; + //UPDATE `user` AS `u` INNER JOIN (SELECT RANK() OVER (ORDER BY `count` DESC) AS `rank`, `uuid` FROM `$dbname`.`user` WHERE `except`<2) AS `s` USING (`uuid`) SET `u`.`rank`=`s`.`rank`; } } diff --git a/jobs/calc_user.php b/jobs/calc_user.php index 6cabb61..05653c4 100644 --- a/jobs/calc_user.php +++ b/jobs/calc_user.php @@ -1,5 +1,5 @@ 1800) { enter_logfile($cfg,4,"Much time gone since last scan.. set addtime to 1 second."); @@ -18,13 +18,14 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se $addtime = 1; } - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='calc_user_lastscan'; UPDATE `$dbname`.`user` SET `online`=0 WHERE `online`=1; "; + $db_cache['job_check']['calc_user_lastscan']['timestamp'] = $nowtime; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='calc_user_lastscan';\nUPDATE `$dbname`.`user` SET `online`=0 WHERE `online`=1;\n"; $multipleonline = $updatedata = $insertdata = 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])) { + if(isset($db_cache['admin_addtime']) && count($db_cache['admin_addtime']) != 0) { + foreach($db_cache['admin_addtime'] as $uuid => $value) { + if(isset($db_cache['all_user'][$uuid])) { $sqlexec2 = ''; $isonline = 0; foreach($allclients as $client) { @@ -32,15 +33,15 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se $isonline = 1; $temp_cldbid = $client['client_database_id']; if($value['timecount'] < 0) { - $select_arr['all_user'][$uuid]['count'] += $value['timecount']; - if($select_arr['all_user'][$uuid]['count'] < 0) { - $select_arr['all_user'][$uuid]['count'] = 0; - $select_arr['all_user'][$uuid]['idle'] = 0; - } elseif ($select_arr['all_user'][$uuid]['idle'] > $select_arr['all_user'][$uuid]['count']) { - $select_arr['all_user'][$uuid]['idle'] = $select_arr['all_user'][$uuid]['count']; + $db_cache['all_user'][$uuid]['count'] += $value['timecount']; + if($db_cache['all_user'][$uuid]['count'] < 0) { + $db_cache['all_user'][$uuid]['count'] = 0; + $db_cache['all_user'][$uuid]['idle'] = 0; + } elseif ($db_cache['all_user'][$uuid]['idle'] > $db_cache['all_user'][$uuid]['count']) { + $db_cache['all_user'][$uuid]['idle'] = $db_cache['all_user'][$uuid]['count']; } } else { - $select_arr['all_user'][$uuid]['count'] += $value['timecount']; + $db_cache['all_user'][$uuid]['count'] += $value['timecount']; } } } @@ -89,6 +90,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se unset($sqlexec2, $user, $usersnap); } } + unset($db_cache['admin_addtime']); } foreach ($allclients as $client) { @@ -96,6 +98,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se $name = $mysqlcon->quote((mb_substr($client['client_nickname'],0,30)), ENT_QUOTES); $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); $sgroups = array_flip(explode(",", $client['client_servergroups'])); + if (!isset($multipleonline[$uid]) && $client['client_version'] != "ServerQuery" && $client['client_type']!="1") { $clientidle = floor($client['client_idle_time'] / 1000); if(isset($cfg['rankup_ignore_idle_time']) && $clientidle < $cfg['rankup_ignore_idle_time']) { @@ -107,52 +110,53 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se } elseif($cfg['rankup_excepted_group_id_list'] != NULL && array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list'])) { $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) && $cfg['rankup_excepted_mode'] == 2) { - $select_arr['all_user'][$uid]['count'] = 0; - $select_arr['all_user'][$uid]['idle'] = 0; + if(isset($db_cache['all_user'][$uid]['except']) && ($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 2) { + $db_cache['all_user'][$uid]['count'] = 0; + $db_cache['all_user'][$uid]['idle'] = 0; enter_logfile($cfg,5,sprintf($lang['resettime'], $name, $uid, $client['client_database_id'])); - $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `uuid`='$uid'; "; + $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `uuid`='$uid';\n"; } $except = 0; } - if(isset($select_arr['all_user'][$uid])) { - $idle = $select_arr['all_user'][$uid]['idle'] + $clientidle; - if ($select_arr['all_user'][$uid]['cldbid'] != $client['client_database_id'] && $cfg['rankup_client_database_id_change_switch'] == 1) { - enter_logfile($cfg,5,sprintf($lang['changedbid'], $name, $uid, $client['client_database_id'], $select_arr['all_user'][$uid]['cldbid'])); + if(isset($db_cache['all_user'][$uid])) { + $idle = $db_cache['all_user'][$uid]['idle'] + $clientidle; + if ($db_cache['all_user'][$uid]['cldbid'] != $client['client_database_id'] && $cfg['rankup_client_database_id_change_switch'] == 1) { + enter_logfile($cfg,5,sprintf($lang['changedbid'], $name, $uid, $client['client_database_id'], $db_cache['all_user'][$uid]['cldbid'])); $count = 1; $idle = 0; } else { $hitboost = 0; - $boosttime = $select_arr['all_user'][$uid]['boosttime']; + $boosttime = $db_cache['all_user'][$uid]['boosttime']; if(isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != NULL) { foreach($cfg['rankup_boost_definition'] as $boost) { if(isset($sgroups[$boost['group']])) { $hitboost = 1; - if($select_arr['all_user'][$uid]['boosttime']==0) { + if($db_cache['all_user'][$uid]['boosttime']==0) { $boosttime = $nowtime; } else { - if ($nowtime > $select_arr['all_user'][$uid]['boosttime'] + $boost['time']) { + if ($nowtime > $db_cache['all_user'][$uid]['boosttime'] + $boost['time']) { usleep($cfg['teamspeak_query_command_delay']); try { $ts3->serverGroupClientDel($boost['group'], $client['client_database_id']); $boosttime = 0; - enter_logfile($cfg,5,sprintf($lang['sgrprm'], $select_arr['groups'][$boost['group']]['sgidname'], $boost['group'], $name, $uid, $client['client_database_id'])); + enter_logfile($cfg,5,sprintf($lang['sgrprm'], $db_cache['groups'][$boost['group']]['sgidname'], $boost['group'], $name, $uid, $client['client_database_id']).' [Boost-Group]'); } catch (Exception $e) { - enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'])); + enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); } } } - $count = $addtime * $boost['factor'] + $select_arr['all_user'][$uid]['count']; + $count = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['count']; if ($clientidle > $addtime) { - $idle = $addtime * $boost['factor'] + $select_arr['all_user'][$uid]['idle']; + $idle = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['idle']; } } } } if($cfg['rankup_boost_definition'] == 0 or $hitboost == 0) { - $count = $addtime + $select_arr['all_user'][$uid]['count']; + $count = $addtime + $db_cache['all_user'][$uid]['count']; + $boosttime = 0; if ($clientidle > $addtime) { - $idle = $addtime + $select_arr['all_user'][$uid]['idle']; + $idle = $addtime + $db_cache['all_user'][$uid]['idle']; } } } @@ -173,58 +177,58 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se $grpcount=0; foreach ($cfg['rankup_definition'] as $time => $groupid) { $grpcount++; - if(isset($cfg['rankup_excepted_channel_id_list'][$client['cid']]) || (($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 1)) { - $count = $select_arr['all_user'][$uid]['count']; - $idle = $select_arr['all_user'][$uid]['idle']; + if(isset($cfg['rankup_excepted_channel_id_list'][$client['cid']]) || (($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 1)) { + $count = $db_cache['all_user'][$uid]['count']; + $idle = $db_cache['all_user'][$uid]['idle']; if($except != 2 && $except != 3) { $except = 1; } } elseif ($activetime > $time && !isset($cfg['rankup_excepted_unique_client_id_list'][$uid]) && ($cfg['rankup_excepted_group_id_list'] == NULL || !array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list']))) { if (!isset($sgroups[$groupid])) { - if ($select_arr['all_user'][$uid]['grpid'] != NULL && $select_arr['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$select_arr['all_user'][$uid]['grpid']])) { + if ($db_cache['all_user'][$uid]['grpid'] != NULL && $db_cache['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$db_cache['all_user'][$uid]['grpid']])) { usleep($cfg['teamspeak_query_command_delay']); try { - $ts3->serverGroupClientDel($select_arr['all_user'][$uid]['grpid'], $client['client_database_id']); - enter_logfile($cfg,5,sprintf($lang['sgrprm'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'], $name, $uid, $client['client_database_id'])); - if(isset($client_groups_rankup[$select_arr['all_user'][$uid]['grpid']])) unset($client_groups_rankup[$select_arr['all_user'][$uid]['grpid']]); + $ts3->serverGroupClientDel($db_cache['all_user'][$uid]['grpid'], $client['client_database_id']); + enter_logfile($cfg,5,sprintf($lang['sgrprm'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'], $name, $uid, $client['client_database_id'])); + if(isset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']])) unset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']]); } catch (Exception $e) { - enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'])); + enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); } } usleep($cfg['teamspeak_query_command_delay']); try { $ts3->serverGroupClientAdd($groupid, $client['client_database_id']); - $select_arr['all_user'][$uid]['grpsince'] = $nowtime; - enter_logfile($cfg,5,sprintf($lang['sgrpadd'], $select_arr['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $client['client_database_id'])); + $db_cache['all_user'][$uid]['grpsince'] = $nowtime; + enter_logfile($cfg,5,sprintf($lang['sgrpadd'], $db_cache['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $client['client_database_id'])); if ($cfg['rankup_message_to_user_switch'] == 1) { $days = $dtF->diff($dtT)->format('%a'); $hours = $dtF->diff($dtT)->format('%h'); $mins = $dtF->diff($dtT)->format('%i'); $secs = $dtF->diff($dtT)->format('%s'); - sendmessage($ts3, $cfg, $uid, sprintf($cfg['rankup_message_to_user'],$days,$hours,$mins,$secs,$select_arr['groups'][$groupid]['sgidname'],$client['client_nickname']), sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$groupid]['sgidname'],$groupid), 2); + sendmessage($ts3, $cfg, $uid, sprintf($cfg['rankup_message_to_user'],$days,$hours,$mins,$secs,$db_cache['groups'][$groupid]['sgidname'],$client['client_nickname']), sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$groupid]['sgidname'],$groupid), 2); } } catch (Exception $e) { - enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$groupid]['sgidname'], $groupid)); + enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$groupid]['sgidname'], $groupid)); } - $select_arr['all_user'][$uid]['grpid'] = $groupid; + $db_cache['all_user'][$uid]['grpid'] = $groupid; } if($grpcount == 1) { - $select_arr['all_user'][$uid]['nextup'] = 0; + $db_cache['all_user'][$uid]['nextup'] = 0; } break; } else { - $select_arr['all_user'][$uid]['nextup'] = $time - $activetime; + $db_cache['all_user'][$uid]['nextup'] = $time - $activetime; } } foreach($client_groups_rankup as $removegroup => $dummy) { - if($removegroup != NULL && $removegroup != 0 && $removegroup != $select_arr['all_user'][$uid]['grpid']){ + if($removegroup != NULL && $removegroup != 0 && $removegroup != $db_cache['all_user'][$uid]['grpid']){ try { usleep($cfg['teamspeak_query_command_delay']); $ts3->serverGroupClientDel($removegroup, $client['client_database_id']); - enter_logfile($cfg,5,sprintf("Removed WRONG servergroup %s (ID: %s) from user %s (unique Client-ID: %s; Client-database-ID %s).", $select_arr['groups'][$removegroup]['sgidname'], $removegroup, $name, $uid, $client['client_database_id'])); + enter_logfile($cfg,5,sprintf("Removed WRONG servergroup %s (ID: %s) from user %s (unique Client-ID: %s; Client-database-ID %s).", $db_cache['groups'][$removegroup]['sgidname'], $removegroup, $name, $uid, $client['client_database_id'])); } catch (Exception $e) { - enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$removegroup]['sgidname'], $removegroup)); + enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$removegroup]['sgidname'], $removegroup)); } } } @@ -235,8 +239,8 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se "count" => $count, "name" => $name, "lastseen" => $nowtime, - "grpid" => $select_arr['all_user'][$uid]['grpid'], - "nextup" => $select_arr['all_user'][$uid]['nextup'], + "grpid" => $db_cache['all_user'][$uid]['grpid'], + "nextup" => $db_cache['all_user'][$uid]['nextup'], "idle" => $idle, "cldgroup" => $client['client_servergroups'], "boosttime" => $boosttime, @@ -244,14 +248,18 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se "nation" => $client['client_country'], "version" => $client['client_version'], "except" => $except, - "grpsince" => $select_arr['all_user'][$uid]['grpsince'], + "grpsince" => $db_cache['all_user'][$uid]['grpsince'], "cid" => $client['cid'] ); + $db_cache['all_user'][$uid]['count'] = $count; + $db_cache['all_user'][$uid]['idle'] = $idle; + $db_cache['all_user'][$uid]['boosttime'] = $boosttime; + $db_cache['all_user'][$uid]['except'] = $except; } else { - $select_arr['all_user'][$uid]['grpid'] = '0'; + $db_cache['all_user'][$uid]['grpid'] = 0; foreach ($cfg['rankup_definition'] as $time => $groupid) { if (isset($sgroups[$groupid])) { - $select_arr['all_user'][$uid]['grpid'] = $groupid; + $db_cache['all_user'][$uid]['grpid'] = $groupid; break; } } @@ -261,7 +269,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se "count" => 0, "name" => $name, "lastseen" => $nowtime, - "grpid" => $select_arr['all_user'][$uid]['grpid'], + "grpid" => $db_cache['all_user'][$uid]['grpid'], "nextup" => (key($cfg['rankup_definition']) - 1), "idle" => 0, "cldgroup" => $client['client_servergroups'], @@ -274,11 +282,26 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se "grpsince" => 0, "cid" => $client['cid'] ); + $db_cache['all_user'][$uid]['cldbid'] = $client['client_database_id']; + $db_cache['all_user'][$uid]['count'] = 0; + $db_cache['all_user'][$uid]['idle'] = 0; + $db_cache['all_user'][$uid]['nextup'] = (key($cfg['rankup_definition']) - 1); + $db_cache['all_user'][$uid]['firstcon'] = $nowtime; + $db_cache['all_user'][$uid]['boosttime'] = 0; + $db_cache['all_user'][$uid]['grpsince'] = 0; + $db_cache['all_user'][$uid]['except'] = $except; enter_logfile($cfg,5,sprintf($lang['adduser'], $name, $uid, $client['client_database_id'])); } + $db_cache['all_user'][$uid]['name'] = $client['client_nickname']; + $db_cache['all_user'][$uid]['lastseen'] = $nowtime; + $db_cache['all_user'][$uid]['cldgroup'] = $client['client_servergroups']; + $db_cache['all_user'][$uid]['platform'] = $client['client_platform']; + $db_cache['all_user'][$uid]['nation'] = $client['client_country']; + $db_cache['all_user'][$uid]['version'] = $client['client_version']; + $db_cache['all_user'][$uid]['cid'] = $client['cid']; } } - unset($multipleonline,$allclients,$client,$select_arr); + unset($multipleonline,$allclients,$client); if ($updatedata != NULL) { $sqlinsertvalues = ''; @@ -286,7 +309,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se $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 .= "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`); "; + $sqlexec .= "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`);\n"; unset($updatedata, $sqlinsertvalues); } @@ -296,7 +319,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se $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,".$updatearr['firstcon']."),"; } $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`,`firstcon`) 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`),`firstcon`=VALUES(`firstcon`); "; + $sqlexec .= "INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`,`firstcon`) 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`),`firstcon`=VALUES(`firstcon`);\n"; unset($insertdata, $sqlinsertvalues); } diff --git a/jobs/calc_user_snapshot.php b/jobs/calc_user_snapshot.php new file mode 100644 index 0000000..e554dc8 --- /dev/null +++ b/jobs/calc_user_snapshot.php @@ -0,0 +1,30 @@ + 21600) { + if(isset($db_cache['all_user'])) { + $db_cache['job_check']['last_snapshot_id']['timestamp'] = $nextid = $db_cache['job_check']['last_snapshot_id']['timestamp'] + 1; + if ($nextid > 121) $nextid = $nextid - 121; + + $allinsertsnap = ''; + foreach ($db_cache['all_user'] as $uuid => $insertsnap) { + if(isset($insertsnap['cldbid']) && $insertsnap['cldbid'] != NULL) { + $allinsertsnap = $allinsertsnap . "({$nextid},{$insertsnap['cldbid']},".round($insertsnap['count']).",".round($insertsnap['idle'])."),"; + } + } + $allinsertsnap = substr($allinsertsnap, 0, -1); + if ($allinsertsnap != '') { + $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `id`={$nextid};\nINSERT INTO `$dbname`.`user_snapshot` (`id`,`cldbid`,`count`,`idle`) VALUES $allinsertsnap;\nUPDATE `$dbname`.`job_check` SET `timestamp`={$nextid} WHERE `job_name`='last_snapshot_id';\nUPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='last_snapshot_time';\n"; + } + unset($allinsertsnap); + } + } + + enter_logfile($cfg,6,"calc_user_snapshot needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); + return($sqlexec); +} \ No newline at end of file diff --git a/jobs/calc_userstats.php b/jobs/calc_userstats.php index 5d3b42a..14e848a 100644 --- a/jobs/calc_userstats.php +++ b/jobs/calc_userstats.php @@ -1,10 +1,10 @@ = $job_end) { $job_begin = 0; $job_end = 10; @@ -12,22 +12,27 @@ function calc_userstats($ts3,$mysqlcon,$cfg,$dbname,$select_arr) { $job_end = $job_begin + 10; } - $sqlhis = array_slice($select_arr['all_user'],$job_begin ,10); + $sqlhis = array_slice($db_cache['all_user'],$job_begin ,10); + $sqlfile = $cfg['logs_path'].'temp_sqlhis.sql'; + $sqldump = fopen($sqlfile, 'wa+'); + fwrite($sqldump, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").' SQL: '.print_r($sqlhis, true)."\n"); + fclose($sqldump); + $cldbids = ''; foreach ($sqlhis as $uuid => $userstats) { $cldbids .= $userstats['cldbid'].','; } $cldbids = substr($cldbids, 0, -1); - $weekago = $select_arr['job_check']['last_snapshot_id']['timestamp'] - 28; - $monthago = $select_arr['job_check']['last_snapshot_id']['timestamp'] - 120; + $weekago = $db_cache['job_check']['last_snapshot_id']['timestamp'] - 28; + $monthago = $db_cache['job_check']['last_snapshot_id']['timestamp'] - 120; if ($weekago < 1) $weekago = $weekago + 121; if ($monthago < 1) $monthago = $monthago + 121; - if(isset($sqlhis)) { + if(isset($sqlhis) && $sqlhis != NULL) { enter_logfile($cfg,6,"Update User Stats between ".$job_begin." and ".$job_end.":"); - if(($userdata = $mysqlcon->query("SELECT `cldbid`,`id`,`count`,`idle` FROM `$dbname`.`user_snapshot` WHERE `id` IN ({$select_arr['job_check']['last_snapshot_id']['timestamp']},{$weekago},{$monthago}) AND `cldbid` IN ($cldbids)")->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC)) === false) { + if(($userdata = $mysqlcon->query("SELECT `cldbid`,`id`,`count`,`idle` FROM `$dbname`.`user_snapshot` WHERE `id` IN ({$db_cache['job_check']['last_snapshot_id']['timestamp']},{$weekago},{$monthago}) AND `cldbid` IN ($cldbids)")->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC)) === false) { enter_logfile($cfg,2,"calc_userstats 6:".print_r($mysqlcon->errorInfo(), true)); } @@ -37,7 +42,7 @@ function calc_userstats($ts3,$mysqlcon,$cfg,$dbname,$select_arr) { check_shutdown($cfg); usleep($cfg['teamspeak_query_command_delay']); try { $clientinfo = $ts3->clientInfoDb($userstats['cldbid']); - $keybase = array_search($select_arr['job_check']['last_snapshot_id']['timestamp'], array_column($userdata[$userstats['cldbid']], 'id')); + $keybase = array_search($db_cache['job_check']['last_snapshot_id']['timestamp'], array_column($userdata[$userstats['cldbid']], 'id')); $keyweek = array_search($weekago, array_column($userdata[$userstats['cldbid']], 'id')); $keymonth = array_search($monthago, array_column($userdata[$userstats['cldbid']], 'id')); @@ -69,10 +74,11 @@ function calc_userstats($ts3,$mysqlcon,$cfg,$dbname,$select_arr) { if($getcldbid[0] != $userstats['cldbid']) { enter_logfile($cfg,4," Client (uuid: ".$uuid." cldbid: ".$userstats['cldbid'].") known by the Ranksystem changed its cldbid. New cldbid is ".$getcldbid[0]."."); if($cfg['rankup_client_database_id_change_switch'] == 1) { - $sqlexec .= "UPDATE `$dbname`.`user` SET `count`=0,`idle`=0 WHERE `uuid`='$uuid'; UPDATE `$dbname`.`stats_user` SET `count_week`=0,`count_month`=0,`idle_week`=0,`idle_month`=0,`achiev_time`=0,`achiev_time_perc`=0,`active_week`=0,`active_month`=0 WHERE `uuid`='$uuid'; DELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}'; "; + $db_cache['all_user'][$uuid]['cldbid'] = $getcldbid[0]; + $sqlexec .= "UPDATE `$dbname`.`user` SET `count`=0,`idle`=0 WHERE `uuid`='$uuid';\nUPDATE `$dbname`.`stats_user` SET `count_week`=0,`count_month`=0,`idle_week`=0,`idle_month`=0,`achiev_time`=0,`achiev_time_perc`=0,`active_week`=0,`active_month`=0 WHERE `uuid`='$uuid';\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; enter_logfile($cfg,4," ".sprintf($lang['changedbid'], $userstats['name'], $uuid, $userstats['cldbid'], $getcldbid[0])); } else { - $sqlexec .= "UPDATE `$dbname`.`user` SET `cldbid`={$getcldbid[0]} WHERE `uuid`='$uuid'; "; + $sqlexec .= "UPDATE `$dbname`.`user` SET `cldbid`={$getcldbid[0]} WHERE `uuid`='$uuid';\n"; enter_logfile($cfg,4," Store new cldbid ".$getcldbid[0]." for client (uuid: ".$uuid." old cldbid: ".$userstats['cldbid'].")"); } } else { @@ -86,18 +92,19 @@ function calc_userstats($ts3,$mysqlcon,$cfg,$dbname,$select_arr) { } } } else { - enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.$e->getMessage()."; Error due command clientdbinfo (permission: b_virtualserver_client_dbinfo needed)."); + enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.$e->getMessage()."; Error due command clientdbinfo for client-database-ID {$userstats['cldbid']} (permission: b_virtualserver_client_dbinfo needed)."); } } } unset($sqlhis,$userdataweekbegin,$userdataend,$userdatamonthbegin,$clientinfo,$count_week,$idle_week,$active_week,$count_month,$idle_month,$active_month,$clientdesc); + $db_cache['job_check']['calc_user_limit']['timestamp'] = $job_end; 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`,`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 `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`); "; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$job_end WHERE `job_name`='calc_user_limit';\nINSERT INTO `$dbname`.`stats_user` (`uuid`,`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 `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`);\n"; unset($allupdateuuid); } else { - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$job_end WHERE `job_name`='calc_user_limit'; "; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$job_end WHERE `job_name`='calc_user_limit';\n"; } } diff --git a/jobs/check_db.php b/jobs/check_db.php index 7457dcf..9fec635 100644 --- a/jobs/check_db.php +++ b/jobs/check_db.php @@ -1,8 +1,32 @@ query("SELECT MAX(`cldbid`) AS `cldbid` FROM `$dbname`.`user`")->fetchAll(PDO::FETCH_ASSOC); + $maxcldbid = $maxcldbid[0]['cldbid'] + 100000; + do { + $doublecldbidarr = $mysqlcon->query("SELECT `cldbid` FROM `$dbname`.`user` GROUP BY `cldbid` HAVING COUNT(`cldbid`) > 1")->fetchAll(PDO::FETCH_ASSOC); + if($doublecldbidarr != NULL) { + $doublecldbid = ''; + foreach($doublecldbidarr as $row) { + $doublecldbid .= $row['cldbid'].','; + } + $doublecldbid = substr($doublecldbid,0,-1); + $updatecldbid = $mysqlcon->query("SELECT `cldbid`,`uuid`,`name`,`lastseen` FROM `$dbname`.`user` WHERE `cldbid` in ({$doublecldbid})")->fetchAll(PDO::FETCH_ASSOC); + foreach($updatecldbid as $row) { + if($mysqlcon->exec("UPDATE `$dbname`.`user` SET `cldbid`='{$maxcldbid}' WHERE `uuid`='{$row['uuid']}'") === false) { + enter_logfile($cfg,1," Repair double client-database-ID failed (".$row['uuid']."): ".print_r($mysqlcon->errorInfo(), true)); + } else { + enter_logfile($cfg,4," Repair double client-database-ID for ".$row['name']." (".$row['uuid']."); old ID ".$row['cldbid']."; set virtual ID $maxcldbid"); + } + $maxcldbid++; + } + } + } while ($doublecldbidarr != NULL); + } + function set_new_version($mysqlcon,$cfg,$dbname) { if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('version_current_using','{$cfg['version_latest_available']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { enter_logfile($cfg,1," An error happens due updating the Ranksystem Database:".print_r($mysqlcon->errorInfo(), true)); @@ -16,7 +40,7 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { function old_files($cfg) { $del_folder = array('icons/','libs/ts3_lib/Adapter/Blacklist/','libs/ts3_lib/Adapter/TSDNS/','libs/ts3_lib/Adapter/Update/','libs/fonts/'); - $del_files = array('install.php','libs/combined_stats.css','libs/combined_stats.js','webinterface/admin.php','libs/ts3_lib/Adapter/Blacklist/Exception.php','libs/ts3_lib/Adapter/TSDNS/Exception.php','libs/ts3_lib/Adapter/Update/Exception.php','libs/ts3_lib/Adapter/Blacklist.php','libs/ts3_lib/Adapter/TSDNS.php','libs/ts3_lib/Adapter/Update.php','languages/core_ar.php','languages/core_cz.php','languages/core_de.php','languages/core_en.php','languages/core_es.php','languages/core_fr.php','languages/core_it.php','languages/core_nl.php','languages/core_pl.php','languages/core_pt.php','languages/core_ro.php','languages/core_ru.php'); + $del_files = array('install.php','libs/combined_stats.css','libs/combined_stats.js','webinterface/admin.php','libs/ts3_lib/Adapter/Blacklist/Exception.php','libs/ts3_lib/Adapter/TSDNS/Exception.php','libs/ts3_lib/Adapter/Update/Exception.php','libs/ts3_lib/Adapter/Blacklist.php','libs/ts3_lib/Adapter/TSDNS.php','libs/ts3_lib/Adapter/Update.php','languages/core_ar.php','languages/core_cz.php','languages/core_de.php','languages/core_en.php','languages/core_es.php','languages/core_fr.php','languages/core_it.php','languages/core_nl.php','languages/core_pl.php','languages/core_pt.php','languages/core_ro.php','languages/core_ru.php','webinterface/nav.php'); function rmdir_recursive($folder,$cfg) { foreach(scandir($folder) as $file) { if ('.' === $file || '..' === $file) continue; @@ -81,234 +105,12 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { check_writable($cfg,$mysqlcon); old_files($cfg); + check_double_cldbid($mysqlcon,$cfg,$dbname); if($cfg['version_current_using'] == $cfg['version_latest_available']) { enter_logfile($cfg,5," No newer version detected; Database check finished."); } else { enter_logfile($cfg,4," Update the Ranksystem Database to new version..."); - if(version_compare($cfg['version_current_using'], '1.2.1', '<')) { - 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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,4," [1.2.1] Created table stats_platforms successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.2', '<')) { - 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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,4," [1.2.2] Created table addon_assign_groups successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.3', '<')) { - if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`") === false) { } else { - enter_logfile($cfg,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($cfg,4," [1.2.3] Adjusted table config successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.4', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` MODIFY COLUMN `adminuuid` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($cfg,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($cfg,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($cfg,4," [1.2.4] Adjusted 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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,4," [1.2.4] Added new primary key on table stats_versions successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.5', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` MODIFY COLUMN `sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") === false) { } else { - enter_logfile($cfg,4," [1.2.5] Adjusted table groups successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.6', '<')) { - if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`) VALUES ('last_update')") === false) { } else { - enter_logfile($cfg,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($cfg,4," [1.2.6] Dropped old values from table config sucessfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.7', '<')) { - 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($cfg,4," [1.2.7] Created table admin_addtime successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` DROP COLUMN `ip`") === false) { } else { - enter_logfile($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,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($cfg,4," [1.2.7] Created table user_iphash successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.10', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` ADD (`tsencrypt` tinyint(1) NOT NULL default '0')") === false) { } else { - enter_logfile($cfg,4," [1.2.10] Adjusted table config successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.2.11', '<')) { - if($mysqlcon->exec("CREATE TABLE `$dbname`.`csrf_token` (`token` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `timestamp` bigint(11) NOT NULL default '0', `sessionid` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { - enter_logfile($cfg,4," [1.2.11] Created table csrf_token successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`config` DROP COLUMN `queryname2`") === false) { } else { - enter_logfile($cfg,4," [1.2.11] Dropped old value from table config successfully."); - } - if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_stats_nations`") === false) { } - if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_stats_platforms`") === false) { } - if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_stats_versions`") === false) { } - if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_addon_assign_groups`") === false) { } - } - if(version_compare($cfg['version_current_using'], '1.2.12', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_iphash` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `iphash` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Adjusted table user_iphash successfully."); - } - if($mysqlcon->exec("CREATE TABLE `$dbname`.`cfg_params` (`param` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `value` varchar(5000) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Created table cfg_params successfully."); - $oldconfigs = $mysqlcon->query("SELECT * FROM `$dbname`.`config`")->fetch(); - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_date_format', '".$oldconfigs['dateformat']."'), ('default_language', '".$oldconfigs['language']."'), ('logs_path', '".$oldconfigs['logpath']."'), ('logs_timezone', '".$oldconfigs['timezone']."'), ('rankup_boost_definition', '".$oldconfigs['boost']."'), ('rankup_clean_clients_period', '".$oldconfigs['cleanperiod']."'), ('rankup_clean_clients_switch', '".$oldconfigs['cleanclients']."'), ('rankup_client_database_id_change_switch', '".$oldconfigs['resetbydbchange']."'), ('rankup_definition', '".$oldconfigs['grouptime']."'), ('rankup_excepted_channel_id_list', '".$oldconfigs['exceptcid']."'), ('rankup_excepted_group_id_list', '".$oldconfigs['exceptgroup']."'), ('rankup_excepted_mode', '".$oldconfigs['resetexcept']."'), ('rankup_excepted_unique_client_id_list', '".$oldconfigs['exceptuuid']."'), ('rankup_hash_ip_addresses_mode', '".$oldconfigs['iphash']."'), ('rankup_ignore_idle_time', '".$oldconfigs['ignoreidle']."'), ('rankup_message_to_user', '".$oldconfigs['rankupmsg']."'), ('rankup_message_to_user_switch', '".$oldconfigs['msgtouser']."'), ('rankup_next_message_1', '".$oldconfigs['nextupinfomsg1']."'), ('rankup_next_message_2', '".$oldconfigs['nextupinfomsg2']."'), ('rankup_next_message_3', '".$oldconfigs['nextupinfomsg3']."'), ('rankup_next_message_mode', '".$oldconfigs['nextupinfo']."'), ('rankup_time_assess_mode', '".$oldconfigs['substridle']."'), ('stats_column_active_time_switch', '".$oldconfigs['showcolat']."'), ('stats_column_current_group_since_switch', '".$oldconfigs['showgrpsince']."'), ('stats_column_current_server_group_switch', '".$oldconfigs['showcolas']."'), ('stats_column_client_db_id_switch', '".$oldconfigs['showcoldbid']."'), ('stats_column_client_name_switch', '".$oldconfigs['showcolcld']."'), ('stats_column_idle_time_switch', '".$oldconfigs['showcolit']."'), ('stats_column_last_seen_switch', '".$oldconfigs['showcolls']."'), ('stats_column_next_rankup_switch', '".$oldconfigs['showcolnx']."'), ('stats_column_next_server_group_switch', '".$oldconfigs['showcolsg']."'), ('stats_column_online_time_switch', '".$oldconfigs['showcolot']."'), ('stats_column_rank_switch', '".$oldconfigs['showcolrg']."'), ('stats_column_unique_id_switch', '".$oldconfigs['showcoluuid']."'), ('stats_server_news', '".$oldconfigs['servernews']."'), ('stats_show_clients_in_highest_rank_switch', '".$oldconfigs['showhighest']."'), ('stats_show_excepted_clients_switch', '".$oldconfigs['showexcld']."'), ('stats_show_site_navigation_switch', '".$oldconfigs['shownav']."'), ('teamspeak_avatar_download_delay', '".$oldconfigs['avatar_delay']."'), ('teamspeak_default_channel_id', '".$oldconfigs['defchid']."'), ('teamspeak_host_address', '".$oldconfigs['tshost']."'), ('teamspeak_query_command_delay', '".$oldconfigs['slowmode']."'), ('teamspeak_query_encrypt_switch', '".$oldconfigs['tsencrypt']."'), ('teamspeak_query_nickname', '".$oldconfigs['queryname']."'), ('teamspeak_query_pass', '".$oldconfigs['tspass']."'), ('teamspeak_query_port', '".$oldconfigs['tsquery']."'), ('teamspeak_query_user', '".$oldconfigs['tsuser']."'), ('teamspeak_verification_channel_id', '".$oldconfigs['registercid']."'), ('teamspeak_voice_port', '".$oldconfigs['tsvoice']."'), ('version_current_using', '".$oldconfigs['currvers']."'), ('version_latest_available', '".$oldconfigs['newversion']."'), ('version_update_channel', '".$oldconfigs['upchannel']."'), ('webinterface_access_count', '".$oldconfigs['count_access']."'), ('webinterface_access_last', '".$oldconfigs['last_access']."'), ('webinterface_admin_client_unique_id_list', '".$oldconfigs['adminuuid']."'), ('webinterface_advanced_mode', '".$oldconfigs['advancemode']."'), ('webinterface_pass', '".$oldconfigs['webpass']."'), ('webinterface_user', '".$oldconfigs['webuser']."')") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Set new values to table cfg_params successfully."); - } - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Adjusted table user successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `base64hash` char(58) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Adjusted table stats_user successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_snapshot` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Adjusted table user_snapshot successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`addon_assign_groups` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Adjusted table addon_assign_groups successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`admin_addtime` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci") === false) { } else { - enter_logfile($cfg,4," [1.2.12] Adjusted table admin_addtime successfully."); - } - } - if(version_compare($cfg['version_current_using'], '1.3.0', '<')) { - if(empty($cfg['teamspeak_host_address']) || $cfg['teamspeak_host_address'] == '') { - enter_logfile($cfg,4," [1.3.0] Table cfg_params needs to be repaired."); - $oldconfigs = $mysqlcon->query("SELECT * FROM `$dbname`.`config`")->fetch(); - if($mysqlcon->exec("CREATE TABLE `$dbname`.`cfg_params` (`param` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `value` varchar(65535) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } - if($mysqlcon->exec("DELETE FROM `$dbname`.`cfg_params`") === false) { } - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_date_format', '".$oldconfigs['dateformat']."'), ('default_language', '".$oldconfigs['language']."'), ('logs_path', '".$oldconfigs['logpath']."'), ('logs_timezone', '".$oldconfigs['timezone']."'), ('rankup_boost_definition', '".$oldconfigs['boost']."'), ('rankup_clean_clients_period', '".$oldconfigs['cleanperiod']."'), ('rankup_clean_clients_switch', '".$oldconfigs['cleanclients']."'), ('rankup_client_database_id_change_switch', '".$oldconfigs['resetbydbchange']."'), ('rankup_definition', '".$oldconfigs['grouptime']."'), ('rankup_excepted_channel_id_list', '".$oldconfigs['exceptcid']."'), ('rankup_excepted_group_id_list', '".$oldconfigs['exceptgroup']."'), ('rankup_excepted_mode', '".$oldconfigs['resetexcept']."'), ('rankup_excepted_unique_client_id_list', '".$oldconfigs['exceptuuid']."'), ('rankup_hash_ip_addresses_mode', '".$oldconfigs['iphash']."'), ('rankup_ignore_idle_time', '".$oldconfigs['ignoreidle']."'), ('rankup_message_to_user_switch', '".$oldconfigs['msgtouser']."'), ('rankup_next_message_mode', '".$oldconfigs['nextupinfo']."'), ('rankup_time_assess_mode', '".$oldconfigs['substridle']."'), ('stats_column_active_time_switch', '".$oldconfigs['showcolat']."'), ('stats_column_current_group_since_switch', '".$oldconfigs['showgrpsince']."'), ('stats_column_current_server_group_switch', '".$oldconfigs['showcolas']."'), ('stats_column_client_db_id_switch', '".$oldconfigs['showcoldbid']."'), ('stats_column_client_name_switch', '".$oldconfigs['showcolcld']."'), ('stats_column_idle_time_switch', '".$oldconfigs['showcolit']."'), ('stats_column_last_seen_switch', '".$oldconfigs['showcolls']."'), ('stats_column_next_rankup_switch', '".$oldconfigs['showcolnx']."'), ('stats_column_next_server_group_switch', '".$oldconfigs['showcolsg']."'), ('stats_column_online_time_switch', '".$oldconfigs['showcolot']."'), ('stats_column_rank_switch', '".$oldconfigs['showcolrg']."'), ('stats_column_unique_id_switch', '".$oldconfigs['showcoluuid']."'), ('stats_server_news', '".$oldconfigs['servernews']."'), ('stats_show_clients_in_highest_rank_switch', '".$oldconfigs['showhighest']."'), ('stats_show_excepted_clients_switch', '".$oldconfigs['showexcld']."'), ('stats_show_site_navigation_switch', '".$oldconfigs['shownav']."'), ('teamspeak_avatar_download_delay', '".$oldconfigs['avatar_delay']."'), ('teamspeak_default_channel_id', '".$oldconfigs['defchid']."'), ('teamspeak_host_address', '".$oldconfigs['tshost']."'), ('teamspeak_query_command_delay', '".$oldconfigs['slowmode']."'), ('teamspeak_query_encrypt_switch', '".$oldconfigs['tsencrypt']."'), ('teamspeak_query_nickname', '".$oldconfigs['queryname']."'), ('teamspeak_query_pass', '".$oldconfigs['tspass']."'), ('teamspeak_query_port', '".$oldconfigs['tsquery']."'), ('teamspeak_query_user', '".$oldconfigs['tsuser']."'), ('teamspeak_verification_channel_id', '".$oldconfigs['registercid']."'), ('teamspeak_voice_port', '".$oldconfigs['tsvoice']."'), ('version_current_using', '".$oldconfigs['currvers']."'), ('version_latest_available', '".$oldconfigs['newversion']."'), ('version_update_channel', '".$oldconfigs['upchannel']."'), ('webinterface_access_count', '".$oldconfigs['count_access']."'), ('webinterface_access_last', '".$oldconfigs['last_access']."'), ('webinterface_admin_client_unique_id_list', '".$oldconfigs['adminuuid']."'), ('webinterface_advanced_mode', '".$oldconfigs['advancemode']."'), ('webinterface_pass', '".$oldconfigs['webpass']."'), ('webinterface_user', '".$oldconfigs['webuser']."')") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Repaired new config table cfg_params (part 1)."); - } - - $oldmsg0 = $mysqlcon->quote($oldconfigs['rankupmsg']); - $oldmsg1 = $mysqlcon->quote($oldconfigs['nextupinfomsg1']); - $oldmsg2 = $mysqlcon->quote($oldconfigs['nextupinfomsg2']); - $oldmsg3 = $mysqlcon->quote($oldconfigs['nextupinfomsg3']); - - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_message_to_user', {$oldmsg0}), ('rankup_next_message_1', {$oldmsg1}), ('rankup_next_message_2', {$oldmsg2}), ('rankup_next_message_3', {$oldmsg3})") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Repaired new config table cfg_params (part 2)."); - } - } - - if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_config`;") === false) { } - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('logs_debug_level', '5'),('logs_rotation_size', '5'),('stats_column_default_sort', 'rank'),('stats_column_default_order', 'asc'),('stats_time_bronze','50'),('stats_time_silver','100'),('stats_time_gold','250'),('stats_time_legend','500'),('stats_connects_bronze','50'),('stats_connects_silver','100'),('stats_connects_gold','250'),('stats_connects_legend','500');") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Added new cfg_params value."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`cfg_params` MODIFY COLUMN `value` varchar(21588) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Adjusted table cfg_params successfully."); - } - if($mysqlcon->exec("UPDATE TABLE `$dbname`.`cfg_params` SET `value`='stable' WHERE `param`='version_update_channel' AND `value`='version';") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Updated table cfg_params successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `count` DECIMAL(14,3);") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Adjusted table user (part 1) successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `idle` DECIMAL(14,3);") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Adjusted table user (part 2) successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `rank` int(10) NOT NULL default '9999999'") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Adjusted table user successfully."); - } - - if($mysqlcon->exec("DROP TABLE `$dbname`.`config`;") === false) { } else { - enter_logfile($cfg,4," [1.3.0] Dropped old table config."); - } - } if(version_compare($cfg['version_current_using'], '1.3.1', '<')) { if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('reset_user_time', '0'),('reset_user_delete', '0'),('reset_group_withdraw', '0'),('reset_webspace_cache', '0'),('reset_usage_graph', '0'),('reset_stop_after', '0');") === false) { } else { @@ -347,24 +149,33 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { } if(version_compare($cfg['version_current_using'], '1.3.8', '<')) { - if($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { } - if($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { } + if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_api_keys', '');") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Added new config values."); + } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `lastseen` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `boosttime` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `firstcon` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `grpsince` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `rank` smallint(5) UNSIGNED NOT NULL default '65535', MODIFY COLUMN `nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { - enter_logfile($cfg,4," [1.3.8] Adjusted table user successfully."); + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `lastseen` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `boosttime` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `firstcon` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `grpsince` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `rank` smallint(5) UNSIGNED NOT NULL default '65535', MODIFY COLUMN `nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Adjusted table user successfully (part 1)."); + } + + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `count` DECIMAL(14,3) NOT NULL default '0', MODIFY COLUMN `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, MODIFY COLUMN `idle` DECIMAL(14,3) NOT NULL default '0', MODIFY COLUMN `platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, MODIFY COLUMN `nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, MODIFY COLUMN `version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Adjusted table user successfully (part 2)."); } if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_snapshot` MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table user_snapshot successfully."); } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `base64hash` char(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `count_week` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `count_month` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `idle_week` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `idle_month` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `active_week` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `active_month` mediumint(8) UNSIGNED NOT NULL default '0';") === false) { } else { + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `base64hash` char(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `count_week` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `count_month` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `idle_week` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `idle_month` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `active_week` mediumint(8) UNSIGNED NOT NULL default '0', MODIFY COLUMN `active_month` mediumint(8) UNSIGNED NOT NULL default '0';") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table stats_user (part 1) successfully."); } if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` DROP COLUMN `rank`, DROP COLUMN `battles_total`, DROP COLUMN `battles_won`, DROP COLUMN `battles_lost`, DROP COLUMN `achiev_time`, DROP COLUMN `achiev_connects`, DROP COLUMN `achiev_battles`, DROP COLUMN `achiev_time_perc`, DROP COLUMN `achiev_connects_perc`, DROP COLUMN `achiev_battles_perc`;") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table stats_user (part 2) successfully."); } + + if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `base64hash` char(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Adjusted table stats_user (part 3) successfully."); + } if($mysqlcon->exec("ALTER TABLE `$dbname`.`server_usage` MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `clients` smallint(5) UNSIGNED NOT NULL default '0', MODIFY COLUMN `channel` smallint(5) UNSIGNED NOT NULL default '0';") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table server_usage successfully."); @@ -374,11 +185,11 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { enter_logfile($cfg,4," [1.3.8] Adjusted table job_check successfully."); } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`admin_addtime` MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { + if($mysqlcon->exec("ALTER TABLE `$dbname`.`admin_addtime` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table admin_addtime successfully."); } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_iphash` MODIFY COLUMN `uuid` char(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { + if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_iphash` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table user_iphash successfully."); } @@ -401,9 +212,21 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` MODIFY COLUMN `sgid` int(10) UNSIGNED NOT NULL default '0', MODIFY COLUMN `icondate` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { enter_logfile($cfg,4," [1.3.8] Adjusted table groups (part 2) successfully."); } + + if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` MODIFY COLUMN `sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Adjusted table groups (part 3) successfully."); + } if($mysqlcon->exec("ALTER TABLE `$dbname`.`csrf_token` MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile($cfg,4," [1.3.8] Adjusted table csrf_token successfully."); + enter_logfile($cfg,4," [1.3.8] Adjusted table csrf_token successfully (part 1)."); + } + + if($mysqlcon->exec("ALTER TABLE `$dbname`.`csrf_token` MODIFY COLUMN `sessionid` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Adjusted table csrf_token successfully (part 2)."); + } + + if($mysqlcon->exec("ALTER TABLE `$dbname`.`addon_assign_groups` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Adjusted table addon_assign_groups successfully."); } if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { } else { @@ -485,7 +308,11 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { $currentid = count($timestamps); if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('last_snapshot_id', '{$currentid}'),('last_snapshot_time', '{$lastsnapshot[0]['timestamp']}');") === false) { } else { - enter_logfile($cfg,4," [1.3.8] Added new job_check values."); + enter_logfile($cfg,4," [1.3.8] Added new job_check values (part 1)."); + } + + if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('update_groups', '0');") === false) { } else { + enter_logfile($cfg,4," [1.3.8] Added new job_check values (part 2)."); } } else { @@ -499,6 +326,17 @@ function check_db($mysqlcon,$lang,$cfg,$dbname) { } } + check_double_cldbid($mysqlcon,$cfg,$dbname); + } + + if(version_compare($cfg['version_current_using'], '1.3.9', '<')) { + if($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { } + if($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { } + + if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('get_avatars', '0'),('calc_donut_chars', '0'),('reload_trigger', '0');") === false) { } else { + enter_logfile($cfg,4," [1.3.9] Added new job_check values."); + } + if($mysqlcon->exec("CREATE INDEX `snapshot_id` ON `$dbname`.`user_snapshot` (`id`)") === false) { } if($mysqlcon->exec("CREATE INDEX `snapshot_cldbid` ON `$dbname`.`user_snapshot` (`cldbid`)") === false) { } if($mysqlcon->exec("CREATE INDEX `serverusage_timestamp` ON `$dbname`.`server_usage` (`timestamp`)") === false) { } diff --git a/jobs/clean.php b/jobs/clean.php index a6866ab..7f96570 100644 --- a/jobs/clean.php +++ b/jobs/clean.php @@ -1,11 +1,12 @@ $value) { + foreach($db_cache['all_user'] as $uuid => $value) { if(isset($uidarrts[$uuid])) { $countts++; } else { @@ -40,7 +41,7 @@ function clean($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { } } enter_logfile($cfg,4," ".sprintf($lang['cleants'], $countts, $count_tsuser['count'])); - enter_logfile($cfg,4," ".sprintf($lang['cleanrs'], count($select_arr['all_user']))); + enter_logfile($cfg,4," ".sprintf($lang['cleanrs'], count($db_cache['all_user']))); unset($uidarrts,$count_tsuser,$countts); if(isset($deleteuuids)) { $alldeldata = ''; @@ -73,23 +74,24 @@ function clean($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { $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; "; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients';\nUPDATE `$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;\nDELETE FROM `$dbname`.`user` WHERE `uuid` IN $alldeldata;\n"; enter_logfile($cfg,4," ".sprintf($lang['cleandel'], $countdel)); unset($$alldeldata); } } else { enter_logfile($cfg,4," ".$lang['cleanno']); - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients'; "; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients';\n"; } } else { enter_logfile($cfg,4,$lang['clean0004']); - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients'; "; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients';\n"; } } - + // 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 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'; DELETE FROM `$dbname`.`csrf_token` WHERE `timestamp` < (UNIX_TIMESTAMP() - 3600); DELETE `h` FROM `$dbname`.`user_iphash` AS `h` LEFT JOIN `$dbname`.`user` AS `u` ON `u`.`uuid` = `h`.`uuid` WHERE (`u`.`uuid` IS NULL OR `u`.`online`!=1); "; + if ($db_cache['job_check']['clean_db']['timestamp'] < ($nowtime - 86400)) { + $db_cache['job_check']['clean_db']['timestamp'] = $nowtime; + $sqlexec .= "DELETE FROM `$dbname`.`server_usage` WHERE `timestamp` < (UNIX_TIMESTAMP() - 31536000);\nDELETE `b` FROM `$dbname`.`user` AS `a` RIGHT JOIN `$dbname`.`stats_user` AS `b` ON `a`.`uuid`=`b`.`uuid` WHERE `a`.`uuid` IS NULL;\nUPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_db';\nDELETE FROM `$dbname`.`csrf_token` WHERE `timestamp` < (UNIX_TIMESTAMP() - 3600);\nDELETE `h` FROM `$dbname`.`user_iphash` AS `h` LEFT JOIN `$dbname`.`user` AS `u` ON `u`.`uuid` = `h`.`uuid` WHERE (`u`.`uuid` IS NULL OR `u`.`online`!=1);\n"; enter_logfile($cfg,4,$lang['clean0003']); } diff --git a/jobs/event_userenter.php b/jobs/event_userenter.php index e509d92..3d949e2 100644 --- a/jobs/event_userenter.php +++ b/jobs/event_userenter.php @@ -10,7 +10,7 @@ function event_userenter(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 try { $host->serverGetSelected()->clientListReset(); usleep($cfg['teamspeak_query_command_delay']); - $clientlist = $host->serverGetSelected()->clientList(); + $clientlist = $host->serverGetSelected()->clientListtsn("-ip"); foreach ($clientlist as $client) { if($client['client_database_id'] == $event['client_database_id']) { if(strstr($client['connection_client_ip'], '[')) { diff --git a/jobs/get_avatars.php b/jobs/get_avatars.php index 84966e9..608e6c5 100644 --- a/jobs/get_avatars.php +++ b/jobs/get_avatars.php @@ -1,52 +1,59 @@ channelFileList($cid="0", $cpw="", $path="/"); - } catch (Exception $e) { - if ($e->getCode() != 1281) { - enter_logfile($cfg,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); + $nowtime = time(); - if (isset($tsfilelist)) { - foreach($tsfilelist as $tsfile) { - $fullfilename = '/'.$tsfile['name']; - $uuidasbase16 = substr($tsfile['name'],7); - if (!isset($fsfilelistarray[$uuidasbase16.'.png']) || ($tsfile['datetime'] - $cfg['teamspeak_avatar_download_delay']) > $fsfilelistarray[$uuidasbase16.'.png']) { - if (substr($tsfile['name'],0,7) == 'avatar_') { - try { - check_shutdown($cfg); usleep($cfg['teamspeak_query_command_delay']); - $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($cfg,5,"Download avatar: ".$fullfilename); - if(file_put_contents($avatarfilepath, $tsfile) === false) { - enter_logfile($cfg,2,"Error while writing out the avatar. Please check the permission for the folder 'avatars'"); + if($db_cache['job_check']['get_avatars']['timestamp'] < ($nowtime - 32)) { + $db_cache['job_check']['get_avatars']['timestamp'] = $nowtime; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='get_avatars';\n"; + try { + usleep($cfg['teamspeak_query_command_delay']); + $tsfilelist = $ts3->channelFileList($cid="0", $cpw="", $path="/"); + } catch (Exception $e) { + if ($e->getCode() != 1281) { + enter_logfile($cfg,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'] - $cfg['teamspeak_avatar_download_delay']) > $fsfilelistarray[$uuidasbase16.'.png']) { + if (substr($tsfile['name'],0,7) == 'avatar_') { + try { + check_shutdown($cfg); usleep($cfg['teamspeak_query_command_delay']); + $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($cfg,5,"Download avatar: ".$fullfilename); + if(file_put_contents($avatarfilepath, $tsfile) === false) { + enter_logfile($cfg,2,"Error while writing out the avatar. Please check the permission for the folder 'avatars'"); + } + } + catch (Exception $e) { + enter_logfile($cfg,2,"get_avatars 2:".$e->getCode().': '."Error while downloading avatar: ".$e->getMessage()); } } - catch (Exception $e) { - enter_logfile($cfg,2,"get_avatars 2:".$e->getCode().': '."Error while downloading avatar: ".$e->getMessage()); - } + } + if((microtime(true) - $starttime) > 5) { + enter_logfile($cfg,6,"get_avatars needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); + return; } } - if((microtime(true) - $starttime) > 5) { - enter_logfile($cfg,6,"get_avatars needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return; - } + unset($fsfilelistarray); } - unset($fsfilelistarray); } - + enter_logfile($cfg,6,"get_avatars needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); + return($sqlexec); } ?> \ No newline at end of file diff --git a/jobs/reset_rs.php b/jobs/reset_rs.php index 0140a8b..5a9556b 100644 --- a/jobs/reset_rs.php +++ b/jobs/reset_rs.php @@ -1,17 +1,18 @@ exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_group_withdraw';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); $err_cnt++; } else { + $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 2; enter_logfile($cfg,4," Started job '".$lang['wihladm32']."'"); } @@ -22,7 +23,7 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { } foreach ($cfg['rankup_definition'] as $time => $groupid) { - enter_logfile($cfg,5," Getting TS3 servergrouplist for ".$select_arr['groups'][$groupid]['sgidname']." (ID: ".$groupid.")"); + enter_logfile($cfg,5," Getting TS3 servergrouplist for ".$db_cache['groups'][$groupid]['sgidname']." (ID: ".$groupid.")"); try { usleep($cfg['teamspeak_query_command_delay']); $tsclientlist = $ts3->servergroupclientlist($groupid); @@ -32,9 +33,9 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { try { usleep($cfg['teamspeak_query_command_delay']); $ts3->serverGroupClientDel($groupid, $tsclient['cldbid']); - enter_logfile($cfg,5," ".sprintf($lang['sgrprm'], $select_arr['groups'][$groupid]['sgidname'], $groupid, $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'])); + enter_logfile($cfg,5," ".sprintf($lang['sgrprm'], $db_cache['groups'][$groupid]['sgidname'], $groupid, $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'])); } catch (Exception $e) { - enter_logfile($cfg,2," TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'], $select_arr['groups'][$groupid]['sgidname'], $groupid)); + enter_logfile($cfg,2," TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'], $db_cache['groups'][$groupid]['sgidname'], $groupid)); $err_cnt++; } } @@ -48,23 +49,27 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `grpid`=0; UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_group_withdraw';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 4; enter_logfile($cfg,4," Finished job '".$lang['wihladm32']."'"); } } else { if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='reset_group_withdraw';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 3; } } } - if ($err_cnt == 0 && in_array($select_arr['job_check']['reset_user_time']['timestamp'], ["1","2"], true)) { + if ($err_cnt == 0 && in_array($db_cache['job_check']['reset_user_time']['timestamp'], ["1","2"], true)) { $err = 0; if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_user_time';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); $err++; } else { + $db_cache['job_check']['reset_user_time']['timestamp'] = 2; enter_logfile($cfg,4," Started job '".$lang['wihladm31']."' (".$lang['wisupidle'].": ".$lang['wihladm311'].")"); } @@ -99,23 +104,27 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_user_time';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_user_time']['timestamp'] = 4; enter_logfile($cfg,4," Finished job '".$lang['wihladm31']."' (".$lang['wisupidle'].": ".$lang['wihladm311'].")"); } } else { if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='reset_user_time';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_user_time']['timestamp'] = 3; } } } - if ($err_cnt == 0 && in_array($select_arr['job_check']['reset_user_delete']['timestamp'], ["1","2"], true)) { + if ($err_cnt == 0 && in_array($db_cache['job_check']['reset_user_delete']['timestamp'], ["1","2"], true)) { $err = 0; if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_user_delete';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); $err++; } else { + $db_cache['job_check']['reset_user_delete']['timestamp'] = 2; enter_logfile($cfg,4," Started job '".$lang['wihladm31']."' (".$lang['wisupidle'].": ".$lang['wihladm312'].")"); } @@ -174,19 +183,23 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_user_delete';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_user_delete']['timestamp'] = 4; enter_logfile($cfg,4," Finished job '".$lang['wihladm31']."' (".$lang['wisupidle'].": ".$lang['wihladm312'].")"); } } else { if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='reset_user_delete';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_user_delete']['timestamp'] = 3; } } } - if (in_array($select_arr['job_check']['reset_webspace_cache']['timestamp'], ["1","2"], true)) { + if (in_array($db_cache['job_check']['reset_webspace_cache']['timestamp'], ["1","2"], true)) { if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_webspace_cache';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 2; enter_logfile($cfg,4," Started job '".$lang['wihladm33']."'"); } @@ -220,32 +233,39 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_webspace_cache';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 4; enter_logfile($cfg,4," Finished job '".$lang['wihladm33']."'"); } } else { if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='reset_webspace_cache';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 3; } } } - if (in_array($select_arr['job_check']['reset_usage_graph']['timestamp'], ["1","2"], true)) { + if (in_array($db_cache['job_check']['reset_usage_graph']['timestamp'], ["1","2"], true)) { if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_usage_graph';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_usage_graph']['timestamp'] = 2; enter_logfile($cfg,4," Started job '".$lang['wihladm34']."'"); } if ($mysqlcon->exec("DELETE FROM `$dbname`.`server_usage`;") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='reset_usage_graph';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_usage_graph']['timestamp'] = 3; } } else { enter_logfile($cfg,4," Cleaned server usage graph (table: server_usage)"); if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_usage_graph';") === false) { enter_logfile($cfg,2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); } else { + $db_cache['job_check']['reset_usage_graph']['timestamp'] = 4; enter_logfile($cfg,4," Finished job '".$lang['wihladm34']."'"); } } @@ -253,7 +273,7 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,$select_arr) { enter_logfile($cfg,4,"Reset job(s) finished"); - if($select_arr['job_check']['reset_stop_after']['timestamp'] == "1") { + if($db_cache['job_check']['reset_stop_after']['timestamp'] == "1") { $path = substr(__DIR__, 0, -4); if (substr(php_uname(), 0, 7) == "Windows") { exec("start ".$phpcommand." ".$path."worker.php stop"); diff --git a/jobs/server_usage.php b/jobs/server_usage.php new file mode 100644 index 0000000..53d57cd --- /dev/null +++ b/jobs/server_usage.php @@ -0,0 +1,68 @@ + 898) { // every 15 mins + unset($db_cache['max_timestamp_server_usage']); + $db_cache['max_timestamp_server_usage'][$nowtime] = ''; + + //Calc time next rankup + enter_logfile($cfg,6,"Calc next rankup for offline user"); + $upnextuptime = $nowtime - 1800; + $server_used_slots = $serverinfo['virtualserver_clientsonline'] - $serverinfo['virtualserver_queryclientsonline']; + if(($uuidsoff = $mysqlcon->query("SELECT `uuid`,`idle`,`count` FROM `$dbname`.`user` WHERE `online`<>1 AND `lastseen`>$upnextuptime")->fetchAll(PDO::FETCH_ASSOC)) === false) { + enter_logfile($cfg,2,"calc_serverstats 13:".print_r($mysqlcon->errorInfo(), true)); + } + if(count($uuidsoff) != 0) { + foreach($uuidsoff as $uuid) { + $count = $uuid['count']; + if ($cfg['rankup_time_assess_mode'] == 1) { + $activetime = $count - $uuid['idle']; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@".round($activetime)); + } else { + $activetime = $count; + $dtF = new DateTime("@0"); + $dtT = new DateTime("@".round($count)); + } + $grpcount=0; + foreach ($cfg['rankup_definition'] 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,{$serverinfo['virtualserver_channelsonline']});\nUPDATE `$dbname`.`user` SET `nextup`= CASE `uuid` $allupdatenextup END WHERE `uuid` IN ($allupdateuuid);\n"; + unset($allupdateuuid, $allupdatenextup); + } else { + $sqlexec .= "INSERT INTO `$dbname`.`server_usage` (`timestamp`,`clients`,`channel`) VALUES ($nowtime,$server_used_slots,{$serverinfo['virtualserver_channelsonline']});\n"; + } + enter_logfile($cfg,6,"Calc next rankup for offline user [DONE]"); + } + + enter_logfile($cfg,6,"server_usage needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); + return($sqlexec); +} \ No newline at end of file diff --git a/jobs/update_groups.php b/jobs/update_groups.php index f4617ab..31c2552 100644 --- a/jobs/update_groups.php +++ b/jobs/update_groups.php @@ -1,213 +1,229 @@ channelFileList($cid="0", $cpw="", $path="/icons/"); - - if(isset($iconlist)) { - foreach($iconlist as $icon) { - $iconid = "i".substr($icon['name'], 5); - $iconarr[$iconid] = $icon['datetime']; - } - } else { - $iconarr["xxxxx"] = 0; - } - unset($iconlist); - } catch (Exception $e) { - if ($e->getCode() != 1281) { - enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } else { - $iconarr["xxxxx"] = 0; - enter_logfile($cfg,6,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } - } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupListReset(); - $ts3groups = $ts3->serverGroupList(); - - // ServerIcon - if ($serverinfo['virtualserver_icon_id'] < 0) { - $sIconId = (pow(2, 32)) - ($serverinfo['virtualserver_icon_id'] * -1); - } else { - $sIconId = $serverinfo['virtualserver_icon_id']; - } - enter_logfile($cfg,6,"Servericon TSiconid:".$serverinfo['virtualserver_icon_id']."; powed TSiconid:".$sIconId."; DBiconid:".$select_arr['groups']['0']['iconid']."; TSicondate:".$iconarr["i".$sIconId]."; DBicondate:".$select_arr['groups']['0']['icondate'].";"); - $sIconFile = 0; - $extension = 'png'; - if (!isset($select_arr['groups']['0']) || $select_arr['groups']['0']['iconid'] != $sIconId || (isset($iconarr["i".$sIconId]) && $iconarr["i".$sIconId] > $select_arr['groups']['0']['icondate'])) { - if($sIconId > 600) { - try { - usleep($cfg['teamspeak_query_command_delay']); - enter_logfile($cfg,5,$lang['upgrp0002']); - $sIconFile = $ts3->iconDownload(); - $extension = mime2extension(TeamSpeak3_Helper_Convert::imageMimeType($sIconFile)); - if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/servericon." . $extension, $sIconFile) === false) { - enter_logfile($cfg,2,$lang['upgrp0003'].' '.sprintf($lang['errperm'], 'tsicons')); - } - } catch (Exception $e) { - enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().'; '.$lang['upgrp0004'].$e->getMessage()); + + if($db_cache['job_check']['update_groups']['timestamp'] < ($nowtime - 4)) { + $db_cache['job_check']['update_groups']['timestamp'] = $nowtime; + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='update_groups';\n"; + try { + usleep($cfg['teamspeak_query_command_delay']); + $iconlist = $ts3->channelFileList($cid="0", $cpw="", $path="/icons/"); + + if(isset($iconlist)) { + foreach($iconlist as $icon) { + $iconid = "i".substr($icon['name'], 5); + $iconarr[$iconid] = $icon['datetime']; } - } elseif($sIconId == 0) { - foreach (glob(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.*") as $file) { - if(unlink($file) === false) { - enter_logfile($cfg,2,$lang['upgrp0005'].' '.sprintf($lang['errperm'], 'tsicons')); - } else { - enter_logfile($cfg,5,$lang['upgrp0006']); - } - } - $iconarr["i".$sIconId] = 0; - } - if(isset($iconarr["i".$sIconId]) && $iconarr["i".$sIconId] > 0) { - $sicondate = $iconarr["i".$sIconId]; } else { - $sicondate = 0; + $iconarr["xxxxx"] = 0; + } + unset($iconlist); + } catch (Exception $e) { + if ($e->getCode() != 1281) { + enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } else { + $iconarr["xxxxx"] = 0; + enter_logfile($cfg,6,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); } - $updategroups[] = array( - "sgid" => "0", - "sgidname" => "'ServerIcon'", - "iconid" => $sIconId, - "icondate" => $sicondate, - "sortid" => "0", - "type" => "0", - "ext" => $mysqlcon->quote($extension, ENT_QUOTES) - ); } - unset($sIconFile,$sIconId); - - // GroupIcons - $iconcount = 0; - foreach ($ts3groups as $servergroup) { - $tsgroupids[$servergroup['sgid']] = 0; - $sgid = $servergroup['sgid']; - $extension = 'png'; - $sgname = $mysqlcon->quote((mb_substr($servergroup['name'],0,30)), ENT_QUOTES); - $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 { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupListReset(); + $ts3groups = $ts3->serverGroupList(); + + // ServerIcon + if ($serverinfo['virtualserver_icon_id'] < 0) { + $sIconId = (pow(2, 32)) - ($serverinfo['virtualserver_icon_id'] * -1); + } else { + $sIconId = $serverinfo['virtualserver_icon_id']; + } + $sIconFile = 0; + $extension = ''; + if (!isset($db_cache['groups']['0']) || $db_cache['groups']['0']['iconid'] != $sIconId || (isset($iconarr["i".$sIconId]) && $iconarr["i".$sIconId] > $db_cache['groups']['0']['icondate'])) { + enter_logfile($cfg,6,"Servericon TSiconid:".$serverinfo['virtualserver_icon_id']."; powed TSiconid:".$sIconId."; DBiconid:".$db_cache['groups']['0']['iconid']."; TSicondate:".$iconarr["i".$sIconId]."; DBicondate:".$db_cache['groups']['0']['icondate'].";"); + if($sIconId > 600) { try { - check_shutdown($cfg); usleep($cfg['teamspeak_query_command_delay']); - enter_logfile($cfg,5,sprintf($lang['upgrp0011'], $sgname, $sgid)); - $iconfile = $servergroup->iconDownload(); - $extension = mime2extension(TeamSpeak3_Helper_Convert::imageMimeType($iconfile)); - if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/" . $iconid . "." . $extension, $iconfile) === false) { - enter_logfile($cfg,2,sprintf($lang['upgrp0007'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + usleep($cfg['teamspeak_query_command_delay']); + enter_logfile($cfg,5,$lang['upgrp0002']); + $sIconFile = $ts3->iconDownload(); + $extension = mime2extension(TeamSpeak3_Helper_Convert::imageMimeType($sIconFile)); + if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/servericon." . $extension, $sIconFile) === false) { + enter_logfile($cfg,2,$lang['upgrp0003'].' '.sprintf($lang['errperm'], 'tsicons')); } - $iconcount++; } catch (Exception $e) { - enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.sprintf($lang['upgrp0008'], $sgname, $sgid).$e->getMessage()); + enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().'; '.$lang['upgrp0004'].$e->getMessage()); } - } - } elseif($iconid == 0) { - foreach (glob(substr(dirname(__FILE__),0,-4) . "tsicons/" . $iconid . ".*") as $file) { - if(unlink($file) === false) { - enter_logfile($cfg,2,sprintf($lang['upgrp0009'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); - } else { - enter_logfile($cfg,5,sprintf($lang['upgrp0010'], $sgname, $sgid)); + } elseif($sIconId == 0) { + foreach (glob(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.*") as $file) { + if(unlink($file) === false) { + enter_logfile($cfg,2,$lang['upgrp0005'].' '.sprintf($lang['errperm'], 'tsicons')); + } else { + enter_logfile($cfg,5,$lang['upgrp0006']); + } } + $iconarr["i".$sIconId] = $sIconId = 0; + } elseif($iconid < 601) { + $extension = 'png'; + } else { + $sIconId = 0; } - $iconarr["i".$iconid] = 0; - } - - if(!isset($iconarr["i".$iconid])) { - $iconarr["i".$iconid] = 0; - } - - if(isset($select_arr['groups'][$servergroup['sgid']]) && $select_arr['groups'][$servergroup['sgid']]['sgidname'] == $servergroup['name'] && $select_arr['groups'][$servergroup['sgid']]['iconid'] == $iconid && $select_arr['groups'][$servergroup['sgid']]['icondate'] == $iconarr["i".$iconid] && $select_arr['groups'][$servergroup['sgid']]['sortid'] == $servergroup['sortid']) { - enter_logfile($cfg,6,"Continue server group ".$sgname." (CID: ".$servergroup['sgid'].")"); - continue; - } else { - if($servergroup['sgid'] == 5000) { - enter_logfile($cfg,6,print_r($select_arr['groups'],true)); + if(isset($iconarr["i".$sIconId]) && $iconarr["i".$sIconId] > 0) { + $sicondate = $iconarr["i".$sIconId]; + } else { + $sicondate = 0; } - enter_logfile($cfg,5,"Update/Insert server group ".$sgname." (CID: ".$servergroup['sgid'].")"); $updategroups[] = array( - "sgid" => $servergroup['sgid'], - "sgidname" => $sgname, - "iconid" => $iconid, - "icondate" => $iconarr["i".$iconid], - "sortid" => $servergroup['sortid'], - "type" => $servergroup['type'], + "sgid" => "0", + "sgidname" => "'ServerIcon'", + "iconid" => $sIconId, + "icondate" => $sicondate, + "sortid" => "0", + "type" => "0", "ext" => $mysqlcon->quote($extension, ENT_QUOTES) ); } - if($iconcount > 9 && $nobreak != 1) { - break; - } - } - unset($ts3groups,$sgname,$sgid,$iconid,$iconfile,$iconcount,$iconarr); + unset($sIconFile,$sIconId); - if (isset($updategroups)) { - $sqlinsertvalues = ''; - foreach ($updategroups as $updatedata) { - $sqlinsertvalues .= "({$updatedata['sgid']},{$updatedata['sgidname']},{$updatedata['iconid']},{$updatedata['icondate']},{$updatedata['sortid']},{$updatedata['type']},{$updatedata['ext']}),"; + // GroupIcons + $iconcount = 0; + foreach ($ts3groups as $servergroup) { + $tsgroupids[$servergroup['sgid']] = 0; + $sgid = $servergroup['sgid']; + $extension = ''; + $sgname = $mysqlcon->quote((mb_substr($servergroup['name'],0,30)), ENT_QUOTES); + $iconid = $servergroup['iconid']; + $iconid = ($iconid < 0) ? (pow(2, 32)) - ($iconid * -1) : $iconid; + $iconfile = 0; + if($iconid > 600) { + if (!isset($db_cache['groups'][$sgid]) || $db_cache['groups'][$sgid]['iconid'] != $iconid || $iconarr["i".$iconid] > $db_cache['groups'][$sgid]['icondate']) { + try { + check_shutdown($cfg); usleep($cfg['teamspeak_query_command_delay']); + enter_logfile($cfg,5,sprintf($lang['upgrp0011'], $sgname, $sgid)); + $iconfile = $servergroup->iconDownload(); + $extension = mime2extension(TeamSpeak3_Helper_Convert::imageMimeType($iconfile)); + if(file_put_contents(substr(dirname(__FILE__),0,-4) . "tsicons/" . $iconid . "." . $extension, $iconfile) === false) { + enter_logfile($cfg,2,sprintf($lang['upgrp0007'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + } + $iconcount++; + } catch (Exception $e) { + enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.sprintf($lang['upgrp0008'], $sgname, $sgid).$e->getMessage()); + } + } + } elseif($iconid == 0) { + foreach (glob(substr(dirname(__FILE__),0,-4) . "tsicons/" . $iconid . ".*") as $file) { + if(unlink($file) === false) { + enter_logfile($cfg,2,sprintf($lang['upgrp0009'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + } else { + enter_logfile($cfg,5,sprintf($lang['upgrp0010'], $sgname, $sgid)); + } + } + $iconarr["i".$iconid] = 0; + } elseif($iconid < 601) { + $extension = 'png'; + } + + if(!isset($iconarr["i".$iconid])) { + $iconarr["i".$iconid] = 0; + } + + if(isset($db_cache['groups'][$servergroup['sgid']]) && $db_cache['groups'][$servergroup['sgid']]['sgidname'] == $servergroup['name'] && $db_cache['groups'][$servergroup['sgid']]['iconid'] == $iconid && $db_cache['groups'][$servergroup['sgid']]['icondate'] == $iconarr["i".$iconid] && $db_cache['groups'][$servergroup['sgid']]['sortid'] == $servergroup['sortid']) { + enter_logfile($cfg,7,"Continue server group ".$sgname." (CID: ".$servergroup['sgid'].")"); + continue; + } else { + enter_logfile($cfg,6,"Update/Insert server group ".$sgname." (CID: ".$servergroup['sgid'].")"); + $updategroups[] = array( + "sgid" => $servergroup['sgid'], + "sgidname" => $sgname, + "iconid" => $iconid, + "icondate" => $iconarr["i".$iconid], + "sortid" => $servergroup['sortid'], + "type" => $servergroup['type'], + "ext" => $mysqlcon->quote($extension, ENT_QUOTES) + ); + } + if($iconcount > 9 && $nobreak != 1) { + break; + } } - $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`groups` (`sgid`,`sgidname`,`iconid`,`icondate`,`sortid`,`type`,`ext`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `sgidname`=VALUES(`sgidname`),`iconid`=VALUES(`iconid`),`icondate`=VALUES(`icondate`),`sortid`=VALUES(`sortid`),`type`=VALUES(`type`),`ext`=VALUES(`ext`); "; - 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, $cfg['rankup_definition'])) { - enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - } catch (Exception $e) { - enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + unset($ts3groups,$sgname,$sgid,$iconid,$iconfile,$iconcount,$iconarr); + + if (isset($updategroups)) { + $sqlinsertvalues = ''; + foreach ($updategroups as $updatedata) { + $sqlinsertvalues .= "({$updatedata['sgid']},{$updatedata['sgidname']},{$updatedata['iconid']},{$updatedata['icondate']},{$updatedata['sortid']},{$updatedata['type']},{$updatedata['ext']}),"; + $db_cache['groups'][$updatedata['sgid']]['sgidname'] = $updatedata['sgidname']; + $db_cache['groups'][$updatedata['sgid']]['iconid'] = $updatedata['iconid']; + $db_cache['groups'][$updatedata['sgid']]['icondate'] = $updatedata['icondate']; + $db_cache['groups'][$updatedata['sgid']]['sortid'] = $updatedata['sortid']; + $db_cache['groups'][$updatedata['sgid']]['type'] = $updatedata['type']; + $db_cache['groups'][$updatedata['sgid']]['ext'] = $updatedata['ext']; + } + $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`groups` (`sgid`,`sgidname`,`iconid`,`icondate`,`sortid`,`type`,`ext`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `sgidname`=VALUES(`sgidname`),`iconid`=VALUES(`iconid`),`icondate`=VALUES(`icondate`),`sortid`=VALUES(`sortid`),`type`=VALUES(`type`),`ext`=VALUES(`ext`);\n"; + unset($updategroups, $sqlinsertvalues); + } + + if(isset($db_cache['groups'])) { + foreach ($db_cache['groups'] as $sgid => $groups) { + if(!isset($tsgroupids[$sgid]) && $sgid != 0 && $sgid != NULL) { + $delsgroupids .= $sgid . ","; + unset($db_cache['groups'][$sgid]); + if(in_array($sgid, $cfg['rankup_definition'])) { + enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { + foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + } catch (Exception $e) { + enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + } } } } - } - if(isset($cfg['rankup_boost_definition'][$sgid])) { - enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiboost'])); - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - } catch (Exception $e) { - enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + if(isset($cfg['rankup_boost_definition'][$sgid])) { + enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiboost'])); + if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { + foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + } catch (Exception $e) { + enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + } } } } - } - if(isset($cfg['rankup_excepted_group_id_list'][$sgid])) { - enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiexgrp'])); - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - } catch (Exception $e) { - enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + if(isset($cfg['rankup_excepted_group_id_list'][$sgid])) { + enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wiexgrp'])); + if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { + foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + } catch (Exception $e) { + enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + } } } } } } } - } - - if(isset($delsgroupids)) { - $delsgroupids = substr($delsgroupids, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`groups` WHERE `sgid` IN ($delsgroupids); "; - } - enter_logfile($cfg,6,"update_groups needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); - } catch (Exception $e) { - enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + if(isset($delsgroupids)) { + $delsgroupids = substr($delsgroupids, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`groups` WHERE `sgid` IN ($delsgroupids);\n"; + } + enter_logfile($cfg,6,"update_groups needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); + return($sqlexec); + + } catch (Exception $e) { + enter_logfile($cfg,2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } } } ?> \ No newline at end of file diff --git a/languages/core_ar_العربية_arab.php b/languages/core_ar_العربية_arab.php index 7d64b2c..8f19a87 100644 --- a/languages/core_ar_العربية_arab.php +++ b/languages/core_ar_العربية_arab.php @@ -1,10 +1,12 @@ added to the Ranksystem now."; $lang['achieve'] = "Achievement"; +$lang['adduser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is unknown -> added to the Ranksystem now."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; $lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; $lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "البحث عن المستخدمين الذين من المفروض حذفهم"; +$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 - other)."; $lang['cleanc'] = "تصفية المستخدمين"; $lang['cleancdesc'] = "With this function old clients gets deleted out of the Ranksystem.

To this end, the Ranksystem will be sychronized with the TeamSpeak database. Clients, which does not exist anymore on the TeamSpeak server, will be deleted out of the Ranksystem.

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


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
%s"; $lang['cleandel'] = "There were %s clients deleted out of the Ranksystem database, cause they were no longer existing in the TeamSpeak database."; @@ -22,14 +28,11 @@ $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 - other)."; $lang['day'] = "day %d"; $lang['days'] = "يوم %d"; $lang['dbconerr'] = "فشل الدخول الى قاعدة بيانات قاعدة بيانات: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token is wrong or expired (=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!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 30 $lang['error'] = "خلل "; $lang['errorts3'] = "TS3 Error: "; $lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Please choose at least one user!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Please enter an online time to add!"; +$lang['errselusr'] = "Please choose at least one user!"; $lang['errukwn'] = "حدث خلل غير معروف!"; $lang['factor'] = "Factor"; $lang['highest'] = "تم الوصول الى اعلى رتبة"; @@ -51,12 +54,12 @@ $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'] = "%1\$s is needed but seems not to be installed. Install %1\$s and try it again!"; -$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!"; +$lang['insterr2'] = "%1\$s is needed but seems not to be installed. Install %1\$s and try it again!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP 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['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 740 (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['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 740 (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)"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Please delete the file 'install.php' from your webserver $lang['isntwiusr'] = "المستخدم للوحة التحكم انشئ بنجاح"; $lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; $lang['isntwiusrcr'] = "Create Webinterface-User"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $lang['isntwiusrdesc'] = "ادخل الاسم وكلمة المرور للدخول الى لوحة التحكم . بإستخدام لوحة التحكم يمكنك التعديل على نظام الرتب"; $lang['isntwiusrh'] = "Access - Webinterface"; $lang['listacsg'] = "الرتبة الحالية"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Reset the online and idle time of user %s (unique Client $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['setontime2'] = "remove 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['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from 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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Assign Servergroup"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Limit concurrent 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."; @@ -288,22 +292,24 @@ $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['stri0013'] = "%s for russian translation"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s for italian translation"; +$lang['stri0016'] = "%s for initialisation arabic translation"; +$lang['stri0017'] = "%s for initialisation romanian translation"; +$lang['stri0018'] = "%s for initialisation dutch translation"; +$lang['stri0019'] = "%s for french translation"; +$lang['stri0020'] = "%s for portuguese translation"; +$lang['stri0021'] = "%s for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "لكل الوقت"; +$lang['sttm0001'] = "لهذا الشهر"; $lang['sttw0001'] = "افضل مستخدمين"; $lang['sttw0002'] = "لهذا الاسبوع"; $lang['sttw0003'] = "وقت التواجد %s %s ساعات"; @@ -319,8 +325,6 @@ $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['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."; @@ -333,11 +337,11 @@ $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_day'] = "Day(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_min'] = "Min(s)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' parameter (webinterface -> rank), but that servergroup ID isn't existent on your TS3 server (anymore)! Please correct this or errors might happen!"; $lang['upgrp0002'] = "Download new ServerIcon"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "hide excepted clients"; $lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; -$lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Give a 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 booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; +$lang['wiboost'] = "boost"; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Give a 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 booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $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!"; @@ -382,15 +387,15 @@ $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'] = "Activate this function to reset the online time of a user, if his TeamSpeak Client-database-ID has been changed.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $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['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $lang['widaform'] = "نظام التاريخ"; $lang['widaformdesc'] = "اختر كيفية ضهور التاريخ.

Example:
%a ايام, %h ساعات, %i دقائق, %s ثوان"; -$lang['widbcfgsuc'] = "تعديلات قاعدة البيانات حفظت بنجاح"; $lang['widbcfgerr'] = "'other/dbconfig.php'خلل عند حفظ تعديلات قاعدة البيانات فشل الاتصال مع "; +$lang['widbcfgsuc'] = "تعديلات قاعدة البيانات حفظت بنجاح"; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "اعادة انشاء المجاميع"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which shou $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "ترفيع رتبة"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "إعدادات"; $lang['wiignidle'] = "Ignoriere Idle"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a 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 point for the Ranksystem as idle time.

This function matters only in conjunction with the mode 'active time'.

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

0 Sec. = disable this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes as active time."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ pa $lang['wimsgusr'] = "Rank up notification"; $lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; $lang['winav1'] = "TeamSpeak"; +$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 define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; +$lang['winav12'] = "Addons"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Other"; @@ -474,21 +482,21 @@ $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 define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; -$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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds.
"; $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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 define a Bot-Admin inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to define a Bot-Admin inside the webinterface before. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$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 Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin not found on TS3 server. You need to be online with the unique Client-ID, which is saved as Bot-Admin."; $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"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "The password of the webinterface has been successfully res $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 Bot-Admin."; -$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"; @@ -512,10 +517,10 @@ $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['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "idle time"; $lang['wishcolitdesc'] = "Show column 'sum idle time' in stats/list_rankup.php"; @@ -545,24 +550,24 @@ $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['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time mode"; $lang['wisupidledesc'] = "There are two modes, how the time of a user will be rated.

1) online time: Servergroups will be given by online time. In this case the active and the inactive time will be rated.
(see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: Servergroups will be given by active time. In this case the inactive time will not be rated. The online time will be taken and reduced by the inactive time (=idle) to build the active time.
(see column 'sum. active time' in the 'stats/list_rankup.php')


A change of the 'time mode', also on longer running Ranksystem instances, should be no problem since the Ranksystem repairs wrong servergroups on a client."; $lang['wisvconf'] = "save"; $lang['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Changes successfully saved!"; $lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Changes successfully saved!"; $lang['witime'] = "Timezone"; $lang['witimedesc'] = "Select the timezone the server is hosted.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; $lang['wits3host'] = "TS3 Hostaddress"; $lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "With the Query-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):

%s

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['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; $lang['wits3querpw'] = "TS3 Query-Password"; @@ -571,8 +576,8 @@ $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 will find on:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak 3 query port
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

If its not default, you should find it in your 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "With the Query-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):

%s

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['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['witsz'] = "Log-Size"; diff --git a/languages/core_az_Azərbaycan_az.php b/languages/core_az_Azərbaycan_az.php index c15dfe3..327e046 100644 --- a/languages/core_az_Azərbaycan_az.php +++ b/languages/core_az_Azərbaycan_az.php @@ -1,10 +1,12 @@ indi Ranks Sisteminə əlavə edildi"; $lang['achieve'] = "Nail olmaq"; +$lang['adduser'] = "%s istifadəçisi % (unikal Müştəri-ID: %s; Müştəri bazası ID %s) bilinmir -> indi Ranks Sisteminə əlavə edildi"; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "yüksələn"; -$lang['boton'] = "Bot çalışır..."; $lang['botoff'] = "Bot dayandırılıb."; +$lang['boton'] = "Bot çalışır..."; $lang['brute'] = "Veb interfeysə çox yanlış girişlər aşkar olundu. Giriş 300 saniyə ərzində bloklandı! IP %s ünvanından giriş oldu."; $lang['brute1'] = "Veb interfeysə səhv giriş cəhdi aşkar edildi. %s ip ünvanından və %s istifadəçi adından giriş cəhdləri uğursuz oldu."; $lang['brute2'] = "IP %s ilə veb interfeysə uğurlu giriş etdi."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Yanlış PHP komandası %s fayl daxilində müəy $lang['chkphpmulti'] = "Göründüyü kimi, sisteminizdə bir neçə PHP versiyasını işə salırsınız.

Sizin webserver (bu sayt) versiyası ilə işləyir: %s
Müəyyən bir komanda %s versiyası ilə yerinə yetirilir: %s

Həm də eyni PHP versiyasını istifadə edin!

Siz %s fayl daxilində kimi sıralarında sistemi üçün versiyası müəyyən edə bilərsiniz. Daha ətraflı məlumat və nümunələr içərisində tapa bilərsiniz.
Cari anlayışın xaricində %s:
%sPHP versiyasını da dəyişə bilərsiniz, sizin web serveriniz istifadə edir. Bunun üçün kömək almaq üçün dünya şəbəkəsi istifadə edin.

Həmişə ən son PHP versiyasını istifadə etməyi məsləhət görürük!

Sistem mühitində PHP versiyasını konfiqurasiya edə bilmirsinizsə, sizin məqsədləriniz üçün işləyir, bu normaldır. Lakin, yalnız dəstəklənən bir yol həm də bir PHP versiyasıdır!"; $lang['chkphpmulti2'] = "Sizin saytda PHP tapa bilərsiniz yolu:%s"; $lang['clean'] = "Müştərilər üçün silmək üçün axtarış..."; +$lang['clean0001'] = "Lazımsız avatar silindi (əvvəlki unikal Müştəri ID: %s)."; +$lang['clean0002'] = "Lazımsız avatar silinərkən səhv %s (unikal Müştəri ID: %s)."; +$lang['clean0003'] = "Verilən məlumat bazasını yoxlayın. Bütün lazımsız şeylər silindi."; +$lang['clean0004'] = "İstisna istifadəçiləri üçün yoxlanılması görülmüşdür. Heç bir şey dəyişməyib, çünki 'təmiz müştərilər' funksiyası aradan qaldırılır (veb interfeysi - other)."; $lang['cleanc'] = "təmiz müştərilər"; $lang['cleancdesc'] = "Bu funksiya ilə köhnə müştərilər Ranksystem-dən silinir.

Bu məqsədlə Ranks Sistemi TeamSpeak verilənlər bazası ilə sinxronlaşdırılacaq. TeamSpeak serverində artıq mövcud olmayan müştərilər Ranksystem-dən silinəcəkdir.

Bu funksiya yalnız 'Query-Slowmode' ləğv edildiğinde aktivləşdirilir!


TeamSpeak verilənlər bazasını avtomatik olaraq konfiqurasiya etmək üçün müştəri təmizləyicisindən istifadə edə bilərsiniz:
%s"; $lang['cleandel'] = "%s müştəriləri, TeamSpeak verilənlər bazasında artıq mövcud olmadığı üçün sıralama sisteminin məlumat bazasından çıxarıldı."; @@ -22,14 +28,11 @@ $lang['cleanp'] = " təmiz dövr"; $lang['cleanpdesc'] = "'Təmiz müştərilər' işə başlamazdan əvvəl keçməmiş bir vaxt seçin.

Saniyə vaxt qəbulu.

Tövsiyə olunur gündə bir dəfə, müştərinin təmizlənməsi böyük məlumat bazaları üçün çox vaxt lazımdır."; $lang['cleanrs'] = "Ranksystem verilənlər bazasında müştərilər: %s"; $lang['cleants'] = "TeamSpeak verilənlər bazasında müştərilər tapıldı: %s (of %s)"; -$lang['clean0001'] = "Lazımsız avatar silindi (əvvəlki unikal Müştəri ID: %s)."; -$lang['clean0002'] = "Lazımsız avatar silinərkən səhv %s (unikal Müştəri ID: %s)."; -$lang['clean0003'] = "Verilən məlumat bazasını yoxlayın. Bütün lazımsız şeylər silindi."; -$lang['clean0004'] = "İstisna istifadəçiləri üçün yoxlanılması görülmüşdür. Heç bir şey dəyişməyib, çünki 'təmiz müştərilər' funksiyası aradan qaldırılır (veb interfeysi - other)."; $lang['day'] = "%s gün"; $lang['days'] = "%s gün"; $lang['dbconerr'] = "Verilənlər bazasına qoşulmaq mümkün olmadı: "; $lang['desc'] = "azalan"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token səhvdir və ya başa çatdı (= təhlükəsizlik yoxlanılmadı)! Xahiş edirik bu saytı yenidən yükləyin və yenidən cəhd edin. Əgər bu səhv bir neçə dəfə təkrarlanırsa, seansın çerez faylını brauzerdən silin və yenidən cəhd edin!"; $lang['errgrpid'] = "Dəyişikliklər veritabanında saxlanılan səhvlər səbəbindən saxlanmadı. Xahiş edirik problemləri həll edin və dəyişikliklərinizi sonra saxlayın!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Gücün tətbiqi müdafiə: Çox səhvlər. 300 saniyə $lang['error'] = "Səhv "; $lang['errorts3'] = "TS3 Səhv: "; $lang['errperm'] = "Xahiş edirik '%s' qovluğunun yazma icazəsini yoxlayın!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Ən azı bir istifadəçi seçin!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Xahiş edirik əlavə etmək üçün bir onlayn vaxt daxil edin!"; +$lang['errselusr'] = "Ən azı bir istifadəçi seçin!"; $lang['errukwn'] = "Naməlum xəta baş verib!"; $lang['factor'] = "Factor"; $lang['highest'] = "ən yüksək dərəcəyə çatdı"; @@ -51,12 +54,12 @@ $lang['install'] = "Quraşdırma"; $lang['instdb'] = "Verilənlər bazasını quraşdırın"; $lang['instdbsuc'] = "Verilənlər bazası uğurla yaradıldı."; $lang['insterr1'] = "DİQQƏT: Siz Ranksystem'i qurmağa çalışırsınız, ancaq adı ilə bir verilənlər bazası var \"%s\".
Quraşdırma sayəsində bu verilənlər bazası silinəcəkdir!
Bunu istədiyinizə əmin olun. Əgər deyilsə, başqa bir verilənlər bazası adı seçin."; -$lang['insterr2'] = "%1\$s tələb olunur, lakin quraşdırılmamışdır. Yüklə %1\$s və yenidən cəhd edin!"; -$lang['insterr3'] = "PHP %1\$s funksiyası aktiv olmalıdır, lakin aktiv görünmür. Xahiş edirik PHP'yi aktivləşdirin %1\$s funksiyası və yenidən cəhd edin!"; +$lang['insterr2'] = "%1\$s tələb olunur, lakin quraşdırılmamışdır. Yüklə %1\$s və yenidən cəhd edin!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "PHP versiyanız (%s) 5.5.0-dən aşağıdır. PHP-ni yeniləyin və yenidən cəhd edin!"; -$lang['isntwicfg'] = "Verilənlər bazası konfiqurasiyasını saxlaya bilmir! Tam yazma icazələrini təyin edin 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') və sonra yenidən cəhd edin."; +$lang['isntwicfg'] = "Verilənlər bazası konfiqurasiyasını saxlaya bilmir! Tam yazma icazələrini təyin edin 'other/dbconfig.php' (Linux: chmod 740; Windows: 'full access') və sonra yenidən cəhd edin."; $lang['isntwicfg2'] = "Veb-interfeysin konfiqurasiyası"; -$lang['isntwichm'] = "\"%s\" qovluğunda qeyd icazəsi yoxdur. Tam hüquqlar verin (Linux: chmod 777; Windows: 'full access') və Ranksystem'i yenidən başlatmağa çalışın."; +$lang['isntwichm'] = "\"%s\" qovluğunda qeyd icazəsi yoxdur. Tam hüquqlar verin (Linux: chmod 740; Windows: 'full access') və Ranksystem'i yenidən başlatmağa çalışın."; $lang['isntwiconf'] = "Ranksystem'i konfiqurasiya etmək üçün %s açın!"; $lang['isntwidbhost'] = "DB ünvanı:"; $lang['isntwidbhostdesc'] = "Verilənlər bazasının fəaliyyət göstərdiyi serverin ünvanı.
(IP və ya DNS)

Verilənlər bazası server və web server (= web space) eyni sistemdə çalışır, siz gərək bunları istifadə edəsiz
localhost
və ya
127.0.0.1
"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Xahiş edirik, web space'dan 'install.php' faylını sil $lang['isntwiusr'] = "Veb-interfeys üçün istifadəçi uğurla yaradılıb."; $lang['isntwiusr2'] = "Təbrik edirik! Quraşdırma prosesini bitirdiniz."; $lang['isntwiusrcr'] = "Veb-interfeys-İstifadəçi yarat"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $lang['isntwiusrdesc'] = "Veb-interfeysə daxil olmaq üçün istifadəçi adı və parol daxil edin. Veb-interfeysi ilə Rank sistemini konfiqurasiya edə bilərsiniz."; $lang['isntwiusrh'] = "Veb-interfeysə giriş"; $lang['listacsg'] = "cari server qrupu"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Istifadəçi %s (unikal Müştəri-ID: %s; Client-databa $lang['sccupcount'] = "Unikal Müştərilər üçün ID (%s) üçün %s saniyəlik aktiv vaxt bir neçə saniyə əlavə olunacaq (Ranksystem jurnalına baxın)."; $lang['sccupcount2'] = "Unikal müştəri ID (%s) üçün aktiv vaxt %s saniyə əlavə edin; administrator funksiyası haqqında tələb olunur."; $lang['setontime'] = "vaxt əlavə edin"; -$lang['setontimedesc'] = "Əvvəlki seçilmiş müştərilərə onlayn vaxt əlavə edin. Hər bir istifadəçi bu dəfə köhnə onlayn vaxtına əlavə olacaq.

Daxil vaxt sıralamada nəzərə alınacaq və dərhal qüvvəyə çatacaqdır."; $lang['setontime2'] = "vaxt silin"; +$lang['setontimedesc'] = "Əvvəlki seçilmiş müştərilərə onlayn vaxt əlavə edin. Hər bir istifadəçi bu dəfə köhnə onlayn vaxtına əlavə olacaq.

Daxil vaxt sıralamada nəzərə alınacaq və dərhal qüvvəyə çatacaqdır."; $lang['setontimedesc2'] = "Əvvəlki seçilmiş müştərilərlə onlayn vaxtının silinməsi. Hər bir istifadəçinin bu dəyərini köhnə onlayn vaxtından çıxarılır.

Daxil edilmiş onlayn vaxt dərəcə üçün hesablanır və dərhal təsir etməlidir."; $lang['sgrpadd'] = "Qrant serverləri qrupu %s (ID: %s) istifadəçilər üçün %s (unikal Müştəri ID: %s; Müştəri bazası-ID %s)."; $lang['sgrprerr'] = "Təsirə məruz qalmış istifadəçi: %s (unikal Müştəri ID: %s; Müştəri bazası-ID %s) və server qrupu %s (ID: %s)."; $lang['sgrprm'] = "Silinmiş server qrupu %s (ID: %s) istifadəçidən %s (unikal Müştəri ID: %s; Müştəri bazası-ID %s)."; $lang['size_byte'] = "B"; +$lang['size_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Səlahiyyət ver"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $lang['stag0002'] = "Qruplar İzlənilsin"; -$lang['stag0003'] = "Bir istifadəçi özünü təyin edə biləcək servergroups siyahısını müəyyənləşdirin.

Servergroups, burada groupID vergüllə ayrılmış olmalıdır.

Məsələn:
23,24,28
"; +$lang['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Qrup Limiti"; $lang['stag0005'] = "Təyin etmək mümkün olan server qruplarının sayını məhdudlaşdırın."; $lang['stag0006'] = "İP ünvanınızla bir çox unikal ID var. Xahiş edirik, ilk növbədə doğrulamaq üçün %sburaya vurun%s.."; @@ -288,22 +292,24 @@ $lang['stri0009'] = "Ranksystem necə yaradılmışdır?"; $lang['stri0010'] = "Ranksystem daxilində inkişaf edir"; $lang['stri0011'] = "Həmçinin aşağıdakı kitabxanalardan istifadə olunur:"; $lang['stri0012'] = "Xüsusi təşəkkür edirik:"; -$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['stri0013'] = "%s for russian translation"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s for italian translation"; +$lang['stri0016'] = "%s for initialisation arabic translation"; +$lang['stri0017'] = "%s for initialisation romanian translation"; +$lang['stri0018'] = "%s for initialisation dutch translation"; +$lang['stri0019'] = "%s for french translation"; +$lang['stri0020'] = "%s for portuguese translation"; +$lang['stri0021'] = "%s for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "Ümumi sıralama"; +$lang['sttm0001'] = "Aylıq sıralama"; $lang['sttw0001'] = "Sıralama"; $lang['sttw0002'] = "Həftəkik sıralama"; $lang['sttw0003'] = "%s %s onlayn vaxt "; @@ -319,8 +325,6 @@ $lang['sttw0012'] = "Digər %s istifadəçi (saat)"; $lang['sttw0013'] = "%s %s aktiv vaxt "; $lang['sttw0014'] = "saat"; $lang['sttw0015'] = "dəqiqə"; -$lang['sttm0001'] = "Aylıq sıralama"; -$lang['stta0001'] = "Ümumi sıralama"; $lang['stve0001'] = "\nSalam [b]%s[/b],\naşağıdakı link sizin doğrulama linkinizdir :\n[B]%s[/B]\n\nBağlantı işləməzsə, sayta bu kodu daxil edə bilərsiniz:\n[B]%s[/B]\n\nBu mesajı istəmədiyiniz təqdirdə, onu görürsünüz. Yenidən dəfələrlə əldə etdiyiniz zaman bir administratorla əlaqə saxlayın."; $lang['stve0002'] = "TS3 serverində kod ilə bir mesaj göndərildi."; $lang['stve0003'] = "Xahiş edirik TS3 serverində aldığınız kodu girin. Bir mesaj almasanız, xahiş edirik doğru istifadəçini seçdiyinizdən əmin olun."; @@ -333,11 +337,11 @@ $lang['stve0009'] = " -- özünüzü seçin -- "; $lang['stve0010'] = "Buraya daxil etmək üçün TS3 serverindəki bir kod alacaqsınız:"; $lang['stve0011'] = "Kod:"; $lang['stve0012'] = "onayla"; +$lang['time_day'] = "Gün(s)"; +$lang['time_hour'] = "Saat(s)"; +$lang['time_min'] = "Dəqiqə(s)"; $lang['time_ms'] = "ms"; $lang['time_sec'] = "Saniyə(s)"; -$lang['time_min'] = "Dəqiqə(s)"; -$lang['time_hour'] = "Saat(s)"; -$lang['time_day'] = "Gün(s)"; $lang['unknown'] = "unknown"; $lang['upgrp0001'] = "Sizin daxili yapılandırılmış %s ID ilə server bir qrup var '%s' parametr (webinterface -> rank), lakin servergroup ID sizin TS3 serverinizdə mövcud deyildir (artıq)! Xahiş edirik düzeldin və ya səhvlər ola bilər!"; $lang['upgrp0002'] = "Yeni Server İkonunu yükləyin"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "istisnasız müştəriləri gizlət"; $lang['wiadmhidedesc'] = "Aşağıdakı seçimdə istisnasız istifadəçiləri gizlət"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "artım"; -$lang['wiboostdesc'] = "Bir istifadəçi bir server qrup verin (əllə yaradılmalıdır), burada təkan qrupu olaraq bəyan edə bilərsiniz. Həmçinin istifadə ediləcək faktoru (məsələn 2x) və vaxtı müəyyənləşdirin, uzun impuls qiymətləndirilməlidir.
Faktor nə qədər yüksək olsa, istifadəçi daha yüksək səviyyəyə çatır.
Bu müddət keçdikdən sonra, bot Server qrupu avtomatik olaraq istifadəçidən çıxarır. Istifadəçi server qrupunu alır və işə başlayır.

Faktor da onluq ədədləri mümkündür. Onluq yerlər bir nöqtə ilə ayrılmalıdır!

server qrup ID => faktor => vaxt (saniyə)

Hər bir giriş vergüllə növbəti birindən ayrılmalıdır.

Məsələn:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Burada servergroup 12-də bir istifadəçi növbəti 6000 saniyə üçün 2 faktoru əldə edir, servergroup 13-də istifadəçi 2500 saniyə üçün 1.25 faktorunu əldə edir və s."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Bir istifadəçi bir server qrup verin (əllə yaradılmalıdır), burada təkan qrupu olaraq bəyan edə bilərsiniz. Həmçinin istifadə ediləcək faktoru (məsələn 2x) və vaxtı müəyyənləşdirin, uzun impuls qiymətləndirilməlidir.
Faktor nə qədər yüksək olsa, istifadəçi daha yüksək səviyyəyə çatır.
Bu müddət keçdikdən sonra, bot Server qrupu avtomatik olaraq istifadəçidən çıxarır. Istifadəçi server qrupunu alır və işə başlayır.

Faktor da onluq ədədləri mümkündür. Onluq yerlər bir nöqtə ilə ayrılmalıdır!

server qrup ID => faktor => vaxt (saniyə)

Hər bir giriş vergüllə növbəti birindən ayrılmalıdır.

Məsələn:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Burada servergroup 12-də bir istifadəçi növbəti 6000 saniyə üçün 2 faktoru əldə edir, servergroup 13-də istifadəçi 2500 saniyə üçün 1.25 faktorunu əldə edir və s."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $lang['wibot1'] = "Ranksystem botu dayandırılmalıdır. Daha ətraflı məlumat üçün aşağıda qeydləri yoxlayın!"; $lang['wibot2'] = "Ranksystem bot'u başlamalıdır. Daha ətraflı məlumat üçün aşağıdakı logoyu yoxlayın!"; $lang['wibot3'] = "Ranksystem bot yenidən başlatıldı. Daha ətraflı məlumat üçün aşağıdakı logoyu yoxlayın!"; @@ -382,15 +387,15 @@ $lang['wibot8'] = "Ranksystem log (pasaj):"; $lang['wibot9'] = "Sıralama sistemi başlamazdan əvvəl bütün tələb olunan sahələri doldurun!"; $lang['wichdbid'] = "Müştəri bazası-ID bərpa et"; $lang['wichdbiddesc'] = "TeamSpeak-database-ID müştərisi dəyişdirildikdə, İstifadəçinin əməliyyat vaxtını sıfırlamaq üçün bu funksiyanı aktivləşdirilir.
İstifadəçi onun unikal Müştəri-ID ilə uyğunlaşdırılacaq.

Bu funksiya aradan qaldıqda, onlayn (və ya aktiv) vaxtın hesablanması köhnə dəyər ilə davam edəcək, yeni Müştəri bazası-ID. Bu halda istifadəçinin yalnız Müştəri bazası-ID-si əvəz olunacaq.


Müştəri bazası-ID-i necə dəyişir?

Aşağıdakı hallarda hər bir müştəri yeni Client-database-ID-i alır və növbəti TS3 serverinə qoşulur.

1) TS3 server tərəfindən avtomatik olaraq
TeamSpeak server istifadəçiləri silmək üçün bir funksiyaya sahibdir. Bu, bir istifadəçi 30 gün ərzində oflayn olduğunda və qalıcı server qrup olmadığı üçün olur.
Bu parametr daxilində dəyişdirilə bilər ts3server.ini:
dbclientkeepdays=30

2) TS3 ani şəkilinin bərpası
Bir TS3 server anlıq görüntüsünü bərpa edərkən verilənlər bazası-ID'ler dəyişdiriləcəkdir.

3) əl ilə Client aradan qaldırılması
TeamSpeak müştəri də TS3 serverindən əl ilə və ya üçüncü şəxslər tərəfindən ssenari ilə silinməlidir."; -$lang['wiconferr'] = "Ranksystem-in konfiqurasiyasında bir səhv var. Veb-interfeysə keçin və rank parametrləri düzəlt!"; $lang['wichpw1'] = "Köhnə parol səhvdir. Yenidən cəhd edin"; $lang['wichpw2'] = "Yeni parol uyğun gəlmir. Yenidən cəhd edin."; $lang['wichpw3'] = "Veb interfeys parolası uğurla dəyişdirildi. IP %s tələb olunur."; $lang['wichpw4'] = "Şifrə dəyiş"; +$lang['wiconferr'] = "Ranksystem-in konfiqurasiyasında bir səhv var. Veb-interfeysə keçin və rank parametrləri düzəlt!"; $lang['widaform'] = "Tarix formatı"; $lang['widaformdesc'] = "Göstərilən tarix formatını seçin.

Məsələn:
%a gün, %h saat, %i dəqiqə, %s saniyə"; -$lang['widbcfgsuc'] = "Verilənlər bazası konfiqurasiyaları uğurla qeyd edildi."; $lang['widbcfgerr'] = "Verilənlər bazası konfiqurasiyaları qənaət edərkən səhv baş verdi! 'other/dbconfig.php' bağlantısı uğursuz oldu."; +$lang['widbcfgsuc'] = "Verilənlər bazası konfiqurasiyaları uğurla qeyd edildi."; $lang['widbg'] = "Log Səviyyəsi"; $lang['widbgdesc'] = "Sıralama sistemi log səviyyəsi seçin. Bununla siz \"ranksystem.log\" faylına neçə məlumatın yazılmasına qərar verə bilərsiniz.

Giriş səviyyəsinin nə qədər yüksək olduğu halda daha çox məlumat alacaqsınız.

Giriş Səviyyəsinin dəyişdirilməsi Ranksystem botun yenidən başlaması ilə qüvvəyə çatır.

Xahiş edirik Ranksystem-ın \"6 - DEBUG\" üzərindən daha uzun müddət çalışmasına imkan verməyin, bu sizin fayl sisteminizə zərbə vuracaq!"; $lang['widelcldgrp'] = "yeniləyən qruplar"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "Virgülle ayrılmış unikal Müştəri ID siyahısı, $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "sıralama tərifi"; -$lang['wigrptimedesc'] = "Burada müəyyən olunduqdan sonra istifadəçi avtomatik olaraq əvvəlcədən təyin edilmiş server qrupunu almalıdır.

vaxt (saniyə)=>server qrup ID

Maks. dəyər 999.999.999 saniyə (31 ildən çoxdur)

Bunun üçün mühüm rejimdən asılı olaraq istifadəçinin 'onlayn vaxt' və ya 'aktiv vaxt' olması vacibdir.

Hər bir giriş vergüllə bir-birindən ayrı olmalıdır.

Vaxt kumulyativ şəkildə təqdim edilməlidir

Məsələn:
60=>9,120=>10,180=>11
Bu nümunədə bir istifadəçi 60 saniyə sonra server qrup 9, server qrup 10 digər 60 saniyə sonra, server qrup 11 digər 60 saniyə sonra alır."; $lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Burada müəyyən olunduqdan sonra istifadəçi avtomatik olaraq əvvəlcədən təyin edilmiş server qrupunu almalıdır.

vaxt (saniyə)=>server qrup ID

Maks. dəyər 999.999.999 saniyə (31 ildən çoxdur)

Bunun üçün mühüm rejimdən asılı olaraq istifadəçinin 'onlayn vaxt' və ya 'aktiv vaxt' olması vacibdir.

Hər bir giriş vergüllə bir-birindən ayrı olmalıdır.

Vaxt kumulyativ şəkildə təqdim edilməlidir

Məsələn:
60=>9,120=>10,180=>11
Bu nümunədə bir istifadəçi 60 saniyə sonra server qrup 9, server qrup 10 digər 60 saniyə sonra, server qrup 11 digər 60 saniyə sonra alır."; +$lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Siyahı sıralaması (Admin-Mod)"; $lang['wihladm0'] = "Təsvirin açıqlaması (klikləyin)"; $lang['wihladm0desc'] = "Bir və ya daha çox sıfırlama variantını seçin və başlamaq üçün \"start reset\" düyməsini basın.
Hər bir seçim özü tərəfindən təsvir olunur.

Sıfırlama işlərini başladıktan sonra, bu saytdakı vəziyyəti görə bilərsiniz.

Yeniləmə vəzifəsi Ranksystem Bot ilə əlaqədar bir iş olaraq ediləcək.
Ranksystem Bot başladılması lazımdır.
Yenidən sıfırlama zamanı Botu dayandırmayın və ya yenidən başladın!

Yenidən qurma zamanı Ranksystem bütün digər şeyləri durduracaq. Yeniləməni tamamladıqdan sonra Bot avtomatik olaraq normal işlə davam edəcək. Başlatma, dayandırma və ya yenidən başlatma bunları etməyin!

Bütün işlər edildikdə, onları təsdiqləməlisiniz. Bu, işlərin vəziyyətini yenidən quracaq. Bu yeni bir sıfırlamanın başlamasına imkan verir.

Bir sıfırlama halında, istifadəçilərdən server dəstələrini çıxarın da istəyə bilərsiniz. Bunu dəyişdirməmək vacibdir 'rank up definition', bu sıfırlamadan əvvəl. Yenidən qurduqdan sonra dəyişə bilərsiniz 'rank up definition'!
Server qrupların çəkilməsi bir müddət ala bilər. Aktivdir 'Query-Slowmode' lazımi müddəti daha da artıracaq. Dayandırılmasını məsləhət görürük'Query-Slowmode'!


Xəbərdar olun, heç bir geri dönüş üsulu yoxdur!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "ayarlar"; $lang['wiignidle'] = "Boş vaxt"; $lang['wiignidledesc'] = "Bir istifadəçinin boş vaxtını nəzərə almadan bir müddət müəyyənləşdirin.

Bir müştəri serverdə heç bir şey etməzsə (=idle), bu dəfə Ranksystem tərəfindən müəyyən edilir. Bu funksiya ilə müəyyən bir limitə qədər istifadəçinin boş vaxtları onlayn kimi qiymətləndirilmir, əksinə, aktiv vaxt hesab olunur. Yalnız müəyyən edilmiş həddən artıq olduqda, bu nöqtədən Ranks System üçün boş vaxt kimi sayılır.

Bu funksiya yalnız rejimi ilə əlaqəli məsələdir 'active time'.

Bu funksiyanın mənası, məs. söhbətlərdə dinləmə müddətini bir fəaliyyət kimi qiymətləndirir

0 saniyə = funksiyanı dayandırır

Məsələn:
Boş vaxt = 600 (saniyə)
Müştəri 8 dəqiqə dayanır.
└ 8 dəqiqəlik boşluqlar göz ardı olunacaq və istifadəçi buna görə də bu vaxtı aktiv olaraq alır. Kəsintilər artıq 12 dəqiqə artıb, onda vaxt 10 dəqiqə və bu halda 2 dəqiqə boş vaxt kimi hesablanır olunacaq, ilk 10 dəqiqə hələ də fəal vaxt kimi qəbul olunacaqdır."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Server xəbərləri olaraq /stats/ səhifəsində göst $lang['wimsgusr'] = "Bildirişin dərəcəsi"; $lang['wimsgusrdesc'] = "Bir istifadəçiyə sıralaması barədə xüsusi mətn mesajı göndərin."; $lang['winav1'] = "TeamSpeak"; +$lang['winav10'] = "Xahiş edirik web saytını yalnız %sHTTPS%s istifadə edin. Şifrələmə gizlilik və təhlükəsizliyinizə əmin olmaq üçün vacibdir.%sTelefonunuzun HTTPS istifadə edə bilməsi üçün SSL bağlantısını dəstəkləmək lazımdır."; +$lang['winav11'] = "Xahiş edirik, Ranksystem (TeamSpeak -> Bot-Admin) administratorunun unikal Müştəri ID daxil edin. Veb interfeys üçün giriş məlumatlarınızı unutmusunuzsa (sıfırlamaq üçün) çox vacibdir."; +$lang['winav12'] = "Əlavələr"; $lang['winav2'] = "Verilənlər bazası"; $lang['winav3'] = "Əsas Parametr"; $lang['winav4'] = "Başqa"; @@ -474,21 +482,21 @@ $lang['winav6'] = "Statistika səhifəsi"; $lang['winav7'] = "İdarə et"; $lang['winav8'] = "Botu Başlat / Dayandır"; $lang['winav9'] = "Mövcudluğu yeniləyin!"; -$lang['winav10'] = "Xahiş edirik web saytını yalnız %sHTTPS%s istifadə edin. Şifrələmə gizlilik və təhlükəsizliyinizə əmin olmaq üçün vacibdir.%sTelefonunuzun HTTPS istifadə edə bilməsi üçün SSL bağlantısını dəstəkləmək lazımdır."; -$lang['winav11'] = "Xahiş edirik, Ranksystem (TeamSpeak -> Bot-Admin) administratorunun unikal Müştəri ID daxil edin. Veb interfeys üçün giriş məlumatlarınızı unutmusunuzsa (sıfırlamaq üçün) çox vacibdir."; -$lang['winav12'] = "Əlavələr"; $lang['winxinfo'] = "Komandalar \"!nextup\""; $lang['winxinfodesc'] = "TS3 serverindəki istifadəçini komanda yazmağa imkan verir \"!nextup\" Ranksystem (sorgu) botuna xüsusi mətn mesajı kimi göndərin.

Cavab olaraq, istifadəçi növbəti yüksək rütbə üçün lazım olan vaxtla müəyyən edilmiş mətn mesajı alacaq.

dayandırıldı - Funksiya dayandırıldı. '!nextup' əmri nəzərə alınmayacaq.
icazə verildi - yalnız növbəti dərəcə - Növbəti qrup üçün lazımi vaxtını geri qaytarır.
bütün növbəti sıralara icazə verildi - Bütün ali sıralara lazım olan vaxtları qaytarır."; $lang['winxmode1'] = "dayandırıldı"; $lang['winxmode2'] = "icazə verildi - yalnız növbəti dərəcə"; $lang['winxmode3'] = "bütün növbəti sıralara icazə verildi"; $lang['winxmsg1'] = "Mesaj"; -$lang['winxmsgdesc1'] = "İstifadəçinin komanda cavab olaraq alacağı bir mesajı təyin edin \"!nextup\".

Arqumentlər:
%1$s - günlərdən sonrakı rütbəyə
%2$s - saatlardan sonrakı rütbəyə
%3$s - dəqiqələrdən sonrakı rütbəyə
%4$s - saniyələrdən sonrakı rütbəyə
%5$s - növbəti server qrupunun adı
%6$s - istifadəçinin adı (alıcı)
%7$s - cari istifadəçi rütbəsi
%8$s - Mövcud server qrupunun adı
%9$s - Bu gündən etibarən mövcud server qrup


Məsələn:
Sonrakı rütbələriniz olacaq %1$s gün, %2$s saat və %3$s dəqiqə və %4$s saniyə. Növbəti səlahiyyət: [B]%5$s[/B].
"; $lang['winxmsg2'] = "Mesaj (ən yüksək)"; -$lang['winxmsgdesc2'] = "İstifadəçinin komanda cavab olaraq alacağı bir mesajı təyin edin \"!nextup\", istifadəçi ən yüksək dərəcəyə çatdıqda.

Arqumentlər:
%1$s - günlərdən sonrakı rütbəyə
%2$s - saatlardan sonrakı rütbəyə
%3$s - dəqiqələrdən sonrakı rütbəyə
%4$s - saniyələrdən sonrakı rütbəyə
%5$s - növbəti server qrupunun adı
%6$s - istifadəçinin adı (alıcı)
%7$s - cari istifadəçi rütbəsi
%8$s - Mövcud server qrupunun adı
%9$s - Bu gündən etibarən mövcud server qrup


Məsələn:
Sizə ən yüksək dərəcəyə çatıldı %1$s gün, %2$s saat və %3$s dəqiqə və %4$s saniyə.
"; $lang['winxmsg3'] = "Message (excepted)"; +$lang['winxmsgdesc1'] = "İstifadəçinin komanda cavab olaraq alacağı bir mesajı təyin edin \"!nextup\".

Arqumentlər:
%1$s - günlərdən sonrakı rütbəyə
%2$s - saatlardan sonrakı rütbəyə
%3$s - dəqiqələrdən sonrakı rütbəyə
%4$s - saniyələrdən sonrakı rütbəyə
%5$s - növbəti server qrupunun adı
%6$s - istifadəçinin adı (alıcı)
%7$s - cari istifadəçi rütbəsi
%8$s - Mövcud server qrupunun adı
%9$s - Bu gündən etibarən mövcud server qrup


Məsələn:
Sonrakı rütbələriniz olacaq %1$s gün, %2$s saat və %3$s dəqiqə və %4$s saniyə. Növbəti səlahiyyət: [B]%5$s[/B].
"; +$lang['winxmsgdesc2'] = "İstifadəçinin komanda cavab olaraq alacağı bir mesajı təyin edin \"!nextup\", istifadəçi ən yüksək dərəcəyə çatdıqda.

Arqumentlər:
%1$s - günlərdən sonrakı rütbəyə
%2$s - saatlardan sonrakı rütbəyə
%3$s - dəqiqələrdən sonrakı rütbəyə
%4$s - saniyələrdən sonrakı rütbəyə
%5$s - növbəti server qrupunun adı
%6$s - istifadəçinin adı (alıcı)
%7$s - cari istifadəçi rütbəsi
%8$s - Mövcud server qrupunun adı
%9$s - Bu gündən etibarən mövcud server qrup


Məsələn:
Sizə ən yüksək dərəcəyə çatıldı %1$s gün, %2$s saat və %3$s dəqiqə və %4$s saniyə.
"; $lang['winxmsgdesc3'] = "İstifadəçinin komanda cavab olaraq alacağı bir mesajı təyin edin \"!nextup\", istifadəçi Ranksystem istisna olmaqla.

Arqumentlər:
%1$s - günlərdən sonrakı rütbəyə
%2$s - saatlardan sonrakı rütbəyə
%3$s - dəqiqələrdən sonrakı rütbəyə
%4$s - saniyələrdən sonrakı rütbəyə
%5$s - növbəti server qrupunun adı
%6$s - istifadəçinin adı (alıcı)
%7$s - cari istifadəçi rütbəsi
%8$s - Mövcud server qrupunun adı
%9$s - Bu gündən etibarən mövcud server qrup


Məsələn:
Siz Ranksystem istisnasız. TS3 serverindəki bir əlaqələndirici əlaqələndirmək istəyirsiz.
"; -$lang['wirtpw1'] = "Üzr istəyirik, əvvəlcə veb interfeys Bot-Admin daxil etməyi unutmusunuz. Şifrəni yenidən qurma yolu yoxdur!"; +$lang['wirtpw1'] = "Üzr istəyirik, əvvəlcə veb interfeys Bot-Admin daxil etməyi unutmusunuz. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$lang['wirtpw10'] = "TeamSpeak3 serverində onlayn olmanız lazımdır."; +$lang['wirtpw11'] = "İdarə nömrəsi ilə saxlanılan unikal Müştəri ID ilə onlayn olmanız lazımdır."; +$lang['wirtpw12'] = "IP ünvanınız TS3 serverindəki administratorun IP ünvanına uyğun deyil. TS3 serverindəki eyni IP ünvanı ilə həm də bu səhifədəki IP adresi ilə bağlandığınızdan əmin olun (eyni protokolu IPv4/IPv6 da lazımdır)."; $lang['wirtpw2'] = "TS3 serverində Bot-Admin tapılmadı. İdarə nömrəsi ilə saxlanılan unikal Müştəri ID ilə online olmanız lazımdır."; $lang['wirtpw3'] = "IP ünvanınız TS3 serverindəki administratorun IP ünvanına uyğun deyil. TS3 serverindəki eyni IP ünvanı ilə həm də bu səhifədəki IP adresi ilə bağlandığınızdan əmin olun (eyni protokolu IPv4/IPv6 da lazımdır)."; $lang['wirtpw4'] = "\nVeb interfeysi üçün parol uğurla sıfırlandı.\nİstifadəçi adı: %s\nŞifrə: [B]%s[/B]\n\nGiriş üçün %sklikləyin%s"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "Veb interfeys şifrəsi uğurla sıfırlandıt. Request fr $lang['wirtpw7'] = "Şifrə sıfırla"; $lang['wirtpw8'] = "Burada webinterface üçün parol sıfırlaya bilərsiniz."; $lang['wirtpw9'] = "Şifrəni yenidən qurmaq üçün aşağıdakıları yerinə yetirmək lazımdır:"; -$lang['wirtpw10'] = "TeamSpeak3 serverində onlayn olmanız lazımdır."; -$lang['wirtpw11'] = "İdarə nömrəsi ilə saxlanılan unikal Müştəri ID ilə onlayn olmanız lazımdır."; -$lang['wirtpw12'] = "IP ünvanınız TS3 serverindəki administratorun IP ünvanına uyğun deyil. TS3 serverindəki eyni IP ünvanı ilə həm də bu səhifədəki IP adresi ilə bağlandığınızdan əmin olun (eyni protokolu IPv4/IPv6 da lazımdır)."; $lang['wiselcld'] = "müştəriləri seçin"; $lang['wiselclddesc'] = "Müştərilərə son bilinən istifadəçi adı, unikal Müştəri-ID və ya Müştəri-verilənlər bazası-ID ilə seçmək.
Birdən çox seçim də mümkündür."; $lang['wishcolas'] = "mövcud server qrup"; @@ -512,10 +517,10 @@ $lang['wishcoldbid'] = "verilənlər bazası-ID"; $lang['wishcoldbiddesc'] = "Sütunu göstərin 'Client-database-ID' list_rankup.php"; $lang['wishcolgs'] = "Bu gündən etibarən cari qrup"; $lang['wishcolgsdesc'] = "Sütunu göstərin 'current group since' list_rankup.php"; +$lang['wishcolha'] = "hash IP ünvanları"; $lang['wishcolha0'] = "dayandırılmış hashing"; $lang['wishcolha1'] = "təhlükəsiz hashing"; $lang['wishcolha2'] = "sürətli hashing (standart)"; -$lang['wishcolha'] = "hash IP ünvanları"; $lang['wishcolhadesc'] = "TeamSpeak 3 server hər bir müştərinin IP ünvanını saxlayır. Bu, Ranksystem-in veb interfeys istifadəçi statistika səhifəsini əlaqəli TeamSpeak istifadəçisi ilə əlaqələndirməsi üçün lazımdır.

Bu funksiya ilə TeamSpeak istifadəçilərinin IP ünvanlarının şifrələməsini / hashini aktivləşdirə bilərsiniz. Aktivləşdirildikdə, verilənlər bazasında saxlanılan dəyər yalnız düz mətndə saxlanılacaq. Bu, məxfilik hüququnuzun bəzi hallarda tələb olunur; xüsusilə EU-GDP'dən tələb olunur.

sürətli hashing (standart): hash IP ünvanları. Duz, hər bir sıra sisteminin nümunəsi üçün fərqlidir, lakin serverdakı bütün istifadəçilər üçün eynidır. Bu, daha sürətli, lakin 'secure hashing' kimi zəif edir.

təhlükəsiz hashing: IP ünvanı hash. Hər bir istifadəçi öz duzunu alacaq, bu, IP-nin şifrələməsini çətinləşdirir (= təhlükəsiz). Bu parametr AB-GDPR ilə uyğun gəlir. Qarşı: Bu dəyişiklik xüsusilə TeamSpeak ' ın böyük serverlərində performansa təsir edir, Saytın ilk açılışında statistika səhifəsini çox yavaşlayacaq. Həmçinin zəruri resursları artırır.

dayandırılmış hashing: Bu funksiya söndürüldükdə, İstifadəçinin IP ünvanı düz mətn kimi qeyd olunacaq. Bu ən kiçik resursları tələb edən ən sürətli variantdır.


İstifadəçilərin IP ünvanının bütün variantlarında istifadəçi TS3 serverinə qoşulduqda (az məlumat yığımı-EU-GDPR) saxlanılacaq.

İstifadəçilərin IP ünvanları İstifadəçinin TS3 serverinə qoşulmasından sonra saxlanacaq. Bu funksiyanı dəyişdikdə istifadəçi reytinq sisteminin veb interfeys yoxlamaq üçün TS3 serverinə yenidən qoşulmalıdır."; $lang['wishcolit'] = "boş vaxt"; $lang['wishcolitdesc'] = "Sütunu göstərin 'sum idle time' list_rankup.php"; @@ -545,24 +550,24 @@ $lang['wishnav'] = "sayt-naviqasiya göstər"; $lang['wishnavdesc'] = "Saytın naviqasiyasını göstər 'stats/' səhifəsi.

Bu seçim stats səhifəsində ləğv olunarsa, sayt naviqasiyası gizlənəcəkdir.
Daha sonra hər bir saytı məs. 'stats/list_rankup.php' və mövcud saytda və ya reklam lövhəsində bir çərçivə kimi əlavə edin."; $lang['wishsort'] = "susmaya görə sıralama qaydası "; $lang['wishsortdesc'] = "Siyahı sıralaması səhifəsi üçün standart sıralama qaydasını müəyyənləşdirin."; +$lang['wistcodesc'] = "Mükəmməlliyi qarşılamaq üçün server-əlaqə bir tələb sayı göstərin."; +$lang['wisttidesc'] = "Mükəmməlliyi qarşılamaq üçün lazım olan vaxtı (saat) göstərin."; $lang['wisupidle'] = "time Mod"; $lang['wisupidledesc'] = "İki rejim var, vaxt necə sayılır.

1) onlayn vaxt: Burada istifadəçinin təmiz onlayn saatı nəzərə alınır (sütun bax 'sum. online time' 'stats/list_rankup.php')

2) aktiv vaxt: Burada istifadəçinin onlayn vaxtından qeyri-aktiv vaxt (boş vaxt) çıxılacaq və yalnız aktiv vaxt sayılır (sütun bax 'sum. active time' 'stats/list_rankup.php').

Zatən uzun müddət çalışan Ranksystem ilə rejimin dəyişməsi təklif edilmir, lakin daha böyük problemlər olmadan işləməlidir. Hər bir istifadəçi ən azı bir sonrakı rütbə ilə təmir ediləcək."; $lang['wisvconf'] = "yadda saxla"; $lang['wisvinfo1'] = "Diqqət!! Istifadəçilər IP ünvanını hashing rejimini dəyişdirərək, istifadəçinin TS3 serverinə yeni birləşməsi və ya istifadəçi statistika səhifəsi ilə sinxronizasiya edilməməsi zəruridir."; -$lang['wisvsuc'] = "Dəyişikliklər uğurla saxlanıldı!"; $lang['wisvres'] = "Dəyişikliklər qüvvəyə çatmadan əvvəl Ranksystem-i yenidən başladın! %s"; -$lang['wisttidesc'] = "Mükəmməlliyi qarşılamaq üçün lazım olan vaxtı (saat) göstərin."; -$lang['wistcodesc'] = "Mükəmməlliyi qarşılamaq üçün server-əlaqə bir tələb sayı göstərin."; +$lang['wisvsuc'] = "Dəyişikliklər uğurla saxlanıldı!"; $lang['witime'] = "Saat qurşağı"; $lang['witimedesc'] = "Serverin yerləşdiyi vaxt zonasını seçin.

Saat qurşağı jurnalın içərisində vaxt damgasını təsir edir (ranksystem.log)."; $lang['wits3avat'] = "Avatar Gecikməsi"; $lang['wits3avatdesc'] = "Değişən TS3 avatarların gecikdirilməsini gecikdirmək üçün bir saniyə müəyyən edin.

Bu funksiya onun müəllifini periodik olaraq dəyişdirən (musiqi) botlar üçün xüsusilə faydalıdır."; $lang['wits3dch'] = "standart kanal"; $lang['wits3dchdesc'] = "Kanal-ID, bot ilə əlaqələndirilməlidir.

The bot will join this channel after connecting to the TeamSpeak server."; +$lang['wits3encrypt'] = "TS3 Query şifrələmə"; +$lang['wits3encryptdesc'] = "Ranksystem və TeamSpeak 3 server (SSH) arasında rabitəni şifrələmək üçün bu seçimi aktivləşdirin.
Bu funksiya aradan qaldıqda, rabitə düz mətndə (RAW). Bu xüsusilə TS3 server və Ranksystem müxtəlif maşınlarda işləyərkən təhlükəsizlik riski ola bilər.

Həmçinin əmin olun ki, Ranksystem-də dəyişdirilməli olan (ehtimal) TS3 Sorgu Portunu yoxladınız!

Diqqət: SSH şifrələmə daha çox CPU vaxtına və daha çox sistem resurslarına ehtiyac duyur. Buna görə TS3 server və Ranksystem eyni host / server (localhost / 127.0.0.1) üzərində çalışan bir RAW bağlantısı (əlil şifrələmə) istifadə etməyi məsləhət görürük. Fərqli hostlarda çalışırlarsa, şifrli əlaqəni aktivləşdirməlisiniz!

Tələblər:

1) TS3 Server versiyası 3.3.0 və ya yuxarıda.

2) PHP-nin PHP-SSH2 uzadılması lazımdır.
Linux-da aşağıdakı komanda ilə yükləyə bilərsiniz:
%s
3) Şifrələmə TS3 serverinizdə aktivləşdirilməlidir!
Aşağıdakı parametrləri sizin daxilində aktivləşdirin 'ts3server.ini' və ehtiyaclarınız üçün fərdiləşdirin:
%s TS3 server konfiqurasiyasını dəyişdikdən sonra TS3 serverinizin yenidən başlanması lazımdır."; $lang['wits3host'] = "TS3 Host Ünvanı"; $lang['wits3hostdesc'] = "TeamSpeak 3 Server ünvanı
(IP və DNS)"; -$lang['wits3sm'] = "Query-YavaşModu"; -$lang['wits3smdesc'] = "Query-YavaşModu ilə, sorgu əmrləri spamını TeamSpeak serverinə endirə bilərsiniz. Bu spam vəziyyətində qadağanı maneə törədir.
TeamSpeak Query əmrləri bu funksiyanı gecikdirir.

!!! Həmçinin CPU azaldar !!!

Lazım olmasa, aktivləşdirmə tövsiyə edilmir. Gecikmə botun sürətini yavaşlatır, bu da qeyri-dəqiqdir.

Son sütun bir tura (saniyədə):

%s

Buna görə, ultra gecikmə ilə dəyərlər (dəfə) təxminən 65 saniyə ilə qeyri-dəqiq olur! Nə edəcəyinə və / və ya server ölçüsünə görə daha yüksəkdir!"; $lang['wits3qnm'] = "Bot adı"; $lang['wits3qnmdesc'] = "Adı, bununla birlikdə sorğu-əlaqə qurulacaq.
You can name it free."; $lang['wits3querpw'] = "TS3 Query-Şifrə"; @@ -571,8 +576,8 @@ $lang['wits3querusr'] = "TS3 Query-İstifadəçi"; $lang['wits3querusrdesc'] = "TeamSpeak 3 query istifadəçi
standart serveradmin
Yalnız Ranksystem üçün əlavə serverquery hesabı yaratmaq təklif olunur.
Lazım olan icazələr aşağıdakılardan ibarətdir:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak 3 query port
standart 10011 (TCP)
standart SSH 10022 (TCP)

Bu standart deyilsə, bunu sizinlə tapa bilərsiniz 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query şifrələmə"; -$lang['wits3encryptdesc'] = "Ranksystem və TeamSpeak 3 server (SSH) arasında rabitəni şifrələmək üçün bu seçimi aktivləşdirin.
Bu funksiya aradan qaldıqda, rabitə düz mətndə (RAW). Bu xüsusilə TS3 server və Ranksystem müxtəlif maşınlarda işləyərkən təhlükəsizlik riski ola bilər.

Həmçinin əmin olun ki, Ranksystem-də dəyişdirilməli olan (ehtimal) TS3 Sorgu Portunu yoxladınız!

Diqqət: SSH şifrələmə daha çox CPU vaxtına və daha çox sistem resurslarına ehtiyac duyur. Buna görə TS3 server və Ranksystem eyni host / server (localhost / 127.0.0.1) üzərində çalışan bir RAW bağlantısı (əlil şifrələmə) istifadə etməyi məsləhət görürük. Fərqli hostlarda çalışırlarsa, şifrli əlaqəni aktivləşdirməlisiniz!

Tələblər:

1) TS3 Server versiyası 3.3.0 və ya yuxarıda.

2) PHP-nin PHP-SSH2 uzadılması lazımdır.
Linux-da aşağıdakı komanda ilə yükləyə bilərsiniz:
%s
3) Şifrələmə TS3 serverinizdə aktivləşdirilməlidir!
Aşağıdakı parametrləri sizin daxilində aktivləşdirin 'ts3server.ini' və ehtiyaclarınız üçün fərdiləşdirin:
%s TS3 server konfiqurasiyasını dəyişdikdən sonra TS3 serverinizin yenidən başlanması lazımdır."; +$lang['wits3sm'] = "Query-YavaşModu"; +$lang['wits3smdesc'] = "Query-YavaşModu ilə, sorgu əmrləri spamını TeamSpeak serverinə endirə bilərsiniz. Bu spam vəziyyətində qadağanı maneə törədir.
TeamSpeak Query əmrləri bu funksiyanı gecikdirir.

!!! Həmçinin CPU azaldar !!!

Lazım olmasa, aktivləşdirmə tövsiyə edilmir. Gecikmə botun sürətini yavaşlatır, bu da qeyri-dəqiqdir.

Son sütun bir tura (saniyədə):

%s

Buna görə, ultra gecikmə ilə dəyərlər (dəfə) təxminən 65 saniyə ilə qeyri-dəqiq olur! Nə edəcəyinə və / və ya server ölçüsünə görə daha yüksəkdir!"; $lang['wits3voice'] = "TS3 Voice-Port"; $lang['wits3voicedesc'] = "TeamSpeak 3 səs portu
standart is 9987 (UDP)
Bu port, TS3 Müştərisi ilə əlaqə yaratmaq üçün də istifadə edirsiniz."; $lang['witsz'] = "Log-Ölçüsü"; diff --git a/languages/core_cz_Čeština_cz.php b/languages/core_cz_Čeština_cz.php index ef3b4de..cdc544f 100644 --- a/languages/core_cz_Čeština_cz.php +++ b/languages/core_cz_Čeština_cz.php @@ -1,19 +1,25 @@ přidán do Ranksystem."; $lang['achieve'] = "Achievement"; -$lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; -$lang['botoff'] = "Bot is stopped."; +$lang['adduser'] = "Uživatel %s (unique Client-ID: %s; Client-database-ID %s) ještě není v databázi -> přidán do Ranksystem."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; +$lang['asc'] = "vzestupně"; +$lang['botoff'] = "Bot je zastaven."; +$lang['boton'] = "Bot je spuštěn..."; $lang['brute'] = "Mnoho nepovedených přihlášení do Ranksystému. Přihlášení bylo zablokováno na 300 sekund! Poslední přístup byl z IP adresy %s."; $lang['brute1'] = "Neúspěšné přihlášení z IP adresy %s s přihlašovacím jménem %s."; $lang['brute2'] = "Úspěšné přihlášení do Ranksystému z IP adresy %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['chkfileperm'] = "Wrong file/folder permissions!
You need to correct the owner and access permissions of the named files/folders!

The owner of all files and folders of the Ranksystem installation folder must be the user of your webserver (e.g.: www-data).
On Linux systems you may do something like this (linux shell command):
%sAlso the access permission must be set, that the user of your webserver is able to read, write and execute files.
On Linux systems you may do something like this (linux shell command):
%sList of concerned files/folders:
%s"; -$lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP not found here!
Please insert a valid PHP command inside this file!

Definition out of %s:
%s
Result of your command:%sYou can test your command before via console by adding the parameter '-v'.
Example: %sYou should get back the PHP version!"; -$lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; -$lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; +$lang['chkfileperm'] = "K souboru/adresáři nemáte oprávnění!
K souborům/adresářům budete muset upravit oprávnění, nebo změnit jejich vlastníka!

The owner of all files and folders of the Ranksystem installation folder must be the user of your webserver (e.g.: www-data).
On Linux systems you may do something like this (linux shell command):
%sAlso the access permission must be set, that the user of your webserver is able to read, write and execute files.
On Linux systems you may do something like this (linux shell command):
%sList of concerned files/folders:
%s"; +$lang['chkphpcmd'] = "Definovaný špatný PHP příkaz v souboru %s! PHP zde nebylo nalezeno!
Prosím, vložte do souboru správný PHP příkaz!

Definition out of %s:
%s
Result of your command:%sYou can test your command before via console by adding the parameter '-v'.
Example: %sYou should get back the PHP version!"; +$lang['chkphpmulti'] = "Provozujete více verzí PHP na vašem systému.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; +$lang['chkphpmulti2'] = "Cesta k PHP na vaší website:%s"; $lang['clean'] = "Skenuji uživatele ke smazání"; +$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 - other)."; $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 Query-Slowmode!


Pro automatickou úpravu týmu TeamSpeak databáze ClientCleaner lze použít:
%s"; $lang['cleandel'] = "%s uživatelé byli vymazáni z databáze, protože již dlouho nebyli aktivní."; @@ -22,14 +28,11 @@ $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 - other)."; $lang['day'] = "%s den"; $lang['days'] = "%s dnů"; $lang['dbconerr'] = "Problém s připojením do databáze: "; -$lang['desc'] = "descending"; +$lang['desc'] = "sestupně"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token je invalidní nebo vypršel (=security-check failed)! Aktualizuj stránku a zkus to znovu. Pokud problém přetrvává, smaž soubory Cookie!"; $lang['errgrpid'] = "Změny nebyly uloženy, protože nastal problém s databází. Pro zachování změn vyřešte problémy a uložte znovu."; @@ -40,23 +43,23 @@ $lang['errlogin3'] = "Brute force protection: Mnoho přihlášení se špatný $lang['error'] = "Chyba (Error) "; $lang['errorts3'] = "TS3 Error: "; $lang['errperm'] = "Prosím ověř oprávnění v adresáři '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Prosím vyber jednoho uživatele!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Zadej prosím online čas, pro přidání!"; +$lang['errselusr'] = "Prosím vyber jednoho uživatele!"; $lang['errukwn'] = "Došlo k neznámé chybě!"; $lang['factor'] = "Factor"; $lang['highest'] = "Nejvyšší rank byl již dosažen!"; -$lang['insec'] = "in Seconds"; +$lang['insec'] = "v Sekundách"; $lang['install'] = "Instalace"; $lang['instdb'] = "Nainstalovat databázi"; $lang['instdbsuc'] = "Databáze %s úspěšně vytvořena."; $lang['insterr1'] = "VAROVÁNÍ: Pokoušíte se nainstalovat Ranksystem, ale databáze již s tímto jménem \"%s\" již existuje.
Instalace databáze bude vynechána!
Ujistěte se, že to je v pořádku. Pokud ne, vyberte prosím jiný název databáze."; -$lang['insterr2'] = "%1\$s je potřebný k instalaci, ale není nainstalován! Nainstalujte ho pomocí %1\$s a zkuste to znovu!"; -$lang['insterr3'] = "PHP %1\$s musí být povoleno!. Prosím povolte PHP %1\$s pomocí %1\$s a zkuste to znovu!"; +$lang['insterr2'] = "%1\$s je potřebný k instalaci, ale není nainstalován! Nainstalujte ho pomocí %1\$s a zkuste to znovu!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Vaše PHP verze (%s) je nižší než 5.5.0. Prosím aktulizujte PHP a zkuste to znovu!"; -$lang['isntwicfg'] = "Nemohu uložit konfiguraci do databáze! Prosím přidělte všechna práva souboru 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') a zkuste to znovu!"; +$lang['isntwicfg'] = "Nemohu uložit konfiguraci do databáze! Prosím přidělte všechna práva souboru 'other/dbconfig.php' (Linux: chmod 740; 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['isntwichm'] = "Práva pro zápis do složky \"%s\" nejsou plná! Prosím přidělte všechna práva pomocí (Linux: chmod 740; 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)"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Prosím odstraňte 'install.php' z vašeho webového ulo $lang['isntwiusr'] = "Uživatel byl úspěšně vytvořen a přidán do Admin panelu!"; $lang['isntwiusr2'] = "Povedlo se! Instalace Ranksystému se vydařila."; $lang['isntwiusrcr'] = "Přidat/Vytvořit uživatele do admin panelu."; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $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ň"; @@ -90,7 +94,7 @@ $lang['listsumo'] = "Celkově online"; $lang['listuid'] = "Unikátní ID"; $lang['login'] = "Přihlášení"; $lang['msg0001'] = "Ranksystem je na verzi: %s"; -$lang['msg0002'] = "A list of valid bot commands can be found here [URL]https://ts-ranksystem.com/#commands[/URL]"; +$lang['msg0002'] = "Seznam příkazů je dostupný zde: [URL]https://ts-ranksystem.com/#commands[/URL]"; $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"; @@ -98,8 +102,8 @@ $lang['msg0006'] = "brb"; $lang['msg0007'] = "Uživatel %s (%s) požádal o %s Ranksystemu!"; $lang['msg0008'] = "Kontrola aktulizací hotova! Pokud je update k dispozici, zanedlouho se Ranksystem začne aktulizovat."; $lang['msg0009'] = "Čistka databáze klientů začala."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; +$lang['msg0010'] = "Zadej příkaz !log pro více informací."; +$lang['msg0011'] = "Cache skupin smazána. Spouštím nahrání skupin a icon..."; $lang['noentry'] = "Žádné vstupy nenalezeny."; $lang['pass'] = "Heslo"; $lang['pass2'] = "Změnit heslo"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Obnovení času online a nečinnosti uživatele% s (jedi $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['setontime2'] = "Odebrat č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['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; $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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Nahození ikonek"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Maximální počet skupin"; $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í."; @@ -288,22 +292,24 @@ $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 - za inicializování Bootstrap designu"; -$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 - za francouzský překlad"; -$lang['stri0020'] = "Pasha - za portugalský překlad"; -$lang['stri0021'] = "Shad86 - za jeho skvělou podporu na GitHubu a na našem serveru, sdílení nápadů, testovaní všech těch hoven a mnoho dalšího..."; -$lang['stri0022'] = "mightyBroccoli - za sdílení jeho nápadů a testování"; +$lang['stri0013'] = "%s za ruský překlad"; +$lang['stri0014'] = "%s za inicializování Bootstrap designu"; +$lang['stri0015'] = "%s za italský překlad"; +$lang['stri0016'] = "%s za arabský překlad"; +$lang['stri0017'] = "%s za rumunský překlad"; +$lang['stri0018'] = "%s za nizozemský překlad"; +$lang['stri0019'] = "%s za francouzský překlad"; +$lang['stri0020'] = "%s za portugalský překlad"; +$lang['stri0021'] = "%s za jeho skvělou podporu na GitHubu a na našem serveru, sdílení nápadů, testovaní všech těch hoven a mnoho dalšího..."; +$lang['stri0022'] = "%s za sdílení jeho nápadů a testování"; $lang['stri0023'] = "Stabilní od: 18/04/2016."; -$lang['stri0024'] = "KeviN, Nicer - za český překlad"; -$lang['stri0025'] = "DoktorekOne - za polský překlad"; -$lang['stri0026'] = "JavierlechuXD - za španělský překlad"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s za český překlad"; +$lang['stri0025'] = "%s za polský překlad"; +$lang['stri0026'] = "%s za španělský překlad"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "Od počátku věků"; +$lang['sttm0001'] = "Tohoto měsíce"; $lang['sttw0001'] = "Nejlepší uživatelé"; $lang['sttw0002'] = "Tohoto týdne"; $lang['sttw0003'] = "s %s %s hodinami aktivity"; @@ -319,8 +325,6 @@ $lang['sttw0012'] = "Ostatních %s (v hodinách)"; $lang['sttw0013'] = "s aktivním časem %s %s hodin"; $lang['sttw0014'] = "hodin"; $lang['sttw0015'] = "minut"; -$lang['sttm0001'] = "Tohoto měsíce"; -$lang['stta0001'] = "Od počátku věků"; $lang['stve0001'] = "\nZdravím %s,\nzde je [B]odkaz[/B] pro vaše ověření v Ranksystemu:\n[B]%s[/B]\nPokud odkaz nefunguje, můžete také zkusit manuálně zadat token [B]%s[/B]\nToken zadejte na webové stránce\n\nPokud jste nežádali o obnovu tokenu (hesla) tak tuto zprávu ignorujte. Pokud se to bude opakovat, 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 ti zpráva nepřišla, překontruj si prosím unique ID."; @@ -333,11 +337,11 @@ $lang['stve0009'] = " -- vyber sebe -- "; $lang['stve0010'] = "2. Obdržíš token na serveru, který zde obratem vložíš:"; $lang['stve0011'] = "Token:"; $lang['stve0012'] = "Ověřit"; +$lang['time_day'] = "dní/dnů(d)"; +$lang['time_hour'] = "hodin(h)"; +$lang['time_min'] = "minut(min.)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' parameter (webinterface -> rank), but that servergroup ID isn't existent on your TS3 server (anymore)! Please correct this or errors might happen!"; $lang['upgrp0002'] = "Download new ServerIcon"; @@ -366,11 +370,12 @@ $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'] = "Bot-Admin"; -$lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiadmuuiddesc'] = "Vyber uživatele, který je adminem Ranksystemu.
Můžeš vybrat i více uživatelů.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Give a 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 booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Give a 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 booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $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í!"; @@ -382,22 +387,22 @@ $lang['wibot8'] = "Ranksystem log (extract):"; $lang['wibot9'] = "Vyplňte všechna povinná pole před spuštěním systému Ranksystemu!"; $lang['wichdbid'] = "Resetování Client-database-ID"; $lang['wichdbiddesc'] = "Resetovat čas online uživatele, pokud se změnil jeho ID týmu TeamSpeak Client-database
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "Došlo k chybě v konfiguraci systému Ranks. Přejděte na webové rozhraní a opravte nastavení rank!"; $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['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'!"; $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['widbcfgsuc'] = "Databázové konfigurace byly úspěšně uloženy."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $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['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['wiexcept'] = "Exceptions"; +$lang['wiexcept'] = "Výjimky"; $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"; @@ -410,21 +415,21 @@ $lang['wiexresdesc'] = "Existují tři režimy, jak zacházet s výjimkou. V ka $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['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; +$lang['wigrpt1'] = "Čas v sekundách"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $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.

Max. value are 999.999.999 seconds (over 31 years)

č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['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Definujte zde a po uplynutí této doby by měl uživatel automaticky získat předdefinovanou serverovou skupinu.

Max. value are 999.999.999 seconds (over 31 years)

č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['wigrptk'] = "cumulative"; $lang['wihladm'] = "Seznam hodnocení (režim administrátora)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; $lang['wihladm1'] = "Přidat čas"; -$lang['wihladm2'] = "Udělejte si čas"; +$lang['wihladm2'] = "Odebrat čas"; $lang['wihladm3'] = "Reset Ranksystem"; -$lang['wihladm31'] = "reset all user stats"; +$lang['wihladm31'] = "reset statistik všech uživatelů"; $lang['wihladm311'] = "zero time"; -$lang['wihladm312'] = "delete users"; +$lang['wihladm312'] = "smaž uživatele"; $lang['wihladm31desc'] = "Choose one of the both options to reset the statistics of all users.

zero time: Resets the time (online time & idle time) of all users to a value of 0.

delete users: With this option, all users will be deleted out of the Ranksystem database. The TeamSpeak database will not be touched!


Both options affect the following things..

.. on zero time:
Reset Server statistics summary (table: stats_server)
Reset My statistics (table: stats_user)
Reset List Rankup / user statistics (table: user)
Cleans Top users / user statistic snapshots (table: user_snapshot)

.. on delete users:
Cleans donut chart nations (table: stats_nations)
Cleans donut chart platforms (table: stats_platforms)
Cleans donut chart versions (table: stats_versions)
Reset Server statistics summary (table: stats_server)
Cleans My statistics (table: stats_user)
Cleans List Rankup / user statistics (table: user)
Cleans user ip-hash values (table: user_iphash)
Cleans Top users / user statistic snapshots (table: user_snapshot)"; $lang['wihladm32'] = "withdraw servergroups"; $lang['wihladm32desc'] = "Activate this function to withdraw the servergroups from all TeamSpeak users.

The Ranksystem scans each group, which is defined inside the 'rank up definition'. It will remove all user, which are known by the Ranksystem, out of this groups.

That's why it is important not to change the 'rank up definition', before you have done the reset. After reset you can change the 'rank up definition', sure!


The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


The servergroup itself on the TeamSpeak server will not be removed / touched."; @@ -436,25 +441,25 @@ $lang['wihladm35'] = "start reset"; $lang['wihladm36'] = "stop Bot afterwards"; $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all reset things are done.

This stop is exactly working like the normal 'stop' parameter. Means, the Bot will not start with the 'check' parameter.

To start the Ranksystem Bot use the 'start' or 'restart' parameter."; $lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs2'] = "in progress.."; +$lang['wihladmrs0'] = "zakázaná"; +$lang['wihladmrs1'] = "vytvořeno"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Zbývající čas do resetu systému"; +$lang['wihladmrs12'] = "Opravdu chcete systém resetovat?"; +$lang['wihladmrs13'] = "Ano, spust reset"; +$lang['wihladmrs14'] = "Ne, zruš reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "povoleno"; +$lang['wihladmrs2'] = "spracovávám.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; -$lang['wihladmrs4'] = "finished"; +$lang['wihladmrs4'] = "hotovo"; $lang['wihladmrs5'] = "Reset Job(s) successfully created."; $lang['wihladmrs6'] = "There is still a reset job active. Please wait until all jobs are finished before you start the next!"; $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "nastavení"; -$lang['wiignidle'] = "Ignorujte volno"; +$lang['wiignidle'] = "Ignorování nečinnosti"; $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'] = "Cesta k logům"; $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."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ pa $lang['wimsgusr'] = "Oznámení o hodnocení"; $lang['wimsgusrdesc'] = "Informujte uživatele se soukromou textovou zprávou o jeho pozici."; $lang['winav1'] = "TeamSpeak"; +$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 (TeamSpeak -> Bot-Admin). 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'] = "Moduly"; $lang['winav2'] = "Databáze"; $lang['winav3'] = "Hlavní nastavení"; $lang['winav4'] = "Ostatní"; @@ -474,21 +482,21 @@ $lang['winav6'] = "Stránka Statistiky"; $lang['winav7'] = "Administrace"; $lang['winav8'] = "Start / Stop bot"; $lang['winav9'] = "Aktualizace je 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 (TeamSpeak -> Bot-Admin). 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'] = "Moduly"; $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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 - dny na další rankup
%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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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 - dny na další rankup
%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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Příklad:
Dosáhli jste nejvyšší pozici za %1\$s dní, %2\$s hodin a %3\$s minut a %4\$s sekund.
"; $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 - dny na další rankup
%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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Příklad:
Máte výjimku z Ranksystému. Pokud to chcete změnit, kontaktujte administrátora na serveru TS3.
"; -$lang['wirtpw1'] = "Promiň Bro, už jste zapomněli zadat vaše Bot-Admin do webového rozhraní dříve. Neexistuje žádný způsob, jak obnovit heslo!"; +$lang['wirtpw1'] = "Promiň Bro, už jste zapomněli zadat vaše Bot-Admin do webového rozhraní dříve. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$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 Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin nebyl nalezen na serveru TS3. Musíte být online s jedinečným ID klienta, který je uložen jako Bot-Admin."; $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.\nJméno: %s\nHeslo: [B]%s[/B]\n\nLogin %shere%s"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "Heslo webového rozhraní bylo úspěšně resetováno. Po $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 Bot-Admin."; -$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"; @@ -512,10 +517,10 @@ $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 adres"; $lang['wishcolha0'] = "Vypnout hashování"; $lang['wishcolha1'] = "Bezpečné hashování"; $lang['wishcolha2'] = "Rychlé hashování (výchozí)"; -$lang['wishcolha'] = "Hash IP adres"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "doba nečinnosti"; $lang['wishcolitdesc'] = "Zobrazit sloupec 'součet čas nečinnosti' v list_rankup.php"; @@ -545,24 +550,24 @@ $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['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time 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['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Změny byly úspěšně uloženy!"; $lang['wisvres'] = "Je potřeba restartovat Ranksystem předtím, než se změny projeví! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Změny byly úspěšně uloženy!"; $lang['witime'] = "Časové pásmo"; $lang['witimedesc'] = "Vyberte časové pásmo hostované serveru.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query šifrování"; +$lang['wits3encryptdesc'] = "Aktivováním této volby se zapne šifrovaná komunikace mezi Ranky systémem a TeamSpeak 3 serverem, nebo-li použije se SSH komunikace.
Pokud je tato volba vypnuta, komuniakce probíhá nešifrovaně - v plain textu, nebo-li prostřednictvím RAW komunikace - tato komunikace je potencionálně nebezpečná, pokud TS3 server a Rank systém běží každý na jiném serveru a jsou propojeni přes interent.

Nezapomeňte zkontrolovat a nastavit správný TS3 Query Port, který je pro komuniaci použit!

Upozornění: Šifrovaná SSH komunikace potřebuje více výkonu CPU, než nešifrovaná RAW komunikace. Pokud není z důvodu bezpečnosti nutné použit SSH komunikaci (TS3 server a Ranksystem běží na stejném serveru nebo jsou propojeny výhradně lokální sítí), doporučujeme použít RAW komunikaci. Pokud jsou však propojeny např. přes interent, doporučujeme použít výhradně SSH komunikaci!

Požadavky:

1) TS3 Server version 3.3.0 a novější.

2) Rozšíření PHP o PHP-SSH2 modul, pokud je to nutné.
Na Linuxu lze provést instaalci například příkazy:
%s
3) SSH musí být konfigurováno i na straně TS3 serveru!
Aktivovat SSH lze přidáním nebo úpravou níže uvedených paramterů v souboru 'ts3server.ini':
%s Po provedení úpravy konfigurace TS3 serveru je nutné TS3 server restartovat!"; $lang['wits3host'] = "TS3 Hostaddress"; $lang['wits3hostdesc'] = "TeamSpeak 3 adresa serveru
(IP oder DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Pomocí funkce Query-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):

%s

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['wits3qnmdesc'] = "Název, s tím spojením dotazu bude vytvořen.
Můžete jej pojmenovat zdarma."; $lang['wits3querpw'] = "TS3 Query-Password"; @@ -571,17 +576,17 @@ $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:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak 3 query port
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

Pokud nepoužíváte výchozí port (10011) koukněte do configu --> 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Pomocí funkce Query-Slowmode můžete snížit 'spam' příkazů dotazů na server TeamSpeak. Tímto zabráníte spuštěním ochrany TS3 serveru proti zaplavením příkazy z příkazové řádky.
Příkazy TeamSpeak Query jsou zpožděny touto funkcí.

!!! Použitím zpoždění se snižuje i vytížení CPU !!!

Aktivace se nedoporučuje, pokud není požadována. Zpoždění snižuje rychlost odezvy od Bota a jeho dopovědi nemusejí být pak adekvátní zaslanému příkazu.

Tabulka níže znázorňuje orientační rychlost reakce a dobu odpovědi Bota na jeden zaslaný příkaz(v sekundách):

%s

V případě zvolení hodnoty s ultra zpožděním může být reakce Bota opožděna až o 65 sekund!! V případě vytížení serveru může být hodnota i mnohem vyšší!"; $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['witsz'] = "Log-Size"; -$lang['witszdesc'] = "Set up the filesize of the log, at which the logfile will be rotated, when exceeded.

Define your value in Mebibyte.

When you increase the value, be sure, you have enough space on this partition. Too big logfiles could bring perfomance issues!

On changing this value, the logfile size will be checked with the next restart of the bot. Is the filesize bigger than the defined value, the logfile will be rotated immediately."; +$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
Defaultně je 9987 (UDP)
Toto je port, který používáš při připojení na TS3 server v TS3 klientu."; +$lang['witsz'] = "Velikost-logu"; +$lang['witszdesc'] = "Nastavte maximální velikost log souboru pro automatické rotování logů .

Hodnotu definujete v Mebibytech.

Zvolením příliš vysoké hodnoty může dojít k vyčerpání volného prostoru pro logy na disku. Velké soubory mohou zároveň nepříznívě ovlivňovat výkon systému!

Změna bude akceptována až po restartování Bota. Pokud je nově zvolená velikost logu menší než je aktuální velikost log souboru, dojde k jeho automatickému orotování."; $lang['wiupch'] = "Update-Channel"; -$lang['wiupch0'] = "stable"; +$lang['wiupch0'] = "stabilni"; $lang['wiupch1'] = "beta"; -$lang['wiupchdesc'] = "The Ranksystem will be updated automatically if a new update is available. Choose here, which update-channel you want to join.

stable (default): You get the latest stable version. Recommended for production environments.

beta: You get the latest beta version. With this you get new features earlier, but the risk of bugs is much higher. Use at your own risk!

When you are changing from beta to stable release, the Ranksystem won't downgrade. It will rather wait for the next higher release of a stable version and update to this."; -$lang['wiverify'] = "Verification-Channel"; +$lang['wiupchdesc'] = "Ranksystem se bude sám updatovat, pokud bude dostupná nová verze ke stažení. Zde vyberte, kterou verzi chcete instalovat.

stabilní (default): bude instalována poslední dostupná stabilní verze - doporučeno pro produkční nasazení.

beta: bude instalována vždy poslední beta verze, která může oobshaovat nové a neotestované funkcionality - použití na vlastní riziko!

Pokud změníte z Beta verze na Stabilní, systém bude čekat do další vyšší stabilní verze, než je beta a teprve pak se updatuje - downgrade z Beta na Stabilní verzi se neprovádí."; +$lang['wiverify'] = "Kanál pro ověření klienta"; $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, he has to be in the verification channel. There he is able to receive a token with which he can verify himself for the statistics page."; $lang['wivlang'] = "Jazyk"; $lang['wivlangdesc'] = "Nastavte hlavní jazyk pro Ranksystem

Jazyk můžete kdykoliv změnit."; diff --git a/languages/core_de_Deutsch_de.php b/languages/core_de_Deutsch_de.php index 4a91c27..f5958dd 100644 --- a/languages/core_de_Deutsch_de.php +++ b/languages/core_de_Deutsch_de.php @@ -1,10 +1,12 @@ wurde nun zum Ranksystem hinzugefügt."; +$lang = array(); $lang['achieve'] = "Errungenschaft"; +$lang['adduser'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) ist bisher unbekannt -> wurde nun zum Ranksystem hinzugefügt."; +$lang['api'] = "API"; +$lang['apikey'] = "API Schlüssel"; $lang['asc'] = "Aufsteigend"; -$lang['boton'] = "Bot läuft..."; $lang['botoff'] = "Bot gestoppt."; +$lang['boton'] = "Bot läuft..."; $lang['brute'] = "Es wurden einige fehlgeschlagene Login-Versuche festgestellt. Blocke Login für 300 Sekunden! Letzter Versuch von IP %s."; $lang['brute1'] = "Fehlgeschlagener Login-Versuch zum Webinterface festgestellt. Login Anfrage kam von IP %s mit dem Usernamen %s."; $lang['brute2'] = "Erfolgreicher Login zum Webinterface von IP %s festgestellt."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Falscher PHP-Befehl definiert in der Datei %s! PH $lang['chkphpmulti'] = "Es scheint, dass mehrere PHP-Versionen auf dem System laufen.

Der Webserver (diese Seite) läuft mit Version: %s
Der definierte Befehl aus %s läuft unter Version: %s

Bitte verwende für beides die gleiche PHP-Version!

Die Version für den Ranksystem-Bot kann in der Datei %s definiert werden. Weitere Informationen und Beispiele können aus der Datei entnommen werden.
Aktuelle Definition aus %s:
%sEs kann auch die PHP-Version geändert werden, die der Webserver verwendet. Bitte nutze das World Wide Web, um weitere Hilfe hierfür zu erhalten.

Wir empfehlen, immer die neueste PHP-Version zu verwenden!

Wenn die PHP-Versionen in der Systemumgebung nicht angepasst werden können, es dennoch funktioniert, ist das in Ordnung. Dennoch ist der einzig offziell unterstützte Weg mit einer einzigen PHP-Version für beides!"; $lang['chkphpmulti2'] = "Der Pfad, wo Sie PHP möglicherweise auf dem Webserver finden:%s"; $lang['clean'] = "Scanne nach Usern, welche zu löschen sind..."; +$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. Nichts wurde getan, da die Funktion 'Client-Löschung' deaktiviert ist (Webinterface - Anderes)."; $lang['cleanc'] = "Client-Lö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 'Query-Slowmode' deaktiviert ist!


Zur automatischen Bereinigung der TeamSpeak Datenbank kann der ClientCleaner genutzt werden:
%s"; $lang['cleandel'] = "Es wurden %s Clients aus der Ranksystem-Datenbank gelöscht, da sie nicht mehr in der TeamSpeak Datenbank vorhanden sind."; @@ -22,14 +28,11 @@ $lang['cleanp'] = "Löschintervall"; $lang['cleanpdesc'] = "Bestimme einen Intervall, wie oft die 'Client-Löschung' laufen soll.

Angabe der Zeit in Sekunden!

Empfohlen wird die Client-Lö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. Nichts wurde getan, da die Funktion 'Client-Löschung' deaktiviert ist (Webinterface - Anderes)."; $lang['day'] = "%s Tag"; $lang['days'] = "%s Tage"; $lang['dbconerr'] = "Verbindung zur Datenbank gescheitert: "; $lang['desc'] = "Absteigend"; +$lang['descr'] = "Beschreibung"; $lang['duration'] = "Gültigkeitsdauer"; $lang['errcsrf'] = "CSRF Token ist inkorrekt oder abgelaufen (=Sicherheitsprüfung fehlgeschlagen)! Bitte lade die Seite neu und versuche es noch einmal! Im wiederholtem Fehlerfall bitte den Session Cookie aus deinem Browser löschen und es noch einmal versuchen!"; $lang['errgrpid'] = "Deine Änderungen konnten nicht gespeichert werden aufgrund eines Datenbank-Fehlers. Bitte behebe das Problem und versuche es erneut!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Brute force Schutz: Zu viele Fehlversuche. Für 300 Seku $lang['error'] = "Fehler "; $lang['errorts3'] = "TS3 Fehler: "; $lang['errperm'] = "Bitte überprüfe die Dateiberechtigungen für das Verzeichnis '%s'!"; -$lang['errphp'] = "%s fehlt. Installation von %s ist erforderlich!"; -$lang['errselusr'] = "Bitte wähle zumindest einen User!"; +$lang['errphp'] = "%1\$s fehlt. Installation von %1\$s ist erforderlich!"; $lang['errseltime'] = "Bitte trage eine online Zeit zum Hinzufügen ein!"; +$lang['errselusr'] = "Bitte wähle zumindest einen User!"; $lang['errukwn'] = "Unbekannter Fehler aufgetreten!"; $lang['factor'] = "Faktor"; $lang['highest'] = "höchster Rang erreicht"; @@ -51,12 +54,12 @@ $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'] = "%1\$s wird benötigt, scheint jedoch nicht installiert zu sein. Installiere %1\$s und versuche es erneut!"; -$lang['insterr3'] = "Die PHP Funktion %1\$s wird benötigt, scheint jedoch deaktiviert zu sein. Bitte aktiviere PHP %1\$s und versuche es erneut!"; +$lang['insterr2'] = "%1\$s wird benötigt, scheint jedoch nicht installiert zu sein. Installiere %1\$s und versuche es erneut!
Pfad zur PHP Konfig-Datei, sofern definiert und diese geladen wurde: %3\$s"; +$lang['insterr3'] = "Die PHP Funktion %1\$s wird benötigt, scheint jedoch deaktiviert zu sein. Bitte aktiviere PHP %1\$s und versuche es erneut!
Pfad zur PHP Konfig-Datei, sofern definiert und diese geladen wurde: %3\$s"; $lang['insterr4'] = "Deine PHP Version (%s) ist unter 5.5.0. Aktualisiere dein PHP und versuche es erneut!"; -$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['isntwicfg'] = "Die Datenbankkonfigurationen konnten nicht gespeichert werden! Bitte versehe die 'other/dbconfig.php' mit einem chmod 740 (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['isntwichm'] = "Schreibrechte fehlen für Verzeichnis \"%s\". Bitte setze auf dieses einen chmod 740 (für Windows 'Vollzugriff') und starte anschließend das Ranksystem erneut."; $lang['isntwiconf'] = "Öffne das %s um das Ranksystem zu konfigurieren!"; $lang['isntwidbhost'] = "DB Host-Adresse:"; $lang['isntwidbhostdesc'] = "Adresse des Servers, worauf die Datenbank läuft.
(IP oder DNS)

Befinden sich Datenbank Server und Webspace auf dem selben System, so sollte es mit
localhost
oder
127.0.0.1
funktionieren."; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver $lang['isntwiusr'] = "Benutzer für das Webinterface wurde erfolgreich erstellt."; $lang['isntwiusr2'] = "Herzlichen Glückwunsch! Die Installation ist erfolgreich abgeschlossen."; $lang['isntwiusrcr'] = "Erstelle Webinterface-User"; +$lang['isntwiusrd'] = "Erstelle Anmeldedaten für den Zugriff auf das Ranksystem Webinterface."; $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"; @@ -111,28 +115,27 @@ $lang['resettime'] = "Setze die online und aktive Zeit des Benutzers %s (einde $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 für die Rangsteigerung berücksichtigt und sollte sofort Wirkung zeigen."; $lang['setontime2'] = "Zeit entfernen"; +$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 für die Rangsteigerung berücksichtigt und sollte sofort Wirkung zeigen."; $lang['setontimedesc2'] = "Entferne Zeit online Zeit von den zuvor ausgewählten Usern. Jeder User bekommt diese Zeit von seiner bisher angesammelten Zeit abgezogen.

Der eingegebene Abzug wird direkt für die Rangsteigerung berücksichtigt 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 (eindeutige Client-ID: %s; Client-Datenbank-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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Servergruppe zuweisen"; -$lang['stag0001desc'] = " -Mit der 'Servergruppe zuweisen' Funktion wird den TeamSpeak-Usern erlaubt ihre Servergruppen selbst zu verwalten (Self-Service).
(z.B. Game-, Länder-, Gender-Gruppen).

Mit Aktivierung der Funktion, erscheint ein neuer Menü-Punkt auf der Statistik-Seite (stats/). Über diesen können die User dann ihre Gruppen verwalten.

Die zur Auswahl stehenden Servergruppen können festgelegt und damit eingeschränkt werden.
Ebenso kann ein Limit bestimmt werden, wie viele Gruppen max. zeitgleich gesetzt sein dürfen."; +$lang['stag0001desc'] = "Mit der 'Servergruppe zuweisen' Funktion wird den TeamSpeak-Usern erlaubt ihre Servergruppen selbst zu verwalten (Self-Service).
(z.B. Game-, Länder-, Gender-Gruppen).

Mit Aktivierung der Funktion, erscheint ein neuer Menü-Punkt auf der Statistik-Seite (stats/). Über diesen können die User dann ihre Gruppen verwalten.

Die zur Auswahl stehenden Servergruppen können festgelegt und damit eingeschränkt werden.
Ebenso kann ein Limit bestimmt werden, wie viele Gruppen maximal zeitgleich gesetzt sein dürfen."; $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['stag0003'] = "Lege die Servergruppen fest, welche ein User sich selbst geben kann."; $lang['stag0004'] = "Limit gleichzeitiger Gruppen"; -$lang['stag0005'] = "Max. Anzahl der Servergruppen, welche gleichzeitig gesetzt sein können."; +$lang['stag0005'] = "Maximale Anzahl der Servergruppen, welche gleichzeitig gesetzt sein dürfen."; $lang['stag0006'] = "Es sind mehrere eindeutige Client-IDs mit der gleichen (deiner) IP Adresse online. 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."; @@ -291,20 +294,22 @@ $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['stri0015'] = "%s für die italienische Übersetzung"; +$lang['stri0016'] = "%s für die Initiierung der arabischen Übersetzung"; +$lang['stri0017'] = "%s für die Initiierung der rumänischen Übersetzung"; +$lang['stri0018'] = "%s für die Initiierung der niederländischen Übersetzung"; +$lang['stri0019'] = "%s für die französische Übersetzung"; +$lang['stri0020'] = "%s für die portugiesische Übersetzung"; +$lang['stri0021'] = "%s für den super Support auf GitHub & unserem Public TS3 server, die vielen Ideen, dem Pre-Testen des ganzen Shits & vielem mehr"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - für die spanische Übersetzung"; -$lang['stri0027'] = "ExXeL - für die Initiierung der ungarischen Übersetzung"; -$lang['stri0028'] = "G. FARZALIYEV - für die aserbaidschanische Übersetzung"; +$lang['stri0024'] = "%s für die tschechische Übersetzung"; +$lang['stri0025'] = "%s für die polnische Übersetzung"; +$lang['stri0026'] = "%s für die spanische Übersetzung"; +$lang['stri0027'] = "%s für die ungarische Übersetzung"; +$lang['stri0028'] = "%s für die aserbaidschanische Übersetzung"; +$lang['stta0001'] = "aller Zeiten"; +$lang['sttm0001'] = "des Monats"; $lang['sttw0001'] = "Top User"; $lang['sttw0002'] = "der Woche"; $lang['sttw0003'] = "mit %s %s online Zeit"; @@ -320,8 +325,6 @@ $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 auf der Webseite 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. Solltest du keine Nachricht erhalten haben, überprüfe, ob du die richtige eindeutige Client-ID gewählt hast."; @@ -334,11 +337,11 @@ $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_day'] = "Tag(e)"; +$lang['time_hour'] = "Std."; +$lang['time_min'] = "Min."; $lang['time_ms'] = "ms"; $lang['time_sec'] = "Sek."; -$lang['time_min'] = "Min."; -$lang['time_hour'] = "Std."; -$lang['time_day'] = "Tag(e)"; $lang['unknown'] = "unbekannt"; $lang['upgrp0001'] = "Es ist eine Servergruppe mit der ID %s im Parameter '%s' (Webinterface -> Rank) 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"; @@ -368,10 +371,11 @@ $lang['wiadmhide'] = "unterdrücke ausgeschl. User"; $lang['wiadmhidedesc'] = "Hiermit können vom Ranksystem ausgeschlossene User in der folgenden Auswahl unterdrückt werden."; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "Mit der API ist es möglich, Daten (welche das Ranksystem gesammelt hat) an Dritt-Software weiterzugeben.

Um Informationen abfragen zu können, ist eine Authentifizierung mit einem API Schlüssel erforderlich. Die Schlüssel können hier verwaltet werden.

Die API ist erreichbar unter:
%s

Die Ausgabe (Rückgabewert) der API erfolgt mittels einem JSON string. Eine Dokumentation der API erfolgt durch sich selbst; einfach den Link oben öffnen und der dortigen Beschreibung folgen."; $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.

Als Faktor sind auch Zahlen mit Nachkommastellen (=Dezimalzahlen) möglich. Nachkommastellen sind durch einen Punkt zu trennen!

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

Beispiel:
12=>2=>6000,13=>1.5=>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 1.25 für 2500 Sekunden gewährt, und so weiter..."; $lang['wiboost2desc'] = "Hier können Boost-Gruppen definiert werden, um z.B. User zu belohnen. Damit sammeln sie schneller Zeit und steigen somit schneller im Rang.

Was ist zu tun?

1) Erstelle zunächst eine Servergruppe auf dem TS Server, welche als Boost-Gruppe genutzt werden kann.

2) Hinterlege die Boost-Definition auf dieser Seite.

Servergruppe: Wähle eine Servergruppe, welche den Boost auslösen soll.

Boost Faktor: Der Faktor, mit welchem die online/aktive Zeit eines Users geboostet wird, welcher die Servergruppe innehat (Beispiel: 2-fach). Als Faktor sind Zahlen mit Nachkommastellen (=Dezimalzahlen) zulässig (z.B. 1.5). Nachkommastellen sind durch einen Punkt zu trennen!

Gültigkeitsdauer in Sekunden: Lege fest, wie lange der Boost aktiv sein soll. Ist die Zeit abgelaufen, wird die Boost-Gruppe automatisch von den betroffenen Usern entfernt. Die Zeit beginnt in dem Moment zu laufen, in dem der User die Servergruppe erhält. Die Zeit läuft weiterhin ab, auch wenn der User offline ist.

3) Gebe einem oder mehreren Usern die definierte Servergruppe auf dem TS Server, um sie zu boosten."; -$lang['wiboostempty'] = "Leere Boost-Definition. Klicke auf das Plus-Symbol, um eine zu definieren!"; +$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.

Als Faktor sind auch Zahlen mit Nachkommastellen (=Dezimalzahlen) möglich. Nachkommastellen sind durch einen Punkt zu trennen!

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

Beispiel:
12=>2=>6000,13=>1.5=>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 1.25 für 2500 Sekunden gewährt, und so weiter..."; +$lang['wiboostempty'] = "Keine Einträge vorhanden. Klicke auf das Plus-Symbol (Button), um einen Eintrag hinzuzufügen!"; $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!"; @@ -383,15 +387,15 @@ $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'] = "Aktiviere diese Funktion um die online bzw. aktive Zeit eines Users zurückzusetzen, wenn sich seine TeamSpeak Client-Datenbank-ID ändert.
Der Client wird dabei anhand seiner eindeutigen Client-ID gefunden.

Ist diese Funktion deaktiviert, so wird die online bzw. aktive Zeit mit dem alten Wert fortgeführt. In diesem Fall wird lediglich die Client-Datenbank-ID ausgetauscht.


Wie ändert sich die Client-Datenbank-ID?

In jedem der folgenden Szenarien erhält der Client mit der nächsten Verbindung zum TS3 Server eine neue Client-Datenbank-ID.

1) automatisch durch den TS3 Server
Der TeamSpeak Server hat eine Funktion, welche Clients nach X Tagen aus der Datenbank löscht. Im Standard passiert dies, wenn ein User länger als 30 Tage offline ist und sich in keiner permanenten Gruppe befindet.
Dieser Wert kann in der ts3server.ini geändert werden:

2) Restore eines TS3 Snapshots
Wird ein TS3 Server Snapshot wiederhergestellt, ändern sich im Regelfall die Datenbank-IDs.

3) manuelles entfernen von Clients
Ein TeamSpeak Client kann auch manuell oder durch eine 3. Anwendung aus dem TS3 Server entfernt werden."; -$lang['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Rank-Einstellungen auf Richtigkeit!"; $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['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Rank-Einstellungen auf Richtigkeit!"; $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['widbcfgsuc'] = "Datenbank Einstellungen erfolgreich gespeichert."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Bestimme das Log-Level des Ranksystems. Damit wird festgelegt, wie viele Informationen in die Datei \"ranksystem.log\" geschrieben werden sollen.

Je höher das Log-Level, desto mehr Informationen werden ausgegeben.

Ein Wechsel des Log-Levels wird mit dem nächsten Neustart des Ranksystem Bots wirksam.

Bitte lasse das Ranksystem nicht längere Zeit unter \"6 - DEBUG\" laufen. Dies könnte das Dateisystem beeinträchtigen!"; $lang['widelcldgrp'] = "Servergruppen zurücksetzen"; @@ -413,10 +417,10 @@ $lang['wiexuiddesc'] = "Eine mit Komma getrennte Liste von eindeutigen Client-I $lang['wigrpimp'] = "Import Modus"; $lang['wigrpt1'] = "Zeit in Sekunden"; $lang['wigrpt2'] = "Servergruppe"; -$lang['wigrptk'] = "kumulativ"; $lang['wigrptime'] = "Rangsteigerung Definition"; -$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden)=>Servergruppen ID

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

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

Die Zeiten sind kumulativ zu hinterlegen.

Beispiel:
60=>9,120=>10,180=>11
In diesem Beispiel erhält ein User die Servergruppe 9 nach 60 Sekunden, die Servergruppe 10 nach weiteren 60 Sekunden, die Servergruppe 11 nach weiteren 60 Sekunden."; $lang['wigrptime2desc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

Die Zeiten sind kumulativ zu hinterlegen.

falsch:

100 Sekunden, 100 Sekunden, 50 Sekunden
richtig:

100 Sekunden, 200 Sekunden, 250 Sekunden
"; +$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden)=>Servergruppen ID

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

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

Die Zeiten sind kumulativ zu hinterlegen.

Beispiel:
60=>9,120=>10,180=>11
In diesem Beispiel erhält ein User die Servergruppe 9 nach 60 Sekunden, die Servergruppe 10 nach weiteren 60 Sekunden, die Servergruppe 11 nach weiteren 60 Sekunden."; +$lang['wigrptk'] = "kumulativ"; $lang['wihladm'] = "List Rankup (Admin-Modus)"; $lang['wihladm0'] = "Funktions-Beschreibung (hier klicken)"; $lang['wihladm0desc'] = "Wähle eine oder mehrere Optionen und drücke 'Starte Reset', um einen Reset auszuführen.
Jede Option ist nochmals für sich beschrieben.

Der Reset wird über den Ranksystem Bot als Job ausgeführt. Nach dem Start eines Reset-Jobs kannst du den Status auf dieser Seite einsehen.

Es ist erforderlich, dass der Ranksystem Bot läuft.
Solange der Reset in Bearbeitung ist, darf der Bot NICHT gestoppt oder neu gestartet werden!

In der Zeit, in der der Reset läuft, werden alle anderen Aufgaben des Ranksystem ausgesetzt. Nach Abschluss setzt der Bot automatisch seine reguläre Arbeit fort.
Nochmals, bitte NICHT den Bot stoppen oder neustarten!

Wenn alle Jobs erledigt sind, musst du diese bestätigen. Dadurch wird der Job-Status zurückgesetzt, was es ermöglicht weitere Resets zu starten.

Im Falle eines Resets möchtest du evtl. auch die Servergruppen entziehen. Es ist wichtig dafür die 'Rangsteigerungs Defintion' vor Abschluss des Resets nicht zu verändern. Danach kann diese natürlich angepasst werden!
Das Entziehen der Servergruppen kann eine Weile dauern. Bei aktiven 'Query-Slowmode' wird die Laufzeit nochmals stark erhöht. Wir empfehlen daher einen deaktivierten 'Query-Slowmode'!


Beachte, es gibt keinen Weg zurück!"; @@ -439,6 +443,13 @@ $lang['wihladm36desc'] = "Ist diese Option aktiviert, wird der Ranksystem Bot g $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "deaktiviert"; $lang['wihladmrs1'] = "erstellt"; +$lang['wihladmrs10'] = "Job-Status erfolgreich zurückgesetzt!"; +$lang['wihladmrs11'] = "Benötigte Zeit zum Zurücksetzen des Systems"; +$lang['wihladmrs12'] = "Bist du dir sicher, dass du immer noch den Reset ausführen möchtest?"; +$lang['wihladmrs13'] = "Ja, starte Reset"; +$lang['wihladmrs14'] = "Nein, abbrechen"; +$lang['wihladmrs15'] = "Bitte wähle zumindest eine Option!"; +$lang['wihladmrs16'] = "aktiviert"; $lang['wihladmrs2'] = "in Bearbeitung.."; $lang['wihladmrs3'] = "fehlerhaft (mit Fehlern beendet!)"; $lang['wihladmrs4'] = "fertig"; @@ -447,13 +458,6 @@ $lang['wihladmrs6'] = "Es ist bereits ein Reset-Job aktiv. Bitte warte bis all $lang['wihladmrs7'] = "Drücke %s Aktualisieren %s um den Status zu beobachten."; $lang['wihladmrs8'] = "Solange der Reset in Bearbeitung ist, darf der Bot NICHT gestoppt oder neu gestartet werden!"; $lang['wihladmrs9'] = "Bitte %s bestätige %s die Jobs. Damit wird der Job-Status zurücksetzt, sodass ein neuer Reset gestartet werden könnte."; -$lang['wihladmrs10'] = "Job-Status erfolgreich zurückgesetzt!"; -$lang['wihladmrs11'] = "Benötigte Zeit zum Zurücksetzen des Systems"; -$lang['wihladmrs12'] = "Bist du dir sicher, dass du immer noch den Reset ausführen möchtest?"; -$lang['wihladmrs13'] = "Ja, starte Reset"; -$lang['wihladmrs14'] = "Nein, abbrechen"; -$lang['wihladmrs15'] = "Bitte wähle zumindest eine Option!"; -$lang['wihladmrs16'] = "aktiviert"; $lang['wihlset'] = "Einstellungen"; $lang['wiignidle'] = "Ignoriere Idle"; $lang['wiignidledesc'] = "Lege eine Zeit fest, bis zu der die Idle-Zeit eines Users ignoriert werden soll.

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

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 Sec. = Deaktivieren der Funktion

Beispiel:
Ignoriere Idle = 600 (Sekunden)
Ein Client hat einen Idle von 8 Minuten.
Folge:
Die 8 Minuten Idle werden ignoriert und der User erhält demnach diese Zeit als aktive Zeit. Wenn sich die Idle-Zeit nun auf 12 Minuten erhöht, so wird die Zeit über 10 Minuten, also 2 Minuten, auch als Idle-Zeit gewertet. Die ersten 10 Minuten zählen weiterhin als aktive Zeit."; @@ -467,6 +471,9 @@ $lang['wimsgsndesc'] = "Definiere eine Nachricht, welche auf der /stats/ Seite $lang['wimsgusr'] = "Rangsteigerung-Info"; $lang['wimsgusrdesc'] = "Informiere den User per privater Textnachricht über seine Rangsteigerung."; $lang['winav1'] = "TeamSpeak"; +$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 definiere einen Bot-Admin, welcher der Administrator des Ranksystems ist (TeamSpeak -> Bot-Admin). Dies ist sehr wichtig im Falle des Verlustes der Login-Daten für das Webinterface."; +$lang['winav12'] = "Addons"; $lang['winav2'] = "Datenbank"; $lang['winav3'] = "Kern"; $lang['winav4'] = "Anderes"; @@ -475,21 +482,21 @@ $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 definiere einen Bot-Admin, welcher der Administrator des Ranksystems ist (TeamSpeak -> Bot-Admin). Dies ist sehr wichtig im Falle des Verlustes der Login-Daten 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 (TS3 ServerQuery) 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 (TS3 ServerQuery) Bot, da nicht unbedingt für alle die Query-Benutzer sichtbar sind:
https://ts-n.net/lexicon.php?showid=98#lexindex

Dieser kann dann mit dem [URL] Tag in einem Channel als Link eingefügt werden.
https://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)
%7$s - aktueller User Rank
%8$s - Name der aktuellen Servergruppe
%9$s - aktuelle Servergruppe seit (Zeitpunkt)


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)
%7$s - aktueller User Rank
%8$s - Name der aktuellen Servergruppe
%9$s - aktuelle Servergruppe seit (Zeitpunkt)


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['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)
%7$s - aktueller User Rank
%8$s - Name der aktuellen Servergruppe
%9$s - aktuelle Servergruppe seit (Zeitpunkt)


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['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)
%7$s - aktueller User Rank
%8$s - Name der aktuellen Servergruppe
%9$s - aktuelle Servergruppe seit (Zeitpunkt)


Beispiel:
Du hast bereits den höchsten Rang erreicht seit %1$s Tagen, %2$s Stunden, %3$s Minuten und %4$s Sekunden.
"; $lang['winxmsgdesc3'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"!nextup\" erhält, wenn 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)
%7$s - aktueller User Rank
%8$s - Name der aktuellen Servergruppe
%9$s - aktuelle Servergruppe seit (Zeitpunkt)


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 einen Bot-Admin im Webinterface zu hinterlegen. Nun besteht keine Möglichkeit das Passwort zurückzusetzen!"; +$lang['wirtpw1'] = "Sorry Bro, du hast vergessen einen Bot-Admin im Webinterface zu hinterlegen. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$lang['wirtpw10'] = "Du musst mit dem TeamSpeak3 Server verbunden sein."; +$lang['wirtpw11'] = "Du musst mit der eindeutigen Client-ID online sein, welche als Bot-Admin definiert 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['wirtpw2'] = "Der Bot-Admin konnte auf dem TS3 Server nicht gefunden werden. Du musst auf dem TS3 mit der hinterlegten eindeutigen Client-ID des Bot-Admins 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."; @@ -498,9 +505,6 @@ $lang['wirtpw6'] = "Das Passwort für das Webinterface wurde erfolgreich zurü $lang['wirtpw7'] = "Passwort 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 Bot-Admin definiert 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 ein oder mehrere User anhand des zuletzt bekannten Nicknamen, der eindeutigen Client-ID oder der Client-Datenbank-ID.

Mehrfachselektionen sind durch einen Klick oder mit der Enter-Taste möglich."; $lang['wishcolas'] = "aktuelle Servergruppe"; @@ -513,10 +517,10 @@ $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['wishcolha0'] = "deaktiviert"; $lang['wishcolha1'] = "sicheres Hashen"; $lang['wishcolha2'] = "schnelles Hashen (Standard)"; -$lang['wishcolha'] = "hashe IP Adressen"; $lang['wishcolhadesc'] = "Der TeamSpeak 3 Server speichert die IP-Adresse jedes Clients. Dies benötigen wir, damit das Ranksystem den Webseiten-Benutzer der Statistikseite mit dem entsprechenden TeamSpeak-Benutzer verknüpfen kann.

Mit dieser Funktion kann die Verschlüsselung / Hashen der IP-Adressen von TeamSpeak-Benutzern aktiviert werden. Sofern aktiviert, wird nur der Hash-Wert in der Datenbank gespeichert, anstatt die IP-Adresse im Klartext abzulegen. Dies ist in einigen Fällen des Datenschutzes erforderlich; insbesondere aufgrund der DSGVO.


schnelles Hashen (Standard): IP-Adressen werden gehasht. Das 'Salt' ist für jede Rank-Systeminstanz unterschiedlich, aber für alle Benutzer auf dem Server gleich. Dies macht es schneller, aber auch schwächer als das 'sicheres Hashing'.

sicheres Hashen: IP-Adressen werden gehasht. Jeder Benutzer erhält sein eigenes 'Salt', was es sehr schwierig macht, die IP zu entschlüsseln (=sicher). Dieser Parameter ist konform mit der DSGVO. Contra: Diese Variante wirkt sich auf die Leistung / Perfomance aus, besonders bei größeren TeamSpeak-Servern verlangsamt sie die Statistikseite beim erstmaligen Laden der Seite sehr stark. Außerdem erhöht es die benötigten Ressourcen.

deaktiviert: Ist die Funktion deaktiviert, wird die IP-Adresse eines Benutzers im Klartext gespeichert. Dies ist die schnellste Option, welche auch die geringsten Ressourcen benötigt.


In allen Varianten werden die IP-Adressen der Benutzer nur so lange gespeichert, wie der Benutzer mit dem TS3-Server verbunden ist (Datenminimierung - DSGVO).

Die IP-Adressen werden nur in dem Moment gespeichert, in dem sich ein Benutzer mit dem TS3-Server verbindet. Bei Änderung des Parameters ist eine erneute Verbindung der Benutzer mit dem TS3-Server erforderlich, damit diese sich wieder mit der Ranksystem-Webseite verifizieren können."; $lang['wishcolit'] = "Idle-Zeit"; $lang['wishcolitdesc'] = "Zeige Spalte 'ges. Idle-Zeit' in der stats/list_rankup.php"; @@ -532,9 +536,9 @@ $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['wishdef'] = "Standard Spalten-Sortierung"; $lang['wishdefdesc'] = "Definiere die Standard-Sortierung für die Seite Rank-Liste."; +$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."; @@ -546,24 +550,24 @@ $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['wishsort'] = "Standard Sortierreihenfolge"; $lang['wishsortdesc'] = "Definiere die Standard-Sortierreihenfolge für die Seite Rank-Liste."; +$lang['wistcodesc'] = "Definiere eine erforderliche Anzahl an Server-Verbindungen, welche zum Erreichen der Errungenschaft benötigt wird."; +$lang['wisttidesc'] = "Definiere eine erforderliche Zeit (in Stunden), welche zum Erreichen der Errungenschaft benötigt wird."; $lang['wisupidle'] = "Zeit-Modus"; $lang['wisupidledesc'] = "Es gibt zwei Ausprägungen, wie Zeiten eines Users gewertet werden.

1) online Zeit: Servergruppen werden für online Zeit vergeben. In diesem Fall wird die aktive und inaktive Zeit gewertet.
(siehe Spalte 'ges. online Zeit' in der stats/list_rankup.php)

2) aktive Zeit: Servergruppen werden für aktive Zeit vergeben. In diesem Fall wird die inakive Zeite nicht gewertet. Die online Zeit eines Users wird also um die inaktive Zeit (=Idle) bereinigt, um die aktive Zeit zu erhalten.
(siehe Spalte 'ges. aktive Zeit' in der stats/list_rankup.php)


Eine Umstellung des 'Zeit-Modus', auch bei bereits länger laufenden Datenbanken, sollte kein Problem darstellen, da das Ranksystem falsche Servergruppen eines Clients bereinigt."; $lang['wisvconf'] = "speichern"; $lang['wisvinfo1'] = "Achtung!! Wenn der Modus zum Hashen von IP Adressen geändert wird, ist es erforderlich, dass der User eine neue Verbindung zum TS3 Server herstellt, andernfalls kann der User nicht mit der Statistikseite synchronisiert werden."; -$lang['wisvsuc'] = "Änderungen erfolgreich gesichert!"; $lang['wisvres'] = "Damit die Änderungen wirksam werden ist ein Neustart des Ranksystems erforderlich! %s"; -$lang['wisttidesc'] = "Definiere eine erforderliche Zeit (in Stunden), welche zum Erreichen der Errungenschaft benötigt wird."; -$lang['wistcodesc'] = "Definiere eine erforderliche Anzahl an Server-Verbindungen, welche zum Erreichen der Errungenschaft benötigt wird."; +$lang['wisvsuc'] = "Änderungen erfolgreich gesichert!"; $lang['witime'] = "Zeitzone"; $lang['witimedesc'] = "Wähle die Zeitzone, die für den Server gilt.

Die Zeitzone beeinflusst den Zeitstempel in der Ranksystem-Log (ranksystem.log)."; $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'] = "Standard-Channel"; $lang['wits3dchdesc'] = "Die TS3 Channel Datenbank-ID, mit der sich der Bot verbindet.

In diesem Channel wechselt der Bot automatisch nach dem Verbinden mit dem TeamSpeak Server."; +$lang['wits3encrypt'] = "TS3 Query Verschlüsselung"; +$lang['wits3encryptdesc'] = "Aktiviere diese Option, um die Kommunikation zwischen dem Ranksystem-Bot und dem TeamSpeak 3 Server zu verschlüsseln (SSH).
Ist diese Funktion deaktiviert, so erfolgt die Kommunikation unverschlüsselt (RAW). Das könnte ein Sicherheitsrisiko darstellen, insbesondere, wenn der TS3 Server und das Ranksystem auf unterschiedlichen Maschinen betrieben wird.

Es ist auch sicherzustellen, dass der richtige TS3 ServerQuery Port passend zu dieser Funktion hinterlegt wird!

Achtung: Die SSH-Verschlüsselung benötigt mehr CPU und damit mehr System Ressourcen. Das ist der Grund, warum wir empfehlen die RAW Verbindung zu verwenden, wenn der TS3 Server und das Ranksystem auf der gleichen Maschine laufen (localhost / 127.0.0.1). Laufen sie jedoch auf getrennten Maschinen, sollte die SSH Verschlüsselung für die Verbindung aktiviert werden

Voraussetzungen:

1) TS3 Server Version 3.3.0 oder höher.

2) Die PHP Erweiterung (Extension) PHP-SSH2 wird benötigt.
Unter Linux kann sie wie folgt installiert werden:
%s
3) Die Verschlüsselung (SSH) muss innerhalb des TS3 Servers zuvor aktiviert werden!
Aktiviere die folgenden Parameter in der 'ts3server.ini' und passe diese nach Bedarf an:
%s Nach Änderung der TS3 Server Konfiguration ist ein Neustart dessen erforderlich."; $lang['wits3host'] = "TS3 Host-Adresse"; $lang['wits3hostdesc'] = "TeamSpeak 3 Server Adresse
(IP oder DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Mit dem Query-Slowmode werden die TS3 ServerQuery Anfragen an den TeamSpeak Server reduziert. Dies schützt vor einem Bann aufgrund von Flooding.
TeamSpeak ServerQuery-Befehle werden mit dieser Funktion verzögert abgeschickt.

Auch reduziert der Slowmode die benötigten CPU-Zeiten, was für schwache Server hilfreich sein kann!

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):

%s

Folglich werden die Werte (Zeiten) im 'Ultra delay' um ca. 65 Sekunden ungenauer! Je nach Umfang, was zu tun ist bzw. Servergröße können die Werte variieren!"; $lang['wits3qnm'] = "Bot-Nickname"; $lang['wits3qnmdesc'] = "Der Nickname, mit welchem die TS3 ServerQuery Verbindung aufgebaut werden soll.

Der Nickname kann frei gewählt werden!

Der gewählte Nickname wir im Channel-Baum angezeigt, wenn man ServerQuery-Benutzer sehen kann (Admin-Rechte nötig) und wird auch als Anzeigename für Chat-Nachrichten verwendet."; $lang['wits3querpw'] = "TS3 Query-Passwort"; @@ -572,8 +576,8 @@ $lang['wits3querusr'] = "TS3 Query-Benutzer"; $lang['wits3querusrdesc'] = "TeamSpeak 3 ServerQuery Benutzername

Standard ist 'serveradmin'

Natürlich kann auch ein gesonderter TS3 ServerQuery-Benutzer erstellt und genutzt werden.
Die für den Benutzer benötigten TS3 Rechte sind hier aufgelistet:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak 3 ServerQuery Port

Standard RAW (Klartext) ist 10011 (TCP)
Standard SSH (verschlüsselt) ist 10022 (TCP)

Abweichende Werte sollten sich aus der 'ts3server.ini' aus dem TS3 Installationsverzeichnis entnehmen lassen."; -$lang['wits3encrypt'] = "TS3 Query Verschlüsselung"; -$lang['wits3encryptdesc'] = "Aktiviere diese Option, um die Kommunikation zwischen dem Ranksystem-Bot und dem TeamSpeak 3 Server zu verschlüsseln (SSH).
Ist diese Funktion deaktiviert, so erfolgt die Kommunikation unverschlüsselt (RAW). Das könnte ein Sicherheitsrisiko darstellen, insbesondere, wenn der TS3 Server und das Ranksystem auf unterschiedlichen Maschinen betrieben wird.

Es ist auch sicherzustellen, dass der richtige TS3 ServerQuery Port passend zu dieser Funktion hinterlegt wird!

Achtung: Die SSH-Verschlüsselung benötigt mehr CPU und damit mehr System Ressourcen. Das ist der Grund, warum wir empfehlen die RAW Verbindung zu verwenden, wenn der TS3 Server und das Ranksystem auf der gleichen Maschine laufen (localhost / 127.0.0.1). Laufen sie jedoch auf getrennten Maschinen, sollte die SSH Verschlüsselung für die Verbindung aktiviert werden

Voraussetzungen:

1) TS3 Server Version 3.3.0 oder höher.

2) Die PHP Erweiterung (Extension) PHP-SSH2 wird benötigt.
Unter Linux kann sie wie folgt installiert werden:
%s
3) Die Verschlüsselung (SSH) muss innerhalb des TS3 Servers zuvor aktiviert werden!
Aktiviere die folgenden Parameter in der 'ts3server.ini' und passe diese nach Bedarf an:
%s Nach Änderung der TS3 Server Konfiguration ist ein Neustart dessen erforderlich."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Mit dem Query-Slowmode werden die TS3 ServerQuery Anfragen an den TeamSpeak Server reduziert. Dies schützt vor einem Bann aufgrund von Flooding.
TeamSpeak ServerQuery-Befehle werden mit dieser Funktion verzögert abgeschickt.

Auch reduziert der Slowmode die benötigten CPU-Zeiten, was für schwache Server hilfreich sein kann!

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):

%s

Folglich werden die Werte (Zeiten) im 'Ultra delay' um ca. 65 Sekunden ungenauer! Je nach Umfang, was zu tun ist bzw. Servergröße können die Werte variieren!"; $lang['wits3voice'] = "TS3 Voice-Port"; $lang['wits3voicedesc'] = "TeamSpeak 3 Voice-Port

Standard ist 9987 (UDP)

Dieser Port wird auch zum Verbinden vom TS3 Client genutzt."; $lang['witsz'] = "Log-Größe"; diff --git a/languages/core_en_english_gb.php b/languages/core_en_english_gb.php index 59c6361..7d83b36 100644 --- a/languages/core_en_english_gb.php +++ b/languages/core_en_english_gb.php @@ -1,10 +1,12 @@ added to the Ranksystem now."; $lang['achieve'] = "Achieve"; +$lang['adduser'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is unknown -> added to the Ranksystem now."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; $lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; $lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "Scanning for clients to delete..."; +$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 - other)."; $lang['cleanc'] = "clean clients"; $lang['cleancdesc'] = "With this function old clients gets deleted out of the Ranksystem.

To this end, the Ranksystem will be synchronized with the TeamSpeak database. Clients, which does not exist anymore on the TeamSpeak server, will be deleted out of the Ranksystem.

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


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
%s"; $lang['cleandel'] = "%s clients were deleted out of the Ranksystem database, because they were no longer existing in the TeamSpeak database."; @@ -22,14 +28,11 @@ $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 - other)."; $lang['day'] = "%s day"; $lang['days'] = "%s days"; $lang['dbconerr'] = "Failed to connect to database: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token is wrong or expired (= 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!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Brute force protection: To much mistakes. Banned for 300 $lang['error'] = "Error "; $lang['errorts3'] = "TS3 Error: "; $lang['errperm'] = "Please check the write-out permission for the folder '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Please choose at least one user!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Please enter an online time to add it!"; +$lang['errselusr'] = "Please choose at least one user!"; $lang['errukwn'] = "An unknown error has occurred!"; $lang['factor'] = "Factor"; $lang['highest'] = "highest rank reached"; @@ -50,13 +53,13 @@ $lang['insec'] = "in Seconds"; $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 \"%s1\".
Due installation this database will be dropped!
Be sure you want this. If not, please choose an other database name."; -$lang['insterr2'] = "%1\$s is needed but seems not to be installed. Install %1\$s and try it again!"; -$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!"; +$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'] = "%1\$s is needed but seems not to be installed. Install %1\$s and try it again!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; -$lang['isntwicfg'] = "Can't save the database configuration! Please assign full write-out permissions on 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') and try again after."; +$lang['isntwicfg'] = "Can't save the database configuration! Please assign full write-out permissions on 'other/dbconfig.php' (Linux: chmod 740; Windows: 'full access') and try again after."; $lang['isntwicfg2'] = "Configure Webinterface"; -$lang['isntwichm'] = "Write-out permissions on folder \"%s\" are missing. Please assign full rights (Linux: chmod 777; Windows: 'full access') and try to start the Ranksystem again."; +$lang['isntwichm'] = "Write-out permissions on folder \"%s\" are missing. Please assign full rights (Linux: chmod 740; Windows: 'full access') and try to start the Ranksystem again."; $lang['isntwiconf'] = "Open the %s to configure the Ranksystem!"; $lang['isntwidbhost'] = "DB host-address:"; $lang['isntwidbhostdesc'] = "The address of the server where the database is running.
(IP or DNS)

If the database server and the web server (= web space) are running on the same system, you should be able to use
localhost
or
127.0.0.1
"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Please delete the file 'install.php' from your web space $lang['isntwiusr'] = "User for the webinterface successfully created."; $lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; $lang['isntwiusrcr'] = "Create Webinterface-User"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $lang['isntwiusrdesc'] = "Enter a username and password to access the webinterface. With the webinterface you can configure the Ranksystem."; $lang['isntwiusrh'] = "Access - Webinterface"; $lang['listacsg'] = "current servergroup"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Reset the online and idle time of user %s (unique Client $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 his old online time.

The entered online time will be considered for the rank up and should take effect immediately."; $lang['setontime2'] = "remove time"; +$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to his old online time.

The entered online time will be considered for the rank up and should take effect immediately."; $lang['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get this value deducted from his 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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Assign Servergroups"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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 separated.

Example:
23,24,28
"; +$lang['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Limit concurrent 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."; @@ -288,22 +292,24 @@ $lang['stri0009'] = "How was the Ranksystem created?"; $lang['stri0010'] = "The Ranksystem is developed in"; $lang['stri0011'] = "It also uses 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['stri0013'] = "%s for russian translation"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s for italian translation"; +$lang['stri0016'] = "%s for initialisation arabic translation"; +$lang['stri0017'] = "%s for initialisation romanian translation"; +$lang['stri0018'] = "%s for initialisation dutch translation"; +$lang['stri0019'] = "%s for french translation"; +$lang['stri0020'] = "%s for portuguese translation"; +$lang['stri0021'] = "%s for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "Of all time"; +$lang['sttm0001'] = "Of the month"; $lang['sttw0001'] = "Top users"; $lang['sttw0002'] = "Of the week"; $lang['sttw0003'] = "With %s %s online time"; @@ -319,8 +325,6 @@ $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 enter the token manually on the website:\n[B]%s[/B]\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 Client-ID."; @@ -333,11 +337,11 @@ $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_day'] = "Day(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_min'] = "Min(s)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' parameter (webinterface -> rank), but that servergroup ID isn't existent on your TS3 server (anymore)! Please correct this or errors might happen!"; $lang['upgrp0002'] = "Download new ServerIcon"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "hide excepted clients"; $lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also, multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "Boost"; -$lang['wiboostdesc'] = "Give a user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Also define a factor which should be used (2x for example) and a time, how long the boost should be rated.
The higher the factor, the faster a user reaches the next higher rank.
Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a dot!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Give a user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Also define a factor which should be used (2x for example) and a time, how long the boost should be rated.
The higher the factor, the faster a user reaches the next higher rank.
Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a dot!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $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!"; @@ -382,15 +387,15 @@ $lang['wibot8'] = "Ranksystem log (excerpt):"; $lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem bot!"; $lang['wichdbid'] = "Client-database-ID reset"; $lang['wichdbiddesc'] = "Activate this function to reset the online time of a user, if his TeamSpeak Client-database-ID has been changed.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. By default this happens when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $lang['wichpw1'] = "The old password is wrong. Please try again"; $lang['wichpw2'] = "The new passwords mismatch. Please try again."; $lang['wichpw3'] = "The password of the webinterface has been successfully changed. Requested from IP %s."; $lang['wichpw4'] = "Change Password"; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $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 write-out error for 'other/dbconfig.php'"; +$lang['widbcfgsuc'] = "Database configurations saved successfully."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "renew groups"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "A comma separated list of unique Client-IDs, which shou $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "rank up definition"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihladm0'] = "Description of function (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "settings"; $lang['wiignidle'] = "Ignore idle"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a user will be ignored.

If a client does nothing on the server (=idle), this time can be determined by the Ranksystem. With this function the idle time of a user up to the defined limit is not evaluated as idle time, rather it counts as active time. Only when the defined limit is exceeded, it counts from that point on for the Ranksystem as idle time.

This function does matter only in conjunction with the mode 'active time'.

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

0 Sec. = disables this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle will be ignored and the user therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes still as active time."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ pa $lang['wimsgusr'] = "Rank up notification"; $lang['wimsgusrdesc'] = "Inform a user with a private text message about his ranking up."; $lang['winav1'] = "TeamSpeak"; +$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to make sure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; +$lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; +$lang['winav12'] = "Add-ons"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Other"; @@ -474,21 +482,21 @@ $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 make sure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; -$lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; -$lang['winav12'] = "Add-ons"; $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 text message.

As answer the user will receive a defined text message with the needed time for the next higher rank.

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 receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['winxmsgdesc1'] = "Define a message, which the user will receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['winxmsgdesc2'] = "Define a message, which the user will receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds.
"; $lang['winxmsgdesc3'] = "Define a message, which the user will receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 define a Bot-Admin inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to define a Bot-Admin inside the webinterface before. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$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 Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin not found on TS3 server. You need to be online with the unique Client-ID, which is saved as Bot-Admin."; $lang['wirtpw3'] = "Your IP address does not match with the IP address of the admin on the TS3 server. Be sure you are online with the same IP address 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"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "The password of the webinterface has been successfully res $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 Bot-Admin."; -$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'] = "current servergroup"; @@ -512,10 +517,10 @@ $lang['wishcoldbid'] = "database-ID"; $lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php"; $lang['wishcolgs'] = "current group since"; $lang['wishcolgsdesc'] = "Show column 'current group since' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "idle time"; $lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; @@ -545,24 +550,24 @@ $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['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time mode"; $lang['wisupidledesc'] = "There are two modes, how the time of a user will be rated.

1) online time: Servergroups will be given by online time. In this case the active and the inactive time will be rated.
(see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: Servergroups will be given by active time. In this case the inactive time will not be rated. The online time will be taken and reduced by the inactive time (=idle) to build the active time.
(see column 'sum. active time' in the 'stats/list_rankup.php')


A change of the 'time mode', also on longer running Ranksystem instances, should be no problem since the Ranksystem repairs wrong servergroups on a client."; $lang['wisvconf'] = "save"; $lang['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Changes successfully saved!"; $lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Changes successfully saved!"; $lang['witime'] = "Timezone"; $lang['witimedesc'] = "Select the timezone the server is hosted.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same host / server (localhost / 127.0.0.1). If they are running on separate hosts, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; $lang['wits3host'] = "TS3 Hostaddress"; $lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "With the Query-Slowmode, you can reduce the spam of query commands to the TeamSpeak server. This prevents bans in case of flooding.
TeamSpeak Query commands get delayed with this function.

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

The activation is not recommended, if it isn't required. The delay slows the speed of the bot, which makes it inaccurate.

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

%s

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['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; $lang['wits3querpw'] = "TS3 Query-Password"; @@ -571,8 +576,8 @@ $lang['wits3querusr'] = "TS3 Query-User"; $lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Recommended is to create an additional serverquery account only for the Ranksystem.
The needed permissions you will find on:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak 3 query port
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

If its not default, you should find it in your 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same host / server (localhost / 127.0.0.1). If they are running on separate hosts, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "With the Query-Slowmode, you can reduce the spam of query commands to the TeamSpeak server. This prevents bans in case of flooding.
TeamSpeak Query commands get delayed with this function.

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

The activation is not recommended, if it isn't required. The delay slows the speed of the bot, which makes it inaccurate.

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

%s

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['wits3voice'] = "TS3 Voice-Port"; $lang['wits3voicedesc'] = "TeamSpeak 3 voice port
Default is 9987 (UDP)
This is the port, you use also to connect with the TS3 Client."; $lang['witsz'] = "Log-Size"; diff --git a/languages/core_es_español_es.php b/languages/core_es_español_es.php index 3075b20..8ff6423 100644 --- a/languages/core_es_español_es.php +++ b/languages/core_es_español_es.php @@ -1,10 +1,12 @@ agregada a Ranksystem ahora."; $lang['achieve'] = "Achievement"; +$lang['adduser'] = "Usuario %s (ID de cliente unico: %s; ID de base de datos del cliente %s) es desconocida -> agregada a Ranksystem ahora."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Muchos inicios de sesión incorrectos detectados en el webinterface. Inicio de sesion bloqueado por 300 segundos! Último acceso desde IP %s."; $lang['brute1'] = "Intento de inicio de sesión incorrecta en el webinterface detectado. Intento de acceso fallido desde IP %s con nombre de usuario %s."; $lang['brute2'] = "Inicio de sesion exitoso en webinterface desde la IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "Escaneando clientes para eliminar..."; +$lang['clean0001'] = "Avatar innecesario eliminado %s (ID de cliente unico antiguo: %s) exitosamente."; +$lang['clean0002'] = "Error al eliminar un avatar innecesario %s (ID de cliente unico: %s)."; +$lang['clean0003'] = "Compruebe si la limpieza de la base de datos está hecha. Se borraron todas las cosas innecesarias."; +$lang['clean0004'] = "Verifique que haya eliminado usuarios. Nada ha cambiado, porque funciona 'Limpiador de clientes' está desactivado (webinterface - other)."; $lang['cleanc'] = "limpiar clientes"; $lang['cleancdesc'] = "Con esta función, los clientes antiguos se eliminan del Ranksystem.

Para este fin, el sistema de rangos se sincronizará con la base de datos TeamSpeak. Clientes, que ya no existan en el servidor de TeamSpeak, serán eliminados del Ranksystem.

Esta función solo está habilitada cuando 'Consulta en modo lento' está desactivada!


Para el ajuste automático de la base de datos TeamSpeak, se puede usar Limpiador de clientes:
%s"; $lang['cleandel'] = "%s los clientes fueron eliminados de la base de datos de Ranksystem, porque ya no existían en la base de datos TeamSpeak."; @@ -22,14 +28,11 @@ $lang['cleanp'] = "Limpaidor periodico"; $lang['cleanpdesc'] = "Establezca un tiempo que debe transcurrir antes del 'Limpiador de clientes' se ejecuta a continuación.

Establece un tiempo en segundos.

Es recomendado hacerlo una vez al dia, porque la limpieza del cliente necesita mucho tiempo para bases de datos grandes."; $lang['cleanrs'] = "Clientes en la base de datos de Ranksystem: %s"; $lang['cleants'] = "Clientes encontrados en la base de datos TeamSpeak: %s (de %s)"; -$lang['clean0001'] = "Avatar innecesario eliminado %s (ID de cliente unico antiguo: %s) exitosamente."; -$lang['clean0002'] = "Error al eliminar un avatar innecesario %s (ID de cliente unico: %s)."; -$lang['clean0003'] = "Compruebe si la limpieza de la base de datos está hecha. Se borraron todas las cosas innecesarias."; -$lang['clean0004'] = "Verifique que haya eliminado usuarios. Nada ha cambiado, porque funciona 'Limpiador de clientes' está desactivado (webinterface - other)."; $lang['day'] = "%s día"; $lang['days'] = "%s días"; $lang['dbconerr'] = "Error al conectarse a la base de datos: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "El token CSRF está incorrecto o ha caducado (=comprobación de seguridad fallida)! Por favor, recarga este sitio y pruébalo nuevamente. Si recibe este error varias veces, elimine la cookie de sesión de su navegador y vuelva a intentarlo!"; $lang['errgrpid'] = "Sus cambios no se almacenaron en la base de datos debido a errores. Corrige los problemas y guarda tus cambios después!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Protección de la fuerza bruta: Demasiados errores. Bane $lang['error'] = "Error "; $lang['errorts3'] = "Error de TS3: "; $lang['errperm'] = "Por favor, compruebe el permiso para la carpeta '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Por favor elija al menos un usuario!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Por favor ingrese un tiempo en línea para agregar!"; +$lang['errselusr'] = "Por favor elija al menos un usuario!"; $lang['errukwn'] = "Un error desconocido a ocurrido!"; $lang['factor'] = "Factor"; $lang['highest'] = "rango más alto alcanzado"; @@ -51,12 +54,12 @@ $lang['install'] = "Instalación"; $lang['instdb'] = "Instalar base de datos"; $lang['instdbsuc'] = "Base de datos %s creada con éxito."; $lang['insterr1'] = "ATENCIÓN: Estás tratando de instalar el Ranksystem, pero ya existe una base de datos con el nombre \"%s\".
Debido a la instalación, esta base de datos se descartará!
Asegúrate de querer esto. Si no, elija otra base de datos."; -$lang['insterr2'] = "Se necesita %1\$s pero parece que no está instalado. Instalar %1\$s y prueba de nuevo!"; -$lang['insterr3'] = "La función %1\$s debe estar habilitada pero parece estar deshabilitada. Por favor activa el PHP %1\$s funcion e intentalo de nuevo!"; +$lang['insterr2'] = "Se necesita %1\$s pero parece que no está instalado. Instalar %1\$s y prueba de nuevo!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "La función %1\$s debe estar habilitada pero parece estar deshabilitada. Por favor activa el PHP %1\$s funcion e intentalo de nuevo!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP 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['isntwicfg'] = "Can't save the database configuration! Please assign full rights on 'other/dbconfig.php' (Linux: chmod 740; Windows: 'full access') and try again after."; $lang['isntwicfg2'] = "Configurar Webinterface"; -$lang['isntwichm'] = "Permisos de escritura en la carpeta \"%s\" están ausentes. Por favor asigne todos los derechos (Linux: chmod 777; Windows: 'acceso completo') y tratar de iniciar el Ranksystem de nuevo."; +$lang['isntwichm'] = "Permisos de escritura en la carpeta \"%s\" están ausentes. Por favor asigne todos los derechos (Linux: chmod 740; Windows: 'acceso completo') y tratar de iniciar el Ranksystem de nuevo."; $lang['isntwiconf'] = "Abre el %s para configurar el Ranksystem!"; $lang['isntwidbhost'] = "Dirección de host DB:"; $lang['isntwidbhostdesc'] = "La dirección del servidor donde se ejecuta la base de datos.
(IP o DNS)

si el servidor de la base de datos y el espacio web se están ejecutando en el mismo sistema, deberías poder usar
localhost
o
127.0.0.1
"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Por favor borre el archivo 'install.php' desde su servid $lang['isntwiusr'] = "Usuario para el webinterface creado con éxito."; $lang['isntwiusr2'] = "¡Felicidades! Has terminado el proceso de instalación."; $lang['isntwiusrcr'] = "Crear usuario de Webinterface"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $lang['isntwiusrdesc'] = "Ingrese un nombre de usuario y contraseña para acceder a la Webinterface. Con la Webinterface puede configurar el ranksytem."; $lang['isntwiusrh'] = "Acceso - Webinterface"; $lang['listacsg'] = "grupo de servidores actual"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Restablecer el tiempo en línea y inactivo del usuario % $lang['sccupcount'] = "Tiempo activo de %s segundos para el ID de cliente unica (%s) se agregará en unos segundos (echa un vistazo al log de Ranksystem)."; $lang['sccupcount2'] = "Agregar un tiempo activo de %s segundos para el ID de cliente unica (%s); solicitado sobre la función de administrador."; $lang['setontime'] = "agregar tiempo"; -$lang['setontimedesc'] = "Agregue tiempo en línea a los clientes seleccionados previamente. Cada usuario obtendrá este tiempo adicional a su anterior tiempo en línea.

El tiempo en línea ingresado será considerado para el rango ascendente y debe entrar en vigencia inmediatamente."; $lang['setontime2'] = "eliminar el tiempo"; +$lang['setontimedesc'] = "Agregue tiempo en línea a los clientes seleccionados previamente. Cada usuario obtendrá este tiempo adicional a su anterior tiempo en línea.

El tiempo en línea ingresado será considerado para el rango ascendente y debe entrar en vigencia inmediatamente."; $lang['setontimedesc2'] = "Eliminar el tiempo en línea de los clientes seleccionados anteriores. Cada usuario será removido esta vez de su viejo tiempo en línea.

El tiempo en línea ingresado será considerado para el rango ascendente y debe entrar en vigencia inmediatamente."; $lang['sgrpadd'] = "Conceder grupo de servidor %s (ID: %s) para usuario %s (ID de cliente unica: %s; ID de cliente en base de datos %s)."; $lang['sgrprerr'] = "Usuario afectado: %s (ID de cliente unica: %s; ID de cliente en base de datos %s) y grupo de servidores %s (ID: %s)."; $lang['sgrprm'] = "Eliminar grupo de servidores %s (ID: %s) para usuario %s (ID de cliente unica: %s; ID de cliente en base de datos %s)."; $lang['size_byte'] = "B"; +$lang['size_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Asignar grupos de servidores"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $lang['stag0002'] = "Grupos permitidos"; -$lang['stag0003'] = "Definir una lista de grupos de servidores, que un usuario puede asignarse.

Los grupos de servidores deberían ingresarse aquí con su groupID separados por comas.

Ejemplo:
23,24,28"; +$lang['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Limitar grupos"; $lang['stag0005'] = "Limite el número de grupos de servidores, que se pueden configurar al mismo tiempo."; $lang['stag0006'] = "Hay varios identificadores únicos en línea con su dirección IP. Por favor %shaga clic aquí%s para verificar primero."; @@ -288,22 +292,24 @@ $lang['stri0009'] = "¿Cómo se creó Ranksystem?"; $lang['stri0010'] = "El Ranksystem está codificado en"; $lang['stri0011'] = "Utiliza también las siguientes bibliotecas:"; $lang['stri0012'] = "Agradecimientos especiales a:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - para la traducción al ruso"; -$lang['stri0014'] = "Bejamin Frost - for initialisation the bootstrap design"; -$lang['stri0015'] = "ZanK & jacopomozzy - para traducción al italiano"; -$lang['stri0016'] = "DeStRoYzR & Jehad - para la inicialización traducción árabe"; -$lang['stri0017'] = "SakaLuX - para la inicialización traducción rumana"; -$lang['stri0018'] = "0x0539 - para la inicialización traducción holandesa"; -$lang['stri0019'] = "Quentinti - para traducción al francés"; -$lang['stri0020'] = "Pasha - para traducción al portugués"; -$lang['stri0021'] = "Shad86 - por la gran ayuda en GitHub y nuestro servidor público, compartiendo sus ideas, pre-probando toda esa mierda y mucho más"; -$lang['stri0022'] = "mightyBroccoli - para compartir sus ideas y pruebas previas"; +$lang['stri0013'] = "%s para la traducción al ruso"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s para traducción al italiano"; +$lang['stri0016'] = "%s para la inicialización traducción árabe"; +$lang['stri0017'] = "%s para la inicialización traducción rumana"; +$lang['stri0018'] = "%s para la inicialización traducción holandesa"; +$lang['stri0019'] = "%s para traducción al francés"; +$lang['stri0020'] = "%s para traducción al portugués"; +$lang['stri0021'] = "%s por la gran ayuda en GitHub y nuestro servidor público, compartiendo sus ideas, pre-probando toda esa mierda y mucho más"; +$lang['stri0022'] = "%s para compartir sus ideas y pruebas previas"; $lang['stri0023'] = "Estable desde: 18/04/2016."; -$lang['stri0024'] = "KeviN - para traducción al checo"; -$lang['stri0025'] = "DoktorekOne - para la traducción polaca"; -$lang['stri0026'] = "JavierlechuXD - para la traducción al español"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s para traducción al checo"; +$lang['stri0025'] = "%s para la traducción polaca"; +$lang['stri0026'] = "%s para la traducción al español"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "De todos los tiempos"; +$lang['sttm0001'] = "Del mes"; $lang['sttw0001'] = "Usuarios principales"; $lang['sttw0002'] = "De la semana"; $lang['sttw0003'] = "Con %s %s tiempo en línea"; @@ -319,8 +325,6 @@ $lang['sttw0012'] = "Otro %s usuarios (en horas)"; $lang['sttw0013'] = "Con %s %s tiempo activo"; $lang['sttw0014'] = "horas"; $lang['sttw0015'] = "minutos"; -$lang['sttm0001'] = "Del mes"; -$lang['stta0001'] = "De todos los tiempos"; $lang['stve0001'] = "\nHola %s,\npara verificar con el Ranksystem, haga clic en el siguiente enlace:\n[B]%s[/B]\n\nSi el enlace no funciona, también puede escribir el token manualmente en:\n%s\n\nSi no solicitó este mensaje, por favor ignórelo.. Cuando lo reciba repetidas veces, póngase en contacto con un administrador."; $lang['stve0002'] = "Se le envió un mensaje con el token en el servidor TS3."; $lang['stve0003'] = "Ingrese el token que recibió en el servidor TS3. Si no ha recibido un mensaje, asegúrese de haber elegido la ID única correcta."; @@ -333,11 +337,11 @@ $lang['stve0009'] = " -- seleccionate -- "; $lang['stve0010'] = "Recibirá un token en el servidor TS3, que debe ingresar aquí:"; $lang['stve0011'] = "Token:"; $lang['stve0012'] = "verificar"; +$lang['time_day'] = "Dia(s)"; +$lang['time_hour'] = "Hora(s)"; +$lang['time_min'] = "Minuto(s)"; $lang['time_ms'] = "ms"; $lang['time_sec'] = "Segundo(s)"; -$lang['time_min'] = "Minuto(s)"; -$lang['time_hour'] = "Hora(s)"; -$lang['time_day'] = "Dia(s)"; $lang['unknown'] = "unknown"; $lang['upgrp0001'] = "Hay un grupo de servidores con ID %s cconfigurado dentro de su '%s' parámetro (interfaz web -> Rank), pero ese ID de grupo de servidor no existe en su servidor TS3 (más)! Corrígelo o pueden ocurrir errores!"; $lang['upgrp0002'] = "Descargar nuevo icono de servidor"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "ocultar clientes exceptuados"; $lang['wiadmhidedesc'] = "Para ocultar usuario exceptuado en la siguiente selección"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Proporcione a un usuario de su servidor TeamSpeak un grupo de servidores (debe crearse manualmente), que puede declarar aquí como grupo de refuerzo. Defina también un factor que se debe usar (por ejemplo, 2x) y un tiempo, por cuánto tiempo se debe evaluar el impulso.
Cuanto mayor sea el factor, más rápido un usuario alcanza el siguiente rango más alto.
Ha expirado el tiempo, el grupo de servidores de refuerzo se elimina automáticamente del usuario afectado. El tiempo comienza a correr tan pronto como el usuario obtiene el grupo de servidores.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

ID del grupo de servidores => factor => tiempo (en segundos)

Cada entrada tiene que separarse de la siguiente con una coma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Aquí, un usuario en el grupo de servidores 12 obtiene el factor 2 durante los siguientes 6000 segundos, un usuario en el grupo de servidores 13 obtiene el factor 1.25 durante 2500 segundos, y así sucesivamente..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Proporcione a un usuario de su servidor TeamSpeak un grupo de servidores (debe crearse manualmente), que puede declarar aquí como grupo de refuerzo. Defina también un factor que se debe usar (por ejemplo, 2x) y un tiempo, por cuánto tiempo se debe evaluar el impulso.
Cuanto mayor sea el factor, más rápido un usuario alcanza el siguiente rango más alto.
Ha expirado el tiempo, el grupo de servidores de refuerzo se elimina automáticamente del usuario afectado. El tiempo comienza a correr tan pronto como el usuario obtiene el grupo de servidores.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

ID del grupo de servidores => factor => tiempo (en segundos)

Cada entrada tiene que separarse de la siguiente con una coma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Aquí, un usuario en el grupo de servidores 12 obtiene el factor 2 durante los siguientes 6000 segundos, un usuario en el grupo de servidores 13 obtiene el factor 1.25 durante 2500 segundos, y así sucesivamente..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $lang['wibot1'] = "Ranksystem bot debe ser detenido. Consulte el registro a continuación para obtener más información!"; $lang['wibot2'] = "Ranksystem bot debe ser comenzado. Consulte el registro a continuación para obtener más información!"; $lang['wibot3'] = "Ranksystem bot debe reiniciarse Consulte el registro a continuación para obtener más informaciónn!"; @@ -382,15 +387,15 @@ $lang['wibot8'] = "Ranksystem log (extracto):"; $lang['wibot9'] = "Complete todos los campos obligatorios antes de comenzar con Ranksystem bot!"; $lang['wichdbid'] = "ID de cliente en base de datos reinciado"; $lang['wichdbiddesc'] = "Active esta función para restablecer el tiempo en línea de un usuario, si su TeamSpeak ID de cliente en base de datos ha sido cambiado.
El usuario será emparejado por su ID de cliente único.

Si esta función está desactivada, el conteo del tiempo en línea (o activo) continuará por el valor anterior, con el nuevo ID de base de datos del cliente. En este caso, solo se reemplazará la ID de la base de datos del cliente del usuario.


¿Cómo cambia el ID de la base de datos del cliente?

En cada uno de los casos siguientes, el cliente obtiene una nueva ID de base de datos de cliente con la siguiente conexión al servidor TS3.

1) automáticamente por el servidor TS3
El servidor TeamSpeak tiene una función para eliminar al usuario después de X días fuera de la base de datos. Por defecto, esto sucede cuando un usuario está desconectado durante 30 días y no está en un grupo de servidores permanente.
Esta opción puede cambiar dentro de su ts3server.ini:
dbclientkeepdays=30

2) restaurar la instantánea de TS3
Cuando está restaurando una instantánea del servidor TS3, los ID de la base de datos se cambiarán.

3) eliminar manualmente el cliente
Un cliente de TeamSpeak también podría eliminarse manualmente o mediante un script de terceros del servidor TS3.."; -$lang['wiconferr'] = "Hay un error en la configuración del Ranksystem. Vaya a la webinterface y corrija la Configuración rank!"; $lang['wichpw1'] = "Su contraseña anterior es incorrecta. Inténtalo de nuevo"; $lang['wichpw2'] = "Las nuevas contraseñas no coinciden. Inténtalo de nuevo."; $lang['wichpw3'] = "La contraseña de la interfaz web ha sido modificada con éxito. Solicitud de IP %s."; $lang['wichpw4'] = "Cambia la contraseña"; +$lang['wiconferr'] = "Hay un error en la configuración del Ranksystem. Vaya a la webinterface y corrija la Configuración rank!"; $lang['widaform'] = "Formato de fecha"; $lang['widaformdesc'] = "Elija el formato de fecha que se muestra.

Ejemplo:
%a dias, %h horas, %i minutos, %s segundos"; -$lang['widbcfgsuc'] = "Configuraciones de bases de datos guardadas con éxito."; $lang['widbcfgerr'] = "¡Error al guardar las configuraciones de la base de datos! Error de conexión o error de escritura para 'other/dbconfig.php'"; +$lang['widbcfgsuc'] = "Configuraciones de bases de datos guardadas con éxito."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "renovar grupos"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "Una lista separada por comas de identificadores de clie $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "subir de rango definición"; -$lang['wigrptimedesc'] = "Defina aquí después de qué momento un usuario debe obtener automáticamente un grupo de servidores predefinido.

tiempo (segundos)=>grupo de servidores ID

Max. valor son 999.999.999 segundos (más de 31 años)

Importante para esto es el 'tiempo en línea' o el 'tiempo activo' de un usuario, dependiendo de la configuración del modo.

Cada entrada tiene que separarse de la siguiente con una coma.

El tiempo debe ser ingresado acumulativo

Ejemplo:
60=>9,120=>10,180=>11
En esto, un usuario obtiene después de 60 segundos el grupo de servidores 9, a su vez después de 60 segundos el grupo de servidores 10, y así sucesivamente ..."; $lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Defina aquí después de qué momento un usuario debe obtener automáticamente un grupo de servidores predefinido.

tiempo (segundos)=>grupo de servidores ID

Max. valor son 999.999.999 segundos (más de 31 años)

Importante para esto es el 'tiempo en línea' o el 'tiempo activo' de un usuario, dependiendo de la configuración del modo.

Cada entrada tiene que separarse de la siguiente con una coma.

El tiempo debe ser ingresado acumulativo

Ejemplo:
60=>9,120=>10,180=>11
En esto, un usuario obtiene después de 60 segundos el grupo de servidores 9, a su vez después de 60 segundos el grupo de servidores 10, y así sucesivamente ..."; +$lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista rangos (modo de administrador)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "Configuración"; $lang['wiignidle'] = "Ignorar idle"; $lang['wiignidledesc'] = "Defina un período, hasta el cual se ignorará el tiempo de inactividad de un usuario.

Cuando un cliente no hace nada en el servidor (=inactivo), esta vez lo notará Ranksystem. Con esta característica, el tiempo de inactividad de un usuario no se contará hasta el límite definido. Solo cuando se excede el límite definido, cuenta desde ese punto para el sistema de rangos como tiempo de inactividad.

Esta función solo importa junto con el modo 'tiempo activo'.

Lo que significa que la función es, p. evaluar el tiempo de escucha en conversaciones como actividad.

0 Segundos. = desactivar esta función

Ejemplo:
Ignorar inactivo = 600 (segundos)
Un cliente tiene una inactividad de 8 minutos.
└ Se ignoran 8 minutos inactivos y, por lo tanto, recibe esta vez como tiempo activo. Si el tiempo de inactividad ahora aumentó a 12 minutos, el tiempo es más de 10 minutos y en este caso 2 minutos se contarán como tiempo de inactividad, los primeros 10 minutos como tiempo de actividad."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Definir un mensaje, que se mostrará en /stats/ página $lang['wimsgusr'] = "Notificación de Subir de nivel"; $lang['wimsgusrdesc'] = "Informar a un usuario con un mensaje de texto privado sobre su rango."; $lang['winav1'] = "TeamSpeak"; +$lang['winav10'] = "Utilice la webinterface solo a través de %s HTTPS%s Una encriptación es fundamental para garantizar su privacidad y seguridad.%sPara poder usar HTTPS, su servidor web necesita una conexión SSL."; +$lang['winav11'] = "Ingrese el ID de cliente único del administrador del Ranksystem (TeamSpeak -> Bot-Admin). Esto es muy importante en caso de que haya perdido sus datos de inicio de sesión para la webinterface (para restablecerlos)."; +$lang['winav12'] = "Complementos"; $lang['winav2'] = "Base de datos"; $lang['winav3'] = "Núcleo"; $lang['winav4'] = "Otro"; @@ -474,21 +482,21 @@ $lang['winav6'] = "Página de estadísticas"; $lang['winav7'] = "Administrar"; $lang['winav8'] = "Parar / Iniciar Bot"; $lang['winav9'] = "Actualización disponible!"; -$lang['winav10'] = "Utilice la webinterface solo a través de %s HTTPS%s Una encriptación es fundamental para garantizar su privacidad y seguridad.%sPara poder usar HTTPS, su servidor web necesita una conexión SSL."; -$lang['winav11'] = "Ingrese el ID de cliente único del administrador del Ranksystem (TeamSpeak -> Bot-Admin). Esto es muy importante en caso de que haya perdido sus datos de inicio de sesión para la webinterface (para restablecerlos)."; -$lang['winav12'] = "Complementos"; $lang['winxinfo'] = "Comando \"!nextup\""; $lang['winxinfodesc'] = "Permite al usuario en el servidor TS3 escribir el comando \"!nextup\" al Ranksystem (query)bot como mensaje de texto privado.

Como respuesta, el usuario recibirá un mensaje de texto definido con el tiempo necesario para la siguiente clasificación.

Desactivado - La función está desactivada. El comando '!nextup' será ignorado.
permitido - solo siguiente rango - Devuelve el tiempo necesario para el siguiente grupo..
permitido - todos los siguientes rangos - Devuelve el tiempo necesario para todos los rangos superiores."; $lang['winxmode1'] = "desactivado"; $lang['winxmode2'] = "permitido - solo siguiente rango"; $lang['winxmode3'] = "permitido - todos los siguientes rangos"; $lang['winxmsg1'] = "Mensaje"; -$lang['winxmsgdesc1'] = "Defina un mensaje, que el usuario recibirá como respuesta al comando \"!nextup\".

Argumentos:
%1$s - dias al siguiente rango
%2$s - horas al siguiente rango
%3$s - minutos para el siguiente rango
%4$s - segundos al siguiente rango
%5$s - nombre del siguiente grupo de servidores
%6$s - nombre del usuario (destinatario)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Ejemplo:
Tu próximo rango estará en %1$s dias, %2$s horas y %3$s minutos y %4$s segundos. El siguiente grupo de servidores que alcanzará es [B]%5$s[/B].
"; $lang['winxmsg2'] = "Mensaje (más alto)"; -$lang['winxmsgdesc2'] = "Defina un mensaje, que el usuario recibirá como respuesta al comando \"!nextup\", cuando el usuario ya alcanzó el rango más alto.

Argumentos:
%1$s - días para el próximo rango
%2$s - horas al siguiente rango
%3$s - minutos para el siguiente rango
%4$s - segundos al siguiente rango
%5$s - nombre del siguiente grupo de servidores
%6$s - nombre del usuario (destinatario)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Ejemplo:
Has alcanzado el rango más alto en %1$s dias, %2$s horas y %3$s minutos y %4$s segundos.
"; $lang['winxmsg3'] = "Mensaje (exceptuado)"; +$lang['winxmsgdesc1'] = "Defina un mensaje, que el usuario recibirá como respuesta al comando \"!nextup\".

Argumentos:
%1$s - dias al siguiente rango
%2$s - horas al siguiente rango
%3$s - minutos para el siguiente rango
%4$s - segundos al siguiente rango
%5$s - nombre del siguiente grupo de servidores
%6$s - nombre del usuario (destinatario)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Ejemplo:
Tu próximo rango estará en %1$s dias, %2$s horas y %3$s minutos y %4$s segundos. El siguiente grupo de servidores que alcanzará es [B]%5$s[/B].
"; +$lang['winxmsgdesc2'] = "Defina un mensaje, que el usuario recibirá como respuesta al comando \"!nextup\", cuando el usuario ya alcanzó el rango más alto.

Argumentos:
%1$s - días para el próximo rango
%2$s - horas al siguiente rango
%3$s - minutos para el siguiente rango
%4$s - segundos al siguiente rango
%5$s - nombre del siguiente grupo de servidores
%6$s - nombre del usuario (destinatario)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Ejemplo:
Has alcanzado el rango más alto en %1$s dias, %2$s horas y %3$s minutos y %4$s segundos.
"; $lang['winxmsgdesc3'] = "Defina un mensaje, que el usuario recibirá como respuesta al comando \"!nextup\", cuando el usuario es exceptuado de la Ranksystem.

Argumentos:
%1$s - días para el próximo rango
%2$s - horas al siguiente rango
%3$s - minutos para el siguiente rango
%4$s - segundos al siguiente rango
%5$s - namenombre del siguiente grupo de servidores<
%6$s - nombre del usuario (destinatario)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Ejemplo:
Estás exceptuado de Ranksystem. Si desea clasificar, póngase en contacto con un administrador en el servidor TS3..
"; -$lang['wirtpw1'] = "Lo sentimos, hermano. Has olvidado ingresar tu Bot-Admin dentro de la interfaz web antes. No hay manera de restablecer la contraseña!"; +$lang['wirtpw1'] = "Lo sentimos, hermano. Has olvidado ingresar tu Bot-Admin dentro de la interfaz web antes. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$lang['wirtpw10'] = "Necesitas estar en línea en el servidor TeamSpeak3."; +$lang['wirtpw11'] = "Debe estar en línea con el ID de cliente único, que se guarda como ID de Bot-Admin."; +$lang['wirtpw12'] = "Debe estar en línea con la misma dirección IP en el servidor TeamSpeak3 que aquí en esta página (también el mismo protocolo IPv4 / IPv6)."; $lang['wirtpw2'] = "Bot-Admin no encontrada en el servidor TS3. Debe estar en línea con la ID de cliente única, que se guarda como Bot-Admin."; $lang['wirtpw3'] = "Su dirección IP no coincide con la dirección IP del administrador en el servidor TS3. Asegúrese de tener la misma dirección IP en línea en el servidor TS3 y también en esta página (también se necesita el mismo protocolo IPv4 / IPv6)."; $lang['wirtpw4'] = "\nLa contraseña para la interfaz web fue restablecida con éxito.\nNombre de usuario: %s\nContraseña: [B]%s[/B]\n\nLogin %saquí%s"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "La contraseña de la interfaz web ha sido restablecida con $lang['wirtpw7'] = "Restablecer la contraseña"; $lang['wirtpw8'] = "Aquí puede restablecer la contraseña de la webinterface.."; $lang['wirtpw9'] = "Se requieren las siguientes cosas para restablecer la contraseña:"; -$lang['wirtpw10'] = "Necesitas estar en línea en el servidor TeamSpeak3."; -$lang['wirtpw11'] = "Debe estar en línea con el ID de cliente único, que se guarda como ID de Bot-Admin."; -$lang['wirtpw12'] = "Debe estar en línea con la misma dirección IP en el servidor TeamSpeak3 que aquí en esta página (también el mismo protocolo IPv4 / IPv6)."; $lang['wiselcld'] = "seleccionar clientes"; $lang['wiselclddesc'] = "Seleccione los clientes por su último nombre de usuario conocido, ID de cliente unica o ID de cliente en base de datos.
Múltiples selecciones también son posibles."; $lang['wishcolas'] = "grupo de servidores actual"; @@ -512,10 +517,10 @@ $lang['wishcoldbid'] = "base de datos-ID"; $lang['wishcoldbiddesc'] = "Mostrar columna 'Client-database-ID' en list_rankup.php"; $lang['wishcolgs'] = "grupo actual desde"; $lang['wishcolgsdesc'] = "Mostrar la columna 'current group since' en list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "Active el cifrado / hash de las direcciones IP del usuario de TeamSpeak y guarda solo el valor de hash dentro de la base de datos.
Esto es necesario en algunos casos de su privacidad legal; Especialmente requerido debido a la EU-GDPR.
No podemos prescindir de la dirección IP, porque la necesitamos para vincular al usuario de TeamSpeak con el usuario del sitio web.

Si esta función está \"DESACTIVADA\", la dirección IP de un usuario se almacenará en texto sin formato.

En ambas variantes (ENCENDIDO y APAGADO), las direcciones IP de un usuario solo se almacenarán mientras el usuario esté conectado al servidor TS3.

!!! El cifrado / hash de direcciones IP aumentará los recursos necesarios y afectará negativamente el rendimiento del sitio web !!!

Las direcciones IP de los usuarios solo se almacenarán una vez que el usuario se conecte al servidor TS3. Al cambiar esta función, el usuario debe volver a conectarse al servidor TS3 para poder verificar con la página web de Ranksystem."; $lang['wishcolit'] = "tiempo de inactividad"; $lang['wishcolitdesc'] = "Mostrar columna 'sum idle time' en list_rankup.php"; @@ -545,24 +550,24 @@ $lang['wishnav'] = "mostrar navegación del sitio"; $lang['wishnavdesc'] = "Mostrar la navegación del sitio en 'stats/' pagina.

Si esta opción está desactivada en la página de estadísticas, se ocultará la navegación del sitio.
A continuación, puede tomar cada sitio e.g.Luego puede tomar cada sitio e.g. 'stats/list_rankup.php' e insértelo como marco en su sitio web existente o en el tablón de anuncios."; $lang['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time Modo"; $lang['wisupidledesc'] = "Hay dos modos, cómo se puede contar el tiempo.

1) tiempo en línea: Aquí se tiene en cuenta el tiempo puro en línea del usuario (ver columna 'sum. online time' en el 'stats/list_rankup.php')

2) tiempo activo: Aquí se deducirá el tiempo inactivo (inactivo) del tiempo en línea de un usuario y solo cuenta el tiempo activo (see column 'sum. active time' en el 'stats/list_rankup.php').

No se recomienda un cambio de modo con un Ranksystem que ya se está ejecutando, pero debería funcionar sin mayores problemas. Cada usuario individual será reparado al menos con el siguiente ranking."; $lang['wisvconf'] = "guardar"; $lang['wisvinfo1'] = "¡¡Atención!! Al cambiar el modo de hash de la dirección IP de los usuarios, es necesario que el usuario se conecte de nuevo al servidor TS3 o que el usuario no pueda sincronizarse con la página de estadísticas."; -$lang['wisvsuc'] = "Cambios exitosamente guardados!"; $lang['wisvres'] = "¡Debe reiniciar el sistema de clasificación antes de que los cambios surtan efecto! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Cambios exitosamente guardados!"; $lang['witime'] = "Zona horaria"; $lang['witimedesc'] = "Seleccione la zona horaria donde está alojado el servidor.

The timezone affects the timestamp inside the log (ranksystem.log)."; $lang['wits3avat'] = "Avatar Delay"; $lang['wits3avatdesc'] = "Defina un tiempo en segundos para retrasar la descarga de los avatares de TS3 modificados.

Esta función es especialmente útil para los robots (musicales), que cambian su avatar periódicamente."; $lang['wits3dch'] = "Canal por defecto"; $lang['wits3dchdesc'] = "La identificación del canal, al que el bot debe conectarse.

El bot se unirá a este canal después de conectarse al servidor TeamSpeak."; +$lang['wits3encrypt'] = "Cifrado de consulta TS3"; +$lang['wits3encryptdesc'] = "Active esta opción para encriptar la comunicación entre el Ranksystem y el servidor TeamSpeak 3 (SSH).
Cuando esta función está desactivada, la comunicación se realizará en texto sin formato (RAW). Esto podría ser un riesgo de seguridad, especialmente cuando el servidor TS3 y el sistema de rangos se ejecutan en diferentes máquinas.

¡También esté seguro de que ha comprobado el puerto de consulta TS3, que necesita (quizás) cambiarse en Ranksystem!!

Atención: Atención El cifrado SSH necesita más tiempo de CPU y con esto realmente más recursos del sistema. Es por eso que recomendamos utilizar una conexión RAW (cifrado desactivado) si el servidor TS3 y Ranksystem se están ejecutando en la misma máquina / servidor (localhost / 127.0.0.1). Si se están ejecutando en máquinas separadas, ¡debe activar la conexión cifrada!

Requisitos:

1) TS3 Server versión 3.3.0 o superior.

2) La extensión PHP PHP-SSH2 es necesaria.
En Linux puede instalarlo con el siguiente comando:
%s
3) ¡La encriptación debe estar habilitada en su servidor TS3!
Active los siguientes parámetros dentro de su 'ts3server.ini' y personalícelo según sus necesidades:
%s Después de cambiar las configuraciones de su servidor TS3, es necesario reiniciar su servidor TS3.."; $lang['wits3host'] = "Dirección de host TS3"; $lang['wits3hostdesc'] = "Dirección del servidor TeamSpeak 3
(IP o el DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Con Query-Slowmode puede reducir \"spam\" de los comandos de consulta al servidor TeamSpeak. Esto previene prohibiciones en caso de inundación.
TeamSpeak Los comandos de consulta se retrasan con esta función.

!!!TAMBIÉN REDUCE EL USO DE LA CPU !!!

La activación no se recomienda, si no se requiere. La demora aumenta la duración del bot, lo que lo hace impreciso.

La última columna muestra el tiempo requerido para una duración (en segundos):

%s

En consecuencia, los valores (tiempos) con el ultraretraso se vuelven inexactos en unos 65 segundos. Dependiendo de, qué hacer y / o el tamaño del servidor aún más alto."; $lang['wits3qnm'] = "Nombre del Bot"; $lang['wits3qnmdesc'] = "El nombre, con esto el query-connection se establecerá.
Puede nombrarlo gratis."; $lang['wits3querpw'] = "TS3 Query-Password"; @@ -571,8 +576,8 @@ $lang['wits3querusr'] = "TS3 Query-User"; $lang['wits3querusrdesc'] = "Nombre de usuario de consulta de TeamSpeak 3
El valor predeterminado es serveradmin
Por supuesto, también puede crear una cuenta de servidor adicional solo para el sistema de clasificación.
Los permisos necesarios que encontrará en:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "Puerto de consulta TeamSpeak 3
El valor predeterminado RAW (texto sin formato) es 10011 (TCP)
El SSH predeterminado (encriptado) es 10022 (TCP)

Si no es el predeterminado, debe encontrarlo en su 'ts3server.ini'."; -$lang['wits3encrypt'] = "Cifrado de consulta TS3"; -$lang['wits3encryptdesc'] = "Active esta opción para encriptar la comunicación entre el Ranksystem y el servidor TeamSpeak 3 (SSH).
Cuando esta función está desactivada, la comunicación se realizará en texto sin formato (RAW). Esto podría ser un riesgo de seguridad, especialmente cuando el servidor TS3 y el sistema de rangos se ejecutan en diferentes máquinas.

¡También esté seguro de que ha comprobado el puerto de consulta TS3, que necesita (quizás) cambiarse en Ranksystem!!

Atención: Atención El cifrado SSH necesita más tiempo de CPU y con esto realmente más recursos del sistema. Es por eso que recomendamos utilizar una conexión RAW (cifrado desactivado) si el servidor TS3 y Ranksystem se están ejecutando en la misma máquina / servidor (localhost / 127.0.0.1). Si se están ejecutando en máquinas separadas, ¡debe activar la conexión cifrada!

Requisitos:

1) TS3 Server versión 3.3.0 o superior.

2) La extensión PHP PHP-SSH2 es necesaria.
En Linux puede instalarlo con el siguiente comando:
%s
3) ¡La encriptación debe estar habilitada en su servidor TS3!
Active los siguientes parámetros dentro de su 'ts3server.ini' y personalícelo según sus necesidades:
%s Después de cambiar las configuraciones de su servidor TS3, es necesario reiniciar su servidor TS3.."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Con Query-Slowmode puede reducir \"spam\" de los comandos de consulta al servidor TeamSpeak. Esto previene prohibiciones en caso de inundación.
TeamSpeak Los comandos de consulta se retrasan con esta función.

!!!TAMBIÉN REDUCE EL USO DE LA CPU !!!

La activación no se recomienda, si no se requiere. La demora aumenta la duración del bot, lo que lo hace impreciso.

La última columna muestra el tiempo requerido para una duración (en segundos):

%s

En consecuencia, los valores (tiempos) con el ultraretraso se vuelven inexactos en unos 65 segundos. Dependiendo de, qué hacer y / o el tamaño del servidor aún más alto."; $lang['wits3voice'] = "Puerto de voz TS3"; $lang['wits3voicedesc'] = "Puerto de voz TeamSpeak 3
El valor predeterminado es 9987 (UDP)
Este es el puerto, también lo usa para conectarse con el cliente TS3."; $lang['witsz'] = "Log-Size"; diff --git a/languages/core_fr_français_fr.php b/languages/core_fr_français_fr.php index 8f9d8da..3870f5c 100644 --- a/languages/core_fr_français_fr.php +++ b/languages/core_fr_français_fr.php @@ -1,10 +1,12 @@ Il vient d'être ajouté dans le Ranksystem."; $lang['achieve'] = "Achievement"; +$lang['adduser'] = "L'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée: %s) est inconnu -> Il vient d'être ajouté dans le Ranksystem."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; $lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; $lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "Scan des clients, certains doivent être supprimer..."; +$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 - other)."; $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 'Query-Slowmode' est désactivé !


Pour un ajustement automatique de la base de données le 'ClientCleaner' peut être utilisé:
%s"; $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."; @@ -22,14 +28,11 @@ $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 - other)."; $lang['day'] = "%s jour"; $lang['days'] = "%s jours"; $lang['dbconerr'] = "Échec de la connexion à la base de données: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token is wrong or expired (=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!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Protection contre la brutalitée: Vous avez fait trop d' $lang['error'] = "Erreur "; $lang['errorts3'] = "TS3 Error: "; $lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Veuillez choisir au moins un utilisateur !"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Veuillez saisir une heure en ligne à ajouter !"; +$lang['errselusr'] = "Veuillez choisir au moins un utilisateur !"; $lang['errukwn'] = "Une erreur inconnue s'est produite !"; $lang['factor'] = "Factor"; $lang['highest'] = "plus haut rang atteint"; @@ -51,12 +54,12 @@ $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'] = "%1\$s est nécessaire, mais semble ne pas être installé. Installez %1\$s et essayez à nouveau !"; -$lang['insterr3'] = "La fonction PHP %1\$s doit être activé, mais semble être désactivé. Veuillez activer la fonction PHP %1\$s et essayez à nouveau !"; +$lang['insterr2'] = "%1\$s est nécessaire, mais semble ne pas être installé. Installez %1\$s et essayez à nouveau !
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "La fonction PHP %1\$s doit être activé, mais semble être désactivé. Veuillez activer la fonction PHP %1\$s et essayez à nouveau !
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Votre version PHP (%s) est inférieure à 5.5.0. Mettez à jour votre version de PHP et essayez à nouveau !"; -$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['isntwicfg'] = "Impossible d'enregistrer la configuration de la base de données ! Veuillez modifier le fichier 'other/dbconfig.php' avec un chmod 740 (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['isntwichm'] = "Échec des autorisations d'écriture sur le dossier \"%s\". Veuillez modifier le dossier avec un chmod 740 (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)"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Veuillez supprimer le fichier 'install.php' de votre ser $lang['isntwiusr'] = "Utilisateur de l'interface Web créée avec succès."; $lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; $lang['isntwiusrcr'] = "Créer un utilisateur pour l'interface web"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $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"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Réinitialiser le temps d'inactivité et d'inactivité d $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['setontime2'] = "remove time"; +$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['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; $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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Attribuer des groupes de serveurs"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; $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."; @@ -288,22 +292,24 @@ $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['stri0013'] = "%s pour la traduction en russe"; +$lang['stri0014'] = "%s pour l'initialisation de la conception du design du bootstrap"; +$lang['stri0015'] = "%s pour la traduction italienne"; +$lang['stri0016'] = "%s pour l'initialisation de la traduction en arabe"; +$lang['stri0017'] = "%s pour l'initialisation de la traduction en roumain"; +$lang['stri0018'] = "%s pour l'initialisation de la traduction en néerlandais"; +$lang['stri0019'] = "%s for french translation"; +$lang['stri0020'] = "%s for portuguese translation"; +$lang['stri0021'] = "%s for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "De tous les temps"; +$lang['sttm0001'] = "Du mois"; $lang['sttw0001'] = "Top des utilisateurs"; $lang['sttw0002'] = "De la semaine"; $lang['sttw0003'] = "Avec %s %s de temps en ligne"; @@ -319,8 +325,6 @@ $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."; @@ -333,11 +337,11 @@ $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_day'] = "Day(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_min'] = "Min(s)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' parameter (webinterface -> rank), but that servergroup ID isn't existent on your TS3 server (anymore)! Please correct this or errors might happen!"; $lang['upgrp0002'] = "Download new ServerIcon"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "clients exceptés masquer"; $lang['wiadmhidedesc'] = "Pour masquer l'utilisateur excepté dans la sélection suivante"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $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.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

Exemple:
12=>2=>6000,13=>1.25=>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 1.25 pour 2500 secondes, et ainsi de suite ..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$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.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

Exemple:
12=>2=>6000,13=>1.25=>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 1.25 pour 2500 secondes, et ainsi de suite ..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $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 !"; @@ -382,15 +387,15 @@ $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é.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "Il y a une erreur dans la configuration du Ranksystem. Veuillez aller à l'interface Web et corriger les paramètres de rank (coeur)!"; $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['wiconferr'] = "Il y a une erreur dans la configuration du Ranksystem. Veuillez aller à l'interface Web et corriger les paramètres de rank (coeur)!"; $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['widbcfgsuc'] = "Configuration de la base de données enregistrée avec succès."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "Renouveler les groupes"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "Des virgules séparent une liste d'indentifiant unique $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $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

Max. value is 999.999.999 seconds (over 31 years)

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['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$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

Max. value is 999.999.999 seconds (over 31 years)

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['wigrptk'] = "cumulative"; $lang['wihladm'] = "Liste de classement (Mode-Admin)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "paramètres"; $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é."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Définissez un message, qui sera affiché sur la page / $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['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 (TeamSpeak -> Bot-Admin). 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['winav2'] = "Base de données"; $lang['winav3'] = "Coeur"; $lang['winav4'] = "Autres"; @@ -474,21 +482,21 @@ $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 (TeamSpeak -> Bot-Admin). 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 Bot-Admin dans l'interface web avant. Il n'y a aucun moyen de réinitialiser le mot de passe !"; +$lang['wirtpw1'] = "Désolé l'ami, vous avez oublié d'entrer votre Bot-Admin dans l'interface web avant. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$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 Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin introuvable sur le serveur TeamSpeak3. Vous devez être en ligne avec l'indentifiant unique, qui est enregistré en tant Bot-Admin."; $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"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "Le mot de passe de l'interface Web a été réinitialisé. $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 Bot-Admin."; -$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"; @@ -512,10 +517,10 @@ $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['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "Temps d'inactivité"; $lang['wishcolitdesc'] = "Afficher la colonne 'sum. temps d'inactivité' dans list_rankup.php"; @@ -545,24 +550,24 @@ $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['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time 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['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Modifications enregistrées avec succès !"; $lang['wisvres'] = "Vous devez redémarrer le Ranksystem avant que les modifications prennent effet! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Modifications enregistrées avec succès !"; $lang['witime'] = "Fuseau horaire"; $lang['witimedesc'] = "Sélectionnez le fuseau horaire du serveur.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; $lang['wits3host'] = "Adresse de l'hôte TS3"; $lang['wits3hostdesc'] = "Adresse du serveur TeamSpeak 3
(IP ou DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Avec le Query-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):

%s

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['wits3qnmdesc'] = "Le nom avec lequel la connexion en query sera établie.
Vous pouvez le nommer gratuitement :)."; $lang['wits3querpw'] = "Mot de passe query du TS3"; @@ -571,8 +576,8 @@ $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:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "Port query TeamSpeak 3
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

Si ce n'est pas par défaut, vous devriez le trouver dans votre 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Avec le Query-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):

%s

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['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['witsz'] = "Log-Size"; diff --git a/languages/core_hu_Hungary_hu.php b/languages/core_hu_Hungary_hu.php index 196b8f3..201cf80 100644 --- a/languages/core_hu_Hungary_hu.php +++ b/languages/core_hu_Hungary_hu.php @@ -1,80 +1,84 @@ added to the Ranksystem now."; $lang['achieve'] = "Elérni a(z)"; -$lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; -$lang['botoff'] = "Bot is stopped."; -$lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; -$lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; -$lang['brute2'] = "Successful login attempt to the webinterface 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['chkfileperm'] = "Wrong file/folder permissions!
You need to correct the owner and access permissions of the named files/folders!

The owner of all files and folders of the Ranksystem installation folder must be the user of your webserver (e.g.: www-data).
On Linux systems you may do something like this (linux shell command):
%sAlso the access permission must be set, that the user of your webserver is able to read, write and execute files.
On Linux systems you may do something like this (linux shell command):
%sList of concerned files/folders:
%s"; -$lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP not found here!
Please insert a valid PHP command inside this file!

Definition out of %s:
%s
Result of your command:%sYou can test your command before via console by adding the parameter '-v'.
Example: %sYou should get back the PHP version!"; -$lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; -$lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; -$lang['clean'] = "Scanning for clients to delete..."; -$lang['cleanc'] = "clean clients"; -$lang['cleancdesc'] = "With this function old clients gets deleted out of the Ranksystem.

To this end, the Ranksystem will be synchronized with the TeamSpeak database. Clients, which does not exist anymore on the TeamSpeak server, will be deleted out of the Ranksystem.

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


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
%s"; -$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 - other)."; -$lang['day'] = "%s day"; +$lang['adduser'] = "Felhasználó %s (unique Client-ID: %s; Client-database-ID %s) ismeretlen -> hozzáadva a Ranksystemhez."; +$lang['api'] = "API"; +$lang['apikey'] = "API Kulcs"; +$lang['asc'] = "emelkedő"; +$lang['botoff'] = "A bot jelenleg nem fut."; +$lang['boton'] = "A bot jelenleg fut..."; +$lang['brute'] = "A webinterface felületen sok helytelen bejelentkezést észleltek. Blokkolt bejelentkezés 300 másodpercre! Utolsó hozzáférés erről az IP-ről %s."; +$lang['brute1'] = "Helytelen bejelentkezési kísérlet észlelve a webes felületen. Sikertelen hozzáférési kísérlet az IP-ről %s ezzel a felhasználónévvel %s."; +$lang['brute2'] = "Sikeres bejelentkezés a webes felületre erről az IP-ről %s."; +$lang['changedbid'] = "Felhasználó %s (unique Client-ID: %s) új TeamSpeak Client-adatbázis-azonosítót kapott (%s). Frissítse a régi kliens-adatbázis-azonosítót (%s) és állítsa vissza a gyűjtött időket!"; +$lang['chkfileperm'] = "Hibás fájl / mappa engedélyek!
Javítania kell a megnevezett fájlok / mappák tulajdonosait és hozzáférési engedélyeit!

A Ranksystem telepítési mappa összes fájljának és mappájának a tulajdonosának a webszerver felhasználójának kell lennie (pl .: www-data).
Linux rendszereken megtehetsz ilyesmit (linux shell parancs):
%sBe kell állítani a hozzáférési engedélyt, hogy a webszerver felhasználója képes legyen fájlokat olvasni, írni és végrehajtani.
Linux rendszereken megtehetsz ilyesmit (linux shell parancs):
%sAz érintett fájlok / mappák felsorolása:
%s"; +$lang['chkphpcmd'] = "Helytelen PHP parancs ebben a fájlban meghatározva %s! Nem található itt PHP!
Helyezzen be egy érvényes PHP-parancsot a fájlba!

Nincs meghatározva %s:
%s
A parancs eredménye:%sA paraméter hozzáadásával a konzolon keresztül tesztelheti a parancsot '-v'.
Példa: %sVissza kell szerezned a PHP verziót!"; +$lang['chkphpmulti'] = "Úgy tűnik több PHP verziót van feltelepítve a rendszerre.

A webszervererd (ez az oldal) ezzel a verzióval fut: %s
A meghatározott parancs %s ezzel a verzióval fut: %s

Kérlek használd ugyanazt a PHP verziót mindhez!

Meg tudod határozni a verziót a Ranksystem Bot számára ebben a fájlban %s. További információk és példák találhatók benne.
A jelenlegi meghatározás ki van zárva %s:
%sMegváltoztathatja a webszerver által használt PHP verziót is. Kérjük, kérjen segítséget a világhálón.

Javasoljuk, hogy mindig használja a legújabb PHP verziót!

Ha nem tudja beállítani a PHP verziókat a rendszerkörnyezetén és az Ön céljainak megfelel, rendben. Az egyetlen támogatott módszer azonban mindössze egyetlen PHP verzió!"; +$lang['chkphpmulti2'] = "Az az út, amellyel megtalálhatja a PHP-t a webhelyén:%s"; +$lang['clean'] = "Kliensek keresése törlés céljából..."; +$lang['clean0001'] = "Törölve lett a felesleges avatár %s (hajdani unique Client-ID: %s) sikeresen."; +$lang['clean0002'] = "Hiba a felesleges avatár törlése közben %s (unique Client-ID: %s)."; +$lang['clean0003'] = "Ellenőrizze, hogy az adatbázis tisztítása megtörtént-e. Minden felesleges dolgot töröltünk."; +$lang['clean0004'] = "Ellenőrizze, hogy a felhasználók törlődtek-e. Semmi sem változott, mert a 'tiszta ügyfelek' funkció le van tiltva (webinterface - alapvető paraméterek)."; +$lang['cleanc'] = "Kliens tisztítás"; +$lang['cleancdesc'] = "Ezzel a funkcióval a régi ügyfelek törlődnek a Ranksystemből.

Ebből a célból a Ranksystem szinkronizálva lesz a TeamSpeak adatbázissal. Azokat az ügyfeleket, amelyek már nem léteznek a TeamSpeak szerveren, töröljük a Ranksystemből.

Ez a funkció csak akkor engedélyezett, ha a 'Query-Slowmode' deaktiválva van!


A TeamSpeak adatbázis automatikus beállításához a ClientCleaner használható:
%s"; +$lang['cleandel'] = "%s felhasználó törlésre került(ek) a Ranksystem adatbázisból, mert már nem léteztek a TeamSpeak adatbázisban."; +$lang['cleanno'] = "Nem volt semmi törölni való..."; +$lang['cleanp'] = "Tisztítási időszakasz"; +$lang['cleanpdesc'] = "Állítsa be azt az időtartamot, hogy a kliensek milyen időközönként legyenek átvizsgálva.

Állítsa be az időt másodpercben.

Az ajánlott naponta egyszer, mert az ügyfél tisztításához sok időre van szüksége a nagyobb adatbázisokhoz."; +$lang['cleanrs'] = "Ügyfelek a Ranksystem adatbázisban: %s"; +$lang['cleants'] = "A TeamSpeak adatbázisban található ügyfelek: %s (of %s)"; +$lang['day'] = "%s nap"; $lang['days'] = "%s nap"; -$lang['dbconerr'] = "Failed to connect to database: "; -$lang['desc'] = "descending"; -$lang['duration'] = "Duration"; -$lang['errcsrf'] = "CSRF Token is wrong or expired (= 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 mistakes. Banned for 300 Seconds!"; -$lang['error'] = "Error "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the write-out permission for the folder '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Please choose at least one user!"; -$lang['errseltime'] = "Please enter an online time to add it!"; -$lang['errukwn'] = "An unknown error has occurred!"; -$lang['factor'] = "Factor"; +$lang['dbconerr'] = "Nem sikerült csatlakozni az adatbázishoz: "; +$lang['desc'] = "csökkenő"; +$lang['descr'] = "Leírás"; +$lang['duration'] = "Tartam"; +$lang['errcsrf'] = "A CSRF token hibás vagy lejárt (= a biztonsági ellenőrzés sikertelen)! Kérjük, töltse újra a webhelyet, és próbálja újra. Ha ezt a hibát ismételten megkapja, távolítsa el a munkamenet cookie-t a böngészőből, és próbálja meg újra!"; +$lang['errgrpid'] = "A módosításokat nem tárolták az adatbázisban hibák miatt. Kérjük, javítsa ki a problémákat, és mentse el a módosításokat utána!"; +$lang['errgrplist'] = "Hiba a szervercsoportlista beolvasása során: "; +$lang['errlogin'] = "Érvénytelen felhasználónév és/vagy jelszó! Próbáld újra..."; +$lang['errlogin2'] = "Védelem: Próbáld újra %s másodperc múlva!"; +$lang['errlogin3'] = "Védelem: Túl sok próbálkozás. Bannolva lettél 300 másodpercre!"; +$lang['error'] = "Hiba "; +$lang['errorts3'] = "TS3 Hiba: "; +$lang['errperm'] = "Kérjük, ellenőrizze a mappa kiírási engedélyeit '%s'!"; +$lang['errphp'] = "%s hiányzik. A(z) %s telepítése szükséges!"; +$lang['errseltime'] = "Kérjük, adjon meg egy online időt a hozzáadáshoz!"; +$lang['errselusr'] = "Kérjük, válasszon legalább egy felhasználót!"; +$lang['errukwn'] = "Ismeretlen hiba lépett fel!"; +$lang['factor'] = "Tényező"; $lang['highest'] = "Elérte a legnagyobb rangot"; -$lang['insec'] = "in Seconds"; -$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'] = "%1\$s is needed but seems not to be installed. Install %1\$s and try it again!"; -$lang['insterr3'] = "PHP %1\$s function is needed to be enabled but seems to be disabled. Please enable the PHP %1\$s function and try it again!"; -$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!"; -$lang['isntwicfg'] = "Can't save the database configuration! Please assign full write-out permissions on 'other/dbconfig.php' (Linux: chmod 777; Windows: 'full access') and try again after."; -$lang['isntwicfg2'] = "Configure Webinterface"; -$lang['isntwichm'] = "Write-out permissions on folder \"%s\" are missing. 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 address:"; -$lang['isntwidbhostdesc'] = "The address of the server where the database is running.
(IP or DNS)

If the database server and the web server (= web space) are running on the same system, you should be able to use
localhost
or
127.0.0.1
"; -$lang['isntwidbmsg'] = "Database error: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name of the database"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "Password to access the database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "Type of the database the Ranksystem should be using.

The PDO Driver for PHP does need to be installed.
For more information and an actual list of requirements have a look to the installation page:
%s"; -$lang['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "User to access the database"; -$lang['isntwidel'] = "Please delete the file 'install.php' from your web space."; -$lang['isntwiusr'] = "User for the webinterface successfully created."; -$lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; -$lang['isntwiusrcr'] = "Create Webinterface-User"; -$lang['isntwiusrdesc'] = "Enter a username and password to access the webinterface. With the webinterface you can configure the Ranksystem."; -$lang['isntwiusrh'] = "Access - Webinterface"; +$lang['insec'] = "Másodpercben"; +$lang['install'] = "Telepítés"; +$lang['instdb'] = "Telepítse az adatbázist"; +$lang['instdbsuc'] = "Adatbázis %s sikeresen létrehozva."; +$lang['insterr1'] = "FIGYELEM: Megpróbálta telepíteni a Ranksystem rendszert, de már létezik egy adatbázis a névvel \"%s\".
A megfelelő telepítés után ez az adatbázis megszűnik!
Ügyeljen rá, hogy ezt akarja. Ha nem, válasszon egy másik adatbázisnevet."; +$lang['insterr2'] = "%1\$s szükséges, de úgy tűnik, hogy nincs telepítve. Telepítsd %1\$s és próbáld újra!
A PHP konfigurációs fájl elérési útja, ha az definiálva és aktiválva van: %3\$s"; +$lang['insterr3'] = "PHP %1\$s funkciónak engedélyezve kell lennie, de úgy tűnik, hogy nincs. Engedélyezd PHP %1\$s funkciót és próbáld újra!
A PHP konfigurációs fájl elérési útja, ha az definiálva és aktiválva van: %3\$s"; +$lang['insterr4'] = "A te PHP verziód (%s) 5.5.0 alatt van. Frissítsd a PHP-t és próbáld újra!"; +$lang['isntwicfg'] = "Nem menthető az adatbázis-konfiguráció! Kérjük, rendeljen hozzá teljes kiírási engedélyt az 'other / dbconfig.php' fájlhoz (Linux: chmod 740; Windows: 'full access'), majd próbálja újra."; +$lang['isntwicfg2'] = "A webinterfész konfigurálása"; +$lang['isntwichm'] = "A kiírási engedély erre a mappára \"%s\" hiányzik. Kérjük, adjon teljes jogokat (Linux: chmod 740; Windows: 'full access'), és próbálja újra elindítani a Ranksystem-t."; +$lang['isntwiconf'] = "Nyisd meg a %s a RankSystem konfigurálásához!"; +$lang['isntwidbhost'] = "DB cím:"; +$lang['isntwidbhostdesc'] = "A kiszolgáló címe, ahol az adatbázis fut.
(IP vagy DNS)

Ha az adatbázis-kiszolgáló és a webszerver (= webtér) ugyanazon a rendszeren fut, akkor képesnek kell lennie arra, hogy használják
localhost
vagy
127.0.0.1
"; +$lang['isntwidbmsg'] = "Adatbázis hiba: "; +$lang['isntwidbname'] = "DB Név:"; +$lang['isntwidbnamedesc'] = "Az adatbázis neve"; +$lang['isntwidbpass'] = "DB Jelszó:"; +$lang['isntwidbpassdesc'] = "Jelszó az adatbázis eléréséhez"; +$lang['isntwidbtype'] = "DB Típus:"; +$lang['isntwidbtypedesc'] = "Az adatbázis típusa, amelyet a Ranksystem-nek használnia kell.

A PHP PDO illesztőprogramját telepíteni kell.
További információt és a tényleges követelmények listáját a telepítési oldalon találja:
%s"; +$lang['isntwidbusr'] = "DB Felhasználó:"; +$lang['isntwidbusrdesc'] = "A felhasználó az adatbázis eléréséhez"; +$lang['isntwidel'] = "Kérlek töröld az 'install.php' nevű fájlt a webszerverről."; +$lang['isntwiusr'] = "A webinterfész felhasználója sikeresen létrehozva."; +$lang['isntwiusr2'] = "Gratulálunk! Befejezte a telepítési folyamatot."; +$lang['isntwiusrcr'] = "Hozzon létre webinterfész-felhasználót"; +$lang['isntwiusrd'] = "Hozzon létre bejelentkezési hitelesítő adatokat a Ranksystem webinterfész eléréséhez."; +$lang['isntwiusrdesc'] = "Írja be a felhasználónevet és a jelszót a webes felület eléréséhez. A webinterfész segítségével konfigurálhatja a Ranksystem-et."; +$lang['isntwiusrh'] = "Hozzáférés - Webinterface"; $lang['listacsg'] = "Szint"; $lang['listcldbid'] = "Kliens-Adatbázis-ID"; $lang['listexcept'] = "Nincs rangsorolva"; @@ -88,59 +92,59 @@ $lang['listsuma'] = "Össz. Aktív Idő"; $lang['listsumi'] = "Össz. Inaktív Idő"; $lang['listsumo'] = "Össz. Online Idő"; $lang['listuid'] = "Unique ID"; -$lang['login'] = "Login"; -$lang['msg0001'] = "The Ranksystem is running on version: %s"; -$lang['msg0002'] = "A list of valid bot commands can be found here [URL]https://ts-ranksystem.com/#commands[/URL]"; -$lang['msg0003'] = "You are not eligible for this command!"; -$lang['msg0004'] = "Client %s (%s) requests shutdown."; +$lang['login'] = "Belépés"; +$lang['msg0001'] = "A RankSystem ezen a verzión fut: %s"; +$lang['msg0002'] = "Az érvényes botparancsok listája itt található [URL]https://ts-ranksystem.com/#commands[/URL]"; +$lang['msg0003'] = "Ön nem jogosult erre a parancsra!"; +$lang['msg0004'] = "Kliens %s (%s) leállítást kér."; $lang['msg0005'] = "cya"; $lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) requests %s."; -$lang['msg0008'] = "Update check done. If an update is available, it will run immediately."; -$lang['msg0009'] = "Cleaning of the user-database was started."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; -$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['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 an exception (servergroup or client exception)."; -$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 his old online time.

The entered online time will be considered for the rank up and should take effect immediately."; -$lang['setontime2'] = "remove time"; -$lang['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get this value deducted from his 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['msg0007'] = "Kliens %s (%s) kér %s."; +$lang['msg0008'] = "A frissítés ellenőrzése befejeződött. Ha elérhető frissítés, akkor azonnal futni fog."; +$lang['msg0009'] = "Megkezdődött a felhasználói adatbázis tisztítása."; +$lang['msg0010'] = "Futtasa a !log parancsot további információkért."; +$lang['msg0011'] = "Tisztított a csoportok gyorsítótára. Csoportok és ikonok betöltésének indítása..."; +$lang['noentry'] = "Nincs bejegyzés.."; +$lang['pass'] = "Jelszó"; +$lang['pass2'] = "jelszóváltoztatás"; +$lang['pass3'] = "régi jelszó"; +$lang['pass4'] = "új jelszó"; +$lang['pass5'] = "Elfelejtett jelszó?"; +$lang['repeat'] = "ismét"; +$lang['resettime'] = "Nullázza a felhasználó online és tétlen idejét %s (unique Client-ID: %s; Client-database-ID %s) nullára, oka, hogy a felhasználót eltávolították egy kivételből (szervercsoport vagy kliens kivétel)."; +$lang['sccupcount'] = "%s másodperc az (%s) unique Client-ID-hez hozzá lesz adva egy pillanat alatt (nézd meg a Ranksystem naplót)."; +$lang['sccupcount2'] = "%s másodperc aktív idő hozzáadva az unique Client-ID-hez (%s); admin funkció kérésére."; +$lang['setontime'] = "idő hozzáadás"; +$lang['setontime2'] = "idő elvétel"; +$lang['setontimedesc'] = "Adjon hozzá online időt az előzőleg kiválasztott ügyfelekhez. Minden felhasználó megkapja ezt az időt a régi online idejéhez képest.

A megadott online időt a rangsorolás során figyelembe veszik, és azonnal hatályba lép."; +$lang['setontimedesc2'] = "Távolítsa el az online időt a korábban kiválasztott ügyfelekből. Minden felhasználó ezt az értéket levonja a régi online időből.

A megadott online időt a rangsorolás során figyelembe veszik, és azonnal hatályba lép."; +$lang['sgrpadd'] = "Megadott szervercsoport %s (ID: %s) %s felhasználónak (unique Client-ID: %s; Client-database-ID %s)."; +$lang['sgrprerr'] = "Érintett felhasználó: %s (unique Client-ID: %s; Client-database-ID %s) és szervercsoport %s (ID: %s)."; +$lang['sgrprm'] = "Eltávolított szervercsoport %s (ID: %s) %s -tól/től (unique Client-ID: %s; Client-database-ID %s)."; $lang['size_byte'] = "B"; +$lang['size_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; -$lang['stag0001'] = "Rang igénylés"; -$lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; -$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 separated.

Example:
23,24,28
"; -$lang['stag0004'] = "Limit concurrent groups"; -$lang['stag0005'] = "Limit the number of servergroups, which are possible to set at the same time."; +$lang['size_zib'] = "ZiB"; +$lang['stag0001'] = "Szervercsoport hozzárendelés"; +$lang['stag0001desc'] = "Az 'Szervercsoportok hozzárendelése' funkcióval lehetővé teszi a TeamSpeak felhasználó számára, hogy kiszolgálócsoportjait (önkiszolgálóként) kezelje a TeamSpeak szerveren (például játék-, ország-, nemek-csoportok).

A funkció aktiválásával egy új menüpont jelenik meg a statisztikán / oldalon. A menüpont körül a felhasználó kezelheti saját szervercsoportjait.

Ön meghatározza, mely csoportoknak legyen elérhetők.
Beállíthat egy számot is az egyidejű csoportok korlátozására."; +$lang['stag0002'] = "Engedélyezett Csoportok"; +$lang['stag0003'] = "Határozza meg a szervercsoportok listáját, amelyekhez a felhasználó hozzárendelheti magát.

A kiszolgálócsoportokat ide kell beírni, a csoportID vesszővel elválasztva.

Példa:
23,24,28
"; +$lang['stag0004'] = "Egyidejű csoportok korlátozása"; +$lang['stag0005'] = "Korlátozza a kiszolgálócsoportok számát, amelyeket egyszerre lehet beállítani."; $lang['stag0006'] = "Több Unique ID-vel vagy online egy IP címről. %skattints ide%s az ellenőrzéshez."; $lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; $lang['stag0008'] = "Sikeresen elmentetted a csoportokat. Néhány másodperc múlva megjelenik a szerveren."; -$lang['stag0009'] = "You cannot choose more than %s group(s) at the same time!"; +$lang['stag0009'] = "Nem tudsz %s rangnál többet választani!"; $lang['stag0010'] = "Kérlek válassz legalább 1 rangot!"; $lang['stag0011'] = "Maximálisan igényelhető rang: "; $lang['stag0012'] = "Véglegesítés"; -$lang['stag0013'] = "Add-on ON/OFF"; -$lang['stag0014'] = "Turn the add-on on (enabled) or off (disabled).

Are the add-on disabled the section on the statistics-page will be hidden."; +$lang['stag0013'] = "Kiegészítő BE/KI"; +$lang['stag0014'] = "Kapcsolja be (engedélyezve) vagy ki (tiltsa) a kiegészítőt.

Ha a kiegészítő le van tiltva, a statisztikai oldal szakaszát elrejti."; $lang['stag0015'] = "Nem találtunk meg a felhasználók között a szerveren. Kérlek %skattints ide%s hogy ellenőrízd magad."; $lang['stag0016'] = "Ellenőrzés szükséges!"; $lang['stag0017'] = "Ellenőrizd itt.."; @@ -152,28 +156,28 @@ $lang['stix0005'] = "Legaktívabb felhasználók"; $lang['stix0006'] = "A hónap legaktívabb felhasználói"; $lang['stix0007'] = "A hét legaktívabb felhasználói"; $lang['stix0008'] = "Szerver kihasználtság"; -$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['stix0009'] = "Az elmúlt 7 napban"; +$lang['stix0010'] = "Az elmúlt 30 napban"; +$lang['stix0011'] = "Az elmúlt 24 órában"; +$lang['stix0012'] = "válasszon időszakot"; $lang['stix0013'] = "Az utolsó 1 napban"; $lang['stix0014'] = "Az utolsó 7 napban"; $lang['stix0015'] = "Az utolsó 30 napban"; $lang['stix0016'] = "Aktív / Inaktív idő (összesítve)"; $lang['stix0017'] = "Verziószámok (összesítve)"; -$lang['stix0018'] = "Nemzetek (összesítve)"; +$lang['stix0018'] = "Országok (összesítve)"; $lang['stix0019'] = "Operációs rendszerek (összesítve)"; $lang['stix0020'] = "Szerver állapot"; $lang['stix0023'] = "Szerver státusz"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; +$lang['stix0024'] = "Elérhető"; +$lang['stix0025'] = "Nem elérhető"; $lang['stix0026'] = "Felhasználók (online / maximum)"; $lang['stix0027'] = "Szobák száma összesen"; $lang['stix0028'] = "Átlagos szerver ping"; $lang['stix0029'] = "Összes fogadott bájt"; $lang['stix0030'] = "Összes küldött bájt"; $lang['stix0031'] = "Szerver üzemidő"; -$lang['stix0032'] = "before offline:"; +$lang['stix0032'] = "offline állapotban:"; $lang['stix0033'] = "00 Nap, 00 Óra, 00 Perc, 00 Másodperc"; $lang['stix0034'] = "Átlagos csomagveszteség"; $lang['stix0035'] = "Általános információk"; @@ -192,7 +196,7 @@ $lang['stix0047'] = "Nincs aktiválva"; $lang['stix0048'] = "nincs még elég adat..."; $lang['stix0049'] = "Összesített online idő / a hónapban"; $lang['stix0050'] = "Összesített online idő / a héten"; -$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; +$lang['stix0051'] = "A TeamSpeak meghiúsult, tehát nincs létrehozási dátum..."; $lang['stix0052'] = "Egyéb"; $lang['stix0053'] = "Aktív idő (Napokban)"; $lang['stix0054'] = "Inaktív idő (Napokban)"; @@ -215,27 +219,27 @@ $lang['stmy0008'] = "Online idő az elmúlt %s napban:"; $lang['stmy0009'] = "Aktív idő az elmúlt %s napban:"; $lang['stmy0010'] = "Elért eredmények:"; $lang['stmy0011'] = "Online időd számának értékelése"; -$lang['stmy0012'] = "Online időd: Legendás"; +$lang['stmy0012'] = "Online idő: Legendás"; $lang['stmy0013'] = "Mert az online időd %s óra."; $lang['stmy0014'] = "Teljesítve"; -$lang['stmy0015'] = "Online időd: Arany"; +$lang['stmy0015'] = "Online idő: Arany"; $lang['stmy0016'] = "% Teljesítve a Legendáshoz"; -$lang['stmy0017'] = "Online időd: Ezüst"; +$lang['stmy0017'] = "Online idő: Ezüst"; $lang['stmy0018'] = "% Teljesítve az Aranyhoz"; -$lang['stmy0019'] = "Online időd: Bronz"; +$lang['stmy0019'] = "Online idő: Bronz"; $lang['stmy0020'] = "% Teljesítve az Ezüsthöz"; -$lang['stmy0021'] = "Online időd: Nincs rangsorolva"; +$lang['stmy0021'] = "Online idő: Nincs rangsorolva"; $lang['stmy0022'] = "% Teljesítve a Bronzhoz"; $lang['stmy0023'] = "Csatlakozásaid számának értékelése"; -$lang['stmy0024'] = "Csatlakozásaid: Legendás"; +$lang['stmy0024'] = "Csatlakozások: Legendás"; $lang['stmy0025'] = "Mert a csatlakozásaid száma %s."; -$lang['stmy0026'] = "Csatlakozásaid: Arany"; -$lang['stmy0027'] = "Csatlakozásaid: Ezüst"; -$lang['stmy0028'] = "Csatlakozásaid: Bronz"; -$lang['stmy0029'] = "Csatlakozásaid: Nincs rangsorolva"; +$lang['stmy0026'] = "Csatlakozások: Arany"; +$lang['stmy0027'] = "Csatlakozások: Ezüst"; +$lang['stmy0028'] = "Csatlakozások: Bronz"; +$lang['stmy0029'] = "Csatlakozások: Nincs rangsorolva"; $lang['stmy0030'] = "Állapotjelző a következő szinthez"; $lang['stmy0031'] = "Teljes aktív idő"; -$lang['stna0001'] = "Nemzetek"; +$lang['stna0001'] = "Országok"; $lang['stna0002'] = "Statisztika"; $lang['stna0003'] = "Kód"; $lang['stna0004'] = "száma"; @@ -250,7 +254,7 @@ $lang['stnv0005'] = "A frissítés csak akkor működik ha fel vagy csatlakozv $lang['stnv0006'] = "Frissítés"; $lang['stnv0016'] = "Nem elérhető"; $lang['stnv0017'] = "Nem vagy csatlakozva a TS3 Szerverre, ezért nem tudunk adatokat megjeleníteni neked."; -$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['stnv0018'] = "Csatlakozzon a TS3 szerverhez, majd frissítse a munkamenetet a jobb felső sarokban lévő kék frissítési gomb megnyomásával."; $lang['stnv0019'] = "Információ a rendszerről és az oldalról"; $lang['stnv0020'] = "Ez az oldal tartalmazza a személyes és az összes felhasználó statisztikáját a szerveren."; $lang['stnv0021'] = "Az itt található információk nem a szerver kezdete óta érvényesek, hanem az Online RankSystem üzembehelyezése óta."; @@ -259,8 +263,8 @@ $lang['stnv0023'] = "A felhasználók online heti, havi idejét 15 percenként $lang['stnv0024'] = "Ranksystem - Statisztika"; $lang['stnv0025'] = "Megjelenítés"; $lang['stnv0026'] = "összes"; -$lang['stnv0027'] = "The information 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['stnv0027'] = "A webhelyen szereplő információk elavultak lehetnek! Úgy tűnik, hogy a Ranksystem már nem kapcsolódik a TeamSpeak-hez."; +$lang['stnv0028'] = "(Nem vagy csatlakozva a TeamSpeak-re!)"; $lang['stnv0029'] = "Ranglista"; $lang['stnv0030'] = "RankSystem Információk"; $lang['stnv0031'] = "A kereső rublikában kereshetsz becenévre, uid-re és adatbázis id-re."; @@ -288,22 +292,24 @@ $lang['stri0009'] = "Hogyan jött létre a Ranksystem?"; $lang['stri0010'] = "A Ranksystem kifejlesztésre került"; $lang['stri0011'] = "Az alábbi kiegészítések közreműködésével:"; $lang['stri0012'] = "Külön köszönet nekik:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - az orosz fordításért"; -$lang['stri0014'] = "Bejamin Frost - a bootstrap design felépítéséért"; -$lang['stri0015'] = "ZanK & jacopomozzy - az olasz fordításért"; -$lang['stri0016'] = "DeStRoYzR & Jehad - az arab fordításért"; -$lang['stri0017'] = "SakaLuX - a román fordításért"; -$lang['stri0018'] = "0x0539 - a holland fordításért"; -$lang['stri0019'] = "Quentinti - a francia fordításért"; -$lang['stri0020'] = "Pasha - a portugál fordításért"; -$lang['stri0021'] = "Shad86 - segítőkézség a GitHub-on és a nyilvános szerveren, minden gondolatát megosztotta, letesztelt mindent és még sok mást"; -$lang['stri0022'] = "mightyBroccoli - az ötletelésért és az előzetes tesztelésért"; +$lang['stri0013'] = "%s az orosz fordításért"; +$lang['stri0014'] = "%s a bootstrap design felépítéséért"; +$lang['stri0015'] = "%s az olasz fordításért"; +$lang['stri0016'] = "%s az arab fordításért"; +$lang['stri0017'] = "%s a román fordításért"; +$lang['stri0018'] = "%s a holland fordításért"; +$lang['stri0019'] = "%s a francia fordításért"; +$lang['stri0020'] = "%s a portugál fordításért"; +$lang['stri0021'] = "%s segítőkézség a GitHub-on és a nyilvános szerveren, minden gondolatát megosztotta, letesztelt mindent és még sok mást"; +$lang['stri0022'] = "%s az ötletelésért és az előzetes tesztelésért"; $lang['stri0023'] = "Stabil verzió elkészülte: 18/04/2016."; -$lang['stri0024'] = "KeviN - a cseh fordításért"; -$lang['stri0025'] = "DoktorekOne - a lengyel fordításért"; -$lang['stri0026'] = "JavierlechuXD - a spanyol fordításért"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s a cseh fordításért"; +$lang['stri0025'] = "%s a lengyel fordításért"; +$lang['stri0026'] = "%s a spanyol fordításért"; +$lang['stri0027'] = "%s a magyar fordításért"; +$lang['stri0028'] = "%s azerbajdzsán fordításért"; +$lang['stta0001'] = "Összesítve"; +$lang['sttm0001'] = "A hónapban"; $lang['sttw0001'] = "Toplista"; $lang['sttw0002'] = "A héten"; $lang['sttw0003'] = "%s %s online idővel"; @@ -319,270 +325,269 @@ $lang['sttw0012'] = "Többi %s felhasználó (órában)"; $lang['sttw0013'] = "%s %s aktív idővel"; $lang['sttw0014'] = "óra"; $lang['sttw0015'] = "perc"; -$lang['sttm0001'] = "A hónapban"; -$lang['stta0001'] = "Összesítve"; $lang['stve0001'] = "\nSzia %s,\nHogy igazold magadat, kattints a következő linkre :\n[B]%s[/B]\n\nHa a link nem működik, be tudod írni manuálisan a tokent az oldalra:\n[B]%s[/B]\n\nHa nem kérted ezt az üzenetet, akkor hagyd figyelmen kívül. Ha többször megkapod ezt az üzenetet, szólj egy adminnak."; $lang['stve0002'] = "Az üzenetet elküldök a tokennel együtt a TS3 szerveren."; -$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 Client-ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; +$lang['stve0003'] = "Kérjük, írja be a tokent, amelyet a TS3 kiszolgálón kapott. Ha még nem kapott üzenetet, kérjük, ellenőrizze, hogy a helyes egyedi kliens-ID-t választotta-e."; +$lang['stve0004'] = "A beírt token nem egyezik! Próbáld újra."; $lang['stve0005'] = "Gratulálunk! A Token ellenőrzés sikeres volt, most már megnézheted a saját statisztikádat.."; -$lang['stve0006'] = "An unknown error happened. Please try it again. On repeated times contact an admin"; +$lang['stve0006'] = "Ismeretlen hiba történt. Próbáld újra. Ismételt alkalommal vegye fel a kapcsolatot egy adminisztrátorral"; $lang['stve0007'] = "Ellenőrzés TeamSpeak-en"; $lang['stve0008'] = "Válaszd ki a saját becenevedet és az egyedi azonosítódat (UID)."; $lang['stve0009'] = " -- válaszd ki magad -- "; $lang['stve0010'] = "Kapni fogsz a szerveren egy Tokent, írd ide:"; $lang['stve0011'] = "Token:"; $lang['stve0012'] = "Ellenőrzés"; +$lang['time_day'] = "Nap(ok)"; +$lang['time_hour'] = "Óra(k)"; +$lang['time_min'] = "Perc(ek)"; $lang['time_ms'] = "ms"; $lang['time_sec'] = "Másodperc(ek)"; -$lang['time_min'] = "Perc(ek)"; -$lang['time_hour'] = "Óra(k)"; -$lang['time_day'] = "Nap(ok)"; $lang['unknown'] = "unknown"; -$lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' parameter (webinterface -> rank), 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 servergroup %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['upgrp0001'] = "Ez egy szervercsoport a(z) %s ID-vel konfigurálva van a te '%s' paramétereddel (webinterface -> core -> rank), de a szervercsoport azonosítója nem létezik a TS3 kiszolgálón (már)! Javítsa ki ezt, különben hibák fordulhatnak elő!"; +$lang['upgrp0002'] = "Új ServerIcon letöltése"; +$lang['upgrp0003'] = "Hiba a ServerIcon kiírása közben."; +$lang['upgrp0004'] = "Hiba történt a TS3 ServerIcon letöltésekor a TS3 szerverről: "; +$lang['upgrp0005'] = "Hiba a ServerIcon törlése közben."; +$lang['upgrp0006'] = "A ServerIcon törölve lett a TS3 szerverről, most a RankSystemből is törölve lesz."; +$lang['upgrp0007'] = "Hiba történt a szervercsoport kiírásakor a csoportból %s, ezzel az azonosítóval %s."; +$lang['upgrp0008'] = "Hiba történt a szervercsoport ikon letöltésekor a csoportból %s ezzel az azonosítóval %s: "; +$lang['upgrp0009'] = "Hiba történt a kiszolgálócsoport ikon törlésekor a csoportból %s ezzel az azonosítóval %s."; +$lang['upgrp0010'] = "A feljegyzett szervercsoport ikonja %s ezzel az azonosítóval %s got törölve lett a TS3 szerverről, most azt is el lett távolítva a Ranksystemből."; +$lang['upgrp0011'] = "Az új szervercsoport ikon ennek %s le lett töltve ezzel az azonosítóval: %s"; +$lang['upinf'] = "A Ranksystem új verziója elérhető; Tájékoztatja az ügyfeleket a szerveren..."; $lang['upinf2'] = "A rangrendszer (%s) frissítésre került. További információért %skattints ide%s hogy megnézhesd a teljes changelogot."; -$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 information [URL]%s[/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 information [URL]%s[/URL]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't be reached on the TeamSpeak!"; -$lang['upusrinf'] = "User %s was successfully informed."; -$lang['user'] = "Username"; +$lang['upmsg'] = "\nHé! Új verziója elérhető a [B]Ranksystem[/B]-nek!\n\njelenlegi verzió: %s\n[B]új verzió: %s[/B]\n\nTovábbi információkért nézze meg weboldalunkat [URL]%s[/URL].\n\nFrissiítési folyamat elindult a háttérben. [B]Kérjük ellenőrízze a Ranksystem.log -ot![/B]"; +$lang['upmsg2'] = "\nHé, a [B]Ranksystem[/B] frissitve lett.\n\n[B]új verzió: %s[/B]\n\nTovábbi információkért nézze meg weboldalunkat: [URL]%s[/URL]."; +$lang['upusrerr'] = "Az unique Client-ID %s nem elérhető a TeamSpeak-en!"; +$lang['upusrinf'] = "%s felhasználó sikeresen tájékoztatva."; +$lang['user'] = "Felhasználónév"; $lang['verify0001'] = "Kérlek győződj meg róla, hogy valójában fel vagy-e csatlakozva a szerverre!"; $lang['verify0002'] = "Ha még nem vagy abban a szobában, akkor %skattints ide%s!"; -$lang['verify0003'] = "Ha tényleg csatlakozva vagy a szerverre, akkor kérlek írj egy adminnak.
Ehhez szükség van egy hitelesítő szobára a szerveren. Ezt követően a létrehozott csatornát meg kell határozni a Ranks rendszerhez, amelyet csak egy adminisztrátor végezhet.
További információkat, amit az admin a Ranksystem rendszerében (-> stats page) menüpontnál talál.

E tevékenység nélkül jelenleg nem lehet ellenőrizni a ranglistát! Sajnálom :("; +$lang['verify0003'] = "Ha tényleg csatlakozva vagy a szerverre, akkor kérlek írj egy adminnak.
Ehhez szükség van egy hitelesítő szobára a szerveren. Ezt követően a létrehozott csatornát meg kell határozni a Ranks rendszerhez, amelyet csak egy adminisztrátor végezhet.
További információkat, amit az admin a Ranksystem rendszerében (-> core) menüpontnál talál.

E tevékenység nélkül jelenleg nem lehet ellenőrizni a ranglistát! Sajnálom :("; $lang['verify0004'] = "Nem található felhasználó az ellenőrző szobán belül..."; $lang['wi'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; +$lang['wiaction'] = "akció"; +$lang['wiadmhide'] = "kivételezett kliensek elrejtése"; +$lang['wiadmhidedesc'] = "Kivételes felhasználó elrejtése a következő választásban"; $lang['wiadmuuid'] = "Bot-Admin"; -$lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; -$lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Give a user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Also define a factor which should be used (2x for example) and a time, how long the boost should be rated.
The higher the factor, the faster a user reaches the next higher rank.
Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a dot!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; -$lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; -$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 (excerpt):"; -$lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Activate this function to reset the online time of a user, if his TeamSpeak Client-database-ID has been changed.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. By default this happens when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; -$lang['wichpw1'] = "The old password is wrong. Please try again"; -$lang['wichpw2'] = "The new passwords mismatch. Please try again."; -$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Requested 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 write-out error for 'other/dbconfig.php'"; -$lang['widbg'] = "Log-Level"; -$lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; -$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 current 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 users are not in the servergroup that is intended for the respective online time.

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem cannot remove the old group, cause it no longer knows them ;-)"; -$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['wiexcept'] = "Exceptions"; -$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.

If a user is in an excluded channel, it will be evaluated for this period as 'excluded from the Ranksystem'. These users will 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 separated 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['wiadmuuiddesc'] = "Válassza ki a felhasználót, aki a Ranksystem rendszergazdaja.
Többféle választás is lehetséges.

Az itt felsorolt ​​felhasználók a TeamSpeak szerver felhasználói. Legyen biztos, hogy online van. Ha offline állapotban van, lépjen online, indítsa újra a Ranksystem Bot szoftvert, és töltse be újra ezt a webhelyet.


A Ranksystem rendszergazdája a következő jogosultságokkal rendelkezik:

- a webinterfész jelszavának visszaállítása.
(Megjegyzés: A rendszergazda meghatározása nélkül nem lehet visszaállítani a jelszót!)

- Bot parancsok használata a Bot-Admin privilégiumokkal
(%sitt%s található a parancsok listája.)"; +$lang['wiapidesc'] = "Az API-val lehet adatokat (amelyeket a Ranksytem gyűjtött) harmadik féltől származó alkalmazásokba továbbítani.

Az információk fogadásához API-kulccsal kell hitelesítenie magát. Ezeket a kulcsokat itt kezelheti.

Az API elérhető itt:
%s

Az API JSON karakterláncként generálja a kimenetet. Mivel az API-t önmagában dokumentálja, csak ki kell nyitnia a fenti linket és követnie kell az utasításokat."; +$lang['wiboost'] = "Boost"; +$lang['wiboost2desc'] = "Definiálhat csoportokat, például a felhasználók jutalmazására. Ezzel gyorsabban gyűjtik az időt (növelik), és így gyorsabban jutnak a következő rangsorba.

Lépések:

1) Hozzon létre egy szervercsoportot a kiszolgálón, amelyet fel kell használni a növeléshez.

2) Adja meg a lendület meghatározását ezen a webhelyen.

Servergroups: Válassza ki azt a szervercsoportot, amely indítja el a lendületet.

Boost Factor: Az a tényező, amely növeli annak a felhasználónak az online / aktív idejét, aki a csoportot birtokolta (példa kétszer). Faktorként decimális szám is lehetséges (1.5. Példa). A tizedes helyeket ponttal kell elválasztani!

Duration in Seconds: Határozza meg, mennyi ideig legyen aktív a feltöltés. Az idő lejártakor, az emlékeztető szervercsoport automatikusan eltávolításra kerül az érintett felhasználótól. Az idő akkor fut, amikor a felhasználó megkapja a szervercsoportot. Nem számít, hogy a felhasználó online vagy nem, az időtartam fogy.

3) Adjon egy vagy több felhasználót a TS-kiszolgálón a meghatározott szervercsoporthoz, hogy növeljék őket."; +$lang['wiboostdesc'] = "Adjon egy felhasználónak a TeamSpeak szerverén szervercsoportot (manuálisan kell létrehozni), amelyet itt növelő csoportnak lehet nyilvánítani. Adjon meg egy tényezőt is, amelyet használni kell (például kétszer), és egy időt, ameddig a lendületet értékelni kell.
Minél magasabb a tényező, annál gyorsabban eléri a felhasználó a következő magasabb rangot.
Az idő lejártakor, az emlékeztető szervercsoport automatikusan eltávolításra kerül az érintett felhasználótól. Az idő akkor fut, amikor a felhasználó megkapja a szervercsoportot.

Faktorként decimális szám is lehetséges. A tizedes helyeket ponttal kell elválasztani!

szervercsoport ID => tényező => idő (másodpercben)

Minden bejegyzést vesszővel kell elválasztani a következőtől.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Itt a 12 szervercsoport felhasználója megkapja a 2-es tényezőt a következő 6000 másodpercre, a 13-as kiszolgálócsoportban lévő felhasználó 1,25-es tényezőt kap 2500 másodpercre, és így tovább..."; +$lang['wiboostempty'] = "Nincs bejegyzés. Kattintson a plusz szimbólumra annak meghatározásához!"; +$lang['wibot1'] = "A Ranksystem bot leállt. Nézd meg a logot a további információkért!"; +$lang['wibot2'] = "A Ranksystem bot elindult. Nézd meg a logot a további információkért!"; +$lang['wibot3'] = "A Ranksystem bot újraindult. Nézd meg a logot több információért!"; +$lang['wibot4'] = "Ranksystem bot Indítás / Leállítás"; +$lang['wibot5'] = "Bot indítása"; +$lang['wibot6'] = "Bot leállítása"; +$lang['wibot7'] = "Bot újraindítása"; +$lang['wibot8'] = "Ranksystem log (kivonat):"; +$lang['wibot9'] = "Töltse ki az összes kötelező mezőt, mielőtt elindítja a Ranksystem botot!"; +$lang['wichdbid'] = "Kliens-adatbázis-ID visszaállítás"; +$lang['wichdbiddesc'] = "Aktiválja ezt a funkciót a felhasználó online idejének visszaállításához, ha a TeamSpeak Client-adatbázis-ID megváltozott.
A felhasználót egyedi kliens-azonosítója illeti meg.

Ha ezt a funkciót letiltja, akkor az online (vagy aktív) idő számítása a régi érték alapján történik, az új kliens-adatbázis-azonosítóval. Ebben az esetben csak a felhasználó kliens-adatbázis-azonosítója lesz cserélve.


Hogyan változik az ügyfél-adatbázis-azonosító?

A következő esetek mindegyikében az ügyfél új kliens-adatbázis-azonosítót kap a következő kapcsolódással a TS3 szerverhez.

1) automatikusan a TS3 szerver által
A TeamSpeak szerver funkciója a felhasználó X nap elteltével történő törlése az adatbázisból. Alapértelmezés szerint ez akkor fordul elő, amikor a felhasználó 30 napig offline állapotban van, és nincs állandó szervercsoportban.
Ezt a beállítást megváltoztathatja a ts3server.ini-ben:
dbclientkeepdays=30

2) TS3 biztonsági mentés visszaállítás
A TS3 szerver biztonsági mentésének visszaállításakor az adatbázis-azonosítók megváltoznak.

3) Kliens manuális törlése
A TeamSpeak klienst manuálisan vagy harmadik fél által készített szkripttel is eltávolíthatjuk a TS3 szerverről."; +$lang['wichpw1'] = "A régi jelszó helytelen. Kérlek próbáld újra"; +$lang['wichpw2'] = "Az új jelszavak nem egyeznek meg. Kérlek próbáld újra."; +$lang['wichpw3'] = "A webinterfész jelszava sikeresen megváltozott. Erről az IP-ről: %s."; +$lang['wichpw4'] = "Jelszó megváltoztatása"; +$lang['wiconferr'] = "Hiba történt a Ranksystem konfigurációjában. Kérjük, lépjen a webes felületre, és javítsa ki a Core beállításokat. Különösen ellenőrizze a 'rangsor meghatározását'!"; +$lang['widaform'] = "Dátum forma"; +$lang['widaformdesc'] = "Válassza ki a megjelenő dátumformátumot.

Példa:
%a nap, %h óra, %i perc, %s másodperc"; +$lang['widbcfgerr'] = "Hiba az adatbázis-konfigurációk mentése közben! A kapcsolat meghiúsult, vagy kiírási hiba történt a 'other / dbconfig.php' számára"; +$lang['widbcfgsuc'] = "Az adatbázis-konfigurációk sikeresen mentve."; +$lang['widbg'] = "Naplófájl-Szint"; +$lang['widbgdesc'] = "Állítsa be a Ranksystem naplózási szintjét. Ezzel eldöntheti, mennyi információt kell írni a \"ranksystem.log\" fájlba.\"

Minél magasabb a naplózási szint, annál több információt kap.

A Naplószint megváltoztatása a Ranksystem bot következő újraindításával lép hatályba.

Kérjük, ne hagyja, hogy a Ranksystem hosszabb ideig működjön a \"6 - DEBUG\" endszeren, mert ez ronthatja a fájlrendszert!"; +$lang['widelcldgrp'] = "csoportok megújítása"; +$lang['widelcldgrpdesc'] = "A Ranksystem emlékszik az adott szervercsoportokra, tehát nem kell ezt megadnia / ellenőriznie a worker.php minden egyes futtatásakor.

Ezzel a funkcióval egyszer eltávolíthatja az adott szervercsoport ismereteit. Valójában a Ranksystem megkísérel minden (az online TS3 kiszolgálón lévő) ügyfelet megadni az aktuális rangsor szervercsoportjának.
A Ranksystem minden egyes ügyfél esetében, aki elkapja a csoportot vagy csoportban marad, emlékezzen erre, mint az elején leírtuk.

Ez a funkció akkor lehet hasznos, ha a felhasználók nincsenek a kiszolgálócsoportban, amelyet az adott online időre szántak.

Figyelem: Futtassa ezt egy pillanat alatt, ahol a következő néhány percben semmilyen rangsorolás nem várható!!! A Ranksystem nem tudja eltávolítani a régi csoportot, mert már nem ismeri őket ;-)"; +$lang['widelsg'] = "távolítsa el a kiszolgálócsoportokat"; +$lang['widelsgdesc'] = "Válassza ki, hogy az ügyfelek törlésre kerüljenek-e az utolsó ismert szervercsoportból is, amikor törli az ügyfeleket a Ranksystem adatbázisból.

Csak a kiszolgálói csoportokat veszi figyelembe, amelyek a Ranksystemre vonatkoztak"; +$lang['wiexcept'] = "Kivételek"; +$lang['wiexcid'] = "szoba kivétel"; +$lang['wiexciddesc'] = "Vesszővel elválasztott azon csatorna-azonosítók listája, amelyek nem vesznek részt a Ranksystem-ben.

Maradjon felhasználóként a felsorolt ​​csatornák egyikében, az időt teljesen figyelmen kívül hagyja. Nincs online idő, de a tétlen idő számít.

Ez a funkció csak az 'online idő' üzemmódban van értelme, mert itt figyelmen kívül lehet hagyni például az AFK csatornákat. Az „aktív idő” üzemmódban ez a funkció haszontalan, mivel mint levonnák az AFK helyiségekben a tétlen időt, így egyébként nem számolnánk.
Az „aktív idő” üzemmódban ez a funkció haszontalan, mivel levonnák az AFK helyiségekben a tétlen időt, így egyébként nem számolnánk.

Ha a felhasználó egy kizárt csatornán van, akkor erre az időszakra a következőképpen értékelik: „kizárt a Ranksystemből”. Ezek a felhasználók már nem jelennek meg a 'stats / list_rankup.php' listában, hacsak nem jelennek meg ott a kizárt ügyfelek (Statisztikai oldal - kivételes kliens)."; +$lang['wiexgrp'] = "szervercsoport kivétel"; +$lang['wiexgrpdesc'] = "Vesszővel elválasztott lista a szervercsoport-azonosítókról, amelyeket a Ranksystem nem vesz figyelembe.
A szervercsoport azonosítóinak legalább egyikében a felhasználót a rangsorolás során figyelmen kívül hagyják."; +$lang['wiexres'] = "kivétel mód"; $lang['wiexres1'] = "count time (default)"; $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 is disabled (no assigning of servergroups). You can choose different options how the spended time from a user (which is excepted) should be handled.

1) count time (default): By default the Ranksystem also count the online/active time of users, which are excepted (by client/servergroup exception). With an exception only the rank up is disabled. That means if a user is not any more excepted, he would be assigned 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 current value (before the user got excepted). After the exception reason has been removed (after removing the excepted servergroup or remove the expection rule), the 'counting' of online/active time continues to run.

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 spent time due exception will be still counting till it got reset.


The channel exception doesn't matter in any case, cause the time will always be ignored (like the mode break time)."; -$lang['wiexuid'] = "client exception"; -$lang['wiexuiddesc'] = "A comma separated list of unique Client-IDs, which should not consider for the Ranksystem.
The user in this list will be ignored for the rank up."; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; +$lang['wiexresdesc'] = "Három móddal lehet kivételt kezelni. A rangsorolás minden esetben le van tiltva (nincs szervercsoport hozzárendelése). Különféle lehetőségeket választhat a felhasználói igénybe vett idő kezelésére (amely kivételt képez).

1) count time (default): Alapértelmezés szerint a Ranksystem a felhasználók online / aktív idejét is számolja, kivéve (kliens / szervercsoport kivétel). Kivételt képez, kivéve a rangot. Ez azt jelenti, hogy ha a felhasználót már nem menti kivétel, akkor a csoportba sorolják a gyűjtött idő függvényében (pl. 3. szint).

2) break time: Ezen az opción az online és az alapjárati időt befagyasztják (szünet) az aktuális értékre (mielőtt a felhasználó kivételt kapott). A kivétel okának megszüntetése után (az engedélyezett kiszolgálócsoport eltávolítása vagy a várakozási szabály eltávolítása után) az online / aktív idő 'számlálása' folytatódik.

3) reset time: Ezzel a funkcióval a számolt online és tétlen idő nullára kerül visszaállításra abban a pillanatban, amikor a felhasználót már nem kivéve (a kivételes kiszolgálócsoport eltávolítása vagy a kivétel szabályának eltávolítása miatt). A kivételtől függő időbeli kivétel továbbra is számít, amíg vissza nem állítja.


A csatorna kivétele semmilyen esetben sem számít, mert az időt mindig figyelmen kívül hagyják (mint például az üzemmód szünet ideje)."; +$lang['wiexuid'] = "kliens kivétel"; +$lang['wiexuiddesc'] = "Vesszővel elválasztott egyedi ügyfél-azonosítók listája, amelyet a Ranksystem vesz figyelembe.
A listában szereplő felhasználót a rangsorolás során figyelmen kívül hagyják."; +$lang['wigrpimp'] = "Importálási Mód"; +$lang['wigrpt1'] = "Az idő másodpercekben"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; -$lang['wigrptime'] = "rank up definition"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wihladm'] = "List Rankup (Admin-Mode)"; -$lang['wihladm0'] = "Function description (click)"; -$lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; -$lang['wihladm1'] = "Add time"; -$lang['wihladm2'] = "Remove time"; -$lang['wihladm3'] = "Reset Ranksystem"; -$lang['wihladm31'] = "reset all user stats"; +$lang['wigrptime'] = "rank fejlődési meghatározás"; +$lang['wigrptime2desc'] = "Adja meg azt az időtartamot, amely után a felhasználó automatikusan megkap egy előre meghatározott szervercsoportot.

time in seconds => servergroup ID

Max. érték 999 999 999 másodperc (31 év felett).

A megadott másodperceket „online idő” vagy „aktív idő” besorolásúnak tekintjük, a választott „idő mód” beállításától függően.


A másodpercben megadott időt kumulatív módon kell megadni!

helytelen:

100 másodperc, 100 másodperc, 50 másodperc
helyes:

100 másodperc, 200 másodperc, 250 másodperc
"; +$lang['wigrptimedesc'] = "Itt határozza meg, mely idő elteltével a felhasználónak automatikusan meg kell kapnia egy előre meghatározott szervercsoportot.

time (seconds)=>servergroup ID

Max. érték 999 999 999 másodperc (31 év felett).

A megadott másodperceket „online idő” vagy „aktív idő” besorolásúnak tekintjük, a választott „idő mód” beállításától függően.

Minden bejegyzést vesszővel kell elválasztani a következőtől.

Az időt kumulatív módon kell megadni

Példa:
60=>9,120=>10,180=>11
Ebben a példában a felhasználó 60 másodperc után megkapja a 9. szervercsoportot, további 60 másodperc után a 10. szervercsoportot, a 11. szervercsoport további 60 másodperc után."; +$lang['wigrptk'] = "halmozott"; +$lang['wihladm'] = "Ranglista (Admin-Mód)"; +$lang['wihladm0'] = "Funkció leírása (kattints ide)"; +$lang['wihladm0desc'] = "Válasszon egy vagy több alaphelyzetbe állítási lehetőséget, majd az indításhoz nyomja meg a \"visszaállítás indítása\" gombot.
Mindegyik lehetőséget önmagában írja le.

A visszaállítási feladat (ok) elindítása után megtekintheti az állapotot ezen a webhelyen.

Az alaphelyzetbe állítási feladat, mint munka elvégzésére kerül.
Szükség van a Ranksystem Bot futtatására.
NE állítsa le vagy indítsa újra a Botot, amikor a visszaállítás folyamatban van!

A visszaállítás futtatásának idején a Ranksystemben szünetel minden más dolgot. A visszaállítás befejezése után a Bot automatikusan folytatja a szokásos munkát.
Ismét NE állítsa le vagy indítsa újra a Botot!

Az összes munka elvégzése után meg kell erősítenie azokat. Ez visszaállítja a feladatok állapotát. Ez lehetővé teszi egy új visszaállítás indítását.

Visszaállítás esetén érdemes lehet a szervercsoportokat elvenni a felhasználóktól. Fontos, hogy ne változtassa meg a 'rangsor meghatározását', még mielőtt elvégezte ezt az alaphelyzetbe állítást. Az alaphelyzetbe állítás után megváltoztathatja a 'rangsor meghatározását', ez biztos!
A szervercsoportok elvétele eltarthat egy ideig. Az aktív 'Query-Slowmode' tovább növeli a szükséges időtartamot. Ajánljuk kikapcsolni a 'Query-Slowmode'-ot!!


Légy tudatában, hogy nincs lehetőség az adatok visszaállítására!"; +$lang['wihladm1'] = "Idő hozzáadása"; +$lang['wihladm2'] = "Idő elvétele"; +$lang['wihladm3'] = "Ranksystem visszaállítása"; +$lang['wihladm31'] = "összes felhasználó statisztika visszaállítása"; $lang['wihladm311'] = "zero time"; $lang['wihladm312'] = "delete users"; -$lang['wihladm31desc'] = "Choose one of the both options to reset the statistics of all users.

zero time: Resets the time (online time & idle time) of all users to a value of 0.

delete users: With this option, all users will be deleted out of the Ranksystem database. The TeamSpeak database will not be touched!


Both options affect the following things..

.. on zero time:
Reset Server statistics summary (table: stats_server)
Reset My statistics (table: stats_user)
Reset List Rankup / user statistics (table: user)
Cleans Top users / user statistic snapshots (table: user_snapshot)

.. on delete users:
Cleans donut chart nations (table: stats_nations)
Cleans donut chart platforms (table: stats_platforms)
Cleans donut chart versions (table: stats_versions)
Reset Server statistics summary (table: stats_server)
Cleans My statistics (table: stats_user)
Cleans List Rankup / user statistics (table: user)
Cleans user ip-hash values (table: user_iphash)
Cleans Top users / user statistic snapshots (table: user_snapshot)"; -$lang['wihladm32'] = "withdraw servergroups"; -$lang['wihladm32desc'] = "Activate this function to withdraw the servergroups from all TeamSpeak users.

The Ranksystem scans each group, which is defined inside the 'rank up definition'. It will remove all user, which are known by the Ranksystem, out of this groups.

That's why it is important not to change the 'rank up definition', before you have done the reset. After reset you can change the 'rank up definition', sure!


The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


The servergroup itself on the TeamSpeak server will not be removed / touched."; -$lang['wihladm33'] = "remove webspace cache"; -$lang['wihladm33desc'] = "Activate this function to remove the cached avatars and servergroup icons, which are saved on the web space.

Affected directories:
- avatars
- tsicons

After finishing the reset job, the avatars and icons are automatically downloaded again."; -$lang['wihladm34'] = "clean \"Server usage\" graph"; -$lang['wihladm34desc'] = "Activate this function to empty the server usage graph on the stats site."; -$lang['wihladm35'] = "start reset"; -$lang['wihladm36'] = "stop Bot afterwards"; -$lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all reset things are done.

This stop is exactly working like the normal 'stop' parameter. Means, the Bot will not start with the 'check' parameter.

To start the Ranksystem Bot use the 'start' or 'restart' parameter."; -$lang['wihladmrs'] = "Job Status"; +$lang['wihladm31desc'] = "Válassza a két lehetőség egyikét az összes felhasználó statisztikájának visszaállításához.

zero time: Visszaállítja az összes felhasználó idejét (online és tétlen idő) 0 értékre.

delete users: Ezzel az opcióval minden felhasználó törlődik a Ranksystem adatbázisból. A TeamSpeak adatbázist nem érinti!


Mindkét lehetőség a következőkre vonatkozik..

.. zero idő esetén:
Alaphelyzetbe állítja a szerver statisztikai összefoglalását (táblázat: stats_server)
Visszaállítja a saját statisztikákat (táblázat: stats_user)
Lista rangsorolása / felhasználói statisztikák visszaállítása (táblázat: felhasználó)
Tisztítja a legnépszerűbb felhasználók / felhasználói statisztikai pillanatképeket (táblázat: user_snapshot)

.. delete users esetén:
Tisztítja az országok diagramot (táblázat: stats_nations)
Tisztítja diagram platformot (táblázat: stats_platforms)
Tisztítja a verziók diagramot (táblázat: stats_versions)
Alaphelyzetbe állítja a szerver statisztikai összefoglalóját (táblázat: stats_server)
Tisztítja a Saját statisztikáimat (táblázat: stats_user)
Tisztítja a lista rangsorolását / felhasználói statisztikákat (táblázat: user)
Tisztítja a felhasználó ip-hash értékeit (táblázat: user_iphash)
Tisztítja a legnépszerűbb felhasználók / felhasználói statisztikai pillanatképeket (táblázat: user_snapshot)"; +$lang['wihladm32'] = "szervercsoportok visszavonása"; +$lang['wihladm32desc'] = "Aktiválja ezt a funkciót a szervercsoportok elvételéhez az összes TeamSpeak felhasználótól.

A Ranksystem beolvassa az egyes csoportokat, amelyeket a 'rangsor meghatározása' belül definiálnak. Eltávolítja az összes felhasználót, akit a Ranksystem ismert, ebből a csoportból.

Ezért fontos, hogy ne változtassa meg a 'rangsor meghatározását' még mielőtt elvégezte az újraindítást. Az alaphelyzetbe állítás után megváltoztathatja a 'rangsor meghatározását', ez biztos!


A szervercsoportok elvétele eltarthat egy ideig. Az aktív 'Query-Slowmode' tovább növeli a szükséges időtartamot. Ajánljuk kikapcsolni a 'Query-Slowmode'-ot!!


Maga a szervercsoport a TeamSpeak kiszolgálón nem nem lesz eltávolítva / érintve."; +$lang['wihladm33'] = "távolítsa el a webspace gyorsítótárat"; +$lang['wihladm33desc'] = "Aktiválja ezt a funkciót a gyorsítótárazott avatarok és a szervercsoportok ikonjainak eltávolításához, amelyeket a webhelyre mentettek.

Érintett könyvtárak:
- avatars
- tsicons

A visszaállítási munka befejezése után az avatarok és az ikonok automatikusan letöltésre kerülnek."; +$lang['wihladm34'] = "tisztítsa a \"Szerverhasználat\" grafikont"; +$lang['wihladm34desc'] = "Aktiválja ezt a funkciót, hogy kiürítse a szerver használati grafikonját a statisztikai oldalon."; +$lang['wihladm35'] = "visszaállítás indítása"; +$lang['wihladm36'] = "állítsa le a Botot a visszaállítás után"; +$lang['wihladm36desc'] = "Ha ezt az opciót aktiválta, a Bot leáll, miután az összes visszaállítási művelet megtörtént.

Ez a leállítás pontosan úgy működik, mint a normál 'leállítás' paraméter. Ez azt jelenti, hogy a Bot nem nem indul el az 'ellenőrző' paraméterrel.

A Ranksystem Bot elindításához használja az 'indítás' vagy 'újraindítás' funkciót."; +$lang['wihladmrs'] = "Munkafolyamat státusz"; $lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs2'] = "in progress.."; -$lang['wihladmrs3'] = "faulted (ended with errors!)"; -$lang['wihladmrs4'] = "finished"; -$lang['wihladmrs5'] = "Reset Job(s) successfully created."; -$lang['wihladmrs6'] = "There is still a reset job active. Please wait until all jobs are finished before you start the next!"; -$lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; -$lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihlset'] = "settings"; -$lang['wiignidle'] = "Ignore idle"; -$lang['wiignidledesc'] = "Define a period, up to which the idle time of a user will be ignored.

If a client does nothing on the server (=idle), this time can be determined by the Ranksystem. With this function the idle time of a user up to the defined limit is not evaluated as idle time, rather it counts as active time. Only when the defined limit is exceeded, it counts from that point on for the Ranksystem as idle time.

This function does matter only in conjunction with the mode 'active time'.

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

0 Sec. = disables this function

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

Example:
/var/logs/Ranksystem/

Be sure, the Webuser (= user of the web space) has the write-out permissions to the log file."; -$lang['wilogout'] = "Logout"; -$lang['wimsgmsg'] = "Messages"; -$lang['wimsgmsgdesc'] = "Define a message, which will be sent to a user, when he raises the next higher rank.

This message will be sent via TS3 private message. Every known bb-code could be used, which is also working for a normal private message.
%s

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 change 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 a user with a private text message about his ranking up."; +$lang['wihladmrs1'] = "elkészült"; +$lang['wihladmrs10'] = "Munkafolyamat(ok) sikeresen megerősítve!"; +$lang['wihladmrs11'] = "A rendszer visszaállításának becsült ideje"; +$lang['wihladmrs12'] = "Biztos benne, hogy továbbra is vissza szeretné állítani a rendszert?"; +$lang['wihladmrs13'] = "Igen, indítsa el az alaphelyzetbe állítást"; +$lang['wihladmrs14'] = "Nem, törölje a visszaállítást"; +$lang['wihladmrs15'] = "Kérjük, válasszon legalább egy lehetőséget!"; +$lang['wihladmrs16'] = "engedélyezve"; +$lang['wihladmrs2'] = "folyamatban.."; +$lang['wihladmrs3'] = "hibás (hibával véget ért!)"; +$lang['wihladmrs4'] = "befejezve"; +$lang['wihladmrs5'] = "Munkafolyamat(ok) visszaállítása elkészült."; +$lang['wihladmrs6'] = "Még mindig aktív a visszaállítás. A következő megkezdése előtt várjon, amíg az összes munka befejeződik!"; +$lang['wihladmrs7'] = "Nyomd meg a %s Frissítés %s az állapot figyeléséhez."; +$lang['wihladmrs8'] = "NE állítsa le vagy indítsa újra a Botot, amikor a visszaállítás folyamatban van!"; +$lang['wihladmrs9'] = "Kérlek %s fogadd el %s a feladatokat. Ez visszaállítja a státuszát az összes feladatnak. Új visszaállítás indításához szükséges."; +$lang['wihlset'] = "beállítások"; +$lang['wiignidle'] = "tétlenség figyelmen kívűl hagyása"; +$lang['wiignidledesc'] = "Adjon meg egy periódust, amelyig a felhasználó tétlen idejét nem veszik figyelembe.

Ha az ügyfél nem tesz semmit a szerveren (= tétlen), ezt az időt a Ranksystem határozhatja meg. Ezzel a funkcióval a felhasználó tétlen idejét a meghatározott határértékig nem értékeli tétlen időként, hanem aktív időként számolja. Csak akkor, ha a meghatározott határértéket túllépik, attól a ponttól kezdve a Ranksystem számít üresjáratnak.

Ez a funkció csak az „aktív idő” móddal együtt számít.

A funkció jelentése pl. a beszélgetések hallgatásának ideje, mint tevékenység értékelése.

0 másodperc = letiltja ezt a funkciót

Példa:
tétlenség figyelmen kívűl hagyása = 600 (másodperc)
Egy kliens több, mint 8 perce tétlen.
└ A 8 perces alapjáratot nem veszik figyelembe, ezért a felhasználó ezt az időt kapja aktív időként. Ha az alapjárati idő 12 percre nőtt, akkor az idő meghaladja a 10 percet, és ebben az esetben a 2 percet alapjáratnak számítják, az első 10 perc továbbra is aktív idő."; +$lang['wilog'] = "Naplófájl-Mappa"; +$lang['wilogdesc'] = "A Ranksystem naplófájljának elérési útja.

Példa:
/var/logs/Ranksystem/

Ügyeljen arra, hogy a Webuser (= a webtér felhasználói) rendelkezik a naplófájl kiírási engedélyeivel."; +$lang['wilogout'] = "Kijelentkezés"; +$lang['wimsgmsg'] = "Üzenetek"; +$lang['wimsgmsgdesc'] = "Adjon meg egy üzenetet, amelyet elküld a felhasználónak, amikor a következő magasabb rangot emeli.

Ezt az üzenetet TS3 privát üzenettel küldjük el. Minden ismert bb-kód használható, amely szintén működik egy normál privát üzenetnél.
%s

Ezenkívül a korábban eltöltött idő ezekkel érvekkel fejezhető ki:
%1\$s - nap
%2\$s - óra
%3\$s - perc
%4\$s - másodperc
%5\$s - az elért szervercsoport neve
%6$s - a felhasználó (címzett) neve

Példa:
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'] = "Szerver-Hírek"; +$lang['wimsgsndesc'] = "Adjon meg egy üzenetet, amely a / stats / oldalon jelenik meg szerverhírekként.

Az alapértelmezett html funkciókkal módosíthatja az elrendezést

Példa:
<b> - félkövér
<u> - aláhúzott
<i> - dőlt betű
<br> - új sor"; +$lang['wimsgusr'] = "Rangsorolás értesítés"; +$lang['wimsgusrdesc'] = "Tájékoztatja a felhasználót egy privát szöveges üzenettel a rangsorolásáról."; $lang['winav1'] = "TeamSpeak"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Other"; -$lang['winav5'] = "Messages"; -$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 make sure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; -$lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; -$lang['winav12'] = "Add-ons"; -$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 text message.

As answer the user will receive a defined text message with the needed time for the next higher rank.

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['winav10'] = "Kérjük, csak a %s HTTPS%s -en használja a webes felületet. A titkosítás elengedhetetlen az adatvédelem és biztonság érdekében.%sA HTTPS használatához a webszervernek támogatnia kell az SSL kapcsolatot."; +$lang['winav11'] = "Kérjük, definiáljon egy Bot-Rendszergazdát, aki a Ranksystem adminisztrátora legyen (TeamSpeak -> Bot-Admin). Ez nagyon fontos abban az esetben, ha elvesztette a webes felület bejelentkezési adatait."; +$lang['winav12'] = "Kiegészítők"; +$lang['winav2'] = "Adatbázis"; +$lang['winav3'] = "Alapvető paraméterek"; +$lang['winav4'] = "Egyéb"; +$lang['winav5'] = "Üzenetek"; +$lang['winav6'] = "Statisztika"; +$lang['winav7'] = "Igazgatás"; +$lang['winav8'] = "Indítás / Leállítás"; +$lang['winav9'] = "Frissítés elérhető!"; +$lang['winxinfo'] = "Parancs \"!nextup\""; +$lang['winxinfodesc'] = "Lehetővé teszi a TS3 kiszolgálón lévő felhasználó számára, hogy privát szöveges üzenetként a \"!nextup\" parancsot írja a Ranksystem (query) botba.

Válaszként a felhasználó megkap egy meghatározott szöveges üzenetet a következő magasabb rangsorhoz szükséges idővel.

disabled - A funkció inaktiválva van. A '!nextup' parancs figyelmen kívül marad.
allowed - only next rank - Megtudhatod a következő csoporthoz szükséges időt.
allowed - all next ranks - Megtudhatod az összes magasabb ranghoz szükséges időt."; $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 receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 receive 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 define a Bot-Admin inside the webinterface before. There is no way to reset the password!"; -$lang['wirtpw2'] = "Bot-Admin not found on TS3 server. You need to be online with the unique Client-ID, which is saved as Bot-Admin."; -$lang['wirtpw3'] = "Your IP address does not match with the IP address of the admin on the TS3 server. Be sure you are online with the same IP address 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 sent a TeamSpeak3 private text message to the admin with a 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 Bot-Admin."; -$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'] = "current servergroup"; -$lang['wishcolasdesc'] = "Show column 'current 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'] = "current group since"; -$lang['wishcolgsdesc'] = "Show column 'current group since' in list_rankup.php"; +$lang['winxmsg1'] = "Üzenet"; +$lang['winxmsg2'] = "Üzenet (legnagyobb rang)"; +$lang['winxmsg3'] = "Üzenet (kivételnél)"; +$lang['winxmsgdesc1'] = "Adjon meg egy üzenetet, amelyet a felhasználó válaszként kap a \"!nextup\" paranccsal.

Érvek:
%1$s - nap a következő ranghoz
%2$s - óra a következő ranghoz
%3$s - perc a következő ranghoz
%4$s - másodperc a következő ranghoz
%5$s - következő szervercsoport neve
%6$s - a felhasználó neve (befogadó)
%7$s - jelenlegi felhasználói rang
%8$s - jelenlegi szervercsoport neve
%9$s - jelenlegi szervercsoport azóta


Példa:
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['winxmsgdesc2'] = "Adjon meg egy üzenetet, amelyet a felhasználó válaszként kap a \"!nextup\" paranccsal, amikor a felhasználó már elérte a legmagasabb rangot.

Érvek:
%1$s - nap a következő ranghoz
%2$s - óra a következő ranghoz
%3$s - perc a következő ranghoz
%4$s - másodperc a következő ranghoz
%5$s - következő szervercsoport neve
%6$s - a felhasználó neve (befogadó)
%7$s - jelenlegi felhasználói rang
%8$s - jelenlegi szervercsoport neve
%9$s - jelenlegi szervercsoport azóta


Példa:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds.
"; +$lang['winxmsgdesc3'] = "Adjon meg egy üzenetet, amelyet a felhasználó válaszként kap a \"!nextup\" paranccsal, amikor a felhasználót kivonják a Ranksystemből.

Arguments:
%1$s - nap a következő ranghoz
%2$s - óra a következő ranghoz
%3$s - perc a következő ranghoz
%4$s - másodperc a következő ranghoz
%5$s - következő szervercsoport neve
%6$s - a felhasználó neve (befogadó)
%7$s - jelenlegi felhasználói rang
%8$s - jelenlegi szervercsoport neve
%9$s - jelenlegi szervercsoport azóta


Példa:
You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.
"; +$lang['wirtpw1'] = "Sajnálom, elfelejtették megadni a Bot-Admin meghatározását a webinterfészen belül. Az alaphelyzetbe állítás egyetlen módja az adatbázis frissítése! A teendők leírása itt található:
%s"; +$lang['wirtpw10'] = "Elérhetőnek kell legyél a TeamSpeak 3 szerveren."; +$lang['wirtpw11'] = "Elérhetőnek kell legyél azzal az unique Client-ID-vel, amit a Bot-Admin-ként elmentettél.."; +$lang['wirtpw12'] = "Elérhetőnek kell legyél ugyanazzal az IP címmel a TeamSpeak 3 szerveren, amivel itt vagy az oldalon (Ugyanazzal az IPv4 / IPv6-os protokollal)."; +$lang['wirtpw2'] = "A Bot-Admin nem található a TS3 szerveren. Onlinenak kell lennie az egyedi Client ID-vel, amelyet Bot-Adminként menti el."; +$lang['wirtpw3'] = "Az Ön IP-címe nem egyezik a TS3 kiszolgálón lévő adminisztrátor IP-címével. Ügyeljen arra, hogy ugyanazzal az IP-címmel jelentkezzen a TS3 kiszolgálón, és ezen az oldalon is (ugyanazon IPv4 / IPv6 protokollra is szükség van)."; +$lang['wirtpw4'] = "\nA jelszó sikeresen vissza lett állítva a webinterfacehez.\nFelhasználónév: %s\nJelszó: [B]%s[/B]\n\nBelépés %sitt%s"; +$lang['wirtpw5'] = "Az új jelszavad el lett küldve TeamSpeak 3 privát üzenetben. Kattints %s ide %s a belépéshez."; +$lang['wirtpw6'] = "A webinterfész jelszava sikeresen vissza lett állítva. Erről az IP-ről: %s."; +$lang['wirtpw7'] = "Jelszó visszaállítása"; +$lang['wirtpw8'] = "Itt tudod visszaállítani a jelszavadat a webinterface-hez."; +$lang['wirtpw9'] = "A jelszó visszaállításához a következőkre van szükség:"; +$lang['wiselcld'] = "kliens kiválasztása"; +$lang['wiselclddesc'] = "Válassza ki az ügyfeleket az utoljára ismert felhasználónév, egyedi ügyfél-azonosító vagy ügyfél-adatbázis-azonosító alapján.
Több választás is lehetséges."; +$lang['wishcolas'] = "jelenlegi szervercsoport"; +$lang['wishcolasdesc'] = "Az 'aktuális szervercsoport' oszlop megjelenítése a list_rankup.php"; +$lang['wishcolat'] = "aktív idő"; +$lang['wishcolatdesc'] = "Mutassa az „aktív idő összege” oszlopot a list_rankup.php"; +$lang['wishcolcld'] = "Kliens-Név"; +$lang['wishcolclddesc'] = "A 'kliensnév' oszlop megjelenítése a list_rankup.php"; +$lang['wishcoldbid'] = "adatbázis-ID"; +$lang['wishcoldbiddesc'] = "Mutassa az 'Ügyfél-adatbázis-azonosító' oszlopot a list_rankup.php"; +$lang['wishcolgs'] = "jelenlegi csoport (mióta)"; +$lang['wishcolgsdesc'] = "Mutassa az 'aktuális csoport (mióta)' oszlopot a list_rankup.php"; +$lang['wishcolha'] = "hash IP címek"; $lang['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified 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['wishcolhadesc'] = "A TeamSpeak 3 szerver tárolja az egyes ügyfelek IP-címét. Erre szükségünk van a Ranksystem számára, hogy a statisztikai oldal webhelyének használóját a kapcsolódó TeamSpeak felhasználóval kösse.

Ezzel a funkcióval aktiválhatja a TeamSpeak felhasználók IP-címeinek titkosítását / kivonását. Ha engedélyezve van, csak a kivonatolt érték kerül az adatbázisba, ahelyett, hogy egyszerű szövegben tárolná. Erre bizonyos esetekben szükség van az adatvédelmi törvényekre; különösen az EU-GDPR miatt szükséges.

fast hashing (alapértelmezett): Az IP-címek kivágásra kerülnek. A só az egyes rangsorrendszer-példányoknál eltérő, de a kiszolgálón lévő összes felhasználó esetében azonos. Ez gyorsabbá, ugyanakkor gyengébbé teszi a 'biztonságos kivonást' is.

secure hashing: Az IP-címek kivágásra kerülnek. Minden felhasználó megkapja a saját sóját, ami megnehezíti az IP visszafejtését (= biztonságos). Ez a paraméter megfelel az EU-GDPR-nek. Kontra: Ez a variáció befolyásolja a teljesítményt, különösen a nagyobb TeamSpeak szervereknél, ez nagyon lelassítja a statisztikai oldalt az első webhely betöltésekor. Emellett feltárja a szükséges erőforrásokat.

disable hashing: Ha ezt a funkciót letiltja, a felhasználó IP-címét egyszerű szövegben tárolja. Ez a leggyorsabb lehetőség, amely a legkevesebb erőforrást igényli.


Minden változatban a felhasználók IP-címét csak addig tároljuk, amíg a felhasználó csatlakozik a TS3 szerverhez (kevesebb adatgyűjtés - EU-GDPR).

A felhasználók IP-címét csak akkor tárolják, amikor a felhasználó csatlakozik a TS3 szerverhez. Ennek a funkciónak a megváltoztatásakor a felhasználónak újból csatlakoznia kell a TS3 szerverhez, hogy ellenőrizhesse a Ranksystem weboldalt."; +$lang['wishcolit'] = "tétlen idő"; +$lang['wishcolitdesc'] = "Mutassa az 'összeg alapjárati idő' oszlopot a list_rankup.php"; +$lang['wishcolls'] = "utoljára látva"; +$lang['wishcollsdesc'] = "Az 'utoljára látott' oszlop megjelenítése a list_rankup.php"; +$lang['wishcolnx'] = "következő ranglépés"; +$lang['wishcolnxdesc'] = "Mutassa a 'következő rangsor fel' oszlopot a list_rankup.php"; +$lang['wishcolot'] = "online idő"; +$lang['wishcolotdesc'] = "Mutassa az „online online idő összege” oszlopot a 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['wishdef'] = "default column sort"; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; -$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 consider 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['wishmax'] = "show max. Clients"; -$lang['wishmaxdesc'] = "Show the max. Clients as line inside the server usage graph on 'stats/' page."; -$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['wishsort'] = "default sorting order"; -$lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; -$lang['wisupidle'] = "time Mode"; -$lang['wisupidledesc'] = "There are two modes, how the time of a user will be rated.

1) online time: Servergroups will be given by online time. In this case the active and the inactive time will be rated.
(see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: Servergroups will be given by active time. In this case the inactive time will not be rated. The online time will be taken and reduced by the inactive time (=idle) to build the active time.
(see column 'sum. active time' in the 'stats/list_rankup.php')


A change of the 'time mode', also on longer running Ranksystem instances, should be no problem since the Ranksystem repairs wrong servergroups on a client."; -$lang['wisvconf'] = "save"; -$lang['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Changes successfully saved!"; -$lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; -$lang['witime'] = "Timezone"; -$lang['witimedesc'] = "Select the timezone the server is hosted.

The timezone affects the timestamp inside the log (ranksystem.log)."; -$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'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "With the Query-Slowmode, you can reduce the spam of query commands to the TeamSpeak server. This prevents bans in case of flooding.
TeamSpeak Query commands get delayed with this function.

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

The activation is not recommended, if it isn't required. The delay slows the speed of the bot, which makes it inaccurate.

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

%s

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['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
Recommended is to create an additional serverquery account only for the Ranksystem.
The needed permissions you will find on:
%s"; +$lang['wishcolrgdesc'] = "Mutassa a 'rang' oszlopot a list_rankup.php"; +$lang['wishcolsg'] = "következő szervercsoport"; +$lang['wishcolsgdesc'] = "Mutassa a 'következő szervercsoport' oszlopot a list_rankup.php"; +$lang['wishcoluuid'] = "Kliens-ID"; +$lang['wishcoluuiddesc'] = "Mutassa az „egyedi kliens-azonosító” oszlopot a list_rankup.php"; +$lang['wishdef'] = "alapértelmezett oszloprendezés"; +$lang['wishdefdesc'] = "Adja meg az alapértelmezett rendezési oszlopot a Lista rangsorolása oldalhoz."; +$lang['wishexcld'] = "kivételezett kliens"; +$lang['wishexclddesc'] = "Az ügyfelek megjelenítése a list_rankup.php fájlban,
amelyek kizártak, és ezért nem vesznek részt a rangrendszerben."; +$lang['wishexgrp'] = "kivett csoportok"; +$lang['wishexgrpdesc'] = "Mutassa a list_rankup.php ügyfeleit, amelyek szerepelnek az „ügyfél kivétel” listában, és amelyeket nem szabad figyelembe venni a Ranksystemnél."; +$lang['wishhicld'] = "Legnagyobb szintű kliensek"; +$lang['wishhiclddesc'] = "Az ügyfelek megjelenítése a list_rankup.php, amely elérte a Ranksystem legmagasabb szintjét."; +$lang['wishmax'] = "Öszzes kliens mutatása"; +$lang['wishmaxdesc'] = "Mutassa meg az összes klienst, sorként a szerverhasználati grafikonon belül a 'statisztika /' oldalon."; +$lang['wishnav'] = "webhely-navigáció mutatása"; +$lang['wishnavdesc'] = "Mutassa meg a weblap navigációját a 'statisztika /' oldalon.

Ha ezt a lehetőséget deaktiválja a statisztikai oldalon, akkor a webhely navigációja rejtve marad.
Ezután elfoglalhatja az egyes webhelyeket, pl. 'stats / list_rankup.php', és ágyazza be ezt keretként a meglévő webhelyére vagy a hirdetőtáblába."; +$lang['wishsort'] = "alapértelmezett rendezési sorrend"; +$lang['wishsortdesc'] = "Adja meg az alapértelmezett rendezési sorrendet a Lista rangsorolása oldalhoz."; +$lang['wistcodesc'] = "Adja meg a szükséges kiszolgáló-összeköttetések számát az eredmény eléréséhez."; +$lang['wisttidesc'] = "Adja meg az eléréshez szükséges időt (órákban)."; +$lang['wisupidle'] = "idő mód"; +$lang['wisupidledesc'] = "Kétféle mód van, hogyan lehet a felhasználó idejét értékelni.

1) online idő: A szervercsoportokat online idő adja meg. Ebben az esetben az aktív és inaktív időt értékezzük.
(lásd az „összes online idő” oszlopot a „stats / list_rankup.php” részben)

2) aktív idő: A szervercsoportokat aktív idő adja meg. Ebben az esetben az inaktív idő nem lesz besorolva. Az online időt az inaktív idő (= alapjárat) csökkenti és csökkenti az aktív idő felépítéséhez.
(lásd az „összes aktív idő” oszlopot a „stats / list_rankup.php” részben)


Az „időmód” megváltoztatása, a hosszabb futású Ranksystem példányoknál is nem jelent problémát, mivel a Ranksystem helytelen szervercsoportokat javít az ügyfélen."; +$lang['wisvconf'] = "mentés"; +$lang['wisvinfo1'] = "Figyelem!! A felhasználó IP-címének kivágásának módjának megváltoztatásával szükséges, hogy a felhasználó újonnan csatlakozzon a TS3 szerverhez, különben a felhasználó nem szinkronizálható a statisztika oldallal."; +$lang['wisvres'] = "A változások hatályba lépése előtt újra kell indítania a Ranksystem rendszert! %s"; +$lang['wisvsuc'] = "A változások sikeresen mentve!"; +$lang['witime'] = "Időzóna"; +$lang['witimedesc'] = "Válassza ki a kiszolgáló hosztolt időzónáját.

Az időzóna befolyásolja a naplóban található időbélyeget (ranksystem.log)."; +$lang['wits3avat'] = "Avatár Késleltetés"; +$lang['wits3avatdesc'] = "Adjon meg időt másodpercben a megváltozott TS3 avatarok letöltésének késleltetésére.

Ez a funkció különösen akkor hasznos (zenei) robotoknál, amelyek periodikusan megváltoztatják az avatárját."; +$lang['wits3dch'] = "Alapértelmezett Szoba"; +$lang['wits3dchdesc'] = "A szoba-ID, a botnak kapcsolódnia kell.

A bot csatlakozik erre a csatornára, miután csatlakozik a TeamSpeak szerverhez."; +$lang['wits3encrypt'] = "TS3 Query titkosítás"; +$lang['wits3encryptdesc'] = "Aktiválja ezt a beállítást a Ranksystem és a TeamSpeak 3 szerver (SSH) közötti kommunikáció titkosításához.
Ha ez a funkció le van tiltva, a kommunikáció egyszerű szövegben (RAW) zajlik. Ez biztonsági kockázatot jelenthet, különösen akkor, ha a TS3 szerver és a Ranksystem különböző gépeken fut.

Legyen is biztos, ellenőrizte a TS3 lekérdezési portot, amelyet (esetleg) meg kell változtatni a Ranksystem-ben!

Figyelem: Az SSH titkosítás több CPU-időt igényel és ezzel valóban több rendszer erőforrást igényel. Ezért javasoljuk RAW-kapcsolat használatát (letiltott titkosítás), ha a TS3 szerver és a Ranksystem ugyanazon a gazdagépen / kiszolgálón fut (localhost / 127.0.0.1). Ha különálló gazdagépeken futnak, akkor aktiválnia kell a titkosított kapcsolatot!

Követelmények:

1) TS3 Szerver verzió 3.3.0 vagy ez felett.

2) A PHP-PHP-SSH2 kiterjesztésre van szükség.
Linuxon telepíthető a következő paranccsal:
%s
3) A titkosítást engedélyezni kell a TS3 szerveren!
Aktiválja a következő paramétereket a 'ts3server.ini' webhelyen, és testreszabhatja az igényeinek megfelelően:
%s A TS3 szerver konfigurációjának megváltoztatása után a TS3 szerver újraindításához szükséges."; +$lang['wits3host'] = "TS3 Kiszolgálónév"; +$lang['wits3hostdesc'] = "TeamSpeak 3 szerver címe
(IP vagy DNS)"; +$lang['wits3qnm'] = "Bot név"; +$lang['wits3qnmdesc'] = "A név, ezzel létrehozva a query-kapcsolatot.
Megnevezheti szabadon."; +$lang['wits3querpw'] = "TS3 Query-Jelszó"; +$lang['wits3querpwdesc'] = "TeamSpeak 3 query jelszó
Jelszó a query felhasználóhoz."; +$lang['wits3querusr'] = "TS3 Query-Felhasználó"; +$lang['wits3querusrdesc'] = "TeamSpeak 3 query felhasználó
Alapértelmezett: serveradmin
Javasolt, hogy kizárólag a Ranksystem számára hozzon létre további kiszolgálólekérdezési fiókot.
A szükséges engedélyeket megtalálja itt:
%s"; $lang['wits3query'] = "TS3 Query-Port"; -$lang['wits3querydesc'] = "TeamSpeak 3 query port
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

If its not default, you should find it in your 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same host / server (localhost / 127.0.0.1). If they are running on separate hosts, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3querydesc'] = "TeamSpeak 3 query port
Az alapértelmezett RAW (egyszerű szöveg) 10011 (TCP)
Az SSH alapértelmezett értéke (titkosítva) 10022 (TCP)

Ha nem az alapértelmezett, akkor azt a 'ts3server.ini' mappában kell megtalálnia."; +$lang['wits3sm'] = "Query-Lassú mód"; +$lang['wits3smdesc'] = "A Query-Slowmode segítségével csökkentheti a lekérdezési parancsok spamjeit a TeamSpeak szerverre. Ez megakadályozza a tiltásokat spam esetén.
A TeamSpeak Query parancsok késleltetik ezt a funkciót.

!!! EZ CSÖKKENTI A CPU HASZNÁLATÁT !!!

Az aktiválás nem ajánlott, ha erre nincs szükség. A késleltetés lelassítja a robot sebességét, ami pontatlanná teszi.

Az utolsó oszlop mutatja az egy fordulóhoz szükséges időt (másodpercben):

%s

Következésképpen az ultra késleltetésnél megadott értékek (idők) kb. 65 másodperc alatt pontatlanná válnak! Attól függően, hogy mit kell tennie, és / vagy a szerver mérete még nagyobb!"; $lang['wits3voice'] = "TS3 Voice-Port"; -$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
Default is 9987 (UDP)
This is the port, you use also to connect with the TS3 Client."; -$lang['witsz'] = "Log-Size"; -$lang['witszdesc'] = "Set up the filesize of the log, at which the logfile will be rotated, when exceeded.

Define your value in Mebibyte.

When you increase the value, be sure, you have enough space on this partition. Too big logfiles could bring perfomance issues!

On changing this value, the logfile size will be checked with the next restart of the bot. Is the filesize bigger than the defined value, the logfile will be rotated immediately."; -$lang['wiupch'] = "Update-Channel"; +$lang['wits3voicedesc'] = "TeamSpeak 3 voice port
Alapértelmezés: 9987 (UDP)
Ez a port, amelyet akkor is használhat, ha kapcsolódik a TS3 klienssel."; +$lang['witsz'] = "Naplófájl-Méret"; +$lang['witszdesc'] = "Állítsa be a napló fájlméretet, amelyen a naplófájl elfordul, ha túllépik.

Határozza meg értékét Mebibyte-ben.

Az érték növelésekor ügyeljen arra, hogy van elég hely ezen a partíción. A túl nagy naplófájlok perfomance problémákat okozhatnak!

Ennek az értéknek a megváltoztatásakor a logfájl méretét a bot következő újraindításával ellenőrzik. Ha a fájlméret nagyobb, mint a meghatározott érték, akkor a naplófájl azonnal elfordul."; +$lang['wiupch'] = "Frissités-Csatorna"; $lang['wiupch0'] = "stable"; $lang['wiupch1'] = "beta"; -$lang['wiupchdesc'] = "The Ranksystem will be updated automatically if a new update is available. Choose here, which update-channel you want to join.

stable (default): You get the latest stable version. Recommended for production environments.

beta: You get the latest beta version. With this you get new features earlier, but the risk of bugs is much higher. Use at your own risk!

When you are changing from beta to stable release, the Ranksystem won't downgrade. It will rather wait for the next higher release of a stable version and update to this."; -$lang['wiverify'] = "Verification-Channel"; -$lang['wiverifydesc'] = "Enter here the channel-ID of the verification channel.

This channel needs to be set up manually on your TeamSpeak server. Name, permissions and other properties could be defined of your choice; only the 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 to the TeamSpeak user.

To verify the TeamSpeak user, he has to be in the verification channel. There he is able to receive a token with which he can verify 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."; +$lang['wiupchdesc'] = "A Ranksystem automatikusan frissül, ha rendelkezésre áll egy új frissítés. Itt választhatja ki, hogy melyik frissítési csatornára csatlakozik.

stable (alapértelmezett): Megkapja a legújabb stabil verziót. Termelési környezetben ajánlott.

beta: Megkapod a legújabb béta verziót. Ezzel korábban új funkciókat kap, de a hibák kockázata sokkal nagyobb. Használat csak saját felelősségre!

Amikor a béta módról a stabil verzióra vált, a Ranksystem nem fog leminősíteni. Inkább várni fog egy stabil verzió következő magasabb kiadását, és erre a frissítésre vár."; +$lang['wiverify'] = "Hitelesítő-Szoba"; +$lang['wiverifydesc'] = "Írja ide az ellenőrző csatorna csatorna-azonosítóját.

Ezt a szobát manuálisan kell beállítani a TeamSpeak szerveren. A nevet, az engedélyeket és az egyéb tulajdonságokat ön választhatja; csak a felhasználónak kell csatlakoznia ehhez a szobához!!

Az ellenőrzést a megfelelő felhasználó maga végzi a statisztikai oldalon (/ stats /). Ez csak akkor szükséges, ha a webhely látogatóját nem lehet automatikusan egyeztetni / kapcsolatba hozni a TeamSpeak felhasználóval.

A TeamSpeak felhasználó igazolásához a hitelesítési csatornán kell lennie. Ott képes egy tokent kapni, amellyel ellenőrizheti magát a statisztikai oldalon."; +$lang['wivlang'] = "Nyelv"; +$lang['wivlangdesc'] = "Válasszon alapértelmezett nyelvet a Ranksystem számára.

A nyelv a felhasználók számára a weboldalakon is kiválasztható, és a munkamenet során tárolódik."; ?> \ No newline at end of file diff --git a/languages/core_it_Italiano_it.php b/languages/core_it_Italiano_it.php index 1903b42..657f335 100644 --- a/languages/core_it_Italiano_it.php +++ b/languages/core_it_Italiano_it.php @@ -1,10 +1,12 @@ L'utente è stato aggiunto al sistema."; $lang['achieve'] = "Achievement"; +$lang['adduser'] = "L'utente %s ( Client-ID: %s; Client-database-ID %s) non è presente nel database -> L'utente è stato aggiunto al sistema."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Rilevati molti accessi non corretti nell'interfaccia web. Login bloccato per 300 secondi! Ultimo accesso dall'IP %s."; $lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; $lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "Scansione degli utenti che vanno eliminati..."; +$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 - other)."; $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à Query-Slowmode non è abilitata!


Per la correzione automatica del database di utenti TeamSpeak potrete usare 'ClientCleaner':
%s"; $lang['cleandel'] = "Sono stati cancellati %s utenti dal database del RankSystem perché non esistevano piu nel database di TeamSpeak."; @@ -22,14 +28,11 @@ $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 - other)."; $lang['day'] = "%s giorno"; $lang['days'] = "%s giorni"; $lang['dbconerr'] = "Connessione al Database fallita: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token is wrong or expired (=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!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Protezione attacchi brute force: Hai commesso troppi err $lang['error'] = "Errore "; $lang['errorts3'] = "Errore TS3: "; $lang['errperm'] = "Controlla i permessi per la cartella '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Seleziona almeno un utente!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Inserire tempo online da aggiungere!"; +$lang['errselusr'] = "Seleziona almeno un utente!"; $lang['errukwn'] = "È stato riscontrato un errore sconosciuto!"; $lang['factor'] = "Factor"; $lang['highest'] = "È stato raggiunto il rank massimo"; @@ -51,12 +54,12 @@ $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'] = "%1\$s è necessario ma non sembra essere installato. Installa %1\$s e riprova!"; -$lang['insterr3'] = "La funzione PHP %1\$s deve essere abilitata, ma sembra non lo sia. Per favore, abilita la funzione PHP %1\$s e riprova!"; +$lang['insterr2'] = "%1\$s è necessario ma non sembra essere installato. Installa %1\$s e riprova!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "La funzione PHP %1\$s deve essere abilitata, ma sembra non lo sia. Per favore, abilita la funzione PHP %1\$s e riprova!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "La tua versione PHP (%s) is antecedente alla 5.5.0. Aggiorna la tua PHP e prova ancora!"; -$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['isntwicfg'] = "Impossibile salvare la configurazione del database! Modifica il file 'other/dbconfig.php' dandogli i permessi 740 (chmod 740 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['isntwichm'] = "Permessi di scrittura negati per la cartella \"%s\". Per favore dai i permessi chmod 740 (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)"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webser $lang['isntwiusr'] = "L'utente dell'interfaccia Web è stato creato con successo."; $lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; $lang['isntwiusrcr'] = "Crea Webinterface-User"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $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"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Resetta il tempo online e in idle dell'utente %s (Client $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['setontime2'] = "remove time"; +$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['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; $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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Assegna un Servergroup"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; $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."; @@ -288,22 +292,24 @@ $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['stri0013'] = "%s per la traduzione in Russo"; +$lang['stri0014'] = "%s per i primi design del bootstrap"; +$lang['stri0015'] = "%s per la traduzione in Italiano"; +$lang['stri0016'] = "%s per aver avviato la traduzione in Arabo"; +$lang['stri0017'] = "%s per aver avviato la traduzione in Rumeno"; +$lang['stri0018'] = "%s per la traduzione in Olandese"; +$lang['stri0019'] = "%s per la traduzione in Francese"; +$lang['stri0020'] = "%s per la traduzione in Portoghese"; +$lang['stri0021'] = "%s 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'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "Di sempre"; +$lang['sttm0001'] = "Del mese"; $lang['sttw0001'] = "Top utenti"; $lang['sttw0002'] = "Della settimana"; $lang['sttw0003'] = "con %s %s di tempo online"; @@ -319,8 +325,6 @@ $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."; @@ -333,11 +337,11 @@ $lang['stve0009'] = " -- Seleziona -- "; $lang['stve0010'] = "Riceverai un token sul server Teamspeak3, il quale devi inserire qui:"; $lang['stve0011'] = "Token:"; $lang['stve0012'] = "verifica"; +$lang['time_day'] = "Giorno(i)"; +$lang['time_hour'] = "Ora(e)"; +$lang['time_min'] = "Min(s)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "C'è un server group con l' ID %s Configurato nei paramentri del tuo '%s' (webinterface -> rank), 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"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "Nascondi clients esclusi"; $lang['wiadmhidedesc'] = "Per nascondere i clients esclusi dalla lista"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $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.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => fattore => tempo (in secondi)

Per separare ogni voce utilizza la virgola.

Esempio:
12=>2=>6000,13=>1.25=>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 1.25 per 2500 secondi, e cosi via..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$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.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => fattore => tempo (in secondi)

Per separare ogni voce utilizza la virgola.

Esempio:
12=>2=>6000,13=>1.25=>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 1.25 per 2500 secondi, e cosi via..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $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!"; @@ -382,15 +387,15 @@ $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.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "C'è un errore nella configurazione del RankSystem. Vai nell'interfaccia web i sistema le Impostazioni 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['wiconferr'] = "C'è un errore nella configurazione del RankSystem. Vai nell'interfaccia web i sistema le Impostazioni rank!"; $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['widbcfgsuc'] = "Configurazione del database salvata con successo."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "rinnova gruppi"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "Lista degli utenti (ID Univoco) che non verranno contat $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "Definisci Rankup"; -$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years)

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['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years)

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['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista Utenti (Modalità Admin)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "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à."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Definisci un messaggio, che sarà mostrato nella pagina $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['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 (TeamSpeak -> Bot-Admin). Questo è molto importante nel caso perdessi le credenziali di accesso per la webinterface (per effettuarne un reset)."; +$lang['winav12'] = "Addons"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Altri"; @@ -474,21 +482,21 @@ $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 (TeamSpeak -> Bot-Admin). 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Esempio:
Hai raggiunto l'ultimo rank con %1$s gioni, %2$s ore e %3$s minuti e %4$s secondi.
"; $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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 Bot-Admin prima all'interno della webinterface. Non c'è modo di resettare la password!"; +$lang['wirtpw1'] = "Scusa, hai dimenticato di inserire il tuo Bot-Admin prima all'interno della webinterface. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$lang['wirtpw10'] = "Devi essere online nel server Teamspeak."; +$lang['wirtpw11'] = "Devi essere online con l' unique Client-ID, che è salvato come Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin non trovato nel server TS3. Devi essere online con l' unique Client ID che è salvato come Bot-Admin."; $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]"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "La password della webinterface è stata resettata con succ $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 Bot-Admin."; -$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"; @@ -512,10 +517,10 @@ $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['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "tempo in IDLE"; $lang['wishcolitdesc'] = "Mostra colonna 'tempo in IDLE' in stats/list_rankup.php"; @@ -545,24 +550,24 @@ $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['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time 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['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Modifiche salvate con successo!"; $lang['wisvres'] = "Dovrai riavviare il Ranksystem affinché i cambiamenti vengano applicati!"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Modifiche salvate con successo!"; $lang['witime'] = "Fuso orario"; $lang['witimedesc'] = "Selezione il fuso orario di dove è hostato il server.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; $lang['wits3host'] = "Indirizzo TS3"; $lang['wits3hostdesc'] = "Indirizzo del vostro server Teamspeak
(IP o DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Con la modalità Query-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):

%s

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['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"; @@ -571,8 +576,8 @@ $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:
%s"; $lang['wits3query'] = "TS3 - Porta della Query"; $lang['wits3querydesc'] = "La porta per l'accesso delle query a Teamspeak
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (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['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Con la modalità Query-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):

%s

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['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['witsz'] = "Log-Size"; diff --git a/languages/core_nl_Nederlands_nl.php b/languages/core_nl_Nederlands_nl.php index 557c8ef..22f949d 100644 --- a/languages/core_nl_Nederlands_nl.php +++ b/languages/core_nl_Nederlands_nl.php @@ -1,10 +1,12 @@ zojuist toegevoegd aan ranksysteem."; $lang['achieve'] = "Achievement"; +$lang['adduser'] = "Gebruiker %s (unieke Client-ID: %s; Client-database-ID %s) is onbekend -> zojuist toegevoegd aan ranksysteem."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Much incorrect logins detected on the webinterface. Blocked login for 300 seconds! Last access from IP %s."; $lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; $lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "Scannen naar clients, die moeten worden verwijderd..."; +$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 - other)."; $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 'Query-Slowmode' is gedeactiveerd!


Voor de automatische aanpassing van de TeamSpeak database de ClientCleaner kan worden gebruikt:
%s"; $lang['cleandel'] = "Er waren %s clients verwijderd uit de Ranksysteem database, omdat ze niet meer bestaan in de TeamSpeak database."; @@ -22,14 +28,11 @@ $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 - other)."; $lang['day'] = "%s dag"; $lang['days'] = "%s dagen"; $lang['dbconerr'] = "Connectie naar de Database mislukt: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token is wrong or expired (=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!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Brute force protection: Te vaak mislukt. Verbannen voor $lang['error'] = "Foutmelding "; $lang['errorts3'] = "TS3 Error: "; $lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Selecteer A.U.B minstens één gebruiker!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Voeg A.U.B een online tijd toe."; +$lang['errselusr'] = "Selecteer A.U.B minstens één gebruiker!"; $lang['errukwn'] = "Een onbekende foutmelding is opgetreden!"; $lang['factor'] = "Factor"; $lang['highest'] = "hoogste rank bereikt"; @@ -51,12 +54,12 @@ $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'] = "%1\$s is nodig maar is niet geinstalleerd. Installeer %1\$s en probeer nogmaals!"; -$lang['insterr3'] = "PHP %1\$s function moet zijn ingeschakeld maar is uitgeschakeld. Schakel A.U.B. PHP %1\$s functie en probeer nogmaals!"; +$lang['insterr2'] = "%1\$s is nodig maar is niet geinstalleerd. Installeer %1\$s en probeer nogmaals!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "PHP %1\$s function moet zijn ingeschakeld maar is uitgeschakeld. Schakel A.U.B. PHP %1\$s functie en probeer nogmaals!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Je PHP versie (%s) is onder 5.5.0. Update je PHP en probeer nogmaals!"; -$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['isntwicfg'] = "Kan de database configuratie niet opslaan! Bewerk A.U.B de 'other/dbconfig.php' met chmod 740 (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['isntwichm'] = "Schrijven toestemming mislukt op map \"%s\". Geef A.U.B. chmod 740 (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)"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Verwijder A.U.B het bestand 'install.php' van je webserv $lang['isntwiusr'] = "Gebruiker voor de webinterface is succesvol aangemaakt."; $lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; $lang['isntwiusrcr'] = "Creëer Webinterface-User"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $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"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Reset the online and idle time of user %s (unique Client $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['setontime2'] = "remove time"; +$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['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; $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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Assign Servergroup"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Limit concurrent 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."; @@ -288,22 +292,24 @@ $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['stri0013'] = "%s for russian translation"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s for italian translation"; +$lang['stri0016'] = "%s for initialisation arabic translation"; +$lang['stri0017'] = "%s for initialisation romanian translation"; +$lang['stri0018'] = "%s for initialisation dutch translation"; +$lang['stri0019'] = "%s for french translation"; +$lang['stri0020'] = "%s for portuguese translation"; +$lang['stri0021'] = "%s for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "Of all time"; +$lang['sttm0001'] = "Of the month"; $lang['sttw0001'] = "Top users"; $lang['sttw0002'] = "Of the week"; $lang['sttw0003'] = "With %s %s online time"; @@ -319,8 +325,6 @@ $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."; @@ -333,11 +337,11 @@ $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_day'] = "Day(s)"; +$lang['time_hour'] = "Hour(s)"; +$lang['time_min'] = "Min(s)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "There is a servergroup with ID %s configured inside your '%s' parameter (webinterface -> rank), but that servergroup ID isn't existent on your TS3 server (anymore)! Please correct this or errors might happen!"; $lang['upgrp0002'] = "Download new ServerIcon"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "hide excepted clients"; $lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Give a 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 booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Give a 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 booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

servergroup ID => factor => time (in seconds)

Each entry has to separate from the next with a comma.

Example:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Here a user in servergroup 12 get the factor 2 for the next 6000 seconds, a user in servergroup 13 get the factor 1.25 for 2500 seconds, and so on..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $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!"; @@ -382,15 +387,15 @@ $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'] = "Activate this function to reset the online time of a user, if his TeamSpeak Client-database-ID has been changed.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $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['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $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['widbcfgsuc'] = "Database configurations saved successfully."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "renew groups"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which shou $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "rank up definition"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "instellingen"; $lang['wiignidle'] = "Ignore idle"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a 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 point for the Ranksystem as idle time.

This function matters only in conjunction with the mode 'active time'.

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

0 Sec. = disable this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes as active time."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ pa $lang['wimsgusr'] = "Rank up notification"; $lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; $lang['winav1'] = "TeamSpeak"; +$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 define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; +$lang['winav12'] = "Addons"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Other"; @@ -474,21 +482,21 @@ $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 define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; -$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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Example:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds.
"; $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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 define a Bot-Admin inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to define a Bot-Admin inside the webinterface before. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$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 Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin not found on TS3 server. You need to be online with the unique Client-ID, which is saved as Bot-Admin."; $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"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "The password of the webinterface has been successfully res $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 Bot-Admin."; -$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"; @@ -512,10 +517,10 @@ $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['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "idle time"; $lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php"; @@ -545,24 +550,24 @@ $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['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time Mode"; $lang['wisupidledesc'] = "There are two modes, how the time of a user will be rated.

1) online time: Servergroups will be given by online time. In this case the active and the inactive time will be rated.
(see column 'sum. online time' in the 'stats/list_rankup.php')

2) active time: Servergroups will be given by active time. In this case the inactive time will not be rated. The online time will be taken and reduced by the inactive time (=idle) to build the active time.
(see column 'sum. active time' in the 'stats/list_rankup.php')


A change of the 'time mode', also on longer running Ranksystem instances, should be no problem since the Ranksystem repairs wrong servergroups on a client."; $lang['wisvconf'] = "save"; $lang['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Changes successfully saved!"; $lang['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Changes successfully saved!"; $lang['witime'] = "Timezone"; $lang['witimedesc'] = "Select the timezone the server is hosted.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%sAfter changing your TS3 server configurations a restart of your TS3 server is necessary."; $lang['wits3host'] = "TS3 Hostaddress"; $lang['wits3hostdesc'] = "TeamSpeak 3 Server address
(IP oder DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "With the Query-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):

%s

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['wits3qnmdesc'] = "The name, with this the query-connection will be established.
You can name it free."; $lang['wits3querpw'] = "TS3 Query-Password"; @@ -571,8 +576,8 @@ $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:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak 3 query port
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

If its not default, you should find it in your 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%sAfter changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "With the Query-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):

%s

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['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['witsz'] = "Log-Size"; diff --git a/languages/core_pl_polski_pl.php b/languages/core_pl_polski_pl.php index 7e1df0d..4c751e6 100644 --- a/languages/core_pl_polski_pl.php +++ b/languages/core_pl_polski_pl.php @@ -1,62 +1,65 @@ added to the Ranksystem now."; -$lang['achieve'] = "Achievement"; +$lang['achieve'] = "Osiągnięcia"; +$lang['adduser'] = "Użytkownik %s (unique Client-ID: %s; Client-database-ID %s) jest nieznany -> dodany do Ranksystemu teraz."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; -$lang['botoff'] = "Bot is stopped."; -$lang['brute'] = "Wykryto wiele niepoprawnych logowan na WWW Zablokowane logowanie przez 300 sekund! Ostatni dostep z IP% s."; -$lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; -$lang['brute2'] = "Successful login attempt to the webinterface from 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['chkfileperm'] = "Wrong file/folder permissions!
You need to correct the owner and access permissions of the named files/folders!

The owner of all files and folders of the Ranksystem installation folder must be the user of your webserver (e.g.: www-data).
On Linux systems you may do something like this (linux shell command):
%sAlso the access permission must be set, that the user of your webserver is able to read, write and execute files.
On Linux systems you may do something like this (linux shell command):
%sList of concerned files/folders:
%s"; +$lang['botoff'] = "Bot nie działa."; +$lang['boton'] = "Bot działa.."; +$lang['brute'] = "Wykryto wiele niepoprawnych logowań. Zablokowane logowanie przez 300 sekund! Ostatni dostęp z IP %s."; +$lang['brute1'] = "Wykryto błędną próbę zalogowania się do interfejsu. Nieudana próba dostępu z IP %s z nazwą użytkownika %s."; +$lang['brute2'] = "Udana próba logowania do interfejsu z IP %s."; +$lang['changedbid'] = "Użytkownik %s (unique Client-ID: %s) ma nowy identyfikator klienta TeamSpeak (%s). Zaktualizuj stary identyfikator bazy danych klienta (%s). i zresetuj zebrany czasy!"; +$lang['chkfileperm'] = "Błędne uprawnienia w pliku/folderze
Musisz poprawić właściciela i uprawnienia dostępu do nazwanych plików/folderów!

Właściciel wszystkich plików i folderów w katalogu instalacyjnym Ranksystem musi być użytkownik twojego serwera WWW (np.: www-data).
W systemach Linux możesz zrobić coś takiego (polecenie powłoki linuksa):
%sNależy również ustawić uprawnienie dostępu, aby użytkownik twojego serwera WWW mógł czytać, zapisywać i wykonywać pliki.
On Linux systems you may do something like this (linux shell command):
%sList of concerned files/folders:
%s"; $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP not found here!
Please insert a valid PHP command inside this file!

Definition out of %s:
%s
Result of your command:%sYou can test your command before via console by adding the parameter '-v'.
Example: %sYou should get back the PHP version!"; $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; -$lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; -$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 'Query-Slowmode' jest nieaktywny!

Do automatycznej regulacji TeamSpeak baza danych moze byc uzywana.


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
%s"; -$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['chkphpmulti2'] = "Ścieżka, na której można znaleźć PHP na swojej stronie internetowej:%s"; +$lang['clean'] = "Skanowanie w celu usunięcia klientów..."; $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 - other)."; +$lang['clean0003'] = "Sprawdź, czy wykonano czyszczenie bazy danych. Wszystkie niepotrzebne rzeczy zostały usuniete."; +$lang['clean0004'] = "Sprawdź, czy wykonano usuwanie użytkowników. Nic się nie zmieniło, poniewaz funkcja 'clean clients' jest wyłączona (webinterface - core) .."; +$lang['cleanc'] = "Wyczyszczono klientów"; +$lang['cleancdesc'] = "Dzięki tej funkcji starzy klienci zostaną usunięci z Ranksystem. 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 'Query-Slowmode' jest nieaktywny!

Do automatycznej regulacji TeamSpeak baza danych moze byc uzywana.


For automatic adjustment of the TeamSpeak database the ClientCleaner can be used:
%s"; +$lang['cleandel'] = "%s klientów zostało usuniętych z bazy danych systemu Ranksystem, poniewaz nie istniały juz w bazie danych TeamSpeak."; +$lang['cleanno'] = "Nie było niczego do usunięcia..."; +$lang['cleanp'] = "czysty okres"; +$lang['cleanpdesc'] = "Ustaw czas, który musi upłynąć, 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 Ranksystem: %s"; +$lang['cleants'] = "Klienci znalezieni w bazie danych TeamSpeak: %s (of %s)"; $lang['day'] = "%s dzień"; $lang['days'] = "%s dni"; -$lang['dbconerr'] = "Nie mozna połączyc sie z bazą danych: "; +$lang['dbconerr'] = "Nie można połączyć się z bazą danych: "; $lang['desc'] = "descending"; -$lang['duration'] = "Duration"; +$lang['descr'] = "Description"; +$lang['duration'] = "Czas trwania"; $lang['errcsrf'] = "CSRF Token is wrong or expired (=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['errgrpid'] = "Twoje zmiany nie zostały zapisane w bazie danych z powodu błedów. 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['errlogin'] = "Nazwa użytkownika / lub hasło jest nieprawidłowe! Spróbuj ponownie..."; +$lang['errlogin2'] = "Ochrona przed włamaniem: Spróbuj 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['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Wybierz co najmniej jednego uzytkownika!"; -$lang['errseltime'] = "Wprowadz czas online, aby dodac!"; +$lang['errperm'] = "Sprawdź uprawnienia do folderu '%s'!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; +$lang['errseltime'] = "Wprowadź czas online, aby dodać!"; +$lang['errselusr'] = "Wybierz co najmniej jednego użytkownika!"; $lang['errukwn'] = "Wystąpił nieznany błąd!"; $lang['factor'] = "Factor"; -$lang['highest'] = "osiągnieto najwyzszą range"; -$lang['insec'] = "in Seconds"; +$lang['highest'] = "osiągnieto najwyższą range"; +$lang['insec'] = "w sekundach"; $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'] = "%1\$s jest potrzebny, ale wydaje sie, ze nie jest zainstalowany. Zainstaluj %1\$s i sprobuj ponownie!"; -$lang['insterr3'] = "Funkcja PHP %1\$s musi byc włączona, ale wydaje sie byc wyłączona. Włącz funkcje PHP %1\$s i sprobuj ponownie!"; +$lang['instdb'] = "Zainstaluj bazę danych"; +$lang['instdbsuc'] = "Baza danych %s została pomyślnie utworzona."; +$lang['insterr1'] = "UWAGA: Probujesz zainstalować Ranksystem, ale istnieje już baza danych o nazwie \"%s\".
Wymagana instalacja tej bazy danych zostanie usunieta!
Upewnij się, ze tego chcesz. Jesli nie, wybierz inną nazwe bazy danych."; +$lang['insterr2'] = "%1\$s jest potrzebny, ale wydaje się, ze nie jest zainstalowany. Zainstaluj %1\$s i sprobuj ponownie!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "Funkcja PHP %1\$s musi byc włączona, ale wydaje się byc wyłączona. Włącz funkcje PHP %1\$s i sprobuj ponownie!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Twoja wersja PHP (%s) jest starsza niz 5.5.0. Zaktualizuj PHP 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['isntwicfg'] = "Nie można zapisać konfiguracji bazy danych! Proszę przypisać pełne prawa do 'other/dbconfig.php' (Linux: chmod 740; 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['isntwichm'] = "Zapisywanie uprawnien do folderu \"%s\" jest nieobecne. Przydziel pełne prawa (Linux: chmod 740; 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)"; @@ -68,85 +71,86 @@ $lang['isntwidbpassdesc'] = "Password to access the database"; $lang['isntwidbtype'] = "DB Type:"; $lang['isntwidbtypedesc'] = "Type of the database the Ranksystem should be using.

The PDO Driver for PHP does need to be installed.
For more informations and an actual list of requirements have a look to the installation page:
%s"; $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['isntwiusr2'] = "Congratulations! You have finished the installation process."; -$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['isntwidbusrdesc'] = "Użytkownik uzyskuje dostęp do bazy danych"; +$lang['isntwidel'] = "Usuń plik 'install.php' ze swojego serwera WWW"; +$lang['isntwiusr'] = "Użytkownik pomyslnie utworzony interfejs WWW."; +$lang['isntwiusr2'] = "Gratulacje! Skończyłeś proces instalacji."; +$lang['isntwiusrcr'] = "Utwórz interfejs użytkownika sieci"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; +$lang['isntwiusrdesc'] = "Wprowadź nazwe użytkownika i hasło, aby uzyskac dostep do interfejsu internetowego. Dzieki webinterface mozesz skonfigurowac system rang."; +$lang['isntwiusrh'] = "Dostęp - interfejs sieciowy"; +$lang['listacsg'] = "Obecna grupa serwerowa"; $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'] = "The Ranksystem is running on version: %s"; -$lang['msg0002'] = "A list of valid bot commands can be found here [URL]https://ts-ranksystem.com/#commands[/URL]"; -$lang['msg0003'] = "Nie kwalifikujesz sie do tego polecenia!"; -$lang['msg0004'] = "Klient %s (%s) ząda zamkniecia systemu."; +$lang['listnxsg'] = "Następna grupa serwerowa"; +$lang['listnxup'] = "Następna ranga"; +$lang['listrank'] = "Ranga"; +$lang['listseen'] = "Ostatnio widziany"; +$lang['listsuma'] = "Suma. czas aktywny"; +$lang['listsumi'] = "Suma. czas bezczynności"; +$lang['listsumo'] = "Suma. czas online"; +$lang['listuid'] = "Unikalny identyfikator klienta"; +$lang['login'] = "Zaloguj się"; +$lang['msg0001'] = "Ranksystem działa na wersji: %s"; +$lang['msg0002'] = "Lista prawidłowych komend znajduje się tutaj [URL]https://ts-ranksystem.com/#commands[/URL]"; +$lang['msg0003'] = "Nie kwalifikujesz się do tego polecenia!"; +$lang['msg0004'] = "Klient %s (%s) żąda zamkniecia systemu."; $lang['msg0005'] = "cya"; $lang['msg0006'] = "brb"; $lang['msg0007'] = "Klient %s (%s) ządania ponownego %s."; -$lang['msg0008'] = "Wykonaj kontrole aktualizacji. Jesli aktualizacja jest dostepna, uruchomi sie natychmiast."; -$lang['msg0009'] = "Czyszczenie bazy danych uzytkownikow zostało uruchomione."; +$lang['msg0008'] = "Wykonaj kontrole aktualizacji. Jesli aktualizacja jest dostepna, uruchomi się natychmiast."; +$lang['msg0009'] = "Czyszczenie bazy danych użytkowników zostało uruchomione."; $lang['msg0010'] = "Run command !log to get more information."; $lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; -$lang['noentry'] = "Nie znaleziono wpisow ..."; +$lang['noentry'] = "Nie znaleziono wpisów ..."; $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['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['pass2'] = "Zmień hasło"; +$lang['pass3'] = "Stare hasło"; +$lang['pass4'] = "Nowe hasło"; +$lang['pass5'] = "Zapomniałeś hasła?"; +$lang['repeat'] = "Powtórz"; +$lang['resettime'] = "Zresetuj czas online i czas bezczynnosci użytkownika %s (unique Client-ID: %s; Client-database-ID %s) na zero, poniewaz uzytkownik został usuniety z wyjątku."; $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['setontime2'] = "remove time"; -$lang['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; -$lang['sgrpadd'] = "Przyznaj grupie serwerowej %s (ID: %s) do uzytkownika %s (unique Client-ID: %s; Client-database-ID %s)."; +$lang['setontime2'] = "Usuń czas"; +$lang['setontimedesc'] = "Dodaj czas online do poprzednio wybranych klientów. Każdy użytkownik otrzyma dodatkowy czas na swój stary czas online.

Wprowadzony czas online zostanie uwzględniony w rankingu i powinień natychmiast obowiązywać."; +$lang['setontimedesc2'] = "Usuń czas online z poprzednich wybranych klientów. Każdy użytkownik zostanie tym razem usunięty ze swojego starego czasu online.

Wprowadzony czas online zostanie uwzględniony w rankingu i powinien natychmiast obowiązywać."; +$lang['sgrpadd'] = "Przyznaj grupie serwerowej %s (ID: %s) do użytkownika %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['sgrprm'] = "Usunięto grupe serwerową %s (ID: %s) od użytkownika %s (unique Client-ID: %s; Client-database-ID %s)."; $lang['size_byte'] = "B"; +$lang['size_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Dodaj rangi na TS3"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; +$lang['stag0004'] = "Limit grup"; +$lang['stag0005'] = "Ogranicz liczbe grup serwerowych, które można ustawić 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['stag0008'] = "Zmiany grup zostały pomyslnie zapisane. Może minąc kilka sekund, zanim zadziała na serwerze ts3."; +$lang['stag0009'] = "Nie możesz wybrać 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['stag0016'] = "verification needed!"; +$lang['stag0015'] = "Nie można znaleźć na serwerze TeamSpeak. Proszę %wyczyscic%s aby się zweryfikować."; +$lang['stag0016'] = "potrzebna weryfikacja!"; $lang['stag0017'] = "verificate here.."; $lang['stix0001'] = "Statystyki serwera"; -$lang['stix0002'] = "Wszystkich uzytkownikow"; -$lang['stix0003'] = "Pokaz szczegoły"; +$lang['stix0002'] = "Wszystkich użytkowników"; +$lang['stix0003'] = "Pokaż szczegóły"; $lang['stix0004'] = "Czas online wszystkich uzytkownikow"; $lang['stix0005'] = "Zobacz najwyzszy czas"; $lang['stix0006'] = "Wyswietl gore miesiąca"; @@ -156,27 +160,27 @@ $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['stix0013'] = "Ostatni dzień"; +$lang['stix0014'] = "Zeszły tydzień"; $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['stix0016'] = "Aktywny / nieaktywny czas (wszystkich klientów)"; +$lang['stix0017'] = "Wersje (wszystkich klientów)"; +$lang['stix0018'] = "Narodowości (wszystkich klientów)"; +$lang['stix0019'] = "Platformy (wszystkich klientów)"; $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['stix0027'] = "Ilość kanałów"; $lang['stix0028'] = "Średni ping serwera"; $lang['stix0029'] = "Łącznie otrzymane bajty"; -$lang['stix0030'] = "Wysłano wszystkie bajty"; +$lang['stix0030'] = "Wysłane 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['stix0033'] = "00 Dni, 00 Godzin, 00 Minut, 00 Sekund"; +$lang['stix0034'] = "Średnia utrata pakietów"; +$lang['stix0035'] = "Ogólne statystyki"; $lang['stix0036'] = "Nazwa serwera"; $lang['stix0037'] = "Adres serwera (adres hosta: port)"; $lang['stix0038'] = "Hasło serwera"; @@ -184,245 +188,246 @@ $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['stix0043'] = "Wersja serwerera TS3"; $lang['stix0044'] = "Data utworzenia serwera (dd/mm/yyyy)"; -$lang['stix0045'] = "Zgłos do listy serwerow"; +$lang['stix0045'] = "Zgłoś do listy serwerów"; $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['stix0049'] = "Czas online dla wszystkich uzytkownikow / miesięcy"; +$lang['stix0050'] = "Czas online dla wszystkich użytkowników / tygodni"; +$lang['stix0051'] = "TeamSpeak się 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['stix0059'] = "Lista użytkowników"; +$lang['stix0060'] = "Użytkownik"; +$lang['stix0061'] = "Wyświetl wszystkie wersje"; $lang['stix0062'] = "Zobacz wszystkie narody"; -$lang['stix0063'] = "Wyswietl wszystkie platformy"; -$lang['stix0064'] = "Last 3 months"; +$lang['stix0063'] = "Wyświetl wszystkie platformy"; +$lang['stix0064'] = "Ostatnie 3 miesiące"; $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['stmy0006'] = "Data rozpoczęcia statystyk:"; $lang['stmy0007'] = "Łączny czas online:"; -$lang['stmy0008'] = "Czas online ostatniego %s dni:"; +$lang['stmy0008'] = "Czas online ostatnich %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['stmy0010'] = "Osiągniecia ukończone:"; +$lang['stmy0011'] = "Osiągniecie postępu czasu"; +$lang['stmy0012'] = "Czas: Legendarny"; +$lang['stmy0013'] = "Ponieważ twój czas online wynosi %s godzin."; +$lang['stmy0014'] = "Postep został zakończony"; +$lang['stmy0015'] = "Czas: Złoto"; $lang['stmy0016'] = "% Ukonczony dla Legendary"; -$lang['stmy0017'] = "Czas: srebrny"; -$lang['stmy0018'] = "% Ukonczono dla złota"; +$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['stmy0020'] = "% Ukonczono dla Srebra"; +$lang['stmy0021'] = "Czas: Nieokreślony"; +$lang['stmy0022'] = "% Ukonczono dla Brązu"; $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['stmy0025'] = "Ponieważ połączyłeś %s razy z serwerem."; +$lang['stmy0026'] = "Łączy: Złoto"; +$lang['stmy0027'] = "Łączy: Srebro"; +$lang['stmy0028'] = "Łączy: Brąz"; +$lang['stmy0029'] = "Łączy: Nieokreślony"; +$lang['stmy0030'] = "Postęp do następnej grupy serwerowej"; +$lang['stmy0031'] = "Całkowity czas aktywności"; $lang['stna0001'] = "Narody"; $lang['stna0002'] = "Statystyka"; $lang['stna0003'] = "Kod"; -$lang['stna0004'] = "Liczyc"; +$lang['stna0004'] = "Liczba"; $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['stnv0016'] = "Niedostepne"; +$lang['stnv0001'] = "Wiadomości na temat serwera"; +$lang['stnv0002'] = "Zamknij"; +$lang['stnv0003'] = "Odśwież informacje o kliencie"; +$lang['stnv0004'] = "Korzystaj tylko z tego odświeżania, gdy zmieniła się informacja o TS3, na przykład nazwa użytkownika TS3"; +$lang['stnv0005'] = "Działa tylko wtedy, gdy jesteś podłączony do serwera TS3 w tym samym czasie"; +$lang['stnv0006'] = "Odświeżać"; +$lang['stnv0016'] = "Niedostepnę"; $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['stnv0018'] = "Połącz się 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['stnv0023'] = "Ilosc czasu online dla wszystkich użytkowników tygodniowo i miesięcznie 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['stnv0027'] = "Informacje na tej stronie mogą byc nieaktualne! Wygląda na to, ze Ranksystem nie jest już połączony z TeamSpeakiem."; +$lang['stnv0028'] = "(Nie jesteś 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['stnv0032'] = "Możesz takze uzyc opcji filtra widoku (patrz ponizej). Wprowadz filtr rowniez w polu wyszukiwania."; +$lang['stnv0033'] = "Możliwe jest połączenie filtra i wzoru wyszukiwania. Najpierw wprowadz filtr (y), a nastepnie nie oznaczaj swojego wzorca wyszukiwania."; +$lang['stnv0034'] = "Możliwe 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['stnv0036'] = "Pokaż tylko klientów, którzy są wyłączeni (wyjątek dotyczący klienta, grupy serwerowej lub kanału)."; +$lang['stnv0037'] = "Pokaż tylko klientów, którzy nie są wyjątkiem."; +$lang['stnv0038'] = "Pokaż tylko klientów, którzy są online."; +$lang['stnv0039'] = "Pokaż tylko klientów, którzy nie są online."; +$lang['stnv0040'] = "Pokaż tylko klientów, którzy są w zdefiniowanej grupie. Reprezentuj range / poziom.
Replace GROUPID z poządanym identyfikatorem grupy serwerow."; +$lang['stnv0041'] = "Pokaż tylko klientów, którzy 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'] = "Pokaż tylko klientów, którzy 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['stri0003'] = "Jest to bot TS3, który automatycznie przyznaje rangi (grupy serwerowe) użytkownikowi na serwerze TeamSpeak 3, aby uzyskać czas online lub aktywność online. Gromadzi rownież informacje i statystyki dotyczące użytkownika i wyświetla 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['stri0008'] = "Możesz zobaczyć najnowszą wersje na stronie Ranksystem."; $lang['stri0009'] = "Jak powstał system Ranksystem?"; -$lang['stri0010'] = "System Ranks jest zakodowany w"; -$lang['stri0011'] = "Uzywa rowniez nastepujących bibliotek:"; +$lang['stri0010'] = "Ranksystem powstał w technologii"; +$lang['stri0011'] = "Używa również 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['stri0013'] = "%s dla rosyjskiego tłumaczenia"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s do włoskiego tłumaczenia"; +$lang['stri0016'] = "%s do inicjalizacji tłumaczenia arabskiego"; +$lang['stri0017'] = "%s do inicjalizacji tłumaczenia rumunskiego"; +$lang['stri0018'] = "%s do inicjalizacji tłumaczenia na holenderski"; +$lang['stri0019'] = "%s do tłumaczenia na francuski"; +$lang['stri0020'] = "%s do tłumaczenia portugalskiego"; +$lang['stri0021'] = "%s za swietne wsparcie w GitHub & nasz publiczny serwer, dzielenie się swoimi pomysłami, wstepne testowanie całego tego gowna i wiele wiecej"; +$lang['stri0022'] = "%s za dzielenie się 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; -$lang['sttw0001'] = "Najlepsi uzytkownicy"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "Cały czas"; +$lang['sttm0001'] = "Miesiąca"; +$lang['sttw0001'] = "Najlepsi użytkownicy"; $lang['sttw0002'] = "Tygodnia"; $lang['sttw0003'] = "Z %s %s czas online"; -$lang['sttw0004'] = "Top 10 w porownaniu"; +$lang['sttw0004'] = "Top 10 w porównaniu"; $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['sttw0008'] = "Top 10 najlepszych w porównaniu do innych w czasie online"; +$lang['sttw0009'] = "Top 10 a inni w czasię aktywnym"; +$lang['sttw0010'] = "Top 10 a inni w nieaktywnym czasie"; $lang['sttw0011'] = "Top 10 (w godzinach)"; -$lang['sttw0012'] = "Inny %s uzytkownicy (w godzinach)"; +$lang['sttw0012'] = "Inni %s użytkownicy (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['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 się razy, skontaktuj się z administratorem."; +$lang['stve0002'] = "Wiadomość 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 się, 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['stve0006'] = "Wystąpił nieznany błąd. Sprobuj ponownie. Wielokrotnie kontaktuj się z administratorem"; +$lang['stve0007'] = "Sprawdź 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['stve0010'] = "Otrzymasz token na serwerze TS3, który musisz wprowadzić tutaj:"; $lang['stve0011'] = "Token:"; -$lang['stve0012'] = "zweryfikowac"; +$lang['stve0012'] = "zweryfikować"; +$lang['time_day'] = "Dzień"; +$lang['time_hour'] = "Godzina(s)"; +$lang['time_min'] = "Min(s)"; $lang['time_ms'] = "ms"; $lang['time_sec'] = "Sec(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_hour'] = "Godzina(s)"; -$lang['time_day'] = "Dzien"; $lang['unknown'] = "unknown"; -$lang['upgrp0001'] = "Istnieje grupa serwerow z identyfikatorem %s skonfigurowanym w parametrze '%s' (webinterface -> rank), ale ten identyfikator grupy serwerow nie istnieje na twoim serwerze TS3 (juz)! Prosze to poprawic lub mogą wystąpic błedy!"; +$lang['upgrp0001'] = "Istnieje grupa serwerowa z identyfikatorem %s skonfigurowanym w parametrze '%s' (webinterface -> core -> rank), 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['upgrp0006'] = "Zauważył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['upgrp0010'] = "Ikona severgroup %s o identyfikatorze %s została usunieta z serwera TS3, teraz została rownież usunięta 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['upinf'] = "Dostepna jest nowa wersja systemu Ranksystem; Poinformuj klientów na serwerze..."; $lang['upinf2'] = "System Ranksystem został ostatnio zaktualizowany. (%s) Sprawdz %sChangelog%s aby uzyskac wiecej informacji o zmianach."; -$lang['upmsg'] = "\nHej, 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]%s[/URL] Uruchamianie procesu aktualizacji w tle. [B]Sprawdz system ranksystem.log![/B]"; +$lang['upmsg'] = "\nHej, nowa wersja systemu [B]Ranksystem[/B] jest dostępna!\n\nnaktualna wersja: %s\n[B]nowa wersja: %s[/B]\n\nProszę zajrzyj na naszą stronę po więcej Informacje [URL]%s[/URL] Uruchamianie procesu aktualizacji w tle. [B]Sprawdź 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]%s[/URL]."; $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 (-> stats page) 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['upusrinf'] = "Użytkownik %s został poinformowany."; +$lang['user'] = "Nazwa użytkownika"; +$lang['verify0001'] = "Upewnij się, ze naprawdę jesteś podłączony do serwera TS3!"; +$lang['verify0002'] = "Wprowadź, jeśli jeszcze nie zostało zrobione, system rang %sverification-channel%s!"; +$lang['verify0003'] = "Jeśli jesteś naprawde podłączony z serwerem TS3, skontaktuj się 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 interfejsię WWW (-> core) systemu rangowego.

Bez tego Aktywnosc nie jest mozliwa, aby zweryfikowac cie w Ranksystem w tej chwili! Przepraszam :("; +$lang['verify0004'] = "Nie znaleziono użytkownika 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'] = "Bot-Admin"; -$lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; -$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.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

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

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

Przykład:
12=>2=>6000,13=>1.25=>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 1.25 na 2500 sekund, i tak dalej..."; +$lang['wiadmhide'] = "ukryj wyjątkow klientów"; +$lang['wiadmhidedesc'] = "Aby ukryć użytkownika z wyjątkiem w nastepującym wyborze"; +$lang['wiadmuuid'] = "Admin bota"; +$lang['wiadmuuiddesc'] = "Wybierz użytkownika, który jest administratorem(ami) systemu Ranksystemu.
Możliwe są również wielokrotne wybory.

Tutaj wymienieni użytkownicy są użytkownikami Twojego serwera TeamSpeak. Upewnij się, że jesteś tam online. Kiedy jesteś offline, przejdź do trybu online, zrestartuj Ranksystem Bota i ponownie załaduj tę stronę.


Administrator bota systemowego Ranksystem posiada uprawnienia:

- do resetowania hasła do interfejsu WWW.
(Uwaga: Bez zdefiniowania administratora, nie jest możliwe zresetowanie hasła!)

- używając poleceń Bota z uprawnieniami \"Admin bota\"
(Lista poleceń, które znajdziesz %stutaj%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; +$lang['wiboost'] = "Boost"; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; -$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['wiboostdesc'] = "Daj użytkownikowi 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 użytkownika. Czas zaczyna biec, gdy tylko uzytkownik otrzyma grupe serwerow.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

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

Kazdy wpis musi oddzielac się od nastepnego za pomocą przecinka.

Przykład:
12=>2=>6000,13=>1.25=>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 1.25 na 2500 sekund, i tak dalej..."; +$lang['wiboostempty'] = "Lista jest pusta. Kliknij na symbol plusa, aby go zdefiniować!"; +$lang['wibot1'] = "Bot Ranksystem powinien zostać zatrzymany. Sprawdź poniższy dziennik, aby uzyskać więcej informacji!"; +$lang['wibot2'] = "Bot Ranksystem powinien zostać uruchomiony. Sprawdź poniższy dziennik, aby uzyskać więcej informacji!"; +$lang['wibot3'] = "Bot Ranksystem powinien zostać uruchomiony ponownie. Sprawdź poniższy dziennik, aby uzyskać więcej 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['wibot8'] = "Dziennik systemu Ranksystem (logi):"; $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.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "Wystąpił błąd w konfiguracji systemu Ranksystem. Przejdz do interfejsu sieciowego i popraw ustawienia rank!"; -$lang['wichpw1'] = "Twoje stare hasło jest nieprawidłowe. Prosze sprobuj ponownie"; -$lang['wichpw2'] = "Nowe hasła sie psują. Prosze sprobuj ponownie."; +$lang['wichdbid'] = "Resetowanie bazy danych klientów"; +$lang['wichdbiddesc'] = "Zresetuj czas online użytkownika, jesli zmienił się identyfikator bazy danych klienta TeamSpeak.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; +$lang['wichpw1'] = "Twoje stare hasło jest nieprawidłowe. Proszę spróbuj ponownie"; +$lang['wichpw2'] = "Nowe hasła się 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['wichpw4'] = "Zmień hasło"; +$lang['wiconferr'] = "Wystąpił błąd w konfiguracji systemu Ranksystem. Przejdz do interfejsu sieciowego i popraw ustawienia podstawowe. Szczegolnie sprawdz konfiguracje 'rank up'!"; $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['widaformdesc'] = "Wybierz format daty wyświetlania.

Przykład:
%a days, %h hours, %i mins, %s secs"; +$lang['widbcfgerr'] = "Błąd podczas zapisywania konfiguracji bazy danych! Połączenie nie powiodło się lub błąd zapisu dla 'other/dbconfig.php'"; +$lang['widbcfgsuc'] = "Konfiguracje bazy danych zostały pomyślnie zapisane."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; -$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['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['wiexcept'] = "Exceptions"; -$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['widelcldgrp'] = "odnów 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 się 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 się w grupie serwerow, powinien byc ustawiony na zdefiniowany czas online.

Uwaga: Uruchom to za chwile, w ciągu nastepnych kilku minut bez rankups stają się wymagalne!!! System Ranksystem nie moze usunąc starej grupy, poniewaz nie moze zapamietac ;-)"; +$lang['widelsg'] = "usuń z grup serwerów"; +$lang['widelsgdesc'] = "Wybierz, czy klienci powinni zostac usunieci z ostatniej znanej grupy serwerow, gdy usuniesz klientów z bazy danych systemu Ranksystem.

Bedzie to dotyczyc tylko grup serwerow, ktore dotyczyły systemu Ranksystem."; +$lang['wiexcept'] = "Wyjątki"; +$lang['wiexcid'] = "Wyjątek kanału"; +$lang['wiexciddesc'] = "Rozdzielona przecinkami lista identyfikatorow kanałow, ktore nie mają uczestniczyc w systemie rang.

Zachowaj użytkowników w jednym z wymienionych kanałow, czas bedzie całkowicie ignorowany. Nie ma czasu online, ale liczy się 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 okresię jako 'wykluczone z Ranksystem'. Uzytkownik nie pojawia się 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 grupy serwerowej"; $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'] = "czas zliczania (domyslny)"; +$lang['wiexres1'] = "czas zliczania (domyślnie)"; $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) czas zliczania (domyslny): 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['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 użytkownika (ktory jest wyjątkiem).

1) czas zliczania (domyslny): 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 użytkownika). 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['wiexuiddesc'] = "Rozdzielona przecinkiem lista unikalnych identyfikatorow klientów, ktorych nie nalezy uwzgledniac w systemie Ranksystem.
Uzytkownik na tej liscie zostanie zignorowany w rankingu."; $lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; +$lang['wigrpt1'] = "Czas w sekundach"; +$lang['wigrpt2'] = "Grupa serwerowa"; $lang['wigrptime'] = "rangowa definicja"; -$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasie uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy)=>identyfikator grupy serwerow

Max. value is 999.999.999 seconds (over 31 years)

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['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasię uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy)=>identyfikator grupy serwerow

Max. value is 999.999.999 seconds (over 31 years)

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

Kazdy wpis musi oddzielac się 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['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista Rankup (tryb administratora)"; -$lang['wihladm0'] = "Function description (click)"; +$lang['wihladm0'] = "Opis funkcji (kliknij)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; $lang['wihladm1'] = "Dodaj czas"; -$lang['wihladm2'] = "usuń czas"; +$lang['wihladm2'] = "Usuń czas"; $lang['wihladm3'] = "Reset Ranksystem"; -$lang['wihladm31'] = "reset all user stats"; +$lang['wihladm31'] = "Resetowanie wszystkich statystyk użytkowników"; $lang['wihladm311'] = "zero time"; $lang['wihladm312'] = "delete users"; $lang['wihladm31desc'] = "Choose one of the both options to reset the statistics of all users.

zero time: Resets the time (online time & idle time) of all users to a value of 0.

delete users: With this option, all users will be deleted out of the Ranksystem database. The TeamSpeak database will not be touched!


Both options affect the following things..

.. on zero time:
Reset Server statistics summary (table: stats_server)
Reset My statistics (table: stats_user)
Reset List Rankup / user statistics (table: user)
Cleans Top users / user statistic snapshots (table: user_snapshot)

.. on delete users:
Cleans donut chart nations (table: stats_nations)
Cleans donut chart platforms (table: stats_platforms)
Cleans donut chart versions (table: stats_versions)
Reset Server statistics summary (table: stats_server)
Cleans My statistics (table: stats_user)
Cleans List Rankup / user statistics (table: user)
Cleans user ip-hash values (table: user_iphash)
Cleans Top users / user statistic snapshots (table: user_snapshot)"; @@ -438,143 +443,143 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; -$lang['wihladmrs2'] = "in progress.."; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Szacowany czas na zresetowanie systemu"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Proszę wybrać co najmniej jedną opcję!"; +$lang['wihladmrs16'] = "enabled"; +$lang['wihladmrs2'] = "w toku.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; $lang['wihladmrs5'] = "Reset Job(s) successfully created."; $lang['wihladmrs6'] = "There is still a reset job active. Please wait until all jobs are finished before you start the next!"; $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; -$lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; +$lang['wihladmrs8'] = "NIE wyłączaj ani nie uruchamiaj ponownie bota podczas resetowania!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihlset'] = "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['wihlset'] = "Ustawienia"; +$lang['wiignidle'] = "Ignoruj bezczynność"; +$lang['wiignidledesc'] = "Okresl okres, do ktorego ignorowany bedzie czas bezczynnosci użytkownika.

Gdy klient nie robi niczego na serwerze (= bezczynnosc), ten czas jest zapisywany przez system rangowy. Dzieki tej funkcji czas bezczynnosci użytkownika nie zostanie policzony do okreslonego limitu. Dopiero gdy okreslony limit zostanie przekroczony, liczy się 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ł się 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['wilogdesc'] = "Ściezka pliku dziennika systemu Ranksystem.

Przykład:
/var/logs/ranksystem/

Upewnij się, że 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.
%s

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['wimsgmsg'] = "Wiadomości"; +$lang['wimsgmsgdesc'] = "Zdefiniuj wiadomość, ktora zostanie wysłana do użytkownika, gdy dostanie wyższą grupe.

Ta wiadomość zostanie wysłana za posrednictwem wiadomości prywatnej TS3. Więc kod bb-code może być użyty.
%s

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 użytkownika (odbiorcy)

Example:
Hey,\\nosiągnąłes wyzszą range, poniewaz juz się połączyłes %1\$s dni, %2\$s godzin and %3\$s minut na naszym serwerze TS3.[B]Tak trzymaj![/B] ;-)
"; +$lang['wimsgsn'] = "Wiadomości serwerowe"; +$lang['wimsgsndesc'] = "Zdefiniuj wiadomośc, 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['wimsgusrdesc'] = "Poinformuj użytkownika o prywatnej wiadomości tekstowej o jego randze."; $lang['winav1'] = "TeamSpeak"; +$lang['winav10'] = "Użyj interfejsu sieciowego tylko przez %s HTTPS%s Szyfrowanie ma kluczowe znaczenie dla zapewnienia prywatności i bezpieczeństwa.%sAby moc korzystać z HTTPS, twój serwer WWW musi obsługiwać połączenie SSL"; +$lang['winav11'] = "Wprowadź unikalny identyfikator klienta administratora systemu Ranksystem (TeamSpeak -> Bot-Admin). Jest to bardzo wazne w przypadku, gdy straciłes dane logowania do interfejsu WWW (aby je zresetowac)."; +$lang['winav12'] = "Dodatki"; $lang['winav2'] = "Baza danych"; -$lang['winav3'] = "Rdzen"; +$lang['winav3'] = "Rdzeń"; $lang['winav4'] = "Inny"; -$lang['winav5'] = "Wiadomosc"; +$lang['winav5'] = "Wiadomość"; $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 (TeamSpeak -> Bot-Admin). Jest to bardzo wazne w przypadku, gdy straciłes dane logowania do interfejsu WWW (aby je zresetowac)."; -$lang['winav12'] = "Dodatki"; +$lang['winav9'] = "Dostępna aktualizacja!"; $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['winxinfodesc'] = "Umożliwia użytkownikowi 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 (odbiorca)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 Bot-Admin w interfejsie internetowym. Nie ma sposobu na zresetowanie hasła!"; +$lang['winxmsg1'] = "Wiadomość"; +$lang['winxmsg2'] = "Wiadomość (najwyzsza)"; +$lang['winxmsg3'] = "Wiadomość (z wyjątkiem)"; +$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 użytkownika (odbiorca)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['winxmsgdesc2'] = "Zdefiniuj wiadomość, 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 użytkownika (odbiorca)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Przykład:
Osiągnąłes najwyzszą pozycje w rankingu %1$s dni, %2$s godziny i %3$s minuty i %4$s sekundy.
"; +$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 użytkownika (odbiorca)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Przykład:
Jestes wyłączony z Systemu Rankow. Jesli chcesz ustalic pozycje, skontaktuj się z administratorem na serwerze TS3.
"; +$lang['wirtpw1'] = "Przepraszam, zapomniałeś wcześniej wpisać swój Bot-Admin w interfejsie internetowym. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$lang['wirtpw10'] = "Musisz być online na serwerze TeamSpeak3."; +$lang['wirtpw11'] = "Musisz być w trybie online z unikalnym identyfikatorem klienta, ktory jest zapisywany jako Bot-Admin."; +$lang['wirtpw12'] = "Musisz być w trybie online z tym samym adresem IP na serwerze TeamSpeak3, jak tutaj na tej stronie (rowniez ten sam protokoł IPv4 / IPv6)."; $lang['wirtpw2'] = "Nie znaleziono identyfikatora Bot-Admin na serwerze TS3. Musisz byc online z unikalnym identyfikatorem klienta, ktory jest zapisywany jako Bot-Admin."; -$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['wirtpw3'] = "Twoj adres IP nie jest zgodny z adresem IP administratora na serwerze TS3. Upewnij się, 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 Użytkownika: %s\nHasło: [B]%s[/B]\n\nZaloguj Się %shere%s"; +$lang['wirtpw5'] = "Do administratora wysłano prywatną wiadomość tekstową TeamSpeak 3 z nowym hasłem. Kliknij %s tutaj %s aby się 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 Bot-Admin."; -$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['wiselcld'] = "Wybierz klientów"; +$lang['wiselclddesc'] = "Wybierz klientów według ich ostatniej znanej nazwy użytkownika, unikalnego identyfikatora klienta lub identyfikatora bazy danych klienta.
Mozliwe są rowniez wielokrotne selekcje.

W wiekszych bazach danych wybor ten moze znacznie spowolnic. Zaleca się skopiowanie i wklejenie pełnego pseudonimu zamiast wpisywania go."; +$lang['wishcolas'] = "Rzeczywista grupa serwerowa"; +$lang['wishcolasdesc'] = "Pokaż kolumne 'aktualna grupa serwerow' w list_rankup.php"; +$lang['wishcolat'] = "Czas aktywny"; +$lang['wishcolatdesc'] = "Pokaż sume kolumn. 'czas aktywny' in list_rankup.php"; $lang['wishcolcld'] = "Nazwa klienta"; -$lang['wishcolclddesc'] = "Pokaz kolumne 'Nazwa klienta' in list_rankup.php"; +$lang['wishcolclddesc'] = "Pokaż 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['wishcoldbiddesc'] = "Pokaż 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['wishcolgsdesc'] = "Pokaż kolumne 'aktualna grupa od' w list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "czas bezczynnosci"; -$lang['wishcolitdesc'] = "Pokaz kolumne 'suma czasu bezczynnosci' w list_rankup.php"; +$lang['wishcolitdesc'] = "Pokaż 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['wishcollsdesc'] = "Pokaż kolumne 'ostatnio widziano' w list_rankup.php"; +$lang['wishcolnx'] = "następna ranga"; +$lang['wishcolnxdesc'] = "Pokaż 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['wishcolotdesc'] = "Pokaż sume kolumn. 'czas online' w list_rankup.php"; $lang['wishcolrg'] = "ranga"; -$lang['wishcolrgdesc'] = "Pokaz kolumne 'ranga' w list_rankup.php"; +$lang['wishcolrgdesc'] = "Pokaż kolumne 'ranga' w list_rankup.php"; $lang['wishcolsg'] = "nastepna grupa serwerow"; -$lang['wishcolsgdesc'] = "Pokaz kolumne 'nastepna grupa serwerow' in list_rankup.php"; +$lang['wishcolsgdesc'] = "Pokaż kolumne 'nastepna grupa serwerow' in list_rankup.php"; $lang['wishcoluuid'] = "Identyfikator klienta"; -$lang['wishcoluuiddesc'] = "Pokaz kolumne 'unikalny identyfikator klienta' w list_rankup.php"; -$lang['wishdef'] = "default column sort"; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; +$lang['wishcoluuiddesc'] = "Pokaż kolumne 'unikalny identyfikator klienta' w list_rankup.php"; +$lang['wishdef'] = "Domyślne sortowanie kolumn"; +$lang['wishdefdesc'] = "Zdefiniuj domyślną kolumnę sortowania dla strony Rankup listy."; $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['wishexclddesc'] = "Pokaż klientów 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['wishexgrpdesc'] = "Pokaż klientów w list_rankup.php, ktore znajdują się 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['wishhiclddesc'] = "Pokaż klientów w list_rankup.php, ktory osiągnął najwyzszy poziom w Ranksystem."; $lang['wishmax'] = "show max. Clients"; $lang['wishmaxdesc'] = "Show the max. Clients as line inside the server usage graph on 'stats/' page."; -$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['wishsort'] = "default sorting order"; -$lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; -$lang['wisupidle'] = "time 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['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Zmiany zostały pomyslnie zapisane!"; -$lang['wisvres'] = "Musisz ponownie uruchomic system Ranksystem, zanim zmiany zaczną obowiązywac! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; +$lang['wishnav'] = "pokaż nawigacje witryny"; +$lang['wishnavdesc'] = "Pokaż 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['wishsort'] = "Domyślna kolejność sortowania"; +$lang['wishsortdesc'] = "Zdefiniuj domyślną kolejność sortowania dla strony Rankup."; $lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; +$lang['wisupidle'] = "time Tryb"; +$lang['wisupidledesc'] = "Istnieją dwa tryby, ponieważ czas może być policzony, a następnie można ubiegać się o podwyzszenie rangi.

1) czas online: bierze się pod uwage czysty czas online użytkownika (see column 'sum. online time' in the 'stats/list_rankup.php')

2) czas aktywny: zostanie odjety od czasu online użytkownika, 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 może zadziałać."; +$lang['wisvconf'] = "Zapisz"; +$lang['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; +$lang['wisvres'] = "Musisz ponownie uruchomic system Ranksystem, zanim zmiany zaczną obowiązywac! %s"; +$lang['wisvsuc'] = "Zmiany zostały pomyslnie zapisane!"; $lang['witime'] = "Strefa czasowa"; -$lang['witimedesc'] = "Wybierz strefe czasową, w ktorej serwer jest hostowany.

The timezone affects the timestamp inside the log (ranksystem.log)."; +$lang['witimedesc'] = "Wybierz strefe czasową, w której serwer jest hostowany.

Strefa czasowa wpływa na znacznik czasu wewnątrz logów. (ranksystem.log)."; $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'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Dzieki Query-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):

%s

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['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:
%s"; -$lang['wits3query'] = "TS-Query-Port"; -$lang['wits3querydesc'] = "Port zapytania TeamSpeak 3
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

Jesli nie jest domyslny, powinienes go znalezc w swoim 'ts3server.ini'."; +$lang['wits3avatdesc'] = "Zdefiniuj czas w sekundach, aby opoznic pobieranie zmienionych awatarów TS3.

Ta funkcja jest szczegolnie przydatna dla botow (muzycznych), ktore zmieniają okresowo swoj avatar."; +$lang['wits3dch'] = "Kanał domyślny"; +$lang['wits3dchdesc'] = "Identyfikator kanału, z ktorym bot powinien się połączyć.

Bot połączy się z tym kanałem po połączeniu z serwerem TeamSpeak."; $lang['wits3encrypt'] = "TS3 Query encryption"; $lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3host'] = "Adres TS3"; +$lang['wits3hostdesc'] = "Adres serwera TeamSpeak 3
(IP oder DNS)"; +$lang['wits3qnm'] = "Nazwa bota"; +$lang['wits3qnmdesc'] = "Nazwa, z tym połączeniem zapytania, zostanie ustanowiona.
Mozesz nazwac to za darmo."; +$lang['wits3querpw'] = "Hasło query TS3"; +$lang['wits3querpwdesc'] = "Hasło do query TeamSpeak 3
Hasło dla użytkownika query."; +$lang['wits3querusr'] = "Użytkownik query TS3"; +$lang['wits3querusrdesc'] = "Nazwa użytkownika zapytania TeamSpeak 3
Domyślna wartość to serveradmin
Oczywiście, możesz także utworzyć dodatkowe konto serwerowe tylko dla systemu Ranksystem.
Potrzebne uprawnienia, które można znaleźć:
%s"; +$lang['wits3query'] = "Port query TS3"; +$lang['wits3querydesc'] = "Port query TeamSpeak 3
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

Jesli nie jest domyslny, powinienes go znalezc w swoim 'ts3server.ini'."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Dzięki Query-Slowmode możesz zmniejszyć \"spam\" poleceń query 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):

%s

W związku z tym wartosci (czasy) z opoznieniem ultra stają się niedokładne o około 65 sekund! W zaleznosci od tego, co zrobic i / lub rozmiar serwera jeszcze wiekszy!"; $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['wits3voicedesc'] = "Port głosowy TeamSpeak 3
Domyślna wartość to 9987 (UDP)
To jest port, ktorego używasz rownież do łączenia się z klientem TS3."; $lang['witsz'] = "Log-Size"; $lang['witszdesc'] = "Set up the filesize of the log, at which the logfile will be rotated, when exceeded.

Define your value in Mebibyte.

When you increase the value, be sure, you have enough space on this partition. Too big logfiles could bring perfomance issues!

On changing this value, the logfile size will be checked with the next restart of the bot. Is the filesize bigger than the defined value, the logfile will be rotated immediately."; $lang['wiupch'] = "Update-Channel"; @@ -582,7 +587,7 @@ $lang['wiupch0'] = "stable"; $lang['wiupch1'] = "beta"; $lang['wiupchdesc'] = "The Ranksystem will be updated automatically if a new update is available. Choose here, which update-channel you want to join.

stable (default): You get the latest stable version. Recommended for production environments.

beta: You get the latest beta version. With this you get new features earlier, but the risk of bugs is much higher. Use at your own risk!

When you are changing from beta to stable release, the Ranksystem won't downgrade. It will rather wait for the next higher release of a stable version and update to this."; $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."; +$lang['wiverifydesc'] = "Wprowadź tutaj identyfikator kanału weryfikacyjnego.

Ten kanał należy skonfigurować manualnie na twoim serwerze TeamSpeak. Nazwe, uprawnienia i inne własciwości można zdefiniować według własnego wyboru; Tylko użytkownik powinien mieć możliwosc dołączenia do tego kanału!

Weryfikacja jest przeprowadzana przez użytkownika na stronie statystyk (/stats/). Jest to konieczne tylko wtedy, gdy odwiedzający strone nie może automatycznie zostać dopasowany/powiązany z użytkownikiem TeamSpeak.

Aby zweryfikować, że użytkownik TeamSpeak musi znajdować się w kanale weryfikacyjnym. Tam może otrzymać token, za pomocą którego zaloguje się na stronie statystyk."; +$lang['wivlang'] = "Język"; +$lang['wivlangdesc'] = "Wybierz domyślny język dla systemu Ranksystem.

Język jest również dostępny na stronie dla użytkowników i będzie przechowywany dla sesji."; ?> \ No newline at end of file diff --git a/languages/core_pt_Português_pt.php b/languages/core_pt_Português_pt.php index cd9fc1a..3c16cad 100644 --- a/languages/core_pt_Português_pt.php +++ b/languages/core_pt_Português_pt.php @@ -1,19 +1,25 @@ adicionado ao sistema de ranking agora."; -$lang['achieve'] = "Achievement"; -$lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; -$lang['botoff'] = "Bot is stopped."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; +$lang['asc'] = "ascendente"; +$lang['botoff'] = "Bot está parado."; +$lang['boton'] = "O bot está em execução..."; $lang['brute'] = "Muitos logins incorretos detectados na interface da web. Acesso bloqueado por 300 segundos! Último acesso pelo IP %s."; -$lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; -$lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; +$lang['brute1'] = "Foi detectada uma tentativa de login incorreta na interface web. Falha na tentativa de acesso do IP %s com nome de usuário %s."; +$lang['brute2'] = "Tentativa bem-sucedida de login na interface da web a partir do 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['chkfileperm'] = "Wrong file/folder permissions!
You need to correct the owner and access permissions of the named files/folders!

The owner of all files and folders of the Ranksystem installation folder must be the user of your webserver (e.g.: www-data).
On Linux systems you may do something like this (linux shell command):
%sAlso the access permission must be set, that the user of your webserver is able to read, write and execute files.
On Linux systems you may do something like this (linux shell command):
%sList of concerned files/folders:
%s"; -$lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP not found here!
Please insert a valid PHP command inside this file!

Definition out of %s:
%s
Result of your command:%sYou can test your command before via console by adding the parameter '-v'.
Example: %sYou should get back the PHP version!"; -$lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; -$lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; +$lang['chkfileperm'] = "Arquivo errado/permissões de pasta!
Você precisa corrigir o proprietário e acessar as permissões dos arquivos nomeados/pastas!

O propietário de todos os arquivos e pastas da pasta de instalação do Ranksystem deve ser o usuário do seu servidor da web (exlp.: www-data).
Nos sistemas Linux, você pode fazer algo assim (comando shell do linux):
%sTambém a permissão de acesso deve ser definida, que o usuário do seu servidor web seja capaz de ler, gravar e executar arquivos.
Nos sistemas Linux, você pode fazer algo assim (comando shell do linux):
%sLista de arquivos/pastas em questão:
%s"; +$lang['chkphpcmd'] = "Comando PHP incorreto definido dentro do arquivo %s! PHP não encontrado aqui!
Por favor, insira um comando PHP válido dentro deste arquivo!

Definição fora de %s:
%s
Resultado do seu comando:%sVocê pode testar seu comando antes via console adicionando o parâmetro '-v'.
Exemplo: %sVocê deve ver a versão PHP!"; +$lang['chkphpmulti'] = "Parece que você está executando múltipas versões PHP no seu sistema.

Seu web servidor (este site) está sendo executado com versão: %s
O comando definido em %s está sendo executado com versão: %s

Por favor, use a mesma versão do PHP para ambos!

Você pode definir a versão do Sistema de Ranking Bot dentro do arquivo %s. Mais informações e exemplos você encontrará dentro.
Definição atual fora do %s:
%sVocê também pode alterar a versão do PHP, que o seu servidor da web está usando. Use a Internet para obter ajuda para isso.

Recomendamos usar sempre a versão mais recente do PHP!

Se você não pode ajustar as versões do PHP no ambiente do sistema, e esta funcionando para os seus propósitos, esta ok. Contudo, a única maneira suportada é uma única versão PHP para ambos!"; +$lang['chkphpmulti2'] = "O caminho onde você pode encontrar o PHP no seu site:%s"; $lang['clean'] = "Procurando por clientes, que devem ser excluidos..."; +$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['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 'Query-Slowmode' está desativado!


Para o ajuste automático do banco de dados TeamSpeak, o ClientCleaner pode ser usado:
%s"; $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."; @@ -22,41 +28,38 @@ $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 - other)."; $lang['day'] = "%s dia"; $lang['days'] = "%s dias"; $lang['dbconerr'] = "Falha ao conectar ao banco de dados: "; -$lang['desc'] = "descending"; -$lang['duration'] = "Duration"; -$lang['errcsrf'] = "CSRF Token is wrong or expired (=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['desc'] = "descendente"; +$lang['descr'] = "Description"; +$lang['duration'] = "Duração"; +$lang['errcsrf'] = "CSRF token está incorreto ou expirou (=verificação-de-segurança falhou)! Atualize este site e tente novamente. Se você receber esse erro repetidamente, remova o cookie de sessão do seu navegador e tente novamente!"; $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['errgrplist'] = "Erro ao obter a lista de grupos do servidor: "; $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['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Escolha pelo menos um usuário!"; +$lang['errphp'] = "%1\$s está faltando. Instalação do %1\$s é necessária!"; $lang['errseltime'] = "Por favor, indique um tempo on-line para adicionar!"; +$lang['errselusr'] = "Escolha pelo menos um usuário!"; $lang['errukwn'] = "Um erro desconhecido ocorreu!"; -$lang['factor'] = "Factor"; +$lang['factor'] = "Fator"; $lang['highest'] = "maior classificação alcançada"; -$lang['insec'] = "in Seconds"; +$lang['insec'] = "em Segundos"; $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'] = "%1\$s é necessário, mas parece que não está instalado. Instalar %1\$s e tente novamente!"; -$lang['insterr3'] = "A função PHP %1\$s precisa ser ativada, mas parece estar desativada. Por favor, ative o PHP %1\$s e tente novamente!"; +$lang['insterr2'] = "%1\$s é necessário, mas parece que não está instalado. Instalar %1\$s e tente novamente!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "A função PHP %1\$s precisa ser ativada, mas parece estar desativada. Por favor, ative o PHP %1\$s e tente novamente!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Sua versão PHP (%s) está abaixo de 5.5.0. Atualize seu PHP 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['isntwicfg'] = "Não é possível salvar a configuração do banco de dados! Edite o 'other/dbconfig.php' com um chmod 740 (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['isntwichm'] = "Permissões de gravação falhou na pasta \"%s\". Por favor, dê a permissão chmod 740 (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)"; @@ -66,13 +69,14 @@ $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'] = "Type of the database the Ranksystem should be using.

The PDO Driver for PHP does need to be installed.
For more informations and an actual list of requirements have a look to the installation page:
%s"; +$lang['isntwidbtypedesc'] = "Tipo de banco de dados que o sistema Ranks deve estar usando.

O driver PDO para PHP precisa ser instalado.
Para mais informações e uma lista atual de requisitos, consulte a página de instalação:
%s"; $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['isntwiusr2'] = "Congratulations! You have finished the installation process."; +$lang['isntwiusr2'] = "Parabéns!! Você concluiu o processo de instalação."; $lang['isntwiusrcr'] = "Criar usuário para Interface web"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $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"; @@ -89,8 +93,8 @@ $lang['listsumi'] = "Tempo total afk"; $lang['listsumo'] = "Tempo total Online"; $lang['listuid'] = "ID ùnica"; $lang['login'] = "Entrar"; -$lang['msg0001'] = "The Ranksystem is running on version: %s"; -$lang['msg0002'] = "A list of valid bot commands can be found here [URL]https://ts-ranksystem.com/#commands[/URL]"; +$lang['msg0001'] = "O sistema Ranksystem está sendo executado na versão: %s"; +$lang['msg0002'] = "Uma lista de comandos bot válidos pode ser encontrada aqui [URL]https://ts-ranksystem.com/#commands[/URL]"; $lang['msg0003'] = "Você não é elegível para usar este comando!"; $lang['msg0004'] = "Cliente %s (%s) fez o pedido de desligamento."; $lang['msg0005'] = "cya"; @@ -98,8 +102,8 @@ $lang['msg0006'] = "brb"; $lang['msg0007'] = "Cliente %s (%s) fez o pedido de %s."; $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."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; +$lang['msg0010'] = "Comando de execução !log para obter mais informações."; +$lang['msg0011'] = "Cache de grupo limpo. Começando a carregar grupos e ícones..."; $lang['noentry'] = "Nenhuma entrada encontrada.."; $lang['pass'] = "Senha"; $lang['pass2'] = "Alterar a senha"; @@ -108,28 +112,28 @@ $lang['pass4'] = "Nova senha"; $lang['pass5'] = "Esqueceu a senha?"; $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['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['sccupcount'] = "Tempo ativo de %s segundos para o Client-ID única(%s) será adicionado em alguns segundos (dê uma olhada no log do Ranksystem)."; +$lang['sccupcount2'] = "Adicionado um tempo ativo de %s segundos para o Client-ID única (%s); solicitado sobre a função de administrador."; $lang['setontime'] = "tempo extra"; +$lang['setontime2'] = "remover tempo"; $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['setontime2'] = "remove time"; -$lang['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from their old online time.

The entered online time will be considered for the rank up and should take effect immediately."; +$lang['setontimedesc2'] = "Remover tempo online dos clientes selecionados anteriores. Cada usuário será removido desta vez do antigo horário online.

O tempo on-line inserido será considerado para a classificação e deve 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['sgrprerr'] = "Usuário afetado: %s (Client-ID única: %s; Client-database-ID %s) e grupo do servidor %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_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Adicionar Grupos/Tags"; -$lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; +$lang['stag0001desc'] = "Com o 'Atribuidor de grupos' função que você permite que o usuário do TeamSpeak gerencie seus grupos de servidores (como autoatendimento) no servidor TeamSpeak (exemplo. jogos, país, grupos de genero).

Com a ativação desta função, um novo item de menu aparecerá nas estatísticas/site. Sobre esse item de menu, o usuário pode gerenciar seus próprios grupos de servidores.

Você define quais grupos devem estar disponíveis.
Você também pode definir um número para limitar os grupos simultâneos.."; $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['stag0003'] = "Select the servergroups, which a user can assign to himself."; $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."; @@ -141,9 +145,9 @@ $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['stag0016'] = "verification needed!"; -$lang['stag0017'] = "verificate here.."; +$lang['stag0015'] = "Não foi possível encontrar você no servidor TeamSpeak. Por favor %sclique aqui%s para se verificar."; +$lang['stag0016'] = "verificação necessária!"; +$lang['stag0017'] = "verifique aqui.."; $lang['stix0001'] = "Estatísticas do Servidor"; $lang['stix0002'] = "Total de usuários"; $lang['stix0003'] = "Ver detalhes"; @@ -288,22 +292,24 @@ $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['stri0013'] = "%s pela tradução em russo"; +$lang['stri0014'] = "%s pela inicialização do design bootstrap"; +$lang['stri0015'] = "%s pela tradução em italiano"; +$lang['stri0016'] = "%s pela tradução em arábico"; +$lang['stri0017'] = "%s pela tradução em romena"; +$lang['stri0018'] = "%s pela tradução em holandês"; +$lang['stri0019'] = "%s pela tradução em francês"; +$lang['stri0020'] = "%s pela tradução em português"; +$lang['stri0021'] = "%s pelo excelente suporte no GitHub e no nosso servidor público, compartilhando suas idéias, testando antes toda merda e muito mais"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "De Todos os Tempos"; +$lang['sttm0001'] = "Do Mês"; $lang['sttw0001'] = "Top Usuários"; $lang['sttw0002'] = "Da Semana"; $lang['sttw0003'] = "Com %s %s online"; @@ -318,9 +324,7 @@ $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['sttw0015'] = "minutos"; $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."; @@ -333,11 +337,11 @@ $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_day'] = "Dia(s)"; +$lang['time_hour'] = "Hr(s)"; +$lang['time_min'] = "Min(s)"; $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['unknown'] = "unknown"; $lang['upgrp0001'] = "Existe um grupo de servidor ID %s configurado dentro de seu '%s' parâmetro (webinterface -> rank), 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"; @@ -353,24 +357,25 @@ $lang['upgrp0011'] = "Baixe o novo ícone do grupo de servidores para o grupo $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]%s[/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]%s[/URL]."; +$lang['upmsg2'] = "\nEi, o [B]Sistema de ranking[/B] foi atualizado.\n\n[B]nova versão: %s[/B]\n\nPorfavor cheque o nosso site para mais informações [URL]%s[/URL]."; $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 (-> stats page) do Sistema de Ranking.

Sem esta atividade, não é possível verificar você para o Sistema de Ranking neste momento! Desculpa :("; +$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'] = "Bot-Admin"; -$lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiadmuuid'] = "Bot-Administrador"; +$lang['wiadmuuiddesc'] = "Escolha o usuário, que são os administradores do sistema Ranks.
Também são possíveis várias seleções.

Aqui, os usuários listados são o usuário do servidor TeamSpeak. Certifique-se de que você está online lá. Quando estiver offline, fique online, reinicie o Ranksystem Bot e recarregue este site.


O administrador do Ranksystem Bot tem os privilégios :

- para redefinir a senha da interface da Web.
(Nota: sem definição de administrador, não é possível redefinir a senha!)

-usando comandos de bot com privilégios de administrador de bot

(A lista de comandos que você encontrará %saqui%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "Impulso"; +$lang['wiboost2desc'] = "Você pode definir grupos de impulso, por exemplo, para recompensar usuários. Com isso eles vão ganhar tempo mais rápido(impulsionado) e então, alcança o próximo nível mais rapidamente.

Passos a fazer:

1) Crie um grupo de servidore no seu servidor, que deve ser usado para o aumento.

2) Defina a definição de impulso neste site.

Grupo de servidor: Escolha o grupo de servidores que deve acionar o impulso.

Fator de impulso: O fator para aumentar o tempo online/ativo do usuário, que possuía esse grupo (exemplo 2 vezes). O fator, também é possível números decimais (exemplo 1.5). Casas decimais devem ser separadas por um ponto!

Duração em Segundos: Defina quanto tempo o aumento deve ficar ativo. O tempo expirou, o grupo de servidores de reforço é removido automaticamente do usuário em questão. O tempo começa a correr assim que o usuário obtém o grupo de servidores. Não importa se o usuário está online ou não, a duração está se correndo.

3) Dê a um ou mais usuários no servidor TS o grupo definido para impulsionalos."; $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.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

grupo do servidor ID => factor => time (em segundos)

Cada entrada deve separar do próximo com uma vírgula.

Exemplo:
12=>2=>6000,13=>1.25=>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 1.25 por 2500 segundos, e assim por diante ..."; -$lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostempty'] = "A definição está vazia. Clique no símbolo de mais para definir um!"; $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!"; @@ -381,18 +386,18 @@ $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.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "Há um erro na configuração do Sistema de ranking. Acesse a interface da web e corrija as Configurações do rank!"; +$lang['wichdbiddesc'] = "Redefinir o tempo online de um usuário, se o seu TeamSpeak Client-database-ID mudado.
O usuário será correspondido por seu Client-ID único.

Se esta função estiver desativada, a contagem do tempo online (ou ativo) continuará com o valor antigo, com o novo Client-database-ID. Nesse caso, apenas o Client-database-ID do usuário será substituído.


Como o Client-database-ID muda?

Em todos os casos a seguir, o cliente obtém um novo Client-database-ID com a próxima conexão ao servidor TS3.

1) automaticamente pelo servidor TS3
O servidor TeamSpeak tem uma função para excluir o usuário após X dias fora do banco de dados. Por padrão, isso acontece quando um usuário fica off-line por 30 dias e não faz parte de nenhum grupo de servidor permanente..
Esta opção você pode mudar dentro do ts3server.ini:
dbclientkeepdays=30

2) restaurando a TS3 snapshot
Quando você está restaurando um servidor TS3 snapshot, a database-IDs será mudado.

3) removendo manualmente o cliente
Um cliente TeamSpeak também pode ser removido manualmente ou por um script de terceiros do servidor TS3."; $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['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['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['widbcfgsuc'] = "Configurações de banco de dados salvas com sucesso."; $lang['widbg'] = "Log-Level"; -$lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; +$lang['widbgdesc'] = "Configurar o nível de log do sistema de ranking. Com isso, você pode decidir quanta informação deve ser gravada no arquivo \"ranksystem.log\"

Quanto maior o nível de log, mais informações você obterá.

Alterar o nível de log entrará em vigor com a próxima reinicialização do sistema de ranking.

Por favor, não deixe o Ranksystem funcionando por muito tempo com \"6 - DEBUG\" isso pode prejudicar seu sistema de arquivos!"; $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['widelsg'] = "remova os grupos do servidor"; @@ -409,50 +414,50 @@ $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) tempo de contagem (padrão) : 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['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; +$lang['wigrpimp'] = "Modo de Importação"; +$lang['wigrpt1'] = "Tempo em Segundos"; +$lang['wigrpt2'] = "Grupo do servidor"; $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

Max. value is 999.999.999 seconds (over 31 years)

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['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime2desc'] = "Define um tempo após o qual um usuário deve obter automaticamente um grupo de servidor predefinido.

tempo em segundos => ID do grupo de servidor

máx. o valor é 999.999.999 segundos (mais de 31 anos).

Os segundos inseridos serão classificados como 'hora online' ou 'hora ativa', dependendo da configuração do 'modo de hora' escolhido.


O tempo em segundos precisa ser inserido cumulativo!

errado:

 100 segundos, 100 segundos, 50 segundos
correto:

 100 segundos, 200 segundos, 250 segundos 
"; +$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

Max. valor é 999.999.999 segundos (mais de 31 anos)

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['wigrptk'] = "comulativo"; $lang['wihladm'] = "Classificação (Modo Admin)"; -$lang['wihladm0'] = "Function description (click)"; -$lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; +$lang['wihladm0'] = "Function description (Clique)"; +$lang['wihladm0desc'] = "Escolha uma ou mais opções de redefinição e pressione \"iniciar redefinição\" para iniciá-lo.
Cada opção é descrita por si só.

Depois de iniciar o trabalho de redefinição, você pode ver o status neste site.

A tarefa de redefinição será realizada sobre o sistema de ranking como um trabalho.
É necessário que o Ranksystem Bot esteja funcionando.
NÃO pare ou reinicie o bot durante a reinicialização!

Durante o tempo de execução da redefinição, o sistema Ranks fará uma pausa em todas as outras coisas. Depois de concluir a redefinição, o Bot continuará automaticamente com o trabalho normal.
Novamente, NÃO pare ou reinicie o Bot!

Quando todos os trabalhos estiverem concluídos, você precisará confirmá-los. Isso redefinirá o status dos trabalhos. Isso possibilita iniciar uma nova redefinição.

No caso de uma redefinição, você também pode querer retirar grupos de servidor dos usuários. É importante não mudar a 'definição de classificação', antes de você fazer essa redefinição. Após a redefinição, você pode alterar a 'definição de classificação', certo!
A retirada de grupos de servidor pode demorar um pouco. Um 'Query-Slowmode' ativo aumentará ainda mais a duração necessária. Recomendamos um 'Query-Slowmode' desativado !


Esteja ciente de que não há como retornar! "; $lang['wihladm1'] = "tempo extra"; $lang['wihladm2'] = "remover tempo"; -$lang['wihladm3'] = "Reset Ranksystem"; -$lang['wihladm31'] = "reset all user stats"; -$lang['wihladm311'] = "zero time"; -$lang['wihladm312'] = "delete users"; -$lang['wihladm31desc'] = "Choose one of the both options to reset the statistics of all users.

zero time: Resets the time (online time & idle time) of all users to a value of 0.

delete users: With this option, all users will be deleted out of the Ranksystem database. The TeamSpeak database will not be touched!


Both options affect the following things..

.. on zero time:
Reset Server statistics summary (table: stats_server)
Reset My statistics (table: stats_user)
Reset List Rankup / user statistics (table: user)
Cleans Top users / user statistic snapshots (table: user_snapshot)

.. on delete users:
Cleans donut chart nations (table: stats_nations)
Cleans donut chart platforms (table: stats_platforms)
Cleans donut chart versions (table: stats_versions)
Reset Server statistics summary (table: stats_server)
Cleans My statistics (table: stats_user)
Cleans List Rankup / user statistics (table: user)
Cleans user ip-hash values (table: user_iphash)
Cleans Top users / user statistic snapshots (table: user_snapshot)"; -$lang['wihladm32'] = "withdraw servergroups"; -$lang['wihladm32desc'] = "Activate this function to withdraw the servergroups from all TeamSpeak users.

The Ranksystem scans each group, which is defined inside the 'rank up definition'. It will remove all user, which are known by the Ranksystem, out of this groups.

That's why it is important not to change the 'rank up definition', before you have done the reset. After reset you can change the 'rank up definition', sure!


The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


The servergroup itself on the TeamSpeak server will not be removed / touched."; -$lang['wihladm33'] = "remove webspace cache"; -$lang['wihladm33desc'] = "Activate this function to remove the cached avatars and servergroup icons, which are saved on the web space.

Affected directories:
- avatars
- tsicons

After finishing the reset job, the avatars and icons are automatically downloaded again."; -$lang['wihladm34'] = "clean \"Server usage\" graph"; -$lang['wihladm34desc'] = "Activate this function to empty the server usage graph on the stats site."; -$lang['wihladm35'] = "start reset"; -$lang['wihladm36'] = "stop Bot afterwards"; -$lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all reset things are done.

This stop is exactly working like the normal 'stop' parameter. Means, the Bot will not start with the 'check' parameter.

To start the Ranksystem Bot use the 'start' or 'restart' parameter."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs2'] = "in progress.."; -$lang['wihladmrs3'] = "faulted (ended with errors!)"; -$lang['wihladmrs4'] = "finished"; -$lang['wihladmrs5'] = "Reset Job(s) successfully created."; -$lang['wihladmrs6'] = "There is still a reset job active. Please wait until all jobs are finished before you start the next!"; -$lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; -$lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; +$lang['wihladm3'] = "Resetar o Sistema de Ranking"; +$lang['wihladm31'] = "redefinir todas as estatísticas do usuário"; +$lang['wihladm311'] = "zerar tempo"; +$lang['wihladm312'] = "excluir usuários"; +$lang['wihladm31desc'] = "Escolha uma das duas opções para redefinir as estatísticas de todos os usuários.

zerar tempo: Redefine o tempo (tempo online e tempo ocioso) de todos os usuários para um valor 0.

excluir usuários: Com esta opção, todos os usuários serão excluídos do banco de dados do Ranksystem. O banco de dados TeamSpeak não sera modificado!


Ambas as opções afetam o seguinte..

.. com zerar tempo:
Redefine o resumo de estatísticas do servidor (table: stats_server)
Redefine as minhas estatísticas (table: stats_user)
Reseta lista de classificação / estatisticas do usuário (table: user)
Limpa Top usuários e estatisticas (table: user_snapshot)

.. com deletar usuários:
Limpa nações do gráfico (table: stats_nations)
Limpa plataformas do gráfico (table: stats_platforms)
Limpa versões do gráfico (table: stats_versions)
Reseta o resumo de estatísticas do servidor (table: stats_server)
Limpa minhas estatísticas (table: stats_user)
Limpa a classificação da lista / estatísticas do usuário(table: user)
Limpa valores de hash IP do usuário (table: user_iphash)
Limpa top usuários (table: user_snapshot)"; +$lang['wihladm32'] = "retirar grupos de servidores"; +$lang['wihladm32desc'] = "Ative esta função para retirar os grupos de servidores de todos os usuários do TeamSpeak.

O sistema Ranks varre cada grupo, definido dentro do 'definição de classificação'. Ele removerá todos os usuários conhecidos pelo Ranksystem desses grupos.

Por isso é importante não mudar o 'definição de classificação', antes de você fazer a redefinição. Após a redefinição, você pode alterar o 'definição de classificação', certo!


A retirada de grupos de servidores pode demorar um pouco. Se ativo 'Query-Slowmode' aumentará ainda mais a duração necessária. Recomendamos desabilitar 'Query-Slowmode'!


O seus própios grupos de servidor no servidor TeamSpeak não será removido/tocado."; +$lang['wihladm33'] = "remover cache do espaço da web"; +$lang['wihladm33desc'] = "Ative esta função para remover os avatares em cache e os ícones de grupo de servidor, que são salvos no espaço da web.

Pastas afetadas:
- avats
- tsicons

Após concluir o trabalho de redefinição, os avatares e ícones são baixados automaticamente novamente."; +$lang['wihladm34'] = "limpar \"Uso do servidor\" grafico"; +$lang['wihladm34desc'] = "Ative esta função para esvaziar o gráfico de uso do servidor no site de estatísticas."; +$lang['wihladm35'] = "iniciar redefinição"; +$lang['wihladm36'] = "parar o Bot depois"; +$lang['wihladm36desc'] = "Esta opção está ativada, o bot irá parar depois que todas as redefinições forem feitas.

O Bot irá parar após todas as tarefas de redefinição serem feitas. Essa parada está funcionando exatamente como o parâmetro normal 'parar'. Significa que o Bot não começará com o parâmetro 'checar'.

Para iniciar o sistema de ranking, use o parâmetro 'iniciar' ou 'reiniciar'."; +$lang['wihladmrs'] = "Status do trabalho"; +$lang['wihladmrs0'] = "desativado"; +$lang['wihladmrs1'] = "criado"; +$lang['wihladmrs10'] = "Trabalho confirmado com sucesso!"; +$lang['wihladmrs11'] = "Tempo estimado para redefinir o sistema"; +$lang['wihladmrs12'] = "Tem certeza de que ainda deseja redefinir o sistema?"; +$lang['wihladmrs13'] = "Sim, inicie a redefinição"; +$lang['wihladmrs14'] = "Não, cancelar redefinição"; +$lang['wihladmrs15'] = "Por favor, escolha pelo menos uma opção!"; +$lang['wihladmrs16'] = "ativado"; +$lang['wihladmrs2'] = "em progresso.."; +$lang['wihladmrs3'] = "falhou (terminou com erros!)"; +$lang['wihladmrs4'] = "terminou"; +$lang['wihladmrs5'] = "Trabalho de redefinição criado com sucesso."; +$lang['wihladmrs6'] = "Ainda existe um trabalho de redefinição ativo. Aguarde até que todos os trabalhos sejam concluídos antes de iniciar a próxima!"; +$lang['wihladmrs7'] = "Pressione %s Atualizar %s para monitorar o status."; +$lang['wihladmrs8'] = "NÃO pare ou reinicie o bot durante a reinicialização!"; +$lang['wihladmrs9'] = "Porfavor %s comfirme %s os trabalho. Isso redefinirá o status de todos os trabalhos. É necessário poder iniciar uma nova redefinição."; $lang['wihlset'] = "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."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Defina uma mensagem, que será mostrada no /stats/ pág $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['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 (TeamSpeak -> Bot-Admin). Isso é muito importante caso você perdeu seus dados de login para a interface da web (redefinir usando o ID-Ùnico)."; +$lang['winav12'] = "Complementos"; $lang['winav2'] = "Base de dados"; $lang['winav3'] = "Núcleo"; $lang['winav4'] = "Outras configuraões"; @@ -474,32 +482,29 @@ $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 (TeamSpeak -> Bot-Admin). 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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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['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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Exemplo:
Você alcançou a maior classificação de  %1$s Dias, %2$s horas e %3$s minutos e %4$s segundos.
"; $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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


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 Bot-Admin dentro da interface web antes. Não há como redefinir a senha! ;-;"; +$lang['wirtpw1'] = "Desculpe, mano, você se esqueceu de inserir sua Bot-Admin dentro da interface web antes. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$lang['wirtpw10'] = "Você precisa estar online no servidor TeamSpeak3."; +$lang['wirtpw11'] = "Você precisa estar online com o ID-Ùnico, que é salvo como Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin não encontrada no servidor TS3. Você precisa estar online com o ID exclusivo do cliente, que é salvo como Bot-Admin."; $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['wirtpw5'] = "Foi enviada uma mensagem de texto privada no TeamSpeak 3 ao administrador com a nova senha. Clique %s aqui %s para fazer 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 Bot-Admin."; -$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"; @@ -512,11 +517,11 @@ $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['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; +$lang['wishcolha'] = "hash endereço de IP"; +$lang['wishcolha0'] = "desativar hash"; +$lang['wishcolha1'] = "hash seguro"; +$lang['wishcolha2'] = "hashing rápido (padrão)"; +$lang['wishcolhadesc'] = "O servidor TeamSpeak 3 armazena o endereço IP de cada cliente. Isso é necessário para o Ranksystem vincular o usuário do site da página de estatísticas ao usuário relacionado do TeamSpeak.

Com esta função, você pode ativar uma criptografia/hash dos endereços IP dos usuários do TeamSpeak. Quando ativado, apenas o valor do hash será armazenado no banco de dados, em vez de armazená-lo em texto sem formatação. Isso é necessário em alguns casos de sua privacidade legal; especialmente necessário devido ao GDPR da UE.

hash rápido (padrão): Os endereços IP serão hash. O salt é diferente para cada instância do sistema de classificação, mas é o mesmo para todos os usuários no servidor. Isso o torna mais rápido, mas também mais fraco como o 'hash seguro'.

hash seguro: Os endereços IP serão hash. Cada usuário terá seu próprio sal, o que dificulta a descriptografia do IP (= seguro). Este parâmetro está em conformidade com o EU-GDPR. Contra: Essa variação afeta o desempenho, especialmente em servidores TeamSpeak maiores, diminui bastante a página de estatísticas no primeiro carregamento do site. Além disso, gera os recursos necessários.

desativar hashing: Se esta função estiver desativada, o endereço IP de um usuário será armazenado em texto sem formatação. Essa é a opção mais rápida que requer menos recursos.


Em todas as variantes, os endereços IP dos usuários serão armazenados apenas desde que o usuário esteja conectado ao servidor TS3 (menos coleta de dados -EU-GDPR).

Os endereços IP dos usuários serão armazenados apenas quando um usuário estiver conectado ao servidor TS3. Ao alterar essa função, o usuário precisa se reconectar ao servidor TS3 para poder ser verificado na página do Sistema de ranking Web."; $lang['wishcolit'] = "Tempo inativo"; $lang['wishcolitdesc'] = "Mostrar coluna 'Tempo inativo' na list_rankup.php"; $lang['wishcolls'] = "Visto pela ultima vez"; @@ -539,30 +544,30 @@ $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['wishmax'] = "show max. Clients"; -$lang['wishmaxdesc'] = "Show the max. Clients as line inside the server usage graph on 'stats/' page."; +$lang['wishmax'] = "Mostrar max. Clientes"; +$lang['wishmaxdesc'] = "Mostrar o máx. Clientes como linha dentro do gráfico de uso do servidor na página 'status/'."; $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['wishsort'] = "default sorting order"; -$lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wishsort'] = "ordem de classificação padrão"; +$lang['wishsortdesc'] = "Defina a ordem de classificação padrão para a página Classificação da lista."; +$lang['wistcodesc'] = "Especifique uma contagem necessária de conexões do servidor para atender à conquista."; +$lang['wisttidesc'] = "Especifique um tempo necessário (em horas) para cumprir a conquista."; $lang['wisupidle'] = "time 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['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Mudanças salvas com sucesso!"; +$lang['wisvinfo1'] = "Atenção!! Alterando o modo de hash do endereço IP do usuário, é necessário que o usuário conecte novo ao servidor TS3 ou o usuário não possa ser sincronizado com a página de estatísticas."; $lang['wisvres'] = "Você precisa reiniciar o Sistema de ranking antes para que as mudanças entrem em vigor!"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Mudanças salvas com sucesso!"; $lang['witime'] = "Fuso horário"; $lang['witimedesc'] = "Selecione o fuso horário em que o servidor está hospedado.

The timezone affects the timestamp inside the log (ranksystem.log)."; $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['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Ative esta opção para criptografar a comunicação entre o Sistema de ranking e o servidor TeamSpeak 3.(SSH).
Quando essa função estiver desativada, a comunicação será feita em texto sem formatação (RAW).Isso pode ser um risco à segurança, especialmente quando o servidor TS3 e o sistema Ranks estão sendo executados em máquinas diferentes.

Verifique também se você verificou a porta de consulta TS3, que precisa(talvez) ser alterada no sistema de ranking !

Atenção: A criptografia SSH precisa de mais tempo de CPU e com esse verdadeiramente mais recursos do sistema. É por isso que recomendamos usar uma conexão RAW (criptografia desativada) se o servidor TS3 e o sistema Ranks estiverem em execução na mesma máquina/servidor (localhost / 127.0.0.1). Se eles estiverem sendo executados em máquinas separadas, você deverá ativar a conexão criptografada!

Requisitos:

1) TS3 Server versão 3.3.0 ou superior.

2) A extensão PHP PHP-SSH2 é necessária.
No Linux, você pode instalar com o seguinte comando:
%s
3) A criptografia precisa ser ativada no servidor TS3! < br> Ative os seguintes parâmetros dentro do seu 'ts3server.ini' e personalize-o de acordo com as suas necessidades:
%s Após alterar as configurações do servidor TS3, é necessário reiniciar o servidor TS3."; $lang['wits3host'] = "TS3 Endereço do host"; $lang['wits3hostdesc'] = "Endereço do servidor TeamSpeak 3
(IP ou DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Com o Query-Slowmode, 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):

%s

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['wits3qnmdesc'] = "O nome, com isso, a conexão de consulta será estabelecida.
Você pode nomeá-lo livremente."; $lang['wits3querpw'] = "TS3 Query-senha"; @@ -570,17 +575,17 @@ $lang['wits3querpwdesc'] = "TeamSpeak 3 senha query
Senha para o usuário da $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:
%s"; $lang['wits3query'] = "TS3 Porta-query"; -$lang['wits3querydesc'] = "TeamSpeak 3 porta query
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

Se não for padrão, você deve encontrar a sua em 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3querydesc'] = "Consulta de porta do TeamSpeak 3 - O RAW padrão (texto sem formatação) é 10011 (TCP)
O SSH padrão (criptografado) é 10022 (TCP)

Se você não tiver um padrão, você deve encontrar sua em 'ts3server.ini'."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Com o Query-Slowmode, 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):

%s

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['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['witsz'] = "Log-Size"; $lang['witszdesc'] = "Set up the filesize of the log, at which the logfile will be rotated, when exceeded.

Define your value in Mebibyte.

When you increase the value, be sure, you have enough space on this partition. Too big logfiles could bring perfomance issues!

On changing this value, the logfile size will be checked with the next restart of the bot. Is the filesize bigger than the defined value, the logfile will be rotated immediately."; -$lang['wiupch'] = "Update-Channel"; -$lang['wiupch0'] = "stable"; +$lang['wiupch'] = "Canal de atualizão"; +$lang['wiupch0'] = "estável"; $lang['wiupch1'] = "beta"; -$lang['wiupchdesc'] = "The Ranksystem will be updated automatically if a new update is available. Choose here, which update-channel you want to join.

stable (default): You get the latest stable version. Recommended for production environments.

beta: You get the latest beta version. With this you get new features earlier, but the risk of bugs is much higher. Use at your own risk!

When you are changing from beta to stable release, the Ranksystem won't downgrade. It will rather wait for the next higher release of a stable version and update to this."; +$lang['wiupchdesc'] = "O sistema Ranks será atualizado automaticamente se uma nova atualização estiver disponível. Escolha aqui qual canal de atualização você deseja ingressar.

stable (padrão) : Você obtém a versão estável mais recente. Recomendado para ambientes de produção.

beta : Você obtém a versão beta mais recente. Com isso, você obtém novos recursos mais cedo, mas o risco de erros é muito maior. Use por sua conta e risco!

Quando você está mudando da versão beta para a versão estável, o Ranksystem não será rebaixado. Ele prefere aguardar o próximo lançamento superior de uma versão estável e atualizar para este."; $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"; diff --git a/languages/core_ro_Română_ro.php b/languages/core_ro_Română_ro.php index fcb522e..c3b0d3d 100644 --- a/languages/core_ro_Română_ro.php +++ b/languages/core_ro_Română_ro.php @@ -1,10 +1,12 @@ adaugat la Sistem Rank acum."; $lang['achieve'] = "Achievement"; +$lang['adduser'] = "Userul %s (unique Client-ID: %s; Client-database-ID %s) este necunoscut -> adaugat la Sistem Rank acum."; +$lang['api'] = "API"; +$lang['apikey'] = "API Key"; $lang['asc'] = "ascending"; -$lang['boton'] = "Bot is running..."; $lang['botoff'] = "Bot is stopped."; +$lang['boton'] = "Bot is running..."; $lang['brute'] = "Au fost detectate prea multe conectari incorecte pe interfata web. Au fost blocate datele de conectare timp de 300 de secunde! Ultimul acces de pe IP: %s."; $lang['brute1'] = "Incorrect login attempt on the webinterface detected. Failed access attempt from IP %s with username %s."; $lang['brute2'] = "Successful login attempt to the webinterface from IP %s."; @@ -14,6 +16,10 @@ $lang['chkphpcmd'] = "Wrong PHP command defined inside the file %s! PHP $lang['chkphpmulti'] = "It seems to be, you are running multiple PHP versions on your system.

Your webserver (this site) is running with version: %s
The defined command in %s is running with version: %s

Please use the same PHP version for both!

You can define the version for the Ranksystem Bot inside the file %s. More information and examples you will find inside.
Current definition out of %s:
%sYou can also change the PHP version, your webserver is using. Please use the world wide web to get help for this.

We recommend to use always the latest PHP version!

If you can't adjust the PHP versions on your system environment, it works for your purposes, it's ok. However, the only supported way is one single PHP version for both!"; $lang['chkphpmulti2'] = "The path where you could find PHP on your website:%s"; $lang['clean'] = "Scanam clien?ii care trebuie ?ter?i..."; +$lang['clean0001'] = "Avatarul clientului %s (ID: %s) a fosts ters cu succes."; +$lang['clean0002'] = "Eroare la stergerea avatarului inutil %s (unqiue-ID: %s). Verificati permisiunea pentru dosarul \"avatars\"!"; +$lang['clean0003'] = "Verificati daca baza de date pentru curatare este terminata. Toate lucrurile inutile au fost sterse."; +$lang['clean0004'] = "Verificati daca ati ?ters utilizatorii. Nimic nu a fost schimbat, deoarece functia 'clienti curati' este dezactivata (other)."; $lang['cleanc'] = "Utilizatori cura?i"; $lang['cleancdesc'] = "Cu aceasta func?ie clien?ii vechi din Ranksystem se elimina.

La sfâr?it, Ranksystem sincronizat cu baza de date TeamSpeak. Utilizatorii , care nu exista în TeamSpeak, vor fi ?ter?i din Ranksystem.

Aceasta func?ie este activata numai atunci când 'Query-SlowMode' este dezactivat!


Pentru reglarea automata a bazei de date TeamSpeak , ClientCleaner poate fi folosit:
%s"; $lang['cleandel'] = "Au fost %s clien?ii elimina?i din baza de date Ranksystem , pentru ca ei nu mai erau existen?i în baza de date TeamSpeak "; @@ -22,14 +28,11 @@ $lang['cleanp'] = "Perioada de cura?are"; $lang['cleanpdesc'] = "Seta?i un timp care trebuie sa treaca înainte de a se executa cura?irea clien?ilor.

Seta?i un timp în secunde.

Recomandat este o data pe zi , deoarece cura?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'] = "Avatarul clientului %s (ID: %s) a fosts ters cu succes."; -$lang['clean0002'] = "Eroare la stergerea avatarului inutil %s (unqiue-ID: %s). Verificati permisiunea pentru dosarul \"avatars\"!"; -$lang['clean0003'] = "Verificati daca baza de date pentru curatare este terminata. Toate lucrurile inutile au fost sterse."; -$lang['clean0004'] = "Verificati daca ati ?ters utilizatorii. Nimic nu a fost schimbat, deoarece functia 'clienti curati' este dezactivata (other)."; $lang['day'] = "%s day"; $lang['days'] = "%s zile"; $lang['dbconerr'] = "Nu a reu?it sa se conecteze la baza de date MySQL: "; $lang['desc'] = "descending"; +$lang['descr'] = "Description"; $lang['duration'] = "Duration"; $lang['errcsrf'] = "CSRF Token is wrong or expired (=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'] = "Modificarile dvs. nu au fost stocate in baza de date, deoarece s-au produs erori. Remediati problemele si salvati modificarile dupa!"; @@ -40,9 +43,9 @@ $lang['errlogin3'] = "Protec?ie for?a bruta: Prea multe gre?eli. Banat pentru $lang['error'] = "Eroare"; $lang['errorts3'] = "Eroare TS3: "; $lang['errperm'] = "Verifica permisiunile pentru folderul '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Adauga cel putin un utilizator!"; +$lang['errphp'] = "%1\$s is missed. Installation of %1\$s is required!"; $lang['errseltime'] = "Introdu timp online pentru a adauga!"; +$lang['errselusr'] = "Adauga cel putin un utilizator!"; $lang['errukwn'] = "A aparut o eroare necunoscuta!"; $lang['factor'] = "Factor"; $lang['highest'] = "Cel mai înalt rang atins"; @@ -51,12 +54,12 @@ $lang['install'] = "Instalare"; $lang['instdb'] = "Instalam baza de date:"; $lang['instdbsuc'] = "Baza de date %s a fost creata cu succes."; $lang['insterr1'] = "ATENTIE: Incercati sa instalati sistemul rank, dar exista deja o baza de date cu numele \"%s\". Instalarea corecta a acestei baze de date va fi abandonata!
Asigura?i-va ca doriti acest lucru. Daca nu, alegeti un alt nume de baza de date."; -$lang['insterr2'] = "%1\$s este necesar, dar nu pare sa fie instalat. Instalare %1\$s si incearca din nou!"; -$lang['insterr3'] = "Functia PHP %1\$s trebuie sa fie activata, dar pare sa fie dezactivata. Activati funcia PHP %1\$s si incearca din nou!"; +$lang['insterr2'] = "%1\$s este necesar, dar nu pare sa fie instalat. Instalare %1\$s si incearca din nou!
Path to your PHP config file, if one is defined and loaded: %3\$s"; +$lang['insterr3'] = "Functia PHP %1\$s trebuie sa fie activata, dar pare sa fie dezactivata. Activati funcia PHP %1\$s si incearca din nou!
Path to your PHP config file, if one is defined and loaded: %3\$s"; $lang['insterr4'] = "Versiunea dvs. PHP (%s) este sub 5.5.0. Actualizati-va PHP-ul si ?ercati din nou!"; -$lang['isntwicfg'] = "Nu se poate salva configura?ia bazei de date ! Va rugam sa modifica?i 'other/dbconfig.php' cu acces chmod 0777 (windows 'full access') ?i incerca?i iar."; +$lang['isntwicfg'] = "Nu se poate salva configura?ia bazei de date ! Va rugam sa modifica?i 'other/dbconfig.php' cu acces chmod 740 (windows 'full access') ?i incerca?i iar."; $lang['isntwicfg2'] = "Configure Webinterface"; -$lang['isntwichm'] = "Scrierea permisiunilor a esuat in dosarul \"%s\". Va rugam sa le dati un chmod 777 (pe accesul complet la ferestre) ?i sa ?erca?i sa porni?i din nou sistemul Ranks."; +$lang['isntwichm'] = "Scrierea permisiunilor a esuat in dosarul \"%s\". Va rugam sa le dati un chmod 740 (pe accesul complet la ferestre) ?i sa ?erca?i sa porni?i din nou sistemul Ranks."; $lang['isntwiconf'] = "Deschide?i %s sa configura?i Ranksystem!"; $lang['isntwidbhost'] = "Host baza de date:"; $lang['isntwidbhostdesc'] = "Server DB
(IP sau DNS)"; @@ -73,6 +76,7 @@ $lang['isntwidel'] = "Va rugam sa ?terge?i fi?ierul 'install.php' din webserve $lang['isntwiusr'] = "Utilizator pentru webinterface creat cu succes."; $lang['isntwiusr2'] = "Congratulations! You have finished the installation process."; $lang['isntwiusrcr'] = "Creare acces"; +$lang['isntwiusrd'] = "Create login credentials to access the Ranksystem Webinterface."; $lang['isntwiusrdesc'] = "Introduce?i un nume de utilizator ?i o parola pentru accesul webinterface. Cu webinterface va pute?i configura Ranksytem-ul."; $lang['isntwiusrh'] = "Acces interfata web"; $lang['listacsg'] = "grad actual"; @@ -111,25 +115,25 @@ $lang['resettime'] = "Reset timp online si idle pentru userul: %s (ID: %s; ID $lang['sccupcount'] = "Ai adaugat cu succes timp online: %s pentru userul cu ID(%s)"; $lang['sccupcount2'] = "Add an active time of %s seconds for the unique Client-ID (%s); requested about admin function."; $lang['setontime'] = "adauga timp"; -$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['setontime2'] = "remove 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['setontimedesc2'] = "Remove online time from the previous selected clients. Each user will get removed this time from 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'] = "User afectat: %s (unique-ID: %s; ID baza de date %s) si grad %s (ID: %s)."; $lang['sgrprm'] = "S-a ?ters gradul %s (ID: %s) de la user-ul %s (unique-ID: %s; ID baza de date %s)."; $lang['size_byte'] = "B"; +$lang['size_eib'] = "EiB"; +$lang['size_gib'] = "GiB"; $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_tib'] = "TiB"; $lang['size_yib'] = "YiB"; +$lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Adauga grade"; $lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; $lang['stag0002'] = "Grade permise"; -$lang['stag0003'] = "Definiti o lista a gradelor pe care un utilizator le poate atribui.

Grupurile de servere ar trebui sa fie introduse aici, separate prin virgula.

Exemplu:
23,24,28"; +$lang['stag0003'] = "Select the servergroups, which a user can assign to himself."; $lang['stag0004'] = "Limita grade"; $lang['stag0005'] = "Limiteaza numarul de grad pe care le pot detine userii in acelasi timp"; $lang['stag0006'] = "Esti conectat de mai multe ori de pe aceeasi adresa IP, %sclick here%s pentru a verifica."; @@ -288,22 +292,24 @@ $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 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['stri0013'] = "%s for russian translation"; +$lang['stri0014'] = "%s for initialisation the bootstrap design"; +$lang['stri0015'] = "%s for italian translation"; +$lang['stri0016'] = "%s for initialisation arabic translation"; +$lang['stri0017'] = "%s for romanian translation"; +$lang['stri0018'] = "%s for initialisation dutch translation"; +$lang['stri0019'] = "%s for french translation"; +$lang['stri0020'] = "%s for portuguese translation"; +$lang['stri0021'] = "%s for the great support on GitHub & our public server, sharing his ideas, pre-testing all that shit & much more"; +$lang['stri0022'] = "%s 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['stri0026'] = "JavierlechuXD - for spanish translation"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s for czech translation"; +$lang['stri0025'] = "%s for polish translation"; +$lang['stri0026'] = "%s for spanish translation"; +$lang['stri0027'] = "%s for initialisation hungarian translation"; +$lang['stri0028'] = "%s for azerbaijan translation"; +$lang['stta0001'] = "tot timpul"; +$lang['sttm0001'] = "luna"; $lang['sttw0001'] = "Top useri"; $lang['sttw0002'] = "saptamana"; $lang['sttw0003'] = "cu %s %s timp online"; @@ -319,8 +325,6 @@ $lang['sttw0012'] = "Alti %s useri (in ore)"; $lang['sttw0013'] = "Cu %s %s timp online"; $lang['sttw0014'] = "ore"; $lang['sttw0015'] = "minute"; -$lang['sttm0001'] = "luna"; -$lang['stta0001'] = "tot timpul"; $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 mesaj cu tokenul a fost trimis pe TS3."; $lang['stve0003'] = "Introduceti tokenul pe care l-ati primit pe serverul TS3. Daca nu ati primit un mesaj, asigurati-va ca ati ales codul unic corect."; @@ -333,11 +337,11 @@ $lang['stve0009'] = " -- selecteaza -- "; $lang['stve0010'] = "Veti primi un token pe serverul TS3, pe care trebuie sa-l introduceti aici:"; $lang['stve0011'] = "Token:"; $lang['stve0012'] = "verifica"; +$lang['time_day'] = "zile"; +$lang['time_hour'] = "ore"; +$lang['time_min'] = "minute"; $lang['time_ms'] = "ms"; $lang['time_sec'] = "secunde"; -$lang['time_min'] = "minute"; -$lang['time_hour'] = "ore"; -$lang['time_day'] = "zile"; $lang['unknown'] = "unknown"; $lang['upgrp0001'] = "Exista un grad cu ID %s configurat in parametrul dvs. %s (webinterface -> rank), dar ID-ul gradului nu exista pe serverul dvs. TS3! Corectati acest lucru sau se pot intampla erori!"; $lang['upgrp0002'] = "Descarca iconita noua pentru server"; @@ -367,10 +371,11 @@ $lang['wiadmhide'] = "ascunde exceptie clienti"; $lang['wiadmhidedesc'] = "Pentru a ascunde utilizatorul exceptie in urmatoarea selectie"; $lang['wiadmuuid'] = "Bot-Admin"; $lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiapidesc'] = "With the API it is possible to transfer data (which were collected by the Ranksytem) to third party applications.

To be able to receive information, you need to authenticate yourself with an API key. This keys, you can manage here.

The API is reachable under:
%s

The API will generate its output as JSON string. Since the API is documentated by itself, you need only to open the link above and follow the instructions."; $lang['wiboost'] = "boost"; -$lang['wiboostdesc'] = "Oferiti unui utilizator pe serverul TeamSpeak un servergroup (trebuie sa fie creat manual), pe care il puteti declara aici ca grup de stimulare. De asemenea, definiti un factor care ar trebui utilizat (de exemplu, 2x) si un timp, cat timp trebuie sa fie evaluata cr?sterea.
Cu cat este mai mare factorul, cu atat un utilizator ajunge mai repede la urmatorul nivel superior. Gradul de impulsionare este eliminat automat de la utilizatorul in cauza. Timpul incepe sa ruleze de indata ce utilizatorul primeste gradul.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

grad=>factor=>timp (in secunde)

Fiecareintrare trebuie sa fie separata de urmatoarea cu o virgula.

Exemplu:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
In acest caz un utilizator din gradul cu ID 12 obtine factorul 2 pentru urmatoarele 6000 de secunde, un utilizator din gradul cu ID 13 obtine factorul 1.25 pentru 2500 de secunde si asa mai departe..."; $lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostdesc'] = "Oferiti unui utilizator pe serverul TeamSpeak un servergroup (trebuie sa fie creat manual), pe care il puteti declara aici ca grup de stimulare. De asemenea, definiti un factor care ar trebui utilizat (de exemplu, 2x) si un timp, cat timp trebuie sa fie evaluata cr?sterea.
Cu cat este mai mare factorul, cu atat un utilizator ajunge mai repede la urmatorul nivel superior. Gradul de impulsionare este eliminat automat de la utilizatorul in cauza. Timpul incepe sa ruleze de indata ce utilizatorul primeste gradul.

As factor are also decimal numbers possible. Decimal places must be separated by a period!

grad=>factor=>timp (in secunde)

Fiecareintrare trebuie sa fie separata de urmatoarea cu o virgula.

Exemplu:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
In acest caz un utilizator din gradul cu ID 12 obtine factorul 2 pentru urmatoarele 6000 de secunde, un utilizator din gradul cu ID 13 obtine factorul 1.25 pentru 2500 de secunde si asa mai departe..."; +$lang['wiboostempty'] = "List is empty. Click on the plus symbol (button) to add an entry!"; $lang['wibot1'] = "Botul a fost oprit. Priveste log-ul pentru mai multe informatii!"; $lang['wibot2'] = "Botul a fost pornit. Priveste log-ul pentru mai multe informatii!"; $lang['wibot3'] = "Botul a fost repornit. Priveste log-ul pentru mai multe informatii!"; @@ -382,15 +387,15 @@ $lang['wibot8'] = "Ranksystem log (extract):"; $lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; $lang['wichdbid'] = "Client baza de date resetare"; $lang['wichdbiddesc'] = "Activate this function to reset the online time of a user, if his TeamSpeak Client-database-ID has been changed.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $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'] = "Schimba parola"; +$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the rank settings!"; $lang['widaform'] = "Format data"; $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['widbcfgsuc'] = "Database configurations saved successfully."; $lang['widbg'] = "Log-Level"; $lang['widbgdesc'] = "Set up the Log-Level of the Ranksystem. With this you can decide, how much information should be written to the file \"ranksystem.log\"

The higher the Log-Level, the more information you'll get.

Changing the Log-Level will take effect with the next restart of the Ranksystem bot.

Please don't let the Ranksystem running longer on \"6 - DEBUG\" this could impair your filesystem!"; $lang['widelcldgrp'] = "reinnoieste grade"; @@ -412,10 +417,10 @@ $lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which shou $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; $lang['wigrptime'] = "Clasificare grade"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista Rank(Mod Admin)"; $lang['wihladm0'] = "Function description (click)"; $lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; @@ -438,6 +443,13 @@ $lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all $lang['wihladmrs'] = "Job Status"; $lang['wihladmrs0'] = "disabled"; $lang['wihladmrs1'] = "created"; +$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; +$lang['wihladmrs11'] = "Estimated time to reset the system"; +$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; +$lang['wihladmrs13'] = "Yes, start reset"; +$lang['wihladmrs14'] = "No, cancel reset"; +$lang['wihladmrs15'] = "Please choose at least one option!"; +$lang['wihladmrs16'] = "enabled"; $lang['wihladmrs2'] = "in progress.."; $lang['wihladmrs3'] = "faulted (ended with errors!)"; $lang['wihladmrs4'] = "finished"; @@ -446,13 +458,6 @@ $lang['wihladmrs6'] = "There is still a reset job active. Please wait until al $lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; $lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; $lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; $lang['wihlset'] = "setări"; $lang['wiignidle'] = "Ignora timp afk"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a 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 point for the Ranksystem as idle time.

This function matters only in conjunction with the mode 'active time'.

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

0 Sec. = disable this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes as active time."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ pa $lang['wimsgusr'] = "Notificare grad"; $lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; $lang['winav1'] = "TeamSpeak"; +$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 define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; +$lang['winav12'] = "Addons"; $lang['winav2'] = "baza de date"; $lang['winav3'] = "Core"; $lang['winav4'] = "altele"; @@ -474,21 +482,21 @@ $lang['winav6'] = "pagina statistici"; $lang['winav7'] = "administreaza"; $lang['winav8'] = "porneste/opreste"; $lang['winav9'] = "Actualizare disponibila!"; -$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 define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; -$lang['winav12'] = "Addons"; $lang['winxinfo'] = "Comanda \"!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'] = "dezactivat"; $lang['winxmode2'] = "permisa - pentru gradul urmator"; $lang['winxmode3'] = "permisa - pentru toate gradele"; $lang['winxmsg1'] = "Mesaj"; -$lang['winxmsgdesc1'] = "Scrie mesajul care se va afisa cand userul da comanda \"!nextup\".

Argumente:
%1$s - zile pentru urmatorul grad
%2$s - ore pentru urmatorul grad
%3$s - minutes to next rankup
%4$s - secunde pentru urmatorul grad
%5$s - numele urmatorului grad
%6$s - numele userului
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Exemplu:
Vei primi un nou grad peste %1$s zile, %2$s ore, %3$s minute si %4$s secunde. Noul grad se numeste [B]%5$s[/B].
"; $lang['winxmsg2'] = "Mesj (cel mai mare)"; -$lang['winxmsgdesc2'] = "Scrie mesajul care se va afisa cand userul da comanda \"!nextup\", when the user already reached the highest rank.

Argumente:
%1$s - zile pentru urmatorul grad
%2$s - ore pentru urmatorul grad
%3$s - minutes to next rankup
%4$s - secunde pentru urmatorul grad
%5$s - numele urmatorului grad
%6$s - numele userului
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Exemplu:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds.
"; $lang['winxmsg3'] = "Mesaj (exceptie)"; +$lang['winxmsgdesc1'] = "Scrie mesajul care se va afisa cand userul da comanda \"!nextup\".

Argumente:
%1$s - zile pentru urmatorul grad
%2$s - ore pentru urmatorul grad
%3$s - minutes to next rankup
%4$s - secunde pentru urmatorul grad
%5$s - numele urmatorului grad
%6$s - numele userului
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Exemplu:
Vei primi un nou grad peste %1$s zile, %2$s ore, %3$s minute si %4$s secunde. Noul grad se numeste [B]%5$s[/B].
"; +$lang['winxmsgdesc2'] = "Scrie mesajul care se va afisa cand userul da comanda \"!nextup\", when the user already reached the highest rank.

Argumente:
%1$s - zile pentru urmatorul grad
%2$s - ore pentru urmatorul grad
%3$s - minutes to next rankup
%4$s - secunde pentru urmatorul grad
%5$s - numele urmatorului grad
%6$s - numele userului
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Exemplu:
You have been reached the highest rank for %1$s days, %2$s hours and %3$s minutes and %4$s seconds.
"; $lang['winxmsgdesc3'] = "Scrie mesajul care se va afisa cand userul da comanda \"!nextup\", when the user is excepted from the Ranksystem.

Argumente:
%1$s - zile pentru urmatorul grad
%2$s - ore pentru urmatorul grad
%3$s - minutes to next rankup
%4$s - secunde pentru urmatorul grad
%5$s - numele urmatorului grad
%6$s - numele userului
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Exemplu:
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 define a Bot-Admin inside the webinterface before. There is no way to reset the password!"; +$lang['wirtpw1'] = "Sorry Bro, you have forgotten to define a Bot-Admin inside the webinterface before. The only way to reset is by updating your database! A description how to do can be found here:
%s"; +$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 Bot-Admin."; +$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['wirtpw2'] = "Bot-Admin not found on TS3 server. You need to be online with the unique Client-ID, which is saved as Bot-Admin."; $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"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "The password of the webinterface has been successfully res $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 Bot-Admin."; -$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'] = "selecteaza useri"; $lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID.
Multiple selections are also possible."; $lang['wishcolas'] = "grad actual"; @@ -512,10 +517,10 @@ $lang['wishcoldbid'] = "ID baza de date"; $lang['wishcoldbiddesc'] = "Afiseaza coloana 'ID baza de date' in list_rankup.php"; $lang['wishcolgs'] = "grad actual de"; $lang['wishcolgsdesc'] = "Afiseaza coloana 'grad de' in list_rankup.php"; +$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolha0'] = "disable hashing"; $lang['wishcolha1'] = "secure hashing"; $lang['wishcolha2'] = "fast hashing (default)"; -$lang['wishcolha'] = "hash IP addresses"; $lang['wishcolhadesc'] = "The TeamSpeak 3 server stores the IP address of each client. This we need for the Ranksystem to bind the website user of the statistics page with the related TeamSpeak user.

With this function you can active an encrypting / hashing of the IP addresses of TeamSpeak users. When enabled, only the hashed value will be stored in the database, instead of storing it in plain text. This is needed in some cases of your privacy legal; especially required due the EU-GDPR.

fast hashing (default): IP addresses will be hashed. The salt is different for each ranksystem instance, but same for all users on the server. This makes it faster, but also weaker as the 'secure hashing'.

secure hashing: IP addresses will be hashed. Each user will get his own salt, which makes it hard to decrypt the IP (=secure). This parameter is conform with the EU-GDPR. Contra: This variation affects the performance, especially on bigger TeamSpeak servers, it will slow down the statistics page on first site load very much. Also it inceases the needed resources.

disable hashing: If this function is disabled the IP address of a user will be stored in plain text. This is the fastest option that requires the least resources.


In all variants the IP addresses of users will only be stored as long as the user is connected to the TS3 server (less data collection - EU-GDPR).

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 get verified with the Ranksystem webpage."; $lang['wishcolit'] = "timp afk"; $lang['wishcolitdesc'] = "Afiseaza coloana 'sum. timp afk' in list_rankup.php"; @@ -545,24 +550,24 @@ $lang['wishnav'] = "afisare navigare site"; $lang['wishnavdesc'] = "Afisati navigarea site-ului pe pagina '/stats'.

Daca aceasta optiune este dezactivata pe pagina cu statistici, navigarea pe site va fi ascunsa.
Puteti apoi sa luati fiecare site, adică 'stats/list_rankup.php' si incorporati-o in cadrul in site-ului dvs. existent."; $lang['wishsort'] = "default sorting order"; $lang['wishsortdesc'] = "Define the default sorting order for the List Rankup page."; +$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; $lang['wisupidle'] = "time Mod"; $lang['wisupidledesc'] = "Exista doua moduri, pentru ca timpul poate fi calculat si se poate aplica pentru o crestere a rangului.

1) timp online: Aici se tine cont de timpul online pur al utilizatorului (a se vedea coloana 'suma' in 'stats/list_rankup.php')

2) timp activ: va fi dedus din timpul online al unui utilizator, timpul inactiv (a se vedea coloana 'suma activa' 'stats/list_rankup.php').

O schimbare a modului cu o baza de date deja in desfasurare nu este recomandata, dar poate functiona."; $lang['wisvconf'] = "salveaza"; $lang['wisvinfo1'] = "Attention!! By changing the mode of hashing the users IP address, it is necessary that the user connects new to the TS3 server or the user can't get synchronized with the stats page."; -$lang['wisvsuc'] = "Schimbari salvate cu succes"; $lang['wisvres'] = "Trebuie sa reporniti sistemul rank inainte ca schimbarile sa aiba efect! %s"; -$lang['wisttidesc'] = "Specify a required time (in hours) to meet the achievement."; -$lang['wistcodesc'] = "Specify a required count of server-connects to meet the achievement."; +$lang['wisvsuc'] = "Schimbari salvate cu succes"; $lang['witime'] = "Fus orar"; $lang['witimedesc'] = "Selectati fusul orar pe care este gazduit serverul.

The timezone affects the timestamp inside the log (ranksystem.log)."; $lang['wits3avat'] = "Intarziere avatar"; $lang['wits3avatdesc'] = "Definiti un timp de cateva secunde pentru descarcarea avatarelor modificate TS3.

Aceasta functie este utila in mod special pentru boti (muzica), care isi schimba periodic avatarul."; $lang['wits3dch'] = "Canal implicit"; $lang['wits3dchdesc'] = "ID-ul canalului, pe care botul trebuie sa se conecteze.

Botul se va alatura acestui canal dupa conectarea la serverul TeamSpeak."; +$lang['wits3encrypt'] = "TS3 Query encryption"; +$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; $lang['wits3host'] = "TS3 adresa"; $lang['wits3hostdesc'] = "TS3 adresa
(IP sau DNS)"; -$lang['wits3sm'] = "Query-Slowmode"; -$lang['wits3smdesc'] = "Cu ajutorul modului Query-Slowmode puteti reduce \"spam\" de comenzi de interogare catre serverul TeamSpeak.
Comenzile TeamSpeak Query se intarzie cu aceasta functie. De asemenea, reduce rata de utilizare a procesorului!

Activarea nu este recomandata, daca nu este necesara. Intarzierea mareste durata botului, ceea ce o face imprecis.

Ultima coloana prezinta timpul necesar pentru o durata (in secunde):

%s

In consecinta, valorile cu intarziere imensa devin executate cu aproximativ 65 de secunde! In functie de ce doriti sa faceti si/sau dimensiunea serverului chiar mai mult."; $lang['wits3qnm'] = "Nume"; $lang['wits3qnmdesc'] = "Se va stabili numele, cu aceasta conexiune de interogare.
Puteti sa-l numiti gratuit."; $lang['wits3querpw'] = "TS3 parola query"; @@ -571,8 +576,8 @@ $lang['wits3querusr'] = "TS3 nume query"; $lang['wits3querusrdesc'] = "TeamSpeak3 nume query
Implicit este serveradmin
Desigur, pute?i crea, de asemenea, un cont suplimentar serverquery doar pentru sistemul Ranks.
Permisiile necesare pe care le gasi?i pe:
%s"; $lang['wits3query'] = "TS3 Query-Port"; $lang['wits3querydesc'] = "TeamSpeak3 query port
Default RAW (plain text) is 10011 (TCP)
Default SSH (encrypted) is 10022 (TCP)

Daca acesta nu este implicit, il gasesti in \"ts3server.ini\"."; -$lang['wits3encrypt'] = "TS3 Query encryption"; -$lang['wits3encryptdesc'] = "Activate this option to encrypt the communication between the Ranksystem and the TeamSpeak 3 server (SSH).
When this function is disabled, the communication will be done in plain text (RAW). This could be a security risk, especially when the TS3 server and the Ranksystem are running on different machines.

Be also sure, you have checked the TS3 Query Port, which needs (perhaps) to be changed in the Ranksystem!

Attention: The SSH encryption needs more CPU time and with this truly more system resources. That's why we recommend to use a RAW connection (disabled encryption) if the TS3 server and the Ranksystem are running on the same machine / server (localhost / 127.0.0.1). If they are running on separate machines, you should activate the encrypted connection!

Requirements:

1) TS3 Server version 3.3.0 or above.

2) The PHP extension PHP-SSH2 is necessary.
On Linux you can it install with the following command:
%s
3) The encryption needs to be enabled on your TS3 server!
Activate the following parameters inside your 'ts3server.ini' and customize it for your needs:
%s After changing your TS3 server configurations a restart of your TS3 server is necessary."; +$lang['wits3sm'] = "Query-Slowmode"; +$lang['wits3smdesc'] = "Cu ajutorul modului Query-Slowmode puteti reduce \"spam\" de comenzi de interogare catre serverul TeamSpeak.
Comenzile TeamSpeak Query se intarzie cu aceasta functie. De asemenea, reduce rata de utilizare a procesorului!

Activarea nu este recomandata, daca nu este necesara. Intarzierea mareste durata botului, ceea ce o face imprecis.

Ultima coloana prezinta timpul necesar pentru o durata (in secunde):

%s

In consecinta, valorile cu intarziere imensa devin executate cu aproximativ 65 de secunde! In functie de ce doriti sa faceti si/sau dimensiunea serverului chiar mai mult."; $lang['wits3voice'] = "TS3 Port"; $lang['wits3voicedesc'] = "TeamSpeak3 port
Implicit este 9987 (UDP)
Acest port ajuta la conectarea userilor pe TS3."; $lang['witsz'] = "Log-Size"; diff --git a/languages/core_ru_Pусский_ru.php b/languages/core_ru_Pусский_ru.php index 7636177..2725c3c 100644 --- a/languages/core_ru_Pусский_ru.php +++ b/languages/core_ru_Pусский_ru.php @@ -1,10 +1,12 @@ Неверно настроена команда за $lang['chkphpmulti'] = "Похоже что вы используете несколько версий PHP!

Веб-сервер (сайт) работает под управлением версии: %s
Команда запуска PHP %s возвращает версию: %s

Пожалуйста, используйте одинаковую версию PHP как для сайта, так и для бота!

Вы можете указать нужную версию для бота системы рангов в файле %s. Внутри файла можно найти пример настройки.
В данный момент используется %s:
%sВы так же можете изменить используемую веб-сервером версию PHP. Воспользуйтесь поисковиком для получения справки.

Мы рекомендуем всегда использовать актуальную версию PHP!

Всё нормально, если вы не можете изменить используемую версию PHP на вашей системе. Работает - хорошо. Однако, мы не сможем оказать должную техническую поддержку в случае возникновения проблем."; $lang['chkphpmulti2'] = "Путь, где расположен PHP вашего сайта:%s"; $lang['clean'] = "Сканирование пользователей, подлежащих удалению из базы системы рангов..."; +$lang['clean0001'] = "Успешно удален ненужный аватар %s (уникальный ID: %s)."; +$lang['clean0002'] = "Ошибка при удалении ненужного аватара %s (уникальный ID: %s). Пожалуйста, убедитесь в наличии доступа на запись в папку 'avatars'!"; +$lang['clean0003'] = "Очистка базы данных завершена. Все устаревшие данные были успешно удалены."; +$lang['clean0004'] = "Завершена проверка на наличие пользователей, подлежащих удалению. Никаких изменений не было внесено, так как функция 'очистка клиентов' отключена (панель управления - система)."; $lang['cleanc'] = "Чистка пользователей"; $lang['cleancdesc'] = "При включении данной функции, старые пользователи в базе данных системы рангов будут удалены.

С этой целью, система рангов синхронизируется с базой данных TeamSpeak. Пользователи, которых более не существует в базе данных TeamSpeak, будут удалены из системы рангов.

Эта функция работает когда режим 'Query-Slowmode' отключен!


Для автоматической очистки базы данных TeamSpeak 3 вы можете использовать утилиту ClientCleaner:
%s"; -$lang['cleandel'] = "%s пользователя удалены из базы данных системы рангов, так как они больше не существуют в базе данных TeamSpeak."; +$lang['cleandel'] = "%s пользователя(-ль/-лей) удален(-о) из базы данных системы рангов, так как он (они) больше не существует (-ют) в базе данных TeamSpeak."; $lang['cleanno'] = "Не найдены пользователи, подлежащие удалению из базы данных системы рангов."; $lang['cleanp'] = "Период очистки базы данных системы рангов"; $lang['cleanpdesc'] = "Укажите время, которое должно пройти перед очередной очисткой пользователей.

Устанавливается в секундах.

Для больших баз данных рекомендуется использовать один раз в день."; $lang['cleanrs'] = "Пользователей в базе данных системы рангов: %s"; $lang['cleants'] = "Пользователей найдено в базе данных TeamSpeak: %s (at %s)"; -$lang['clean0001'] = "Успешно удален ненужный аватар %s (уникальный ID: %s)."; -$lang['clean0002'] = "Ошибка при удалении ненужного аватара %s (уникальный ID: %s). Пожалуйста, убедитесь в наличии доступа на запись в папку 'avatars'!"; -$lang['clean0003'] = "Очистка базы данных завершена. Все устаревшие данные были успешно удалены."; -$lang['clean0004'] = "Проверка на наличие пользователей, подлежащих удалению завершена. Никаких изменений не было внесено, так как функция 'очистка клиентов' отключена (веб-панель - other)."; $lang['day'] = "%s день"; $lang['days'] = "%s дня"; $lang['dbconerr'] = "Ошибка подключения к базе данных: "; $lang['desc'] = "по убыванию"; -$lang['duration'] = "Duration"; -$lang['errcsrf'] = "Неверный ключ CSRF or expired (ошибка проверки безопасности)! Пожалуйста перезагрузите эту страницу и попробуйте снова. Если вы получаете эту ошибку несколько раз, удалите куки с этого сайта в вашем браузере и попробуйте снова!"; +$lang['descr'] = "Описание"; +$lang['duration'] = "Продолжительность"; +$lang['errcsrf'] = "Ключ CSRF неверен или истек срок его действия (ошибка проверки безопасности)! Пожалуйста перезагрузите эту страницу и попробуйте снова. Если вы получаете эту ошибку несколько раз, удалите куки с этого сайта в вашем браузере и попробуйте снова!"; $lang['errgrpid'] = "Ошибка при сохранении изменений в базе данных. Пожалуйста, исправьте проблемы и попробуйте сохранить изменения снова!"; $lang['errgrplist'] = "Ошибка при получении списка групп сервера: "; $lang['errlogin'] = "Неверно введён логин или пароль! Пожалуйста, повторите ввод данных заново."; @@ -40,23 +43,23 @@ $lang['errlogin3'] = "Защита от перебора: От вас пост $lang['error'] = "Ошибка "; $lang['errorts3'] = "Ошибка TS3: "; $lang['errperm'] = "Пожалуйста, убедитесь наличии привилегий на запись в папку '%s'!"; -$lang['errphp'] = "%s is missed. Installation of %s is required!"; -$lang['errselusr'] = "Пожалуйста, укажите пользователя!"; +$lang['errphp'] = "%1\$s отсутствует. Невозможно продолжить без установленного %1\$s!"; $lang['errseltime'] = "Пожалуйста, введите время, которое хотите начислить."; +$lang['errselusr'] = "Пожалуйста, укажите пользователя!"; $lang['errukwn'] = "Произошла неизвестная ошибка!"; -$lang['factor'] = "Factor"; +$lang['factor'] = "коэффициент"; $lang['highest'] = "Достигнут максимальный ранг"; -$lang['insec'] = "in Seconds"; +$lang['insec'] = "в секундах"; $lang['install'] = "Установка"; $lang['instdb'] = "Установка базы данных"; $lang['instdbsuc'] = "База данных %s успешно создана."; $lang['insterr1'] = "ВНИМАНИЕ: Указанная база данных \"%s\" уже существует!
При продолжении процесса установки, старые данные в этой базе данных будут удалены.
Если вы не уверены, нужно ли очищать данную базу данных, то укажите другую базу."; -$lang['insterr2'] = "Для работы системы рангов требуется наличие модуля %1\$s. Пожалуйста, установите %1\$s модуль и попробуйте заново!"; -$lang['insterr3'] = "Для работы системы рангов требуется наличие включеной функции PHP %1\$s. Пожалуйста, включите данную %1\$s функцию и попробуйте заново!"; +$lang['insterr2'] = "Для работы системы рангов требуется наличие модуля %1\$s. Пожалуйста, установите %1\$s модуль и попробуйте заново!
Путь к конфигурационному файлу PHP, если он указан и загружен, таков: %3\$s"; +$lang['insterr3'] = "Для работы системы рангов требуется наличие включеной функции PHP %1\$s. Пожалуйста, включите данную %1\$s функцию и попробуйте заново!
Путь к конфигурационному файлу PHP, если он указан и загружен, таков: %3\$s"; $lang['insterr4'] = "Ваша версия PHP (%s) ниже допустимой 5.5.0. Пожалуйста, обновите версию PHP и попробуйте заново!"; -$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 0777 (В windows 'Полный доступ') и попробуйте заново."; +$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 740 (В windows 'Полный доступ') и попробуйте заново."; $lang['isntwicfg2'] = "Конфигурирование веб-интерфейса"; -$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 0777 (В windows 'полный доступ') и повторите этот этап заново."; +$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 740 (В windows 'полный доступ') и повторите этот этап заново."; $lang['isntwiconf'] = "Затем откройте страницу %s для настройки системы рангов!"; $lang['isntwidbhost'] = "Адрес:"; $lang['isntwidbhostdesc'] = "Адрес сервера базы данных
(IP или домен)"; @@ -73,8 +76,9 @@ $lang['isntwidel'] = "Пожалуйста, удалите файл 'install.p $lang['isntwiusr'] = "Пользователь веб-панели успешно создан."; $lang['isntwiusr2'] = "Поздравляем! Установка системы рангов успешно завершена."; $lang['isntwiusrcr'] = "Создание аккаунта Администратора"; -$lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в веб-панель. С помощью веб-панели вы сможете настроить систему рангов."; -$lang['isntwiusrh'] = "Доступ - Веб-панель"; +$lang['isntwiusrd'] = "Создание данных авторизации для доступа к веб-интерфейсу системы рангов."; +$lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в панель управления. С помощью веб-панели вы сможете настроить систему рангов."; +$lang['isntwiusrh'] = "Доступ - Панель управления"; $lang['listacsg'] = "Текущая группа ранга"; $lang['listcldbid'] = "ID клиента в базе данных"; $lang['listexcept'] = "Нет, исключен"; @@ -110,40 +114,40 @@ $lang['repeat'] = "Повтор нового пароля"; $lang['resettime'] = "Сбрасываем онлайн и время простоя пользователя %s (UID: %s; DBID %s), так как пользователь был удален из исключений."; $lang['sccupcount'] = "%s секунд активного времени было добавлено клиенту с уникальным ID (UID) %s. Больше информации можно найти в лог-файле системы рангов."; $lang['sccupcount2'] = "Успешно добавлено %s секунд активного времени клиенту с уникальным ID (UID) %s по запросу администратора системы рангов."; -$lang['setontime'] = "Начислить время"; +$lang['setontime'] = "Добавить время"; +$lang['setontime2'] = "Отнять время"; $lang['setontimedesc'] = "Данная функция начисляет пользователю время онлайна с учётом прошлых накоплений. От этого времени также будет впоследствии сформирован ранг пользователя.

По выполнению запроса введенное время будет учитываться при выдаче ранга и должно подействовать мгновенно (немного дольше при включенном SlowMode'е)."; -$lang['setontime2'] = "Удалить время"; $lang['setontimedesc2'] = "Данная функция удаляет с пользователя время онлайна. С каждого указанного пользователя будет удалено время из их старого времени онлайна.

По выполнению запроса введенное время будет учитываться при выдаче ранга и должно подействовать мгновенно (немного дольше при включенном SlowMode'е)."; $lang['sgrpadd'] = "Выдана группа сервера №%s (ID: %s) пользователю %s (UID клиента: %s; DBID: %s)."; $lang['sgrprerr'] = "Затронут пользователь: %s (UID: %s; DBID %s) и группа сервера %s (ID: %s)."; $lang['sgrprm'] = "С пользователя %s (ID: %s) снята группа сервера %s (UID: %s; DBID: %s)."; $lang['size_byte'] = "Б"; +$lang['size_eib'] = "ЭиБ"; +$lang['size_gib'] = "ГиБ"; $lang['size_kib'] = "КиБ"; $lang['size_mib'] = "МиБ"; -$lang['size_gib'] = "ГиБ"; -$lang['size_tib'] = "ТиБ"; $lang['size_pib'] = "ПиБ"; -$lang['size_eib'] = "ЭиБ"; -$lang['size_zib'] = "ЗиБ"; +$lang['size_tib'] = "ТиБ"; $lang['size_yib'] = "ЙиБ"; +$lang['size_zib'] = "ЗиБ"; $lang['stag0001'] = "Менеджер групп"; -$lang['stag0001desc'] = "With the 'Assign Servergroups' function you allows your TeamSpeak user to manage their servergroups (as self-service) on the TeamSpeak server (e.g. game-, country-, gender-groups).

With activation this function, a new menu item will appear on the stats/ site. About that menu item, the user can manage their own servergroups.

You define, which groups should be available.
You can also set a number to limit of concurrent groups."; +$lang['stag0001desc'] = "Используя функцию 'Менеджер групп' пользователи могут сами управлять своими группами сервера (пример: игровые-, по стране-, пол и т.д.).

После активации этой функции на странице статистики появится соответствующий пункт меню.

Вы определяете, какие группы доступны для установки.
Вы так же можете ограничить максимальное количество групп, доступное для одновременной установки."; $lang['stag0002'] = "Разрешенные группы"; -$lang['stag0003'] = "Введите список групп сервера, которые пользователь сможет назначить себе сам.

Необходимо ввести ID групп через запятую.

Например:
23,24,28"; +$lang['stag0003'] = "Выберите группы сервера, которые пользователь сможет назначить себе сам."; $lang['stag0004'] = "Лимит количества групп"; -$lang['stag0005'] = "Максимальное количество групп, которые можно установить одновременно."; +$lang['stag0005'] = "Максимальное количество групп, которые пользователь может установить себе одновременно."; $lang['stag0006'] = "Система определила несколько UIDов подключенных к серверу с вашим IP. Пожалуйста %sнажмите сюда%s что бы перепроверить."; $lang['stag0007'] = "Прежде чем вносить новые изменения подождите пока ваши предыдущие изменения вступят в силу..."; $lang['stag0008'] = "Изменения успешно сохранены. Через несколько секунд группы будут выданы на сервере."; $lang['stag0009'] = "Вы не можете установить более %s групп(ы)!"; $lang['stag0010'] = "Пожалуйста выберите как минимум одну новую группу."; -$lang['stag0011'] = "Максимум групп одновременно: "; -$lang['stag0012'] = "Установить группы"; +$lang['stag0011'] = "Можно выбрать не более: "; +$lang['stag0012'] = "Сохранить и установить группы"; $lang['stag0013'] = "Аддон ВКЛ/ВЫКЛ"; -$lang['stag0014'] = "Позволяет включить (ВКЛ) или выключить (ВЫКЛ) аддон.

Если отключить аддон то пункт меню на странице навигации stats/ так же будет скрыт."; -$lang['stag0015'] = "Вы не подключены к серверу либо вам необходимо пройти верификацию! Нажмите %sздесь%s что бы продолжить"; -$lang['stag0016'] = "Необходима верификация!"; -$lang['stag0017'] = "Нажмите здесь для верификации"; +$lang['stag0014'] = "Позволяет включить (ВКЛ) или выключить (ВЫКЛ) аддон.

Если отключить аддон то пункт меню на странице навигации stats/ будет скрыт."; +$lang['stag0015'] = "Вы не подключены к серверу либо вам необходимо пройти проверку! Нажмите %sздесь%s что бы продолжить"; +$lang['stag0016'] = "Необходима дополнительная проверка!"; +$lang['stag0017'] = "нажмите здесь для проверки..."; $lang['stix0001'] = "Статистика сервера"; $lang['stix0002'] = "Пользователей зарегистрировано в базе системы рангов"; $lang['stix0003'] = "Посмотреть подробнее"; @@ -161,8 +165,8 @@ $lang['stix0014'] = "За неделю"; $lang['stix0015'] = "За месяц"; $lang['stix0016'] = "Соотнош. активн./AFK"; $lang['stix0017'] = "Версии клиентов"; -$lang['stix0018'] = "Рейтинг стран"; -$lang['stix0019'] = "Популярные платформы"; +$lang['stix0018'] = "Рейтинг по странам"; +$lang['stix0019'] = "Популярность платформ"; $lang['stix0020'] = "Текущая статистика"; $lang['stix0023'] = "Статус сервера"; $lang['stix0024'] = "Активен"; @@ -219,16 +223,16 @@ $lang['stmy0012'] = "Уровень: Легенда"; $lang['stmy0013'] = "Вы провели в онлайне на сервере %s час (-а, -ов)."; $lang['stmy0014'] = "Полностью выполнена вся цепочка"; $lang['stmy0015'] = "Уровень: Золото"; -$lang['stmy0016'] = "% завершено до получения уровня \"Легенда\""; +$lang['stmy0016'] = "% завершено для получения уровня \"Легенда\""; $lang['stmy0017'] = "Уровень: Серебро"; -$lang['stmy0018'] = "% завершено до получения уровня \"Золото\""; +$lang['stmy0018'] = "% завершено для получения уровня \"Золото\""; $lang['stmy0019'] = "Уровень: Бронза"; -$lang['stmy0020'] = "% завершено до получения уровня \"Серебро\""; +$lang['stmy0020'] = "% завершено для получения уровня \"Серебро\""; $lang['stmy0021'] = "Уровень: Без достижений"; -$lang['stmy0022'] = "% завершено до получения уровня \"Бронза\""; +$lang['stmy0022'] = "% завершено для получения уровня \"Бронза\""; $lang['stmy0023'] = "Достижение за количество подключений"; $lang['stmy0024'] = "Уровень: Легенда"; -$lang['stmy0025'] = "Всего ваших подключений к серверу: %s раз."; +$lang['stmy0025'] = "Вы подключались к серверу: %s раз."; $lang['stmy0026'] = "Уровень: Золото"; $lang['stmy0027'] = "Уровень: Серебро"; $lang['stmy0028'] = "Уровень: Бронза"; @@ -255,7 +259,7 @@ $lang['stnv0019'] = "Статистика сервера - содержимо $lang['stnv0020'] = "Эта страница содержит информацию о вашей статистике и активности на сервере."; $lang['stnv0021'] = "Большинство этой информации было собрано с момента начального старта системы рангов, никак не с момента первого запуска TeamSpeak сервера."; $lang['stnv0022'] = "Данная информация получена из базы данных системы рангов и может отличаться от той, которая хранится в базе данных TeamSpeak."; -$lang['stnv0023'] = "Общий накопленный онлайн за неделю и месяц обновляется раз в 15 минут. Все остальные значения обновляются моментально (или с задержкой в несколько секунд)."; +$lang['stnv0023'] = "Общий накопленный онлайн за неделю и месяц обновляется каждые 15 минут. Все остальные значения обновляются моментально (или с задержкой в несколько секунд)."; $lang['stnv0024'] = "RankSystem — статистика TeamSpeak 3 сервера"; $lang['stnv0025'] = "Ограничение списка"; $lang['stnv0026'] = "Все"; @@ -268,11 +272,11 @@ $lang['stnv0032'] = "Вы также можете использовать ф $lang['stnv0033'] = "Также допустимы комбинации шаблонов и фильтров. Для этого введите первым фильтр, за ним без пробелов шаблон."; $lang['stnv0034'] = "Это позволяет комбинировать множество фильтров, вводить которые необходимо последовательно."; $lang['stnv0035'] = "Пример:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Показывать только пользователей находящихся в исключении (пользователей, групп сервера или исключение канала)."; +$lang['stnv0036'] = "Показывать только исключенных пользователей (пользователей, групп сервера или исключение канала)."; $lang['stnv0037'] = "Показывать только неисключенных пользователей"; -$lang['stnv0038'] = "Показывать только пользователей находящихся в онлайне"; -$lang['stnv0039'] = "Показывать только пользователей не находящихся в онлайне"; -$lang['stnv0040'] = "Показывать только пользователей в указанных группах, она же - выборка юзеров по рангам
Замените GROUPID на желаемые ID группы ранга."; +$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"; @@ -288,22 +292,24 @@ $lang['stri0009'] = "Как создавалась система рангов $lang['stri0010'] = "Система рангов TSN разрабатывалась на языке"; $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 - За изначальный перевод на Датский язык"; -$lang['stri0019'] = "Quentinti - За перевод интерфейса на Французский язык"; -$lang['stri0020'] = "Pasha - За перевод интерфейса на Португальский язык"; -$lang['stri0021'] = "Shad86 - за отличную поддержку на GitHub и нашем публичном сервере, за его идеи, тестирование перед релизом и многое другое"; -$lang['stri0022'] = "mightyBroccoli - за его идеи и тестирование перед релизом"; +$lang['stri0013'] = "%s За русскоязычный перевод интерфейса."; +$lang['stri0014'] = "%s За помощь в создании дизайна сайта с помощью Bootstrap."; +$lang['stri0015'] = "%s За перевод интерфейса на итальянский язык."; +$lang['stri0016'] = "%s За перевод интерфейса на арабский язык"; +$lang['stri0017'] = "%s За перевод интерфейса на румынский язык."; +$lang['stri0018'] = "%s За изначальный перевод на Датский язык"; +$lang['stri0019'] = "%s За перевод интерфейса на Французский язык"; +$lang['stri0020'] = "%s За перевод интерфейса на Португальский язык"; +$lang['stri0021'] = "%s за отличную поддержку на GitHub и нашем публичном сервере, за его идеи, тестирование перед релизом и многое другое"; +$lang['stri0022'] = "%s за его идеи и тестирование перед релизом"; $lang['stri0023'] = "Стабильный релиз: 18/04/2016."; -$lang['stri0024'] = "KeviN - За перевод интерфейса на Чешский язык"; -$lang['stri0025'] = "DoktorekOne - За перевод интерфейса на Польский язык"; -$lang['stri0026'] = "JavierlechuXD - для перевода на испанский язык"; -$lang['stri0027'] = "ExXeL - for initialisation hungarian translation"; -$lang['stri0028'] = "G. FARZALIYEV - for azerbaijan translation"; +$lang['stri0024'] = "%s За перевод интерфейса на Чешский язык"; +$lang['stri0025'] = "%s За перевод интерфейса на Польский язык"; +$lang['stri0026'] = "%s За перевод интерфейса на Испанский язык"; +$lang['stri0027'] = "%s За перевод интерфейса на Венгерский язык"; +$lang['stri0028'] = "%s За перевод интерфейса на Азербайджанский язык"; +$lang['stta0001'] = "За все время"; +$lang['sttm0001'] = "За месяц"; $lang['sttw0001'] = "Топ-10 пользователей"; $lang['sttw0002'] = "За неделю"; $lang['sttw0003'] = "Набрал %s %s часов онлайна"; @@ -319,9 +325,7 @@ $lang['sttw0012'] = "Остальные %s клиенты (в часах)"; $lang['sttw0013'] = "С %s %s часами активности"; $lang['sttw0014'] = "час(-а,-ов)"; $lang['sttw0015'] = "Минут (ы)"; -$lang['sttm0001'] = "За месяц"; -$lang['stta0001'] = "За все время"; -$lang['stve0001'] = "\nЗдравствуйте %s,\n что бы пройти верификацию в системе рангов кликните по ссылке ниже:\n[B]%s[/B]\n\nЕсли ссылка не работает - вы можете вручную скопировать код подтверждения и ввести его на странице верификации :\n%s\n\nЕсли вы не запрашивали данное сообщение - проигнорируйте его. Если по какой-либо причине вы получаете это сообщение несколько раз, свяжитесь с администратором системы рангов."; +$lang['stve0001'] = "\nЗдравствуйте %s,\n что бы пройти проверку в системе рангов кликните по ссылке ниже:\n[B]%s[/B]\n\nЕсли ссылка не работает - вы можете вручную скопировать код подтверждения и ввести его на странице проверки :\n%s\n\nЕсли вы не запрашивали данное сообщение - проигнорируйте его. Если по какой-либо причине вы получаете это сообщение несколько раз, свяжитесь с администратором системы рангов."; $lang['stve0002'] = "Сообщение с ключом было отправлено вам через личное сообщение на сервере TS3."; $lang['stve0003'] = "Пожалуйста, введите ключ, который вы получили на сервере TS3. Если вы не получили ключ - убедитесь что вы выбрали правильный уникальный ID."; $lang['stve0004'] = "Ключ, который вы ввели не подходит! Попробуйте снова."; @@ -329,17 +333,17 @@ $lang['stve0005'] = "Поздравляем, проверка произошл $lang['stve0006'] = "Произошла неизвестная ошибка. Попробуйте ещё раз. Если не получится - свяжитесь с администратором."; $lang['stve0007'] = "Проверка на сервере TS"; $lang['stve0008'] = "Выберите свой уникальный ID на сервере что бы произвести проверку."; -$lang['stve0009'] = " -- выберите себя из выпадающего списка -- "; +$lang['stve0009'] = " -- нажмите сюда выберите себя из списка -- "; $lang['stve0010'] = "Вы получите ключ для подтверждения на сервере, который вам необходимо ввести в данное поле:"; $lang['stve0011'] = "Ключ:"; $lang['stve0012'] = "проверить"; +$lang['time_day'] = "Дни"; +$lang['time_hour'] = "Часы"; +$lang['time_min'] = "Минуты"; $lang['time_ms'] = "мс"; $lang['time_sec'] = "Секунды"; -$lang['time_min'] = "Минуты"; -$lang['time_hour'] = "Часы"; -$lang['time_day'] = "Дни"; -$lang['unknown'] = "unknown"; -$lang['upgrp0001'] = "Группа сервера с ID %s найдена в параметре '%s' (webinterface -> rank), однако её (больше) не существует на вашем сервере TS3! Пожалуйста, перенастройте конфигурацию или могут возникнуть ошибки!"; +$lang['unknown'] = "неизвестно"; +$lang['upgrp0001'] = "Группа сервера с ID %s используется в параметре '%s' (веб-интерфейс -> система -> ранг), однако она не найдена на сервере TS3! Пожалуйста, перенастройте конфигурацию иначе возникнут ошибки!"; $lang['upgrp0002'] = "Загрузка новой иконки сервера"; $lang['upgrp0003'] = "При записи иконки сервера на диск произошла ошибка."; $lang['upgrp0004'] = "Ошибка при загрузке иконки сервера: "; @@ -352,25 +356,26 @@ $lang['upgrp0010'] = "Иконка группы сервера %s с ID %s б $lang['upgrp0011'] = "Скачивается новая иконка группы сервера %s с ID: %s"; $lang['upinf'] = "Доступна новая версия системы рангов; Сообщаю пользователям из списка на сервере..."; $lang['upinf2'] = "Система рангов была недавно (%s) обновлена. При желании вы можете открыть %sсписок изменений%s."; -$lang['upmsg'] = "\nЭй, доступна новая версия [B]Системы рангов TSN![/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]%s[/URL] для получения более подробной информации.\n\nПроцесс обновления был запущен в фоне. [B]Больше информации в файле /logs/ranksystem.log![/B]"; +$lang['upmsg'] = "\nДоступна новая версия [B]Системы рангов TSN![/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]%s[/URL] для получения более подробной информации.\n\nПроцесс обновления был запущен в фоне. [B]Больше информации в файле /logs/ranksystem.log![/B]"; $lang['upmsg2'] = "\n[B]Система рангов[/B] была обновлена.\n\n[B]Новая версия: %s[/B]\n\nСписок изменений доступен на официальном сайте [URL]%s[/URL]."; $lang['upusrerr'] = "Пользователь с уникальным ID %s не был найден (не правильно указан Уникальный ID или пользователь в настоящий момент не подключен к серверу Teamspeak)!"; $lang['upusrinf'] = "Пользователь %s был успешно проинформирован."; $lang['user'] = "Логин"; $lang['verify0001'] = "Пожалуйста, убедитесь в том что вы действительно подключены к серверу TS3!"; -$lang['verify0002'] = "Войдите, если ещё этого не сделали, в %sканал для верификации%s!"; -$lang['verify0003'] = "Если вы действительно подключены к серверу - свяжитесь с администратором.
Ему необходимо создать на сервере TeamSpeak специальный канал для верификации. После этого, необходимо указать ID этого канала в настройках системы рангов, (это сможет сделать только администратор системы рангов!).
Больше информации можно получить в веб-панели системы рангов (-> stats page).

Без этих действий на данный момент мы не сможем верифицировать вас в системе рангов. Извините :("; -$lang['verify0004'] = "Не найдено пользователей в канале для верификации..."; -$lang['wi'] = "Веб-панель"; +$lang['verify0002'] = "Войдите, если ещё этого не сделали, в %sканал для проверки%s!"; +$lang['verify0003'] = "Если вы действительно подключены к серверу - свяжитесь с администратором.
Ему необходимо создать на сервере TeamSpeak специальный канал для проверки. После этого, необходимо указать ID этого канала в настройках системы рангов, (это сможет сделать только администратор системы рангов!).
Больше информации можно получить в веб-панели системы рангов (меню Система).

Без этих действий на данный момент мы не сможем проверить вас в системе рангов. Извините :("; +$lang['verify0004'] = "Не найдено пользователей в проверочном канале..."; +$lang['wi'] = "Панель управления"; $lang['wiaction'] = "Выполнить"; $lang['wiadmhide'] = "скрывать исключенных клиентов"; $lang['wiadmhidedesc'] = "Нужно ли скрывать исключенных клиентов в данном списке"; -$lang['wiadmuuid'] = "Bot-Admin"; -$lang['wiadmuuiddesc'] = "Choose the user, which are the administrator(s) of the Ranksystem.
Also multiple selections are possible.

Here listed users are the user of your TeamSpeak server. Be sure, you are online there. When you are offline, go online, restart the Ranksystem Bot and reload this site.


The administrator of the Ranksystem Bot have the privileges:

- to reset the password for the webinterface.
(Note: Without definition of an administrator, it is not possible to reset the password!)

- using Bot commands with Bot-Admin privileges
(A list of commands you'll find %shere%s.)"; +$lang['wiadmuuid'] = "Администратор системы рангов"; +$lang['wiadmuuiddesc'] = "Выберите пользователя (или несколько) который будет назначен администратором системы рангов.

В выпадающем меню перечислены все пользователи, которые в данный момент подключены к серверу. Найдите себя в данном списке. Если вы не подключены к серверу то подключитесь сейчас, перезапустите бота системы рангов и обновите данную страницу.


Администратор системы рангов имеет следующие привилегии:

- возможность сброса пароля веб-интерфейса системы рангов.
(Внимание: Если не указан ни один администратор - сбросить пароль будет невозможно!)

- управлять системой рангов отправляя команды боту через сервер TeamSpeak
(Список команд можно найти %sздесь%s.)"; +$lang['wiapidesc'] = "Благодаря API возможно передавать данные (собранные системой рангов) сторонним приложениям.

Для сбора информации вам необходимо пройти идентифицировать себя используя ключ API. Управлять ключами можно на данной странице.

API доступен по ссылке:
%s

API генерирует выходные данные как строку JSON. Так как API самодокументирован, вам всего лишь нужно открыть указанную ссылку и следовать инструкциям."; $lang['wiboost'] = "Бустер онлайна"; +$lang['wiboost2desc'] = "Здесь вы можете указать группы для работы бустера, например, что бы награждать пользователей. Благодаря бустеру время будет начисляться быстрее, следующий ранг будет достигнут быстрее.

Пошаговая инструкция:

1) Создать группу сервера, которая будет использоваться как бустер.

2) Указать группу как бустер (на этой странице).

Группа сервера: Выберите группу сервера, которая активирует буст.

Коэффициент буста: Коэффициент буста онлайна/активного времени пользователя, которому выдан бустер (например, в 2 раза). Возможно указание дробных значений (например, 1.5). Дробные значения должны разделяться точкой!

Продолжительность в секундах: Определяет, как долго бустер должен быть активен. По истечении времени, группа с бустером будет автоматически снята с пользователя. Отсчет начинается как только пользователь получает группу сервера. Отсчет начнется независимо от онлайна пользователя.

3) Для активации бустера выдайте одному или нескольким пользователям настроенную группу."; $lang['wiboostdesc'] = "Вы можете указать здесь ID групп сервера (Их необходимо создать на TeamSpeak сервере заранее), выступающие в роли множителя накапливаемого времени, которое получает пользователь за онлайн на сервере. Также вы должны указать на сколько должно умножаться время и период действия группы-множителя. Чем больше множитель времени, тем быстрее пользователь достигнет следующий ранг. По окончанию действия множителя, группа-множитель автоматически снимается с пользователя. Пример указания группы-множителя следующий:

As factor are also decimal numbers possible. Decimal places must be separated by a period!

ID группы => множитель => время(В секундах)

Если вы хотите сделать две или больше таких групп, то разделите их между собой запятой.

Пример:
12=>2=>6000,13=>1.25=>2500,14=>5=>600
Из примера выше следует, что группа с ID 12 дает множитель времени х2 на 6000 секунд, а группа 13 имеет множитель х1.25 на 2500 секунд. 14 группа соответственно, имеет множитель х5 на 600 секунд."; -$lang['wiboost2desc'] = "You can define boost groups, for example to reward users. With that they will collect time faster (boosted) and therefore reach the next rank faster.

Steps to do:

1) Create a servergroup on your server, which should be used for the boost.

2) Define the boost defintion on this site.

Servergroup: Choose the servergroup that should triggers the boost.

Boost Factor: The factor to boost the online/active time of the user, which owned that group (example 2 times). As factor are also decimal numbers possible (example 1.5). Decimal places must be separated by a dot!

Duration in Seconds: Define how long the boost should be active. Is the time expired, the booster servergroup gets automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup. It doesn't matter the user is online or not, the duration is running out.

3) Give one or more user on the TS server the defined servergroup to boost them."; -$lang['wiboostempty'] = "Empty boost definition. Click on the plus symbol to define one!"; +$lang['wiboostempty'] = "Список пуст. Для создания нажмите на кнопку с иконкой плюса"; $lang['wibot1'] = "Система рангов была выключена. Более подробную информацию смотрите в логе ниже!"; $lang['wibot2'] = "Система рангов запущена. Более подробную информацию смотрите в логе ниже!"; $lang['wibot3'] = "Система рангов перезагружается. Более подробную информацию смотрите в логе ниже!"; @@ -381,78 +386,78 @@ $lang['wibot7'] = "Перезапустить"; $lang['wibot8'] = "Лог системы рангов:"; $lang['wibot9'] = "Заполните все обязательные поля перед запуском системы рангов!"; $lang['wichdbid'] = "Сброс при изменении DBID"; -$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базе данных клиента TeamSpeak изменился.
The user will be matched by his unique Client-ID.

If this function is disabled, the counting of the online (or active) time will go on by the old value, with the new Client-database-ID. In this case only the Client-database-ID of the user will be replaced.


How the Client-database-ID changes?

In every of the following cases the client gets a new Client-database-ID with the next connect to the TS3 server.

1) automatically by the TS3 server
The TeamSpeak server has a function to delete user after X days out of the database. At default this happens, when a user is offline for 30 days and is in no permanent servergroup.
This option you can change inside your ts3server.ini:
dbclientkeepdays=30

2) restoring TS3 snapshot
When you are restoring a TS3 server snapshot, the database-IDs will be changed.

3) manually removing Client
A TeamSpeak client could also be removed manually or by a third-party script out of the TS3 server."; -$lang['wiconferr'] = "Есть ошибка в конфигурации системы рангов. Пожалуйста, зайдите в Веб-панель и проверьте настройки раздела 'Настройка системы рангов'!"; +$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базе данных клиента TeamSpeak изменился.
Проверка пользователя будет осуществляться используя его UID.

Если данная опция отключена то при изменении DBID пользователя подсчет статистики будет продолжен не смотря на новый DBID. DBID будет заменен.


Как меняется ID в базе данных?

В каждом из перечисленных случаях клиент получит новый ID базы данных при подключении к серверу TS3.

1) Автоматически, сервером TS3
TeamSpeak сервер имеет встроенную функцию удаления пользователей из базы данных, в случае неактивности. Как это обычно случается, пользователь не подключался к серверу более 30 дней и он не находится в перманентной группе сервера.
Время неактивности настраивается внутри конфигурации сервера TS3 - в файле ts3server.ini:
dbclientkeepdays=30

2) При восстановлении снапшота
При восстановлении снапшота сервера TS3, ID в базе данных автоматически меняются на новые.

3) Ручное удаление клиента с сервера TS3
Клиент TeamSpeak может быть удален вручную (например, администратором сервера TS3) или сторонним скриптом."; $lang['wichpw1'] = "Неверный старый пароль. Пожалуйста, повторите ввод заново."; $lang['wichpw2'] = "Новые пароли не совпадают. Пожалуйста, повторите ввод заново."; $lang['wichpw3'] = "Пароль для веб-панели успешно изменён. IP инициировавший сброс: IP %s."; $lang['wichpw4'] = "Изменить пароль"; +$lang['wiconferr'] = "Есть ошибка в конфигурации системы рангов. Пожалуйста, выполните вход в панель управления и проверьте настройки раздела 'Настройка системы рангов'. Особенно тщательно проверьте 'Ранги'!"; $lang['widaform'] = "Формат даты"; $lang['widaformdesc'] = "Выберите формат показа даты.

Пример:
%a дней, %h часов, %i минут, %s секунд"; -$lang['widbcfgsuc'] = "Настройки базы данных успешно сохранены."; $lang['widbcfgerr'] = "Ошибка сохранения настроек в базе данных! Ошибка подключения, проверьте на правильность настройки '/other/dbconfig.php'"; +$lang['widbcfgsuc'] = "Настройки базы данных успешно сохранены."; $lang['widbg'] = "Уровень логирования"; $lang['widbgdesc'] = "Настройка уровня логирования системы рангов. Вы можете решить, какую информацию необходимо записывать в лог-файл \"ranksystem.log\"

Чем выше уровень, тем больше информации будет записано.

Изменения данного параметра будут применены только после перезапуска системы рангов.

Не рекомендуется использовать \"6 - DEBUG\" на постоянной основе. Может привести к большому количеству записи в лог и замедлению работы системы рангов!"; $lang['widelcldgrp'] = "Обновить группы"; $lang['widelcldgrpdesc'] = "Система рангов хранит текущие группы рангов пользователей в своей базе данных и после того, как вы отредактируете этих пользователей должно пройти некоторое время, прежде чем система рангов уберёт затронутых пользователей из их прежних групп ранга.
Однако, этой функцией вы можете принудительно запустить процесс обновления групп ранга у всех пользователей, которые в данный момент подключены к серверу."; $lang['widelsg'] = "Удалить их также из групп сервера"; $lang['widelsgdesc'] = "Выберите, если клиенты должны также быть удалены из последней заработанной ими группы-ранга."; +$lang['wiexcept'] = "Исключения"; $lang['wiexcid'] = "Исключ. каналы"; -$lang['wiexcept'] = "Exceptions"; $lang['wiexciddesc'] = "Через запятую должен будет указан список каналов, пользователей в которых система рангов должна будет игнорировать

Находясь в этих каналах, пользователям не будет начисляться время за онлайн на сервере.

Данную функция можно использовать к примеру, для AFK каналов.
При режиме подсчёта за 'активное время', эта функция становится бесполезной, т.к. в канале юзеру перестает вовсе начисляться время бездействия

Пользователи находящиеся в таких каналах, помечаются на этот период как 'исключенные из системы рангов'. К тому же, данные пользователи перестают отображаться в 'stats/list_rankup.php' и становятся доступны только с фильтром поиска или с включенным отображением \"исключенных пользователей\"(Страница статистики - \"исключенные пользователи\")."; $lang['wiexgrp'] = "Исключ. группы сервера"; $lang['wiexgrpdesc'] = "Укажите через запятую ID групп сервера, пользователи в которых будут игнорироваться системой рангов.
Если пользователь находится хоты бы в одной из этих групп, то система рангов будет игнорировать его (и не будет начислять онлайн)."; -$lang['wiexres'] = "Режим исключения"; +$lang['wiexres'] = "Метод исключения"; $lang['wiexres1'] = "всегда считать время (стандартный)"; $lang['wiexres2'] = "заморозка времени"; $lang['wiexres3'] = "сброс времени"; $lang['wiexresdesc'] = "Существует три режима работы с исключенными пользователями. Во всех случаях время не начисляется, а ранги не выдаются. Вы можете выбрать разные варианты того, как накопленное пользователем время будет обрабатываться после того как он будет удален из исключений.

1) всегда считать время (стандартный): По умолчанию, система рангов всегда считает время онлайн/активных пользователей, которые исключены из системы рангов (клиент/серверная группа). В данном режиме не работает только повышение ранга. Это означает, что как только пользователь удалится из исключений, ему будут выданы группы из системы рангов основываясь на времени его активности (например, уровень 3).

2) заморозка времени: С этой опцией онлайн и время простоя будут заморожены на текущем значении (до того как пользователь был исключен). После того как пользователь будет удален из исключений его время онлайн и неактивности будут снова накапливаться.

3) сброс времени: С этой опцией при исключении пользователя время его активности и неактивности будут учитываться, однако после того как пользователь будет удален из исключений его время активности и неактивности будут сброшены.


Исключения по каналам не играют никакой роли, так как время всегда будет игнорироваться (как в режиме заморозки)."; $lang['wiexuid'] = "Исключенные пользователи"; $lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы пользователей (UID), которых система рангов будет игнорировать и им не будет засчитываться время, проведенное на сервере.
"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrptk'] = "cumulative"; +$lang['wigrpimp'] = "Режим импорта"; +$lang['wigrpt1'] = "Время в секундах"; +$lang['wigrpt2'] = "Группа сервера"; $lang['wigrptime'] = "Настройка рангов"; -$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

Время (в секундах)=>номер группы сервера (ServerGroupID)

К тому же, от выбранного режима будет зависеть.

Каждый параметр должен разделяться запятой.

Так же время должно быть указано по 'нарастающей'

Пример:
60=>9,120=>10,180=>11
По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечению еще 120 секунд пользователь получает сервер группу SGID 10, и так далее..."; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime2desc'] = "Укажите время после которого пользователь должен автоматически получить выбранную группу.

время в секундах => ID группы сервера

Максимальное значение - 999.999.999 секунд (около 31 года).

Введенное время будет обрабатываться как 'время онлайн' или 'активное время', в зависимости от того что вы выбрали в 'режиме работы'.


Необходимо указывать общее время.

неправильно:

100 секунд, 100 секунд, 50 секунд
правильно:

100 секунд, 200 секунд, 250 секунд
"; +$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

Время (в секундах)=>номер группы сервера (ServerGroupID)

К тому же, от выбранного режима будет зависеть.

Каждый параметр должен разделяться запятой.

Так же время должно быть указано по 'нарастающей'

Пример:
60=>9,120=>10,180=>11
По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечении очередных 120 секунд пользователь получает группу сервера с ID 10, и так далее..."; +$lang['wigrptk'] = "общее"; $lang['wihladm'] = "Список пользователей (Режим администратора)"; -$lang['wihladm0'] = "Function description (click)"; -$lang['wihladm0desc'] = "Choose one or more reset options and press \"start reset\" to start it.
Each option is described by itself.

After starting the reset job(s), you can view the status on this site.

The reset task will be done about the Ranksystem Bot as a job.
It is necessary the Ranksystem Bot is running.
Do NOT stop or restart the Bot during the reset is in progress!

For the time of running the reset, the Ranksystem will pause all other things. After completing the reset the Bot will automatically go on with the normal work.
Again, do NOT stop or restart the Bot!

When all jobs are done, you need to confirm them. This will reset the status of the jobs. That makes it possible to start a new reset.

In case of a reset you might also want to withdraw servergroups from the users. It is important not to change the 'rank up definition', before you have done this reset. After reset you can change the 'rank up definition', sure!
The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


Be aware, there is no way of return!"; +$lang['wihladm0'] = "Описание функции (кликабельно)"; +$lang['wihladm0desc'] = "Выберите одну или несколько опций сброса и нажмите \"начать сброс\" для запуска.

После запуска задач(и) сброса вы можете просмотреть статус на этой странице.

Задача будет выполняться ботом системы рангов.
Он должен оставаться запущенным.
НЕ ОСТАНАВЛИВАЙТЕ и НЕ ПЕРЕЗАПУСКАЙТЕ бота во время сброса!

Все процессы системы рангов будут приостановлены на время сброса. После завершения бот автоматически продолжит работу в нормальном режиме.
Ещё раз, НЕ ОСТАНАВЛИВАЙТЕ и НЕ ПЕРЕЗАПУСКАЙТЕ бота!

После завершения всех задач необходимо принять изменения. Статус задач будет сброшен. После этого можно будет создать новые задачи сброса.

В случае сброса вы вероятно так же захотите снять группы сервера с пользователей. До завершения сброса очень важно не изменять настройки повышения ранга.
Снятие серверных групп может занять какое-то время. Активный 'режим замедленного Query' так же замедлит этот процесс. Рекомендуем отключить его на время.!


Будьте осторожны, после запуска сброса обратного пути не будет!"; $lang['wihladm1'] = "добавить время"; -$lang['wihladm2'] = "удалить время"; -$lang['wihladm3'] = "Reset Ranksystem"; -$lang['wihladm31'] = "reset all user stats"; -$lang['wihladm311'] = "zero time"; -$lang['wihladm312'] = "delete users"; -$lang['wihladm31desc'] = "Choose one of the both options to reset the statistics of all users.

zero time: Resets the time (online time & idle time) of all users to a value of 0.

delete users: With this option, all users will be deleted out of the Ranksystem database. The TeamSpeak database will not be touched!


Both options affect the following things..

.. on zero time:
Reset Server statistics summary (table: stats_server)
Reset My statistics (table: stats_user)
Reset List Rankup / user statistics (table: user)
Cleans Top users / user statistic snapshots (table: user_snapshot)

.. on delete users:
Cleans donut chart nations (table: stats_nations)
Cleans donut chart platforms (table: stats_platforms)
Cleans donut chart versions (table: stats_versions)
Reset Server statistics summary (table: stats_server)
Cleans My statistics (table: stats_user)
Cleans List Rankup / user statistics (table: user)
Cleans user ip-hash values (table: user_iphash)
Cleans Top users / user statistic snapshots (table: user_snapshot)"; -$lang['wihladm32'] = "withdraw servergroups"; -$lang['wihladm32desc'] = "Activate this function to withdraw the servergroups from all TeamSpeak users.

The Ranksystem scans each group, which is defined inside the 'rank up definition'. It will remove all user, which are known by the Ranksystem, out of this groups.

That's why it is important not to change the 'rank up definition', before you have done the reset. After reset you can change the 'rank up definition', sure!


The withdrawing of servergroups could take a while. An active 'Query-Slowmode' will further increase the required duration. We recommend a disabled 'Query-Slowmode'!


The servergroup itself on the TeamSpeak server will not be removed / touched."; -$lang['wihladm33'] = "remove webspace cache"; -$lang['wihladm33desc'] = "Activate this function to remove the cached avatars and servergroup icons, which are saved on the web space.

Affected directories:
- avatars
- tsicons

After finishing the reset job, the avatars and icons are automatically downloaded again."; -$lang['wihladm34'] = "clean \"Server usage\" graph"; -$lang['wihladm34desc'] = "Activate this function to empty the server usage graph on the stats site."; -$lang['wihladm35'] = "start reset"; -$lang['wihladm36'] = "stop Bot afterwards"; -$lang['wihladm36desc'] = "Is this option activated, the Bot will stop after all reset things are done.

This stop is exactly working like the normal 'stop' parameter. Means, the Bot will not start with the 'check' parameter.

To start the Ranksystem Bot use the 'start' or 'restart' parameter."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs2'] = "in progress.."; -$lang['wihladmrs3'] = "faulted (ended with errors!)"; -$lang['wihladmrs4'] = "finished"; -$lang['wihladmrs5'] = "Reset Job(s) successfully created."; -$lang['wihladmrs6'] = "There is still a reset job active. Please wait until all jobs are finished before you start the next!"; -$lang['wihladmrs7'] = "Press %s Refresh %s to monitor the status."; -$lang['wihladmrs8'] = "Do NOT stop or restart the Bot during the reset is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the jobs. This will reset the job status of all jobs. It is needed to be able to start a new reset."; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time to reset the system"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel reset"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; +$lang['wihladm2'] = "отнять время"; +$lang['wihladm3'] = "Сброс системы рангов"; +$lang['wihladm31'] = "Метод сброса статистики"; +$lang['wihladm311'] = "сброс времени"; +$lang['wihladm312'] = "удаление пользователей"; +$lang['wihladm31desc'] = "Выберите одну из опций сброса статистики всех пользователей.

обнулить время: Сбрасывает время (онлайн и AFK) всех пользователей.

удалить пользователей: При использовании этой опции все пользователи системы рангов будут удалены из базы данных системы рангов. База данных сервера TeamSpeak не будет затронута!


Обе опции затронут следующие пункты...

.. сброс времени:
Сбросится общая статистика сервера (таблица: stats_server)
Сбросится Моя статистика (таблица: stats_user)
Сбросится список рангов / пользовательская статистика (таблица: user)
Сбросятся топ пользователей / снапшоты статистики пользователей (таблица: user_snapshot)

.. при удалении пользователей:
Очистится статистика пользователей по странам (таблица: stats_nations)
Очистится статистика по платформам (таблица: stats_platforms)
Очистится чарт по версиям (таблица: stats_versions)
Сбросится общая статистика сервера (таблица: stats_server)
Сбросится Моя статистика (таблица: stats_user)
Сбросятся топ пользователей / пользовательская статистика (таблица: user)
Сбросятся все хэши IP-адресов пользователей (таблица: user_iphash)
Сбросится Топ пользователей / снапшоты пользовательской статистики (таблцица: user_snapshot)"; +$lang['wihladm32'] = "Снять группы сервера"; +$lang['wihladm32desc'] = "Активируйте данную опцию для снятия всег групп сервера со всех пользователей сервера TeamSpeak.

Система рангов просканирует каждую группу, которая указана в настройках повышения рангов. Все известные системе рангов пользователи-участники групп будут удалены из указанных групп.

Важно не изменять настройки повышения рангов до завершения сброса.


Снятие групп может занять какое-то время. Активный 'режим замедленного Query' так же замедлит данный процесс. Рекомендуем отключить его на время сброса.


Сами группы сервера НЕ БУДУТ удалены с сервера TeamSpeak."; +$lang['wihladm33'] = "Удалить весь кэш веб-сервера"; +$lang['wihladm33desc'] = "При активации данной опции будут удалены все кэшированные аватарки и иконки групп сервера.

Будут затронуты следующие папки:
- avatars
- tsicons

После завершения сброса аватарки и иконки будут заново загружены."; +$lang['wihladm34'] = "Сбросить статистику использования сервера"; +$lang['wihladm34desc'] = "При активации данной опции будет сброшена статистика использования сервера."; +$lang['wihladm35'] = "Начать сброс"; +$lang['wihladm36'] = "Остановить систему после завершения"; +$lang['wihladm36desc'] = "Если эта опция активна - система рангов выключится после завершения сброса.

Команда остановки отработает точно так же как и обычная команда. Это значит что система рангов не запустится заново через параметр запуска 'check'.

После завершения систему рангов необходимо запустить используя команду 'start' или 'restart'."; +$lang['wihladmrs'] = "Статус задачи"; +$lang['wihladmrs0'] = "отключена"; +$lang['wihladmrs1'] = "создана"; +$lang['wihladmrs10'] = "Задание успешно подтверждено!"; +$lang['wihladmrs11'] = "Примерное время сброса системы рангов"; +$lang['wihladmrs12'] = "Вы уверены что хотите продолжить? Вся статистика системы рангов будет сброшена!"; +$lang['wihladmrs13'] = "Да, начать сброс"; +$lang['wihladmrs14'] = "Нет, отменить сброс"; +$lang['wihladmrs15'] = "Пожалуйста, выберите как минимум один из вариантов!"; +$lang['wihladmrs16'] = "включено"; +$lang['wihladmrs2'] = "в процессе.."; +$lang['wihladmrs3'] = "неудачно (завершено с ошибками!)"; +$lang['wihladmrs4'] = "успешно"; +$lang['wihladmrs5'] = "Задание на сброс успешно создано."; +$lang['wihladmrs6'] = "В данный момент всё ещё активна задача на сброс. Подождите немного перед тем как создать ещё одну!"; +$lang['wihladmrs7'] = "Нажимайте %s Обновить %s что бы наблюдать за статусом."; +$lang['wihladmrs8'] = "НЕ ОСТАНАВЛИВАЙТЕ и НЕ ПЕРЕЗАПУСКАЙТЕ систему рангов во время сброса!"; +$lang['wihladmrs9'] = "Пожалуйста %s подтвердите %s задачи. Это сбросит статус выполнения всех задач. Подтверждение необходимо для создания нового задания сброса."; $lang['wihlset'] = "настройки"; $lang['wiignidle'] = "Игнорировать время бездействия"; $lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.

Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), это время также учитывается системой рангов. Только когда установленный лимит будет достигнут, система рангов начнет подсчитывать время бездействия для пользователя.

Эта функция работает только при включенном режиме подсчёта за 'активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).

Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии.

0= отключить данную функцию

Пример:
Игнорировать бездействие= 600 (секунд)
Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя."; @@ -466,6 +471,9 @@ $lang['wimsgsndesc'] = "Здесь указывается новостное с $lang['wimsgusr'] = "Уведомление при повышении"; $lang['wimsgusrdesc'] = "Сообщение пользователю о повышении ранга."; $lang['winav1'] = "TeamSpeak"; +$lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение."; +$lang['winav11'] = "Пожалуйста, укажите себя как Администратора системы рангов в настройках, меню \"TeamSpeak\". Это очень важно, так как в случае утери пароля восстановить его (штатными средствами системы рангов) станет невозможно!"; +$lang['winav12'] = "Аддоны"; $lang['winav2'] = "База данных"; $lang['winav3'] = "Система"; $lang['winav4'] = "Прочее"; @@ -474,22 +482,22 @@ $lang['winav6'] = "Статистика"; $lang['winav7'] = "Администрирование"; $lang['winav8'] = "Запустить / Остановить бота"; $lang['winav9'] = "Доступно обновление!"; -$lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение."; -$lang['winav11'] = "Пожалуйста, укажите ваш Bot-Admin в разделе меню \"TeamSpeak\". Это очень важно, на случай, если вы потеряете пароль от аккаунта веб-панели."; -$lang['winav12'] = "Аддоны"; $lang['winxinfo'] = "Команда \"!nextup\""; $lang['winxinfodesc'] = "Разрешает отправлять боту системы рангов команду \"!nextup\" личным сообщением.

После отправки команды пользователю будет отправлено ответное сообщение с информацией о требуемом времени до следующего повышения.

отключена - Функция полностью отключена. Команда '!nextup' будет игнорироваться.
Включена - только следующий ранг - Будет возвращаться время, необходимое для получения СЛЕДУЮЩЕГО ранга в системе рангов.
Включена - все следующие ранги - Будет возвращаться время, необходимое для получения ВСЕХ последующих рангов в системе рангов."; -$lang['winxmode1'] = "Отключена"; +$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)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Пример:
Вы достигнете следующего ранга через: %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 - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Пример:
Вы получили максимальный ранг за %1$s дней, %2$s часов %3$s минут и %4$s секунд онлайна.
"; $lang['winxmsg3'] = "Сообщ. о исключении"; +$lang['winxmsgdesc1'] = "Задайте форматирование и текст для сообщения, которое будет отправлено ответом на команду \"!nextup\".

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Пример:
Вы достигнете следующего ранга через: %1$s дней, %2$s часов, %3$s минут и %4$s секунд. Название следующей группы-ранга: [B]%5$s[/B].
"; +$lang['winxmsgdesc2'] = "Данный текст будет отправлен пользователю при вводе команды \"!nextup\", если пользователь уже достиг высшего ранга

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Пример:
Вы получили максимальный ранг за %1$s дней, %2$s часов %3$s минут и %4$s секунд онлайна.
"; $lang['winxmsgdesc3'] = "Данный текст будет отправлен пользователю при вводе команды \"!nextup\", если пользователь исключен из системы рангов (Исключенный канал, группа, UID)

Аргументы:
%1$s - Оставшиеся дни до повышения
%2$s - часы
%3$s - минуты
%4$s - секунды
%5$s - Имя следующей группы-ранга
%6$s - name of the user (recipient)
%7$s - current user rank
%8$s - name of the current servergroup
%9$s - current servergroup since


Пример:
Вы исключены из системы рангов. Такое могло произойти, если Вы находитесь в \"Исключенном канале\", группе сервера или ваш идентификатор был вручную добавлен в исключение. За подробной информацией обратитесь к администратору сервера.
"; -$lang['wirtpw1'] = "Увы, но ранее вы не указали Bot-Admin, с помощью которого должно производиться восстановление пароля от веб-панели. В данном случае, восстановление пароля невозможно средствами системы рангов."; -$lang['wirtpw2'] = "Bot-Admin не был найден среди пользователей онлайн на сервере. Вам необходимо подключиться к серверу с заданного в веб-панели уникального Bot-Admin!"; +$lang['wirtpw1'] = "Увы, но ранее вы не указали Администратора системы рангов, с помощью которого должно производиться восстановление пароля от веб-панели. Единственный оставшийся способ сбросить пароль это обновить его в базе данных. Инструкция по ручному сбросу доступна здесь:
%s"; +$lang['wirtpw10'] = "Вы должны находиться онлайн на сервере."; +$lang['wirtpw11'] = "Ранее в веб-панели был указан UID Администратора. Он был сохранен в новом формате как Администратор системы рангов."; +$lang['wirtpw12'] = "Ваши IP-адреса на сервере и на данной странице сайта должны совпадать (протоколы IPv4 / IPv6 также учитываются при сверке IP)."; +$lang['wirtpw2'] = "Администратор системы рангов не был найден среди пользователей онлайн на сервере. Вам необходимо подключиться к серверу используя указанного в веб-панели Администратора системы рангов!"; $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, чтобы войти"; @@ -497,9 +505,6 @@ $lang['wirtpw6'] = "Пароль от веб-панели успешно сб $lang['wirtpw7'] = "Сбросить пароль"; $lang['wirtpw8'] = "Здесь вы можете сбросить пароль для восстановления доступа к веб-панели"; $lang['wirtpw9'] = "Для сброса пароля потребуется следующее:"; -$lang['wirtpw10'] = "Вы должны находиться онлайн на сервере."; -$lang['wirtpw11'] = "Ранее в веб-панели должен был быть указан UID Администратора, which is saved as Bot-Admin."; -$lang['wirtpw12'] = "Ваши IP-адреса на сервере и на данной странице сайта должны совпадать (протоколы IPv4 / IPv6 также учитываются при сверке IP)."; $lang['wiselcld'] = "Выбор пользователя"; $lang['wiselclddesc'] = "Укажите пользователя по его последнему никнейму или уникальному идентификатору(UID), или ID в базе данных Teamspeak 3 сервера."; $lang['wishcolas'] = "Текущая группа сервера"; @@ -512,11 +517,11 @@ $lang['wishcoldbid'] = "ID в базе данных"; $lang['wishcoldbiddesc'] = "Показывать колонку 'ID в Базе данных' в stats/list_rankup.php"; $lang['wishcolgs'] = "Текущая группа начиная с"; $lang['wishcolgsdesc'] = "Показывать колонку 'Текущая группа начиная с' на странице list_rankup.php"; +$lang['wishcolha'] = "Хэширование IP адреса"; $lang['wishcolha0'] = "хэширование выключено"; $lang['wishcolha1'] = "безопасное хэширование"; $lang['wishcolha2'] = "быстрое хэширование (по умолчанию)"; -$lang['wishcolha'] = "Хэширование IP адреса"; -$lang['wishcolhadesc'] = "Сервер TeamSpeak 3 хранит IP адрес каждого клиента. Мы так же используем IP адреса, благодаря чему мы можем ассоциировать адрес пользователя системы рангов и пользователя сервера TeamSpeak 3.

Используя данный параметр вы можете активировать шифрование / хэширование IP адресов пользователей сервера. При активации будет храниться только хэш IP адреса, но не сам адрес. Эту опцию необходимо использовать в странах с действующим законом EU-GDPR.

быстрое хэширование (по умолчанию): IP адрес будет хэширован. Соль разная для каждой установки системы рангов, но одинаковая для всех пользователей сервера. Работает быстро, но потенциально слабее чем 'безопасное хэширование'.

безопасное хэширование: IP адреса будут хэшированы. У каждого пользователя своя соль, благодаря чему сложнее расшифровать IP адрес (=безопаснее). Этот параметр совсместим с законом EU-GDPR. Минус: Отрицательно влияет на производительность, особенно на серверах TeamSpeak с большым количеством пользователей. Будет замедлена работа страницы статистики. Повышает требования к аппаратным ресурсам.

хэширование выключено: Если используется эта опция - хэширование IP адреса пользователя выключено. IP хранится открытым текстом. Наиболее быстрый метод, однако, наименее безопасный.


Независимо от выбранного варианта данной опции IP адреса пользователей хранятся пока они подключены к серверу TS3 (меньше сбора данных - EU-GDPR).

Хранение IP адресов пользователей начинается с момента подключения к серверу TS3. При изменении данного параметра пользователям необходимо переподключиться к серверу, иначе они не смогут пройти верификацию."; +$lang['wishcolhadesc'] = "Сервер TeamSpeak 3 хранит IP адрес каждого клиента. Мы так же используем IP адреса, благодаря чему мы можем ассоциировать адрес пользователя системы рангов и пользователя сервера TeamSpeak 3.

Используя данный параметр вы можете активировать шифрование / хэширование IP адресов пользователей сервера. При активации будет храниться только хэш IP адреса, но не сам адрес. Эту опцию необходимо использовать в странах с действующим законом EU-GDPR.

быстрое хэширование (по умолчанию): IP адрес будет хэширован. Соль разная для каждой установки системы рангов, но одинаковая для всех пользователей сервера. Работает быстро, но потенциально слабее чем 'безопасное хэширование'.

безопасное хэширование: IP адреса будут хэшированы. У каждого пользователя своя соль, благодаря чему сложнее расшифровать IP адрес (=безопаснее). Этот параметр совсместим с законом EU-GDPR. Минус: Отрицательно влияет на производительность, особенно на серверах TeamSpeak с большым количеством пользователей. Будет замедлена работа страницы статистики. Повышает требования к аппаратным ресурсам.

хэширование выключено: Если используется эта опция - хэширование IP адреса пользователя выключено. IP хранится открытым текстом. Наиболее быстрый метод, однако, наименее безопасный.


Независимо от выбранного варианта данной опции IP адреса пользователей хранятся пока они подключены к серверу TS3 (меньше сбора данных - EU-GDPR).

Хранение IP адресов пользователей начинается с момента подключения к серверу TS3. При изменении данного параметра пользователям необходимо переподключиться к серверу, иначе они не смогут пройти проверку."; $lang['wishcolit'] = "Учитывать время простоя"; $lang['wishcolitdesc'] = "Показывать колонку 'суммарное время простоя' в stats/list_rankup.php"; $lang['wishcolls'] = "Последний раз замечен"; @@ -527,62 +532,62 @@ $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['wishcolsg'] = "Следующая группа сервера"; +$lang['wishcolsgdesc'] = "Показывать колонку 'следующая группа сервера' в stats/list_rankup.php"; $lang['wishcoluuid'] = "UID пользов."; $lang['wishcoluuiddesc'] = "Показывать колонку 'уникальный ID клиента'(UID) в stats/list_rankup.php"; $lang['wishdef'] = "Колонка сортировки по умолчанию"; $lang['wishdefdesc'] = "Определите колонку, по которой следует сортировать пользователей на странице общей статистики."; $lang['wishexcld'] = "Исключенные пользователи"; $lang['wishexclddesc'] = "Показывать пользователей в list_rankup.php,
которые исключены и не участвуют в системе рангов."; -$lang['wishexgrp'] = "Группы исключения"; +$lang['wishexgrp'] = "Исключенные группы"; $lang['wishexgrpdesc'] = "Показывать пользователей в list_rankup.php, которые находятся в списке 'исключенных пользователей' и не должны учитываться системой рангов."; $lang['wishhicld'] = "Пользователи с высшим рангом"; $lang['wishhiclddesc'] = "Показывать пользователей в list_rankup.php, достигших максимального уровня в системе рангов."; -$lang['wishmax'] = "show max. Clients"; -$lang['wishmaxdesc'] = "Show the max. Clients as line inside the server usage graph on 'stats/' page."; +$lang['wishmax'] = "Показывать максимальный онлайн"; +$lang['wishmaxdesc'] = "Показывать максимальный онлайн как строку на странице статистики."; $lang['wishnav'] = "Показывать навигацию по системе"; $lang['wishnavdesc'] = "Показывать ли навигацию на странице on 'stats/'.

Если эта опция отключена то навигация на сайте не будет отображаться.
Вы можете взять любую страницу, например 'stats/list_rankup.php' и встроить её используя фреймы в вашем существующем сайте или форуме."; $lang['wishsort'] = "Сортировка по умолчанию"; $lang['wishsortdesc'] = "Выберите нужный тип сортировки для страницы общей статистики."; -$lang['wisupidle'] = "time Режим"; +$lang['wistcodesc'] = "Укажите необходимое количество подключений к серверу для получения достижения."; +$lang['wisttidesc'] = "Укажите необходимое время (в часах), необходимое для получения достижения."; +$lang['wisupidle'] = "Режим времени"; $lang['wisupidledesc'] = "Предоставлены два режима, по которым будет высчиваться ранг пользователей:

1) Время подключения(Общее время): Общее время подключения на сервере, складывается из \"Активного времени\" и \"времени бездействия\"(колонка 'Сумм. время подключения' в 'stats/list_rankup.php')

2) Активное время(Время активности): Время, которое пользователь не находился в бездействии. Значение этого времени высчитывается путем вычитания \"времени бездействия из\" из \"Общего времени подключения на сервере\" (Колонка 'Сумм. время активности' в 'stats/list_rankup.php').

Не рекомендуется смена режима при уже отработавшем долгий срок старом режиме, но допустимо."; $lang['wisvconf'] = "Сохранить"; $lang['wisvinfo1'] = "Внимание! При изменении режима хэширования IP адресов пользователей необходимо что бы каждый из пользователей переподключился к серверу TS3 или они не смогут синхронизироваться со страницей статистики."; -$lang['wisvsuc'] = "Изменения успешно сохранены!"; $lang['wisvres'] = "Для принятия внесенных правок вам необходимо перезагрузить систему рангов! %s"; -$lang['wisttidesc'] = "Укажите необходимое время (в часах), необходимое для получения достижения."; -$lang['wistcodesc'] = "Укажите необходимое количество подключений к серверу для получения достижения."; +$lang['wisvsuc'] = "Изменения успешно сохранены!"; $lang['witime'] = "Часовой пояс"; $lang['witimedesc'] = "Выбрать часовой пояс сервера.

Оказывает влияние на время, отражаемое в лог-файле системы рангов (ranksystem.log)."; $lang['wits3avat'] = "Задержка загрузки аватаров"; -$lang['wits3avatdesc'] = "Определяет задержку при загрузке аватаров на сервере TS3.

Эта функция особенно полезна для серверов с (музыкальными) ботами, которые переодически меняют свои аватарки."; +$lang['wits3avatdesc'] = "Определяет задержку при загрузке аватаров на сервере TS3.

Эта функция особенно полезна для серверов с (музыкальными) ботами, которые периодически меняют свои аватарки."; $lang['wits3dch'] = "Канал по умолчанию"; $lang['wits3dchdesc'] = "При подключении к серверу, бот системы рангов будет пытаться войти в этот канал и останется там."; +$lang['wits3encrypt'] = "Шифрование TS3-Query"; +$lang['wits3encryptdesc'] = "Включите данную опцию для активации шифрования между системой рангов и сервером TS3 (SSH).
Когда эта опция отключена - система рангов осуществляет соединение с сервером TS3 используя Telnet (без шифрования, RAW). Это может быть риском безопасности, особенно нсли сервер TS3 и система рангов запущены на разных машинах.

Так же убедилесь что вы проверили TS3 Query порт, который (возможно) необходимо изменить в настройках системы рангов!

Внимание: Шифрование по SSH нагружает процессор! Мы рекомендуем использовать соединение без шифрования (RAW) если сервер TS3 и система рангов запущены на одной и той же машине (localhost / 127.0.0.1). Если они запущены на разных машинахх - используйте шифрование!

Системные требования:

1) TS3 Сервер версии 3.3.0 или выше.

2) Расширение PHP-SSH2.
На Linux вы можете установить его командой:
%s
3) Шифрование необходимо включить в конфигурации сервера TS3!
Активируйте следующие параметры в вашем конфиге 'ts3server.ini' и настройте их под свои нужды:
%s После того как закончите - необходимо так же перезагрузить сервер TS3 для применения настроек."; $lang['wits3host'] = "Адрес TS3"; -$lang['wits3hostdesc'] = "Адрес TeamSpeak 3 Сервера
(IP или DNS)"; -$lang['wits3sm'] = "Query-Замедленный режим"; -$lang['wits3smdesc'] = "Query-Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которых система рангов может получить временный бан со стороны TeamSpeak 3 сервера.

!!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!

Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов.

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

%s

Используйте режимы Огромная задержка и Ультра огромная задержка только если знаете что делаете! Предупреждение: установка этих режимов работы может привести к задержке работы системы рангов на более чем 65 секунд! Настраивайте данный параметр в зависимости от производительности/нагрузки на сервере."; +$lang['wits3hostdesc'] = "Адрес сервера TeamSpeak 3
(IP или DNS)"; $lang['wits3qnm'] = "Основн. ник бота"; $lang['wits3qnmdesc'] = "Никнейм, под которым система рангов будет авторизовываться на сервере.
Убедитесь, что оно не занято кем-то другим."; $lang['wits3querpw'] = "TS3 Query-Пароль"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query-Пароль
Ваш пароль от query-пользователя."; +$lang['wits3querpwdesc'] = "Логин для авторизации на сервере
По умолчанию: serveradmin
Конечно вы можете указать другой логин для системы рангов.
Необходимые разрешения привилегий вы можете найти на:
%s"; $lang['wits3querusr'] = "TS3 Query-Логин"; $lang['wits3querusrdesc'] = "TeamSpeak 3 query-Логин
По умолчанию: serveradmin
Конечно вы можете указать другой логин для системы рангов.
Необходимые разрешения привилегий вы можете найти на:
%s"; $lang['wits3query'] = "TS3 Query-Порт"; -$lang['wits3querydesc'] = "TeamSpeak 3 query-Порт
Стандартный RAW (открытый текст) - 10011 (TCP)
Стандартный SSH (шифрование) - 10022 (TCP)

Если порт изменен, то укажите его согласно настройкам из 'ts3server.ini'."; -$lang['wits3encrypt'] = "TS3 Query-Шифрование"; -$lang['wits3encryptdesc'] = "Включите данную опцию для активации шифрования между системой рангов и сервером TS3 (SSH).
Когда эта опция отключена - система рангов осуществляет соединение с сервером TS3 используя Telnet (без шифрования, RAW). Это может быть риском безопасности, особенно нсли сервер TS3 и система рангов запущены на разных машинах.

Так же убедилесь что вы проверили TS3 Query порт, который (возможно) необходимо изменить в настройках системы рангов!

Внимание: Шифрование по SSH нагружает процессор! Мы рекомендуем использовать соединение без шифрования (RAW) если сервер TS3 и система рангов запущены на одной и той же машине (localhost / 127.0.0.1). Если они запущены на разных машинахх - используйте шифрование!

Системные требования:

1) TS3 Сервер версии 3.3.0 или выше.

2) Расширение PHP-SSH2.
На Linux вы можете установить его командой:
%s
3) Шифрование необходимо включить в конфигурации сервера TS3!
Активируйте следующие параметры в вашем конфиге 'ts3server.ini' и настройте их под свои нужды:
%s После того как закончите - необходимо так же перезагрузить сервер TS3 для применения настроек."; +$lang['wits3querydesc'] = "Порт запросов сервера TS3
Стандартный RAW (открытый текст) - 10011 (TCP)
Стандартный SSH (шифрование) - 10022 (TCP)

Если порт изменен, то укажите его согласно настройкам из 'ts3server.ini'."; +$lang['wits3sm'] = "Query-Замедленный режим"; +$lang['wits3smdesc'] = "Query-Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которых система рангов может получить временный бан со стороны TeamSpeak 3 сервера.

!!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!

Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов.

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

%s

Используйте режимы Огромная задержка и Ультра огромная задержка только если знаете что делаете! Предупреждение: установка этих режимов работы может привести к задержке работы системы рангов на более чем 65 секунд! Настраивайте данный параметр в зависимости от производительности/нагрузки на сервере."; $lang['wits3voice'] = "TS3 Voice-Порт"; -$lang['wits3voicedesc'] = "TeamSpeak 3 voice-Порт
По умолчанию: 9987 (UDP)
Этот порт используется Teamspeak 3 клиентом для подключения к серверу."; -$lang['witsz'] = "Лимит лога"; +$lang['wits3voicedesc'] = "Голосовой порт сервера
По умолчанию: 9987 (UDP)
Этот порт используется Teamspeak 3 клиентом для подключения к серверу."; +$lang['witsz'] = "Ограничение лог-файла"; $lang['witszdesc'] = "Максимальный размер лог-файла, при превышении которого произойдет ротация.

Укажите значение в мегабайтах.

Когда увеличиваете значение, будьте уверены в том что у вас достаточно свободного пространства на диске. Слишком большие логи могут привести к проблемам с производительностью!

Изменение данного параметра подействует при перезапуске системы рангов. Если размер лог-файла выше указанного значения - ротация произойдет мгновенно."; $lang['wiupch'] = "Канал обновлений"; $lang['wiupch0'] = "стабильный"; $lang['wiupch1'] = "бета"; $lang['wiupchdesc'] = "По мере выхода обновлений система рангов будет автоматически обновлена. Здесь вы можете выбрать желаемый канал обновлений.

стабильный (по умолчанию): Вы получаете стабильную версию. Рекомендуется использовать в продакшне.

бета: Вы получаете последнюю бета-версию. Функциональные обновления приходят быстрее, однако риск возникновения багов выше. Используйте на свой страх и риск!

При изменении канала обновлений с бета на стабильный версия системы рангов не понизится. Система рангов будет обновлена до стабильной версии, выпущенной после бета-версии."; -$lang['wiverify'] = "Канал для верификации"; -$lang['wiverifydesc'] = "Здесь необходимо указать ID канала, в котором будет проходить верификация пользователей.

Этот канал необходимо настроить на сервере TS3 вручную. Имя, привилегии и другие настройки могут быть установлены по вашему желанию; необходимо лишь предоставить пользователям возможность входить в данный канал!
Это необходимо только в случае если посетитель не сможет автоматически идентифицироваться системой рангов.

Для верификации пользователь сервера должен быть внутри данного канала. Там он сможет получить ключ, с помощью которого он верифицирует себя на странице статистики."; +$lang['wiverify'] = "Канал для проверки"; +$lang['wiverifydesc'] = "Здесь необходимо указать ID канала, в котором будет проходить проверка пользователей.

Этот канал необходимо настроить на сервере TS3 вручную. Имя, привилегии и другие настройки могут быть установлены по вашему желанию; необходимо лишь предоставить пользователям возможность входить в данный канал!
Это необходимо только в случае если посетитель не сможет автоматически идентифицироваться системой рангов.

Для проверки пользователь сервера должен быть внутри данного канала. Там он сможет получить ключ, с помощью которого он идентифицирует себя на странице статистики."; $lang['wivlang'] = "Язык"; $lang['wivlangdesc'] = "Выберите язык, используемый системой рангов по умолчанию.

Язык сайта по-прежнему будет доступен для переключения всем пользователям."; ?> \ No newline at end of file diff --git a/libs/combined_wi.js b/libs/combined_wi.js index e64d875..4c9e156 100644 --- a/libs/combined_wi.js +++ b/libs/combined_wi.js @@ -9,11 +9,11 @@ var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(/< /* Touchspin 3.1.2 */ !function(a){"use strict";function b(a,b){return a+".touchspin_"+b}function c(c,d){return a.map(c,function(a){return b(a,d)})}var d=0;a.fn.TouchSpin=function(b){if("destroy"===b)return void this.each(function(){var b=a(this),d=b.data();a(document).off(c(["mouseup","touchend","touchcancel","mousemove","touchmove","scroll","scrollstart"],d.spinnerid).join(" "))});var e={min:0,max:100,initval:"",replacementval:"",step:1,decimals:0,stepinterval:100,forcestepdivisibility:"round",stepintervaldelay:500,verticalbuttons:!1,verticalupclass:"fas fa-caret-up",verticaldownclass:"fas fa-caret-down",prefix:"",postfix:"",prefix_extraclass:"",postfix_extraclass:"",booster:!0,boostat:10,maxboostedstep:!1,mousewheel:!0,buttondown_class:"btn btn-default",buttonup_class:"btn btn-default",buttondown_txt:"-",buttonup_txt:"+"},f={min:"min",max:"max",initval:"init-val",replacementval:"replacement-val",step:"step",decimals:"decimals",stepinterval:"step-interval",verticalbuttons:"vertical-buttons",verticalupclass:"vertical-up-class",verticaldownclass:"vertical-down-class",forcestepdivisibility:"force-step-divisibility",stepintervaldelay:"step-interval-delay",prefix:"prefix",postfix:"postfix",prefix_extraclass:"prefix-extra-class",postfix_extraclass:"postfix-extra-class",booster:"booster",boostat:"boostat",maxboostedstep:"max-boosted-step",mousewheel:"mouse-wheel",buttondown_class:"button-down-class",buttonup_class:"button-up-class",buttondown_txt:"button-down-txt",buttonup_txt:"button-up-txt"};return this.each(function(){function g(){if(!J.data("alreadyinitialized")){if(J.data("alreadyinitialized",!0),d+=1,J.data("spinnerid",d),!J.is("input"))return void console.log("Must be an input.");j(),h(),u(),m(),p(),q(),r(),s(),D.input.css("display","block")}}function h(){""!==B.initval&&""===J.val()&&J.val(B.initval)}function i(a){l(a),u();var b=D.input.val();""!==b&&(b=Number(D.input.val()),D.input.val(b.toFixed(B.decimals)))}function j(){B=a.extend({},e,K,k(),b)}function k(){var b={};return a.each(f,function(a,c){var d="bts-"+c;J.is("[data-"+d+"]")&&(b[a]=J.data(d))}),b}function l(b){B=a.extend({},B,b),b.postfix&&J.parent().find(".bootstrap-touchspin-postfix").text(b.postfix),b.prefix&&J.parent().find(".bootstrap-touchspin-prefix").text(b.prefix)}function m(){var a=J.val(),b=J.parent();""!==a&&(a=Number(a).toFixed(B.decimals)),J.data("initvalue",a).val(a),J.addClass("form-control"),b.hasClass("input-group")?n(b):o()}function n(b){b.addClass("bootstrap-touchspin");var c,d,e=J.prev(),f=J.next(),g=''+B.prefix+"",h=''+B.postfix+"";e.hasClass("input-group-btn")?(c='",e.append(c)):(c='",a(c).insertBefore(J)),f.hasClass("input-group-btn")?(d='",f.prepend(d)):(d='",a(d).insertAfter(J)),a(g).insertBefore(J),a(h).insertAfter(J),C=b}function o(){var b;b=B.verticalbuttons?'
'+B.prefix+''+B.postfix+'
':'
'+B.prefix+''+B.postfix+'
",C=a(b).insertBefore(J),a(".bootstrap-touchspin-prefix",C).after(J),J.hasClass("input-sm")?C.addClass("input-group-sm"):J.hasClass("input-lg")&&C.addClass("input-group-lg")}function p(){D={down:a(".bootstrap-touchspin-down",C),up:a(".bootstrap-touchspin-up",C),input:a("input",C),prefix:a(".bootstrap-touchspin-prefix",C).addClass(B.prefix_extraclass),postfix:a(".bootstrap-touchspin-postfix",C).addClass(B.postfix_extraclass)}}function q(){""===B.prefix&&D.prefix.hide(),""===B.postfix&&D.postfix.hide()}function r(){J.on("keydown",function(a){var b=a.keyCode||a.which;38===b?("up"!==M&&(w(),z()),a.preventDefault()):40===b&&("down"!==M&&(x(),y()),a.preventDefault())}),J.on("keyup",function(a){var b=a.keyCode||a.which;38===b?A():40===b&&A()}),J.on("blur",function(){u()}),D.down.on("keydown",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&("down"!==M&&(x(),y()),a.preventDefault())}),D.down.on("keyup",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&A()}),D.up.on("keydown",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&("up"!==M&&(w(),z()),a.preventDefault())}),D.up.on("keyup",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&A()}),D.down.on("mousedown.touchspin",function(a){D.down.off("touchstart.touchspin"),J.is(":disabled")||(x(),y(),a.preventDefault(),a.stopPropagation())}),D.down.on("touchstart.touchspin",function(a){D.down.off("mousedown.touchspin"),J.is(":disabled")||(x(),y(),a.preventDefault(),a.stopPropagation())}),D.up.on("mousedown.touchspin",function(a){D.up.off("touchstart.touchspin"),J.is(":disabled")||(w(),z(),a.preventDefault(),a.stopPropagation())}),D.up.on("touchstart.touchspin",function(a){D.up.off("mousedown.touchspin"),J.is(":disabled")||(w(),z(),a.preventDefault(),a.stopPropagation())}),D.up.on("mouseout touchleave touchend touchcancel",function(a){M&&(a.stopPropagation(),A())}),D.down.on("mouseout touchleave touchend touchcancel",function(a){M&&(a.stopPropagation(),A())}),D.down.on("mousemove touchmove",function(a){M&&(a.stopPropagation(),a.preventDefault())}),D.up.on("mousemove touchmove",function(a){M&&(a.stopPropagation(),a.preventDefault())}),a(document).on(c(["mouseup","touchend","touchcancel"],d).join(" "),function(a){M&&(a.preventDefault(),A())}),a(document).on(c(["mousemove","touchmove","scroll","scrollstart"],d).join(" "),function(a){M&&(a.preventDefault(),A())}),J.on("mousewheel DOMMouseScroll",function(a){if(B.mousewheel&&J.is(":focus")){var b=a.originalEvent.wheelDelta||-a.originalEvent.deltaY||-a.originalEvent.detail;a.stopPropagation(),a.preventDefault(),0>b?x():w()}})}function s(){J.on("touchspin.uponce",function(){A(),w()}),J.on("touchspin.downonce",function(){A(),x()}),J.on("touchspin.startupspin",function(){z()}),J.on("touchspin.startdownspin",function(){y()}),J.on("touchspin.stopspin",function(){A()}),J.on("touchspin.updatesettings",function(a,b){i(b)})}function t(a){switch(B.forcestepdivisibility){case"round":return(Math.round(a/B.step)*B.step).toFixed(B.decimals);case"floor":return(Math.floor(a/B.step)*B.step).toFixed(B.decimals);case"ceil":return(Math.ceil(a/B.step)*B.step).toFixed(B.decimals);default:return a}}function u(){var a,b,c;return a=J.val(),""===a?void(""!==B.replacementval&&(J.val(B.replacementval),J.trigger("change"))):void(B.decimals>0&&"."===a||(b=parseFloat(a),isNaN(b)&&(b=""!==B.replacementval?B.replacementval:0),c=b,b.toString()!==a&&(c=b),bB.max&&(c=B.max),c=t(c),Number(a).toString()!==c.toString()&&(J.val(c),J.trigger("change"))))}function v(){if(B.booster){var a=Math.pow(2,Math.floor(L/B.boostat))*B.step;return B.maxboostedstep&&a>B.maxboostedstep&&(a=B.maxboostedstep,E=Math.round(E/a)*a),Math.max(B.step,a)}return B.step}function w(){u(),E=parseFloat(D.input.val()),isNaN(E)&&(E=0);var a=E,b=v();E+=b,E>B.max&&(E=B.max,J.trigger("touchspin.on.max"),A()),D.input.val(Number(E).toFixed(B.decimals)),a!==E&&J.trigger("change")}function x(){u(),E=parseFloat(D.input.val()),isNaN(E)&&(E=0);var a=E,b=v();E-=b,E]+>/g,"")),s&&(a=w(a)),a=a.toUpperCase(),o="contains"===i?0<=a.indexOf(t):a.startsWith(t)))break}return o}function L(e){return parseInt(e,10)||0}z.fn.triggerNative=function(e){var t,i=this[0];i.dispatchEvent?(u?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),i.dispatchEvent(t)):i.fireEvent?((t=document.createEventObject()).eventType=e,i.fireEvent("on"+e,t)):this.trigger(e)};var f={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},m=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,g=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]","g");function b(e){return f[e]}function w(e){return(e=e.toString())&&e.replace(m,b).replace(g,"")}var x,I,k,y,S,O=(x={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},I=function(e){return x[e]},k="(?:"+Object.keys(x).join("|")+")",y=RegExp(k),S=RegExp(k,"g"),function(e){return e=null==e?"":""+e,y.test(e)?e.replace(S,I):e}),T={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},A=27,N=13,D=32,H=9,P=38,W=40,M={success:!1,major:"3"};try{M.full=(z.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),M.major=M.full[0],M.success=!0}catch(e){}var R=0,U=".bs.select",j={DISABLED:"disabled",DIVIDER:"divider",SHOW:"open",DROPUP:"dropup",MENU:"dropdown-menu",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"btn-default",POPOVERHEADER:"popover-title",ICONBASE:"glyphicon",TICKICON:"glyphicon-ok"},V={MENU:"."+j.MENU},F={span:document.createElement("span"),i:document.createElement("i"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode("\xa0"),fragment:document.createDocumentFragment()};F.a.setAttribute("role","option"),F.subtext.className="text-muted",F.text=F.span.cloneNode(!1),F.text.className="text",F.checkMark=F.span.cloneNode(!1);var _=new RegExp(P+"|"+W),q=new RegExp("^"+H+"$|"+A),G=function(e,t,i){var s=F.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?s.appendChild(e):s.innerHTML=e),void 0!==t&&""!==t&&(s.className=t),null!=i&&s.classList.add("optgroup-"+i),s},K=function(e,t,i){var s=F.a.cloneNode(!0);return e&&(11===e.nodeType?s.appendChild(e):s.insertAdjacentHTML("beforeend",e)),void 0!==t&&""!==t&&(s.className=t),"4"===M.major&&s.classList.add("dropdown-item"),i&&s.setAttribute("style",i),s},Y=function(e,t){var i,s,n=F.text.cloneNode(!1);if(e.content)n.innerHTML=e.content;else{if(n.textContent=e.text,e.icon){var o=F.whitespace.cloneNode(!1);(s=(!0===t?F.i:F.span).cloneNode(!1)).className=e.iconBase+" "+e.icon,F.fragment.appendChild(s),F.fragment.appendChild(o)}e.subtext&&((i=F.subtext.cloneNode(!1)).textContent=e.subtext,n.appendChild(i))}if(!0===t)for(;0'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600,display:!1,sanitize:!0,sanitizeFn:null,whiteList:e},J.prototype={constructor:J,init:function(){var i=this,e=this.$element.attr("id");this.selectId=R++,this.$element[0].classList.add("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.options.showTick=this.$element[0].classList.contains("show-tick"),this.$newElement=this.createDropdown(),this.$element.after(this.$newElement).prependTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(V.MENU),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element[0].classList.remove("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu[0].classList.add(j.MENURIGHT),void 0!==e&&this.$button.attr("data-id",e),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.setStyle(),this.render(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide"+U,function(){if(i.isVirtual()){var e=i.$menuInner[0],t=e.firstChild.cloneNode(!1);e.replaceChild(t,e.firstChild),e.scrollTop=0}}),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(e){i.$menuInner.attr("aria-expanded",!1),i.$element.trigger("hide"+U,e)},"hidden.bs.dropdown":function(e){i.$element.trigger("hidden"+U,e)},"show.bs.dropdown":function(e){i.$menuInner.attr("aria-expanded",!0),i.$element.trigger("show"+U,e)},"shown.bs.dropdown":function(e){i.$element.trigger("shown"+U,e)}}),i.$element[0].hasAttribute("required")&&this.$element.on("invalid"+U,function(){i.$button[0].classList.add("bs-invalid"),i.$element.on("shown"+U+".invalid",function(){i.$element.val(i.$element.val()).off("shown"+U+".invalid")}).on("rendered"+U,function(){this.validity.valid&&i.$button[0].classList.remove("bs-invalid"),i.$element.off("rendered"+U)}),i.$button.on("blur"+U,function(){i.$element.trigger("focus").trigger("blur"),i.$button.off("blur"+U)})}),setTimeout(function(){i.createLi(),i.$element.trigger("loaded"+U)})},createDropdown:function(){var e=this.multiple||this.options.showTick?" show-tick":"",t="",i=this.autofocus?" autofocus":"";M.major<4&&this.$element.parent().hasClass("input-group")&&(t=" input-group-btn");var s,n="",o="",l="",r="";return this.options.header&&(n='
'+this.options.header+"
"),this.options.liveSearch&&(o=''),this.multiple&&this.options.actionsBox&&(l='
"),this.multiple&&this.options.doneButton&&(r='
"),s='",z(s)},setPositionData:function(){this.selectpicker.view.canHighlight=[];for(var e=0;e=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(T,e){e=e||0;var A=this;this.selectpicker.current=T?this.selectpicker.search:this.selectpicker.main;var N,D,H=[];function i(e,t){var i,s,n,o,l,r,a,c,d,h,p=A.selectpicker.current.elements.length,u=[],f=!0,m=A.isVirtual();A.selectpicker.view.scrollTop=e,!0===m&&A.sizeInfo.hasScrollBar&&A.$menu[0].offsetWidth>A.sizeInfo.totalMenuWidth&&(A.sizeInfo.menuWidth=A.$menu[0].offsetWidth,A.sizeInfo.totalMenuWidth=A.sizeInfo.menuWidth+A.sizeInfo.scrollBarWidth,A.$menu.css("min-width",A.sizeInfo.menuWidth)),i=Math.ceil(A.sizeInfo.menuInnerHeight/A.sizeInfo.liHeight*1.5),s=Math.round(p/i)||1;for(var v=0;vp-1?0:A.selectpicker.current.data[p-1].position-A.selectpicker.current.data[A.selectpicker.view.position1-1].position,x.firstChild.style.marginTop=b+"px",x.firstChild.style.marginBottom=w+"px"),x.firstChild.appendChild(I)}if(A.prevActiveIndex=A.activeIndex,A.options.liveSearch){if(T&&t){var z,L=0;A.selectpicker.view.canHighlight[L]||(L=1+A.selectpicker.view.canHighlight.slice(1).indexOf(!0)),z=A.selectpicker.view.visibleElements[L],A.selectpicker.view.currentActive&&(A.selectpicker.view.currentActive.classList.remove("active"),A.selectpicker.view.currentActive.firstChild&&A.selectpicker.view.currentActive.firstChild.classList.remove("active")),z&&(z.classList.add("active"),z.firstChild&&z.firstChild.classList.add("active")),A.activeIndex=(A.selectpicker.current.data[L]||{}).index}}else A.$menuInner.trigger("focus")}this.setPositionData(),i(e,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",function(e,t){A.noScroll||i(this.scrollTop,t),A.noScroll=!1}),z(window).off("resize"+U+"."+this.selectId+".createView").on("resize"+U+"."+this.selectId+".createView",function(){A.$newElement.hasClass(j.SHOW)&&i(A.$menuInner[0].scrollTop)})},setPlaceholder:function(){var e=!1;if(this.options.title&&!this.multiple){this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option")),e=!0;var t=this.$element[0],i=!1,s=!this.selectpicker.view.titleOption.parentNode;if(s)this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",i=void 0===z(t.options[t.selectedIndex]).attr("selected")&&void 0===this.$element.data("selected");(s||0!==this.selectpicker.view.titleOption.index)&&t.insertBefore(this.selectpicker.view.titleOption,t.firstChild),i&&(t.selectedIndex=0)}return e},createLi:function(){var a=this,f=this.options.iconBase,m=':not([hidden]):not([data-hidden="true"])',v=[],g=[],c=0,b=0,e=this.setPlaceholder()?1:0;this.options.hideDisabled&&(m+=":not(:disabled)"),!a.options.showTick&&!a.multiple||F.checkMark.parentNode||(F.checkMark.className=f+" "+a.options.tickIcon+" check-mark",F.a.appendChild(F.checkMark));var t=this.$element[0].querySelectorAll("select > *"+m);function w(e){var t=g[g.length-1];t&&"divider"===t.type&&(t.optID||e.optID)||((e=e||{}).type="divider",v.push(G(!1,j.DIVIDER,e.optID?e.optID+"div":void 0)),g.push(e))}function x(e,t){if((t=t||{}).divider="true"===e.getAttribute("data-divider"),t.divider)w({optID:t.optID});else{var i=g.length,s=e.style.cssText,n=s?O(s):"",o=(e.className||"")+(t.optgroupClass||"");t.optID&&(o="opt "+o),t.text=e.textContent,t.content=e.getAttribute("data-content"),t.tokens=e.getAttribute("data-tokens"),t.subtext=e.getAttribute("data-subtext"),t.icon=e.getAttribute("data-icon"),t.iconBase=f;var l=Y(t);v.push(G(K(l,o,n),"",t.optID)),e.liIndex=i,t.display=t.content||t.text,t.type="option",t.index=i,t.option=e,t.disabled=t.disabled||e.disabled,g.push(t);var r=0;t.display&&(r+=t.display.length),t.subtext&&(r+=t.subtext.length),t.icon&&(r+=1),c li")},render:function(){this.setPlaceholder();var e,t,i=this,s=this.$element[0].selectedOptions,n=s.length,o=this.$button[0],l=o.querySelector(".filter-option-inner-inner"),r=document.createTextNode(this.options.multipleSeparator),a=F.fragment.cloneNode(!1),c=!1;if(this.togglePlaceholder(),this.tabIndex(),"static"===this.options.selectedTextFormat)a=Y({text:this.options.title},!0);else if((e=this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")&&1")).length&&n>t[1]||1===t.length&&2<=n),!1===e){for(var d=0;d option"+f+", optgroup"+f+" option"+f).length,v="function"==typeof this.options.countSelectedText?this.options.countSelectedText(n,m):this.options.countSelectedText;a=Y({text:v.replace("{0}",n.toString()).replace("{1}",m.toString())},!0)}if(null==this.options.title&&(this.options.title=this.$element.attr("title")),a.childNodes.length||(a=Y({text:void 0!==this.options.title?this.options.title:this.options.noneSelectedText},!0)),o.title=a.textContent.replace(/<[^>]*>?/g,"").trim(),this.options.sanitize&&c&&B([a],i.options.whiteList,i.options.sanitizeFn),l.innerHTML="",l.appendChild(a),M.major<4&&this.$newElement[0].classList.contains("bs3-has-addon")){var g=o.querySelector(".filter-expand"),b=l.cloneNode(!0);b.className="filter-expand",g?o.replaceChild(b,g):o.appendChild(b)}this.$element.trigger("rendered"+U)},setStyle:function(e,t){var i,s=this.$button[0],n=this.$newElement[0],o=this.options.style.trim();this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,"")),M.major<4&&(n.classList.add("bs3"),n.parentNode.classList.contains("input-group")&&(n.previousElementSibling||n.nextElementSibling)&&(n.previousElementSibling||n.nextElementSibling).classList.contains("input-group-addon")&&n.classList.add("bs3-has-addon")),i=e?e.trim():o,"add"==t?i&&s.classList.add.apply(s.classList,i.split(" ")):"remove"==t?i&&s.classList.remove.apply(s.classList,i.split(" ")):(o&&s.classList.remove.apply(s.classList,o.split(" ")),i&&s.classList.add.apply(s.classList,i.split(" ")))},liHeight:function(e){if(e||!1!==this.options.size&&!this.sizeInfo){this.sizeInfo||(this.sizeInfo={});var t=document.createElement("div"),i=document.createElement("div"),s=document.createElement("div"),n=document.createElement("ul"),o=document.createElement("li"),l=document.createElement("li"),r=document.createElement("li"),a=document.createElement("a"),c=document.createElement("span"),d=this.options.header&&0this.sizeInfo.menuExtras.vert&&r+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot)),"auto"===this.options.size)n=3this.options.size){for(var g=0;gthis.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth,this.$menu.css("min-width",this.sizeInfo.totalMenuWidth)),this.dropdown&&this.dropdown._popper&&this.dropdown._popper.update()},setSize:function(e){if(this.liHeight(e),this.options.header&&this.$menu.css("padding-top",0),!1!==this.options.size){var t,i=this,s=z(window),n=0;if(this.setMenuSize(),this.options.liveSearch&&this.$searchbox.off("input.setMenuSize propertychange.setMenuSize").on("input.setMenuSize propertychange.setMenuSize",function(){return i.setMenuSize()}),"auto"===this.options.size?s.off("resize"+U+"."+this.selectId+".setMenuSize scroll"+U+"."+this.selectId+".setMenuSize").on("resize"+U+"."+this.selectId+".setMenuSize scroll"+U+"."+this.selectId+".setMenuSize",function(){return i.setMenuSize()}):this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size&&s.off("resize"+U+"."+this.selectId+".setMenuSize scroll"+U+"."+this.selectId+".setMenuSize"),e)n=this.$menuInner[0].scrollTop;else if(!i.multiple){var o=i.$element[0];"number"==typeof(t=(o.options[o.selectedIndex]||{}).liIndex)&&!1!==i.options.size&&(n=(n=i.sizeInfo.liHeight*t)-i.sizeInfo.menuInnerHeight/2+i.sizeInfo.liHeight/2)}i.createView(!1,n)}},setWidth:function(){var i=this;"auto"===this.options.width?requestAnimationFrame(function(){i.$menu.css("min-width","0"),i.$element.on("loaded"+U,function(){i.liHeight(),i.setMenuSize();var e=i.$newElement.clone().appendTo("body"),t=e.css("width","auto").children("button").outerWidth();e.remove(),i.sizeInfo.selectWidth=Math.max(i.sizeInfo.totalMenuWidth,t),i.$newElement.css("width",i.sizeInfo.selectWidth+"px")})}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement[0].classList.remove("fit-width")},selectPosition:function(){this.$bsContainer=z('
');var s,n,o,l=this,r=z(this.options.container),e=function(e){var t={},i=l.options.display||!!z.fn.dropdown.Constructor.Default&&z.fn.dropdown.Constructor.Default.display;l.$bsContainer.addClass(e.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(j.DROPUP,e.hasClass(j.DROPUP)),s=e.offset(),r.is("body")?n={top:0,left:0}:((n=r.offset()).top+=parseInt(r.css("borderTopWidth"))-r.scrollTop(),n.left+=parseInt(r.css("borderLeftWidth"))-r.scrollLeft()),o=e.hasClass(j.DROPUP)?0:e[0].offsetHeight,(M.major<4||"static"===i)&&(t.top=s.top-n.top+o,t.left=s.left-n.left),t.width=e[0].offsetWidth,l.$bsContainer.css(t)};this.$button.on("click.bs.dropdown.data-api",function(){l.isDisabled()||(e(l.$newElement),l.$bsContainer.appendTo(l.options.container).toggleClass(j.SHOW,!l.$button.hasClass(j.SHOW)).append(l.$menu))}),z(window).off("resize"+U+"."+this.selectId+" scroll"+U+"."+this.selectId).on("resize"+U+"."+this.selectId+" scroll"+U+"."+this.selectId,function(){l.$newElement.hasClass(j.SHOW)&&e(l.$newElement)}),this.$element.on("hide"+U,function(){l.$menu.data("height",l.$menu.height()),l.$bsContainer.detach()})},setOptionStatus:function(){var e=this;if(e.noScroll=!1,e.selectpicker.view.visibleElements&&e.selectpicker.view.visibleElements.length)for(var t=0;t
');I[2]&&(k=k.replace("{var}",I[2][1"+k+"
")),a=!1,S.$element.trigger("maxReached"+U)),v&&b&&(y.append(z("
"+$+"
")),a=!1,S.$element.trigger("maxReachedGrp"+U)),setTimeout(function(){S.setSelected(o,!1)},10),y.delay(750).fadeOut(300,function(){z(this).remove()})}}}else c.prop("selected",!1),d.selected=!0,S.setSelected(o,!0);!S.multiple||S.multiple&&1===S.options.maxOptions?S.$button.trigger("focus"):S.options.liveSearch&&S.$searchbox.trigger("focus"),a&&(l!=E(S.$element[0])&&S.multiple||r!=S.$element.prop("selectedIndex")&&!S.multiple)&&(C=[d.index,h.prop("selected"),l],S.$element.triggerNative("change"))}}),this.$menu.on("click","li."+j.DISABLED+" a, ."+j.POPOVERHEADER+", ."+j.POPOVERHEADER+" :not(.close)",function(e){e.currentTarget==this&&(e.preventDefault(),e.stopPropagation(),S.options.liveSearch&&!z(e.target).hasClass("close")?S.$searchbox.trigger("focus"):S.$button.trigger("focus"))}),this.$menuInner.on("click",".divider, .dropdown-header",function(e){e.preventDefault(),e.stopPropagation(),S.options.liveSearch?S.$searchbox.trigger("focus"):S.$button.trigger("focus")}),this.$menu.on("click","."+j.POPOVERHEADER+" .close",function(){S.$button.trigger("click")}),this.$searchbox.on("click",function(e){e.stopPropagation()}),this.$menu.on("click",".actions-btn",function(e){S.options.liveSearch?S.$searchbox.trigger("focus"):S.$button.trigger("focus"),e.preventDefault(),e.stopPropagation(),z(this).hasClass("bs-select-all")?S.selectAll():S.deselectAll()}),this.$element.on("change"+U,function(){S.render(),S.$element.trigger("changed"+U,C),C=null}).on("focus"+U,function(){S.options.mobile||S.$button.trigger("focus")})},liveSearchListener:function(){var u=this,f=document.createElement("li");this.$button.on("click.bs.dropdown.data-api",function(){u.$searchbox.val()&&u.$searchbox.val("")}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(e){e.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var e=u.$searchbox.val();if(u.selectpicker.search.elements=[],u.selectpicker.search.data=[],e){var t=[],i=e.toUpperCase(),s={},n=[],o=u._searchStyle(),l=u.options.liveSearchNormalize;l&&(i=w(i)),u._$lisSelected=u.$menuInner.find(".selected");for(var r=0;r=a.selectpicker.view.canHighlight.length&&(t=0),a.selectpicker.view.canHighlight[t+m]||(t=t+1+a.selectpicker.view.canHighlight.slice(t+m+1).indexOf(!0))),e.preventDefault();var v=m+t;e.which===P?0===m&&t===c.length-1?(a.$menuInner[0].scrollTop=a.$menuInner[0].scrollHeight,v=a.selectpicker.current.elements.length-1):d=(o=(n=a.selectpicker.current.data[v]).position-n.height)u+a.sizeInfo.menuInnerHeight),(s=a.selectpicker.main.elements[g]).classList.add("active"),s.firstChild&&s.firstChild.classList.add("active"),a.activeIndex=w[k],s.firstChild.focus(),d&&(a.$menuInner[0].scrollTop=o),l.trigger("focus")}}i&&(e.which===D&&!a.selectpicker.keydown.keyHistory||e.which===N||e.which===H&&a.options.selectOnTab)&&(e.which!==D&&e.preventDefault(),a.options.liveSearch&&e.which===D||(a.$menuInner.find(".active a").trigger("click",!0),l.trigger("focus"),a.options.liveSearch||(e.preventDefault(),z(document).data("spaceSelect",!0))))}},mobile:function(){this.$element[0].classList.add("mobile-device")},refresh:function(){var e=z.extend({},this.options,this.$element.data());this.options=e,this.checkDisabled(),this.setStyle(),this.render(),this.createLi(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed"+U)},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(U).removeData("selectpicker").removeClass("bs-select-hidden selectpicker"),z(window).off(U+"."+this.selectId)}};var X=z.fn.selectpicker;z.fn.selectpicker=Q,z.fn.selectpicker.Constructor=J,z.fn.selectpicker.noConflict=function(){return z.fn.selectpicker=X,this},z(document).off("keydown.bs.dropdown.data-api").on("keydown"+U,'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',J.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',function(e){e.stopPropagation()}),z(window).on("load"+U+".data-api",function(){z(".selectpicker").each(function(){var e=z(this);Q.call(e,e.data())})})}(e)}); +!function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(e){!function(z){"use strict";var d=["sanitize","whiteList","sanitizeFn"],l=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],e={"*":["class","dir","id","lang","role","tabindex","style",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},r=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,a=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function v(e,t){var i=e.nodeName.toLowerCase();if(-1!==z.inArray(i,t))return-1===z.inArray(i,l)||Boolean(e.nodeValue.match(r)||e.nodeValue.match(a));for(var s=z(t).filter(function(e,t){return t instanceof RegExp}),n=0,o=s.length;n]+>/g,"")),s&&(a=w(a)),a=a.toUpperCase(),o="contains"===i?0<=a.indexOf(t):a.startsWith(t)))break}return o}function L(e){return parseInt(e,10)||0}z.fn.triggerNative=function(e){var t,i=this[0];i.dispatchEvent?(u?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),i.dispatchEvent(t)):i.fireEvent?((t=document.createEventObject()).eventType=e,i.fireEvent("on"+e,t)):this.trigger(e)};var f={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},m=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,g=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]","g");function b(e){return f[e]}function w(e){return(e=e.toString())&&e.replace(m,b).replace(g,"")}var x,I,k,y,S,O=(x={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},I=function(e){return x[e]},k="(?:"+Object.keys(x).join("|")+")",y=RegExp(k),S=RegExp(k,"g"),function(e){return e=null==e?"":""+e,y.test(e)?e.replace(S,I):e}),T={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},A=27,N=13,D=32,H=9,P=38,W=40,M={success:!1,major:"3"};try{M.full=(z.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),M.major=M.full[0],M.success=!0}catch(e){}var R=0,U=".bs.select",j={DISABLED:"disabled",DIVIDER:"divider",SHOW:"open",DROPUP:"dropup",MENU:"dropdown-menu",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"btn-default",POPOVERHEADER:"popover-title",ICONBASE:"glyphicon",TICKICON:"glyphicon-ok"},V={MENU:"."+j.MENU},F={span:document.createElement("span"),i:document.createElement("i"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode("\xa0"),fragment:document.createDocumentFragment()};F.a.setAttribute("role","option"),F.subtext.className="text-muted",F.text=F.span.cloneNode(!1),F.text.className="text",F.checkMark=F.span.cloneNode(!1);var _=new RegExp(P+"|"+W),q=new RegExp("^"+H+"$|"+A),G=function(e,t,i){var s=F.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?s.appendChild(e):s.innerHTML=e),void 0!==t&&""!==t&&(s.className=t),null!=i&&s.classList.add("optgroup-"+i),s},K=function(e,t,i){var s=F.a.cloneNode(!0);return e&&(11===e.nodeType?s.appendChild(e):s.insertAdjacentHTML("beforeend",e)),void 0!==t&&""!==t&&(s.className=t),"4"===M.major&&s.classList.add("dropdown-item"),i&&s.setAttribute("style",i),s},Y=function(e,t){var i,s,n=F.text.cloneNode(!1);if(e.content)n.innerHTML=e.content;else{if(n.textContent=e.text,e.icon){var o=F.whitespace.cloneNode(!1);(s=(!0===t?F.i:F.span).cloneNode(!1)).className=e.iconBase+" "+e.icon,F.fragment.appendChild(s),F.fragment.appendChild(o)}e.subtext&&((i=F.subtext.cloneNode(!1)).textContent=e.subtext,n.appendChild(i))}if(!0===t)for(;0'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600,display:!1,sanitize:!0,sanitizeFn:null,whiteList:e},J.prototype={constructor:J,init:function(){var i=this,e=this.$element.attr("id");this.selectId=R++,this.$element[0].classList.add("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.options.showTick=this.$element[0].classList.contains("show-tick"),this.$newElement=this.createDropdown(),this.$element.after(this.$newElement).prependTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(V.MENU),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element[0].classList.remove("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu[0].classList.add(j.MENURIGHT),void 0!==e&&this.$button.attr("data-id",e),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.setStyle(),this.render(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide"+U,function(){if(i.isVirtual()){var e=i.$menuInner[0],t=e.firstChild.cloneNode(!1);e.replaceChild(t,e.firstChild),e.scrollTop=0}}),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(e){i.$menuInner.attr("aria-expanded",!1),i.$element.trigger("hide"+U,e)},"hidden.bs.dropdown":function(e){i.$element.trigger("hidden"+U,e)},"show.bs.dropdown":function(e){i.$menuInner.attr("aria-expanded",!0),i.$element.trigger("show"+U,e)},"shown.bs.dropdown":function(e){i.$element.trigger("shown"+U,e)}}),i.$element[0].hasAttribute("required")&&this.$element.on("invalid"+U,function(){i.$button[0].classList.add("bs-invalid"),i.$element.on("shown"+U+".invalid",function(){i.$element.val(i.$element.val()).off("shown"+U+".invalid")}).on("rendered"+U,function(){this.validity.valid&&i.$button[0].classList.remove("bs-invalid"),i.$element.off("rendered"+U)}),i.$button.on("blur"+U,function(){i.$element.trigger("focus").trigger("blur"),i.$button.off("blur"+U)})}),setTimeout(function(){i.createLi(),i.$element.trigger("loaded"+U)})},createDropdown:function(){var e=this.multiple||this.options.showTick?" show-tick":"",t="",i=this.autofocus?" autofocus":"";M.major<4&&this.$element.parent().hasClass("input-group")&&(t=" input-group-btn");var s,n="",o="",l="",r="";return this.options.header&&(n='
'+this.options.header+"
"),this.options.liveSearch&&(o=''),this.multiple&&this.options.actionsBox&&(l='
"),this.multiple&&this.options.doneButton&&(r='
"),s='",z(s)},setPositionData:function(){this.selectpicker.view.canHighlight=[];for(var e=0;e=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(T,e){e=e||0;var A=this;this.selectpicker.current=T?this.selectpicker.search:this.selectpicker.main;var N,D,H=[];function i(e,t){var i,s,n,o,l,r,a,c,d,h,p=A.selectpicker.current.elements.length,u=[],f=!0,m=A.isVirtual();A.selectpicker.view.scrollTop=e,!0===m&&A.sizeInfo.hasScrollBar&&A.$menu[0].offsetWidth>A.sizeInfo.totalMenuWidth&&(A.sizeInfo.menuWidth=A.$menu[0].offsetWidth,A.sizeInfo.totalMenuWidth=A.sizeInfo.menuWidth+A.sizeInfo.scrollBarWidth,A.$menu.css("min-width",A.sizeInfo.menuWidth)),i=Math.ceil(A.sizeInfo.menuInnerHeight/A.sizeInfo.liHeight*1.5),s=Math.round(p/i)||1;for(var v=0;vp-1?0:A.selectpicker.current.data[p-1].position-A.selectpicker.current.data[A.selectpicker.view.position1-1].position,x.firstChild.style.marginTop=b+"px",x.firstChild.style.marginBottom=w+"px"),x.firstChild.appendChild(I)}if(A.prevActiveIndex=A.activeIndex,A.options.liveSearch){if(T&&t){var z,L=0;A.selectpicker.view.canHighlight[L]||(L=1+A.selectpicker.view.canHighlight.slice(1).indexOf(!0)),z=A.selectpicker.view.visibleElements[L],A.selectpicker.view.currentActive&&(A.selectpicker.view.currentActive.classList.remove("active"),A.selectpicker.view.currentActive.firstChild&&A.selectpicker.view.currentActive.firstChild.classList.remove("active")),z&&(z.classList.add("active"),z.firstChild&&z.firstChild.classList.add("active")),A.activeIndex=(A.selectpicker.current.data[L]||{}).index}}else A.$menuInner.trigger("focus")}this.setPositionData(),i(e,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",function(e,t){A.noScroll||i(this.scrollTop,t),A.noScroll=!1}),z(window).off("resize"+U+"."+this.selectId+".createView").on("resize"+U+"."+this.selectId+".createView",function(){A.$newElement.hasClass(j.SHOW)&&i(A.$menuInner[0].scrollTop)})},setPlaceholder:function(){var e=!1;if(this.options.title&&!this.multiple){this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option")),e=!0;var t=this.$element[0],i=!1,s=!this.selectpicker.view.titleOption.parentNode;if(s)this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",i=void 0===z(t.options[t.selectedIndex]).attr("selected")&&void 0===this.$element.data("selected");(s||0!==this.selectpicker.view.titleOption.index)&&t.insertBefore(this.selectpicker.view.titleOption,t.firstChild),i&&(t.selectedIndex=0)}return e},createLi:function(){var a=this,f=this.options.iconBase,m=':not([hidden]):not([data-hidden="true"])',v=[],g=[],c=0,b=0,e=this.setPlaceholder()?1:0;this.options.hideDisabled&&(m+=":not(:disabled)"),!a.options.showTick&&!a.multiple||F.checkMark.parentNode||(F.checkMark.className=f+" "+a.options.tickIcon+" check-mark",F.a.appendChild(F.checkMark));var t=this.$element[0].querySelectorAll("select > *"+m);function w(e){var t=g[g.length-1];t&&"divider"===t.type&&(t.optID||e.optID)||((e=e||{}).type="divider",v.push(G(!1,j.DIVIDER,e.optID?e.optID+"div":void 0)),g.push(e))}function x(e,t){if((t=t||{}).divider="true"===e.getAttribute("data-divider"),t.divider)w({optID:t.optID});else{var i=g.length,s=e.style.cssText,n=s?O(s):"",o=(e.className||"")+(t.optgroupClass||"");t.optID&&(o="opt "+o),t.text=e.textContent,t.content=e.getAttribute("data-content"),t.tokens=e.getAttribute("data-tokens"),t.subtext=e.getAttribute("data-subtext"),t.icon=e.getAttribute("data-icon"),t.iconBase=f;var l=Y(t);v.push(G(K(l,o,n),"",t.optID)),e.liIndex=i,t.display=t.content||t.text,t.type="option",t.index=i,t.option=e,t.disabled=t.disabled||e.disabled,g.push(t);var r=0;t.display&&(r+=t.display.length),t.subtext&&(r+=t.subtext.length),t.icon&&(r+=1),c li")},render:function(){this.setPlaceholder();var e,t,i=this,s=this.$element[0].selectedOptions,n=s.length,o=this.$button[0],l=o.querySelector(".filter-option-inner-inner"),r=document.createTextNode(this.options.multipleSeparator),a=F.fragment.cloneNode(!1),c=!1;if(this.togglePlaceholder(),this.tabIndex(),"static"===this.options.selectedTextFormat)a=Y({text:this.options.title},!0);else if((e=this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")&&1")).length&&n>t[1]||1===t.length&&2<=n),!1===e){for(var d=0;d option"+f+", optgroup"+f+" option"+f).length,v="function"==typeof this.options.countSelectedText?this.options.countSelectedText(n,m):this.options.countSelectedText;a=Y({text:v.replace("{0}",n.toString()).replace("{1}",m.toString())},!0)}if(null==this.options.title&&(this.options.title=this.$element.attr("title")),a.childNodes.length||(a=Y({text:void 0!==this.options.title?this.options.title:this.options.noneSelectedText},!0)),o.title=a.textContent.replace(/<[^>]*>?/g,"").trim(),this.options.sanitize&&c&&B([a],i.options.whiteList,i.options.sanitizeFn),l.innerHTML="",l.appendChild(a),M.major<4&&this.$newElement[0].classList.contains("bs3-has-addon")){var g=o.querySelector(".filter-expand"),b=l.cloneNode(!0);b.className="filter-expand",g?o.replaceChild(b,g):o.appendChild(b)}this.$element.trigger("rendered"+U)},setStyle:function(e,t){var i,s=this.$button[0],n=this.$newElement[0],o=this.options.style.trim();this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,"")),M.major<4&&(n.classList.add("bs3"),n.parentNode.classList.contains("input-group")&&(n.previousElementSibling||n.nextElementSibling)&&(n.previousElementSibling||n.nextElementSibling).classList.contains("input-group-addon")&&n.classList.add("bs3-has-addon")),i=e?e.trim():o,"add"==t?i&&s.classList.add.apply(s.classList,i.split(" ")):"remove"==t?i&&s.classList.remove.apply(s.classList,i.split(" ")):(o&&s.classList.remove.apply(s.classList,o.split(" ")),i&&s.classList.add.apply(s.classList,i.split(" ")))},liHeight:function(e){if(e||!1!==this.options.size&&!this.sizeInfo){this.sizeInfo||(this.sizeInfo={});var t=document.createElement("div"),i=document.createElement("div"),s=document.createElement("div"),n=document.createElement("ul"),o=document.createElement("li"),l=document.createElement("li"),r=document.createElement("li"),a=document.createElement("a"),c=document.createElement("span"),d=this.options.header&&0this.sizeInfo.menuExtras.vert&&r+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot)),"auto"===this.options.size)n=3this.options.size){for(var g=0;gthis.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth,this.$menu.css("min-width",this.sizeInfo.totalMenuWidth)),this.dropdown&&this.dropdown._popper&&this.dropdown._popper.update()},setSize:function(e){if(this.liHeight(e),this.options.header&&this.$menu.css("padding-top",0),!1!==this.options.size){var t,i=this,s=z(window),n=0;if(this.setMenuSize(),this.options.liveSearch&&this.$searchbox.off("input.setMenuSize propertychange.setMenuSize").on("input.setMenuSize propertychange.setMenuSize",function(){return i.setMenuSize()}),"auto"===this.options.size?s.off("resize"+U+"."+this.selectId+".setMenuSize scroll"+U+"."+this.selectId+".setMenuSize").on("resize"+U+"."+this.selectId+".setMenuSize scroll"+U+"."+this.selectId+".setMenuSize",function(){return i.setMenuSize()}):this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size&&s.off("resize"+U+"."+this.selectId+".setMenuSize scroll"+U+"."+this.selectId+".setMenuSize"),e)n=this.$menuInner[0].scrollTop;else if(!i.multiple){var o=i.$element[0];"number"==typeof(t=(o.options[o.selectedIndex]||{}).liIndex)&&!1!==i.options.size&&(n=(n=i.sizeInfo.liHeight*t)-i.sizeInfo.menuInnerHeight/2+i.sizeInfo.liHeight/2)}i.createView(!1,n)}},setWidth:function(){var i=this;"auto"===this.options.width?requestAnimationFrame(function(){i.$menu.css("min-width","0"),i.$element.on("loaded"+U,function(){i.liHeight(),i.setMenuSize();var e=i.$newElement.clone().appendTo("body"),t=e.css("width","auto").children("button").outerWidth();e.remove(),i.sizeInfo.selectWidth=Math.max(i.sizeInfo.totalMenuWidth,t),i.$newElement.css("width",i.sizeInfo.selectWidth+"px")})}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement[0].classList.remove("fit-width")},selectPosition:function(){this.$bsContainer=z('
');var s,n,o,l=this,r=z(this.options.container),e=function(e){var t={},i=l.options.display||!!z.fn.dropdown.Constructor.Default&&z.fn.dropdown.Constructor.Default.display;l.$bsContainer.addClass(e.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(j.DROPUP,e.hasClass(j.DROPUP)),s=e.offset(),r.is("body")?n={top:0,left:0}:((n=r.offset()).top+=parseInt(r.css("borderTopWidth"))-r.scrollTop(),n.left+=parseInt(r.css("borderLeftWidth"))-r.scrollLeft()),o=e.hasClass(j.DROPUP)?0:e[0].offsetHeight,(M.major<4||"static"===i)&&(t.top=s.top-n.top+o,t.left=s.left-n.left),t.width=e[0].offsetWidth,l.$bsContainer.css(t)};this.$button.on("click.bs.dropdown.data-api",function(){l.isDisabled()||(e(l.$newElement),l.$bsContainer.appendTo(l.options.container).toggleClass(j.SHOW,!l.$button.hasClass(j.SHOW)).append(l.$menu))}),z(window).off("resize"+U+"."+this.selectId+" scroll"+U+"."+this.selectId).on("resize"+U+"."+this.selectId+" scroll"+U+"."+this.selectId,function(){l.$newElement.hasClass(j.SHOW)&&e(l.$newElement)}),this.$element.on("hide"+U,function(){l.$menu.data("height",l.$menu.height()),l.$bsContainer.detach()})},setOptionStatus:function(){var e=this;if(e.noScroll=!1,e.selectpicker.view.visibleElements&&e.selectpicker.view.visibleElements.length)for(var t=0;t
');I[2]&&(k=k.replace("{var}",I[2][1"+k+"")),a=!1,S.$element.trigger("maxReached"+U)),v&&b&&(y.append(z("
"+$+"
")),a=!1,S.$element.trigger("maxReachedGrp"+U)),setTimeout(function(){S.setSelected(o,!1)},10),y.delay(750).fadeOut(300,function(){z(this).remove()})}}}else c.prop("selected",!1),d.selected=!0,S.setSelected(o,!0);!S.multiple||S.multiple&&1===S.options.maxOptions?S.$button.trigger("focus"):S.options.liveSearch&&S.$searchbox.trigger("focus"),a&&(l!=E(S.$element[0])&&S.multiple||r!=S.$element.prop("selectedIndex")&&!S.multiple)&&(C=[d.index,h.prop("selected"),l],S.$element.triggerNative("change"))}}),this.$menu.on("click","li."+j.DISABLED+" a, ."+j.POPOVERHEADER+", ."+j.POPOVERHEADER+" :not(.close)",function(e){e.currentTarget==this&&(e.preventDefault(),e.stopPropagation(),S.options.liveSearch&&!z(e.target).hasClass("close")?S.$searchbox.trigger("focus"):S.$button.trigger("focus"))}),this.$menuInner.on("click",".divider, .dropdown-header",function(e){e.preventDefault(),e.stopPropagation(),S.options.liveSearch?S.$searchbox.trigger("focus"):S.$button.trigger("focus")}),this.$menu.on("click","."+j.POPOVERHEADER+" .close",function(){S.$button.trigger("click")}),this.$searchbox.on("click",function(e){e.stopPropagation()}),this.$menu.on("click",".actions-btn",function(e){S.options.liveSearch?S.$searchbox.trigger("focus"):S.$button.trigger("focus"),e.preventDefault(),e.stopPropagation(),z(this).hasClass("bs-select-all")?S.selectAll():S.deselectAll()}),this.$element.on("change"+U,function(){S.render(),S.$element.trigger("changed"+U,C),C=null}).on("focus"+U,function(){S.options.mobile||S.$button.trigger("focus")})},liveSearchListener:function(){var u=this,f=document.createElement("li");this.$button.on("click.bs.dropdown.data-api",function(){u.$searchbox.val()&&u.$searchbox.val("")}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(e){e.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var e=u.$searchbox.val();if(u.selectpicker.search.elements=[],u.selectpicker.search.data=[],e){var t=[],i=e.toUpperCase(),s={},n=[],o=u._searchStyle(),l=u.options.liveSearchNormalize;l&&(i=w(i)),u._$lisSelected=u.$menuInner.find(".selected");for(var r=0;r=a.selectpicker.view.canHighlight.length&&(t=0),a.selectpicker.view.canHighlight[t+m]||(t=t+1+a.selectpicker.view.canHighlight.slice(t+m+1).indexOf(!0))),e.preventDefault();var v=m+t;e.which===P?0===m&&t===c.length-1?(a.$menuInner[0].scrollTop=a.$menuInner[0].scrollHeight,v=a.selectpicker.current.elements.length-1):d=(o=(n=a.selectpicker.current.data[v]).position-n.height)u+a.sizeInfo.menuInnerHeight),(s=a.selectpicker.main.elements[g]).classList.add("active"),s.firstChild&&s.firstChild.classList.add("active"),a.activeIndex=w[k],s.firstChild.focus(),d&&(a.$menuInner[0].scrollTop=o),l.trigger("focus")}}i&&(e.which===D&&!a.selectpicker.keydown.keyHistory||e.which===N||e.which===H&&a.options.selectOnTab)&&(e.which!==D&&e.preventDefault(),a.options.liveSearch&&e.which===D||(a.$menuInner.find(".active a").trigger("click",!0),l.trigger("focus"),a.options.liveSearch||(e.preventDefault(),z(document).data("spaceSelect",!0))))}},mobile:function(){this.$element[0].classList.add("mobile-device")},refresh:function(){var e=z.extend({},this.options,this.$element.data());this.options=e,this.checkDisabled(),this.setStyle(),this.render(),this.createLi(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed"+U)},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(U).removeData("selectpicker").removeClass("bs-select-hidden selectpicker"),z(window).off(U+"."+this.selectId)}};var X=z.fn.selectpicker;z.fn.selectpicker=Q,z.fn.selectpicker.Constructor=J,z.fn.selectpicker.noConflict=function(){return z.fn.selectpicker=X,this},z(document).off("keydown.bs.dropdown.data-api").on("keydown"+U,'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',J.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',function(e){e.stopPropagation()}),z(window).on("load"+U+".data-api",function(){z(".selectpicker").each(function(){var e=z(this);Q.call(e,e.data())})})}(e)}); /* Bootstrap Validator */ +function(a){"use strict";function b(b){return b.is('[type="checkbox"]')?b.prop("checked"):b.is('[type="radio"]')?!!a('[name="'+b.attr("name")+'"]:checked').length:a.trim(b.val())}function c(b){return this.each(function(){var c=a(this),e=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b),f=c.data("bs.validator");(f||"destroy"!=b)&&(f||c.data("bs.validator",f=new d(this,e)),"string"==typeof b&&f[b]())})}var d=function(c,e){this.options=e,this.$element=a(c),this.$inputs=this.$element.find(d.INPUT_SELECTOR),this.$btn=a('button[type="submit"], input[type="submit"]').filter('[form="'+this.$element.attr("id")+'"]').add(this.$element.find('input[type="submit"], button[type="submit"]')),e.errors=a.extend({},d.DEFAULTS.errors,e.errors);for(var f in e.custom)if(!e.errors[f])throw new Error("Missing default error message for custom validator: "+f);a.extend(d.VALIDATORS,e.custom),this.$element.attr("novalidate",!0),this.toggleSubmit(),this.$element.on("input.bs.validator change.bs.validator focusout.bs.validator",d.INPUT_SELECTOR,a.proxy(this.onInput,this)),this.$element.on("submit.bs.validator",a.proxy(this.onSubmit,this)),this.$element.find("[data-match]").each(function(){var c=a(this),d=c.data("match");a(d).on("input.bs.validator",function(){b(c)&&c.trigger("input.bs.validator")})})};d.INPUT_SELECTOR=':input:not([type="submit"], button):enabled:visible',d.FOCUS_OFFSET=20,d.DEFAULTS={delay:500,html:!1,disable:!0,focus:!0,custom:{},errors:{match:"Does not match",minlength:"Not long enough"},feedback:{success:"glyphicon-ok",error:"glyphicon-remove"}},d.VALIDATORS={"native":function(a){var b=a[0];return b.checkValidity?b.checkValidity():!0},match:function(b){var c=b.data("match");return!b.val()||b.val()===a(c).val()},minlength:function(a){var b=a.data("minlength");return!a.val()||a.val().length>=b}},d.prototype.onInput=function(b){var c=this,d=a(b.target),e="focusout"!==b.type;this.validateInput(d,e).done(function(){c.toggleSubmit()})},d.prototype.validateInput=function(c,d){var e=b(c),f=c.data("bs.validator.previous"),g=c.data("bs.validator.errors");if(f===e)return a.Deferred().resolve();c.data("bs.validator.previous",e),c.is('[type="radio"]')&&(c=this.$element.find('input[name="'+c.attr("name")+'"]'));var h=a.Event("validate.bs.validator",{relatedTarget:c[0]});if(this.$element.trigger(h),!h.isDefaultPrevented()){var i=this;return this.runValidators(c).done(function(b){c.data("bs.validator.errors",b),b.length?d?i.defer(c,i.showErrors):i.showErrors(c):i.clearErrors(c),g&&b.toString()===g.toString()||(h=b.length?a.Event("invalid.bs.validator",{relatedTarget:c[0],detail:b}):a.Event("valid.bs.validator",{relatedTarget:c[0],detail:g}),i.$element.trigger(h)),i.toggleSubmit(),i.$element.trigger(a.Event("validated.bs.validator",{relatedTarget:c[0]}))})}},d.prototype.runValidators=function(c){function e(a){return c.data(a+"-error")||c.data("error")||"native"==a&&c[0].validationMessage||h.errors[a]}var f=[],g=a.Deferred(),h=this.options;return c.data("bs.validator.deferred")&&c.data("bs.validator.deferred").reject(),c.data("bs.validator.deferred",g),a.each(d.VALIDATORS,a.proxy(function(a,d){if((b(c)||c.attr("required"))&&(c.data(a)||"native"==a)&&!d.call(this,c)){var g=e(a);!~f.indexOf(g)&&f.push(g)}},this)),!f.length&&b(c)&&c.data("remote")?this.defer(c,function(){var d={};d[c.attr("name")]=b(c),a.get(c.data("remote"),d).fail(function(a,b,c){f.push(e("remote")||c)}).always(function(){g.resolve(f)})}):g.resolve(f),g.promise()},d.prototype.validate=function(){var b=this;return a.when(this.$inputs.map(function(){return b.validateInput(a(this),!1)})).then(function(){b.toggleSubmit(),b.focusError()}),this},d.prototype.focusError=function(){if(this.options.focus){var b=a(".has-error:first :input");0!==b.length&&(a(document.body).animate({scrollTop:b.offset().top-d.FOCUS_OFFSET},250),b.focus())}},d.prototype.showErrors=function(b){var c=this.options.html?"html":"text",d=b.data("bs.validator.errors"),e=b.closest(".form-group"),f=e.find(".help-block.with-errors"),g=e.find(".form-control-feedback");d.length&&(d=a("
    ").addClass("list-unstyled").append(a.map(d,function(b){return a("
  • ")[c](b)})),void 0===f.data("bs.validator.originalContent")&&f.data("bs.validator.originalContent",f.html()),f.empty().append(d),e.addClass("has-error has-danger"),e.hasClass("has-feedback")&&g.removeClass(this.options.feedback.success)&&g.addClass(this.options.feedback.error)&&e.removeClass("has-success"))},d.prototype.clearErrors=function(a){var c=a.closest(".form-group"),d=c.find(".help-block.with-errors"),e=c.find(".form-control-feedback");d.html(d.data("bs.validator.originalContent")),c.removeClass("has-error has-danger"),c.hasClass("has-feedback")&&e.removeClass(this.options.feedback.error)&&b(a)&&e.addClass(this.options.feedback.success)&&c.addClass("has-success")},d.prototype.hasErrors=function(){function b(){return!!(a(this).data("bs.validator.errors")||[]).length}return!!this.$inputs.filter(b).length},d.prototype.isIncomplete=function(){function c(){return!b(a(this))}return!!this.$inputs.filter("[required]").filter(c).length},d.prototype.onSubmit=function(a){this.validate(),(this.isIncomplete()||this.hasErrors())&&a.preventDefault()},d.prototype.toggleSubmit=function(){this.options.disable&&this.$btn.toggleClass("disabled",this.isIncomplete()||this.hasErrors())},d.prototype.defer=function(b,c){return c=a.proxy(c,this,b),this.options.delay?(window.clearTimeout(b.data("bs.validator.timeout")),void b.data("bs.validator.timeout",window.setTimeout(c,this.options.delay))):c()},d.prototype.destroy=function(){return this.$element.removeAttr("novalidate").removeData("bs.validator").off(".bs.validator").find(".form-control-feedback").removeClass([this.options.feedback.error,this.options.feedback.success].join(" ")),this.$inputs.off(".bs.validator").removeData(["bs.validator.errors","bs.validator.deferred","bs.validator.previous"]).each(function(){var b=a(this),c=b.data("bs.validator.timeout");window.clearTimeout(c)&&b.removeData("bs.validator.timeout")}),this.$element.find(".help-block.with-errors").each(function(){var b=a(this),c=b.data("bs.validator.originalContent");b.removeData("bs.validator.originalContent").html(c)}),this.$element.find('input[type="submit"], button[type="submit"]').removeClass("disabled"),this.$element.find(".has-error, .has-danger").removeClass("has-error has-danger"),this};var e=a.fn.validator;a.fn.validator=c,a.fn.validator.Constructor=d,a.fn.validator.noConflict=function(){return a.fn.validator=e,this},a(window).on("load",function(){a('form[data-toggle="validator"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery); /* FontAwesome 5.7.2 solid.js */ -!function(){"use strict";var c={},h={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(h=document)}catch(c){}var l=(c.navigator||{}).userAgent,v=void 0===l?"":l,z=c,s=h,M=(z.document,!!s.documentElement&&!!s.head&&"function"==typeof s.addEventListener&&s.createElement,~v.indexOf("MSIE")||v.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}();var H=z||{};H[M]||(H[M]={}),H[M].styles||(H[M].styles={}),H[M].hooks||(H[M].hooks={}),H[M].shims||(H[M].shims=[]);var a=H[M];function V(c,v){var h=(2>>0;n--;)e[n]=t[n];return e}function Ct(t){return t.classList?At(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(t){return t})}function Ot(t,e){var n,a=e.split("-"),r=a[0],i=a.slice(1).join("-");return r!==t||""===i||(n=i,~F.indexOf(n))?null:i}function St(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Pt(n){return Object.keys(n||{}).reduce(function(t,e){return t+"".concat(e,": ").concat(n[e],";")},"")}function Nt(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function Mt(t){var e=t.transform,n=t.containerWidth,a=t.iconWidth,r={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),c="rotate(".concat(e.rotate," 0 0)");return{outer:r,inner:{transform:"".concat(i," ").concat(o," ").concat(c)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}var zt={x:0,y:0,width:"100%",height:"100%"};function Et(t){var e=!(1").concat(o.map(Zt).join(""),"")}var $t=function(){};function te(t){return"string"==typeof(t.getAttribute?t.getAttribute(G):null)}var ee={replace:function(t){var e=t[0],n=t[1].map(function(t){return Zt(t)}).join("\n");if(e.parentNode&&e.outerHTML)e.outerHTML=n+(J.keepOriginalSource&&"svg"!==e.tagName.toLowerCase()?"\x3c!-- ".concat(e.outerHTML," --\x3e"):"");else if(e.parentNode){var a=document.createElement("span");e.parentNode.replaceChild(a,e),a.outerHTML=n}},nest:function(t){var e=t[0],n=t[1];if(~Ct(e).indexOf(J.replacementClass))return ee.replace(t);var a=new RegExp("".concat(J.familyPrefix,"-.*"));delete n[0].attributes.style,delete n[0].attributes.id;var r=n[0].attributes.class.split(" ").reduce(function(t,e){return e===J.replacementClass||e.match(a)?t.toSvg.push(e):t.toNode.push(e),t},{toNode:[],toSvg:[]});n[0].attributes.class=r.toSvg.join(" ");var i=n.map(function(t){return Zt(t)}).join("\n");e.setAttribute("class",r.toNode.join(" ")),e.setAttribute(G,""),e.innerHTML=i}};function ne(t){t()}function ae(n,t){var a="function"==typeof t?t:$t;if(0===n.length)a();else{var e=ne;J.mutateApproach===P&&(e=g.requestAnimationFrame||ne),e(function(){var t=!0===J.autoReplaceSvg?ee.replace:ee[J.autoReplaceSvg]||ee.replace,e=Yt.begin("mutate");n.map(t),e(),a()})}}var re=!1;function ie(){re=!1}var oe=null;function ce(t){if(l&&J.observeMutations){var r=t.treeCallback,i=t.nodeCallback,o=t.pseudoElementsCallback,e=t.observeMutationsRoot,n=void 0===e?v:e;oe=new l(function(t){re||At(t).forEach(function(t){if("childList"===t.type&&0char{0}); + $h = ord($this->char[0]); if($h <= 0x7F) { @@ -191,15 +191,15 @@ class TeamSpeak3_Helper_Char } else if($h <= 0xDF) { - return ($h & 0x1F) << 6 | (ord($this->char{1}) & 0x3F); + return ($h & 0x1F) << 6 | (ord($this->char[1]) & 0x3F); } else if($h <= 0xEF) { - return ($h & 0x0F) << 12 | (ord($this->char{1}) & 0x3F) << 6 | (ord($this->char{2}) & 0x3F); + return ($h & 0x0F) << 12 | (ord($this->char[1]) & 0x3F) << 6 | (ord($this->char[2]) & 0x3F); } else if($h <= 0xF4) { - return ($h & 0x0F) << 18 | (ord($this->char{1}) & 0x3F) << 12 | (ord($this->char{2}) & 0x3F) << 6 | (ord($this->char{3}) & 0x3F); + return ($h & 0x0F) << 18 | (ord($this->char[1]) & 0x3F) << 12 | (ord($this->char[2]) & 0x3F) << 6 | (ord($this->char[3]) & 0x3F); } else { diff --git a/libs/ts3_lib/Helper/Crypt.php b/libs/ts3_lib/Helper/Crypt.php index 1c3d8da..232b78c 100644 --- a/libs/ts3_lib/Helper/Crypt.php +++ b/libs/ts3_lib/Helper/Crypt.php @@ -174,7 +174,7 @@ class TeamSpeak3_Helper_Crypt $data = 0; for($j = 4; $j > 0; $j--) { - $data = $data << 8 | ord($passphrase{$k}); + $data = $data << 8 | ord($passphrase[$k]); $k = ($k+1) % $length; } $this->p[$i] ^= $data; diff --git a/libs/ts3_lib/Helper/String.php b/libs/ts3_lib/Helper/String.php index 85abb03..76b2df6 100644 --- a/libs/ts3_lib/Helper/String.php +++ b/libs/ts3_lib/Helper/String.php @@ -887,7 +887,7 @@ class TeamSpeak3_Helper_String implements ArrayAccess, Iterator, Countable */ public function current() { - return new TeamSpeak3_Helper_Char($this->string{$this->position}); + return new TeamSpeak3_Helper_Char($this->string[$this->position]); } /** @@ -911,7 +911,7 @@ class TeamSpeak3_Helper_String implements ArrayAccess, Iterator, Countable */ public function offsetGet($offset) { - return ($this->offsetExists($offset)) ? new TeamSpeak3_Helper_Char($this->string{$offset}) : null; + return ($this->offsetExists($offset)) ? new TeamSpeak3_Helper_Char($this->string[$offset]) : null; } /** @@ -921,7 +921,7 @@ class TeamSpeak3_Helper_String implements ArrayAccess, Iterator, Countable { if(!$this->offsetExists($offset)) return; - $this->string{$offset} = strval($value); + $this->string[$offset] = strval($value); } /** diff --git a/libs/ts3_lib/Node/Host.php b/libs/ts3_lib/Node/Host.php index 29d4761..e81605d 100644 --- a/libs/ts3_lib/Node/Host.php +++ b/libs/ts3_lib/Node/Host.php @@ -527,7 +527,7 @@ class TeamSpeak3_Node_Host extends TeamSpeak3_Node_Abstract $permtree[$val]["permcatid"] = $val; $permtree[$val]["permcathex"] = "0x" . dechex($val); $permtree[$val]["permcatname"] = TeamSpeak3_Helper_String::factory(TeamSpeak3_Helper_Convert::permissionCategory($val)); - $permtree[$val]["permcatparent"] = $permtree[$val]["permcathex"]{3} == 0 ? 0 : hexdec($permtree[$val]["permcathex"]{2} . 0); + $permtree[$val]["permcatparent"] = $permtree[$val]["permcathex"][3] == 0 ? 0 : hexdec($permtree[$val]["permcathex"][2] . 0); $permtree[$val]["permcatchilren"] = 0; $permtree[$val]["permcatcount"] = 0; diff --git a/libs/ts3_lib/Node/Server.php b/libs/ts3_lib/Node/Server.php index db44248..18d0298 100644 --- a/libs/ts3_lib/Node/Server.php +++ b/libs/ts3_lib/Node/Server.php @@ -37,6 +37,7 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract * @ignore */ protected $clientList = null; + protected $clientListtsn = null; /** * @ignore @@ -684,6 +685,12 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract return $this->filterList($this->clientList, $filter); } + + public function clientListtsn($params = null) + { + # params: -uid -away -badges -voice -info -times -groups -icon -country -ip + return $this->request("clientlist $params")->toAssocArray("clid"); + } /** * Resets the list of clients online. diff --git a/libs/ts3_lib/TeamSpeak3.php b/libs/ts3_lib/TeamSpeak3.php index a8ab150..f20938d 100644 --- a/libs/ts3_lib/TeamSpeak3.php +++ b/libs/ts3_lib/TeamSpeak3.php @@ -590,339 +590,4 @@ class TeamSpeak3 return $output; } -} - -/*! - * \mainpage API Documentation - * - * \section welcome_sec Introduction - * - * \subsection welcome1 What is the TS3 PHP Framework? - * Initially released in January 2010, the TS3 PHP Framework is a powerful, open source, object-oriented framework - * implemented in PHP 5 and licensed under the GNU General Public License. It's based on simplicity and a rigorously - * tested agile codebase. Extend the functionality of your servers with scripts or create powerful web applications - * to manage all features of your TeamSpeak 3 Server instances. - * - * Tested. Thoroughly. Enterprise-ready and built with agile methods, the TS3 PHP Framework has been unit-tested from - * the start to ensure that all code remains stable and easy for you to extend, re-test with your extensions, and - * further maintain. - * - * \subsection welcome2 Why should I use the TS3 PHP Framework rather than other PHP libraries? - * The TS3 PHP Framework is a is a modern use-at-will framework that provides individual components to communicate - * with the TeamSpeak 3 Server. - * - * There are lots of arguments for the TS3 PHP Framework in comparison with other PHP based libraries. It is the most - * dynamic and feature-rich piece of software in its class. In addition, it's always up-to-date and 100% compatible to - * almost any TeamSpeak 3 Server version available. - * - * \section sysreqs_sec Requirements - * The TS3 PHP Framework currently supports PHP 5.2.1 or later, but we strongly recommend the most current release of - * PHP for critical security and performance enhancements. If you want to create a web application using the TS3 PHP - * Framework, you need a PHP 5 interpreter with a web server configured to handle PHP scripts correctly. - * - * Note that the majority of TS3 PHP Framework development and deployment is done on nginx, so there is more community - * experience and testing performed on nginx than on other web servers. - * - * \section feature_sec Features - * Features of the TS3 PHP Framework include: - * - * - Fully object-oriented PHP 5 and E_STRICT compliant components - * - Access to all TeamSpeak 3 Server features via ServerQuery - * - Integrated full featured and customizable TSViewer interfaces - * - Full support for file transfers to up- and /or download custom icons and other stuff - * - Powerful error handling capablities using exceptions and customizable error messages - * - Dynamic signal slots for event based scripting - * - ... - * - * \section example_sec Usage Examples - * - * \subsection example1 1. Kick a single Client from a Virtual Server - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // kick the client with ID 123 from the server - * $ts3_VirtualServer->clientKick(123, TeamSpeak3::KICK_SERVER, "evil kick XD"); - * - * // spawn an object for the client by unique identifier and do the kick - * $ts3_VirtualServer->clientGetByUid("FPMPSC6MXqXq751dX7BKV0JniSo=")->kick(TeamSpeak3::KICK_SERVER, "evil kick XD"); - * - * // spawn an object for the client by current nickname and do the kick - * $ts3_VirtualServer->clientGetByName("ScP")->kick(TeamSpeak3::KICK_SERVER, "evil kick XD"); - * @endcode - * - * \subsection example2 2. Kick all Clients from a Virtual Server - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // query clientlist from virtual server - * $arr_ClientList = $ts3_VirtualServer->clientList(); - * - * // kick all clients online with a single command - * $ts3_VirtualServer->clientKick($arr_ClientList, TeamSpeak3::KICK_SERVER, "evil kick XD"); - * @endcode - * - * \subsection example3 3. Print the Nicknames of connected Android Clients - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // query clientlist from virtual server and filter by platform - * $arr_ClientList = $ts3_VirtualServer->clientList(array("client_platform" => "Android")); - * - * // walk through list of clients - * foreach($arr_ClientList as $ts3_Client) - * { - * echo $ts3_Client . " is using " . $ts3_Client["client_platform"] . "
    \n"; - * } - * @endcode - * - * \subsection example4 4. Modify the Settings of each Virtual Server - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the server instance - * $ts3_ServerInstance = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/"); - * - * // walk through list of virtual servers - * foreach($ts3_ServerInstance as $ts3_VirtualServer) - * { - * // modify the virtual servers hostbanner URL only using the ArrayAccess interface - * $ts3_VirtualServer["virtualserver_hostbanner_gfx_url"] = "http://www.example.com/banners/banner01_468x60.jpg"; - * - * // modify the virtual servers hostbanner URL only using property overloading - * $ts3_VirtualServer->virtualserver_hostbanner_gfx_url = "http://www.example.com/banners/banner01_468x60.jpg"; - * - * // modify multiple virtual server properties at once - * $ts3_VirtualServer->modify(array( - * "virtualserver_hostbutton_tooltip" => "My Company", - * "virtualserver_hostbutton_url" => "http://www.example.com", - * "virtualserver_hostbutton_gfx_url" => "http://www.example.com/buttons/button01_24x24.jpg", - * )); - * } - * @endcode - * - * \subsection example5 5. Create a Privilege Key for a Server Group - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // spawn an object for the group using a specified name - * $arr_ServerGroup = $ts3_VirtualServer->serverGroupGetByName("Admins"); - * - * // create the privilege key - * $ts3_PrivilegeKey = $arr_ServerGroup->privilegeKeyCreate(); - * @endcode - * - * \subsection example6 6. Modify the Permissions of Admins on each Virtual Server - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the server instance - * $ts3_ServerInstance = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/"); - * - * // walk through list of virtual servers - * foreach($ts3_ServerInstance as $ts3_VirtualServer) - * { - * // identify the most powerful group on the virtual server - * $ts3_ServerGroup = $ts3_VirtualServer->serverGroupIdentify(); - * - * // assign a new permission - * $ts3_ServerGroup->permAssign("b_virtualserver_modify_hostbanner", TRUE); - * - * // revoke an existing permission - * $ts3_ServerGroup->permRemove("b_virtualserver_modify_maxclients"); - * } - * @endcode - * - * \subsection example7 7. Create a new Virtual Server - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the server instance - * $ts3_ServerInstance = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/"); - * - * // create a virtual server and get its ID - * $new_sid = $ts3_ServerInstance->serverCreate(array( - * "virtualserver_name" => "My TeamSpeak 3 Server", - * "virtualserver_maxclients" => 64, - * "virtualserver_hostbutton_tooltip" => "My Company", - * "virtualserver_hostbutton_url" => "http://www.example.com", - * "virtualserver_hostbutton_gfx_url" => "http://www.example.com/buttons/button01_24x24.jpg", - * )); - * @endcode - * - * \subsection example8 8. Create a hierarchical Channel Stucture - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // create a top-level channel and get its ID - * $top_cid = $ts3_VirtualServer->channelCreate(array( - * "channel_name" => "My Channel", - * "channel_topic" => "This is a top-level channel", - * "channel_codec" => TeamSpeak3::CODEC_SPEEX_WIDEBAND, - * "channel_flag_permanent" => TRUE, - * )); - * - * // create a sub-level channel and get its ID - * $sub_cid = $ts3_VirtualServer->channelCreate(array( - * "channel_name" => "My Sub-Channel", - * "channel_topic" => "This is a sub-level channel", - * "channel_codec" => TeamSpeak3::CODEC_SPEEX_NARROWBAND, - * "channel_flag_permanent" => TRUE, - * "cpid" => $top_cid, - * )); - * @endcode - * - * \subsection example9 9. Create a simple TSViewer for your Website - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // build and display HTML treeview using custom image paths (remote icons will be embedded using data URI sheme) - * echo $ts3_VirtualServer->getViewer(new TeamSpeak3_Viewer_Html("images/viewericons/", "images/countryflags/", "data:image")); - * @endcode - * - * \subsection example10 10. Update all outdated Audio Codecs to their Opus equivalent - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // walk through list of chanels - * foreach($ts3_VirtualServer->channelList() as $ts3_Channel) - * { - * if($ts3_Channel["channel_codec"] == TeamSpeak3::CODEC_CELT_MONO) - * { - * $ts3_Channel["channel_codec"] = TeamSpeak3::CODEC_OPUS_MUSIC; - * } - * elseif($ts3_Channel["channel_codec"] != TeamSpeak3::CODEC_OPUS_MUSIC) - * { - * $ts3_Channel["channel_codec"] = TeamSpeak3::CODEC_OPUS_VOICE; - * } - * } - * @endcode - * - * \subsection example11 11. Display the Avatar of a connected User - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // spawn an object for the client using a specified nickname - * $ts3_Client = $ts3_VirtualServer->clientGetByName("John Doe"); - * - * // download the clients avatar file - * $avatar = $ts3_Client->avatarDownload(); - * - * // send header and display image - * header("Content-Type: " . TeamSpeak3_Helper_Convert::imageMimeType($avatar)); - * echo $avatar; - * @endcode - * - * \subsection example12 12. Create a Simple Bot waiting for Events - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // connect to local server in non-blocking mode, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987&blocking=0"); - * - * // get notified on incoming private messages - * $ts3_VirtualServer->notifyRegister("textprivate"); - * - * // register a callback for notifyTextmessage events - * TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyTextmessage", "onTextmessage"); - * - * // wait for events - * while(1) $ts3_VirtualServer->getAdapter()->wait(); - * - * // define a callback function - * function onTextmessage(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3_Node_Host $host) - * { - * echo "Client " . $event["invokername"] . " sent textmessage: " . $event["msg"]; - * } - * @endcode - * - * \subsection example13 13. Handle Errors using Exceptions and Custom Error Messages - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // register custom error message (supported placeholders are: %file, %line, %code and %mesg) - * TeamSpeak3_Exception::registerCustomMessage(0x300, "The specified channel does not exist; server said: %mesg"); - * - * try - * { - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // spawn an object for the channel using a specified name - * $ts3_Channel = $ts3_VirtualServer->channelGetByName("I do not exist"); - * } - * catch(TeamSpeak3_Exception $e) - * { - * // print the error message returned by the server - * echo "Error " . $e->getCode() . ": " . $e->getMessage(); - * } - * @endcode - * - * \subsection example14 14. Save Connection State in Persistent Session Variable - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // start a PHP session - * session_start(); - * - * // connect to local server, authenticate and spawn an object for the virtual server on port 9987 - * $ts3_VirtualServer = TeamSpeak3::factory("serverquery://username:password@127.0.0.1:10011/?server_port=9987"); - * - * // save connection state (including login and selected virtual server) - * $_SESSION["_TS3"] = serialize($ts3_VirtualServer); - * @endcode - * - * \subsection example15 15. Restore Connection State from Persistent Session Variable - * @code - * // load framework files - * require_once("libraries/TeamSpeak3/TeamSpeak3.php"); - * - * // start a PHP session - * session_start(); - * - * // restore connection state - * $ts3_VirtualServer = unserialize($_SESSION["_TS3"]); - * - * // send a text message to the server - * $ts3_VirtualServer->message("Hello World!"); - * @endcode - * - * Speed up new development and reduce maintenance costs by using the TS3 PHP Framework! - */ +} \ No newline at end of file diff --git a/other/config.php b/other/config.php index 9cc4012..7577539 100644 --- a/other/config.php +++ b/other/config.php @@ -1,4 +1,5 @@ query("SELECT * FROM `$dbname`.`config`"))) { - if(isset($oldcfg) && $oldcfg != NULL) { - $config = $oldcfg->fetch(); - $cfg['teamspeak_host_address'] = $config['tshost']; - $cfg['teamspeak_query_port'] = $config['tsquery']; - $cfg['teamspeak_query_encrypt_switch'] = $config['tsencrypt']; - $cfg['teamspeak_voice_port'] = $config['tsvoice']; - $cfg['teamspeak_query_user'] = $config['tsuser']; - $cfg['teamspeak_query_pass'] = $config['tspass']; - $cfg['webinterface_user'] = $config['webuser']; - $cfg['webinterface_pass'] = $config['webpass']; - if(!isset($_GET["lang"])) { - if(isset($_SESSION[$rspathhex.'language'])) { - $cfg['default_language'] = $_SESSION[$rspathhex.'language']; - } else { - $cfg['default_language'] = $config['language']; - } - } elseif($_GET["lang"] == "ar") { - $cfg['default_language'] = "ar"; - $_SESSION[$rspathhex.'language'] = "ar"; - } elseif($_GET["lang"] == "cz") { - $cfg['default_language'] = "cz"; - $_SESSION[$rspathhex.'language'] = "cz"; - } elseif($_GET["lang"] == "de") { - $cfg['default_language'] = "de"; - $_SESSION[$rspathhex.'language'] = "de"; - } elseif($_GET["lang"] == "fr") { - $cfg['default_language'] = "fr"; - $_SESSION[$rspathhex.'language'] = "fr"; - } elseif($_GET["lang"] == "it") { - $cfg['default_language'] = "it"; - $_SESSION[$rspathhex.'language'] = "it"; - } elseif($_GET["lang"] == "nl") { - $cfg['default_language'] = "nl"; - $_SESSION[$rspathhex.'language'] = "nl"; - } elseif($_GET["lang"] == "pl") { - $cfg['default_language'] = "pl"; - $_SESSION[$rspathhex.'language'] = "pl"; - } elseif($_GET["lang"] == "ro") { - $cfg['default_language'] = "ro"; - $_SESSION[$rspathhex.'language'] = "ro"; - } elseif($_GET["lang"] == "ru") { - $cfg['default_language'] = "ru"; - $_SESSION[$rspathhex.'language'] = "ru"; - } elseif($_GET["lang"] == "pt") { - $cfg['default_language'] = "pt"; - $_SESSION[$rspathhex.'language'] = "pt"; - } else { - $cfg['default_language'] = "en"; - $_SESSION[$rspathhex.'language'] = "en"; - } - $lang = set_language($cfg['default_language']); - $cfg['teamspeak_query_nickname'] = $config['queryname']; - $cfg['teamspeak_query_command_delay'] = $config['slowmode']; - if(empty($config['grouptime'])) { - $cfg['rankup_definition'] = null; - } else { - $grouptimearr = explode(',', $config['grouptime']); - foreach ($grouptimearr as $entry) { - list($key, $value) = explode('=>', $entry); - $addnewvalue1[$key] = $value; - $cfg['rankup_definition'] = $addnewvalue1; - } - } - if(empty($config['boost'])) { - $cfg['rankup_boost_definition'] = null; - } else { - $boostexp = explode(',', $config['boost']); - foreach ($boostexp as $entry) { - list($key, $value1, $value2) = explode('=>', $entry); - $addnewvalue2[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); - $cfg['rankup_boost_definition'] = $addnewvalue2; - } - } - $cfg['rankup_client_database_id_change_switch'] = $config['resetbydbchange']; - $cfg['rankup_message_to_user_switch'] = $config['msgtouser']; - $cfg['version_current_using'] = $config['currvers']; - $cfg['rankup_time_assess_mode'] = $config['substridle']; - $cfg['rankup_excepted_unique_client_id_list'] = array_flip(explode(',', $config['exceptuuid'])); - $cfg['rankup_excepted_group_id_list'] = array_flip(explode(',', $config['exceptgroup'])); - $cfg['rankup_excepted_channel_id_list'] = array_flip(explode(',', $config['exceptcid'])); - $cfg['default_date_format'] = $config['dateformat']; - $cfg['stats_show_excepted_clients_switch'] = $config['showexcld']; - $cfg['stats_show_clients_in_highest_rank_switch'] = $config['showhighest']; - $cfg['stats_column_rank_switch'] = $config['showcolrg']; - $cfg['stats_column_client_name_switch'] = $config['showcolcld']; - $cfg['stats_column_unique_id_switch'] = $config['showcoluuid']; - $cfg['stats_column_client_db_id_switch'] = $config['showcoldbid']; - $cfg['stats_column_last_seen_switch'] = $config['showcolls']; - $cfg['stats_column_online_time_switch'] = $config['showcolot']; - $cfg['stats_column_idle_time_switch'] = $config['showcolit']; - $cfg['stats_column_active_time_switch'] = $config['showcolat']; - $cfg['stats_column_current_server_group_switch'] = $config['showcolas']; - $cfg['stats_column_next_rankup_switch'] = $config['showcolnx']; - $cfg['stats_column_next_server_group_switch'] = $config['showcolsg']; - $cfg['rankup_clean_clients_switch'] = $config['cleanclients']; - $cfg['rankup_clean_clients_period'] = $config['cleanperiod']; - $cfg['teamspeak_default_channel_id'] = $config['defchid']; - $cfg['logs_path'] = $config['logpath']; - if ($config['timezone'] == NULL) { - $cfg['logs_timezone'] = "Europe/Berlin"; - } else { - $cfg['logs_timezone'] = $config['timezone']; - } - date_default_timezone_set($cfg['logs_timezone']); - $cfg['webinterface_access_count'] = $config['count_access']; - $cfg['webinterface_access_last'] = $config['last_access']; - $cfg['rankup_ignore_idle_time'] = $config['ignoreidle']; - $cfg['rankup_message_to_user'] = $config['rankupmsg']; - $cfg['version_latest_available'] = $config['newversion']; - $cfg['stats_server_news'] = $config['servernews']; - if(empty($config['adminuuid'])) { - $cfg['webinterface_admin_client_unique_id_list'] = NULL; - } else { - $cfg['webinterface_admin_client_unique_id_list'] = explode(',', $config['adminuuid']); - } - $cfg['rankup_next_message_mode'] = $config['nextupinfo']; - $cfg['rankup_next_message_1'] = $config['nextupinfomsg1']; - $cfg['rankup_next_message_2'] = $config['nextupinfomsg2']; - $cfg['rankup_next_message_3'] = $config['nextupinfomsg3']; - $cfg['stats_show_site_navigation_switch'] = $config['shownav']; - $cfg['stats_column_current_group_since_switch'] = $config['showgrpsince']; - $cfg['rankup_excepted_mode'] = $config['resetexcept']; - $cfg['version_update_channel'] = $config['upchannel']; - $cfg['teamspeak_avatar_download_delay'] = $config['avatar_delay']; - $cfg['teamspeak_verification_channel_id'] = $config['registercid']; - $cfg['rankup_hash_ip_addresses_mode'] = $config['iphash']; - unset($addnewvalue1, $addnewvalue2, $oldcfd, $config); - } -} elseif(!isset($_GET["lang"])) { - $lang = set_language("en"); -} - if (isset($mysqlcon) && ($newcfg = $mysqlcon->query("SELECT * FROM `$dbname`.`cfg_params`"))) { if(isset($newcfg) && $newcfg != NULL) { $cfg = $newcfg->fetchAll(PDO::FETCH_KEY_PAIR); @@ -257,6 +120,15 @@ if (isset($mysqlcon) && ($newcfg = $mysqlcon->query("SELECT * FROM `$dbname`.`cf $cfg['rankup_boost_definition'] = $addnewvalue2; } } + if(empty($cfg['stats_api_keys'])) { + $cfg['stats_api_keys'] = NULL; + } else { + foreach (explode(',', $cfg['stats_api_keys']) as $entry) { + list($key, $value) = explode('=>', $entry); + $addnewvalue3[$key] = $value; + $cfg['stats_api_keys'] = $addnewvalue3; + } + } if(!isset($_GET["lang"])) { if(isset($_SESSION[$rspathhex.'language'])) { $cfg['default_language'] = $_SESSION[$rspathhex.'language']; @@ -286,7 +158,7 @@ if (isset($mysqlcon) && ($newcfg = $mysqlcon->query("SELECT * FROM `$dbname`.`cf } else { $lang = set_language("en"); } - unset($addnewvalue1, $addnewvalue2, $newcfd); + unset($addnewvalue1, $addnewvalue2, $newcfg); } } elseif(!isset($_GET["lang"])) { $lang = set_language("en"); diff --git a/stats/assign_groups.php b/stats/assign_groups.php index 9b7b587..4b8c053 100644 --- a/stats/assign_groups.php +++ b/stats/assign_groups.php @@ -92,7 +92,9 @@ if(count($_SESSION[$rspathhex.'multiple']) > 1 and !isset($_SESSION[$rspathhex.' $set_groups = substr($set_groups, 0, -1); if($set_groups != '' && $count_limit <= $addons_config['assign_groups_limit']['value']) { if ($mysqlcon->exec("INSERT INTO `$dbname`.`addon_assign_groups` SET `uuid`='$uuid',`grpids`='$set_groups'") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; + } elseif($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger'; ") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; } else { $err_msg = $lang['stag0008']; $err_lvl = NULL; } diff --git a/stats/index.php b/stats/index.php index 1387fa2..d5db4a7 100644 --- a/stats/index.php +++ b/stats/index.php @@ -385,9 +385,9 @@ require_once('nav.php'); - servericon'; + servericon'; } else { echo $sql_res['server_name']; } ?> diff --git a/stats/info.php b/stats/info.php index e9d213d..0f99f6a 100644 --- a/stats/info.php +++ b/stats/info.php @@ -54,7 +54,7 @@ require_once('nav.php');

    -

    +


    @@ -83,21 +83,21 @@ require_once('nav.php');

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    +

    Shad86 -'); ?>

    +

    mightyBroccoli -'); ?>

    +

    Arselopster, DeviantUser & kidi -'); ?>

    +

    +

    ZanK & jacopomozzy -'); ?>

    +

    DeStRoYzR & Jehad -'); ?>

    +

    SakaLuX -'); ?>

    +

    0x0539 -'); ?>

    +

    +

    Pasha -'); ?>

    +

    KeviN & Stetinac -'); ?>

    +

    DoktorekOne & toster234 -'); ?>

    +

    JavierlechuXD -'); ?>

    +

    ExXeL -'); ?>

    +

    G. FARZALIYEV -'); ?>


    diff --git a/stats/list_rankup.php b/stats/list_rankup.php index 8e45f78..f4ca938 100644 --- a/stats/list_rankup.php +++ b/stats/list_rankup.php @@ -391,7 +391,7 @@ if($adminlogin == 1) { } elseif ($value['except'] == 2 || $value['except'] == 3) { echo '',$lang['listexcept'],''; } elseif (isset($sqlhisgroup[$groupid]) && $sqlhisgroup[$groupid]['iconid'] != 0) { - echo 'missed_icon  ' , $sqlhisgroup[$groupid]['sgidname'] , ''; + echo 'missed_icon  ' , $sqlhisgroup[$groupid]['sgidname'] , ''; } elseif (isset($sqlhisgroup[$groupid])) { echo '' , $sqlhisgroup[$groupid]['sgidname'] , ''; } else { diff --git a/webinterface/_nav.php b/webinterface/_nav.php new file mode 100644 index 0000000..75e2a70 --- /dev/null +++ b/webinterface/_nav.php @@ -0,0 +1,254 @@ +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; + } +} + +if(!isset($_POST['start']) && !isset($_POST['stop']) && !isset($_POST['restart']) && isset($_SESSION[$rspathhex.'username']) && $_SESSION[$rspathhex.'username'] == $cfg['webinterface_user'] && $_SESSION[$rspathhex.'password'] == $cfg['webinterface_pass']) { + if (substr(php_uname(), 0, 7) == "Windows") { + if (file_exists(substr(__DIR__,0,-12).'logs\pid')) { + $pid = str_replace(array("\r", "\n"), '', file_get_contents(substr(__DIR__,0,-12).'logs\pid')); + exec("wmic process where \"processid=".$pid."\" get processid 2>nul", $result); + if(isset($result[1]) && is_numeric($result[1])) { + $botstatus = 1; + } else { + $botstatus = 0; + } + } else { + $botstatus = 0; + } + } else { + if (file_exists(substr(__DIR__,0,-12).'logs/pid')) { + $check_pid = str_replace(array("\r", "\n"), '', file_get_contents(substr(__DIR__,0,-12).'logs/pid')); + $result = str_replace(array("\r", "\n"), '', shell_exec("ps ".$check_pid)); + if (strstr($result, $check_pid)) { + $botstatus = 1; + } else { + $botstatus = 0; + } + } else { + $botstatus = 0; + } + } +} + +if(isset($_POST['switchexpert']) && isset($_SESSION[$rspathhex.'username']) && $_SESSION[$rspathhex.'username'] == $cfg['webinterface_user'] && $_SESSION[$rspathhex.'password'] == $cfg['webinterface_pass']) { + if ($_POST['switchexpert'] == "check") $cfg['webinterface_advanced_mode'] = 1; else $cfg['webinterface_advanced_mode'] = 0; + + if (($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_advanced_mode','{$cfg['webinterface_advanced_mode']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);")) === false) { + print_r($mysqlcon->errorInfo(), true); + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } +} +?> + + + + + + + + + TSN Ranksystem - ts-ranksystem.com + + + + +
    +
  • + + ' : ' class="expertelement">'); ?> +    + + ' : '>'); ?> +    + + ' : ' class="expertelement">'); ?> +    + + ' : '>'); ?> +    + +
  • +
  • +     + ' : 'collapse">'); ?> + ' : '>'); ?> +    +
  • + ' : '>'); ?> +    + +
+ +
  • +
  • +     + ' : 'collapse">'); ?> + ' : '>'); ?> +    +
  • + ' : '>'); ?> +    + + ' : ' class="expertelement">'); ?> +    + + + + +
  • + ' : '>'); ?> +    + + '; + if($botstatus == 1) { + echo '
  •   '.$lang['boton'].'
  • '; + } else { + echo '
  •   '.$lang['botoff'].'
  • '; + } + } + ?> + + + +"; + $err_msg = sprintf($lang['winav10'], $host,'!
    ', '
    '); $err_lvl = 2; +} +?> \ No newline at end of file diff --git a/webinterface/_preload.php b/webinterface/_preload.php new file mode 100644 index 0000000..cf0c623 --- /dev/null +++ b/webinterface/_preload.php @@ -0,0 +1,89 @@ + $cfg['logs_debug_level']) return; + $file = $cfg['logs_path'].'ranksystem.log'; + switch ($loglevel) { + case 1: $loglevel = " CRITICAL "; break; + case 2: $loglevel = " ERROR "; break; + case 3: $loglevel = " WARNING "; break; + case 4: $loglevel = " NOTICE "; break; + case 5: $loglevel = " INFO "; break; + case 6: $loglevel = " DEBUG "; break; + default:$loglevel = " NONE "; + } + $loghandle = fopen($file, 'a'); + fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"); + fclose($loghandle); + if($norotate == false && filesize($file) > ($cfg['logs_rotation_size'] * 1048576)) { + $loghandle = fopen($file, 'a'); + fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ")." NOTICE Rotated logfile...\n"); + fclose($loghandle); + } +} + +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; +} + +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,'
    '; +} + +if (isset($_POST['logout'])) { + echo "logout"; + rem_session_ts3($rspathhex); + header("Location: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + exit; +} + +if (basename($_SERVER['SCRIPT_NAME']) != "index.php" && basename($_SERVER['SCRIPT_NAME']) != "resetpassword.php" && (!isset($_SESSION[$rspathhex.'username']) || $_SESSION[$rspathhex.'username'] != $cfg['webinterface_user'] || $_SESSION[$rspathhex.'password'] != $cfg['webinterface_pass'] || $_SESSION[$rspathhex.'clientip'] != getclientip())) { + header("Location: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); + exit; +} + +$csrf_token = bin2hex(openssl_random_pseudo_bytes(32)); +?> \ No newline at end of file diff --git a/webinterface/addon_assign_groups.php b/webinterface/addon_assign_groups.php index e450bae..5a79a56 100644 --- a/webinterface/addon_assign_groups.php +++ b/webinterface/addon_assign_groups.php @@ -1,54 +1,10 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; @@ -140,12 +96,12 @@ if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']]) && isset($_ $assign_groups_groupids = explode(',', $addons_config['assign_groups_groupids']['value']); foreach ($groupslist as $groupID => $groupParam) { if (in_array($groupID, $assign_groups_groupids)) $selected=" selected"; else $selected=""; - if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']; else $iconid="placeholder"; + if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']."."; else $iconid="placeholder.png"; if ($groupParam['type'] == 0 || $groupParam['type'] == 2) $disabled=" disabled"; else $disabled=""; if ($groupParam['type'] == 0) $grouptype=" [TEMPLATE GROUP]"; else $grouptype=""; if ($groupParam['type'] == 2) $grouptype=" [QUERY GROUP]"; if ($groupID != 0) { - echo ''; + echo ''; } } ?> diff --git a/webinterface/admin_addtime.php b/webinterface/admin_addtime.php index f1abce8..cc3d21e 100644 --- a/webinterface/admin_addtime.php +++ b/webinterface/admin_addtime.php @@ -1,50 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); @@ -89,6 +45,8 @@ if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { $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; + } elseif($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger'; ") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; } else { $err_msg = substr($succmsg,0,-4); $err_lvl = NULL; } diff --git a/webinterface/admin_remtime.php b/webinterface/admin_remtime.php index a24ea98..cabd743 100644 --- a/webinterface/admin_remtime.php +++ b/webinterface/admin_remtime.php @@ -1,50 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); @@ -90,6 +46,8 @@ if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { $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; + } elseif($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger'; ") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; } else { $err_msg = substr($succmsg,0,-4); $err_lvl = NULL; } diff --git a/webinterface/api.php b/webinterface/api.php new file mode 100644 index 0000000..b6d0d0e --- /dev/null +++ b/webinterface/api.php @@ -0,0 +1,234 @@ +exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; +} + +if (($db_csrf = $mysqlcon->query("SELECT * FROM `$dbname`.`csrf_token` WHERE `sessionid`='".session_id()."'")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; +} + +if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $stats_api_keys = $err_msg = ""; + + if (isset($_POST['apikey']) && isset($_POST['desc'])) { + $apidefinition = []; + foreach($_POST['apikey'] as $rowid => $apikey) { + $desc = isset($_POST["desc"][$rowid]) ? $_POST["desc"][$rowid] : null; + $apidefinition[] = "$apikey=>$desc"; + } + + $stats_api_keys = implode(",", $apidefinition); + + $cfg['stats_api_keys'] = $stats_api_keys; + } + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_api_keys','{$cfg['stats_api_keys']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc']; + $err_lvl = NULL; + } + + if(empty($stats_api_keys)) { + $cfg['stats_api_keys'] = NULL; + } else { + $keyarr = explode(',', $stats_api_keys); + foreach ($keyarr as $entry) { + list($key, $value) = explode('=>', $entry); + $addnewvalue[$key] = $value; + $cfg['stats_api_keys'] = $addnewvalue; + } + } +} elseif(isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3($rspathhex); + exit; +} +?> +
    + +
    + +
    +
    +
    +

    + +

    +
    +
    + +
    +
    +
    + +
    +
     
    +
     
    +
    +
    + +
    +
    + +
    +
    +
    + + $desc) { + ?> +
    +
    + +
    +
    +
    +   + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    ',$lang['wiboostempty'],'
    '; + } else { + echo '
    '; + }?> +
    + + + +
    +
    +
    +
    +
    +
    +
    +
     
    +
    +
    + +
    +
    +
     
    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/webinterface/boost.php b/webinterface/boost.php index 06a22dc..0bcd138 100644 --- a/webinterface/boost.php +++ b/webinterface/boost.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); @@ -223,12 +180,12 @@ if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) {
    -
    +
    $groupParam) { if ($groupID == $boost['group']) $selected=" selected"; else $selected=""; - if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']; else $iconid="placeholder"; + if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']."."; else $iconid="placeholder.png"; if ($groupParam['type'] == 0 || $groupParam['type'] == 2) $disabled=" disabled"; else $disabled=""; if ($groupParam['type'] == 0) $grouptype=" [TEMPLATE GROUP]"; else $grouptype=""; if ($groupParam['type'] == 2) $grouptype=" [QUERY GROUP]"; if ($groupID != 0) { - echo ''; + echo ''; } } ?> @@ -272,7 +229,7 @@ if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) {
    -
    +
    - +
    @@ -416,7 +373,7 @@ $(".boostfactor").TouchSpin({ verticalbuttons: true, prefix: ':' }); -$("#addboostgroup").click(function(){ +function addboostgroup() { var $clone = $("div[name='template']").last().clone(); $clone.removeClass("hidden"); $clone.attr('name','boostgroup'); @@ -431,9 +388,9 @@ $("#addboostgroup").click(function(){ document.getElementById("noentry").remove(); } $clone.find('.bootstrap-touchspin').replaceWith(function() { return $('input', this); });; - $clone.find('.boostfactor').TouchSpin({min: 0,max: 999999999,decimals: 9,step: 0.000000001,verticalbuttons: true,prefix: '×:'}); + $clone.find('.boostfactor').TouchSpin({min: 0,max: 999999999,decimals: 9,step: 0.000000001,verticalbuttons: true,prefix: ':'}); $clone.find('.boostduration').TouchSpin({min: 1,max: 999999999,verticalbuttons: true,prefix: 'Sec.:'}); -}); +}; $(document).on("click", ".delete", function(){ $(this).parent().remove(); }); diff --git a/webinterface/bot.php b/webinterface/bot.php index 2343599..04b4010 100644 --- a/webinterface/bot.php +++ b/webinterface/bot.php @@ -1,36 +1,5 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/changepassword.php b/webinterface/changepassword.php index 49d150c..9ae61c1 100644 --- a/webinterface/changepassword.php +++ b/webinterface/changepassword.php @@ -1,82 +1,6 @@ $cfg['logs_debug_level']) return; - $file = $cfg['logs_path'].'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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"); - fclose($loghandle); - if($norotate == false && filesize($file) > ($cfg['logs_rotation_size'] * 1048576)) { - $loghandle = fopen($file, 'a'); - fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ")." NOTICE Rotated logfile...\n"); - fclose($loghandle); - } -} - -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'] != $cfg['webinterface_user'] || $_SESSION[$rspathhex.'password'] != $cfg['webinterface_pass'] || $_SESSION[$rspathhex.'clientip'] != getclientip()) { - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')); - exit; -} - -require_once('nav.php'); -$csrf_token = bin2hex(openssl_random_pseudo_bytes(32)); +require_once('_preload.php'); +require_once('_nav.php'); if ($mysqlcon->exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/core.php b/webinterface/core.php index 15cc402..aef989a 100644 --- a/webinterface/core.php +++ b/webinterface/core.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/db.php b/webinterface/db.php index 297d4d8..314518e 100644 --- a/webinterface/db.php +++ b/webinterface/db.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/except.php b/webinterface/except.php index 2c4ff15..0cf4e47 100644 --- a/webinterface/except.php +++ b/webinterface/except.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); @@ -150,12 +107,12 @@ if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { $groupParam) { if ($cfg['rankup_excepted_group_id_list'] != NULL && array_key_exists($groupID, $cfg['rankup_excepted_group_id_list'])) $selected=" selected"; else $selected=""; - if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']; else $iconid="placeholder"; + if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']."."; else $iconid="placeholder.png"; if ($groupParam['type'] == 0) $disabled=" disabled"; else $disabled=""; if ($groupParam['type'] == 0) $grouptype=" [TEMPLATE GROUP]"; else $grouptype=""; if ($groupParam['type'] == 2) $grouptype=" [QUERY GROUP]"; if ($groupID != 0) { - echo ''; + echo ''; } } ?> diff --git a/webinterface/index.php b/webinterface/index.php index 5f0b89c..239f650 100644 --- a/webinterface/index.php +++ b/webinterface/index.php @@ -1,56 +1,45 @@ chown -R www-data:www-data '.$cfg['logs_path'].'
    ', '
    chmod 640 '.$cfg['logs_path'].'ranksystem.log


    ', '
    '.$cfg['logs_path'].'ranksystem.log
    '); - $err_lvl = 3; $dis_login = 1; + $err_msg = sprintf($lang['chkfileperm'], '
    chown -R www-data:www-data '.$cfg['logs_path'].'

    ', '
    chmod 740 '.$cfg['logs_path'].'ranksystem.log


    ', '
    '.$cfg['logs_path'].'ranksystem.log
    '); + $err_lvl = 3; $dis_login = 0; } if(!is_writable($cfg['logs_path'])) { $err_msg = sprintf($lang['chkfileperm'], '
    chown -R www-data:www-data '.$cfg['logs_path'].'

    ', '
    chmod 740 '.$cfg['logs_path'].'


    ', '
    '.$cfg['logs_path'].'
    '); - $err_lvl = 3; $dis_login = 1; + $err_lvl = 3; $dis_login = 0; } if(!function_exists('exec')) { - unset($err_msg); $err_msg = sprintf($lang['insterr3'],'exec','//php.net/manual/en/book.exec.php'); $err_lvl = 3; $dis_login = 1; + unset($err_msg); $err_msg = sprintf($lang['insterr3'],'exec','//php.net/manual/en/book.exec.php',get_cfg_var('cfg_file_path')); $err_lvl = 3; $dis_login = 1; } else { exec("$phpcommand -v", $phpversioncheck); $output = ''; @@ -70,55 +59,6 @@ if(!function_exists('exec')) { } } -function enter_logfile($cfg,$loglevel,$logtext,$norotate = false) { - if($loglevel > $cfg['logs_debug_level']) return; - $file = $cfg['logs_path'].'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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"); - fclose($loghandle); - if($norotate == false && filesize($file) > ($cfg['logs_rotation_size'] * 1048576)) { - $loghandle = fopen($file, 'a'); - fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ")." NOTICE Rotated logfile...\n"); - fclose($loghandle); - } -} - -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(($cfg['webinterface_access_last'] + 1) >= time()) { $waittime = $cfg['webinterface_access_last'] + 2 - time(); $err_msg = sprintf($lang['errlogin2'],$waittime); @@ -136,7 +76,7 @@ if(($cfg['webinterface_access_last'] + 1) >= time()) { $_SESSION[$rspathhex.'newversion'] = $cfg['version_latest_available']; enter_logfile($cfg,6,sprintf($lang['brute2'], getclientip())); if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_count','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { } - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); + header("Location: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); exit; } elseif(isset($_POST['username'])) { $nowtime = time(); @@ -148,11 +88,11 @@ if(($cfg['webinterface_access_last'] + 1) >= time()) { } if(isset($_SESSION[$rspathhex.'username']) && $_SESSION[$rspathhex.'username'] == $cfg['webinterface_user'] && $_SESSION[$rspathhex.'password'] == $cfg['webinterface_pass']) { - header("Location: //".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); + header("Location: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); exit; } -require_once('nav.php'); +require_once('_nav.php'); ?>
    diff --git a/webinterface/msg.php b/webinterface/msg.php index 418e6f6..0487991 100644 --- a/webinterface/msg.php +++ b/webinterface/msg.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/other.php b/webinterface/other.php index ed9a58f..56618b4 100644 --- a/webinterface/other.php +++ b/webinterface/other.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/rank.php b/webinterface/rank.php index 6aa5b0b..9d6667d 100644 --- a/webinterface/rank.php +++ b/webinterface/rank.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); @@ -223,18 +180,18 @@ if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) { $groupParam) { if ($groupID == $sgroup) $selected=" selected"; else $selected=""; - if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']; else $iconid="placeholder"; + if (isset($groupParam['iconid']) && $groupParam['iconid'] != 0) $iconid=$groupParam['iconid']."."; else $iconid="placeholder.png"; if ($groupParam['type'] == 0 || $groupParam['type'] == 2) $disabled=" disabled"; else $disabled=""; if ($groupParam['type'] == 0) $grouptype=" [TEMPLATE GROUP]"; else $grouptype=""; if ($groupParam['type'] == 2) $grouptype=" [QUERY GROUP]"; if ($groupID != 0) { - echo ''; + echo ''; } } ?>
    -
    +
    - +
    @@ -356,16 +313,16 @@ $(".rankuptime").TouchSpin({ verticalbuttons: true, prefix: 'Sec.:' }); -$("#addrankupgroup").click(function(){ +function addrankupgroup() { var $clone = $("div[name='rankupgroup']").last().clone(); $clone.insertBefore("#addrankupgroup"); $clone.find('.bootstrap-select').replaceWith(function() { return $('select', this); }); $clone.find('select').selectpicker('val', ''); $clone.find('.bootstrap-touchspin').replaceWith(function() { return $('input', this); });; - $clone.find('input').TouchSpin({min: 0,max: 999999999,verticalbuttons: true,prefix: 'Sec.:'}); - $clone.find('input').trigger("touchspin.uponce"); + $("input[name='rankuptime[]']").last().TouchSpin({min: 0,max: 999999999,verticalbuttons: true,prefix: 'Sec.:'}); + $("input[name='rankuptime[]']").last().trigger("touchspin.uponce"); $('.delete').removeClass("hidden"); -}); +}; $(document).on("click", ".delete", function(){ var $number = $('.delete').length; if($number == 1) { diff --git a/webinterface/ranklist.php b/webinterface/ranklist.php index 765289b..e7b89b1 100644 --- a/webinterface/ranklist.php +++ b/webinterface/ranklist.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/reset.php b/webinterface/reset.php index 15655c0..f7821b5 100644 --- a/webinterface/reset.php +++ b/webinterface/reset.php @@ -1,50 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/resetpassword.php b/webinterface/resetpassword.php index c1982a0..07bafd1 100644 --- a/webinterface/resetpassword.php +++ b/webinterface/resetpassword.php @@ -1,76 +1,11 @@ $cfg['logs_debug_level']) return; - $file = $cfg['logs_path'].'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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"); - fclose($loghandle); - if($norotate == false && filesize($file) > ($cfg['logs_rotation_size'] * 1048576)) { - $loghandle = fopen($file, 'a'); - fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_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($cfg['logs_timezone']))->format("Y-m-d H:i:s.u ")." NOTICE Rotated logfile...\n"); - fclose($loghandle); - } -} - -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; -} +require_once('_preload.php'); +require_once('_nav.php'); if ($last_access = $mysqlcon->query("SELECT * FROM `$dbname`.`cfg_params` WHERE `param` IN ('webinterface_access_last','webinterface_access_count')")->fetchAll(PDO::FETCH_KEY_PAIR) === false) { $err_msg .= print_r($mysqlcon->errorInfo(), true); } -require_once('nav.php'); -$csrf_token = bin2hex(openssl_random_pseudo_bytes(32)); - if ($mysqlcon->exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; @@ -86,7 +21,7 @@ if (($last_access['webinterface_access_last'] + 1) >= time()) { $err_msg = sprintf($lang['errlogin2'],$again); $err_lvl = 3; } elseif (isset($_POST['resetpw']) && isset($db_csrf[$_POST['csrf_token']]) && ($cfg['webinterface_admin_client_unique_id_list']==NULL || count($cfg['webinterface_admin_client_unique_id_list']) == 0)) { - $err_msg = $lang['wirtpw1']; $err_lvl=3; + $err_msg = sprintf($lang['wirtpw1'], 'https://github.com/Newcomer1989/TSN-Ranksystem/wiki/FAQ#reset-password-webinterface'); $err_lvl=3; } elseif (isset($_POST['resetpw']) && isset($db_csrf[$_POST['csrf_token']])) { $nowtime = time(); $newcount = $last_access['webinterface_access_count'] + 1; diff --git a/webinterface/stats.php b/webinterface/stats.php index 50669fc..454b34e 100644 --- a/webinterface/stats.php +++ b/webinterface/stats.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); diff --git a/webinterface/ts.php b/webinterface/ts.php index 20ac956..27f46b5 100644 --- a/webinterface/ts.php +++ b/webinterface/ts.php @@ -1,49 +1,6 @@ exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); @@ -69,9 +26,9 @@ if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { $cfg['teamspeak_query_port'] = $_POST['teamspeak_query_port']; if (isset($_POST['teamspeak_query_encrypt_switch'])) $cfg['teamspeak_query_encrypt_switch'] = 1; else $cfg['teamspeak_query_encrypt_switch'] = 0; $cfg['teamspeak_voice_port'] = $_POST['teamspeak_voice_port']; - $cfg['teamspeak_query_user'] = $_POST['teamspeak_query_user']; - $cfg['teamspeak_query_pass'] = $_POST['teamspeak_query_pass']; - $cfg['teamspeak_query_nickname'] = $_POST['teamspeak_query_nickname']; + $cfg['teamspeak_query_user'] = htmlspecialchars($_POST['teamspeak_query_user'], ENT_QUOTES); + $cfg['teamspeak_query_pass'] = htmlspecialchars($_POST['teamspeak_query_pass'], ENT_QUOTES); + $cfg['teamspeak_query_nickname'] = htmlspecialchars($_POST['teamspeak_query_nickname'], ENT_QUOTES); $cfg['teamspeak_default_channel_id'] = $_POST['teamspeak_default_channel_id']; $cfg['teamspeak_query_command_delay'] = $_POST['teamspeak_query_command_delay']; $cfg['teamspeak_avatar_download_delay']= $_POST['teamspeak_avatar_download_delay'];