From eeb9ad695fd5e0ea947cdd0936daa3cf03cfd046 Mon Sep 17 00:00:00 2001 From: Sebi94nbg Date: Sun, 9 Jul 2023 15:21:40 +0200 Subject: [PATCH 01/10] Implement PHP-CS-Fixer Github action workflow --- .github/workflows/phpcsfixer.yml | 32 + .gitignore | 2 + .php-cs-fixer.php | 167 +++ README.md | 21 + composer.json | 10 + composer.lock | 2045 ++++++++++++++++++++++++++++++ 6 files changed, 2277 insertions(+) create mode 100644 .github/workflows/phpcsfixer.yml create mode 100644 .gitignore create mode 100644 .php-cs-fixer.php create mode 100644 composer.json create mode 100644 composer.lock diff --git a/.github/workflows/phpcsfixer.yml b/.github/workflows/phpcsfixer.yml new file mode 100644 index 0000000..251dc51 --- /dev/null +++ b/.github/workflows/phpcsfixer.yml @@ -0,0 +1,32 @@ +name: "PHP-CS-Fixer" + +on: + push: + branches: + - master + pull_request: + schedule: + - cron: '0 15 * * 2' + +jobs: + code-style: + strategy: + fail-fast: false + matrix: + php_versions: [ + '8.1', # PHP 8.2 is currently not (fully) supported by PHP-CS-Fixer + ] + name: PHP ${{ matrix.php_versions }} + runs-on: ubuntu-latest + steps: + - name: checkout repository + uses: actions/checkout@v3 + + - name: install dependencies + uses: php-actions/composer@v6 + with: + dev: yes + php_version: ${{ matrix.php_versions }} + + - name: run php-cs-fixer + run: ./vendor/bin/php-cs-fixer fix --config .php-cs-fixer.php --diff --dry-run diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d0b1b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +vendor/ +.php-cs-fixer.cache diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php new file mode 100644 index 0000000..0868a80 --- /dev/null +++ b/.php-cs-fixer.php @@ -0,0 +1,167 @@ + true, + 'array_syntax' => ['syntax' => 'short'], + 'binary_operator_spaces' => [ + 'default' => 'single_space', + 'operators' => ['=>' => null], + ], + 'blank_line_after_namespace' => true, + 'blank_line_after_opening_tag' => true, + 'blank_line_before_statement' => [ + 'statements' => ['return'], + ], + 'braces' => true, + 'cast_spaces' => true, + 'class_attributes_separation' => [ + 'elements' => [ + 'const' => 'one', + 'method' => 'one', + 'property' => 'one', + 'trait_import' => 'none', + ], + ], + 'class_definition' => [ + 'multi_line_extends_each_single_line' => true, + 'single_item_single_line' => true, + 'single_line' => true, + ], + 'curly_braces_position' => [ + 'anonymous_classes_opening_brace' => 'next_line_unless_newline_at_signature_end', + ], + 'concat_space' => [ + 'spacing' => 'none', + ], + 'constant_case' => ['case' => 'lower'], + 'declare_equal_normalize' => true, + 'elseif' => true, + 'encoding' => true, + 'full_opening_tag' => true, + 'fully_qualified_strict_types' => true, // added by Shift + 'function_declaration' => true, + 'function_typehint_space' => true, + 'general_phpdoc_tag_rename' => true, + 'heredoc_to_nowdoc' => true, + 'include' => true, + 'increment_style' => ['style' => 'post'], + 'indentation_type' => true, + 'linebreak_after_opening_tag' => true, + 'line_ending' => true, + 'lowercase_cast' => true, + 'lowercase_keywords' => true, + 'lowercase_static_reference' => true, // added from Symfony + 'magic_method_casing' => true, // added from Symfony + 'magic_constant_casing' => true, + 'method_argument_space' => [ + 'on_multiline' => 'ignore', + ], + 'multiline_whitespace_before_semicolons' => [ + 'strategy' => 'no_multi_line', + ], + 'native_function_casing' => true, + 'no_alias_functions' => true, + 'no_extra_blank_lines' => [ + 'tokens' => [ + 'extra', + 'throw', + 'use', + ], + ], + 'no_blank_lines_after_class_opening' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_closing_tag' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_mixed_echo_print' => [ + 'use' => 'echo', + ], + 'no_multiline_whitespace_around_double_arrow' => true, + 'no_short_bool_cast' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_around_offset' => [ + 'positions' => ['inside', 'outside'], + ], + 'no_spaces_inside_parenthesis' => true, + 'no_trailing_comma_in_list_call' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_trailing_whitespace_in_comment' => true, + 'no_unneeded_control_parentheses' => [ + 'statements' => ['break', 'clone', 'continue', 'echo_print', 'return', 'switch_case', 'yield'], + ], + 'no_unreachable_default_argument_value' => true, + 'no_useless_return' => true, + 'no_whitespace_before_comma_in_array' => true, + 'no_whitespace_in_blank_line' => true, + 'normalize_index_brace' => true, + 'not_operator_with_successor_space' => true, + 'object_operator_without_whitespace' => true, + 'ordered_imports' => ['sort_algorithm' => 'alpha'], + 'psr_autoloading' => true, + 'phpdoc_indent' => true, + 'phpdoc_inline_tag_normalizer' => true, + 'phpdoc_no_access' => true, + 'phpdoc_no_package' => true, + 'phpdoc_no_useless_inheritdoc' => true, + 'phpdoc_scalar' => true, + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_summary' => false, + 'phpdoc_to_comment' => false, // override to preserve user preference + 'phpdoc_tag_type' => true, + 'phpdoc_trim' => true, + 'phpdoc_types' => true, + 'phpdoc_var_without_name' => true, + 'self_accessor' => true, + 'short_scalar_cast' => true, + 'simplified_null_return' => false, // disabled as "risky" + 'single_blank_line_at_eof' => true, + 'single_blank_line_before_namespace' => true, + 'single_class_element_per_statement' => [ + 'elements' => ['const', 'property'], + ], + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_line_comment_style' => [ + 'comment_types' => ['hash'], + ], + 'single_quote' => true, + 'space_after_semicolon' => true, + 'standardize_not_equals' => true, + 'switch_case_semicolon_to_colon' => true, + 'switch_case_space' => true, + 'ternary_operator_spaces' => true, + 'trailing_comma_in_multiline' => ['elements' => ['arrays']], + 'trim_array_spaces' => true, + 'unary_operator_spaces' => true, + 'visibility_required' => [ + 'elements' => ['method', 'property'], + ], + 'whitespace_after_comma_in_array' => true, +]; + + +$finder = Finder::create() + ->in([ + __DIR__ . '/api', + __DIR__ . '/jobs', + __DIR__ . '/languages', + __DIR__ . '/other', + __DIR__ . '/stats', + __DIR__ . '/webinterface', + ]) + ->name('*.php') + ->ignoreDotFiles(true) + ->ignoreVCS(true); + +return (new Config) + ->setFinder($finder) + ->setRules($rules) + ->setRiskyAllowed(true) + ->setUsingCache(true); diff --git a/README.md b/README.md index 34f49a8..966201b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,28 @@ # TSN-Ranksystem ![license: GPL v3](https://img.shields.io/badge/license-GPL%20v3-brightgreen.svg) ![forks](https://img.shields.io/github/forks/Newcomer1989/TSN-Ranksystem.svg) ![stars](https://img.shields.io/github/stars/Newcomer1989/TSN-Ranksystem.svg) [![GitHub issues](https://img.shields.io/github/issues/Newcomer1989/TSN-Ranksystem.svg)](https://github.com/Newcomer1989/TSN-Ranksystem/issues) +[![Code-Style](https://github.com/Newcomer1989/TSN-Ranksystem/actions/workflows/phpcsfixer.yml/badge.svg?branch=master)](https://github.com/Newcomer1989/TSN-Ranksystem/actions/workflows/phpcsfixer.yml?branch=master) The TSN Ranksystem is an easy to handle Level System to automatically grant ranks (servergroups) to users on a TeamSpeak Server for online time or online activity. You can create your own servergroups, with permissions, icons etc. of your choice, and define these for the Ranksystem. Its open source and so its free to use under the GNU license with version 3. #### Official website: [TS-Ranksystem.com](https://ts-ranksystem.com) + + +## Contributions / Development + +This section is only relevant, if you want to contribute to this project with code changes. + + +### Code Style + +Please ensure, that you apply the current PHP-CS-Fixer rules for a standard coding style. + +This can be easily done using composer: + +```shell +composer install +``` + +```shell +composer run code-style +``` diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..ffecd44 --- /dev/null +++ b/composer.json @@ -0,0 +1,10 @@ +{ + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.21" + }, + "scripts": { + "code-style": [ + "\"vendor/bin/php-cs-fixer\" fix --config .php-cs-fixer.php --diff" + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..8adc487 --- /dev/null +++ b/composer.lock @@ -0,0 +1,2045 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "9c0a435b6b08561c362b45df3d7d7cb1", + "packages": [], + "packages-dev": [ + { + "name": "composer/pcre", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-11-17T09:50:14+00:00" + }, + { + "name": "composer/semver", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.3.2" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-04-01T19:23:25+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "ced299686f41dce890debac69273b47ffe98a40c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-02-25T21:32:43+00:00" + }, + { + "name": "doctrine/annotations", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2 || ^3", + "ext-tokenizer": "*", + "php": "^7.2 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^2.0", + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^5.4 || ^6", + "vimeo/psalm": "^4.10" + }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/2.0.1" + }, + "time": "2023-02-02T22:02:53+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "84a527db05647743d50373e0ec53a152f2cde568" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", + "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^9.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-12-15T16:57:16+00:00" + }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v3.21.1", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", + "reference": "229b55b3eae4729a8e2a321441ba40fcb3720b86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/229b55b3eae4729a8e2a321441ba40fcb3720b86", + "reference": "229b55b3eae4729a8e2a321441ba40fcb3720b86", + "shasum": "" + }, + "require": { + "composer/semver": "^3.3", + "composer/xdebug-handler": "^3.0.3", + "doctrine/annotations": "^2", + "doctrine/lexer": "^2 || ^3", + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^8.0.1", + "sebastian/diff": "^4.0 || ^5.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/options-resolver": "^5.4 || ^6.0", + "symfony/polyfill-mbstring": "^1.27", + "symfony/polyfill-php80": "^1.27", + "symfony/polyfill-php81": "^1.27", + "symfony/process": "^5.4 || ^6.0", + "symfony/stopwatch": "^5.4 || ^6.0" + }, + "require-dev": { + "justinrainbow/json-schema": "^5.2", + "keradus/cli-executor": "^2.0", + "mikey179/vfsstream": "^1.6.11", + "php-coveralls/php-coveralls": "^2.5.3", + "php-cs-fixer/accessible-object": "^1.1", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", + "phpspec/prophecy": "^1.16", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "phpunitgoodpractices/polyfill": "^1.6", + "phpunitgoodpractices/traits": "^1.9.2", + "symfony/phpunit-bridge": "^6.2.3", + "symfony/yaml": "^5.4 || ^6.0" + }, + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters." + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "autoload": { + "psr-4": { + "PhpCsFixer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz RumiƄski", + "email": "dariusz.ruminski@gmail.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "keywords": [ + "Static code analysis", + "fixer", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.21.1" + }, + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], + "time": "2023-07-05T21:50:25+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "sebastian/diff", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-01T07:48:21+00:00" + }, + { + "name": "symfony/console", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-29T12:49:39+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", + "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-04-21T14:41:17+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-06-01T08:30:39+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2", + "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-04-02T01:25:41+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd", + "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-12T14:21:09+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628", + "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-19T08:06:44+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/service-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a way to profile code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-16T10:14:28+00:00" + }, + { + "name": "symfony/string", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-03-21T21:06:29+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" +} From 31db108baee87d7f7df032673e18af696574cefd Mon Sep 17 00:00:00 2001 From: Sebi94nbg Date: Sun, 9 Jul 2023 15:22:27 +0200 Subject: [PATCH 02/10] Apply PHP-CS-Fixer code-style to `api/` --- api/index.php | 1248 ++++++++++++++++++++++++++----------------------- 1 file changed, 660 insertions(+), 588 deletions(-) diff --git a/api/index.php b/api/index.php index 7644ae5..5996e17 100644 --- a/api/index.php +++ b/api/index.php @@ -1,588 +1,660 @@ - $desc) { - if (hash_equals($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['bot'])) { - if(!isset($_GET['check']) && !isset($_GET['restart']) && !isset($_GET['start']) && !isset($_GET['stop'])) { - $json = array( - "usage" => array( - "_desc" => array( - "0" => "You are able to use bot commands with this function (start, stop, ..).", - "1" => "Use the Parameter, which are described below!", - "2" => "", - "3" => "Return values are:", - "4" => "- 'rc'", - "5" => "- 'msg'", - "6" => "- 'ranksystemlog'", - "7" => "", - "8" => "# RC", - "9" => "The return Code of the transaction (i.e. start process):", - "10" => "0 - EXIT_SUCCESS", - "11" => "1 - EXIT_FAILURE", - "12" => "", - "13" => "# MSG", - "14" => "An additional message of the process. In case of EXIT_FAILURE, you will receive here an error message.", - "15" => "", - "16" => "# RANKSYSTEMLOG", - "17" => "A short log extract of the last rows of the Ranksystem logfile to get more information about the Bot itself.", - ), - "check" => array( - "desc" => "Check the Ranksystem Bot is running. If not, it will be started with this.", - "usage" => "Use \$_GET parameter 'check' without any value", - "example" => "/api/?bot&check" - ), - "restart" => array( - "desc" => "Restarts the Ranksystem Bot.", - "usage" => "Use \$_GET parameter 'restart' without any value", - "example" => "/api/?bot&restart" - ), - "start" => array( - "desc" => "Starts the Ranksystem Bot.", - "usage" => "Use \$_GET parameter 'start' without any value", - "example" => "/api/?bot&start" - ), - "stop" => array( - "desc" => "Stops the Ranksystem Bot", - "usage" => "Use \$_GET parameter 'stop' without any value", - "example" => "/api/?bot&stop" - ) - ) - ); - } else { - $check_permission = 0; - foreach($cfg['stats_api_keys'] as $apikey => $desc) { - if (hash_equals($apikey, $_GET['apikey']) && $desc['perm_bot'] == 1) { - $check_permission = 1; - break; - } - } - if ($check_permission == 1) { - if(isset($_GET['check'])) { - $result = bot_check(); - } elseif(isset($_GET['restart'])) { - $result = bot_restart(); - } elseif(isset($_GET['start'])) { - $result = bot_start(); - } elseif(isset($_GET['stop'])) { - $result = bot_stop(); - } - if(isset($result['log']) && $result['log'] != NULL) { - $ranksystemlog = $result['log']; - } else { - $ranksystemlog = "NULL"; - } - $json = array( - "rc" => $result['rc'], - "msg" => $result['msg'], - "ranksystemlog" => $ranksystemlog - ); - } else { - $json = array( - "Error" => array( - "invalid" => array( - "permissions" => "API Key is not permitted to start/stop the Ranksystem Bot" - ) - ) - ); - echo json_encode($json); - exit; - } - } -} elseif (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($sgid == -1 && $sgidname == '----------_none_selected_----------' && $all == '----------_none_selected_----------') { - $json = array( - "usage" => array( - "all" => array( - "desc" => "Get details about all TeamSpeak servergroups", - "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", - "example" => "/api/?groups&sgid=123" - ), - "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" => 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` ORDER BY {$sort} {$order} LIMIT :start, :limit"); - } else { - $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(':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.'.$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'] = ''; - } - } - } -} elseif (isset($_GET['rankconfig'])) { - $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`cfg_params` WHERE `param` in ('rankup_definition', 'rankup_time_assess_mode')"); - $dbdata->execute(); - $sql = $dbdata->fetchAll(PDO::FETCH_KEY_PAIR); - $json = array(); - if ($sql['rankup_time_assess_mode'] == 1) { - $modedesc = "active time"; - } else { - $modedesc = "online time"; - } - $json['rankup_time_assess_mode'] = array ( - "mode" => $sql['rankup_time_assess_mode'], - "mode_desc" => $modedesc - ); - $count = 0; - foreach (explode(',', $sql['rankup_definition']) as $entry) { - list($key, $value) = explode('=>', $entry); - $addnewvalue1[$count] = array( - "grpid" => $value, - "seconds" => $key - ); - $count++; - $json['rankup_definition'] = $addnewvalue1; - } -} elseif (isset($_GET['server'])) { - $dbdata = $mysqlcon->prepare("SELECT 0 as `row`, `$dbname`.`stats_server`.* FROM `$dbname`.`stats_server`"); - $dbdata->execute(); - $json = $dbdata->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); -} elseif (isset($_GET['user'])) { - $filter = ' WHERE'; - if(isset($_GET['cldbid'])) { - $cldbid = htmlspecialchars_decode($_GET['cldbid']); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= ' `cldbid` LIKE :cldbid'; - } - if(isset($_GET['groupid'])) { - $groupid = htmlspecialchars_decode($_GET['groupid']); - $explode_groupid = explode(',', $groupid); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= " ("; - $cnt = 0; - foreach($explode_groupid as $groupid) { - if($cnt > 0) $filter .= " OR "; - $filter .= "`cldgroup` = :groupid".$cnt; $cnt++; - $filter .= " OR `cldgroup` LIKE (:groupid".$cnt.")"; $cnt++; - $filter .= " OR `cldgroup` LIKE (:groupid".$cnt.")"; $cnt++; - $filter .= " OR `cldgroup` LIKE (:groupid".$cnt.")"; $cnt++; - } - $filter .= ")"; - } - if(isset($_GET['name'])) { - $name = htmlspecialchars_decode($_GET['name']); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= ' `name` LIKE :name'; - } - if(!isset($_GET['sort'])) $sort = '`rank`'; - if(isset($_GET['status']) && $_GET['status'] == strtolower('online')) { - if($filter != ' WHERE') $filter .= " AND"; - $filter .= " `online`=1"; - } elseif(isset($_GET['status']) && $_GET['status'] == strtolower('offline')) { - if($filter != ' WHERE') $filter .= " AND"; - $filter .= " `online`=0"; - } - if(isset($_GET['uuid'])) { - $uuid = htmlspecialchars_decode($_GET['uuid']); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= ' `uuid` LIKE :uuid'; - } - if($filter == ' WHERE') $filter = ''; - - if($filter == '' && !isset($_GET['all']) && !isset($_GET['cldbid']) && !isset($_GET['name']) && !isset($_GET['uuid'])) { - $json = array( - "usage" => array( - "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" - ), - "groupid" => array( - "desc" => "Get only user, which are in the given servergroup database ID", - "usage" => "Use \$_GET parameter 'groupid' and add as value a database ID of a servergroup. Multiple servergroups can be specified comma-separated.", - "example" => array( - "1" => array( - "desc" => "Filter by a single servergroup database ID", - "url" => "/api/?userstats&groupid=6" - ), - "2" => array( - "desc" => "Filter by multiple servergroup database IDs. Only one of the specified groups must apply to get the concerned user.", - "url" => "/api/?userstats&groupid=6,9,48" - ) - ) - ), - "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" => 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%" - ) - ) - ), - "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 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" - ) - ) - ), - "status" => array( - "desc" => "List only clients, which status is online or offline.", - "usage" => "Use \$_GET parameter 'status' and add as value 'online' or 'offline'", - "example" => "/api/?userstats&status=online" - ), - "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 * FROM `$dbname`.`user` {$filter} ORDER BY {$sort} {$order} LIMIT :start, :limit"); - if(isset($_GET['cldbid'])) $dbdata->bindValue(':cldbid', (int) $cldbid, PDO::PARAM_INT); - if(isset($_GET['groupid'])) { - $groupid = htmlspecialchars_decode($_GET['groupid']); - $explode_groupid = explode(',', $groupid); - $cnt = 0; - foreach($explode_groupid as $groupid) { - $dbdata->bindValue(':groupid'.$cnt, $groupid, PDO::PARAM_STR); $cnt++; - $dbdata->bindValue(':groupid'.$cnt, $groupid.',%', PDO::PARAM_STR); $cnt++; - $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid.',%', PDO::PARAM_STR); $cnt++; - $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid, PDO::PARAM_STR); $cnt++; - } - } - if(isset($_GET['name'])) $dbdata->bindValue(':name', '%'.$name.'%', PDO::PARAM_STR); - if(isset($_GET['uuid'])) $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); - } -} elseif (isset($_GET['userstats'])) { - $filter = ' WHERE'; - if(isset($_GET['cldbid'])) { - $cldbid = htmlspecialchars_decode($_GET['cldbid']); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= ' `cldbid` LIKE :cldbid'; - } - if(isset($_GET['groupid'])) { - $groupid = htmlspecialchars_decode($_GET['groupid']); - $explode_groupid = explode(',', $groupid); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= " ("; - $cnt = 0; - foreach($explode_groupid as $groupid) { - if($cnt > 0) $filter .= " OR "; - $filter .= "`user`.`cldgroup` = :groupid".$cnt; $cnt++; - $filter .= " OR `user`.`cldgroup` LIKE (:groupid".$cnt.")"; $cnt++; - $filter .= " OR `user`.`cldgroup` LIKE (:groupid".$cnt.")"; $cnt++; - $filter .= " OR `user`.`cldgroup` LIKE (:groupid".$cnt.")"; $cnt++; - } - $filter .= ")"; - } - if(isset($_GET['name'])) { - $name = htmlspecialchars_decode($_GET['name']); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= ' `user`.`name` LIKE :name'; - } - if(!isset($_GET['sort'])) $sort = '`count_week`'; - if(isset($_GET['status']) && $_GET['status'] == strtolower('online')) { - if($filter != ' WHERE') $filter .= " AND"; - $filter .= " `user`.`online`=1"; - } elseif(isset($_GET['status']) && $_GET['status'] == strtolower('offline')) { - if($filter != ' WHERE') $filter .= " AND"; - $filter .= " `user`.`online`=0"; - } - if(isset($_GET['uuid'])) { - $uuid = htmlspecialchars_decode($_GET['uuid']); - if($filter != ' WHERE') $filter .= " AND"; - $filter .= ' `user`.`uuid` LIKE :uuid'; - } - if($filter == ' WHERE') $filter = ''; - - if($filter == '' && !isset($_GET['all']) && !isset($_GET['cldbid']) && !isset($_GET['name']) && !isset($_GET['uuid'])) { - $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" - ), - "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/?userstats&cldbid=7775" - ), - "groupid" => array( - "desc" => "Get only user, which are in the given servergroup database ID", - "usage" => "Use \$_GET parameter 'groupid' and add as value a database ID of a servergroup. Multiple servergroups can be specified comma-separated.", - "example" => array( - "1" => array( - "desc" => "Filter by a single servergroup database ID", - "url" => "/api/?userstats&groupid=6" - ), - "2" => array( - "desc" => "Filter by multiple servergroup database IDs. Only one of the specified groups must apply to get the concerned user.", - "url" => "/api/?userstats&groupid=6,9,48" - ) - ) - ), - "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" - ), - "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" => array( - "1" => array( - "desc" => "Filter by client nickname", - "url" => "/api/?userstats&name=Newcomer1989" - ), - "2" => array( - "desc" => "Filter by client nickname with a percent sign as placeholder", - "url" => "/api/?userstats&name=%user%" - ) - ) - ), - "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" - ) - ) - ), - "status" => array( - "desc" => "List only clients, which status is online or offline.", - "usage" => "Use \$_GET parameter 'status' and add as value 'online' or 'offline'", - "example" => "/api/?userstats&status=online" - ), - "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 { - $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`stats_user` INNER JOIN `$dbname`.`user` ON `user`.`uuid` = `stats_user`.`uuid` {$filter} ORDER BY {$sort} {$order} LIMIT :start, :limit"); - if(isset($_GET['cldbid'])) $dbdata->bindValue(':cldbid', (int) $cldbid, PDO::PARAM_INT); - if(isset($_GET['groupid'])) { - $groupid = htmlspecialchars_decode($_GET['groupid']); - $explode_groupid = explode(',', $groupid); - $cnt = 0; - foreach($explode_groupid as $groupid) { - $dbdata->bindValue(':groupid'.$cnt, $groupid, PDO::PARAM_STR); $cnt++; - $dbdata->bindValue(':groupid'.$cnt, $groupid.',%', PDO::PARAM_STR); $cnt++; - $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid.',%', PDO::PARAM_STR); $cnt++; - $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid, PDO::PARAM_STR); $cnt++; - } - } - if(isset($_GET['name'])) $dbdata->bindValue(':name', '%'.$name.'%', PDO::PARAM_STR); - if(isset($_GET['uuid'])) $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( - "bot" => array( - "desc" => "Use this to trigger Bot commands as starting or stopping the Ranksystem Bot.", - "usage" => "Use \$_GET parameter 'bot'", - "example" => "/api/?bot" - ), - "groups" => array( - "desc" => "Get details about the TeamSpeak servergroups", - "usage" => "Use \$_GET parameter 'groups'", - "example" => "/api/?groups" - ), - "rankconfig" => array( - "desc" => "Get the rankup definition, which contains the assignment of (needed) time to servergroup", - "usage" => "Use \$_GET parameter 'rankconfig'", - "example" => "/api/?rankconfig" - ), - "server" => array( - "desc" => "Get details about the TeamSpeak server", - "usage" => "Use \$_GET parameter 'server'", - "example" => "/api/?server" - ), - "user" => array( - "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" - ) - ) - ); -} - -echo json_encode($json); -?> \ No newline at end of file + $desc) { + if (hash_equals($apikey, $_GET['apikey'])) { + $matchkey = 1; + } + } + if ($matchkey == 0) { + $json = [ + 'Error' => [ + 'invalid' => [ + 'apikey' => 'API Key is invalid', + ], + ], + ]; + echo json_encode($json); + exit; + } +} else { + $json = [ + 'Error' => [ + 'required' => [ + 'apikey' => [ + '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['bot'])) { + if (! isset($_GET['check']) && ! isset($_GET['restart']) && ! isset($_GET['start']) && ! isset($_GET['stop'])) { + $json = [ + 'usage' => [ + '_desc' => [ + '0' => 'You are able to use bot commands with this function (start, stop, ..).', + '1' => 'Use the Parameter, which are described below!', + '2' => '', + '3' => 'Return values are:', + '4' => "- 'rc'", + '5' => "- 'msg'", + '6' => "- 'ranksystemlog'", + '7' => '', + '8' => '# RC', + '9' => 'The return Code of the transaction (i.e. start process):', + '10' => '0 - EXIT_SUCCESS', + '11' => '1 - EXIT_FAILURE', + '12' => '', + '13' => '# MSG', + '14' => 'An additional message of the process. In case of EXIT_FAILURE, you will receive here an error message.', + '15' => '', + '16' => '# RANKSYSTEMLOG', + '17' => 'A short log extract of the last rows of the Ranksystem logfile to get more information about the Bot itself.', + ], + 'check' => [ + 'desc' => 'Check the Ranksystem Bot is running. If not, it will be started with this.', + 'usage' => "Use \$_GET parameter 'check' without any value", + 'example' => '/api/?bot&check', + ], + 'restart' => [ + 'desc' => 'Restarts the Ranksystem Bot.', + 'usage' => "Use \$_GET parameter 'restart' without any value", + 'example' => '/api/?bot&restart', + ], + 'start' => [ + 'desc' => 'Starts the Ranksystem Bot.', + 'usage' => "Use \$_GET parameter 'start' without any value", + 'example' => '/api/?bot&start', + ], + 'stop' => [ + 'desc' => 'Stops the Ranksystem Bot', + 'usage' => "Use \$_GET parameter 'stop' without any value", + 'example' => '/api/?bot&stop', + ], + ], + ]; + } else { + $check_permission = 0; + foreach ($cfg['stats_api_keys'] as $apikey => $desc) { + if (hash_equals($apikey, $_GET['apikey']) && $desc['perm_bot'] == 1) { + $check_permission = 1; + break; + } + } + if ($check_permission == 1) { + if (isset($_GET['check'])) { + $result = bot_check(); + } elseif (isset($_GET['restart'])) { + $result = bot_restart(); + } elseif (isset($_GET['start'])) { + $result = bot_start(); + } elseif (isset($_GET['stop'])) { + $result = bot_stop(); + } + if (isset($result['log']) && $result['log'] != null) { + $ranksystemlog = $result['log']; + } else { + $ranksystemlog = 'NULL'; + } + $json = [ + 'rc' => $result['rc'], + 'msg' => $result['msg'], + 'ranksystemlog' => $ranksystemlog, + ]; + } else { + $json = [ + 'Error' => [ + 'invalid' => [ + 'permissions' => 'API Key is not permitted to start/stop the Ranksystem Bot', + ], + ], + ]; + echo json_encode($json); + exit; + } + } +} elseif (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 ($sgid == -1 && $sgidname == '----------_none_selected_----------' && $all == '----------_none_selected_----------') { + $json = [ + 'usage' => [ + 'all' => [ + 'desc' => 'Get details about all TeamSpeak servergroups', + 'usage' => "Use \$_GET parameter 'all' without any value", + 'example' => '/api/?groups&all', + ], + 'limit' => [ + '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' => [ + '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' => [ + '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", + 'example' => '/api/?groups&sgid=123', + ], + 'sgidname' => [ + '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' => [ + '1' => [ + 'desc' => 'Filter by servergroup name', + 'url' => '/api/?groups&sgidname=Level01', + ], + '2' => [ + 'desc' => 'Filter by servergroup name with a percent sign as placeholder', + 'url' => '/api/?groups&sgidname=Level%', + ], + ], + ], + 'sort' => [ + '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' => [ + '1' => [ + 'desc' => 'Sort by servergroup name', + 'url' => '/api/?groups&all&sort=sgidname', + ], + '2' => [ + 'desc' => 'Sort by TeamSpeak sort-ID', + 'url' => '/api/?groups&all&sort=sortid', + ], + ], + ], + ], + ]; + } else { + if ($all == 1) { + $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) ORDER BY {$sort} {$order} LIMIT :start, :limit"); + $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.'.$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'] = ''; + } + } + } +} elseif (isset($_GET['rankconfig'])) { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`cfg_params` WHERE `param` in ('rankup_definition', 'rankup_time_assess_mode')"); + $dbdata->execute(); + $sql = $dbdata->fetchAll(PDO::FETCH_KEY_PAIR); + $json = []; + if ($sql['rankup_time_assess_mode'] == 1) { + $modedesc = 'active time'; + } else { + $modedesc = 'online time'; + } + $json['rankup_time_assess_mode'] = [ + 'mode' => $sql['rankup_time_assess_mode'], + 'mode_desc' => $modedesc, + ]; + $count = 0; + foreach (explode(',', $sql['rankup_definition']) as $entry) { + list($key, $value) = explode('=>', $entry); + $addnewvalue1[$count] = [ + 'grpid' => $value, + 'seconds' => $key, + ]; + $count++; + $json['rankup_definition'] = $addnewvalue1; + } +} elseif (isset($_GET['server'])) { + $dbdata = $mysqlcon->prepare("SELECT 0 as `row`, `$dbname`.`stats_server`.* FROM `$dbname`.`stats_server`"); + $dbdata->execute(); + $json = $dbdata->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE); +} elseif (isset($_GET['user'])) { + $filter = ' WHERE'; + if (isset($_GET['cldbid'])) { + $cldbid = htmlspecialchars_decode($_GET['cldbid']); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `cldbid` LIKE :cldbid'; + } + if (isset($_GET['groupid'])) { + $groupid = htmlspecialchars_decode($_GET['groupid']); + $explode_groupid = explode(',', $groupid); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' ('; + $cnt = 0; + foreach ($explode_groupid as $groupid) { + if ($cnt > 0) { + $filter .= ' OR '; + } + $filter .= '`cldgroup` = :groupid'.$cnt; + $cnt++; + $filter .= ' OR `cldgroup` LIKE (:groupid'.$cnt.')'; + $cnt++; + $filter .= ' OR `cldgroup` LIKE (:groupid'.$cnt.')'; + $cnt++; + $filter .= ' OR `cldgroup` LIKE (:groupid'.$cnt.')'; + $cnt++; + } + $filter .= ')'; + } + if (isset($_GET['name'])) { + $name = htmlspecialchars_decode($_GET['name']); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `name` LIKE :name'; + } + if (! isset($_GET['sort'])) { + $sort = '`rank`'; + } + if (isset($_GET['status']) && $_GET['status'] == strtolower('online')) { + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `online`=1'; + } elseif (isset($_GET['status']) && $_GET['status'] == strtolower('offline')) { + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `online`=0'; + } + if (isset($_GET['uuid'])) { + $uuid = htmlspecialchars_decode($_GET['uuid']); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `uuid` LIKE :uuid'; + } + if ($filter == ' WHERE') { + $filter = ''; + } + + if ($filter == '' && ! isset($_GET['all']) && ! isset($_GET['cldbid']) && ! isset($_GET['name']) && ! isset($_GET['uuid'])) { + $json = [ + 'usage' => [ + 'all' => [ + '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' => [ + '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', + ], + 'groupid' => [ + 'desc' => 'Get only user, which are in the given servergroup database ID', + 'usage' => "Use \$_GET parameter 'groupid' and add as value a database ID of a servergroup. Multiple servergroups can be specified comma-separated.", + 'example' => [ + '1' => [ + 'desc' => 'Filter by a single servergroup database ID', + 'url' => '/api/?userstats&groupid=6', + ], + '2' => [ + 'desc' => 'Filter by multiple servergroup database IDs. Only one of the specified groups must apply to get the concerned user.', + 'url' => '/api/?userstats&groupid=6,9,48', + ], + ], + ], + 'limit' => [ + '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' => [ + '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' => [ + '1' => [ + 'desc' => 'Filter by client nickname', + 'url' => '/api/?user&name=Newcomer1989', + ], + '2' => [ + 'desc' => 'Filter by client nickname with a percent sign as placeholder', + 'url' => '/api/?user&name=%user%', + ], + ], + ], + 'order' => [ + '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' => [ + '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' => [ + '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' => [ + '1' => [ + 'desc' => 'Sort by online time', + 'url' => '/api/?user&all&sort=count', + ], + '2' => [ + 'desc' => 'Sort by active time', + 'url' => '/api/?user&all&sort=(count-idle)', + ], + '3' => [ + 'desc' => 'Sort by rank', + 'url' => '/api/?user&all&sort=rank', + ], + ], + ], + 'status' => [ + 'desc' => 'List only clients, which status is online or offline.', + 'usage' => "Use \$_GET parameter 'status' and add as value 'online' or 'offline'", + 'example' => '/api/?userstats&status=online', + ], + 'uuid' => [ + '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 * FROM `$dbname`.`user` {$filter} ORDER BY {$sort} {$order} LIMIT :start, :limit"); + if (isset($_GET['cldbid'])) { + $dbdata->bindValue(':cldbid', (int) $cldbid, PDO::PARAM_INT); + } + if (isset($_GET['groupid'])) { + $groupid = htmlspecialchars_decode($_GET['groupid']); + $explode_groupid = explode(',', $groupid); + $cnt = 0; + foreach ($explode_groupid as $groupid) { + $dbdata->bindValue(':groupid'.$cnt, $groupid, PDO::PARAM_STR); + $cnt++; + $dbdata->bindValue(':groupid'.$cnt, $groupid.',%', PDO::PARAM_STR); + $cnt++; + $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid.',%', PDO::PARAM_STR); + $cnt++; + $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid, PDO::PARAM_STR); + $cnt++; + } + } + if (isset($_GET['name'])) { + $dbdata->bindValue(':name', '%'.$name.'%', PDO::PARAM_STR); + } + if (isset($_GET['uuid'])) { + $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); + } +} elseif (isset($_GET['userstats'])) { + $filter = ' WHERE'; + if (isset($_GET['cldbid'])) { + $cldbid = htmlspecialchars_decode($_GET['cldbid']); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `cldbid` LIKE :cldbid'; + } + if (isset($_GET['groupid'])) { + $groupid = htmlspecialchars_decode($_GET['groupid']); + $explode_groupid = explode(',', $groupid); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' ('; + $cnt = 0; + foreach ($explode_groupid as $groupid) { + if ($cnt > 0) { + $filter .= ' OR '; + } + $filter .= '`user`.`cldgroup` = :groupid'.$cnt; + $cnt++; + $filter .= ' OR `user`.`cldgroup` LIKE (:groupid'.$cnt.')'; + $cnt++; + $filter .= ' OR `user`.`cldgroup` LIKE (:groupid'.$cnt.')'; + $cnt++; + $filter .= ' OR `user`.`cldgroup` LIKE (:groupid'.$cnt.')'; + $cnt++; + } + $filter .= ')'; + } + if (isset($_GET['name'])) { + $name = htmlspecialchars_decode($_GET['name']); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `user`.`name` LIKE :name'; + } + if (! isset($_GET['sort'])) { + $sort = '`count_week`'; + } + if (isset($_GET['status']) && $_GET['status'] == strtolower('online')) { + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `user`.`online`=1'; + } elseif (isset($_GET['status']) && $_GET['status'] == strtolower('offline')) { + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `user`.`online`=0'; + } + if (isset($_GET['uuid'])) { + $uuid = htmlspecialchars_decode($_GET['uuid']); + if ($filter != ' WHERE') { + $filter .= ' AND'; + } + $filter .= ' `user`.`uuid` LIKE :uuid'; + } + if ($filter == ' WHERE') { + $filter = ''; + } + + if ($filter == '' && ! isset($_GET['all']) && ! isset($_GET['cldbid']) && ! isset($_GET['name']) && ! isset($_GET['uuid'])) { + $json = [ + 'usage' => [ + 'all' => [ + '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', + ], + 'cldbid' => [ + '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/?userstats&cldbid=7775', + ], + 'groupid' => [ + 'desc' => 'Get only user, which are in the given servergroup database ID', + 'usage' => "Use \$_GET parameter 'groupid' and add as value a database ID of a servergroup. Multiple servergroups can be specified comma-separated.", + 'example' => [ + '1' => [ + 'desc' => 'Filter by a single servergroup database ID', + 'url' => '/api/?userstats&groupid=6', + ], + '2' => [ + 'desc' => 'Filter by multiple servergroup database IDs. Only one of the specified groups must apply to get the concerned user.', + 'url' => '/api/?userstats&groupid=6,9,48', + ], + ], + ], + 'limit' => [ + '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', + ], + 'name' => [ + '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' => [ + '1' => [ + 'desc' => 'Filter by client nickname', + 'url' => '/api/?userstats&name=Newcomer1989', + ], + '2' => [ + 'desc' => 'Filter by client nickname with a percent sign as placeholder', + 'url' => '/api/?userstats&name=%user%', + ], + ], + ], + 'order' => [ + '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' => [ + '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' => [ + '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' => [ + '1' => [ + 'desc' => 'Sort by online time of the week', + 'url' => '/api/?userstats&all&sort=count_week', + ], + '2' => [ + 'desc' => 'Sort by active time of the week', + 'url' => '/api/?userstats&all&sort=(count_week-idle_week)', + ], + '3' => [ + 'desc' => 'Sort by online time of the month', + 'url' => '/api/?userstats&all&sort=count_month', + ], + ], + ], + 'status' => [ + 'desc' => 'List only clients, which status is online or offline.', + 'usage' => "Use \$_GET parameter 'status' and add as value 'online' or 'offline'", + 'example' => '/api/?userstats&status=online', + ], + 'uuid' => [ + '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 { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`stats_user` INNER JOIN `$dbname`.`user` ON `user`.`uuid` = `stats_user`.`uuid` {$filter} ORDER BY {$sort} {$order} LIMIT :start, :limit"); + if (isset($_GET['cldbid'])) { + $dbdata->bindValue(':cldbid', (int) $cldbid, PDO::PARAM_INT); + } + if (isset($_GET['groupid'])) { + $groupid = htmlspecialchars_decode($_GET['groupid']); + $explode_groupid = explode(',', $groupid); + $cnt = 0; + foreach ($explode_groupid as $groupid) { + $dbdata->bindValue(':groupid'.$cnt, $groupid, PDO::PARAM_STR); + $cnt++; + $dbdata->bindValue(':groupid'.$cnt, $groupid.',%', PDO::PARAM_STR); + $cnt++; + $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid.',%', PDO::PARAM_STR); + $cnt++; + $dbdata->bindValue(':groupid'.$cnt, '%,'.$groupid, PDO::PARAM_STR); + $cnt++; + } + } + if (isset($_GET['name'])) { + $dbdata->bindValue(':name', '%'.$name.'%', PDO::PARAM_STR); + } + if (isset($_GET['uuid'])) { + $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 = [ + 'usage' => [ + 'bot' => [ + 'desc' => 'Use this to trigger Bot commands as starting or stopping the Ranksystem Bot.', + 'usage' => "Use \$_GET parameter 'bot'", + 'example' => '/api/?bot', + ], + 'groups' => [ + 'desc' => 'Get details about the TeamSpeak servergroups', + 'usage' => "Use \$_GET parameter 'groups'", + 'example' => '/api/?groups', + ], + 'rankconfig' => [ + 'desc' => 'Get the rankup definition, which contains the assignment of (needed) time to servergroup', + 'usage' => "Use \$_GET parameter 'rankconfig'", + 'example' => '/api/?rankconfig', + ], + 'server' => [ + 'desc' => 'Get details about the TeamSpeak server', + 'usage' => "Use \$_GET parameter 'server'", + 'example' => '/api/?server', + ], + 'user' => [ + 'desc' => 'Get details about the TeamSpeak user', + 'usage' => "Use \$_GET parameter 'user'", + 'example' => '/api/?user', + ], + 'userstats' => [ + 'desc' => 'Get additional statistics about the TeamSpeak user', + 'usage' => "Use \$_GET parameter 'userstats'", + 'example' => '/api/?userstats', + ], + ], + ]; +} + +echo json_encode($json); From 6ad705955204e4f0bb408118b53a1a04af4602ab Mon Sep 17 00:00:00 2001 From: Sebi94nbg Date: Sun, 9 Jul 2023 15:23:15 +0200 Subject: [PATCH 03/10] Apply PHP-CS-Fixer code-style to `jobs/` --- jobs/addon_assign_groups.php | 91 +-- jobs/addon_channelinfo_toplist.php | 297 ++++---- jobs/bot.php | 1109 ++++++++++++++-------------- jobs/calc_serverstats.php | 1006 ++++++++++++------------- jobs/calc_user.php | 705 +++++++++--------- jobs/calc_user_snapshot.php | 65 +- jobs/calc_userstats.php | 359 +++++---- jobs/check_db.php | 1108 ++++++++++++++------------- jobs/clean.php | 242 +++--- jobs/db_ex_imp.php | 314 ++++---- jobs/event_userenter.php | 130 ++-- jobs/get_avatars.php | 131 ++-- jobs/handle_messages.php | 490 ++++++------ jobs/reset_rs.php | 584 ++++++++------- jobs/server_usage.php | 139 ++-- jobs/update_channel.php | 146 ++-- jobs/update_groups.php | 474 ++++++------ jobs/update_rs.php | 356 ++++----- 18 files changed, 3978 insertions(+), 3768 deletions(-) diff --git a/jobs/addon_assign_groups.php b/jobs/addon_assign_groups.php index 9ca6db4..0c23ee0 100644 --- a/jobs/addon_assign_groups.php +++ b/jobs/addon_assign_groups.php @@ -1,45 +1,46 @@ - $value) { - $cld_groups = explode(',', $value['grpids']); - foreach($cld_groups as $group) { - foreach ($allclients as $client) { - if($client['client_unique_identifier'] == $uuid) { - $cldbid = $client['client_database_id']; - $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); - $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); - break; - } - } - if(isset($cldbid)) { - if(strstr($group, '-')) { - $group = str_replace('-','',$group); - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupClientDel($group, $cldbid); - enter_logfile(6,"Removed servergroup $group from user $nickname (UID: $uid), requested by Add-on 'Assign Servergroups'"); - } - catch (Exception $e) { - enter_logfile(2,"addon_assign_groups:".$e->getCode().': '."Error while removing group: ".$e->getMessage()); - } - } else { - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupClientAdd($group, $cldbid); - enter_logfile(6,"Added servergroup $group from user $nickname (UID: $uid), requested by Add-on 'Assign Servergroups'"); - } catch (Exception $e) { - enter_logfile(2,"addon_assign_groups:".$e->getCode().': '."Error while adding group: ".$e->getMessage()); - } - } - } - } - } - $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups`;\n"; - unset($db_cache['addon_assign_groups']); - } - return $sqlexec; -} -?> \ No newline at end of file + $value) { + $cld_groups = explode(',', $value['grpids']); + foreach ($cld_groups as $group) { + foreach ($allclients as $client) { + if ($client['client_unique_identifier'] == $uuid) { + $cldbid = $client['client_database_id']; + $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); + $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); + break; + } + } + if (isset($cldbid)) { + if (strstr($group, '-')) { + $group = str_replace('-', '', $group); + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupClientDel($group, $cldbid); + enter_logfile(6, "Removed servergroup $group from user $nickname (UID: $uid), requested by Add-on 'Assign Servergroups'"); + } catch (Exception $e) { + enter_logfile(2, 'addon_assign_groups:'.$e->getCode().': '.'Error while removing group: '.$e->getMessage()); + } + } else { + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupClientAdd($group, $cldbid); + enter_logfile(6, "Added servergroup $group from user $nickname (UID: $uid), requested by Add-on 'Assign Servergroups'"); + } catch (Exception $e) { + enter_logfile(2, 'addon_assign_groups:'.$e->getCode().': '.'Error while adding group: '.$e->getMessage()); + } + } + } + } + } + $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups`;\n"; + unset($db_cache['addon_assign_groups']); + } + + return $sqlexec; +} diff --git a/jobs/addon_channelinfo_toplist.php b/jobs/addon_channelinfo_toplist.php index 6ad5e4d..dfa0947 100644 --- a/jobs/addon_channelinfo_toplist.php +++ b/jobs/addon_channelinfo_toplist.php @@ -1,145 +1,152 @@ -setTemplateDir($GLOBALS['logpath'].'smarty/templates'); - $smarty->setCompileDir($GLOBALS['logpath'].'smarty/templates_c'); - $smarty->setCacheDir($GLOBALS['logpath'].'smarty/cache'); - $smarty->setConfigDir($GLOBALS['logpath'].'smarty/configs'); - - if(isset($addons_config['channelinfo_toplist_active']['value']) && $addons_config['channelinfo_toplist_active']['value'] == '1') { - if($addons_config['channelinfo_toplist_lastupdate']['value'] < ($nowtime - $addons_config['channelinfo_toplist_delay']['value'])) { - - switch($addons_config['channelinfo_toplist_modus']['value']) { - case 1: $filter = "ORDER BY (`count_week`-`idle_week`)"; break; - case 2: $filter = "ORDER BY `count_week`"; break; - case 3: $filter = "ORDER BY (`count_month`-`idle_month`)"; break; - case 4: $filter = "ORDER BY `count_month`"; break; - case 5: $filter = "ORDER BY (`count`-`idle`)"; break; - case 6: $filter = "ORDER BY `count`"; break; - default: $filter = "ORDER BY (`count_week`-`idle_week`)"; - } - - $notinuuid = ''; - if($cfg['rankup_excepted_unique_client_id_list'] != NULL) { - foreach($cfg['rankup_excepted_unique_client_id_list'] as $uuid => $value) { - $notinuuid .= "'".$uuid."',"; - } - $notinuuid = substr($notinuuid, 0, -1); - } else { - $notinuuid = "'0'"; - } - - $notingroup = ''; - $andnotgroup = ''; - if($cfg['rankup_excepted_group_id_list'] != NULL) { - foreach($cfg['rankup_excepted_group_id_list'] as $group => $value) { - $notingroup .= "'".$group."',"; - $andnotgroup .= " AND `user`.`cldgroup` NOT LIKE ('".$group.",%') AND `user`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `user`.`cldgroup` NOT LIKE ('%,".$group."')"; - } - $notingroup = substr($notingroup, 0, -1); - } else { - $notingroup = '0'; - } - - $filter = " AND `user`.`uuid` NOT IN ($notinuuid) AND `user`.`cldgroup` NOT IN ($notingroup) $andnotgroup ".$filter; - #enter_logfile(2,'SQL: '."SELECT * FROM `$dbname`.`stats_user` INNER JOIN `$dbname`.`user` ON `user`.`uuid` = `stats_user`.`uuid` WHERE `removed`='0' {$filter} DESC LIMIT 10"); - - if(($userdata = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_user` INNER JOIN `$dbname`.`user` ON `user`.`uuid` = `stats_user`.`uuid` WHERE `removed`='0' {$filter} DESC LIMIT 10")->fetchAll(PDO::FETCH_ASSOC)) === false) { - enter_logfile(2,'addon_channelinfo1: '.print_r($mysqlcon->errorInfo(), true)); - } - - $smarty->assign('LAST_UPDATE_TIME',(DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s"))); - - for ($nr = 0; $nr < 10; $nr++) { - $smarty->assign('CLIENT_UNIQUE_IDENTIFIER_'.($nr + 1),$userdata[$nr]['uuid']); - $smarty->assign('CLIENT_DATABASE_ID_'.($nr + 1),$userdata[$nr]['cldbid']); - $smarty->assign('CLIENT_NICKNAME_'.($nr + 1),$userdata[$nr]['name']); - - if($userdata[$nr]['firstcon'] == 0) { - $smarty->assign('CLIENT_CREATED_'.($nr + 1),$lang['unknown']); - } else { - $smarty->assign('CLIENT_CREATED_'.($nr + 1),date('Y-m-d H:i:s',$userdata[$nr]['firstcon'])); - } - $smarty->assign('CLIENT_LAST_SEEN_'.($nr + 1),date('Y-m-d H:i:s',$userdata[$nr]['lastseen'])); - $smarty->assign('CLIENT_TOTAL_CONNECTIONS_'.($nr + 1),$userdata[$nr]['total_connections']); - $smarty->assign('CLIENT_DESCRIPTION_'.($nr + 1),$userdata[$nr]['client_description']); - $smarty->assign('CLIENT_CURRENT_CHANNEL_ID_'.($nr + 1),$userdata[$nr]['cid']); - if(isset($db_cache['channel'][$userdata[$nr]['cid']]['channel_name'])) { - $smarty->assign('CLIENT_CURRENT_CHANNEL_NAME_'.($nr + 1),substr($db_cache['channel'][$userdata[$nr]['cid']]['channel_name'],1,-1)); - } else { - $smarty->assign('CLIENT_CURRENT_CHANNEL_NAME_'.($nr + 1),$lang['unknown']); - } - $smarty->assign('CLIENT_VERSION_'.($nr + 1),$userdata[$nr]['version']); - $smarty->assign('CLIENT_PLATFORM_'.($nr + 1),$userdata[$nr]['platform']); - $smarty->assign('CLIENT_COUNTRY_'.($nr + 1),$userdata[$nr]['nation']); - - if($userdata[$nr]['grpsince'] == 0) { - $smarty->assign('CLIENT_LAST_RANKUP_TIME_'.($nr + 1),$lang['unknown']); - } else { - $smarty->assign('CLIENT_LAST_RANKUP_TIME_'.($nr + 1),date('Y-m-d H:i:s',$userdata[$nr]['grpsince'])); - } - $smarty->assign('CLIENT_RANK_POSITION_'.($nr + 1),$userdata[$nr]['rank']); - if($userdata[$nr]['online'] == 1) { - $smarty->assign('CLIENT_ONLINE_STATUS_'.($nr + 1),$lang['stix0024']); - } else { - $smarty->assign('CLIENT_ONLINE_STATUS_'.($nr + 1),$lang['stix0025']); - } - - $smarty->assign('CLIENT_NEXT_RANKUP_TIME_'.($nr + 1),$userdata[$nr]['nextup']); - - $smarty->assign('CLIENT_CURRENT_RANK_GROUP_ID_'.($nr + 1),$userdata[$nr]['grpid']); - if(isset($db_cache['groups'][$userdata[$nr]['grpid']]['sgidname']) && $userdata[$nr]['grpid'] != 0) { - $smarty->assign('CLIENT_CURRENT_RANK_GROUP_NAME_'.($nr + 1),substr($db_cache['groups'][$userdata[$nr]['grpid']]['sgidname'],1,-1)); - } else { - $smarty->assign('CLIENT_CURRENT_RANK_GROUP_NAME_'.($nr + 1),'unknown_group'); - } - if(isset($db_cache['groups'][$userdata[$nr]['grpid']]['iconid']) && isset($db_cache['groups'][$userdata[$nr]['grpid']]['ext']) && $userdata[$nr]['grpid'] != 0) { - $smarty->assign('CLIENT_CURRENT_RANK_GROUP_ICON_URL_'.($nr + 1),'tsicons/'.$db_cache['groups'][$userdata[$nr]['grpid']]['iconid'].'.'.$db_cache['groups'][$userdata[$nr]['grpid']]['ext']); - } else { - $smarty->assign('CLIENT_CURRENT_RANK_GROUP_ICON_URL_'.($nr + 1),'file_not_found'); - } - $active_all = round($userdata[$nr]['count']) - round($userdata[$nr]['idle']); - $smarty->assign('CLIENT_ACTIVE_TIME_ALL_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".$active_all))->format($cfg['default_date_format']))); - $smarty->assign('CLIENT_ONLINE_TIME_ALL_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".round($userdata[$nr]['count'])))->format($cfg['default_date_format']))); - $smarty->assign('CLIENT_IDLE_TIME_ALL_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".round($userdata[$nr]['idle'])))->format($cfg['default_date_format']))); - $active_week = round($userdata[$nr]['count_week']) - round($userdata[$nr]['idle_week']); - $smarty->assign('CLIENT_ACTIVE_TIME_LAST_WEEK_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".$active_week))->format($cfg['default_date_format']))); - $smarty->assign('CLIENT_ONLINE_TIME_LAST_WEEK_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".round($userdata[$nr]['count_week'])))->format($cfg['default_date_format']))); - $smarty->assign('CLIENT_IDLE_TIME_LAST_WEEK_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".round($userdata[$nr]['idle_week'])))->format($cfg['default_date_format']))); - $active_month = round($userdata[$nr]['count_month']) - round($userdata[$nr]['idle_month']); - $smarty->assign('CLIENT_ACTIVE_TIME_LAST_MONTH_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".$active_month))->format($cfg['default_date_format']))); - $smarty->assign('CLIENT_ONLINE_TIME_LAST_MONTH_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".round($userdata[$nr]['count_month'])))->format($cfg['default_date_format']))); - $smarty->assign('CLIENT_IDLE_TIME_LAST_MONTH_'.($nr + 1),((new DateTime("@0"))->diff(new DateTime("@".round($userdata[$nr]['idle_month'])))->format($cfg['default_date_format']))); - } - - try { - $toplist_desc = $smarty->fetch('string:'.$addons_config['channelinfo_toplist_desc']['value']); - if ($addons_config['channelinfo_toplist_lastdesc']['value'] != $toplist_desc) { - try { - $ts3->channelGetById($addons_config['channelinfo_toplist_channelid']['value'])->modify(array('cid='.$addons_config['channelinfo_toplist_channelid']['value'], 'channel_description='.$toplist_desc)); - $addons_config['channelinfo_toplist_lastdesc']['value'] = $toplist_desc; - $addons_config['channelinfo_toplist_lastupdate']['value'] = $nowtime; - $toplist_desc = $mysqlcon->quote($toplist_desc, ENT_QUOTES); - $sqlexec .= "INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_lastdesc',{$toplist_desc}),('channelinfo_toplist_lastupdate','{$nowtime}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);\n"; - enter_logfile(5,' Addon: \'channelinfo_toplist\' writing new channelinfo toplist to channel description.'); - } catch (Exception $e) { - enter_logfile(2,'addon_channelinfo2: ['.$e->getCode().']: '.$e->getMessage()); - } - } - } catch (Exception $e) { - $errmsg = str_replace('"', '\'', $e->getMessage()); - $addons_config['channelinfo_toplist_lastupdate']['value'] = $nowtime; - $sqlexec .= "INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_lastupdate','{$nowtime}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);\n"; - enter_logfile(2,' Addon: \'channelinfo_toplist\'; There might be a syntax error in your \'channel description\', which is defined in the webinterface! Error message: ['.$e->getCode().']: '.$errmsg); - } - } - } - - unset($smarty); - return $sqlexec; -} -?> \ No newline at end of file +setTemplateDir($GLOBALS['logpath'].'smarty/templates'); + $smarty->setCompileDir($GLOBALS['logpath'].'smarty/templates_c'); + $smarty->setCacheDir($GLOBALS['logpath'].'smarty/cache'); + $smarty->setConfigDir($GLOBALS['logpath'].'smarty/configs'); + + if (isset($addons_config['channelinfo_toplist_active']['value']) && $addons_config['channelinfo_toplist_active']['value'] == '1') { + if ($addons_config['channelinfo_toplist_lastupdate']['value'] < ($nowtime - $addons_config['channelinfo_toplist_delay']['value'])) { + switch($addons_config['channelinfo_toplist_modus']['value']) { + case 1: $filter = 'ORDER BY (`count_week`-`idle_week`)'; + break; + case 2: $filter = 'ORDER BY `count_week`'; + break; + case 3: $filter = 'ORDER BY (`count_month`-`idle_month`)'; + break; + case 4: $filter = 'ORDER BY `count_month`'; + break; + case 5: $filter = 'ORDER BY (`count`-`idle`)'; + break; + case 6: $filter = 'ORDER BY `count`'; + break; + default: $filter = 'ORDER BY (`count_week`-`idle_week`)'; + } + + $notinuuid = ''; + if ($cfg['rankup_excepted_unique_client_id_list'] != null) { + foreach ($cfg['rankup_excepted_unique_client_id_list'] as $uuid => $value) { + $notinuuid .= "'".$uuid."',"; + } + $notinuuid = substr($notinuuid, 0, -1); + } else { + $notinuuid = "'0'"; + } + + $notingroup = ''; + $andnotgroup = ''; + if ($cfg['rankup_excepted_group_id_list'] != null) { + foreach ($cfg['rankup_excepted_group_id_list'] as $group => $value) { + $notingroup .= "'".$group."',"; + $andnotgroup .= " AND `user`.`cldgroup` NOT LIKE ('".$group.",%') AND `user`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `user`.`cldgroup` NOT LIKE ('%,".$group."')"; + } + $notingroup = substr($notingroup, 0, -1); + } else { + $notingroup = '0'; + } + + $filter = " AND `user`.`uuid` NOT IN ($notinuuid) AND `user`.`cldgroup` NOT IN ($notingroup) $andnotgroup ".$filter; + //enter_logfile(2,'SQL: '."SELECT * FROM `$dbname`.`stats_user` INNER JOIN `$dbname`.`user` ON `user`.`uuid` = `stats_user`.`uuid` WHERE `removed`='0' {$filter} DESC LIMIT 10"); + + if (($userdata = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_user` INNER JOIN `$dbname`.`user` ON `user`.`uuid` = `stats_user`.`uuid` WHERE `removed`='0' {$filter} DESC LIMIT 10")->fetchAll(PDO::FETCH_ASSOC)) === false) { + enter_logfile(2, 'addon_channelinfo1: '.print_r($mysqlcon->errorInfo(), true)); + } + + $smarty->assign('LAST_UPDATE_TIME', (DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format('Y-m-d H:i:s'))); + + for ($nr = 0; $nr < 10; $nr++) { + $smarty->assign('CLIENT_UNIQUE_IDENTIFIER_'.($nr + 1), $userdata[$nr]['uuid']); + $smarty->assign('CLIENT_DATABASE_ID_'.($nr + 1), $userdata[$nr]['cldbid']); + $smarty->assign('CLIENT_NICKNAME_'.($nr + 1), $userdata[$nr]['name']); + + if ($userdata[$nr]['firstcon'] == 0) { + $smarty->assign('CLIENT_CREATED_'.($nr + 1), $lang['unknown']); + } else { + $smarty->assign('CLIENT_CREATED_'.($nr + 1), date('Y-m-d H:i:s', $userdata[$nr]['firstcon'])); + } + $smarty->assign('CLIENT_LAST_SEEN_'.($nr + 1), date('Y-m-d H:i:s', $userdata[$nr]['lastseen'])); + $smarty->assign('CLIENT_TOTAL_CONNECTIONS_'.($nr + 1), $userdata[$nr]['total_connections']); + $smarty->assign('CLIENT_DESCRIPTION_'.($nr + 1), $userdata[$nr]['client_description']); + $smarty->assign('CLIENT_CURRENT_CHANNEL_ID_'.($nr + 1), $userdata[$nr]['cid']); + if (isset($db_cache['channel'][$userdata[$nr]['cid']]['channel_name'])) { + $smarty->assign('CLIENT_CURRENT_CHANNEL_NAME_'.($nr + 1), substr($db_cache['channel'][$userdata[$nr]['cid']]['channel_name'], 1, -1)); + } else { + $smarty->assign('CLIENT_CURRENT_CHANNEL_NAME_'.($nr + 1), $lang['unknown']); + } + $smarty->assign('CLIENT_VERSION_'.($nr + 1), $userdata[$nr]['version']); + $smarty->assign('CLIENT_PLATFORM_'.($nr + 1), $userdata[$nr]['platform']); + $smarty->assign('CLIENT_COUNTRY_'.($nr + 1), $userdata[$nr]['nation']); + + if ($userdata[$nr]['grpsince'] == 0) { + $smarty->assign('CLIENT_LAST_RANKUP_TIME_'.($nr + 1), $lang['unknown']); + } else { + $smarty->assign('CLIENT_LAST_RANKUP_TIME_'.($nr + 1), date('Y-m-d H:i:s', $userdata[$nr]['grpsince'])); + } + $smarty->assign('CLIENT_RANK_POSITION_'.($nr + 1), $userdata[$nr]['rank']); + if ($userdata[$nr]['online'] == 1) { + $smarty->assign('CLIENT_ONLINE_STATUS_'.($nr + 1), $lang['stix0024']); + } else { + $smarty->assign('CLIENT_ONLINE_STATUS_'.($nr + 1), $lang['stix0025']); + } + + $smarty->assign('CLIENT_NEXT_RANKUP_TIME_'.($nr + 1), $userdata[$nr]['nextup']); + + $smarty->assign('CLIENT_CURRENT_RANK_GROUP_ID_'.($nr + 1), $userdata[$nr]['grpid']); + if (isset($db_cache['groups'][$userdata[$nr]['grpid']]['sgidname']) && $userdata[$nr]['grpid'] != 0) { + $smarty->assign('CLIENT_CURRENT_RANK_GROUP_NAME_'.($nr + 1), substr($db_cache['groups'][$userdata[$nr]['grpid']]['sgidname'], 1, -1)); + } else { + $smarty->assign('CLIENT_CURRENT_RANK_GROUP_NAME_'.($nr + 1), 'unknown_group'); + } + if (isset($db_cache['groups'][$userdata[$nr]['grpid']]['iconid']) && isset($db_cache['groups'][$userdata[$nr]['grpid']]['ext']) && $userdata[$nr]['grpid'] != 0) { + $smarty->assign('CLIENT_CURRENT_RANK_GROUP_ICON_URL_'.($nr + 1), 'tsicons/'.$db_cache['groups'][$userdata[$nr]['grpid']]['iconid'].'.'.$db_cache['groups'][$userdata[$nr]['grpid']]['ext']); + } else { + $smarty->assign('CLIENT_CURRENT_RANK_GROUP_ICON_URL_'.($nr + 1), 'file_not_found'); + } + $active_all = round($userdata[$nr]['count']) - round($userdata[$nr]['idle']); + $smarty->assign('CLIENT_ACTIVE_TIME_ALL_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.$active_all))->format($cfg['default_date_format']))); + $smarty->assign('CLIENT_ONLINE_TIME_ALL_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.round($userdata[$nr]['count'])))->format($cfg['default_date_format']))); + $smarty->assign('CLIENT_IDLE_TIME_ALL_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.round($userdata[$nr]['idle'])))->format($cfg['default_date_format']))); + $active_week = round($userdata[$nr]['count_week']) - round($userdata[$nr]['idle_week']); + $smarty->assign('CLIENT_ACTIVE_TIME_LAST_WEEK_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.$active_week))->format($cfg['default_date_format']))); + $smarty->assign('CLIENT_ONLINE_TIME_LAST_WEEK_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.round($userdata[$nr]['count_week'])))->format($cfg['default_date_format']))); + $smarty->assign('CLIENT_IDLE_TIME_LAST_WEEK_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.round($userdata[$nr]['idle_week'])))->format($cfg['default_date_format']))); + $active_month = round($userdata[$nr]['count_month']) - round($userdata[$nr]['idle_month']); + $smarty->assign('CLIENT_ACTIVE_TIME_LAST_MONTH_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.$active_month))->format($cfg['default_date_format']))); + $smarty->assign('CLIENT_ONLINE_TIME_LAST_MONTH_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.round($userdata[$nr]['count_month'])))->format($cfg['default_date_format']))); + $smarty->assign('CLIENT_IDLE_TIME_LAST_MONTH_'.($nr + 1), ((new DateTime('@0'))->diff(new DateTime('@'.round($userdata[$nr]['idle_month'])))->format($cfg['default_date_format']))); + } + + try { + $toplist_desc = $smarty->fetch('string:'.$addons_config['channelinfo_toplist_desc']['value']); + if ($addons_config['channelinfo_toplist_lastdesc']['value'] != $toplist_desc) { + try { + $ts3->channelGetById($addons_config['channelinfo_toplist_channelid']['value'])->modify(['cid='.$addons_config['channelinfo_toplist_channelid']['value'], 'channel_description='.$toplist_desc]); + $addons_config['channelinfo_toplist_lastdesc']['value'] = $toplist_desc; + $addons_config['channelinfo_toplist_lastupdate']['value'] = $nowtime; + $toplist_desc = $mysqlcon->quote($toplist_desc, ENT_QUOTES); + $sqlexec .= "INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_lastdesc',{$toplist_desc}),('channelinfo_toplist_lastupdate','{$nowtime}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);\n"; + enter_logfile(5, ' Addon: \'channelinfo_toplist\' writing new channelinfo toplist to channel description.'); + } catch (Exception $e) { + enter_logfile(2, 'addon_channelinfo2: ['.$e->getCode().']: '.$e->getMessage()); + } + } + } catch (Exception $e) { + $errmsg = str_replace('"', '\'', $e->getMessage()); + $addons_config['channelinfo_toplist_lastupdate']['value'] = $nowtime; + $sqlexec .= "INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_lastupdate','{$nowtime}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);\n"; + enter_logfile(2, ' Addon: \'channelinfo_toplist\'; There might be a syntax error in your \'channel description\', which is defined in the webinterface! Error message: ['.$e->getCode().']: '.$errmsg); + } + } + } + + unset($smarty); + + return $sqlexec; +} diff --git a/jobs/bot.php b/jobs/bot.php index 6f13ee8..2fde703 100644 --- a/jobs/bot.php +++ b/jobs/bot.php @@ -1,555 +1,556 @@ #!/usr/bin/php -getAttribute(PDO::ATTR_SERVER_VERSION)); - -enter_logfile(9,"Starting connection test to the Ranksystem update-server (may need a few seconds)..."); -$update_server = fsockopen('193.70.102.252', 443, $errno, $errstr, 10); -if(!$update_server) { - enter_logfile(2," Connection to Ranksystem update-server failed: $errstr ($errno)"); - enter_logfile(3," This connection is neccessary to receive updates for the Ranksystem!"); - enter_logfile(3," Please whitelist the IP 193.70.102.252 (TCP port 443) on your network (firewall)"); -} else { - enter_logfile(9," Connection test successful"); -} -enter_logfile(9,"Starting connection test to the Ranksystem update-server [done]"); - -$cfg['temp_updatedone'] = check_db($mysqlcon,$lang,$cfg,$dbname); -$cfg['temp_db_version'] = $mysqlcon->getAttribute(PDO::ATTR_SERVER_VERSION); -$cfg['temp_last_botstart'] = time(); -$cfg['temp_reconnect_attempts'] = 0; -$cfg['temp_ts_no_reconnection'] = 0; -enter_logfile(4,"Check Ranksystem files for updates..."); -if(isset($cfg['version_current_using']) && isset($cfg['version_latest_available']) && $cfg['version_latest_available'] != NULL && version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>')) { - update_rs($mysqlcon,$lang,$cfg,$dbname); -} -enter_logfile(4,"Check Ranksystem files for updates [done]"); -enter_logfile(9,"Ranksystem Version: ".$cfg['version_current_using']." (on Update-Channel: ".$cfg['version_update_channel'].")"); -enter_logfile(4,"Loading addons..."); -require_once(dirname(__DIR__).DIRECTORY_SEPARATOR.'other/load_addons_config.php'); -$addons_config = load_addons_config($mysqlcon,$lang,$cfg,$dbname); - if($addons_config['assign_groups_active']['value'] == '1') { - enter_logfile(4," Addon: 'assign_groups' [ON]"); - include(dirname(__DIR__).DIRECTORY_SEPARATOR.'jobs/addon_assign_groups.php'); - $cfg['temp_addon_assign_groups'] = "enabled"; - } else { - enter_logfile(4," Addon: 'assign_groups' [OFF]"); - $cfg['temp_addon_assign_groups'] = "disabled"; - } - if($addons_config['channelinfo_toplist_active']['value'] == '1') { - enter_logfile(4," Addon: 'channelinfo_toplist' [ON]"); - include(dirname(__DIR__).DIRECTORY_SEPARATOR.'jobs/addon_channelinfo_toplist.php'); - $cfg['temp_addon_channelinfo_toplist'] = "enabled"; - } else { - enter_logfile(4," Addon: 'channelinfo_toplist' [OFF]"); - $cfg['temp_addon_channelinfo_toplist'] = "disabled"; - } -enter_logfile(4,"Loading addons [done]"); - -function run_bot(&$cfg) { - global $mysqlcon, $db, $dbname, $dbtype, $lang, $phpcommand, $addons_config, $max_execution_time, $memory_limit, $ts3server; - - enter_logfile(9,"Connect to TS3 Server (Address: '".$cfg['teamspeak_host_address']."' Voice-Port: '".$cfg['teamspeak_voice_port']."' Query-Port: '".$cfg['teamspeak_query_port']."' SSH: '".$cfg['teamspeak_query_encrypt_switch']."' Query-Slowmode: '".number_format(($cfg['teamspeak_query_command_delay']/1000000),1)."')."); - - try { - if($cfg['temp_ts_no_reconnection'] != 1) { - if($cfg['teamspeak_query_encrypt_switch'] == 1) { - $ts3host = TeamSpeak3::factory("serverquery://".rawurlencode($cfg['teamspeak_query_user']).":".rawurlencode($cfg['teamspeak_query_pass'])."@".$cfg['teamspeak_host_address'].":".$cfg['teamspeak_query_port']."/?ssh=1"); - } else { - $ts3host = TeamSpeak3::factory("serverquery://".rawurlencode($cfg['teamspeak_query_user']).":".rawurlencode($cfg['teamspeak_query_pass'])."@".$cfg['teamspeak_host_address'].":".$cfg['teamspeak_query_port']."/?blocking=0"); - } - - enter_logfile(9,"Connection to TS3 Server established."); - try{ - $ts3version = $ts3host->version(); - enter_logfile(5," TS3 Server version: ".$ts3version['version']." on ".$ts3version['platform']." [Build: ".$ts3version['build']." from ".date("Y-m-d H:i:s",$ts3version['build'])."]"); - $cfg['temp_ts_version'] = $ts3version['version']; - } catch (Exception $e) { - enter_logfile(2," Error due getting TS3 server version - ".$e->getCode().': '.$e->getMessage()); - } - - if(version_compare($ts3version['version'],'3.13.7','<') && version_compare($ts3version['version'],'3.0.0','>=')) { - enter_logfile(3," Your TS3 server is outdated, please update it!"); - } - - enter_logfile(9," Select virtual server..."); - try { - if(version_compare($ts3version['version'],'3.4.0','>=') || version_compare($ts3version['version'],'3.0.0','<=')) { - usleep($cfg['teamspeak_query_command_delay']); - $ts3server = $ts3host->serverGetByPort($cfg['teamspeak_voice_port'], $cfg['teamspeak_query_nickname']); - } else { - usleep($cfg['teamspeak_query_command_delay']); - $ts3server = $ts3host->serverGetByPort($cfg['teamspeak_voice_port']); - for ($updcld = 0; $updcld < 10; $updcld++) { - try { - usleep($cfg['teamspeak_query_command_delay']); - if($updcld == 0) { - $ts3server->selfUpdate(array('client_nickname' => $cfg['teamspeak_query_nickname'])); - } else { - $ts3server->selfUpdate(array('client_nickname' => $cfg['teamspeak_query_nickname'].$updcld)); - } - break; - } catch (Exception $e) { - enter_logfile(3,' '.$lang['errorts3'].$e->getCode().': '.$e->getMessage()); - shutdown($mysqlcon,1,"Critical TS3 error on core function!"); - } - } - } - enter_logfile(9," Select virtual server [done]"); - $cfg['temp_reconnect_attempts'] = 0; - } catch (Exception $e) { - enter_logfile(2," Error due selecting virtual server - ".$e->getCode().': '.$e->getMessage()." (bad Voice-Port or Bot name?)"); - } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3server->notifyRegister("server"); - $ts3server->notifyRegister("textprivate"); - $ts3server->notifyRegister("textchannel"); - $ts3server->notifyRegister("textserver"); - TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyTextmessage", "handle_messages"); - TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyCliententerview", "event_userenter"); - } catch (Exception $e) { - enter_logfile(2," Error due notifyRegister on TS3 server - ".$e->getCode().': '.$e->getMessage()); - } - - $whoami = $ts3server->whoami(); - if(isset($cfg['teamspeak_default_channel_id']) && $cfg['teamspeak_default_channel_id'] != 0 && $cfg['teamspeak_default_channel_id'] != '') { - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3server->clientMove($whoami['client_id'],$cfg['teamspeak_default_channel_id']); - enter_logfile(5," Joined to specified TS channel with channel-ID ".$cfg['teamspeak_default_channel_id']."."); - } catch (Exception $e) { - if($e->getCode() != 770) { - enter_logfile(2," Could not join specified TS channel (channel-ID: ".$cfg['teamspeak_default_channel_id'].") - ".$e->getCode().': '.$e->getMessage()); - } else { - enter_logfile(5," Joined to specified TS channel with channel-ID ".$cfg['teamspeak_default_channel_id']." (already member of it)."); - } - } - } else { - enter_logfile(5," No channel defined where the Ranksystem Bot should be entered."); - } - - if($cfg['temp_updatedone'] === TRUE) { - enter_logfile(4,$lang['upinf']); - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $clientid) { - usleep($cfg['teamspeak_query_command_delay']); - try { - if(isset($cfg['teamspeak_news_bb']) && $cfg['teamspeak_news_bb'] != '') { - sendmessage($ts3server, $cfg, $clientid, sprintf($lang['upmsg2'], $cfg['version_current_using'], 'https://ts-ranksystem.com/#changelog')."\n\n[U]Latest News:[/U]\n".$cfg['teamspeak_news_bb'], 1, NULL, sprintf($lang['upusrerr'], $clientid), 6, sprintf($lang['upusrinf'], $clientid)); - } else { - sendmessage($ts3server, $cfg, $clientid, sprintf($lang['upmsg2'], $cfg['version_current_using'], 'https://ts-ranksystem.com/#changelog'), 1, NULL, sprintf($lang['upusrerr'], $clientid), 6, sprintf($lang['upusrinf'], $clientid)); - } - enter_logfile(4," ".sprintf($lang['upusrinf'], $clientid)); - } catch (Exception $e) { - enter_logfile(6," ".sprintf($lang['upusrerr'], $clientid)); - } - } - } - } - - enter_logfile(9,"Config check started..."); - switch ($cfg['logs_debug_level']) { - case 1: - $loglevel = "1 - CRITICAL"; - break; - case 2: - $loglevel = "2 - ERROR"; - break; - case 3: - $loglevel = "3 - WARNING"; - break; - case 4: - $loglevel = "4 - NOTICE"; - break; - case 5: - $loglevel = "5 - INFO"; - break; - case 6: - $loglevel = "6 - DEBUG"; - break; - default: - $loglevel = "UNKNOWN"; - } - enter_logfile(9," Log Level: ".$loglevel); - enter_logfile(6," Serverside config 'max_execution_time' (PHP.ini): ".$max_execution_time." sec."); - enter_logfile(6," Serverside config 'memory_limit' (PHP.ini): ".$memory_limit); - krsort($cfg['rankup_definition']); - - if(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - enter_logfile(1," Select on DB failed for group check: ".print_r($mysqlcon->errorInfo(), true)); - } - - $checkgroups = 0; - if(isset($groupslist) && $groupslist != NULL) { - if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) { - foreach($cfg['rankup_definition'] as $rank) { - if(!isset($groupslist[$rank['group']]) && $rank['group'] != NULL) { - $checkgroups++; - } - } - } - if(isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != NULL) { - foreach($cfg['rankup_boost_definition'] as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $checkgroups++; - } - } - } - if(isset($cfg['rankup_excepted_group_id_list']) && $cfg['rankup_excepted_group_id_list'] != NULL) { - foreach($cfg['rankup_excepted_group_id_list'] as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $checkgroups++; - } - } - } - } - if($checkgroups > 0) { - enter_logfile(3," Found servergroups in config, which are unknown. Redownload all servergroups from TS3 server."); - if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - - $serverinfo = $ts3server->serverInfo(); - $select_arr = array(); - $db_cache = array(); - $sqlexec2 = update_groups($ts3server,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,$db_cache,1); - if($sqlexec2 != NULL && $mysqlcon->exec($sqlexec2) === false) { - enter_logfile(2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - unset($sqlexec2,$select_arr,$db_cache,$groupslist,$serverinfo,$ts3version); - $errcnf = 0; - enter_logfile(4," Downloading of servergroups finished. Recheck the config."); - - if(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - enter_logfile(1," Select on DB failed for group check: ".print_r($mysqlcon->errorInfo(), true)); - } - - if(isset($groupslist) && $groupslist != NULL) { - if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) { - foreach($cfg['rankup_definition'] as $rank) { - if(!isset($groupslist[$rank['group']]) && $rank['group'] != NULL) { - enter_logfile(1,' '.sprintf($lang['upgrp0001'], $rank['group'], $lang['wigrptime'])); - $errcnf++; - } - } - } - if(isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != NULL) { - foreach($cfg['rankup_boost_definition'] as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - enter_logfile(2,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiboost'])); - } - } - } - if(isset($cfg['rankup_excepted_group_id_list']) && $cfg['rankup_excepted_group_id_list'] != NULL) { - foreach($cfg['rankup_excepted_group_id_list'] as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - enter_logfile(2,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiexgrp'])); - } - } - } - } - if($errcnf > 0) { - shutdown($mysqlcon,1,"Critical Config error!"); - } else { - enter_logfile(4," No critical problems found! All seems to be fine..."); - } - } - - if(isset($cfg['webinterface_fresh_installation']) && $cfg['webinterface_fresh_installation'] == 1) { - if($mysqlcon->exec("UPDATE `$dbname`.`cfg_params` SET `value`=0 WHERE `param`='webinterface_fresh_installation'") === false) { - enter_logfile(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(9,"Config check [done]"); - } else { - enter_logfile(9," Try to use the restored TS3 connection"); - } - - enter_logfile(9,"Bot starts now his work!"); - $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`.`channel`; SELECT * FROM `$dbname`.`addon_assign_groups`; SELECT * FROM `$dbname`.`admin_addtime`; ")) === false) { - shutdown($mysqlcon,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['channel'] = $fetched_array; - break; - case 6: - $db_cache['addon_assign_groups'] = $fetched_array; - break; - case 7: - $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(3," Select on DB failed for job check: ".print_r($mysqlcon->errorInfo(), true)); - } - - if(intval($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`; SELECT * FROM `$dbname`.`groups`; SELECT * FROM `$dbname`.`channel`;")) === false) { - shutdown($mysqlcon,1,"Select on DB failed: ".print_r($mysqlcon->errorInfo(), true)); - } - - $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; - case 3: - $db_cache['groups'] = $fetched_array; - break; - case 4: - $db_cache['channel'] = $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"; - } - - enter_logfile(6,"SQL Select needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - - check_shutdown(); - - $ts3server->clientListReset(); - $allclients = $ts3server->clientListtsn("-uid -groups -times -info -country"); - usleep($cfg['teamspeak_query_command_delay']); - $ts3server->serverInfoReset(); - $serverinfo = $ts3server->serverInfo(); - 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); - $sqlexec .= update_channel($ts3server,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,$db_cache); - - if($addons_config['assign_groups_active']['value'] == '1') { - $sqlexec .= addon_assign_groups($addons_config,$ts3server,$cfg,$dbname,$allclients,$db_cache); - } - if($addons_config['channelinfo_toplist_active']['value'] == '1') { - $sqlexec .= addon_channelinfo_toplist($addons_config,$ts3server,$mysqlcon,$cfg,$dbname,$lang,$db_cache); - } - - $startsql = microtime(true); - 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(4,"Executing SQL: ".$singlesql); - enter_logfile(2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - } elseif(strpos($singlesql, ' ') === false) { - enter_logfile(2,"Command not recognized as SQL: ".$singlesql); - } - } - $sqlfile = $GLOBALS['logpath'].'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:\n".$sqlexec); - fclose($sqldump); - } else { - if($mysqlcon->exec($sqlexec) === false) { - enter_logfile(2,"Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - } - enter_logfile(6,"SQL executions needs: ".(number_format(round((microtime(true) - $startsql), 5),5))); - - reset_rs($ts3server,$mysqlcon,$lang,$cfg,$dbname,$phpcommand,$db_cache); - db_ex_imp($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']++; - $cfg['temp_last_laptime'] = substr((number_format(round($looptime, 5),5) . ';' . $cfg['temp_last_laptime']),0,79); - - enter_logfile(6,"last loop: ".round($looptime, 5)." sec."); - - if($looptime < 1) { - $loopsleep = (1 - $looptime); - if($cfg['teamspeak_query_encrypt_switch'] == 1 || version_compare($cfg['temp_ts_version'],'1.4.0','>=') && version_compare($cfg['temp_ts_version'],'2.9.9','<=')) { - // no wait for data to become available on the stream on SSH due issues with non-blocking mode or TeaSpeak - usleep(round($loopsleep * 1000000)); - } else { - $ts3server->getAdapter()->waittsn($loopsleep, 50000); // 50ms delay for CPU reason - } - } - } - } catch (Exception $e) { - enter_logfile(2,$lang['error'].': ['.$e->getCode().']: '.$e->getMessage()); - if(in_array($e->getCode(), array(110,257,258,1024,1026,1031,1032,1033,1034,1280,1793))) { - if($mysqlcon->exec("UPDATE $dbname.stats_server SET server_status='0'") === false) { - enter_logfile(2,$lang['error'].print_r($mysqlcon->errorInfo(), true)); - } - } - - if($cfg['temp_last_botstart'] < (time() - 10)) { - if($cfg['temp_reconnect_attempts'] < 4) { - $wait_reconnect = 5; - } elseif($cfg['temp_reconnect_attempts'] < 10) { - $wait_reconnect = 60; - } elseif($cfg['temp_reconnect_attempts'] < 20) { - $wait_reconnect = 300; - } elseif($cfg['temp_reconnect_attempts'] < 66) { - $wait_reconnect = 1800; - } elseif($cfg['temp_reconnect_attempts'] < 288) { - $wait_reconnect = 3600; - } else { - $wait_reconnect = 43200; - } - - enter_logfile(4,"Try to reconnect in ".$wait_reconnect." seconds."); - - for($z = 1; $z <= $wait_reconnect; $z++) { - sleep(1); - check_shutdown(); - } - - $check_db_arr = array_flip(array('HY000',10054,70100)); - if(isset($check_db_arr[$e->getCode()])) { - $cfg['temp_ts_no_reconnection'] = 1; - try { - $mysqlcon = db_connect($db['type'], $db['host'], $db['dbname'], $db['user'], $db['pass'], "no_exit"); - enter_logfile(9,"Connection to database restored"); - } catch (Exception $e) { - enter_logfile(2,$lang['error'].print_r($mysqlcon->errorInfo(), true)); - } - } else { - $cfg['temp_ts_no_reconnection'] = 0; - } - - $cfg['temp_reconnect_attempts']++; - return $ts3server; - } else { - shutdown($mysqlcon,1,"Critical TS3 error on core function!"); - } - } -} - -while(1) { - run_bot($cfg); -} -?> \ No newline at end of file +getAttribute(PDO::ATTR_SERVER_VERSION)); + +enter_logfile(9, 'Starting connection test to the Ranksystem update-server (may need a few seconds)...'); +$update_server = fsockopen('193.70.102.252', 443, $errno, $errstr, 10); +if (! $update_server) { + enter_logfile(2, " Connection to Ranksystem update-server failed: $errstr ($errno)"); + enter_logfile(3, ' This connection is neccessary to receive updates for the Ranksystem!'); + enter_logfile(3, ' Please whitelist the IP 193.70.102.252 (TCP port 443) on your network (firewall)'); +} else { + enter_logfile(9, ' Connection test successful'); +} +enter_logfile(9, 'Starting connection test to the Ranksystem update-server [done]'); + +$cfg['temp_updatedone'] = check_db($mysqlcon, $lang, $cfg, $dbname); +$cfg['temp_db_version'] = $mysqlcon->getAttribute(PDO::ATTR_SERVER_VERSION); +$cfg['temp_last_botstart'] = time(); +$cfg['temp_reconnect_attempts'] = 0; +$cfg['temp_ts_no_reconnection'] = 0; +enter_logfile(4, 'Check Ranksystem files for updates...'); +if (isset($cfg['version_current_using']) && isset($cfg['version_latest_available']) && $cfg['version_latest_available'] != null && version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>')) { + update_rs($mysqlcon, $lang, $cfg, $dbname); +} +enter_logfile(4, 'Check Ranksystem files for updates [done]'); +enter_logfile(9, 'Ranksystem Version: '.$cfg['version_current_using'].' (on Update-Channel: '.$cfg['version_update_channel'].')'); +enter_logfile(4, 'Loading addons...'); +require_once dirname(__DIR__).DIRECTORY_SEPARATOR.'other/load_addons_config.php'; +$addons_config = load_addons_config($mysqlcon, $lang, $cfg, $dbname); +if ($addons_config['assign_groups_active']['value'] == '1') { + enter_logfile(4, " Addon: 'assign_groups' [ON]"); + include dirname(__DIR__).DIRECTORY_SEPARATOR.'jobs/addon_assign_groups.php'; + $cfg['temp_addon_assign_groups'] = 'enabled'; +} else { + enter_logfile(4, " Addon: 'assign_groups' [OFF]"); + $cfg['temp_addon_assign_groups'] = 'disabled'; +} +if ($addons_config['channelinfo_toplist_active']['value'] == '1') { + enter_logfile(4, " Addon: 'channelinfo_toplist' [ON]"); + include dirname(__DIR__).DIRECTORY_SEPARATOR.'jobs/addon_channelinfo_toplist.php'; + $cfg['temp_addon_channelinfo_toplist'] = 'enabled'; +} else { + enter_logfile(4, " Addon: 'channelinfo_toplist' [OFF]"); + $cfg['temp_addon_channelinfo_toplist'] = 'disabled'; +} +enter_logfile(4, 'Loading addons [done]'); + +function run_bot(&$cfg) +{ + global $mysqlcon, $db, $dbname, $dbtype, $lang, $phpcommand, $addons_config, $max_execution_time, $memory_limit, $ts3server; + + enter_logfile(9, "Connect to TS3 Server (Address: '".$cfg['teamspeak_host_address']."' Voice-Port: '".$cfg['teamspeak_voice_port']."' Query-Port: '".$cfg['teamspeak_query_port']."' SSH: '".$cfg['teamspeak_query_encrypt_switch']."' Query-Slowmode: '".number_format(($cfg['teamspeak_query_command_delay'] / 1000000), 1)."')."); + + try { + if ($cfg['temp_ts_no_reconnection'] != 1) { + if ($cfg['teamspeak_query_encrypt_switch'] == 1) { + $ts3host = TeamSpeak3::factory('serverquery://'.rawurlencode($cfg['teamspeak_query_user']).':'.rawurlencode($cfg['teamspeak_query_pass']).'@'.$cfg['teamspeak_host_address'].':'.$cfg['teamspeak_query_port'].'/?ssh=1'); + } else { + $ts3host = TeamSpeak3::factory('serverquery://'.rawurlencode($cfg['teamspeak_query_user']).':'.rawurlencode($cfg['teamspeak_query_pass']).'@'.$cfg['teamspeak_host_address'].':'.$cfg['teamspeak_query_port'].'/?blocking=0'); + } + + enter_logfile(9, 'Connection to TS3 Server established.'); + try { + $ts3version = $ts3host->version(); + enter_logfile(5, ' TS3 Server version: '.$ts3version['version'].' on '.$ts3version['platform'].' [Build: '.$ts3version['build'].' from '.date('Y-m-d H:i:s', $ts3version['build']).']'); + $cfg['temp_ts_version'] = $ts3version['version']; + } catch (Exception $e) { + enter_logfile(2, ' Error due getting TS3 server version - '.$e->getCode().': '.$e->getMessage()); + } + + if (version_compare($ts3version['version'], '3.13.7', '<') && version_compare($ts3version['version'], '3.0.0', '>=')) { + enter_logfile(3, ' Your TS3 server is outdated, please update it!'); + } + + enter_logfile(9, ' Select virtual server...'); + try { + if (version_compare($ts3version['version'], '3.4.0', '>=') || version_compare($ts3version['version'], '3.0.0', '<=')) { + usleep($cfg['teamspeak_query_command_delay']); + $ts3server = $ts3host->serverGetByPort($cfg['teamspeak_voice_port'], $cfg['teamspeak_query_nickname']); + } else { + usleep($cfg['teamspeak_query_command_delay']); + $ts3server = $ts3host->serverGetByPort($cfg['teamspeak_voice_port']); + for ($updcld = 0; $updcld < 10; $updcld++) { + try { + usleep($cfg['teamspeak_query_command_delay']); + if ($updcld == 0) { + $ts3server->selfUpdate(['client_nickname' => $cfg['teamspeak_query_nickname']]); + } else { + $ts3server->selfUpdate(['client_nickname' => $cfg['teamspeak_query_nickname'].$updcld]); + } + break; + } catch (Exception $e) { + enter_logfile(3, ' '.$lang['errorts3'].$e->getCode().': '.$e->getMessage()); + shutdown($mysqlcon, 1, 'Critical TS3 error on core function!'); + } + } + } + enter_logfile(9, ' Select virtual server [done]'); + $cfg['temp_reconnect_attempts'] = 0; + } catch (Exception $e) { + enter_logfile(2, ' Error due selecting virtual server - '.$e->getCode().': '.$e->getMessage().' (bad Voice-Port or Bot name?)'); + } + + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3server->notifyRegister('server'); + $ts3server->notifyRegister('textprivate'); + $ts3server->notifyRegister('textchannel'); + $ts3server->notifyRegister('textserver'); + TeamSpeak3_Helper_Signal::getInstance()->subscribe('notifyTextmessage', 'handle_messages'); + TeamSpeak3_Helper_Signal::getInstance()->subscribe('notifyCliententerview', 'event_userenter'); + } catch (Exception $e) { + enter_logfile(2, ' Error due notifyRegister on TS3 server - '.$e->getCode().': '.$e->getMessage()); + } + + $whoami = $ts3server->whoami(); + if (isset($cfg['teamspeak_default_channel_id']) && $cfg['teamspeak_default_channel_id'] != 0 && $cfg['teamspeak_default_channel_id'] != '') { + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3server->clientMove($whoami['client_id'], $cfg['teamspeak_default_channel_id']); + enter_logfile(5, ' Joined to specified TS channel with channel-ID '.$cfg['teamspeak_default_channel_id'].'.'); + } catch (Exception $e) { + if ($e->getCode() != 770) { + enter_logfile(2, ' Could not join specified TS channel (channel-ID: '.$cfg['teamspeak_default_channel_id'].') - '.$e->getCode().': '.$e->getMessage()); + } else { + enter_logfile(5, ' Joined to specified TS channel with channel-ID '.$cfg['teamspeak_default_channel_id'].' (already member of it).'); + } + } + } else { + enter_logfile(5, ' No channel defined where the Ranksystem Bot should be entered.'); + } + + if ($cfg['temp_updatedone'] === true) { + enter_logfile(4, $lang['upinf']); + if (isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != null) { + foreach (array_flip($cfg['webinterface_admin_client_unique_id_list']) as $clientid) { + usleep($cfg['teamspeak_query_command_delay']); + try { + if (isset($cfg['teamspeak_news_bb']) && $cfg['teamspeak_news_bb'] != '') { + sendmessage($ts3server, $cfg, $clientid, sprintf($lang['upmsg2'], $cfg['version_current_using'], 'https://ts-ranksystem.com/#changelog')."\n\n[U]Latest News:[/U]\n".$cfg['teamspeak_news_bb'], 1, null, sprintf($lang['upusrerr'], $clientid), 6, sprintf($lang['upusrinf'], $clientid)); + } else { + sendmessage($ts3server, $cfg, $clientid, sprintf($lang['upmsg2'], $cfg['version_current_using'], 'https://ts-ranksystem.com/#changelog'), 1, null, sprintf($lang['upusrerr'], $clientid), 6, sprintf($lang['upusrinf'], $clientid)); + } + enter_logfile(4, ' '.sprintf($lang['upusrinf'], $clientid)); + } catch (Exception $e) { + enter_logfile(6, ' '.sprintf($lang['upusrerr'], $clientid)); + } + } + } + } + + enter_logfile(9, 'Config check started...'); + switch ($cfg['logs_debug_level']) { + case 1: + $loglevel = '1 - CRITICAL'; + break; + case 2: + $loglevel = '2 - ERROR'; + break; + case 3: + $loglevel = '3 - WARNING'; + break; + case 4: + $loglevel = '4 - NOTICE'; + break; + case 5: + $loglevel = '5 - INFO'; + break; + case 6: + $loglevel = '6 - DEBUG'; + break; + default: + $loglevel = 'UNKNOWN'; + } + enter_logfile(9, ' Log Level: '.$loglevel); + enter_logfile(6, " Serverside config 'max_execution_time' (PHP.ini): ".$max_execution_time.' sec.'); + enter_logfile(6, " Serverside config 'memory_limit' (PHP.ini): ".$memory_limit); + krsort($cfg['rankup_definition']); + + if (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + enter_logfile(1, ' Select on DB failed for group check: '.print_r($mysqlcon->errorInfo(), true)); + } + + $checkgroups = 0; + if (isset($groupslist) && $groupslist != null) { + if (isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != null) { + foreach ($cfg['rankup_definition'] as $rank) { + if (! isset($groupslist[$rank['group']]) && $rank['group'] != null) { + $checkgroups++; + } + } + } + if (isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != null) { + foreach ($cfg['rankup_boost_definition'] as $groupid => $value) { + if (! isset($groupslist[$groupid]) && $groupid != null) { + $checkgroups++; + } + } + } + if (isset($cfg['rankup_excepted_group_id_list']) && $cfg['rankup_excepted_group_id_list'] != null) { + foreach ($cfg['rankup_excepted_group_id_list'] as $groupid => $value) { + if (! isset($groupslist[$groupid]) && $groupid != null) { + $checkgroups++; + } + } + } + } + if ($checkgroups > 0) { + enter_logfile(3, ' Found servergroups in config, which are unknown. Redownload all servergroups from TS3 server.'); + if ($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + $serverinfo = $ts3server->serverInfo(); + $select_arr = []; + $db_cache = []; + $sqlexec2 = update_groups($ts3server, $mysqlcon, $lang, $cfg, $dbname, $serverinfo, $db_cache, 1); + if ($sqlexec2 != null && $mysqlcon->exec($sqlexec2) === false) { + enter_logfile(2, 'Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + unset($sqlexec2,$select_arr,$db_cache,$groupslist,$serverinfo,$ts3version); + $errcnf = 0; + enter_logfile(4, ' Downloading of servergroups finished. Recheck the config.'); + + if (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + enter_logfile(1, ' Select on DB failed for group check: '.print_r($mysqlcon->errorInfo(), true)); + } + + if (isset($groupslist) && $groupslist != null) { + if (isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != null) { + foreach ($cfg['rankup_definition'] as $rank) { + if (! isset($groupslist[$rank['group']]) && $rank['group'] != null) { + enter_logfile(1, ' '.sprintf($lang['upgrp0001'], $rank['group'], $lang['wigrptime'])); + $errcnf++; + } + } + } + if (isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != null) { + foreach ($cfg['rankup_boost_definition'] as $groupid => $value) { + if (! isset($groupslist[$groupid]) && $groupid != null) { + enter_logfile(2, ' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiboost'])); + } + } + } + if (isset($cfg['rankup_excepted_group_id_list']) && $cfg['rankup_excepted_group_id_list'] != null) { + foreach ($cfg['rankup_excepted_group_id_list'] as $groupid => $value) { + if (! isset($groupslist[$groupid]) && $groupid != null) { + enter_logfile(2, ' '.sprintf($lang['upgrp0001'], $groupid, $lang['wiexgrp'])); + } + } + } + } + if ($errcnf > 0) { + shutdown($mysqlcon, 1, 'Critical Config error!'); + } else { + enter_logfile(4, ' No critical problems found! All seems to be fine...'); + } + } + + if (isset($cfg['webinterface_fresh_installation']) && $cfg['webinterface_fresh_installation'] == 1) { + if ($mysqlcon->exec("UPDATE `$dbname`.`cfg_params` SET `value`=0 WHERE `param`='webinterface_fresh_installation'") === false) { + enter_logfile(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(9, 'Config check [done]'); + } else { + enter_logfile(9, ' Try to use the restored TS3 connection'); + } + + enter_logfile(9, 'Bot starts now his work!'); + $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`.`channel`; SELECT * FROM `$dbname`.`addon_assign_groups`; SELECT * FROM `$dbname`.`admin_addtime`; ")) === false) { + shutdown($mysqlcon, 1, 'Select on DB failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + $count_select = 0; + $db_cache = []; + 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['channel'] = $fetched_array; + break; + case 6: + $db_cache['addon_assign_groups'] = $fetched_array; + break; + case 7: + $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(3, ' Select on DB failed for job check: '.print_r($mysqlcon->errorInfo(), true)); + } + + if (intval($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`; SELECT * FROM `$dbname`.`groups`; SELECT * FROM `$dbname`.`channel`;")) === false) { + shutdown($mysqlcon, 1, 'Select on DB failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + $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; + case 3: + $db_cache['groups'] = $fetched_array; + break; + case 4: + $db_cache['channel'] = $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"; + } + + enter_logfile(6, 'SQL Select needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + check_shutdown(); + + $ts3server->clientListReset(); + $allclients = $ts3server->clientListtsn('-uid -groups -times -info -country'); + usleep($cfg['teamspeak_query_command_delay']); + $ts3server->serverInfoReset(); + $serverinfo = $ts3server->serverInfo(); + 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); + $sqlexec .= update_channel($ts3server, $mysqlcon, $lang, $cfg, $dbname, $serverinfo, $db_cache); + + if ($addons_config['assign_groups_active']['value'] == '1') { + $sqlexec .= addon_assign_groups($addons_config, $ts3server, $cfg, $dbname, $allclients, $db_cache); + } + if ($addons_config['channelinfo_toplist_active']['value'] == '1') { + $sqlexec .= addon_channelinfo_toplist($addons_config, $ts3server, $mysqlcon, $cfg, $dbname, $lang, $db_cache); + } + + $startsql = microtime(true); + 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(4, 'Executing SQL: '.$singlesql); + enter_logfile(2, 'Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + } elseif (strpos($singlesql, ' ') === false) { + enter_logfile(2, 'Command not recognized as SQL: '.$singlesql); + } + } + $sqlfile = $GLOBALS['logpath'].'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:\n".$sqlexec); + fclose($sqldump); + } else { + if ($mysqlcon->exec($sqlexec) === false) { + enter_logfile(2, 'Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + } + enter_logfile(6, 'SQL executions needs: '.(number_format(round((microtime(true) - $startsql), 5), 5))); + + reset_rs($ts3server, $mysqlcon, $lang, $cfg, $dbname, $phpcommand, $db_cache); + db_ex_imp($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']++; + $cfg['temp_last_laptime'] = substr((number_format(round($looptime, 5), 5).';'.$cfg['temp_last_laptime']), 0, 79); + + enter_logfile(6, 'last loop: '.round($looptime, 5).' sec.'); + + if ($looptime < 1) { + $loopsleep = (1 - $looptime); + if ($cfg['teamspeak_query_encrypt_switch'] == 1 || version_compare($cfg['temp_ts_version'], '1.4.0', '>=') && version_compare($cfg['temp_ts_version'], '2.9.9', '<=')) { + // no wait for data to become available on the stream on SSH due issues with non-blocking mode or TeaSpeak + usleep(round($loopsleep * 1000000)); + } else { + $ts3server->getAdapter()->waittsn($loopsleep, 50000); // 50ms delay for CPU reason + } + } + } + } catch (Exception $e) { + enter_logfile(2, $lang['error'].': ['.$e->getCode().']: '.$e->getMessage()); + if (in_array($e->getCode(), [110, 257, 258, 1024, 1026, 1031, 1032, 1033, 1034, 1280, 1793])) { + if ($mysqlcon->exec("UPDATE $dbname.stats_server SET server_status='0'") === false) { + enter_logfile(2, $lang['error'].print_r($mysqlcon->errorInfo(), true)); + } + } + + if ($cfg['temp_last_botstart'] < (time() - 10)) { + if ($cfg['temp_reconnect_attempts'] < 4) { + $wait_reconnect = 5; + } elseif ($cfg['temp_reconnect_attempts'] < 10) { + $wait_reconnect = 60; + } elseif ($cfg['temp_reconnect_attempts'] < 20) { + $wait_reconnect = 300; + } elseif ($cfg['temp_reconnect_attempts'] < 66) { + $wait_reconnect = 1800; + } elseif ($cfg['temp_reconnect_attempts'] < 288) { + $wait_reconnect = 3600; + } else { + $wait_reconnect = 43200; + } + + enter_logfile(4, 'Try to reconnect in '.$wait_reconnect.' seconds.'); + + for ($z = 1; $z <= $wait_reconnect; $z++) { + sleep(1); + check_shutdown(); + } + + $check_db_arr = array_flip(['HY000', 10054, 70100]); + if (isset($check_db_arr[$e->getCode()])) { + $cfg['temp_ts_no_reconnection'] = 1; + try { + $mysqlcon = db_connect($db['type'], $db['host'], $db['dbname'], $db['user'], $db['pass'], 'no_exit'); + enter_logfile(9, 'Connection to database restored'); + } catch (Exception $e) { + enter_logfile(2, $lang['error'].print_r($mysqlcon->errorInfo(), true)); + } + } else { + $cfg['temp_ts_no_reconnection'] = 0; + } + + $cfg['temp_reconnect_attempts']++; + + return $ts3server; + } else { + shutdown($mysqlcon, 1, 'Critical TS3 error on core function!'); + } + } +} + +while (1) { + run_bot($cfg); +} diff --git a/jobs/calc_serverstats.php b/jobs/calc_serverstats.php index 732e7e4..eef3857 100644 --- a/jobs/calc_serverstats.php +++ b/jobs/calc_serverstats.php @@ -1,494 +1,512 @@ -($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++; - } - - if(isset($country_array[$nation])) { - $country_array[$nation]++; - } else { - $country_array[$nation] = 1; - } - - if(isset($platform_array[$platform])) { - $platform_array[$platform]++; - } else { - $platform_array[$platform] = 1; - } - - if(isset($count_version_user[$version])) { - $count_version_user[$version]++; - } else { - $count_version_user[$version] = 1; - } - - if($uuid['count']>0) $total_online_time += $uuid['count']; - if($uuid['idle']>0) $total_inactive_time += $uuid['idle']; - } - - 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; - } - - - $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; - } - $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});\n"; - } - 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); - } - - - $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; - } - $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});\n"; - } - 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); - } - - - $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; - 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; - } - $allinsertversion .= "('{$version}',{$count}),"; - $cfg['temp_cache_versions'][$version] = $count; - } - 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 { - $cfg['temp_cache_versions'][$version] = $count; - $insertversion .= "('{$version}',{$count}),"; - } - } - } - 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); - } - - - $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); - $serverinfo['virtualserver_total_ping'] = round((substr($serverinfo['virtualserver_total_ping'], 0, strpos($serverinfo['virtualserver_total_ping'], '.')).".".substr($serverinfo['virtualserver_total_ping'], (strpos($serverinfo['virtualserver_total_ping'], '.') + 1), 4))); - if($serverinfo['virtualserver_total_ping'] > 32767) $serverinfo['virtualserver_total_ping'] = 32767; - if(!isset($serverinfo['virtualserver_weblist_enabled']) || $serverinfo['virtualserver_weblist_enabled'] === NULL) $serverinfo['virtualserver_weblist_enabled'] = 0; - - // 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(intval($db_cache['job_check']['calc_server_stats']['timestamp']) < ($nowtime - 899)) { - $db_cache['job_check']['calc_server_stats']['timestamp'] = $nowtime; - $weekago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 28; - $monthago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 120; - if ($weekago < 1) $weekago = $weekago + 121; - if ($monthago < 1) $monthago = $monthago + 121; - - if(($entry_snapshot_count = $mysqlcon->query("SELECT count(DISTINCT(`id`)) AS `id` FROM `$dbname`.`user_snapshot`")->fetch(PDO::FETCH_ASSOC)) === false) { - enter_logfile(2,"calc_serverstats 19:".print_r($mysqlcon->errorInfo(), true)); - } - if ($entry_snapshot_count['id'] > 28) { - // Calc total_online_week - #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) { - if(($snapshot_count_week = $mysqlcon->query("SELECT SUM(`a`.`count` - `b`.`count`) AS `count` FROM `$dbname`.`user_snapshot` `a`, `$dbname`.`user_snapshot` `b` WHERE `b`.`cldbid` = `a`.`cldbid` AND `a`.`id`={$db_cache['job_check']['last_snapshot_id']['timestamp']} AND `b`.`id`={$weekago} AND `a`.`count`>`b`.`count`;")->fetch(PDO::FETCH_ASSOC)) === false) { - enter_logfile(2,"calc_serverstats 20:".print_r($mysqlcon->errorInfo(), true)); - } - if($snapshot_count_week['count'] == NULL) { - $total_online_week = 0; - } else { - $total_online_week = $snapshot_count_week['count']; - } - } else { - $total_online_week = 0; - } - if ($entry_snapshot_count['id'] > 120) { - // Calc total_online_month - #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) { - if(($snapshot_count_month = $mysqlcon->query("SELECT SUM(`a`.`count` - `b`.`count`) AS `count` FROM `$dbname`.`user_snapshot` `a`, `$dbname`.`user_snapshot` `b` WHERE `b`.`cldbid` = `a`.`cldbid` AND `a`.`id`={$db_cache['job_check']['last_snapshot_id']['timestamp']} AND `b`.`id`={$monthago} AND `a`.`count`>`b`.`count`;")->fetch(PDO::FETCH_ASSOC)) === false) { - enter_logfile(2,"calc_serverstats 21:".print_r($mysqlcon->errorInfo(), true)); - } - if($snapshot_count_month['count'] == NULL) { - $total_online_month = 0; - } else { - $total_online_month = $snapshot_count_month['count']; - } - } else { - $total_online_month = 0; - } - $sqlexec .= "UPDATE `$dbname`.`stats_server` SET `total_online_month`={$total_online_month},`total_online_week`={$total_online_week};\nUPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='calc_server_stats';\n"; - - if (intval($db_cache['job_check']['get_version']['timestamp']) < ($nowtime - 43199)) { - $db_cache['job_check']['get_version']['timestamp'] = $nowtime; - enter_logfile(6,"Get the latest Ranksystem Version."); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://ts-n.net/ranksystem/'.$cfg['version_update_channel']); - curl_setopt($ch, CURLOPT_REFERER, 'TSN Ranksystem'); - curl_setopt($ch, CURLOPT_USERAGENT, - $cfg['version_current_using'].";". - php_uname("s").";". - php_uname("r").";". - phpversion().";". - $dbtype.";". - $cfg['teamspeak_host_address'].";". - $cfg['teamspeak_voice_port'].";". - ";". #old installation path - $total_user.";". - $user_today.";". - $user_week.";". - $user_month.";". - $user_quarter.";". - $total_online_week.";". - $total_online_month.";". - $total_active_time.";". - $total_inactive_time.";". - $cfg['temp_ts_version'].";". - $cfg['temp_db_version'] - ); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_MAXREDIRS, 10); - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); - $cfg['version_latest_available'] = curl_exec($ch); - curl_close($ch); unset($ch); - - if(!isset($cfg['stats_news_html']) || $cfg['stats_news_html'] != '') { - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name`='news_html';\nUPDATE `$dbname`.`cfg_params` SET `value`='' WHERE `param`='stats_news_html';\n"; - } - $newh = curl_init(); - curl_setopt($newh, CURLOPT_URL, 'https://ts-n.net/ranksystem/news_html'); - curl_setopt($newh, CURLOPT_REFERER, 'TSN Ranksystem - News HTML'); - curl_setopt($newh, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($newh, CURLOPT_MAXREDIRS, 10); - curl_setopt($newh, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt($newh, CURLOPT_CONNECTTIMEOUT, 5); - $cfg['stats_news_html'] = curl_exec($newh); - curl_close($newh); unset($newh); - if($cfg['stats_news_html'] != '') { - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='news_html';\nUPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['stats_news_html']}' WHERE `param`='stats_news_html';\n"; - } - - if(!isset($cfg['teamspeak_news_bb']) || $cfg['teamspeak_news_bb'] != '') { - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name`='news_bb';\nUPDATE `$dbname`.`cfg_params` SET `value`='' WHERE `param`='teamspeak_news_bb';\n"; - } - $newb = curl_init(); - curl_setopt($newb, CURLOPT_URL, 'https://ts-n.net/ranksystem/news_bb'); - curl_setopt($newb, CURLOPT_REFERER, 'TSN Ranksystem - News BB'); - curl_setopt($newb, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($newb, CURLOPT_MAXREDIRS, 10); - curl_setopt($newb, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt($newb, CURLOPT_CONNECTTIMEOUT, 5); - $cfg['teamspeak_news_bb'] = curl_exec($newb); - curl_close($newb); unset($newb); - if($cfg['teamspeak_news_bb'] != '') { - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='news_bb';\nUPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['teamspeak_news_bb']}' WHERE `param`='teamspeak_news_bb';\n"; - } - - if(version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>') && $cfg['version_latest_available'] != NULL) { - enter_logfile(4,$lang['upinf']); - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $clientid) { - usleep($cfg['teamspeak_query_command_delay']); - try { - if(isset($cfg['teamspeak_news_bb']) && $cfg['teamspeak_news_bb'] != '') { - $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog')."\n\n[U]Latest News:[/U]\n".$cfg['teamspeak_news_bb']); - } else { - $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog')); - } - enter_logfile(4," ".sprintf($lang['upusrinf'], $clientid)); - } catch (Exception $e) { - enter_logfile(6," ".sprintf($lang['upusrerr'], $clientid)); - } - } - } - $sqlexec .= update_rs($mysqlcon,$lang,$cfg,$dbname); - } - $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 - $dbversion = $mysqlcon->getAttribute(PDO::ATTR_SERVER_VERSION); - preg_match("/^[0-9\.-]+/", $dbversion, $version_number); - if ($cfg['rankup_time_assess_mode'] == 1) { - if(version_compare($version_number[0], '10.6', '>=') || version_compare($version_number[0], '8', '>=') && version_compare($version_number[0], '10', '<') || version_compare($version_number[0], '5.5.5-10.6', '>=') && version_compare($version_number[0], '5.5.6', '<')) { - $sqlexec .= "UPDATE `$dbname`.`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`;\n"; - } else { - $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"; - } - } else { - if(version_compare($version_number[0], '10.6', '>=') || version_compare($version_number[0], '8', '>=') && version_compare($version_number[0], '10', '<') || version_compare($version_number[0], '5.5.5-10.6', '>=') && version_compare($version_number[0], '5.5.6', '<')) { - $sqlexec .= "UPDATE `$dbname`.`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`;\n"; - } else { - $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"; - } - } - } - - enter_logfile(6,"calc_serverstats needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} -?> \ No newline at end of file + ($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++; + } + + if (isset($country_array[$nation])) { + $country_array[$nation]++; + } else { + $country_array[$nation] = 1; + } + + if (isset($platform_array[$platform])) { + $platform_array[$platform]++; + } else { + $platform_array[$platform] = 1; + } + + if (isset($count_version_user[$version])) { + $count_version_user[$version]++; + } else { + $count_version_user[$version] = 1; + } + + if ($uuid['count'] > 0) { + $total_online_time += $uuid['count']; + } + if ($uuid['idle'] > 0) { + $total_inactive_time += $uuid['idle']; + } + } + + 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; + } + + $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; + } + $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});\n"; + } + 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); + } + + $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; + } + $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});\n"; + } + 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); + } + + $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; + 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; + } + $allinsertversion .= "('{$version}',{$count}),"; + $cfg['temp_cache_versions'][$version] = $count; + } + 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 { + $cfg['temp_cache_versions'][$version] = $count; + $insertversion .= "('{$version}',{$count}),"; + } + } + } + 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); + } + + $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); + $serverinfo['virtualserver_total_ping'] = round((substr($serverinfo['virtualserver_total_ping'], 0, strpos($serverinfo['virtualserver_total_ping'], '.')).'.'.substr($serverinfo['virtualserver_total_ping'], (strpos($serverinfo['virtualserver_total_ping'], '.') + 1), 4))); + if ($serverinfo['virtualserver_total_ping'] > 32767) { + $serverinfo['virtualserver_total_ping'] = 32767; + } + if (! isset($serverinfo['virtualserver_weblist_enabled']) || $serverinfo['virtualserver_weblist_enabled'] === null) { + $serverinfo['virtualserver_weblist_enabled'] = 0; + } + + // 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 (intval($db_cache['job_check']['calc_server_stats']['timestamp']) < ($nowtime - 899)) { + $db_cache['job_check']['calc_server_stats']['timestamp'] = $nowtime; + $weekago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 28; + $monthago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 120; + if ($weekago < 1) { + $weekago = $weekago + 121; + } + if ($monthago < 1) { + $monthago = $monthago + 121; + } + + if (($entry_snapshot_count = $mysqlcon->query("SELECT count(DISTINCT(`id`)) AS `id` FROM `$dbname`.`user_snapshot`")->fetch(PDO::FETCH_ASSOC)) === false) { + enter_logfile(2, 'calc_serverstats 19:'.print_r($mysqlcon->errorInfo(), true)); + } + if ($entry_snapshot_count['id'] > 28) { + // Calc total_online_week + //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) { + if (($snapshot_count_week = $mysqlcon->query("SELECT SUM(`a`.`count` - `b`.`count`) AS `count` FROM `$dbname`.`user_snapshot` `a`, `$dbname`.`user_snapshot` `b` WHERE `b`.`cldbid` = `a`.`cldbid` AND `a`.`id`={$db_cache['job_check']['last_snapshot_id']['timestamp']} AND `b`.`id`={$weekago} AND `a`.`count`>`b`.`count`;")->fetch(PDO::FETCH_ASSOC)) === false) { + enter_logfile(2, 'calc_serverstats 20:'.print_r($mysqlcon->errorInfo(), true)); + } + if ($snapshot_count_week['count'] == null) { + $total_online_week = 0; + } else { + $total_online_week = $snapshot_count_week['count']; + } + } else { + $total_online_week = 0; + } + if ($entry_snapshot_count['id'] > 120) { + // Calc total_online_month + //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) { + if (($snapshot_count_month = $mysqlcon->query("SELECT SUM(`a`.`count` - `b`.`count`) AS `count` FROM `$dbname`.`user_snapshot` `a`, `$dbname`.`user_snapshot` `b` WHERE `b`.`cldbid` = `a`.`cldbid` AND `a`.`id`={$db_cache['job_check']['last_snapshot_id']['timestamp']} AND `b`.`id`={$monthago} AND `a`.`count`>`b`.`count`;")->fetch(PDO::FETCH_ASSOC)) === false) { + enter_logfile(2, 'calc_serverstats 21:'.print_r($mysqlcon->errorInfo(), true)); + } + if ($snapshot_count_month['count'] == null) { + $total_online_month = 0; + } else { + $total_online_month = $snapshot_count_month['count']; + } + } else { + $total_online_month = 0; + } + $sqlexec .= "UPDATE `$dbname`.`stats_server` SET `total_online_month`={$total_online_month},`total_online_week`={$total_online_week};\nUPDATE `$dbname`.`job_check` SET `timestamp`={$nowtime} WHERE `job_name`='calc_server_stats';\n"; + + if (intval($db_cache['job_check']['get_version']['timestamp']) < ($nowtime - 43199)) { + $db_cache['job_check']['get_version']['timestamp'] = $nowtime; + enter_logfile(6, 'Get the latest Ranksystem Version.'); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://ts-n.net/ranksystem/'.$cfg['version_update_channel']); + curl_setopt($ch, CURLOPT_REFERER, 'TSN Ranksystem'); + curl_setopt($ch, CURLOPT_USERAGENT, + $cfg['version_current_using'].';'. + php_uname('s').';'. + php_uname('r').';'. + phpversion().';'. + $dbtype.';'. + $cfg['teamspeak_host_address'].';'. + $cfg['teamspeak_voice_port'].';'. + ';'. //old installation path + $total_user.';'. + $user_today.';'. + $user_week.';'. + $user_month.';'. + $user_quarter.';'. + $total_online_week.';'. + $total_online_month.';'. + $total_active_time.';'. + $total_inactive_time.';'. + $cfg['temp_ts_version'].';'. + $cfg['temp_db_version'] + ); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_MAXREDIRS, 10); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); + $cfg['version_latest_available'] = curl_exec($ch); + curl_close($ch); + unset($ch); + + if (! isset($cfg['stats_news_html']) || $cfg['stats_news_html'] != '') { + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name`='news_html';\nUPDATE `$dbname`.`cfg_params` SET `value`='' WHERE `param`='stats_news_html';\n"; + } + $newh = curl_init(); + curl_setopt($newh, CURLOPT_URL, 'https://ts-n.net/ranksystem/news_html'); + curl_setopt($newh, CURLOPT_REFERER, 'TSN Ranksystem - News HTML'); + curl_setopt($newh, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($newh, CURLOPT_MAXREDIRS, 10); + curl_setopt($newh, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($newh, CURLOPT_CONNECTTIMEOUT, 5); + $cfg['stats_news_html'] = curl_exec($newh); + curl_close($newh); + unset($newh); + if ($cfg['stats_news_html'] != '') { + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='news_html';\nUPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['stats_news_html']}' WHERE `param`='stats_news_html';\n"; + } + + if (! isset($cfg['teamspeak_news_bb']) || $cfg['teamspeak_news_bb'] != '') { + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name`='news_bb';\nUPDATE `$dbname`.`cfg_params` SET `value`='' WHERE `param`='teamspeak_news_bb';\n"; + } + $newb = curl_init(); + curl_setopt($newb, CURLOPT_URL, 'https://ts-n.net/ranksystem/news_bb'); + curl_setopt($newb, CURLOPT_REFERER, 'TSN Ranksystem - News BB'); + curl_setopt($newb, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($newb, CURLOPT_MAXREDIRS, 10); + curl_setopt($newb, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($newb, CURLOPT_CONNECTTIMEOUT, 5); + $cfg['teamspeak_news_bb'] = curl_exec($newb); + curl_close($newb); + unset($newb); + if ($cfg['teamspeak_news_bb'] != '') { + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='news_bb';\nUPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['teamspeak_news_bb']}' WHERE `param`='teamspeak_news_bb';\n"; + } + + if (version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>') && $cfg['version_latest_available'] != null) { + enter_logfile(4, $lang['upinf']); + if (isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != null) { + foreach (array_flip($cfg['webinterface_admin_client_unique_id_list']) as $clientid) { + usleep($cfg['teamspeak_query_command_delay']); + try { + if (isset($cfg['teamspeak_news_bb']) && $cfg['teamspeak_news_bb'] != '') { + $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog')."\n\n[U]Latest News:[/U]\n".$cfg['teamspeak_news_bb']); + } else { + $ts3->clientGetByUid($clientid)->message(sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog')); + } + enter_logfile(4, ' '.sprintf($lang['upusrinf'], $clientid)); + } catch (Exception $e) { + enter_logfile(6, ' '.sprintf($lang['upusrerr'], $clientid)); + } + } + } + $sqlexec .= update_rs($mysqlcon, $lang, $cfg, $dbname); + } + $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 + $dbversion = $mysqlcon->getAttribute(PDO::ATTR_SERVER_VERSION); + preg_match("/^[0-9\.-]+/", $dbversion, $version_number); + if ($cfg['rankup_time_assess_mode'] == 1) { + if (version_compare($version_number[0], '10.6', '>=') || version_compare($version_number[0], '8', '>=') && version_compare($version_number[0], '10', '<') || version_compare($version_number[0], '5.5.5-10.6', '>=') && version_compare($version_number[0], '5.5.6', '<')) { + $sqlexec .= "UPDATE `$dbname`.`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`;\n"; + } else { + $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"; + } + } else { + if (version_compare($version_number[0], '10.6', '>=') || version_compare($version_number[0], '8', '>=') && version_compare($version_number[0], '10', '<') || version_compare($version_number[0], '5.5.5-10.6', '>=') && version_compare($version_number[0], '5.5.6', '<')) { + $sqlexec .= "UPDATE `$dbname`.`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`;\n"; + } else { + $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"; + } + } + } + + enter_logfile(6, 'calc_serverstats needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/calc_user.php b/jobs/calc_user.php index 27a4ff3..4711596 100644 --- a/jobs/calc_user.php +++ b/jobs/calc_user.php @@ -1,345 +1,360 @@ - 1800) { - enter_logfile(4,"Much time gone since last scan.. set addtime to 1 second."); - $addtime = 1; - } elseif($addtime < 0) { - enter_logfile(3,"Negative time valie (now < last scan).. Error in your machine time!.. set addtime to 1 second."); - $addtime = 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($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])) { - $isonline = 0; - foreach($allclients as $client) { - if($client['client_unique_identifier'] == $uuid) { - $isonline = 1; - $temp_cldbid = $client['client_database_id']; - } - } - if($value['timecount'] == 0 && $value['timestamp'] == 4273093200) { - //remove user - if(($user = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` WHERE `uuid`='{$uuid}'")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile(2,"Database error on selecting user (admin function remove user): ".print_r($mysqlcon->errorInfo(), true)); - } else { - $temp_cldbid = $user[$uuid]['cldbid']; - $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`admin_addtime` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`stats_user` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`user` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`user_iphash` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$temp_cldbid}';\n"; - enter_logfile(4,sprintf($lang['wihladm45'],$user[$uuid]['name'],$uuid,$temp_cldbid).' ('.$lang['wihladm46'].')'); - if(isset($db_cache['all_user'][$uuid])) unset($db_cache['all_user'][$uuid]); - if(isset($db_cache['admin_addtime'][$uuid])) unset($db_cache['admin_addtime'][$uuid]); - if(isset($db_cache['addon_assign_groups'][$uuid])) unset($db_cache['addon_assign_groups'][$uuid]); - } - unset($user); - } else { - $db_cache['all_user'][$uuid]['count'] += $value['timecount']; - if($db_cache['all_user'][$uuid]['count'] < 0) { - $db_cache['all_user'][$uuid]['count'] = $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']; - } - if($isonline != 1) { - if(($user = $mysqlcon->query("SELECT `uuid`,`cldbid` FROM `$dbname`.`user` WHERE `uuid`='{$uuid}'")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile(2,"Database error on selecting user (admin function remove/add time): ".print_r($mysqlcon->errorInfo(), true)); - } else { - $temp_cldbid = $user[$uuid]['cldbid']; - $sqlexec .= "UPDATE `$dbname`.`user` SET `count`='{$db_cache['all_user'][$uuid]['count']}', `idle`='{$db_cache['all_user'][$uuid]['idle']}' WHERE `uuid`='{$uuid}';\n"; - } - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime` WHERE `timestamp`=".$value['timestamp']." AND `uuid`='$uuid';") === false) { - enter_logfile(2,"Database error on updating user (admin function remove/add time): ".print_r($mysqlcon->errorInfo(), true)); - } - if(($usersnap = $mysqlcon->query("SELECT `id`,`cldbid`,`count`,`idle` FROM `$dbname`.`user_snapshot` WHERE `cldbid`={$temp_cldbid}")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile(2,"Database error on selecting user (admin function remove/add time): ".print_r($mysqlcon->errorInfo(), true)); - } else { - foreach($usersnap as $id => $valuesnap) { - $valuesnap['count'] += $value['timecount']; - if($valuesnap['count'] < 0) { - $valuesnap['count'] = $valuesnap['idle'] = 0; - } elseif ($valuesnap['idle'] > $valuesnap['count']) { - $valuesnap['idle'] = $valuesnap['count']; - } - $sqlexec .= "UPDATE `$dbname`.`user_snapshot` SET `count`='{$valuesnap['count']}', `idle`='{$valuesnap['idle']}' WHERE `cldbid`='{$temp_cldbid}' AND `id`='{$id}';\n"; - } - } - enter_logfile(4,sprintf($lang['sccupcount2'],$value['timecount'],$uuid).' ('.$lang['wihladm46'].')'); - unset($user, $usersnap); - } - } - } - unset($db_cache['admin_addtime']); - } - - foreach ($allclients as $client) { - $client_groups_rankup = array(); - $name = $mysqlcon->quote((mb_substr(mb_convert_encoding($client['client_nickname'],'UTF-8','auto'),0,30)), ENT_QUOTES); - $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); - $sgroups = array_flip(explode(",", $client['client_servergroups'])); - if($client['client_country'] !== NULL && strlen($client['client_country']) > 2 || $client['client_country'] === NULL) $client['client_country'] = 'XX'; - $client['client_platform'] = mb_substr($client['client_platform'],0,32); - $client['client_version'] = mb_substr($client['client_version'],0,64); - - 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']) { - $clientidle = 0; - } - $multipleonline[$uid] = 0; - if(isset($cfg['rankup_excepted_unique_client_id_list'][$uid])) { - $except = 3; - } elseif($cfg['rankup_excepted_group_id_list'] != NULL && array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list'])) { - $except = 2; - } else { - 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(5,sprintf($lang['resettime'], $client['client_nickname'], $uid, $client['client_database_id'])); - $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$client['client_database_id']}';\n"; - } - $except = 0; - } - 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(5,sprintf($lang['changedbid'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['all_user'][$uid]['cldbid'])); - $count = 1; - $idle = 0; - $boosttime = 0; - } else { - $hitboost = 0; - $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($db_cache['all_user'][$uid]['boosttime']==0) { - $boosttime = $nowtime; - } else { - if ($nowtime > $db_cache['all_user'][$uid]['boosttime'] + $boost['time'] && (!isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->serverGroupClientDel($boost['group'], $client['client_database_id']); - $boosttime = 0; - enter_logfile(5,sprintf($lang['sgrprm'], $db_cache['groups'][$boost['group']]['sgidname'], $boost['group'], $client['client_nickname'], $uid, $client['client_database_id']).' [Boost-Group]'); - } catch (Exception $e) { - enter_logfile(2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); - $db_cache['all_user'][$uid]['grouperror'] = $nowtime; - } - } - } - $count = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['count']; - if ($clientidle > $addtime) { - $idle = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['idle']; - } - } - } - } - if($cfg['rankup_boost_definition'] == 0 or $hitboost == 0) { - $count = $addtime + $db_cache['all_user'][$uid]['count']; - $boosttime = 0; - if ($clientidle > $addtime) { - $idle = $addtime + $db_cache['all_user'][$uid]['idle']; - } - } - } - $dtF = new DateTime("@0"); - if ($cfg['rankup_time_assess_mode'] == 1) { - $activetime = $count - $idle; - } else { - $activetime = $count; - } - $dtT = new DateTime("@".round($activetime)); - - foreach($sgroups as $clientgroup => $dummy) { - foreach($cfg['rankup_definition'] as $rank) { - if($rank['group'] == $clientgroup && $rank['keep'] == 0) { - $client_groups_rankup[$clientgroup] = 0; - } - } - } - - $grpcount=0; - foreach ($cfg['rankup_definition'] as $rank) { - $grpcount++; - 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 > $rank['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[$rank['group']])) { - if ($db_cache['all_user'][$uid]['grpid'] != NULL && $db_cache['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$db_cache['all_user'][$uid]['grpid']])) { - $donotremove = 0; - foreach($cfg['rankup_definition'] as $rank2) { - if($rank2['group'] == $db_cache['all_user'][$uid]['grpid'] && $rank2['keep'] == 1 && $activetime > $rank2['time']) { - $donotremove = 1; break; - } - } - if($donotremove == 0 && (!isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->serverGroupClientDel($db_cache['all_user'][$uid]['grpid'], $client['client_database_id']); - enter_logfile(5,sprintf($lang['sgrprm'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'], $client['client_nickname'], $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(2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); - $db_cache['all_user'][$uid]['grouperror'] = $nowtime; - } - } - } - if(!isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300)) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->serverGroupClientAdd($rank['group'], $client['client_database_id']); - $db_cache['all_user'][$uid]['grpsince'] = $nowtime; - enter_logfile(5,sprintf($lang['sgrpadd'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'], $client['client_nickname'], $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,$db_cache['groups'][$rank['group']]['sgidname'],$client['client_nickname']), 1, NULL, sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$rank['group']]['sgidname'],$rank['group']), 2); - } - } catch (Exception $e) { - enter_logfile(2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'])); - $db_cache['all_user'][$uid]['grouperror'] = $nowtime; - } - } - } - if($grpcount == 1) { - $db_cache['all_user'][$uid]['nextup'] = 0; - } - $db_cache['all_user'][$uid]['grpid'] = $rank['group']; - if($rank['keep'] != 1) break; - } else { - $db_cache['all_user'][$uid]['nextup'] = $rank['time'] - $activetime; - } - } - - foreach($client_groups_rankup as $removegroup => $dummy) { - if($removegroup != NULL && $removegroup != 0 && $removegroup != $db_cache['all_user'][$uid]['grpid'] && (!isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))){ - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupClientDel($removegroup, $client['client_database_id']); - enter_logfile(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, $client['client_nickname'], $uid, $client['client_database_id'])); - } catch (Exception $e) { - enter_logfile(2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$removegroup]['sgidname'], $removegroup)); - $db_cache['all_user'][$uid]['grouperror'] = $nowtime; - } - } elseif ($cfg['rankup_excepted_remove_group_switch'] == 1 && $removegroup != NULL && $removegroup != 0 && $removegroup == $db_cache['all_user'][$uid]['grpid'] && $cfg['rankup_excepted_mode'] == 0 && ($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && (!isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupClientDel($removegroup, $client['client_database_id']); - enter_logfile(5,sprintf("Removed servergroup %s (ID: %s) cause EXCEPTED (%s) from user %s (unique Client-ID: %s; Client-database-ID %s).", $db_cache['groups'][$removegroup]['sgidname'], $removegroup, exception_client_code($db_cache['all_user'][$uid]['except']), $client['client_nickname'], $uid, $client['client_database_id'])); - } - } - unset($client_groups_rankup); - $updatedata[] = array( - "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), - "cldbid" => $client['client_database_id'], - "count" => $count, - "name" => $name, - "lastseen" => $nowtime, - "grpid" => $db_cache['all_user'][$uid]['grpid'], - "nextup" => $db_cache['all_user'][$uid]['nextup'], - "idle" => $idle, - "cldgroup" => $client['client_servergroups'], - "boosttime" => $boosttime, - "platform" => $client['client_platform'], - "nation" => $client['client_country'], - "version" => $client['client_version'], - "except" => $except, - "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 { - $db_cache['all_user'][$uid]['grpid'] = 0; - foreach ($cfg['rankup_definition'] as $rank) { - if (isset($sgroups[$rank['group']])) { - $db_cache['all_user'][$uid]['grpid'] = $rank['group']; - break; - } - } - $insertdata[] = array( - "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), - "cldbid" => $client['client_database_id'], - "count" => $addtime, - "name" => $name, - "lastseen" => $nowtime, - "grpid" => $db_cache['all_user'][$uid]['grpid'], - "nextup" => (key($cfg['rankup_definition']) - $addtime), - "idle" => 0, - "cldgroup" => $client['client_servergroups'], - "boosttime" => 0, - "platform" => $client['client_platform'], - "nation" => $client['client_country'], - "version" => $client['client_version'], - "firstcon" => $nowtime, - "except" => $except, - "grpsince" => 0, - "cid" => $client['cid'] - ); - $db_cache['all_user'][$uid]['cldbid'] = $client['client_database_id']; - $db_cache['all_user'][$uid]['count'] = $addtime; - $db_cache['all_user'][$uid]['idle'] = 0; - $db_cache['all_user'][$uid]['nextup'] = (key($cfg['rankup_definition']) - $addtime); - $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(5,sprintf($lang['adduser'], $client['client_nickname'], $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); - - if ($updatedata != NULL) { - $sqlinsertvalues = ''; - foreach ($updatedata as $updatearr) { - $sqlinsertvalues .= "(".$updatearr['uuid'].",".$updatearr['cldbid'].",".$updatearr['count'].",".$updatearr['name'].",".$updatearr['lastseen'].",".$updatearr['grpid'].",".$updatearr['nextup'].",".$updatearr['idle'].",'".$updatearr['cldgroup']."',".$updatearr['boosttime'].",'".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."',".$updatearr['except'].",".$updatearr['grpsince'].",".$updatearr['cid'].",1),"; - } - $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); - $sqlexec .= "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); - } - - if ($insertdata != NULL) { - $sqlinsertvalues = ''; - foreach ($insertdata as $updatearr) { - $sqlinsertvalues .= "(".$updatearr['uuid'].",".$updatearr['cldbid'].",".$updatearr['count'].",".$updatearr['name'].",".$updatearr['lastseen'].",".$updatearr['grpid'].",".$updatearr['nextup'].",".$updatearr['idle'].",'".$updatearr['cldgroup']."',".$updatearr['boosttime'].",'".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."',".$updatearr['except'].",".$updatearr['grpsince'].",".$updatearr['cid'].",1,".$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`);\n"; - unset($insertdata, $sqlinsertvalues); - } - - enter_logfile(6,"calc_user needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} -?> \ No newline at end of file + 1800) { + enter_logfile(4, 'Much time gone since last scan.. set addtime to 1 second.'); + $addtime = 1; + } elseif ($addtime < 0) { + enter_logfile(3, 'Negative time valie (now < last scan).. Error in your machine time!.. set addtime to 1 second.'); + $addtime = 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 = []; + + 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])) { + $isonline = 0; + foreach ($allclients as $client) { + if ($client['client_unique_identifier'] == $uuid) { + $isonline = 1; + $temp_cldbid = $client['client_database_id']; + } + } + if ($value['timecount'] == 0 && $value['timestamp'] == 4273093200) { + //remove user + if (($user = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` WHERE `uuid`='{$uuid}'")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + enter_logfile(2, 'Database error on selecting user (admin function remove user): '.print_r($mysqlcon->errorInfo(), true)); + } else { + $temp_cldbid = $user[$uuid]['cldbid']; + $sqlexec .= "DELETE FROM `$dbname`.`addon_assign_groups` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`admin_addtime` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`stats_user` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`user` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`user_iphash` WHERE `uuid`='{$uuid}';\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$temp_cldbid}';\n"; + enter_logfile(4, sprintf($lang['wihladm45'], $user[$uuid]['name'], $uuid, $temp_cldbid).' ('.$lang['wihladm46'].')'); + if (isset($db_cache['all_user'][$uuid])) { + unset($db_cache['all_user'][$uuid]); + } + if (isset($db_cache['admin_addtime'][$uuid])) { + unset($db_cache['admin_addtime'][$uuid]); + } + if (isset($db_cache['addon_assign_groups'][$uuid])) { + unset($db_cache['addon_assign_groups'][$uuid]); + } + } + unset($user); + } else { + $db_cache['all_user'][$uuid]['count'] += $value['timecount']; + if ($db_cache['all_user'][$uuid]['count'] < 0) { + $db_cache['all_user'][$uuid]['count'] = $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']; + } + if ($isonline != 1) { + if (($user = $mysqlcon->query("SELECT `uuid`,`cldbid` FROM `$dbname`.`user` WHERE `uuid`='{$uuid}'")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + enter_logfile(2, 'Database error on selecting user (admin function remove/add time): '.print_r($mysqlcon->errorInfo(), true)); + } else { + $temp_cldbid = $user[$uuid]['cldbid']; + $sqlexec .= "UPDATE `$dbname`.`user` SET `count`='{$db_cache['all_user'][$uuid]['count']}', `idle`='{$db_cache['all_user'][$uuid]['idle']}' WHERE `uuid`='{$uuid}';\n"; + } + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime` WHERE `timestamp`=".$value['timestamp']." AND `uuid`='$uuid';") === false) { + enter_logfile(2, 'Database error on updating user (admin function remove/add time): '.print_r($mysqlcon->errorInfo(), true)); + } + if (($usersnap = $mysqlcon->query("SELECT `id`,`cldbid`,`count`,`idle` FROM `$dbname`.`user_snapshot` WHERE `cldbid`={$temp_cldbid}")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + enter_logfile(2, 'Database error on selecting user (admin function remove/add time): '.print_r($mysqlcon->errorInfo(), true)); + } else { + foreach ($usersnap as $id => $valuesnap) { + $valuesnap['count'] += $value['timecount']; + if ($valuesnap['count'] < 0) { + $valuesnap['count'] = $valuesnap['idle'] = 0; + } elseif ($valuesnap['idle'] > $valuesnap['count']) { + $valuesnap['idle'] = $valuesnap['count']; + } + $sqlexec .= "UPDATE `$dbname`.`user_snapshot` SET `count`='{$valuesnap['count']}', `idle`='{$valuesnap['idle']}' WHERE `cldbid`='{$temp_cldbid}' AND `id`='{$id}';\n"; + } + } + enter_logfile(4, sprintf($lang['sccupcount2'], $value['timecount'], $uuid).' ('.$lang['wihladm46'].')'); + unset($user, $usersnap); + } + } + } + unset($db_cache['admin_addtime']); + } + + foreach ($allclients as $client) { + $client_groups_rankup = []; + $name = $mysqlcon->quote((mb_substr(mb_convert_encoding($client['client_nickname'], 'UTF-8', 'auto'), 0, 30)), ENT_QUOTES); + $uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); + $sgroups = array_flip(explode(',', $client['client_servergroups'])); + if ($client['client_country'] !== null && strlen($client['client_country']) > 2 || $client['client_country'] === null) { + $client['client_country'] = 'XX'; + } + $client['client_platform'] = mb_substr($client['client_platform'], 0, 32); + $client['client_version'] = mb_substr($client['client_version'], 0, 64); + + 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']) { + $clientidle = 0; + } + $multipleonline[$uid] = 0; + if (isset($cfg['rankup_excepted_unique_client_id_list'][$uid])) { + $except = 3; + } elseif ($cfg['rankup_excepted_group_id_list'] != null && array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list'])) { + $except = 2; + } else { + 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(5, sprintf($lang['resettime'], $client['client_nickname'], $uid, $client['client_database_id'])); + $sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$client['client_database_id']}';\n"; + } + $except = 0; + } + 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(5, sprintf($lang['changedbid'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['all_user'][$uid]['cldbid'])); + $count = 1; + $idle = 0; + $boosttime = 0; + } else { + $hitboost = 0; + $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 ($db_cache['all_user'][$uid]['boosttime'] == 0) { + $boosttime = $nowtime; + } else { + if ($nowtime > $db_cache['all_user'][$uid]['boosttime'] + $boost['time'] && (! isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->serverGroupClientDel($boost['group'], $client['client_database_id']); + $boosttime = 0; + enter_logfile(5, sprintf($lang['sgrprm'], $db_cache['groups'][$boost['group']]['sgidname'], $boost['group'], $client['client_nickname'], $uid, $client['client_database_id']).' [Boost-Group]'); + } catch (Exception $e) { + enter_logfile(2, 'TS3 error: '.$e->getCode().': '.$e->getMessage().' ; '.sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); + $db_cache['all_user'][$uid]['grouperror'] = $nowtime; + } + } + } + $count = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['count']; + if ($clientidle > $addtime) { + $idle = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['idle']; + } + } + } + } + if ($cfg['rankup_boost_definition'] == 0 or $hitboost == 0) { + $count = $addtime + $db_cache['all_user'][$uid]['count']; + $boosttime = 0; + if ($clientidle > $addtime) { + $idle = $addtime + $db_cache['all_user'][$uid]['idle']; + } + } + } + $dtF = new DateTime('@0'); + if ($cfg['rankup_time_assess_mode'] == 1) { + $activetime = $count - $idle; + } else { + $activetime = $count; + } + $dtT = new DateTime('@'.round($activetime)); + + foreach ($sgroups as $clientgroup => $dummy) { + foreach ($cfg['rankup_definition'] as $rank) { + if ($rank['group'] == $clientgroup && $rank['keep'] == 0) { + $client_groups_rankup[$clientgroup] = 0; + } + } + } + + $grpcount = 0; + foreach ($cfg['rankup_definition'] as $rank) { + $grpcount++; + 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 > $rank['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[$rank['group']])) { + if ($db_cache['all_user'][$uid]['grpid'] != null && $db_cache['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$db_cache['all_user'][$uid]['grpid']])) { + $donotremove = 0; + foreach ($cfg['rankup_definition'] as $rank2) { + if ($rank2['group'] == $db_cache['all_user'][$uid]['grpid'] && $rank2['keep'] == 1 && $activetime > $rank2['time']) { + $donotremove = 1; + break; + } + } + if ($donotremove == 0 && (! isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->serverGroupClientDel($db_cache['all_user'][$uid]['grpid'], $client['client_database_id']); + enter_logfile(5, sprintf($lang['sgrprm'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'], $client['client_nickname'], $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(2, 'TS3 error: '.$e->getCode().': '.$e->getMessage().' ; '.sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); + $db_cache['all_user'][$uid]['grouperror'] = $nowtime; + } + } + } + if (! isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300)) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->serverGroupClientAdd($rank['group'], $client['client_database_id']); + $db_cache['all_user'][$uid]['grpsince'] = $nowtime; + enter_logfile(5, sprintf($lang['sgrpadd'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'], $client['client_nickname'], $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, $db_cache['groups'][$rank['group']]['sgidname'], $client['client_nickname']), 1, null, sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group']), 2); + } + } catch (Exception $e) { + enter_logfile(2, 'TS3 error: '.$e->getCode().': '.$e->getMessage().' ; '.sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'])); + $db_cache['all_user'][$uid]['grouperror'] = $nowtime; + } + } + } + if ($grpcount == 1) { + $db_cache['all_user'][$uid]['nextup'] = 0; + } + $db_cache['all_user'][$uid]['grpid'] = $rank['group']; + if ($rank['keep'] != 1) { + break; + } + } else { + $db_cache['all_user'][$uid]['nextup'] = $rank['time'] - $activetime; + } + } + + foreach ($client_groups_rankup as $removegroup => $dummy) { + if ($removegroup != null && $removegroup != 0 && $removegroup != $db_cache['all_user'][$uid]['grpid'] && (! isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupClientDel($removegroup, $client['client_database_id']); + enter_logfile(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, $client['client_nickname'], $uid, $client['client_database_id'])); + } catch (Exception $e) { + enter_logfile(2, 'TS3 error: '.$e->getCode().': '.$e->getMessage().' ; '.sprintf($lang['sgrprerr'], $client['client_nickname'], $uid, $client['client_database_id'], $db_cache['groups'][$removegroup]['sgidname'], $removegroup)); + $db_cache['all_user'][$uid]['grouperror'] = $nowtime; + } + } elseif ($cfg['rankup_excepted_remove_group_switch'] == 1 && $removegroup != null && $removegroup != 0 && $removegroup == $db_cache['all_user'][$uid]['grpid'] && $cfg['rankup_excepted_mode'] == 0 && ($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && (! isset($db_cache['all_user'][$uid]['grouperror']) || $db_cache['all_user'][$uid]['grouperror'] < ($nowtime - 300))) { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupClientDel($removegroup, $client['client_database_id']); + enter_logfile(5, sprintf('Removed servergroup %s (ID: %s) cause EXCEPTED (%s) from user %s (unique Client-ID: %s; Client-database-ID %s).', $db_cache['groups'][$removegroup]['sgidname'], $removegroup, exception_client_code($db_cache['all_user'][$uid]['except']), $client['client_nickname'], $uid, $client['client_database_id'])); + } + } + unset($client_groups_rankup); + $updatedata[] = [ + 'uuid' => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), + 'cldbid' => $client['client_database_id'], + 'count' => $count, + 'name' => $name, + 'lastseen' => $nowtime, + 'grpid' => $db_cache['all_user'][$uid]['grpid'], + 'nextup' => $db_cache['all_user'][$uid]['nextup'], + 'idle' => $idle, + 'cldgroup' => $client['client_servergroups'], + 'boosttime' => $boosttime, + 'platform' => $client['client_platform'], + 'nation' => $client['client_country'], + 'version' => $client['client_version'], + 'except' => $except, + '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 { + $db_cache['all_user'][$uid]['grpid'] = 0; + foreach ($cfg['rankup_definition'] as $rank) { + if (isset($sgroups[$rank['group']])) { + $db_cache['all_user'][$uid]['grpid'] = $rank['group']; + break; + } + } + $insertdata[] = [ + 'uuid' => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), + 'cldbid' => $client['client_database_id'], + 'count' => $addtime, + 'name' => $name, + 'lastseen' => $nowtime, + 'grpid' => $db_cache['all_user'][$uid]['grpid'], + 'nextup' => (key($cfg['rankup_definition']) - $addtime), + 'idle' => 0, + 'cldgroup' => $client['client_servergroups'], + 'boosttime' => 0, + 'platform' => $client['client_platform'], + 'nation' => $client['client_country'], + 'version' => $client['client_version'], + 'firstcon' => $nowtime, + 'except' => $except, + 'grpsince' => 0, + 'cid' => $client['cid'], + ]; + $db_cache['all_user'][$uid]['cldbid'] = $client['client_database_id']; + $db_cache['all_user'][$uid]['count'] = $addtime; + $db_cache['all_user'][$uid]['idle'] = 0; + $db_cache['all_user'][$uid]['nextup'] = (key($cfg['rankup_definition']) - $addtime); + $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(5, sprintf($lang['adduser'], $client['client_nickname'], $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); + + if ($updatedata != null) { + $sqlinsertvalues = ''; + foreach ($updatedata as $updatearr) { + $sqlinsertvalues .= '('.$updatearr['uuid'].','.$updatearr['cldbid'].','.$updatearr['count'].','.$updatearr['name'].','.$updatearr['lastseen'].','.$updatearr['grpid'].','.$updatearr['nextup'].','.$updatearr['idle'].",'".$updatearr['cldgroup']."',".$updatearr['boosttime'].",'".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."',".$updatearr['except'].','.$updatearr['grpsince'].','.$updatearr['cid'].',1),'; + } + $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); + $sqlexec .= "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); + } + + if ($insertdata != null) { + $sqlinsertvalues = ''; + foreach ($insertdata as $updatearr) { + $sqlinsertvalues .= '('.$updatearr['uuid'].','.$updatearr['cldbid'].','.$updatearr['count'].','.$updatearr['name'].','.$updatearr['lastseen'].','.$updatearr['grpid'].','.$updatearr['nextup'].','.$updatearr['idle'].",'".$updatearr['cldgroup']."',".$updatearr['boosttime'].",'".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."',".$updatearr['except'].','.$updatearr['grpsince'].','.$updatearr['cid'].',1,'.$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`);\n"; + unset($insertdata, $sqlinsertvalues); + } + + enter_logfile(6, 'calc_user needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/calc_user_snapshot.php b/jobs/calc_user_snapshot.php index b778099..b47c643 100644 --- a/jobs/calc_user_snapshot.php +++ b/jobs/calc_user_snapshot.php @@ -1,30 +1,35 @@ - 21600) { - if(isset($db_cache['all_user'])) { - $db_cache['job_check']['last_snapshot_id']['timestamp'] = $nextid = intval($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(6,"calc_user_snapshot needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} \ No newline at end of file + 21600) { + if (isset($db_cache['all_user'])) { + $db_cache['job_check']['last_snapshot_id']['timestamp'] = $nextid = intval($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(6, 'calc_user_snapshot needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/calc_userstats.php b/jobs/calc_userstats.php index 6d1fb8b..ac265fb 100644 --- a/jobs/calc_userstats.php +++ b/jobs/calc_userstats.php @@ -1,164 +1,195 @@ -= (ceil(count($db_cache['all_user']) / $limit_calc) * $limit_calc)) { - $job_begin = 0; - $job_end = $limit_calc; - } else { - $job_end = $job_begin + $limit_calc; - } - - $sqlhis = array_slice($db_cache['all_user'],$job_begin ,$limit_calc); - - $cldbids = ''; - foreach ($sqlhis as $uuid => $userstats) { - $cldbids .= $userstats['cldbid'].','; - } - $cldbids = substr($cldbids, 0, -1); - - $dayago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 4; - $weekago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 28; - $monthago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 120; - if ($dayago < 1) $dayago += 121; - if ($weekago < 1) $weekago += 121; - if ($monthago < 1) $monthago += 121; - - if(isset($sqlhis) && $sqlhis != NULL) { - enter_logfile(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 ({$db_cache['job_check']['last_snapshot_id']['timestamp']},{$dayago},{$weekago},{$monthago}) AND `cldbid` IN ($cldbids)")->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC)) === false) { - enter_logfile(2,"calc_userstats 6:".print_r($mysqlcon->errorInfo(), true)); - } - - $allupdateuuid = ''; - - foreach ($sqlhis as $uuid => $userstats) { - if($userstats['lastseen'] > ($nowtime - 2678400)) { - check_shutdown(); usleep($cfg['teamspeak_query_command_delay']); - - if(isset($userdata[$userstats['cldbid']]) && $userdata[$userstats['cldbid']] != NULL) { - $keybase = array_search($db_cache['job_check']['last_snapshot_id']['timestamp'], array_column($userdata[$userstats['cldbid']], 'id')); - $keyday = array_search($dayago, 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')); - - if(isset($userdata[$userstats['cldbid']]) && isset($userdata[$userstats['cldbid']][$keyday]) && $userdata[$userstats['cldbid']][$keyday]['id'] == $dayago) { - $count_day = $userdata[$userstats['cldbid']][$keybase]['count'] - $userdata[$userstats['cldbid']][$keyday]['count']; - $idle_day = $userdata[$userstats['cldbid']][$keybase]['idle'] - $userdata[$userstats['cldbid']][$keyday]['idle']; - $active_day = $count_day - $idle_day; - if($count_day < 0 || $count_day < $idle_day) $count_day = 0; - if($idle_day < 0 || $count_day < $idle_day) $idle_day = 0; - if($active_day < 0 || $count_day < $idle_day) $active_day = 0; - } else { - $count_day = $idle_day = $active_day = 0; - } - if(isset($userdata[$userstats['cldbid']]) && isset($userdata[$userstats['cldbid']][$keyweek]) && $userdata[$userstats['cldbid']][$keyweek]['id'] == $weekago) { - $count_week = $userdata[$userstats['cldbid']][$keybase]['count'] - $userdata[$userstats['cldbid']][$keyweek]['count']; - $idle_week = $userdata[$userstats['cldbid']][$keybase]['idle'] - $userdata[$userstats['cldbid']][$keyweek]['idle']; - $active_week = $count_week - $idle_week; - if($count_week < 0 || $count_week < $idle_week) $count_week = 0; - if($idle_week < 0 || $count_week < $idle_week) $idle_week = 0; - if($active_week < 0 || $count_week < $idle_week) $active_week = 0; - } else { - $count_week = $idle_week = $active_week = 0; - } - if(isset($userdata[$userstats['cldbid']]) && isset($userdata[$userstats['cldbid']][$keymonth]) && $userdata[$userstats['cldbid']][$keymonth]['id'] == $monthago) { - $count_month = $userdata[$userstats['cldbid']][$keybase]['count'] - $userdata[$userstats['cldbid']][$keymonth]['count']; - $idle_month = $userdata[$userstats['cldbid']][$keybase]['idle'] - $userdata[$userstats['cldbid']][$keymonth]['idle']; - $active_month = $count_month - $idle_month; - if($idle_month < 0 || $count_month < $idle_month) $idle_month = 0; - if($count_month < 0 || $count_month < $idle_month) $count_month = 0; - if($active_month < 0 || $count_month < $idle_month) $active_month = 0; - } else { - $count_month = $idle_month = $active_month = 0; - } - } else { - $count_day = $idle_day = $active_day = $count_week = $idle_week = $active_week = $count_month = $idle_month = $active_month = 0; - } - - try { - $clientinfo = $ts3->clientInfoDb($userstats['cldbid']); - if($clientinfo['client_description'] !== NULL) { - $clientdesc = $mysqlcon->quote($clientinfo['client_description'], ENT_QUOTES); - } else { - $clientdesc = "NULL"; - } - if($clientinfo['client_totalconnections'] > 16777215) $clientinfo['client_totalconnections'] = 16777215; - } catch (Exception $e) { - if($e->getCode() == 512 || $e->getCode() == 1281) { - enter_logfile(6,"Client (uuid: ".$uuid." cldbid: ".$userstats['cldbid'].") known by Ranksystem is missing in TS database, perhaps its already deleted or cldbid changed. Try to search for client by uuid."); - try { - $getcldbid = $ts3->clientFindDb($uuid, TRUE); - if($getcldbid[0] != $userstats['cldbid']) { - enter_logfile(4," Client (uuid: ".$uuid." cldbid: ".$userstats['cldbid'].") known by the Ranksystem changed its cldbid. New cldbid is ".$getcldbid[0]."."); - $db_cache['all_user'][$uuid]['cldbid'] = $getcldbid[0]; - if($cfg['rankup_client_database_id_change_switch'] == 1) { - $sqlexec .= "UPDATE `$dbname`.`user` SET `count`=0,`idle`=0 WHERE `uuid`='$uuid';\nUPDATE `$dbname`.`stats_user` SET `count_day`=0,`count_week`=0,`count_month`=0,`idle_day`=0,`idle_week`=0,`idle_month`=0,`active_day`=0,`active_week`=0,`active_month`=0 WHERE `uuid`='$uuid';\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; - enter_logfile(4," ".sprintf($lang['changedbid'], $userstats['name'], $uuid, $userstats['cldbid'], $getcldbid[0])); - } else { - $sqlexec .= "UPDATE `$dbname`.`user` SET `cldbid`={$getcldbid[0]} WHERE `uuid`='$uuid';\n"; - // select current user_snapshot entries and insert this with the new database-ID - if(isset($userdata[$userstats['cldbid']])) { - $allinsert = ''; - foreach($userdata[$userstats['cldbid']] as $id => $data) { - $allinsert .= "($id,'{$getcldbid[0]}',{$data['count']},{$data['idle']}),"; - } - if ($allinsert != '') { - $allinsert = substr($allinsert, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`user_snapshot` (`id`,`cldbid`,`count`,`idle`) VALUES $allinsert ON DUPLICATE KEY UPDATE `count`=VALUES(`count`),`idle`=VALUES(`idle`);\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; - } - unset($allinsert); - } - enter_logfile(4," Store new cldbid ".$getcldbid[0]." for client (uuid: ".$uuid." old cldbid: ".$userstats['cldbid'].")"); - } - } else { - enter_logfile(3," Client (uuid: ".$uuid." cldbid: ".$userstats['cldbid'].") is missing in TS database, but TeamSpeak answers on question with the same cldbid (".$getcldbid[0].").. It's weird!"); - } - } catch (Exception $e) { - if($e->getCode() == 2568) { - enter_logfile(4,$e->getCode() . ': ' . $e->getMessage()."; Error due command clientdbfind (permission: b_virtualserver_client_dbsearch needed)."); - } else { - enter_logfile(6,$e->getCode() . ': ' . $e->getMessage()."; Client (uuid: ".$uuid." cldbid: ".$userstats['cldbid'].") is missing in TS database, it seems to be deleted. Run the !clean command to correct this."); - $sqlexec .= "UPDATE `$dbname`.`stats_user` SET `count_day`=0,`count_week`=0,`count_month`=0,`idle_day`=0,`idle_week`=0,`idle_month`=0,`active_day`=0,`active_week`=0,`active_month`=0,`removed`=1 WHERE `uuid`='$uuid';\n"; - } - } - } else { - enter_logfile(2,$lang['errorts3'].$e->getCode().': '.$e->getMessage()."; Error due command clientdbinfo for client-database-ID {$userstats['cldbid']} (permission: b_virtualserver_client_dbinfo needed)."); - } - - $clientdesc = $clientinfo['client_base64HashClientUID'] = "NULL"; - $clientinfo['client_totalconnections'] = $clientinfo['client_total_bytes_uploaded'] = $clientinfo['client_total_bytes_downloaded'] = 0; - } - - $allupdateuuid .= "('$uuid',$count_day,$count_week,$count_month,$idle_day,$idle_week,$idle_month,$active_day,$active_week,$active_month,{$clientinfo['client_totalconnections']},'{$clientinfo['client_base64HashClientUID']}',{$clientinfo['client_total_bytes_uploaded']},{$clientinfo['client_total_bytes_downloaded']},$clientdesc,$nowtime),"; - } - } - unset($sqlhis,$userdataweekbegin,$userdataend,$userdatamonthbegin,$clientinfo,$count_day,$idle_day,$active_day,$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';\nINSERT INTO `$dbname`.`stats_user` (`uuid`,`count_day`,`count_week`,`count_month`,`idle_day`,`idle_week`,`idle_month`,`active_day`,`active_week`,`active_month`,`total_connections`,`base64hash`,`client_total_up`,`client_total_down`,`client_description`,`last_calculated`) VALUES $allupdateuuid ON DUPLICATE KEY UPDATE `count_day`=VALUES(`count_day`),`count_week`=VALUES(`count_week`),`count_month`=VALUES(`count_month`),`idle_day`=VALUES(`idle_day`),`idle_week`=VALUES(`idle_week`),`idle_month`=VALUES(`idle_month`),`active_day`=VALUES(`active_day`),`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`),`last_calculated`=VALUES(`last_calculated`);\n"; - unset($allupdateuuid); - } else { - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$job_end WHERE `job_name`='calc_user_limit';\n"; - } - } - - if (intval($db_cache['job_check']['calc_user_removed']['timestamp']) < ($nowtime - 1800)) { - $db_cache['job_check']['calc_user_removed']['timestamp'] = $nowtime; - $atime = $nowtime - 3600; - $sqlexec .= "UPDATE `$dbname`.`stats_user` AS `s` INNER JOIN `$dbname`.`user` AS `u` ON `s`.`uuid`=`u`.`uuid` SET `s`.`removed`='0' WHERE `s`.`removed`='1' AND `u`.`lastseen`>{$atime};\nUPDATE `$dbname`.`job_check` SET `timestamp`='{$nowtime}' WHERE `job_name`='calc_user_removed';\n"; - } - - enter_logfile(6,"calc_userstats needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} -?> \ No newline at end of file += (ceil(count($db_cache['all_user']) / $limit_calc) * $limit_calc)) { + $job_begin = 0; + $job_end = $limit_calc; + } else { + $job_end = $job_begin + $limit_calc; + } + + $sqlhis = array_slice($db_cache['all_user'], $job_begin, $limit_calc); + + $cldbids = ''; + foreach ($sqlhis as $uuid => $userstats) { + $cldbids .= $userstats['cldbid'].','; + } + $cldbids = substr($cldbids, 0, -1); + + $dayago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 4; + $weekago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 28; + $monthago = intval($db_cache['job_check']['last_snapshot_id']['timestamp']) - 120; + if ($dayago < 1) { + $dayago += 121; + } + if ($weekago < 1) { + $weekago += 121; + } + if ($monthago < 1) { + $monthago += 121; + } + + if (isset($sqlhis) && $sqlhis != null) { + enter_logfile(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 ({$db_cache['job_check']['last_snapshot_id']['timestamp']},{$dayago},{$weekago},{$monthago}) AND `cldbid` IN ($cldbids)")->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_ASSOC)) === false) { + enter_logfile(2, 'calc_userstats 6:'.print_r($mysqlcon->errorInfo(), true)); + } + + $allupdateuuid = ''; + + foreach ($sqlhis as $uuid => $userstats) { + if ($userstats['lastseen'] > ($nowtime - 2678400)) { + check_shutdown(); + usleep($cfg['teamspeak_query_command_delay']); + + if (isset($userdata[$userstats['cldbid']]) && $userdata[$userstats['cldbid']] != null) { + $keybase = array_search($db_cache['job_check']['last_snapshot_id']['timestamp'], array_column($userdata[$userstats['cldbid']], 'id')); + $keyday = array_search($dayago, 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')); + + if (isset($userdata[$userstats['cldbid']]) && isset($userdata[$userstats['cldbid']][$keyday]) && $userdata[$userstats['cldbid']][$keyday]['id'] == $dayago) { + $count_day = $userdata[$userstats['cldbid']][$keybase]['count'] - $userdata[$userstats['cldbid']][$keyday]['count']; + $idle_day = $userdata[$userstats['cldbid']][$keybase]['idle'] - $userdata[$userstats['cldbid']][$keyday]['idle']; + $active_day = $count_day - $idle_day; + if ($count_day < 0 || $count_day < $idle_day) { + $count_day = 0; + } + if ($idle_day < 0 || $count_day < $idle_day) { + $idle_day = 0; + } + if ($active_day < 0 || $count_day < $idle_day) { + $active_day = 0; + } + } else { + $count_day = $idle_day = $active_day = 0; + } + if (isset($userdata[$userstats['cldbid']]) && isset($userdata[$userstats['cldbid']][$keyweek]) && $userdata[$userstats['cldbid']][$keyweek]['id'] == $weekago) { + $count_week = $userdata[$userstats['cldbid']][$keybase]['count'] - $userdata[$userstats['cldbid']][$keyweek]['count']; + $idle_week = $userdata[$userstats['cldbid']][$keybase]['idle'] - $userdata[$userstats['cldbid']][$keyweek]['idle']; + $active_week = $count_week - $idle_week; + if ($count_week < 0 || $count_week < $idle_week) { + $count_week = 0; + } + if ($idle_week < 0 || $count_week < $idle_week) { + $idle_week = 0; + } + if ($active_week < 0 || $count_week < $idle_week) { + $active_week = 0; + } + } else { + $count_week = $idle_week = $active_week = 0; + } + if (isset($userdata[$userstats['cldbid']]) && isset($userdata[$userstats['cldbid']][$keymonth]) && $userdata[$userstats['cldbid']][$keymonth]['id'] == $monthago) { + $count_month = $userdata[$userstats['cldbid']][$keybase]['count'] - $userdata[$userstats['cldbid']][$keymonth]['count']; + $idle_month = $userdata[$userstats['cldbid']][$keybase]['idle'] - $userdata[$userstats['cldbid']][$keymonth]['idle']; + $active_month = $count_month - $idle_month; + if ($idle_month < 0 || $count_month < $idle_month) { + $idle_month = 0; + } + if ($count_month < 0 || $count_month < $idle_month) { + $count_month = 0; + } + if ($active_month < 0 || $count_month < $idle_month) { + $active_month = 0; + } + } else { + $count_month = $idle_month = $active_month = 0; + } + } else { + $count_day = $idle_day = $active_day = $count_week = $idle_week = $active_week = $count_month = $idle_month = $active_month = 0; + } + + try { + $clientinfo = $ts3->clientInfoDb($userstats['cldbid']); + if ($clientinfo['client_description'] !== null) { + $clientdesc = $mysqlcon->quote($clientinfo['client_description'], ENT_QUOTES); + } else { + $clientdesc = 'NULL'; + } + if ($clientinfo['client_totalconnections'] > 16777215) { + $clientinfo['client_totalconnections'] = 16777215; + } + } catch (Exception $e) { + if ($e->getCode() == 512 || $e->getCode() == 1281) { + enter_logfile(6, 'Client (uuid: '.$uuid.' cldbid: '.$userstats['cldbid'].') known by Ranksystem is missing in TS database, perhaps its already deleted or cldbid changed. Try to search for client by uuid.'); + try { + $getcldbid = $ts3->clientFindDb($uuid, true); + if ($getcldbid[0] != $userstats['cldbid']) { + enter_logfile(4, ' Client (uuid: '.$uuid.' cldbid: '.$userstats['cldbid'].') known by the Ranksystem changed its cldbid. New cldbid is '.$getcldbid[0].'.'); + $db_cache['all_user'][$uuid]['cldbid'] = $getcldbid[0]; + if ($cfg['rankup_client_database_id_change_switch'] == 1) { + $sqlexec .= "UPDATE `$dbname`.`user` SET `count`=0,`idle`=0 WHERE `uuid`='$uuid';\nUPDATE `$dbname`.`stats_user` SET `count_day`=0,`count_week`=0,`count_month`=0,`idle_day`=0,`idle_week`=0,`idle_month`=0,`active_day`=0,`active_week`=0,`active_month`=0 WHERE `uuid`='$uuid';\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; + enter_logfile(4, ' '.sprintf($lang['changedbid'], $userstats['name'], $uuid, $userstats['cldbid'], $getcldbid[0])); + } else { + $sqlexec .= "UPDATE `$dbname`.`user` SET `cldbid`={$getcldbid[0]} WHERE `uuid`='$uuid';\n"; + // select current user_snapshot entries and insert this with the new database-ID + if (isset($userdata[$userstats['cldbid']])) { + $allinsert = ''; + foreach ($userdata[$userstats['cldbid']] as $id => $data) { + $allinsert .= "($id,'{$getcldbid[0]}',{$data['count']},{$data['idle']}),"; + } + if ($allinsert != '') { + $allinsert = substr($allinsert, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`user_snapshot` (`id`,`cldbid`,`count`,`idle`) VALUES $allinsert ON DUPLICATE KEY UPDATE `count`=VALUES(`count`),`idle`=VALUES(`idle`);\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; + } + unset($allinsert); + } + enter_logfile(4, ' Store new cldbid '.$getcldbid[0].' for client (uuid: '.$uuid.' old cldbid: '.$userstats['cldbid'].')'); + } + } else { + enter_logfile(3, ' Client (uuid: '.$uuid.' cldbid: '.$userstats['cldbid'].') is missing in TS database, but TeamSpeak answers on question with the same cldbid ('.$getcldbid[0].").. It's weird!"); + } + } catch (Exception $e) { + if ($e->getCode() == 2568) { + enter_logfile(4, $e->getCode().': '.$e->getMessage().'; Error due command clientdbfind (permission: b_virtualserver_client_dbsearch needed).'); + } else { + enter_logfile(6, $e->getCode().': '.$e->getMessage().'; Client (uuid: '.$uuid.' cldbid: '.$userstats['cldbid'].') is missing in TS database, it seems to be deleted. Run the !clean command to correct this.'); + $sqlexec .= "UPDATE `$dbname`.`stats_user` SET `count_day`=0,`count_week`=0,`count_month`=0,`idle_day`=0,`idle_week`=0,`idle_month`=0,`active_day`=0,`active_week`=0,`active_month`=0,`removed`=1 WHERE `uuid`='$uuid';\n"; + } + } + } else { + enter_logfile(2, $lang['errorts3'].$e->getCode().': '.$e->getMessage()."; Error due command clientdbinfo for client-database-ID {$userstats['cldbid']} (permission: b_virtualserver_client_dbinfo needed)."); + } + + $clientdesc = $clientinfo['client_base64HashClientUID'] = 'NULL'; + $clientinfo['client_totalconnections'] = $clientinfo['client_total_bytes_uploaded'] = $clientinfo['client_total_bytes_downloaded'] = 0; + } + + $allupdateuuid .= "('$uuid',$count_day,$count_week,$count_month,$idle_day,$idle_week,$idle_month,$active_day,$active_week,$active_month,{$clientinfo['client_totalconnections']},'{$clientinfo['client_base64HashClientUID']}',{$clientinfo['client_total_bytes_uploaded']},{$clientinfo['client_total_bytes_downloaded']},$clientdesc,$nowtime),"; + } + } + unset($sqlhis,$userdataweekbegin,$userdataend,$userdatamonthbegin,$clientinfo,$count_day,$idle_day,$active_day,$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';\nINSERT INTO `$dbname`.`stats_user` (`uuid`,`count_day`,`count_week`,`count_month`,`idle_day`,`idle_week`,`idle_month`,`active_day`,`active_week`,`active_month`,`total_connections`,`base64hash`,`client_total_up`,`client_total_down`,`client_description`,`last_calculated`) VALUES $allupdateuuid ON DUPLICATE KEY UPDATE `count_day`=VALUES(`count_day`),`count_week`=VALUES(`count_week`),`count_month`=VALUES(`count_month`),`idle_day`=VALUES(`idle_day`),`idle_week`=VALUES(`idle_week`),`idle_month`=VALUES(`idle_month`),`active_day`=VALUES(`active_day`),`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`),`last_calculated`=VALUES(`last_calculated`);\n"; + unset($allupdateuuid); + } else { + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$job_end WHERE `job_name`='calc_user_limit';\n"; + } + } + + if (intval($db_cache['job_check']['calc_user_removed']['timestamp']) < ($nowtime - 1800)) { + $db_cache['job_check']['calc_user_removed']['timestamp'] = $nowtime; + $atime = $nowtime - 3600; + $sqlexec .= "UPDATE `$dbname`.`stats_user` AS `s` INNER JOIN `$dbname`.`user` AS `u` ON `s`.`uuid`=`u`.`uuid` SET `s`.`removed`='0' WHERE `s`.`removed`='1' AND `u`.`lastseen`>{$atime};\nUPDATE `$dbname`.`job_check` SET `timestamp`='{$nowtime}' WHERE `job_name`='calc_user_removed';\n"; + } + + enter_logfile(6, 'calc_userstats needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/check_db.php b/jobs/check_db.php index 3fdb16f..49873a3 100644 --- a/jobs/check_db.php +++ b/jobs/check_db.php @@ -1,436 +1,511 @@ -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(1," Repair double client-database-ID failed (".$row['uuid']."): ".print_r($mysqlcon->errorInfo(), true)); - } else { - enter_logfile(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(1," An error happens due updating the Ranksystem Database:".print_r($mysqlcon->errorInfo(), true)); - shutdown($mysqlcon,1," Check the database connection and properties in other/dbconfig.php and check also the database permissions."); - } else { - $cfg['version_current_using'] = $cfg['version_latest_available']; - enter_logfile(4," Database successfully updated!"); - return $cfg; - } - } - - 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','webinterface/nav.php','stats/nav.php','other/session.php'); - function rmdir_recursive($folder,$cfg) { - foreach(scandir($folder) as $file) { - if ('.' === $file || '..' === $file) continue; - if (is_dir($folder.$file)) { - rmdir_recursive($folder.$file); - } else { - if(!unlink($folder.$file)) { - enter_logfile(4,"Unnecessary file, please delete it from your webserver: ".$folder.$file); - } - } - } - if(!rmdir($folder)) { - enter_logfile(4,"Unnecessary folder, please delete it from your webserver: ".$folder); - } - } - - foreach($del_folder as $folder) { - if(is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder)) { - rmdir_recursive(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder,$cfg); - } - } - foreach($del_files as $file) { - if(is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.$file)) { - if(!unlink(dirname(__DIR__).DIRECTORY_SEPARATOR.$file)) { - enter_logfile(4,"Unnecessary file, please delete it from your webserver: ".$file); - } - } - } - } - - function check_writable($cfg,$mysqlcon) { - enter_logfile(5," Check files permissions..."); - $counterr=0; - try { - $scandir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__DIR__))); - $files = array(); - foreach ($scandir as $object) { - if(!strstr($object, '/.') && !strstr($object, '\.')) { - if (!$object->isDir()) { - if(!is_writable($object->getPathname())) { - enter_logfile(3," File is not writeable ".$object); - $counterr++; - } - } else { - if(!is_writable($object->getPathname())) { - enter_logfile(3," Folder is not writeable ".$object); - $counterr++; - } - } - } - } - } catch (Exception $e) { - shutdown($mysqlcon,1,"File Permissions Error: ".$e->getCode()." ".$e->getMessage()); - enter_logfile(3,"File Permissions Error: ".$e->getCode()." ".$e->getMessage()); - } - if($counterr!=0) { - shutdown($mysqlcon,1,"Wrong file/folder permissions (see messages before!)! Check and correct the owner (chown) and access permissions (chmod)!"); - } else { - enter_logfile(5," Check files permissions [done]"); - } - } - - check_writable($cfg,$mysqlcon); - old_files($cfg); - check_double_cldbid($mysqlcon,$cfg,$dbname); - - if($cfg['version_current_using'] == $cfg['version_latest_available']) { - enter_logfile(5," No newer version detected; Database check finished."); - } else { - enter_logfile(4," Update the Ranksystem Database to new version..."); - - if(version_compare($cfg['version_current_using'], '1.3.0', '<')) { - shutdown($mysqlcon,1,"Your Ranksystem version is below 1.3.0. Please download the current version from the official page and install a new Ranksystem instead or contact the Ranksystem support."); - } - - if(version_compare($cfg['version_current_using'], '1.3.1', '<')) { - if($mysqlcon->exec("INSERT IGNORE 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 { - enter_logfile(4," [1.3.1] Added new job_check values."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.4', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_show_maxclientsline_switch', 0)") === false) { } else { - enter_logfile(4," [1.3.4] Added new config values."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` MODIFY COLUMN `sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { } else { - enter_logfile(4," [1.3.4] Adjusted table groups successfully."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { } else { - enter_logfile(4," [1.3.4] Adjusted table user successfully."); - } - - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='".time()."' WHERE `job_name`='last_update';") === false) { } else { - enter_logfile(4," [1.3.4] Stored timestamp of last update successfully."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.7', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_fresh_installation', '0'),('webinterface_advanced_mode', '1')") === false) { } else { - enter_logfile(4," [1.3.7] Added new config values."); - } - - if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { } else { - enter_logfile(4," [1.3.7] Empty table groups successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` ADD COLUMN `sortid` int(10) NOT NULL default '0', ADD COLUMN `type` tinyint(1) NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.7] Adjusted table groups successfully."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.8', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_api_keys', '');") === false) { } else { - enter_logfile(4," [1.3.8] Added new config values."); - } - - 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(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(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(4," [1.3.8] Adjusted table user_snapshot successfully."); - } - - 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(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(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(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(4," [1.3.8] Adjusted table server_usage successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`job_check` MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.8] Adjusted table job_check successfully."); - } - - 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(4," [1.3.8] Adjusted table admin_addtime successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`user_iphash` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { - enter_logfile(4," [1.3.8] Adjusted table user_iphash successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_versions` MODIFY COLUMN `count` smallint(5) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.8] Adjusted table stats_versions successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_platforms` MODIFY COLUMN `count` smallint(5) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.8] Adjusted table stats_platforms successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_nations` MODIFY COLUMN `nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `count` smallint(5) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.8] Adjusted table stats_nations successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` ADD COLUMN `ext` char(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { } else { - enter_logfile(4," [1.3.8] Adjusted table groups (part 1) successfully."); - } - - 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(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(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(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(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(4," [1.3.8] Adjusted table addon_assign_groups successfully."); - } - - if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { } else { - enter_logfile(4," [1.3.8] Empty table groups successfully."); - } - - if($mysqlcon->exec("UPDATE `$dbname`.`user` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user` SET `count`=`idle` WHERE `count`<0;") === false) { } else { - enter_logfile(6," [1.3.8] Fix for negative values in table user."); - } - - if($mysqlcon->exec("UPDATE `$dbname`.`user_snapshot` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user_snapshot` SET `count`=`idle` WHERE `count`<0;") === false) { } else { - enter_logfile(6," [1.3.8] Fix for negative values in table user_snapshot."); - } - - $check_snapshot_convert = $mysqlcon->query("DESC `$dbname`.`user_snapshot`")->fetchAll(PDO::FETCH_ASSOC); - if($check_snapshot_convert[0]['Field'] == 'timestamp' && $check_snapshot_convert[0]['Field'] != 'id') { - - if($mysqlcon->exec("DELETE `a` FROM `$dbname`.`user_snapshot` AS `a` CROSS JOIN(SELECT DISTINCT(`timestamp`) FROM `$dbname`.`user_snapshot` ORDER BY `timestamp` DESC LIMIT 1000 OFFSET 121) AS `b` WHERE `a`.`timestamp`=`b`.`timestamp`;") === false) { } else { - enter_logfile(4," [1.3.8] Deleted old values out of the table user_snapshot."); - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`user_snapshot2` (`id` tinyint(3) UNSIGNED NOT NULL default '0',`cldbid` int(10) UNSIGNED NOT NULL default '0',`count` int(10) UNSIGNED NOT NULL default '0',`idle` int(10) UNSIGNED NOT NULL default '0',PRIMARY KEY (`id`,`cldbid`));") === false) { } else { - enter_logfile(4," [1.3.8] Created new table user_snapshot2 successfully."); - enter_logfile(4," [1.3.8] Beginn with converting values.. This could take a while! Please do NOT stop the Bot!"); - } - - $maxvalues = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`user_snapshot`;")->fetch(); - $timestamps = $mysqlcon->query("SELECT DISTINCT(`timestamp`) FROM `$dbname`.`user_snapshot` ORDER BY `timestamp` ASC;")->fetchAll(PDO::FETCH_ASSOC); - $user = $mysqlcon->query("SELECT `uuid`,`cldbid` FROM `$dbname`.`user`;")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); - - $ts2id = array(); - $count = 0; - foreach($timestamps as $tstamp) { - $count++; - $ts2id[$tstamp['timestamp']] = $count; - } - - $loops = $maxvalues[0] / 50000; - for ($i = 0; $i <= $loops; $i++) { - $offset = $i * 50000; - $snapshot = $mysqlcon->query("SELECT * FROM `$dbname`.`user_snapshot` LIMIT 50000 OFFSET {$offset};")->fetchAll(PDO::FETCH_ASSOC); - - $sqlinsertvalues = ''; - $count = 0; - foreach($snapshot as $entry) { - if(isset($user[$entry['uuid']]) && $user[$entry['uuid']]['cldbid'] != NULL) { - $snapshot[$count]['id'] = $ts2id[$entry['timestamp']]; - $snapshot[$count]['cldbid'] = $user[$entry['uuid']]['cldbid']; - $sqlinsertvalues .= "(".$ts2id[$entry['timestamp']].",".$user[$entry['uuid']]['cldbid'].",".round($entry['count']).",".round($entry['idle'])."),"; - $count++; - } - } - - $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); - if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`user_snapshot2` (`id`,`cldbid`,`count`,`idle`) VALUES {$sqlinsertvalues};") === false) { - enter_logfile(1," Insert failed: ".print_r($mysqlcon->errorInfo(), true)); - } - unset($snapshot, $sqlinsertvalues); - if (($offset + 50000) > $maxvalues[0]) { - $convertedvalus = $maxvalues[0]; - } else { - $convertedvalus = $offset + 50000; - } - enter_logfile(4," [1.3.8] Converted ".$convertedvalus." out of ".$maxvalues[0]." values."); - } - - enter_logfile(4," [1.3.8] Finished converting values"); - - $lastsnapshot = $mysqlcon->query("SELECT MAX(`timestamp`) AS `timestamp` FROM `$dbname`.`user_snapshot`")->fetchAll(PDO::FETCH_ASSOC); - - if($mysqlcon->exec("DROP TABLE `$dbname`.`user_snapshot`;") === false) { } else { - enter_logfile(4," [1.3.8] Dropped old table user_snapshot successfully."); - } - - if($mysqlcon->exec("RENAME TABLE `$dbname`.`user_snapshot2` TO `$dbname`.`user_snapshot`;") === false) { } else { - enter_logfile(4," [1.3.8] Renamed table user_snapshot2 to user_snapshot successfully."); - } - - $currentid = count($timestamps); - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('last_snapshot_id', '{$currentid}'),('last_snapshot_time', '{$lastsnapshot[0]['timestamp']}');") === false) { } else { - enter_logfile(4," [1.3.8] Added new job_check values (part 1)."); - } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('update_groups', '0');") === false) { } else { - enter_logfile(4," [1.3.8] Added new job_check values (part 2)."); - } - - } else { - enter_logfile(4," [1.3.8] Converting user_snapshot already done. Did not started it again."); - } - - foreach(scandir(substr(dirname(__FILE__),0,-4).'tsicons/') as $file) { - if (in_array($file, array('.','..','check.png','placeholder.png','rs.png','servericon.png','100.png','200.png','300.png','500.png','600.png'))) continue; - if(!unlink(substr(dirname(__FILE__),0,-4).'tsicons/'.$file)) { - enter_logfile(4,"Unnecessary file, please delete it from your webserver: tsicons/".$file); - } - } - - check_double_cldbid($mysqlcon,$cfg,$dbname); - } - - if(version_compare($cfg['version_current_using'], '1.3.9', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('get_avatars', '0'),('calc_donut_chars', '0'),('reload_trigger', '0');") === false) { } else { - enter_logfile(4," [1.3.9] Added new job_check values."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.10', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` ADD COLUMN `last_calculated` int(10) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.10] Added new stats_user values."); - } - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `total_connections` MEDIUMINT(8) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.10] Adjusted table stats_user successfully."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.11', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_excepted_groupids','');") === false) { } else { - enter_logfile(4," [1.3.11] Adjusted table addons_config successfully."); - } - - 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) { } - if($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { } - if($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { } - if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { } - } - - if(version_compare($cfg['version_current_using'], '1.3.12', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_imprint_switch', '0'),('stats_imprint_address', 'Max Mustermann
Musterstraße 13
05172 Musterhausen
Germany'),('stats_imprint_address_url', 'https://site.url/imprint/'), ('stats_imprint_email', 'info@example.com'),('stats_imprint_phone', '+49 171 1234567'),('stats_imprint_notes', NULL),('stats_imprint_privacypolicy', 'Add your own privacy policy here. (editable in the webinterface)'),('stats_imprint_privacypolicy_url', 'https://site.url/privacy/');") === false) { } else { - enter_logfile(4," [1.3.12] Added new imprint values."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.13', '<')) { - if($mysqlcon->exec("UPDATE `$dbname`.`user` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user` SET `count`=`idle` WHERE `count`<0; UPDATE `$dbname`.`user` SET `count`=`idle` WHERE `count`<`idle`;") === false) { } - if($mysqlcon->exec("UPDATE `$dbname`.`user_snapshot` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user_snapshot` SET `count`=`idle` WHERE `count`<0; UPDATE `$dbname`.`user_snapshot` SET `count`=`idle` WHERE `count`<`idle`;") === false) { } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export', '0'),('update_groups', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { } else { - enter_logfile(4," [1.3.13] Added new job_check values."); - } - - try { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_fresh_installation', '0'),('stats_column_nation_switch', '0'),('stats_column_version_switch', '0'),('stats_column_platform_switch', '0');") === false) { } - } catch (Exception $e) { } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_session_sametime', 'Strict'),('default_header_origin', ''),('default_header_xss', '1; mode=block'),('default_header_contenttyp', '1'),('default_header_frame', '') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);") === false) { } else { - enter_logfile(4," [1.3.13] Added new cfg_params values."); - } - - if($mysqlcon->exec("UPDATE `$dbname`.`user` SET `nation`='XX' WHERE `nation`='';") === false) { } else { - enter_logfile(4," [1.3.13] Updated table user."); - } - - try { - if($mysqlcon->exec("DROP INDEX `snapshot_id` ON `$dbname`.`user_snapshot` (`id`)") === false) { } else { - enter_logfile(4," [1.3.13] Dropped unneeded Index snapshot_id on table user_snapshot."); - } - if($mysqlcon->exec("DROP INDEX `snapshot_cldbid` ON `$dbname`.`user_snapshot` (`cldbid`)") === false) { } else { - enter_logfile(4," [1.3.13] Dropped unneeded Index snapshot_cldbid on table user_snapshot."); - } - } catch (Exception $e) { } - } - - if(version_compare($cfg['version_current_using'], '1.3.14', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_column_default_sort_2', 'rank'),('stats_column_default_order_2', 'asc');") === false) { } else { - enter_logfile(4," [1.3.14] Added new cfg_params values."); - } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_name','');") === false) { } else { - enter_logfile(4," [1.3.14] Added new addons_config values."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.16', '<')) { - if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('calc_user_removed', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { } else { - enter_logfile(4," [1.3.16] Added new job_check values."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.18', '<')) { - if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('update_channel', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { } else { - enter_logfile(4," [1.3.18] Added new job_check values."); - } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_cmdline_sec_switch', '1');") === false) { } else { - enter_logfile(4," [1.3.18] Added new cfg_params values."); - } - - if($mysqlcon->exec("CREATE TABLE IF NOT EXISTS `$dbname`.`channel` (`cid` int(10) UNSIGNED NOT NULL default '0',`pid` int(10) UNSIGNED NOT NULL default '0',`channel_order` int(10) UNSIGNED NOT NULL default '0',`channel_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,PRIMARY KEY (`cid`));") === false) { } else { - enter_logfile(4," [1.3.18] Created new table channel successfully."); - } - - if($mysqlcon->exec("ALTER TABLE `$dbname`.`addons_config` MODIFY COLUMN `value` varchar(16000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { } else { - enter_logfile(4," [1.3.18] Adjusted table addons_config successfully."); - } - - $channelinfo_desc = $mysqlcon->quote('[CENTER][B][SIZE=15]User Toplist (last week)[/SIZE][/B][/CENTER] +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(1, ' Repair double client-database-ID failed ('.$row['uuid'].'): '.print_r($mysqlcon->errorInfo(), true)); + } else { + enter_logfile(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(1, ' An error happens due updating the Ranksystem Database:'.print_r($mysqlcon->errorInfo(), true)); + shutdown($mysqlcon, 1, ' Check the database connection and properties in other/dbconfig.php and check also the database permissions.'); + } else { + $cfg['version_current_using'] = $cfg['version_latest_available']; + enter_logfile(4, ' Database successfully updated!'); + + return $cfg; + } + } + + function old_files($cfg) + { + $del_folder = ['icons/', 'libs/ts3_lib/Adapter/Blacklist/', 'libs/ts3_lib/Adapter/TSDNS/', 'libs/ts3_lib/Adapter/Update/', 'libs/fonts/']; + $del_files = ['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', 'stats/nav.php', 'other/session.php']; + function rmdir_recursive($folder, $cfg) + { + foreach (scandir($folder) as $file) { + if ('.' === $file || '..' === $file) { + continue; + } + if (is_dir($folder.$file)) { + rmdir_recursive($folder.$file); + } else { + if (! unlink($folder.$file)) { + enter_logfile(4, 'Unnecessary file, please delete it from your webserver: '.$folder.$file); + } + } + } + if (! rmdir($folder)) { + enter_logfile(4, 'Unnecessary folder, please delete it from your webserver: '.$folder); + } + } + + foreach ($del_folder as $folder) { + if (is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder)) { + rmdir_recursive(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder, $cfg); + } + } + foreach ($del_files as $file) { + if (is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.$file)) { + if (! unlink(dirname(__DIR__).DIRECTORY_SEPARATOR.$file)) { + enter_logfile(4, 'Unnecessary file, please delete it from your webserver: '.$file); + } + } + } + } + + function check_writable($cfg, $mysqlcon) + { + enter_logfile(5, ' Check files permissions...'); + $counterr = 0; + try { + $scandir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__DIR__))); + $files = []; + foreach ($scandir as $object) { + if (! strstr($object, '/.') && ! strstr($object, '\.')) { + if (! $object->isDir()) { + if (! is_writable($object->getPathname())) { + enter_logfile(3, ' File is not writeable '.$object); + $counterr++; + } + } else { + if (! is_writable($object->getPathname())) { + enter_logfile(3, ' Folder is not writeable '.$object); + $counterr++; + } + } + } + } + } catch (Exception $e) { + shutdown($mysqlcon, 1, 'File Permissions Error: '.$e->getCode().' '.$e->getMessage()); + enter_logfile(3, 'File Permissions Error: '.$e->getCode().' '.$e->getMessage()); + } + if ($counterr != 0) { + shutdown($mysqlcon, 1, 'Wrong file/folder permissions (see messages before!)! Check and correct the owner (chown) and access permissions (chmod)!'); + } else { + enter_logfile(5, ' Check files permissions [done]'); + } + } + + check_writable($cfg, $mysqlcon); + old_files($cfg); + check_double_cldbid($mysqlcon, $cfg, $dbname); + + if ($cfg['version_current_using'] == $cfg['version_latest_available']) { + enter_logfile(5, ' No newer version detected; Database check finished.'); + } else { + enter_logfile(4, ' Update the Ranksystem Database to new version...'); + + if (version_compare($cfg['version_current_using'], '1.3.0', '<')) { + shutdown($mysqlcon, 1, 'Your Ranksystem version is below 1.3.0. Please download the current version from the official page and install a new Ranksystem instead or contact the Ranksystem support.'); + } + + if (version_compare($cfg['version_current_using'], '1.3.1', '<')) { + if ($mysqlcon->exec("INSERT IGNORE 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 { + enter_logfile(4, ' [1.3.1] Added new job_check values.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.4', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_show_maxclientsline_switch', 0)") === false) { + } else { + enter_logfile(4, ' [1.3.4] Added new config values.'); + } + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` MODIFY COLUMN `sgidname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { + } else { + enter_logfile(4, ' [1.3.4] Adjusted table groups successfully.'); + } + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`user` MODIFY COLUMN `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { + } else { + enter_logfile(4, ' [1.3.4] Adjusted table user successfully.'); + } + + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='".time()."' WHERE `job_name`='last_update';") === false) { + } else { + enter_logfile(4, ' [1.3.4] Stored timestamp of last update successfully.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.7', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_fresh_installation', '0'),('webinterface_advanced_mode', '1')") === false) { + } else { + enter_logfile(4, ' [1.3.7] Added new config values.'); + } + + if ($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { + } else { + enter_logfile(4, ' [1.3.7] Empty table groups successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` ADD COLUMN `sortid` int(10) NOT NULL default '0', ADD COLUMN `type` tinyint(1) NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.7] Adjusted table groups successfully.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.8', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_api_keys', '');") === false) { + } else { + enter_logfile(4, ' [1.3.8] Added new config values.'); + } + + 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(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(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(4, ' [1.3.8] Adjusted table user_snapshot successfully.'); + } + + 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(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(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(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(4, ' [1.3.8] Adjusted table server_usage successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`job_check` MODIFY COLUMN `timestamp` int(10) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.8] Adjusted table job_check successfully.'); + } + + 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(4, ' [1.3.8] Adjusted table admin_addtime successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`user_iphash` MODIFY COLUMN `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { + } else { + enter_logfile(4, ' [1.3.8] Adjusted table user_iphash successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_versions` MODIFY COLUMN `count` smallint(5) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.8] Adjusted table stats_versions successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_platforms` MODIFY COLUMN `count` smallint(5) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.8] Adjusted table stats_platforms successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_nations` MODIFY COLUMN `nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY COLUMN `count` smallint(5) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.8] Adjusted table stats_nations successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`groups` ADD COLUMN `ext` char(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci;") === false) { + } else { + enter_logfile(4, ' [1.3.8] Adjusted table groups (part 1) successfully.'); + } + + 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(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(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(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(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(4, ' [1.3.8] Adjusted table addon_assign_groups successfully.'); + } + + if ($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { + } else { + enter_logfile(4, ' [1.3.8] Empty table groups successfully.'); + } + + if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user` SET `count`=`idle` WHERE `count`<0;") === false) { + } else { + enter_logfile(6, ' [1.3.8] Fix for negative values in table user.'); + } + + if ($mysqlcon->exec("UPDATE `$dbname`.`user_snapshot` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user_snapshot` SET `count`=`idle` WHERE `count`<0;") === false) { + } else { + enter_logfile(6, ' [1.3.8] Fix for negative values in table user_snapshot.'); + } + + $check_snapshot_convert = $mysqlcon->query("DESC `$dbname`.`user_snapshot`")->fetchAll(PDO::FETCH_ASSOC); + if ($check_snapshot_convert[0]['Field'] == 'timestamp' && $check_snapshot_convert[0]['Field'] != 'id') { + if ($mysqlcon->exec("DELETE `a` FROM `$dbname`.`user_snapshot` AS `a` CROSS JOIN(SELECT DISTINCT(`timestamp`) FROM `$dbname`.`user_snapshot` ORDER BY `timestamp` DESC LIMIT 1000 OFFSET 121) AS `b` WHERE `a`.`timestamp`=`b`.`timestamp`;") === false) { + } else { + enter_logfile(4, ' [1.3.8] Deleted old values out of the table user_snapshot.'); + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`user_snapshot2` (`id` tinyint(3) UNSIGNED NOT NULL default '0',`cldbid` int(10) UNSIGNED NOT NULL default '0',`count` int(10) UNSIGNED NOT NULL default '0',`idle` int(10) UNSIGNED NOT NULL default '0',PRIMARY KEY (`id`,`cldbid`));") === false) { + } else { + enter_logfile(4, ' [1.3.8] Created new table user_snapshot2 successfully.'); + enter_logfile(4, ' [1.3.8] Beginn with converting values.. This could take a while! Please do NOT stop the Bot!'); + } + + $maxvalues = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`user_snapshot`;")->fetch(); + $timestamps = $mysqlcon->query("SELECT DISTINCT(`timestamp`) FROM `$dbname`.`user_snapshot` ORDER BY `timestamp` ASC;")->fetchAll(PDO::FETCH_ASSOC); + $user = $mysqlcon->query("SELECT `uuid`,`cldbid` FROM `$dbname`.`user`;")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE); + + $ts2id = []; + $count = 0; + foreach ($timestamps as $tstamp) { + $count++; + $ts2id[$tstamp['timestamp']] = $count; + } + + $loops = $maxvalues[0] / 50000; + for ($i = 0; $i <= $loops; $i++) { + $offset = $i * 50000; + $snapshot = $mysqlcon->query("SELECT * FROM `$dbname`.`user_snapshot` LIMIT 50000 OFFSET {$offset};")->fetchAll(PDO::FETCH_ASSOC); + + $sqlinsertvalues = ''; + $count = 0; + foreach ($snapshot as $entry) { + if (isset($user[$entry['uuid']]) && $user[$entry['uuid']]['cldbid'] != null) { + $snapshot[$count]['id'] = $ts2id[$entry['timestamp']]; + $snapshot[$count]['cldbid'] = $user[$entry['uuid']]['cldbid']; + $sqlinsertvalues .= '('.$ts2id[$entry['timestamp']].','.$user[$entry['uuid']]['cldbid'].','.round($entry['count']).','.round($entry['idle']).'),'; + $count++; + } + } + + $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`user_snapshot2` (`id`,`cldbid`,`count`,`idle`) VALUES {$sqlinsertvalues};") === false) { + enter_logfile(1, ' Insert failed: '.print_r($mysqlcon->errorInfo(), true)); + } + unset($snapshot, $sqlinsertvalues); + if (($offset + 50000) > $maxvalues[0]) { + $convertedvalus = $maxvalues[0]; + } else { + $convertedvalus = $offset + 50000; + } + enter_logfile(4, ' [1.3.8] Converted '.$convertedvalus.' out of '.$maxvalues[0].' values.'); + } + + enter_logfile(4, ' [1.3.8] Finished converting values'); + + $lastsnapshot = $mysqlcon->query("SELECT MAX(`timestamp`) AS `timestamp` FROM `$dbname`.`user_snapshot`")->fetchAll(PDO::FETCH_ASSOC); + + if ($mysqlcon->exec("DROP TABLE `$dbname`.`user_snapshot`;") === false) { + } else { + enter_logfile(4, ' [1.3.8] Dropped old table user_snapshot successfully.'); + } + + if ($mysqlcon->exec("RENAME TABLE `$dbname`.`user_snapshot2` TO `$dbname`.`user_snapshot`;") === false) { + } else { + enter_logfile(4, ' [1.3.8] Renamed table user_snapshot2 to user_snapshot successfully.'); + } + + $currentid = count($timestamps); + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('last_snapshot_id', '{$currentid}'),('last_snapshot_time', '{$lastsnapshot[0]['timestamp']}');") === false) { + } else { + enter_logfile(4, ' [1.3.8] Added new job_check values (part 1).'); + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('update_groups', '0');") === false) { + } else { + enter_logfile(4, ' [1.3.8] Added new job_check values (part 2).'); + } + } else { + enter_logfile(4, ' [1.3.8] Converting user_snapshot already done. Did not started it again.'); + } + + foreach (scandir(substr(dirname(__FILE__), 0, -4).'tsicons/') as $file) { + if (in_array($file, ['.', '..', 'check.png', 'placeholder.png', 'rs.png', 'servericon.png', '100.png', '200.png', '300.png', '500.png', '600.png'])) { + continue; + } + if (! unlink(substr(dirname(__FILE__), 0, -4).'tsicons/'.$file)) { + enter_logfile(4, 'Unnecessary file, please delete it from your webserver: tsicons/'.$file); + } + } + + check_double_cldbid($mysqlcon, $cfg, $dbname); + } + + if (version_compare($cfg['version_current_using'], '1.3.9', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('get_avatars', '0'),('calc_donut_chars', '0'),('reload_trigger', '0');") === false) { + } else { + enter_logfile(4, ' [1.3.9] Added new job_check values.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.10', '<')) { + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` ADD COLUMN `last_calculated` int(10) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.10] Added new stats_user values.'); + } + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` MODIFY COLUMN `total_connections` MEDIUMINT(8) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.10] Adjusted table stats_user successfully.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.11', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_excepted_groupids','');") === false) { + } else { + enter_logfile(4, ' [1.3.11] Adjusted table addons_config successfully.'); + } + + 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) { + } + if ($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { + } + if ($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { + } + if ($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { + } + } + + if (version_compare($cfg['version_current_using'], '1.3.12', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_imprint_switch', '0'),('stats_imprint_address', 'Max Mustermann
Musterstraße 13
05172 Musterhausen
Germany'),('stats_imprint_address_url', 'https://site.url/imprint/'), ('stats_imprint_email', 'info@example.com'),('stats_imprint_phone', '+49 171 1234567'),('stats_imprint_notes', NULL),('stats_imprint_privacypolicy', 'Add your own privacy policy here. (editable in the webinterface)'),('stats_imprint_privacypolicy_url', 'https://site.url/privacy/');") === false) { + } else { + enter_logfile(4, ' [1.3.12] Added new imprint values.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.13', '<')) { + if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user` SET `count`=`idle` WHERE `count`<0; UPDATE `$dbname`.`user` SET `count`=`idle` WHERE `count`<`idle`;") === false) { + } + if ($mysqlcon->exec("UPDATE `$dbname`.`user_snapshot` SET `idle`=0 WHERE `idle`<0; UPDATE `$dbname`.`user_snapshot` SET `count`=`idle` WHERE `count`<0; UPDATE `$dbname`.`user_snapshot` SET `count`=`idle` WHERE `count`<`idle`;") === false) { + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export', '0'),('update_groups', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { + } else { + enter_logfile(4, ' [1.3.13] Added new job_check values.'); + } + + try { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_fresh_installation', '0'),('stats_column_nation_switch', '0'),('stats_column_version_switch', '0'),('stats_column_platform_switch', '0');") === false) { + } + } catch (Exception $e) { + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_session_sametime', 'Strict'),('default_header_origin', ''),('default_header_xss', '1; mode=block'),('default_header_contenttyp', '1'),('default_header_frame', '') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);") === false) { + } else { + enter_logfile(4, ' [1.3.13] Added new cfg_params values.'); + } + + if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `nation`='XX' WHERE `nation`='';") === false) { + } else { + enter_logfile(4, ' [1.3.13] Updated table user.'); + } + + try { + if ($mysqlcon->exec("DROP INDEX `snapshot_id` ON `$dbname`.`user_snapshot` (`id`)") === false) { + } else { + enter_logfile(4, ' [1.3.13] Dropped unneeded Index snapshot_id on table user_snapshot.'); + } + if ($mysqlcon->exec("DROP INDEX `snapshot_cldbid` ON `$dbname`.`user_snapshot` (`cldbid`)") === false) { + } else { + enter_logfile(4, ' [1.3.13] Dropped unneeded Index snapshot_cldbid on table user_snapshot.'); + } + } catch (Exception $e) { + } + } + + if (version_compare($cfg['version_current_using'], '1.3.14', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_column_default_sort_2', 'rank'),('stats_column_default_order_2', 'asc');") === false) { + } else { + enter_logfile(4, ' [1.3.14] Added new cfg_params values.'); + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_name','');") === false) { + } else { + enter_logfile(4, ' [1.3.14] Added new addons_config values.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.16', '<')) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('calc_user_removed', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { + } else { + enter_logfile(4, ' [1.3.16] Added new job_check values.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.18', '<')) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('update_channel', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { + } else { + enter_logfile(4, ' [1.3.18] Added new job_check values.'); + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_cmdline_sec_switch', '1');") === false) { + } else { + enter_logfile(4, ' [1.3.18] Added new cfg_params values.'); + } + + if ($mysqlcon->exec("CREATE TABLE IF NOT EXISTS `$dbname`.`channel` (`cid` int(10) UNSIGNED NOT NULL default '0',`pid` int(10) UNSIGNED NOT NULL default '0',`channel_order` int(10) UNSIGNED NOT NULL default '0',`channel_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,PRIMARY KEY (`cid`));") === false) { + } else { + enter_logfile(4, ' [1.3.18] Created new table channel successfully.'); + } + + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`addons_config` MODIFY COLUMN `value` varchar(16000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { + } else { + enter_logfile(4, ' [1.3.18] Adjusted table addons_config successfully.'); + } + + $channelinfo_desc = $mysqlcon->quote('[CENTER][B][SIZE=15]User Toplist (last week)[/SIZE][/B][/CENTER] [SIZE=11][B]1st[/B] [URL=client://0/{$CLIENT_UNIQUE_IDENTIFIER_1}]{$CLIENT_NICKNAME_1}[/URL][/SIZE][SIZE=7] {if {$CLIENT_ONLINE_STATUS_1} === \'Online\'}[COLOR=GREEN](Online)[/COLOR] currently in channel [URL=channelid://{$CLIENT_CURRENT_CHANNEL_ID_1}]{$CLIENT_CURRENT_CHANNEL_NAME_1}[/URL]{else}[COLOR=RED](Offline)[/COLOR] @@ -483,76 +558,97 @@ function check_writable($cfg,$mysqlcon) { [SIZE=8]Last week active: {$CLIENT_ACTIVE_TIME_LAST_WEEK_10}; reached Servergroup: [IMG]https://domain.com/ranksystem/{$CLIENT_CURRENT_RANK_GROUP_ICON_URL_10}[/IMG] {$CLIENT_CURRENT_RANK_GROUP_NAME_10}[/SIZE] -[SIZE=6]Updated: {$LAST_UPDATE_TIME}[/SIZE]', ENT_QUOTES); - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_active','0'),('channelinfo_toplist_desc',{$channelinfo_desc}),('channelinfo_toplist_lastdesc',''),('channelinfo_toplist_delay','600'),('channelinfo_toplist_channelid','0'),('channelinfo_toplist_modus','1'),('channelinfo_toplist_lastupdate','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);") === false) { - enter_logfile(2," [1.3.18] Error on updating new addons_config values: ".print_r($mysqlcon->errorInfo(), true)); - } else { - enter_logfile(4," [1.3.18] Updated new addons_config values."); - } - - if($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { } - if($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { } - } - - if(version_compare($cfg['version_current_using'], '1.3.19', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`addons_config` MODIFY COLUMN `value` varchar(16000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { } else { - enter_logfile(4," [1.3.19] Adjusted table addons_config successfully."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.20', '<')) { - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('clean_user_iphash', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { } else { - enter_logfile(4," [1.3.20] Added new job_check values."); - } - } - - if(version_compare($cfg['version_current_using'], '1.3.22', '<')) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_server` MODIFY COLUMN `version_name_1` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_2` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_3` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_4` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_5` varchar(254) NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.22] Adjusted table stats_server successfully."); - } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_style', '0'),('stats_column_online_day_switch', '0'),('stats_column_idle_day_switch', '0'),('stats_column_active_day_switch', '0'),('stats_column_online_week_switch', '0'),('stats_column_idle_week_switch', '0'),('stats_column_active_week_switch', '0'),('stats_column_online_month_switch', '0'),('stats_column_idle_month_switch', '0'),('stats_column_active_month_switch', '0'),('teamspeak_chatcommand_prefix', '!'),('rankup_excepted_remove_group_switch', '0');") === false) { } else { - enter_logfile(4," [1.3.22] Added new cfg_params values."); - } - $cfg['rankup_excepted_remove_group_switch'] = '0'; - $cfg['teamspeak_chatcommand_prefix'] = '!'; - - if(($check_new_columns = $mysqlcon->query("SHOW COLUMNS FROM `$dbname`.`stats_user` WHERE `field`='count_day'")->fetchAll(PDO::FETCH_ASSOC)) === false) { } else { - if(!isset($check_new_columns[0]['Field'])) { - if($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` ADD COLUMN `count_day` mediumint(8) UNSIGNED NOT NULL default '0', ADD COLUMN `idle_day` mediumint(8) UNSIGNED NOT NULL default '0', ADD COLUMN `active_day` mediumint(8) UNSIGNED NOT NULL default '0';") === false) { } else { - enter_logfile(4," [1.3.22] Adjusted table stats_user successfully."); - } - } - } - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('news_html', '".time()."'),('news_bb', '".time()."') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { } else { - enter_logfile(4," [1.3.22] Added new job_check values."); - } - - if($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_news_html', '0'),('teamspeak_news_bb', '0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);") === false) { } else { - enter_logfile(4," [1.3.22] Added new cfg_params values (part 2)."); - $cfg['stats_news_html'] = 'New Feature VOTING! for the Ranksystem'; - $cfg['teamspeak_news_bb'] = 'New Feature [URL=https://ts-ranksystem.com#voting]VOTING![/URL] for the Ranksystem'; - } - - if($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { } - if($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { } - - try { - 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) { } - if($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { } - if($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { } - if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { } - } catch (Exception $e) { } - - $updatedone = TRUE; - } - - $cfg = set_new_version($mysqlcon,$cfg,$dbname); - } - enter_logfile(5,"Check Ranksystem database for updates [done]"); - if(isset($updatedone) && $updatedone === TRUE) return TRUE; - return FALSE; -} -?> \ No newline at end of file +[SIZE=6]Updated: {$LAST_UPDATE_TIME}[/SIZE]', ENT_QUOTES); + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_active','0'),('channelinfo_toplist_desc',{$channelinfo_desc}),('channelinfo_toplist_lastdesc',''),('channelinfo_toplist_delay','600'),('channelinfo_toplist_channelid','0'),('channelinfo_toplist_modus','1'),('channelinfo_toplist_lastupdate','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);") === false) { + enter_logfile(2, ' [1.3.18] Error on updating new addons_config values: '.print_r($mysqlcon->errorInfo(), true)); + } else { + enter_logfile(4, ' [1.3.18] Updated new addons_config values.'); + } + + if ($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { + } + } + + if (version_compare($cfg['version_current_using'], '1.3.19', '<')) { + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`addons_config` MODIFY COLUMN `value` varchar(16000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") === false) { + } else { + enter_logfile(4, ' [1.3.19] Adjusted table addons_config successfully.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.20', '<')) { + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('clean_user_iphash', '0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { + } else { + enter_logfile(4, ' [1.3.20] Added new job_check values.'); + } + } + + if (version_compare($cfg['version_current_using'], '1.3.22', '<')) { + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_server` MODIFY COLUMN `version_name_1` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_2` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_3` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_4` varchar(254) NOT NULL default '0',MODIFY COLUMN `version_name_5` varchar(254) NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.22] Adjusted table stats_server successfully.'); + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_style', '0'),('stats_column_online_day_switch', '0'),('stats_column_idle_day_switch', '0'),('stats_column_active_day_switch', '0'),('stats_column_online_week_switch', '0'),('stats_column_idle_week_switch', '0'),('stats_column_active_week_switch', '0'),('stats_column_online_month_switch', '0'),('stats_column_idle_month_switch', '0'),('stats_column_active_month_switch', '0'),('teamspeak_chatcommand_prefix', '!'),('rankup_excepted_remove_group_switch', '0');") === false) { + } else { + enter_logfile(4, ' [1.3.22] Added new cfg_params values.'); + } + $cfg['rankup_excepted_remove_group_switch'] = '0'; + $cfg['teamspeak_chatcommand_prefix'] = '!'; + + if (($check_new_columns = $mysqlcon->query("SHOW COLUMNS FROM `$dbname`.`stats_user` WHERE `field`='count_day'")->fetchAll(PDO::FETCH_ASSOC)) === false) { + } else { + if (! isset($check_new_columns[0]['Field'])) { + if ($mysqlcon->exec("ALTER TABLE `$dbname`.`stats_user` ADD COLUMN `count_day` mediumint(8) UNSIGNED NOT NULL default '0', ADD COLUMN `idle_day` mediumint(8) UNSIGNED NOT NULL default '0', ADD COLUMN `active_day` mediumint(8) UNSIGNED NOT NULL default '0';") === false) { + } else { + enter_logfile(4, ' [1.3.22] Adjusted table stats_user successfully.'); + } + } + } + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('news_html', '".time()."'),('news_bb', '".time()."') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`);") === false) { + } else { + enter_logfile(4, ' [1.3.22] Added new job_check values.'); + } + + if ($mysqlcon->exec("INSERT IGNORE INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_news_html', '0'),('teamspeak_news_bb', '0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`);") === false) { + } else { + enter_logfile(4, ' [1.3.22] Added new cfg_params values (part 2).'); + $cfg['stats_news_html'] = 'New Feature VOTING! for the Ranksystem'; + $cfg['teamspeak_news_bb'] = 'New Feature [URL=https://ts-ranksystem.com#voting]VOTING![/URL] for the Ranksystem'; + } + + if ($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { + } + + try { + 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) { + } + if ($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { + } + if ($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { + } + if ($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { + } + } catch (Exception $e) { + } + + $updatedone = true; + } + + $cfg = set_new_version($mysqlcon, $cfg, $dbname); + } + enter_logfile(5, 'Check Ranksystem database for updates [done]'); + if (isset($updatedone) && $updatedone === true) { + return true; + } + + return false; +} diff --git a/jobs/clean.php b/jobs/clean.php index 7e2ab59..fd2913e 100644 --- a/jobs/clean.php +++ b/jobs/clean.php @@ -1,120 +1,122 @@ -clientListDb($start, $break)) { - check_shutdown(); - $clientdblist=array_merge($clientdblist, $getclientdblist); - $start=$start+$break; - $count_tsuser=array_shift($getclientdblist); - enter_logfile(6," Got TS3 Clientlist ".count($clientdblist)." of ".$count_tsuser['count']." Clients."); - if($count_tsuser['count'] <= $start) { - break; - } - usleep($cfg['teamspeak_query_command_delay']); - } - enter_logfile(5," Get TS3 Clientlist [DONE]"); - foreach($clientdblist as $uuidts) { - $single_uuid = $uuidts['client_unique_identifier']->toString(); - $uidarrts[$single_uuid]= 1; - } - unset($clientdblist,$getclientdblist,$start,$break,$single_uuid); - - foreach($db_cache['all_user'] as $uuid => $value) { - if(isset($uidarrts[$uuid])) { - $countts++; - } else { - $deleteuuids[] = $uuid; - $countdel++; - } - } - enter_logfile(4," ".sprintf($lang['cleants'], $countts, $count_tsuser['count'])); - enter_logfile(4," ".sprintf($lang['cleanrs'], count($db_cache['all_user']))); - unset($uidarrts,$count_tsuser,$countts); - if(isset($deleteuuids)) { - $alldeldata = ''; - $fsfilelist = opendir(dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'); - while (false !== ($fsfile = readdir($fsfilelist))) { - if ($fsfile != '.' && $fsfile != '..') { - $fsfilelistarray[$fsfile] = filemtime(dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR.$fsfile); - } - } - unset($fsfilelist,$fsfile); - $avatarfilepath = dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR; - $convert = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'); - foreach ($deleteuuids as $uuid) { - $alldeldata = $alldeldata . "'" . $uuid . "',"; - $uuidasbase16 = ''; - for ($i = 0; $i < 20; $i++) { - $char = ord(substr(base64_decode($uuid), $i, 1)); - $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; - $uuidasbase16 .= $convert[$char & 0x0F]; - } - if (isset($fsfilelistarray[$uuidasbase16.'.png'])) { - if(unlink($avatarfilepath.$uuidasbase16.'.png') === false) { - enter_logfile(2," ".sprintf($lang['clean0002'], $uuidasbase16, $uuid).' '.sprintf($lang['errperm'], 'avatars')); - } else { - enter_logfile(4," ".sprintf($lang['clean0001'], $uuidasbase16, $uuid)); - } - } - } - unset($deleteuuids,$avatarfilepath,$convert,$uuidasbase16); - $alldeldata = substr($alldeldata, 0, -1); - $alldeldata = "(".$alldeldata.")"; - if ($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(4," ".sprintf($lang['cleandel'], $countdel)); - unset($$alldeldata); - } - } else { - enter_logfile(4," ".$lang['cleanno']); - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients';\n"; - } - } else { - enter_logfile(4,$lang['clean0004']); - $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 (intval($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(4,$lang['clean0003']); - } - - // clean user_iphash - if (intval($db_cache['job_check']['clean_user_iphash']['timestamp']) < ($nowtime - 3500)) { - if(($sqlhashs = $mysqlcon->query("SELECT * FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile(2,"clean user_iphash:".print_r($mysqlcon->errorInfo(), true)); - } - - $rem_uuids = ''; - foreach($sqlhashs as $uuid => $values) { - if(isset($db_cache['all_user'][$uuid]) && $db_cache['all_user'][$uuid]['lastseen'] < ($nowtime - 100)) { - $rem_uuids .= "'".$uuid."',"; - } - } - if($rem_uuids != '') { - $rem_uuids = substr($rem_uuids, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`user_iphash` WHERE `uuid` IN ({$rem_uuids});\n"; - } - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_user_iphash';\n"; - } - - enter_logfile(6,"clean needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} -?> \ No newline at end of file +clientListDb($start, $break)) { + check_shutdown(); + $clientdblist = array_merge($clientdblist, $getclientdblist); + $start = $start + $break; + $count_tsuser = array_shift($getclientdblist); + enter_logfile(6, ' Got TS3 Clientlist '.count($clientdblist).' of '.$count_tsuser['count'].' Clients.'); + if ($count_tsuser['count'] <= $start) { + break; + } + usleep($cfg['teamspeak_query_command_delay']); + } + enter_logfile(5, ' Get TS3 Clientlist [DONE]'); + foreach ($clientdblist as $uuidts) { + $single_uuid = $uuidts['client_unique_identifier']->toString(); + $uidarrts[$single_uuid] = 1; + } + unset($clientdblist,$getclientdblist,$start,$break,$single_uuid); + + foreach ($db_cache['all_user'] as $uuid => $value) { + if (isset($uidarrts[$uuid])) { + $countts++; + } else { + $deleteuuids[] = $uuid; + $countdel++; + } + } + enter_logfile(4, ' '.sprintf($lang['cleants'], $countts, $count_tsuser['count'])); + enter_logfile(4, ' '.sprintf($lang['cleanrs'], count($db_cache['all_user']))); + unset($uidarrts,$count_tsuser,$countts); + if (isset($deleteuuids)) { + $alldeldata = ''; + $fsfilelist = opendir(dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'); + while (false !== ($fsfile = readdir($fsfilelist))) { + if ($fsfile != '.' && $fsfile != '..') { + $fsfilelistarray[$fsfile] = filemtime(dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR.$fsfile); + } + } + unset($fsfilelist,$fsfile); + $avatarfilepath = dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR; + $convert = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']; + foreach ($deleteuuids as $uuid) { + $alldeldata = $alldeldata."'".$uuid."',"; + $uuidasbase16 = ''; + for ($i = 0; $i < 20; $i++) { + $char = ord(substr(base64_decode($uuid), $i, 1)); + $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; + $uuidasbase16 .= $convert[$char & 0x0F]; + } + if (isset($fsfilelistarray[$uuidasbase16.'.png'])) { + if (unlink($avatarfilepath.$uuidasbase16.'.png') === false) { + enter_logfile(2, ' '.sprintf($lang['clean0002'], $uuidasbase16, $uuid).' '.sprintf($lang['errperm'], 'avatars')); + } else { + enter_logfile(4, ' '.sprintf($lang['clean0001'], $uuidasbase16, $uuid)); + } + } + } + unset($deleteuuids,$avatarfilepath,$convert,$uuidasbase16); + $alldeldata = substr($alldeldata, 0, -1); + $alldeldata = '('.$alldeldata.')'; + if ($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(4, ' '.sprintf($lang['cleandel'], $countdel)); + unset($$alldeldata); + } + } else { + enter_logfile(4, ' '.$lang['cleanno']); + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_clients';\n"; + } + } else { + enter_logfile(4, $lang['clean0004']); + $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 (intval($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(4, $lang['clean0003']); + } + + // clean user_iphash + if (intval($db_cache['job_check']['clean_user_iphash']['timestamp']) < ($nowtime - 3500)) { + if (($sqlhashs = $mysqlcon->query("SELECT * FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + enter_logfile(2, 'clean user_iphash:'.print_r($mysqlcon->errorInfo(), true)); + } + + $rem_uuids = ''; + foreach ($sqlhashs as $uuid => $values) { + if (isset($db_cache['all_user'][$uuid]) && $db_cache['all_user'][$uuid]['lastseen'] < ($nowtime - 100)) { + $rem_uuids .= "'".$uuid."',"; + } + } + if ($rem_uuids != '') { + $rem_uuids = substr($rem_uuids, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`user_iphash` WHERE `uuid` IN ({$rem_uuids});\n"; + } + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='clean_user_iphash';\n"; + } + + enter_logfile(6, 'clean needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/db_ex_imp.php b/jobs/db_ex_imp.php index 83e69ac..a73df53 100644 --- a/jobs/db_ex_imp.php +++ b/jobs/db_ex_imp.php @@ -1,156 +1,158 @@ -exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='database_export';") === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['database_export']['timestamp'] = 2; - enter_logfile(4," Started job '".$lang['wihladmex']."'"); - } - - $datetime = date("Y-m-d_H-i-s", time()); - $filepath = $GLOBALS['logpath'].'db_export_'.$datetime; - $filename = 'db_export_'.$datetime; - $limit_entries = 10000; - - if (($tables = $mysqlcon->query("SHOW TABLES")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - - $dump = fopen($filepath.".sql", 'a'); - fwrite($dump, "-- Ranksystem SQL Export\n-- from $datetime\n\nSTART TRANSACTION;\n\n"); - fclose($dump); - - foreach ($tables as $table => $value) { - $out = ''; - if(substr($table, 0, 4) == 'bak_') continue; - #if($table == 'user_snapshot') continue; - if (($numColumns = $mysqlcon->query("SELECT * FROM `$dbname`.`$table` LIMIT 1")->columnCount()) === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - - $out .= 'DROP TABLE IF EXISTS `' . $table . '`;' . "\n\n"; - - if (($create_table = $mysqlcon->query("SHOW CREATE TABLE `$dbname`.`$table`")->fetch(PDO::FETCH_ASSOC)) === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - $out .= $create_table['Create Table'] . ';' . "\n\n"; - - if (($maxvalues = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`$table`;")->fetch()) === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - - $dump = fopen($filepath.".sql", 'a'); - fwrite($dump, $out); - fclose($dump); - - unset($out); - - $loops = $maxvalues[0] / $limit_entries; - for ($i = 0; $i <= $loops; $i++) { - $out = ''; - $offset = $i * $limit_entries; - if (($sqldata = $mysqlcon->query("SELECT * FROM `$dbname`.`$table` LIMIT {$limit_entries} OFFSET {$offset}")->fetchALL(PDO::FETCH_NUM)) === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - - if(count($sqldata) != 0) { - $out .= "INSERT INTO `$table` VALUES"; - foreach ($sqldata as $row) { - $out .= "("; - for ($j = 0; $j < $numColumns; $j++) { - if (isset($row[$j])) { - $out .= $mysqlcon->quote(($row[$j]), ENT_QUOTES); - } else { - $out .= '""'; - } - if ($j < ($numColumns - 1)) { - $out .= ','; - } - } - $out .= '),'; - } - $out = substr($out,0,-1); - $out .= ";"; - } - $out .= "\n\n"; - - $dump = fopen($filepath.".sql", 'a'); - fwrite($dump, $out); - fclose($dump); - - unset($out, $sqldata); - - if (($job_status = $mysqlcon->query("SELECT `timestamp` FROM `$dbname`.`job_check` WHERE `job_name`='database_export';")->fetch(PDO::FETCH_ASSOC)) === false) { - $err++; - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } elseif($job_status['timestamp'] == 3) { - $db_cache['job_check']['database_export']['timestamp'] = 3; - enter_logfile(4,"DB Export job(s) canceled by request"); - $dump = fopen($filepath.".sql", 'a'); - fwrite($dump, "\nROLLBACK;\n\n-- Canceled export"); - fclose($dump); - return; - } - } - } - - $dump = fopen($filepath.".sql", 'a'); - fwrite($dump, "COMMIT;\n\n-- Finished export"); - fclose($dump); - - $zip = new ZipArchive(); - if ($zip->open($filepath.".sql.zip", ZipArchive::CREATE)!==TRUE) { - $err++; - enter_logfile(2," Cannot create $filepath.sql.zip!"); - } else { - $zip->addFile($filepath.".sql",$filename.".sql"); - if(version_compare(phpversion(), '7.2', '>=') && version_compare(phpversion("zip"), '1.2.0', '>=')) { - try { - $zip->setEncryptionName($filename.".sql", ZipArchive::EM_AES_256, $cfg['teamspeak_query_pass']); - } catch (Exception $e) { - enter_logfile(2," Error due creating secured zip-File: ".$e->getCode().': '.$e->getMessage(). " ..Update PHP to Version 7.2 or above and update libzip to version 1.2.0 or above."); - } - } - $zip->close(); - if(!unlink($filepath.".sql")) { - $err++; - enter_logfile(2," Cannot remove SQL file $filepath.sql!"); - } - } - } - - if ($err == 0) { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='database_export';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['database_export']['timestamp'] = 4; - enter_logfile(4," Finished job '".$lang['wihladmex']."'"); - } - } else { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='database_export';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['database_export']['timestamp'] = 3; - } - } - - enter_logfile(4,"DB Export job(s) finished"); - } - enter_logfile(6,"db_ex_imp needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); -} -?> \ No newline at end of file +exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='database_export';") === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['database_export']['timestamp'] = 2; + enter_logfile(4, " Started job '".$lang['wihladmex']."'"); + } + + $datetime = date('Y-m-d_H-i-s', time()); + $filepath = $GLOBALS['logpath'].'db_export_'.$datetime; + $filename = 'db_export_'.$datetime; + $limit_entries = 10000; + + if (($tables = $mysqlcon->query('SHOW TABLES')->fetchALL(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $dump = fopen($filepath.'.sql', 'a'); + fwrite($dump, "-- Ranksystem SQL Export\n-- from $datetime\n\nSTART TRANSACTION;\n\n"); + fclose($dump); + + foreach ($tables as $table => $value) { + $out = ''; + if (substr($table, 0, 4) == 'bak_') { + continue; + } + //if($table == 'user_snapshot') continue; + if (($numColumns = $mysqlcon->query("SELECT * FROM `$dbname`.`$table` LIMIT 1")->columnCount()) === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + $out .= 'DROP TABLE IF EXISTS `'.$table.'`;'."\n\n"; + + if (($create_table = $mysqlcon->query("SHOW CREATE TABLE `$dbname`.`$table`")->fetch(PDO::FETCH_ASSOC)) === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + $out .= $create_table['Create Table'].';'."\n\n"; + + if (($maxvalues = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`$table`;")->fetch()) === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + $dump = fopen($filepath.'.sql', 'a'); + fwrite($dump, $out); + fclose($dump); + + unset($out); + + $loops = $maxvalues[0] / $limit_entries; + for ($i = 0; $i <= $loops; $i++) { + $out = ''; + $offset = $i * $limit_entries; + if (($sqldata = $mysqlcon->query("SELECT * FROM `$dbname`.`$table` LIMIT {$limit_entries} OFFSET {$offset}")->fetchALL(PDO::FETCH_NUM)) === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + if (count($sqldata) != 0) { + $out .= "INSERT INTO `$table` VALUES"; + foreach ($sqldata as $row) { + $out .= '('; + for ($j = 0; $j < $numColumns; $j++) { + if (isset($row[$j])) { + $out .= $mysqlcon->quote(($row[$j]), ENT_QUOTES); + } else { + $out .= '""'; + } + if ($j < ($numColumns - 1)) { + $out .= ','; + } + } + $out .= '),'; + } + $out = substr($out, 0, -1); + $out .= ';'; + } + $out .= "\n\n"; + + $dump = fopen($filepath.'.sql', 'a'); + fwrite($dump, $out); + fclose($dump); + + unset($out, $sqldata); + + if (($job_status = $mysqlcon->query("SELECT `timestamp` FROM `$dbname`.`job_check` WHERE `job_name`='database_export';")->fetch(PDO::FETCH_ASSOC)) === false) { + $err++; + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } elseif ($job_status['timestamp'] == 3) { + $db_cache['job_check']['database_export']['timestamp'] = 3; + enter_logfile(4, 'DB Export job(s) canceled by request'); + $dump = fopen($filepath.'.sql', 'a'); + fwrite($dump, "\nROLLBACK;\n\n-- Canceled export"); + fclose($dump); + + return; + } + } + } + + $dump = fopen($filepath.'.sql', 'a'); + fwrite($dump, "COMMIT;\n\n-- Finished export"); + fclose($dump); + + $zip = new ZipArchive(); + if ($zip->open($filepath.'.sql.zip', ZipArchive::CREATE) !== true) { + $err++; + enter_logfile(2, " Cannot create $filepath.sql.zip!"); + } else { + $zip->addFile($filepath.'.sql', $filename.'.sql'); + if (version_compare(phpversion(), '7.2', '>=') && version_compare(phpversion('zip'), '1.2.0', '>=')) { + try { + $zip->setEncryptionName($filename.'.sql', ZipArchive::EM_AES_256, $cfg['teamspeak_query_pass']); + } catch (Exception $e) { + enter_logfile(2, ' Error due creating secured zip-File: '.$e->getCode().': '.$e->getMessage().' ..Update PHP to Version 7.2 or above and update libzip to version 1.2.0 or above.'); + } + } + $zip->close(); + if (! unlink($filepath.'.sql')) { + $err++; + enter_logfile(2, " Cannot remove SQL file $filepath.sql!"); + } + } + } + + if ($err == 0) { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='database_export';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['database_export']['timestamp'] = 4; + enter_logfile(4, " Finished job '".$lang['wihladmex']."'"); + } + } else { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='3' WHERE `job_name`='database_export';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['database_export']['timestamp'] = 3; + } + } + + enter_logfile(4, 'DB Export job(s) finished'); + } + enter_logfile(6, 'db_ex_imp needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); +} diff --git a/jobs/event_userenter.php b/jobs/event_userenter.php index 6b73470..3b8827e 100644 --- a/jobs/event_userenter.php +++ b/jobs/event_userenter.php @@ -1,65 +1,65 @@ -serverGetSelected()->clientListReset(); - usleep($cfg['teamspeak_query_command_delay']); - $clientlist = $host->serverGetSelected()->clientListtsn("-ip"); - foreach ($clientlist as $client) { - if($client['client_database_id'] == $event['client_database_id']) { - if(strstr($client['connection_client_ip'], '[')) { - $ip = str_replace(array('[',']'),'',$client['connection_client_ip']); - } else { - $ip = $client['connection_client_ip']; - } - break; - } - } - unset($clientlist,$host); - if(!isset($ip)) { - enter_logfile(6,"New user ({$event['client_nickname']} [{$event['client_database_id']}]) joined the server, but can't found a valid IP address."); - } else { - if($cfg['rankup_hash_ip_addresses_mode'] == 1) { - $hash = password_hash($ip, PASSWORD_DEFAULT); - $ip = ''; - } elseif($cfg['rankup_hash_ip_addresses_mode'] == 2) { - $salt = md5(dechex(crc32(dirname(__DIR__)))); - if(version_compare(PHP_VERSION, '7.9.9', '>')) { - $hash = crypt($ip, '$2y$10$'.$salt.'$'); - } else { - $hash = password_hash($ip, PASSWORD_DEFAULT, array("cost" => 10, "salt" => $salt)); - } - $ip = ''; - } else { - $hash = ''; - } - enter_logfile(6,"Event Userenter: Users IP-hash: ".$hash); - - if(($sqlhashs = $mysqlcon->query("SELECT * FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile(2,"event_userenter 2:".print_r($mysqlcon->errorInfo(), true)); - } - - $uuid = htmlspecialchars($event['client_unique_identifier'], ENT_QUOTES); - if(isset($sqlhashs[$uuid])) { - $sqlexec3 .= "UPDATE `$dbname`.`user_iphash` SET `iphash`='$hash',`ip`='$ip' WHERE `uuid`='{$event['client_unique_identifier']}'; "; - enter_logfile(6,"Userenter: UPDATE `$dbname`.`user_iphash` SET `iphash`='$hash',`ip`='$ip' WHERE `uuid`='{$event['client_unique_identifier']}'; "); - } else { - $sqlexec3 .= "INSERT INTO `$dbname`.`user_iphash` (`uuid`,`iphash`,`ip`) VALUES ('{$event['client_unique_identifier']}','$hash','$ip'); "; - enter_logfile(6,"Userenter: INSERT INTO `$dbname`.`user_iphash` (`uuid`,`iphash`,`ip`) VALUES ('{$event['client_unique_identifier']}','$hash','$ip'); "); - } - if($mysqlcon->exec($sqlexec3) === false) { - enter_logfile(2,"event_userenter 3:".print_r($mysqlcon->errorInfo(), true)); - } - } - } catch (Exception $e) { - enter_logfile(2,"event_userenter 4:".$e->getCode().': '.$e->getMessage()); - } - } -} -?> \ No newline at end of file +serverGetSelected()->clientListReset(); + usleep($cfg['teamspeak_query_command_delay']); + $clientlist = $host->serverGetSelected()->clientListtsn('-ip'); + foreach ($clientlist as $client) { + if ($client['client_database_id'] == $event['client_database_id']) { + if (strstr($client['connection_client_ip'], '[')) { + $ip = str_replace(['[', ']'], '', $client['connection_client_ip']); + } else { + $ip = $client['connection_client_ip']; + } + break; + } + } + unset($clientlist,$host); + if (! isset($ip)) { + enter_logfile(6, "New user ({$event['client_nickname']} [{$event['client_database_id']}]) joined the server, but can't found a valid IP address."); + } else { + if ($cfg['rankup_hash_ip_addresses_mode'] == 1) { + $hash = password_hash($ip, PASSWORD_DEFAULT); + $ip = ''; + } elseif ($cfg['rankup_hash_ip_addresses_mode'] == 2) { + $salt = md5(dechex(crc32(dirname(__DIR__)))); + if (version_compare(PHP_VERSION, '7.9.9', '>')) { + $hash = crypt($ip, '$2y$10$'.$salt.'$'); + } else { + $hash = password_hash($ip, PASSWORD_DEFAULT, ['cost' => 10, 'salt' => $salt]); + } + $ip = ''; + } else { + $hash = ''; + } + enter_logfile(6, 'Event Userenter: Users IP-hash: '.$hash); + + if (($sqlhashs = $mysqlcon->query("SELECT * FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + enter_logfile(2, 'event_userenter 2:'.print_r($mysqlcon->errorInfo(), true)); + } + + $uuid = htmlspecialchars($event['client_unique_identifier'], ENT_QUOTES); + if (isset($sqlhashs[$uuid])) { + $sqlexec3 .= "UPDATE `$dbname`.`user_iphash` SET `iphash`='$hash',`ip`='$ip' WHERE `uuid`='{$event['client_unique_identifier']}'; "; + enter_logfile(6, "Userenter: UPDATE `$dbname`.`user_iphash` SET `iphash`='$hash',`ip`='$ip' WHERE `uuid`='{$event['client_unique_identifier']}'; "); + } else { + $sqlexec3 .= "INSERT INTO `$dbname`.`user_iphash` (`uuid`,`iphash`,`ip`) VALUES ('{$event['client_unique_identifier']}','$hash','$ip'); "; + enter_logfile(6, "Userenter: INSERT INTO `$dbname`.`user_iphash` (`uuid`,`iphash`,`ip`) VALUES ('{$event['client_unique_identifier']}','$hash','$ip'); "); + } + if ($mysqlcon->exec($sqlexec3) === false) { + enter_logfile(2, 'event_userenter 3:'.print_r($mysqlcon->errorInfo(), true)); + } + } + } catch (Exception $e) { + enter_logfile(2, 'event_userenter 4:'.$e->getCode().': '.$e->getMessage()); + } + } +} diff --git a/jobs/get_avatars.php b/jobs/get_avatars.php index 9259b30..4ff32ae 100644 --- a/jobs/get_avatars.php +++ b/jobs/get_avatars.php @@ -1,63 +1,68 @@ -channelFileList($cid="0", $cpw="", $path="/"); - } catch (Exception $e) { - if ($e->getCode() != 1281) { - enter_logfile(2,"get_avatars 1:".$e->getCode().': '."Error while getting avatarlist: ".$e->getMessage()); - } - } - $fsfilelist = opendir($GLOBALS['avatarpath']); - while (false !== ($fsfile = readdir($fsfilelist))) { - if ($fsfile != '.' && $fsfile != '..') { - $fsfilelistarray[$fsfile] = filemtime($GLOBALS['avatarpath'].$fsfile); - } - } - unset($fsfilelist); - - if (isset($tsfilelist)) { - $downloadedavatars = 0; - foreach($tsfilelist as $tsfile) { - if($downloadedavatars > 9) break; - $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(); 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 = $GLOBALS['avatarpath'].$uuidasbase16.'.png'; - $downloadedavatars++; - enter_logfile(5,"Download avatar: ".$fullfilename); - if(file_put_contents($avatarfilepath, $tsfile) === false) { - enter_logfile(2,"Error while writing out the avatar. Please check the permission for the folder '".$GLOBALS['avatarpath']."'"); - } - } - catch (Exception $e) { - enter_logfile(2,"get_avatars 2:".$e->getCode().': '."Error while downloading avatar: ".$e->getMessage()); - } - } - } - if((microtime(true) - $starttime) > 5) { - enter_logfile(6,"get_avatars needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return; - } - } - unset($fsfilelistarray); - } - } - - enter_logfile(6,"get_avatars needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} -?> \ No newline at end of file +channelFileList($cid = '0', $cpw = '', $path = '/'); + } catch (Exception $e) { + if ($e->getCode() != 1281) { + enter_logfile(2, 'get_avatars 1:'.$e->getCode().': '.'Error while getting avatarlist: '.$e->getMessage()); + } + } + $fsfilelist = opendir($GLOBALS['avatarpath']); + while (false !== ($fsfile = readdir($fsfilelist))) { + if ($fsfile != '.' && $fsfile != '..') { + $fsfilelistarray[$fsfile] = filemtime($GLOBALS['avatarpath'].$fsfile); + } + } + unset($fsfilelist); + + if (isset($tsfilelist)) { + $downloadedavatars = 0; + foreach ($tsfilelist as $tsfile) { + if ($downloadedavatars > 9) { + break; + } + $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(); + 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 = $GLOBALS['avatarpath'].$uuidasbase16.'.png'; + $downloadedavatars++; + enter_logfile(5, 'Download avatar: '.$fullfilename); + if (file_put_contents($avatarfilepath, $tsfile) === false) { + enter_logfile(2, "Error while writing out the avatar. Please check the permission for the folder '".$GLOBALS['avatarpath']."'"); + } + } catch (Exception $e) { + enter_logfile(2, 'get_avatars 2:'.$e->getCode().': '.'Error while downloading avatar: '.$e->getMessage()); + } + } + } + if ((microtime(true) - $starttime) > 5) { + enter_logfile(6, 'get_avatars needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return; + } + } + unset($fsfilelistarray); + } + } + + enter_logfile(6, 'get_avatars needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/handle_messages.php b/jobs/handle_messages.php index 16b0c04..1107dbd 100644 --- a/jobs/handle_messages.php +++ b/jobs/handle_messages.php @@ -1,237 +1,253 @@ -whoami(),true)); - if($event["targetmode"] == 1) { - $targetid = $event["invokerid"]; - } elseif($event["targetmode"] == 2) { - $targetid = $host->whoami()["client_channel_id"]; - } else { - $targetid = NULL; - } - - enter_logfile(6,"event: ".print_r($event,true)); - - if($host->whoami()["client_id"] != $event["invokerid"] && substr($event["msg"],0,1) === "!") { - $uuid = $event["invokeruid"]; - $admin = 0; - foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $auuid) { - if ($uuid == $auuid) { - $admin = 1; - } - } - - enter_logfile(6,"Client ".$event["invokername"]." (".$event["invokeruid"].") sent textmessage: ".$event["msg"]); - - if((strstr($event["msg"], '!nextup') || strstr($event["msg"], '!next')) && $cfg['rankup_next_message_mode'] != 0) { - if(($user = $mysqlcon->query("SELECT `count`,`nextup`,`idle`,`except`,`name`,`rank`,`grpsince`,`grpid` FROM `$dbname`.`user` WHERE `uuid`='$uuid'")->fetch()) === false) { - enter_logfile(2,"handle_messages 1:".print_r($mysqlcon->errorInfo(), true)); - } - - if(($sqlhisgroup = $mysqlcon->query("SELECT `sgid`,`sgidname` FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - enter_logfile(2,"handle_messages 2:".print_r($mysqlcon->errorInfo(), true)); - } - - ksort($cfg['rankup_definition']); - $countgrp = count($cfg['rankup_definition']); - $grpcount = 0; - - foreach ($cfg['rankup_definition'] as $rank) { - if ($cfg['rankup_time_assess_mode'] == 1) { - $nextup = $rank['time'] - $user['count'] + $user['idle']; - } else { - $nextup = $rank['time'] - $user['count']; - } - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($nextup)); - $days = $dtF->diff($dtT)->format('%a'); - $hours = $dtF->diff($dtT)->format('%h'); - $mins = $dtF->diff($dtT)->format('%i'); - $secs = $dtF->diff($dtT)->format('%s'); - $name = $user['name']; - $grpcount++; - if ($nextup > 0 && $nextup < $rank['time'] || $grpcount == $countgrp && $nextup <= 0) { - if ($grpcount == $countgrp && $nextup <= 0) { - $msg = sprintf($cfg['rankup_next_message_2'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); - } elseif ($user['except'] == 2 || $user['except'] == 3) { - $msg = sprintf($cfg['rankup_next_message_3'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); - } else { - $msg = sprintf($cfg['rankup_next_message_1'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); - } - $targetid = $event["invokerid"]; - sendmessage($host, $cfg, $event["invokeruid"], $msg, 1, $targetid); - if($cfg['rankup_next_message_mode'] == 1) { - break; - } - } - } - krsort($cfg['rankup_definition']); - return; - } - - if(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'version')) { - if(version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>') && $cfg['version_latest_available'] != '') { - sendmessage($host, $cfg, $event["invokeruid"], sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog'), $event["targetmode"], $targetid); - } else { - sendmessage($host, $cfg, $event["invokeruid"], sprintf($lang['msg0001'], $cfg['version_current_using']), $event["targetmode"], $targetid); - } - return; - } - - if(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'help') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'info') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'commands') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'cmd')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0002'], $event["targetmode"], $targetid); - return; - } - - if(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'news')) { - if(isset($cfg['teamspeak_news_bb']) && $cfg['teamspeak_news_bb'] != '') { - sendmessage($host, $cfg, $event["invokeruid"], "Latest News:\n".$cfg['teamspeak_news_bb'], $event["targetmode"], $targetid); - } else { - sendmessage($host, $cfg, $event["invokeruid"], "No News available yet.", $event["targetmode"], $targetid); - } - return; - } - - if((strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'shutdown') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'quit') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'stop')) && $admin == 1) { - enter_logfile(5,sprintf($lang['msg0004'], $event["invokername"], $event["invokeruid"])); - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0005'], $event["targetmode"], $targetid); - if (substr(php_uname(), 0, 7) == "Windows") { - exec("start ".$phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php stop"); - } else { - exec($phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php stop > /dev/null &"); - } - file_put_contents($GLOBALS['autostart'],""); - shutdown($mysql,$cfg,4,"Stop command received!"); - } elseif (strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'shutdown') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'quit') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'stop')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003'], $event["targetmode"], $targetid); - return; - } - - if((strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'restart') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'reboot')) && $admin == 1) { - enter_logfile(5,sprintf($lang['msg0007'], $event["invokername"], $event["invokeruid"], "restart")); - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0006'], $event["targetmode"], $targetid); - if (substr(php_uname(), 0, 7) == "Windows") { - exec("start ".$phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php restart"); - } else { - exec($phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php restart > /dev/null 2>/dev/null &"); - } - return; - } elseif (strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'restart') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'reboot')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003'], $event["targetmode"], $targetid); - return; - } - - if((strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'checkupdate') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'update')) && $admin == 1) { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('check_update','get_version','calc_server_stats','calc_donut_chars')") === false) { - enter_logfile(4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); - } - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0008'], $event["targetmode"], $targetid); - return; - } elseif(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'checkupdate') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'update')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003'], $event["targetmode"], $targetid); - return; - } - - if((strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'clean')) && $admin == 1) { - enter_logfile(5,sprintf($lang['msg0007'], $event["invokername"], $event["invokeruid"], "clean")); - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('clean_db','clean_clients')") === false) { - enter_logfile(4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); - } - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0009'] ." ". $lang['msg0010'], $event["targetmode"], $targetid); - return; - } elseif(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'clean')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003'], $event["targetmode"], $targetid); - return; - } - - if((strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'reloadgroups') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'reloadicons')) && $admin == 1) { - if($mysqlcon->exec("DELETE FROM `$dbname`.`groups`") === false) { - enter_logfile(4,"handle_messages 14:".print_r($mysqlcon->errorInfo(), true)); - } else { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger';") === false) { - enter_logfile(4,"handle_messages 15:".print_r($mysqlcon->errorInfo(), true)); - } - } - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0011'] ." ". $lang['msg0010'], $event["targetmode"], $targetid); - return; - } elseif(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'reloadgroups')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003'], $event["targetmode"], $targetid); - return; - } - - if(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'online') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'uptime')) { - sendmessage($host, $cfg, $event["invokeruid"], sprintf("Bot is online since %s, now %s.", (DateTime::createFromFormat('U', $cfg['temp_last_botstart'])->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s")), (new DateTime("@0"))->diff(new DateTime("@".(time()-$cfg['temp_last_botstart'])))->format($cfg['default_date_format'])), $event["targetmode"], $targetid); - return; - } - - if(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'runtime') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'runtimes')) { - sendmessage($host, $cfg, $event["invokeruid"], sprintf("Last 10 runtimes (in seconds):\n%s\n\nØ %s sec. (Σ %s)", str_replace(";","\n",$cfg['temp_last_laptime']), round(($cfg['temp_whole_laptime'] / $cfg['temp_count_laptime']),5), $cfg['temp_count_laptime']), $event["targetmode"], $targetid); - return; - } - - if(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'memory')) { - sendmessage($host, $cfg, $event["invokeruid"], sprintf("Allocated memory of PHP for the Ranksystem Bot..\ncurrent using: %s KiB\npeak using: %s KiB", round((memory_get_usage()/1024),2), round((memory_get_peak_usage()/1024),2)), $event["targetmode"], $targetid); - return; - } - - if((strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'logs') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'log')) && $admin == 1) { - $parameter = explode(' ', $event["msg"]); - if(isset($parameter[1]) && $parameter[1] > 0 && $parameter[1] < 1000) { - $number_lines = $parameter[1]; - } else { - $number_lines = 5; - } - $filters = explode(',', 'CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG,NONE'); - $filter2 = $lastfilter = ''; - $lines=array(); - if(file_exists($GLOBALS['logfile'])) { - $fp = fopen($GLOBALS['logfile'], "r"); - $buffer=array(); - while($line = fgets($fp, 4096)) { - array_push($buffer, $line); - } - fclose($fp); - $buffer = array_reverse($buffer); - foreach($buffer as $line) { - if(substr($line, 0, 2) != "20" && in_array($lastfilter, $filters)) { - array_push($lines, $line); - if(count($lines)>=$number_lines) { - break; - } - continue; - } - foreach($filters as $filter) { - if(($filter != NULL && strstr($line, $filter) && $filter2 == NULL) || ($filter2 != NULL && strstr($line, $filter2) && $filter != NULL && strstr($line, $filter))) { - if($filter == "CRITICAL" || $filter == "ERROR") { - array_push($lines, '[COLOR=red]'.$line.'[/COLOR]'); - } else { - array_push($lines, $line); - } - $lastfilter = $filter; - if (count($lines)>=$number_lines) { - break 2; - } - break; - } - } - } - } else { - $lines[] = "Perhaps the logfile got rotated or something goes wrong due opening the file!\n"; - $lines[] = "No log entry found...\n"; - } - $lines = array_reverse($lines); - $message = "\n"; - foreach ($lines as $line) { - $message .= $line; - } - $targetid = $event["invokerid"]; - sendmessage($host, $cfg, $event["invokeruid"], $message, 1, $targetid, NULL, NULL, NULL, $nolog=1); - } elseif(strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'logs') || strstr($event["msg"], $cfg['teamspeak_chatcommand_prefix'].'log')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003'], $event["targetmode"], $targetid); - } - - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0002'], $event["targetmode"], $targetid); - } -} -?> \ No newline at end of file +whoami(), true)); + if ($event['targetmode'] == 1) { + $targetid = $event['invokerid']; + } elseif ($event['targetmode'] == 2) { + $targetid = $host->whoami()['client_channel_id']; + } else { + $targetid = null; + } + + enter_logfile(6, 'event: '.print_r($event, true)); + + if ($host->whoami()['client_id'] != $event['invokerid'] && substr($event['msg'], 0, 1) === '!') { + $uuid = $event['invokeruid']; + $admin = 0; + foreach (array_flip($cfg['webinterface_admin_client_unique_id_list']) as $auuid) { + if ($uuid == $auuid) { + $admin = 1; + } + } + + enter_logfile(6, 'Client '.$event['invokername'].' ('.$event['invokeruid'].') sent textmessage: '.$event['msg']); + + if ((strstr($event['msg'], '!nextup') || strstr($event['msg'], '!next')) && $cfg['rankup_next_message_mode'] != 0) { + if (($user = $mysqlcon->query("SELECT `count`,`nextup`,`idle`,`except`,`name`,`rank`,`grpsince`,`grpid` FROM `$dbname`.`user` WHERE `uuid`='$uuid'")->fetch()) === false) { + enter_logfile(2, 'handle_messages 1:'.print_r($mysqlcon->errorInfo(), true)); + } + + if (($sqlhisgroup = $mysqlcon->query("SELECT `sgid`,`sgidname` FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + enter_logfile(2, 'handle_messages 2:'.print_r($mysqlcon->errorInfo(), true)); + } + + ksort($cfg['rankup_definition']); + $countgrp = count($cfg['rankup_definition']); + $grpcount = 0; + + foreach ($cfg['rankup_definition'] as $rank) { + if ($cfg['rankup_time_assess_mode'] == 1) { + $nextup = $rank['time'] - $user['count'] + $user['idle']; + } else { + $nextup = $rank['time'] - $user['count']; + } + $dtF = new DateTime('@0'); + $dtT = new DateTime('@'.round($nextup)); + $days = $dtF->diff($dtT)->format('%a'); + $hours = $dtF->diff($dtT)->format('%h'); + $mins = $dtF->diff($dtT)->format('%i'); + $secs = $dtF->diff($dtT)->format('%s'); + $name = $user['name']; + $grpcount++; + if ($nextup > 0 && $nextup < $rank['time'] || $grpcount == $countgrp && $nextup <= 0) { + if ($grpcount == $countgrp && $nextup <= 0) { + $msg = sprintf($cfg['rankup_next_message_2'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); + } elseif ($user['except'] == 2 || $user['except'] == 3) { + $msg = sprintf($cfg['rankup_next_message_3'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); + } else { + $msg = sprintf($cfg['rankup_next_message_1'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); + } + $targetid = $event['invokerid']; + sendmessage($host, $cfg, $event['invokeruid'], $msg, 1, $targetid); + if ($cfg['rankup_next_message_mode'] == 1) { + break; + } + } + } + krsort($cfg['rankup_definition']); + + return; + } + + if (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'version')) { + if (version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>') && $cfg['version_latest_available'] != '') { + sendmessage($host, $cfg, $event['invokeruid'], sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog'), $event['targetmode'], $targetid); + } else { + sendmessage($host, $cfg, $event['invokeruid'], sprintf($lang['msg0001'], $cfg['version_current_using']), $event['targetmode'], $targetid); + } + + return; + } + + if (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'help') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'info') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'commands') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'cmd')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0002'], $event['targetmode'], $targetid); + + return; + } + + if (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'news')) { + if (isset($cfg['teamspeak_news_bb']) && $cfg['teamspeak_news_bb'] != '') { + sendmessage($host, $cfg, $event['invokeruid'], "Latest News:\n".$cfg['teamspeak_news_bb'], $event['targetmode'], $targetid); + } else { + sendmessage($host, $cfg, $event['invokeruid'], 'No News available yet.', $event['targetmode'], $targetid); + } + + return; + } + + if ((strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'shutdown') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'quit') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'stop')) && $admin == 1) { + enter_logfile(5, sprintf($lang['msg0004'], $event['invokername'], $event['invokeruid'])); + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0005'], $event['targetmode'], $targetid); + if (substr(php_uname(), 0, 7) == 'Windows') { + exec('start '.$phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php stop'); + } else { + exec($phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php stop > /dev/null &'); + } + file_put_contents($GLOBALS['autostart'], ''); + shutdown($mysql, $cfg, 4, 'Stop command received!'); + } elseif (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'shutdown') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'quit') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'stop')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0003'], $event['targetmode'], $targetid); + + return; + } + + if ((strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'restart') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'reboot')) && $admin == 1) { + enter_logfile(5, sprintf($lang['msg0007'], $event['invokername'], $event['invokeruid'], 'restart')); + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0006'], $event['targetmode'], $targetid); + if (substr(php_uname(), 0, 7) == 'Windows') { + exec('start '.$phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php restart'); + } else { + exec($phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php restart > /dev/null 2>/dev/null &'); + } + + return; + } elseif (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'restart') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'reboot')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0003'], $event['targetmode'], $targetid); + + return; + } + + if ((strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'checkupdate') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'update')) && $admin == 1) { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('check_update','get_version','calc_server_stats','calc_donut_chars')") === false) { + enter_logfile(4, 'handle_messages 13:'.print_r($mysqlcon->errorInfo(), true)); + } + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0008'], $event['targetmode'], $targetid); + + return; + } elseif (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'checkupdate') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'update')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0003'], $event['targetmode'], $targetid); + + return; + } + + if ((strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'clean')) && $admin == 1) { + enter_logfile(5, sprintf($lang['msg0007'], $event['invokername'], $event['invokeruid'], 'clean')); + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('clean_db','clean_clients')") === false) { + enter_logfile(4, 'handle_messages 13:'.print_r($mysqlcon->errorInfo(), true)); + } + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0009'].' '.$lang['msg0010'], $event['targetmode'], $targetid); + + return; + } elseif (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'clean')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0003'], $event['targetmode'], $targetid); + + return; + } + + if ((strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'reloadgroups') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'reloadicons')) && $admin == 1) { + if ($mysqlcon->exec("DELETE FROM `$dbname`.`groups`") === false) { + enter_logfile(4, 'handle_messages 14:'.print_r($mysqlcon->errorInfo(), true)); + } else { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger';") === false) { + enter_logfile(4, 'handle_messages 15:'.print_r($mysqlcon->errorInfo(), true)); + } + } + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0011'].' '.$lang['msg0010'], $event['targetmode'], $targetid); + + return; + } elseif (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'reloadgroups')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0003'], $event['targetmode'], $targetid); + + return; + } + + if (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'online') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'uptime')) { + sendmessage($host, $cfg, $event['invokeruid'], sprintf('Bot is online since %s, now %s.', (DateTime::createFromFormat('U', $cfg['temp_last_botstart'])->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format('Y-m-d H:i:s')), (new DateTime('@0'))->diff(new DateTime('@'.(time() - $cfg['temp_last_botstart'])))->format($cfg['default_date_format'])), $event['targetmode'], $targetid); + + return; + } + + if (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'runtime') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'runtimes')) { + sendmessage($host, $cfg, $event['invokeruid'], sprintf("Last 10 runtimes (in seconds):\n%s\n\nØ %s sec. (Σ %s)", str_replace(';', "\n", $cfg['temp_last_laptime']), round(($cfg['temp_whole_laptime'] / $cfg['temp_count_laptime']), 5), $cfg['temp_count_laptime']), $event['targetmode'], $targetid); + + return; + } + + if (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'memory')) { + sendmessage($host, $cfg, $event['invokeruid'], sprintf("Allocated memory of PHP for the Ranksystem Bot..\ncurrent using: %s KiB\npeak using: %s KiB", round((memory_get_usage() / 1024), 2), round((memory_get_peak_usage() / 1024), 2)), $event['targetmode'], $targetid); + + return; + } + + if ((strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'logs') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'log')) && $admin == 1) { + $parameter = explode(' ', $event['msg']); + if (isset($parameter[1]) && $parameter[1] > 0 && $parameter[1] < 1000) { + $number_lines = $parameter[1]; + } else { + $number_lines = 5; + } + $filters = explode(',', 'CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG,NONE'); + $filter2 = $lastfilter = ''; + $lines = []; + if (file_exists($GLOBALS['logfile'])) { + $fp = fopen($GLOBALS['logfile'], 'r'); + $buffer = []; + while ($line = fgets($fp, 4096)) { + array_push($buffer, $line); + } + fclose($fp); + $buffer = array_reverse($buffer); + foreach ($buffer as $line) { + if (substr($line, 0, 2) != '20' && in_array($lastfilter, $filters)) { + array_push($lines, $line); + if (count($lines) >= $number_lines) { + break; + } + continue; + } + foreach ($filters as $filter) { + if (($filter != null && strstr($line, $filter) && $filter2 == null) || ($filter2 != null && strstr($line, $filter2) && $filter != null && strstr($line, $filter))) { + if ($filter == 'CRITICAL' || $filter == 'ERROR') { + array_push($lines, '[COLOR=red]'.$line.'[/COLOR]'); + } else { + array_push($lines, $line); + } + $lastfilter = $filter; + if (count($lines) >= $number_lines) { + break 2; + } + break; + } + } + } + } else { + $lines[] = "Perhaps the logfile got rotated or something goes wrong due opening the file!\n"; + $lines[] = "No log entry found...\n"; + } + $lines = array_reverse($lines); + $message = "\n"; + foreach ($lines as $line) { + $message .= $line; + } + $targetid = $event['invokerid']; + sendmessage($host, $cfg, $event['invokeruid'], $message, 1, $targetid, null, null, null, $nolog = 1); + } elseif (strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'logs') || strstr($event['msg'], $cfg['teamspeak_chatcommand_prefix'].'log')) { + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0003'], $event['targetmode'], $targetid); + } + + sendmessage($host, $cfg, $event['invokeruid'], $lang['msg0002'], $event['targetmode'], $targetid); + } +} diff --git a/jobs/reset_rs.php b/jobs/reset_rs.php index f47133b..c490f1e 100644 --- a/jobs/reset_rs.php +++ b/jobs/reset_rs.php @@ -1,293 +1,291 @@ -exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_group_withdraw';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err_cnt++; - } else { - $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 2; - enter_logfile(4," Started job '".$lang['wihladm32']."'"); - } - - krsort($cfg['rankup_definition']); - - if (($all_clients = $mysqlcon->query("SELECT `cldbid`,`uuid`,`name` FROM `$dbname`.`user`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - shutdown($mysqlcon,1,"Select on DB failed: ".print_r($mysqlcon->errorInfo(), true)); - } - - foreach ($cfg['rankup_definition'] as $rank) { - enter_logfile(5," Getting TS3 servergrouplist for ".$db_cache['groups'][$rank['group']]['sgidname']." (ID: ".$rank['group'].")"); - try { - usleep($cfg['teamspeak_query_command_delay']); - $tsclientlist = $ts3->servergroupclientlist($rank['group']); - - foreach ($tsclientlist as $tsclient) { - if (isset($all_clients[$tsclient['cldbid']])) { - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupClientDel($rank['group'], $tsclient['cldbid']); - enter_logfile(5," ".sprintf($lang['sgrprm'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'])); - } catch (Exception $e) { - enter_logfile(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'][$rank['group']]['sgidname'], $rank['group'])); - $err_cnt++; - } - } - } - } catch (Exception $e) { - enter_logfile(2," TS3 error: ".$e->getCode().': '.$e->getMessage()." due getting servergroupclientlist for group ".$groupid); - $err_cnt++; - } - } - if ($err_cnt == 0) { - 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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 4; - enter_logfile(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(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(intval($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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - $db_cache['job_check']['reset_user_time']['timestamp'] = 2; - enter_logfile(4," Started job '".$lang['wihladm31']."' (".$lang['wisupidle'].": ".$lang['wihladm311'].")"); - } - - // zero times - if($mysqlcon->exec("UPDATE `$dbname`.`stats_server` SET `total_online_time`='0', `total_online_month`='0', `total_online_week`='0', `total_active_time`='0', `total_inactive_time`='0';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Reset Server statistics summary (table: stats_server)"); - } - if($mysqlcon->exec("UPDATE `$dbname`.`stats_user` SET `count_week`='0', `count_month`='0', `idle_week`='0', `idle_month`='0', `total_connections`='0', `active_week`='0', `active_month`='0';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Reset My statistics (table: stats_user)"); - } - if($mysqlcon->exec("UPDATE `$dbname`.`user` SET `count`='0', `grpid`='0', `nextup`='0', `idle`='0', `boosttime`='0', `rank`='0', `grpsince`='0';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Reset List Rankup / user statistics (table: user)"); - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`user_snapshot`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned Top users / user statistic snapshots (table: user_snapshot)"); - } - - - if ($err == 0) { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_user_time';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_user_time']['timestamp'] = 4; - enter_logfile(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(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(intval($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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - $db_cache['job_check']['reset_user_delete']['timestamp'] = 2; - enter_logfile(4," Started job '".$lang['wihladm31']."' (".$lang['wisupidle'].": ".$lang['wihladm312'].")"); - } - - // remove clients - if($mysqlcon->exec("DELETE FROM `$dbname`.`stats_nations`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned donut chart nations (table: stats_nations)"); - } - if($mysqlcon->exec("UPDATE `$dbname`.`stats_platforms` SET `count`=0;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned donut chart platforms (table: stats_platforms)"); - } - if($mysqlcon->exec("UPDATE `$dbname`.`stats_server` SET `total_user`='0', `total_online_time`='0', `total_online_month`='0', `total_online_week`='0', `total_active_time`='0', `total_inactive_time`='0', `country_nation_name_1`='', `country_nation_name_2`='', `country_nation_name_3`='', `country_nation_name_4`='', `country_nation_name_5`='', `country_nation_1`='0', `country_nation_2`='0', `country_nation_3`='0', `country_nation_4`='0', `country_nation_5`='0', `country_nation_other`='0', `platform_1`='0', `platform_2`='0', `platform_3`='0', `platform_4`='0', `platform_5`='0', `platform_other`='0', `version_name_1`='', `version_name_2`='', `version_name_3`='', `version_name_4`='', `version_name_5`='', `version_1`='0', `version_2`='0', `version_3`='0', `version_4`='0', `version_5`='0', `version_other`='0';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Reset Server statistics summary (table: stats_server)"); - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`stats_user`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned My statistics (table: stats_user)"); - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`stats_versions`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned donut chart versions (table: stats_versions)"); - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`user`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned List Rankup / user statistics (table: user)"); - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`user_iphash`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned user ip-hash values (table: user_iphash)"); - } - if($mysqlcon->exec("DELETE FROM `$dbname`.`user_snapshot`;") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - $err++; - } else { - enter_logfile(4," Cleaned Top users / user statistic snapshots (table: user_snapshot)"); - } - - - if ($err == 0) { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_user_delete';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_user_delete']['timestamp'] = 4; - enter_logfile(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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_user_delete']['timestamp'] = 3; - } - } - } - - if (in_array(intval($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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 2; - enter_logfile(4," Started job '".$lang['wihladm33']."'"); - if ($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { - enter_logfile(4," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger';") === false) { - enter_logfile(4," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } - } - } - - $del_folder = array('avatars'.DIRECTORY_SEPARATOR,'tsicons'.DIRECTORY_SEPARATOR); - $err_cnt = 0; - - if (!function_exists('rm_file_reset')) { - function rm_file_reset($folder,$cfg) { - foreach(scandir($folder) as $file) { - if (in_array($file, array('.','..','check.png','placeholder.png','rs.png','servericon.png','100.png','200.png','300.png','500.png','600.png')) || is_dir($folder.$file)) continue; - if(unlink($folder.$file)) { - enter_logfile(4," File ".$folder.$file." successfully deleted."); - } else { - enter_logfile(2," File ".$folder.$file." couldn't be deleted. Please check the file permissions."); - $err_cnt++; - } - } - } - } - - foreach ($del_folder as $folder) { - if(is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder)) { - rm_file_reset(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder,$cfg); - } - } - - if ($err_cnt == 0) { - if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_webspace_cache';") === false) { - enter_logfile(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 4; - enter_logfile(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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 3; - } - } - } - - - if (in_array(intval($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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_usage_graph']['timestamp'] = 2; - enter_logfile(4," Started job '".$lang['wihladm34']."'"); - } - if ($mysqlcon->exec("DELETE FROM `$dbname`.`server_usage`;") === false) { - enter_logfile(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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_usage_graph']['timestamp'] = 3; - } - } else { - enter_logfile(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(2," Executing SQL commands failed: ".print_r($mysqlcon->errorInfo(), true)); - } else { - $db_cache['job_check']['reset_usage_graph']['timestamp'] = 4; - enter_logfile(4," Finished job '".$lang['wihladm34']."'"); - } - } - } - - enter_logfile(4,"Reset job(s) finished"); - - if(intval($db_cache['job_check']['reset_stop_after']['timestamp']) == 1) { - if (substr(php_uname(), 0, 7) == "Windows") { - pclose(popen("start /B cmd /C ".$phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php stop >NUL 2>NUL", "r")); - file_put_contents($GLOBALS['autostart'],""); - } else { - exec($phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php stop > /dev/null &"); - file_put_contents($GLOBALS['autostart'],""); - } - shutdown($mysqlcon,4,"Stop requested after Reset job. Wait for manually start."); - } - } - enter_logfile(6,"reset_rs needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); -} -?> \ No newline at end of file +exec("UPDATE `$dbname`.`job_check` SET `timestamp`='2' WHERE `job_name`='reset_group_withdraw';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err_cnt++; + } else { + $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 2; + enter_logfile(4, " Started job '".$lang['wihladm32']."'"); + } + + krsort($cfg['rankup_definition']); + + if (($all_clients = $mysqlcon->query("SELECT `cldbid`,`uuid`,`name` FROM `$dbname`.`user`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + shutdown($mysqlcon, 1, 'Select on DB failed: '.print_r($mysqlcon->errorInfo(), true)); + } + + foreach ($cfg['rankup_definition'] as $rank) { + enter_logfile(5, ' Getting TS3 servergrouplist for '.$db_cache['groups'][$rank['group']]['sgidname'].' (ID: '.$rank['group'].')'); + try { + usleep($cfg['teamspeak_query_command_delay']); + $tsclientlist = $ts3->servergroupclientlist($rank['group']); + + foreach ($tsclientlist as $tsclient) { + if (isset($all_clients[$tsclient['cldbid']])) { + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupClientDel($rank['group'], $tsclient['cldbid']); + enter_logfile(5, ' '.sprintf($lang['sgrprm'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'])); + } catch (Exception $e) { + enter_logfile(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'][$rank['group']]['sgidname'], $rank['group'])); + $err_cnt++; + } + } + } + } catch (Exception $e) { + enter_logfile(2, ' TS3 error: '.$e->getCode().': '.$e->getMessage().' due getting servergroupclientlist for group '.$groupid); + $err_cnt++; + } + } + if ($err_cnt == 0) { + 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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_group_withdraw']['timestamp'] = 4; + enter_logfile(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(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(intval($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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + $db_cache['job_check']['reset_user_time']['timestamp'] = 2; + enter_logfile(4, " Started job '".$lang['wihladm31']."' (".$lang['wisupidle'].': '.$lang['wihladm311'].')'); + } + + // zero times + if ($mysqlcon->exec("UPDATE `$dbname`.`stats_server` SET `total_online_time`='0', `total_online_month`='0', `total_online_week`='0', `total_active_time`='0', `total_inactive_time`='0';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Reset Server statistics summary (table: stats_server)'); + } + if ($mysqlcon->exec("UPDATE `$dbname`.`stats_user` SET `count_week`='0', `count_month`='0', `idle_week`='0', `idle_month`='0', `total_connections`='0', `active_week`='0', `active_month`='0';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Reset My statistics (table: stats_user)'); + } + if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `count`='0', `grpid`='0', `nextup`='0', `idle`='0', `boosttime`='0', `rank`='0', `grpsince`='0';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Reset List Rankup / user statistics (table: user)'); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`user_snapshot`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned Top users / user statistic snapshots (table: user_snapshot)'); + } + + if ($err == 0) { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_user_time';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_user_time']['timestamp'] = 4; + enter_logfile(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(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(intval($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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + $db_cache['job_check']['reset_user_delete']['timestamp'] = 2; + enter_logfile(4, " Started job '".$lang['wihladm31']."' (".$lang['wisupidle'].': '.$lang['wihladm312'].')'); + } + + // remove clients + if ($mysqlcon->exec("DELETE FROM `$dbname`.`stats_nations`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned donut chart nations (table: stats_nations)'); + } + if ($mysqlcon->exec("UPDATE `$dbname`.`stats_platforms` SET `count`=0;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned donut chart platforms (table: stats_platforms)'); + } + if ($mysqlcon->exec("UPDATE `$dbname`.`stats_server` SET `total_user`='0', `total_online_time`='0', `total_online_month`='0', `total_online_week`='0', `total_active_time`='0', `total_inactive_time`='0', `country_nation_name_1`='', `country_nation_name_2`='', `country_nation_name_3`='', `country_nation_name_4`='', `country_nation_name_5`='', `country_nation_1`='0', `country_nation_2`='0', `country_nation_3`='0', `country_nation_4`='0', `country_nation_5`='0', `country_nation_other`='0', `platform_1`='0', `platform_2`='0', `platform_3`='0', `platform_4`='0', `platform_5`='0', `platform_other`='0', `version_name_1`='', `version_name_2`='', `version_name_3`='', `version_name_4`='', `version_name_5`='', `version_1`='0', `version_2`='0', `version_3`='0', `version_4`='0', `version_5`='0', `version_other`='0';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Reset Server statistics summary (table: stats_server)'); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`stats_user`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned My statistics (table: stats_user)'); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`stats_versions`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned donut chart versions (table: stats_versions)'); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`user`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned List Rankup / user statistics (table: user)'); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`user_iphash`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned user ip-hash values (table: user_iphash)'); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`user_snapshot`;") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + $err++; + } else { + enter_logfile(4, ' Cleaned Top users / user statistic snapshots (table: user_snapshot)'); + } + + if ($err == 0) { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_user_delete';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_user_delete']['timestamp'] = 4; + enter_logfile(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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_user_delete']['timestamp'] = 3; + } + } + } + + if (in_array(intval($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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 2; + enter_logfile(4, " Started job '".$lang['wihladm33']."'"); + if ($mysqlcon->exec("DELETE FROM `$dbname`.`groups`;") === false) { + enter_logfile(4, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`=1 WHERE `job_name`='reload_trigger';") === false) { + enter_logfile(4, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } + } + } + + $del_folder = ['avatars'.DIRECTORY_SEPARATOR, 'tsicons'.DIRECTORY_SEPARATOR]; + $err_cnt = 0; + + if (! function_exists('rm_file_reset')) { + function rm_file_reset($folder, $cfg) + { + foreach (scandir($folder) as $file) { + if (in_array($file, ['.', '..', 'check.png', 'placeholder.png', 'rs.png', 'servericon.png', '100.png', '200.png', '300.png', '500.png', '600.png']) || is_dir($folder.$file)) { + continue; + } + if (unlink($folder.$file)) { + enter_logfile(4, ' File '.$folder.$file.' successfully deleted.'); + } else { + enter_logfile(2, ' File '.$folder.$file." couldn't be deleted. Please check the file permissions."); + $err_cnt++; + } + } + } + } + + foreach ($del_folder as $folder) { + if (is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder)) { + rm_file_reset(dirname(__DIR__).DIRECTORY_SEPARATOR.$folder, $cfg); + } + } + + if ($err_cnt == 0) { + if ($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='4' WHERE `job_name`='reset_webspace_cache';") === false) { + enter_logfile(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 4; + enter_logfile(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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_webspace_cache']['timestamp'] = 3; + } + } + } + + if (in_array(intval($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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_usage_graph']['timestamp'] = 2; + enter_logfile(4, " Started job '".$lang['wihladm34']."'"); + } + if ($mysqlcon->exec("DELETE FROM `$dbname`.`server_usage`;") === false) { + enter_logfile(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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_usage_graph']['timestamp'] = 3; + } + } else { + enter_logfile(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(2, ' Executing SQL commands failed: '.print_r($mysqlcon->errorInfo(), true)); + } else { + $db_cache['job_check']['reset_usage_graph']['timestamp'] = 4; + enter_logfile(4, " Finished job '".$lang['wihladm34']."'"); + } + } + } + + enter_logfile(4, 'Reset job(s) finished'); + + if (intval($db_cache['job_check']['reset_stop_after']['timestamp']) == 1) { + if (substr(php_uname(), 0, 7) == 'Windows') { + pclose(popen('start /B cmd /C '.$phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php stop >NUL 2>NUL', 'r')); + file_put_contents($GLOBALS['autostart'], ''); + } else { + exec($phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php stop > /dev/null &'); + file_put_contents($GLOBALS['autostart'], ''); + } + shutdown($mysqlcon, 4, 'Stop requested after Reset job. Wait for manually start.'); + } + } + enter_logfile(6, 'reset_rs needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); +} diff --git a/jobs/server_usage.php b/jobs/server_usage.php index c8503ce..f2e8725 100644 --- a/jobs/server_usage.php +++ b/jobs/server_usage.php @@ -1,68 +1,71 @@ - 898) { // every 15 mins - unset($db_cache['max_timestamp_server_usage']); - $db_cache['max_timestamp_server_usage'][$nowtime] = ''; - - //Calc time next rankup - enter_logfile(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(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 => $dummy) { - $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(6,"Calc next rankup for offline user [DONE]"); - } - - enter_logfile(6,"server_usage needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); -} \ No newline at end of file + 898) { // every 15 mins + unset($db_cache['max_timestamp_server_usage']); + $db_cache['max_timestamp_server_usage'][$nowtime] = ''; + + //Calc time next rankup + enter_logfile(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(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 => $dummy) { + $grpcount++; + if ($activetime > $time) { + if ($grpcount == 1) { + $nextup = 0; + } + break; + } else { + $nextup = $time - $activetime; + } + } + $updatenextup[] = [ + '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(6, 'Calc next rankup for offline user [DONE]'); + } + + enter_logfile(6, 'server_usage needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; +} diff --git a/jobs/update_channel.php b/jobs/update_channel.php index 3e8a591..f285d5a 100644 --- a/jobs/update_channel.php +++ b/jobs/update_channel.php @@ -1,72 +1,74 @@ -channelListResettsn(); - $channellist = $ts3->channelListtsn(); - - foreach($channellist as $channel) { - $chname = $mysqlcon->quote((mb_substr(mb_convert_encoding($channel['channel_name'],'UTF-8','auto'),0,40)), ENT_QUOTES); - - if(isset($db_cache['channel'][$channel['cid']]) && - $db_cache['channel'][$channel['cid']]['pid'] == $channel['pid'] && - $db_cache['channel'][$channel['cid']]['channel_order'] == $channel['channel_order'] && - $db_cache['channel'][$channel['cid']]['channel_name'] == $chname) { - enter_logfile(7,"Continue channel ".$chname." (CID: ".$channel['cid'].")"); - continue; - } else { - enter_logfile(6,"Update/Insert channel ".$chname." (CID: ".$channel['cid'].")"); - $updatechannel[] = array( - "cid" => $channel['cid'], - "pid" => $channel['pid'], - "channel_order" => $channel['channel_order'], - "channel_name" => $chname - ); - } - } - - if (isset($updatechannel)) { - $sqlinsertvalues = ''; - foreach ($updatechannel as $updatedata) { - $sqlinsertvalues .= "({$updatedata['cid']},{$updatedata['pid']},{$updatedata['channel_order']},{$updatedata['channel_name']}),"; - $db_cache['channel'][$updatedata['cid']]['pid'] = $updatedata['pid']; - $db_cache['channel'][$updatedata['cid']]['channel_order'] = $updatedata['channel_order']; - $db_cache['channel'][$updatedata['cid']]['channel_name'] = $updatedata['channel_name']; - } - $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`channel` (`cid`,`pid`,`channel_order`,`channel_name`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `pid`=VALUES(`pid`),`channel_order`=VALUES(`channel_order`),`channel_name`=VALUES(`channel_name`);\n"; - unset($updatechannel, $sqlinsertvalues); - } - } catch (Exception $e) { - enter_logfile(2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } - - if(isset($db_cache['channel'])) { - $delchannel = ''; - foreach ($db_cache['channel'] as $cid => $channel) { - if(!isset($channellist[$cid]) && $cid != 0 && $cid != NULL) { - $delchannel .= $cid . ","; - unset($db_cache['channel'][$cid]); - } - } - } - - if(isset($delchannel) && $delchannel != NULL) { - $delchannel = substr($delchannel, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`channel` WHERE `cid` IN ($delchannel);\n"; - enter_logfile(6,"DELETE FROM `$dbname`.`channel` WHERE `cid` IN ($delchannel);"); - } - - enter_logfile(6,"update_channel needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); - } -} -?> \ No newline at end of file +channelListResettsn(); + $channellist = $ts3->channelListtsn(); + + foreach ($channellist as $channel) { + $chname = $mysqlcon->quote((mb_substr(mb_convert_encoding($channel['channel_name'], 'UTF-8', 'auto'), 0, 40)), ENT_QUOTES); + + if (isset($db_cache['channel'][$channel['cid']]) && + $db_cache['channel'][$channel['cid']]['pid'] == $channel['pid'] && + $db_cache['channel'][$channel['cid']]['channel_order'] == $channel['channel_order'] && + $db_cache['channel'][$channel['cid']]['channel_name'] == $chname) { + enter_logfile(7, 'Continue channel '.$chname.' (CID: '.$channel['cid'].')'); + continue; + } else { + enter_logfile(6, 'Update/Insert channel '.$chname.' (CID: '.$channel['cid'].')'); + $updatechannel[] = [ + 'cid' => $channel['cid'], + 'pid' => $channel['pid'], + 'channel_order' => $channel['channel_order'], + 'channel_name' => $chname, + ]; + } + } + + if (isset($updatechannel)) { + $sqlinsertvalues = ''; + foreach ($updatechannel as $updatedata) { + $sqlinsertvalues .= "({$updatedata['cid']},{$updatedata['pid']},{$updatedata['channel_order']},{$updatedata['channel_name']}),"; + $db_cache['channel'][$updatedata['cid']]['pid'] = $updatedata['pid']; + $db_cache['channel'][$updatedata['cid']]['channel_order'] = $updatedata['channel_order']; + $db_cache['channel'][$updatedata['cid']]['channel_name'] = $updatedata['channel_name']; + } + $sqlinsertvalues = substr($sqlinsertvalues, 0, -1); + $sqlexec .= "INSERT INTO `$dbname`.`channel` (`cid`,`pid`,`channel_order`,`channel_name`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `pid`=VALUES(`pid`),`channel_order`=VALUES(`channel_order`),`channel_name`=VALUES(`channel_name`);\n"; + unset($updatechannel, $sqlinsertvalues); + } + } catch (Exception $e) { + enter_logfile(2, $lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } + + if (isset($db_cache['channel'])) { + $delchannel = ''; + foreach ($db_cache['channel'] as $cid => $channel) { + if (! isset($channellist[$cid]) && $cid != 0 && $cid != null) { + $delchannel .= $cid.','; + unset($db_cache['channel'][$cid]); + } + } + } + + if (isset($delchannel) && $delchannel != null) { + $delchannel = substr($delchannel, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`channel` WHERE `cid` IN ($delchannel);\n"; + enter_logfile(6, "DELETE FROM `$dbname`.`channel` WHERE `cid` IN ($delchannel);"); + } + + enter_logfile(6, 'update_channel needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; + } +} diff --git a/jobs/update_groups.php b/jobs/update_groups.php index 0714d4e..5abb0f3 100644 --- a/jobs/update_groups.php +++ b/jobs/update_groups.php @@ -1,236 +1,238 @@ -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(2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } else { - $iconarr["xxxxx"] = 0; - enter_logfile(6,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } - } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupListReset(); - $ts3groups = $ts3->serverGroupList(); - - // ServerIcon - $sIconId = $serverinfo['virtualserver_icon_id']; - $sIconId = ($sIconId < 0) ? (pow(2, 32)) - ($sIconId * -1) : $sIconId; - $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'])) { - if(isset($db_cache['groups']['0']) && isset($iconarr["i".$sIconId])) { - enter_logfile(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'].";"); - } else { - enter_logfile(6,"Servericon TSiconid:".$serverinfo['virtualserver_icon_id']."; powed TSiconid:".$sIconId."; DBiconid: empty; TSicondate: empty; DBicondate: empty;"); - } - if($sIconId > 600) { - try { - usleep($cfg['teamspeak_query_command_delay']); - enter_logfile(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(2,$lang['upgrp0003'].' '.sprintf($lang['errperm'], 'tsicons')); - } - } catch (Exception $e) { - enter_logfile(2,$lang['errorts3'].$e->getCode().'; '.$lang['upgrp0004'].$e->getMessage()); - } - } elseif($sIconId == 0) { - foreach (glob(substr(dirname(__FILE__),0,-4) . "tsicons/servericon.*") as $file) { - if(unlink($file) === false) { - enter_logfile(2,$lang['upgrp0005'].' '.sprintf($lang['errperm'], 'tsicons')); - } else { - enter_logfile(5,$lang['upgrp0006']); - } - } - $iconarr["i".$sIconId] = $sIconId = 0; - } elseif($sIconId < 601) { - $extension = 'png'; - } else { - $sIconId = 0; - } - if(isset($iconarr["i".$sIconId]) && $iconarr["i".$sIconId] > 0) { - $sicondate = $iconarr["i".$sIconId]; - } else { - $sicondate = 0; - } - $updategroups[] = array( - "sgid" => "0", - "sgidname" => "'ServerIcon'", - "iconid" => $sIconId, - "icondate" => $sicondate, - "sortid" => "0", - "type" => "0", - "ext" => $extension - ); - } - unset($sIconFile,$sIconId); - - // GroupIcons - $iconcount = 0; - foreach ($ts3groups as $servergroup) { - $tsgroupids[$servergroup['sgid']] = 0; - $sgid = $servergroup['sgid']; - $extension = ''; - $sgname = $mysqlcon->quote((mb_substr(mb_convert_encoding($servergroup['name'],'UTF-8','auto'),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 || isset($iconarr["i".$iconid]) && $iconarr["i".$iconid] > $db_cache['groups'][$sgid]['icondate']) { - try { - check_shutdown(); usleep($cfg['teamspeak_query_command_delay']); - enter_logfile(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(2,sprintf($lang['upgrp0007'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); - } - $iconcount++; - } catch (Exception $e) { - enter_logfile(2,$lang['errorts3'].$e->getCode().': '.sprintf($lang['upgrp0008'], $sgname, $sgid).$e->getMessage()); - } - } else { - $extension = $db_cache['groups'][$sgid]['ext']; - } - } elseif($iconid == 0) { - foreach (glob(substr(dirname(__FILE__),0,-4) . "tsicons/" . $iconid . ".*") as $file) { - if(unlink($file) === false) { - enter_logfile(2,sprintf($lang['upgrp0009'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); - } else { - enter_logfile(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'] == $sgname && $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(7,"Continue server group ".$sgname." (CID: ".$servergroup['sgid'].")"); - continue; - } else { - enter_logfile(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" => $extension - ); - } - if($iconcount > 9 && $nobreak != 1) { - break; - } - } - 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']},{$mysqlcon->quote($updatedata['ext'], ENT_QUOTES)}),"; - $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]); - foreach($cfg['rankup_definition'] as $rank) { - if(in_array($sgid, $rank)) { - if(in_array($sgid, $cfg['rankup_definition'])) { - enter_logfile(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(6," ".sprintf($lang['upusrerr'], $clientid)); - } - } - } - } - } - } - if(isset($cfg['rankup_boost_definition'][$sgid])) { - enter_logfile(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(6," ".sprintf($lang['upusrerr'], $clientid)); - } - } - } - } - if(isset($cfg['rankup_excepted_group_id_list'][$sgid])) { - enter_logfile(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(6," ".sprintf($lang['upusrerr'], $clientid)); - } - } - } - } - } - } - } - - if(isset($delsgroupids)) { - $delsgroupids = substr($delsgroupids, 0, -1); - $sqlexec .= "DELETE FROM `$dbname`.`groups` WHERE `sgid` IN ($delsgroupids);\n"; - } - enter_logfile(6,"update_groups needs: ".(number_format(round((microtime(true) - $starttime), 5),5))); - return($sqlexec); - - } catch (Exception $e) { - enter_logfile(2,$lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); - } - } -} -?> \ No newline at end of file +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(2, $lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } else { + $iconarr['xxxxx'] = 0; + enter_logfile(6, $lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } + } + + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->serverGroupListReset(); + $ts3groups = $ts3->serverGroupList(); + + // ServerIcon + $sIconId = $serverinfo['virtualserver_icon_id']; + $sIconId = ($sIconId < 0) ? (pow(2, 32)) - ($sIconId * -1) : $sIconId; + $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'])) { + if (isset($db_cache['groups']['0']) && isset($iconarr['i'.$sIconId])) { + enter_logfile(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'].';'); + } else { + enter_logfile(6, 'Servericon TSiconid:'.$serverinfo['virtualserver_icon_id'].'; powed TSiconid:'.$sIconId.'; DBiconid: empty; TSicondate: empty; DBicondate: empty;'); + } + if ($sIconId > 600) { + try { + usleep($cfg['teamspeak_query_command_delay']); + enter_logfile(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(2, $lang['upgrp0003'].' '.sprintf($lang['errperm'], 'tsicons')); + } + } catch (Exception $e) { + enter_logfile(2, $lang['errorts3'].$e->getCode().'; '.$lang['upgrp0004'].$e->getMessage()); + } + } elseif ($sIconId == 0) { + foreach (glob(substr(dirname(__FILE__), 0, -4).'tsicons/servericon.*') as $file) { + if (unlink($file) === false) { + enter_logfile(2, $lang['upgrp0005'].' '.sprintf($lang['errperm'], 'tsicons')); + } else { + enter_logfile(5, $lang['upgrp0006']); + } + } + $iconarr['i'.$sIconId] = $sIconId = 0; + } elseif ($sIconId < 601) { + $extension = 'png'; + } else { + $sIconId = 0; + } + if (isset($iconarr['i'.$sIconId]) && $iconarr['i'.$sIconId] > 0) { + $sicondate = $iconarr['i'.$sIconId]; + } else { + $sicondate = 0; + } + $updategroups[] = [ + 'sgid' => '0', + 'sgidname' => "'ServerIcon'", + 'iconid' => $sIconId, + 'icondate' => $sicondate, + 'sortid' => '0', + 'type' => '0', + 'ext' => $extension, + ]; + } + unset($sIconFile,$sIconId); + + // GroupIcons + $iconcount = 0; + foreach ($ts3groups as $servergroup) { + $tsgroupids[$servergroup['sgid']] = 0; + $sgid = $servergroup['sgid']; + $extension = ''; + $sgname = $mysqlcon->quote((mb_substr(mb_convert_encoding($servergroup['name'], 'UTF-8', 'auto'), 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 || isset($iconarr['i'.$iconid]) && $iconarr['i'.$iconid] > $db_cache['groups'][$sgid]['icondate']) { + try { + check_shutdown(); + usleep($cfg['teamspeak_query_command_delay']); + enter_logfile(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(2, sprintf($lang['upgrp0007'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + } + $iconcount++; + } catch (Exception $e) { + enter_logfile(2, $lang['errorts3'].$e->getCode().': '.sprintf($lang['upgrp0008'], $sgname, $sgid).$e->getMessage()); + } + } else { + $extension = $db_cache['groups'][$sgid]['ext']; + } + } elseif ($iconid == 0) { + foreach (glob(substr(dirname(__FILE__), 0, -4).'tsicons/'.$iconid.'.*') as $file) { + if (unlink($file) === false) { + enter_logfile(2, sprintf($lang['upgrp0009'], $sgname, $sgid).' '.sprintf($lang['errperm'], 'tsicons')); + } else { + enter_logfile(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'] == $sgname && $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(7, 'Continue server group '.$sgname.' (CID: '.$servergroup['sgid'].')'); + continue; + } else { + enter_logfile(6, 'Update/Insert server group '.$sgname.' (CID: '.$servergroup['sgid'].')'); + $updategroups[] = [ + 'sgid' => $servergroup['sgid'], + 'sgidname' => $sgname, + 'iconid' => $iconid, + 'icondate' => $iconarr['i'.$iconid], + 'sortid' => $servergroup['sortid'], + 'type' => $servergroup['type'], + 'ext' => $extension, + ]; + } + if ($iconcount > 9 && $nobreak != 1) { + break; + } + } + 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']},{$mysqlcon->quote($updatedata['ext'], ENT_QUOTES)}),"; + $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]); + foreach ($cfg['rankup_definition'] as $rank) { + if (in_array($sgid, $rank)) { + if (in_array($sgid, $cfg['rankup_definition'])) { + enter_logfile(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(6, ' '.sprintf($lang['upusrerr'], $clientid)); + } + } + } + } + } + } + if (isset($cfg['rankup_boost_definition'][$sgid])) { + enter_logfile(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(6, ' '.sprintf($lang['upusrerr'], $clientid)); + } + } + } + } + if (isset($cfg['rankup_excepted_group_id_list'][$sgid])) { + enter_logfile(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(6, ' '.sprintf($lang['upusrerr'], $clientid)); + } + } + } + } + } + } + } + + if (isset($delsgroupids)) { + $delsgroupids = substr($delsgroupids, 0, -1); + $sqlexec .= "DELETE FROM `$dbname`.`groups` WHERE `sgid` IN ($delsgroupids);\n"; + } + enter_logfile(6, 'update_groups needs: '.(number_format(round((microtime(true) - $starttime), 5), 5))); + + return $sqlexec; + } catch (Exception $e) { + enter_logfile(2, $lang['errorts3'].$e->getCode().': '.$lang['errgrplist'].$e->getMessage()); + } + } +} diff --git a/jobs/update_rs.php b/jobs/update_rs.php index a21a1b3..b1cff91 100644 --- a/jobs/update_rs.php +++ b/jobs/update_rs.php @@ -1,175 +1,181 @@ -query("SELECT 1 FROM `$dbname`.`bak_$table` LIMIT 1") !== false) { - if($mysqlcon->exec("DROP TABLE `$dbname`.`bak_$table`") === false) { - enter_logfile(1," Error due deleting old backup table bak_".$table.".",$norotate); - $countbackuperr++; - } else { - enter_logfile(4," Old backup table bak_".$table." successfully removed.",$norotate); - } - } - } catch (Exception $e) { } - } - - foreach ($tables as $table) { - if($mysqlcon->exec("CREATE TABLE `$dbname`.`bak_$table` LIKE `$dbname`.`$table`") === false) { - enter_logfile(1," Error due creating table bak_".$table.".",$norotate); - $countbackuperr++; - } else { - if($mysqlcon->exec("INSERT `$dbname`.`bak_$table` SELECT * FROM `$dbname`.`$table`") === false) { - enter_logfile(1," Error due inserting data from table ".$table.".",$norotate); - $countbackuperr++; - } else { - enter_logfile(4," Table ".$table." successfully cloned.",$norotate); - } - } - } - - if($countbackuperr != 0) { - enter_logfile(4," Backup failed. Please check your database permissions.",$norotate); - enter_logfile(4," Update failed. Go on with normal work on old version.",$norotate); - return; - } else { - enter_logfile(4," Database-tables successfully backuped.",$norotate); - } - - if(!is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip')) { - enter_logfile(4," Downloading new update...",$norotate); - $newUpdate = file_get_contents('https://ts-n.net/downloads/ranksystem_'.$cfg['version_latest_available'].'.zip'); - if(!is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/')) { - mkdir (dirname(__DIR__).DIRECTORY_SEPARATOR.'update/'); - } - $dlHandler = fopen(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip', 'w'); - if(!fwrite($dlHandler,$newUpdate)) { - enter_logfile(1," Could not save new update. Please check the permissions for folder 'update'.",$norotate); - enter_logfile(4," Update failed. Go on with normal work on old version.",$norotate); - return; - } - if(!is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip')) { - enter_logfile(4," Something gone wrong with downloading/saving the new update file.",$norotate); - enter_logfile(4," Update failed. Go on with normal work on old version.",$norotate); - return; - } - fclose($dlHandler); - enter_logfile(4," New update successfully saved.",$norotate); - } else { - enter_logfile(5," New update file (update/ranksystem_".$cfg['version_latest_available'].".zip) already here...",$norotate); - } - - $countwrongfiles = 0; - $countchangedfiles = 0; - - $zip = new ZipArchive; - - if($zip->open(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip')) { - for ($i = 0; $i < $zip->numFiles; $i++) { - $thisFileName = $zip->getNameIndex($i); - $thisFileDir = dirname($thisFileName); - enter_logfile(6," Parent directory: ".$thisFileDir,$norotate); - enter_logfile(6," File/Dir: ".$thisFileName,$norotate); - - if(substr($thisFileName,-1,1) == '/' || substr($thisFileName,-1,1) == '\\') { - enter_logfile(6," Check folder is existing: ".$thisFileName,$norotate); - if(!is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName,0,-1))) { - enter_logfile(5," Create folder: ".dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName,0,-1),$norotate); - if(mkdir((dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName,0,-1)), 0750, true)) { - enter_logfile(4," Created new folder ".dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName,0,-1),$norotate); - } else { - enter_logfile(2," Error by creating folder ".dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName,0,-1).". Please check the permissions on the folder one level above.",$norotate); - $countwrongfiles++; - } - } else { - enter_logfile(6," Folder still existing.",$norotate); - } - continue; - } - - if(!is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileDir)) { - enter_logfile(6," Check parent folder is existing: ".$thisFileDir,$norotate); - if(mkdir(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileDir, 0750, true)) { - enter_logfile(4," Created new folder ".$thisFileDir,$norotate); - } else { - enter_logfile(2," Error by creating folder ".$thisFileDir.". Please check the permissions on your folder ".dirname(__DIR__),$norotate); - $countwrongfiles++; - } - } else { - enter_logfile(6," Parent folder still existing.",$norotate); - } - - enter_logfile(6," Check file: ".dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileName,$norotate); - if(!is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileName)) { - $contents = $zip->getFromName($thisFileName); - $updateThis = ''; - if($thisFileName == 'other/dbconfig.php' || $thisFileName == 'install.php' || $thisFileName == 'other/phpcommand.php' || $thisFileName == 'logs/autostart_deactivated') { - enter_logfile(5," Did not touch ".$thisFileName,$norotate); - } else { - if(($updateThis = fopen(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileName, 'w')) === false) { - enter_logfile(2," Failed to open file ".$thisFileName,$norotate); - $countwrongfiles++; - } elseif(!fwrite($updateThis, $contents)) { - enter_logfile(2," Failed to write file ".$thisFileName,$norotate); - $countwrongfiles++; - } else { - enter_logfile(4," Replaced file ".$thisFileName,$norotate); - $countchangedfiles++; - } - fclose($updateThis); - unset($contents); - } - } else { - enter_logfile(2," Unknown thing happened.. Is the parent directory existing? ".$thisFileDir." # ".$thisFileName,$norotate); - $countwrongfiles++; - } - } - - $zip->close(); - unset($zip); - sleep(1); - } else { - enter_logfile(2," Error with downloaded Zip file happened. Is the file inside the folder 'update' valid and readable?",$norotate); - $countwrongfiles++; - } - - if(!unlink(dirname(__DIR__).DIRECTORY_SEPARATOR.'update'.DIRECTORY_SEPARATOR.'ranksystem_'.$cfg['version_latest_available'].'.zip')) { - enter_logfile(3," Could not clean update folder. Please remove the unneeded file ".dirname(__DIR__).DIRECTORY_SEPARATOR."update".DIRECTORY_SEPARATOR."ranksystem_".$cfg['version_latest_available'].".zip",$norotate); - } else { - enter_logfile(5," Cleaned update folder.",$norotate); - } - - if($countwrongfiles == 0 && $countchangedfiles != 0) { - $sqlexec .= "UPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['version_latest_available']}' WHERE `param`='version_latest_available';\n"; - - if (file_exists($GLOBALS['pidfile'])) { - unlink($GLOBALS['pidfile']); - } - - enter_logfile(4," Files updated successfully.",$norotate); - - if (substr(php_uname(), 0, 7) == "Windows") { - pclose(popen("start /B cmd /C ".$GLOBALS['phpcommand']." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php start 1500000 >NUL 2>NUL", "r")); - } else { - exec($GLOBALS['phpcommand']." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php start 2500000 > /dev/null 2>&1 &"); - } - - shutdown($mysqlcon,4,"Update done. Wait for restart via cron/task.",FALSE); - - } else { - enter_logfile(1," Files updated with at least one error. Please check the log!",$norotate); - enter_logfile(2,"Update of the Ranksystem failed!",$norotate); - enter_logfile(4,"Continue with normal work on old version.",$norotate); - } - - $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='get_version';\n"; - return($sqlexec); -} \ No newline at end of file +query("SELECT 1 FROM `$dbname`.`bak_$table` LIMIT 1") !== false) { + if ($mysqlcon->exec("DROP TABLE `$dbname`.`bak_$table`") === false) { + enter_logfile(1, ' Error due deleting old backup table bak_'.$table.'.', $norotate); + $countbackuperr++; + } else { + enter_logfile(4, ' Old backup table bak_'.$table.' successfully removed.', $norotate); + } + } + } catch (Exception $e) { + } + } + + foreach ($tables as $table) { + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`bak_$table` LIKE `$dbname`.`$table`") === false) { + enter_logfile(1, ' Error due creating table bak_'.$table.'.', $norotate); + $countbackuperr++; + } else { + if ($mysqlcon->exec("INSERT `$dbname`.`bak_$table` SELECT * FROM `$dbname`.`$table`") === false) { + enter_logfile(1, ' Error due inserting data from table '.$table.'.', $norotate); + $countbackuperr++; + } else { + enter_logfile(4, ' Table '.$table.' successfully cloned.', $norotate); + } + } + } + + if ($countbackuperr != 0) { + enter_logfile(4, ' Backup failed. Please check your database permissions.', $norotate); + enter_logfile(4, ' Update failed. Go on with normal work on old version.', $norotate); + + return; + } else { + enter_logfile(4, ' Database-tables successfully backuped.', $norotate); + } + + if (! is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip')) { + enter_logfile(4, ' Downloading new update...', $norotate); + $newUpdate = file_get_contents('https://ts-n.net/downloads/ranksystem_'.$cfg['version_latest_available'].'.zip'); + if (! is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/')) { + mkdir(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/'); + } + $dlHandler = fopen(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip', 'w'); + if (! fwrite($dlHandler, $newUpdate)) { + enter_logfile(1, " Could not save new update. Please check the permissions for folder 'update'.", $norotate); + enter_logfile(4, ' Update failed. Go on with normal work on old version.', $norotate); + + return; + } + if (! is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip')) { + enter_logfile(4, ' Something gone wrong with downloading/saving the new update file.', $norotate); + enter_logfile(4, ' Update failed. Go on with normal work on old version.', $norotate); + + return; + } + fclose($dlHandler); + enter_logfile(4, ' New update successfully saved.', $norotate); + } else { + enter_logfile(5, ' New update file (update/ranksystem_'.$cfg['version_latest_available'].'.zip) already here...', $norotate); + } + + $countwrongfiles = 0; + $countchangedfiles = 0; + + $zip = new ZipArchive; + + if ($zip->open(dirname(__DIR__).DIRECTORY_SEPARATOR.'update/ranksystem_'.$cfg['version_latest_available'].'.zip')) { + for ($i = 0; $i < $zip->numFiles; $i++) { + $thisFileName = $zip->getNameIndex($i); + $thisFileDir = dirname($thisFileName); + enter_logfile(6, ' Parent directory: '.$thisFileDir, $norotate); + enter_logfile(6, ' File/Dir: '.$thisFileName, $norotate); + + if (substr($thisFileName, -1, 1) == '/' || substr($thisFileName, -1, 1) == '\\') { + enter_logfile(6, ' Check folder is existing: '.$thisFileName, $norotate); + if (! is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName, 0, -1))) { + enter_logfile(5, ' Create folder: '.dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName, 0, -1), $norotate); + if (mkdir((dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName, 0, -1)), 0750, true)) { + enter_logfile(4, ' Created new folder '.dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName, 0, -1), $norotate); + } else { + enter_logfile(2, ' Error by creating folder '.dirname(__DIR__).DIRECTORY_SEPARATOR.substr($thisFileName, 0, -1).'. Please check the permissions on the folder one level above.', $norotate); + $countwrongfiles++; + } + } else { + enter_logfile(6, ' Folder still existing.', $norotate); + } + continue; + } + + if (! is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileDir)) { + enter_logfile(6, ' Check parent folder is existing: '.$thisFileDir, $norotate); + if (mkdir(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileDir, 0750, true)) { + enter_logfile(4, ' Created new folder '.$thisFileDir, $norotate); + } else { + enter_logfile(2, ' Error by creating folder '.$thisFileDir.'. Please check the permissions on your folder '.dirname(__DIR__), $norotate); + $countwrongfiles++; + } + } else { + enter_logfile(6, ' Parent folder still existing.', $norotate); + } + + enter_logfile(6, ' Check file: '.dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileName, $norotate); + if (! is_dir(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileName)) { + $contents = $zip->getFromName($thisFileName); + $updateThis = ''; + if ($thisFileName == 'other/dbconfig.php' || $thisFileName == 'install.php' || $thisFileName == 'other/phpcommand.php' || $thisFileName == 'logs/autostart_deactivated') { + enter_logfile(5, ' Did not touch '.$thisFileName, $norotate); + } else { + if (($updateThis = fopen(dirname(__DIR__).DIRECTORY_SEPARATOR.$thisFileName, 'w')) === false) { + enter_logfile(2, ' Failed to open file '.$thisFileName, $norotate); + $countwrongfiles++; + } elseif (! fwrite($updateThis, $contents)) { + enter_logfile(2, ' Failed to write file '.$thisFileName, $norotate); + $countwrongfiles++; + } else { + enter_logfile(4, ' Replaced file '.$thisFileName, $norotate); + $countchangedfiles++; + } + fclose($updateThis); + unset($contents); + } + } else { + enter_logfile(2, ' Unknown thing happened.. Is the parent directory existing? '.$thisFileDir.' # '.$thisFileName, $norotate); + $countwrongfiles++; + } + } + + $zip->close(); + unset($zip); + sleep(1); + } else { + enter_logfile(2, " Error with downloaded Zip file happened. Is the file inside the folder 'update' valid and readable?", $norotate); + $countwrongfiles++; + } + + if (! unlink(dirname(__DIR__).DIRECTORY_SEPARATOR.'update'.DIRECTORY_SEPARATOR.'ranksystem_'.$cfg['version_latest_available'].'.zip')) { + enter_logfile(3, ' Could not clean update folder. Please remove the unneeded file '.dirname(__DIR__).DIRECTORY_SEPARATOR.'update'.DIRECTORY_SEPARATOR.'ranksystem_'.$cfg['version_latest_available'].'.zip', $norotate); + } else { + enter_logfile(5, ' Cleaned update folder.', $norotate); + } + + if ($countwrongfiles == 0 && $countchangedfiles != 0) { + $sqlexec .= "UPDATE `$dbname`.`cfg_params` SET `value`='{$cfg['version_latest_available']}' WHERE `param`='version_latest_available';\n"; + + if (file_exists($GLOBALS['pidfile'])) { + unlink($GLOBALS['pidfile']); + } + + enter_logfile(4, ' Files updated successfully.', $norotate); + + if (substr(php_uname(), 0, 7) == 'Windows') { + pclose(popen('start /B cmd /C '.$GLOBALS['phpcommand'].' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php start 1500000 >NUL 2>NUL', 'r')); + } else { + exec($GLOBALS['phpcommand'].' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php start 2500000 > /dev/null 2>&1 &'); + } + + shutdown($mysqlcon, 4, 'Update done. Wait for restart via cron/task.', false); + } else { + enter_logfile(1, ' Files updated with at least one error. Please check the log!', $norotate); + enter_logfile(2, 'Update of the Ranksystem failed!', $norotate); + enter_logfile(4, 'Continue with normal work on old version.', $norotate); + } + + $sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`='$nowtime' WHERE `job_name`='get_version';\n"; + + return $sqlexec; +} From e505a182d5f60dc67b403699a976f369ee87a2b1 Mon Sep 17 00:00:00 2001 From: Sebi94nbg Date: Sun, 9 Jul 2023 15:23:49 +0200 Subject: [PATCH 04/10] Apply PHP-CS-Fixer code-style to `languages/` --- languages/add_new_language.php | 42 +- ...\330\261\330\250\331\212\330\251_arab.php" | 1416 ++++++++-------- "languages/core_az_Az\311\231rbaycan_az.php" | 1416 ++++++++-------- .../core_cz_\304\214e\305\241tina_cz.php" | 1418 ++++++++--------- languages/core_de_Deutsch_de.php | 1416 ++++++++-------- languages/core_en_english_gb.php | 1416 ++++++++-------- "languages/core_es_espa\303\261ol_es.php" | 1414 ++++++++-------- "languages/core_fr_fran\303\247ais_fr.php" | 1412 ++++++++-------- languages/core_hu_Hungary_hu.php | 1416 ++++++++-------- languages/core_it_Italiano_it.php | 1416 ++++++++-------- languages/core_nl_Nederlands_nl.php | 1416 ++++++++-------- languages/core_pl_polski_pl.php | 1416 ++++++++-------- "languages/core_pt_Portugu\303\252s_pt.php" | 1416 ++++++++-------- .../core_ro_Rom\303\242n\304\203_ro.php" | 1416 ++++++++-------- ...01\321\201\320\272\320\270\320\271_ru.php" | 1416 ++++++++-------- languages/nations_az.php | 502 +++--- languages/nations_cz.php | 502 +++--- languages/nations_de.php | 252 ++- languages/nations_en.php | 502 +++--- languages/nations_es.php | 502 +++--- languages/nations_fr.php | 502 +++--- languages/nations_it.php | 502 +++--- languages/nations_pl.php | 502 +++--- languages/nations_pt.php | 502 +++--- languages/nations_ru.php | 502 +++--- 25 files changed, 12441 insertions(+), 12191 deletions(-) diff --git a/languages/add_new_language.php b/languages/add_new_language.php index 64765f0..07e2b4b 100644 --- a/languages/add_new_language.php +++ b/languages/add_new_language.php @@ -1,21 +1,21 @@ -'; -echo 'language file like "core_en_english_gb.php".

'; -echo 'Copy and paste the new file inside this folder (languages/)

'; -echo 'Naming convention:
'; -echo '- fix beginning with "core"
'; -echo '- seperator with underscore "_"
'; -echo '- 2 digits with country code (https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
'; -echo '- seperator with underscore "_"
'; -echo '- name of the language; do NOT translate the name in english, use the native name instead!
'; -echo '- seperator with underscore "_"
'; -echo '- code of the country flag (libs/flags/) - without file extension
'; -echo '- file extension ".php"


'; -echo 'Translate the textes to the wished language inside your copied file.
'; -echo 'Be sure, you are using encoding UTF-8 (without BOM!).

'; -echo 'Send the translated file to admin@ts-n.net
'; -echo 'We will implement it with the next release!

'; -echo 'Thx for all who supports this project!!!
'; -echo 'We will honor you and name you on the info page.'; -?> \ No newline at end of file +'; +echo 'language file like "core_en_english_gb.php".

'; +echo 'Copy and paste the new file inside this folder (languages/)

'; +echo 'Naming convention:
'; +echo '- fix beginning with "core"
'; +echo '- seperator with underscore "_"
'; +echo '- 2 digits with country code (https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
'; +echo '- seperator with underscore "_"
'; +echo '- name of the language; do NOT translate the name in english, use the native name instead!
'; +echo '- seperator with underscore "_"
'; +echo '- code of the country flag (libs/flags/) - without file extension
'; +echo '- file extension ".php"


'; +echo 'Translate the textes to the wished language inside your copied file.
'; +echo 'Be sure, you are using encoding UTF-8 (without BOM!).

'; +echo 'Send the translated file to admin@ts-n.net
'; +echo 'We will implement it with the next release!

'; +echo 'Thx for all who supports this project!!!
'; +echo 'We will honor you and name you on the info page.'; diff --git "a/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" "b/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" index eebbd40..0a7aaf1 100644 --- "a/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" +++ "b/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" @@ -1,708 +1,708 @@ - added to the Ranksystem now."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Ű§Ù„ŰłÙ…Ű§Ű­ ۚۚۯۥ/Ű„ÙŠÙ‚Ű§Ù ÙƒŰ§ŰšŰȘن Ranksystem Űčۚ۱ API"; -$lang['apipermdesc'] = "(ON = Ű§Ù„ŰłÙ…Ű§Ű­ ; OFF = منŰč)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$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'] = "Ű§Ù„ŰšŰ­Ű« Űčن Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† Ű§Ù„Ű°ÙŠÙ† من Ű§Ù„Ù…ÙŰ±ÙˆŰ¶ Ű­Ű°ÙÙ‡Ù…"; -$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."; -$lang['cleanno'] = "Ù„ÙŠŰł Ù‡Ù†Ű§Ùƒ ŰŽÙŠŰĄ ليŰȘم Ù…ŰłŰ­Ù‡ "; -$lang['cleanp'] = "Ù…ŰŻÙ‰ Ű§Ù„ŰȘŰ”ÙÙŠŰ©"; -$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

Set a time in seconds.

Recommended is once a day, cause the client cleaning needs much time for bigger databases."; -$lang['cleanrs'] = "Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙˆÙ† في Ù‚Ű§ŰčŰŻŰ© ŰšŰ§ÙŠÙ†Ű§ŰȘ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš: %s"; -$lang['cleants'] = "Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† Ű§Ù„Ű°ÙŠÙ† ŰȘم Ű§Ù„ŰčŰ«ÙˆŰ± Űčليهم في Ù‚Ű§ŰčŰŻŰ© ŰšŰ§ÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ: %s (of %s)"; -$lang['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!"; -$lang['errgrplist'] = "Error while getting servergrouplist: "; -$lang['errlogin'] = "Ű§ŰłÙ… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… Ű§Ùˆ ÙƒÙ„Ù…Ű© Ű§Ù„Ù…Ű±ÙˆŰ± ۟ۧ۷ۊ۩! Ű­Ű§ÙˆÙ„ Ù…ŰŹŰŻŰŻŰ§..."; -$lang['errlogin2'] = "Brute force protection: Try it again in %s seconds!"; -$lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 300 Seconds!"; -$lang['error'] = "ŰźÙ„Ù„ "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['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'] = "ŰȘم Ű§Ù„ÙˆŰ”ÙˆÙ„ Ű§Ù„Ù‰ ۧŰčلى ۱ŰȘۚ۩"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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!
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 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 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)"; -$lang['isntwidbmsg'] = "ŰźÙ„Ù„ في Ù‚Ű§ŰčŰŻŰ© Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Ű§ŰłÙ… Ù‚Ű§ŰčŰŻŰ© Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "ÙƒÙ„Ù…Ű© Ù…Ű±ÙˆŰ± Ù‚Ű§ŰčŰŻŰ© Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ"; -$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'] = "User to access the database"; -$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'] = "Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„Ű­Ű§Ù„ÙŠŰ©"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "No, cause excepted"; -$lang['listgrps'] = "actual group since"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Ű§ŰłÙ… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…"; -$lang['listnxsg'] = "Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„ŰȘŰ§Ù„ÙŠŰ©"; -$lang['listnxup'] = "Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„Ù‚Ű§ŰŻÙ…Ű© ŰšŰčŰŻ"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "۱ŰȘۚ۩"; -$lang['listseen'] = "ۧ۟۱ ŰžÙ‡ÙˆŰ±"; -$lang['listsuma'] = "وقŰȘ Ű§Ù„Ù†ŰŽŰ§Ű· Ű§Ù„ÙƒÙ„ÙŠ"; -$lang['listsumi'] = "وقŰȘ ŰčŰŻÙ… Ű§Ù„Ù†ŰŽŰ§Ű· Ű§Ù„ÙƒÙ„ÙŠ"; -$lang['listsumo'] = "وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ Ű§Ù„ÙƒÙ„ÙŠ"; -$lang['listuid'] = "unique Client-ID"; -$lang['listver'] = "client version"; -$lang['login'] = "Login"; -$lang['module_disabled'] = "This module is deactivated."; -$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['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) requests %s."; -$lang['msg0008'] = "Update check done. If an update is available, it will runs 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'] = "لم يŰȘم Ű§Ù„ŰčŰ«ÙˆŰ± Űčلى Ű§ÙŠ Ù…ŰŻŰźÙ„Ű§ŰȘ"; -$lang['pass'] = "ÙƒÙ„Ù…Ű© Ű§Ù„Ù…Ű±ÙˆŰ±"; -$lang['pass2'] = "Change password"; -$lang['pass3'] = "old password"; -$lang['pass4'] = "new password"; -$lang['pass5'] = "Forgot Password?"; -$lang['permission'] = "ŰŁŰ°ÙˆÙ†Ű§ŰȘ"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "repeat"; -$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; -$lang['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)."; -$lang['setontime'] = "add time"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of concurrent groups: "; -$lang['stag0012'] = "set groups"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; -$lang['stag0015'] = "%sيمكن Ű§Ù„ŰčŰ«ÙˆŰ± Űčلى TeamSpeak%s. ÙŠŰ±ŰŹÙ‰ Ű§Ù„Ù†Ù‚Ű± Ù‡Ù†Ű§ للŰȘŰ­Ù‚Ù‚ من Ù†ÙŰłÙƒ ŰŁÙˆÙ„Ű§."; -$lang['stag0016'] = "verification needed!"; -$lang['stag0017'] = "verificate here.."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Ű­Ű§Ù„Ű© Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0002'] = "Ù…ŰŹÙ…ÙˆŰč Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['stix0003'] = "Űč۱۶ Ű§Ù„ŰȘÙŰ§Ű”ÙŠÙ„"; -$lang['stix0004'] = "Ù…ŰŹÙ…ÙˆŰč وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['stix0005'] = "Ű„ŰžÙ‡Ű§Ű± Ű§Ù„Ű§ÙˆÙ„ في كل Ű§Ù„Ű§ÙˆÙ‚Ű§ŰȘ"; -$lang['stix0006'] = "Ű„ŰžÙ‡Ű§Ű± Ű§Ù„Ű§ÙˆÙ„ Ù„Ù‡Ű°Ű§ Ű§Ù„ŰŽÙ‡Ű±"; -$lang['stix0007'] = "Ű„ŰžÙ‡Ű§Ű± Ű§Ù„Ű§ÙˆÙ„ Ù„Ù‡Ű°Ű§ Ű§Ù„Ű§ŰłŰšÙˆŰč"; -$lang['stix0008'] = "Ù…ŰŻŰ© ۄ۳ŰȘŰčÙ…Ű§Ù„ Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0009'] = "في ۧ۟۱ 7 Ű§ÙŠŰ§Ù…"; -$lang['stix0010'] = "في ۧ۟۱ 30 يوم"; -$lang['stix0011'] = "في ۧ۟۱ 24 ۳ۧŰčŰ©"; -$lang['stix0012'] = "Ű­ŰŻŰŻ Ű§Ù„Ù…ŰŻŰ©"; -$lang['stix0013'] = "Ù‚ŰšÙ„ يوم"; -$lang['stix0014'] = "Ù‚ŰšÙ„ Ű§ŰłŰšÙˆŰč"; -$lang['stix0015'] = "Ù‚ŰšÙ„ ŰŽÙ‡Ű±"; -$lang['stix0016'] = "(وقŰȘ Ű§Ù„Ù†ŰŽŰ§Ű·/وقŰȘ Ű§Ù„ŰźÙ…ÙˆÙ„ (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['stix0017'] = "(Ű§Ù„Ű„Ű”ŰŻŰ§Ű±Ű§ŰȘ (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['stix0018'] = "(Ű§Ù„ŰŻÙˆÙ„ (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['stix0019'] = "(Ű§Ù„ŰŁÙ†ŰžÙ…Ű© (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['stix0020'] = "Ű§Ù„Ű„Ű­Ű”Ű§ŰĄŰ§ŰȘ Ű§Ù„Ű­Ű§Ù„ÙŠŰ©"; -$lang['stix0023'] = "Ű­Ű§Ù„Ű© Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0024'] = "مŰȘÙˆŰ§ŰŹŰŻ"; -$lang['stix0025'] = "ŰșÙŠŰ± مŰȘÙˆŰ§ŰŹŰŻ"; -$lang['stix0026'] = "(ŰŁÙ‚Ű”Ù‰ ŰčŰŻŰŻ للمŰȘŰ”Ù„ÙŠÙ† / Ű§Ù„Ù…ŰȘŰ”Ù„ÙŠÙ†)"; -$lang['stix0027'] = "ŰčŰŻŰŻ Ű§Ù„Ù‚Ù†ÙˆŰ§ŰȘ"; -$lang['stix0028'] = "مŰȘÙˆŰłŰ· ŰČمن Ű§Ù„ÙˆŰ”ÙˆÙ„ Ù„Ù„ŰłÙŠŰ±ÙŰ±"; -$lang['stix0029'] = "Ù…ŰŹÙ…ÙˆŰč Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„Ù…ŰȘلقيه"; -$lang['stix0030'] = "Ù…ŰŹÙ…ÙˆŰč Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„Ù…Ű±ŰłÙ„Ű©"; -$lang['stix0031'] = "وقŰȘ Űčمل Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0032'] = "Ù‚ŰšÙ„ Ű§ÙŠÙ‚Ű§Ù Ű§Ù„ŰȘŰŽŰșيل:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "مŰȘÙˆŰłŰ· ÙÙ‚ŰŻ Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ"; -$lang['stix0035'] = "Ű§Ù„Ű„Ű­Ű”Ű§ŰĄŰ§ŰȘ Ű§Ù„ŰčŰ§Ù…Ű©"; -$lang['stix0036'] = "Ű§ŰłÙ… Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0037'] = "Ű§Ù„Ù…Ù†ÙŰ°:ŰčÙ†ÙˆŰ§Ù† Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0038'] = "ÙƒÙ„Ù…Ű© Ù…Ű±ÙˆŰ± Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0039'] = "(Ù„Ű§ÙŠÙˆŰŹŰŻ (Ű§Ù„ŰźŰ§ŰŻÙ… ŰčŰ§Ù…"; -$lang['stix0040'] = "نŰčم (Ű§Ù„ŰźŰ§ŰŻÙ… ۟ۧ۔)"; -$lang['stix0041'] = "Ù‡ÙˆÙŠŰ© Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0042'] = "Ù†ŰžŰ§Ù… Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0043'] = "ۄ۔ۯۧ۱ Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stix0044'] = "(ŰȘŰ§Ű±ÙŠŰź Ű„Ù†ŰŽŰ§ŰĄ Ű§Ù„ŰźŰ§ŰŻÙ… (يوم/ŰŽÙ‡Ű±/ŰłÙ†Ű©"; -$lang['stix0045'] = "Ű„Ű¶Ű§ÙŰ© Ű§Ù„ŰźŰ§ŰŻÙ… Ű„Ù„Ù‰ Ù‚Ű§ŰŠÙ…Ű© Ű§Ù„ŰźÙˆŰ§ŰŻÙ…"; -$lang['stix0046'] = "مفŰčل"; -$lang['stix0047'] = "ŰșÙŠŰ± مفŰčل"; -$lang['stix0048'] = "ŰčŰŻŰŻ ŰșÙŠŰ± ÙƒŰ§ÙÙŠ من Ű§Ù„Ù…ŰčÙ„ÙˆÙ…Ű§ŰȘ Ű­ŰȘى Ű§Ù„Ű§Ù†"; -$lang['stix0049'] = "وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† / ŰŽÙ‡Ű±"; -$lang['stix0050'] = "وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† / Ű§ŰłŰšÙˆŰč"; -$lang['stix0051'] = "Ù„Ù‚ŰŻ ÙŰŽÙ„ Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ Ù„Ű°Ű§ لن يكون Ù‡Ù†Ű§Ùƒ ŰčÙ…Ù„ÙŠŰ© Ű§Ù†ŰŽŰ§ŰĄ"; -$lang['stix0052'] = "others"; -$lang['stix0053'] = "Active Time (in Days)"; -$lang['stix0054'] = "Inactive Time (in Days)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "Ű§Ù„ŰčŰ¶ÙˆÙŠŰ©"; -$lang['stmy0002'] = "۱ŰȘۚ۩"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„ŰŻŰźÙˆÙ„ Ű„Ù„Ù‰ Ű§Ù„ŰźŰ§ŰŻÙ…:"; -$lang['stmy0006'] = "ŰŁÙˆÙ„ ŰŻŰźÙˆÙ„ Ù„Ù„ŰłÙŠŰ±ÙŰ±:"; -$lang['stmy0007'] = "Ű§Ù„Ù…ŰŹÙ…ÙˆŰč Ű§Ù„ÙƒÙ„ÙŠ لوقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ:"; -$lang['stmy0008'] = "Online time last %s days:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "ŰŁÙƒŰȘملŰȘ Ű§Ù„Ű„Ù†ŰŹŰ§ŰČۧŰȘ:"; -$lang['stmy0011'] = "Ű§Ù„ŰȘÙ‚ŰŻÙ… ŰšŰ§Ù„Ű„Ù†ŰŹŰ§ŰČۧŰȘ"; -$lang['stmy0012'] = "Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : ŰŁŰłŰ·ÙˆŰ±ÙŠ"; -$lang['stmy0013'] = "Ù„ŰŁÙ† وقŰȘ ŰȘÙˆŰ§ŰŹŰŻÙƒ ŰšŰ§Ù„ŰłÙŠŰ±ÙŰ± %s ۳ۧŰčۧŰȘ"; -$lang['stmy0014'] = "ŰŁÙƒŰȘمل Ű§Ù„ŰȘÙ‚ŰŻÙ…"; -$lang['stmy0015'] = "Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : Ű°Ù‡ŰšÙŠ"; -$lang['stmy0016'] = "% ŰŁÙƒŰȘمل ŰŁŰłŰ·ÙˆŰ±ÙŠ"; -$lang['stmy0017'] = "Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : ÙŰ¶ÙŠ"; -$lang['stmy0018'] = "% ŰŁÙƒŰȘمل Ű°Ù‡ŰšÙŠ"; -$lang['stmy0019'] = "Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : ŰšŰ±ÙˆÙ†ŰČي"; -$lang['stmy0020'] = "% ŰŁÙƒŰȘمل ÙŰ¶ÙŠ"; -$lang['stmy0021'] = "Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : Ù„Ű§ÙŠÙˆŰŹŰŻ ۱ŰȘۚ۩"; -$lang['stmy0022'] = "% ŰŁÙƒŰȘمل ŰšŰ±ÙˆÙ†ŰČي"; -$lang['stmy0023'] = "ŰȘÙ‚ŰŻÙ… ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„"; -$lang['stmy0024'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ : ŰŁŰłŰ·ÙˆŰ±ÙŠ"; -$lang['stmy0025'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„ŰŻŰźÙˆÙ„ Ű„Ù„Ù‰ Ű§Ù„ŰźŰ§ŰŻÙ… %s Ù…Ű±Ű©"; -$lang['stmy0026'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ : Ű°Ù‡ŰšÙŠ"; -$lang['stmy0027'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ : ÙŰ¶ÙŠ"; -$lang['stmy0028'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„: ŰšŰ±ÙˆÙ†ŰČي"; -$lang['stmy0029'] = "ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„: Ù„Ű§ÙŠÙˆŰŹŰŻ ۱ŰȘۚ۩"; -$lang['stmy0030'] = "Ű§Ù„ŰȘÙ‚ŰŻÙ… Ù„Ù„Ù…ŰłŰȘوى Ű§Ù„Ù‚Ű§ŰŻÙ…"; -$lang['stmy0031'] = "Total active time"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "ۧ۟ۚۧ۱ Ű§Ù„ŰźŰ§ŰŻÙ…"; -$lang['stnv0002'] = "ۧŰșÙ„Ű§Ù‚"; -$lang['stnv0003'] = "ŰȘŰ­ŰŻÙŠŰ« مŰčÙ„ÙˆÙ…Ű§ŰȘ Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…"; -$lang['stnv0004'] = "ۄ۳ŰȘŰźŰŻÙ… Ű§Ù„ŰȘŰ­ŰŻÙŠŰ« ÙÙ‚Ű· في Ű­Ű§Ù„Ű© ŰȘŰșÙŠŰ± مŰčÙ„ÙˆÙ…Ű§ŰȘك في Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ Ù…Ű«Ù„ : Ű§ŰłÙ…Ùƒ"; -$lang['stnv0005'] = "يŰčمل ÙÙ‚Ű· ŰčÙ†ŰŻ ŰȘÙˆŰ§ŰŹŰŻÙƒ ŰšŰ§Ù„ŰȘيم ŰłŰšÙŠÙƒ"; -$lang['stnv0006'] = "ŰȘŰ­ŰŻÙŠŰ«"; -$lang['stnv0016'] = "ŰșÙŠŰ± مŰȘÙˆÙŰ±"; -$lang['stnv0017'] = "ŰŁÙ†ŰȘ ŰșÙŠŰ± مŰȘŰ”Ù„ ŰšŰ§Ù„ŰȘيم ŰłŰšÙŠÙƒ"; -$lang['stnv0018'] = "Ű§Ù„Ű±ŰŹŰ§ŰĄ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ ŰšŰ§Ù„ŰȘيم ŰłŰšÙŠÙƒ و Ű§Ù„Ű¶ŰșŰ· Űčلى ŰČ۱ Ű§Ù„ŰȘŰ­ŰŻÙŠŰ« لŰč۱۶ مŰčÙ„ÙˆÙ…Ű§ŰȘك"; -$lang['stnv0019'] = "Ű§Ù„ŰčŰ¶ÙˆÙŠŰ© - ێ۱ۭ"; -$lang['stnv0020'] = "ŰȘŰ­ŰȘوي Ù‡Ű°Ű§ Ű§Ù„Ű”ÙŰ­Ű© Űčلى Ù…ŰźŰȘ۔۱ Ù„Ű­Ű§Ù„ŰȘك Ű§Ù„ŰźŰ§Ű”Ű© ÙˆÙ…ŰŹÙ…ÙˆŰč وقŰȘ ŰȘÙˆŰ§ŰŹŰŻÙƒ Űčلى Ű§Ù„ŰłÙŠŰ±ÙŰ±"; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš"; -$lang['stnv0025'] = "ŰȘŰ­ŰŻÙŠŰŻ Ű§Ù„Ù…ŰŻŰźÙ„Ű§ŰȘ"; -$lang['stnv0026'] = "Ű§Ù„ÙƒÙ„"; -$lang['stnv0027'] = "Ű§Ù„Ù…ŰčÙ„ÙˆÙ…Ű§ŰȘ Űčلى Ù‡Ű°Ù‡ Ű§Ù„Ű”ÙŰ­Ű© Ù‚ŰŻ ŰȘكون منŰȘÙ‡ÙŠŰ© Ű§Ù„Ű”Ù„Ű§Ű­ÙŠŰ©! ÙŠŰšŰŻÙˆ Ű§Ù† Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš لم يŰčŰŻ مŰȘŰ”Ù„Ű§ ŰšŰłÙŠŰ±ÙŰ± Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ"; -$lang['stnv0028'] = "(Ű§Ù†ŰȘ ŰșÙŠŰ± مŰȘŰ”Ù„ ŰšŰłÙŠŰ±ÙŰ± Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ!)"; -$lang['stnv0029'] = "Ù‚Ű§ŰŠÙ…Ű© Ű§Ù„Ű±ŰȘŰš"; -$lang['stnv0030'] = "مŰčÙ„ÙˆÙ…Ű§ŰȘ Űčن Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "مŰčÙ„ÙˆÙ…Ű§ŰȘ Űčن Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš"; -$lang['stri0002'] = "Ù…Ű§Ù‡Ùˆ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘ۹۟"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "من Ű§Ù„Ű°ÙŠ ۧ۟ŰȘ۱Űč Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘ۹۟"; -$lang['stri0005'] = "مŰȘى ŰȘم Ű§Ű·Ù„Ű§Ù‚ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš ۟"; -$lang['stri0006'] = "Ű§ÙˆÙ„ ۧ۔ۯۧ۱ Ű§ÙˆÙ„ÙŠ: 05/10/2014."; -$lang['stri0007'] = "Ű§ÙˆÙ„ ۧ۔ۯۧ۱ ŰȘŰŹŰ±ÙŠŰšÙŠ: 01/02/2015."; -$lang['stri0008'] = "يمكنك Ű±Ű€ÙŠŰ© ۧ۟۱ ۧ۔ۯۧ۱ Űčلى Ranksystem Website."; -$lang['stri0009'] = "كيف ŰȘم Ű§Ù†ŰŽŰ§ŰĄ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš ۟"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = ": ŰŽÙƒŰ± ۟ۧ۔ Ű„Ù„Ù‰"; -$lang['stri0013'] = "%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'] = "%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„ŰȘŰŽÙŠÙƒÙŠŰ©"; -$lang['stri0025'] = "%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„ŰšÙˆÙ„Ù†ŰŻÙŠŰ©"; -$lang['stri0026'] = "%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„Ű„ŰłŰšŰ§Ù†ÙŠŰ©"; -$lang['stri0027'] = "%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„Ù‡Ù†ŰșŰ§Ű±ÙŠŰ©"; -$lang['stri0028'] = "%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„ŰŁŰ°Ű±ŰšÙŠŰŹŰ§Ù†ÙŠŰ©"; -$lang['stri0029'] = "%s Ù„Ù„ŰŻŰ§Ù„Ű© Ű§Ù„ŰŻÙ…ŰșŰ©"; -$lang['stri0030'] = "%s Ù„Ù„Ű·Ű±Ű§ŰČ 'CosmicBlue' Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰĄŰ§ŰȘ ÙˆÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ÙˆÙŠŰš"; -$lang['stta0001'] = "لكل Ű§Ù„ÙˆÙ‚ŰȘ"; -$lang['sttm0001'] = "Ù„Ù‡Ű°Ű§ Ű§Ù„ŰŽÙ‡Ű±"; -$lang['sttw0001'] = "Ű§ÙŰ¶Ù„ Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†"; -$lang['sttw0002'] = "Ù„Ù‡Ű°Ű§ Ű§Ù„Ű§ŰłŰšÙˆŰč"; -$lang['sttw0003'] = "وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ %s %s ۳ۧŰčۧŰȘ"; -$lang['sttw0004'] = "ŰŁÙŰ¶Ù„ 10 ŰšŰ§Ù„ŰłÙŠŰ±ÙŰ±"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "ŰŁÙŰ¶Ù„ 10 Ű„Ű­Ű”Ű§ŰŠÙŠŰ§ŰȘ"; -$lang['sttw0008'] = "ŰŁÙŰ¶Ù„ 10 ۶ۯ ŰŁŰźŰ±ÙˆÙ† في ŰČمن Ű§Ù„Ű„ŰȘŰ”Ű§Ù„"; -$lang['sttw0009'] = "ŰŁÙŰ”Ù„ 10 ۶ۯ ŰŁŰźŰ±ÙˆÙ† في وقŰȘ Ű§Ù„Ù†ŰŽŰ§Ű·"; -$lang['sttw0010'] = "ŰŁÙŰ¶Ù„ 10 ۶ۯ ŰŁŰźŰ±ÙˆÙ† في ŰČمن Ű§Ù„ŰźÙ…ÙˆÙ„"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin."; -$lang['stve0002'] = "A message with the token was sent to you on the TS3 server."; -$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$lang['stve0005'] = "Congratulations, you are successfully verified! You can now go on.."; -$lang['stve0006'] = "An unknown error happened. Please try it again. On repeated times contact an admin"; -$lang['stve0007'] = "Verify on TeamSpeak"; -$lang['stve0008'] = "Choose here your unique ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_day'] = "Day(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(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"; -$lang['upgrp0003'] = "Error while writing out the servericon."; -$lang['upgrp0004'] = "Error while downloading TS3 ServerIcon from TS3 server: "; -$lang['upgrp0005'] = "Error while deleting the servericon."; -$lang['upgrp0006'] = "Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0007'] = "Error while writing out the servergroup icon from group %s with ID %s."; -$lang['upgrp0008'] = "Error while downloading servergroup icon from group %s with ID %s: "; -$lang['upgrp0009'] = "Error while deleting the servergroup icon from group %s with ID %s."; -$lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s"; -$lang['upinf'] = "يŰȘÙˆÙŰ± ۧ۔ۯۧ۱ ŰŹŰŻÙŠŰŻ من Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš; Ű§ŰšÙ„Űș Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† في Ű§Ù„ŰłÙŠŰ±ÙŰ±"; -$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes."; -$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%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 informations [URL]%s[/URL]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… %s Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…Ű­"; -$lang['user'] = "Ű§ŰłÙ… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…"; -$lang['verify0001'] = "Please be sure, you are really connected to the TS3 server!"; -$lang['verify0002'] = "Enter, if not already done, the Ranksystem %sverification-channel%s!"; -$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :("; -$lang['verify0004'] = "No user inside the verification channel found..."; -$lang['wi'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "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['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['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!"; -$lang['wibot4'] = "Start / Stop Ranksystem Bot"; -$lang['wibot5'] = "Start Bot"; -$lang['wibot6'] = "Stop Bot"; -$lang['wibot7'] = "Restart Bot"; -$lang['wibot8'] = "Ranksystem log (extract):"; -$lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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'] = "ۧŰčۧۯ۩ Ű§Ù†ŰŽŰ§ŰĄ Ű§Ù„Ù…ŰŹŰ§Ù…ÙŠŰč"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

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

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

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; -$lang['widelsg'] = "Ű­Ű°Ù من Ù…ŰŹÙ…ÙˆŰčۧŰȘ Ű§Ù„ŰłÙŠŰ±ÙŰ±"; -$lang['widelsgdesc'] = "Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem"; -$lang['wiexcept'] = "Exceptions"; -$lang['wiexcid'] = "Channel-Ausnahmen"; -$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

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

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

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "exception mode"; -$lang['wiexres1'] = "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): At 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 actual value (before the user got excepted). After loosing the excepted reason (after removing the excepted servergroup or remove the expection rule) the 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The 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'] = "ۧ۳ŰȘŰ«Ù†Ű§ŰĄ Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wiexregrp'] = "Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ©"; -$lang['wiexregrpdesc'] = "ۄ۰ۧ ŰȘم ۄ۳ŰȘŰšŰčۧۯ Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… من Ranksystemی ÙŰłÙŠŰȘم Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ© Ű§Ù„Ù…ŰźŰ”Ű”Ű© Ù„Ù„ŰźŰ§ŰŻÙ… من Ù‚ŰšÙ„ Ranksystem.

ŰłÙŠŰȘم Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ© ÙÙ‚Ű· مŰč '".$lang['wiexres']."' مŰč '".$lang['wiexres1']."'. في ŰŹÙ…ÙŠŰč Ű§Ù„ÙˆŰ¶ŰčÙŠŰ§ŰȘ Ű§Ù„ŰŁŰźŰ±Ù‰ŰŒ لن يŰȘم Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ© Ű§Ù„ŰźŰ§ŰŻÙ….

Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰžÙŠÙŰ© Ù…Ù‡Ù…Ű© ÙÙ‚Ű· في Ű§Ù„ŰŹÙ…Űč مŰč '".$lang['wiexuid']."' ŰŁÙˆ '".$lang['wiexgrp']."' مŰč '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "ŰȘŰ±ÙÙŠŰč ۱ŰȘۚ۩"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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['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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function."; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; -$lang['wilogout'] = "ŰȘŰłŰŹÙŠÙ„ Ű§Ù„ŰźŰ±ÙˆŰŹ"; -$lang['wimsgmsg'] = "Message"; -$lang['wimsgmsgdesc'] = "Define a message, which will be send to a user, when he rises the next higher rank.

This message will be send 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 modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wimsgusr'] = "Rank up notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; -$lang['winav1'] = "TeamSpeak"; -$lang['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$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['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['winxmsg2'] = "Message (highest)"; -$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. 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"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "active time"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "online time"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$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 conside for the Ranksystem."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "Ù†Ù…Ű· Ù…ŰźŰ”Ű”"; -$lang['wistyledesc'] = "ŰȘŰčŰ±ÙŠÙ Ù†Ù…Ű· Ù…ŰźŰ”Ű” (Style) Ù„Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„Ű°ÙŠ ÙŠŰźŰȘلف Űčن Ű§Ù„Ù†ŰžŰ§Ù… Ű§Ù„Ű„ÙŰȘŰ±Ű§Ű¶ÙŠ.
ŰłÙŠŰȘم ۧ۳ŰȘŰźŰŻŰ§Ù… Ù‡Ű°Ű§ Ű§Ù„Ù†Ù…Ű· Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ§ŰȘ ÙˆÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ÙˆÙŠŰš.

۶Űč Ű§Ù„Ù†Ù…Ű· Ű§Ù„ŰźŰ§Ű” ŰšÙƒ في Ű§Ù„ŰŻÙ„ÙŠÙ„ 'style' في Ű§Ù„ŰŻÙ„ÙŠÙ„ Ű§Ù„ÙŰ±Űčي Ű§Ù„ŰźŰ§Ű” ŰšÙƒ.
ÙŠŰ­ŰŻŰŻ Ű§ŰłÙ… Ű§Ù„ŰŻÙ„ÙŠÙ„ Ű§Ù„ÙŰ±Űčي Ű§ŰłÙ… Ű§Ù„Ù†Ù…Ű·.

Ù„Ű°Ù„Ùƒ ÙÙ„Ű§ ÙŠÙ†ŰšŰșي Ű§Ù„Ù‚ÙŠŰ§Ù… ŰšŰȘŰčŰŻÙŠÙ„Ű§ŰȘ في Ű§Ù„ŰŁÙ†Ù…Ű§Ű· Ű§Ù„ŰȘي ŰȘۚۯۣ Űš \"TSN_\". يمكن ۧ۳ŰȘŰźŰŻŰ§Ù…Ù‡Ű§ ÙƒÙ†Ù…ÙˆŰ°ŰŹŰŒ Ù„Ű°Ù„Ùƒ يمكن Ù†ŰłŰź Ű§Ù„Ű·Ű±Ű§ŰČ ÙÙŠ Ù…ŰŹÙ„ŰŻ ÙŠŰŻÙŠŰ± ŰȘŰčŰŻÙŠÙ„Ű§ŰȘه.

يŰȘŰ·Ù„Űš Ű„Ù†ŰŽŰ§ŰĄ ملفي CSS Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© ÙˆŰ§Ù„ÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ©. يمكن ŰŁÙŠŰ¶Ù‹Ű§ ŰȘŰ¶Ù…ÙŠÙ† ŰŹŰ§ÙŰ§ ŰłÙƒŰ±ÙŠŰšŰȘ ŰźŰ§Ű”ŰŒ Ű§Ù„Ű°ÙŠ
يŰčŰŻ Ű°Ù„Ùƒ ۧ۟ŰȘÙŠŰ§Ű±ÙŠÙ‹Ű§.

ŰȘŰčŰ±ÙŠÙ ŰȘŰłÙ…ÙŠŰ© Ű§Ù„ŰŽÙƒÙ„ Ű§Ù„ŰźŰ§Ű±ŰŹÙŠ Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© ÙˆŰ§Ù„ÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ©:
 - ۫ۧۚŰȘ 'ST.css' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© (/stats/) 
- ۫ۧۚŰȘ 'WI.css' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ© Ű§Ù„ŰźŰ§Ű±ŰŹÙŠŰ© (/webinterface/)


ŰȘŰčŰ±ÙŠÙ ŰȘŰłÙ…ÙŠŰ© Ű§Ù„ŰŹŰ§ÙŰ§ ŰłÙƒŰ±ÙŠŰšŰȘ Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© ÙˆŰ§Ù„ÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ©:
- ۫ۧۚŰȘ 'ST.js' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© (/stats/)
- ۫ۧۚŰȘ 'WI.js' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ© Ű§Ù„ŰźŰ§Ű±ŰŹÙŠŰ© (/webinterface/)


ۄ۰ۧ كنŰȘ ŰȘ۱ŰșŰš في Ù…ŰŽŰ§Ű±ÙƒŰ© Ű§Ù„Ű·Ű±Ű§ŰČ Ű§Ù„ŰźŰ§Ű” ŰšÙƒ مŰč Ű§Ù„ŰąŰźŰ±ÙŠÙ†ŰŒ يمكنك Ű„Ű±ŰłŰ§Ù„Ù‡ Ű„Ù„Ù‰ Ű§Ù„ŰčÙ†ÙˆŰ§Ù† Ű§Ù„Ű„Ù„ÙƒŰȘŰ±ÙˆÙ†ÙŠ Ű§Ù„ŰȘŰ§Ù„ÙŠ:

%s

ŰłÙ†Ű”ŰŻŰ±Ù‡Ű§ في Ű§Ù„Ű„Ű”ŰŻŰ§Ű± Ű§Ù„ŰȘŰ§Ù„ÙŠ!"; -$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['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$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['wits3pre'] = "ŰšŰ±ÙŠÙÙŠÙƒŰł ŰŁÙ…Ű± Ű§Ù„ŰšÙˆŰȘ"; -$lang['wits3predesc'] = "Űčلى ŰźŰ§ŰŻÙ… TeamSpeak يمكنك Ű§Ù„ŰȘÙˆŰ§Ű”Ù„ مŰč ŰšÙˆŰȘ Ranksystem من ŰźÙ„Ű§Ù„ Ű§Ù„ŰŻŰ±ŰŻŰŽŰ©. ŰšŰŽÙƒÙ„ Ű§ÙŰȘŰ±Ű§Ű¶ÙŠŰŒ يŰȘم ÙˆŰ¶Űč ŰčÙ„Ű§Ù…Ű© '!' في ŰŁÙ…Ű§Ù… ŰŁÙˆŰ§Ù…Ű± Ű§Ù„ŰšÙˆŰȘ كŰčÙ„Ű§Ù…Ű© مŰčŰ±ÙŰ©. يŰȘم ۧ۳ŰȘŰźŰŻŰ§Ù… Ű§Ù„ŰšŰ±ÙŠÙÙŠÙƒŰł لŰȘŰčŰ±ÙŠÙ Ű§Ù„ŰŁÙˆŰ§Ù…Ű± Ű§Ù„ŰźŰ§Ű”Ű© ŰšŰ§Ù„ŰšÙˆŰȘ ÙƒÙ…Ű§ هو.

يمكن ۧ۳ŰȘŰšŰŻŰ§Ù„ Ù‡Ű°Ű§ Ű§Ù„ŰšŰ±ÙŠÙÙŠÙƒŰł ŰšŰŁÙŠ ŰšŰ±ÙŠÙÙŠÙƒŰł ۹۟۱ Ù…Ű±ŰșÙˆŰš فيه. Ù‚ŰŻ ŰȘكون Ù‡Ű°Ù‡ Ű§Ù„ŰźŰ·ÙˆŰ© Ű¶Ű±ÙˆŰ±ÙŠŰ© ۄ۰ۧ ÙƒŰ§Ù†ŰȘ Ù‡Ù†Ű§Ùƒ ŰšÙˆŰȘۧŰȘ ŰŁŰźŰ±Ù‰ ŰȘŰłŰȘŰźŰŻÙ… ŰŁÙˆŰ§Ù…Ű± Ù…Ù…Ű§Ű«Ù„Ű©.

Űčلى ŰłŰšÙŠÙ„ Ű§Ù„Ù…Ű«Ű§Ù„ŰŒ ŰłŰȘŰšŰŻÙˆ Ű§Ù„ŰŁÙ…Ű± Ű§Ù„Ű„ÙŰȘŰ±Ű§Ű¶ÙŠ Ù„Ù„ŰšÙˆŰȘ ÙƒÙ…Ű§ يلي:
!help


ۄ۰ۧ قمŰȘ ۚۧ۳ŰȘŰšŰŻŰ§Ù„ Ű§Ù„ŰšŰ±ÙŠÙÙŠÙƒŰł Űš '#'ی ÙŰłŰȘŰšŰŻÙˆ Ű§Ù„ŰŁÙ…Ű± ÙƒÙ…Ű§ يلي:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you 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['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"; -$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['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 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'] = "Language"; -$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; -?> \ No newline at end of file + added to the Ranksystem now.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Ű§Ù„ŰłÙ…Ű§Ű­ ۚۚۯۥ/Ű„ÙŠÙ‚Ű§Ù ÙƒŰ§ŰšŰȘن Ranksystem Űčۚ۱ API'; +$lang['apipermdesc'] = '(ON = Ű§Ù„ŰłÙ…Ű§Ű­ ; OFF = منŰč)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$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'] = 'Ű§Ù„ŰšŰ­Ű« Űčن Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† Ű§Ù„Ű°ÙŠÙ† من Ű§Ù„Ù…ÙŰ±ÙˆŰ¶ Ű­Ű°ÙÙ‡Ù…'; +$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.'; +$lang['cleanno'] = 'Ù„ÙŠŰł Ù‡Ù†Ű§Ùƒ ŰŽÙŠŰĄ ليŰȘم Ù…ŰłŰ­Ù‡ '; +$lang['cleanp'] = 'Ù…ŰŻÙ‰ Ű§Ù„ŰȘŰ”ÙÙŠŰ©'; +$lang['cleanpdesc'] = "Set a time that has to elapse before the 'clean clients' runs next.

Set a time in seconds.

Recommended is once a day, cause the client cleaning needs much time for bigger databases."; +$lang['cleanrs'] = 'Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙˆÙ† في Ù‚Ű§ŰčŰŻŰ© ŰšŰ§ÙŠÙ†Ű§ŰȘ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš: %s'; +$lang['cleants'] = 'Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† Ű§Ù„Ű°ÙŠÙ† ŰȘم Ű§Ù„ŰčŰ«ÙˆŰ± Űčليهم في Ù‚Ű§ŰčŰŻŰ© ŰšŰ§ÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ: %s (of %s)'; +$lang['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!'; +$lang['errgrplist'] = 'Error while getting servergrouplist: '; +$lang['errlogin'] = 'Ű§ŰłÙ… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… Ű§Ùˆ ÙƒÙ„Ù…Ű© Ű§Ù„Ù…Ű±ÙˆŰ± ۟ۧ۷ۊ۩! Ű­Ű§ÙˆÙ„ Ù…ŰŹŰŻŰŻŰ§...'; +$lang['errlogin2'] = 'Brute force protection: Try it again in %s seconds!'; +$lang['errlogin3'] = 'Brute force protection: To much misstakes. Banned for 300 Seconds!'; +$lang['error'] = 'ŰźÙ„Ù„ '; +$lang['errorts3'] = 'TS3 Error: '; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['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'] = 'ŰȘم Ű§Ù„ÙˆŰ”ÙˆÙ„ Ű§Ù„Ù‰ ۧŰčلى ۱ŰȘۚ۩'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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!
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 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 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)'; +$lang['isntwidbmsg'] = 'ŰźÙ„Ù„ في Ù‚Ű§ŰčŰŻŰ© Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ: '; +$lang['isntwidbname'] = 'DB Name:'; +$lang['isntwidbnamedesc'] = 'Ű§ŰłÙ… Ù‚Ű§ŰčŰŻŰ© Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ'; +$lang['isntwidbpass'] = 'DB Password:'; +$lang['isntwidbpassdesc'] = 'ÙƒÙ„Ù…Ű© Ù…Ű±ÙˆŰ± Ù‚Ű§ŰčŰŻŰ© Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ'; +$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'] = 'User to access the database'; +$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'] = 'Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„Ű­Ű§Ù„ÙŠŰ©'; +$lang['listcldbid'] = 'Client-database-ID'; +$lang['listexcept'] = 'No, cause excepted'; +$lang['listgrps'] = 'actual group since'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Ű§ŰłÙ… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…'; +$lang['listnxsg'] = 'Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„ŰȘŰ§Ù„ÙŠŰ©'; +$lang['listnxup'] = 'Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„Ù‚Ű§ŰŻÙ…Ű© ŰšŰčŰŻ'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = '۱ŰȘۚ۩'; +$lang['listseen'] = 'ۧ۟۱ ŰžÙ‡ÙˆŰ±'; +$lang['listsuma'] = 'وقŰȘ Ű§Ù„Ù†ŰŽŰ§Ű· Ű§Ù„ÙƒÙ„ÙŠ'; +$lang['listsumi'] = 'وقŰȘ ŰčŰŻÙ… Ű§Ù„Ù†ŰŽŰ§Ű· Ű§Ù„ÙƒÙ„ÙŠ'; +$lang['listsumo'] = 'وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ Ű§Ù„ÙƒÙ„ÙŠ'; +$lang['listuid'] = 'unique Client-ID'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Login'; +$lang['module_disabled'] = 'This module is deactivated.'; +$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['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Client %s (%s) requests %s.'; +$lang['msg0008'] = 'Update check done. If an update is available, it will runs 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'] = 'لم يŰȘم Ű§Ù„ŰčŰ«ÙˆŰ± Űčلى Ű§ÙŠ Ù…ŰŻŰźÙ„Ű§ŰȘ'; +$lang['pass'] = 'ÙƒÙ„Ù…Ű© Ű§Ù„Ù…Ű±ÙˆŰ±'; +$lang['pass2'] = 'Change password'; +$lang['pass3'] = 'old password'; +$lang['pass4'] = 'new password'; +$lang['pass5'] = 'Forgot Password?'; +$lang['permission'] = 'ŰŁŰ°ÙˆÙ†Ű§ŰȘ'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'repeat'; +$lang['resettime'] = 'Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception.'; +$lang['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).'; +$lang['setontime'] = 'add time'; +$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_pib'] = 'PiB'; +$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'] = '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.'; +$lang['stag0007'] = 'Please wait till your last changes take effect before you change already the next things...'; +$lang['stag0008'] = 'Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server.'; +$lang['stag0009'] = 'You cannot choose more then %s group(s) at the same time!'; +$lang['stag0010'] = 'Please choose at least one new group.'; +$lang['stag0011'] = 'Limit of concurrent groups: '; +$lang['stag0012'] = 'set groups'; +$lang['stag0013'] = 'Addon ON/OFF'; +$lang['stag0014'] = 'Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden.'; +$lang['stag0015'] = '%sيمكن Ű§Ù„ŰčŰ«ÙˆŰ± Űčلى TeamSpeak%s. ÙŠŰ±ŰŹÙ‰ Ű§Ù„Ù†Ù‚Ű± Ù‡Ù†Ű§ للŰȘŰ­Ù‚Ù‚ من Ù†ÙŰłÙƒ ŰŁÙˆÙ„Ű§.'; +$lang['stag0016'] = 'verification needed!'; +$lang['stag0017'] = 'verificate here..'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Ű­Ű§Ù„Ű© Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0002'] = 'Ù…ŰŹÙ…ÙˆŰč Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['stix0003'] = 'Űč۱۶ Ű§Ù„ŰȘÙŰ§Ű”ÙŠÙ„'; +$lang['stix0004'] = 'Ù…ŰŹÙ…ÙˆŰč وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['stix0005'] = 'Ű„ŰžÙ‡Ű§Ű± Ű§Ù„Ű§ÙˆÙ„ في كل Ű§Ù„Ű§ÙˆÙ‚Ű§ŰȘ'; +$lang['stix0006'] = 'Ű„ŰžÙ‡Ű§Ű± Ű§Ù„Ű§ÙˆÙ„ Ù„Ù‡Ű°Ű§ Ű§Ù„ŰŽÙ‡Ű±'; +$lang['stix0007'] = 'Ű„ŰžÙ‡Ű§Ű± Ű§Ù„Ű§ÙˆÙ„ Ù„Ù‡Ű°Ű§ Ű§Ù„Ű§ŰłŰšÙˆŰč'; +$lang['stix0008'] = 'Ù…ŰŻŰ© ۄ۳ŰȘŰčÙ…Ű§Ù„ Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0009'] = 'في ۧ۟۱ 7 Ű§ÙŠŰ§Ù…'; +$lang['stix0010'] = 'في ۧ۟۱ 30 يوم'; +$lang['stix0011'] = 'في ۧ۟۱ 24 ۳ۧŰčŰ©'; +$lang['stix0012'] = 'Ű­ŰŻŰŻ Ű§Ù„Ù…ŰŻŰ©'; +$lang['stix0013'] = 'Ù‚ŰšÙ„ يوم'; +$lang['stix0014'] = 'Ù‚ŰšÙ„ Ű§ŰłŰšÙˆŰč'; +$lang['stix0015'] = 'Ù‚ŰšÙ„ ŰŽÙ‡Ű±'; +$lang['stix0016'] = '(وقŰȘ Ű§Ù„Ù†ŰŽŰ§Ű·/وقŰȘ Ű§Ù„ŰźÙ…ÙˆÙ„ (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['stix0017'] = '(Ű§Ù„Ű„Ű”ŰŻŰ§Ű±Ű§ŰȘ (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['stix0018'] = '(Ű§Ù„ŰŻÙˆÙ„ (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['stix0019'] = '(Ű§Ù„ŰŁÙ†ŰžÙ…Ű© (لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['stix0020'] = 'Ű§Ù„Ű„Ű­Ű”Ű§ŰĄŰ§ŰȘ Ű§Ù„Ű­Ű§Ù„ÙŠŰ©'; +$lang['stix0023'] = 'Ű­Ű§Ù„Ű© Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0024'] = 'مŰȘÙˆŰ§ŰŹŰŻ'; +$lang['stix0025'] = 'ŰșÙŠŰ± مŰȘÙˆŰ§ŰŹŰŻ'; +$lang['stix0026'] = '(ŰŁÙ‚Ű”Ù‰ ŰčŰŻŰŻ للمŰȘŰ”Ù„ÙŠÙ† / Ű§Ù„Ù…ŰȘŰ”Ù„ÙŠÙ†)'; +$lang['stix0027'] = 'ŰčŰŻŰŻ Ű§Ù„Ù‚Ù†ÙˆŰ§ŰȘ'; +$lang['stix0028'] = 'مŰȘÙˆŰłŰ· ŰČمن Ű§Ù„ÙˆŰ”ÙˆÙ„ Ù„Ù„ŰłÙŠŰ±ÙŰ±'; +$lang['stix0029'] = 'Ù…ŰŹÙ…ÙˆŰč Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„Ù…ŰȘلقيه'; +$lang['stix0030'] = 'Ù…ŰŹÙ…ÙˆŰč Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„Ù…Ű±ŰłÙ„Ű©'; +$lang['stix0031'] = 'وقŰȘ Űčمل Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0032'] = 'Ù‚ŰšÙ„ Ű§ÙŠÙ‚Ű§Ù Ű§Ù„ŰȘŰŽŰșيل:'; +$lang['stix0033'] = '00 Days, 00 Hours, 00 Mins, 00 Secs'; +$lang['stix0034'] = 'مŰȘÙˆŰłŰ· ÙÙ‚ŰŻ Ű§Ù„ŰšÙŠŰ§Ù†Ű§ŰȘ'; +$lang['stix0035'] = 'Ű§Ù„Ű„Ű­Ű”Ű§ŰĄŰ§ŰȘ Ű§Ù„ŰčŰ§Ù…Ű©'; +$lang['stix0036'] = 'Ű§ŰłÙ… Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0037'] = 'Ű§Ù„Ù…Ù†ÙŰ°:ŰčÙ†ÙˆŰ§Ù† Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0038'] = 'ÙƒÙ„Ù…Ű© Ù…Ű±ÙˆŰ± Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0039'] = '(Ù„Ű§ÙŠÙˆŰŹŰŻ (Ű§Ù„ŰźŰ§ŰŻÙ… ŰčŰ§Ù…'; +$lang['stix0040'] = 'نŰčم (Ű§Ù„ŰźŰ§ŰŻÙ… ۟ۧ۔)'; +$lang['stix0041'] = 'Ù‡ÙˆÙŠŰ© Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0042'] = 'Ù†ŰžŰ§Ù… Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0043'] = 'ۄ۔ۯۧ۱ Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stix0044'] = '(ŰȘŰ§Ű±ÙŠŰź Ű„Ù†ŰŽŰ§ŰĄ Ű§Ù„ŰźŰ§ŰŻÙ… (يوم/ŰŽÙ‡Ű±/ŰłÙ†Ű©'; +$lang['stix0045'] = 'Ű„Ű¶Ű§ÙŰ© Ű§Ù„ŰźŰ§ŰŻÙ… Ű„Ù„Ù‰ Ù‚Ű§ŰŠÙ…Ű© Ű§Ù„ŰźÙˆŰ§ŰŻÙ…'; +$lang['stix0046'] = 'مفŰčل'; +$lang['stix0047'] = 'ŰșÙŠŰ± مفŰčل'; +$lang['stix0048'] = 'ŰčŰŻŰŻ ŰșÙŠŰ± ÙƒŰ§ÙÙŠ من Ű§Ù„Ù…ŰčÙ„ÙˆÙ…Ű§ŰȘ Ű­ŰȘى Ű§Ù„Ű§Ù†'; +$lang['stix0049'] = 'وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† / ŰŽÙ‡Ű±'; +$lang['stix0050'] = 'وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ لكل Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† / Ű§ŰłŰšÙˆŰč'; +$lang['stix0051'] = 'Ù„Ù‚ŰŻ ÙŰŽÙ„ Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ Ù„Ű°Ű§ لن يكون Ù‡Ù†Ű§Ùƒ ŰčÙ…Ù„ÙŠŰ© Ű§Ù†ŰŽŰ§ŰĄ'; +$lang['stix0052'] = 'others'; +$lang['stix0053'] = 'Active Time (in Days)'; +$lang['stix0054'] = 'Inactive Time (in Days)'; +$lang['stix0055'] = 'online last 24 hours'; +$lang['stix0056'] = 'online last %s days'; +$lang['stix0059'] = 'List of user'; +$lang['stix0060'] = 'User'; +$lang['stix0061'] = 'View all versions'; +$lang['stix0062'] = 'View all nations'; +$lang['stix0063'] = 'View all platforms'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'Ű§Ù„ŰčŰ¶ÙˆÙŠŰ©'; +$lang['stmy0002'] = '۱ŰȘۚ۩'; +$lang['stmy0003'] = 'Database ID:'; +$lang['stmy0004'] = 'Unique ID:'; +$lang['stmy0005'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„ŰŻŰźÙˆÙ„ Ű„Ù„Ù‰ Ű§Ù„ŰźŰ§ŰŻÙ…:'; +$lang['stmy0006'] = 'ŰŁÙˆÙ„ ŰŻŰźÙˆÙ„ Ù„Ù„ŰłÙŠŰ±ÙŰ±:'; +$lang['stmy0007'] = 'Ű§Ù„Ù…ŰŹÙ…ÙˆŰč Ű§Ù„ÙƒÙ„ÙŠ لوقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ:'; +$lang['stmy0008'] = 'Online time last %s days:'; +$lang['stmy0009'] = 'Active time last %s days:'; +$lang['stmy0010'] = 'ŰŁÙƒŰȘملŰȘ Ű§Ù„Ű„Ù†ŰŹŰ§ŰČۧŰȘ:'; +$lang['stmy0011'] = 'Ű§Ù„ŰȘÙ‚ŰŻÙ… ŰšŰ§Ù„Ű„Ù†ŰŹŰ§ŰČۧŰȘ'; +$lang['stmy0012'] = 'Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : ŰŁŰłŰ·ÙˆŰ±ÙŠ'; +$lang['stmy0013'] = 'Ù„ŰŁÙ† وقŰȘ ŰȘÙˆŰ§ŰŹŰŻÙƒ ŰšŰ§Ù„ŰłÙŠŰ±ÙŰ± %s ۳ۧŰčۧŰȘ'; +$lang['stmy0014'] = 'ŰŁÙƒŰȘمل Ű§Ù„ŰȘÙ‚ŰŻÙ…'; +$lang['stmy0015'] = 'Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : Ű°Ù‡ŰšÙŠ'; +$lang['stmy0016'] = '% ŰŁÙƒŰȘمل ŰŁŰłŰ·ÙˆŰ±ÙŠ'; +$lang['stmy0017'] = 'Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : ÙŰ¶ÙŠ'; +$lang['stmy0018'] = '% ŰŁÙƒŰȘمل Ű°Ù‡ŰšÙŠ'; +$lang['stmy0019'] = 'Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : ŰšŰ±ÙˆÙ†ŰČي'; +$lang['stmy0020'] = '% ŰŁÙƒŰȘمل ÙŰ¶ÙŠ'; +$lang['stmy0021'] = 'Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ : Ù„Ű§ÙŠÙˆŰŹŰŻ ۱ŰȘۚ۩'; +$lang['stmy0022'] = '% ŰŁÙƒŰȘمل ŰšŰ±ÙˆÙ†ŰČي'; +$lang['stmy0023'] = 'ŰȘÙ‚ŰŻÙ… ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„'; +$lang['stmy0024'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ : ŰŁŰłŰ·ÙˆŰ±ÙŠ'; +$lang['stmy0025'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„ŰŻŰźÙˆÙ„ Ű„Ù„Ù‰ Ű§Ù„ŰźŰ§ŰŻÙ… %s Ù…Ű±Ű©'; +$lang['stmy0026'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ : Ű°Ù‡ŰšÙŠ'; +$lang['stmy0027'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ : ÙŰ¶ÙŠ'; +$lang['stmy0028'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„: ŰšŰ±ÙˆÙ†ŰČي'; +$lang['stmy0029'] = 'ŰčŰŻŰŻ Ù…Ű±Ű§ŰȘ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„: Ù„Ű§ÙŠÙˆŰŹŰŻ ۱ŰȘۚ۩'; +$lang['stmy0030'] = 'Ű§Ù„ŰȘÙ‚ŰŻÙ… Ù„Ù„Ù…ŰłŰȘوى Ű§Ù„Ù‚Ű§ŰŻÙ…'; +$lang['stmy0031'] = 'Total active time'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Nations'; +$lang['stna0002'] = 'statistics'; +$lang['stna0003'] = 'Code'; +$lang['stna0004'] = 'Count'; +$lang['stna0005'] = 'Versions'; +$lang['stna0006'] = 'Platforms'; +$lang['stna0007'] = 'Percentage'; +$lang['stnv0001'] = 'ۧ۟ۚۧ۱ Ű§Ù„ŰźŰ§ŰŻÙ…'; +$lang['stnv0002'] = 'ۧŰșÙ„Ű§Ù‚'; +$lang['stnv0003'] = 'ŰȘŰ­ŰŻÙŠŰ« مŰčÙ„ÙˆÙ…Ű§ŰȘ Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…'; +$lang['stnv0004'] = 'ۄ۳ŰȘŰźŰŻÙ… Ű§Ù„ŰȘŰ­ŰŻÙŠŰ« ÙÙ‚Ű· في Ű­Ű§Ù„Ű© ŰȘŰșÙŠŰ± مŰčÙ„ÙˆÙ…Ű§ŰȘك في Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ Ù…Ű«Ù„ : Ű§ŰłÙ…Ùƒ'; +$lang['stnv0005'] = 'يŰčمل ÙÙ‚Ű· ŰčÙ†ŰŻ ŰȘÙˆŰ§ŰŹŰŻÙƒ ŰšŰ§Ù„ŰȘيم ŰłŰšÙŠÙƒ'; +$lang['stnv0006'] = 'ŰȘŰ­ŰŻÙŠŰ«'; +$lang['stnv0016'] = 'ŰșÙŠŰ± مŰȘÙˆÙŰ±'; +$lang['stnv0017'] = 'ŰŁÙ†ŰȘ ŰșÙŠŰ± مŰȘŰ”Ù„ ŰšŰ§Ù„ŰȘيم ŰłŰšÙŠÙƒ'; +$lang['stnv0018'] = 'Ű§Ù„Ű±ŰŹŰ§ŰĄ Ű§Ù„Ű„ŰȘŰ”Ű§Ù„ ŰšŰ§Ù„ŰȘيم ŰłŰšÙŠÙƒ و Ű§Ù„Ű¶ŰșŰ· Űčلى ŰČ۱ Ű§Ù„ŰȘŰ­ŰŻÙŠŰ« لŰč۱۶ مŰčÙ„ÙˆÙ…Ű§ŰȘك'; +$lang['stnv0019'] = 'Ű§Ù„ŰčŰ¶ÙˆÙŠŰ© - ێ۱ۭ'; +$lang['stnv0020'] = 'ŰȘŰ­ŰȘوي Ù‡Ű°Ű§ Ű§Ù„Ű”ÙŰ­Ű© Űčلى Ù…ŰźŰȘ۔۱ Ù„Ű­Ű§Ù„ŰȘك Ű§Ù„ŰźŰ§Ű”Ű© ÙˆÙ…ŰŹÙ…ÙˆŰč وقŰȘ ŰȘÙˆŰ§ŰŹŰŻÙƒ Űčلى Ű§Ù„ŰłÙŠŰ±ÙŰ±'; +$lang['stnv0021'] = 'The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server.'; +$lang['stnv0022'] = 'This page receives its values out of a database. So the values might be delayed a bit.'; +$lang['stnv0023'] = 'The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds).'; +$lang['stnv0024'] = 'Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš'; +$lang['stnv0025'] = 'ŰȘŰ­ŰŻÙŠŰŻ Ű§Ù„Ù…ŰŻŰźÙ„Ű§ŰȘ'; +$lang['stnv0026'] = 'Ű§Ù„ÙƒÙ„'; +$lang['stnv0027'] = 'Ű§Ù„Ù…ŰčÙ„ÙˆÙ…Ű§ŰȘ Űčلى Ù‡Ű°Ù‡ Ű§Ù„Ű”ÙŰ­Ű© Ù‚ŰŻ ŰȘكون منŰȘÙ‡ÙŠŰ© Ű§Ù„Ű”Ù„Ű§Ű­ÙŠŰ©! ÙŠŰšŰŻÙˆ Ű§Ù† Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš لم يŰčŰŻ مŰȘŰ”Ù„Ű§ ŰšŰłÙŠŰ±ÙŰ± Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ'; +$lang['stnv0028'] = '(Ű§Ù†ŰȘ ŰșÙŠŰ± مŰȘŰ”Ù„ ŰšŰłÙŠŰ±ÙŰ± Ű§Ù„ŰȘيم ŰłŰšÙŠÙƒ!)'; +$lang['stnv0029'] = 'Ù‚Ű§ŰŠÙ…Ű© Ű§Ù„Ű±ŰȘŰš'; +$lang['stnv0030'] = 'مŰčÙ„ÙˆÙ…Ű§ŰȘ Űčن Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš'; +$lang['stnv0031'] = 'About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID.'; +$lang['stnv0032'] = 'You can also use a view filter options (see below). Enter the filter also inside the search field.'; +$lang['stnv0033'] = 'Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern.'; +$lang['stnv0034'] = 'Also it is possible to combine multiple filters. Enter this consecutively inside the search field.'; +$lang['stnv0035'] = 'Example:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Show only clients, which are excepted (client, servergroup or channel exception).'; +$lang['stnv0037'] = 'Show only clients, which are not excepted.'; +$lang['stnv0038'] = 'Show only clients, which are online.'; +$lang['stnv0039'] = 'Show only clients, which are not online.'; +$lang['stnv0040'] = 'Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID.'; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'connect TS3'; +$lang['stri0001'] = 'مŰčÙ„ÙˆÙ…Ű§ŰȘ Űčن Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš'; +$lang['stri0002'] = 'Ù…Ű§Ù‡Ùˆ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘ۹۟'; +$lang['stri0003'] = 'A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site.'; +$lang['stri0004'] = 'من Ű§Ù„Ű°ÙŠ ۧ۟ŰȘ۱Űč Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘ۹۟'; +$lang['stri0005'] = 'مŰȘى ŰȘم Ű§Ű·Ù„Ű§Ù‚ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš ۟'; +$lang['stri0006'] = 'Ű§ÙˆÙ„ ۧ۔ۯۧ۱ Ű§ÙˆÙ„ÙŠ: 05/10/2014.'; +$lang['stri0007'] = 'Ű§ÙˆÙ„ ۧ۔ۯۧ۱ ŰȘŰŹŰ±ÙŠŰšÙŠ: 01/02/2015.'; +$lang['stri0008'] = 'يمكنك Ű±Ű€ÙŠŰ© ۧ۟۱ ۧ۔ۯۧ۱ Űčلى Ranksystem Website.'; +$lang['stri0009'] = 'كيف ŰȘم Ű§Ù†ŰŽŰ§ŰĄ Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš ۟'; +$lang['stri0010'] = 'The Ranksystem is coded in'; +$lang['stri0011'] = 'It uses also the following libraries:'; +$lang['stri0012'] = ': ŰŽÙƒŰ± ۟ۧ۔ Ű„Ù„Ù‰'; +$lang['stri0013'] = '%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'] = '%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„ŰȘŰŽÙŠÙƒÙŠŰ©'; +$lang['stri0025'] = '%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„ŰšÙˆÙ„Ù†ŰŻÙŠŰ©'; +$lang['stri0026'] = '%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„Ű„ŰłŰšŰ§Ù†ÙŠŰ©'; +$lang['stri0027'] = '%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„Ù‡Ù†ŰșŰ§Ű±ÙŠŰ©'; +$lang['stri0028'] = '%s للŰȘŰ±ŰŹÙ…Ű© Ű§Ù„ŰŁŰ°Ű±ŰšÙŠŰŹŰ§Ù†ÙŠŰ©'; +$lang['stri0029'] = '%s Ù„Ù„ŰŻŰ§Ù„Ű© Ű§Ù„ŰŻÙ…ŰșŰ©'; +$lang['stri0030'] = "%s Ù„Ù„Ű·Ű±Ű§ŰČ 'CosmicBlue' Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰĄŰ§ŰȘ ÙˆÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ÙˆÙŠŰš"; +$lang['stta0001'] = 'لكل Ű§Ù„ÙˆÙ‚ŰȘ'; +$lang['sttm0001'] = 'Ù„Ù‡Ű°Ű§ Ű§Ù„ŰŽÙ‡Ű±'; +$lang['sttw0001'] = 'Ű§ÙŰ¶Ù„ Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ†'; +$lang['sttw0002'] = 'Ù„Ù‡Ű°Ű§ Ű§Ù„Ű§ŰłŰšÙˆŰč'; +$lang['sttw0003'] = 'وقŰȘ Ű§Ù„ŰȘÙˆŰ§ŰŹŰŻ %s %s ۳ۧŰčۧŰȘ'; +$lang['sttw0004'] = 'ŰŁÙŰ¶Ù„ 10 ŰšŰ§Ù„ŰłÙŠŰ±ÙŰ±'; +$lang['sttw0005'] = 'Hours (Defines 100 %)'; +$lang['sttw0006'] = '%s hours (%s%)'; +$lang['sttw0007'] = 'ŰŁÙŰ¶Ù„ 10 Ű„Ű­Ű”Ű§ŰŠÙŠŰ§ŰȘ'; +$lang['sttw0008'] = 'ŰŁÙŰ¶Ù„ 10 ۶ۯ ŰŁŰźŰ±ÙˆÙ† في ŰČمن Ű§Ù„Ű„ŰȘŰ”Ű§Ù„'; +$lang['sttw0009'] = 'ŰŁÙŰ”Ù„ 10 ۶ۯ ŰŁŰźŰ±ÙˆÙ† في وقŰȘ Ű§Ù„Ù†ŰŽŰ§Ű·'; +$lang['sttw0010'] = 'ŰŁÙŰ¶Ù„ 10 ۶ۯ ŰŁŰźŰ±ÙˆÙ† في ŰČمن Ű§Ù„ŰźÙ…ÙˆÙ„'; +$lang['sttw0011'] = 'Top 10 (in hours)'; +$lang['sttw0012'] = 'Other %s users (in hours)'; +$lang['sttw0013'] = 'With %s %s active time'; +$lang['sttw0014'] = 'hours'; +$lang['sttw0015'] = 'minutes'; +$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin."; +$lang['stve0002'] = 'A message with the token was sent to you on the TS3 server.'; +$lang['stve0003'] = 'Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID.'; +$lang['stve0004'] = 'The entered token does not match! Please try it again.'; +$lang['stve0005'] = 'Congratulations, you are successfully verified! You can now go on..'; +$lang['stve0006'] = 'An unknown error happened. Please try it again. On repeated times contact an admin'; +$lang['stve0007'] = 'Verify on TeamSpeak'; +$lang['stve0008'] = 'Choose here your unique ID on the TS3 server to verify yourself.'; +$lang['stve0009'] = ' -- select yourself -- '; +$lang['stve0010'] = 'You will receive a token on the TS3 server, which you have to enter here:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'verify'; +$lang['time_day'] = 'Day(s)'; +$lang['time_hour'] = 'Hour(s)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sec(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'; +$lang['upgrp0003'] = 'Error while writing out the servericon.'; +$lang['upgrp0004'] = 'Error while downloading TS3 ServerIcon from TS3 server: '; +$lang['upgrp0005'] = 'Error while deleting the servericon.'; +$lang['upgrp0006'] = 'Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0007'] = 'Error while writing out the servergroup icon from group %s with ID %s.'; +$lang['upgrp0008'] = 'Error while downloading servergroup icon from group %s with ID %s: '; +$lang['upgrp0009'] = 'Error while deleting the servergroup icon from group %s with ID %s.'; +$lang['upgrp0010'] = 'Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0011'] = 'Download new ServerGroupIcon for group %s with ID: %s'; +$lang['upinf'] = 'يŰȘÙˆÙŰ± ۧ۔ۯۧ۱ ŰŹŰŻÙŠŰŻ من Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘŰš; Ű§ŰšÙ„Űș Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† في Ű§Ù„ŰłÙŠŰ±ÙŰ±'; +$lang['upinf2'] = 'The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.'; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%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 informations [URL]%s[/URL]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = 'Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… %s Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…Ű­'; +$lang['user'] = 'Ű§ŰłÙ… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…'; +$lang['verify0001'] = 'Please be sure, you are really connected to the TS3 server!'; +$lang['verify0002'] = 'Enter, if not already done, the Ranksystem %sverification-channel%s!'; +$lang['verify0003'] = 'If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :('; +$lang['verify0004'] = 'No user inside the verification channel found...'; +$lang['wi'] = 'Webinterface'; +$lang['wiaction'] = 'action'; +$lang['wiadmhide'] = 'hide excepted clients'; +$lang['wiadmhidedesc'] = 'To hide excepted user in the following selection'; +$lang['wiadmuuid'] = '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['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['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!'; +$lang['wibot4'] = 'Start / Stop Ranksystem Bot'; +$lang['wibot5'] = 'Start Bot'; +$lang['wibot6'] = 'Stop Bot'; +$lang['wibot7'] = 'Restart Bot'; +$lang['wibot8'] = 'Ranksystem log (extract):'; +$lang['wibot9'] = 'Fill out all mandatory fields before starting the Ranksystem Bot!'; +$lang['wichdbid'] = 'Client-database-ID reset'; +$lang['wichdbiddesc'] = '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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'] = 'ۧŰčۧۯ۩ Ű§Ù†ŰŽŰ§ŰĄ Ű§Ù„Ù…ŰŹŰ§Ù…ÙŠŰč'; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

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

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

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause he can't remember ;-)"; +$lang['widelsg'] = 'Ű­Ű°Ù من Ù…ŰŹÙ…ÙˆŰčۧŰȘ Ű§Ù„ŰłÙŠŰ±ÙŰ±'; +$lang['widelsgdesc'] = 'Choose if the clients should also be removed out of the last known servergroup, when you delete clients out of the Ranksystem database.

It will only considered servergroups, which concerned the Ranksystem'; +$lang['wiexcept'] = 'Exceptions'; +$lang['wiexcid'] = 'Channel-Ausnahmen'; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

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

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

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = 'servergroup exception'; +$lang['wiexgrpdesc'] = 'A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up.'; +$lang['wiexres'] = 'exception mode'; +$lang['wiexres1'] = '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): At 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 actual value (before the user got excepted). After loosing the excepted reason (after removing the excepted servergroup or remove the expection rule) the 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The 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'] = 'ۧ۳ŰȘŰ«Ù†Ű§ŰĄ Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…'; +$lang['wiexuiddesc'] = 'A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up.'; +$lang['wiexregrp'] = 'Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ©'; +$lang['wiexregrpdesc'] = "ۄ۰ۧ ŰȘم ۄ۳ŰȘŰšŰčۧۯ Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… من Ranksystemی ÙŰłÙŠŰȘم Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ© Ű§Ù„Ù…ŰźŰ”Ű”Ű© Ù„Ù„ŰźŰ§ŰŻÙ… من Ù‚ŰšÙ„ Ranksystem.

ŰłÙŠŰȘم Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ© ÙÙ‚Ű· مŰč '".$lang['wiexres']."' مŰč '".$lang['wiexres1']."'. في ŰŹÙ…ÙŠŰč Ű§Ù„ÙˆŰ¶ŰčÙŠŰ§ŰȘ Ű§Ù„ŰŁŰźŰ±Ù‰ŰŒ لن يŰȘم Ű„ŰČŰ§Ù„Ű© Ű§Ù„Ù…ŰŹÙ…ÙˆŰčŰ© Ű§Ù„ŰźŰ§ŰŻÙ….

Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰžÙŠÙŰ© Ù…Ù‡Ù…Ű© ÙÙ‚Ű· في Ű§Ù„ŰŹÙ…Űč مŰč '".$lang['wiexuid']."' ŰŁÙˆ '".$lang['wiexgrp']."' مŰč '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'ŰȘŰ±ÙÙŠŰč ۱ŰȘۚ۩'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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['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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function.'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Logpath'; +$lang['wilogdesc'] = 'Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath.'; +$lang['wilogout'] = 'ŰȘŰłŰŹÙŠÙ„ Ű§Ù„ŰźŰ±ÙˆŰŹ'; +$lang['wimsgmsg'] = 'Message'; +$lang['wimsgmsgdesc'] = 'Define a message, which will be send to a user, when he rises the next higher rank.

This message will be send 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 modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)'; +$lang['wimsgusr'] = 'Rank up notification'; +$lang['wimsgusrdesc'] = 'Inform an user with a private text message about his rank up.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$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['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['winxmsg2'] = 'Message (highest)'; +$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. 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"; +$lang['wirtpw5'] = 'There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login.'; +$lang['wirtpw6'] = 'The password of the webinterface has been successfully reset. Request from IP %s.'; +$lang['wirtpw7'] = 'Reset Password'; +$lang['wirtpw8'] = 'Here you can reset the password for the webinterface.'; +$lang['wirtpw9'] = 'Following things are required to reset the password:'; +$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'active time'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'online time'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$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 conside for the Ranksystem."; +$lang['wishhicld'] = 'Clients in highest Level'; +$lang['wishhiclddesc'] = 'Show clients in list_rankup.php, which reached the highest level in the Ranksystem.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'Ù†Ù…Ű· Ù…ŰźŰ”Ű”'; +$lang['wistyledesc'] = "ŰȘŰčŰ±ÙŠÙ Ù†Ù…Ű· Ù…ŰźŰ”Ű” (Style) Ù„Ù†ŰžŰ§Ù… Ű§Ù„Ű±ŰȘۚ۩ Ű§Ù„Ű°ÙŠ ÙŠŰźŰȘلف Űčن Ű§Ù„Ù†ŰžŰ§Ù… Ű§Ù„Ű„ÙŰȘŰ±Ű§Ű¶ÙŠ.
ŰłÙŠŰȘم ۧ۳ŰȘŰźŰŻŰ§Ù… Ù‡Ű°Ű§ Ű§Ù„Ù†Ù…Ű· Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ§ŰȘ ÙˆÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ÙˆÙŠŰš.

۶Űč Ű§Ù„Ù†Ù…Ű· Ű§Ù„ŰźŰ§Ű” ŰšÙƒ في Ű§Ù„ŰŻÙ„ÙŠÙ„ 'style' في Ű§Ù„ŰŻÙ„ÙŠÙ„ Ű§Ù„ÙŰ±Űčي Ű§Ù„ŰźŰ§Ű” ŰšÙƒ.
ÙŠŰ­ŰŻŰŻ Ű§ŰłÙ… Ű§Ù„ŰŻÙ„ÙŠÙ„ Ű§Ù„ÙŰ±Űčي Ű§ŰłÙ… Ű§Ù„Ù†Ù…Ű·.

Ù„Ű°Ù„Ùƒ ÙÙ„Ű§ ÙŠÙ†ŰšŰșي Ű§Ù„Ù‚ÙŠŰ§Ù… ŰšŰȘŰčŰŻÙŠÙ„Ű§ŰȘ في Ű§Ù„ŰŁÙ†Ù…Ű§Ű· Ű§Ù„ŰȘي ŰȘۚۯۣ Űš \"TSN_\". يمكن ۧ۳ŰȘŰźŰŻŰ§Ù…Ù‡Ű§ ÙƒÙ†Ù…ÙˆŰ°ŰŹŰŒ Ù„Ű°Ù„Ùƒ يمكن Ù†ŰłŰź Ű§Ù„Ű·Ű±Ű§ŰČ ÙÙŠ Ù…ŰŹÙ„ŰŻ ÙŠŰŻÙŠŰ± ŰȘŰčŰŻÙŠÙ„Ű§ŰȘه.

يŰȘŰ·Ù„Űš Ű„Ù†ŰŽŰ§ŰĄ ملفي CSS Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© ÙˆŰ§Ù„ÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ©. يمكن ŰŁÙŠŰ¶Ù‹Ű§ ŰȘŰ¶Ù…ÙŠÙ† ŰŹŰ§ÙŰ§ ŰłÙƒŰ±ÙŠŰšŰȘ ŰźŰ§Ű”ŰŒ Ű§Ù„Ű°ÙŠ
يŰčŰŻ Ű°Ù„Ùƒ ۧ۟ŰȘÙŠŰ§Ű±ÙŠÙ‹Ű§.

ŰȘŰčŰ±ÙŠÙ ŰȘŰłÙ…ÙŠŰ© Ű§Ù„ŰŽÙƒÙ„ Ű§Ù„ŰźŰ§Ű±ŰŹÙŠ Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© ÙˆŰ§Ù„ÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ©:
 - ۫ۧۚŰȘ 'ST.css' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© (/stats/) 
- ۫ۧۚŰȘ 'WI.css' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ© Ű§Ù„ŰźŰ§Ű±ŰŹÙŠŰ© (/webinterface/)


ŰȘŰčŰ±ÙŠÙ ŰȘŰłÙ…ÙŠŰ© Ű§Ù„ŰŹŰ§ÙŰ§ ŰłÙƒŰ±ÙŠŰšŰȘ Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© ÙˆŰ§Ù„ÙˆŰ§ŰŹÙ‡Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ©:
- ۫ۧۚŰȘ 'ST.js' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„Ű„Ű­Ű”Ű§ŰŠÙŠŰ© (/stats/)
- ۫ۧۚŰȘ 'WI.js' Ù„Ù„Ű”ÙŰ­Ű© Ű§Ù„ŰŽŰšÙƒÙŠŰ© Ű§Ù„ŰźŰ§Ű±ŰŹÙŠŰ© (/webinterface/)


ۄ۰ۧ كنŰȘ ŰȘ۱ŰșŰš في Ù…ŰŽŰ§Ű±ÙƒŰ© Ű§Ù„Ű·Ű±Ű§ŰČ Ű§Ù„ŰźŰ§Ű” ŰšÙƒ مŰč Ű§Ù„ŰąŰźŰ±ÙŠÙ†ŰŒ يمكنك Ű„Ű±ŰłŰ§Ù„Ù‡ Ű„Ù„Ù‰ Ű§Ù„ŰčÙ†ÙˆŰ§Ù† Ű§Ù„Ű„Ù„ÙƒŰȘŰ±ÙˆÙ†ÙŠ Ű§Ù„ŰȘŰ§Ù„ÙŠ:

%s

ŰłÙ†Ű”ŰŻŰ±Ù‡Ű§ في Ű§Ù„Ű„Ű”ŰŻŰ§Ű± Ű§Ù„ŰȘŰ§Ù„ÙŠ!"; +$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['wisvres'] = 'You need to restart the Ranksystem before the changes will take effect! %s'; +$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['wits3pre'] = 'ŰšŰ±ÙŠÙÙŠÙƒŰł ŰŁÙ…Ű± Ű§Ù„ŰšÙˆŰȘ'; +$lang['wits3predesc'] = "Űčلى ŰźŰ§ŰŻÙ… TeamSpeak يمكنك Ű§Ù„ŰȘÙˆŰ§Ű”Ù„ مŰč ŰšÙˆŰȘ Ranksystem من ŰźÙ„Ű§Ù„ Ű§Ù„ŰŻŰ±ŰŻŰŽŰ©. ŰšŰŽÙƒÙ„ Ű§ÙŰȘŰ±Ű§Ű¶ÙŠŰŒ يŰȘم ÙˆŰ¶Űč ŰčÙ„Ű§Ù…Ű© '!' في ŰŁÙ…Ű§Ù… ŰŁÙˆŰ§Ù…Ű± Ű§Ù„ŰšÙˆŰȘ كŰčÙ„Ű§Ù…Ű© مŰčŰ±ÙŰ©. يŰȘم ۧ۳ŰȘŰźŰŻŰ§Ù… Ű§Ù„ŰšŰ±ÙŠÙÙŠÙƒŰł لŰȘŰčŰ±ÙŠÙ Ű§Ù„ŰŁÙˆŰ§Ù…Ű± Ű§Ù„ŰźŰ§Ű”Ű© ŰšŰ§Ù„ŰšÙˆŰȘ ÙƒÙ…Ű§ هو.

يمكن ۧ۳ŰȘŰšŰŻŰ§Ù„ Ù‡Ű°Ű§ Ű§Ù„ŰšŰ±ÙŠÙÙŠÙƒŰł ŰšŰŁÙŠ ŰšŰ±ÙŠÙÙŠÙƒŰł ۹۟۱ Ù…Ű±ŰșÙˆŰš فيه. Ù‚ŰŻ ŰȘكون Ù‡Ű°Ù‡ Ű§Ù„ŰźŰ·ÙˆŰ© Ű¶Ű±ÙˆŰ±ÙŠŰ© ۄ۰ۧ ÙƒŰ§Ù†ŰȘ Ù‡Ù†Ű§Ùƒ ŰšÙˆŰȘۧŰȘ ŰŁŰźŰ±Ù‰ ŰȘŰłŰȘŰźŰŻÙ… ŰŁÙˆŰ§Ù…Ű± Ù…Ù…Ű§Ű«Ù„Ű©.

Űčلى ŰłŰšÙŠÙ„ Ű§Ù„Ù…Ű«Ű§Ù„ŰŒ ŰłŰȘŰšŰŻÙˆ Ű§Ù„ŰŁÙ…Ű± Ű§Ù„Ű„ÙŰȘŰ±Ű§Ű¶ÙŠ Ù„Ù„ŰšÙˆŰȘ ÙƒÙ…Ű§ يلي:
!help


ۄ۰ۧ قمŰȘ ۚۧ۳ŰȘŰšŰŻŰ§Ù„ Ű§Ù„ŰšŰ±ÙŠÙÙŠÙƒŰł Űš '#'ی ÙŰłŰȘŰšŰŻÙˆ Ű§Ù„ŰŁÙ…Ű± ÙƒÙ…Ű§ يلي:
#help
"; +$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'; +$lang['wits3querpwdesc'] = 'TeamSpeak 3 query password
Password for the query user.'; +$lang['wits3querusr'] = 'TS3 Query-User'; +$lang['wits3querusrdesc'] = 'TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you 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['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'; +$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['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 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'] = '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.'; diff --git "a/languages/core_az_Az\311\231rbaycan_az.php" "b/languages/core_az_Az\311\231rbaycan_az.php" index 4e18c77..36391dc 100644 --- "a/languages/core_az_Az\311\231rbaycan_az.php" +++ "b/languages/core_az_Az\311\231rbaycan_az.php" @@ -1,708 +1,708 @@ - indi Ranks Sisteminə əlavə edildi"; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "API vasitəsilə Ranksystem Bot-unun baßlatılması/dayandırılmasına izin verin"; -$lang['apipermdesc'] = "(ON = İzin ver ; OFF = İzin vermə)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "yĂŒksələn"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$lang['changedbid'] = "İstifadəçilər (unikal MĂŒĆŸtəri-ID: %s) yeni TeamSpeak MĂŒĆŸtəri bazası ID (%s). Köhnə MĂŒĆŸtəri bazası ID'yi (%s) yeniləyin və toplanan zamanları yenidən qurun!"; -$lang['chkfileperm'] = "Yanlıß fayı/qovluq icazələri!
Adını dəyißdirmək və adlandırılmıß faylların/qovluqların icazələrinə ehtiyacınız var!br>
BĂŒtĂŒn faylların sahibi Rank sistemin yĂŒkləmə qovluğunun və qovluqları web serverinizin istifadəçisi olmalıdır (məsələn: www-data). Linux sistemlərində belə bir ßey (linux shell əmri) ola bilər:%s Linux serverlərinizdə bu kimi bir ßey (linux shell komandası) ola bilər:%sList fayllar / qovluqlar:%s"; -$lang['chkphpcmd'] = "Yanlıß PHP komandası %s fayl daxilində mĂŒÉ™yyən edildi! PHP burada tapılmadı!
Bu faylın içərisinə etibarlı PHP əmrini daxil edin!

Definition out of %s:
%s
Komandanızın nəticəsi:%sSiz seçimi əlavə konsol vasitəsilə əvvəl komanda nəzarət edə bilərsiniz '-v'.
Məsələn: %sSiz PHP versiyası qayıtmalısıız"; -$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ı."; -$lang['cleanno'] = "Silmək ĂŒĂ§ĂŒn bir ßey yoxdur..."; -$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['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!"; -$lang['errgrplist'] = "Servergrouplist əldə edərkən səhv: "; -$lang['errlogin'] = "İstifadəçi adı və/və ya parol yanlıßdır! Yenidən cəhd edin..."; -$lang['errlogin2'] = "GĂŒcĂŒn tətbiqi mĂŒdafiə: %s saniyə yenidən cəhd edin!"; -$lang['errlogin3'] = "GĂŒcĂŒn tətbiqi mĂŒdafiə: Çox səhvlər. 300 saniyə qadağan!"; -$lang['error'] = "Səhv "; -$lang['errorts3'] = "TS3 Səhv: "; -$lang['errperm'] = "Xahiß edirik '%s' qovluğunun yazma icazəsini yoxlayın!"; -$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ı"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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!
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 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 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
"; -$lang['isntwidbmsg'] = "Verilənlər bazası səhvi: "; -$lang['isntwidbname'] = "DB Adı:"; -$lang['isntwidbnamedesc'] = "Verilənlər bazasının adı"; -$lang['isntwidbpass'] = "DB ƞifrə:"; -$lang['isntwidbpassdesc'] = "Verilənlər bazasına daxil olmaq ĂŒĂ§ĂŒn ßifrə"; -$lang['isntwidbtype'] = "DB növĂŒ:"; -$lang['isntwidbtypedesc'] = "Verilənlər bazası Ranksystem istifadə etməlidir.

PHP ĂŒĂ§ĂŒn PDO sĂŒrĂŒcĂŒ yĂŒklĂŒ olmalıdır.
Daha çox məlumat və tələblərin faktiki siyahısı ĂŒĂ§ĂŒn quraßdırma səhifəsinə baxın:
%s"; -$lang['isntwidbusr'] = "DB İstifadəçi:"; -$lang['isntwidbusrdesc'] = "Verilənlər bazasına daxil olmaq ĂŒĂ§ĂŒn istifadəçi"; -$lang['isntwidel'] = "Xahiß edirik, web space'dan 'install.php' faylını silin."; -$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"; -$lang['listcldbid'] = "MĂŒĆŸtəri-verilənlər bazası-ID"; -$lang['listexcept'] = "Səlahiyyət verilmedi"; -$lang['listgrps'] = "ilk giriß"; -$lang['listnat'] = "country"; -$lang['listnick'] = "İstifadəçi adı"; -$lang['listnxsg'] = "növbəti səlahiyyət"; -$lang['listnxup'] = "növbəti dərəcə"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "Sıralama"; -$lang['listseen'] = "son giriß"; -$lang['listsuma'] = "cəmi aktiv vaxt"; -$lang['listsumi'] = "cəmi boß vaxt"; -$lang['listsumo'] = "cəmi onlayn vaxt"; -$lang['listuid'] = "unikal MĂŒĆŸtəri-ID"; -$lang['listver'] = "client version"; -$lang['login'] = "Giriß"; -$lang['module_disabled'] = "This module is deactivated."; -$lang['msg0001'] = "Rank sistemi versiyası ĂŒzərində ißləyir: %s"; -$lang['msg0002'] = "Botun etibarlı komandalarının siyahısı burada tapa bilərsiniz [URL]https://ts-ranksystem.com/#commands[/URL]"; -$lang['msg0003'] = "Bu komandaya haqqınız yoxdur!"; -$lang['msg0004'] = "MĂŒĆŸtəri %s (%s) ißin tamamlanmasını tələb edir."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "MĂŒĆŸtəri %s (%s) %s tələb edir."; -$lang['msg0008'] = "Yenilənmələrə nəzarət edir. Bir yeniləmə varsa, dərhal ißləyəcək."; -$lang['msg0009'] = "İstifadəçi verilənlər bazasının təmizlənməsi baßlamıßdır."; -$lang['msg0010'] = "!log komandası ilə daha ətraflı məlumat ala bilərsiniz."; -$lang['msg0011'] = "Təmizlənmiß qrup cache. Qrupları və ikonları yĂŒkləyin..."; -$lang['noentry'] = "Heç bir qeyd tapılmadı.."; -$lang['pass'] = "ƞifrə"; -$lang['pass2'] = "ƞifrə dəyiß"; -$lang['pass3'] = "köhnə ßifrə"; -$lang['pass4'] = "yeni ßifrə"; -$lang['pass5'] = "ƞifrənizi unutmusunuz?"; -$lang['permission'] = "İcazələr"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "təkrar"; -$lang['resettime'] = "Istifadəçi %s (unikal MĂŒĆŸtəri-ID: %s; Client-database-ID: %s) onlayn və boß vaxtını sıfırla bərpa et, bir istisna (server və ya mĂŒĆŸtəri istisnası) həyata çıxardı."; -$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."; -$lang['setontime'] = "vaxt əlavə edin"; -$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_pib'] = "PiB"; -$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'] = "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.."; -$lang['stag0007'] = "Xahiß edirik sonrakı dəyißiklikləri etmədən öncə, son dəyißikliklərin qĂŒvvəyə çatmasını gözləyin...."; -$lang['stag0008'] = "Səlahiyyət dəyißiklikləri uğurla saxlanılır. Ts3 serverində qĂŒvvəyə çatana qədər bir neçə saniyə çəkə bilər."; -$lang['stag0009'] = "Səlahiyyət verme limitini keçə bilmərsiniz. Limit: %s"; -$lang['stag0010'] = "Ən azı bir yeni səlahiyyət seçin."; -$lang['stag0011'] = "Səlahiyyət verilmə limiti: "; -$lang['stag0012'] = "tətbiq et"; -$lang['stag0013'] = "Əlavə ON/OFF"; -$lang['stag0014'] = "Əlavəni aktivləƟdirin və ya söndĂŒrĂŒn.

Əlavə söndĂŒrĂŒldĂŒkdə, statistika səhifəsində bir bölmə gizli olacaq."; -$lang['stag0015'] = "TeamSpeak serverində tapıla bilmədiniz. Xahiß edirik, burada özĂŒnĂŒzĂŒ doğrulamaq ĂŒĂ§ĂŒn %sburaya basın%s."; -$lang['stag0016'] = "Onaysız!"; -$lang['stag0017'] = "Onaylama"; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Server statistika"; -$lang['stix0002'] = "Ümumi istifadəçi"; -$lang['stix0003'] = "Ətraflı məlumat"; -$lang['stix0004'] = "BĂŒtĂŒn istifadəçinin onlayn saatı/Ümumi"; -$lang['stix0005'] = "BĂŒtĂŒn zamanların sırasına baxın"; -$lang['stix0006'] = "Ayın sıralamasına baxın"; -$lang['stix0007'] = "Həftənin sıralamasına baxın"; -$lang['stix0008'] = "Server istifadə"; -$lang['stix0009'] = "Son 7 gĂŒndə"; -$lang['stix0010'] = "Son 30 gĂŒndə"; -$lang['stix0011'] = "Son 24 saat"; -$lang['stix0012'] = "Dövr seç"; -$lang['stix0013'] = "Son gĂŒn"; -$lang['stix0014'] = "Son həftə"; -$lang['stix0015'] = "Son ay"; -$lang['stix0016'] = "Aktiv/qeyri-aktiv vaxt (bĂŒtĂŒn istifadəçilərin)"; -$lang['stix0017'] = "Versiyalar (bĂŒtĂŒn istifadəçilərin)"; -$lang['stix0018'] = "Millətlər (bĂŒtĂŒn istifadəçilərin)"; -$lang['stix0019'] = "Platformlar (bĂŒtĂŒn istifadəçilərin)"; -$lang['stix0020'] = "Cari statistikalar"; -$lang['stix0023'] = "Server statusu"; -$lang['stix0024'] = "Onlayn"; -$lang['stix0025'] = "Oflayn"; -$lang['stix0026'] = "MĂŒĆŸtərilər (Online / Max)"; -$lang['stix0027'] = "Kanalların miqdarı"; -$lang['stix0028'] = "Orta server ping"; -$lang['stix0029'] = "Alınan ĂŒmumi baytlar"; -$lang['stix0030'] = "Göndərilən ĂŒmumi baytlar"; -$lang['stix0031'] = "Server uptime"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 GĂŒn, 00 Saat, 00 Dəqiqə, 00 Saniyə"; -$lang['stix0034'] = "Orta paket zərər"; -$lang['stix0035'] = "Ümumi statistika"; -$lang['stix0036'] = "Server adı"; -$lang['stix0037'] = "Server ĂŒnvanı (Host ĂŒnvanı: Port)"; -$lang['stix0038'] = "Server parol"; -$lang['stix0039'] = "Xeyr (Server açıqdır)"; -$lang['stix0040'] = "Bəli (Server xĂŒsusi)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platforması"; -$lang['stix0043'] = "Server versiyası"; -$lang['stix0044'] = "Server yaradılma tarixi (gĂŒn/ay/il)"; -$lang['stix0045'] = "Server siyahısına hesabat verin"; -$lang['stix0046'] = "AktivləƟdirildi"; -$lang['stix0047'] = "AktivləƟdirilmədi"; -$lang['stix0048'] = "hələ kifayət qədər məlumat yoxdur ..."; -$lang['stix0049'] = "BĂŒtĂŒn istifadəçi / ayın onlayn saatı"; -$lang['stix0050'] = "BĂŒtĂŒn istifadəçi / həftənin onlayn saatı"; -$lang['stix0051'] = "TeamSpeak uğursuz oldu, belə ki, heç bir yaradılması tarixi yoxdur"; -$lang['stix0052'] = "digərləri"; -$lang['stix0053'] = "Aktiv vaxt (GĂŒndĂŒz)"; -$lang['stix0054'] = "Aktiv olmayan vaxt (GĂŒndĂŒz)"; -$lang['stix0055'] = "Son 24 saat online"; -$lang['stix0056'] = "onlayn son gĂŒn %s"; -$lang['stix0059'] = "İstifadəçi siyahısı"; -$lang['stix0060'] = "İstifadəçi"; -$lang['stix0061'] = "BĂŒtĂŒn versiyaları bax"; -$lang['stix0062'] = "BĂŒtĂŒn millətlərə bax"; -$lang['stix0063'] = "BĂŒtĂŒn platformlara baxın"; -$lang['stix0064'] = "Son 3 ay"; -$lang['stmy0001'] = "Mənim statistikalarım"; -$lang['stmy0002'] = "Dərəcə"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "Serverə olan ĂŒmumi bağlantılar:"; -$lang['stmy0006'] = "Statistika ĂŒĂ§ĂŒn baßlanğıc tarixi:"; -$lang['stmy0007'] = "Ümumi onlayn vaxt:"; -$lang['stmy0008'] = "Onlayn vaxt son gĂŒn %s gĂŒn:"; -$lang['stmy0009'] = "Aktiv vaxt gĂŒnləri davam edir:"; -$lang['stmy0010'] = "Nailiyyətlər tamamlandı:"; -$lang['stmy0011'] = "Zaman nailiyyəti "; -$lang['stmy0012'] = "Vaxt: Əfsənavi"; -$lang['stmy0013'] = "Ă‡ĂŒnki %s saatlik onlayn vaxtınız var."; -$lang['stmy0014'] = "Progress completed"; -$lang['stmy0015'] = "Vaxt: Qızıl"; -$lang['stmy0016'] = "% Əfsanəvi ĂŒĂ§ĂŒn tamamlandı"; -$lang['stmy0017'] = "Vaxt: GĂŒmĂŒĆŸ"; -$lang['stmy0018'] = "% Qızıl ĂŒĂ§ĂŒn tamamlandı"; -$lang['stmy0019'] = "Vaxt: BĂŒrĂŒnc"; -$lang['stmy0020'] = "% GĂŒmĂŒĆŸ ĂŒĂ§ĂŒn tamamlandı"; -$lang['stmy0021'] = "Vaxt: Açıqlanmamıßdır"; -$lang['stmy0022'] = "% BĂŒrĂŒnc ĂŒĂ§ĂŒn tamamlandı"; -$lang['stmy0023'] = "Bağlantıya nailiyyət tərzi"; -$lang['stmy0024'] = "Bağlantı: Əfsanəvi"; -$lang['stmy0025'] = "Ă‡ĂŒnki %s saatlik onlayn vaxtınız var."; -$lang['stmy0026'] = "Bağlantı: Qızıl"; -$lang['stmy0027'] = "Bağlantı: GĂŒmĂŒĆŸ"; -$lang['stmy0028'] = "Bağlantı: BĂŒrĂŒnc"; -$lang['stmy0029'] = "Bağlantı: Açıqlanmamıßdır"; -$lang['stmy0030'] = "Növbəti Səlahiyyət"; -$lang['stmy0031'] = "Cəmi aktiv vaxt"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Millətlər"; -$lang['stna0002'] = "statistika"; -$lang['stna0003'] = "Kod"; -$lang['stna0004'] = "Say"; -$lang['stna0005'] = "Versiyalar"; -$lang['stna0006'] = "Platforma"; -$lang['stna0007'] = "Faiz"; -$lang['stnv0001'] = "Bildiriß"; -$lang['stnv0002'] = "Bağla"; -$lang['stnv0003'] = "İstifadəçi məlumatlarını yeniləyin"; -$lang['stnv0004'] = "TS3 istifadəçi adınızı dəyißdirildikdə, bu yeniliyi istifadə edin"; -$lang['stnv0005'] = "Bu, yalnız TS3 serverinə eyni anda bağlı olduğunuzda ißləyir"; -$lang['stnv0006'] = "Yenilə"; -$lang['stnv0016'] = "Mövcud deyil"; -$lang['stnv0017'] = "TS3 Serverinə bağlı deyilsiniz, buna görə sizin ĂŒĂ§ĂŒn hər hansı bir məlumatı göstərə bilmərik."; -$lang['stnv0018'] = "TS3 serverinə qoßulun və sonra yuxarı sağ kĂŒncdə mavi yeniləmə dĂŒyməsini basaraq sessiyanı təkmilləƟdirin."; -$lang['stnv0019'] = "Statistika - Səhifə məzmunu"; -$lang['stnv0020'] = "Bu səhifəni serverdə sizin Ɵəxsi statistika və fəaliyyətinizin ĂŒmumi xĂŒlasəsi yer alıb."; -$lang['stnv0021'] = "Məlumat Ranksystem-in baßlanğıcından bəri yığılır, TeaSpeak serverinin baßlanğıcından bəri deyil."; -$lang['stnv0022'] = "Bu səhifə dəyərlərini database-dən alır. Belə ki, dəyərlər bir az gecikdirilə bilər."; -$lang['stnv0023'] = "Həftədə və ayda bĂŒtĂŒn istifadəçilər ĂŒĂ§ĂŒn onlayn vaxt miqdarı yalnız 15 dəqiqə hesablanır. BĂŒtĂŒn digər dəyərlər demək olar ki, canlı olmalıdır (maksimum bir neçə saniyə gecikmə)."; -$lang['stnv0024'] = "RankSystem - Statistika"; -$lang['stnv0025'] = "Girißləri məhdudlaßdırın"; -$lang['stnv0026'] = "hamısı"; -$lang['stnv0027'] = "Bu saytda məlumatlar köhnəlmiß ola bilər! RankSistem TeamSpeak ilə bağlantı qurulmayıb."; -$lang['stnv0028'] = "(Siz TS3 bağlı deyilsiz!)"; -$lang['stnv0029'] = "İstifadəçi sıralaması"; -$lang['stnv0030'] = "Ranksystem məlumatlar"; -$lang['stnv0031'] = "Axtarıß sahəsində siz istifadəçi adı, Client-ID və Database-ID axtarıß edə bilərsiniz."; -$lang['stnv0032'] = "GörĂŒnĂŒĆŸ filtr seçimlərini də istifadə edə bilərsiniz . Filtreyi axtarıß sahəsində da daxil edin."; -$lang['stnv0033'] = "Filtr və axtarıß modelinin kombinasiyası mĂŒmkĂŒndĂŒr. Filtrenizi axtarıß modelinizin heç bir əlamət olmadan izlənməsini daxil edin."; -$lang['stnv0034'] = "Bir çox filtreyi birləƟdirmək mĂŒmkĂŒndĂŒr. Ardıcıl olaraq axtarıß sahəsində daxil edin."; -$lang['stnv0035'] = "Məsələn:
filter: istisna olmaqla: TeamSpeak İstifadəçi"; -$lang['stnv0036'] = "İstisnasız olan istifadəçiləri göstər (istifadəçi, səlahiyyət və ya kanal istisna)."; -$lang['stnv0037'] = "İstisnasız olan istifadəçiləri göstərin."; -$lang['stnv0038'] = "Yalnız onlayn olan istifadəçiləri göstərin."; -$lang['stnv0039'] = "Yalnız onlayn olmayan istifadəçiləri göstərin."; -$lang['stnv0040'] = "Yalnız mĂŒÉ™yyən qrupda olan istifadəçiləri göstərin. Mövcud dərəcəni/səviyyəni təmsil edin. GROUPID dəyißdirin servergroup ID'si ilə dəyißdirin."; -$lang['stnv0041'] = "Yalnız gĂŒn ərzində seçilən istifadəçiləri göstərin.
OPERATOR ilə dəyiƟdirin with '<' or '>' or '=' or '!='.
Vaxt formatıyla bir tarixi əvəz edin 'İ-a-g s-q' (məsələn: 2016-06-18 20-25).
Tam nĂŒmune: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Yalnız mĂŒÉ™yyən ölkədən olan istifadəçiləri göstərin.
TS3-COUNTRY-CODE-lərini arzu olunan ölkə ilə əvəz edin."; -$lang['stnv0043'] = "TS3 bağlan"; -$lang['stri0001'] = "Ranksystem məlumatları"; -$lang['stri0002'] = "Sponsorlar"; -$lang['stri0003'] = "Online vaxt və ya onlayn fəaliyyət ĂŒĂ§ĂŒn avtomatik olaraq TeamSpeak 3 Server-da istifadəçilərə (servergroups) qrant verən TS3 bot. Bundan əlavə, istifadəçi haqqında məlumat və statistika toplayır və nəticəni bu saytda nĂŒmayiß etdirir."; -$lang['stri0004'] = "Ranksystem'ı kim yaratdı?"; -$lang['stri0005'] = "Ranksystem nə zaman yaradılıb?"; -$lang['stri0006'] = "İlk alfa versiyası: 05/10/2014."; -$lang['stri0007'] = "İlk beta versiyası: 01/02/2015."; -$lang['stri0008'] = "You can see the latest version on the Ranksystem Website."; -$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'] = "%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'] = "%s çek dili ĂŒĂ§ĂŒn tərcĂŒmə"; -$lang['stri0025'] = "%s polßa dili ĂŒĂ§ĂŒn tərcĂŒmə"; -$lang['stri0026'] = "%s ispanca dili ĂŒĂ§ĂŒn tərcĂŒmə"; -$lang['stri0027'] = "%s macar dili ĂŒĂ§ĂŒn tərcĂŒmə"; -$lang['stri0028'] = "%s azərbaycan dili ĂŒĂ§ĂŒn tərcĂŒmə"; -$lang['stri0029'] = "%s imza funksiyası ĂŒĂ§ĂŒn"; -$lang['stri0030'] = "%s 'CosmicBlue' stil statistika səhifəsi və veb-interfeysi ĂŒĂ§ĂŒn"; -$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 "; -$lang['sttw0004'] = "Top 10 sıralama"; -$lang['sttw0005'] = "saat (100% olur)"; -$lang['sttw0006'] = "%s saat (%s%)"; -$lang['sttw0007'] = "Top 10 Statistika"; -$lang['sttw0008'] = "Top 10 vs digərləri onlayn vaxt"; -$lang['sttw0009'] = "Top 10 vs digərləri aktiv vaxt"; -$lang['sttw0010'] = "Top 10 vs digərləri aktiv olmayan vaxt"; -$lang['sttw0011'] = "Top 10 (saat)"; -$lang['sttw0012'] = "Digər %s istifadəçi (saat)"; -$lang['sttw0013'] = "%s %s aktiv vaxt "; -$lang['sttw0014'] = "saat"; -$lang['sttw0015'] = "dəqiqə"; -$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."; -$lang['stve0004'] = "Girilən kod yanlıßdır! Xahiß edirik yenidən cəhd edin."; -$lang['stve0005'] = "Təbrik edirik, uğurla təsdiqlənidiniz! İndi dəvam edə bilərsiniz."; -$lang['stve0006'] = "An unknown error happened. Please try it again. On repeated times contact an admin"; -$lang['stve0007'] = "TS3 server onaylama"; -$lang['stve0008'] = "ÖzĂŒnĂŒzĂŒ yoxlamaq ĂŒĂ§ĂŒn TS3 serverinizdə ClientID-i seçin."; -$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['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"; -$lang['upgrp0003'] = "Server İkonunu yazarkən xəta baß verdi."; -$lang['upgrp0004'] = "TS3 Server istisna olmaqla, TS3 server ikonu yĂŒklənməsi zamanı səhv baß verdi: "; -$lang['upgrp0005'] = "Server ikonuu silərkən xəta baß verdi."; -$lang['upgrp0006'] = "Server ikonunun TS3 serverindən çıxarıldığını qeyd etdi, indi də sıralama sistemindən silindi."; -$lang['upgrp0007'] = "%s ID ilə %s qrupundan Server qrupu ikonunu qeyd edərkən səhv baß verdi."; -$lang['upgrp0008'] = "%s ID ilə %s qrupundan Server qrupu ikonunu yĂŒkləyərkən səhv baß verdi: "; -$lang['upgrp0009'] = "%s ID ilə %s qrupundan Server qrupu ikonunu silərkən səhv baß verdi."; -$lang['upgrp0010'] = "%s ID ilə %s ilə server qruplarının fərqləndirilmiß simvolu TS3 serverdən silindi, indi də Rank Sistemindən silindi."; -$lang['upgrp0011'] = "%s ID ilə %s qrup ĂŒĂ§ĂŒn yeni Server qroup İkonu yĂŒkləyin"; -$lang['upinf'] = "Ranksystem-in yeni versiyası mövcuddur; MĂŒĆŸtərilərə serverdə məlumat ver..."; -$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes."; -$lang['upmsg'] = "\nHey, [B]Rank Sisteminin[/B] yeni versiyası mövcuddur!\n\ncari versiya: %s\n[B]yeni versiya: %s[/B]\n\nDaha ətraflı məlumat ĂŒĂ§ĂŒn saytımıza baxın [URL]%s[/URL].\n\nArxa planda yeniləmə prosesini baßladır. [B]Ranksystem.log saytını yoxlayın![/B]"; -$lang['upmsg2'] = "\nHey, [B]Rank Sistemi[/B] yeniləndə.\n\n[B]yeni versiya: %s[/B]\n\nDaha ətraflı məlumat ĂŒĂ§ĂŒn saytımıza baxın [URL]%s[/URL]."; -$lang['upusrerr'] = "Unikal MĂŒĆŸtərilər ĂŒĂ§ĂŒn ID %s TeamSpeak-da əldə edilə bilməz!"; -$lang['upusrinf'] = "İstifadəçi %s uğurla məlumatlandırıldı."; -$lang['user'] = "İstifadəçi adı"; -$lang['verify0001'] = "Xahiß edirik əmin olun ki, TS3 serverinə qoßulmusunuz!"; -$lang['verify0002'] = "Xahiß edirik onay otağına bağlanın: %sbura basın%s!"; -$lang['verify0003'] = "Əgər həqiqətən TS3 serverinə qoßulmusunuzsa, orada bir administratorla əlaqə saxlayın.
Bunun ĂŒĂ§ĂŒn TeamSpeak serverində bir doğrulama otağı yaratmaq lazımdır. Bundan sonra yaradılan kanal yalnız Rəhbərlərə aid edilə bilən Ranksystem ĂŒĂ§ĂŒn mĂŒÉ™yyən edilməlidir.
Daha ətraflı məlumat administrator daxili veb interfeysi tapa bilərsiniz

Bu fəaliyyət olmadan Rank Sisteminində doğrulamaq mĂŒmkĂŒn deyil. Bağıßlayın :("; -$lang['verify0004'] = "Doğrulma kanalının içərisində heç bir istifadəçi tapılmadı..."; -$lang['wi'] = "Veb-interfeys"; -$lang['wiaction'] = "hərəkət"; -$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['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['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!"; -$lang['wibot4'] = "Rank Sistem botunu Baßlat / Dayandır"; -$lang['wibot5'] = "Botu Baßlat"; -$lang['wibot6'] = "Botu Dayandır"; -$lang['wibot7'] = "Botu Yenidən Baßlat"; -$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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$lang['widelcldgrpdesc'] = "Sıralama sistemi server qrupunun məlumatlarını xatırlayır, buna görə də hər bir iƟçinin baßlanğıcında onu vermək/yoxlamaq lazım deyil.PHP yenidən.

Bu funksiya ilə verilmiß server qrup məlumatlarını bir dəfə aradan qaldıra bilərsiniz. Əslində, Ranksystem cari rĂŒtbənin server qrupu olan bĂŒtĂŒn mĂŒĆŸtərilərə (TS3 serverdə onlayn olan) verməyə çalıßır.
Qrupu alan və ya qrupda qalmağı təmin edən hər bir mĂŒĆŸtəri ĂŒĂ§ĂŒn, Ranksystem bunu əvvəlində təsvir etdiyini xatırladır.

Bu funksiya, istifadəçilər onlayn vaxt ĂŒĂ§ĂŒn nəzərdə tutulan server qrupunda olmadıqda faydalı ola bilər.

Diqqət: Bir an əvvəl bu ißləyin, burada növbəti bir neçə dəqiqə heç bir rĂŒtbə qalmayacaq!!! Sıralama sistemi köhnə qrupu silə bilməz, Ă§ĂŒnki artıq onları bilmir ;-)"; -$lang['widelsg'] = "Server qruplarından silin"; -$lang['widelsgdesc'] = "Ranksystem verilənlər bazasından mĂŒĆŸtərilərini silmək ĂŒĂ§ĂŒn mĂŒĆŸtərilərin son bilinən server qrupundan çıxarılmasını seçməlisiniz.

Yalnızca Ranksystem ilə əlaqəli server qrup hesab olunur."; -$lang['wiexcept'] = "Exceptions"; -$lang['wiexcid'] = "kanal istisnası"; -$lang['wiexciddesc'] = "Ranksystem-də ißtirak etməyən kanal identifikatorlarının vergĂŒllə ayrılmıß siyahısı.

Listelenen kanallardan birində istifadəçilər qaldıqda, vaxt tamamilə məhəl qoyulacaq. Onlayn vaxt yoxdur, amma aktiv vaxtlar sayılır

Bu funksiya yalnız 'onlayn vaxt' rejimi ilə məntiq yaradır, beləliklə burada məsələn, AFK kanalları göz ardı edilə bilər.
'Aktiv vaxt' rejimi ilə bu funksiya faydasızdır, Ă§ĂŒnki AFK otaqlarında boß vaxt çıxılacaq və buna görə də hesablanmır.

Əgər istifadəçi xaric edilmiß kanalda yerləƟirsə, bu mĂŒddət ərzində o, 'rĂŒtbələr sistemindən xaric' kimi qiymətləndiriləcək. Bu istifadəçilər artıq 'stats/list_rankup.php'siyahısında göstərilməyəcək.php ' əgər xaric mĂŒĆŸtərilər orada göstərilməməlidir (statistika səhifəsi - mĂŒĆŸtəri istisna olmaqla)."; -$lang['wiexgrp'] = "Server qrup istinası"; -$lang['wiexgrpdesc'] = "Ranksystem-də server qrupların vergĂŒllə ayrılmıß siyahısı.
Bu server qrup ID'lərindən ən az birində istifadəçi dərəcə ĂŒĂ§ĂŒn göz ardı edilir."; -$lang['wiexres'] = "istisna qaydası"; -$lang['wiexres1'] = "sayma vaxtı (standart)"; -$lang['wiexres2'] = "fasilə vaxtı"; -$lang['wiexres3'] = "sıfırlama vaxtı"; -$lang['wiexresdesc'] = "İstisna etmək ĂŒĂ§ĂŒn ĂŒĂ§ rejim var. Hər bir halda dərəcə söndĂŒrĂŒlĂŒr(server qrup təyin edilmir). Bir istifadəçinin (istisna olmaqla) xərclənmiß vaxtının necə ißlədiləcəyini mĂŒxtəlif variantlardan seçə bilərsiniz.

1) sayma vaxtı (standart): Ranksystem, standart olaraq, istisna olan (mĂŒĆŸtəri/server qrup istisna ilə) istifadəçilərin onlayn/aktiv vaxtını da sayır. Bir istisna ilə yalnız sıralama dayandırılır. Yəni bir istifadəçi istisna edilməmißsə, topladığı vaxtdan asılı olaraq (məs. 3-cĂŒ səviyyə).

2) fasilə vaxtı: Bu seçimdə sərf edilən onlayn və boß vaxt sərf olunan dəyəri (istifadəçi istisna olmaqla) dondurulacaq. İstisna səbəbi aradan qaldırıldıqdan sonra (gözlənilən server qrup çıxarıldıqdan və ya istisna qaydasını çıxardıqdan sonra) onlayn/aktiv vaxtın 'counting' davam edir.

3) sıfırlama vaxtı: Bu funksiya sayəsində, sayta daxil olan onlayn və boß vaxt istifadəçi artıq istisna olmaqla (istisna olmaqla server qrupu kənarlaßdırmaq və ya istisna qaydasını çıxarmaq) sıfırlanacaqdır. Xərclənən vaxtı istisna hala yenidən qurulana qədər hesablanır.


Kanal istisnası heç bir halda əhəmiyyətli deyil, vaxt həmiƟə nəzərə alınmayacaq (rejimi pozma vaxtı kimi)."; -$lang['wiexuid'] = "mĂŒĆŸtəri istisnası"; -$lang['wiexuiddesc'] = "VirgĂŒlle ayrılmıß unikal MĂŒĆŸtəri ID siyahısı, Ranksystem ĂŒĂ§ĂŒn nəzərdə tutulmamalıdır.
Bu siyahıda istifadəçi dərəcə ĂŒĂ§ĂŒn göz ardı edilir."; -$lang['wiexregrp'] = "qrupu sil"; -$lang['wiexregrpdesc'] = "İstifadəçi Ranksystem tərk edildiyi halda, Ranksystem tərəfindən təyin edilmiß server qrupu silinir.

Qrup yalnız '".$lang['wiexres']."' ilə '".$lang['wiexres1']."' ilə silinir. Digər rejimlərdə server qrupu silinməyəcək.

Bu funksiya yalnız '".$lang['wiexuid']."' və ya '".$lang['wiexgrp']."' ilə '".$lang['wiexres1']."' ilə birlikdə istifadə edilən zaman mĂŒhĂŒmdĂŒr."; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "sıralama tərifi"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$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  => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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!"; -$lang['wihladm1'] = "Vaxt əlavə et"; -$lang['wihladm2'] = "Vaxt sil"; -$lang['wihladm3'] = "Ranksystem'i sıfırlayın"; -$lang['wihladm31'] = "bĂŒtĂŒn istifadəçi statistikalarını sıfırlayın"; -$lang['wihladm311'] = "sıfır vaxt"; -$lang['wihladm312'] = "istifadəçi silin"; -$lang['wihladm31desc'] = "BĂŒtĂŒn istifadəçilərin statistikasını yenidən qurmaq ĂŒĂ§ĂŒn iki seçimdən birini seçin.

sıfır vaxt: BĂŒtĂŒn istifadəçilərin vaxtını (onlayn vaxt və boß vaxt) 0-a bərpa edir.

istifadəçi sil: Bu seçim ilə bĂŒtĂŒn istifadəçilər Ranksystem verilənlər bazasından silinəcəklər. TeamSpeak verilənlər bazasına toxunulmayacaq!


Hər iki seçim də aßağıdakıları təsir göstərir..

.. sıfır vaxtda:
Server statistikasının xĂŒlasəsini sıfırlayın (table: stats_server)
Statistika Sıfırla (table: stats_user)
Siyahı sıfırlaması/istifadəçi statistikası (table: user)
Top user / istifadəçi statistik anlar təmizləyir (table: user_snapshot)

.. istifadəçilər silindikdə:
Millətləri təmizləyir (table: stats_nations)
Platformları təmizləyir (table: stats_platforms)
Versiyaları təmizləyir (table: stats_versions)
Server statistikasının xĂŒlasəsini sıfırlayır (table: stats_server)
Mənim statistikamı təmizləyir (table: stats_user)
Sıralamanı təmizləyir / istifadəçi statistikası (table: user)
İstifadəçi ip-hash dəyərlərini təmizləyir (table: user_iphash)
Top user / istifadəçi statistik anlar təmizləyir (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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "administrator funksiyası haqqında tələb olunur."; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Jurnal yolları"; -$lang['wilogdesc'] = "Sıralama sistemi log fayl yolu.

Məsələn:
/var/logs/Ranksystem/

Əmin olun ki, Webuser (= veb sahəsi istifadəçisi) gĂŒnlĂŒk faylına yazma icazəsi var."; -$lang['wilogout'] = "Çıxıß"; -$lang['wimsgmsg'] = "Mesajlar"; -$lang['wimsgmsgdesc'] = "Bir ĂŒst səviyyə yĂŒksəltdiğinde bir istifadəçiyə göndəriləcək bir mesajı təyin edin.

Bu mesaj TS3 xĂŒsusi mesajı vasitəsilə göndəriləcək. Hər bir bb-kod istifadə oluna bilər, bu da normal bir xĂŒsusi mesaj ĂŒĂ§ĂŒn ißləyir.
%s

Bundan əlavə, daha əvvəl keçirilmiƟ vaxt arqumentlərlə ifadə edilə bilər:
%1\$s - gĂŒn
%2\$s - saat
%3\$s - dəqiqə
%4\$s - saniyə
%5\$s - əldə edilən server qrup adı
%6$s - istifadəçinin adı (alıcı)

Məsələn:
Salam,\siz artıq  %1\$s gĂŒn, %2\$s saat və %3\$s dəqiqə saniyə serverə bağlı olduğunuzdan mĂŒÉ™yyən bir dərəcəyə çatdınız.[B]Təbriklər![/B] ;-)
"; -$lang['wimsgsn'] = "Server-Xəbərlər"; -$lang['wimsgsndesc'] = "Server xəbərləri olaraq /stats/ səhifəsində göstəriləcək bir mesajı mĂŒÉ™yyənləƟdirin.

Layihəni dəyißdirmək ĂŒĂ§ĂŒn standart html funksiyalarından istifadə edə bilərsiniz

Məsələn:
<b> - qalın ĂŒĂ§ĂŒn
<u> - vurğulamaq ĂŒĂ§ĂŒn
<i> - italik ĂŒĂ§ĂŒn
<br> - word-wrap ĂŒĂ§ĂŒn (yeni xətt)"; -$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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "Verilənlər bazası"; -$lang['winav3'] = "Əsas Parametr"; -$lang['winav4'] = "Baßqa"; -$lang['winav5'] = "Mesaj"; -$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['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['winxmsg2'] = "Mesaj (ən yĂŒksək)"; -$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. 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"; -$lang['wirtpw5'] = "Administratora yeni bir ßifrə ilə TeamSpeak3 xĂŒsusi mətn mesajı göndərildi. Giriß ĂŒĂ§ĂŒn %s klikləyin %s."; -$lang['wirtpw6'] = "Veb interfeys ßifrəsi uğurla sıfırlandıt. Request from IP %s."; -$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['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "aktiv vaxt"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$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['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['wishcolot'] = "onlayn vaxt"; -$lang['wishdef'] = "standart sĂŒtun sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Siyahı sıralaması səhifəsi ĂŒĂ§ĂŒn standart sıralama sĂŒtunu təyin edin."; -$lang['wishexcld'] = "istisna mĂŒĆŸtəri"; -$lang['wishexclddesc'] = "MĂŒĆŸtərilərə göstər list_rankup.php,
onlar istisna olunur və buna görə də RankSystem'də ißtirak etmirlər."; -$lang['wishexgrp'] = "istisna qruplar"; -$lang['wishexgrpdesc'] = "MĂŒĆŸtərilərə göstər list_rankup.php, siyahıda olanlar 'client exception' və shouldn't Ranksystem ĂŒĂ§ĂŒn nəzərə alınmalıdır."; -$lang['wishhicld'] = "Ən yĂŒksək səviyyəli mĂŒĆŸtərilər"; -$lang['wishhiclddesc'] = "MĂŒĆŸtərilərə göstər list_rankup.php, Ranksystem-da ən yĂŒksək səviyyəyə çatdı."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "özəl ĂŒslub"; -$lang['wistyledesc'] = "Ranksistem ĂŒĂ§ĂŒn fərqli, istifadəçi təyinatı olan (Style) ĂŒslub təyin edin.
Bu ĂŒslub statistika səhifəsi və veb-interfeys ĂŒĂ§ĂŒn istifadə olunur.

Öz ĂŒslubunuzu 'style' adlı qovluğun alt qovluğunda yerləƟdirin.
Alt qovluğun adı ĂŒslubun adını təyin edir.

'TSN_' ilə baßlayan ĂŒslublar Ranksistem tərəfindən təqdim edilir. Bu gələcək yeniləmələr ilə yenilənir.
Bu ĂŒslubların ĂŒzərində dĂŒzəlißlər etməməli!
Lakin bu ĂŒslublar nĂŒmunə kimi istifadə edilə bilər. Öz ĂŒslubunuzu bir alt qovlu qda saxlayın. Alt qovluğun adı ĂŒslubun adını təyin edir.

'TSN_' ilə baßlayan ĂŒslublar Rank Sistemi tərəfindən təqdim edilir. Bu, gələcək yeniləmələrlə yenilənəcəkdir.
Bu ĂŒslublara dĂŒzəlißlər etməməli!
Lakin, bu ĂŒslublar nĂŒmunə olarak istifadə oluna bilər. Üslubu bir qovluqda kopyalayın və dĂŒzəlißlər edin.

Statistika səhifəsi və Web İnterfeysi ĂŒĂ§ĂŒn iki CSS faylı tələb olunur.
Ayrıca, öz JavaScript faylı da əlavə edilə bilər. Lakin, bu opsionaldır.

CSS ad konvensiya:
- Statistika səhifəsi ĂŒĂ§ĂŒn 'ST.css'- Webinterface səhifəsi ĂŒĂ§ĂŒn 'WI.css'


JavaScript ĂŒnvanlandırma qaydaları:
- Statistika səhifəsi ĂŒĂ§ĂŒn 'ST.js'- Webinterface səhifəsi ĂŒĂ§ĂŒn 'WI.js'


Üslubunuzu digər insanlarla da bölĂŒĆŸmək istəsəniz, onları aßağıdakı e-poçt ĂŒnvanına göndərə bilərsiniz:

%s

Onları son versiyanın vəzifəsindən keçirəcəyik!"; -$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['wisvres'] = "Dəyißikliklər qĂŒvvəyə çatmadan əvvəl Ranksystem-i yenidən baßladın! %s"; -$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['wits3pre'] = "Bot əmrindən önad"; -$lang['wits3predesc'] = "TeamSpeak serverində chat vasitəsi ilə Ranksystem botu ilə əlaqə qurmaq olar. Susmaya görə, bot əmrləri '!' ißarəsi ilə qeyd edilir. Önad bot əmrlərinin böyĂŒk harf Ɵəklində tanınması ĂŒĂ§ĂŒn istifadə olunur.

Bu önad baßqa istənilən önad ilə əvəz edilə bilər. Bu, eyni əmrlər olan digər botların istifadə olunduğu halda tələb edilə bilər.

Misal ĂŒĂ§ĂŒn, susmaya görə bot əmrini aßağıdakı kimi görĂŒrsĂŒz:
!help


Əgər önad '#' ilə əvəz edilirsə, əmr aßağıdakı kimi görĂŒnĂŒr:
#help
"; -$lang['wits3qnm'] = "Bot adı"; -$lang['wits3qnmdesc'] = "Adı, bununla birlikdə sorğu-əlaqə qurulacaq.
You can name it free."; -$lang['wits3querpw'] = "TS3 Query-ƞifrə"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query Ɵifrə
Sorgu istifadəçisinin parolası."; -$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['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ĂŒ"; -$lang['witszdesc'] = "GĂŒnlĂŒk faylının döndĂŒyĂŒ gĂŒndĂŒz faylını qurduqda, aßdıqda.

Mebibyte'də dəyərinizi təyin edin.

Qiyməti artırdığınız zaman, əmin olun ki, bu bölmədə kifayət qədər yer var. Çox böyĂŒk logfiles mĂŒkəmməl məsələlər gətirə bilər!

Bu dəyəri dəyißdikdə, logfile ölĂ§ĂŒsĂŒ botun yenidən baßlaması ilə yoxlanacaq. Belirtilən dəyərdən daha böyĂŒk olan fayllar, gĂŒndəmi dərhal qaytarılacaq."; -$lang['wiupch'] = "Kanal Yeniləmə"; -$lang['wiupch0'] = "sabit"; -$lang['wiupch1'] = "beta"; -$lang['wiupchdesc'] = "Yeni bir yeniləmə mövcud olduqda sıralama sistemi avtomatik olaraq yenilənəcəkdir. Siz qoßulmaq istədiyiniz yeniləmə kanalını burada seçin.

sabit (standart): Siz son stabil versiyası. İstehsal mĂŒhitləri ĂŒĂ§ĂŒn tövsiyə olunur.

beta: Son beta versiyasını əldə edirsiniz. Bununla əvvəl yeni xĂŒsusiyyətləri əldə edirsiniz, ancaq böcəyin riski daha yĂŒksəkdir. Öz riski ilə istifadə edin!

Beta-dan sabit versiyaya dəyißiklik edərkən, Ranks Sistemi dəyißməyəcəkdir. Bu, sabit versiyanın növbəti yĂŒksək versiyasını gözləməyəcək və yeniləmə olacaqdır."; -$lang['wiverify'] = "Doğrulma-Otağı"; -$lang['wiverifydesc'] = "Burada doğrulama kanalının kanal ID daxil edin.

Bu kanalın qurulması lazımdır. Əl ilə qurmalısız. Ad, icazələr və digər xĂŒsusiyyətlər sizin seçiminizlə mĂŒÉ™yyənləƟdirilə bilər; yalnız istifadəçi bu kanala qoßulmalıdır!

Verifikasiya statistik məlumat səhifəsində mĂŒvafiq istifadəçi tərəfindən həyata keçirilir (/stats/). Bu, yalnız veb interfeysin istifadəçisinin, TeamSpeak istifadəçisiyle avtomatik olaraq eßleßmemesi / uyğunlaßmaması lazımdır.

TeamSpeak istifadəçisini yoxlamaq ĂŒĂ§ĂŒn yoxlama kanalında olmalıdır. O, özĂŒ statistika səhifəsi ĂŒĂ§ĂŒn özĂŒnĂŒ təsdiqləyə biləcək bir möcĂŒzə ala bilir."; -$lang['wivlang'] = "Dil"; -$lang['wivlangdesc'] = "Rank Sistemi ĂŒĂ§ĂŒn standart bir dil seçin.

Dil, həmçinin istifadəçilər ĂŒĂ§ĂŒn saytlarda seçilə bilər və sessiya ĂŒĂ§ĂŒn saxlanacaq."; -?> \ No newline at end of file + indi Ranks Sisteminə əlavə edildi'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'API vasitəsilə Ranksystem Bot-unun baßlatılması/dayandırılmasına izin verin'; +$lang['apipermdesc'] = '(ON = İzin ver ; OFF = İzin vermə)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'yĂŒksələn'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$lang['changedbid'] = "İstifadəçilər (unikal MĂŒĆŸtəri-ID: %s) yeni TeamSpeak MĂŒĆŸtəri bazası ID (%s). Köhnə MĂŒĆŸtəri bazası ID'yi (%s) yeniləyin və toplanan zamanları yenidən qurun!"; +$lang['chkfileperm'] = 'Yanlıß fayı/qovluq icazələri!
Adını dəyißdirmək və adlandırılmıß faylların/qovluqların icazələrinə ehtiyacınız var!br>
BĂŒtĂŒn faylların sahibi Rank sistemin yĂŒkləmə qovluğunun və qovluqları web serverinizin istifadəçisi olmalıdır (məsələn: www-data). Linux sistemlərində belə bir ßey (linux shell əmri) ola bilər:%s Linux serverlərinizdə bu kimi bir ßey (linux shell komandası) ola bilər:%sList fayllar / qovluqlar:%s'; +$lang['chkphpcmd'] = "Yanlıß PHP komandası %s fayl daxilində mĂŒÉ™yyən edildi! PHP burada tapılmadı!
Bu faylın içərisinə etibarlı PHP əmrini daxil edin!

Definition out of %s:
%s
Komandanızın nəticəsi:%sSiz seçimi əlavə konsol vasitəsilə əvvəl komanda nəzarət edə bilərsiniz '-v'.
Məsələn: %sSiz PHP versiyası qayıtmalısıız"; +$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ı.'; +$lang['cleanno'] = 'Silmək ĂŒĂ§ĂŒn bir ßey yoxdur...'; +$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['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!'; +$lang['errgrplist'] = 'Servergrouplist əldə edərkən səhv: '; +$lang['errlogin'] = 'İstifadəçi adı və/və ya parol yanlıßdır! Yenidən cəhd edin...'; +$lang['errlogin2'] = 'GĂŒcĂŒn tətbiqi mĂŒdafiə: %s saniyə yenidən cəhd edin!'; +$lang['errlogin3'] = 'GĂŒcĂŒn tətbiqi mĂŒdafiə: Çox səhvlər. 300 saniyə qadağan!'; +$lang['error'] = 'Səhv '; +$lang['errorts3'] = 'TS3 Səhv: '; +$lang['errperm'] = "Xahiß edirik '%s' qovluğunun yazma icazəsini yoxlayın!"; +$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ı'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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!
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 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 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
'; +$lang['isntwidbmsg'] = 'Verilənlər bazası səhvi: '; +$lang['isntwidbname'] = 'DB Adı:'; +$lang['isntwidbnamedesc'] = 'Verilənlər bazasının adı'; +$lang['isntwidbpass'] = 'DB ƞifrə:'; +$lang['isntwidbpassdesc'] = 'Verilənlər bazasına daxil olmaq ĂŒĂ§ĂŒn ßifrə'; +$lang['isntwidbtype'] = 'DB növĂŒ:'; +$lang['isntwidbtypedesc'] = 'Verilənlər bazası Ranksystem istifadə etməlidir.

PHP ĂŒĂ§ĂŒn PDO sĂŒrĂŒcĂŒ yĂŒklĂŒ olmalıdır.
Daha çox məlumat və tələblərin faktiki siyahısı ĂŒĂ§ĂŒn quraßdırma səhifəsinə baxın:
%s'; +$lang['isntwidbusr'] = 'DB İstifadəçi:'; +$lang['isntwidbusrdesc'] = 'Verilənlər bazasına daxil olmaq ĂŒĂ§ĂŒn istifadəçi'; +$lang['isntwidel'] = "Xahiß edirik, web space'dan 'install.php' faylını silin."; +$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'; +$lang['listcldbid'] = 'MĂŒĆŸtəri-verilənlər bazası-ID'; +$lang['listexcept'] = 'Səlahiyyət verilmedi'; +$lang['listgrps'] = 'ilk giriß'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'İstifadəçi adı'; +$lang['listnxsg'] = 'növbəti səlahiyyət'; +$lang['listnxup'] = 'növbəti dərəcə'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'Sıralama'; +$lang['listseen'] = 'son giriß'; +$lang['listsuma'] = 'cəmi aktiv vaxt'; +$lang['listsumi'] = 'cəmi boß vaxt'; +$lang['listsumo'] = 'cəmi onlayn vaxt'; +$lang['listuid'] = 'unikal MĂŒĆŸtəri-ID'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Giriß'; +$lang['module_disabled'] = 'This module is deactivated.'; +$lang['msg0001'] = 'Rank sistemi versiyası ĂŒzərində ißləyir: %s'; +$lang['msg0002'] = 'Botun etibarlı komandalarının siyahısı burada tapa bilərsiniz [URL]https://ts-ranksystem.com/#commands[/URL]'; +$lang['msg0003'] = 'Bu komandaya haqqınız yoxdur!'; +$lang['msg0004'] = 'MĂŒĆŸtəri %s (%s) ißin tamamlanmasını tələb edir.'; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'MĂŒĆŸtəri %s (%s) %s tələb edir.'; +$lang['msg0008'] = 'Yenilənmələrə nəzarət edir. Bir yeniləmə varsa, dərhal ißləyəcək.'; +$lang['msg0009'] = 'İstifadəçi verilənlər bazasının təmizlənməsi baßlamıßdır.'; +$lang['msg0010'] = '!log komandası ilə daha ətraflı məlumat ala bilərsiniz.'; +$lang['msg0011'] = 'Təmizlənmiß qrup cache. Qrupları və ikonları yĂŒkləyin...'; +$lang['noentry'] = 'Heç bir qeyd tapılmadı..'; +$lang['pass'] = 'ƞifrə'; +$lang['pass2'] = 'ƞifrə dəyiß'; +$lang['pass3'] = 'köhnə ßifrə'; +$lang['pass4'] = 'yeni ßifrə'; +$lang['pass5'] = 'ƞifrənizi unutmusunuz?'; +$lang['permission'] = 'İcazələr'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'təkrar'; +$lang['resettime'] = 'Istifadəçi %s (unikal MĂŒĆŸtəri-ID: %s; Client-database-ID: %s) onlayn və boß vaxtını sıfırla bərpa et, bir istisna (server və ya mĂŒĆŸtəri istisnası) həyata çıxardı.'; +$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.'; +$lang['setontime'] = 'vaxt əlavə edin'; +$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_pib'] = 'PiB'; +$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'] = '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..'; +$lang['stag0007'] = 'Xahiß edirik sonrakı dəyißiklikləri etmədən öncə, son dəyißikliklərin qĂŒvvəyə çatmasını gözləyin....'; +$lang['stag0008'] = 'Səlahiyyət dəyißiklikləri uğurla saxlanılır. Ts3 serverində qĂŒvvəyə çatana qədər bir neçə saniyə çəkə bilər.'; +$lang['stag0009'] = 'Səlahiyyət verme limitini keçə bilmərsiniz. Limit: %s'; +$lang['stag0010'] = 'Ən azı bir yeni səlahiyyət seçin.'; +$lang['stag0011'] = 'Səlahiyyət verilmə limiti: '; +$lang['stag0012'] = 'tətbiq et'; +$lang['stag0013'] = 'Əlavə ON/OFF'; +$lang['stag0014'] = 'Əlavəni aktivləƟdirin və ya söndĂŒrĂŒn.

Əlavə söndĂŒrĂŒldĂŒkdə, statistika səhifəsində bir bölmə gizli olacaq.'; +$lang['stag0015'] = 'TeamSpeak serverində tapıla bilmədiniz. Xahiß edirik, burada özĂŒnĂŒzĂŒ doğrulamaq ĂŒĂ§ĂŒn %sburaya basın%s.'; +$lang['stag0016'] = 'Onaysız!'; +$lang['stag0017'] = 'Onaylama'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Server statistika'; +$lang['stix0002'] = 'Ümumi istifadəçi'; +$lang['stix0003'] = 'Ətraflı məlumat'; +$lang['stix0004'] = 'BĂŒtĂŒn istifadəçinin onlayn saatı/Ümumi'; +$lang['stix0005'] = 'BĂŒtĂŒn zamanların sırasına baxın'; +$lang['stix0006'] = 'Ayın sıralamasına baxın'; +$lang['stix0007'] = 'Həftənin sıralamasına baxın'; +$lang['stix0008'] = 'Server istifadə'; +$lang['stix0009'] = 'Son 7 gĂŒndə'; +$lang['stix0010'] = 'Son 30 gĂŒndə'; +$lang['stix0011'] = 'Son 24 saat'; +$lang['stix0012'] = 'Dövr seç'; +$lang['stix0013'] = 'Son gĂŒn'; +$lang['stix0014'] = 'Son həftə'; +$lang['stix0015'] = 'Son ay'; +$lang['stix0016'] = 'Aktiv/qeyri-aktiv vaxt (bĂŒtĂŒn istifadəçilərin)'; +$lang['stix0017'] = 'Versiyalar (bĂŒtĂŒn istifadəçilərin)'; +$lang['stix0018'] = 'Millətlər (bĂŒtĂŒn istifadəçilərin)'; +$lang['stix0019'] = 'Platformlar (bĂŒtĂŒn istifadəçilərin)'; +$lang['stix0020'] = 'Cari statistikalar'; +$lang['stix0023'] = 'Server statusu'; +$lang['stix0024'] = 'Onlayn'; +$lang['stix0025'] = 'Oflayn'; +$lang['stix0026'] = 'MĂŒĆŸtərilər (Online / Max)'; +$lang['stix0027'] = 'Kanalların miqdarı'; +$lang['stix0028'] = 'Orta server ping'; +$lang['stix0029'] = 'Alınan ĂŒmumi baytlar'; +$lang['stix0030'] = 'Göndərilən ĂŒmumi baytlar'; +$lang['stix0031'] = 'Server uptime'; +$lang['stix0032'] = 'before offline:'; +$lang['stix0033'] = '00 GĂŒn, 00 Saat, 00 Dəqiqə, 00 Saniyə'; +$lang['stix0034'] = 'Orta paket zərər'; +$lang['stix0035'] = 'Ümumi statistika'; +$lang['stix0036'] = 'Server adı'; +$lang['stix0037'] = 'Server ĂŒnvanı (Host ĂŒnvanı: Port)'; +$lang['stix0038'] = 'Server parol'; +$lang['stix0039'] = 'Xeyr (Server açıqdır)'; +$lang['stix0040'] = 'Bəli (Server xĂŒsusi)'; +$lang['stix0041'] = 'Server ID'; +$lang['stix0042'] = 'Server platforması'; +$lang['stix0043'] = 'Server versiyası'; +$lang['stix0044'] = 'Server yaradılma tarixi (gĂŒn/ay/il)'; +$lang['stix0045'] = 'Server siyahısına hesabat verin'; +$lang['stix0046'] = 'AktivləƟdirildi'; +$lang['stix0047'] = 'AktivləƟdirilmədi'; +$lang['stix0048'] = 'hələ kifayət qədər məlumat yoxdur ...'; +$lang['stix0049'] = 'BĂŒtĂŒn istifadəçi / ayın onlayn saatı'; +$lang['stix0050'] = 'BĂŒtĂŒn istifadəçi / həftənin onlayn saatı'; +$lang['stix0051'] = 'TeamSpeak uğursuz oldu, belə ki, heç bir yaradılması tarixi yoxdur'; +$lang['stix0052'] = 'digərləri'; +$lang['stix0053'] = 'Aktiv vaxt (GĂŒndĂŒz)'; +$lang['stix0054'] = 'Aktiv olmayan vaxt (GĂŒndĂŒz)'; +$lang['stix0055'] = 'Son 24 saat online'; +$lang['stix0056'] = 'onlayn son gĂŒn %s'; +$lang['stix0059'] = 'İstifadəçi siyahısı'; +$lang['stix0060'] = 'İstifadəçi'; +$lang['stix0061'] = 'BĂŒtĂŒn versiyaları bax'; +$lang['stix0062'] = 'BĂŒtĂŒn millətlərə bax'; +$lang['stix0063'] = 'BĂŒtĂŒn platformlara baxın'; +$lang['stix0064'] = 'Son 3 ay'; +$lang['stmy0001'] = 'Mənim statistikalarım'; +$lang['stmy0002'] = 'Dərəcə'; +$lang['stmy0003'] = 'Database ID:'; +$lang['stmy0004'] = 'Unique ID:'; +$lang['stmy0005'] = 'Serverə olan ĂŒmumi bağlantılar:'; +$lang['stmy0006'] = 'Statistika ĂŒĂ§ĂŒn baßlanğıc tarixi:'; +$lang['stmy0007'] = 'Ümumi onlayn vaxt:'; +$lang['stmy0008'] = 'Onlayn vaxt son gĂŒn %s gĂŒn:'; +$lang['stmy0009'] = 'Aktiv vaxt gĂŒnləri davam edir:'; +$lang['stmy0010'] = 'Nailiyyətlər tamamlandı:'; +$lang['stmy0011'] = 'Zaman nailiyyəti '; +$lang['stmy0012'] = 'Vaxt: Əfsənavi'; +$lang['stmy0013'] = 'Ă‡ĂŒnki %s saatlik onlayn vaxtınız var.'; +$lang['stmy0014'] = 'Progress completed'; +$lang['stmy0015'] = 'Vaxt: Qızıl'; +$lang['stmy0016'] = '% Əfsanəvi ĂŒĂ§ĂŒn tamamlandı'; +$lang['stmy0017'] = 'Vaxt: GĂŒmĂŒĆŸ'; +$lang['stmy0018'] = '% Qızıl ĂŒĂ§ĂŒn tamamlandı'; +$lang['stmy0019'] = 'Vaxt: BĂŒrĂŒnc'; +$lang['stmy0020'] = '% GĂŒmĂŒĆŸ ĂŒĂ§ĂŒn tamamlandı'; +$lang['stmy0021'] = 'Vaxt: Açıqlanmamıßdır'; +$lang['stmy0022'] = '% BĂŒrĂŒnc ĂŒĂ§ĂŒn tamamlandı'; +$lang['stmy0023'] = 'Bağlantıya nailiyyət tərzi'; +$lang['stmy0024'] = 'Bağlantı: Əfsanəvi'; +$lang['stmy0025'] = 'Ă‡ĂŒnki %s saatlik onlayn vaxtınız var.'; +$lang['stmy0026'] = 'Bağlantı: Qızıl'; +$lang['stmy0027'] = 'Bağlantı: GĂŒmĂŒĆŸ'; +$lang['stmy0028'] = 'Bağlantı: BĂŒrĂŒnc'; +$lang['stmy0029'] = 'Bağlantı: Açıqlanmamıßdır'; +$lang['stmy0030'] = 'Növbəti Səlahiyyət'; +$lang['stmy0031'] = 'Cəmi aktiv vaxt'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Millətlər'; +$lang['stna0002'] = 'statistika'; +$lang['stna0003'] = 'Kod'; +$lang['stna0004'] = 'Say'; +$lang['stna0005'] = 'Versiyalar'; +$lang['stna0006'] = 'Platforma'; +$lang['stna0007'] = 'Faiz'; +$lang['stnv0001'] = 'Bildiriß'; +$lang['stnv0002'] = 'Bağla'; +$lang['stnv0003'] = 'İstifadəçi məlumatlarını yeniləyin'; +$lang['stnv0004'] = 'TS3 istifadəçi adınızı dəyißdirildikdə, bu yeniliyi istifadə edin'; +$lang['stnv0005'] = 'Bu, yalnız TS3 serverinə eyni anda bağlı olduğunuzda ißləyir'; +$lang['stnv0006'] = 'Yenilə'; +$lang['stnv0016'] = 'Mövcud deyil'; +$lang['stnv0017'] = 'TS3 Serverinə bağlı deyilsiniz, buna görə sizin ĂŒĂ§ĂŒn hər hansı bir məlumatı göstərə bilmərik.'; +$lang['stnv0018'] = 'TS3 serverinə qoßulun və sonra yuxarı sağ kĂŒncdə mavi yeniləmə dĂŒyməsini basaraq sessiyanı təkmilləƟdirin.'; +$lang['stnv0019'] = 'Statistika - Səhifə məzmunu'; +$lang['stnv0020'] = 'Bu səhifəni serverdə sizin Ɵəxsi statistika və fəaliyyətinizin ĂŒmumi xĂŒlasəsi yer alıb.'; +$lang['stnv0021'] = 'Məlumat Ranksystem-in baßlanğıcından bəri yığılır, TeaSpeak serverinin baßlanğıcından bəri deyil.'; +$lang['stnv0022'] = 'Bu səhifə dəyərlərini database-dən alır. Belə ki, dəyərlər bir az gecikdirilə bilər.'; +$lang['stnv0023'] = 'Həftədə və ayda bĂŒtĂŒn istifadəçilər ĂŒĂ§ĂŒn onlayn vaxt miqdarı yalnız 15 dəqiqə hesablanır. BĂŒtĂŒn digər dəyərlər demək olar ki, canlı olmalıdır (maksimum bir neçə saniyə gecikmə).'; +$lang['stnv0024'] = 'RankSystem - Statistika'; +$lang['stnv0025'] = 'Girißləri məhdudlaßdırın'; +$lang['stnv0026'] = 'hamısı'; +$lang['stnv0027'] = 'Bu saytda məlumatlar köhnəlmiß ola bilər! RankSistem TeamSpeak ilə bağlantı qurulmayıb.'; +$lang['stnv0028'] = '(Siz TS3 bağlı deyilsiz!)'; +$lang['stnv0029'] = 'İstifadəçi sıralaması'; +$lang['stnv0030'] = 'Ranksystem məlumatlar'; +$lang['stnv0031'] = 'Axtarıß sahəsində siz istifadəçi adı, Client-ID və Database-ID axtarıß edə bilərsiniz.'; +$lang['stnv0032'] = 'GörĂŒnĂŒĆŸ filtr seçimlərini də istifadə edə bilərsiniz . Filtreyi axtarıß sahəsində da daxil edin.'; +$lang['stnv0033'] = 'Filtr və axtarıß modelinin kombinasiyası mĂŒmkĂŒndĂŒr. Filtrenizi axtarıß modelinizin heç bir əlamət olmadan izlənməsini daxil edin.'; +$lang['stnv0034'] = 'Bir çox filtreyi birləƟdirmək mĂŒmkĂŒndĂŒr. Ardıcıl olaraq axtarıß sahəsində daxil edin.'; +$lang['stnv0035'] = 'Məsələn:
filter: istisna olmaqla: TeamSpeak İstifadəçi'; +$lang['stnv0036'] = 'İstisnasız olan istifadəçiləri göstər (istifadəçi, səlahiyyət və ya kanal istisna).'; +$lang['stnv0037'] = 'İstisnasız olan istifadəçiləri göstərin.'; +$lang['stnv0038'] = 'Yalnız onlayn olan istifadəçiləri göstərin.'; +$lang['stnv0039'] = 'Yalnız onlayn olmayan istifadəçiləri göstərin.'; +$lang['stnv0040'] = "Yalnız mĂŒÉ™yyən qrupda olan istifadəçiləri göstərin. Mövcud dərəcəni/səviyyəni təmsil edin. GROUPID dəyißdirin servergroup ID'si ilə dəyißdirin."; +$lang['stnv0041'] = "Yalnız gĂŒn ərzində seçilən istifadəçiləri göstərin.
OPERATOR ilə dəyiƟdirin with '<' or '>' or '=' or '!='.
Vaxt formatıyla bir tarixi əvəz edin 'İ-a-g s-q' (məsələn: 2016-06-18 20-25).
Tam nĂŒmune: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Yalnız mĂŒÉ™yyən ölkədən olan istifadəçiləri göstərin.
TS3-COUNTRY-CODE-lərini arzu olunan ölkə ilə əvəz edin.'; +$lang['stnv0043'] = 'TS3 bağlan'; +$lang['stri0001'] = 'Ranksystem məlumatları'; +$lang['stri0002'] = 'Sponsorlar'; +$lang['stri0003'] = 'Online vaxt və ya onlayn fəaliyyət ĂŒĂ§ĂŒn avtomatik olaraq TeamSpeak 3 Server-da istifadəçilərə (servergroups) qrant verən TS3 bot. Bundan əlavə, istifadəçi haqqında məlumat və statistika toplayır və nəticəni bu saytda nĂŒmayiß etdirir.'; +$lang['stri0004'] = "Ranksystem'ı kim yaratdı?"; +$lang['stri0005'] = 'Ranksystem nə zaman yaradılıb?'; +$lang['stri0006'] = 'İlk alfa versiyası: 05/10/2014.'; +$lang['stri0007'] = 'İlk beta versiyası: 01/02/2015.'; +$lang['stri0008'] = 'You can see the latest version on the Ranksystem Website.'; +$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'] = '%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'] = '%s çek dili ĂŒĂ§ĂŒn tərcĂŒmə'; +$lang['stri0025'] = '%s polßa dili ĂŒĂ§ĂŒn tərcĂŒmə'; +$lang['stri0026'] = '%s ispanca dili ĂŒĂ§ĂŒn tərcĂŒmə'; +$lang['stri0027'] = '%s macar dili ĂŒĂ§ĂŒn tərcĂŒmə'; +$lang['stri0028'] = '%s azərbaycan dili ĂŒĂ§ĂŒn tərcĂŒmə'; +$lang['stri0029'] = '%s imza funksiyası ĂŒĂ§ĂŒn'; +$lang['stri0030'] = "%s 'CosmicBlue' stil statistika səhifəsi və veb-interfeysi ĂŒĂ§ĂŒn"; +$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 '; +$lang['sttw0004'] = 'Top 10 sıralama'; +$lang['sttw0005'] = 'saat (100% olur)'; +$lang['sttw0006'] = '%s saat (%s%)'; +$lang['sttw0007'] = 'Top 10 Statistika'; +$lang['sttw0008'] = 'Top 10 vs digərləri onlayn vaxt'; +$lang['sttw0009'] = 'Top 10 vs digərləri aktiv vaxt'; +$lang['sttw0010'] = 'Top 10 vs digərləri aktiv olmayan vaxt'; +$lang['sttw0011'] = 'Top 10 (saat)'; +$lang['sttw0012'] = 'Digər %s istifadəçi (saat)'; +$lang['sttw0013'] = '%s %s aktiv vaxt '; +$lang['sttw0014'] = 'saat'; +$lang['sttw0015'] = 'dəqiqə'; +$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.'; +$lang['stve0004'] = 'Girilən kod yanlıßdır! Xahiß edirik yenidən cəhd edin.'; +$lang['stve0005'] = 'Təbrik edirik, uğurla təsdiqlənidiniz! İndi dəvam edə bilərsiniz.'; +$lang['stve0006'] = 'An unknown error happened. Please try it again. On repeated times contact an admin'; +$lang['stve0007'] = 'TS3 server onaylama'; +$lang['stve0008'] = 'ÖzĂŒnĂŒzĂŒ yoxlamaq ĂŒĂ§ĂŒn TS3 serverinizdə ClientID-i seçin.'; +$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['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'; +$lang['upgrp0003'] = 'Server İkonunu yazarkən xəta baß verdi.'; +$lang['upgrp0004'] = 'TS3 Server istisna olmaqla, TS3 server ikonu yĂŒklənməsi zamanı səhv baß verdi: '; +$lang['upgrp0005'] = 'Server ikonuu silərkən xəta baß verdi.'; +$lang['upgrp0006'] = 'Server ikonunun TS3 serverindən çıxarıldığını qeyd etdi, indi də sıralama sistemindən silindi.'; +$lang['upgrp0007'] = '%s ID ilə %s qrupundan Server qrupu ikonunu qeyd edərkən səhv baß verdi.'; +$lang['upgrp0008'] = '%s ID ilə %s qrupundan Server qrupu ikonunu yĂŒkləyərkən səhv baß verdi: '; +$lang['upgrp0009'] = '%s ID ilə %s qrupundan Server qrupu ikonunu silərkən səhv baß verdi.'; +$lang['upgrp0010'] = '%s ID ilə %s ilə server qruplarının fərqləndirilmiß simvolu TS3 serverdən silindi, indi də Rank Sistemindən silindi.'; +$lang['upgrp0011'] = '%s ID ilə %s qrup ĂŒĂ§ĂŒn yeni Server qroup İkonu yĂŒkləyin'; +$lang['upinf'] = 'Ranksystem-in yeni versiyası mövcuddur; MĂŒĆŸtərilərə serverdə məlumat ver...'; +$lang['upinf2'] = 'The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.'; +$lang['upmsg'] = "\nHey, [B]Rank Sisteminin[/B] yeni versiyası mövcuddur!\n\ncari versiya: %s\n[B]yeni versiya: %s[/B]\n\nDaha ətraflı məlumat ĂŒĂ§ĂŒn saytımıza baxın [URL]%s[/URL].\n\nArxa planda yeniləmə prosesini baßladır. [B]Ranksystem.log saytını yoxlayın![/B]"; +$lang['upmsg2'] = "\nHey, [B]Rank Sistemi[/B] yeniləndə.\n\n[B]yeni versiya: %s[/B]\n\nDaha ətraflı məlumat ĂŒĂ§ĂŒn saytımıza baxın [URL]%s[/URL]."; +$lang['upusrerr'] = 'Unikal MĂŒĆŸtərilər ĂŒĂ§ĂŒn ID %s TeamSpeak-da əldə edilə bilməz!'; +$lang['upusrinf'] = 'İstifadəçi %s uğurla məlumatlandırıldı.'; +$lang['user'] = 'İstifadəçi adı'; +$lang['verify0001'] = 'Xahiß edirik əmin olun ki, TS3 serverinə qoßulmusunuz!'; +$lang['verify0002'] = 'Xahiß edirik onay otağına bağlanın: %sbura basın%s!'; +$lang['verify0003'] = 'Əgər həqiqətən TS3 serverinə qoßulmusunuzsa, orada bir administratorla əlaqə saxlayın.
Bunun ĂŒĂ§ĂŒn TeamSpeak serverində bir doğrulama otağı yaratmaq lazımdır. Bundan sonra yaradılan kanal yalnız Rəhbərlərə aid edilə bilən Ranksystem ĂŒĂ§ĂŒn mĂŒÉ™yyən edilməlidir.
Daha ətraflı məlumat administrator daxili veb interfeysi tapa bilərsiniz

Bu fəaliyyət olmadan Rank Sisteminində doğrulamaq mĂŒmkĂŒn deyil. Bağıßlayın :('; +$lang['verify0004'] = 'Doğrulma kanalının içərisində heç bir istifadəçi tapılmadı...'; +$lang['wi'] = 'Veb-interfeys'; +$lang['wiaction'] = 'hərəkət'; +$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['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['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!'; +$lang['wibot4'] = 'Rank Sistem botunu Baßlat / Dayandır'; +$lang['wibot5'] = 'Botu Baßlat'; +$lang['wibot6'] = 'Botu Dayandır'; +$lang['wibot7'] = 'Botu Yenidən Baßlat'; +$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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$lang['widelcldgrpdesc'] = 'Sıralama sistemi server qrupunun məlumatlarını xatırlayır, buna görə də hər bir iƟçinin baßlanğıcında onu vermək/yoxlamaq lazım deyil.PHP yenidən.

Bu funksiya ilə verilmiß server qrup məlumatlarını bir dəfə aradan qaldıra bilərsiniz. Əslində, Ranksystem cari rĂŒtbənin server qrupu olan bĂŒtĂŒn mĂŒĆŸtərilərə (TS3 serverdə onlayn olan) verməyə çalıßır.
Qrupu alan və ya qrupda qalmağı təmin edən hər bir mĂŒĆŸtəri ĂŒĂ§ĂŒn, Ranksystem bunu əvvəlində təsvir etdiyini xatırladır.

Bu funksiya, istifadəçilər onlayn vaxt ĂŒĂ§ĂŒn nəzərdə tutulan server qrupunda olmadıqda faydalı ola bilər.

Diqqət: Bir an əvvəl bu ißləyin, burada növbəti bir neçə dəqiqə heç bir rĂŒtbə qalmayacaq!!! Sıralama sistemi köhnə qrupu silə bilməz, Ă§ĂŒnki artıq onları bilmir ;-)'; +$lang['widelsg'] = 'Server qruplarından silin'; +$lang['widelsgdesc'] = 'Ranksystem verilənlər bazasından mĂŒĆŸtərilərini silmək ĂŒĂ§ĂŒn mĂŒĆŸtərilərin son bilinən server qrupundan çıxarılmasını seçməlisiniz.

Yalnızca Ranksystem ilə əlaqəli server qrup hesab olunur.'; +$lang['wiexcept'] = 'Exceptions'; +$lang['wiexcid'] = 'kanal istisnası'; +$lang['wiexciddesc'] = "Ranksystem-də ißtirak etməyən kanal identifikatorlarının vergĂŒllə ayrılmıß siyahısı.

Listelenen kanallardan birində istifadəçilər qaldıqda, vaxt tamamilə məhəl qoyulacaq. Onlayn vaxt yoxdur, amma aktiv vaxtlar sayılır

Bu funksiya yalnız 'onlayn vaxt' rejimi ilə məntiq yaradır, beləliklə burada məsələn, AFK kanalları göz ardı edilə bilər.
'Aktiv vaxt' rejimi ilə bu funksiya faydasızdır, Ă§ĂŒnki AFK otaqlarında boß vaxt çıxılacaq və buna görə də hesablanmır.

Əgər istifadəçi xaric edilmiß kanalda yerləƟirsə, bu mĂŒddət ərzində o, 'rĂŒtbələr sistemindən xaric' kimi qiymətləndiriləcək. Bu istifadəçilər artıq 'stats/list_rankup.php'siyahısında göstərilməyəcək.php ' əgər xaric mĂŒĆŸtərilər orada göstərilməməlidir (statistika səhifəsi - mĂŒĆŸtəri istisna olmaqla)."; +$lang['wiexgrp'] = 'Server qrup istinası'; +$lang['wiexgrpdesc'] = "Ranksystem-də server qrupların vergĂŒllə ayrılmıß siyahısı.
Bu server qrup ID'lərindən ən az birində istifadəçi dərəcə ĂŒĂ§ĂŒn göz ardı edilir."; +$lang['wiexres'] = 'istisna qaydası'; +$lang['wiexres1'] = 'sayma vaxtı (standart)'; +$lang['wiexres2'] = 'fasilə vaxtı'; +$lang['wiexres3'] = 'sıfırlama vaxtı'; +$lang['wiexresdesc'] = "İstisna etmək ĂŒĂ§ĂŒn ĂŒĂ§ rejim var. Hər bir halda dərəcə söndĂŒrĂŒlĂŒr(server qrup təyin edilmir). Bir istifadəçinin (istisna olmaqla) xərclənmiß vaxtının necə ißlədiləcəyini mĂŒxtəlif variantlardan seçə bilərsiniz.

1) sayma vaxtı (standart): Ranksystem, standart olaraq, istisna olan (mĂŒĆŸtəri/server qrup istisna ilə) istifadəçilərin onlayn/aktiv vaxtını da sayır. Bir istisna ilə yalnız sıralama dayandırılır. Yəni bir istifadəçi istisna edilməmißsə, topladığı vaxtdan asılı olaraq (məs. 3-cĂŒ səviyyə).

2) fasilə vaxtı: Bu seçimdə sərf edilən onlayn və boß vaxt sərf olunan dəyəri (istifadəçi istisna olmaqla) dondurulacaq. İstisna səbəbi aradan qaldırıldıqdan sonra (gözlənilən server qrup çıxarıldıqdan və ya istisna qaydasını çıxardıqdan sonra) onlayn/aktiv vaxtın 'counting' davam edir.

3) sıfırlama vaxtı: Bu funksiya sayəsində, sayta daxil olan onlayn və boß vaxt istifadəçi artıq istisna olmaqla (istisna olmaqla server qrupu kənarlaßdırmaq və ya istisna qaydasını çıxarmaq) sıfırlanacaqdır. Xərclənən vaxtı istisna hala yenidən qurulana qədər hesablanır.


Kanal istisnası heç bir halda əhəmiyyətli deyil, vaxt həmiƟə nəzərə alınmayacaq (rejimi pozma vaxtı kimi)."; +$lang['wiexuid'] = 'mĂŒĆŸtəri istisnası'; +$lang['wiexuiddesc'] = 'VirgĂŒlle ayrılmıß unikal MĂŒĆŸtəri ID siyahısı, Ranksystem ĂŒĂ§ĂŒn nəzərdə tutulmamalıdır.
Bu siyahıda istifadəçi dərəcə ĂŒĂ§ĂŒn göz ardı edilir.'; +$lang['wiexregrp'] = 'qrupu sil'; +$lang['wiexregrpdesc'] = "İstifadəçi Ranksystem tərk edildiyi halda, Ranksystem tərəfindən təyin edilmiß server qrupu silinir.

Qrup yalnız '".$lang['wiexres']."' ilə '".$lang['wiexres1']."' ilə silinir. Digər rejimlərdə server qrupu silinməyəcək.

Bu funksiya yalnız '".$lang['wiexuid']."' və ya '".$lang['wiexgrp']."' ilə '".$lang['wiexres1']."' ilə birlikdə istifadə edilən zaman mĂŒhĂŒmdĂŒr."; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'sıralama tərifi'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$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  => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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!"; +$lang['wihladm1'] = 'Vaxt əlavə et'; +$lang['wihladm2'] = 'Vaxt sil'; +$lang['wihladm3'] = "Ranksystem'i sıfırlayın"; +$lang['wihladm31'] = 'bĂŒtĂŒn istifadəçi statistikalarını sıfırlayın'; +$lang['wihladm311'] = 'sıfır vaxt'; +$lang['wihladm312'] = 'istifadəçi silin'; +$lang['wihladm31desc'] = 'BĂŒtĂŒn istifadəçilərin statistikasını yenidən qurmaq ĂŒĂ§ĂŒn iki seçimdən birini seçin.

sıfır vaxt: BĂŒtĂŒn istifadəçilərin vaxtını (onlayn vaxt və boß vaxt) 0-a bərpa edir.

istifadəçi sil: Bu seçim ilə bĂŒtĂŒn istifadəçilər Ranksystem verilənlər bazasından silinəcəklər. TeamSpeak verilənlər bazasına toxunulmayacaq!


Hər iki seçim də aßağıdakıları təsir göstərir..

.. sıfır vaxtda:
Server statistikasının xĂŒlasəsini sıfırlayın (table: stats_server)
Statistika Sıfırla (table: stats_user)
Siyahı sıfırlaması/istifadəçi statistikası (table: user)
Top user / istifadəçi statistik anlar təmizləyir (table: user_snapshot)

.. istifadəçilər silindikdə:
Millətləri təmizləyir (table: stats_nations)
Platformları təmizləyir (table: stats_platforms)
Versiyaları təmizləyir (table: stats_versions)
Server statistikasının xĂŒlasəsini sıfırlayır (table: stats_server)
Mənim statistikamı təmizləyir (table: stats_user)
Sıralamanı təmizləyir / istifadəçi statistikası (table: user)
İstifadəçi ip-hash dəyərlərini təmizləyir (table: user_iphash)
Top user / istifadəçi statistik anlar təmizləyir (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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'administrator funksiyası haqqında tələb olunur.'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Jurnal yolları'; +$lang['wilogdesc'] = 'Sıralama sistemi log fayl yolu.

Məsələn:
/var/logs/Ranksystem/

Əmin olun ki, Webuser (= veb sahəsi istifadəçisi) gĂŒnlĂŒk faylına yazma icazəsi var.'; +$lang['wilogout'] = 'Çıxıß'; +$lang['wimsgmsg'] = 'Mesajlar'; +$lang['wimsgmsgdesc'] = "Bir ĂŒst səviyyə yĂŒksəltdiğinde bir istifadəçiyə göndəriləcək bir mesajı təyin edin.

Bu mesaj TS3 xĂŒsusi mesajı vasitəsilə göndəriləcək. Hər bir bb-kod istifadə oluna bilər, bu da normal bir xĂŒsusi mesaj ĂŒĂ§ĂŒn ißləyir.
%s

Bundan əlavə, daha əvvəl keçirilmiƟ vaxt arqumentlərlə ifadə edilə bilər:
%1\$s - gĂŒn
%2\$s - saat
%3\$s - dəqiqə
%4\$s - saniyə
%5\$s - əldə edilən server qrup adı
%6$s - istifadəçinin adı (alıcı)

Məsələn:
Salam,\siz artıq  %1\$s gĂŒn, %2\$s saat və %3\$s dəqiqə saniyə serverə bağlı olduğunuzdan mĂŒÉ™yyən bir dərəcəyə çatdınız.[B]Təbriklər![/B] ;-)
"; +$lang['wimsgsn'] = 'Server-Xəbərlər'; +$lang['wimsgsndesc'] = 'Server xəbərləri olaraq /stats/ səhifəsində göstəriləcək bir mesajı mĂŒÉ™yyənləƟdirin.

Layihəni dəyißdirmək ĂŒĂ§ĂŒn standart html funksiyalarından istifadə edə bilərsiniz

Məsələn:
<b> - qalın ĂŒĂ§ĂŒn
<u> - vurğulamaq ĂŒĂ§ĂŒn
<i> - italik ĂŒĂ§ĂŒn
<br> - word-wrap ĂŒĂ§ĂŒn (yeni xətt)'; +$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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'Verilənlər bazası'; +$lang['winav3'] = 'Əsas Parametr'; +$lang['winav4'] = 'Baßqa'; +$lang['winav5'] = 'Mesaj'; +$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['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['winxmsg2'] = 'Mesaj (ən yĂŒksək)'; +$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. 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"; +$lang['wirtpw5'] = 'Administratora yeni bir ßifrə ilə TeamSpeak3 xĂŒsusi mətn mesajı göndərildi. Giriß ĂŒĂ§ĂŒn %s klikləyin %s.'; +$lang['wirtpw6'] = 'Veb interfeys ßifrəsi uğurla sıfırlandıt. Request from IP %s.'; +$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['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'aktiv vaxt'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$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['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['wishcolot'] = 'onlayn vaxt'; +$lang['wishdef'] = 'standart sĂŒtun sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Siyahı sıralaması səhifəsi ĂŒĂ§ĂŒn standart sıralama sĂŒtunu təyin edin.'; +$lang['wishexcld'] = 'istisna mĂŒĆŸtəri'; +$lang['wishexclddesc'] = "MĂŒĆŸtərilərə göstər list_rankup.php,
onlar istisna olunur və buna görə də RankSystem'də ißtirak etmirlər."; +$lang['wishexgrp'] = 'istisna qruplar'; +$lang['wishexgrpdesc'] = "MĂŒĆŸtərilərə göstər list_rankup.php, siyahıda olanlar 'client exception' və shouldn't Ranksystem ĂŒĂ§ĂŒn nəzərə alınmalıdır."; +$lang['wishhicld'] = 'Ən yĂŒksək səviyyəli mĂŒĆŸtərilər'; +$lang['wishhiclddesc'] = 'MĂŒĆŸtərilərə göstər list_rankup.php, Ranksystem-da ən yĂŒksək səviyyəyə çatdı.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'özəl ĂŒslub'; +$lang['wistyledesc'] = "Ranksistem ĂŒĂ§ĂŒn fərqli, istifadəçi təyinatı olan (Style) ĂŒslub təyin edin.
Bu ĂŒslub statistika səhifəsi və veb-interfeys ĂŒĂ§ĂŒn istifadə olunur.

Öz ĂŒslubunuzu 'style' adlı qovluğun alt qovluğunda yerləƟdirin.
Alt qovluğun adı ĂŒslubun adını təyin edir.

'TSN_' ilə baßlayan ĂŒslublar Ranksistem tərəfindən təqdim edilir. Bu gələcək yeniləmələr ilə yenilənir.
Bu ĂŒslubların ĂŒzərində dĂŒzəlißlər etməməli!
Lakin bu ĂŒslublar nĂŒmunə kimi istifadə edilə bilər. Öz ĂŒslubunuzu bir alt qovlu qda saxlayın. Alt qovluğun adı ĂŒslubun adını təyin edir.

'TSN_' ilə baßlayan ĂŒslublar Rank Sistemi tərəfindən təqdim edilir. Bu, gələcək yeniləmələrlə yenilənəcəkdir.
Bu ĂŒslublara dĂŒzəlißlər etməməli!
Lakin, bu ĂŒslublar nĂŒmunə olarak istifadə oluna bilər. Üslubu bir qovluqda kopyalayın və dĂŒzəlißlər edin.

Statistika səhifəsi və Web İnterfeysi ĂŒĂ§ĂŒn iki CSS faylı tələb olunur.
Ayrıca, öz JavaScript faylı da əlavə edilə bilər. Lakin, bu opsionaldır.

CSS ad konvensiya:
- Statistika səhifəsi ĂŒĂ§ĂŒn 'ST.css'- Webinterface səhifəsi ĂŒĂ§ĂŒn 'WI.css'


JavaScript ĂŒnvanlandırma qaydaları:
- Statistika səhifəsi ĂŒĂ§ĂŒn 'ST.js'- Webinterface səhifəsi ĂŒĂ§ĂŒn 'WI.js'


Üslubunuzu digər insanlarla da bölĂŒĆŸmək istəsəniz, onları aßağıdakı e-poçt ĂŒnvanına göndərə bilərsiniz:

%s

Onları son versiyanın vəzifəsindən keçirəcəyik!"; +$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['wisvres'] = 'Dəyißikliklər qĂŒvvəyə çatmadan əvvəl Ranksystem-i yenidən baßladın! %s'; +$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['wits3pre'] = 'Bot əmrindən önad'; +$lang['wits3predesc'] = "TeamSpeak serverində chat vasitəsi ilə Ranksystem botu ilə əlaqə qurmaq olar. Susmaya görə, bot əmrləri '!' ißarəsi ilə qeyd edilir. Önad bot əmrlərinin böyĂŒk harf Ɵəklində tanınması ĂŒĂ§ĂŒn istifadə olunur.

Bu önad baßqa istənilən önad ilə əvəz edilə bilər. Bu, eyni əmrlər olan digər botların istifadə olunduğu halda tələb edilə bilər.

Misal ĂŒĂ§ĂŒn, susmaya görə bot əmrini aßağıdakı kimi görĂŒrsĂŒz:
!help


Əgər önad '#' ilə əvəz edilirsə, əmr aßağıdakı kimi görĂŒnĂŒr:
#help
"; +$lang['wits3qnm'] = 'Bot adı'; +$lang['wits3qnmdesc'] = 'Adı, bununla birlikdə sorğu-əlaqə qurulacaq.
You can name it free.'; +$lang['wits3querpw'] = 'TS3 Query-ƞifrə'; +$lang['wits3querpwdesc'] = 'TeamSpeak 3 query Ɵifrə
Sorgu istifadəçisinin parolası.'; +$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['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ĂŒ'; +$lang['witszdesc'] = "GĂŒnlĂŒk faylının döndĂŒyĂŒ gĂŒndĂŒz faylını qurduqda, aßdıqda.

Mebibyte'də dəyərinizi təyin edin.

Qiyməti artırdığınız zaman, əmin olun ki, bu bölmədə kifayət qədər yer var. Çox böyĂŒk logfiles mĂŒkəmməl məsələlər gətirə bilər!

Bu dəyəri dəyißdikdə, logfile ölĂ§ĂŒsĂŒ botun yenidən baßlaması ilə yoxlanacaq. Belirtilən dəyərdən daha böyĂŒk olan fayllar, gĂŒndəmi dərhal qaytarılacaq."; +$lang['wiupch'] = 'Kanal Yeniləmə'; +$lang['wiupch0'] = 'sabit'; +$lang['wiupch1'] = 'beta'; +$lang['wiupchdesc'] = 'Yeni bir yeniləmə mövcud olduqda sıralama sistemi avtomatik olaraq yenilənəcəkdir. Siz qoßulmaq istədiyiniz yeniləmə kanalını burada seçin.

sabit (standart): Siz son stabil versiyası. İstehsal mĂŒhitləri ĂŒĂ§ĂŒn tövsiyə olunur.

beta: Son beta versiyasını əldə edirsiniz. Bununla əvvəl yeni xĂŒsusiyyətləri əldə edirsiniz, ancaq böcəyin riski daha yĂŒksəkdir. Öz riski ilə istifadə edin!

Beta-dan sabit versiyaya dəyißiklik edərkən, Ranks Sistemi dəyißməyəcəkdir. Bu, sabit versiyanın növbəti yĂŒksək versiyasını gözləməyəcək və yeniləmə olacaqdır.'; +$lang['wiverify'] = 'Doğrulma-Otağı'; +$lang['wiverifydesc'] = 'Burada doğrulama kanalının kanal ID daxil edin.

Bu kanalın qurulması lazımdır. Əl ilə qurmalısız. Ad, icazələr və digər xĂŒsusiyyətlər sizin seçiminizlə mĂŒÉ™yyənləƟdirilə bilər; yalnız istifadəçi bu kanala qoßulmalıdır!

Verifikasiya statistik məlumat səhifəsində mĂŒvafiq istifadəçi tərəfindən həyata keçirilir (/stats/). Bu, yalnız veb interfeysin istifadəçisinin, TeamSpeak istifadəçisiyle avtomatik olaraq eßleßmemesi / uyğunlaßmaması lazımdır.

TeamSpeak istifadəçisini yoxlamaq ĂŒĂ§ĂŒn yoxlama kanalında olmalıdır. O, özĂŒ statistika səhifəsi ĂŒĂ§ĂŒn özĂŒnĂŒ təsdiqləyə biləcək bir möcĂŒzə ala bilir.'; +$lang['wivlang'] = 'Dil'; +$lang['wivlangdesc'] = 'Rank Sistemi ĂŒĂ§ĂŒn standart bir dil seçin.

Dil, həmçinin istifadəçilər ĂŒĂ§ĂŒn saytlarda seçilə bilər və sessiya ĂŒĂ§ĂŒn saxlanacaq.'; diff --git "a/languages/core_cz_\304\214e\305\241tina_cz.php" "b/languages/core_cz_\304\214e\305\241tina_cz.php" index 349d9b2..4ce2ed0 100644 --- "a/languages/core_cz_\304\214e\305\241tina_cz.php" +++ "b/languages/core_cz_\304\214e\305\241tina_cz.php" @@ -1,709 +1,709 @@ - pƙidĂĄn do Ranksystem."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Povolit spuĆĄtěnĂ­/zastavenĂ­ Ranksystem Bot pomocĂ­ API"; -$lang['apipermdesc'] = "(ON = Povolit ; OFF = ZakĂĄzat)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "vzestupně"; -$lang['autooff'] = "autostart is deactivated"; -$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'] = "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Ă­."; -$lang['cleanno'] = "Zde nenĂ­ co smazat..."; -$lang['cleanp'] = "ČistĂ© obdobĂ­"; -$lang['cleanpdesc'] = "Nastavte čas, kterĂœ musĂ­ uplynout pƙedtĂ­m, neĆŸ se spustĂ­ ščistĂœ klientš.

Nastavte čas v sekundách.

Doporučuje se jednou denně, protoĆŸe vyčistěnĂ­ klientĆŻ vyĆŸaduje větĆĄĂ­ čas pro větĆĄĂ­ databĂĄze."; -$lang['cleanrs'] = "UĆŸivatelĂ© v databĂĄzi: %s"; -$lang['cleants'] = "NalezenĂ­ uĆŸivatelĂ© v TeamSpeak databĂĄzi: %s (of %s)"; -$lang['day'] = "%s den"; -$lang['days'] = "%s dnĆŻ"; -$lang['dbconerr'] = "ProblĂ©m s pƙipojenĂ­m do databĂĄze: "; -$lang['desc'] = "sestupně"; -$lang['descr'] = "Popis"; -$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."; -$lang['errgrplist'] = "Chyba pƙi volĂĄnĂ­ servergrouplist: "; -$lang['errlogin'] = "PƙihlaĆĄovacĂ­ ID a/nebo heslo bylo zadĂĄno ĆĄpatně! Zkuste to znovu..."; -$lang['errlogin2'] = "Brute force protection: Zkuste to za %s sekund!"; -$lang['errlogin3'] = "Brute force protection: Mnoho pƙihlĂĄĆĄenĂ­ se ĆĄpatnĂœmi Ășdaji! Byl jste zabanovĂĄn na 300 sekund!"; -$lang['error'] = "Chyba (Error) "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "ProsĂ­m ověƙ oprĂĄvněnĂ­ v adresáƙi '%s'!"; -$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['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$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!
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 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 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)"; -$lang['isntwidbmsg'] = "Database error: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "JmĂ©no databĂĄze"; -$lang['isntwidbpass'] = "Heslo do databĂĄze:"; -$lang['isntwidbpassdesc'] = "Heslo pro pƙístup do databĂĄze"; -$lang['isntwidbtype'] = "Typ DatabĂĄze:"; -$lang['isntwidbtypedesc'] = "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 uĆŸivatel:"; -$lang['isntwidbusrdesc'] = "UĆŸivatel pro pƙístup do databĂĄze"; -$lang['isntwidel'] = "ProsĂ­m odstraƈte 'install.php' z vaĆĄeho webovĂ©ho uloĆŸiĆĄtě."; -$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ƈ"; -$lang['listcldbid'] = "ID v databĂĄzi"; -$lang['listexcept'] = "Ne, udělat vyjĂ­mku"; -$lang['listgrps'] = "AktuĂĄlnĂ­ skupina od"; -$lang['listnat'] = "Země"; -$lang['listnick'] = "JmĂ©no uĆŸivatele"; -$lang['listnxsg'] = "DalĆĄĂ­ Ășroveƈ"; -$lang['listnxup'] = "DalĆĄĂ­ Ășroveƈ za"; -$lang['listpla'] = "Platforma"; -$lang['listrank'] = "Úroveƈ"; -$lang['listseen'] = "Naposledy pƙipojen"; -$lang['listsuma'] = "Celkově online (aktivně)"; -$lang['listsumi'] = "Celkově online (neaktivně)"; -$lang['listsumo'] = "Celkově online"; -$lang['listuid'] = "UnikĂĄtnĂ­ ID"; -$lang['listver'] = "Verze klienta"; -$lang['login'] = "PƙihlĂĄĆĄenĂ­"; -$lang['module_disabled'] = "This module is deactivated."; -$lang['msg0001'] = "Ranksystem je na verzi: %s"; -$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"; -$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'] = "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"; -$lang['pass3'] = "StarĂ© heslo"; -$lang['pass4'] = "NovĂ© heslo"; -$lang['pass5'] = "ZapomenutĂ© heslo?"; -$lang['permission'] = "OprĂĄvněnĂ­"; -$lang['privacy'] = "ZĂĄsady ochrany osobnĂ­ch ĂșdajĆŻ"; -$lang['repeat'] = "Opakovat (obnovit)"; -$lang['resettime'] = "ObnovenĂ­ času online a nečinnosti uĆŸivatele% s (jedinečnĂ© ID klienta:% s; klientskĂ© databĂĄze-ID% s) na nulu, coĆŸ zpĆŻsobilo, ĆŸe uĆŸivatel byl odstraněn z vĂœjimky."; -$lang['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)."; -$lang['setontime'] = "Pƙidat čas"; -$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_pib'] = "PiB"; -$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'] = "Vyber serverovĂ© skupiny, kterĂ© si uĆŸivatel mĆŻĆŸe pƙiƙadit."; -$lang['stag0004'] = "MaximĂĄlnĂ­ počet skupin"; -$lang['stag0005'] = "Limit serverovĂœch skupin, kterĂ© mohou bĂœt nastaveny současně!"; -$lang['stag0006'] = "Je zde vĂ­ce uĆŸivatelĆŻ online se stejnou unique ID s vaĆĄĂ­ IP adresou. ProsĂ­m %sklikněte sem%s pro ověƙenĂ­."; -$lang['stag0007'] = "Počkejte, neĆŸ se vaĆĄe poslednĂ­ změny projevĂ­ dƙíve, neĆŸ změnĂ­te dalĆĄĂ­ věci ..."; -$lang['stag0008'] = "Skupiny Ășspěơně uloĆŸeny. MĆŻĆŸe to nějakou dobu trvat, neĆŸ se změny projevĂ­ na TS3 serveru!"; -$lang['stag0009'] = "NemĆŻĆŸete vybrat(mĂ­t) vĂ­ce %s skupin v ten stejnĂœ čas!"; -$lang['stag0010'] = "Zvolte prosĂ­m alespoƈ jednu novou skupinu."; -$lang['stag0011'] = "MaximĂĄlnĂ­ počet ikonek: "; -$lang['stag0012'] = "nastavit skupiny"; -$lang['stag0013'] = "Modul ON/OFF"; -$lang['stag0014'] = "Zapněte doplněk ON (enabled) nebo OFF (disabled).

Pƙi deaktivaci doplƈku se moĆŸnĂĄ část na statistiku / webu skryje."; -$lang['stag0015'] = "Nemohl jsem tě najĂ­t na TeamSpeak serveru. %sKlikni zde%s pro ověƙenĂ­ svĂ© identity."; -$lang['stag0016'] = "Je tƙeba ověƙenĂ­!"; -$lang['stag0017'] = "OvěƙenĂ­ zde.."; -$lang['stag0018'] = "Seznam vyloučenĂœch skupin serverĆŻ. Pokud uĆŸivatel vlastnĂ­ jednu z těchto skupin serverĆŻ, nebude moci doplněk pouĆŸĂ­vat."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Statistiky serveru"; -$lang['stix0002'] = "Celkem uĆŸivatelĆŻ"; -$lang['stix0003'] = "Zobrazit podrobnosti"; -$lang['stix0004'] = "Online čas vĆĄech uĆŸivatelĆŻ"; -$lang['stix0005'] = "NejaktivnějĆĄĂ­ uĆŸivatelĂ© od počátku věkĆŻ"; -$lang['stix0006'] = "NejaktivnějĆĄĂ­ uĆŸivatelĂ© za měsĂ­c"; -$lang['stix0007'] = "NejaktivnějĆĄĂ­ uĆŸivatelĂ© za tĂœden"; -$lang['stix0008'] = "VyuĆŸitĂ­ serveru"; -$lang['stix0009'] = "Za 7 dnĆŻ"; -$lang['stix0010'] = "Za 30 dnĆŻ"; -$lang['stix0011'] = "Za 24 hodin"; -$lang['stix0012'] = "Vyberte obdobĂ­"; -$lang['stix0013'] = "Za poslednĂ­ den"; -$lang['stix0014'] = "Za poslednĂ­ tĂœden"; -$lang['stix0015'] = "Za poslednĂ­ měsĂ­c"; -$lang['stix0016'] = "AktivnĂ­ / neaktivnĂ­ čas (vĆĄech UĆŸivatelĆŻ)"; -$lang['stix0017'] = "Verze klientĆŻ"; -$lang['stix0018'] = "NĂĄrodnost uĆŸivatelĆŻ"; -$lang['stix0019'] = "OperačnĂ­ systĂ©my"; -$lang['stix0020'] = "AktuĂĄlnĂ­ statistiky"; -$lang['stix0023'] = "Stav serveru"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Počet uĆŸivatelĆŻ (online / max)"; -$lang['stix0027'] = "Počet mĂ­stnostĂ­"; -$lang['stix0028'] = "PrĆŻměrnĂœ ping serveru"; -$lang['stix0029'] = "Celkem dat pƙijato"; -$lang['stix0030'] = "Celkem dat odeslĂĄno"; -$lang['stix0031'] = "Doba zapnutĂ­ serveru"; -$lang['stix0032'] = "PƙedtĂ­m Offline:"; -$lang['stix0033'] = "00 dnĆŻ/dnĂ­, 00 hodin, 00 minut, 00 sekund"; -$lang['stix0034'] = "PrĆŻměrnĂĄ ztrĂĄta paketĆŻ"; -$lang['stix0035'] = "CelkovĂ© statistiky"; -$lang['stix0036'] = "JmĂ©no serveru"; -$lang['stix0037'] = "IP adresa serveru (adresa : Port)"; -$lang['stix0038'] = "Heslo na serveru"; -$lang['stix0039'] = "ĆŸĂĄdnĂœ (Server je veƙejnĂœ)"; -$lang['stix0040'] = "Ano (Server je soukromĂœ)"; -$lang['stix0041'] = "ID serveru"; -$lang['stix0042'] = "OS serveru"; -$lang['stix0043'] = "Verze serveru"; -$lang['stix0044'] = "VytvoƙenĂ­ serveru (dd/mm/yyyy)"; -$lang['stix0045'] = "Zaƙazen v serverlistu"; -$lang['stix0046'] = "AktivnĂ­"; -$lang['stix0047'] = "NeaktivnĂ­"; -$lang['stix0048'] = "Nedostatek dat"; -$lang['stix0049'] = "Online čas uĆŸivatelĆŻ / za měsĂ­c"; -$lang['stix0050'] = "Online čas uĆŸivatelĆŻ / za tĂœden"; -$lang['stix0051'] = "TeamSpeak je rozbitĂœ, ĆŸĂĄdnĂ© datum VytvoƙenĂ­!"; -$lang['stix0052'] = "OstatnĂ­"; -$lang['stix0053'] = "AktivnĂ­ čas (v dnech)"; -$lang['stix0054'] = "NeaktivnĂ­ čas (v dnech)"; -$lang['stix0055'] = "online za poslednĂ­ch 24 hodin"; -$lang['stix0056'] = "online poslednĂ­ %s dny/dnĆŻ"; -$lang['stix0059'] = "seznam uĆŸivatelĆŻ"; -$lang['stix0060'] = "Počet uĆŸivatelĆŻ"; -$lang['stix0061'] = "UkaĆŸ vĆĄechny verze"; -$lang['stix0062'] = "UkaĆŸ vĆĄechny nĂĄrodnosti"; -$lang['stix0063'] = "UkaĆŸ vĆĄechny platformy"; -$lang['stix0064'] = "Za poslednĂ­ čtvrtletĂ­"; -$lang['stmy0001'] = "MĂ© statistiky"; -$lang['stmy0002'] = "Moje poƙadĂ­"; -$lang['stmy0003'] = "PoƙadĂ­ v databĂĄzi (ID):"; -$lang['stmy0004'] = "TajnĂœ ID klíč:"; -$lang['stmy0005'] = "Počet pƙipojenĂ­ na server:"; -$lang['stmy0006'] = "PrvnĂ­ pƙipojenĂ­:"; -$lang['stmy0007'] = "Celkem online:"; -$lang['stmy0008'] = "Online za poslednĂ­ch %s dnĆŻ:"; -$lang['stmy0009'] = "AktivnĂ­ za poslednĂ­ch %s dnĆŻ:"; -$lang['stmy0010'] = "Dokončeno ĂșkolĆŻ:"; -$lang['stmy0011'] = "Úroveƈ v počtu strĂĄvenĂœch hodin"; -$lang['stmy0012'] = "Čas: legendĂĄrnĂ­"; -$lang['stmy0013'] = "ProtoĆŸe jsi byl online %s hodin."; -$lang['stmy0014'] = "Hotovo"; -$lang['stmy0015'] = "Čas: Zlato"; -$lang['stmy0016'] = "% pro LegendĂĄrnĂ­"; -$lang['stmy0017'] = "Čas: Stƙíbro"; -$lang['stmy0018'] = "% pro Zlato"; -$lang['stmy0019'] = "Čas: Bronz"; -$lang['stmy0020'] = "% pro Stƙíbro"; -$lang['stmy0021'] = "Čas: Bez hodnosti"; -$lang['stmy0022'] = "% pro Bronz"; -$lang['stmy0023'] = "Úroveƈ v počtu pƙipojenĂ­"; -$lang['stmy0024'] = "LegendĂĄrnĂ­"; -$lang['stmy0025'] = "Celkově si se pƙipojil %s-krĂĄt na server."; -$lang['stmy0026'] = "Zlato"; -$lang['stmy0027'] = "Stƙíbro"; -$lang['stmy0028'] = "Bronz"; -$lang['stmy0029'] = "Bez hodnosti (unranked)"; -$lang['stmy0030'] = "Postup do dalĆĄĂ­ Ășrovně aktivity"; -$lang['stmy0031'] = "Z toho aktivnĂ­"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "NĂĄrodnost"; -$lang['stna0002'] = "Statistiky"; -$lang['stna0003'] = "KĂłd"; -$lang['stna0004'] = "Spočítat"; -$lang['stna0005'] = "Verze"; -$lang['stna0006'] = "Platformy"; -$lang['stna0007'] = "ProcentuĂĄlnĂ­ část"; -$lang['stnv0001'] = "ServerovĂ© novinky"; -$lang['stnv0002'] = "Zavƙít"; -$lang['stnv0003'] = "Obnovit informace o uĆŸivateli"; -$lang['stnv0004'] = "Obnovte pouze tehdy, pokud se změnily vaĆĄe informace na TS3 (napƙíklad vaĆĄe pƙezdĂ­vka)."; -$lang['stnv0005'] = "Bude to fungovat jenom v pƙípadě, ĆŸe jsi pƙipojen na TeamSpeak serveru!"; -$lang['stnv0006'] = "Obnovit"; -$lang['stnv0016'] = "NenĂ­ dostupnĂ©"; -$lang['stnv0017'] = "Nejste pƙipojen na server! Po pƙipojenĂ­ obnovte (F5) strĂĄnku."; -$lang['stnv0018'] = "Pƙipojte se k serveru TS3 a potĂ© Aktualizujte relaci stisknutĂ­m modrĂ©ho tlačítka Aktualizovat v pravĂ©m hornĂ­m rohu."; -$lang['stnv0019'] = "Moje statistiky - obsah strĂĄnky"; -$lang['stnv0020'] = "Tato strĂĄnka obsahuje celkovĂ© shrnutĂ­ vaĆĄich osobnĂ­ch statistik a aktivity na serveru."; -$lang['stnv0021'] = "Informace jsou shromaĆŸÄovĂĄny od počátku systĂ©mu Ranksystem, nejsou od počátku serveru TeamSpeak."; -$lang['stnv0022'] = "Tato strĂĄnka obdrĆŸĂ­ svĂ© hodnoty z databĂĄze. TakĆŸe hodnoty mohou bĂœt trochu zpoĆŸděny."; -$lang['stnv0023'] = "Součet uvnitƙ tabulky se mĆŻĆŸe liĆĄit od částky „CelkovĂœ uĆŸivatel“. DĆŻvodem je, ĆŸe tyto Ășdaje nebyly shromĂĄĆŸděny se starĆĄĂ­mi verzemi systĂ©mu Ranksystem."; -$lang['stnv0024'] = "Ranksystem"; -$lang['stnv0025'] = "OmezenĂœ vstup"; -$lang['stnv0026'] = "VĆĄe"; -$lang['stnv0027'] = "Chyba! VypadĂĄ to, ĆŸe Ranksystem nenĂ­ spojen s TeamSpeak serverem!"; -$lang['stnv0028'] = "(Nejste pƙipojen na TS3!)"; -$lang['stnv0029'] = "Seznam vĆĄech uĆŸivatelĆŻ"; -$lang['stnv0030'] = "Informace o Ranksystemu"; -$lang['stnv0031'] = "O vyhledĂĄvacĂ­m poli mĆŻĆŸete vyhledĂĄvat vzor v nĂĄzve klienta, unique Client-ID a Client-database-ID."; -$lang['stnv0032'] = "MĆŻĆŸete takĂ© pouĆŸĂ­t moĆŸnosti filtru zobrazenĂ­ (viz nĂ­ĆŸe). Zadejte takĂ© filtr do vyhledĂĄvacĂ­ho pole."; -$lang['stnv0033'] = "Kombinace filtru a vyhledĂĄvacĂ­ho vzoru je moĆŸnĂĄ. Nejprve zadejte filtr bez jakĂ©hokoli podepisovĂĄnĂ­ vzoru vyhledĂĄvĂĄnĂ­."; -$lang['stnv0034'] = "Je takĂ© moĆŸnĂ© kombinovat vĂ­ce filtrĆŻ. Zadejte postupně toto pole do vyhledĂĄvacĂ­ho pole."; -$lang['stnv0035'] = "Pƙíklad:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Zobrazit pouze klienty, kteƙí jsou vyloučeny (client, servergroup or channel vyjĂ­mka)."; -$lang['stnv0037'] = "Zobrazit pouze klienty, kteƙí nejsou vyloučeny."; -$lang['stnv0038'] = "Zobrazit pouze klienty, kteƙí jsou online."; -$lang['stnv0039'] = "Zobrazit pouze klienty, kteƙí nejsou online."; -$lang['stnv0040'] = "Zobrazit pouze klienty, kteƙí jsou v definovanĂ© skupině. Reprezentace pozice / Ășrovně aktu.
Nahradit GROUPID s poĆŸadovanĂœm identifikĂĄtorem serverovĂ© skupiny."; -$lang['stnv0041'] = "Zobrazit pouze klienty, kteƙí jsou vybrĂĄny podle lastseen.
Nahradit OPERATOR 's' & lt; nebo ">" nebo '=' nebo '! ='.
A nahradit TIME časovĂœm razĂ­tkem nebo datem s formĂĄtem 'Ymd Hi' (pƙíklad: 2016-06-18 20-25). Pƙíklad: filtr: lastseen: & lt;: 2016-06-18 20-25:"; -$lang['stnv0042'] = "Zobrazit pouze klienty, kteƙí jsou z definovanĂ© země

Nahradit TS3-COUNTRY-CODE se zamĂœĆĄlenou zemĂ­.
Seznam kĂłdĆŻ google pro ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "Pƙipojit se na TS3"; -$lang['stri0001'] = "Informace o Ranksystemu"; -$lang['stri0002'] = "Co je to Ranksystem?"; -$lang['stri0003'] = "Je to bot pro TS3, kterĂœ automaticky uděluje hodnosti (serverovĂ© skupiny) uĆŸivateli na serveru TeamSpeak 3 pro online čas nebo on-line činnost. TakĂ© shromaĆŸÄuje informace a statistiky o uĆŸivateli a zobrazĂ­ vĂœsledek na tomto webu."; -$lang['stri0004'] = "Kdo vytvoƙil Ranksystem?"; -$lang['stri0005'] = "Kdy byl vytvoƙen Ranksystem?"; -$lang['stri0006'] = "PrvnĂ­ alpha byla vydĂĄna: 5. ƙíjna 2014."; -$lang['stri0007'] = "PrvnĂ­ beta byla vydĂĄna: 1. Ășnora 2015."; -$lang['stri0008'] = "NejnovějĆĄĂ­ verzi najde na Ranksystem Website."; -$lang['stri0009'] = "V čem byl Ranksystem napsĂĄn?"; -$lang['stri0010'] = "Ranksystem byl napsĂĄn v"; -$lang['stri0011'] = "PouĆŸĂ­vĂĄ takĂ© nĂĄsledujĂ­cĂ­ knihovny:"; -$lang['stri0012'] = "SpeciĂĄlnĂ­ poděkovĂĄnĂ­:"; -$lang['stri0013'] = "%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'] = "%s za českĂœ pƙeklad"; -$lang['stri0025'] = "%s za polskĂœ pƙeklad"; -$lang['stri0026'] = "%s za ĆĄpanělskĂœ pƙeklad"; -$lang['stri0027'] = "%s pro maďarskĂœ pƙeklad"; -$lang['stri0028'] = "%s pro ĂĄzerbĂĄjdĆŸĂĄnskĂœ pƙeklad"; -$lang['stri0029'] = "%s pro funkci Imprint"; -$lang['stri0030'] = "%s pro styl 'CosmicBlue' pro strĂĄnku statistik a webovĂ© rozhranĂ­"; -$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"; -$lang['sttw0004'] = "Top 10 nejlepĆĄĂ­ch"; -$lang['sttw0005'] = "Hodin (udĂĄvĂĄ 100 %)"; -$lang['sttw0006'] = "%s hodin (%s%)"; -$lang['sttw0007'] = "Top 10 statistik"; -$lang['sttw0008'] = "Top 10 vs. ostatnĂ­ v online čase"; -$lang['sttw0009'] = "Top 10 vs. ostatnĂ­ v online čase (aktivnĂ­)"; -$lang['sttw0010'] = "Top 10 vs. ostatnĂ­ v online čase (neaktivnĂ­)"; -$lang['sttw0011'] = "Top 10 (v hodinĂĄch)"; -$lang['sttw0012'] = "OstatnĂ­ch %s (v hodinĂĄch)"; -$lang['sttw0013'] = "s aktivnĂ­m časem %s %s hodin"; -$lang['sttw0014'] = "hodin"; -$lang['sttw0015'] = "minut"; -$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."; -$lang['stve0004'] = "ZadanĂœ token je invalidnĂ­! Zkuste to prosĂ­m znovu!"; -$lang['stve0005'] = "Gratuluji, ověƙenĂ­ probĂ©hlo Ășspěơně! NynĂ­ mĆŻĆŸeĆĄ pokračovat.."; -$lang['stve0006'] = "Nastala neznĂĄmĂĄ vĂœjimka, prosĂ­m zkus to znovu. Pokud se tato chyba opakuje, kontaktuj admina."; -$lang['stve0007'] = "OvěƙenĂ­ identity na TeamSpeaku"; -$lang['stve0008'] = "1. Zde vyber svĂ© unikĂĄtnĂ­ ID na TS3 serveru pro ověƙenĂ­."; -$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['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 severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s"; -$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server..."; -$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes."; -$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%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 informations [URL]%s[/URL]."; -$lang['upusrerr'] = "Unique Client-ID %s se nemohl pƙipojit na TeamSpeak!"; -$lang['upusrinf'] = "UĆŸivatel %s byl Ășspěơně informovanĂœ.."; -$lang['user'] = "JmĂ©no"; -$lang['verify0001'] = "Ujisti se, ĆŸe jsi pƙipojen na TS3 serveru!"; -$lang['verify0002'] = "Pƙesuƈ se do %smĂ­stnosti%s pro ověƙovĂĄnĂ­!"; -$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :("; -$lang['verify0004'] = "MĂ­stnost pro ověƙovĂĄnĂ­ je prĂĄzdnĂĄ..."; -$lang['wi'] = "Admin panel"; -$lang['wiaction'] = "Akce"; -$lang['wiadmhide'] = "SkrĂœt vyloučenĂ© uĆŸivatele"; -$lang['wiadmhidedesc'] = "SkrĂœt vĂœjimku uĆŸivatele v nĂĄsledujĂ­cĂ­m vĂœběru"; -$lang['wiadmuuid'] = "Bot-Admin"; -$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['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['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'] = "Seznam je prĂĄzdnĂœ. KliknutĂ­m na symbol plus (tlačítko) pƙidĂĄte zĂĄznam!"; -$lang['wibot1'] = "Ranksystem bot by měl bĂœt zastaven. Zkontrolujte nĂ­ĆŸe uvedenĂœ protokol pro vĂ­ce informacĂ­!"; -$lang['wibot2'] = "Ranksystem bot by měl bĂœt spuĆĄtěn. Zkontrolujte nĂ­ĆŸe uvedenĂœ protokol pro vĂ­ce informacĂ­!"; -$lang['wibot3'] = "Ranksystem bot by měl bĂœt restartovĂĄn. Zkontrolujte nĂ­ĆŸe uvedenĂœ protokol pro vĂ­ce informacĂ­!"; -$lang['wibot4'] = "SprĂĄva Ranksystem bota"; -$lang['wibot5'] = "Zapnout bota"; -$lang['wibot6'] = "Vypnout bota"; -$lang['wibot7'] = "Restartovat bota"; -$lang['wibot8'] = "Ranksystem log (vĂœpis):"; -$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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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'] = "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"; -$lang['wiexgrpdesc'] = "Čárka oddělenĂœ seznam ID serverovĂœch skupin, kterĂœ by neměl bĂœt povaĆŸovĂĄn za Ranksystem.
UĆŸivatel v alespoƈ jednom z těchto ID serverovĂœch skupin bude ignorovĂĄn pro hodnocenĂ­."; -$lang['wiexres'] = "vĂœjĂ­mkovĂœ mod"; -$lang['wiexres1'] = "doba počítĂĄnĂ­ (vĂœchozĂ­)"; -$lang['wiexres2'] = "pƙestĂĄvka"; -$lang['wiexres3'] = "čas resetovĂĄnĂ­"; -$lang['wiexresdesc'] = "ExistujĂ­ tƙi reĆŸimy, jak zachĂĄzet s vĂœjimkou. V kaĆŸdĂ©m pƙípadě je pozici (pƙiƙazenĂ­ serverovĂ© skupiny) zakĂĄzĂĄno. MĆŻĆŸete si zvolit rĆŻznĂ© moĆŸnosti, jak by měl bĂœt vynaloĆŸen čas strĂĄvenĂœ od uĆŸivatele (kterĂœ je vyloučen).

1) doba počítĂĄnĂ­ (vĂœchozĂ­): Ve vĂœchozĂ­m nastavenĂ­ Ranksystem takĂ© počítĂĄ online / aktivnĂ­ čas uĆŸivatelĆŻ, kterĂ© jsou vyloučeny (klient / servergroup). S vĂœjimkou je zakĂĄzĂĄna pouze pozice (pƙiƙazenĂ­ serverovĂ© skupiny). To znamenĂĄ, ĆŸe pokud uĆŸivatel nenĂ­ vĂ­ce vyloučen, bude mu pƙiƙazen do skupiny v zĂĄvislosti na jeho shromĂĄĆŸděnĂ©m čase (napƙ. Úroveƈ 3).

2) čas pƙestĂĄvky: Na tĂ©to volbě strĂĄvit čas online a nečinně zmrznout (zlomit) na skutečnou hodnotu (pƙedtĂ­m, neĆŸ je uĆŸivatel vyloučen). Po vynechĂĄnĂ­ vĂœjimky (po odebrĂĄnĂ­ vĂœjimky pro skupinu serverĆŻ nebo odebrĂĄnĂ­ pravopisu vĂœpovědi) se počítĂĄ 'počítĂĄnĂ­'.

3) čas vynulovĂĄnĂ­: S touto funkcĂ­ se počítĂĄ doba online a nečinnosti bude v okamĆŸiku, kdy jiĆŸ uĆŸivatel nenĂ­ vyloučen, vynulovĂĄn (vynechĂĄnĂ­m vĂœjimky skupiny serverĆŻ nebo odebrĂĄnĂ­m pravidla vĂœjimky). TĂœdennĂ­ vĂœjimka by se stĂĄle počítala, dokud se neobnovĂ­.


VĂœjimka z kanĂĄlu nezĂĄleĆŸĂ­ na tom, protoĆŸe čas bude vĆŸdy ignorovĂĄn (jako je reĆŸim pƙeruĆĄenĂ­)."; -$lang['wiexuid'] = "klientskĂĄ vĂœjimka"; -$lang['wiexuiddesc'] = "Čárka odděluje seznam jedinečnĂœch identifikĂĄtorĆŻ klientĆŻ, kterĂ© by se neměly tĂœkat systĂ©mu Ranks.
UĆŸivatel v tomto seznamu bude ignorovĂĄn pro hodnocenĂ­."; -$lang['wiexregrp'] = "odstranit skupinu"; -$lang['wiexregrpdesc'] = "Pokud je uĆŸivatel vyloučen ze systĂ©mu Ranksystem, je odstraněna serverovĂĄ skupina pƙidělenĂĄ systĂ©mem Ranksystem.

Skupina bude odstraněna pouze s '".$lang['wiexres']."' s '".$lang['wiexres1']."'. V ostatnĂ­ch reĆŸimech serverovĂĄ skupina nebude odstraněna.

Tato funkce je relevantnĂ­ pouze v kombinaci s '".$lang['wiexuid']."' nebo '".$lang['wiexgrp']."' v kombinaci s '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Čas v sekundĂĄch"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "definice poƙadĂ­"; -$lang['wigrptime2desc'] = " -Definujte čas, po kterĂ©m by měl uĆŸivatel automaticky zĂ­skat pƙeddefinovanou serverovou skupinu.

čas v sekundĂĄch => ID serverovĂ© skupiny => permanent flag

Max. hodnota je 999.999.999 sekund (pƙes 31 let).

ZadanĂ© sekundy budou hodnoceny jako 'online čas' nebo 'aktivnĂ­ čas', v zĂĄvislosti na zvolenĂ©m „časovĂ©m reĆŸimu“.


Čas v sekundách je potƙeba zadávat kumulativně!

ơpatně:

100 seconds, 100 seconds, 50 seconds
správně:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$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Ư => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$lang['wihladm'] = "Seznam hodnocenĂ­ (reĆŸim administrĂĄtora)"; -$lang['wihladm0'] = "Popis funkce (klikni)"; -$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'] = "Odebrat čas"; -$lang['wihladm3'] = "Reset Ranksystem"; -$lang['wihladm31'] = "reset statistik vĆĄech uĆŸivatelĆŻ"; -$lang['wihladm311'] = "zero time"; -$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."; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "zakĂĄzanĂĄ"; -$lang['wihladmrs1'] = "vytvoƙeno"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Opravdu chcete systĂ©m resetovat?"; -$lang['wihladmrs13'] = "Ano, spust reset"; -$lang['wihladmrs14'] = "Ne, zruĆĄ"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "povoleno"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$lang['wihladmrs2'] = "spracovĂĄvĂĄm.."; -$lang['wihladmrs3'] = "faulted (ended with errors!)"; -$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 job 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['wihlset'] = "nastavenĂ­"; -$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['wiimpaddr'] = "Adresa"; -$lang['wiimpaddrdesc'] = "Sem zadejte svĂ© jmĂ©no a adresu.
Napƙíklad:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-MailovĂĄ adresa"; -$lang['wiimpemaildesc'] = "Sem zadejte svou emailovou adresu.
Napƙíklad:
info@example.com
"; -$lang['wiimpnotes'] = "DodatečnĂ© informace"; -$lang['wiimpnotesdesc'] = "Zde pƙidejte dalĆĄĂ­ informace, napƙíklad odmĂ­tnutĂ­ odpovědnosti.
Ponechejte pole prĂĄzdnĂ©, aby se tato část nezobrazila.
HTML kĂłd pro formĂĄtovĂĄnĂ­ je povolen."; -$lang['wiimpphone'] = "Telefon"; -$lang['wiimpphonedesc'] = "Zde zadejte svĂ© telefonnĂ­ číslo s mezinĂĄrodnĂ­ pƙedvolbou.
Napƙíklad:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Sem vloĆŸte svĂ© zĂĄsady ochrany osobnĂ­ch ĂșdajĆŻ (maximĂĄlně 21,588 znakĆŻ).
HTML kĂłd pro formĂĄtovĂĄnĂ­ je povolen."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint funkce"; -$lang['wiimpswitchdesc'] = "Aktivujte tuto funkci pro veƙejnĂ© zobrazenĂ­ Imprintu a prohlĂĄĆĄenĂ­ o ochraně dat."; -$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."; -$lang['wilogout'] = "OdhlĂĄsit se"; -$lang['wimsgmsg'] = "ZprĂĄvy"; -$lang['wimsgmsgdesc'] = "Definujte zprĂĄvu, kterĂĄ bude odeslĂĄna uĆŸivateli, kdyĆŸ se zvedne dalĆĄĂ­ vyĆĄĆĄĂ­ hodnost.

Tato zprĂĄva bude odeslĂĄna prostƙednictvĂ­m soukromĂ© zprĂĄvy TS3. TakĆŸe kaĆŸdĂœ znalĂœ bb-kĂłd mĆŻĆŸe bĂœt pouĆŸit, coĆŸ takĂ© funguje pro normĂĄlnĂ­ soukromou zprĂĄvu.
%s

dƙíve strĂĄvenĂœ čas lze vyjĂĄdƙit argumenty:
%1\$s - dny
%2\$s - hodiny
%3\$s - minuty
%4\$s - sekundy
%5\$s - jmĂ©no dosaĆŸenĂ© serverovĂ© skupiny
%6$s - jmĂ©no uĆŸivatele (pƙíjemce)

Pƙíklad:
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'] = "Serverové zpråvy"; -$lang['wimsgsndesc'] = "Definujte zpråvu, kterå se zobrazí na strånce /stats/ jako serverové novinky

MĆŻĆŸeĆĄ pouĆŸĂ­t zĂĄkladnĂ­ HTML funkce pro Ășpravu

Napƙíklad:
<b> - pro tučnĂ© pĂ­smo
<u> - pro podtrĆŸenĂ© pĂ­smo
<i> - pro pĂ­smo s kurzĂ­vou
<br> - pro zalamovĂĄnĂ­ textu (novĂœ ƙádek)"; -$lang['wimsgusr'] = "OznĂĄmenĂ­ o hodnocenĂ­"; -$lang['wimsgusrdesc'] = "Informujte uĆŸivatele se soukromou textovou zprĂĄvou o jeho pozici."; -$lang['winav1'] = "TeamSpeak"; -$lang['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "DatabĂĄze"; -$lang['winav3'] = "HlavnĂ­ nastavenĂ­"; -$lang['winav4'] = "OstatnĂ­"; -$lang['winav5'] = "ZprĂĄva"; -$lang['winav6'] = "StrĂĄnka Statistiky"; -$lang['winav7'] = "Administrace"; -$lang['winav8'] = "Start / Stop bot"; -$lang['winav9'] = "Aktualizace je k dispozici!"; -$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['winxmsg2'] = "ZprĂĄva (nejvyĆĄĆĄĂ­)"; -$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 - aktuĂĄlnĂ­ uĆŸivatelova hodnost
%8$s - jméno aktuålní serverové skupiny
%9$s - doba aktuålní serverové skupiny


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 - aktuĂĄlnĂ­ uĆŸivatelova hodnost
%8$s - jméno aktuålní serverové skupiny
%9$s - doba aktuålní serverové skupiny


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 - aktuĂĄlnĂ­ uĆŸivatelova hodnost
%8$s - jméno aktuålní serverové skupiny
%9$s - doba aktuålní serverové skupiny


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. 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"; -$lang['wirtpw5'] = "Byla odeslĂĄna soukromĂĄ textovĂĄ zprĂĄva TeamSpeak 3 adminu s novĂœm heslem. Klikněte zde% s pro pƙihlĂĄĆĄenĂ­."; -$lang['wirtpw6'] = "Heslo webovĂ©ho rozhranĂ­ bylo Ășspěơně resetovĂĄno. PoĆŸadavek na IP% s."; -$lang['wirtpw7'] = "Obnovit heslo"; -$lang['wirtpw8'] = "Zde mĆŻĆŸete obnovit heslo webinterface."; -$lang['wirtpw9'] = "Pro obnovenĂ­ hesla je tƙeba provĂ©st nĂĄsledujĂ­cĂ­ kroky:"; -$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Zobrazit/skrĂœt sloupec"; -$lang['wishcolat'] = "aktivnĂ­ čas"; -$lang['wishcoldesc'] = "Chcete-li tento sloupec zobrazit nebo skrĂœt na strĂĄnce statistik, pƙepněte jej na 'on' nebo 'off'.

To vĂĄm umoĆŸnĂ­ individuĂĄlně nakonfigurovat seznam povyĆĄenĂ­ (stats/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['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['wishcolot'] = "online čas"; -$lang['wishdef'] = "DefaultnĂ­ ƙazenĂ­ sloupcĆŻ"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Definujte vĂœchozĂ­ sloupec ƙazenĂ­ pro strĂĄnku Seznam povĂœĆĄenĂ­."; -$lang['wishexcld'] = "s vĂœjimkou klienta"; -$lang['wishexclddesc'] = "Zobrazit klienty v seznamu_rankup.php, kterĂ© jsou vyloučeny, a proto se nezĂșčastnĂ­ systĂ©mu Ranks."; -$lang['wishexgrp'] = "s vĂœjimkou skupin"; -$lang['wishexgrpdesc'] = "Zobrazte klienty v seznamu_rankup.php, kterĂ© jsou v seznamu 'vĂœjimka pro klienty' a neměli by se povaĆŸovat za systĂ©m Ranks."; -$lang['wishhicld'] = "Klienti na nejvyĆĄĆĄĂ­ Ășrovni"; -$lang['wishhiclddesc'] = "Zobrazit klienty v seznamu_rankup.php, kterĂœ dosĂĄhl nejvyĆĄĆĄĂ­ Ășrovně v systĂ©mu Ranks."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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'] = "DefaultnĂ­ ƙazenĂ­ poƙadĂ­"; -$lang['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$lang['wishsortdesc'] = "Definujte vĂœchozĂ­ poƙadĂ­ ƙazenĂ­ pro strĂĄnku Seznam povĂœĆĄenĂ­."; -$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['wistyle'] = "vlastnĂ­ styl"; -$lang['wistyledesc'] = "Definujte odliĆĄnĂœ, uĆŸivatelem definovanĂœ styl (Style) pro systĂ©m hodnocenĂ­.
Tento styl bude pouĆŸit pro strĂĄnku statistik a webovĂ© rozhranĂ­.

UmĂ­stěte svĆŻj vlastnĂ­ styl do adresáƙe 'style' ve vlastnĂ­m podsloĆŸce.
NĂĄzev podsloĆŸky určuje nĂĄzev stylu.

Styly začínajĂ­cĂ­ 'TSN_' jsou dodĂĄvĂĄny systĂ©mem hodnocenĂ­. Tyto budou aktualizovĂĄny v budoucĂ­ch aktualizacĂ­ch.
V těchto by se tedy neměly provĂĄdět ĆŸĂĄdnĂ© Ășpravy!
NicmĂ©ně mohou slouĆŸit jako ĆĄablona. ZkopĂ­rujte styl do vlastnĂ­ sloĆŸky, abyste mohli provĂĄdět Ășpravy.

Jsou potƙebnĂ© dvě soubory CSS. Jeden pro strĂĄnku statistik a druhĂœ pro rozhranĂ­ webu.
MĆŻĆŸe bĂœt takĂ© zahrnut vlastnĂ­ JavaScript, ale to je volitelnĂ©.

Konvence nĂĄzvĆŻ CSS:
- Fix 'ST.css' pro strĂĄnku statistik (/stats/)
- Fix 'WI.css' pro strånku webového rozhraní (/webinterface/)


Konvence nĂĄzvĆŻ pro JavaScript:
- Fix 'ST.js' pro strĂĄnku statistik (/stats/)
- Fix 'WI.js' pro strånku webového rozhraní (/webinterface/)


Pokud byste chtěli svĆŻj styl takĂ© poskytnout ostatnĂ­m, mĆŻĆŸete ho poslat na nĂĄsledujĂ­cĂ­ e-mail:

%s

S dalĆĄĂ­m vydĂĄnĂ­m ho vydĂĄme!"; -$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['wisvres'] = "Je potƙeba restartovat Ranksystem pƙedtĂ­m, neĆŸ se změny projevĂ­! %s"; -$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['wits3pre'] = "Pƙedpona pƙíkazu botu"; -$lang['wits3predesc'] = "Na serveru TeamSpeak mĆŻĆŸete komunikovat s botem Ranksystem pomocĂ­ chatu. Ve vĂœchozĂ­m nastavenĂ­ jsou pƙíkazy pro bota označeny vykƙičnĂ­kem '!'. Pƙedpona se pouĆŸĂ­vĂĄ k identifikaci pƙíkazĆŻ pro bota jako takovĂœch.

Tuto pƙedponu lze nahradit libovolnou jinou poĆŸadovanou pƙedponou. To mĆŻĆŸe bĂœt nezbytnĂ© v pƙípadě pouĆŸĂ­vĂĄnĂ­ jinĂœch botĆŻ s podobnĂœmi pƙíkazy.

Napƙíklad vĂœchozĂ­ pƙíkaz pro bota by vypadal takto:
!help


Pokud je pƙedpona nahrazena znakem '#', pƙíkaz by vypadal takto:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Heslo pro uĆŸivatele query."; -$lang['wits3querusr'] = "TS3 Query-uĆŸivatel"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query (pƙihlaĆĄovacĂ­ jmĂ©no)
Ve vĂœchozĂ­m nastavenĂ­ nastaveno-> serveradmin
Samozƙejmě mĆŻĆŸete vytvoƙit novĂœ query Ășčet pƙímo pro Ranksystem.
PotƙebnĂ© oprĂĄvněnĂ­ najdete zde:
%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['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
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'] = "stabilni"; -$lang['wiupch1'] = "beta"; -$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."; -?> \ No newline at end of file + pƙidĂĄn do Ranksystem.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Povolit spuĆĄtěnĂ­/zastavenĂ­ Ranksystem Bot pomocĂ­ API'; +$lang['apipermdesc'] = '(ON = Povolit ; OFF = ZakĂĄzat)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'vzestupně'; +$lang['autooff'] = 'autostart is deactivated'; +$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'] = '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Ă­.'; +$lang['cleanno'] = 'Zde nenĂ­ co smazat...'; +$lang['cleanp'] = 'ČistĂ© obdobĂ­'; +$lang['cleanpdesc'] = 'Nastavte čas, kterĂœ musĂ­ uplynout pƙedtĂ­m, neĆŸ se spustĂ­ ščistĂœ klientš.

Nastavte čas v sekundách.

Doporučuje se jednou denně, protoĆŸe vyčistěnĂ­ klientĆŻ vyĆŸaduje větĆĄĂ­ čas pro větĆĄĂ­ databĂĄze.'; +$lang['cleanrs'] = 'UĆŸivatelĂ© v databĂĄzi: %s'; +$lang['cleants'] = 'NalezenĂ­ uĆŸivatelĂ© v TeamSpeak databĂĄzi: %s (of %s)'; +$lang['day'] = '%s den'; +$lang['days'] = '%s dnĆŻ'; +$lang['dbconerr'] = 'ProblĂ©m s pƙipojenĂ­m do databĂĄze: '; +$lang['desc'] = 'sestupně'; +$lang['descr'] = 'Popis'; +$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.'; +$lang['errgrplist'] = 'Chyba pƙi volĂĄnĂ­ servergrouplist: '; +$lang['errlogin'] = 'PƙihlaĆĄovacĂ­ ID a/nebo heslo bylo zadĂĄno ĆĄpatně! Zkuste to znovu...'; +$lang['errlogin2'] = 'Brute force protection: Zkuste to za %s sekund!'; +$lang['errlogin3'] = 'Brute force protection: Mnoho pƙihlĂĄĆĄenĂ­ se ĆĄpatnĂœmi Ășdaji! Byl jste zabanovĂĄn na 300 sekund!'; +$lang['error'] = 'Chyba (Error) '; +$lang['errorts3'] = 'TS3 Error: '; +$lang['errperm'] = "ProsĂ­m ověƙ oprĂĄvněnĂ­ v adresáƙi '%s'!"; +$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['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$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!
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 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 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)'; +$lang['isntwidbmsg'] = 'Database error: '; +$lang['isntwidbname'] = 'DB Name:'; +$lang['isntwidbnamedesc'] = 'JmĂ©no databĂĄze'; +$lang['isntwidbpass'] = 'Heslo do databĂĄze:'; +$lang['isntwidbpassdesc'] = 'Heslo pro pƙístup do databĂĄze'; +$lang['isntwidbtype'] = 'Typ DatabĂĄze:'; +$lang['isntwidbtypedesc'] = '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 uĆŸivatel:'; +$lang['isntwidbusrdesc'] = 'UĆŸivatel pro pƙístup do databĂĄze'; +$lang['isntwidel'] = "ProsĂ­m odstraƈte 'install.php' z vaĆĄeho webovĂ©ho uloĆŸiĆĄtě."; +$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ƈ'; +$lang['listcldbid'] = 'ID v databĂĄzi'; +$lang['listexcept'] = 'Ne, udělat vyjĂ­mku'; +$lang['listgrps'] = 'AktuĂĄlnĂ­ skupina od'; +$lang['listnat'] = 'Země'; +$lang['listnick'] = 'JmĂ©no uĆŸivatele'; +$lang['listnxsg'] = 'DalĆĄĂ­ Ășroveƈ'; +$lang['listnxup'] = 'DalĆĄĂ­ Ășroveƈ za'; +$lang['listpla'] = 'Platforma'; +$lang['listrank'] = 'Úroveƈ'; +$lang['listseen'] = 'Naposledy pƙipojen'; +$lang['listsuma'] = 'Celkově online (aktivně)'; +$lang['listsumi'] = 'Celkově online (neaktivně)'; +$lang['listsumo'] = 'Celkově online'; +$lang['listuid'] = 'UnikĂĄtnĂ­ ID'; +$lang['listver'] = 'Verze klienta'; +$lang['login'] = 'PƙihlĂĄĆĄenĂ­'; +$lang['module_disabled'] = 'This module is deactivated.'; +$lang['msg0001'] = 'Ranksystem je na verzi: %s'; +$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'; +$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'] = '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'; +$lang['pass3'] = 'StarĂ© heslo'; +$lang['pass4'] = 'NovĂ© heslo'; +$lang['pass5'] = 'ZapomenutĂ© heslo?'; +$lang['permission'] = 'OprĂĄvněnĂ­'; +$lang['privacy'] = 'ZĂĄsady ochrany osobnĂ­ch ĂșdajĆŻ'; +$lang['repeat'] = 'Opakovat (obnovit)'; +$lang['resettime'] = 'ObnovenĂ­ času online a nečinnosti uĆŸivatele% s (jedinečnĂ© ID klienta:% s; klientskĂ© databĂĄze-ID% s) na nulu, coĆŸ zpĆŻsobilo, ĆŸe uĆŸivatel byl odstraněn z vĂœjimky.'; +$lang['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).'; +$lang['setontime'] = 'Pƙidat čas'; +$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_pib'] = 'PiB'; +$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'] = 'Vyber serverovĂ© skupiny, kterĂ© si uĆŸivatel mĆŻĆŸe pƙiƙadit.'; +$lang['stag0004'] = 'MaximĂĄlnĂ­ počet skupin'; +$lang['stag0005'] = 'Limit serverovĂœch skupin, kterĂ© mohou bĂœt nastaveny současně!'; +$lang['stag0006'] = 'Je zde vĂ­ce uĆŸivatelĆŻ online se stejnou unique ID s vaĆĄĂ­ IP adresou. ProsĂ­m %sklikněte sem%s pro ověƙenĂ­.'; +$lang['stag0007'] = 'Počkejte, neĆŸ se vaĆĄe poslednĂ­ změny projevĂ­ dƙíve, neĆŸ změnĂ­te dalĆĄĂ­ věci ...'; +$lang['stag0008'] = 'Skupiny Ășspěơně uloĆŸeny. MĆŻĆŸe to nějakou dobu trvat, neĆŸ se změny projevĂ­ na TS3 serveru!'; +$lang['stag0009'] = 'NemĆŻĆŸete vybrat(mĂ­t) vĂ­ce %s skupin v ten stejnĂœ čas!'; +$lang['stag0010'] = 'Zvolte prosĂ­m alespoƈ jednu novou skupinu.'; +$lang['stag0011'] = 'MaximĂĄlnĂ­ počet ikonek: '; +$lang['stag0012'] = 'nastavit skupiny'; +$lang['stag0013'] = 'Modul ON/OFF'; +$lang['stag0014'] = 'Zapněte doplněk ON (enabled) nebo OFF (disabled).

Pƙi deaktivaci doplƈku se moĆŸnĂĄ část na statistiku / webu skryje.'; +$lang['stag0015'] = 'Nemohl jsem tě najĂ­t na TeamSpeak serveru. %sKlikni zde%s pro ověƙenĂ­ svĂ© identity.'; +$lang['stag0016'] = 'Je tƙeba ověƙenĂ­!'; +$lang['stag0017'] = 'OvěƙenĂ­ zde..'; +$lang['stag0018'] = 'Seznam vyloučenĂœch skupin serverĆŻ. Pokud uĆŸivatel vlastnĂ­ jednu z těchto skupin serverĆŻ, nebude moci doplněk pouĆŸĂ­vat.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Statistiky serveru'; +$lang['stix0002'] = 'Celkem uĆŸivatelĆŻ'; +$lang['stix0003'] = 'Zobrazit podrobnosti'; +$lang['stix0004'] = 'Online čas vĆĄech uĆŸivatelĆŻ'; +$lang['stix0005'] = 'NejaktivnějĆĄĂ­ uĆŸivatelĂ© od počátku věkĆŻ'; +$lang['stix0006'] = 'NejaktivnějĆĄĂ­ uĆŸivatelĂ© za měsĂ­c'; +$lang['stix0007'] = 'NejaktivnějĆĄĂ­ uĆŸivatelĂ© za tĂœden'; +$lang['stix0008'] = 'VyuĆŸitĂ­ serveru'; +$lang['stix0009'] = 'Za 7 dnĆŻ'; +$lang['stix0010'] = 'Za 30 dnĆŻ'; +$lang['stix0011'] = 'Za 24 hodin'; +$lang['stix0012'] = 'Vyberte obdobĂ­'; +$lang['stix0013'] = 'Za poslednĂ­ den'; +$lang['stix0014'] = 'Za poslednĂ­ tĂœden'; +$lang['stix0015'] = 'Za poslednĂ­ měsĂ­c'; +$lang['stix0016'] = 'AktivnĂ­ / neaktivnĂ­ čas (vĆĄech UĆŸivatelĆŻ)'; +$lang['stix0017'] = 'Verze klientĆŻ'; +$lang['stix0018'] = 'NĂĄrodnost uĆŸivatelĆŻ'; +$lang['stix0019'] = 'OperačnĂ­ systĂ©my'; +$lang['stix0020'] = 'AktuĂĄlnĂ­ statistiky'; +$lang['stix0023'] = 'Stav serveru'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Počet uĆŸivatelĆŻ (online / max)'; +$lang['stix0027'] = 'Počet mĂ­stnostĂ­'; +$lang['stix0028'] = 'PrĆŻměrnĂœ ping serveru'; +$lang['stix0029'] = 'Celkem dat pƙijato'; +$lang['stix0030'] = 'Celkem dat odeslĂĄno'; +$lang['stix0031'] = 'Doba zapnutĂ­ serveru'; +$lang['stix0032'] = 'PƙedtĂ­m Offline:'; +$lang['stix0033'] = '00 dnĆŻ/dnĂ­, 00 hodin, 00 minut, 00 sekund'; +$lang['stix0034'] = 'PrĆŻměrnĂĄ ztrĂĄta paketĆŻ'; +$lang['stix0035'] = 'CelkovĂ© statistiky'; +$lang['stix0036'] = 'JmĂ©no serveru'; +$lang['stix0037'] = 'IP adresa serveru (adresa : Port)'; +$lang['stix0038'] = 'Heslo na serveru'; +$lang['stix0039'] = 'ĆŸĂĄdnĂœ (Server je veƙejnĂœ)'; +$lang['stix0040'] = 'Ano (Server je soukromĂœ)'; +$lang['stix0041'] = 'ID serveru'; +$lang['stix0042'] = 'OS serveru'; +$lang['stix0043'] = 'Verze serveru'; +$lang['stix0044'] = 'VytvoƙenĂ­ serveru (dd/mm/yyyy)'; +$lang['stix0045'] = 'Zaƙazen v serverlistu'; +$lang['stix0046'] = 'AktivnĂ­'; +$lang['stix0047'] = 'NeaktivnĂ­'; +$lang['stix0048'] = 'Nedostatek dat'; +$lang['stix0049'] = 'Online čas uĆŸivatelĆŻ / za měsĂ­c'; +$lang['stix0050'] = 'Online čas uĆŸivatelĆŻ / za tĂœden'; +$lang['stix0051'] = 'TeamSpeak je rozbitĂœ, ĆŸĂĄdnĂ© datum VytvoƙenĂ­!'; +$lang['stix0052'] = 'OstatnĂ­'; +$lang['stix0053'] = 'AktivnĂ­ čas (v dnech)'; +$lang['stix0054'] = 'NeaktivnĂ­ čas (v dnech)'; +$lang['stix0055'] = 'online za poslednĂ­ch 24 hodin'; +$lang['stix0056'] = 'online poslednĂ­ %s dny/dnĆŻ'; +$lang['stix0059'] = 'seznam uĆŸivatelĆŻ'; +$lang['stix0060'] = 'Počet uĆŸivatelĆŻ'; +$lang['stix0061'] = 'UkaĆŸ vĆĄechny verze'; +$lang['stix0062'] = 'UkaĆŸ vĆĄechny nĂĄrodnosti'; +$lang['stix0063'] = 'UkaĆŸ vĆĄechny platformy'; +$lang['stix0064'] = 'Za poslednĂ­ čtvrtletĂ­'; +$lang['stmy0001'] = 'MĂ© statistiky'; +$lang['stmy0002'] = 'Moje poƙadĂ­'; +$lang['stmy0003'] = 'PoƙadĂ­ v databĂĄzi (ID):'; +$lang['stmy0004'] = 'TajnĂœ ID klíč:'; +$lang['stmy0005'] = 'Počet pƙipojenĂ­ na server:'; +$lang['stmy0006'] = 'PrvnĂ­ pƙipojenĂ­:'; +$lang['stmy0007'] = 'Celkem online:'; +$lang['stmy0008'] = 'Online za poslednĂ­ch %s dnĆŻ:'; +$lang['stmy0009'] = 'AktivnĂ­ za poslednĂ­ch %s dnĆŻ:'; +$lang['stmy0010'] = 'Dokončeno ĂșkolĆŻ:'; +$lang['stmy0011'] = 'Úroveƈ v počtu strĂĄvenĂœch hodin'; +$lang['stmy0012'] = 'Čas: legendĂĄrnĂ­'; +$lang['stmy0013'] = 'ProtoĆŸe jsi byl online %s hodin.'; +$lang['stmy0014'] = 'Hotovo'; +$lang['stmy0015'] = 'Čas: Zlato'; +$lang['stmy0016'] = '% pro LegendĂĄrnĂ­'; +$lang['stmy0017'] = 'Čas: Stƙíbro'; +$lang['stmy0018'] = '% pro Zlato'; +$lang['stmy0019'] = 'Čas: Bronz'; +$lang['stmy0020'] = '% pro Stƙíbro'; +$lang['stmy0021'] = 'Čas: Bez hodnosti'; +$lang['stmy0022'] = '% pro Bronz'; +$lang['stmy0023'] = 'Úroveƈ v počtu pƙipojenĂ­'; +$lang['stmy0024'] = 'LegendĂĄrnĂ­'; +$lang['stmy0025'] = 'Celkově si se pƙipojil %s-krĂĄt na server.'; +$lang['stmy0026'] = 'Zlato'; +$lang['stmy0027'] = 'Stƙíbro'; +$lang['stmy0028'] = 'Bronz'; +$lang['stmy0029'] = 'Bez hodnosti (unranked)'; +$lang['stmy0030'] = 'Postup do dalĆĄĂ­ Ășrovně aktivity'; +$lang['stmy0031'] = 'Z toho aktivnĂ­'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'NĂĄrodnost'; +$lang['stna0002'] = 'Statistiky'; +$lang['stna0003'] = 'KĂłd'; +$lang['stna0004'] = 'Spočítat'; +$lang['stna0005'] = 'Verze'; +$lang['stna0006'] = 'Platformy'; +$lang['stna0007'] = 'ProcentuĂĄlnĂ­ část'; +$lang['stnv0001'] = 'ServerovĂ© novinky'; +$lang['stnv0002'] = 'Zavƙít'; +$lang['stnv0003'] = 'Obnovit informace o uĆŸivateli'; +$lang['stnv0004'] = 'Obnovte pouze tehdy, pokud se změnily vaĆĄe informace na TS3 (napƙíklad vaĆĄe pƙezdĂ­vka).'; +$lang['stnv0005'] = 'Bude to fungovat jenom v pƙípadě, ĆŸe jsi pƙipojen na TeamSpeak serveru!'; +$lang['stnv0006'] = 'Obnovit'; +$lang['stnv0016'] = 'NenĂ­ dostupnĂ©'; +$lang['stnv0017'] = 'Nejste pƙipojen na server! Po pƙipojenĂ­ obnovte (F5) strĂĄnku.'; +$lang['stnv0018'] = 'Pƙipojte se k serveru TS3 a potĂ© Aktualizujte relaci stisknutĂ­m modrĂ©ho tlačítka Aktualizovat v pravĂ©m hornĂ­m rohu.'; +$lang['stnv0019'] = 'Moje statistiky - obsah strĂĄnky'; +$lang['stnv0020'] = 'Tato strĂĄnka obsahuje celkovĂ© shrnutĂ­ vaĆĄich osobnĂ­ch statistik a aktivity na serveru.'; +$lang['stnv0021'] = 'Informace jsou shromaĆŸÄovĂĄny od počátku systĂ©mu Ranksystem, nejsou od počátku serveru TeamSpeak.'; +$lang['stnv0022'] = 'Tato strĂĄnka obdrĆŸĂ­ svĂ© hodnoty z databĂĄze. TakĆŸe hodnoty mohou bĂœt trochu zpoĆŸděny.'; +$lang['stnv0023'] = 'Součet uvnitƙ tabulky se mĆŻĆŸe liĆĄit od částky „CelkovĂœ uĆŸivatel“. DĆŻvodem je, ĆŸe tyto Ășdaje nebyly shromĂĄĆŸděny se starĆĄĂ­mi verzemi systĂ©mu Ranksystem.'; +$lang['stnv0024'] = 'Ranksystem'; +$lang['stnv0025'] = 'OmezenĂœ vstup'; +$lang['stnv0026'] = 'VĆĄe'; +$lang['stnv0027'] = 'Chyba! VypadĂĄ to, ĆŸe Ranksystem nenĂ­ spojen s TeamSpeak serverem!'; +$lang['stnv0028'] = '(Nejste pƙipojen na TS3!)'; +$lang['stnv0029'] = 'Seznam vĆĄech uĆŸivatelĆŻ'; +$lang['stnv0030'] = 'Informace o Ranksystemu'; +$lang['stnv0031'] = 'O vyhledĂĄvacĂ­m poli mĆŻĆŸete vyhledĂĄvat vzor v nĂĄzve klienta, unique Client-ID a Client-database-ID.'; +$lang['stnv0032'] = 'MĆŻĆŸete takĂ© pouĆŸĂ­t moĆŸnosti filtru zobrazenĂ­ (viz nĂ­ĆŸe). Zadejte takĂ© filtr do vyhledĂĄvacĂ­ho pole.'; +$lang['stnv0033'] = 'Kombinace filtru a vyhledĂĄvacĂ­ho vzoru je moĆŸnĂĄ. Nejprve zadejte filtr bez jakĂ©hokoli podepisovĂĄnĂ­ vzoru vyhledĂĄvĂĄnĂ­.'; +$lang['stnv0034'] = 'Je takĂ© moĆŸnĂ© kombinovat vĂ­ce filtrĆŻ. Zadejte postupně toto pole do vyhledĂĄvacĂ­ho pole.'; +$lang['stnv0035'] = 'Pƙíklad:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Zobrazit pouze klienty, kteƙí jsou vyloučeny (client, servergroup or channel vyjĂ­mka).'; +$lang['stnv0037'] = 'Zobrazit pouze klienty, kteƙí nejsou vyloučeny.'; +$lang['stnv0038'] = 'Zobrazit pouze klienty, kteƙí jsou online.'; +$lang['stnv0039'] = 'Zobrazit pouze klienty, kteƙí nejsou online.'; +$lang['stnv0040'] = 'Zobrazit pouze klienty, kteƙí jsou v definovanĂ© skupině. Reprezentace pozice / Ășrovně aktu.
Nahradit GROUPID s poĆŸadovanĂœm identifikĂĄtorem serverovĂ© skupiny.'; +$lang['stnv0041'] = "Zobrazit pouze klienty, kteƙí jsou vybrĂĄny podle lastseen.
Nahradit OPERATOR 's' & lt; nebo " > " nebo '=' nebo '! ='.
A nahradit TIME časovĂœm razĂ­tkem nebo datem s formĂĄtem 'Ymd Hi' (pƙíklad: 2016-06-18 20-25). Pƙíklad: filtr: lastseen: & lt;: 2016-06-18 20-25:"; +$lang['stnv0042'] = 'Zobrazit pouze klienty, kteƙí jsou z definovanĂ© země

Nahradit TS3-COUNTRY-CODE se zamĂœĆĄlenou zemĂ­.
Seznam kĂłdĆŻ google pro ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'Pƙipojit se na TS3'; +$lang['stri0001'] = 'Informace o Ranksystemu'; +$lang['stri0002'] = 'Co je to Ranksystem?'; +$lang['stri0003'] = 'Je to bot pro TS3, kterĂœ automaticky uděluje hodnosti (serverovĂ© skupiny) uĆŸivateli na serveru TeamSpeak 3 pro online čas nebo on-line činnost. TakĂ© shromaĆŸÄuje informace a statistiky o uĆŸivateli a zobrazĂ­ vĂœsledek na tomto webu.'; +$lang['stri0004'] = 'Kdo vytvoƙil Ranksystem?'; +$lang['stri0005'] = 'Kdy byl vytvoƙen Ranksystem?'; +$lang['stri0006'] = 'PrvnĂ­ alpha byla vydĂĄna: 5. ƙíjna 2014.'; +$lang['stri0007'] = 'PrvnĂ­ beta byla vydĂĄna: 1. Ășnora 2015.'; +$lang['stri0008'] = 'NejnovějĆĄĂ­ verzi najde na Ranksystem Website.'; +$lang['stri0009'] = 'V čem byl Ranksystem napsĂĄn?'; +$lang['stri0010'] = 'Ranksystem byl napsĂĄn v'; +$lang['stri0011'] = 'PouĆŸĂ­vĂĄ takĂ© nĂĄsledujĂ­cĂ­ knihovny:'; +$lang['stri0012'] = 'SpeciĂĄlnĂ­ poděkovĂĄnĂ­:'; +$lang['stri0013'] = '%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'] = '%s za českĂœ pƙeklad'; +$lang['stri0025'] = '%s za polskĂœ pƙeklad'; +$lang['stri0026'] = '%s za ĆĄpanělskĂœ pƙeklad'; +$lang['stri0027'] = '%s pro maďarskĂœ pƙeklad'; +$lang['stri0028'] = '%s pro ĂĄzerbĂĄjdĆŸĂĄnskĂœ pƙeklad'; +$lang['stri0029'] = '%s pro funkci Imprint'; +$lang['stri0030'] = "%s pro styl 'CosmicBlue' pro strĂĄnku statistik a webovĂ© rozhranĂ­"; +$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'; +$lang['sttw0004'] = 'Top 10 nejlepĆĄĂ­ch'; +$lang['sttw0005'] = 'Hodin (udĂĄvĂĄ 100 %)'; +$lang['sttw0006'] = '%s hodin (%s%)'; +$lang['sttw0007'] = 'Top 10 statistik'; +$lang['sttw0008'] = 'Top 10 vs. ostatnĂ­ v online čase'; +$lang['sttw0009'] = 'Top 10 vs. ostatnĂ­ v online čase (aktivnĂ­)'; +$lang['sttw0010'] = 'Top 10 vs. ostatnĂ­ v online čase (neaktivnĂ­)'; +$lang['sttw0011'] = 'Top 10 (v hodinĂĄch)'; +$lang['sttw0012'] = 'OstatnĂ­ch %s (v hodinĂĄch)'; +$lang['sttw0013'] = 's aktivnĂ­m časem %s %s hodin'; +$lang['sttw0014'] = 'hodin'; +$lang['sttw0015'] = 'minut'; +$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.'; +$lang['stve0004'] = 'ZadanĂœ token je invalidnĂ­! Zkuste to prosĂ­m znovu!'; +$lang['stve0005'] = 'Gratuluji, ověƙenĂ­ probĂ©hlo Ășspěơně! NynĂ­ mĆŻĆŸeĆĄ pokračovat..'; +$lang['stve0006'] = 'Nastala neznĂĄmĂĄ vĂœjimka, prosĂ­m zkus to znovu. Pokud se tato chyba opakuje, kontaktuj admina.'; +$lang['stve0007'] = 'OvěƙenĂ­ identity na TeamSpeaku'; +$lang['stve0008'] = '1. Zde vyber svĂ© unikĂĄtnĂ­ ID na TS3 serveru pro ověƙenĂ­.'; +$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['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 severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0011'] = 'Download new ServerGroupIcon for group %s with ID: %s'; +$lang['upinf'] = 'A new Version of the Ranksystem is available; Inform clients on server...'; +$lang['upinf2'] = 'The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.'; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%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 informations [URL]%s[/URL]."; +$lang['upusrerr'] = 'Unique Client-ID %s se nemohl pƙipojit na TeamSpeak!'; +$lang['upusrinf'] = 'UĆŸivatel %s byl Ășspěơně informovanĂœ..'; +$lang['user'] = 'JmĂ©no'; +$lang['verify0001'] = 'Ujisti se, ĆŸe jsi pƙipojen na TS3 serveru!'; +$lang['verify0002'] = 'Pƙesuƈ se do %smĂ­stnosti%s pro ověƙovĂĄnĂ­!'; +$lang['verify0003'] = 'If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :('; +$lang['verify0004'] = 'MĂ­stnost pro ověƙovĂĄnĂ­ je prĂĄzdnĂĄ...'; +$lang['wi'] = 'Admin panel'; +$lang['wiaction'] = 'Akce'; +$lang['wiadmhide'] = 'SkrĂœt vyloučenĂ© uĆŸivatele'; +$lang['wiadmhidedesc'] = 'SkrĂœt vĂœjimku uĆŸivatele v nĂĄsledujĂ­cĂ­m vĂœběru'; +$lang['wiadmuuid'] = 'Bot-Admin'; +$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['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['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'] = 'Seznam je prĂĄzdnĂœ. KliknutĂ­m na symbol plus (tlačítko) pƙidĂĄte zĂĄznam!'; +$lang['wibot1'] = 'Ranksystem bot by měl bĂœt zastaven. Zkontrolujte nĂ­ĆŸe uvedenĂœ protokol pro vĂ­ce informacĂ­!'; +$lang['wibot2'] = 'Ranksystem bot by měl bĂœt spuĆĄtěn. Zkontrolujte nĂ­ĆŸe uvedenĂœ protokol pro vĂ­ce informacĂ­!'; +$lang['wibot3'] = 'Ranksystem bot by měl bĂœt restartovĂĄn. Zkontrolujte nĂ­ĆŸe uvedenĂœ protokol pro vĂ­ce informacĂ­!'; +$lang['wibot4'] = 'SprĂĄva Ranksystem bota'; +$lang['wibot5'] = 'Zapnout bota'; +$lang['wibot6'] = 'Vypnout bota'; +$lang['wibot7'] = 'Restartovat bota'; +$lang['wibot8'] = 'Ranksystem log (vĂœpis):'; +$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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'] = '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'; +$lang['wiexgrpdesc'] = 'Čárka oddělenĂœ seznam ID serverovĂœch skupin, kterĂœ by neměl bĂœt povaĆŸovĂĄn za Ranksystem.
UĆŸivatel v alespoƈ jednom z těchto ID serverovĂœch skupin bude ignorovĂĄn pro hodnocenĂ­.'; +$lang['wiexres'] = 'vĂœjĂ­mkovĂœ mod'; +$lang['wiexres1'] = 'doba počítĂĄnĂ­ (vĂœchozĂ­)'; +$lang['wiexres2'] = 'pƙestĂĄvka'; +$lang['wiexres3'] = 'čas resetovĂĄnĂ­'; +$lang['wiexresdesc'] = "ExistujĂ­ tƙi reĆŸimy, jak zachĂĄzet s vĂœjimkou. V kaĆŸdĂ©m pƙípadě je pozici (pƙiƙazenĂ­ serverovĂ© skupiny) zakĂĄzĂĄno. MĆŻĆŸete si zvolit rĆŻznĂ© moĆŸnosti, jak by měl bĂœt vynaloĆŸen čas strĂĄvenĂœ od uĆŸivatele (kterĂœ je vyloučen).

1) doba počítĂĄnĂ­ (vĂœchozĂ­): Ve vĂœchozĂ­m nastavenĂ­ Ranksystem takĂ© počítĂĄ online / aktivnĂ­ čas uĆŸivatelĆŻ, kterĂ© jsou vyloučeny (klient / servergroup). S vĂœjimkou je zakĂĄzĂĄna pouze pozice (pƙiƙazenĂ­ serverovĂ© skupiny). To znamenĂĄ, ĆŸe pokud uĆŸivatel nenĂ­ vĂ­ce vyloučen, bude mu pƙiƙazen do skupiny v zĂĄvislosti na jeho shromĂĄĆŸděnĂ©m čase (napƙ. Úroveƈ 3).

2) čas pƙestĂĄvky: Na tĂ©to volbě strĂĄvit čas online a nečinně zmrznout (zlomit) na skutečnou hodnotu (pƙedtĂ­m, neĆŸ je uĆŸivatel vyloučen). Po vynechĂĄnĂ­ vĂœjimky (po odebrĂĄnĂ­ vĂœjimky pro skupinu serverĆŻ nebo odebrĂĄnĂ­ pravopisu vĂœpovědi) se počítĂĄ 'počítĂĄnĂ­'.

3) čas vynulovĂĄnĂ­: S touto funkcĂ­ se počítĂĄ doba online a nečinnosti bude v okamĆŸiku, kdy jiĆŸ uĆŸivatel nenĂ­ vyloučen, vynulovĂĄn (vynechĂĄnĂ­m vĂœjimky skupiny serverĆŻ nebo odebrĂĄnĂ­m pravidla vĂœjimky). TĂœdennĂ­ vĂœjimka by se stĂĄle počítala, dokud se neobnovĂ­.


VĂœjimka z kanĂĄlu nezĂĄleĆŸĂ­ na tom, protoĆŸe čas bude vĆŸdy ignorovĂĄn (jako je reĆŸim pƙeruĆĄenĂ­)."; +$lang['wiexuid'] = 'klientskĂĄ vĂœjimka'; +$lang['wiexuiddesc'] = 'Čárka odděluje seznam jedinečnĂœch identifikĂĄtorĆŻ klientĆŻ, kterĂ© by se neměly tĂœkat systĂ©mu Ranks.
UĆŸivatel v tomto seznamu bude ignorovĂĄn pro hodnocenĂ­.'; +$lang['wiexregrp'] = 'odstranit skupinu'; +$lang['wiexregrpdesc'] = "Pokud je uĆŸivatel vyloučen ze systĂ©mu Ranksystem, je odstraněna serverovĂĄ skupina pƙidělenĂĄ systĂ©mem Ranksystem.

Skupina bude odstraněna pouze s '".$lang['wiexres']."' s '".$lang['wiexres1']."'. V ostatnĂ­ch reĆŸimech serverovĂĄ skupina nebude odstraněna.

Tato funkce je relevantnĂ­ pouze v kombinaci s '".$lang['wiexuid']."' nebo '".$lang['wiexgrp']."' v kombinaci s '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Čas v sekundĂĄch'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'definice poƙadĂ­'; +$lang['wigrptime2desc'] = " +Definujte čas, po kterĂ©m by měl uĆŸivatel automaticky zĂ­skat pƙeddefinovanou serverovou skupinu.

čas v sekundĂĄch => ID serverovĂ© skupiny => permanent flag

Max. hodnota je 999.999.999 sekund (pƙes 31 let).

ZadanĂ© sekundy budou hodnoceny jako 'online čas' nebo 'aktivnĂ­ čas', v zĂĄvislosti na zvolenĂ©m „časovĂ©m reĆŸimu“.


Čas v sekundách je potƙeba zadávat kumulativně!

ơpatně:

100 seconds, 100 seconds, 50 seconds
správně:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$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Ư => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$lang['wihladm'] = 'Seznam hodnocenĂ­ (reĆŸim administrĂĄtora)'; +$lang['wihladm0'] = 'Popis funkce (klikni)'; +$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'] = 'Odebrat čas'; +$lang['wihladm3'] = 'Reset Ranksystem'; +$lang['wihladm31'] = 'reset statistik vĆĄech uĆŸivatelĆŻ'; +$lang['wihladm311'] = 'zero time'; +$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."; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'zakĂĄzanĂĄ'; +$lang['wihladmrs1'] = 'vytvoƙeno'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Opravdu chcete systĂ©m resetovat?'; +$lang['wihladmrs13'] = 'Ano, spust reset'; +$lang['wihladmrs14'] = 'Ne, zruĆĄ'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'povoleno'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$lang['wihladmrs2'] = 'spracovĂĄvĂĄm..'; +$lang['wihladmrs3'] = 'faulted (ended with errors!)'; +$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 job 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['wihlset'] = 'nastavenĂ­'; +$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['wiimpaddr'] = 'Adresa'; +$lang['wiimpaddrdesc'] = 'Sem zadejte svĂ© jmĂ©no a adresu.
Napƙíklad:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-MailovĂĄ adresa'; +$lang['wiimpemaildesc'] = 'Sem zadejte svou emailovou adresu.
Napƙíklad:
info@example.com
'; +$lang['wiimpnotes'] = 'DodatečnĂ© informace'; +$lang['wiimpnotesdesc'] = 'Zde pƙidejte dalĆĄĂ­ informace, napƙíklad odmĂ­tnutĂ­ odpovědnosti.
Ponechejte pole prĂĄzdnĂ©, aby se tato část nezobrazila.
HTML kĂłd pro formĂĄtovĂĄnĂ­ je povolen.'; +$lang['wiimpphone'] = 'Telefon'; +$lang['wiimpphonedesc'] = 'Zde zadejte svĂ© telefonnĂ­ číslo s mezinĂĄrodnĂ­ pƙedvolbou.
Napƙíklad:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Sem vloĆŸte svĂ© zĂĄsady ochrany osobnĂ­ch ĂșdajĆŻ (maximĂĄlně 21,588 znakĆŻ).
HTML kĂłd pro formĂĄtovĂĄnĂ­ je povolen.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint funkce'; +$lang['wiimpswitchdesc'] = 'Aktivujte tuto funkci pro veƙejnĂ© zobrazenĂ­ Imprintu a prohlĂĄĆĄenĂ­ o ochraně dat.'; +$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.'; +$lang['wilogout'] = 'OdhlĂĄsit se'; +$lang['wimsgmsg'] = 'ZprĂĄvy'; +$lang['wimsgmsgdesc'] = 'Definujte zprĂĄvu, kterĂĄ bude odeslĂĄna uĆŸivateli, kdyĆŸ se zvedne dalĆĄĂ­ vyĆĄĆĄĂ­ hodnost.

Tato zprĂĄva bude odeslĂĄna prostƙednictvĂ­m soukromĂ© zprĂĄvy TS3. TakĆŸe kaĆŸdĂœ znalĂœ bb-kĂłd mĆŻĆŸe bĂœt pouĆŸit, coĆŸ takĂ© funguje pro normĂĄlnĂ­ soukromou zprĂĄvu.
%s

dƙíve strĂĄvenĂœ čas lze vyjĂĄdƙit argumenty:
%1$s - dny
%2$s - hodiny
%3$s - minuty
%4$s - sekundy
%5$s - jmĂ©no dosaĆŸenĂ© serverovĂ© skupiny
%6$s - jmĂ©no uĆŸivatele (pƙíjemce)

Pƙíklad:
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'] = 'Serverové zpråvy'; +$lang['wimsgsndesc'] = 'Definujte zpråvu, kterå se zobrazí na strånce /stats/ jako serverové novinky

MĆŻĆŸeĆĄ pouĆŸĂ­t zĂĄkladnĂ­ HTML funkce pro Ășpravu

Napƙíklad:
<b> - pro tučnĂ© pĂ­smo
<u> - pro podtrĆŸenĂ© pĂ­smo
<i> - pro pĂ­smo s kurzĂ­vou
<br> - pro zalamovĂĄnĂ­ textu (novĂœ ƙádek)'; +$lang['wimsgusr'] = 'OznĂĄmenĂ­ o hodnocenĂ­'; +$lang['wimsgusrdesc'] = 'Informujte uĆŸivatele se soukromou textovou zprĂĄvou o jeho pozici.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'DatabĂĄze'; +$lang['winav3'] = 'HlavnĂ­ nastavenĂ­'; +$lang['winav4'] = 'OstatnĂ­'; +$lang['winav5'] = 'ZprĂĄva'; +$lang['winav6'] = 'StrĂĄnka Statistiky'; +$lang['winav7'] = 'Administrace'; +$lang['winav8'] = 'Start / Stop bot'; +$lang['winav9'] = 'Aktualizace je k dispozici!'; +$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['winxmsg2'] = 'ZprĂĄva (nejvyĆĄĆĄĂ­)'; +$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 - aktuĂĄlnĂ­ uĆŸivatelova hodnost
%8$s - jméno aktuålní serverové skupiny
%9$s - doba aktuålní serverové skupiny


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 - aktuĂĄlnĂ­ uĆŸivatelova hodnost
%8$s - jméno aktuålní serverové skupiny
%9$s - doba aktuålní serverové skupiny


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 - aktuĂĄlnĂ­ uĆŸivatelova hodnost
%8$s - jméno aktuålní serverové skupiny
%9$s - doba aktuålní serverové skupiny


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. 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"; +$lang['wirtpw5'] = 'Byla odeslĂĄna soukromĂĄ textovĂĄ zprĂĄva TeamSpeak 3 adminu s novĂœm heslem. Klikněte zde% s pro pƙihlĂĄĆĄenĂ­.'; +$lang['wirtpw6'] = 'Heslo webovĂ©ho rozhranĂ­ bylo Ășspěơně resetovĂĄno. PoĆŸadavek na IP% s.'; +$lang['wirtpw7'] = 'Obnovit heslo'; +$lang['wirtpw8'] = 'Zde mĆŻĆŸete obnovit heslo webinterface.'; +$lang['wirtpw9'] = 'Pro obnovenĂ­ hesla je tƙeba provĂ©st nĂĄsledujĂ­cĂ­ kroky:'; +$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Zobrazit/skrĂœt sloupec'; +$lang['wishcolat'] = 'aktivnĂ­ čas'; +$lang['wishcoldesc'] = "Chcete-li tento sloupec zobrazit nebo skrĂœt na strĂĄnce statistik, pƙepněte jej na 'on' nebo 'off'.

To vĂĄm umoĆŸnĂ­ individuĂĄlně nakonfigurovat seznam povyĆĄenĂ­ (stats/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['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['wishcolot'] = 'online čas'; +$lang['wishdef'] = 'DefaultnĂ­ ƙazenĂ­ sloupcĆŻ'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Definujte vĂœchozĂ­ sloupec ƙazenĂ­ pro strĂĄnku Seznam povĂœĆĄenĂ­.'; +$lang['wishexcld'] = 's vĂœjimkou klienta'; +$lang['wishexclddesc'] = 'Zobrazit klienty v seznamu_rankup.php, kterĂ© jsou vyloučeny, a proto se nezĂșčastnĂ­ systĂ©mu Ranks.'; +$lang['wishexgrp'] = 's vĂœjimkou skupin'; +$lang['wishexgrpdesc'] = "Zobrazte klienty v seznamu_rankup.php, kterĂ© jsou v seznamu 'vĂœjimka pro klienty' a neměli by se povaĆŸovat za systĂ©m Ranks."; +$lang['wishhicld'] = 'Klienti na nejvyĆĄĆĄĂ­ Ășrovni'; +$lang['wishhiclddesc'] = 'Zobrazit klienty v seznamu_rankup.php, kterĂœ dosĂĄhl nejvyĆĄĆĄĂ­ Ășrovně v systĂ©mu Ranks.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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'] = 'DefaultnĂ­ ƙazenĂ­ poƙadĂ­'; +$lang['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$lang['wishsortdesc'] = 'Definujte vĂœchozĂ­ poƙadĂ­ ƙazenĂ­ pro strĂĄnku Seznam povĂœĆĄenĂ­.'; +$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['wistyle'] = 'vlastnĂ­ styl'; +$lang['wistyledesc'] = "Definujte odliĆĄnĂœ, uĆŸivatelem definovanĂœ styl (Style) pro systĂ©m hodnocenĂ­.
Tento styl bude pouĆŸit pro strĂĄnku statistik a webovĂ© rozhranĂ­.

UmĂ­stěte svĆŻj vlastnĂ­ styl do adresáƙe 'style' ve vlastnĂ­m podsloĆŸce.
NĂĄzev podsloĆŸky určuje nĂĄzev stylu.

Styly začínajĂ­cĂ­ 'TSN_' jsou dodĂĄvĂĄny systĂ©mem hodnocenĂ­. Tyto budou aktualizovĂĄny v budoucĂ­ch aktualizacĂ­ch.
V těchto by se tedy neměly provĂĄdět ĆŸĂĄdnĂ© Ășpravy!
NicmĂ©ně mohou slouĆŸit jako ĆĄablona. ZkopĂ­rujte styl do vlastnĂ­ sloĆŸky, abyste mohli provĂĄdět Ășpravy.

Jsou potƙebnĂ© dvě soubory CSS. Jeden pro strĂĄnku statistik a druhĂœ pro rozhranĂ­ webu.
MĆŻĆŸe bĂœt takĂ© zahrnut vlastnĂ­ JavaScript, ale to je volitelnĂ©.

Konvence nĂĄzvĆŻ CSS:
- Fix 'ST.css' pro strĂĄnku statistik (/stats/)
- Fix 'WI.css' pro strånku webového rozhraní (/webinterface/)


Konvence nĂĄzvĆŻ pro JavaScript:
- Fix 'ST.js' pro strĂĄnku statistik (/stats/)
- Fix 'WI.js' pro strånku webového rozhraní (/webinterface/)


Pokud byste chtěli svĆŻj styl takĂ© poskytnout ostatnĂ­m, mĆŻĆŸete ho poslat na nĂĄsledujĂ­cĂ­ e-mail:

%s

S dalĆĄĂ­m vydĂĄnĂ­m ho vydĂĄme!"; +$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['wisvres'] = 'Je potƙeba restartovat Ranksystem pƙedtĂ­m, neĆŸ se změny projevĂ­! %s'; +$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['wits3pre'] = 'Pƙedpona pƙíkazu botu'; +$lang['wits3predesc'] = "Na serveru TeamSpeak mĆŻĆŸete komunikovat s botem Ranksystem pomocĂ­ chatu. Ve vĂœchozĂ­m nastavenĂ­ jsou pƙíkazy pro bota označeny vykƙičnĂ­kem '!'. Pƙedpona se pouĆŸĂ­vĂĄ k identifikaci pƙíkazĆŻ pro bota jako takovĂœch.

Tuto pƙedponu lze nahradit libovolnou jinou poĆŸadovanou pƙedponou. To mĆŻĆŸe bĂœt nezbytnĂ© v pƙípadě pouĆŸĂ­vĂĄnĂ­ jinĂœch botĆŻ s podobnĂœmi pƙíkazy.

Napƙíklad vĂœchozĂ­ pƙíkaz pro bota by vypadal takto:
!help


Pokud je pƙedpona nahrazena znakem '#', pƙíkaz by vypadal takto:
#help
"; +$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'; +$lang['wits3querpwdesc'] = 'TeamSpeak 3 query password
Heslo pro uĆŸivatele query.'; +$lang['wits3querusr'] = 'TS3 Query-uĆŸivatel'; +$lang['wits3querusrdesc'] = 'TeamSpeak 3 query (pƙihlaĆĄovacĂ­ jmĂ©no)
Ve vĂœchozĂ­m nastavenĂ­ nastaveno-> serveradmin
Samozƙejmě mĆŻĆŸete vytvoƙit novĂœ query Ășčet pƙímo pro Ranksystem.
PotƙebnĂ© oprĂĄvněnĂ­ najdete zde:
%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['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
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'] = 'stabilni'; +$lang['wiupch1'] = 'beta'; +$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 bd1874f..995b0ff 100644 --- a/languages/core_de_Deutsch_de.php +++ b/languages/core_de_Deutsch_de.php @@ -1,708 +1,708 @@ - wurde nun zum Ranksystem hinzugefĂŒgt."; -$lang['api'] = "API"; -$lang['apikey'] = "API SchlĂŒssel"; -$lang['apiperm001'] = "Erlaube den Ranksystem Bot via API zu starten/stoppen"; -$lang['apipermdesc'] = "(ON = erlaubt ; OFF = verboten)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "WĂ€hle einen Channel, in dem die Channel-Beschreibung gesetzt werden soll."; -$lang['addonchdesc'] = "Channel Beschreibung"; -$lang['addonchdescdesc'] = "Lege hier die Beschreibung fest, welche in dem oben definierten Channel gesetzt werden soll. Die hier definierte Beschreibung, wird die vorhandene Beschreibung im Channel vollstĂ€ndig ĂŒberschreiben.

Es können auch BB-Codes benutzt werden, welche innerhalb von TeamSpeak valide sind.

Die folgende Liste an Variablen kann genutzt werden, um variable Inhalte, wie z.B. der Client Nickname, darzustellen.
Ersetze dafĂŒr '_XXX}' mit der fortlaufenden Nummer des TeamSpeak Users (zwischen 1 und 10), wie z.B. '_1}' oder '_10}'.

Beispiel:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Erweiterte Optionen

Es ist auch möglich, eine Wenn-Bedingung festzulegen, welche nur dann einen bestimmten Text anzeigt, wenn die Bedingung erfĂŒllt ist.

Beispiel:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


Sie können auch das Datumsformat Àndern, indem Sie eine Formatdefinition am Ende einer Variablen setzen.

Beispiel:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Großbuchstaben fĂŒr einen Text.

Beispiel:
{$CLIENT_NICKNAME_1|upper}


Es ist auch möglich, Werte durch komplexe regulĂ€re AusdrĂŒcke zuersetzen.

Beispiel:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


Alle Möglichkeiten, einen Variablenwert zu Àndern, sind hier dokumentiert: %s
Alle möglichen Funktionen sind hier dokumentiert: %s"; -$lang['addonchdescdesc00'] = "Variablen-Name"; -$lang['addonchdescdesc01'] = "gesammelte aktive Zeit seit jeher."; -$lang['addonchdescdesc02'] = "gesammelte aktive Zeit im letzten Monat."; -$lang['addonchdescdesc03'] = "gesammelte aktive Zeit in der letzten Woche."; -$lang['addonchdescdesc04'] = "gesammelte online Zeit seit jeher."; -$lang['addonchdescdesc05'] = "gesammelte online Zeit im letzten Monat."; -$lang['addonchdescdesc06'] = "gesammelte online Zeit n der letzten Woche."; -$lang['addonchdescdesc07'] = "gesammelte inaktive Zeit seit jeher."; -$lang['addonchdescdesc08'] = "gesammelte inaktive Zeit im letzten Monat."; -$lang['addonchdescdesc09'] = "gesammelte inaktive Zeit n der letzten Woche."; -$lang['addonchdescdesc10'] = "Channel Datenbank-ID, in welchem der User sich gerade befindet."; -$lang['addonchdescdesc11'] = "Channel Name, in welchem der User sich gerade befindet."; -$lang['addonchdescdesc12'] = "Der variable Teil der URL des Gruppen-Icons. Setze die URL des Ranksystems davor."; -$lang['addonchdescdesc13'] = "Gruppen Datenbank-ID der aktuellen Ranggruppe."; -$lang['addonchdescdesc14'] = "Gruppenname der aktuellen Ranggruppe."; -$lang['addonchdescdesc15'] = "Zeit, zu der der User die letzte Rangsteigerung hatte."; -$lang['addonchdescdesc16'] = "Benötigte Zeit, fĂŒr die nĂ€chste Rangsteigerung."; -$lang['addonchdescdesc17'] = "Aktuelle Rank Position ĂŒber alle User hinweg."; -$lang['addonchdescdesc18'] = "LĂ€nder Code anhand der IP Adresse des TeamSpeak Users."; -$lang['addonchdescdesc20'] = "Zeitpunkt, wann der User das erste mal auf dem TS gesehen wurde."; -$lang['addonchdescdesc22'] = "Client Datenbank-ID."; -$lang['addonchdescdesc23'] = "Client Beschreibung auf dem TS Server."; -$lang['addonchdescdesc24'] = "Zeitpunkt, wann der User zuletzt auf dem TS Server gesehen wurde."; -$lang['addonchdescdesc25'] = "Aktueller/letzter Nickname des Clients."; -$lang['addonchdescdesc26'] = "Status des Clients. Gibt 'Online' oder 'Offline' aus."; -$lang['addonchdescdesc27'] = "Plattform Code des TeamSpeak Users."; -$lang['addonchdescdesc28'] = "Anzahl der Clientverbindungen zum TS Server."; -$lang['addonchdescdesc29'] = "Öffentliche eindeutige Client-ID."; -$lang['addonchdescdesc30'] = "Client Version des TeamSpeak Users."; -$lang['addonchdescdesc31'] = "Zeitpunkt des letzten Updates der Channel Beschreibung"; -$lang['addonchdelay'] = "Verzögerung"; -$lang['addonchdelaydesc'] = "Lege eine Verzögerung fest, welche bestimmt, wie hĂ€ufig die Channel-Beschreibung aktualisiert wird.

Solange das Ergebnis (Beschreibung) sich nicht Ă€ndert, wird auch die Channel-Beschreibung nicht verĂ€ndert, auch wenn die Zeitspanne der Verzögerung ĂŒberschritten ist.

Zum Forcieren eines Updates, nach Erreichen der definierten Zeit, kann die Variable %LAST_UPDATE_TIME% verwendet werden."; -$lang['addonchmo'] = "Variante"; -$lang['addonchmo1'] = "Top Woche - aktive Zeit"; -$lang['addonchmo2'] = "Top Woche - online Zeit"; -$lang['addonchmo3'] = "Top Monat - aktive Zeit"; -$lang['addonchmo4'] = "Top Monat - online Zeit"; -$lang['addonchmo5'] = "Top seit jeher - aktive Zeit"; -$lang['addonchmo6'] = "Top seit jeher - online Zeit"; -$lang['addonchmodesc'] = "WĂ€hle eine Variante, welche Toplist genutzt werden soll

Zur Auswahl steht die Zeitperiode Woche, Monat oder seit jeher
Ebenso kann aus der aktiven oder online Zeit gewÀhlt werden."; -$lang['addonchtopl'] = "Channelinfo Topliste"; -$lang['addonchtopldesc'] = "Mit der Funktion 'Channelinfo Toplist' kann eine stets aktuelle Liste der Top 10 User direkt auf dem TeamSpeak Server bereit gestellt werden. Die Liste wird dann in die Beschreibung eines Channels geschrieben.

Es kann bestimmt werden, in welchem Channel die Beschreibung geschrieben werden soll und welche Statistik dort gezeigt werden soll (wöchentlich, monatlich bzw. aktive Zeit oder online Zeit).

Die Beschreibung ist vollstÀndig individualisierbar mittels Variablen.

TS Berechtigung benötigt:
b_channel_modify_description"; -$lang['asc'] = "Aufsteigend"; -$lang['autooff'] = "Autostart ist deaktiviert"; -$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."; -$lang['changedbid'] = "User %s (eindeutige Client-ID: %s) hat eine neue TeamSpeak Client-Datenbank-ID (%s). Ersetze die alte Client-Datenbank-ID (%s) und setze die gesammelte Zeiten zurĂŒck"; -$lang['chkfileperm'] = "Falsche Datei-/Ordnerberechtigungen!
Es mĂŒssen die EigentĂŒmer- und Zugriffsberechtigungen der folgend genannten Dateien/Ordner korrigiert werden!

Inhaber aller Dateien und Ordner des Ranksystem-Installationsordners muss der Benutzer des Webservers sein (z.B.: www-data).
Auf Linux-Systemen hilft etwas wie (Linux-Shell-Befehl):
%sAuch die Zugriffsberechtigungen mĂŒssen so eingestellt sein, dass der Benutzer Ihres Webservers Dateien lesen, schreiben und ausfĂŒhren kann.
Auf Linux-Systemen hilft etwas wie (Linux-Shell-Befehl):
%sListe der betroffenen Dateien/Ordner:
%s"; -$lang['chkphpcmd'] = "Falscher PHP-Befehl definiert in der Datei %s! PHP wurde hier nicht gefunden!
Bitte fĂŒge einen gĂŒltigen PHP-Befehl in diese Datei ein!

Definition aus %s:
%s
Ausgabe deines commands:%sDer PHP-Befehl kann zuvor ĂŒber die Konsole getestet werden, in dem der Paramter '-v' angehangen wird.
Beispiel: %sEs sollte die PHP-Version zurĂŒckgegeben werden!"; -$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."; -$lang['cleanno'] = "Es gab nichts zu löschen..."; -$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['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!"; -$lang['errgrplist'] = "Fehler beim Abholen der Servergruppenliste: "; -$lang['errlogin'] = "Benutzername und/oder Passwort sind falsch! Versuche es erneut..."; -$lang['errlogin2'] = "Brute force Schutz: Bitte versuche es in %s Sekunden erneut!"; -$lang['errlogin3'] = "Brute force Schutz: Zu viele Fehlversuche. FĂŒr 300 Sekunden gesperrt!"; -$lang['error'] = "Fehler "; -$lang['errorts3'] = "TS3 Fehler: "; -$lang['errperm'] = "Bitte ĂŒberprĂŒfe die Dateiberechtigungen fĂŒr das Verzeichnis '%s'!"; -$lang['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"; -$lang['imprint'] = "Impressum"; -$lang['input'] = "Eingabewert"; -$lang['insec'] = "in Sekunden"; -$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!
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 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 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."; -$lang['isntwidbmsg'] = "Datenbank-Fehler: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name der Datenbank"; -$lang['isntwidbpass'] = "DB Passwort:"; -$lang['isntwidbpassdesc'] = "Passwort fĂŒr die Datenbank"; -$lang['isntwidbtype'] = "DB Typ:"; -$lang['isntwidbtypedesc'] = "Typ der Datenbank, welche das Ranksystem nutzen soll.

Der PDO-Treiber fĂŒr PHP muss installiert sein.
Mehr Informationen und eine aktuelle Liste der Anforderungen findest du auf der offiziellen Ranksystem-Seite:
%s"; -$lang['isntwidbusr'] = "DB Benutzer:"; -$lang['isntwidbusrdesc'] = "Username fĂŒr die Datenbank"; -$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver!"; -$lang['isntwiusr'] = "Benutzer fĂŒr das Webinterface wurde erfolgreich erstellt."; -$lang['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"; -$lang['listcldbid'] = "Client-Datenbank-ID"; -$lang['listexcept'] = "Keine, da ausgeschlossen"; -$lang['listgrps'] = "aktuelle Gruppe seit"; -$lang['listnat'] = "Land"; -$lang['listnick'] = "Client-Name"; -$lang['listnxsg'] = "nĂ€chste Servergruppe"; -$lang['listnxup'] = "nĂ€chster Rang"; -$lang['listpla'] = "Plattform"; -$lang['listrank'] = "Rang"; -$lang['listseen'] = "zuletzt gesehen"; -$lang['listsuma'] = "ges. aktive Zeit"; -$lang['listsumi'] = "ges. Idle-Zeit"; -$lang['listsumo'] = "ges. online Zeit"; -$lang['listuid'] = "eindeutige Client-ID"; -$lang['listver'] = "Client Version"; -$lang['login'] = "Login"; -$lang['module_disabled'] = "Dieses Modul ist deaktiviert."; -$lang['msg0001'] = "Das Ranksystem lĂ€uft auf Version: %s"; -$lang['msg0002'] = "Eine Liste verfĂŒgbarer Bot-Befehle, findest du hier [URL]https://ts-ranksystem.com/#commands[/URL]"; -$lang['msg0003'] = "Du bist nicht berechtigt diesen Befehl abzusetzen!"; -$lang['msg0004'] = "Client %s (%s) fordert Abschaltung."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) fordert %s."; -$lang['msg0008'] = "Update-Check erfolgt. Wenn eine neue Version bereit steht, erfolgt das Update unverzĂŒglich."; -$lang['msg0009'] = "Die Bereinigung der User-Datenbank wurde gestartet."; -$lang['msg0010'] = "FĂŒhre den Befehl !log aus, um mehr Informationen zu erhalten."; -$lang['msg0011'] = "Gruppen Cache bereinigt. Starte erneutes Laden der Gruppen und Icons..."; -$lang['noentry'] = "Keine EintrĂ€ge gefunden.."; -$lang['pass'] = "Passwort"; -$lang['pass2'] = "Passwort Ă€ndern"; -$lang['pass3'] = "altes Passwort"; -$lang['pass4'] = "neues Passwort"; -$lang['pass5'] = "Passwort vergessen?"; -$lang['permission'] = "Berechtigungen"; -$lang['privacy'] = "DatenschutzerklĂ€rung"; -$lang['repeat'] = "wiederholen"; -$lang['resettime'] = "Setze die online und aktive Zeit des Benutzers %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) auf Null zurĂŒck, da er aus der Ausnahme entfernt wurde."; -$lang['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."; -$lang['setontime'] = "Zeit hinzufĂŒgen"; -$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_pib'] = "PiB"; -$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 maximal zeitgleich gesetzt sein dĂŒrfen."; -$lang['stag0002'] = "Erlaubte Gruppen"; -$lang['stag0003'] = "Lege die Servergruppen fest, welche ein User sich selbst geben kann."; -$lang['stag0004'] = "Limit gleichzeitiger Gruppen"; -$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."; -$lang['stag0009'] = "Du kannst nicht mehr als %s Gruppe(n) zur selben Zeit setzen!"; -$lang['stag0010'] = "Bitte wĂ€hle mindestens eine Gruppe."; -$lang['stag0011'] = "Limit gleichzeitiger Gruppen: "; -$lang['stag0012'] = "setze Gruppe(n)"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Schalte das Addon ON (aktiv) oder OFF (inaktiv).

Beim Deaktivieren des Addons wird eine etwaige stats/ Seite ausgeblendet."; -$lang['stag0015'] = "Du konntest nicht auf dem TeamSpeak gefunden werden. Bitte %sklicke hier%s um dich zunĂ€chst zu verifizieren."; -$lang['stag0016'] = "Verifizierung benötigt!"; -$lang['stag0017'] = "Verifiziere dich hier.."; -$lang['stag0018'] = "Eine Liste der ausgeschlossenen Servergruppen. Wenn ein User eine dieser Servergruppen besitzt, kann er das Add-on nicht verwenden."; -$lang['stag0019'] = "Du bist von dieser Funktion ausgeschlossen, da du die Servergruppe '%s' (ID: %s) besitzt."; -$lang['stag0020'] = "Titel"; -$lang['stag0021'] = "Gebe einen Titel fĂŒr diese Gruppe ein. Der Titel wird auch auf der Statistikseite angezeigt."; -$lang['stix0001'] = "Server Statistiken"; -$lang['stix0002'] = "Anzahl User"; -$lang['stix0003'] = "zeige Liste aller User"; -$lang['stix0004'] = "Online Zeit aller User / Total"; -$lang['stix0005'] = "zeige Top User aller Zeiten"; -$lang['stix0006'] = "zeige Top User des Monats"; -$lang['stix0007'] = "zeige Top User der Woche"; -$lang['stix0008'] = "Server Nutzung"; -$lang['stix0009'] = "der letzten 7 Tage"; -$lang['stix0010'] = "der letzten 30 Tage"; -$lang['stix0011'] = "der letzten 24 Stunden"; -$lang['stix0012'] = "wĂ€hle Zeitraum"; -$lang['stix0013'] = "letzten 24 Stunden"; -$lang['stix0014'] = "letzte Woche"; -$lang['stix0015'] = "letzter Monat"; -$lang['stix0016'] = "Aktive / Inaktive Zeit (aller User)"; -$lang['stix0017'] = "Versionen (aller User)"; -$lang['stix0018'] = "NationalitĂ€ten (aller User)"; -$lang['stix0019'] = "Plattformen (aller User)"; -$lang['stix0020'] = "Server Details"; -$lang['stix0023'] = "Server Status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "User (Online / Max)"; -$lang['stix0027'] = "Anzahl aller Channel"; -$lang['stix0028'] = "Server Ping (Mittelwert)"; -$lang['stix0029'] = "Eingehende Daten insg."; -$lang['stix0030'] = "Ausgehende Daten insg."; -$lang['stix0031'] = "Server online seit"; -$lang['stix0032'] = "vor Offlineschaltung:"; -$lang['stix0033'] = "00 Tage, 00 Stunden, 00 Min., 00 Sek."; -$lang['stix0034'] = "Paketverlust (Mittelwert)"; -$lang['stix0035'] = " "; -$lang['stix0036'] = "Server Name"; -$lang['stix0037'] = "Server Adresse (Host Adresse: Port)"; -$lang['stix0038'] = "Server Passwort"; -$lang['stix0039'] = "Nein (Öffentlich)"; -$lang['stix0040'] = "Ja (Privat)"; -$lang['stix0041'] = "Server-ID"; -$lang['stix0042'] = "Server Plattform"; -$lang['stix0043'] = "Server Version"; -$lang['stix0044'] = "Server Erstelldatum (dd/mm/yyyy)"; -$lang['stix0045'] = "Report an Serverliste"; -$lang['stix0046'] = "Aktiv"; -$lang['stix0047'] = "Deaktiviert"; -$lang['stix0048'] = "nicht genĂŒgend Daten ..."; -$lang['stix0049'] = "Online Zeit aller User / Monat"; -$lang['stix0050'] = "Online Zeit aller User / Woche"; -$lang['stix0051'] = "TeamSpeak hat gefailed, daher kein Erstelldatum..."; -$lang['stix0052'] = "Andere"; -$lang['stix0053'] = "Aktive Zeit (in Tagen)"; -$lang['stix0054'] = "Inaktive Zeit (in Tagen)"; -$lang['stix0055'] = "online in d. letzten 24 Std."; -$lang['stix0056'] = "online in d. letzten %s Tagen"; -$lang['stix0059'] = "Liste der User"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "zeige alle Versionen"; -$lang['stix0062'] = "zeige alle Nationen"; -$lang['stix0063'] = "zeige alle Plattformen"; -$lang['stix0064'] = "letzten 3 Monate"; -$lang['stmy0001'] = "Meine Statistiken"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Datenbank-ID:"; -$lang['stmy0004'] = "Eindeutige Client-ID:"; -$lang['stmy0005'] = "Insg. Verbunden zum TS:"; -$lang['stmy0006'] = "Startzeitpunkt der Statistiken:"; -$lang['stmy0007'] = "Gesamte online Zeit:"; -$lang['stmy0008'] = "Online Zeit der letzten %s Tage:"; -$lang['stmy0009'] = "Aktive Zeit der letzten %s Tage:"; -$lang['stmy0010'] = "Errungenschaften:"; -$lang['stmy0011'] = "Fortschritt Errungenschaft Zeit"; -$lang['stmy0012'] = "Zeit: LegendĂ€r"; -$lang['stmy0013'] = "Da du bereits %s Stunden auf dem Server online bist."; -$lang['stmy0014'] = "Abgeschlossen"; -$lang['stmy0015'] = "Zeit: Gold"; -$lang['stmy0016'] = "% erreicht fĂŒr LegendĂ€r"; -$lang['stmy0017'] = "Zeit: Silber"; -$lang['stmy0018'] = "% erreicht fĂŒr Gold"; -$lang['stmy0019'] = "Zeit: Bronze"; -$lang['stmy0020'] = "% erreicht fĂŒr Silber"; -$lang['stmy0021'] = "Zeit: Unranked"; -$lang['stmy0022'] = "% erreicht fĂŒr Bronze"; -$lang['stmy0023'] = "Fortschritt Errungenschaft Verbindungen"; -$lang['stmy0024'] = "Verbindungen: LegendĂ€r"; -$lang['stmy0025'] = "Da du bereits %s mal zum Server verbunden warst."; -$lang['stmy0026'] = "Verbindungen: Gold"; -$lang['stmy0027'] = "Verbindungen: Silber"; -$lang['stmy0028'] = "Verbindungen: Bronze"; -$lang['stmy0029'] = "Verbindungen: Unranked"; -$lang['stmy0030'] = "Fortschritt nĂ€chste Servergruppe"; -$lang['stmy0031'] = "Gesamte aktive Zeit:"; -$lang['stmy0032'] = "Zuletzt berechnet:"; -$lang['stna0001'] = "Nationen"; -$lang['stna0002'] = "Statistiken"; -$lang['stna0003'] = "KĂŒrzel"; -$lang['stna0004'] = "Anzahl"; -$lang['stna0005'] = "Versionen"; -$lang['stna0006'] = "Plattformen"; -$lang['stna0007'] = "Prozent"; -$lang['stnv0001'] = "Server News"; -$lang['stnv0002'] = "Schließen"; -$lang['stnv0003'] = "Client Informationen aktualisieren"; -$lang['stnv0004'] = "Benutze diese Funktion, wenn sich deine TS3 Daten geĂ€ndert haben, wie z.B. dein Username."; -$lang['stnv0005'] = "Du musst hierfĂŒr mit dem TS3 Server verbunden sein!"; -$lang['stnv0006'] = "Aktualisieren"; -$lang['stnv0016'] = "nicht verfĂŒgbar"; -$lang['stnv0017'] = "Du bist nicht mit dem TS3 Server verbunden, daher können kein Daten angezeigt werden."; -$lang['stnv0018'] = "Bitte verbinde dich mit dem TS3 Server und aktualisiere anschließend die Session ĂŒber den Aktualisierungs-Button oben rechts in der Ecke."; -$lang['stnv0019'] = "Statistiken - InhaltserlĂ€uterung"; -$lang['stnv0020'] = "Diese Seite zeigt u.a. eine Übersicht deiner persönlichen Statistiken und AktivitĂ€t auf dem TS3 Server."; -$lang['stnv0021'] = "Die Informationen wurden gesammelt seit Beginn des Ranksystems, nicht seit Beginn des TS3 Servers."; -$lang['stnv0022'] = "Die Seite erhĂ€lt ihre Daten aus einer Datenbank. Es ist also möglich, dass die angezeigten Werte von den live Werten abweichen."; -$lang['stnv0023'] = "Die Werte der online Zeit aller User per Woche bzw. Monat werden nur alle 15 Minuten berechnet. Alle anderen Werte sollten nahezu live sein (maximal wenige Sekunden verzögert)."; -$lang['stnv0024'] = "Ranksystem - Statistiken"; -$lang['stnv0025'] = "Anzahl EintrĂ€ge"; -$lang['stnv0026'] = "alle"; -$lang['stnv0027'] = "Die Informationen auf dieser Seite scheinen veraltet! Es scheint, das Ranksystem ist nicht mehr mit dem TS3 verbunden."; -$lang['stnv0028'] = "(Du bist nicht zum TS3 verbunden!)"; -$lang['stnv0029'] = "Rank-Liste"; -$lang['stnv0030'] = "Ranksystem Info"; -$lang['stnv0031'] = "Über das Suchfeld können nach Teile im Client-Namen, der eindeutigen Client-ID und der Client-Datenbank-ID gesucht werden."; -$lang['stnv0032'] = "Es ist auch möglich bestimmte Filterregeln anzuwenden (siehe unterhalb). Der Filter wird auch im Suchfeld hinterlegt."; -$lang['stnv0033'] = "Kombinationen von Filter und einem Suchwert sind möglich. Trage hierfĂŒr den/die Filter gefolgt von dem Suchwert ein."; -$lang['stnv0034'] = "Auch ist es möglich mehrere Filter zu kombinieren. Trage diese einfach fortlaufend in das Suchfeld ein."; -$lang['stnv0035'] = "Beispiel:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Zeigt nur Clients an, welche ausgeschlossen sind (Client, Servergruppen oder Channel-Ausnahme)."; -$lang['stnv0037'] = "Zeigt nur Clients an, welche nicht ausgeschlossen sind."; -$lang['stnv0038'] = "Zeigt nur Clients an, welche online sind"; -$lang['stnv0039'] = "Zeigt nur Clients an, welche nicht online sind"; -$lang['stnv0040'] = "Zeigt nur Clients an, welche sich in einer bestimmten Servergruppe befinden. Stellt das aktuelle Level (Rang) dar.
Ersetze GROUPID mi der gewĂŒnschten Servergruppen ID."; -$lang['stnv0041'] = "Zeigt nur Clients an, welche dem ausgewĂ€hlten 'zuletzt gesehen' Zeitraum entsprechen.
Ersetze OPERATOR mit '<' oder '>' oder '=' oder '!='.
Und ersetze TIME mit einem Zeitstempel (Timestamp) oder Datum mit im Format 'Y-m-d H-i' (Beispiel: 2016-06-18 20-25).
VollstÀndiges Beispiel: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Zeigt nur Clients an, welche sich im definierten Land befinden.
Ersetze TS3-COUNTRY-CODE mit dem gewĂŒnschten Land.
FĂŒr eine Liste der gĂŒltigen LĂ€ndercodes, bitte nach dem 'ISO 3166-1 alpha-2' googlen."; -$lang['stnv0043'] = "verbinde zum TS3"; -$lang['stri0001'] = "Ranksystem Informationen"; -$lang['stri0002'] = "Was ist das Ranksystem?"; -$lang['stri0003'] = "Ein TS3 Bot, der automatisch Servergruppen an User fĂŒr online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar."; -$lang['stri0004'] = "Wer hat das Ranksystem erstellt?"; -$lang['stri0005'] = "Wann wurde das Ranksystem erstellt?"; -$lang['stri0006'] = "Erste Alpha Version: 05.10.2014."; -$lang['stri0007'] = "Erste Beta Version: 01.02.2015."; -$lang['stri0008'] = "Die neuste Version kannst du auf der Ranksystem Website finden."; -$lang['stri0009'] = "Wie wurde das Ranksystem erstellt?"; -$lang['stri0010'] = "Das Ranksystem basiert auf"; -$lang['stri0011'] = "Es nutzt weiterhin die folgenden Programmbibliotheken:"; -$lang['stri0012'] = "Ein spezieller Dank ergeht an:"; -$lang['stri0013'] = "sergey, Arselopster, DeviantUser & kidi - fĂŒr die russische Übersetzung"; -$lang['stri0014'] = "Bejamin Frost - fĂŒr die Initialisierung des Bootstrap Designs"; -$lang['stri0015'] = "%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'] = "%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['stri0029'] = "%s fĂŒr die Impressums-Funktion"; -$lang['stri0030'] = "%s fĂŒr den 'CosmicBlue'-Stil fĂŒr die Statistik-Seite und das Webinterface"; -$lang['stta0001'] = "aller Zeiten"; -$lang['sttm0001'] = "des Monats"; -$lang['sttw0001'] = "Top User"; -$lang['sttw0002'] = "der Woche"; -$lang['sttw0003'] = "mit %s %s online Zeit"; -$lang['sttw0004'] = "Top 10 im Vergleich"; -$lang['sttw0005'] = "Stunden (definiert 100 %)"; -$lang['sttw0006'] = "%s Stunden (%s%)"; -$lang['sttw0007'] = "Top 10 Statistiken"; -$lang['sttw0008'] = "Top 10 vs Andere; Online Zeit"; -$lang['sttw0009'] = "Top 10 vs Andere; Aktive Zeit"; -$lang['sttw0010'] = "Top 10 vs Andere; Inaktive Zeit"; -$lang['sttw0011'] = "Top 10 (in Stunden)"; -$lang['sttw0012'] = "Andere %s User (in Stunden)"; -$lang['sttw0013'] = "mit %s %s aktive Zeit"; -$lang['sttw0014'] = "Stunden"; -$lang['sttw0015'] = "Minuten"; -$lang['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."; -$lang['stve0004'] = "Der eingegebene Token stimmt nicht ĂŒberein! Bitte versuche es erneut."; -$lang['stve0005'] = "Gratulation, du wurdest erfolgreich verifiziert! Du kannst nun fortfahren..."; -$lang['stve0006'] = "Ein unbekannter Fehler ist aufgetreten. Bei wiederholtem Vorkommen benachrichtige bitte einen Admin."; -$lang['stve0007'] = "Verifizierungs-Prozess (ĂŒber TeamSpeak)"; -$lang['stve0008'] = "WĂ€hle hier deine eindeutige Client-ID auf dem TS3 Server um dich zu verifizieren."; -$lang['stve0009'] = " -- wĂ€hle dich aus -- "; -$lang['stve0010'] = "Du wirst einen Token auf dem TS3 Server erhalten, welcher hier einzugeben ist:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verifizieren"; -$lang['time_day'] = "Tag(e)"; -$lang['time_hour'] = "Std."; -$lang['time_min'] = "Min."; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sek."; -$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"; -$lang['upgrp0003'] = "Fehler beim Schreiben des ServerIcons."; -$lang['upgrp0004'] = "Fehler beim Herunterladen des ServerIcons vom TS3 Server: "; -$lang['upgrp0005'] = "Fehler beim Löschen des ServerIcons."; -$lang['upgrp0006'] = "Das ServerIcon wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt."; -$lang['upgrp0007'] = "Fehler beim Schreiben des Servergruppen-Icons bei Gruppe %s mit ID %s."; -$lang['upgrp0008'] = "Fehler beim Herunterladen des Servergruppen-Icons bei Gruppe %s mit ID %s: "; -$lang['upgrp0009'] = "Fehler beim Löschen des Servergruppen-Icons bei Gruppe %s mit ID %s."; -$lang['upgrp0010'] = "Das Icon der Servergruppe %s mit der ID %s wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt."; -$lang['upgrp0011'] = "Lade neues Servergruppen-Icon fĂŒr die Servergruppe %s mit der ID: %s herunter."; -$lang['upinf'] = "Eine neue Version des Ranksystems ist verfĂŒgbar. Informiere Clients auf dem Server..."; -$lang['upinf2'] = "Das Ranksystem wurde kĂŒrzlich (%s) aktualisiert. Die %sChangelog%s enthĂ€lt weitere Informationen ĂŒber die enthaltenen Änderungen."; -$lang['upmsg'] = "\nHey, eine neue Version des [B]Ranksystems[/B] ist verfĂŒgbar!\n\naktuelle Version: %s\n[B]neue Version: %s[/B]\n\nBitte schaue auf die offizielle Webseite fĂŒr weitere Informationen [URL]%s[/URL].\n\nStarte den Update Prozess im Hintergrund. [B]Bitte prĂŒfe die Ranksystem-Log![/B]"; -$lang['upmsg2'] = "\nHey, das [B]Ranksystem[/B] wurde kĂŒrzlich aktualisiert.\n\n[B]neue Version: %s[/B]\n\nBitte schaue auf die offizielle Webseite fĂŒr weitere Informationen [URL]%s[/URL]."; -$lang['upusrerr'] = "Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!"; -$lang['upusrinf'] = "User %s wurde erfolgreich benachrichtigt."; -$lang['user'] = "Benutzername"; -$lang['verify0001'] = "Bitte stelle sicher, dass du wirklich mit dem TS3 Server verbunden bist!"; -$lang['verify0002'] = "Betrete, falls noch nicht geschehen, den Ranksystem %sVerifizierungs-Channel%s!"; -$lang['verify0003'] = "Wenn du wirklich zum TS3 Server verbunden bist, kontaktiere bitte dort einen Admin.
Dieser muss einen Verifizierungs-Channel auf dem TS3 Server erstellen. Danach ist der erstellte Channel im Ranksystem zu hinterlegen, was nur ein Admin tun kann.
Weitere Informationen findet dieser im Webinterface (-> Statistik Seite) des Ranksystems.

Bis dahin ist leider keine Verifizierung fĂŒr das Ranksystem möglich! Sorry :( "; -$lang['verify0004'] = "Keine User im Verifizierungs-Channel gefunden..."; -$lang['wi'] = "Webinterface"; -$lang['wiaction'] = "ausfĂŒhren"; -$lang['wiadmhide'] = "unterdrĂŒcke ausgeschl. User"; -$lang['wiadmhidedesc'] = "Hiermit können vom Ranksystem ausgeschlossene User in der folgenden Auswahl unterdrĂŒckt werden."; -$lang['wiadmuuid'] = "Bot-Admin"; -$lang['wiadmuuiddesc'] = "Lege einen User als Administrator des Ranksystems fest.
Auch mehrere User können gewÀhlt werden.

Die hier aufgelisteten User sind die User, welche auf dem TeamSpeak Server online sind bzw. waren und das Ranksystem schon kennt. Sofern der gewĂŒnschte User nicht gelistet wird, stelle sicher das dieser auf dem TS online ist, starte den Ranksystem-Bot ggfs. neu und lade diese Seite nochmals, um die Liste zu aktualisieren.


Der Administrator des Ranksystem-Bots hat die Privilegien:

-, um das Passwort fĂŒr das Webinterface zurĂŒckzusetzen.
(Hinweis: Ohne Definition eines Administrators ist es nicht möglich, das Passwort im Bedarfsfall zurĂŒckzusetzen!)

- Bot-Befehle mit Admin-Privilegien auszufĂŒhren
(Eine Liste der Befehle befindet sich %shier%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['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['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!"; -$lang['wibot4'] = "Start / Stop Ranksystem Bot"; -$lang['wibot5'] = "Bot starten"; -$lang['wibot6'] = "Bot stoppen"; -$lang['wibot7'] = "Bot neu starten"; -$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['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['wicmdlinesec'] = "BefehlszeilenprĂŒfung"; -$lang['wicmdlinesecdesc'] = "Der Ranksystem Bot hat einen Sicherheitscheck, dass dieser nur per Befehlszeile gestartet wird. Diese Methode wird automatisch angewandt, wenn er ĂŒber das Webinterface ausgefĂŒhrt wird.

In bestimmten Systemumgebungen kann es notwendig sein, diesen Sicherheitscheck zu deaktivieren, damit der Bot gestartet wird.
In diesem Fall ist eine systemspezifische manuelle PrĂŒfroutine zu aktivieren, damit der Bot nicht von Außen ausgefĂŒhrt werden kann (ĂŒber die URL jobs/bot.php)

Deaktiviere diese Funktion NICHT, wenn der Bot auf dem System bereits lauffĂ€hig ist!"; -$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['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"; -$lang['widelcldgrpdesc'] = "Das Ranksystem merkt sich die vergebenen Servergruppen, sodass nicht mit jedem Lauf der worker.php diese nochmals ĂŒberprĂŒft bzw. vergeben werden.

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

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

Achtung: Bitte diese Funktion in einem Moment ausfĂŒhren, in welchem fĂŒr nĂ€chsten Minuten keine Rangsteigerung ansteht!!! Das Ranksystem kann dann nĂ€mlich die alten Gruppen nicht entfernen, da es diese nicht mehr kennt ;-)"; -$lang['widelsg'] = "entferne aus Servergruppen"; -$lang['widelsgdesc'] = "WĂ€hle, ob Clients auch aus den Servergruppen entfernt werden sollen, wenn sie aus der Ranksystem Datenbank gelöscht werden.

Es werden nur Servergruppen beachtet, welche das Ranksystem betreffen!"; -$lang['wiexcept'] = "Ausnahmen"; -$lang['wiexcid'] = "Channel-Ausnahmen"; -$lang['wiexciddesc'] = "Eine mit Komma getrennte Liste von den Channel-IDs, die nicht am Ranksystem teilnehmen sollen.

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

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

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

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

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

2) pausiere Zeit: Bei dieser Option wird die online/aktive Zeit eingefroren (pausiert) in dem Moment, in dem der User ausgeschlossen wird. Nach RĂŒcknahme der Ausnahme (entfernen der ausgeschlossenen Servergruppe oder entfernen der Ausnahmeregel) lĂ€uft die online/aktive Zeit weiter.

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


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

Aufgelistete User sind von Rangsteigerungen ausgenommen."; -$lang['wiexregrp'] = "entferne Gruppe"; -$lang['wiexregrpdesc'] = "Wenn ein User vom Ranksystem ausgeschlossen wird, so wird hiermit die vom Ranksystem vergebene Servergruppe entfernt.

Die Gruppe wird nur mit dem '".$lang['wiexres']."' mit '".$lang['wiexres1']."' entfernt. Bei allen anderen Modi wird die Servergruppe nicht entfernt.

Diese Funktion hat also nur Relevanz bei einer Client-Ausnahme oder Servergruppen-Ausnahme in Verbindung mit '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Modus"; -$lang['wigrpt1'] = "Zeit in Sekunden"; -$lang['wigrpt2'] = "Servergruppe"; -$lang['wigrpt3'] = "Permanente Gruppe"; -$lang['wigrptime'] = "Rank Definition"; -$lang['wigrptime2desc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID => Permanente Gruppe

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['wigrptime3desc'] = "

Permanente Gruppe
Dies ermöglicht es, eine Servergruppe als 'permanent' zu kennzeichnen, die dann bei der nÀchsten Rangsteigerung nicht entfernt werden soll. Die Zeile, mit dieser Kennzeichnung (='ON'), bleibt vom Ranksystem dauerhaft erhalten.
Mit der Voreinstellung (='OFF'), wird die aktuelle Servergruppe zu dem Zeitpunkt entfernt, zu dem der User einen höheren Rang erreicht."; -$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID => Permanente Gruppe

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "erlaube jede Ressource"; -$lang['wiheadacao3'] = "erlaube individuelle URL"; -$lang['wiheadacaodesc'] = "Mit dieser Option kann der Access-Control-Allow-Origin Header definiert werden. Weitere Informationen sind hier zu finden:
%s

An dieser Position kann der Wert fĂŒr den 'Access-Control-Allow-Origin' hinterlegt werden.
Lege eine Quelle fest, um nur Anfragen von dieser Quelle zuzulassen.
Beispiel:
https://ts-ranksystem.com


Multiple Quellen können getrennt mit einem Komma angegeben werden.
Beispiel:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Aktiviere dies, um den Header auf die Option 'nosniff' zu setzen."; -$lang['wiheaddesc'] = "Mit dieser Option kann der %s Header definiert werden. Weitere Informationen sind hier zu finden:
%s"; -$lang['wiheaddesc1'] = "WĂ€hle 'deaktiviert', um diesen Header nicht durch das Ranksystem zu setzen."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "deaktiviere XSS Filter"; -$lang['wiheadxss2'] = "aktiviere XSS Filter"; -$lang['wiheadxss3'] = "filter XSS Inhalte"; -$lang['wiheadxss4'] = "blocke vollstĂ€ndiges Rendern"; -$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!"; -$lang['wihladm1'] = "Zeit hinzufĂŒgen"; -$lang['wihladm2'] = "Zeit entfernen"; -$lang['wihladm3'] = "Ranksystem-Reset"; -$lang['wihladm31'] = "resette User-Statistiken"; -$lang['wihladm311'] = "leere Zeiten"; -$lang['wihladm312'] = "lösche User"; -$lang['wihladm31desc'] = "WĂ€hle einer der beiden Optionen um die Statistiken aller User zurĂŒckzusetzen.

leere Zeiten: Resettet die Zeiten (online Zeit & idle Zeit) aller User auf den Wert 0.

lösche User: Mit dieser Option werden alle User vollstĂ€ndig aus der Ranksystem Datenbank gelöscht. Die TeamSpeak Datenbank ist davon nicht berĂŒhrt!


Die beiden Optionen erledigen im Detail die folgenden Dinge..

.. bei leere Zeiten:
Reset Server Statistiken Übersicht (Tabelle: stats_server)
Reset My statistics (Tabelle: stats_user)
Reset List Rankup / User Statistiken (Tabelle: user)
Leert Top users / User-Statistik-Snapshots (Tabelle: user_snapshot)

.. bei lösche User:
Leert Donut-Chart NationalitÀten (Tabelle: stats_nations)
Leert Donut-Chart Plattformen (Tabelle: stats_platforms)
Leert Donut-Chart Versionen (Tabelle: stats_versions)
Reset Server Statistiken Übersicht (Tabelle: stats_server)
Leert My statistics (Tabelle: stats_user)
Leert List Rankup / User Statistiken (Tabelle: user)
Leert User IP-Hash Werte (Tabelle: user_iphash)
Leert Top users / User-Statistik-Snapshots (Tabelle: user_snapshot)"; -$lang['wihladm32'] = "Servergruppen entziehen"; -$lang['wihladm32desc'] = "Aktiviere diese Funktion, um die Servergruppen allen TeamSpeak Usern zu entziehen.

Das Ranksystem scannt dabei jede Gruppe, die in der 'Rangsteigerungs Defintion' enthalten ist. Es werden alle User, die dem Ranksystem bekannt sind, aus den entsprechenden Gruppen entfernt.

Das ist der Grund, warum es wichtig ist, die 'Rangsteigerungs Defintion' nicht zu verĂ€ndern, bevor der Reset erfolgt ist. Danach kann die 'Rangsteigerungs Defintion' 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'!


Die Servergruppen selbst auf dem TeamSpeak Server werden nicht gelöscht / berĂŒhrt."; -$lang['wihladm33'] = "leere Webspace Cache"; -$lang['wihladm33desc'] = "Aktiviere diese Funktion, um die auf dem Webspace gecachten Avatare und Servergruppen-Icons zu löschen.

Betroffene Verzeichnisse:
- avatars
- tsicons

Nach abgeschlossenen Reset werden die Avatare und Icons automatisch neu heruntergeladen."; -$lang['wihladm34'] = "leere Graph \"Server Nutzung\""; -$lang['wihladm34desc'] = "Aktiviere diese Funktion, um den Graph fĂŒr die Server Nutzung au der stats Seite zu leeren."; -$lang['wihladm35'] = "Starte Reset"; -$lang['wihladm36'] = "Bot danach stoppen"; -$lang['wihladm36desc'] = "Ist diese Option aktiviert, wird der Ranksystem Bot gestoppt, nachdem alle Reset-Dinge erledigt sind.

Dieser Stop funktioniert exakt wie der normale Stop-Befehl. Heißt, der Bot wird nicht durch den 'check' Parameter gestartet.

Um den Ranksystem Bot zu starten, benutze den 'start' oder 'restart' Parameter."; -$lang['wihladm4'] = "Lösche User"; -$lang['wihladm4desc'] = "WÀhle einen oder mehrere User, um sie aus der Ranksystem Datenbank zu löschen. Der vollstÀndige User wird damit gelöscht inkl. aller Informationen, wie z.B. die gesammelten Zeiten.

Die Löschung hat keine Auswirkungen auf den TeamSpeak Server. Wenn der User in der TS Datenbank noch existiert, wird er durch diese Funktion dort nicht gelöscht."; -$lang['wihladm41'] = "Möchtest du wirklich die folgenden User löschen?"; -$lang['wihladm42'] = "Achtung: Sie können nicht wiederhergestellt werden!"; -$lang['wihladm43'] = "Ja, löschen"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) wird in wenigen Sekunden aus der Ranksystem Datenbank gelöscht (siehe Ranksystem-Log)."; -$lang['wihladm45'] = "User %s (UUID: %s; DBID: %s) aus der Ranksystem Datenbank gelöscht."; -$lang['wihladm46'] = "Angefordert ĂŒber Admin Funktion."; -$lang['wihladmex'] = "Datenbank Export"; -$lang['wihladmex1'] = "Datenbank Export Job erfolgreich abgeschlossen."; -$lang['wihladmex2'] = "Beachte:%s Das Passwort fĂŒr den ZIP Container ist das aktuelle TS3 Query-Passwort:"; -$lang['wihladmex3'] = "Datei %s erfolgreich gelöscht."; -$lang['wihladmex4'] = "Beim Löschen der Datei '%s' ist ein Fehler aufgetreten. Existiert die Datei noch und bestehen Berechtigung diese zu löschen?"; -$lang['wihladmex5'] = "Download Datei"; -$lang['wihladmex6'] = "Lösche Datei"; -$lang['wihladmex7'] = "Erstelle SQL Export"; -$lang['wihladmexdesc'] = "Mit dieser Funktion kann ein Export/Backup der Ranksystem-Datenbank erstellt werden. Als Ausgabe wird eine SQL-Datei erzeugt, die ZIP-komprimiert ist.

Der Export kann je nach GrĂ¶ĂŸe der Datenbank einige Minuten dauern. Er wird als Job vom Ranksystem-Bot ausgefĂŒhrt.
Bitte NICHT den Ranksystem-Bot stoppen oder neu starten, wÀhrend der Job lÀuft!


Bevor ein Export gestartet wird, sollte ggfs. der Webserver so konfiguriert werden, dass 'ZIP'- und 'SQL'-Dateien innerhalb des Log-Pfades (Webinterface -> Anderes -> Log-Pfad) nicht fĂŒr Clients zugĂ€nglich sind. Dies schĂŒtzt Ihren Export, da sich darin sensible Daten befinden, wie z.B. die TS3-Query-Zugangsdaten. Der User des Webservers benötigt trotzdem Berechtigungen fĂŒr diese Dateien, um auf sie fĂŒr den Download ĂŒber das Webinterface zugreifen zu können!

ÜberprĂŒfe nach dem Download die letzte Zeile der SQL-Datei, um sicherzustellen, dass die Datei vollstĂ€ndig geschrieben wurde. Sie muss lauten:
-- Finished export

Bei PHP-Version >= 7.2 wird die 'ZIP'-Datei passwortgeschĂŒtzt. Als Passwort verwenden wir das TS3-Query-Passwort, welches in den 'TeamSpeak'-Optionen festgelegt ist.

Die SQL-Datei kann bei Bedarf direkt in die Datenbank importiert werden. DafĂŒr kann z.B. phpMyAdmin verwenden werden, ist aber nicht zwanglĂ€ufig nötig. Es kann jegliche Möglichkeit genutzt werden, eine SQL-Datei in die Datenbank zu importieren.
Vorsicht beim Import der SQL-Datei. Alle vorhandenen Daten in der gewĂ€hlten Datenbank werden dadurch gelöscht/ĂŒberschrieben!"; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "deaktiviert"; -$lang['wihladmrs1'] = "erstellt"; -$lang['wihladmrs10'] = "Job-Status erfolgreich zurĂŒckgesetzt!"; -$lang['wihladmrs11'] = "Erwartete Zeit um den Job abzuschließen"; -$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['wihladmrs17'] = "DrĂŒcke %s Abbrechen %s um den Export abzubrechen."; -$lang['wihladmrs18'] = "Job(s) wurde erfolgreich abgebrochen!"; -$lang['wihladmrs2'] = "in Bearbeitung.."; -$lang['wihladmrs3'] = "fehlerhaft (mit Fehlern beendet!)"; -$lang['wihladmrs4'] = "fertig"; -$lang['wihladmrs5'] = "Job(s) fĂŒr Reset erfolgreich erstellt."; -$lang['wihladmrs6'] = "Es ist bereits ein Reset-Job aktiv. Bitte warte bis alles erledigt ist, bevor du weitere startest!"; -$lang['wihladmrs7'] = "DrĂŒcke %s Aktualisieren %s um den Status zu beobachten."; -$lang['wihladmrs8'] = "Solange ein Job 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 gestartet werden könnte."; -$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."; -$lang['wiimpaddr'] = "Anschrift"; -$lang['wiimpaddrdesc'] = "Trage hier deinen Namen und Anschrift ein.

Beispiel:
Max Mustermann<br>
Musterstraße 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Impressum URL"; -$lang['wiimpaddrurldesc'] = "FĂŒge eine URL zu einer eigenen Impressum-Seite hinzu.

Beispiel:
https://site.url/imprint/

Um die anderen Felder fĂŒr die Anzeige direkt auf der Ranksystem Satistik-Seite zu nutzen, leere dieses Feld."; -$lang['wiimpemail'] = "E-Mail Addresse"; -$lang['wiimpemaildesc'] = "Trage hier deine E-Mail-Adresse ein.

Beispiel:
info@example.com
"; -$lang['wiimpnotes'] = "ZusĂ€tzliche Informationen"; -$lang['wiimpnotesdesc'] = "FĂŒge hier zusĂ€tzliche Informationen, wie zum Beispiel einen Haftungsausschluss ein.
Lasse das Feld leer, damit dieser Abschnitt nicht angezeigt wird.
HTML-Code fĂŒr die Formatierung ist zulĂ€ssig."; -$lang['wiimpphone'] = "Telefon"; -$lang['wiimpphonedesc'] = "Trage hier deine Telefonnummer mit internationaler Vorwahl ein.

Beispiel:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "FĂŒge hier deine DatenschutzerklĂ€rung ein (maximal 21588 Zeichen).
HTML-Code fĂŒr die Formatierung ist zulĂ€ssig."; -$lang['wiimpprivurl'] = "Datenschutz URL"; -$lang['wiimpprivurldesc'] = "FĂŒge eine URL zu einer eigenen Datenschutz-Seite hinzu.

Beispiel:
https://site.url/privacy/

Um die anderen Felder fĂŒr die Anzeige direkt auf der Ranksystem Satistik-Seite zu nutzen, leere dieses Feld."; -$lang['wiimpswitch'] = "Impressums-Funktion"; -$lang['wiimpswitchdesc'] = "Aktiviere diese Funktion, um das Impressum und die DatenschutzerklĂ€rung öffentlich anzuzeigen."; -$lang['wilog'] = "Log-Pfad"; -$lang['wilogdesc'] = "Pfad in dem die Log-Datei des Ranksystems geschrieben werden soll.

Beispiel:
/var/logs/ranksystem/

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

Die Nachricht wird ĂŒber TS3 als private Text-Nachricht versendet. Daher können alle bekannten BB-Codes genutzt werden, die auch sonst in Text-Nachrichten funktionieren.
%s

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

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

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

Beispiel:
<b> - fĂŒr Fettschrift
<u> - zum Unterstreichen
<i> - fĂŒr Kursiv
<br> - fĂŒr einen Zeilenumbruch"; -$lang['wimsgusr'] = "Rangsteigerung-Info"; -$lang['wimsgusrdesc'] = "Informiere den User per privater Textnachricht ĂŒber seine Rangsteigerung."; -$lang['winav1'] = "TeamSpeak"; -$lang['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['winav13'] = "Allgemein (Statistiken)"; -$lang['winav14'] = "Die Navbar der Statistik-Seite wurde deaktiviert. Soll die Statistik-Seite vielleicht als Iframe in eine andere Webseite eingebunden werden? Dann werfe einen Blick auf diese FAQ:"; -$lang['winav2'] = "Datenbank"; -$lang['winav3'] = "Kern"; -$lang['winav4'] = "Anderes"; -$lang['winav5'] = "Nachrichten"; -$lang['winav6'] = "Statistik Seite"; -$lang['winav7'] = "Administration"; -$lang['winav8'] = "Start / Stop Bot"; -$lang['winav9'] = "Update verfĂŒgbar!"; -$lang['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['winxmsg2'] = "Nachricht (Höchste)"; -$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 kann das Passwort nur noch ĂŒber einen direkten Eingriff in die Datenbank geĂ€ndert werden. Eine Beschreibung dazu befindet sich hier:
%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."; -$lang['wirtpw5'] = "Es wurde eine private Nachricht mit dem neuen Passwort an den Admin auf dem TS3 Server geschickt."; -$lang['wirtpw6'] = "Das Passwort fĂŒr das Webinterface wurde erfolgreich zurĂŒckgesetzt. Anforderung von IP %s."; -$lang['wirtpw7'] = "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['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "Mit dem 'SameSite' Attribut (des Set-Cookie HTTP-Antwort-Headers) kann bestimmt werden, ob das Cookie auf den First-Party-Kontext (=gleiche Domain/Webseite) beschrĂ€nkt werden soll oder auch fĂŒr ander Webseiten zur VerfĂŒgung stehen soll. Weitere Informationen sind hier zu finden:
%s

Das 'SameSite' Attribut fĂŒr das Ranksystem kann hier definiert werden. Dies kann insbesondere notwendig/nĂŒtzlich sein, wenn das Ranksystem mit einem Iframe in einer anderen Website eingebettet wird.

Die Funktion wird nur mit PHP 7.3 oder höher unterstĂŒtzt."; -$lang['wishcol'] = "Zeige/Verstecke Spalte"; -$lang['wishcolat'] = "aktive Zeit"; -$lang['wishcoldesc'] = "Stelle den Schalter auf 'ON' bzw. 'OFF', um die Spalte auf der Statistik-Seite anzuzeigen bzw. zu deaktivieren.

Dies erlaubt die Rank-Liste (stats/list_rankup.php) individuell zu gestalten."; -$lang['wishcolha'] = "hashe IP Adressen"; -$lang['wishcolha0'] = "deaktiviert"; -$lang['wishcolha1'] = "sicheres Hashen"; -$lang['wishcolha2'] = "schnelles Hashen (Standard)"; -$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['wishcolot'] = "online Zeit"; -$lang['wishdef'] = "Standard Spalten-Sortierung"; -$lang['wishdef2'] = "2. Spalten-Sortierung"; -$lang['wishdef2desc'] = "Definiere die zweite Sortierebene fĂŒr die Seite Rank-Liste."; -$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."; -$lang['wishhicld'] = "User in höchstem Rang"; -$lang['wishhiclddesc'] = "Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben."; -$lang['wishmax'] = "Server-Nutzungs-Graph"; -$lang['wishmax0'] = "zeige alle Statistiken"; -$lang['wishmax1'] = "deaktiviere max. Clients"; -$lang['wishmax2'] = "deaktiviere Channel"; -$lang['wishmax3'] = "deaktiviere max. Clients + Channel"; -$lang['wishmaxdesc'] = "WĂ€hle, welche Statistiken in dem Server-Nutzungs-Graphen auf der 'stats/' Seite gezeigt werden sollen.

Im Standard werden alle Stats gezeigt. Es können hier einige Stats deaktiviert werden."; -$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['wishsort2'] = "2. Sortierreihenfolge"; -$lang['wishsort2desc'] = "Dadurch wird die Reihenfolge fĂŒr die Sortierung der zweiten Ebene festgelegt."; -$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['wistyle'] = "abweichender Stil"; -$lang['wistyledesc'] = "Definiere einen abweichenden, benutzerdefinierten Stil (Style) fĂŒr das Ranksystem.
Dieser Stil wird fĂŒr die Statistik-Seite und das Webinterface verwendet.

Platziere den eigenen Stil im Verzeichnis 'style' in einem eigenen Unterverzeichnis.
Der Name des Unterverzeichnis bestimmt den Namen des Stils.

Stile beginnend mit 'TSN_' werden durch das Ranksystem ausgeliefert. Diese werden durch kĂŒnftige Updates aktualisiert.
In diesen sollten also keine Anpassungen vorgenommen werden!
Allerdings können diese als Vorlage dienen. Kopiere den Stil in ein eigenes Verzeichnis, um darin dann Anpassungen vorzunehmen.

Es sind zwei CSS Dateien erforderlich. Eine fĂŒr die Statistik-Seite und eine fĂŒr das Webinterface.
Es kann auch ein eigenes JavaScript eingebunden werden. Dies ist aber optional.

Namenskonvention der CSS:
- Fix 'ST.css' fĂŒr die Statistik-Seite (/stats/)
- Fix 'WI.css' fĂŒr die Webinterface-Seite (/webinterface/)


Namenskonvention fĂŒr JavaScript:
- Fix 'ST.js' fĂŒr die Statistik-Seite (/stats/)
- Fix 'WI.js' fĂŒr die Webinterface-Seite (/webinterface/)


Wenn du deinen Stil auch gerne anderen zur VerfĂŒgung stellen möchtest, kannst du diesen an die folgende E-Mail-Adresse senden:

%s

Wir werden ihn mit dem nÀchsten Release ausliefern!"; -$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['wisvres'] = "Damit die Änderungen wirksam werden ist ein Neustart des Ranksystems erforderlich! %s"; -$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['wits3pre'] = "Prefix Bot-command"; -$lang['wits3predesc'] = "Auf dem TeamSpeak Server kann mit dem Ranksystem Bot ĂŒber den Chat kommuniziert werden. Im Standard werden Bot Commands durch ein fĂŒhrendes Ausrufezeichen '!' gekennzeichnet. Über diese Prefix erkennt der Bot entsprechende Befehle als solche.

Hier kann die Prefix durch eine beliebig andere ausgetauscht werden. Das kann notwendig werden, wenn andere Bots mit gleichen Befehlen genutzt werden.

Im Default ist Bot-Command z.B.
!help


Wird die Prefix beispielsweise durch '#' ersetzt, sieht der Command wie folgt aus:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 ServerQuery Passwort

Passwort des gewÀhlten ServerQuery Benutzers."; -$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['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"; -$lang['witszdesc'] = "Definiere eine DateigrĂ¶ĂŸe, bei der die Logdatei rotiert wird.

Gebe den Wert in Mebibyte (MiB) an.

Wenn du den Wert erhöhst, achte darauf, dass ausreichend Speicherplatz auf der Partition verfĂŒgbar ist.
Beachte: Zu große Logdateien können zu Performance-Problemen fĂŒhren!

Beim Ändern dieses Wertes wird beim nĂ€chsten Neustart des Bots die GrĂ¶ĂŸe der Logdatei ĂŒberprĂŒft. Ist die Datei grĂ¶ĂŸer als der definierte Wert, wird die Logdatei sofort rotiert."; -$lang['wiupch'] = "Update-Channel"; -$lang['wiupch0'] = "Stable"; -$lang['wiupch1'] = "Beta"; -$lang['wiupchdesc'] = "Das Ranksystem wird automatisch aktualisiert, sobald ein neues Update verfĂŒgbar ist. WĂ€hle hier, welchem Update-Kanal du beitreten möchtest.

Stable (Standard): Du erhĂ€ltst die neueste stabile Version. Empfohlen fĂŒr Produktionsumgebungen.

Beta: Du erhĂ€ltst die neueste Beta-Version. Damit erhĂ€ltst du neue Funktionen frĂŒher, aber das Risiko von Fehlern ist höher. Die Nutzung erfolgt auf eigene Gefahr!

Wird von der Beta auf die Stable gewechselt, erfolgt kein Downgrade des Ranksystems. Vielmehr wird auf den nÀchsthöheren Stable-Release abgewartet und dann darauf aktualisiert."; -$lang['wiverify'] = "Verifizierungs-Channel"; -$lang['wiverifydesc'] = "Hier ist die Channel Datenbank-ID des Verifizierungs-Channels zu hinterlegen.

Dieser Channel ist manuell auf dem TeamSpeak Server anzulegen. Name, Berechtigungen und sonstige Eigenschaften können nach Belieben gesetzt werden; lediglich sollten User ihn betreten können! ;-)

Die Verifizierung erfolgt durch den jeweiligen Benutzer selbst auf der Ranksystem Statistik-Seite (/stats/). Sie ist nur dann erforderlich, wenn eine Zuordnung des Webseitenbesuchers mit dem TeamSpeak-User nicht automatisch erfolgen kann.

FĂŒr die Verifizierung muss sich der User auf dem TeamSpeak Server in den Verifizierungs-Channel begeben. Dort kann er den Token empfangen, mit welchem er sich fĂŒr die Statistik-Seite verifiziert."; -$lang['wivlang'] = "Sprache"; -$lang['wivlangdesc'] = "WĂ€hle die Standard-Sprache des Ranksystems.
Sie ist relevant fĂŒr das Webinterface, die Statistik-Seite und insbesondere fĂŒr die Ranksystem-Log.

Die Sprache kann ĂŒber die Webseite durch jeden Besucher ĂŒbersteuert werden und wird dann fĂŒr die laufende Sitzung gespeichert (Session-Cookie)."; -?> \ No newline at end of file + wurde nun zum Ranksystem hinzugefĂŒgt.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API SchlĂŒssel'; +$lang['apiperm001'] = 'Erlaube den Ranksystem Bot via API zu starten/stoppen'; +$lang['apipermdesc'] = '(ON = erlaubt ; OFF = verboten)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'WĂ€hle einen Channel, in dem die Channel-Beschreibung gesetzt werden soll.'; +$lang['addonchdesc'] = 'Channel Beschreibung'; +$lang['addonchdescdesc'] = "Lege hier die Beschreibung fest, welche in dem oben definierten Channel gesetzt werden soll. Die hier definierte Beschreibung, wird die vorhandene Beschreibung im Channel vollstĂ€ndig ĂŒberschreiben.

Es können auch BB-Codes benutzt werden, welche innerhalb von TeamSpeak valide sind.

Die folgende Liste an Variablen kann genutzt werden, um variable Inhalte, wie z.B. der Client Nickname, darzustellen.
Ersetze dafĂŒr '_XXX}' mit der fortlaufenden Nummer des TeamSpeak Users (zwischen 1 und 10), wie z.B. '_1}' oder '_10}'.

Beispiel:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Erweiterte Optionen

Es ist auch möglich, eine Wenn-Bedingung festzulegen, welche nur dann einen bestimmten Text anzeigt, wenn die Bedingung erfĂŒllt ist.

Beispiel:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


Sie können auch das Datumsformat Àndern, indem Sie eine Formatdefinition am Ende einer Variablen setzen.

Beispiel:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Großbuchstaben fĂŒr einen Text.

Beispiel:
{$CLIENT_NICKNAME_1|upper}


Es ist auch möglich, Werte durch komplexe regulĂ€re AusdrĂŒcke zuersetzen.

Beispiel:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


Alle Möglichkeiten, einen Variablenwert zu Àndern, sind hier dokumentiert: %s
Alle möglichen Funktionen sind hier dokumentiert: %s"; +$lang['addonchdescdesc00'] = 'Variablen-Name'; +$lang['addonchdescdesc01'] = 'gesammelte aktive Zeit seit jeher.'; +$lang['addonchdescdesc02'] = 'gesammelte aktive Zeit im letzten Monat.'; +$lang['addonchdescdesc03'] = 'gesammelte aktive Zeit in der letzten Woche.'; +$lang['addonchdescdesc04'] = 'gesammelte online Zeit seit jeher.'; +$lang['addonchdescdesc05'] = 'gesammelte online Zeit im letzten Monat.'; +$lang['addonchdescdesc06'] = 'gesammelte online Zeit n der letzten Woche.'; +$lang['addonchdescdesc07'] = 'gesammelte inaktive Zeit seit jeher.'; +$lang['addonchdescdesc08'] = 'gesammelte inaktive Zeit im letzten Monat.'; +$lang['addonchdescdesc09'] = 'gesammelte inaktive Zeit n der letzten Woche.'; +$lang['addonchdescdesc10'] = 'Channel Datenbank-ID, in welchem der User sich gerade befindet.'; +$lang['addonchdescdesc11'] = 'Channel Name, in welchem der User sich gerade befindet.'; +$lang['addonchdescdesc12'] = 'Der variable Teil der URL des Gruppen-Icons. Setze die URL des Ranksystems davor.'; +$lang['addonchdescdesc13'] = 'Gruppen Datenbank-ID der aktuellen Ranggruppe.'; +$lang['addonchdescdesc14'] = 'Gruppenname der aktuellen Ranggruppe.'; +$lang['addonchdescdesc15'] = 'Zeit, zu der der User die letzte Rangsteigerung hatte.'; +$lang['addonchdescdesc16'] = 'Benötigte Zeit, fĂŒr die nĂ€chste Rangsteigerung.'; +$lang['addonchdescdesc17'] = 'Aktuelle Rank Position ĂŒber alle User hinweg.'; +$lang['addonchdescdesc18'] = 'LĂ€nder Code anhand der IP Adresse des TeamSpeak Users.'; +$lang['addonchdescdesc20'] = 'Zeitpunkt, wann der User das erste mal auf dem TS gesehen wurde.'; +$lang['addonchdescdesc22'] = 'Client Datenbank-ID.'; +$lang['addonchdescdesc23'] = 'Client Beschreibung auf dem TS Server.'; +$lang['addonchdescdesc24'] = 'Zeitpunkt, wann der User zuletzt auf dem TS Server gesehen wurde.'; +$lang['addonchdescdesc25'] = 'Aktueller/letzter Nickname des Clients.'; +$lang['addonchdescdesc26'] = "Status des Clients. Gibt 'Online' oder 'Offline' aus."; +$lang['addonchdescdesc27'] = 'Plattform Code des TeamSpeak Users.'; +$lang['addonchdescdesc28'] = 'Anzahl der Clientverbindungen zum TS Server.'; +$lang['addonchdescdesc29'] = 'Öffentliche eindeutige Client-ID.'; +$lang['addonchdescdesc30'] = 'Client Version des TeamSpeak Users.'; +$lang['addonchdescdesc31'] = 'Zeitpunkt des letzten Updates der Channel Beschreibung'; +$lang['addonchdelay'] = 'Verzögerung'; +$lang['addonchdelaydesc'] = 'Lege eine Verzögerung fest, welche bestimmt, wie hĂ€ufig die Channel-Beschreibung aktualisiert wird.

Solange das Ergebnis (Beschreibung) sich nicht Ă€ndert, wird auch die Channel-Beschreibung nicht verĂ€ndert, auch wenn die Zeitspanne der Verzögerung ĂŒberschritten ist.

Zum Forcieren eines Updates, nach Erreichen der definierten Zeit, kann die Variable %LAST_UPDATE_TIME% verwendet werden.'; +$lang['addonchmo'] = 'Variante'; +$lang['addonchmo1'] = 'Top Woche - aktive Zeit'; +$lang['addonchmo2'] = 'Top Woche - online Zeit'; +$lang['addonchmo3'] = 'Top Monat - aktive Zeit'; +$lang['addonchmo4'] = 'Top Monat - online Zeit'; +$lang['addonchmo5'] = 'Top seit jeher - aktive Zeit'; +$lang['addonchmo6'] = 'Top seit jeher - online Zeit'; +$lang['addonchmodesc'] = 'WĂ€hle eine Variante, welche Toplist genutzt werden soll

Zur Auswahl steht die Zeitperiode Woche, Monat oder seit jeher
Ebenso kann aus der aktiven oder online Zeit gewÀhlt werden.'; +$lang['addonchtopl'] = 'Channelinfo Topliste'; +$lang['addonchtopldesc'] = "Mit der Funktion 'Channelinfo Toplist' kann eine stets aktuelle Liste der Top 10 User direkt auf dem TeamSpeak Server bereit gestellt werden. Die Liste wird dann in die Beschreibung eines Channels geschrieben.

Es kann bestimmt werden, in welchem Channel die Beschreibung geschrieben werden soll und welche Statistik dort gezeigt werden soll (wöchentlich, monatlich bzw. aktive Zeit oder online Zeit).

Die Beschreibung ist vollstÀndig individualisierbar mittels Variablen.

TS Berechtigung benötigt:
b_channel_modify_description"; +$lang['asc'] = 'Aufsteigend'; +$lang['autooff'] = 'Autostart ist deaktiviert'; +$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.'; +$lang['changedbid'] = 'User %s (eindeutige Client-ID: %s) hat eine neue TeamSpeak Client-Datenbank-ID (%s). Ersetze die alte Client-Datenbank-ID (%s) und setze die gesammelte Zeiten zurĂŒck'; +$lang['chkfileperm'] = 'Falsche Datei-/Ordnerberechtigungen!
Es mĂŒssen die EigentĂŒmer- und Zugriffsberechtigungen der folgend genannten Dateien/Ordner korrigiert werden!

Inhaber aller Dateien und Ordner des Ranksystem-Installationsordners muss der Benutzer des Webservers sein (z.B.: www-data).
Auf Linux-Systemen hilft etwas wie (Linux-Shell-Befehl):
%sAuch die Zugriffsberechtigungen mĂŒssen so eingestellt sein, dass der Benutzer Ihres Webservers Dateien lesen, schreiben und ausfĂŒhren kann.
Auf Linux-Systemen hilft etwas wie (Linux-Shell-Befehl):
%sListe der betroffenen Dateien/Ordner:
%s'; +$lang['chkphpcmd'] = "Falscher PHP-Befehl definiert in der Datei %s! PHP wurde hier nicht gefunden!
Bitte fĂŒge einen gĂŒltigen PHP-Befehl in diese Datei ein!

Definition aus %s:
%s
Ausgabe deines commands:%sDer PHP-Befehl kann zuvor ĂŒber die Konsole getestet werden, in dem der Paramter '-v' angehangen wird.
Beispiel: %sEs sollte die PHP-Version zurĂŒckgegeben werden!"; +$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.'; +$lang['cleanno'] = 'Es gab nichts zu löschen...'; +$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['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!'; +$lang['errgrplist'] = 'Fehler beim Abholen der Servergruppenliste: '; +$lang['errlogin'] = 'Benutzername und/oder Passwort sind falsch! Versuche es erneut...'; +$lang['errlogin2'] = 'Brute force Schutz: Bitte versuche es in %s Sekunden erneut!'; +$lang['errlogin3'] = 'Brute force Schutz: Zu viele Fehlversuche. FĂŒr 300 Sekunden gesperrt!'; +$lang['error'] = 'Fehler '; +$lang['errorts3'] = 'TS3 Fehler: '; +$lang['errperm'] = "Bitte ĂŒberprĂŒfe die Dateiberechtigungen fĂŒr das Verzeichnis '%s'!"; +$lang['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'; +$lang['imprint'] = 'Impressum'; +$lang['input'] = 'Eingabewert'; +$lang['insec'] = 'in Sekunden'; +$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!
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 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 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.'; +$lang['isntwidbmsg'] = 'Datenbank-Fehler: '; +$lang['isntwidbname'] = 'DB Name:'; +$lang['isntwidbnamedesc'] = 'Name der Datenbank'; +$lang['isntwidbpass'] = 'DB Passwort:'; +$lang['isntwidbpassdesc'] = 'Passwort fĂŒr die Datenbank'; +$lang['isntwidbtype'] = 'DB Typ:'; +$lang['isntwidbtypedesc'] = 'Typ der Datenbank, welche das Ranksystem nutzen soll.

Der PDO-Treiber fĂŒr PHP muss installiert sein.
Mehr Informationen und eine aktuelle Liste der Anforderungen findest du auf der offiziellen Ranksystem-Seite:
%s'; +$lang['isntwidbusr'] = 'DB Benutzer:'; +$lang['isntwidbusrdesc'] = 'Username fĂŒr die Datenbank'; +$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver!"; +$lang['isntwiusr'] = 'Benutzer fĂŒr das Webinterface wurde erfolgreich erstellt.'; +$lang['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'; +$lang['listcldbid'] = 'Client-Datenbank-ID'; +$lang['listexcept'] = 'Keine, da ausgeschlossen'; +$lang['listgrps'] = 'aktuelle Gruppe seit'; +$lang['listnat'] = 'Land'; +$lang['listnick'] = 'Client-Name'; +$lang['listnxsg'] = 'nĂ€chste Servergruppe'; +$lang['listnxup'] = 'nĂ€chster Rang'; +$lang['listpla'] = 'Plattform'; +$lang['listrank'] = 'Rang'; +$lang['listseen'] = 'zuletzt gesehen'; +$lang['listsuma'] = 'ges. aktive Zeit'; +$lang['listsumi'] = 'ges. Idle-Zeit'; +$lang['listsumo'] = 'ges. online Zeit'; +$lang['listuid'] = 'eindeutige Client-ID'; +$lang['listver'] = 'Client Version'; +$lang['login'] = 'Login'; +$lang['module_disabled'] = 'Dieses Modul ist deaktiviert.'; +$lang['msg0001'] = 'Das Ranksystem lĂ€uft auf Version: %s'; +$lang['msg0002'] = 'Eine Liste verfĂŒgbarer Bot-Befehle, findest du hier [URL]https://ts-ranksystem.com/#commands[/URL]'; +$lang['msg0003'] = 'Du bist nicht berechtigt diesen Befehl abzusetzen!'; +$lang['msg0004'] = 'Client %s (%s) fordert Abschaltung.'; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Client %s (%s) fordert %s.'; +$lang['msg0008'] = 'Update-Check erfolgt. Wenn eine neue Version bereit steht, erfolgt das Update unverzĂŒglich.'; +$lang['msg0009'] = 'Die Bereinigung der User-Datenbank wurde gestartet.'; +$lang['msg0010'] = 'FĂŒhre den Befehl !log aus, um mehr Informationen zu erhalten.'; +$lang['msg0011'] = 'Gruppen Cache bereinigt. Starte erneutes Laden der Gruppen und Icons...'; +$lang['noentry'] = 'Keine EintrĂ€ge gefunden..'; +$lang['pass'] = 'Passwort'; +$lang['pass2'] = 'Passwort Ă€ndern'; +$lang['pass3'] = 'altes Passwort'; +$lang['pass4'] = 'neues Passwort'; +$lang['pass5'] = 'Passwort vergessen?'; +$lang['permission'] = 'Berechtigungen'; +$lang['privacy'] = 'DatenschutzerklĂ€rung'; +$lang['repeat'] = 'wiederholen'; +$lang['resettime'] = 'Setze die online und aktive Zeit des Benutzers %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) auf Null zurĂŒck, da er aus der Ausnahme entfernt wurde.'; +$lang['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.'; +$lang['setontime'] = 'Zeit hinzufĂŒgen'; +$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_pib'] = 'PiB'; +$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 maximal zeitgleich gesetzt sein dĂŒrfen."; +$lang['stag0002'] = 'Erlaubte Gruppen'; +$lang['stag0003'] = 'Lege die Servergruppen fest, welche ein User sich selbst geben kann.'; +$lang['stag0004'] = 'Limit gleichzeitiger Gruppen'; +$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.'; +$lang['stag0009'] = 'Du kannst nicht mehr als %s Gruppe(n) zur selben Zeit setzen!'; +$lang['stag0010'] = 'Bitte wĂ€hle mindestens eine Gruppe.'; +$lang['stag0011'] = 'Limit gleichzeitiger Gruppen: '; +$lang['stag0012'] = 'setze Gruppe(n)'; +$lang['stag0013'] = 'Addon ON/OFF'; +$lang['stag0014'] = 'Schalte das Addon ON (aktiv) oder OFF (inaktiv).

Beim Deaktivieren des Addons wird eine etwaige stats/ Seite ausgeblendet.'; +$lang['stag0015'] = 'Du konntest nicht auf dem TeamSpeak gefunden werden. Bitte %sklicke hier%s um dich zunĂ€chst zu verifizieren.'; +$lang['stag0016'] = 'Verifizierung benötigt!'; +$lang['stag0017'] = 'Verifiziere dich hier..'; +$lang['stag0018'] = 'Eine Liste der ausgeschlossenen Servergruppen. Wenn ein User eine dieser Servergruppen besitzt, kann er das Add-on nicht verwenden.'; +$lang['stag0019'] = "Du bist von dieser Funktion ausgeschlossen, da du die Servergruppe '%s' (ID: %s) besitzt."; +$lang['stag0020'] = 'Titel'; +$lang['stag0021'] = 'Gebe einen Titel fĂŒr diese Gruppe ein. Der Titel wird auch auf der Statistikseite angezeigt.'; +$lang['stix0001'] = 'Server Statistiken'; +$lang['stix0002'] = 'Anzahl User'; +$lang['stix0003'] = 'zeige Liste aller User'; +$lang['stix0004'] = 'Online Zeit aller User / Total'; +$lang['stix0005'] = 'zeige Top User aller Zeiten'; +$lang['stix0006'] = 'zeige Top User des Monats'; +$lang['stix0007'] = 'zeige Top User der Woche'; +$lang['stix0008'] = 'Server Nutzung'; +$lang['stix0009'] = 'der letzten 7 Tage'; +$lang['stix0010'] = 'der letzten 30 Tage'; +$lang['stix0011'] = 'der letzten 24 Stunden'; +$lang['stix0012'] = 'wĂ€hle Zeitraum'; +$lang['stix0013'] = 'letzten 24 Stunden'; +$lang['stix0014'] = 'letzte Woche'; +$lang['stix0015'] = 'letzter Monat'; +$lang['stix0016'] = 'Aktive / Inaktive Zeit (aller User)'; +$lang['stix0017'] = 'Versionen (aller User)'; +$lang['stix0018'] = 'NationalitĂ€ten (aller User)'; +$lang['stix0019'] = 'Plattformen (aller User)'; +$lang['stix0020'] = 'Server Details'; +$lang['stix0023'] = 'Server Status'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'User (Online / Max)'; +$lang['stix0027'] = 'Anzahl aller Channel'; +$lang['stix0028'] = 'Server Ping (Mittelwert)'; +$lang['stix0029'] = 'Eingehende Daten insg.'; +$lang['stix0030'] = 'Ausgehende Daten insg.'; +$lang['stix0031'] = 'Server online seit'; +$lang['stix0032'] = 'vor Offlineschaltung:'; +$lang['stix0033'] = '00 Tage, 00 Stunden, 00 Min., 00 Sek.'; +$lang['stix0034'] = 'Paketverlust (Mittelwert)'; +$lang['stix0035'] = ' '; +$lang['stix0036'] = 'Server Name'; +$lang['stix0037'] = 'Server Adresse (Host Adresse: Port)'; +$lang['stix0038'] = 'Server Passwort'; +$lang['stix0039'] = 'Nein (Öffentlich)'; +$lang['stix0040'] = 'Ja (Privat)'; +$lang['stix0041'] = 'Server-ID'; +$lang['stix0042'] = 'Server Plattform'; +$lang['stix0043'] = 'Server Version'; +$lang['stix0044'] = 'Server Erstelldatum (dd/mm/yyyy)'; +$lang['stix0045'] = 'Report an Serverliste'; +$lang['stix0046'] = 'Aktiv'; +$lang['stix0047'] = 'Deaktiviert'; +$lang['stix0048'] = 'nicht genĂŒgend Daten ...'; +$lang['stix0049'] = 'Online Zeit aller User / Monat'; +$lang['stix0050'] = 'Online Zeit aller User / Woche'; +$lang['stix0051'] = 'TeamSpeak hat gefailed, daher kein Erstelldatum...'; +$lang['stix0052'] = 'Andere'; +$lang['stix0053'] = 'Aktive Zeit (in Tagen)'; +$lang['stix0054'] = 'Inaktive Zeit (in Tagen)'; +$lang['stix0055'] = 'online in d. letzten 24 Std.'; +$lang['stix0056'] = 'online in d. letzten %s Tagen'; +$lang['stix0059'] = 'Liste der User'; +$lang['stix0060'] = 'User'; +$lang['stix0061'] = 'zeige alle Versionen'; +$lang['stix0062'] = 'zeige alle Nationen'; +$lang['stix0063'] = 'zeige alle Plattformen'; +$lang['stix0064'] = 'letzten 3 Monate'; +$lang['stmy0001'] = 'Meine Statistiken'; +$lang['stmy0002'] = 'Rank'; +$lang['stmy0003'] = 'Datenbank-ID:'; +$lang['stmy0004'] = 'Eindeutige Client-ID:'; +$lang['stmy0005'] = 'Insg. Verbunden zum TS:'; +$lang['stmy0006'] = 'Startzeitpunkt der Statistiken:'; +$lang['stmy0007'] = 'Gesamte online Zeit:'; +$lang['stmy0008'] = 'Online Zeit der letzten %s Tage:'; +$lang['stmy0009'] = 'Aktive Zeit der letzten %s Tage:'; +$lang['stmy0010'] = 'Errungenschaften:'; +$lang['stmy0011'] = 'Fortschritt Errungenschaft Zeit'; +$lang['stmy0012'] = 'Zeit: LegendĂ€r'; +$lang['stmy0013'] = 'Da du bereits %s Stunden auf dem Server online bist.'; +$lang['stmy0014'] = 'Abgeschlossen'; +$lang['stmy0015'] = 'Zeit: Gold'; +$lang['stmy0016'] = '% erreicht fĂŒr LegendĂ€r'; +$lang['stmy0017'] = 'Zeit: Silber'; +$lang['stmy0018'] = '% erreicht fĂŒr Gold'; +$lang['stmy0019'] = 'Zeit: Bronze'; +$lang['stmy0020'] = '% erreicht fĂŒr Silber'; +$lang['stmy0021'] = 'Zeit: Unranked'; +$lang['stmy0022'] = '% erreicht fĂŒr Bronze'; +$lang['stmy0023'] = 'Fortschritt Errungenschaft Verbindungen'; +$lang['stmy0024'] = 'Verbindungen: LegendĂ€r'; +$lang['stmy0025'] = 'Da du bereits %s mal zum Server verbunden warst.'; +$lang['stmy0026'] = 'Verbindungen: Gold'; +$lang['stmy0027'] = 'Verbindungen: Silber'; +$lang['stmy0028'] = 'Verbindungen: Bronze'; +$lang['stmy0029'] = 'Verbindungen: Unranked'; +$lang['stmy0030'] = 'Fortschritt nĂ€chste Servergruppe'; +$lang['stmy0031'] = 'Gesamte aktive Zeit:'; +$lang['stmy0032'] = 'Zuletzt berechnet:'; +$lang['stna0001'] = 'Nationen'; +$lang['stna0002'] = 'Statistiken'; +$lang['stna0003'] = 'KĂŒrzel'; +$lang['stna0004'] = 'Anzahl'; +$lang['stna0005'] = 'Versionen'; +$lang['stna0006'] = 'Plattformen'; +$lang['stna0007'] = 'Prozent'; +$lang['stnv0001'] = 'Server News'; +$lang['stnv0002'] = 'Schließen'; +$lang['stnv0003'] = 'Client Informationen aktualisieren'; +$lang['stnv0004'] = 'Benutze diese Funktion, wenn sich deine TS3 Daten geĂ€ndert haben, wie z.B. dein Username.'; +$lang['stnv0005'] = 'Du musst hierfĂŒr mit dem TS3 Server verbunden sein!'; +$lang['stnv0006'] = 'Aktualisieren'; +$lang['stnv0016'] = 'nicht verfĂŒgbar'; +$lang['stnv0017'] = 'Du bist nicht mit dem TS3 Server verbunden, daher können kein Daten angezeigt werden.'; +$lang['stnv0018'] = 'Bitte verbinde dich mit dem TS3 Server und aktualisiere anschließend die Session ĂŒber den Aktualisierungs-Button oben rechts in der Ecke.'; +$lang['stnv0019'] = 'Statistiken - InhaltserlĂ€uterung'; +$lang['stnv0020'] = 'Diese Seite zeigt u.a. eine Übersicht deiner persönlichen Statistiken und AktivitĂ€t auf dem TS3 Server.'; +$lang['stnv0021'] = 'Die Informationen wurden gesammelt seit Beginn des Ranksystems, nicht seit Beginn des TS3 Servers.'; +$lang['stnv0022'] = 'Die Seite erhĂ€lt ihre Daten aus einer Datenbank. Es ist also möglich, dass die angezeigten Werte von den live Werten abweichen.'; +$lang['stnv0023'] = 'Die Werte der online Zeit aller User per Woche bzw. Monat werden nur alle 15 Minuten berechnet. Alle anderen Werte sollten nahezu live sein (maximal wenige Sekunden verzögert).'; +$lang['stnv0024'] = 'Ranksystem - Statistiken'; +$lang['stnv0025'] = 'Anzahl EintrĂ€ge'; +$lang['stnv0026'] = 'alle'; +$lang['stnv0027'] = 'Die Informationen auf dieser Seite scheinen veraltet! Es scheint, das Ranksystem ist nicht mehr mit dem TS3 verbunden.'; +$lang['stnv0028'] = '(Du bist nicht zum TS3 verbunden!)'; +$lang['stnv0029'] = 'Rank-Liste'; +$lang['stnv0030'] = 'Ranksystem Info'; +$lang['stnv0031'] = 'Über das Suchfeld können nach Teile im Client-Namen, der eindeutigen Client-ID und der Client-Datenbank-ID gesucht werden.'; +$lang['stnv0032'] = 'Es ist auch möglich bestimmte Filterregeln anzuwenden (siehe unterhalb). Der Filter wird auch im Suchfeld hinterlegt.'; +$lang['stnv0033'] = 'Kombinationen von Filter und einem Suchwert sind möglich. Trage hierfĂŒr den/die Filter gefolgt von dem Suchwert ein.'; +$lang['stnv0034'] = 'Auch ist es möglich mehrere Filter zu kombinieren. Trage diese einfach fortlaufend in das Suchfeld ein.'; +$lang['stnv0035'] = 'Beispiel:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Zeigt nur Clients an, welche ausgeschlossen sind (Client, Servergruppen oder Channel-Ausnahme).'; +$lang['stnv0037'] = 'Zeigt nur Clients an, welche nicht ausgeschlossen sind.'; +$lang['stnv0038'] = 'Zeigt nur Clients an, welche online sind'; +$lang['stnv0039'] = 'Zeigt nur Clients an, welche nicht online sind'; +$lang['stnv0040'] = 'Zeigt nur Clients an, welche sich in einer bestimmten Servergruppe befinden. Stellt das aktuelle Level (Rang) dar.
Ersetze GROUPID mi der gewĂŒnschten Servergruppen ID.'; +$lang['stnv0041'] = "Zeigt nur Clients an, welche dem ausgewĂ€hlten 'zuletzt gesehen' Zeitraum entsprechen.
Ersetze OPERATOR mit '<' oder '>' oder '=' oder '!='.
Und ersetze TIME mit einem Zeitstempel (Timestamp) oder Datum mit im Format 'Y-m-d H-i' (Beispiel: 2016-06-18 20-25).
VollstÀndiges Beispiel: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = "Zeigt nur Clients an, welche sich im definierten Land befinden.
Ersetze TS3-COUNTRY-CODE mit dem gewĂŒnschten Land.
FĂŒr eine Liste der gĂŒltigen LĂ€ndercodes, bitte nach dem 'ISO 3166-1 alpha-2' googlen."; +$lang['stnv0043'] = 'verbinde zum TS3'; +$lang['stri0001'] = 'Ranksystem Informationen'; +$lang['stri0002'] = 'Was ist das Ranksystem?'; +$lang['stri0003'] = 'Ein TS3 Bot, der automatisch Servergruppen an User fĂŒr online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar.'; +$lang['stri0004'] = 'Wer hat das Ranksystem erstellt?'; +$lang['stri0005'] = 'Wann wurde das Ranksystem erstellt?'; +$lang['stri0006'] = 'Erste Alpha Version: 05.10.2014.'; +$lang['stri0007'] = 'Erste Beta Version: 01.02.2015.'; +$lang['stri0008'] = 'Die neuste Version kannst du auf der Ranksystem Website finden.'; +$lang['stri0009'] = 'Wie wurde das Ranksystem erstellt?'; +$lang['stri0010'] = 'Das Ranksystem basiert auf'; +$lang['stri0011'] = 'Es nutzt weiterhin die folgenden Programmbibliotheken:'; +$lang['stri0012'] = 'Ein spezieller Dank ergeht an:'; +$lang['stri0013'] = 'sergey, Arselopster, DeviantUser & kidi - fĂŒr die russische Übersetzung'; +$lang['stri0014'] = 'Bejamin Frost - fĂŒr die Initialisierung des Bootstrap Designs'; +$lang['stri0015'] = '%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'] = '%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['stri0029'] = '%s fĂŒr die Impressums-Funktion'; +$lang['stri0030'] = "%s fĂŒr den 'CosmicBlue'-Stil fĂŒr die Statistik-Seite und das Webinterface"; +$lang['stta0001'] = 'aller Zeiten'; +$lang['sttm0001'] = 'des Monats'; +$lang['sttw0001'] = 'Top User'; +$lang['sttw0002'] = 'der Woche'; +$lang['sttw0003'] = 'mit %s %s online Zeit'; +$lang['sttw0004'] = 'Top 10 im Vergleich'; +$lang['sttw0005'] = 'Stunden (definiert 100 %)'; +$lang['sttw0006'] = '%s Stunden (%s%)'; +$lang['sttw0007'] = 'Top 10 Statistiken'; +$lang['sttw0008'] = 'Top 10 vs Andere; Online Zeit'; +$lang['sttw0009'] = 'Top 10 vs Andere; Aktive Zeit'; +$lang['sttw0010'] = 'Top 10 vs Andere; Inaktive Zeit'; +$lang['sttw0011'] = 'Top 10 (in Stunden)'; +$lang['sttw0012'] = 'Andere %s User (in Stunden)'; +$lang['sttw0013'] = 'mit %s %s aktive Zeit'; +$lang['sttw0014'] = 'Stunden'; +$lang['sttw0015'] = 'Minuten'; +$lang['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.'; +$lang['stve0004'] = 'Der eingegebene Token stimmt nicht ĂŒberein! Bitte versuche es erneut.'; +$lang['stve0005'] = 'Gratulation, du wurdest erfolgreich verifiziert! Du kannst nun fortfahren...'; +$lang['stve0006'] = 'Ein unbekannter Fehler ist aufgetreten. Bei wiederholtem Vorkommen benachrichtige bitte einen Admin.'; +$lang['stve0007'] = 'Verifizierungs-Prozess (ĂŒber TeamSpeak)'; +$lang['stve0008'] = 'WĂ€hle hier deine eindeutige Client-ID auf dem TS3 Server um dich zu verifizieren.'; +$lang['stve0009'] = ' -- wĂ€hle dich aus -- '; +$lang['stve0010'] = 'Du wirst einen Token auf dem TS3 Server erhalten, welcher hier einzugeben ist:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'verifizieren'; +$lang['time_day'] = 'Tag(e)'; +$lang['time_hour'] = 'Std.'; +$lang['time_min'] = 'Min.'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sek.'; +$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'; +$lang['upgrp0003'] = 'Fehler beim Schreiben des ServerIcons.'; +$lang['upgrp0004'] = 'Fehler beim Herunterladen des ServerIcons vom TS3 Server: '; +$lang['upgrp0005'] = 'Fehler beim Löschen des ServerIcons.'; +$lang['upgrp0006'] = 'Das ServerIcon wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt.'; +$lang['upgrp0007'] = 'Fehler beim Schreiben des Servergruppen-Icons bei Gruppe %s mit ID %s.'; +$lang['upgrp0008'] = 'Fehler beim Herunterladen des Servergruppen-Icons bei Gruppe %s mit ID %s: '; +$lang['upgrp0009'] = 'Fehler beim Löschen des Servergruppen-Icons bei Gruppe %s mit ID %s.'; +$lang['upgrp0010'] = 'Das Icon der Servergruppe %s mit der ID %s wurde vom TS3 Server gelöscht. Dieses wurde nun auch aus dem Ranksystem entfernt.'; +$lang['upgrp0011'] = 'Lade neues Servergruppen-Icon fĂŒr die Servergruppe %s mit der ID: %s herunter.'; +$lang['upinf'] = 'Eine neue Version des Ranksystems ist verfĂŒgbar. Informiere Clients auf dem Server...'; +$lang['upinf2'] = 'Das Ranksystem wurde kĂŒrzlich (%s) aktualisiert. Die %sChangelog%s enthĂ€lt weitere Informationen ĂŒber die enthaltenen Änderungen.'; +$lang['upmsg'] = "\nHey, eine neue Version des [B]Ranksystems[/B] ist verfĂŒgbar!\n\naktuelle Version: %s\n[B]neue Version: %s[/B]\n\nBitte schaue auf die offizielle Webseite fĂŒr weitere Informationen [URL]%s[/URL].\n\nStarte den Update Prozess im Hintergrund. [B]Bitte prĂŒfe die Ranksystem-Log![/B]"; +$lang['upmsg2'] = "\nHey, das [B]Ranksystem[/B] wurde kĂŒrzlich aktualisiert.\n\n[B]neue Version: %s[/B]\n\nBitte schaue auf die offizielle Webseite fĂŒr weitere Informationen [URL]%s[/URL]."; +$lang['upusrerr'] = 'Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!'; +$lang['upusrinf'] = 'User %s wurde erfolgreich benachrichtigt.'; +$lang['user'] = 'Benutzername'; +$lang['verify0001'] = 'Bitte stelle sicher, dass du wirklich mit dem TS3 Server verbunden bist!'; +$lang['verify0002'] = 'Betrete, falls noch nicht geschehen, den Ranksystem %sVerifizierungs-Channel%s!'; +$lang['verify0003'] = 'Wenn du wirklich zum TS3 Server verbunden bist, kontaktiere bitte dort einen Admin.
Dieser muss einen Verifizierungs-Channel auf dem TS3 Server erstellen. Danach ist der erstellte Channel im Ranksystem zu hinterlegen, was nur ein Admin tun kann.
Weitere Informationen findet dieser im Webinterface (-> Statistik Seite) des Ranksystems.

Bis dahin ist leider keine Verifizierung fĂŒr das Ranksystem möglich! Sorry :( '; +$lang['verify0004'] = 'Keine User im Verifizierungs-Channel gefunden...'; +$lang['wi'] = 'Webinterface'; +$lang['wiaction'] = 'ausfĂŒhren'; +$lang['wiadmhide'] = 'unterdrĂŒcke ausgeschl. User'; +$lang['wiadmhidedesc'] = 'Hiermit können vom Ranksystem ausgeschlossene User in der folgenden Auswahl unterdrĂŒckt werden.'; +$lang['wiadmuuid'] = 'Bot-Admin'; +$lang['wiadmuuiddesc'] = 'Lege einen User als Administrator des Ranksystems fest.
Auch mehrere User können gewÀhlt werden.

Die hier aufgelisteten User sind die User, welche auf dem TeamSpeak Server online sind bzw. waren und das Ranksystem schon kennt. Sofern der gewĂŒnschte User nicht gelistet wird, stelle sicher das dieser auf dem TS online ist, starte den Ranksystem-Bot ggfs. neu und lade diese Seite nochmals, um die Liste zu aktualisieren.


Der Administrator des Ranksystem-Bots hat die Privilegien:

-, um das Passwort fĂŒr das Webinterface zurĂŒckzusetzen.
(Hinweis: Ohne Definition eines Administrators ist es nicht möglich, das Passwort im Bedarfsfall zurĂŒckzusetzen!)

- Bot-Befehle mit Admin-Privilegien auszufĂŒhren
(Eine Liste der Befehle befindet sich %shier%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['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['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!'; +$lang['wibot4'] = 'Start / Stop Ranksystem Bot'; +$lang['wibot5'] = 'Bot starten'; +$lang['wibot6'] = 'Bot stoppen'; +$lang['wibot7'] = 'Bot neu starten'; +$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['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['wicmdlinesec'] = 'BefehlszeilenprĂŒfung'; +$lang['wicmdlinesecdesc'] = 'Der Ranksystem Bot hat einen Sicherheitscheck, dass dieser nur per Befehlszeile gestartet wird. Diese Methode wird automatisch angewandt, wenn er ĂŒber das Webinterface ausgefĂŒhrt wird.

In bestimmten Systemumgebungen kann es notwendig sein, diesen Sicherheitscheck zu deaktivieren, damit der Bot gestartet wird.
In diesem Fall ist eine systemspezifische manuelle PrĂŒfroutine zu aktivieren, damit der Bot nicht von Außen ausgefĂŒhrt werden kann (ĂŒber die URL jobs/bot.php)

Deaktiviere diese Funktion NICHT, wenn der Bot auf dem System bereits lauffĂ€hig ist!'; +$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['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'; +$lang['widelcldgrpdesc'] = 'Das Ranksystem merkt sich die vergebenen Servergruppen, sodass nicht mit jedem Lauf der worker.php diese nochmals ĂŒberprĂŒft bzw. vergeben werden.

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

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

Achtung: Bitte diese Funktion in einem Moment ausfĂŒhren, in welchem fĂŒr nĂ€chsten Minuten keine Rangsteigerung ansteht!!! Das Ranksystem kann dann nĂ€mlich die alten Gruppen nicht entfernen, da es diese nicht mehr kennt ;-)'; +$lang['widelsg'] = 'entferne aus Servergruppen'; +$lang['widelsgdesc'] = 'WĂ€hle, ob Clients auch aus den Servergruppen entfernt werden sollen, wenn sie aus der Ranksystem Datenbank gelöscht werden.

Es werden nur Servergruppen beachtet, welche das Ranksystem betreffen!'; +$lang['wiexcept'] = 'Ausnahmen'; +$lang['wiexcid'] = 'Channel-Ausnahmen'; +$lang['wiexciddesc'] = "Eine mit Komma getrennte Liste von den Channel-IDs, die nicht am Ranksystem teilnehmen sollen.

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

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

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

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

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

2) pausiere Zeit: Bei dieser Option wird die online/aktive Zeit eingefroren (pausiert) in dem Moment, in dem der User ausgeschlossen wird. Nach RĂŒcknahme der Ausnahme (entfernen der ausgeschlossenen Servergruppe oder entfernen der Ausnahmeregel) lĂ€uft die online/aktive Zeit weiter.

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


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

Aufgelistete User sind von Rangsteigerungen ausgenommen.'; +$lang['wiexregrp'] = 'entferne Gruppe'; +$lang['wiexregrpdesc'] = "Wenn ein User vom Ranksystem ausgeschlossen wird, so wird hiermit die vom Ranksystem vergebene Servergruppe entfernt.

Die Gruppe wird nur mit dem '".$lang['wiexres']."' mit '".$lang['wiexres1']."' entfernt. Bei allen anderen Modi wird die Servergruppe nicht entfernt.

Diese Funktion hat also nur Relevanz bei einer Client-Ausnahme oder Servergruppen-Ausnahme in Verbindung mit '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Modus'; +$lang['wigrpt1'] = 'Zeit in Sekunden'; +$lang['wigrpt2'] = 'Servergruppe'; +$lang['wigrpt3'] = 'Permanente Gruppe'; +$lang['wigrptime'] = 'Rank Definition'; +$lang['wigrptime2desc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID => Permanente Gruppe

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['wigrptime3desc'] = "

Permanente Gruppe
Dies ermöglicht es, eine Servergruppe als 'permanent' zu kennzeichnen, die dann bei der nÀchsten Rangsteigerung nicht entfernt werden soll. Die Zeile, mit dieser Kennzeichnung (='ON'), bleibt vom Ranksystem dauerhaft erhalten.
Mit der Voreinstellung (='OFF'), wird die aktuelle Servergruppe zu dem Zeitpunkt entfernt, zu dem der User einen höheren Rang erreicht."; +$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID => Permanente Gruppe

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'erlaube jede Ressource'; +$lang['wiheadacao3'] = 'erlaube individuelle URL'; +$lang['wiheadacaodesc'] = "Mit dieser Option kann der Access-Control-Allow-Origin Header definiert werden. Weitere Informationen sind hier zu finden:
%s

An dieser Position kann der Wert fĂŒr den 'Access-Control-Allow-Origin' hinterlegt werden.
Lege eine Quelle fest, um nur Anfragen von dieser Quelle zuzulassen.
Beispiel:
https://ts-ranksystem.com


Multiple Quellen können getrennt mit einem Komma angegeben werden.
Beispiel:
https://ts-ranksystem.com,https://ts-n.net
"; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Aktiviere dies, um den Header auf die Option 'nosniff' zu setzen."; +$lang['wiheaddesc'] = 'Mit dieser Option kann der %s Header definiert werden. Weitere Informationen sind hier zu finden:
%s'; +$lang['wiheaddesc1'] = "WĂ€hle 'deaktiviert', um diesen Header nicht durch das Ranksystem zu setzen."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'deaktiviere XSS Filter'; +$lang['wiheadxss2'] = 'aktiviere XSS Filter'; +$lang['wiheadxss3'] = 'filter XSS Inhalte'; +$lang['wiheadxss4'] = 'blocke vollstĂ€ndiges Rendern'; +$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!"; +$lang['wihladm1'] = 'Zeit hinzufĂŒgen'; +$lang['wihladm2'] = 'Zeit entfernen'; +$lang['wihladm3'] = 'Ranksystem-Reset'; +$lang['wihladm31'] = 'resette User-Statistiken'; +$lang['wihladm311'] = 'leere Zeiten'; +$lang['wihladm312'] = 'lösche User'; +$lang['wihladm31desc'] = 'WĂ€hle einer der beiden Optionen um die Statistiken aller User zurĂŒckzusetzen.

leere Zeiten: Resettet die Zeiten (online Zeit & idle Zeit) aller User auf den Wert 0.

lösche User: Mit dieser Option werden alle User vollstĂ€ndig aus der Ranksystem Datenbank gelöscht. Die TeamSpeak Datenbank ist davon nicht berĂŒhrt!


Die beiden Optionen erledigen im Detail die folgenden Dinge..

.. bei leere Zeiten:
Reset Server Statistiken Übersicht (Tabelle: stats_server)
Reset My statistics (Tabelle: stats_user)
Reset List Rankup / User Statistiken (Tabelle: user)
Leert Top users / User-Statistik-Snapshots (Tabelle: user_snapshot)

.. bei lösche User:
Leert Donut-Chart NationalitÀten (Tabelle: stats_nations)
Leert Donut-Chart Plattformen (Tabelle: stats_platforms)
Leert Donut-Chart Versionen (Tabelle: stats_versions)
Reset Server Statistiken Übersicht (Tabelle: stats_server)
Leert My statistics (Tabelle: stats_user)
Leert List Rankup / User Statistiken (Tabelle: user)
Leert User IP-Hash Werte (Tabelle: user_iphash)
Leert Top users / User-Statistik-Snapshots (Tabelle: user_snapshot)'; +$lang['wihladm32'] = 'Servergruppen entziehen'; +$lang['wihladm32desc'] = "Aktiviere diese Funktion, um die Servergruppen allen TeamSpeak Usern zu entziehen.

Das Ranksystem scannt dabei jede Gruppe, die in der 'Rangsteigerungs Defintion' enthalten ist. Es werden alle User, die dem Ranksystem bekannt sind, aus den entsprechenden Gruppen entfernt.

Das ist der Grund, warum es wichtig ist, die 'Rangsteigerungs Defintion' nicht zu verĂ€ndern, bevor der Reset erfolgt ist. Danach kann die 'Rangsteigerungs Defintion' 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'!


Die Servergruppen selbst auf dem TeamSpeak Server werden nicht gelöscht / berĂŒhrt."; +$lang['wihladm33'] = 'leere Webspace Cache'; +$lang['wihladm33desc'] = 'Aktiviere diese Funktion, um die auf dem Webspace gecachten Avatare und Servergruppen-Icons zu löschen.

Betroffene Verzeichnisse:
- avatars
- tsicons

Nach abgeschlossenen Reset werden die Avatare und Icons automatisch neu heruntergeladen.'; +$lang['wihladm34'] = 'leere Graph "Server Nutzung"'; +$lang['wihladm34desc'] = 'Aktiviere diese Funktion, um den Graph fĂŒr die Server Nutzung au der stats Seite zu leeren.'; +$lang['wihladm35'] = 'Starte Reset'; +$lang['wihladm36'] = 'Bot danach stoppen'; +$lang['wihladm36desc'] = "Ist diese Option aktiviert, wird der Ranksystem Bot gestoppt, nachdem alle Reset-Dinge erledigt sind.

Dieser Stop funktioniert exakt wie der normale Stop-Befehl. Heißt, der Bot wird nicht durch den 'check' Parameter gestartet.

Um den Ranksystem Bot zu starten, benutze den 'start' oder 'restart' Parameter."; +$lang['wihladm4'] = 'Lösche User'; +$lang['wihladm4desc'] = 'WÀhle einen oder mehrere User, um sie aus der Ranksystem Datenbank zu löschen. Der vollstÀndige User wird damit gelöscht inkl. aller Informationen, wie z.B. die gesammelten Zeiten.

Die Löschung hat keine Auswirkungen auf den TeamSpeak Server. Wenn der User in der TS Datenbank noch existiert, wird er durch diese Funktion dort nicht gelöscht.'; +$lang['wihladm41'] = 'Möchtest du wirklich die folgenden User löschen?'; +$lang['wihladm42'] = 'Achtung: Sie können nicht wiederhergestellt werden!'; +$lang['wihladm43'] = 'Ja, löschen'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) wird in wenigen Sekunden aus der Ranksystem Datenbank gelöscht (siehe Ranksystem-Log).'; +$lang['wihladm45'] = 'User %s (UUID: %s; DBID: %s) aus der Ranksystem Datenbank gelöscht.'; +$lang['wihladm46'] = 'Angefordert ĂŒber Admin Funktion.'; +$lang['wihladmex'] = 'Datenbank Export'; +$lang['wihladmex1'] = 'Datenbank Export Job erfolgreich abgeschlossen.'; +$lang['wihladmex2'] = 'Beachte:%s Das Passwort fĂŒr den ZIP Container ist das aktuelle TS3 Query-Passwort:'; +$lang['wihladmex3'] = 'Datei %s erfolgreich gelöscht.'; +$lang['wihladmex4'] = "Beim Löschen der Datei '%s' ist ein Fehler aufgetreten. Existiert die Datei noch und bestehen Berechtigung diese zu löschen?"; +$lang['wihladmex5'] = 'Download Datei'; +$lang['wihladmex6'] = 'Lösche Datei'; +$lang['wihladmex7'] = 'Erstelle SQL Export'; +$lang['wihladmexdesc'] = "Mit dieser Funktion kann ein Export/Backup der Ranksystem-Datenbank erstellt werden. Als Ausgabe wird eine SQL-Datei erzeugt, die ZIP-komprimiert ist.

Der Export kann je nach GrĂ¶ĂŸe der Datenbank einige Minuten dauern. Er wird als Job vom Ranksystem-Bot ausgefĂŒhrt.
Bitte NICHT den Ranksystem-Bot stoppen oder neu starten, wÀhrend der Job lÀuft!


Bevor ein Export gestartet wird, sollte ggfs. der Webserver so konfiguriert werden, dass 'ZIP'- und 'SQL'-Dateien innerhalb des Log-Pfades (Webinterface -> Anderes -> Log-Pfad) nicht fĂŒr Clients zugĂ€nglich sind. Dies schĂŒtzt Ihren Export, da sich darin sensible Daten befinden, wie z.B. die TS3-Query-Zugangsdaten. Der User des Webservers benötigt trotzdem Berechtigungen fĂŒr diese Dateien, um auf sie fĂŒr den Download ĂŒber das Webinterface zugreifen zu können!

ÜberprĂŒfe nach dem Download die letzte Zeile der SQL-Datei, um sicherzustellen, dass die Datei vollstĂ€ndig geschrieben wurde. Sie muss lauten:
-- Finished export

Bei PHP-Version >= 7.2 wird die 'ZIP'-Datei passwortgeschĂŒtzt. Als Passwort verwenden wir das TS3-Query-Passwort, welches in den 'TeamSpeak'-Optionen festgelegt ist.

Die SQL-Datei kann bei Bedarf direkt in die Datenbank importiert werden. DafĂŒr kann z.B. phpMyAdmin verwenden werden, ist aber nicht zwanglĂ€ufig nötig. Es kann jegliche Möglichkeit genutzt werden, eine SQL-Datei in die Datenbank zu importieren.
Vorsicht beim Import der SQL-Datei. Alle vorhandenen Daten in der gewĂ€hlten Datenbank werden dadurch gelöscht/ĂŒberschrieben!"; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'deaktiviert'; +$lang['wihladmrs1'] = 'erstellt'; +$lang['wihladmrs10'] = 'Job-Status erfolgreich zurĂŒckgesetzt!'; +$lang['wihladmrs11'] = 'Erwartete Zeit um den Job abzuschließen'; +$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['wihladmrs17'] = 'DrĂŒcke %s Abbrechen %s um den Export abzubrechen.'; +$lang['wihladmrs18'] = 'Job(s) wurde erfolgreich abgebrochen!'; +$lang['wihladmrs2'] = 'in Bearbeitung..'; +$lang['wihladmrs3'] = 'fehlerhaft (mit Fehlern beendet!)'; +$lang['wihladmrs4'] = 'fertig'; +$lang['wihladmrs5'] = 'Job(s) fĂŒr Reset erfolgreich erstellt.'; +$lang['wihladmrs6'] = 'Es ist bereits ein Reset-Job aktiv. Bitte warte bis alles erledigt ist, bevor du weitere startest!'; +$lang['wihladmrs7'] = 'DrĂŒcke %s Aktualisieren %s um den Status zu beobachten.'; +$lang['wihladmrs8'] = 'Solange ein Job 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 gestartet werden könnte.'; +$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."; +$lang['wiimpaddr'] = 'Anschrift'; +$lang['wiimpaddrdesc'] = 'Trage hier deinen Namen und Anschrift ein.

Beispiel:
Max Mustermann<br>
Musterstraße 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Impressum URL'; +$lang['wiimpaddrurldesc'] = 'FĂŒge eine URL zu einer eigenen Impressum-Seite hinzu.

Beispiel:
https://site.url/imprint/

Um die anderen Felder fĂŒr die Anzeige direkt auf der Ranksystem Satistik-Seite zu nutzen, leere dieses Feld.'; +$lang['wiimpemail'] = 'E-Mail Addresse'; +$lang['wiimpemaildesc'] = 'Trage hier deine E-Mail-Adresse ein.

Beispiel:
info@example.com
'; +$lang['wiimpnotes'] = 'ZusĂ€tzliche Informationen'; +$lang['wiimpnotesdesc'] = 'FĂŒge hier zusĂ€tzliche Informationen, wie zum Beispiel einen Haftungsausschluss ein.
Lasse das Feld leer, damit dieser Abschnitt nicht angezeigt wird.
HTML-Code fĂŒr die Formatierung ist zulĂ€ssig.'; +$lang['wiimpphone'] = 'Telefon'; +$lang['wiimpphonedesc'] = 'Trage hier deine Telefonnummer mit internationaler Vorwahl ein.

Beispiel:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'FĂŒge hier deine DatenschutzerklĂ€rung ein (maximal 21588 Zeichen).
HTML-Code fĂŒr die Formatierung ist zulĂ€ssig.'; +$lang['wiimpprivurl'] = 'Datenschutz URL'; +$lang['wiimpprivurldesc'] = 'FĂŒge eine URL zu einer eigenen Datenschutz-Seite hinzu.

Beispiel:
https://site.url/privacy/

Um die anderen Felder fĂŒr die Anzeige direkt auf der Ranksystem Satistik-Seite zu nutzen, leere dieses Feld.'; +$lang['wiimpswitch'] = 'Impressums-Funktion'; +$lang['wiimpswitchdesc'] = 'Aktiviere diese Funktion, um das Impressum und die DatenschutzerklĂ€rung öffentlich anzuzeigen.'; +$lang['wilog'] = 'Log-Pfad'; +$lang['wilogdesc'] = 'Pfad in dem die Log-Datei des Ranksystems geschrieben werden soll.

Beispiel:
/var/logs/ranksystem/

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

Die Nachricht wird ĂŒber TS3 als private Text-Nachricht versendet. Daher können alle bekannten BB-Codes genutzt werden, die auch sonst in Text-Nachrichten funktionieren.
%s

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

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

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

Beispiel:
<b> - fĂŒr Fettschrift
<u> - zum Unterstreichen
<i> - fĂŒr Kursiv
<br> - fĂŒr einen Zeilenumbruch'; +$lang['wimsgusr'] = 'Rangsteigerung-Info'; +$lang['wimsgusrdesc'] = 'Informiere den User per privater Textnachricht ĂŒber seine Rangsteigerung.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['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['winav13'] = 'Allgemein (Statistiken)'; +$lang['winav14'] = 'Die Navbar der Statistik-Seite wurde deaktiviert. Soll die Statistik-Seite vielleicht als Iframe in eine andere Webseite eingebunden werden? Dann werfe einen Blick auf diese FAQ:'; +$lang['winav2'] = 'Datenbank'; +$lang['winav3'] = 'Kern'; +$lang['winav4'] = 'Anderes'; +$lang['winav5'] = 'Nachrichten'; +$lang['winav6'] = 'Statistik Seite'; +$lang['winav7'] = 'Administration'; +$lang['winav8'] = 'Start / Stop Bot'; +$lang['winav9'] = 'Update verfĂŒgbar!'; +$lang['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['winxmsg2'] = 'Nachricht (Höchste)'; +$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 kann das Passwort nur noch ĂŒber einen direkten Eingriff in die Datenbank geĂ€ndert werden. Eine Beschreibung dazu befindet sich hier:
%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."; +$lang['wirtpw5'] = 'Es wurde eine private Nachricht mit dem neuen Passwort an den Admin auf dem TS3 Server geschickt.'; +$lang['wirtpw6'] = 'Das Passwort fĂŒr das Webinterface wurde erfolgreich zurĂŒckgesetzt. Anforderung von IP %s.'; +$lang['wirtpw7'] = '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['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = "Mit dem 'SameSite' Attribut (des Set-Cookie HTTP-Antwort-Headers) kann bestimmt werden, ob das Cookie auf den First-Party-Kontext (=gleiche Domain/Webseite) beschrĂ€nkt werden soll oder auch fĂŒr ander Webseiten zur VerfĂŒgung stehen soll. Weitere Informationen sind hier zu finden:
%s

Das 'SameSite' Attribut fĂŒr das Ranksystem kann hier definiert werden. Dies kann insbesondere notwendig/nĂŒtzlich sein, wenn das Ranksystem mit einem Iframe in einer anderen Website eingebettet wird.

Die Funktion wird nur mit PHP 7.3 oder höher unterstĂŒtzt."; +$lang['wishcol'] = 'Zeige/Verstecke Spalte'; +$lang['wishcolat'] = 'aktive Zeit'; +$lang['wishcoldesc'] = "Stelle den Schalter auf 'ON' bzw. 'OFF', um die Spalte auf der Statistik-Seite anzuzeigen bzw. zu deaktivieren.

Dies erlaubt die Rank-Liste (stats/list_rankup.php) individuell zu gestalten."; +$lang['wishcolha'] = 'hashe IP Adressen'; +$lang['wishcolha0'] = 'deaktiviert'; +$lang['wishcolha1'] = 'sicheres Hashen'; +$lang['wishcolha2'] = 'schnelles Hashen (Standard)'; +$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['wishcolot'] = 'online Zeit'; +$lang['wishdef'] = 'Standard Spalten-Sortierung'; +$lang['wishdef2'] = '2. Spalten-Sortierung'; +$lang['wishdef2desc'] = 'Definiere die zweite Sortierebene fĂŒr die Seite Rank-Liste.'; +$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."; +$lang['wishhicld'] = 'User in höchstem Rang'; +$lang['wishhiclddesc'] = 'Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben.'; +$lang['wishmax'] = 'Server-Nutzungs-Graph'; +$lang['wishmax0'] = 'zeige alle Statistiken'; +$lang['wishmax1'] = 'deaktiviere max. Clients'; +$lang['wishmax2'] = 'deaktiviere Channel'; +$lang['wishmax3'] = 'deaktiviere max. Clients + Channel'; +$lang['wishmaxdesc'] = "WĂ€hle, welche Statistiken in dem Server-Nutzungs-Graphen auf der 'stats/' Seite gezeigt werden sollen.

Im Standard werden alle Stats gezeigt. Es können hier einige Stats deaktiviert werden."; +$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['wishsort2'] = '2. Sortierreihenfolge'; +$lang['wishsort2desc'] = 'Dadurch wird die Reihenfolge fĂŒr die Sortierung der zweiten Ebene festgelegt.'; +$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['wistyle'] = 'abweichender Stil'; +$lang['wistyledesc'] = "Definiere einen abweichenden, benutzerdefinierten Stil (Style) fĂŒr das Ranksystem.
Dieser Stil wird fĂŒr die Statistik-Seite und das Webinterface verwendet.

Platziere den eigenen Stil im Verzeichnis 'style' in einem eigenen Unterverzeichnis.
Der Name des Unterverzeichnis bestimmt den Namen des Stils.

Stile beginnend mit 'TSN_' werden durch das Ranksystem ausgeliefert. Diese werden durch kĂŒnftige Updates aktualisiert.
In diesen sollten also keine Anpassungen vorgenommen werden!
Allerdings können diese als Vorlage dienen. Kopiere den Stil in ein eigenes Verzeichnis, um darin dann Anpassungen vorzunehmen.

Es sind zwei CSS Dateien erforderlich. Eine fĂŒr die Statistik-Seite und eine fĂŒr das Webinterface.
Es kann auch ein eigenes JavaScript eingebunden werden. Dies ist aber optional.

Namenskonvention der CSS:
- Fix 'ST.css' fĂŒr die Statistik-Seite (/stats/)
- Fix 'WI.css' fĂŒr die Webinterface-Seite (/webinterface/)


Namenskonvention fĂŒr JavaScript:
- Fix 'ST.js' fĂŒr die Statistik-Seite (/stats/)
- Fix 'WI.js' fĂŒr die Webinterface-Seite (/webinterface/)


Wenn du deinen Stil auch gerne anderen zur VerfĂŒgung stellen möchtest, kannst du diesen an die folgende E-Mail-Adresse senden:

%s

Wir werden ihn mit dem nÀchsten Release ausliefern!"; +$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['wisvres'] = 'Damit die Änderungen wirksam werden ist ein Neustart des Ranksystems erforderlich! %s'; +$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['wits3pre'] = 'Prefix Bot-command'; +$lang['wits3predesc'] = "Auf dem TeamSpeak Server kann mit dem Ranksystem Bot ĂŒber den Chat kommuniziert werden. Im Standard werden Bot Commands durch ein fĂŒhrendes Ausrufezeichen '!' gekennzeichnet. Über diese Prefix erkennt der Bot entsprechende Befehle als solche.

Hier kann die Prefix durch eine beliebig andere ausgetauscht werden. Das kann notwendig werden, wenn andere Bots mit gleichen Befehlen genutzt werden.

Im Default ist Bot-Command z.B.
!help


Wird die Prefix beispielsweise durch '#' ersetzt, sieht der Command wie folgt aus:
#help
"; +$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'; +$lang['wits3querpwdesc'] = 'TeamSpeak 3 ServerQuery Passwort

Passwort des gewÀhlten ServerQuery Benutzers.'; +$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['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'; +$lang['witszdesc'] = 'Definiere eine DateigrĂ¶ĂŸe, bei der die Logdatei rotiert wird.

Gebe den Wert in Mebibyte (MiB) an.

Wenn du den Wert erhöhst, achte darauf, dass ausreichend Speicherplatz auf der Partition verfĂŒgbar ist.
Beachte: Zu große Logdateien können zu Performance-Problemen fĂŒhren!

Beim Ändern dieses Wertes wird beim nĂ€chsten Neustart des Bots die GrĂ¶ĂŸe der Logdatei ĂŒberprĂŒft. Ist die Datei grĂ¶ĂŸer als der definierte Wert, wird die Logdatei sofort rotiert.'; +$lang['wiupch'] = 'Update-Channel'; +$lang['wiupch0'] = 'Stable'; +$lang['wiupch1'] = 'Beta'; +$lang['wiupchdesc'] = 'Das Ranksystem wird automatisch aktualisiert, sobald ein neues Update verfĂŒgbar ist. WĂ€hle hier, welchem Update-Kanal du beitreten möchtest.

Stable (Standard): Du erhĂ€ltst die neueste stabile Version. Empfohlen fĂŒr Produktionsumgebungen.

Beta: Du erhĂ€ltst die neueste Beta-Version. Damit erhĂ€ltst du neue Funktionen frĂŒher, aber das Risiko von Fehlern ist höher. Die Nutzung erfolgt auf eigene Gefahr!

Wird von der Beta auf die Stable gewechselt, erfolgt kein Downgrade des Ranksystems. Vielmehr wird auf den nÀchsthöheren Stable-Release abgewartet und dann darauf aktualisiert.'; +$lang['wiverify'] = 'Verifizierungs-Channel'; +$lang['wiverifydesc'] = 'Hier ist die Channel Datenbank-ID des Verifizierungs-Channels zu hinterlegen.

Dieser Channel ist manuell auf dem TeamSpeak Server anzulegen. Name, Berechtigungen und sonstige Eigenschaften können nach Belieben gesetzt werden; lediglich sollten User ihn betreten können! ;-)

Die Verifizierung erfolgt durch den jeweiligen Benutzer selbst auf der Ranksystem Statistik-Seite (/stats/). Sie ist nur dann erforderlich, wenn eine Zuordnung des Webseitenbesuchers mit dem TeamSpeak-User nicht automatisch erfolgen kann.

FĂŒr die Verifizierung muss sich der User auf dem TeamSpeak Server in den Verifizierungs-Channel begeben. Dort kann er den Token empfangen, mit welchem er sich fĂŒr die Statistik-Seite verifiziert.'; +$lang['wivlang'] = 'Sprache'; +$lang['wivlangdesc'] = 'WĂ€hle die Standard-Sprache des Ranksystems.
Sie ist relevant fĂŒr das Webinterface, die Statistik-Seite und insbesondere fĂŒr die Ranksystem-Log.

Die Sprache kann ĂŒber die Webseite durch jeden Besucher ĂŒbersteuert werden und wird dann fĂŒr die laufende Sitzung gespeichert (Session-Cookie).'; diff --git a/languages/core_en_english_gb.php b/languages/core_en_english_gb.php index 0a8834f..85fa7c6 100644 --- a/languages/core_en_english_gb.php +++ b/languages/core_en_english_gb.php @@ -1,708 +1,708 @@ -
You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$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['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."; -$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['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!"; -$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'] = "%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"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$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!
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 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 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
"; -$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['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"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "No, cause excepted"; -$lang['listgrps'] = "current group since"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Clientname"; -$lang['listnxsg'] = "next servergroup"; -$lang['listnxup'] = "next rank up"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "rank"; -$lang['listseen'] = "last seen"; -$lang['listsuma'] = "sum. active time"; -$lang['listsumi'] = "sum. idle time"; -$lang['listsumo'] = "sum. online time"; -$lang['listuid'] = "unique Client-ID"; -$lang['listver'] = "client version"; -$lang['login'] = "Login"; -$lang['module_disabled'] = "This module is deactivated."; -$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['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['permission'] = "Permissions"; -$lang['privacy'] = "Privacy Policy"; -$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)."; -$lang['setontime'] = "add time"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more than %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of concurrent groups: "; -$lang['stag0012'] = "set groups"; -$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['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['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Server statistics"; -$lang['stix0002'] = "Total users"; -$lang['stix0003'] = "View details"; -$lang['stix0004'] = "Online time of all user / Total"; -$lang['stix0005'] = "View top of all time"; -$lang['stix0006'] = "View top of the month"; -$lang['stix0007'] = "View top of the week"; -$lang['stix0008'] = "Server usage"; -$lang['stix0009'] = "In the last 7 days"; -$lang['stix0010'] = "In the last 30 days"; -$lang['stix0011'] = "In the last 24 hours"; -$lang['stix0012'] = "select period"; -$lang['stix0013'] = "Last day"; -$lang['stix0014'] = "Last week"; -$lang['stix0015'] = "Last month"; -$lang['stix0016'] = "Active / inactive time (of all clients)"; -$lang['stix0017'] = "Versions (of all clients)"; -$lang['stix0018'] = "Nationalities (of all clients)"; -$lang['stix0019'] = "Platforms (of all clients)"; -$lang['stix0020'] = "Current statistics"; -$lang['stix0023'] = "Server status"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clients (Online / Max)"; -$lang['stix0027'] = "Amount of channels"; -$lang['stix0028'] = "Average server ping"; -$lang['stix0029'] = "Total bytes received"; -$lang['stix0030'] = "Total bytes sent"; -$lang['stix0031'] = "Server uptime"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 Days, 00 Hours, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Average packet loss"; -$lang['stix0035'] = "Overall statistics"; -$lang['stix0036'] = "Server name"; -$lang['stix0037'] = "Server address (Host Address : Port)"; -$lang['stix0038'] = "Server password"; -$lang['stix0039'] = "No (Server is public)"; -$lang['stix0040'] = "Yes (Server Is private)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platform"; -$lang['stix0043'] = "Server version"; -$lang['stix0044'] = "Server creation date (dd/mm/yyyy)"; -$lang['stix0045'] = "Report to server list"; -$lang['stix0046'] = "Activated"; -$lang['stix0047'] = "Not activated"; -$lang['stix0048'] = "not enough data yet..."; -$lang['stix0049'] = "Online time of all user / month"; -$lang['stix0050'] = "Online time of all user / week"; -$lang['stix0051'] = "TeamSpeak has failed, so no creation date..."; -$lang['stix0052'] = "others"; -$lang['stix0053'] = "Active Time (in Days)"; -$lang['stix0054'] = "Inactive Time (in Days)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "My statistics"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "Total connections to the server:"; -$lang['stmy0006'] = "Start date for statistics:"; -$lang['stmy0007'] = "Total online time:"; -$lang['stmy0008'] = "Online time last %s days:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "Achievements completed:"; -$lang['stmy0011'] = "Time achievement progress"; -$lang['stmy0012'] = "Time: Legendary"; -$lang['stmy0013'] = "Because you have an online time of %s hours."; -$lang['stmy0014'] = "Progress completed"; -$lang['stmy0015'] = "Time: Gold"; -$lang['stmy0016'] = "% Completed for Legendary"; -$lang['stmy0017'] = "Time: Silver"; -$lang['stmy0018'] = "% Completed for Gold"; -$lang['stmy0019'] = "Time: Bronze"; -$lang['stmy0020'] = "% Completed for Silver"; -$lang['stmy0021'] = "Time: Unranked"; -$lang['stmy0022'] = "% Completed for Bronze"; -$lang['stmy0023'] = "Connection achievement progress"; -$lang['stmy0024'] = "Connects: Legendary"; -$lang['stmy0025'] = "Because you connected %s times to the server."; -$lang['stmy0026'] = "Connects: Gold"; -$lang['stmy0027'] = "Connects: Silver"; -$lang['stmy0028'] = "Connects: Bronze"; -$lang['stmy0029'] = "Connects: Unranked"; -$lang['stmy0030'] = "Progress next servergroup"; -$lang['stmy0031'] = "Total active time"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Server news"; -$lang['stnv0002'] = "Close"; -$lang['stnv0003'] = "Refresh client information"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then refresh your session by pressing the blue refresh button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains an overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The information are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be almost live (a maximum of a few seconds delay)."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$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['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the current rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "Ranksystem information"; -$lang['stri0002'] = "What is the Ranksystem?"; -$lang['stri0003'] = "A TS3 bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers information and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the latest version on the Ranksystem Website."; -$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'] = "%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'] = "%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['stri0029'] = "%s for the imprint function"; -$lang['stri0030'] = "%s for the CosmicBlue style for the statistics page and the webinterface"; -$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"; -$lang['sttw0004'] = "Top 10 compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 vs others in online time"; -$lang['sttw0009'] = "Top 10 vs others in active time"; -$lang['sttw0010'] = "Top 10 vs others in inactive time"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['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."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$lang['stve0005'] = "Congratulations, you are successfully verified! You can now go on.."; -$lang['stve0006'] = "An unknown error happened. Please try it again. On repeated times contact an admin"; -$lang['stve0007'] = "Verify on TeamSpeak"; -$lang['stve0008'] = "Choose here your unique Client-ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_day'] = "Day(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(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"; -$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['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes."; -$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more 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['verify0001'] = "Please be sure, you are really connected to the TS3 server!"; -$lang['verify0002'] = "Enter, if not already done, the Ranksystem %sverification-channel%s!"; -$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verification channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity, it is not possible to verify you for the Ranksystem at this moment! Sorry :("; -$lang['verify0004'] = "No user inside the verification channel found..."; -$lang['wi'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "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['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['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!"; -$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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$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['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['wiexregrp'] = "remove group"; -$lang['wiexregrpdesc'] = "If a user is excluded from the Ranksystem, the server group assigned by the Ranksystem will be removed.

The group will only be removed with the '".$lang['wiexres']."' with '".$lang['wiexres1']."'. In all other modes, the server group will not be removed.

This function is only relevant in combination with a '".$lang['wiexuid']."' or '".$lang['wiexgrp']."' in conjunction with '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "Rank Definition"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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!"; -$lang['wihladm1'] = "Add time"; -$lang['wihladm2'] = "Remove time"; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function."; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.

Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.

Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.

Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$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['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$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['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['winxmsg2'] = "Message (highest)"; -$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. 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"; -$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['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "active time"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "online time"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$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'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "custom style"; -$lang['wistyledesc'] = "Define a custom style for the Ranksystem that deviates from the default.
This style will be used for the statistics page and the webinterface.

Place your own style in the 'style' directory in its own subdirectory.
The name of the subdirectory determines the name of the style.

Styles beginning with 'TSN_' are delivered by the Ranksystem itself. These will be updated by future releases.
So, no adjustments should be made in these!
However, these can be used as templates. Copy the style into its own directory to make adjustments there.

Two CSS files are required. One for the statistics page and one for the webinterface.
A custom JavaScript can also be included. However, this is optional.

Convention of the names of CSS:
- Fixed 'ST.css' for the statistics page (/stats/)
- Fixed 'WI.css' for the webinterface page (/webinterface/)


Convention of names of the JavaScript:
- Fixed 'ST.js' for the statistics page (/stats/)
- Fixed 'WI.js' for the web interface page (/webinterface/)


If you would also like to make your style available to others, you can send it to the following email address:

%s

We will deliver it with the next release!"; -$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['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$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)

Should be the (IP) address of the host system of the TS Server.

When the Ranksystem and the TS Server are running on the same host machine, we recommend to use '127.0.0.1' or 'localhost'."; -$lang['wits3pre'] = "Prefix Bot-command"; -$lang['wits3predesc'] = "On the TeamSpeak server you can communicate with the Ranksystem bot via chat. By default, bot commands are marked with a leading exclamation point '!'. The prefix is used to identify commands for the bot as such.

This prefix can be replaced with any other desired prefix. This may be necessary if other bots with similar commands are being used.

For example, the default bot command would be:
!help


If the prefix is replaced with '#', the command would look like this:
#help
"; -$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['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['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"; -$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['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."; -?> \ No newline at end of file +
You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$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['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.'; +$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['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!'; +$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'] = '%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'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$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!
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 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 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
'; +$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['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'; +$lang['listcldbid'] = 'Client-database-ID'; +$lang['listexcept'] = 'No, cause excepted'; +$lang['listgrps'] = 'current group since'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Clientname'; +$lang['listnxsg'] = 'next servergroup'; +$lang['listnxup'] = 'next rank up'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'rank'; +$lang['listseen'] = 'last seen'; +$lang['listsuma'] = 'sum. active time'; +$lang['listsumi'] = 'sum. idle time'; +$lang['listsumo'] = 'sum. online time'; +$lang['listuid'] = 'unique Client-ID'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Login'; +$lang['module_disabled'] = 'This module is deactivated.'; +$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['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['permission'] = 'Permissions'; +$lang['privacy'] = 'Privacy Policy'; +$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).'; +$lang['setontime'] = 'add time'; +$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_pib'] = 'PiB'; +$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'] = '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.'; +$lang['stag0007'] = 'Please wait till your last changes take effect before you change already the next things...'; +$lang['stag0008'] = 'Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server.'; +$lang['stag0009'] = 'You cannot choose more than %s group(s) at the same time!'; +$lang['stag0010'] = 'Please choose at least one new group.'; +$lang['stag0011'] = 'Limit of concurrent groups: '; +$lang['stag0012'] = 'set groups'; +$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['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['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Server statistics'; +$lang['stix0002'] = 'Total users'; +$lang['stix0003'] = 'View details'; +$lang['stix0004'] = 'Online time of all user / Total'; +$lang['stix0005'] = 'View top of all time'; +$lang['stix0006'] = 'View top of the month'; +$lang['stix0007'] = 'View top of the week'; +$lang['stix0008'] = 'Server usage'; +$lang['stix0009'] = 'In the last 7 days'; +$lang['stix0010'] = 'In the last 30 days'; +$lang['stix0011'] = 'In the last 24 hours'; +$lang['stix0012'] = 'select period'; +$lang['stix0013'] = 'Last day'; +$lang['stix0014'] = 'Last week'; +$lang['stix0015'] = 'Last month'; +$lang['stix0016'] = 'Active / inactive time (of all clients)'; +$lang['stix0017'] = 'Versions (of all clients)'; +$lang['stix0018'] = 'Nationalities (of all clients)'; +$lang['stix0019'] = 'Platforms (of all clients)'; +$lang['stix0020'] = 'Current statistics'; +$lang['stix0023'] = 'Server status'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Clients (Online / Max)'; +$lang['stix0027'] = 'Amount of channels'; +$lang['stix0028'] = 'Average server ping'; +$lang['stix0029'] = 'Total bytes received'; +$lang['stix0030'] = 'Total bytes sent'; +$lang['stix0031'] = 'Server uptime'; +$lang['stix0032'] = 'before offline:'; +$lang['stix0033'] = '00 Days, 00 Hours, 00 Mins, 00 Secs'; +$lang['stix0034'] = 'Average packet loss'; +$lang['stix0035'] = 'Overall statistics'; +$lang['stix0036'] = 'Server name'; +$lang['stix0037'] = 'Server address (Host Address : Port)'; +$lang['stix0038'] = 'Server password'; +$lang['stix0039'] = 'No (Server is public)'; +$lang['stix0040'] = 'Yes (Server Is private)'; +$lang['stix0041'] = 'Server ID'; +$lang['stix0042'] = 'Server platform'; +$lang['stix0043'] = 'Server version'; +$lang['stix0044'] = 'Server creation date (dd/mm/yyyy)'; +$lang['stix0045'] = 'Report to server list'; +$lang['stix0046'] = 'Activated'; +$lang['stix0047'] = 'Not activated'; +$lang['stix0048'] = 'not enough data yet...'; +$lang['stix0049'] = 'Online time of all user / month'; +$lang['stix0050'] = 'Online time of all user / week'; +$lang['stix0051'] = 'TeamSpeak has failed, so no creation date...'; +$lang['stix0052'] = 'others'; +$lang['stix0053'] = 'Active Time (in Days)'; +$lang['stix0054'] = 'Inactive Time (in Days)'; +$lang['stix0055'] = 'online last 24 hours'; +$lang['stix0056'] = 'online last %s days'; +$lang['stix0059'] = 'List of user'; +$lang['stix0060'] = 'User'; +$lang['stix0061'] = 'View all versions'; +$lang['stix0062'] = 'View all nations'; +$lang['stix0063'] = 'View all platforms'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'My statistics'; +$lang['stmy0002'] = 'Rank'; +$lang['stmy0003'] = 'Database ID:'; +$lang['stmy0004'] = 'Unique ID:'; +$lang['stmy0005'] = 'Total connections to the server:'; +$lang['stmy0006'] = 'Start date for statistics:'; +$lang['stmy0007'] = 'Total online time:'; +$lang['stmy0008'] = 'Online time last %s days:'; +$lang['stmy0009'] = 'Active time last %s days:'; +$lang['stmy0010'] = 'Achievements completed:'; +$lang['stmy0011'] = 'Time achievement progress'; +$lang['stmy0012'] = 'Time: Legendary'; +$lang['stmy0013'] = 'Because you have an online time of %s hours.'; +$lang['stmy0014'] = 'Progress completed'; +$lang['stmy0015'] = 'Time: Gold'; +$lang['stmy0016'] = '% Completed for Legendary'; +$lang['stmy0017'] = 'Time: Silver'; +$lang['stmy0018'] = '% Completed for Gold'; +$lang['stmy0019'] = 'Time: Bronze'; +$lang['stmy0020'] = '% Completed for Silver'; +$lang['stmy0021'] = 'Time: Unranked'; +$lang['stmy0022'] = '% Completed for Bronze'; +$lang['stmy0023'] = 'Connection achievement progress'; +$lang['stmy0024'] = 'Connects: Legendary'; +$lang['stmy0025'] = 'Because you connected %s times to the server.'; +$lang['stmy0026'] = 'Connects: Gold'; +$lang['stmy0027'] = 'Connects: Silver'; +$lang['stmy0028'] = 'Connects: Bronze'; +$lang['stmy0029'] = 'Connects: Unranked'; +$lang['stmy0030'] = 'Progress next servergroup'; +$lang['stmy0031'] = 'Total active time'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Nations'; +$lang['stna0002'] = 'statistics'; +$lang['stna0003'] = 'Code'; +$lang['stna0004'] = 'Count'; +$lang['stna0005'] = 'Versions'; +$lang['stna0006'] = 'Platforms'; +$lang['stna0007'] = 'Percentage'; +$lang['stnv0001'] = 'Server news'; +$lang['stnv0002'] = 'Close'; +$lang['stnv0003'] = 'Refresh client information'; +$lang['stnv0004'] = 'Only use this refresh, when your TS3 information got changed, such as your TS3 username'; +$lang['stnv0005'] = 'It only works, when you are connected to the TS3 server at the same time'; +$lang['stnv0006'] = 'Refresh'; +$lang['stnv0016'] = 'Not available'; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = 'Please connect to the TS3 Server and then refresh your session by pressing the blue refresh button at the top-right corner.'; +$lang['stnv0019'] = 'My statistics - Page content'; +$lang['stnv0020'] = 'This page contains an overall summary of your personal statistics and activity on the server.'; +$lang['stnv0021'] = 'The information are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server.'; +$lang['stnv0022'] = 'This page receives its values out of a database. So the values might be delayed a bit.'; +$lang['stnv0023'] = 'The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be almost live (a maximum of a few seconds delay).'; +$lang['stnv0024'] = 'Ranksystem - Statistics'; +$lang['stnv0025'] = 'Limit entries'; +$lang['stnv0026'] = 'all'; +$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['stnv0029'] = 'List Rankup'; +$lang['stnv0030'] = 'Ranksystem info'; +$lang['stnv0031'] = 'About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID.'; +$lang['stnv0032'] = 'You can also use a view filter options (see below). Enter the filter also inside the search field.'; +$lang['stnv0033'] = 'Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern.'; +$lang['stnv0034'] = 'Also it is possible to combine multiple filters. Enter this consecutively inside the search field.'; +$lang['stnv0035'] = 'Example:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Show only clients, which are excepted (client, servergroup or channel exception).'; +$lang['stnv0037'] = 'Show only clients, which are not excepted.'; +$lang['stnv0038'] = 'Show only clients, which are online.'; +$lang['stnv0039'] = 'Show only clients, which are not online.'; +$lang['stnv0040'] = 'Show only clients, which are in defined group. Represent the current rank/level.
Replace GROUPID with the wished servergroup ID.'; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'connect TS3'; +$lang['stri0001'] = 'Ranksystem information'; +$lang['stri0002'] = 'What is the Ranksystem?'; +$lang['stri0003'] = 'A TS3 bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers information and statistics about the user and displays the result on this site.'; +$lang['stri0004'] = 'Who created the Ranksystem?'; +$lang['stri0005'] = 'When the Ranksystem was Created?'; +$lang['stri0006'] = 'First alpha release: 05/10/2014.'; +$lang['stri0007'] = 'First beta release: 01/02/2015.'; +$lang['stri0008'] = 'You can see the latest version on the Ranksystem Website.'; +$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'] = '%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'] = '%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['stri0029'] = '%s for the imprint function'; +$lang['stri0030'] = '%s for the CosmicBlue style for the statistics page and the webinterface'; +$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'; +$lang['sttw0004'] = 'Top 10 compared'; +$lang['sttw0005'] = 'Hours (Defines 100 %)'; +$lang['sttw0006'] = '%s hours (%s%)'; +$lang['sttw0007'] = 'Top 10 Statistics'; +$lang['sttw0008'] = 'Top 10 vs others in online time'; +$lang['sttw0009'] = 'Top 10 vs others in active time'; +$lang['sttw0010'] = 'Top 10 vs others in inactive time'; +$lang['sttw0011'] = 'Top 10 (in hours)'; +$lang['sttw0012'] = 'Other %s users (in hours)'; +$lang['sttw0013'] = 'With %s %s active time'; +$lang['sttw0014'] = 'hours'; +$lang['sttw0015'] = 'minutes'; +$lang['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.'; +$lang['stve0004'] = 'The entered token does not match! Please try it again.'; +$lang['stve0005'] = 'Congratulations, you are successfully verified! You can now go on..'; +$lang['stve0006'] = 'An unknown error happened. Please try it again. On repeated times contact an admin'; +$lang['stve0007'] = 'Verify on TeamSpeak'; +$lang['stve0008'] = 'Choose here your unique Client-ID on the TS3 server to verify yourself.'; +$lang['stve0009'] = ' -- select yourself -- '; +$lang['stve0010'] = 'You will receive a token on the TS3 server, which you have to enter here:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'verify'; +$lang['time_day'] = 'Day(s)'; +$lang['time_hour'] = 'Hour(s)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sec(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'; +$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['upinf2'] = 'The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.'; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more 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['verify0001'] = 'Please be sure, you are really connected to the TS3 server!'; +$lang['verify0002'] = 'Enter, if not already done, the Ranksystem %sverification-channel%s!'; +$lang['verify0003'] = 'If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verification channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity, it is not possible to verify you for the Ranksystem at this moment! Sorry :('; +$lang['verify0004'] = 'No user inside the verification channel found...'; +$lang['wi'] = 'Webinterface'; +$lang['wiaction'] = 'action'; +$lang['wiadmhide'] = 'hide excepted clients'; +$lang['wiadmhidedesc'] = 'To hide excepted user in the following selection'; +$lang['wiadmuuid'] = '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['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['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!'; +$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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$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['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['wiexregrp'] = 'remove group'; +$lang['wiexregrpdesc'] = "If a user is excluded from the Ranksystem, the server group assigned by the Ranksystem will be removed.

The group will only be removed with the '".$lang['wiexres']."' with '".$lang['wiexres1']."'. In all other modes, the server group will not be removed.

This function is only relevant in combination with a '".$lang['wiexuid']."' or '".$lang['wiexgrp']."' in conjunction with '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'Rank Definition'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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!"; +$lang['wihladm1'] = 'Add time'; +$lang['wihladm2'] = 'Remove time'; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function.'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.

Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.

Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.

Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$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['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$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['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['winxmsg2'] = 'Message (highest)'; +$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. 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"; +$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['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'active time'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'online time'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$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'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'custom style'; +$lang['wistyledesc'] = "Define a custom style for the Ranksystem that deviates from the default.
This style will be used for the statistics page and the webinterface.

Place your own style in the 'style' directory in its own subdirectory.
The name of the subdirectory determines the name of the style.

Styles beginning with 'TSN_' are delivered by the Ranksystem itself. These will be updated by future releases.
So, no adjustments should be made in these!
However, these can be used as templates. Copy the style into its own directory to make adjustments there.

Two CSS files are required. One for the statistics page and one for the webinterface.
A custom JavaScript can also be included. However, this is optional.

Convention of the names of CSS:
- Fixed 'ST.css' for the statistics page (/stats/)
- Fixed 'WI.css' for the webinterface page (/webinterface/)


Convention of names of the JavaScript:
- Fixed 'ST.js' for the statistics page (/stats/)
- Fixed 'WI.js' for the web interface page (/webinterface/)


If you would also like to make your style available to others, you can send it to the following email address:

%s

We will deliver it with the next release!"; +$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['wisvres'] = 'You need to restart the Ranksystem before the changes will take effect! %s'; +$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)

Should be the (IP) address of the host system of the TS Server.

When the Ranksystem and the TS Server are running on the same host machine, we recommend to use '127.0.0.1' or 'localhost'."; +$lang['wits3pre'] = 'Prefix Bot-command'; +$lang['wits3predesc'] = "On the TeamSpeak server you can communicate with the Ranksystem bot via chat. By default, bot commands are marked with a leading exclamation point '!'. The prefix is used to identify commands for the bot as such.

This prefix can be replaced with any other desired prefix. This may be necessary if other bots with similar commands are being used.

For example, the default bot command would be:
!help


If the prefix is replaced with '#', the command would look like this:
#help
"; +$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['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['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'; +$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['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.'; diff --git "a/languages/core_es_espa\303\261ol_es.php" "b/languages/core_es_espa\303\261ol_es.php" index 1cfd8ee..42d0900 100644 --- "a/languages/core_es_espa\303\261ol_es.php" +++ "b/languages/core_es_espa\303\261ol_es.php" @@ -1,707 +1,707 @@ - agregada a Ranksystem ahora."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Permitir iniciar/detener el bot de Ranksystem a través de API"; -$lang['apipermdesc'] = "(ON = Permitir ; OFF = Denegar)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$lang['changedbid'] = "Usuario %s (ID de cliente unico: %s) tengo una nueva TeamSpeak ID de base de datos del cliente (%s). Actualiza el viejo ID de base de datos del cliente (%s) y restablezca los tiempos recogidos!"; -$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'] = "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."; -$lang['cleanno'] = "No habĂ­a nada que eliminar..."; -$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['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!"; -$lang['errgrplist'] = "Error al obtener las listas de grupos del servidores: "; -$lang['errlogin'] = "ÂĄEl nombre de usuario y / o contraseña son incorrectos! IntĂ©ntalo de nuevo..."; -$lang['errlogin2'] = "ProtecciĂłn de fuerza bruta: IntĂ©ntalo de nuevo en %s segundos!"; -$lang['errlogin3'] = "ProtecciĂłn de la fuerza bruta: Demasiados errores. Baneado por 300 Segundos!"; -$lang['error'] = "Error "; -$lang['errorts3'] = "Error de TS3: "; -$lang['errperm'] = "Por favor, compruebe el permiso para la carpeta '%s'!"; -$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"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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!
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 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 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
"; -$lang['isntwidbmsg'] = "Error de la base de datos: "; -$lang['isntwidbname'] = "Nombre de la DB:"; -$lang['isntwidbnamedesc'] = "Nombre de la base de datos"; -$lang['isntwidbpass'] = "Contraseña de la DB:"; -$lang['isntwidbpassdesc'] = "Contraseña para acceder a la base de datos"; -$lang['isntwidbtype'] = "Tipo de DB:"; -$lang['isntwidbtypedesc'] = "Tipo de la base de datos que Ranksystem debería usar.

El controlador PDO para PHP necesita ser instalado.
Para obtener mĂĄs informaciĂłn y una lista real de requisitos, eche un vistazo a la pĂĄgina de instalaciĂłn:
%s"; -$lang['isntwidbusr'] = "Usuario de la DB:"; -$lang['isntwidbusrdesc'] = "Usuario para acceder a la base de datos"; -$lang['isntwidel'] = "Por favor borre el archivo 'install.php' desde su servidor web"; -$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"; -$lang['listcldbid'] = "ID de base de datos del cliente"; -$lang['listexcept'] = "No, causa excepcion"; -$lang['listgrps'] = "grupo actual desde"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Nombre del cliente"; -$lang['listnxsg'] = "siguiente grupo de servidores"; -$lang['listnxup'] = "siguiente rango arriba"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "rango"; -$lang['listseen'] = "Ășltima vez visto"; -$lang['listsuma'] = "suma. tiempo activo"; -$lang['listsumi'] = "suma. tiempo de inactividad"; -$lang['listsumo'] = "suma. tiempo en lĂ­nea"; -$lang['listuid'] = "ID de cliente unica"; -$lang['listver'] = "client version"; -$lang['login'] = "Iniciar sesiĂłn"; -$lang['module_disabled'] = "This module is deactivated."; -$lang['msg0001'] = "Ranksystem se estĂĄ ejecutando en la versiĂłn: %s"; -$lang['msg0002'] = "A list of valid bot commands can be found here [URL]https://ts-ranksystem.com/#commands[/URL]"; -$lang['msg0003'] = "No eres elegible para este comando!"; -$lang['msg0004'] = "Cliente %s (%s) cierre de solicitudes."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Cliente %s (%s) solicitudes %s."; -$lang['msg0008'] = "ActualizaciĂłn de verificaciĂłn hecha. Si hay una actualizaciĂłn disponible, se ejecutarĂĄ inmediatamente."; -$lang['msg0009'] = "Limpieza de la base de datos de usuarios empezĂł."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; -$lang['noentry'] = "Entradas no encontradas.."; -$lang['pass'] = "Contraseña"; -$lang['pass2'] = "Cambiar contraseña"; -$lang['pass3'] = "Antigua contraseña"; -$lang['pass4'] = "Nueva contraseña"; -$lang['pass5'] = "ÂżSe te olvidĂł tu contraseña?"; -$lang['permission'] = "Permisos"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "repetir"; -$lang['resettime'] = "Restablecer el tiempo en lĂ­nea y inactivo del usuario %s (ID de cliente unica: %s; ID de cliente en base de datos %s) a cero, causa que el usuario sea eliminado de la excepciĂłn."; -$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)."; -$lang['setontime'] = "agregar tiempo"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Espere hasta que los cambios surtan efecto antes de cambiar las siguientes cosas..."; -$lang['stag0008'] = "Cambios grupales guardados con Ă©xito. Puede tomar unos segundos hasta que surta efecto en el servidor ts3."; -$lang['stag0009'] = "No puedes elegir mĂĄs de %s grupo(s) al mismo tiempo!"; -$lang['stag0010'] = "Por favor elija al menos un nuevo grupo."; -$lang['stag0011'] = "LĂ­mite de grupo simultĂĄneos: "; -$lang['stag0012'] = "establecer grupos"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Encienda el addon (habilitado) o desactĂ­velo (deshabilitado).

Al desactivar el Addon, se ocultarĂĄ una posible parte de las estadĂ­sticas/ el sitio estarĂĄ oculto."; -$lang['stag0015'] = "No se puede encontrar en el servidor de TeamSpeak. Por favor %shaga clic aquĂ­%s para verificarse."; -$lang['stag0016'] = "verificaciĂłn necesaria!"; -$lang['stag0017'] = "verifica aquĂ­.."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "EstadĂ­sticas del servidor"; -$lang['stix0002'] = "Total de usuarios"; -$lang['stix0003'] = "Ver detalles"; -$lang['stix0004'] = "Tiempo en lĂ­nea de todos los usuarios / Total"; -$lang['stix0005'] = "Ver top de todos los tiempos"; -$lang['stix0006'] = "Ver top del mes"; -$lang['stix0007'] = "Ver top de la semana"; -$lang['stix0008'] = "Uso del servidor"; -$lang['stix0009'] = "En los Ășltimos 7 dĂ­as"; -$lang['stix0010'] = "En los Ășltimos 30 dĂ­as"; -$lang['stix0011'] = "En las Ășltimas 24 horas"; -$lang['stix0012'] = "seleccionar periodo"; -$lang['stix0013'] = "Último dĂ­a"; -$lang['stix0014'] = "Última semana"; -$lang['stix0015'] = "Último mes"; -$lang['stix0016'] = "Tiempo activo / inactivo (de todos los clientes)"; -$lang['stix0017'] = "Versiones (de todos los clientes)"; -$lang['stix0018'] = "Nacionalidades (de todos los clientes)"; -$lang['stix0019'] = "Plataformas (de todos los clientes)"; -$lang['stix0020'] = "EstadĂ­sticas actuales"; -$lang['stix0023'] = "El estado del servidor"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clientes (en lĂ­nea / mĂĄx.)"; -$lang['stix0027'] = "Cantidad de canales"; -$lang['stix0028'] = "Ping promedio del servidor"; -$lang['stix0029'] = "Total de bytes recibidos"; -$lang['stix0030'] = "Total de bytes enviados"; -$lang['stix0031'] = "Tiempo de actividad del servidor"; -$lang['stix0032'] = "antes sin conexiĂłn:"; -$lang['stix0033'] = "00 Dias, 00 Horas, 00 Minutos, 00 Segundos"; -$lang['stix0034'] = "Promedio de pĂ©rdida de paquetes"; -$lang['stix0035'] = "EstadĂ­sticas generales"; -$lang['stix0036'] = "Nombre del servidor"; -$lang['stix0037'] = "DirecciĂłn del servidor (DirecciĂłn del host: Puerto)"; -$lang['stix0038'] = "Contraseña del servidor"; -$lang['stix0039'] = "No (el servidor es pĂșblico)"; -$lang['stix0040'] = "SĂ­ (el servidor es privado)"; -$lang['stix0041'] = "ID del servidor"; -$lang['stix0042'] = "Plataforma del servidor"; -$lang['stix0043'] = "VersiĂłn del servidor"; -$lang['stix0044'] = "Fecha de creaciĂłn del servidor (dd/mm/aaaa)"; -$lang['stix0045'] = "Informe a la lista de servidores"; -$lang['stix0046'] = "Activado"; -$lang['stix0047'] = "No esta activado"; -$lang['stix0048'] = "no hay suficiente informaciĂłn todavĂ­a ..."; -$lang['stix0049'] = "Tiempo en lĂ­nea de todos los usuarios / mes"; -$lang['stix0050'] = "Tiempo en lĂ­nea de todos los usuarios / semana"; -$lang['stix0051'] = "TeamSpeak ha fallado, por lo que no hay fecha de creaciĂłn ..."; -$lang['stix0052'] = "otros"; -$lang['stix0053'] = "Tiempo activo (en dĂ­as)"; -$lang['stix0054'] = "Tiempo inactivo (en dĂ­as)"; -$lang['stix0055'] = "en lĂ­nea las Ășltimas 24 horas"; -$lang['stix0056'] = "en lĂ­nea en los ultimos %s dias"; -$lang['stix0059'] = "Lista de usuario"; -$lang['stix0060'] = "Usuario"; -$lang['stix0061'] = "Ver todas las versiones"; -$lang['stix0062'] = "Ver todas las naciones"; -$lang['stix0063'] = "Ver todas las plataformas"; -$lang['stix0064'] = "Últimos 3 meses"; -$lang['stmy0001'] = "Mis estadĂ­sticas"; -$lang['stmy0002'] = "Rango"; -$lang['stmy0003'] = "ID de la base de datos:"; -$lang['stmy0004'] = "ID unica:"; -$lang['stmy0005'] = "Conexiones totales al servidor:"; -$lang['stmy0006'] = "Fecha de inicio para estadĂ­sticas:"; -$lang['stmy0007'] = "Tiempo total en lĂ­nea:"; -$lang['stmy0008'] = "Tiempo en lĂ­nea pasado %s dias:"; -$lang['stmy0009'] = "Tiempo activo pasado %s dias:"; -$lang['stmy0010'] = "Logros completados:"; -$lang['stmy0011'] = "Progreso de logro de tiempo"; -$lang['stmy0012'] = "Tiempo: Legendario"; -$lang['stmy0013'] = "Porque tienes un tiempo en lĂ­nea de %s horas."; -$lang['stmy0014'] = "Progreso completado"; -$lang['stmy0015'] = "Tiempo: Oro"; -$lang['stmy0016'] = "% Completado para Legendario"; -$lang['stmy0017'] = "Tiempo: Plata"; -$lang['stmy0018'] = "% Completado para Oro"; -$lang['stmy0019'] = "Tiempo: Bronce"; -$lang['stmy0020'] = "% Completado para Plata"; -$lang['stmy0021'] = "Tiempo: Sin clasificar"; -$lang['stmy0022'] = "% Completado para bronce"; -$lang['stmy0023'] = "Progreso del logro de conexiĂłn"; -$lang['stmy0024'] = "Conecta: Legendario"; -$lang['stmy0025'] = "Porque te has conectado %s veces al servidor."; -$lang['stmy0026'] = "Conecta: Oro"; -$lang['stmy0027'] = "Conecta: Plata"; -$lang['stmy0028'] = "Conecta: Bronce"; -$lang['stmy0029'] = "Conecta: Sin clasificar"; -$lang['stmy0030'] = "Progreso prĂłximo grupo de servidores"; -$lang['stmy0031'] = "Tiempo activo total"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Naciones"; -$lang['stna0002'] = "estadĂ­stica"; -$lang['stna0003'] = "CĂłdigo"; -$lang['stna0004'] = "Contar"; -$lang['stna0005'] = "Versiones"; -$lang['stna0006'] = "Plataformas"; -$lang['stna0007'] = "Porcentaje"; -$lang['stnv0001'] = "Noticias del servidor"; -$lang['stnv0002'] = "Cerrar"; -$lang['stnv0003'] = "Actualizar la informaciĂłn del cliente"; -$lang['stnv0004'] = "Solo use esta actualizaciĂłn cuando haya cambiado su informaciĂłn TS3, como su nombre de usuario TS3"; -$lang['stnv0005'] = "Solo funciona cuando estĂĄs conectado al servidor TS3 al mismo tiempo"; -$lang['stnv0006'] = "Refrescar"; -$lang['stnv0016'] = "No disponible"; -$lang['stnv0017'] = "No estĂĄ conectado al servidor TS3, por lo que no puede mostrar ningĂșn dato por usted."; -$lang['stnv0018'] = "ConĂ©ctese al servidor TS3 y luego actualice su sesiĂłn presionando el botĂłn azul de actualizaciĂłn en la esquina superior derecha.."; -$lang['stnv0019'] = "Mis estadĂ­sticas - Contenido de la pĂĄgina"; -$lang['stnv0020'] = "Esta pĂĄgina contiene un resumen general de sus estadĂ­sticas personales y actividad en el servidor."; -$lang['stnv0021'] = "Las informaciones se recopilan desde el comienzo del Ranksystem, no lo son desde el comienzo del servidor TeamSpeak."; -$lang['stnv0022'] = "Esta pĂĄgina recibe sus valores de una base de datos. Entonces los valores pueden retrasarse un poco."; -$lang['stnv0023'] = "La cantidad de tiempo en lĂ­nea para todos los usuarios por semana y por mes solo se calcularĂĄ cada 15 minutos. Todos los demĂĄs valores deben ser casi en vivo (con el mĂĄximo retraso por unos segundos)."; -$lang['stnv0024'] = "Ranksystem - EstadĂ­sticas"; -$lang['stnv0025'] = "Limitar entradas"; -$lang['stnv0026'] = "todas"; -$lang['stnv0027'] = "ÂĄLa informaciĂłn en este sitio podrĂ­a estar desactualizada! Parece que Ranksystem ya no estĂĄ conectado al TeamSpeak."; -$lang['stnv0028'] = "(ÂĄNo estĂĄs conectado al TS3!)"; -$lang['stnv0029'] = "Lista Rankup"; -$lang['stnv0030'] = "InformaciĂłn de Ranksystem"; -$lang['stnv0031'] = "Sobre el campo de bĂșsqueda puede buscar el patrĂłn en el nombre del cliente, ID de cliente unica y ID de de cliente unica en base de datos."; -$lang['stnv0032'] = "TambiĂ©n puede usar una vista de opciones de filtro (ver a continuaciĂłn). Ingrese el filtro tambiĂ©n dentro del campo de bĂșsqueda."; -$lang['stnv0033'] = "La combinaciĂłn de filtro y patrĂłn de bĂșsqueda son posibles. Ingrese primero el (los) filtro (s) seguido (s) sin ningĂșn signo de su patrĂłn de bĂșsqueda."; -$lang['stnv0034'] = "TambiĂ©n es posible combinar mĂșltiples filtros. Ingrese esto consecutivamente dentro del campo de bĂșsqueda."; -$lang['stnv0035'] = "Ejemplo:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Mostrar solo clientes, que son aceptados (cliente, grupo de servidores o excepciĂłn de canal)."; -$lang['stnv0037'] = "Mostrar solo clientes, que no son aceptados."; -$lang['stnv0038'] = "Mostrar solo clientes, que estĂĄn en lĂ­nea."; -$lang['stnv0039'] = "Mostrar solo clientes que no estĂĄn en lĂ­nea."; -$lang['stnv0040'] = "Mostrar solo clientes, que estĂĄn en un grupo definido. Representar el rango actual/nivel.
Reemplazar GROUPID con la ID del grupo de servidores deseado."; -$lang['stnv0041'] = "Mostrar solo clientes, que se seleccionan por Ășltima vez que se vieron.
Reemplazar OPERADOR con '<' o '>' o '=' o '!='.
Y reemplazar HORA con una marca de tiempo o fecha con formato 'Y-m-d H-i' (ejemplo: 2016-06-18 20-25).
Ejemplo completo: filter:lastseen:>:2016-06-18 20-25:"; -$lang['stnv0042'] = "Mostrar solo clientes, que son del paĂ­s definido.
Reemplazar TS3-COUNTRY-CODE con el paĂ­s deseado.
Lista de cĂłdigos google para ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "conectar TS3"; -$lang['stri0001'] = "InformaciĂłn del Ranksystem"; -$lang['stri0002'] = "QuĂ© es Ranksystem?"; -$lang['stri0003'] = "Un TS3 bot, que otorga automĂĄticamente rangos (grupos de servidores) al usuario en un servidor TeamSpeak 3 para el tiempo en lĂ­nea o la actividad en lĂ­nea. TambiĂ©n recopila informaciĂłn y estadĂ­sticas sobre el usuario y muestra el resultado en este sitio."; -$lang['stri0004'] = "QuiĂ©n creĂł el Ranksystem?"; -$lang['stri0005'] = "Cuando se creĂł el Ranksystem?"; -$lang['stri0006'] = "Primera versiĂłn alfa: 05/10/2014."; -$lang['stri0007'] = "Primera versiĂłn beta: 01/02/2015."; -$lang['stri0008'] = "Puedes ver la versiĂłn mĂĄs nueva en Sitio web de Ranksystem."; -$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'] = "%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'] = "%s para traducciĂłn checa"; -$lang['stri0025'] = "%s para traducciĂłn polaca"; -$lang['stri0026'] = "%s para traducciĂłn española"; -$lang['stri0027'] = "%s para traducciĂłn hĂșngara"; -$lang['stri0028'] = "%s para traducciĂłn azerbaiyana"; -$lang['stri0029'] = "%s para la funciĂłn de impresiĂłn"; -$lang['stri0030'] = "%s para el estilo 'CosmicBlue' para la pĂĄgina de estadĂ­sticas y la interfaz web"; -$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"; -$lang['sttw0004'] = "Los 10 mejores en comparaciĂłn"; -$lang['sttw0005'] = "Horas (Define 100 %)"; -$lang['sttw0006'] = "%s horas (%s%)"; -$lang['sttw0007'] = "Las 10 mejores estadĂ­sticas"; -$lang['sttw0008'] = "Los 10 principales frente a otros en el tiempo en lĂ­nea"; -$lang['sttw0009'] = "Los 10 mejores contra otros en tiempo activo"; -$lang['sttw0010'] = "Los 10 principales frente a otros en tiempo inactivo"; -$lang['sttw0011'] = "Los 10 mejores (en horas)"; -$lang['sttw0012'] = "Otro %s usuarios (en horas)"; -$lang['sttw0013'] = "Con %s %s tiempo activo"; -$lang['sttw0014'] = "horas"; -$lang['sttw0015'] = "minutos"; -$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."; -$lang['stve0004'] = "ÂĄEl token ingresado no coincide! Por favor intĂ©ntalo de nuevo."; -$lang['stve0005'] = "Felicitaciones, ÂĄse ha verificado con Ă©xito! Ahora puede continuar..."; -$lang['stve0006'] = "Un error desconocido sucediĂł. Por favor intĂ©ntalo de nuevo. En repetidas ocasiones contacta a un administrador"; -$lang['stve0007'] = "Verificar en TeamSpeak"; -$lang['stve0008'] = "Elija aquĂ­ su identificaciĂłn Ășnica en el servidor TS3 para verificar usted mismo."; -$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['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"; -$lang['upgrp0003'] = "Error al escribir el icono de servidor."; -$lang['upgrp0004'] = "Error al descargar el icono del servidor TS3: "; -$lang['upgrp0005'] = "Error al eliminar el icono del servidor."; -$lang['upgrp0006'] = "NotĂ© que icono del servidor se eliminĂł del servidor TS3, ahora tambiĂ©n se eliminĂł del Ranksystem."; -$lang['upgrp0007'] = "Error al escribir el icono del grupo de servidores del grupo %s con ID %s."; -$lang['upgrp0008'] = "Error al descargar el icono del grupo de servidores del grupo %s con ID %s: "; -$lang['upgrp0009'] = "Error al eliminar el icono del grupo de servidores del grupo %s con ID %s."; -$lang['upgrp0010'] = "Icono de grupo de servidores detectado %s con ID %s eliminado del servidor TS3, ahora tambiĂ©n se eliminĂł del Ranksystem."; -$lang['upgrp0011'] = "Descargue el nuevo icono del grupo de servidores para grupo %s con ID: %s"; -$lang['upinf'] = "Una nueva versiĂłn de Ranksystem estĂĄ disponible; Informar a los clientes en el servidor..."; -$lang['upinf2'] = "El Ranksystem fue recientemente (%s) actualizado. Revisar la %sChangelog%s para mĂĄs informaciĂłn sobre los cambios."; -$lang['upmsg'] = "\nHey, una nueva versiĂłn de [B]Ranksystem[/B] ÂĄestĂĄ disponible!\n\nversiĂłn actual: %s\n[B]nueva versiĂłn: %s[/B]\n\nPPor favor visite nuestro sitio para mĂĄs informaciĂłn [URL]%s[/URL].\n\nStarting el proceso de actualizaciĂłn en segundo plano. [B]Por favor, checa el ranksystem.log![/B]"; -$lang['upmsg2'] = "\nOye, el [B]Ranksystem[/B] Ha sido actualizado.\n\n[B]nueva versiĂłn: %s[/B]\n\nPor favor visite nuestro sitio para mĂĄs informaciĂłn [URL]%s[/URL]."; -$lang['upusrerr'] = "El Ășnico ID de cliente %s no se pudo alcanzar en el TeamSpeak!"; -$lang['upusrinf'] = "Usuario %s fue informado exitosamente"; -$lang['user'] = "Nombre de usuario"; -$lang['verify0001'] = "AsegĂșrese de estar realmente conectado al servidor TS3!"; -$lang['verify0002'] = "Ingrese, si no estĂĄ hecho, el Ranksystem %scanal de verificaciĂłn%s!"; -$lang['verify0003'] = "Si estĂĄ realmente conectado al servidor TS3, pĂłngase en contacto con un administrador allĂ­.
Esto necesita crear un canal de verificación en el servidor TeamSpeak. Después de esto, el canal creado debe definirse en el Ranksystem, que solo un administrador puede hacer.
MĂĄs informaciĂłn que el administrador encontrarĂĄ webinterface (-> stats page) del Ranksystem.

ÂĄSin esta actividad no es posible verificarlo para el Ranksystem en este momento! Lo siento :("; -$lang['verify0004'] = "NingĂșn usuario dentro del canal de verificaciĂłn encontrado..."; -$lang['wi'] = "Webinterface"; -$lang['wiaction'] = "acciĂłn"; -$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['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['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!"; -$lang['wibot4'] = "Iniciar / Parar Ranksystem bot"; -$lang['wibot5'] = "Iniciar bot"; -$lang['wibot6'] = "Detener bot"; -$lang['wibot7'] = "Restart bot"; -$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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$lang['widelcldgrpdesc'] = "Ranksystem recuerda los grupos de servidores dados, por lo que no es necesario dar / verificar esto con cada ejecuciĂłn del worker.php again.

Con esta funciĂłn puede eliminar una vez el conocimiento de grupos de servidores dados. En efecto, el sistema de rangos intenta dar a todos los clientes (que estĂĄn en el servidor TS3 en lĂ­nea) el grupo de servidores del rango real.
Para cada cliente, que obtiene el grupo o permanece en el grupo, Ranksystem recuerda esto como se describe al principio.

Esta funciĂłn puede ser Ăștil, cuando los usuarios no estĂĄn en el grupo de servidores, deben ser para el tiempo en lĂ­nea definido.

AtenciĂłn: ÂĄEjecuta esto en un momento, en el que los prĂłximos minutos no se llegarĂĄn a rangos! El Ranksystem no puede eliminar el grupo anterior, porque no puede recordar ;-)"; -$lang['widelsg'] = "eliminar de los grupos de servidores"; -$lang['widelsgdesc'] = "Choose si los clientes tambiĂ©n deben eliminarse del Ășltimo grupo de servidores conocido, cuando elimina clientes de la base de datos de Ranksystem.

Solo considerarĂĄ los grupos de servidores, lo que concierne al Ranksystem"; -$lang['wiexcept'] = "Exceptions"; -$lang['wiexcid'] = "excepciĂłn de canal"; -$lang['wiexciddesc'] = "Una lista separada por comas de los identificadores de canal que no deben participar en el Ranksystem.

Mantén a los usuarios en uno de los canales enumerados, la hora en que se ignorarå por completo. No existe el tiempo en línea, sin embargo, el tiempo inactivo cuenta.

Esta funciĂłn solo tiene sentido con el modo 'tiempo en lĂ­nea', porque aquĂ­ podrĂ­an ignorarse los canales AFK, por ejemplo.
Con el modo 'tiempo activo', esta funciĂłn es inĂștil porque, como se deducirĂ­a, el tiempo de inactividad en las salas AFK no se contabilizarĂ­a de todos modos..

Be un usuario en un canal excluido, se señala para este período como 'excluido del sistema de clasificación'. El usuario ya no aparece en la lista 'stats/list_rankup.php' al menos que los clientes excluidos no se muestren allí (Pågina de estadísticas - cliente exceptuado)."; -$lang['wiexgrp'] = "excepción de grupo de servidores"; -$lang['wiexgrpdesc'] = "Una lista separada por comas de ID de grupo de servidores, que no deberían tenerse en cuenta para Ranksystem.
El usuario en al menos uno de estos ID de grupos de servidores se ignorarĂĄ para el rango arriba."; -$lang['wiexres'] = "modo de excepciĂłn"; -$lang['wiexres1'] = "contar tiempo (predeterminado)"; -$lang['wiexres2'] = "descanso"; -$lang['wiexres3'] = "restablecer el tiempo"; -$lang['wiexresdesc'] = "Hay tres modos, cĂłmo manejar una excepciĂłn. En todos los casos, el ranking estĂĄ desactivado (no se asignan grupos de servidores). Puede elegir diferentes opciones para manejar el tiempo dedicado de un usuario (que estĂĄ exceptuado).

1) contar tiempo (predeterminado): Por defecto, Ranksystem tambiĂ©n cuenta el tiempo en lĂ­nea / activo de los usuarios, que estĂĄn exceptuados (por excepciĂłn de cliente / grupo de servidores). Con una excepciĂłn, solo el rango arriba estĂĄ deshabilitado. Eso significa que si un usuario no estĂĄ mĂĄs exceptuado, se le asignarĂ­a al grupo segĂșn su tiempo acumulado (por ejemplo, nivel 3)..

2) descanso: En esta opción, el gasto en línea y el tiempo de inactividad se congelarån (romperån) en el valor real (antes de que el usuario sea exceptuado). Después de perder el motivo exceptuado (después de eliminar el grupo de servidores exceptuado o eliminar la regla de expection) el 'conteo' continuarå.

3) restablecer el tiempo: Con esta función, el tiempo en línea y el tiempo de inactividad contados se restablecerån a cero en el momento en que el usuario ya no esté mås exceptuado (debido a que se eliminarå el grupo de servidores exceptuado o se eliminarå la regla de excepción). La excepción de tiempo gastado seguirå contando hasta que se restablezca.


las excepciĂłnes de canal no importa en ningĂșn caso, porque siempre se ignorarĂĄ el tiempo (como el tiempo de interrupciĂłn del modo)."; -$lang['wiexuid'] = "excepciĂłn de cliente"; -$lang['wiexuiddesc'] = "Una lista separada por comas de identificadores de cliente Ășnicos, que no deberĂ­an tenerse en cuenta para Ranksystem.
El usuario en esta lista serĂĄ ignorado por el para subir de rango."; -$lang['wiexregrp'] = "eliminar grupo"; -$lang['wiexregrpdesc'] = "Si un usuario es excluido del Ranksystem, se eliminarĂĄ el grupo de servidor asignado por el Ranksystem.

El grupo solo se eliminarĂĄ con el '".$lang['wiexres']."' con el '".$lang['wiexres1']."'. En todos los demĂĄs modos, el grupo de servidor no se eliminarĂĄ.

Esta funciĂłn sĂłlo es relevante en combinaciĂłn con un '".$lang['wiexuid']."' o un '".$lang['wiexgrp']."' en combinaciĂłn con el '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "subir de rango definiciĂłn"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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!"; -$lang['wihladm1'] = "agregar tiempo"; -$lang['wihladm2'] = "quitar tiempo"; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "solicitado sobre la funciĂłn de administrador."; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Ruta del archivo de registro de Ranksystem.

Ejemplo:
/var/logs/ranksystem/

AsegĂșrese de que el usuario web tenga los permisos de escritura en el logpath."; -$lang['wilogout'] = "Cerrar sesiĂłn"; -$lang['wimsgmsg'] = "Mensajes"; -$lang['wimsgmsgdesc'] = "Defina un mensaje, que se enviarĂĄ a un usuario, cuando se eleve al siguiente rango mĂĄs alto.

Este mensaje se enviarå a través del mensaje privado TS3. Se pueden usar todos los códigos bb conocidos, que también funcionan para un mensaje privado normal.
%s

AdemĂĄs, el tiempo pasado previamente puede expresarse mediante argumentos:
%1\$s - dias
%2\$s - horas
%3\$s - minutos
%4\$s - segundos
%5\$s - nombre del grupo de servidores alcanzado
%6$s - nombre del usuario (destinatario)

Ejemplo:
Oye,\\nalcanzaste un rango mĂĄs alto, ya que ya te conectaste %1\$s dias, %2\$s horas y %3\$s minutos a nuestro servidor TS3.[B]Seguid asĂ­![/B] ;-)
"; -$lang['wimsgsn'] = "Servidor-Noticias"; -$lang['wimsgsndesc'] = "Definir un mensaje, que se mostrarĂĄ en /stats/ pĂĄgina como noticias del servidor.

Puede usar funciones html predeterminadas para modificar el diseño

Ejemplo:
<b> - para negrita
<u> - para subrayar
<i> - para cursiva
<br> - para el ajuste de palabras (nueva lĂ­nea)"; -$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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "Base de datos"; -$lang['winav3'] = "NĂșcleo"; -$lang['winav4'] = "Otro"; -$lang['winav5'] = "Mensaje"; -$lang['winav6'] = "PĂĄgina de estadĂ­sticas"; -$lang['winav7'] = "Administrar"; -$lang['winav8'] = "Parar / Iniciar Bot"; -$lang['winav9'] = "ActualizaciĂłn disponible!"; -$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['winxmsg2'] = "Mensaje (mĂĄs alto)"; -$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. 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"; -$lang['wirtpw5'] = "Se enviĂł un mensaje de texto privado de TeamSpeak 3 al administrador con la nueva contraseña. Hacer clic %s aquĂ­ %s para iniciar sesiĂłn."; -$lang['wirtpw6'] = "La contraseña de la interfaz web ha sido restablecida con Ă©xito. Solicitud de IP %s."; -$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['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "tiempo activo"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "tiempo en lĂ­nea"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; -$lang['wishexcld'] = "cliente exceptuado"; -$lang['wishexclddesc'] = "Mostrar clientes en list_rankup.php,
que estĂĄn excluidos y, por tanto, no participan en el Ranksystem."; -$lang['wishexgrp'] = "grupos exceptuados"; -$lang['wishexgrpdesc'] = "Mostrar clientes en list_rankup.php, que estĂĄn en la lista 'client exception' y no debe ser considerado para el Ranksystem."; -$lang['wishhicld'] = "Clientes en el nivel mĂĄs alto"; -$lang['wishhiclddesc'] = "Mostrar clientes en list_rankup.php, que alcanzĂł el nivel mĂĄs alto en el Ranksystem."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "estilo personalizado"; -$lang['wistyledesc'] = "Define un estilo personalizado diferente para el sistema de rangos.
Este estilo se utilizarĂĄ para la pĂĄgina de estadĂ­sticas y la interfaz web.

Coloca tu estilo en el directorio 'style' en un subdirectorio propio.
El nombre del subdirectorio determina el nombre del estilo.

Los estilos que comienzan con 'TSN_' son proporcionados por el sistema de rangos. Estos se actualizarĂĄn con futuras actualizaciones.
ÂĄPor lo tanto, no se deben hacer ajustes en ellos!
Sin embargo, pueden servir como plantilla. Copia el estilo en un directorio propio para hacer ajustes en él.

Se requieren dos archivos CSS. Uno para la pĂĄgina de estadĂ­sticas y otro para la interfaz web.
También se puede incluir un JavaScript personalizado, pero esto es opcional.

ConvenciĂłn de nombres de CSS:
- Fijar 'ST.css' para la pĂĄgina de estadĂ­sticas (/stats/)
- Fijar 'WI.css' para la pĂĄgina de interfaz web (/webinterface/)


ConvenciĂłn de nombres para JavaScript:
- Fijar 'ST.js' para la pĂĄgina de estadĂ­sticas (/stats/)

Fijar 'WI.js' para la pĂĄgina de interfaz web (/webinterface/)


Si desea compartir su estilo con otros, puede enviarlo a la siguiente direcciĂłn de correo electrĂłnico:

%s

ÂĄLo incluiremos en la prĂłxima versiĂłn!"; -$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['wisvres'] = "ÂĄDebe reiniciar el sistema de clasificaciĂłn antes de que los cambios surtan efecto! %s"; -$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['wits3pre'] = "Prefijo de comando de bot"; -$lang['wits3predesc'] = "En el servidor de TeamSpeak puedes comunicarte con el bot Ranksystem a través del chat. Por defecto, los comandos del bot estån marcados con un signo de exclamación '!'. Se usa el prefijo para identificar los comandos del bot como tal.

Este prefijo se puede reemplazar por cualquier otro prefijo deseado. Esto puede ser necesario si se estĂĄn utilizando otros bots con comandos similares.

Por ejemplo, el comando predeterminado del bot serĂ­a:
!help


Si se reemplaza el prefijo con '#', el comando se verĂ­a asĂ­:
#help
"; -$lang['wits3qnm'] = "Nombre del Bot"; -$lang['wits3qnmdesc'] = "El nombre, con esto el query-connection se establecerĂĄ.
Puede nombrarlo gratis."; -$lang['wits3querpw'] = "TS3 Query-Password"; -$lang['wits3querpwdesc'] = "Contraseña de consulta de TeamSpeak 3
Contraseña para el usuario de la consulta."; -$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['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"; -$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['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'] = "Canal de verificaciĂłn"; -$lang['wiverifydesc'] = "Ingrese aquĂ­ el ID de canal del canal de verificaciĂłn.

Este canal debe ser configurado manualmente en tu servidor TeamSpeak. Nombre, permisos y otras propiedades podrĂ­an definirse para su elecciĂłn; solo el usuario deberĂ­a ser posible unirse a este canal!

La verificaciĂłn la realiza el propio usuario en la pĂĄgina de estadĂ­sticas.(/stats/). Esto solo es necesario si el visitante del sitio web no puede ser emparejado / relacionado automĂĄticamente con el usuario de TeamSpeak.

To verify the TeamSpeak user, he has to be in the verification channel. AllĂ­ puede recibir un token con el que puede verificarse a sĂ­ mismo para la pĂĄgina de estadĂ­sticas."; -$lang['wivlang'] = "Idioma"; -$lang['wivlangdesc'] = "Elija un idioma predeterminado para el Ranksystem.

El idioma también se puede seleccionar en los sitios web para los usuarios y se almacenarå para la sesión."; -?> \ No newline at end of file + agregada a Ranksystem ahora.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Permitir iniciar/detener el bot de Ranksystem a través de API'; +$lang['apipermdesc'] = '(ON = Permitir ; OFF = Denegar)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$lang['changedbid'] = 'Usuario %s (ID de cliente unico: %s) tengo una nueva TeamSpeak ID de base de datos del cliente (%s). Actualiza el viejo ID de base de datos del cliente (%s) y restablezca los tiempos recogidos!'; +$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'] = '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.'; +$lang['cleanno'] = 'No habĂ­a nada que eliminar...'; +$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['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!'; +$lang['errgrplist'] = 'Error al obtener las listas de grupos del servidores: '; +$lang['errlogin'] = 'ÂĄEl nombre de usuario y / o contraseña son incorrectos! IntĂ©ntalo de nuevo...'; +$lang['errlogin2'] = 'ProtecciĂłn de fuerza bruta: IntĂ©ntalo de nuevo en %s segundos!'; +$lang['errlogin3'] = 'ProtecciĂłn de la fuerza bruta: Demasiados errores. Baneado por 300 Segundos!'; +$lang['error'] = 'Error '; +$lang['errorts3'] = 'Error de TS3: '; +$lang['errperm'] = "Por favor, compruebe el permiso para la carpeta '%s'!"; +$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'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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!
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 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 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
'; +$lang['isntwidbmsg'] = 'Error de la base de datos: '; +$lang['isntwidbname'] = 'Nombre de la DB:'; +$lang['isntwidbnamedesc'] = 'Nombre de la base de datos'; +$lang['isntwidbpass'] = 'Contraseña de la DB:'; +$lang['isntwidbpassdesc'] = 'Contraseña para acceder a la base de datos'; +$lang['isntwidbtype'] = 'Tipo de DB:'; +$lang['isntwidbtypedesc'] = 'Tipo de la base de datos que Ranksystem debería usar.

El controlador PDO para PHP necesita ser instalado.
Para obtener mĂĄs informaciĂłn y una lista real de requisitos, eche un vistazo a la pĂĄgina de instalaciĂłn:
%s'; +$lang['isntwidbusr'] = 'Usuario de la DB:'; +$lang['isntwidbusrdesc'] = 'Usuario para acceder a la base de datos'; +$lang['isntwidel'] = "Por favor borre el archivo 'install.php' desde su servidor web"; +$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'; +$lang['listcldbid'] = 'ID de base de datos del cliente'; +$lang['listexcept'] = 'No, causa excepcion'; +$lang['listgrps'] = 'grupo actual desde'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Nombre del cliente'; +$lang['listnxsg'] = 'siguiente grupo de servidores'; +$lang['listnxup'] = 'siguiente rango arriba'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'rango'; +$lang['listseen'] = 'Ășltima vez visto'; +$lang['listsuma'] = 'suma. tiempo activo'; +$lang['listsumi'] = 'suma. tiempo de inactividad'; +$lang['listsumo'] = 'suma. tiempo en lĂ­nea'; +$lang['listuid'] = 'ID de cliente unica'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Iniciar sesiĂłn'; +$lang['module_disabled'] = 'This module is deactivated.'; +$lang['msg0001'] = 'Ranksystem se estĂĄ ejecutando en la versiĂłn: %s'; +$lang['msg0002'] = 'A list of valid bot commands can be found here [URL]https://ts-ranksystem.com/#commands[/URL]'; +$lang['msg0003'] = 'No eres elegible para este comando!'; +$lang['msg0004'] = 'Cliente %s (%s) cierre de solicitudes.'; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Cliente %s (%s) solicitudes %s.'; +$lang['msg0008'] = 'ActualizaciĂłn de verificaciĂłn hecha. Si hay una actualizaciĂłn disponible, se ejecutarĂĄ inmediatamente.'; +$lang['msg0009'] = 'Limpieza de la base de datos de usuarios empezĂł.'; +$lang['msg0010'] = 'Run command !log to get more information.'; +$lang['msg0011'] = 'Cleaned group cache. Start loading groups and icons...'; +$lang['noentry'] = 'Entradas no encontradas..'; +$lang['pass'] = 'Contraseña'; +$lang['pass2'] = 'Cambiar contraseña'; +$lang['pass3'] = 'Antigua contraseña'; +$lang['pass4'] = 'Nueva contraseña'; +$lang['pass5'] = 'ÂżSe te olvidĂł tu contraseña?'; +$lang['permission'] = 'Permisos'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'repetir'; +$lang['resettime'] = 'Restablecer el tiempo en lĂ­nea y inactivo del usuario %s (ID de cliente unica: %s; ID de cliente en base de datos %s) a cero, causa que el usuario sea eliminado de la excepciĂłn.'; +$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).'; +$lang['setontime'] = 'agregar tiempo'; +$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_pib'] = 'PiB'; +$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'] = '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.'; +$lang['stag0007'] = 'Espere hasta que los cambios surtan efecto antes de cambiar las siguientes cosas...'; +$lang['stag0008'] = 'Cambios grupales guardados con Ă©xito. Puede tomar unos segundos hasta que surta efecto en el servidor ts3.'; +$lang['stag0009'] = 'No puedes elegir mĂĄs de %s grupo(s) al mismo tiempo!'; +$lang['stag0010'] = 'Por favor elija al menos un nuevo grupo.'; +$lang['stag0011'] = 'LĂ­mite de grupo simultĂĄneos: '; +$lang['stag0012'] = 'establecer grupos'; +$lang['stag0013'] = 'Addon ON/OFF'; +$lang['stag0014'] = 'Encienda el addon (habilitado) o desactĂ­velo (deshabilitado).

Al desactivar el Addon, se ocultarĂĄ una posible parte de las estadĂ­sticas/ el sitio estarĂĄ oculto.'; +$lang['stag0015'] = 'No se puede encontrar en el servidor de TeamSpeak. Por favor %shaga clic aquĂ­%s para verificarse.'; +$lang['stag0016'] = 'verificaciĂłn necesaria!'; +$lang['stag0017'] = 'verifica aquĂ­..'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'EstadĂ­sticas del servidor'; +$lang['stix0002'] = 'Total de usuarios'; +$lang['stix0003'] = 'Ver detalles'; +$lang['stix0004'] = 'Tiempo en lĂ­nea de todos los usuarios / Total'; +$lang['stix0005'] = 'Ver top de todos los tiempos'; +$lang['stix0006'] = 'Ver top del mes'; +$lang['stix0007'] = 'Ver top de la semana'; +$lang['stix0008'] = 'Uso del servidor'; +$lang['stix0009'] = 'En los Ășltimos 7 dĂ­as'; +$lang['stix0010'] = 'En los Ășltimos 30 dĂ­as'; +$lang['stix0011'] = 'En las Ășltimas 24 horas'; +$lang['stix0012'] = 'seleccionar periodo'; +$lang['stix0013'] = 'Último dĂ­a'; +$lang['stix0014'] = 'Última semana'; +$lang['stix0015'] = 'Último mes'; +$lang['stix0016'] = 'Tiempo activo / inactivo (de todos los clientes)'; +$lang['stix0017'] = 'Versiones (de todos los clientes)'; +$lang['stix0018'] = 'Nacionalidades (de todos los clientes)'; +$lang['stix0019'] = 'Plataformas (de todos los clientes)'; +$lang['stix0020'] = 'EstadĂ­sticas actuales'; +$lang['stix0023'] = 'El estado del servidor'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Clientes (en lĂ­nea / mĂĄx.)'; +$lang['stix0027'] = 'Cantidad de canales'; +$lang['stix0028'] = 'Ping promedio del servidor'; +$lang['stix0029'] = 'Total de bytes recibidos'; +$lang['stix0030'] = 'Total de bytes enviados'; +$lang['stix0031'] = 'Tiempo de actividad del servidor'; +$lang['stix0032'] = 'antes sin conexiĂłn:'; +$lang['stix0033'] = '00 Dias, 00 Horas, 00 Minutos, 00 Segundos'; +$lang['stix0034'] = 'Promedio de pĂ©rdida de paquetes'; +$lang['stix0035'] = 'EstadĂ­sticas generales'; +$lang['stix0036'] = 'Nombre del servidor'; +$lang['stix0037'] = 'DirecciĂłn del servidor (DirecciĂłn del host: Puerto)'; +$lang['stix0038'] = 'Contraseña del servidor'; +$lang['stix0039'] = 'No (el servidor es pĂșblico)'; +$lang['stix0040'] = 'SĂ­ (el servidor es privado)'; +$lang['stix0041'] = 'ID del servidor'; +$lang['stix0042'] = 'Plataforma del servidor'; +$lang['stix0043'] = 'VersiĂłn del servidor'; +$lang['stix0044'] = 'Fecha de creaciĂłn del servidor (dd/mm/aaaa)'; +$lang['stix0045'] = 'Informe a la lista de servidores'; +$lang['stix0046'] = 'Activado'; +$lang['stix0047'] = 'No esta activado'; +$lang['stix0048'] = 'no hay suficiente informaciĂłn todavĂ­a ...'; +$lang['stix0049'] = 'Tiempo en lĂ­nea de todos los usuarios / mes'; +$lang['stix0050'] = 'Tiempo en lĂ­nea de todos los usuarios / semana'; +$lang['stix0051'] = 'TeamSpeak ha fallado, por lo que no hay fecha de creaciĂłn ...'; +$lang['stix0052'] = 'otros'; +$lang['stix0053'] = 'Tiempo activo (en dĂ­as)'; +$lang['stix0054'] = 'Tiempo inactivo (en dĂ­as)'; +$lang['stix0055'] = 'en lĂ­nea las Ășltimas 24 horas'; +$lang['stix0056'] = 'en lĂ­nea en los ultimos %s dias'; +$lang['stix0059'] = 'Lista de usuario'; +$lang['stix0060'] = 'Usuario'; +$lang['stix0061'] = 'Ver todas las versiones'; +$lang['stix0062'] = 'Ver todas las naciones'; +$lang['stix0063'] = 'Ver todas las plataformas'; +$lang['stix0064'] = 'Últimos 3 meses'; +$lang['stmy0001'] = 'Mis estadĂ­sticas'; +$lang['stmy0002'] = 'Rango'; +$lang['stmy0003'] = 'ID de la base de datos:'; +$lang['stmy0004'] = 'ID unica:'; +$lang['stmy0005'] = 'Conexiones totales al servidor:'; +$lang['stmy0006'] = 'Fecha de inicio para estadĂ­sticas:'; +$lang['stmy0007'] = 'Tiempo total en lĂ­nea:'; +$lang['stmy0008'] = 'Tiempo en lĂ­nea pasado %s dias:'; +$lang['stmy0009'] = 'Tiempo activo pasado %s dias:'; +$lang['stmy0010'] = 'Logros completados:'; +$lang['stmy0011'] = 'Progreso de logro de tiempo'; +$lang['stmy0012'] = 'Tiempo: Legendario'; +$lang['stmy0013'] = 'Porque tienes un tiempo en lĂ­nea de %s horas.'; +$lang['stmy0014'] = 'Progreso completado'; +$lang['stmy0015'] = 'Tiempo: Oro'; +$lang['stmy0016'] = '% Completado para Legendario'; +$lang['stmy0017'] = 'Tiempo: Plata'; +$lang['stmy0018'] = '% Completado para Oro'; +$lang['stmy0019'] = 'Tiempo: Bronce'; +$lang['stmy0020'] = '% Completado para Plata'; +$lang['stmy0021'] = 'Tiempo: Sin clasificar'; +$lang['stmy0022'] = '% Completado para bronce'; +$lang['stmy0023'] = 'Progreso del logro de conexiĂłn'; +$lang['stmy0024'] = 'Conecta: Legendario'; +$lang['stmy0025'] = 'Porque te has conectado %s veces al servidor.'; +$lang['stmy0026'] = 'Conecta: Oro'; +$lang['stmy0027'] = 'Conecta: Plata'; +$lang['stmy0028'] = 'Conecta: Bronce'; +$lang['stmy0029'] = 'Conecta: Sin clasificar'; +$lang['stmy0030'] = 'Progreso prĂłximo grupo de servidores'; +$lang['stmy0031'] = 'Tiempo activo total'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Naciones'; +$lang['stna0002'] = 'estadĂ­stica'; +$lang['stna0003'] = 'CĂłdigo'; +$lang['stna0004'] = 'Contar'; +$lang['stna0005'] = 'Versiones'; +$lang['stna0006'] = 'Plataformas'; +$lang['stna0007'] = 'Porcentaje'; +$lang['stnv0001'] = 'Noticias del servidor'; +$lang['stnv0002'] = 'Cerrar'; +$lang['stnv0003'] = 'Actualizar la informaciĂłn del cliente'; +$lang['stnv0004'] = 'Solo use esta actualizaciĂłn cuando haya cambiado su informaciĂłn TS3, como su nombre de usuario TS3'; +$lang['stnv0005'] = 'Solo funciona cuando estĂĄs conectado al servidor TS3 al mismo tiempo'; +$lang['stnv0006'] = 'Refrescar'; +$lang['stnv0016'] = 'No disponible'; +$lang['stnv0017'] = 'No estĂĄ conectado al servidor TS3, por lo que no puede mostrar ningĂșn dato por usted.'; +$lang['stnv0018'] = 'ConĂ©ctese al servidor TS3 y luego actualice su sesiĂłn presionando el botĂłn azul de actualizaciĂłn en la esquina superior derecha..'; +$lang['stnv0019'] = 'Mis estadĂ­sticas - Contenido de la pĂĄgina'; +$lang['stnv0020'] = 'Esta pĂĄgina contiene un resumen general de sus estadĂ­sticas personales y actividad en el servidor.'; +$lang['stnv0021'] = 'Las informaciones se recopilan desde el comienzo del Ranksystem, no lo son desde el comienzo del servidor TeamSpeak.'; +$lang['stnv0022'] = 'Esta pĂĄgina recibe sus valores de una base de datos. Entonces los valores pueden retrasarse un poco.'; +$lang['stnv0023'] = 'La cantidad de tiempo en lĂ­nea para todos los usuarios por semana y por mes solo se calcularĂĄ cada 15 minutos. Todos los demĂĄs valores deben ser casi en vivo (con el mĂĄximo retraso por unos segundos).'; +$lang['stnv0024'] = 'Ranksystem - EstadĂ­sticas'; +$lang['stnv0025'] = 'Limitar entradas'; +$lang['stnv0026'] = 'todas'; +$lang['stnv0027'] = 'ÂĄLa informaciĂłn en este sitio podrĂ­a estar desactualizada! Parece que Ranksystem ya no estĂĄ conectado al TeamSpeak.'; +$lang['stnv0028'] = '(ÂĄNo estĂĄs conectado al TS3!)'; +$lang['stnv0029'] = 'Lista Rankup'; +$lang['stnv0030'] = 'InformaciĂłn de Ranksystem'; +$lang['stnv0031'] = 'Sobre el campo de bĂșsqueda puede buscar el patrĂłn en el nombre del cliente, ID de cliente unica y ID de de cliente unica en base de datos.'; +$lang['stnv0032'] = 'TambiĂ©n puede usar una vista de opciones de filtro (ver a continuaciĂłn). Ingrese el filtro tambiĂ©n dentro del campo de bĂșsqueda.'; +$lang['stnv0033'] = 'La combinaciĂłn de filtro y patrĂłn de bĂșsqueda son posibles. Ingrese primero el (los) filtro (s) seguido (s) sin ningĂșn signo de su patrĂłn de bĂșsqueda.'; +$lang['stnv0034'] = 'TambiĂ©n es posible combinar mĂșltiples filtros. Ingrese esto consecutivamente dentro del campo de bĂșsqueda.'; +$lang['stnv0035'] = 'Ejemplo:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Mostrar solo clientes, que son aceptados (cliente, grupo de servidores o excepciĂłn de canal).'; +$lang['stnv0037'] = 'Mostrar solo clientes, que no son aceptados.'; +$lang['stnv0038'] = 'Mostrar solo clientes, que estĂĄn en lĂ­nea.'; +$lang['stnv0039'] = 'Mostrar solo clientes que no estĂĄn en lĂ­nea.'; +$lang['stnv0040'] = 'Mostrar solo clientes, que estĂĄn en un grupo definido. Representar el rango actual/nivel.
Reemplazar GROUPID con la ID del grupo de servidores deseado.'; +$lang['stnv0041'] = "Mostrar solo clientes, que se seleccionan por Ășltima vez que se vieron.
Reemplazar OPERADOR con '<' o '>' o '=' o '!='.
Y reemplazar HORA con una marca de tiempo o fecha con formato 'Y-m-d H-i' (ejemplo: 2016-06-18 20-25).
Ejemplo completo: filter:lastseen:>:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Mostrar solo clientes, que son del paĂ­s definido.
Reemplazar TS3-COUNTRY-CODE con el paĂ­s deseado.
Lista de cĂłdigos google para ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'conectar TS3'; +$lang['stri0001'] = 'InformaciĂłn del Ranksystem'; +$lang['stri0002'] = 'QuĂ© es Ranksystem?'; +$lang['stri0003'] = 'Un TS3 bot, que otorga automĂĄticamente rangos (grupos de servidores) al usuario en un servidor TeamSpeak 3 para el tiempo en lĂ­nea o la actividad en lĂ­nea. TambiĂ©n recopila informaciĂłn y estadĂ­sticas sobre el usuario y muestra el resultado en este sitio.'; +$lang['stri0004'] = 'QuiĂ©n creĂł el Ranksystem?'; +$lang['stri0005'] = 'Cuando se creĂł el Ranksystem?'; +$lang['stri0006'] = 'Primera versiĂłn alfa: 05/10/2014.'; +$lang['stri0007'] = 'Primera versiĂłn beta: 01/02/2015.'; +$lang['stri0008'] = 'Puedes ver la versiĂłn mĂĄs nueva en Sitio web de Ranksystem.'; +$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'] = '%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'] = '%s para traducciĂłn checa'; +$lang['stri0025'] = '%s para traducciĂłn polaca'; +$lang['stri0026'] = '%s para traducciĂłn española'; +$lang['stri0027'] = '%s para traducciĂłn hĂșngara'; +$lang['stri0028'] = '%s para traducciĂłn azerbaiyana'; +$lang['stri0029'] = '%s para la funciĂłn de impresiĂłn'; +$lang['stri0030'] = "%s para el estilo 'CosmicBlue' para la pĂĄgina de estadĂ­sticas y la interfaz web"; +$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'; +$lang['sttw0004'] = 'Los 10 mejores en comparaciĂłn'; +$lang['sttw0005'] = 'Horas (Define 100 %)'; +$lang['sttw0006'] = '%s horas (%s%)'; +$lang['sttw0007'] = 'Las 10 mejores estadĂ­sticas'; +$lang['sttw0008'] = 'Los 10 principales frente a otros en el tiempo en lĂ­nea'; +$lang['sttw0009'] = 'Los 10 mejores contra otros en tiempo activo'; +$lang['sttw0010'] = 'Los 10 principales frente a otros en tiempo inactivo'; +$lang['sttw0011'] = 'Los 10 mejores (en horas)'; +$lang['sttw0012'] = 'Otro %s usuarios (en horas)'; +$lang['sttw0013'] = 'Con %s %s tiempo activo'; +$lang['sttw0014'] = 'horas'; +$lang['sttw0015'] = 'minutos'; +$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.'; +$lang['stve0004'] = 'ÂĄEl token ingresado no coincide! Por favor intĂ©ntalo de nuevo.'; +$lang['stve0005'] = 'Felicitaciones, ÂĄse ha verificado con Ă©xito! Ahora puede continuar...'; +$lang['stve0006'] = 'Un error desconocido sucediĂł. Por favor intĂ©ntalo de nuevo. En repetidas ocasiones contacta a un administrador'; +$lang['stve0007'] = 'Verificar en TeamSpeak'; +$lang['stve0008'] = 'Elija aquĂ­ su identificaciĂłn Ășnica en el servidor TS3 para verificar usted mismo.'; +$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['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'; +$lang['upgrp0003'] = 'Error al escribir el icono de servidor.'; +$lang['upgrp0004'] = 'Error al descargar el icono del servidor TS3: '; +$lang['upgrp0005'] = 'Error al eliminar el icono del servidor.'; +$lang['upgrp0006'] = 'NotĂ© que icono del servidor se eliminĂł del servidor TS3, ahora tambiĂ©n se eliminĂł del Ranksystem.'; +$lang['upgrp0007'] = 'Error al escribir el icono del grupo de servidores del grupo %s con ID %s.'; +$lang['upgrp0008'] = 'Error al descargar el icono del grupo de servidores del grupo %s con ID %s: '; +$lang['upgrp0009'] = 'Error al eliminar el icono del grupo de servidores del grupo %s con ID %s.'; +$lang['upgrp0010'] = 'Icono de grupo de servidores detectado %s con ID %s eliminado del servidor TS3, ahora tambiĂ©n se eliminĂł del Ranksystem.'; +$lang['upgrp0011'] = 'Descargue el nuevo icono del grupo de servidores para grupo %s con ID: %s'; +$lang['upinf'] = 'Una nueva versiĂłn de Ranksystem estĂĄ disponible; Informar a los clientes en el servidor...'; +$lang['upinf2'] = 'El Ranksystem fue recientemente (%s) actualizado. Revisar la %sChangelog%s para mĂĄs informaciĂłn sobre los cambios.'; +$lang['upmsg'] = "\nHey, una nueva versiĂłn de [B]Ranksystem[/B] ÂĄestĂĄ disponible!\n\nversiĂłn actual: %s\n[B]nueva versiĂłn: %s[/B]\n\nPPor favor visite nuestro sitio para mĂĄs informaciĂłn [URL]%s[/URL].\n\nStarting el proceso de actualizaciĂłn en segundo plano. [B]Por favor, checa el ranksystem.log![/B]"; +$lang['upmsg2'] = "\nOye, el [B]Ranksystem[/B] Ha sido actualizado.\n\n[B]nueva versiĂłn: %s[/B]\n\nPor favor visite nuestro sitio para mĂĄs informaciĂłn [URL]%s[/URL]."; +$lang['upusrerr'] = 'El Ășnico ID de cliente %s no se pudo alcanzar en el TeamSpeak!'; +$lang['upusrinf'] = 'Usuario %s fue informado exitosamente'; +$lang['user'] = 'Nombre de usuario'; +$lang['verify0001'] = 'AsegĂșrese de estar realmente conectado al servidor TS3!'; +$lang['verify0002'] = 'Ingrese, si no estĂĄ hecho, el Ranksystem %scanal de verificaciĂłn%s!'; +$lang['verify0003'] = 'Si estĂĄ realmente conectado al servidor TS3, pĂłngase en contacto con un administrador allĂ­.
Esto necesita crear un canal de verificación en el servidor TeamSpeak. Después de esto, el canal creado debe definirse en el Ranksystem, que solo un administrador puede hacer.
MĂĄs informaciĂłn que el administrador encontrarĂĄ webinterface (-> stats page) del Ranksystem.

ÂĄSin esta actividad no es posible verificarlo para el Ranksystem en este momento! Lo siento :('; +$lang['verify0004'] = 'NingĂșn usuario dentro del canal de verificaciĂłn encontrado...'; +$lang['wi'] = 'Webinterface'; +$lang['wiaction'] = 'acciĂłn'; +$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['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['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!'; +$lang['wibot4'] = 'Iniciar / Parar Ranksystem bot'; +$lang['wibot5'] = 'Iniciar bot'; +$lang['wibot6'] = 'Detener bot'; +$lang['wibot7'] = 'Restart bot'; +$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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$lang['widelcldgrpdesc'] = 'Ranksystem recuerda los grupos de servidores dados, por lo que no es necesario dar / verificar esto con cada ejecuciĂłn del worker.php again.

Con esta funciĂłn puede eliminar una vez el conocimiento de grupos de servidores dados. En efecto, el sistema de rangos intenta dar a todos los clientes (que estĂĄn en el servidor TS3 en lĂ­nea) el grupo de servidores del rango real.
Para cada cliente, que obtiene el grupo o permanece en el grupo, Ranksystem recuerda esto como se describe al principio.

Esta funciĂłn puede ser Ăștil, cuando los usuarios no estĂĄn en el grupo de servidores, deben ser para el tiempo en lĂ­nea definido.

AtenciĂłn: ÂĄEjecuta esto en un momento, en el que los prĂłximos minutos no se llegarĂĄn a rangos! El Ranksystem no puede eliminar el grupo anterior, porque no puede recordar ;-)'; +$lang['widelsg'] = 'eliminar de los grupos de servidores'; +$lang['widelsgdesc'] = 'Choose si los clientes tambiĂ©n deben eliminarse del Ășltimo grupo de servidores conocido, cuando elimina clientes de la base de datos de Ranksystem.

Solo considerarĂĄ los grupos de servidores, lo que concierne al Ranksystem'; +$lang['wiexcept'] = 'Exceptions'; +$lang['wiexcid'] = 'excepciĂłn de canal'; +$lang['wiexciddesc'] = "Una lista separada por comas de los identificadores de canal que no deben participar en el Ranksystem.

Mantén a los usuarios en uno de los canales enumerados, la hora en que se ignorarå por completo. No existe el tiempo en línea, sin embargo, el tiempo inactivo cuenta.

Esta funciĂłn solo tiene sentido con el modo 'tiempo en lĂ­nea', porque aquĂ­ podrĂ­an ignorarse los canales AFK, por ejemplo.
Con el modo 'tiempo activo', esta funciĂłn es inĂștil porque, como se deducirĂ­a, el tiempo de inactividad en las salas AFK no se contabilizarĂ­a de todos modos..

Be un usuario en un canal excluido, se señala para este período como 'excluido del sistema de clasificación'. El usuario ya no aparece en la lista 'stats/list_rankup.php' al menos que los clientes excluidos no se muestren allí (Pågina de estadísticas - cliente exceptuado)."; +$lang['wiexgrp'] = 'excepción de grupo de servidores'; +$lang['wiexgrpdesc'] = 'Una lista separada por comas de ID de grupo de servidores, que no deberían tenerse en cuenta para Ranksystem.
El usuario en al menos uno de estos ID de grupos de servidores se ignorarĂĄ para el rango arriba.'; +$lang['wiexres'] = 'modo de excepciĂłn'; +$lang['wiexres1'] = 'contar tiempo (predeterminado)'; +$lang['wiexres2'] = 'descanso'; +$lang['wiexres3'] = 'restablecer el tiempo'; +$lang['wiexresdesc'] = "Hay tres modos, cĂłmo manejar una excepciĂłn. En todos los casos, el ranking estĂĄ desactivado (no se asignan grupos de servidores). Puede elegir diferentes opciones para manejar el tiempo dedicado de un usuario (que estĂĄ exceptuado).

1) contar tiempo (predeterminado): Por defecto, Ranksystem tambiĂ©n cuenta el tiempo en lĂ­nea / activo de los usuarios, que estĂĄn exceptuados (por excepciĂłn de cliente / grupo de servidores). Con una excepciĂłn, solo el rango arriba estĂĄ deshabilitado. Eso significa que si un usuario no estĂĄ mĂĄs exceptuado, se le asignarĂ­a al grupo segĂșn su tiempo acumulado (por ejemplo, nivel 3)..

2) descanso: En esta opción, el gasto en línea y el tiempo de inactividad se congelarån (romperån) en el valor real (antes de que el usuario sea exceptuado). Después de perder el motivo exceptuado (después de eliminar el grupo de servidores exceptuado o eliminar la regla de expection) el 'conteo' continuarå.

3) restablecer el tiempo: Con esta función, el tiempo en línea y el tiempo de inactividad contados se restablecerån a cero en el momento en que el usuario ya no esté mås exceptuado (debido a que se eliminarå el grupo de servidores exceptuado o se eliminarå la regla de excepción). La excepción de tiempo gastado seguirå contando hasta que se restablezca.


las excepciĂłnes de canal no importa en ningĂșn caso, porque siempre se ignorarĂĄ el tiempo (como el tiempo de interrupciĂłn del modo)."; +$lang['wiexuid'] = 'excepciĂłn de cliente'; +$lang['wiexuiddesc'] = 'Una lista separada por comas de identificadores de cliente Ășnicos, que no deberĂ­an tenerse en cuenta para Ranksystem.
El usuario en esta lista serĂĄ ignorado por el para subir de rango.'; +$lang['wiexregrp'] = 'eliminar grupo'; +$lang['wiexregrpdesc'] = "Si un usuario es excluido del Ranksystem, se eliminarĂĄ el grupo de servidor asignado por el Ranksystem.

El grupo solo se eliminarĂĄ con el '".$lang['wiexres']."' con el '".$lang['wiexres1']."'. En todos los demĂĄs modos, el grupo de servidor no se eliminarĂĄ.

Esta funciĂłn sĂłlo es relevante en combinaciĂłn con un '".$lang['wiexuid']."' o un '".$lang['wiexgrp']."' en combinaciĂłn con el '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'subir de rango definiciĂłn'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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!"; +$lang['wihladm1'] = 'agregar tiempo'; +$lang['wihladm2'] = 'quitar tiempo'; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'solicitado sobre la funciĂłn de administrador.'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Logpath'; +$lang['wilogdesc'] = 'Ruta del archivo de registro de Ranksystem.

Ejemplo:
/var/logs/ranksystem/

AsegĂșrese de que el usuario web tenga los permisos de escritura en el logpath.'; +$lang['wilogout'] = 'Cerrar sesiĂłn'; +$lang['wimsgmsg'] = 'Mensajes'; +$lang['wimsgmsgdesc'] = 'Defina un mensaje, que se enviarĂĄ a un usuario, cuando se eleve al siguiente rango mĂĄs alto.

Este mensaje se enviarå a través del mensaje privado TS3. Se pueden usar todos los códigos bb conocidos, que también funcionan para un mensaje privado normal.
%s

AdemĂĄs, el tiempo pasado previamente puede expresarse mediante argumentos:
%1$s - dias
%2$s - horas
%3$s - minutos
%4$s - segundos
%5$s - nombre del grupo de servidores alcanzado
%6$s - nombre del usuario (destinatario)

Ejemplo:
Oye,\\nalcanzaste un rango mĂĄs alto, ya que ya te conectaste %1$s dias, %2$s horas y %3$s minutos a nuestro servidor TS3.[B]Seguid asĂ­![/B] ;-)
'; +$lang['wimsgsn'] = 'Servidor-Noticias'; +$lang['wimsgsndesc'] = 'Definir un mensaje, que se mostrarĂĄ en /stats/ pĂĄgina como noticias del servidor.

Puede usar funciones html predeterminadas para modificar el diseño

Ejemplo:
<b> - para negrita
<u> - para subrayar
<i> - para cursiva
<br> - para el ajuste de palabras (nueva lĂ­nea)'; +$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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'Base de datos'; +$lang['winav3'] = 'NĂșcleo'; +$lang['winav4'] = 'Otro'; +$lang['winav5'] = 'Mensaje'; +$lang['winav6'] = 'PĂĄgina de estadĂ­sticas'; +$lang['winav7'] = 'Administrar'; +$lang['winav8'] = 'Parar / Iniciar Bot'; +$lang['winav9'] = 'ActualizaciĂłn disponible!'; +$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['winxmsg2'] = 'Mensaje (mĂĄs alto)'; +$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. 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"; +$lang['wirtpw5'] = 'Se enviĂł un mensaje de texto privado de TeamSpeak 3 al administrador con la nueva contraseña. Hacer clic %s aquĂ­ %s para iniciar sesiĂłn.'; +$lang['wirtpw6'] = 'La contraseña de la interfaz web ha sido restablecida con Ă©xito. Solicitud de IP %s.'; +$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['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'tiempo activo'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'tiempo en lĂ­nea'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Define the default sorting column for the List Rankup page.'; +$lang['wishexcld'] = 'cliente exceptuado'; +$lang['wishexclddesc'] = 'Mostrar clientes en list_rankup.php,
que estĂĄn excluidos y, por tanto, no participan en el Ranksystem.'; +$lang['wishexgrp'] = 'grupos exceptuados'; +$lang['wishexgrpdesc'] = "Mostrar clientes en list_rankup.php, que estĂĄn en la lista 'client exception' y no debe ser considerado para el Ranksystem."; +$lang['wishhicld'] = 'Clientes en el nivel mĂĄs alto'; +$lang['wishhiclddesc'] = 'Mostrar clientes en list_rankup.php, que alcanzĂł el nivel mĂĄs alto en el Ranksystem.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'estilo personalizado'; +$lang['wistyledesc'] = "Define un estilo personalizado diferente para el sistema de rangos.
Este estilo se utilizarĂĄ para la pĂĄgina de estadĂ­sticas y la interfaz web.

Coloca tu estilo en el directorio 'style' en un subdirectorio propio.
El nombre del subdirectorio determina el nombre del estilo.

Los estilos que comienzan con 'TSN_' son proporcionados por el sistema de rangos. Estos se actualizarĂĄn con futuras actualizaciones.
ÂĄPor lo tanto, no se deben hacer ajustes en ellos!
Sin embargo, pueden servir como plantilla. Copia el estilo en un directorio propio para hacer ajustes en él.

Se requieren dos archivos CSS. Uno para la pĂĄgina de estadĂ­sticas y otro para la interfaz web.
También se puede incluir un JavaScript personalizado, pero esto es opcional.

ConvenciĂłn de nombres de CSS:
- Fijar 'ST.css' para la pĂĄgina de estadĂ­sticas (/stats/)
- Fijar 'WI.css' para la pĂĄgina de interfaz web (/webinterface/)


ConvenciĂłn de nombres para JavaScript:
- Fijar 'ST.js' para la pĂĄgina de estadĂ­sticas (/stats/)

Fijar 'WI.js' para la pĂĄgina de interfaz web (/webinterface/)


Si desea compartir su estilo con otros, puede enviarlo a la siguiente direcciĂłn de correo electrĂłnico:

%s

ÂĄLo incluiremos en la prĂłxima versiĂłn!"; +$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['wisvres'] = 'ÂĄDebe reiniciar el sistema de clasificaciĂłn antes de que los cambios surtan efecto! %s'; +$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['wits3pre'] = 'Prefijo de comando de bot'; +$lang['wits3predesc'] = "En el servidor de TeamSpeak puedes comunicarte con el bot Ranksystem a través del chat. Por defecto, los comandos del bot estån marcados con un signo de exclamación '!'. Se usa el prefijo para identificar los comandos del bot como tal.

Este prefijo se puede reemplazar por cualquier otro prefijo deseado. Esto puede ser necesario si se estĂĄn utilizando otros bots con comandos similares.

Por ejemplo, el comando predeterminado del bot serĂ­a:
!help


Si se reemplaza el prefijo con '#', el comando se verĂ­a asĂ­:
#help
"; +$lang['wits3qnm'] = 'Nombre del Bot'; +$lang['wits3qnmdesc'] = 'El nombre, con esto el query-connection se establecerĂĄ.
Puede nombrarlo gratis.'; +$lang['wits3querpw'] = 'TS3 Query-Password'; +$lang['wits3querpwdesc'] = 'Contraseña de consulta de TeamSpeak 3
Contraseña para el usuario de la consulta.'; +$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['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'; +$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['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'] = 'Canal de verificaciĂłn'; +$lang['wiverifydesc'] = 'Ingrese aquĂ­ el ID de canal del canal de verificaciĂłn.

Este canal debe ser configurado manualmente en tu servidor TeamSpeak. Nombre, permisos y otras propiedades podrĂ­an definirse para su elecciĂłn; solo el usuario deberĂ­a ser posible unirse a este canal!

La verificaciĂłn la realiza el propio usuario en la pĂĄgina de estadĂ­sticas.(/stats/). Esto solo es necesario si el visitante del sitio web no puede ser emparejado / relacionado automĂĄticamente con el usuario de TeamSpeak.

To verify the TeamSpeak user, he has to be in the verification channel. AllĂ­ puede recibir un token con el que puede verificarse a sĂ­ mismo para la pĂĄgina de estadĂ­sticas.'; +$lang['wivlang'] = 'Idioma'; +$lang['wivlangdesc'] = 'Elija un idioma predeterminado para el Ranksystem.

El idioma tambiĂ©n se puede seleccionar en los sitios web para los usuarios y se almacenarĂĄ para la sesiĂłn.'; diff --git "a/languages/core_fr_fran\303\247ais_fr.php" "b/languages/core_fr_fran\303\247ais_fr.php" index e5d1a47..4f8d574 100644 --- "a/languages/core_fr_fran\303\247ais_fr.php" +++ "b/languages/core_fr_fran\303\247ais_fr.php" @@ -1,706 +1,706 @@ - Il vient d'ĂȘtre ajoutĂ© dans le Ranksystem."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Autoriser le dĂ©marrage/l'arrĂȘt du Ranksystem Bot via API"; -$lang['apipermdesc'] = "(ON = Autoriser ; OFF = Refuser)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$lang['changedbid'] = "L'utilisateur %s (Identifiant unique: %s) a obtenu un nouveau TeamSpeak ID dans la base de donnée (%s). Mettez à jour l'ancien ID dans la base de donnée (%s) et réinitialisez les heures collectées !"; -$lang['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'] = "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."; -$lang['cleanno'] = "Il n'y avait rien à supprimer..."; -$lang['cleanp'] = "Période de nettoyage"; -$lang['cleanpdesc'] = "Définissez un délai qui doit s'écouler avant que les 'clients propres' ne soient exécutés.

Mettez un temps en seconde.

C'est recommandĂ© de la faire une fois par jour, le nettoyage du client nĂ©cessite beaucoup de temps pour les bases de donnĂ©es plus importantes."; -$lang['cleanrs'] = "Clients dans la base de donnĂ©e du Ranksystem: %s"; -$lang['cleants'] = "Clients trouvĂ© dans la base de donnĂ©e du TeamSpeak: %s (De %s)"; -$lang['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!"; -$lang['errgrplist'] = "Error while getting servergrouplist: "; -$lang['errlogin'] = "Nom d'utilisateur et/ou mot de passe erronĂ©s ! RĂ©essayer de nouveau..."; -$lang['errlogin2'] = "Protection contre la brutalitĂ©e: Essayez Ă  nouveau dans %s secondes!"; -$lang['errlogin3'] = "Protection contre la brutalitĂ©e: Vous avez fait trop d'erreurs. Ainsi rĂ©sulte un banissement de 300 secondes !"; -$lang['error'] = "Erreur "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['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"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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 !
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 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 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)"; -$lang['isntwidbmsg'] = "Erreur de la base de données: "; -$lang['isntwidbname'] = "Nom de la BDD:"; -$lang['isntwidbnamedesc'] = "Nom de la base de données"; -$lang['isntwidbpass'] = "Mot de passe de la BDD:"; -$lang['isntwidbpassdesc'] = "Mot de passe pour accéder à la base de données"; -$lang['isntwidbtype'] = "Type de BDD:"; -$lang['isntwidbtypedesc'] = "Type 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'] = "Utilisateur BDD:"; -$lang['isntwidbusrdesc'] = "Utilisateur pour accĂ©der Ă  la base de donnĂ©es"; -$lang['isntwidel'] = "Veuillez supprimer le fichier 'install.php' de votre serveur web"; -$lang['isntwiusr'] = "Utilisateur de l'interface Web créée avec succĂšs."; -$lang['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"; -$lang['listcldbid'] = "ID du client dans la base de donnĂ©e"; -$lang['listexcept'] = "Non, sauf exception"; -$lang['listgrps'] = "Groupe actuel depuis"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Nom du client"; -$lang['listnxsg'] = "Groupe de serveur suivant"; -$lang['listnxup'] = "Rang suivant"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "Rang"; -$lang['listseen'] = "DerniĂšre apparition "; -$lang['listsuma'] = "Temps actif"; -$lang['listsumi'] = "Temps d'inactivitĂ©"; -$lang['listsumo'] = "Temps en ligne"; -$lang['listuid'] = "Identifiant unique de l'utilisateur"; -$lang['listver'] = "client version"; -$lang['login'] = "S'identifier"; -$lang['module_disabled'] = "This module is deactivated."; -$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'] = "Vous n'ĂȘtes pas admissible Ă  cette commande !"; -$lang['msg0004'] = "Client %s (%s) demmande l'arrĂȘt."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) demmande le %s."; -$lang['msg0008'] = "Update check done. If an update is available, it will runs 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'] = "Aucune entrĂ©e trouvĂ©e..."; -$lang['pass'] = "Mot de passe"; -$lang['pass2'] = "Changer le mot de passe"; -$lang['pass3'] = "Ancien mot de passe"; -$lang['pass4'] = "Nouveau mot de passe"; -$lang['pass5'] = "Mot de passe oubliĂ© ?"; -$lang['permission'] = "Autorisations"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "RĂ©pĂ©ter"; -$lang['resettime'] = "RĂ©initialiser le temps d'inactivitĂ© et d'inactivitĂ© de l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnĂ©e %s) Ă  zĂ©ro, parce que l'utilisateur a Ă©tĂ© supprimĂ© de l'exception."; -$lang['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)."; -$lang['setontime'] = "ajouter du temps"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Veuillez patienter jusqu'Ă  ce que vos derniĂšres modifications prennent effet avant que vous changiez dĂ©jĂ  les prochaines choses ..."; -$lang['stag0008'] = "Les modifications de groupe ont Ă©tĂ© enregistrĂ©es avec succĂšs. Cela peut prendre quelques secondes jusqu'Ă  ce qu'ils prennent effet sur le serveur ts3."; -$lang['stag0009'] = "Vous ne pouvez pas choisir plus de %s groupe(s) en mĂȘme temps !"; -$lang['stag0010'] = "Veuillez choisir au moins un nouveau groupe."; -$lang['stag0011'] = "Limite des groupes simultanĂ©s: "; -$lang['stag0012'] = "DĂ©finir un groupe"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Tournez l'Addon en on (activĂ©) ou off (dĂ©sactivĂ©).

Lors de la dĂ©sactivation de l'addon une partie possible sur les stats / site sera masquĂ©."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stag0016'] = "verification needed!"; -$lang['stag0017'] = "verificate here.."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Statistiques du serveur"; -$lang['stix0002'] = "Nombre total d'utilisateurs"; -$lang['stix0003'] = "Voir les dĂ©tails"; -$lang['stix0004'] = "Temps en ligne de tous les utilisateurs / Total"; -$lang['stix0005'] = "Voir le top de tous les temps"; -$lang['stix0006'] = "Voir le top du mois"; -$lang['stix0007'] = "Voir le top de la semaine"; -$lang['stix0008'] = "Utilisation du serveur"; -$lang['stix0009'] = "Au cours des 7 derniers jours"; -$lang['stix0010'] = "Au cours des 30 derniers jours"; -$lang['stix0011'] = "Au cours des 24 derniĂšres heures"; -$lang['stix0012'] = "PĂ©riode choisie"; -$lang['stix0013'] = "Dernier jour"; -$lang['stix0014'] = "La semaine derniĂšre"; -$lang['stix0015'] = "Le mois dernier"; -$lang['stix0016'] = "Temps actif / inactif (de tous les clients)"; -$lang['stix0017'] = "Versions (de tous les clients)"; -$lang['stix0018'] = "NationalitĂ©s (de tous les clients)"; -$lang['stix0019'] = "Plateformes (de tous les clients)"; -$lang['stix0020'] = "Statistiques actuelles"; -$lang['stix0023'] = "État du serveur"; -$lang['stix0024'] = "En ligne"; -$lang['stix0025'] = "Hors ligne"; -$lang['stix0026'] = "Clients (En ligne / Max)"; -$lang['stix0027'] = "Nombre de canaux"; -$lang['stix0028'] = "Ping moyen du serveur"; -$lang['stix0029'] = "Total des octets reçus"; -$lang['stix0030'] = "Nombre total d'octets envoyĂ©s"; -$lang['stix0031'] = "Temps de disponibilitĂ© du serveur"; -$lang['stix0032'] = "avant d'ĂȘtre hors ligne:"; -$lang['stix0033'] = "00 Jours, 00 Heures, 00 Mins, 00 Secs"; -$lang['stix0034'] = "Perte moyenne de paquets"; -$lang['stix0035'] = "Statistiques gĂ©nĂ©rales"; -$lang['stix0036'] = "Nom du serveur"; -$lang['stix0037'] = "Adresse du serveur (Adresse de l'hĂŽte: Port)"; -$lang['stix0038'] = "Mot de passe du serveur"; -$lang['stix0039'] = "Non (Le serveur est alors public)"; -$lang['stix0040'] = "Oui (Le serveur est alors privĂ©)"; -$lang['stix0041'] = "ID du serveur"; -$lang['stix0042'] = "Plate-forme du serveur"; -$lang['stix0043'] = "Version du serveur"; -$lang['stix0044'] = "Date de crĂ©ation du serveur (jj/mm/aaaa)"; -$lang['stix0045'] = "Rapport de la liste des serveurs"; -$lang['stix0046'] = "ActivĂ©"; -$lang['stix0047'] = "Non activĂ©"; -$lang['stix0048'] = "Pas assez de donnĂ©es pour le moment ..."; -$lang['stix0049'] = "Heure en ligne de tous les utilisateurs / mois"; -$lang['stix0050'] = "Heure en ligne de tous les utilisateurs / semaine"; -$lang['stix0051'] = "Le serveur TeamSpeak a Ă©chouĂ©, donc aucune date de crĂ©ation ..."; -$lang['stix0052'] = "Autres"; -$lang['stix0053'] = "Temps actif (en jours)"; -$lang['stix0054'] = "Temps inactif (en jours)"; -$lang['stix0055'] = "en ligne depuis 24 heures"; -$lang['stix0056'] = "en ligne les 7 derniers jours"; -$lang['stix0059'] = "Liste des utilisateurs"; -$lang['stix0060'] = "Utilisateur"; -$lang['stix0061'] = "Voir toutes les versions"; -$lang['stix0062'] = "Voir toutes les nations"; -$lang['stix0063'] = "Voir toutes les plateformes"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "Mes statistiques"; -$lang['stmy0002'] = "Rang"; -$lang['stmy0003'] = "ID dans la base de donnĂ©e:"; -$lang['stmy0004'] = "Identifiant unique:"; -$lang['stmy0005'] = "Total des connexions au serveur:"; -$lang['stmy0006'] = "Date de dĂ©but des statistiques:"; -$lang['stmy0007'] = "Temps total en ligne:"; -$lang['stmy0008'] = "Temps en ligne les 7 derniers jours:"; -$lang['stmy0009'] = "Temps en ligne les 30 derniers jours:"; -$lang['stmy0010'] = "RĂ©ussites achevĂ©es:"; -$lang['stmy0011'] = "Temps pour la progession des rĂ©ussites"; -$lang['stmy0012'] = "DurĂ©e: LĂ©gendaire"; -$lang['stmy0013'] = "Parce que vous avez un temps en ligne de %s heures."; -$lang['stmy0014'] = "ProgrĂšs rĂ©alisĂ©s"; -$lang['stmy0015'] = "DurĂ©e: Or"; -$lang['stmy0016'] = "% AchevĂ© pour lĂ©gendaire "; -$lang['stmy0017'] = "DurĂ©e: Argent"; -$lang['stmy0018'] = "% AchevĂ© pour Or"; -$lang['stmy0019'] = "DurĂ©e: Bronze"; -$lang['stmy0020'] = "% AchevĂ© pour Argent"; -$lang['stmy0021'] = "DurĂ©e: Non classĂ©"; -$lang['stmy0022'] = "% TerminĂ© pour Bronze"; -$lang['stmy0023'] = "ProgrĂšs de rĂ©alisation de connexion"; -$lang['stmy0024'] = "Connexions: LĂ©gendaire"; -$lang['stmy0025'] = "Parce que vous avez Ă©tĂ© connectĂ© %s fois sur le serveur."; -$lang['stmy0026'] = "Connexions: Or"; -$lang['stmy0027'] = "Connexions: Argent"; -$lang['stmy0028'] = "Connexions: Bronze"; -$lang['stmy0029'] = "Connexions: Non classĂ©"; -$lang['stmy0030'] = "Progression pour le prochain groupe de serveurs"; -$lang['stmy0031'] = "Temps actif total"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "Statistiques"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Nombre"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Plateformes"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "News du serveur"; -$lang['stnv0002'] = "Fermer"; -$lang['stnv0003'] = "Actualiser les informations des clients"; -$lang['stnv0004'] = "N'utilisez cette actualisation que lorsque vos informations TS3 ont Ă©tĂ© modifiĂ©es, telles que votre nom d'utilisateur TS3"; -$lang['stnv0005'] = "Cela ne fonctionne que lorsque vous ĂȘtes connectĂ© au serveur TS3 en mĂȘme temps"; -$lang['stnv0006'] = "RafraĂźchir"; -$lang['stnv0016'] = "Indisponible"; -$lang['stnv0017'] = "Vous n'ĂȘtes pas connectĂ© au serveur TS3, on ne peut donc pas afficher de donnĂ©es pour vous."; -$lang['stnv0018'] = "Connectez-vous au serveur TS3 puis rĂ©gĂ©nĂ©rez votre session en appuyant sur le bouton bleu RafraĂźchir situĂ© en haut Ă  droite."; -$lang['stnv0019'] = "Mes statistiques - Contenu de la page"; -$lang['stnv0020'] = "Cette page contient un rĂ©sumĂ© gĂ©nĂ©ral de vos statistiques et activitĂ©s personnelles sur le serveur."; -$lang['stnv0021'] = "Les informations sont collectĂ©es depuis la mise en place du Ranksystem, elles ne sont pas depuis le dĂ©but du serveur TeamSpeak."; -$lang['stnv0022'] = "Cette page reçoit ses valeurs d'une base de donnĂ©es. Les valeurs peuvent donc ĂȘtre retardĂ©es un peu."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistiques"; -$lang['stnv0025'] = "Limiter les entrĂ©es"; -$lang['stnv0026'] = "tout"; -$lang['stnv0027'] = "Les informations sur ce site pourraient ĂȘtre pĂ©rimĂ©es ! Il semble que le Ranksystem ne soit connectĂ© au TeamSpeak."; -$lang['stnv0028'] = "(Vous n'ĂȘtes pas connectĂ© au TS3 !)"; -$lang['stnv0029'] = "Liste de classement"; -$lang['stnv0030'] = "À propos du Ranksystem"; -$lang['stnv0031'] = "À propos du champ de recherche, vous pouvez rechercher le motif dans le nom du client, indentifiant unique et ID dans la base de donnĂ©e."; -$lang['stnv0032'] = "Vous pouvez Ă©galement utiliser des options de filtre de vue (voir ci-dessous). Entrez le filtre dans le champ de recherche."; -$lang['stnv0033'] = "Des combinaison de filtre et de motif de recherche sont possibles. Entrez d'abord les filtres) suivi sans aucun signe votre modĂšle de recherche."; -$lang['stnv0034'] = "Il est Ă©galement possible de combiner plusieurs filtres. Entrez ceci consĂ©cutivement dans le champ de recherche."; -$lang['stnv0035'] = "Exemple:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Afficher uniquement les clients acceptés (client, groupe de serveurs ou exception de canal)."; -$lang['stnv0037'] = "Afficher uniquement les clients qui ne sont pas exceptés."; -$lang['stnv0038'] = "Afficher uniquement les clients qui sont en ligne."; -$lang['stnv0039'] = "Afficher uniquement les clients qui ne sont pas en ligne."; -$lang['stnv0040'] = "Afficher uniquement les clients, qui sont dans le groupe défini. Représenter le rang / niveau actuel.
Remplacez GROUPID avec l'ID du groupe de serveurs voulu."; -$lang['stnv0041'] = "Afficher uniquement les clients sélectionnés par la derniÚre fois.
Remplacez OPERATOR avec '<' ou '>' ou '=' ou '!='.
Et remplacez TIME Avec un horodatage ou une date de format 'Y-m-d H-i' (exemple: 2016-06-18 20-25).
Exemple complet: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Afficher uniquement les clients qui proviennent d'un pays défini.
Remplacez TS3-COUNTRY-CODE avec le pays voulu.
Pour la liste des codes google pour ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connexion au TS3"; -$lang['stri0001'] = "Informations sur le Ranksystem"; -$lang['stri0002'] = "Qu'est-ce que le Ranksystem ?"; -$lang['stri0003'] = "C'est un robot TeamSpeak3. Il accorde automatiquement des rangs (groupes de serveurs) Ă  l'utilisateur sur un serveur TeamSpeak 3 pour un temps d'activitĂ© ou en ligne. Il rassemble Ă©galement des informations et des statistiques sur l'utilisateur et affiche le celle çi sur ce site."; -$lang['stri0004'] = "Qui a créé le Ranksystem ?"; -$lang['stri0005'] = "Quand le Ranksystem a Ă©tĂ© créé ?"; -$lang['stri0006'] = "PremiĂšre version en alpha: 05/10/2014."; -$lang['stri0007'] = "PremiĂšre version en bĂȘta: 01/02/2015."; -$lang['stri0008'] = "Vous pouvez voir la derniĂšre version sur le site du Ranksystem."; -$lang['stri0009'] = "Comment le Ranksystem a-t-il Ă©tĂ© créé?"; -$lang['stri0010'] = "Le Ranksystem est codĂ© en"; -$lang['stri0011'] = "Il utilise Ă©galement les bibliothĂšques suivantes:"; -$lang['stri0012'] = "Remerciements spĂ©ciaux Ă :"; -$lang['stri0013'] = "%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'] = "%s pour la traduction tchĂšque"; -$lang['stri0025'] = "%s pour la traduction polonaise"; -$lang['stri0026'] = "%s pour la traduction espagnole"; -$lang['stri0027'] = "%s pour la traduction hongroise"; -$lang['stri0028'] = "%s pour la traduction azĂ©rie"; -$lang['stri0029'] = "%s pour la fonction d'empreinte"; -$lang['stri0030'] = "%s pour le style 'CosmicBlue' pour la page des statistiques et l'interface web"; -$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"; -$lang['sttw0004'] = "Top 10 comparĂ©s"; -$lang['sttw0005'] = "Heures (DĂ©finit 100%)"; -$lang['sttw0006'] = "%s heures (%s%)"; -$lang['sttw0007'] = "Top 10 des statistiques"; -$lang['sttw0008'] = "Top 10 vs d'autres en ligne"; -$lang['sttw0009'] = "Top 10 vs autres en temps actif"; -$lang['sttw0010'] = "Top 10 vs autres en temps inactif"; -$lang['sttw0011'] = "Top 10 (en heures)"; -$lang['sttw0012'] = "Autres %s utilisateurs (en heures)"; -$lang['sttw0013'] = "Avec %s %s de temps actif"; -$lang['sttw0014'] = "heures"; -$lang['sttw0015'] = "minutes"; -$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin."; -$lang['stve0002'] = "Un message avec le jeton vous a Ă©tĂ© envoyĂ© sur le serveur TeamSpeak3."; -$lang['stve0003'] = "Veuillez entrer le jeton, que vous avez reçu sur le serveur TeamSpeak3. Si vous n'avez pas reçu de message, assurez-vous d'avoir choisi le bon identifiant unique."; -$lang['stve0004'] = "Le jeton saisi ne correspond pas ! Veuillez rĂ©essayer."; -$lang['stve0005'] = "FĂ©licitations, vous avez rĂ©ussi la vĂ©rification ! Vous pouvez maintenant continuer ..."; -$lang['stve0006'] = "Une erreur inconnue s'est produite. Veuillez rĂ©essayer. Si ce message apparait Ă  plusieurs reprises, veuillez contacter un administrateur"; -$lang['stve0007'] = "VĂ©rification sur le TeamSpeak"; -$lang['stve0008'] = "Choisissez ici votre identifiant unique sur le serveur TS3 pour vous vĂ©rifier."; -$lang['stve0009'] = " -- Choisissez vous-mĂȘme -- "; -$lang['stve0010'] = "Vous recevrez un jeton sur le serveur TS3, que vous devrez saisir ici:"; -$lang['stve0011'] = "Jeton:"; -$lang['stve0012'] = "VĂ©rifier"; -$lang['time_day'] = "Day(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(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"; -$lang['upgrp0003'] = "Error while writing out the servericon."; -$lang['upgrp0004'] = "Error while downloading TS3 ServerIcon from TS3 server: "; -$lang['upgrp0005'] = "Error while deleting the servericon."; -$lang['upgrp0006'] = "Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0007'] = "Error while writing out the servergroup icon from group %s with ID %s."; -$lang['upgrp0008'] = "Error while downloading servergroup icon from group %s with ID %s: "; -$lang['upgrp0009'] = "Error while deleting the servergroup icon from group %s with ID %s."; -$lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s"; -$lang['upinf'] = "Une nouvelle version du Ranksystem est disponible. Informer les clients sur le serveur ..."; -$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes."; -$lang['upmsg'] = "\nHey, une nouvelle version du [B]Ranksystem[/B] est disponible !\n\nversion actuelle: %s\n[B]nouvelle version: %s[/B]\n\nS'il vous plaĂźt consulter notre site pour plus d'informations [URL]%s[/URL].\n\nDĂ©marrage du processus de mise Ă  jour en arriĂšre-plan. [B]Veuillez vĂ©rifier le ranksystem.log ![/B]"; -$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%s[/URL]."; -$lang['upusrerr'] = "L'indentifiant unique %s n'a pas pu ĂȘtre trouvĂ© sur le TeamSpeak !"; -$lang['upusrinf'] = "L'utilisateur %s a Ă©tĂ© informĂ© avec succĂšs."; -$lang['user'] = "Nom d'utilisateur"; -$lang['verify0001'] = "Please be sure, you are really connected to the TS3 server!"; -$lang['verify0002'] = "Enter, if not already done, the Ranksystem %sverification-channel%s!"; -$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :("; -$lang['verify0004'] = "No user inside the verification channel found..."; -$lang['wi'] = "Interface Web"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "clients exceptés masquer"; -$lang['wiadmhidedesc'] = "Pour masquer l'utilisateur excepté dans la sélection suivante"; -$lang['wiadmuuid'] = "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['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['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 !"; -$lang['wibot4'] = "DĂ©marer / ArrĂȘter le robot du Ranksystem"; -$lang['wibot5'] = "DĂ©marer le bot"; -$lang['wibot6'] = "Stop le bot"; -$lang['wibot7'] = "RedĂ©marer le bot"; -$lang['wibot8'] = "Journal du Ranksystem (extrait):"; -$lang['wibot9'] = "Remplissez tous les champs obligatoires avant de commencer le Ranksystem !"; -$lang['wichdbid'] = "ID des clients dans la base de donnĂ©e rĂ©initialisĂ©"; -$lang['wichdbiddesc'] = "RĂ©initialiser le temps en ligne d'un utilisateur, si son ID de client dans la base de donnĂ©e du serveur TeamSpeak a changĂ©.
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'] = "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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$lang['widelcldgrpdesc'] = "Le Ranksystem se souvient des groupes de serveurs donnés, de sorte qu'il n'a pas besoin de donner / vérifier cela à chaque exécution du fichier worker.php à nouveau.

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

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

Attention: ExĂ©cuter dans un instant, oĂč les prochaines minutes aucun rang ups deviennent dus ! Le Ranksystem ne peut pas supprimer l'ancien groupe, parce qu'il ne peut pas s'en rappeler ;-)"; -$lang['widelsg'] = "Supprimer des groupes de serveurs"; -$lang['widelsgdesc'] = "Choisissez si les clients doivent Ă©galement ĂȘtre supprimĂ©s du dernier groupe de serveurs connu, lorsque vous supprimez des clients de la base de donnĂ©es du Ranksystem.

Il ne considérera que les groupes de serveurs, qui concernent le Ranksystem"; -$lang['wiexcept'] = "Exceptions"; -$lang['wiexcid'] = "Exception de canal"; -$lang['wiexciddesc'] = "Les virgules séparent une liste des ID de canaux qui ne doivent pas participer au systÚme de classement.

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

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

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

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

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

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


L'exception de canal n'a pas d'importance ici, car le temps sera toujours ignorĂ© (comme le mode de pause)."; -$lang['wiexuid'] = "Exception d'un client"; -$lang['wiexuiddesc'] = "Des virgules sĂ©parent une liste d'indentifiant unique de client, qui ne doivent pas ĂȘtre prise en considĂ©ration pour le systĂšme de rang (Ranksystem).
Les utilisateurs de cette liste seront ignorés pour le classement."; -$lang['wiexregrp'] = "supprimer le groupe"; -$lang['wiexregrpdesc'] = "Si un utilisateur est exclu du Ranksystem, le groupe de serveur attribué par le Ranksystem sera supprimé.

Le groupe ne sera supprimé qu'avec le '".$lang['wiexres']."' avec le '".$lang['wiexres1']."'. Dans tous les autres modes, le groupe de serveur ne sera pas supprimé.

Cette fonction n'est pertinente que lorsqu'elle est utilisée en combinaison avec un '".$lang['wiexuid']."' ou un '".$lang['wiexgrp']."' en combinaison avec le '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "Définition des prochains rangs"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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!"; -$lang['wihladm1'] = "Ajouter du temps"; -$lang['wihladm2'] = "enlever le temps"; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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é."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Emplacement des logs"; -$lang['wilogdesc'] = "Chemin du fichier journal du Ranksystem.

Exemple:
/var/logs/ranksystem/

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

Ce message sera envoyĂ© via message privĂ© Ă  l'utilisateur sur le TeamSpeak. Donc si vous conaissez le bb-code, il pourrait alors ĂȘtre utilisĂ©, ce qui fonctionne aussi pour un message privĂ© normal.
%s

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

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

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

Exemple:
<b> - pour du gras
<u> - pour souligné
<i> - pour l'italic
<br> - pour une nouvelle ligne"; -$lang['wimsgusr'] = "Notification lors l'obtention du grade supĂ©rieur"; -$lang['wimsgusrdesc'] = "Informer un utilisateur avec un message texte privĂ© sur son rang."; -$lang['winav1'] = "TeamSpeak"; -$lang['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "Base de donnĂ©es"; -$lang['winav3'] = "Coeur"; -$lang['winav4'] = "Autres"; -$lang['winav5'] = "Messages"; -$lang['winav6'] = "Page des statistiques"; -$lang['winav7'] = "Gestion"; -$lang['winav8'] = "Marche/ArrĂȘt du bot"; -$lang['winav9'] = "Mise Ă  jour disponible !"; -$lang['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['winxmsg2'] = "Message (le plus élevé)"; -$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. 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"; -$lang['wirtpw5'] = "Un message privĂ© a Ă©tĂ© envoyĂ© Ă  l'administrateur avec le nouveau mot de passe sur le serveur TeamSpeak3. Cliquez %s ici %s pour vous connecter."; -$lang['wirtpw6'] = "Le mot de passe de l'interface Web a Ă©tĂ© rĂ©initialisĂ©. Demande de l'adresse IP %s."; -$lang['wirtpw7'] = "RĂ©initialiser le mot de passe"; -$lang['wirtpw8'] = "Ici, vous pouvez rĂ©initialiser le mot de passe de l'interface Web."; -$lang['wirtpw9'] = "Les Ă©lĂ©ments suivants sont nĂ©cessaires pour rĂ©initialiser le mot de passe:"; -$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "Temps actif"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "Temps en ligne"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; -$lang['wishexcld'] = "Clients exclus"; -$lang['wishexclddesc'] = "Afficher les clients dans list_rankup.php,
qui sont exclus et ne participent donc pas au systÚme de classement."; -$lang['wishexgrp'] = "Groupes exceptés"; -$lang['wishexgrpdesc'] = "Affichez les clients dans list_rankup.php, qui sont dans la liste 'Clients exclus' et ne participent donc pas au systÚme de classement."; -$lang['wishhicld'] = "Clients au plus haut niveau"; -$lang['wishhiclddesc'] = "Afficher les clients dans list_rankup.php, qui ont atteints le niveau le plus élevé dans le systÚme de classement."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "style personnalisé"; -$lang['wistyledesc'] = "Définissez un style personnalisé pour le systÚme de classement.
Ce style sera utilisé pour la page de statistiques et l'interface web.

Placez votre propre style dans le répertoire 'style' dans un sous-répertoire.
Le nom du sous-répertoire détermine le nom du style.

Les styles commençant par 'TSN_' sont fournis par le systÚme de classement. Ces styles seront mis à jour lors des mises à jour futures.
Il ne devrait donc pas y avoir de modifications apportées à ces styles!
Cependant, ils peuvent servir de modÚle. Copiez le style dans un répertoire distinct pour y apporter des modifications.

Deux fichiers CSS sont nécessaires. Un pour la page de statistiques et un pour l'interface web.
Il est également possible d'inclure un JavaScript personnalisé. Cependant, ceci est facultatif.

Convention de nommage pour CSS:
- Fixer 'ST.css' pour la page de statistiques (/stats/)
- Fixer 'WI.css' pour la page de l'interface web (/webinterface/)


Convention de nommage pour JavaScript:
- Fixer 'ST.js' pour la page de statistiques (/stats/)
- Fixer 'WI.js' pour la page de l'interface web (/webinterface/)


Si vous souhaitez partager votre style avec d'autres, vous pouvez l'envoyer Ă  cette adresse e-mail:

%s

Nous le fournirons avec la prochaine version!"; -$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['wisvres'] = "Vous devez redémarrer le Ranksystem avant que les modifications prennent effet! %s"; -$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['wits3pre'] = "Préfixe de la commande du bot"; -$lang['wits3predesc'] = "Sur le serveur TeamSpeak, vous pouvez communiquer avec le bot Ranksystem via la chat. Par défaut, les commandes du bot sont marquées d'un point d'exclamation '!'. Le préfixe est utilisé pour identifier les commandes pour le bot en tant que tel.

Ce prĂ©fixe peut ĂȘtre remplacĂ© par n'importe quel autre prĂ©fixe souhaitĂ©. Cela peut ĂȘtre nĂ©cessaire si d'autres bots avec des commandes similaires sont utilisĂ©s.

Par exemple, la commande par défaut du bot ressemblerait à ceci:
!help


Si le préfixe est remplacé par '#', la commande ressemblerait à ceci:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "Mot de passe query du serveur TeamSpeak 3
Mot de passe pour l'utilisateur de la requĂȘte."; -$lang['wits3querusr'] = "Utilisateur query du TS3"; -$lang['wits3querusrdesc'] = "Nom d'utilisateur query du serveur TeamSpeak3
La valeur par défaut est serveradmin
Bien sûr, vous pouvez également créer un compte serverquery supplémentaire uniquement pour le Ranksystem.
Les autorisations nécessaires sont trouvable sur:
%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['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"; -$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['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 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'] = "Langue"; -$lang['wivlangdesc'] = "Choisissez une langue par défaut pour le Ranksystem.

La langue est Ă©galement sĂ©lectionnable sur le site web pour les utilisateurs et sera stockĂ©e pour sa session."; -?> \ No newline at end of file + Il vient d'ĂȘtre ajoutĂ© dans le Ranksystem."; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = "Autoriser le dĂ©marrage/l'arrĂȘt du Ranksystem Bot via API"; +$lang['apipermdesc'] = '(ON = Autoriser ; OFF = Refuser)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$lang['changedbid'] = "L'utilisateur %s (Identifiant unique: %s) a obtenu un nouveau TeamSpeak ID dans la base de donnée (%s). Mettez à jour l'ancien ID dans la base de donnée (%s) et réinitialisez les heures collectées !"; +$lang['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'] = '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."; +$lang['cleanno'] = "Il n'y avait rien à supprimer..."; +$lang['cleanp'] = 'Période de nettoyage'; +$lang['cleanpdesc'] = "Définissez un délai qui doit s'écouler avant que les 'clients propres' ne soient exécutés.

Mettez un temps en seconde.

C'est recommandĂ© de la faire une fois par jour, le nettoyage du client nĂ©cessite beaucoup de temps pour les bases de donnĂ©es plus importantes."; +$lang['cleanrs'] = 'Clients dans la base de donnĂ©e du Ranksystem: %s'; +$lang['cleants'] = 'Clients trouvĂ© dans la base de donnĂ©e du TeamSpeak: %s (De %s)'; +$lang['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!'; +$lang['errgrplist'] = 'Error while getting servergrouplist: '; +$lang['errlogin'] = "Nom d'utilisateur et/ou mot de passe erronĂ©s ! RĂ©essayer de nouveau..."; +$lang['errlogin2'] = 'Protection contre la brutalitĂ©e: Essayez Ă  nouveau dans %s secondes!'; +$lang['errlogin3'] = "Protection contre la brutalitĂ©e: Vous avez fait trop d'erreurs. Ainsi rĂ©sulte un banissement de 300 secondes !"; +$lang['error'] = 'Erreur '; +$lang['errorts3'] = 'TS3 Error: '; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['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'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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 !
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 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 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)'; +$lang['isntwidbmsg'] = 'Erreur de la base de données: '; +$lang['isntwidbname'] = 'Nom de la BDD:'; +$lang['isntwidbnamedesc'] = 'Nom de la base de données'; +$lang['isntwidbpass'] = 'Mot de passe de la BDD:'; +$lang['isntwidbpassdesc'] = 'Mot de passe pour accéder à la base de données'; +$lang['isntwidbtype'] = 'Type de BDD:'; +$lang['isntwidbtypedesc'] = 'Type 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'] = 'Utilisateur BDD:'; +$lang['isntwidbusrdesc'] = 'Utilisateur pour accĂ©der Ă  la base de donnĂ©es'; +$lang['isntwidel'] = "Veuillez supprimer le fichier 'install.php' de votre serveur web"; +$lang['isntwiusr'] = "Utilisateur de l'interface Web créée avec succĂšs."; +$lang['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'; +$lang['listcldbid'] = 'ID du client dans la base de donnĂ©e'; +$lang['listexcept'] = 'Non, sauf exception'; +$lang['listgrps'] = 'Groupe actuel depuis'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Nom du client'; +$lang['listnxsg'] = 'Groupe de serveur suivant'; +$lang['listnxup'] = 'Rang suivant'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'Rang'; +$lang['listseen'] = 'DerniĂšre apparition '; +$lang['listsuma'] = 'Temps actif'; +$lang['listsumi'] = "Temps d'inactivitĂ©"; +$lang['listsumo'] = 'Temps en ligne'; +$lang['listuid'] = "Identifiant unique de l'utilisateur"; +$lang['listver'] = 'client version'; +$lang['login'] = "S'identifier"; +$lang['module_disabled'] = 'This module is deactivated.'; +$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'] = "Vous n'ĂȘtes pas admissible Ă  cette commande !"; +$lang['msg0004'] = "Client %s (%s) demmande l'arrĂȘt."; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Client %s (%s) demmande le %s.'; +$lang['msg0008'] = 'Update check done. If an update is available, it will runs 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'] = 'Aucune entrĂ©e trouvĂ©e...'; +$lang['pass'] = 'Mot de passe'; +$lang['pass2'] = 'Changer le mot de passe'; +$lang['pass3'] = 'Ancien mot de passe'; +$lang['pass4'] = 'Nouveau mot de passe'; +$lang['pass5'] = 'Mot de passe oubliĂ© ?'; +$lang['permission'] = 'Autorisations'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'RĂ©pĂ©ter'; +$lang['resettime'] = "RĂ©initialiser le temps d'inactivitĂ© et d'inactivitĂ© de l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnĂ©e %s) Ă  zĂ©ro, parce que l'utilisateur a Ă©tĂ© supprimĂ© de l'exception."; +$lang['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).'; +$lang['setontime'] = 'ajouter du temps'; +$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_pib'] = 'PiB'; +$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'] = '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."; +$lang['stag0007'] = "Veuillez patienter jusqu'Ă  ce que vos derniĂšres modifications prennent effet avant que vous changiez dĂ©jĂ  les prochaines choses ..."; +$lang['stag0008'] = "Les modifications de groupe ont Ă©tĂ© enregistrĂ©es avec succĂšs. Cela peut prendre quelques secondes jusqu'Ă  ce qu'ils prennent effet sur le serveur ts3."; +$lang['stag0009'] = 'Vous ne pouvez pas choisir plus de %s groupe(s) en mĂȘme temps !'; +$lang['stag0010'] = 'Veuillez choisir au moins un nouveau groupe.'; +$lang['stag0011'] = 'Limite des groupes simultanĂ©s: '; +$lang['stag0012'] = 'DĂ©finir un groupe'; +$lang['stag0013'] = 'Addon ON/OFF'; +$lang['stag0014'] = "Tournez l'Addon en on (activĂ©) ou off (dĂ©sactivĂ©).

Lors de la dĂ©sactivation de l'addon une partie possible sur les stats / site sera masquĂ©."; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stag0016'] = 'verification needed!'; +$lang['stag0017'] = 'verificate here..'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Statistiques du serveur'; +$lang['stix0002'] = "Nombre total d'utilisateurs"; +$lang['stix0003'] = 'Voir les dĂ©tails'; +$lang['stix0004'] = 'Temps en ligne de tous les utilisateurs / Total'; +$lang['stix0005'] = 'Voir le top de tous les temps'; +$lang['stix0006'] = 'Voir le top du mois'; +$lang['stix0007'] = 'Voir le top de la semaine'; +$lang['stix0008'] = 'Utilisation du serveur'; +$lang['stix0009'] = 'Au cours des 7 derniers jours'; +$lang['stix0010'] = 'Au cours des 30 derniers jours'; +$lang['stix0011'] = 'Au cours des 24 derniĂšres heures'; +$lang['stix0012'] = 'PĂ©riode choisie'; +$lang['stix0013'] = 'Dernier jour'; +$lang['stix0014'] = 'La semaine derniĂšre'; +$lang['stix0015'] = 'Le mois dernier'; +$lang['stix0016'] = 'Temps actif / inactif (de tous les clients)'; +$lang['stix0017'] = 'Versions (de tous les clients)'; +$lang['stix0018'] = 'NationalitĂ©s (de tous les clients)'; +$lang['stix0019'] = 'Plateformes (de tous les clients)'; +$lang['stix0020'] = 'Statistiques actuelles'; +$lang['stix0023'] = 'État du serveur'; +$lang['stix0024'] = 'En ligne'; +$lang['stix0025'] = 'Hors ligne'; +$lang['stix0026'] = 'Clients (En ligne / Max)'; +$lang['stix0027'] = 'Nombre de canaux'; +$lang['stix0028'] = 'Ping moyen du serveur'; +$lang['stix0029'] = 'Total des octets reçus'; +$lang['stix0030'] = "Nombre total d'octets envoyĂ©s"; +$lang['stix0031'] = 'Temps de disponibilitĂ© du serveur'; +$lang['stix0032'] = "avant d'ĂȘtre hors ligne:"; +$lang['stix0033'] = '00 Jours, 00 Heures, 00 Mins, 00 Secs'; +$lang['stix0034'] = 'Perte moyenne de paquets'; +$lang['stix0035'] = 'Statistiques gĂ©nĂ©rales'; +$lang['stix0036'] = 'Nom du serveur'; +$lang['stix0037'] = "Adresse du serveur (Adresse de l'hĂŽte: Port)"; +$lang['stix0038'] = 'Mot de passe du serveur'; +$lang['stix0039'] = 'Non (Le serveur est alors public)'; +$lang['stix0040'] = 'Oui (Le serveur est alors privĂ©)'; +$lang['stix0041'] = 'ID du serveur'; +$lang['stix0042'] = 'Plate-forme du serveur'; +$lang['stix0043'] = 'Version du serveur'; +$lang['stix0044'] = 'Date de crĂ©ation du serveur (jj/mm/aaaa)'; +$lang['stix0045'] = 'Rapport de la liste des serveurs'; +$lang['stix0046'] = 'ActivĂ©'; +$lang['stix0047'] = 'Non activĂ©'; +$lang['stix0048'] = 'Pas assez de donnĂ©es pour le moment ...'; +$lang['stix0049'] = 'Heure en ligne de tous les utilisateurs / mois'; +$lang['stix0050'] = 'Heure en ligne de tous les utilisateurs / semaine'; +$lang['stix0051'] = 'Le serveur TeamSpeak a Ă©chouĂ©, donc aucune date de crĂ©ation ...'; +$lang['stix0052'] = 'Autres'; +$lang['stix0053'] = 'Temps actif (en jours)'; +$lang['stix0054'] = 'Temps inactif (en jours)'; +$lang['stix0055'] = 'en ligne depuis 24 heures'; +$lang['stix0056'] = 'en ligne les 7 derniers jours'; +$lang['stix0059'] = 'Liste des utilisateurs'; +$lang['stix0060'] = 'Utilisateur'; +$lang['stix0061'] = 'Voir toutes les versions'; +$lang['stix0062'] = 'Voir toutes les nations'; +$lang['stix0063'] = 'Voir toutes les plateformes'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'Mes statistiques'; +$lang['stmy0002'] = 'Rang'; +$lang['stmy0003'] = 'ID dans la base de donnĂ©e:'; +$lang['stmy0004'] = 'Identifiant unique:'; +$lang['stmy0005'] = 'Total des connexions au serveur:'; +$lang['stmy0006'] = 'Date de dĂ©but des statistiques:'; +$lang['stmy0007'] = 'Temps total en ligne:'; +$lang['stmy0008'] = 'Temps en ligne les 7 derniers jours:'; +$lang['stmy0009'] = 'Temps en ligne les 30 derniers jours:'; +$lang['stmy0010'] = 'RĂ©ussites achevĂ©es:'; +$lang['stmy0011'] = 'Temps pour la progession des rĂ©ussites'; +$lang['stmy0012'] = 'DurĂ©e: LĂ©gendaire'; +$lang['stmy0013'] = 'Parce que vous avez un temps en ligne de %s heures.'; +$lang['stmy0014'] = 'ProgrĂšs rĂ©alisĂ©s'; +$lang['stmy0015'] = 'DurĂ©e: Or'; +$lang['stmy0016'] = '% AchevĂ© pour lĂ©gendaire '; +$lang['stmy0017'] = 'DurĂ©e: Argent'; +$lang['stmy0018'] = '% AchevĂ© pour Or'; +$lang['stmy0019'] = 'DurĂ©e: Bronze'; +$lang['stmy0020'] = '% AchevĂ© pour Argent'; +$lang['stmy0021'] = 'DurĂ©e: Non classĂ©'; +$lang['stmy0022'] = '% TerminĂ© pour Bronze'; +$lang['stmy0023'] = 'ProgrĂšs de rĂ©alisation de connexion'; +$lang['stmy0024'] = 'Connexions: LĂ©gendaire'; +$lang['stmy0025'] = 'Parce que vous avez Ă©tĂ© connectĂ© %s fois sur le serveur.'; +$lang['stmy0026'] = 'Connexions: Or'; +$lang['stmy0027'] = 'Connexions: Argent'; +$lang['stmy0028'] = 'Connexions: Bronze'; +$lang['stmy0029'] = 'Connexions: Non classĂ©'; +$lang['stmy0030'] = 'Progression pour le prochain groupe de serveurs'; +$lang['stmy0031'] = 'Temps actif total'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Nations'; +$lang['stna0002'] = 'Statistiques'; +$lang['stna0003'] = 'Code'; +$lang['stna0004'] = 'Nombre'; +$lang['stna0005'] = 'Versions'; +$lang['stna0006'] = 'Plateformes'; +$lang['stna0007'] = 'Percentage'; +$lang['stnv0001'] = 'News du serveur'; +$lang['stnv0002'] = 'Fermer'; +$lang['stnv0003'] = 'Actualiser les informations des clients'; +$lang['stnv0004'] = "N'utilisez cette actualisation que lorsque vos informations TS3 ont Ă©tĂ© modifiĂ©es, telles que votre nom d'utilisateur TS3"; +$lang['stnv0005'] = 'Cela ne fonctionne que lorsque vous ĂȘtes connectĂ© au serveur TS3 en mĂȘme temps'; +$lang['stnv0006'] = 'RafraĂźchir'; +$lang['stnv0016'] = 'Indisponible'; +$lang['stnv0017'] = "Vous n'ĂȘtes pas connectĂ© au serveur TS3, on ne peut donc pas afficher de donnĂ©es pour vous."; +$lang['stnv0018'] = 'Connectez-vous au serveur TS3 puis rĂ©gĂ©nĂ©rez votre session en appuyant sur le bouton bleu RafraĂźchir situĂ© en haut Ă  droite.'; +$lang['stnv0019'] = 'Mes statistiques - Contenu de la page'; +$lang['stnv0020'] = 'Cette page contient un rĂ©sumĂ© gĂ©nĂ©ral de vos statistiques et activitĂ©s personnelles sur le serveur.'; +$lang['stnv0021'] = 'Les informations sont collectĂ©es depuis la mise en place du Ranksystem, elles ne sont pas depuis le dĂ©but du serveur TeamSpeak.'; +$lang['stnv0022'] = "Cette page reçoit ses valeurs d'une base de donnĂ©es. Les valeurs peuvent donc ĂȘtre retardĂ©es un peu."; +$lang['stnv0023'] = 'The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds).'; +$lang['stnv0024'] = 'Ranksystem - Statistiques'; +$lang['stnv0025'] = 'Limiter les entrĂ©es'; +$lang['stnv0026'] = 'tout'; +$lang['stnv0027'] = 'Les informations sur ce site pourraient ĂȘtre pĂ©rimĂ©es ! Il semble que le Ranksystem ne soit connectĂ© au TeamSpeak.'; +$lang['stnv0028'] = "(Vous n'ĂȘtes pas connectĂ© au TS3 !)"; +$lang['stnv0029'] = 'Liste de classement'; +$lang['stnv0030'] = 'À propos du Ranksystem'; +$lang['stnv0031'] = 'À propos du champ de recherche, vous pouvez rechercher le motif dans le nom du client, indentifiant unique et ID dans la base de donnĂ©e.'; +$lang['stnv0032'] = 'Vous pouvez Ă©galement utiliser des options de filtre de vue (voir ci-dessous). Entrez le filtre dans le champ de recherche.'; +$lang['stnv0033'] = "Des combinaison de filtre et de motif de recherche sont possibles. Entrez d'abord les filtres) suivi sans aucun signe votre modĂšle de recherche."; +$lang['stnv0034'] = 'Il est Ă©galement possible de combiner plusieurs filtres. Entrez ceci consĂ©cutivement dans le champ de recherche.'; +$lang['stnv0035'] = 'Exemple:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Afficher uniquement les clients acceptés (client, groupe de serveurs ou exception de canal).'; +$lang['stnv0037'] = 'Afficher uniquement les clients qui ne sont pas exceptés.'; +$lang['stnv0038'] = 'Afficher uniquement les clients qui sont en ligne.'; +$lang['stnv0039'] = 'Afficher uniquement les clients qui ne sont pas en ligne.'; +$lang['stnv0040'] = "Afficher uniquement les clients, qui sont dans le groupe défini. Représenter le rang / niveau actuel.
Remplacez GROUPID avec l'ID du groupe de serveurs voulu."; +$lang['stnv0041'] = "Afficher uniquement les clients sélectionnés par la derniÚre fois.
Remplacez OPERATOR avec '<' ou '>' ou '=' ou '!='.
Et remplacez TIME Avec un horodatage ou une date de format 'Y-m-d H-i' (exemple: 2016-06-18 20-25).
Exemple complet: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = "Afficher uniquement les clients qui proviennent d'un pays défini.
Remplacez TS3-COUNTRY-CODE avec le pays voulu.
Pour la liste des codes google pour ISO 3166-1 alpha-2"; +$lang['stnv0043'] = 'connexion au TS3'; +$lang['stri0001'] = 'Informations sur le Ranksystem'; +$lang['stri0002'] = "Qu'est-ce que le Ranksystem ?"; +$lang['stri0003'] = "C'est un robot TeamSpeak3. Il accorde automatiquement des rangs (groupes de serveurs) Ă  l'utilisateur sur un serveur TeamSpeak 3 pour un temps d'activitĂ© ou en ligne. Il rassemble Ă©galement des informations et des statistiques sur l'utilisateur et affiche le celle çi sur ce site."; +$lang['stri0004'] = 'Qui a créé le Ranksystem ?'; +$lang['stri0005'] = 'Quand le Ranksystem a Ă©tĂ© créé ?'; +$lang['stri0006'] = 'PremiĂšre version en alpha: 05/10/2014.'; +$lang['stri0007'] = 'PremiĂšre version en bĂȘta: 01/02/2015.'; +$lang['stri0008'] = 'Vous pouvez voir la derniĂšre version sur le site du Ranksystem.'; +$lang['stri0009'] = 'Comment le Ranksystem a-t-il Ă©tĂ© créé?'; +$lang['stri0010'] = 'Le Ranksystem est codĂ© en'; +$lang['stri0011'] = 'Il utilise Ă©galement les bibliothĂšques suivantes:'; +$lang['stri0012'] = 'Remerciements spĂ©ciaux Ă :'; +$lang['stri0013'] = '%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'] = '%s pour la traduction tchĂšque'; +$lang['stri0025'] = '%s pour la traduction polonaise'; +$lang['stri0026'] = '%s pour la traduction espagnole'; +$lang['stri0027'] = '%s pour la traduction hongroise'; +$lang['stri0028'] = '%s pour la traduction azĂ©rie'; +$lang['stri0029'] = "%s pour la fonction d'empreinte"; +$lang['stri0030'] = "%s pour le style 'CosmicBlue' pour la page des statistiques et l'interface web"; +$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'; +$lang['sttw0004'] = 'Top 10 comparĂ©s'; +$lang['sttw0005'] = 'Heures (DĂ©finit 100%)'; +$lang['sttw0006'] = '%s heures (%s%)'; +$lang['sttw0007'] = 'Top 10 des statistiques'; +$lang['sttw0008'] = "Top 10 vs d'autres en ligne"; +$lang['sttw0009'] = 'Top 10 vs autres en temps actif'; +$lang['sttw0010'] = 'Top 10 vs autres en temps inactif'; +$lang['sttw0011'] = 'Top 10 (en heures)'; +$lang['sttw0012'] = 'Autres %s utilisateurs (en heures)'; +$lang['sttw0013'] = 'Avec %s %s de temps actif'; +$lang['sttw0014'] = 'heures'; +$lang['sttw0015'] = 'minutes'; +$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin."; +$lang['stve0002'] = 'Un message avec le jeton vous a Ă©tĂ© envoyĂ© sur le serveur TeamSpeak3.'; +$lang['stve0003'] = "Veuillez entrer le jeton, que vous avez reçu sur le serveur TeamSpeak3. Si vous n'avez pas reçu de message, assurez-vous d'avoir choisi le bon identifiant unique."; +$lang['stve0004'] = 'Le jeton saisi ne correspond pas ! Veuillez rĂ©essayer.'; +$lang['stve0005'] = 'FĂ©licitations, vous avez rĂ©ussi la vĂ©rification ! Vous pouvez maintenant continuer ...'; +$lang['stve0006'] = "Une erreur inconnue s'est produite. Veuillez rĂ©essayer. Si ce message apparait Ă  plusieurs reprises, veuillez contacter un administrateur"; +$lang['stve0007'] = 'VĂ©rification sur le TeamSpeak'; +$lang['stve0008'] = 'Choisissez ici votre identifiant unique sur le serveur TS3 pour vous vĂ©rifier.'; +$lang['stve0009'] = ' -- Choisissez vous-mĂȘme -- '; +$lang['stve0010'] = 'Vous recevrez un jeton sur le serveur TS3, que vous devrez saisir ici:'; +$lang['stve0011'] = 'Jeton:'; +$lang['stve0012'] = 'VĂ©rifier'; +$lang['time_day'] = 'Day(s)'; +$lang['time_hour'] = 'Hour(s)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sec(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'; +$lang['upgrp0003'] = 'Error while writing out the servericon.'; +$lang['upgrp0004'] = 'Error while downloading TS3 ServerIcon from TS3 server: '; +$lang['upgrp0005'] = 'Error while deleting the servericon.'; +$lang['upgrp0006'] = 'Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0007'] = 'Error while writing out the servergroup icon from group %s with ID %s.'; +$lang['upgrp0008'] = 'Error while downloading servergroup icon from group %s with ID %s: '; +$lang['upgrp0009'] = 'Error while deleting the servergroup icon from group %s with ID %s.'; +$lang['upgrp0010'] = 'Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0011'] = 'Download new ServerGroupIcon for group %s with ID: %s'; +$lang['upinf'] = 'Une nouvelle version du Ranksystem est disponible. Informer les clients sur le serveur ...'; +$lang['upinf2'] = 'The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.'; +$lang['upmsg'] = "\nHey, une nouvelle version du [B]Ranksystem[/B] est disponible !\n\nversion actuelle: %s\n[B]nouvelle version: %s[/B]\n\nS'il vous plaĂźt consulter notre site pour plus d'informations [URL]%s[/URL].\n\nDĂ©marrage du processus de mise Ă  jour en arriĂšre-plan. [B]Veuillez vĂ©rifier le ranksystem.log ![/B]"; +$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%s[/URL]."; +$lang['upusrerr'] = "L'indentifiant unique %s n'a pas pu ĂȘtre trouvĂ© sur le TeamSpeak !"; +$lang['upusrinf'] = "L'utilisateur %s a Ă©tĂ© informĂ© avec succĂšs."; +$lang['user'] = "Nom d'utilisateur"; +$lang['verify0001'] = 'Please be sure, you are really connected to the TS3 server!'; +$lang['verify0002'] = 'Enter, if not already done, the Ranksystem %sverification-channel%s!'; +$lang['verify0003'] = 'If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :('; +$lang['verify0004'] = 'No user inside the verification channel found...'; +$lang['wi'] = 'Interface Web'; +$lang['wiaction'] = 'action'; +$lang['wiadmhide'] = 'clients exceptés masquer'; +$lang['wiadmhidedesc'] = "Pour masquer l'utilisateur excepté dans la sélection suivante"; +$lang['wiadmuuid'] = '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['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['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 !"; +$lang['wibot4'] = 'DĂ©marer / ArrĂȘter le robot du Ranksystem'; +$lang['wibot5'] = 'DĂ©marer le bot'; +$lang['wibot6'] = 'Stop le bot'; +$lang['wibot7'] = 'RedĂ©marer le bot'; +$lang['wibot8'] = 'Journal du Ranksystem (extrait):'; +$lang['wibot9'] = 'Remplissez tous les champs obligatoires avant de commencer le Ranksystem !'; +$lang['wichdbid'] = 'ID des clients dans la base de donnĂ©e rĂ©initialisĂ©'; +$lang['wichdbiddesc'] = "RĂ©initialiser le temps en ligne d'un utilisateur, si son ID de client dans la base de donnĂ©e du serveur TeamSpeak a changĂ©.
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'] = '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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$lang['widelcldgrpdesc'] = "Le Ranksystem se souvient des groupes de serveurs donnés, de sorte qu'il n'a pas besoin de donner / vérifier cela à chaque exécution du fichier worker.php à nouveau.

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

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

Attention: ExĂ©cuter dans un instant, oĂč les prochaines minutes aucun rang ups deviennent dus ! Le Ranksystem ne peut pas supprimer l'ancien groupe, parce qu'il ne peut pas s'en rappeler ;-)"; +$lang['widelsg'] = 'Supprimer des groupes de serveurs'; +$lang['widelsgdesc'] = 'Choisissez si les clients doivent Ă©galement ĂȘtre supprimĂ©s du dernier groupe de serveurs connu, lorsque vous supprimez des clients de la base de donnĂ©es du Ranksystem.

Il ne considérera que les groupes de serveurs, qui concernent le Ranksystem'; +$lang['wiexcept'] = 'Exceptions'; +$lang['wiexcid'] = 'Exception de canal'; +$lang['wiexciddesc'] = "Les virgules séparent une liste des ID de canaux qui ne doivent pas participer au systÚme de classement.

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

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

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

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

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

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


L'exception de canal n'a pas d'importance ici, car le temps sera toujours ignorĂ© (comme le mode de pause)."; +$lang['wiexuid'] = "Exception d'un client"; +$lang['wiexuiddesc'] = "Des virgules sĂ©parent une liste d'indentifiant unique de client, qui ne doivent pas ĂȘtre prise en considĂ©ration pour le systĂšme de rang (Ranksystem).
Les utilisateurs de cette liste seront ignorés pour le classement."; +$lang['wiexregrp'] = 'supprimer le groupe'; +$lang['wiexregrpdesc'] = "Si un utilisateur est exclu du Ranksystem, le groupe de serveur attribué par le Ranksystem sera supprimé.

Le groupe ne sera supprimé qu'avec le '".$lang['wiexres']."' avec le '".$lang['wiexres1']."'. Dans tous les autres modes, le groupe de serveur ne sera pas supprimé.

Cette fonction n'est pertinente que lorsqu'elle est utilisée en combinaison avec un '".$lang['wiexuid']."' ou un '".$lang['wiexgrp']."' en combinaison avec le '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'Définition des prochains rangs'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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!"; +$lang['wihladm1'] = 'Ajouter du temps'; +$lang['wihladm2'] = 'enlever le temps'; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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é."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Emplacement des logs'; +$lang['wilogdesc'] = "Chemin du fichier journal du Ranksystem.

Exemple:
/var/logs/ranksystem/

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

Ce message sera envoyĂ© via message privĂ© Ă  l'utilisateur sur le TeamSpeak. Donc si vous conaissez le bb-code, il pourrait alors ĂȘtre utilisĂ©, ce qui fonctionne aussi pour un message privĂ© normal.
%s

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

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

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

Exemple:
<b> - pour du gras
<u> - pour souligné
<i> - pour l'italic
<br> - pour une nouvelle ligne"; +$lang['wimsgusr'] = "Notification lors l'obtention du grade supĂ©rieur"; +$lang['wimsgusrdesc'] = 'Informer un utilisateur avec un message texte privĂ© sur son rang.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'Base de donnĂ©es'; +$lang['winav3'] = 'Coeur'; +$lang['winav4'] = 'Autres'; +$lang['winav5'] = 'Messages'; +$lang['winav6'] = 'Page des statistiques'; +$lang['winav7'] = 'Gestion'; +$lang['winav8'] = 'Marche/ArrĂȘt du bot'; +$lang['winav9'] = 'Mise Ă  jour disponible !'; +$lang['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['winxmsg2'] = 'Message (le plus élevé)'; +$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. 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"; +$lang['wirtpw5'] = "Un message privĂ© a Ă©tĂ© envoyĂ© Ă  l'administrateur avec le nouveau mot de passe sur le serveur TeamSpeak3. Cliquez %s ici %s pour vous connecter."; +$lang['wirtpw6'] = "Le mot de passe de l'interface Web a Ă©tĂ© rĂ©initialisĂ©. Demande de l'adresse IP %s."; +$lang['wirtpw7'] = 'RĂ©initialiser le mot de passe'; +$lang['wirtpw8'] = "Ici, vous pouvez rĂ©initialiser le mot de passe de l'interface Web."; +$lang['wirtpw9'] = 'Les Ă©lĂ©ments suivants sont nĂ©cessaires pour rĂ©initialiser le mot de passe:'; +$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'Temps actif'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'Temps en ligne'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Define the default sorting column for the List Rankup page.'; +$lang['wishexcld'] = 'Clients exclus'; +$lang['wishexclddesc'] = 'Afficher les clients dans list_rankup.php,
qui sont exclus et ne participent donc pas au systÚme de classement.'; +$lang['wishexgrp'] = 'Groupes exceptés'; +$lang['wishexgrpdesc'] = "Affichez les clients dans list_rankup.php, qui sont dans la liste 'Clients exclus' et ne participent donc pas au systÚme de classement."; +$lang['wishhicld'] = 'Clients au plus haut niveau'; +$lang['wishhiclddesc'] = 'Afficher les clients dans list_rankup.php, qui ont atteints le niveau le plus élevé dans le systÚme de classement.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'style personnalisé'; +$lang['wistyledesc'] = "Définissez un style personnalisé pour le systÚme de classement.
Ce style sera utilisé pour la page de statistiques et l'interface web.

Placez votre propre style dans le répertoire 'style' dans un sous-répertoire.
Le nom du sous-répertoire détermine le nom du style.

Les styles commençant par 'TSN_' sont fournis par le systÚme de classement. Ces styles seront mis à jour lors des mises à jour futures.
Il ne devrait donc pas y avoir de modifications apportées à ces styles!
Cependant, ils peuvent servir de modÚle. Copiez le style dans un répertoire distinct pour y apporter des modifications.

Deux fichiers CSS sont nécessaires. Un pour la page de statistiques et un pour l'interface web.
Il est également possible d'inclure un JavaScript personnalisé. Cependant, ceci est facultatif.

Convention de nommage pour CSS:
- Fixer 'ST.css' pour la page de statistiques (/stats/)
- Fixer 'WI.css' pour la page de l'interface web (/webinterface/)


Convention de nommage pour JavaScript:
- Fixer 'ST.js' pour la page de statistiques (/stats/)
- Fixer 'WI.js' pour la page de l'interface web (/webinterface/)


Si vous souhaitez partager votre style avec d'autres, vous pouvez l'envoyer Ă  cette adresse e-mail:

%s

Nous le fournirons avec la prochaine version!"; +$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['wisvres'] = 'Vous devez redémarrer le Ranksystem avant que les modifications prennent effet! %s'; +$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['wits3pre'] = 'Préfixe de la commande du bot'; +$lang['wits3predesc'] = "Sur le serveur TeamSpeak, vous pouvez communiquer avec le bot Ranksystem via la chat. Par défaut, les commandes du bot sont marquées d'un point d'exclamation '!'. Le préfixe est utilisé pour identifier les commandes pour le bot en tant que tel.

Ce prĂ©fixe peut ĂȘtre remplacĂ© par n'importe quel autre prĂ©fixe souhaitĂ©. Cela peut ĂȘtre nĂ©cessaire si d'autres bots avec des commandes similaires sont utilisĂ©s.

Par exemple, la commande par défaut du bot ressemblerait à ceci:
!help


Si le préfixe est remplacé par '#', la commande ressemblerait à ceci:
#help
"; +$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'; +$lang['wits3querpwdesc'] = "Mot de passe query du serveur TeamSpeak 3
Mot de passe pour l'utilisateur de la requĂȘte."; +$lang['wits3querusr'] = 'Utilisateur query du TS3'; +$lang['wits3querusrdesc'] = "Nom d'utilisateur query du serveur TeamSpeak3
La valeur par défaut est serveradmin
Bien sûr, vous pouvez également créer un compte serverquery supplémentaire uniquement pour le Ranksystem.
Les autorisations nécessaires sont trouvable sur:
%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['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'; +$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['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 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'] = 'Langue'; +$lang['wivlangdesc'] = 'Choisissez une langue par défaut pour le Ranksystem.

La langue est également sélectionnable sur le site web pour les utilisateurs et sera stockée pour sa session.'; diff --git a/languages/core_hu_Hungary_hu.php b/languages/core_hu_Hungary_hu.php index 056f9b8..82c43b4 100644 --- a/languages/core_hu_Hungary_hu.php +++ b/languages/core_hu_Hungary_hu.php @@ -1,708 +1,708 @@ - hozzåadva a Ranksystemhez."; -$lang['api'] = "API"; -$lang['apikey'] = "API Kulcs"; -$lang['apiperm001'] = "Engedélyezze a Ranksystem Bot indítåsåt/leållítåsåt az API segítségével"; -$lang['apipermdesc'] = "(ON = Engedélyez ; OFF = Tilt)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "emelkedƑ"; -$lang['autooff'] = "Automatikus indĂ­tĂĄs kikapcsolva"; -$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'] = "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['imprint'] = "Impresszum"; -$lang['input'] = "Input Value"; -$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"; -$lang['listgrps'] = "MiĂłta"; -$lang['listnat'] = "OrszĂĄg"; -$lang['listnick'] = "BecenĂ©v"; -$lang['listnxsg'] = "KövetkezƑ Szint"; -$lang['listnxup'] = "HĂĄtralĂ©vƑ IdƑ"; -$lang['listpla'] = "Platform"; -$lang['listrank'] = "HelyezĂ©s"; -$lang['listseen'] = "UtoljĂĄra Online"; -$lang['listsuma'] = "Össz. AktĂ­v IdƑ"; -$lang['listsumi'] = "Össz. InaktĂ­v IdƑ"; -$lang['listsumo'] = "Össz. Online IdƑ"; -$lang['listuid'] = "Unique ID"; -$lang['listver'] = "Kliens verziĂł"; -$lang['login'] = "BelĂ©pĂ©s"; -$lang['module_disabled'] = "Ez a modul inaktĂ­v."; -$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'] = "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['permission'] = "EngedĂ©lyek"; -$lang['privacy'] = "AdatvĂ©delmi irĂĄnyelvek"; -$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)"; -$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_pib'] = "PiB"; -$lang['size_tib'] = "TiB"; -$lang['size_yib'] = "YiB"; -$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'] = "KĂ©rjĂŒk, vĂĄrjon, amĂ­g az utolsĂł vĂĄltozĂĄsok hatĂĄlyba lĂ©pnek, mielƑtt megvĂĄltoztatja a következƑ dolgokat..."; -$lang['stag0008'] = "Sikeresen elmentetted a csoportokat. NĂ©hĂĄny mĂĄsodperc mĂșlva megjelenik a szerveren."; -$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'] = "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.."; -$lang['stag0018'] = "A kivĂ©telezett szervercsoportok listĂĄja. Ha egy felhasznĂĄlĂł rendelkezik a szervercsoportok egyikĂ©vel, akkor nem fogja tudni hasznĂĄlni a kiegĂ©szĂ­tƑt."; -$lang['stag0019'] = "KivĂ©telezve vagy ebbƑl a funkciĂłbĂłl, mert ezzel a szervercsoporttal rendelkezel: %s (ID: %s)."; -$lang['stag0020'] = "CĂ­m"; -$lang['stag0021'] = "Adjon meg egy cĂ­met ennek a csoportnak. A cĂ­m a statisztikai oldalon is megjelenik."; -$lang['stix0001'] = "Szerver statisztika"; -$lang['stix0002'] = "Összes felhasznĂĄlĂł"; -$lang['stix0003'] = "RĂ©szletek megtekintĂ©se"; -$lang['stix0004'] = "ÖsszesĂ­tett online idƑ"; -$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'] = "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'] = "OrszĂĄgok (összesĂ­tve)"; -$lang['stix0019'] = "OperĂĄciĂłs rendszerek (összesĂ­tve)"; -$lang['stix0020'] = "Szerver ĂĄllapot"; -$lang['stix0023'] = "Szerver stĂĄtusz"; -$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'] = "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"; -$lang['stix0036'] = "SzervernĂ©v"; -$lang['stix0037'] = "Szerver cĂ­m (IP : Port)"; -$lang['stix0038'] = "Szerver jelszĂł"; -$lang['stix0039'] = "Nincs (a szerver publikus)"; -$lang['stix0040'] = "Igen (a szerver privĂĄt)"; -$lang['stix0041'] = "Szerver ID"; -$lang['stix0042'] = "Szerver platform"; -$lang['stix0043'] = "Szerver verziĂł"; -$lang['stix0044'] = "Szerver lĂ©trehozĂĄsĂĄnak dĂĄtuma (nn/hh/éééé)"; -$lang['stix0045'] = "MegjelenĂ­tĂ©s a szerver listĂĄban"; -$lang['stix0046'] = "AktivĂĄlva"; -$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'] = "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)"; -$lang['stix0055'] = "az utolsĂł 24 ĂłrĂĄban"; -$lang['stix0056'] = "az utolsĂł %s napban"; -$lang['stix0059'] = "FelhasznĂĄlĂłk listĂĄzĂĄsa"; -$lang['stix0060'] = "FelhasznĂĄlĂł"; -$lang['stix0061'] = "Minden verziĂł megtekintĂ©se"; -$lang['stix0062'] = "Minden nemzetisĂ©g megtekintĂ©se"; -$lang['stix0063'] = "Minden platform megtekintĂ©se"; -$lang['stix0064'] = "Az utolsĂł 90 napban"; -$lang['stmy0001'] = "SajĂĄt statisztikĂĄm"; -$lang['stmy0002'] = "HelyezĂ©s"; -$lang['stmy0003'] = "AdatbĂĄzis ID:"; -$lang['stmy0004'] = "Unique ID:"; -$lang['stmy0005'] = "Összes csatlakozĂĄs:"; -$lang['stmy0006'] = "Statisztika kezdƑ dĂĄtuma:"; -$lang['stmy0007'] = "Online idƑ összesen:"; -$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Ƒ: LegendĂĄs"; -$lang['stmy0013'] = "Mert az online idƑd %s Ăłra."; -$lang['stmy0014'] = "TeljesĂ­tve"; -$lang['stmy0015'] = "Online idƑ: Arany"; -$lang['stmy0016'] = "% TeljesĂ­tve a LegendĂĄshoz"; -$lang['stmy0017'] = "Online idƑ: EzĂŒst"; -$lang['stmy0018'] = "% TeljesĂ­tve az Aranyhoz"; -$lang['stmy0019'] = "Online idƑ: Bronz"; -$lang['stmy0020'] = "% TeljesĂ­tve az EzĂŒsthöz"; -$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ĂĄsok: LegendĂĄs"; -$lang['stmy0025'] = "Mert a csatlakozĂĄsaid szĂĄma %s."; -$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['stmy0032'] = "UtoljĂĄra kiszĂĄmĂ­tva:"; -$lang['stna0001'] = "OrszĂĄgok"; -$lang['stna0002'] = "Statisztika"; -$lang['stna0003'] = "KĂłd"; -$lang['stna0004'] = "szĂĄma"; -$lang['stna0005'] = "VerziĂłk"; -$lang['stna0006'] = "Platformok"; -$lang['stna0007'] = "SzĂĄzalĂ©k"; -$lang['stnv0001'] = "Szerver hĂ­rek"; -$lang['stnv0002'] = "BezĂĄrĂĄs"; -$lang['stnv0003'] = "Kliens informĂĄciĂłk frissĂ­tĂ©se"; -$lang['stnv0004'] = "A frissĂ­tĂ©s hasznĂĄlata csak akkor szĂŒksĂ©ges ha mĂłdosĂ­tĂĄs törtĂ©nt. Pl: NĂ©vvĂĄltĂĄs."; -$lang['stnv0005'] = "A frissĂ­tĂ©s csak akkor mƱködik ha fel vagy csatlakozva jelenleg a szerverre"; -$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'] = "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."; -$lang['stnv0022'] = "Az oldal az adatokat egy kĂŒlsƑ adatbĂĄzisba viszi fel Ă©s hĂ­vja Ƒket meg, Ă­gy lehet egy pĂĄr perces eltĂ©rĂ©s a frissĂ­tĂ©sekre tekintettel."; -$lang['stnv0023'] = "A felhasznĂĄlĂłk online heti, havi idejĂ©t 15 percenkĂ©nt szĂĄmĂ­tja a rendszer. Az összes többi Ă©rtĂ©knek szinte Ă©lƑnek kell lennie (legfeljebb nĂ©hĂĄny mĂĄsodperc kĂ©sleltetĂ©s)."; -$lang['stnv0024'] = "Ranksystem - Statisztika"; -$lang['stnv0025'] = "MegjelenĂ­tĂ©s"; -$lang['stnv0026'] = "összes"; -$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."; -$lang['stnv0032'] = "Tudsz rĂ©szletes szƱrĂ©snek megfelelƑen is keresni, errƑl mintĂĄt lentebb talĂĄlsz."; -$lang['stnv0033'] = "A szƱrƑ Ă©s a becenĂ©v kombinĂĄlĂĄsa lehetsĂ©ges. ElƑször add meg a szƱrƑt, majd a becenevet."; -$lang['stnv0034'] = "Emellett több szƱrƑt is kombinĂĄlhatsz, csak Ă­rd be Ƒket egymĂĄs utĂĄn."; -$lang['stnv0035'] = "PĂ©lda:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Csak azokat a klienseket jelenĂ­ti meg, amiket a bot nem szĂĄmol azaz kivĂ©tel alatt ĂĄllnak."; -$lang['stnv0037'] = "Csak azokat a klienseket jelenĂ­ti meg, akik nincsenek kivĂ©telben Ă©s a bot szĂĄmolja Ƒket."; -$lang['stnv0038'] = "Csak azokat a klienseket jelenĂ­ti meg, akik elĂ©rhetƑek a szerveren."; -$lang['stnv0039'] = "Csak azokat a klienseket jelenĂ­ti meg, akik nem elĂ©rhetƑek a szerveren."; -$lang['stnv0040'] = "Csak azokat a klienseket jelenĂ­ti meg, akik abban az adott kivĂĄlasztott csoportnak vannak.
CserĂ©ld ki a GROUPID rĂ©szt arra az ID-re amit szeretnĂ©l keresni pl: 110."; -$lang['stnv0041'] = "DĂĄtum szerinti keresĂ©s, az utoljĂĄra online idƑnek megfelelƑen.
Cseréld ki a(z) OPERATOR szót '<' vagy '>' vagy '=' vagy '!='-ra.
És cserĂ©ld ki a(z) TIME szĂłt a megfelelƑ dĂĄtumra 'É-h-n Ó-p' (pĂ©lda: 2019-06-18 20-25)..
Teljes példa: filter:lastseen:>:2019-06-18 20-25:"; -$lang['stnv0042'] = "Csak azokat a klienseket jeleníti meg, akik a kivålasztott orszågban vannak.
Cseréld ki a TS3-COUNTRY-CODE szót a kívånt orszågra..
A kĂłdok a(z) ISO 3166-1 alpha-2 szabvĂĄnynak felelnek meg."; -$lang['stnv0043'] = "Csatlakozz a szerverre!"; -$lang['stri0001'] = "Ranksystem informĂĄciĂłk"; -$lang['stri0002'] = "Mi is a Ranksystem?"; -$lang['stri0003'] = "Egy script amely az online Ă©s aktĂ­v idƑnek megfelelƑen oszt ki kĂŒlönbözƑ csoportokat/szinteket. TovĂĄbbĂĄ informĂĄciĂłt gyƱjt ki a felhasznĂĄlĂłkrĂłl/a szerverrƑl Ă©s statisztikakĂ©nt megjelenĂ­ti. EzenkĂ­vĂŒl összegyƱjti a felhasznĂĄlĂł adatait Ă©s statisztikĂĄit, Ă©s megjelenĂ­ti az eredmĂ©nyt ezen az oldalon."; -$lang['stri0004'] = "Ki hozta lĂ©tre ezt a rendszert?"; -$lang['stri0005'] = "Mikor lett lĂ©trehozva a rendszer?"; -$lang['stri0006'] = "ElsƑ alfa kiadĂĄsi dĂĄtum: 05/10/2014."; -$lang['stri0007'] = "ElsƑ bĂ©ta kiadĂĄsi dĂĄtum: 01/02/2015."; -$lang['stri0008'] = "A verziĂł frissĂ­tĂ©seket a hivatalos weboldalon megtekintheted Ranksystem Website."; -$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'] = "%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'] = "%s a cseh fordĂ­tĂĄshoz"; -$lang['stri0025'] = "%s a lengyel fordĂ­tĂĄshoz"; -$lang['stri0026'] = "%s a spanyol fordĂ­tĂĄshoz"; -$lang['stri0027'] = "%s a magyar fordĂ­tĂĄshoz"; -$lang['stri0028'] = "%s az azerbajdzsĂĄni fordĂ­tĂĄshoz"; -$lang['stri0029'] = "%s az impresszum funkciĂłhoz"; -$lang['stri0030'] = "%s a 'CosmicBlue' stĂ­lushoz a statisztika oldalhoz Ă©s a web felĂŒlethez"; -$lang['stta0001'] = "ÖsszesĂ­tve"; -$lang['sttm0001'] = "A hĂłnapban"; -$lang['sttw0001'] = "Toplista"; -$lang['sttw0002'] = "A hĂ©ten"; -$lang['sttw0003'] = "%s %s online idƑvel"; -$lang['sttw0004'] = "Top 10 felhasznĂĄlĂł összehasonlĂ­tva"; -$lang['sttw0005'] = "Ăłra (MeghatĂĄrozza a 100%-ot)"; -$lang['sttw0006'] = "%s Ăłra (%s%)"; -$lang['sttw0007'] = "Top 10 Statisztika"; -$lang['sttw0008'] = "Top 10 vs mindenki mĂĄs (online idƑben)"; -$lang['sttw0009'] = "Top 10 vs mindenki mĂĄs (aktĂ­v idƑben)"; -$lang['sttw0010'] = "Top 10 vs mindenki mĂĄs (inaktĂ­v idƑben)"; -$lang['sttw0011'] = "Top 10 (ĂłrĂĄban)"; -$lang['sttw0012'] = "Többi %s felhasznĂĄlĂł (ĂłrĂĄban)"; -$lang['sttw0013'] = "%s %s aktĂ­v idƑvel"; -$lang['sttw0014'] = "Ăłra"; -$lang['sttw0015'] = "perc"; -$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'] = "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'] = "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['unknown'] = "unknown"; -$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'] = "\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 (-> 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'] = "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'] = "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'] = "GyorsĂ­tĂł"; -$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.

Szervercsoport: VĂĄlassza ki azt a szervercsoportot, amely indĂ­tja el a lendĂŒletet.

Boost TĂ©nyezƑ: 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!

Tartam MĂĄsodpercben: 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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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'] = "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['wiexregrp'] = "csoport eltĂĄvolĂ­tĂĄsa"; -$lang['wiexregrpdesc'] = "Ha egy felhasznĂĄlĂłt kizĂĄrnak a Ranksystem-bƑl, a Ranksystem ĂĄltal hozzĂĄrendelt szervercsoport eltĂĄvolĂ­tĂĄsra kerĂŒl.

A csoport csak a '".$lang['wiexres']."' a '".$lang['wiexres1']."'-al lesz eltĂĄvolĂ­tva. Minden mĂĄs mĂłdban a szervercsoport nem lesz eltĂĄvolĂ­tva.

Ez a funkciĂł csak akkor relevĂĄns, ha '".$lang['wiexuid']."' vagy '".$lang['wiexgrp']."' a '".$lang['wiexres1']."'-al egyĂŒtt hasznĂĄljĂĄk."; -$lang['wigrpimp'] = "ImportĂĄlĂĄsi MĂłd"; -$lang['wigrpt1'] = "Az idƑ mĂĄsodpercekben"; -$lang['wigrpt2'] = "Szervercsoport"; -$lang['wigrpt3'] = "ÁllandĂł Csoport"; -$lang['wigrptime'] = "Rang 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 => permanent flag

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['wigrptime3desc'] = "

Állandó Csoport
Ez lehetƑvĂ© teszi egy szervercsoport megjelölĂ©sĂ©t, amely nem lesz eltĂĄvolĂ­tva a következƑ rangemelĂ©snĂ©l. A rangsor, amelyet ezzel hatĂĄrozunk meg (= 'ON'), az ĂĄllandĂł marad a rangrendszer ĂĄltal.
AlapĂ©rtelmezĂ©s szerint (= 'OFF'). Az aktuĂĄlis szervercsoport eltĂĄvolĂ­tĂĄsra kerĂŒl, ha a felhasznĂĄlĂł magasabb rangot Ă©r el."; -$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "Ezzel meghatårozhatja az Access-Control-Allow-Origin fejlécet. Tovåbbi informåciót itt talål:
%s

Egyéni eredet engedélyezéséhez írja be az URL-t
Példa:
https://ts-ranksystem.com


TöbbfĂ©le eredet is meghatĂĄrozhatĂł. Ezt vesszƑvel vĂĄlassza el egymĂĄstĂłl.
Példa:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Engedélyezze, hogy ezt a fejlécet a 'nosniff' opcióra ållítsa."; -$lang['wiheaddesc'] = "Ezzel meghatårozhatja az %s fejlécet. Tovåbbi informåciót itt talål:
%s"; -$lang['wiheaddesc1'] = "VĂĄlassza a 'letiltva' lehetƑsĂ©get, ha nem szeretnĂ© beĂĄllĂ­tani a fejlĂ©cet a rangrendszer ĂĄltal."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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'] = "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['wihladm4'] = "FelhasznĂĄlĂł törlĂ©se"; -$lang['wihladm4desc'] = "VĂĄlasszon ki egy vagy több felhasznĂĄlĂłt, hogy törölje Ƒket a Ranksystem adatbĂĄzisbĂłl. A teljes felhasznĂĄlĂł eltĂĄvolĂ­tĂĄsra kerĂŒl, Ă©s minden mentett informĂĄciĂłban, pĂ©ldĂĄul az összegyƱjtött idƑkben.

A törlĂ©s nem Ă©rinti a TeamSpeak szervert. Ha a felhasznĂĄlĂł mĂ©g mindig lĂ©tezik a TS adatbĂĄzisban, akkor ez a funkciĂł nem törli."; -$lang['wihladm41'] = "TĂ©nyleg törölni szeretnĂ© a következƑ felhasznĂĄlĂłt?"; -$lang['wihladm42'] = "Figyelem: Nem ĂĄllĂ­thatĂłk vissza!"; -$lang['wihladm43'] = "Igen, törlĂ©s"; -$lang['wihladm44'] = "%s felhasznĂĄlĂł (UUID: %s; DBID: %s) nĂ©hĂĄny mĂĄsodperc alatt eltĂĄvolĂ­tĂĄsra kerĂŒl a Ranksystem adatbĂĄzisbĂłl (nĂ©zze meg a Ranksystem naplĂłjĂĄt)."; -$lang['wihladm45'] = "%s felhasznĂĄlĂł (UUID: %s; DBID: %s) törölve lett a RankSystem adatbĂĄzisĂĄbĂłl."; -$lang['wihladm46'] = "Admin funkciĂł kĂ©rĂ©sĂ©re."; -$lang['wihladmex'] = "AdatbĂĄzis-exportĂĄlĂĄs"; -$lang['wihladmex1'] = "Az adatbĂĄzis-exportĂĄlĂł feladat sikeresen lĂ©trehozva."; -$lang['wihladmex2'] = "MegjegyzĂ©s: %s A ZIP-tĂĄrolĂł jelszava az aktuĂĄlis TS3 Query-JelszĂł:"; -$lang['wihladmex3'] = "%s sikeresen törölve."; -$lang['wihladmex4'] = "Hiba törtĂ©nik a(z) %s fĂĄjl törlĂ©sekor. A fĂĄjl mĂ©g mindig lĂ©tezik, Ă©s megadjĂĄk a törlĂ©sĂŒkre vonatkozĂł engedĂ©lyeket?"; -$lang['wihladmex5'] = "fĂĄjl letöltĂ©se"; -$lang['wihladmex6'] = "fĂĄjlt törlĂ©se"; -$lang['wihladmex7'] = "SQL ExportĂĄlĂĄsa"; -$lang['wihladmexdesc'] = "Ezzel a funkciĂłval lĂ©trehozhat egy exportot / biztonsĂĄgi mĂĄsolatot a Ranksystem adatbĂĄzisbĂłl. KimenetkĂ©nt lĂ©trehoz egy SQL fĂĄjlt, amelyet ZIP-formĂĄtumban tömörĂ­tenek.

Az exportĂĄlĂĄshoz szĂŒksĂ©g lehet nĂ©hĂĄny percre, attĂłl fĂŒggƑen, hogy mekkora az adatbĂĄzis. MunkakĂ©nt fogja elvĂ©gezni a Ranksystem bot.
NE ĂĄllĂ­tsa le vagy indĂ­tsa Ășjra a Ranksystem Botot, amĂ­g a munka fut!

Az exportĂĄlĂĄs megkezdĂ©se elƑtt Ă©rdemes konfigurĂĄlnia a webszervert, a 'ZIP' Ă©s az 'SQL' fĂĄjlokat a naplĂłban (Webinterface -> EgyĂ©b -> Logpath) nem Ă©rhetik el az ĂŒgyfelek. Ez megvĂ©di az exportĂĄlĂĄst, mert Ă©rzĂ©keny adatok vannak benne, pĂ©ldĂĄul a TS3 Query hitelesĂ­tƑ adatai. A webszerver felhasznĂĄlĂłinak tovĂĄbbra is engedĂ©lyekre van szĂŒksĂ©gĂŒk ezekhez a fĂĄjlokhoz, hogy hozzĂĄfĂ©rhessenek ehhez a webinterfĂ©szrƑl!

A letöltĂ©s utĂĄn ellenƑrizze az SQL fĂĄjl utolsĂł sorĂĄt, hogy megbizonyosodjon arrĂłl, hogy a fĂĄjl teljesen meg van Ă­rva. Ennek a következƑknek kell lennie:
-- Finished export

PHP>> 7.2 verziĂł esetĂ©n az exportĂĄlĂł „ZIP” fĂĄjl jelszĂłval vĂ©dett lesz. JelszĂłkĂ©nt a TS3 lekĂ©rdezĂ©si jelszĂłt fogjuk hasznĂĄlni, amelyet a TeamSpeak beĂĄllĂ­tĂĄsaiban ĂĄllĂ­tott be.

ImportĂĄlja az SQL fĂĄjlt, ha szĂŒksĂ©ges, közvetlenĂŒl az adatbĂĄzisĂĄba. Ehhez hasznĂĄlhatja a phpMyAdmin alkalmazĂĄst, de erre nincs szĂŒksĂ©g. SQL-futtatĂĄsĂĄt az adatbĂĄzisban minden mĂłdon felhasznĂĄlhatja.
Legyen Ăłvatos az SQL fĂĄjl importĂĄlĂĄsĂĄval. Az importĂĄlĂĄs miatt a kivĂĄlasztott adatbĂĄzis összes meglĂ©vƑ adata törlƑdik."; -$lang['wihladmrs'] = "Munkafolyamat stĂĄtusz"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "elkĂ©szĂŒlt"; -$lang['wihladmrs10'] = "Munkafolyamat(ok) sikeresen megerƑsĂ­tve!"; -$lang['wihladmrs11'] = "BecsĂŒlt idƑ a munka befejezĂ©sĂ©ig"; -$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"; -$lang['wihladmrs15'] = "KĂ©rjĂŒk, vĂĄlasszon legalĂĄbb egy lehetƑsĂ©get!"; -$lang['wihladmrs16'] = "engedĂ©lyezve"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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['wiimpaddr'] = "CĂ­m"; -$lang['wiimpaddrdesc'] = "Írja be ide nevĂ©t Ă©s cĂ­mĂ©t.
Példåul:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Adjon meg egy URL-t a sajåt impresszum webhelyéhez.

Példåul:
https://site.url/imprint/

ÜresĂ­tse ki ezt a mezƑt, hogy a többi mezƑ hasznĂĄlatĂĄval megjelenĂ­tse az impresszumot a Ranksystem stats webhelyen."; -$lang['wiimpemail'] = "E-Mail cĂ­m"; -$lang['wiimpemaildesc'] = "Ide Ă­rja be e-mail cĂ­mĂ©t.
Példåul:
info@example.com
"; -$lang['wiimpnotes'] = "TovĂĄbbi informĂĄciĂł"; -$lang['wiimpnotesdesc'] = "Adjon ide tovĂĄbbi informĂĄciĂłkat, pĂ©ldĂĄul felelƑssĂ©g kizĂĄrĂĄsĂĄt.
Hagyja ĂŒresen a mezƑt, hogy ez a szakasz ne jelenjen meg.
HTML-kód a formåzås megengedett."; -$lang['wiimpphone'] = "Telefon"; -$lang['wiimpphonedesc'] = "Ide írja be telefonszåmåt a nemzetközi körzetszåmmal.
Példåul:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Ide írja be adatvédelmi irånyelveit (legfeljebb 21,588 karakter).
HTML-kód a formåzås megengedett."; -$lang['wiimpprivurl'] = "Adatvédelmi URL"; -$lang['wiimpprivurldesc'] = "Adjon meg egy URL-t a sajåt adatvédelmi irånyelvei webhelyéhez.

Példåul:
https://site.url/privacy/

Ha a többi mezƑt szeretnĂ© hasznĂĄlni az adatvĂ©delmi irĂĄnyelvek megjelenĂ­tĂ©sĂ©re a Ranksystem stats webhelyĂ©n, ĂŒrĂ­tse ki ezt a mezƑt."; -$lang['wiimpswitch'] = "Impresszum funkciĂł"; -$lang['wiimpswitchdesc'] = "AktivĂĄlja ezt a funkciĂłt az impresszum Ă©s az adatvĂ©delmi nyilatkozat (adatvĂ©delmi irĂĄnyelv) nyilvĂĄnos megjelenĂ­tĂ©sĂ©hez.."; -$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['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['winav13'] = "ÁltalĂĄnos (Stat.)"; -$lang['winav14'] = "Letiltotta a statisztikai oldal navigĂĄciĂłs sĂĄvjĂĄt. Érdemes beĂĄgyaznia a statisztikai oldalt egy IFrame kerettel egy mĂĄsik webhelybe? Akkor nĂ©zze meg ezt a GYIK-ot:"; -$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'] = "Ü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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "A Set-Cookie HTTP vĂĄlasz fejlĂ©c SameSite attribĂștuma lehetƑvĂ© teszi annak kijelentĂ©sĂ©t, hogy a cookie-t egy elsƑ fĂ©ltƑl vagy ugyanazon a webhelytƑl kell-e korlĂĄtozni. TovĂĄbbi informĂĄciĂłt itt talĂĄl:
%s

Itt hatĂĄrozhatja meg a SameSite attribĂștumot. Ezt csak a PHP 7.3 vagy Ășjabb verziĂłk tĂĄmogatjĂĄk."; -$lang['wishcol'] = "Oszlop megjelenĂ­tĂ©se/elrejtĂ©se"; -$lang['wishcolat'] = "aktĂ­v idƑ"; -$lang['wishcoldesc'] = "Kapcsolja be ezt az oszlopot 'be' vagy 'ki', hogy megjelenĂ­tse vagy elrejtse a statisztikai oldalon.

Ez lehetƑvĂ© teszi a List Rankup (stats/list_rankup.php) egyĂ©ni konfigurĂĄlĂĄsĂĄt."; -$lang['wishcolha'] = "hash IP cĂ­mek"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "online idƑ"; -$lang['wishdef'] = "AlapĂ©rtelmezett oszloprendezĂ©s"; -$lang['wishdef2'] = "2. oszlop rendezĂ©s"; -$lang['wishdef2desc'] = "HatĂĄrozza meg a mĂĄsodik rendezĂ©si szintet a Lista rangsorolĂĄsa oldalhoz."; -$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'] = "SzerverhasznĂĄlati grafikon"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "VĂĄlassza ki, hogy mely statisztikĂĄk jelenjenek meg a szerverhasznĂĄlati grafikonon a 'stats/' oldalon.

AlapĂ©rtelmezĂ©s szerint az összes statisztika lĂĄthatĂł. SzĂŒksĂ©g esetĂ©n elrejthet nĂ©hĂĄny statisztikĂĄt."; -$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['wishsort2'] = "2. rendezĂ©si sorrend"; -$lang['wishsort2desc'] = "Ez meghatĂĄrozza a mĂĄsodik szintƱ rendezĂ©s sorrendjĂ©t."; -$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['wistyle'] = "egyĂ©ni stĂ­lus"; -$lang['wistyledesc'] = "MeghatĂĄrozzon egy eltĂ©rƑ, egyĂ©ni stĂ­lust a Ranksystem szĂĄmĂĄra.
Ez a stĂ­lus az statisztika oldalra Ă©s a webes felĂŒletre lesz hasznĂĄlva.

Helyezze el a sajåt stílust a 'style' könyvtår alkönyvtåråban.
Az alkönyvtår neve hatårozza meg a stílus nevét.

A 'TSN_' -el kezdƑdƑ stĂ­lusokat a Ranksystem biztosĂ­tja. Ezek frissĂ­tĂ©sekkel frissĂŒlnek.
Ezekben ne végezzen módosítåsokat!
Azonban ezek mintåul szolgålhatnak. Måsolja a stílust sajåt könyvtårba, hogy módosíthassa azt.

KĂ©t CSS fĂĄjl szĂŒksĂ©ges. Az egyik a statisztika oldalra, a mĂĄsik a webes felĂŒletre.
Tartalmazhat sajĂĄt JavaScriptet is. De ez opcionĂĄlis.

A CSS nevek konvenciĂłja:
- Fix 'ST.css' a statisztika oldalra (/stats/)
- Fix 'WI.css' a webes felĂŒlet oldalra (/webinterface/)


A JavaScript nevek konvenciĂłja:
- Fix 'ST.js' a statisztika oldalra (/stats/)
- Fix 'WI.js' a webes felĂŒlet oldalra (/webinterface/)


Ha szeretnĂ© elĂ©rhetƑvĂ© tenni a stĂ­lusĂĄt mĂĄsok szĂĄmĂĄra is, kĂŒldje el az alĂĄbbi e-mail cĂ­mre:

%s

BeleĂ©rtve a következƑ kiadĂĄsban!"; -$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['wits3pre'] = "Bot parancs elƑtag"; -$lang['wits3predesc'] = "A TeamSpeak szerveren a Ranksystem botot csevegĂ©s ĂștjĂĄn tudod elĂ©rni. AlapĂ©rtelmezĂ©s szerint a bot parancsokat kiugrĂłjel '!' jelöli. Az elƑtagot a bot parancsainak azonosĂ­tĂĄsĂĄra hasznĂĄljuk.

Ezt az elƑtagot bĂĄrmely mĂĄs kĂ­vĂĄnt elƑtaggal lehet helyettesĂ­teni. Erre lehet szĂŒksĂ©g, ha olyan botokat hasznĂĄlnak, amelyek hasonlĂł parancsokkal rendelkeznek.

Példåul a bot alapértelmezett parancsa így nézne ki:
!help


Ha az elƑtagot '#'-jelre cserĂ©lik, a parancs Ă­gy nĂ©zne ki:
#help
"; -$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
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
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'] = "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 + hozzåadva a Ranksystemhez.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Kulcs'; +$lang['apiperm001'] = 'Engedélyezze a Ranksystem Bot indítåsåt/leållítåsåt az API segítségével'; +$lang['apipermdesc'] = '(ON = Engedélyez ; OFF = Tilt)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'emelkedƑ'; +$lang['autooff'] = 'Automatikus indĂ­tĂĄs kikapcsolva'; +$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'] = '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['imprint'] = 'Impresszum'; +$lang['input'] = 'Input Value'; +$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'; +$lang['listgrps'] = 'MiĂłta'; +$lang['listnat'] = 'OrszĂĄg'; +$lang['listnick'] = 'BecenĂ©v'; +$lang['listnxsg'] = 'KövetkezƑ Szint'; +$lang['listnxup'] = 'HĂĄtralĂ©vƑ IdƑ'; +$lang['listpla'] = 'Platform'; +$lang['listrank'] = 'HelyezĂ©s'; +$lang['listseen'] = 'UtoljĂĄra Online'; +$lang['listsuma'] = 'Össz. AktĂ­v IdƑ'; +$lang['listsumi'] = 'Össz. InaktĂ­v IdƑ'; +$lang['listsumo'] = 'Össz. Online IdƑ'; +$lang['listuid'] = 'Unique ID'; +$lang['listver'] = 'Kliens verziĂł'; +$lang['login'] = 'BelĂ©pĂ©s'; +$lang['module_disabled'] = 'Ez a modul inaktĂ­v.'; +$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'] = '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['permission'] = 'EngedĂ©lyek'; +$lang['privacy'] = 'AdatvĂ©delmi irĂĄnyelvek'; +$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)'; +$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_pib'] = 'PiB'; +$lang['size_tib'] = 'TiB'; +$lang['size_yib'] = 'YiB'; +$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'] = 'KĂ©rjĂŒk, vĂĄrjon, amĂ­g az utolsĂł vĂĄltozĂĄsok hatĂĄlyba lĂ©pnek, mielƑtt megvĂĄltoztatja a következƑ dolgokat...'; +$lang['stag0008'] = 'Sikeresen elmentetted a csoportokat. NĂ©hĂĄny mĂĄsodperc mĂșlva megjelenik a szerveren.'; +$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'] = '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..'; +$lang['stag0018'] = 'A kivĂ©telezett szervercsoportok listĂĄja. Ha egy felhasznĂĄlĂł rendelkezik a szervercsoportok egyikĂ©vel, akkor nem fogja tudni hasznĂĄlni a kiegĂ©szĂ­tƑt.'; +$lang['stag0019'] = 'KivĂ©telezve vagy ebbƑl a funkciĂłbĂłl, mert ezzel a szervercsoporttal rendelkezel: %s (ID: %s).'; +$lang['stag0020'] = 'CĂ­m'; +$lang['stag0021'] = 'Adjon meg egy cĂ­met ennek a csoportnak. A cĂ­m a statisztikai oldalon is megjelenik.'; +$lang['stix0001'] = 'Szerver statisztika'; +$lang['stix0002'] = 'Összes felhasznĂĄlĂł'; +$lang['stix0003'] = 'RĂ©szletek megtekintĂ©se'; +$lang['stix0004'] = 'ÖsszesĂ­tett online idƑ'; +$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'] = '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'] = 'OrszĂĄgok (összesĂ­tve)'; +$lang['stix0019'] = 'OperĂĄciĂłs rendszerek (összesĂ­tve)'; +$lang['stix0020'] = 'Szerver ĂĄllapot'; +$lang['stix0023'] = 'Szerver stĂĄtusz'; +$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'] = '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'; +$lang['stix0036'] = 'SzervernĂ©v'; +$lang['stix0037'] = 'Szerver cĂ­m (IP : Port)'; +$lang['stix0038'] = 'Szerver jelszĂł'; +$lang['stix0039'] = 'Nincs (a szerver publikus)'; +$lang['stix0040'] = 'Igen (a szerver privĂĄt)'; +$lang['stix0041'] = 'Szerver ID'; +$lang['stix0042'] = 'Szerver platform'; +$lang['stix0043'] = 'Szerver verziĂł'; +$lang['stix0044'] = 'Szerver lĂ©trehozĂĄsĂĄnak dĂĄtuma (nn/hh/éééé)'; +$lang['stix0045'] = 'MegjelenĂ­tĂ©s a szerver listĂĄban'; +$lang['stix0046'] = 'AktivĂĄlva'; +$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'] = '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)'; +$lang['stix0055'] = 'az utolsĂł 24 ĂłrĂĄban'; +$lang['stix0056'] = 'az utolsĂł %s napban'; +$lang['stix0059'] = 'FelhasznĂĄlĂłk listĂĄzĂĄsa'; +$lang['stix0060'] = 'FelhasznĂĄlĂł'; +$lang['stix0061'] = 'Minden verziĂł megtekintĂ©se'; +$lang['stix0062'] = 'Minden nemzetisĂ©g megtekintĂ©se'; +$lang['stix0063'] = 'Minden platform megtekintĂ©se'; +$lang['stix0064'] = 'Az utolsĂł 90 napban'; +$lang['stmy0001'] = 'SajĂĄt statisztikĂĄm'; +$lang['stmy0002'] = 'HelyezĂ©s'; +$lang['stmy0003'] = 'AdatbĂĄzis ID:'; +$lang['stmy0004'] = 'Unique ID:'; +$lang['stmy0005'] = 'Összes csatlakozĂĄs:'; +$lang['stmy0006'] = 'Statisztika kezdƑ dĂĄtuma:'; +$lang['stmy0007'] = 'Online idƑ összesen:'; +$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Ƒ: LegendĂĄs'; +$lang['stmy0013'] = 'Mert az online idƑd %s Ăłra.'; +$lang['stmy0014'] = 'TeljesĂ­tve'; +$lang['stmy0015'] = 'Online idƑ: Arany'; +$lang['stmy0016'] = '% TeljesĂ­tve a LegendĂĄshoz'; +$lang['stmy0017'] = 'Online idƑ: EzĂŒst'; +$lang['stmy0018'] = '% TeljesĂ­tve az Aranyhoz'; +$lang['stmy0019'] = 'Online idƑ: Bronz'; +$lang['stmy0020'] = '% TeljesĂ­tve az EzĂŒsthöz'; +$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ĂĄsok: LegendĂĄs'; +$lang['stmy0025'] = 'Mert a csatlakozĂĄsaid szĂĄma %s.'; +$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['stmy0032'] = 'UtoljĂĄra kiszĂĄmĂ­tva:'; +$lang['stna0001'] = 'OrszĂĄgok'; +$lang['stna0002'] = 'Statisztika'; +$lang['stna0003'] = 'KĂłd'; +$lang['stna0004'] = 'szĂĄma'; +$lang['stna0005'] = 'VerziĂłk'; +$lang['stna0006'] = 'Platformok'; +$lang['stna0007'] = 'SzĂĄzalĂ©k'; +$lang['stnv0001'] = 'Szerver hĂ­rek'; +$lang['stnv0002'] = 'BezĂĄrĂĄs'; +$lang['stnv0003'] = 'Kliens informĂĄciĂłk frissĂ­tĂ©se'; +$lang['stnv0004'] = 'A frissĂ­tĂ©s hasznĂĄlata csak akkor szĂŒksĂ©ges ha mĂłdosĂ­tĂĄs törtĂ©nt. Pl: NĂ©vvĂĄltĂĄs.'; +$lang['stnv0005'] = 'A frissĂ­tĂ©s csak akkor mƱködik ha fel vagy csatlakozva jelenleg a szerverre'; +$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'] = '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.'; +$lang['stnv0022'] = 'Az oldal az adatokat egy kĂŒlsƑ adatbĂĄzisba viszi fel Ă©s hĂ­vja Ƒket meg, Ă­gy lehet egy pĂĄr perces eltĂ©rĂ©s a frissĂ­tĂ©sekre tekintettel.'; +$lang['stnv0023'] = 'A felhasznĂĄlĂłk online heti, havi idejĂ©t 15 percenkĂ©nt szĂĄmĂ­tja a rendszer. Az összes többi Ă©rtĂ©knek szinte Ă©lƑnek kell lennie (legfeljebb nĂ©hĂĄny mĂĄsodperc kĂ©sleltetĂ©s).'; +$lang['stnv0024'] = 'Ranksystem - Statisztika'; +$lang['stnv0025'] = 'MegjelenĂ­tĂ©s'; +$lang['stnv0026'] = 'összes'; +$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.'; +$lang['stnv0032'] = 'Tudsz rĂ©szletes szƱrĂ©snek megfelelƑen is keresni, errƑl mintĂĄt lentebb talĂĄlsz.'; +$lang['stnv0033'] = 'A szƱrƑ Ă©s a becenĂ©v kombinĂĄlĂĄsa lehetsĂ©ges. ElƑször add meg a szƱrƑt, majd a becenevet.'; +$lang['stnv0034'] = 'Emellett több szƱrƑt is kombinĂĄlhatsz, csak Ă­rd be Ƒket egymĂĄs utĂĄn.'; +$lang['stnv0035'] = 'PĂ©lda:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Csak azokat a klienseket jelenĂ­ti meg, amiket a bot nem szĂĄmol azaz kivĂ©tel alatt ĂĄllnak.'; +$lang['stnv0037'] = 'Csak azokat a klienseket jelenĂ­ti meg, akik nincsenek kivĂ©telben Ă©s a bot szĂĄmolja Ƒket.'; +$lang['stnv0038'] = 'Csak azokat a klienseket jelenĂ­ti meg, akik elĂ©rhetƑek a szerveren.'; +$lang['stnv0039'] = 'Csak azokat a klienseket jelenĂ­ti meg, akik nem elĂ©rhetƑek a szerveren.'; +$lang['stnv0040'] = 'Csak azokat a klienseket jelenĂ­ti meg, akik abban az adott kivĂĄlasztott csoportnak vannak.
CserĂ©ld ki a GROUPID rĂ©szt arra az ID-re amit szeretnĂ©l keresni pl: 110.'; +$lang['stnv0041'] = "DĂĄtum szerinti keresĂ©s, az utoljĂĄra online idƑnek megfelelƑen.
Cseréld ki a(z) OPERATOR szót '<' vagy '>' vagy '=' vagy '!='-ra.
És cserĂ©ld ki a(z) TIME szĂłt a megfelelƑ dĂĄtumra 'É-h-n Ó-p' (pĂ©lda: 2019-06-18 20-25)..
Teljes példa: filter:lastseen:>:2019-06-18 20-25:"; +$lang['stnv0042'] = 'Csak azokat a klienseket jeleníti meg, akik a kivålasztott orszågban vannak.
Cseréld ki a TS3-COUNTRY-CODE szót a kívånt orszågra..
A kĂłdok a(z) ISO 3166-1 alpha-2 szabvĂĄnynak felelnek meg.'; +$lang['stnv0043'] = 'Csatlakozz a szerverre!'; +$lang['stri0001'] = 'Ranksystem informĂĄciĂłk'; +$lang['stri0002'] = 'Mi is a Ranksystem?'; +$lang['stri0003'] = 'Egy script amely az online Ă©s aktĂ­v idƑnek megfelelƑen oszt ki kĂŒlönbözƑ csoportokat/szinteket. TovĂĄbbĂĄ informĂĄciĂłt gyƱjt ki a felhasznĂĄlĂłkrĂłl/a szerverrƑl Ă©s statisztikakĂ©nt megjelenĂ­ti. EzenkĂ­vĂŒl összegyƱjti a felhasznĂĄlĂł adatait Ă©s statisztikĂĄit, Ă©s megjelenĂ­ti az eredmĂ©nyt ezen az oldalon.'; +$lang['stri0004'] = 'Ki hozta lĂ©tre ezt a rendszert?'; +$lang['stri0005'] = 'Mikor lett lĂ©trehozva a rendszer?'; +$lang['stri0006'] = 'ElsƑ alfa kiadĂĄsi dĂĄtum: 05/10/2014.'; +$lang['stri0007'] = 'ElsƑ bĂ©ta kiadĂĄsi dĂĄtum: 01/02/2015.'; +$lang['stri0008'] = 'A verziĂł frissĂ­tĂ©seket a hivatalos weboldalon megtekintheted Ranksystem Website.'; +$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'] = '%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'] = '%s a cseh fordĂ­tĂĄshoz'; +$lang['stri0025'] = '%s a lengyel fordĂ­tĂĄshoz'; +$lang['stri0026'] = '%s a spanyol fordĂ­tĂĄshoz'; +$lang['stri0027'] = '%s a magyar fordĂ­tĂĄshoz'; +$lang['stri0028'] = '%s az azerbajdzsĂĄni fordĂ­tĂĄshoz'; +$lang['stri0029'] = '%s az impresszum funkciĂłhoz'; +$lang['stri0030'] = "%s a 'CosmicBlue' stĂ­lushoz a statisztika oldalhoz Ă©s a web felĂŒlethez"; +$lang['stta0001'] = 'ÖsszesĂ­tve'; +$lang['sttm0001'] = 'A hĂłnapban'; +$lang['sttw0001'] = 'Toplista'; +$lang['sttw0002'] = 'A hĂ©ten'; +$lang['sttw0003'] = '%s %s online idƑvel'; +$lang['sttw0004'] = 'Top 10 felhasznĂĄlĂł összehasonlĂ­tva'; +$lang['sttw0005'] = 'Ăłra (MeghatĂĄrozza a 100%-ot)'; +$lang['sttw0006'] = '%s Ăłra (%s%)'; +$lang['sttw0007'] = 'Top 10 Statisztika'; +$lang['sttw0008'] = 'Top 10 vs mindenki mĂĄs (online idƑben)'; +$lang['sttw0009'] = 'Top 10 vs mindenki mĂĄs (aktĂ­v idƑben)'; +$lang['sttw0010'] = 'Top 10 vs mindenki mĂĄs (inaktĂ­v idƑben)'; +$lang['sttw0011'] = 'Top 10 (ĂłrĂĄban)'; +$lang['sttw0012'] = 'Többi %s felhasznĂĄlĂł (ĂłrĂĄban)'; +$lang['sttw0013'] = '%s %s aktĂ­v idƑvel'; +$lang['sttw0014'] = 'Ăłra'; +$lang['sttw0015'] = 'perc'; +$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'] = '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'] = '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['unknown'] = 'unknown'; +$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'] = "\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 (-> 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'] = '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'] = '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'] = 'GyorsĂ­tĂł'; +$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.

Szervercsoport: VĂĄlassza ki azt a szervercsoportot, amely indĂ­tja el a lendĂŒletet.

Boost TĂ©nyezƑ: 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!

Tartam MĂĄsodpercben: 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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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'] = "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['wiexregrp'] = 'csoport eltĂĄvolĂ­tĂĄsa'; +$lang['wiexregrpdesc'] = "Ha egy felhasznĂĄlĂłt kizĂĄrnak a Ranksystem-bƑl, a Ranksystem ĂĄltal hozzĂĄrendelt szervercsoport eltĂĄvolĂ­tĂĄsra kerĂŒl.

A csoport csak a '".$lang['wiexres']."' a '".$lang['wiexres1']."'-al lesz eltĂĄvolĂ­tva. Minden mĂĄs mĂłdban a szervercsoport nem lesz eltĂĄvolĂ­tva.

Ez a funkciĂł csak akkor relevĂĄns, ha '".$lang['wiexuid']."' vagy '".$lang['wiexgrp']."' a '".$lang['wiexres1']."'-al egyĂŒtt hasznĂĄljĂĄk."; +$lang['wigrpimp'] = 'ImportĂĄlĂĄsi MĂłd'; +$lang['wigrpt1'] = 'Az idƑ mĂĄsodpercekben'; +$lang['wigrpt2'] = 'Szervercsoport'; +$lang['wigrpt3'] = 'ÁllandĂł Csoport'; +$lang['wigrptime'] = 'Rang 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 => permanent flag

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['wigrptime3desc'] = "

Állandó Csoport
Ez lehetƑvĂ© teszi egy szervercsoport megjelölĂ©sĂ©t, amely nem lesz eltĂĄvolĂ­tva a következƑ rangemelĂ©snĂ©l. A rangsor, amelyet ezzel hatĂĄrozunk meg (= 'ON'), az ĂĄllandĂł marad a rangrendszer ĂĄltal.
AlapĂ©rtelmezĂ©s szerint (= 'OFF'). Az aktuĂĄlis szervercsoport eltĂĄvolĂ­tĂĄsra kerĂŒl, ha a felhasznĂĄlĂł magasabb rangot Ă©r el."; +$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'Ezzel meghatårozhatja az Access-Control-Allow-Origin fejlécet. Tovåbbi informåciót itt talål:
%s

Egyéni eredet engedélyezéséhez írja be az URL-t
Példa:
https://ts-ranksystem.com


TöbbfĂ©le eredet is meghatĂĄrozhatĂł. Ezt vesszƑvel vĂĄlassza el egymĂĄstĂłl.
Példa:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Engedélyezze, hogy ezt a fejlécet a 'nosniff' opcióra ållítsa."; +$lang['wiheaddesc'] = 'Ezzel meghatårozhatja az %s fejlécet. Tovåbbi informåciót itt talål:
%s'; +$lang['wiheaddesc1'] = "VĂĄlassza a 'letiltva' lehetƑsĂ©get, ha nem szeretnĂ© beĂĄllĂ­tani a fejlĂ©cet a rangrendszer ĂĄltal."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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'] = '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['wihladm4'] = 'FelhasznĂĄlĂł törlĂ©se'; +$lang['wihladm4desc'] = 'VĂĄlasszon ki egy vagy több felhasznĂĄlĂłt, hogy törölje Ƒket a Ranksystem adatbĂĄzisbĂłl. A teljes felhasznĂĄlĂł eltĂĄvolĂ­tĂĄsra kerĂŒl, Ă©s minden mentett informĂĄciĂłban, pĂ©ldĂĄul az összegyƱjtött idƑkben.

A törlĂ©s nem Ă©rinti a TeamSpeak szervert. Ha a felhasznĂĄlĂł mĂ©g mindig lĂ©tezik a TS adatbĂĄzisban, akkor ez a funkciĂł nem törli.'; +$lang['wihladm41'] = 'TĂ©nyleg törölni szeretnĂ© a következƑ felhasznĂĄlĂłt?'; +$lang['wihladm42'] = 'Figyelem: Nem ĂĄllĂ­thatĂłk vissza!'; +$lang['wihladm43'] = 'Igen, törlĂ©s'; +$lang['wihladm44'] = '%s felhasznĂĄlĂł (UUID: %s; DBID: %s) nĂ©hĂĄny mĂĄsodperc alatt eltĂĄvolĂ­tĂĄsra kerĂŒl a Ranksystem adatbĂĄzisbĂłl (nĂ©zze meg a Ranksystem naplĂłjĂĄt).'; +$lang['wihladm45'] = '%s felhasznĂĄlĂł (UUID: %s; DBID: %s) törölve lett a RankSystem adatbĂĄzisĂĄbĂłl.'; +$lang['wihladm46'] = 'Admin funkciĂł kĂ©rĂ©sĂ©re.'; +$lang['wihladmex'] = 'AdatbĂĄzis-exportĂĄlĂĄs'; +$lang['wihladmex1'] = 'Az adatbĂĄzis-exportĂĄlĂł feladat sikeresen lĂ©trehozva.'; +$lang['wihladmex2'] = 'MegjegyzĂ©s: %s A ZIP-tĂĄrolĂł jelszava az aktuĂĄlis TS3 Query-JelszĂł:'; +$lang['wihladmex3'] = '%s sikeresen törölve.'; +$lang['wihladmex4'] = 'Hiba törtĂ©nik a(z) %s fĂĄjl törlĂ©sekor. A fĂĄjl mĂ©g mindig lĂ©tezik, Ă©s megadjĂĄk a törlĂ©sĂŒkre vonatkozĂł engedĂ©lyeket?'; +$lang['wihladmex5'] = 'fĂĄjl letöltĂ©se'; +$lang['wihladmex6'] = 'fĂĄjlt törlĂ©se'; +$lang['wihladmex7'] = 'SQL ExportĂĄlĂĄsa'; +$lang['wihladmexdesc'] = "Ezzel a funkciĂłval lĂ©trehozhat egy exportot / biztonsĂĄgi mĂĄsolatot a Ranksystem adatbĂĄzisbĂłl. KimenetkĂ©nt lĂ©trehoz egy SQL fĂĄjlt, amelyet ZIP-formĂĄtumban tömörĂ­tenek.

Az exportĂĄlĂĄshoz szĂŒksĂ©g lehet nĂ©hĂĄny percre, attĂłl fĂŒggƑen, hogy mekkora az adatbĂĄzis. MunkakĂ©nt fogja elvĂ©gezni a Ranksystem bot.
NE ĂĄllĂ­tsa le vagy indĂ­tsa Ășjra a Ranksystem Botot, amĂ­g a munka fut!

Az exportĂĄlĂĄs megkezdĂ©se elƑtt Ă©rdemes konfigurĂĄlnia a webszervert, a 'ZIP' Ă©s az 'SQL' fĂĄjlokat a naplĂłban (Webinterface -> EgyĂ©b -> Logpath) nem Ă©rhetik el az ĂŒgyfelek. Ez megvĂ©di az exportĂĄlĂĄst, mert Ă©rzĂ©keny adatok vannak benne, pĂ©ldĂĄul a TS3 Query hitelesĂ­tƑ adatai. A webszerver felhasznĂĄlĂłinak tovĂĄbbra is engedĂ©lyekre van szĂŒksĂ©gĂŒk ezekhez a fĂĄjlokhoz, hogy hozzĂĄfĂ©rhessenek ehhez a webinterfĂ©szrƑl!

A letöltĂ©s utĂĄn ellenƑrizze az SQL fĂĄjl utolsĂł sorĂĄt, hogy megbizonyosodjon arrĂłl, hogy a fĂĄjl teljesen meg van Ă­rva. Ennek a következƑknek kell lennie:
-- Finished export

PHP>> 7.2 verziĂł esetĂ©n az exportĂĄlĂł „ZIP” fĂĄjl jelszĂłval vĂ©dett lesz. JelszĂłkĂ©nt a TS3 lekĂ©rdezĂ©si jelszĂłt fogjuk hasznĂĄlni, amelyet a TeamSpeak beĂĄllĂ­tĂĄsaiban ĂĄllĂ­tott be.

ImportĂĄlja az SQL fĂĄjlt, ha szĂŒksĂ©ges, közvetlenĂŒl az adatbĂĄzisĂĄba. Ehhez hasznĂĄlhatja a phpMyAdmin alkalmazĂĄst, de erre nincs szĂŒksĂ©g. SQL-futtatĂĄsĂĄt az adatbĂĄzisban minden mĂłdon felhasznĂĄlhatja.
Legyen Ăłvatos az SQL fĂĄjl importĂĄlĂĄsĂĄval. Az importĂĄlĂĄs miatt a kivĂĄlasztott adatbĂĄzis összes meglĂ©vƑ adata törlƑdik."; +$lang['wihladmrs'] = 'Munkafolyamat stĂĄtusz'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'elkĂ©szĂŒlt'; +$lang['wihladmrs10'] = 'Munkafolyamat(ok) sikeresen megerƑsĂ­tve!'; +$lang['wihladmrs11'] = 'BecsĂŒlt idƑ a munka befejezĂ©sĂ©ig'; +$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'; +$lang['wihladmrs15'] = 'KĂ©rjĂŒk, vĂĄlasszon legalĂĄbb egy lehetƑsĂ©get!'; +$lang['wihladmrs16'] = 'engedĂ©lyezve'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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['wiimpaddr'] = 'CĂ­m'; +$lang['wiimpaddrdesc'] = 'Írja be ide nevĂ©t Ă©s cĂ­mĂ©t.
Példåul:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Adjon meg egy URL-t a sajåt impresszum webhelyéhez.

Példåul:
https://site.url/imprint/

ÜresĂ­tse ki ezt a mezƑt, hogy a többi mezƑ hasznĂĄlatĂĄval megjelenĂ­tse az impresszumot a Ranksystem stats webhelyen.'; +$lang['wiimpemail'] = 'E-Mail cĂ­m'; +$lang['wiimpemaildesc'] = 'Ide Ă­rja be e-mail cĂ­mĂ©t.
Példåul:
info@example.com
'; +$lang['wiimpnotes'] = 'TovĂĄbbi informĂĄciĂł'; +$lang['wiimpnotesdesc'] = 'Adjon ide tovĂĄbbi informĂĄciĂłkat, pĂ©ldĂĄul felelƑssĂ©g kizĂĄrĂĄsĂĄt.
Hagyja ĂŒresen a mezƑt, hogy ez a szakasz ne jelenjen meg.
HTML-kód a formåzås megengedett.'; +$lang['wiimpphone'] = 'Telefon'; +$lang['wiimpphonedesc'] = 'Ide írja be telefonszåmåt a nemzetközi körzetszåmmal.
Példåul:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Ide írja be adatvédelmi irånyelveit (legfeljebb 21,588 karakter).
HTML-kód a formåzås megengedett.'; +$lang['wiimpprivurl'] = 'Adatvédelmi URL'; +$lang['wiimpprivurldesc'] = 'Adjon meg egy URL-t a sajåt adatvédelmi irånyelvei webhelyéhez.

Példåul:
https://site.url/privacy/

Ha a többi mezƑt szeretnĂ© hasznĂĄlni az adatvĂ©delmi irĂĄnyelvek megjelenĂ­tĂ©sĂ©re a Ranksystem stats webhelyĂ©n, ĂŒrĂ­tse ki ezt a mezƑt.'; +$lang['wiimpswitch'] = 'Impresszum funkciĂł'; +$lang['wiimpswitchdesc'] = 'AktivĂĄlja ezt a funkciĂłt az impresszum Ă©s az adatvĂ©delmi nyilatkozat (adatvĂ©delmi irĂĄnyelv) nyilvĂĄnos megjelenĂ­tĂ©sĂ©hez..'; +$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['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['winav13'] = 'ÁltalĂĄnos (Stat.)'; +$lang['winav14'] = 'Letiltotta a statisztikai oldal navigĂĄciĂłs sĂĄvjĂĄt. Érdemes beĂĄgyaznia a statisztikai oldalt egy IFrame kerettel egy mĂĄsik webhelybe? Akkor nĂ©zze meg ezt a GYIK-ot:'; +$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'] = 'Ü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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'A Set-Cookie HTTP vĂĄlasz fejlĂ©c SameSite attribĂștuma lehetƑvĂ© teszi annak kijelentĂ©sĂ©t, hogy a cookie-t egy elsƑ fĂ©ltƑl vagy ugyanazon a webhelytƑl kell-e korlĂĄtozni. TovĂĄbbi informĂĄciĂłt itt talĂĄl:
%s

Itt hatĂĄrozhatja meg a SameSite attribĂștumot. Ezt csak a PHP 7.3 vagy Ășjabb verziĂłk tĂĄmogatjĂĄk.'; +$lang['wishcol'] = 'Oszlop megjelenĂ­tĂ©se/elrejtĂ©se'; +$lang['wishcolat'] = 'aktĂ­v idƑ'; +$lang['wishcoldesc'] = "Kapcsolja be ezt az oszlopot 'be' vagy 'ki', hogy megjelenĂ­tse vagy elrejtse a statisztikai oldalon.

Ez lehetƑvĂ© teszi a List Rankup (stats/list_rankup.php) egyĂ©ni konfigurĂĄlĂĄsĂĄt."; +$lang['wishcolha'] = 'hash IP cĂ­mek'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'online idƑ'; +$lang['wishdef'] = 'AlapĂ©rtelmezett oszloprendezĂ©s'; +$lang['wishdef2'] = '2. oszlop rendezĂ©s'; +$lang['wishdef2desc'] = 'HatĂĄrozza meg a mĂĄsodik rendezĂ©si szintet a Lista rangsorolĂĄsa oldalhoz.'; +$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'] = 'SzerverhasznĂĄlati grafikon'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "VĂĄlassza ki, hogy mely statisztikĂĄk jelenjenek meg a szerverhasznĂĄlati grafikonon a 'stats/' oldalon.

AlapĂ©rtelmezĂ©s szerint az összes statisztika lĂĄthatĂł. SzĂŒksĂ©g esetĂ©n elrejthet nĂ©hĂĄny statisztikĂĄt."; +$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['wishsort2'] = '2. rendezĂ©si sorrend'; +$lang['wishsort2desc'] = 'Ez meghatĂĄrozza a mĂĄsodik szintƱ rendezĂ©s sorrendjĂ©t.'; +$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['wistyle'] = 'egyĂ©ni stĂ­lus'; +$lang['wistyledesc'] = "MeghatĂĄrozzon egy eltĂ©rƑ, egyĂ©ni stĂ­lust a Ranksystem szĂĄmĂĄra.
Ez a stĂ­lus az statisztika oldalra Ă©s a webes felĂŒletre lesz hasznĂĄlva.

Helyezze el a sajåt stílust a 'style' könyvtår alkönyvtåråban.
Az alkönyvtår neve hatårozza meg a stílus nevét.

A 'TSN_' -el kezdƑdƑ stĂ­lusokat a Ranksystem biztosĂ­tja. Ezek frissĂ­tĂ©sekkel frissĂŒlnek.
Ezekben ne végezzen módosítåsokat!
Azonban ezek mintåul szolgålhatnak. Måsolja a stílust sajåt könyvtårba, hogy módosíthassa azt.

KĂ©t CSS fĂĄjl szĂŒksĂ©ges. Az egyik a statisztika oldalra, a mĂĄsik a webes felĂŒletre.
Tartalmazhat sajĂĄt JavaScriptet is. De ez opcionĂĄlis.

A CSS nevek konvenciĂłja:
- Fix 'ST.css' a statisztika oldalra (/stats/)
- Fix 'WI.css' a webes felĂŒlet oldalra (/webinterface/)


A JavaScript nevek konvenciĂłja:
- Fix 'ST.js' a statisztika oldalra (/stats/)
- Fix 'WI.js' a webes felĂŒlet oldalra (/webinterface/)


Ha szeretnĂ© elĂ©rhetƑvĂ© tenni a stĂ­lusĂĄt mĂĄsok szĂĄmĂĄra is, kĂŒldje el az alĂĄbbi e-mail cĂ­mre:

%s

BeleĂ©rtve a következƑ kiadĂĄsban!"; +$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['wits3pre'] = 'Bot parancs elƑtag'; +$lang['wits3predesc'] = "A TeamSpeak szerveren a Ranksystem botot csevegĂ©s ĂștjĂĄn tudod elĂ©rni. AlapĂ©rtelmezĂ©s szerint a bot parancsokat kiugrĂłjel '!' jelöli. Az elƑtagot a bot parancsainak azonosĂ­tĂĄsĂĄra hasznĂĄljuk.

Ezt az elƑtagot bĂĄrmely mĂĄs kĂ­vĂĄnt elƑtaggal lehet helyettesĂ­teni. Erre lehet szĂŒksĂ©g, ha olyan botokat hasznĂĄlnak, amelyek hasonlĂł parancsokkal rendelkeznek.

Példåul a bot alapértelmezett parancsa így nézne ki:
!help


Ha az elƑtagot '#'-jelre cserĂ©lik, a parancs Ă­gy nĂ©zne ki:
#help
"; +$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
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
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'] = '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.'; diff --git a/languages/core_it_Italiano_it.php b/languages/core_it_Italiano_it.php index 259ff9b..a5db514 100644 --- a/languages/core_it_Italiano_it.php +++ b/languages/core_it_Italiano_it.php @@ -1,708 +1,708 @@ - L'utente Ú stato aggiunto al sistema."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Consenti di avviare/fermare il bot di Ranksystem tramite API"; -$lang['apipermdesc'] = "(ON = Consenti ; OFF = Nega)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$lang['changedbid'] = "L'utente %s (unique Client-ID: %s) ha ottenuto un nuovo database-ID (%s). Aggiorna il vecchio Client-database-ID (%s) e resetta il tempo raggiunto!"; -$lang['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'] = "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."; -$lang['cleanno'] = "Non Ú stato rilevato nulla da cancellare..."; -$lang['cleanp'] = "tempo di pulitura del database"; -$lang['cleanpdesc'] = "Imposta il tempo che deve trascorrere alla prossima pulitura del database.

Imposta il tempo in secondi.

È consigliato eseguire la 'pulitura' del database almeno una volta al giorno, in quanto il tempo di 'pulitura' del database aumenta nel caso vi sia un database di grandi dimensioni."; -$lang['cleanrs'] = "Numero di utenti trovati nel database del Ranksystem: %s"; -$lang['cleants'] = "Numero di utenti trovati nel database di TeamSpeak: %s (of %s)"; -$lang['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!"; -$lang['errgrplist'] = "Errore nel ricevere servergrouplist: "; -$lang['errlogin'] = "Nome utente e/o password errati! Riprova..."; -$lang['errlogin2'] = "Protezione attacchi brute force: Riprova in %s secondi!"; -$lang['errlogin3'] = "Protezione attacchi brute force: Hai commesso troppi errori. Sei stato bannato per 5 minuti!"; -$lang['error'] = "Errore "; -$lang['errorts3'] = "Errore TS3: "; -$lang['errperm'] = "Controlla i permessi per la cartella '%s'!"; -$lang['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"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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!
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 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 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)"; -$lang['isntwidbmsg'] = "Errore del Database: "; -$lang['isntwidbname'] = "Nome DB:"; -$lang['isntwidbnamedesc'] = "Nome del database"; -$lang['isntwidbpass'] = "Password DB:"; -$lang['isntwidbpassdesc'] = "La Password per accedere al database"; -$lang['isntwidbtype'] = "Tipo DB:"; -$lang['isntwidbtypedesc'] = "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'] = "Utente DB:"; -$lang['isntwidbusrdesc'] = "Nome dell'utente che ha l'accesso al database"; -$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver"; -$lang['isntwiusr'] = "L'utente dell'interfaccia Web Ăš stato creato con successo."; -$lang['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"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "Nessuno (disabilitato)"; -$lang['listgrps'] = "Gruppo attuale da"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Nome Utente"; -$lang['listnxsg'] = "Prossimo Gruppo"; -$lang['listnxup'] = "Prossimo Rank Tra"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "Rank"; -$lang['listseen'] = "Ultima Volta Online"; -$lang['listsuma'] = "Somma del tempo di attivitĂ "; -$lang['listsumi'] = "Somma del tempo in IDLE"; -$lang['listsumo'] = "Somma del tempo Online"; -$lang['listuid'] = "Client-ID Univoco"; -$lang['listver'] = "client version"; -$lang['login'] = "Login"; -$lang['module_disabled'] = "This module is deactivated."; -$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'] = "Non sei idoneo per eseguire questo comando!"; -$lang['msg0004'] = "Il client %s (%s) ha richiesto uno shotdown."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Il client %s (%s) ha richiesto un %s."; -$lang['msg0008'] = "Controllo aggiornamenti completato. Se un aggiornamento Ăš disponibile, FunzionerĂ  immediatamente."; -$lang['msg0009'] = "Pulizia del database-utenti iniziata."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; -$lang['noentry'] = "Nessuna voce trovata.."; -$lang['pass'] = "Password"; -$lang['pass2'] = "Cambia la password"; -$lang['pass3'] = "vecchia password"; -$lang['pass4'] = "nuova password"; -$lang['pass5'] = "Password Dimenticata?"; -$lang['permission'] = "Permessi"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "ripetere"; -$lang['resettime'] = "Resetta il tempo online e in idle dell'utente %s (Client-ID univico: %s; Client-database-ID %s), perchĂš Ăš stato rimmosso perchĂš escluso."; -$lang['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)."; -$lang['setontime'] = "aggiungi tempo"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Per favore attendi finchĂš la tua modifica venga applicata prima di apportare nuove modifiche..."; -$lang['stag0008'] = "Mofiche del gruppo effettuate con successo. Potrebbe metterci alcuni secondi per essere attivo anche sul Ts3."; -$lang['stag0009'] = "Non puoi scegliere piĂč di %s gruppi nello stesso momento!"; -$lang['stag0010'] = "Per favore scegli almeno un gruppo."; -$lang['stag0011'] = "Limite gruppi simultanei: "; -$lang['stag0012'] = "Imposta gruppi"; -$lang['stag0013'] = "Addons ON/OFF"; -$lang['stag0014'] = "Imposta l'Addon su on (abilitato) o off (disabilitato).

nel disabilitare l'addon una parte della pagina stats/ potrebbe essere nascosta."; -$lang['stag0015'] = "Non Ăš possibile trovarti nel server TS3. %sClicca Qui%s per essere verificato."; -$lang['stag0016'] = "verification needed!"; -$lang['stag0017'] = "verificate here.."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Statistiche del server"; -$lang['stix0002'] = "Utenti totali"; -$lang['stix0003'] = "Vedi dettagli"; -$lang['stix0004'] = "Tempo online di tutti gli utenti / Totale"; -$lang['stix0005'] = "Vedi i migliori di sempre"; -$lang['stix0006'] = "Vedi i migliori del mese"; -$lang['stix0007'] = "Vedi i migliori della settimana"; -$lang['stix0008'] = "Utilizzo del server"; -$lang['stix0009'] = "Negli ultimi 7 giorni"; -$lang['stix0010'] = "Negli ultimi 30 giorni"; -$lang['stix0011'] = "Nelle ultime 24 ore"; -$lang['stix0012'] = "seleziona il periodo"; -$lang['stix0013'] = "Ultimo giorno"; -$lang['stix0014'] = "Ultima settimana"; -$lang['stix0015'] = "Ultimo mese"; -$lang['stix0016'] = "Tempo di attivitĂ /inattivitĂ  (di tutti gli utenti)"; -$lang['stix0017'] = "Versioni (di tutti gli utenti)"; -$lang['stix0018'] = "NazionalitĂ  (di tutti gli utenti)"; -$lang['stix0019'] = "Piattaforme (di tutti gli utenti)"; -$lang['stix0020'] = "Statistiche correnti"; -$lang['stix0023'] = "Stato del server"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Utenti (Online / Max)"; -$lang['stix0027'] = "Numero delle stanze"; -$lang['stix0028'] = "Ping medio del server"; -$lang['stix0029'] = "Totale byte ricevuti"; -$lang['stix0030'] = "Totale byte inviati"; -$lang['stix0031'] = "Tempo online del server"; -$lang['stix0032'] = "Prima di essere offline:"; -$lang['stix0033'] = "00 Giorni, 00 Ore, 00 Min, 00 Sec"; -$lang['stix0034'] = "Media Pacchetti persi"; -$lang['stix0035'] = "Statistiche complessive"; -$lang['stix0036'] = "Nome del server"; -$lang['stix0037'] = "Indirizzo del server (Indirizzo del server : Porta)"; -$lang['stix0038'] = "Password del server"; -$lang['stix0039'] = "Nessuna (Il server Ăš pubblico)"; -$lang['stix0040'] = "Si (Il server Ăš privato)"; -$lang['stix0041'] = "ID del server"; -$lang['stix0042'] = "Piattaforma del server"; -$lang['stix0043'] = "Versione del Server"; -$lang['stix0044'] = "Data di creazione del server (dd/mm/yyyy)"; -$lang['stix0045'] = "Inserito nella lista dei server"; -$lang['stix0046'] = "Attivato"; -$lang['stix0047'] = "Non attivato"; -$lang['stix0048'] = "Non vi sono ancora abbastanza informazioni..."; -$lang['stix0049'] = "Tempo online di tutti gli utenti / mese"; -$lang['stix0050'] = "Tempo online di tutti gli utenti / settimana"; -$lang['stix0051'] = "Il TeamSpeak non ha una data di creazione..."; -$lang['stix0052'] = "Altri"; -$lang['stix0053'] = "Tempo di AttivitĂ  (in Giorni)"; -$lang['stix0054'] = "Tempo di InattivitĂ  (in Giorni)"; -$lang['stix0055'] = "online nelle ultime 24 ore"; -$lang['stix0056'] = "online negli ultimi %s giorni"; -$lang['stix0059'] = "Lista degli utenti"; -$lang['stix0060'] = "Utenti"; -$lang['stix0061'] = "Visualizza tutte le versioni"; -$lang['stix0062'] = "Viaualizza tutte le nazionalitĂ "; -$lang['stix0063'] = "Visualizza tutte le piattaforme"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "Le mie statistiche"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "ID Univoco:"; -$lang['stmy0005'] = "Connessioni totali al server:"; -$lang['stmy0006'] = "Data di inzio statistiche:"; -$lang['stmy0007'] = "Tempo totale online:"; -$lang['stmy0008'] = "Tempo online negli ultimi %s giorni:"; -$lang['stmy0009'] = "Tempo di attivitĂ  negli ultimi %s giorni:"; -$lang['stmy0010'] = "Obbiettivi completati:"; -$lang['stmy0011'] = "Progresso obbiettivo tempo online"; -$lang['stmy0012'] = "Tempo: Leggendario"; -$lang['stmy0013'] = "PerchĂ© hai raggiunto il tempo online di %s ore."; -$lang['stmy0014'] = "Completato"; -$lang['stmy0015'] = "Tempo: Oro"; -$lang['stmy0016'] = "% Completato per il raggiungimento del livello 'Leggendario'"; -$lang['stmy0017'] = "Tempo: Argento"; -$lang['stmy0018'] = "% Completato per il raggiungimento del livello 'Oro'"; -$lang['stmy0019'] = "Tempo: Bronzo"; -$lang['stmy0020'] = "% Completato per il raggiungimento del livello 'Argento'"; -$lang['stmy0021'] = "Tempo: Non Classificato"; -$lang['stmy0022'] = "% Completato per il raggiungimento del livello 'Bronzo'"; -$lang['stmy0023'] = "Progresso obbiettivo connessioni"; -$lang['stmy0024'] = "Connessioni: Leggendario"; -$lang['stmy0025'] = "PerchĂš ti sei connesso %s volte al server."; -$lang['stmy0026'] = "Connessioni: Oro"; -$lang['stmy0027'] = "Connessioni: Argento"; -$lang['stmy0028'] = "Connessioni: Bronzo"; -$lang['stmy0029'] = "Connessioni: Non Classificato"; -$lang['stmy0030'] = "Progresso prossimo gruppo"; -$lang['stmy0031'] = "Tempo di attivitĂ  totale:"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "NazionalitĂ "; -$lang['stna0002'] = "statistiche"; -$lang['stna0003'] = "Codice"; -$lang['stna0004'] = "Contati"; -$lang['stna0005'] = "Versioni"; -$lang['stna0006'] = "Piattaforme"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "News del server"; -$lang['stnv0002'] = "Chiudi"; -$lang['stnv0003'] = "Aggiorna le informazioni utente"; -$lang['stnv0004'] = "Aggiorna solamente quando vengono modificate le informazioni su TS3, come ad esempio un cambio del nome od un nuovo collegamento"; -$lang['stnv0005'] = "Funziona solamente se sei connesso al server TS3 in contemporaneo (devi avere TeamSpeak aperto ed essere collegato con la tua identitĂ  per vedere le tue statistiche)"; -$lang['stnv0006'] = "Aggiorna"; -$lang['stnv0016'] = "Non disponibile"; -$lang['stnv0017'] = "Non sei connesso al server TeamSpeak, perciĂČ non potrai vedere le tue statistiche personali."; -$lang['stnv0018'] = "Per favore connettiti al server TeamSpeak e ricarica questa sessione premendo il pulsante blu in alto a destra."; -$lang['stnv0019'] = "Le mie statistiche - contenuto della pagina"; -$lang['stnv0020'] = "Questa pagina contiene un sommario generale delle tue statistiche personali e le attivitĂ  nel server."; -$lang['stnv0021'] = "Queste informazioni sono state inserite dal primo avvio del Ranksystem e non dall'inizio del server TeamSpeak."; -$lang['stnv0022'] = "Questa pagina riceve i dati dal database. PerciĂČ potrebbe avere un lieve ritardo nel ricevere le informazioni."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistiche"; -$lang['stnv0025'] = "Inserimenti limitati"; -$lang['stnv0026'] = "tutti"; -$lang['stnv0027'] = "Le informazioni su questo sito potrebbero NON essere aggiornate in quanto sembra che il Ranksystem non sia connesso al server TeamSpeak."; -$lang['stnv0028'] = "(Non sei connesso al TS3!)"; -$lang['stnv0029'] = "Lista Utenti"; -$lang['stnv0030'] = "Informazioni Ranksystem"; -$lang['stnv0031'] = "Nel campo di ricerca potrai inserire un nome utente, un Client-ID o un Client-database-ID."; -$lang['stnv0032'] = "Potrai inoltre filtrare i risultati (vedi sotto). Puoi inserire i filtri nel campo di ricerca."; -$lang['stnv0033'] = "La ricerca di utenti combinata a dei filtri Ăš possible. Inserire prima il filtro e successivamente nome utente o ID."; -$lang['stnv0034'] = "È inoltre possibile combinare diversi filtri. Inseriscili consecutivamente nel campo di ricerca."; -$lang['stnv0035'] = "Esempio:
filtro:non esclusi:Utente Teamspeak"; -$lang['stnv0036'] = "Mostra solo gli utenti che sono esclusi (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Mostra solo gli utenti che non sono esclusi."; -$lang['stnv0038'] = "Mostra solo gli utenti online."; -$lang['stnv0039'] = "Mostra solo gli utenti offline"; -$lang['stnv0040'] = "Mostra solo gli utenti che sono in un determinato Server Group. Rappresentano il rank attuale.
Sostituisci qui GROUPID."; -$lang['stnv0041'] = "Mostra solo gli utenti selezionati per ultima visita effettuata.
Replace OPERATOR con '<' or '>' or '=' or '!='.
E Sostituisci qui TIME con formato data 'Y-m-d H-i' (example: 2016-06-18 20-25).
Esempio: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Mostra solo gli utenti di un determinato paese.
Sostituisci qui TS3-COUNTRY-CODE e il codice del paese.
Per la lista dei codici google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "Connettiti al Ts3"; -$lang['stri0001'] = "Informazioni sul Ranksystem"; -$lang['stri0002'] = "Che cos'Ăš il ranksystem?"; -$lang['stri0003'] = "E' un bot di Ts3, che automaticamente attribuisce i rank (servergroups) agli utenti su un TeamSpeak 3 per il tempo trascorso online o di attivitĂ  online. Inoltre raccoglie informazioni e statistiche sull’utente e sul server mostrandoli sul sito."; -$lang['stri0004'] = "Chi ha creato il Ranksystem?"; -$lang['stri0005'] = "Quando Ăš stato creato?"; -$lang['stri0006'] = "Prima Alpha: 05/10/2014."; -$lang['stri0007'] = "Prima Beta: 01/02/2015."; -$lang['stri0008'] = "Puoi trovare l'ultima versione nel sito web del Ranksystem."; -$lang['stri0009'] = "Com'Ăš stato creato il RankSystem?"; -$lang['stri0010'] = "Che linguaggio Ăš stato utilizzato"; -$lang['stri0011'] = "Utilizza inoltre le seguenti librerie:"; -$lang['stri0012'] = "Un ringraziamento speciale a:"; -$lang['stri0013'] = "%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'] = "%s per la traduzione ceca"; -$lang['stri0025'] = "%s per la traduzione polacca"; -$lang['stri0026'] = "%s per la traduzione spagnola"; -$lang['stri0027'] = "%s per la traduzione ungherese"; -$lang['stri0028'] = "%s per la traduzione azera"; -$lang['stri0029'] = "%s per la funzione di stampa"; -$lang['stri0030'] = "%s per lo stile 'CosmicBlue' per la pagina delle statistiche e l'interfaccia web"; -$lang['stta0001'] = "Di sempre"; -$lang['sttm0001'] = "Del mese"; -$lang['sttw0001'] = "Top utenti"; -$lang['sttw0002'] = "Della settimana"; -$lang['sttw0003'] = "con %s %s di tempo online"; -$lang['sttw0004'] = "Top 10 a confronto"; -$lang['sttw0005'] = "Ore (Definisce il 100 %)"; -$lang['sttw0006'] = "%s ore (%s%)"; -$lang['sttw0007'] = "Top 10 Statistiche"; -$lang['sttw0008'] = "Top 10 vs Altri utenti in tempo online"; -$lang['sttw0009'] = "Top 10 vs Altri utenti in tempo di attivitĂ "; -$lang['sttw0010'] = "Top 10 vs Altri utenti in tempo di inattivitĂ "; -$lang['sttw0011'] = "Top 10 (in ore)"; -$lang['sttw0012'] = "Gli altri %s utenti (in ore)"; -$lang['sttw0013'] = "con %s %s di tempo attivo"; -$lang['sttw0014'] = "ore"; -$lang['sttw0015'] = "minuti"; -$lang['stve0001'] = "\nSalve %s,\nPer essere verificato nel RankSystem clicca il link qui sotto:\n[B]%s[/B]\n\nSe il link non funziona, puoi inserire il token manualmente:\n%s\n\nSe non hai eseguito tu questa richiesta, allora ignora questo messaggio. Se stai ricevendo questo messaggio varie volte, contatta un Admin."; -$lang['stve0002'] = "Un messaggio contenente il token ti Ăš stato inviato in chat privata sul server Ts3."; -$lang['stve0003'] = "Inserisci il token che hai ricevuto nel server Ts3. Se non hai ricevuto il messaggio, assicurati di aver selezionato l'Unique ID corretto."; -$lang['stve0004'] = "Il token inserito Ăš errato! Per favore reinseriscilo."; -$lang['stve0005'] = "Congratulazioni, sei stato verificato con successo! Ora puoi continuare.."; -$lang['stve0006'] = "C'Ăš stato un errore sconosciuto. Per favore riprova. Se ricapita contatta un amministratore."; -$lang['stve0007'] = "Verifica sul server TeamSpeak"; -$lang['stve0008'] = "Scegli qui il tuo Unique ID del server Ts3 per verificarti."; -$lang['stve0009'] = " -- Seleziona -- "; -$lang['stve0010'] = "Riceverai un token sul server Teamspeak3, il quale devi inserire qui:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verifica"; -$lang['time_day'] = "Giorno(i)"; -$lang['time_hour'] = "Ora(e)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$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"; -$lang['upgrp0003'] = "Errore nello scrivere l'icona del server."; -$lang['upgrp0004'] = "Errore nel scaricare la nuova icona del server dal server TS3: "; -$lang['upgrp0005'] = "Errore nell'eliminare l'icona del server."; -$lang['upgrp0006'] = "L'icona del server Ăš stata eliminata dal server TS3, ora Ăš eliminata anche dal Ranksystem."; -$lang['upgrp0007'] = "Errore nello scrivere l'icona del servergroup %s con l'ID %s."; -$lang['upgrp0008'] = "Errore nello scaricare l'icona del servergroup %s con l'ID %s: "; -$lang['upgrp0009'] = "Errore nell'eliminare l'icona del server group %s con l'ID %s."; -$lang['upgrp0010'] = "l'icona del servergroup %s con l'ID %s Ăš stata rimossa dal server TS3, ora Ăš eliminata anche dal Ranksystem."; -$lang['upgrp0011'] = "Scaricando la nuova ServerGroupIcon pwe il gruppo %s con l'ID: %s"; -$lang['upinf'] = "È stata trovata una versione piu recente del RankSystem. Informa gli utenti del server..."; -$lang['upinf2'] = "Il RankSystem Ăš stato aggiornato di recente (%s). Controlla il %sChangelog%s per maggiori informazioni sui cambiamenti."; -$lang['upmsg'] = "\nHey, Una nuova versione del [B]Ranksystem[/B] Ăš disponibile!\n\nVersione corrente: %s\n[B]Nuova Versione: %s[/B]\n\nPer maggiori informazioni visita il nostro sito [URL]%s[/URL].\n\nPer iniziare l'aggiornamento in background. [B]Controlla ranksystem.log![/B]"; -$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%s[/URL]."; -$lang['upusrerr'] = "Il Client-ID Univoco %s non Ăš stato trovato sul TeamSpeak!"; -$lang['upusrinf'] = "L'utente %s Ăš stato informato correttamente."; -$lang['user'] = "Nome Utente"; -$lang['verify0001'] = "Assicurati di essere realmente connesso al server TS3!"; -$lang['verify0002'] = "Entra, se non l'hai giĂ  fatto, nel %sverification-channel%s!"; -$lang['verify0003'] = "Se sei giĂ  connesso al server TS3, Contatta un amministratore.
L'amministratore deve creare un canale di verifica nel server TS3. Poi, Il canale deve essere impostato nel RankSystem, ciĂČ puĂČ essere fatto solo da un amministratore.
Maggiori informazioni possono essere trovate nella pagina di amministrazione (-> stats page) del Ranksystem.

Senza ciĂČ non possiamo verificarti nel Ranksystem! Scusa :("; -$lang['verify0004'] = "Nessun utente nel canale di verifica trovato..."; -$lang['wi'] = "Interfaccia Web"; -$lang['wiaction'] = "Azione"; -$lang['wiadmhide'] = "Nascondi clients esclusi"; -$lang['wiadmhidedesc'] = "Per nascondere i clients esclusi dalla lista"; -$lang['wiadmuuid'] = "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['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['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!"; -$lang['wibot4'] = "Avvia / Arresta il Bot Ranksystem"; -$lang['wibot5'] = "Avvia il Bot"; -$lang['wibot6'] = "Arresta il Bot"; -$lang['wibot7'] = "Riavvia il Bot"; -$lang['wibot8'] = "Log Ranksystem (estrai):"; -$lang['wibot9'] = "Compila tutti i campi obbligatori prima di avviare il bot Ranksystem!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "Resetta il tempo online di un utente se il suo database-ID Ăš cambiato.
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'] = "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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$lang['widelcldgrpdesc'] = "Il Ranksystem memorizzerĂ  il servergroup assegnato, cosĂŹ che non sia piĂč necessario eseguire continuamente il worker.php.

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

Questa funzione puĂČ essere molto utile, quando un utente non Ăš in un servergroup, Gli puĂČ essere attribuito il tempo online.

Attenzione: Eseguilo solo quando sei sicuro che non vi sia un aumento di rank per l'utente! Altrimenti il Ranksystem non potrĂ  rimuovere il precedente servergroup in quanto non Ăš memorizzato ;-)"; -$lang['widelsg'] = "rimosso(i) dal servergroup"; -$lang['widelsgdesc'] = "Scegli se agli utenti venga rimosso anche l'ultimo servergroup conosciuto, quando cancelli gli utenti dal database del Ranksystem.

ConsidererĂ  solamente i servergroup riguardanti il Ranksystem"; -$lang['wiexcept'] = "Exceptions"; -$lang['wiexcid'] = "Eccezione Stanze"; -$lang['wiexciddesc'] = "Inserisci gli ID delle stanze dove non verrĂ  conteggiato il tempo del Rank.

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

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

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

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

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


L'esclusione dei canali non c'entra qui, perchĂš il tempo sarĂ  sempre ignorato (come la modalitĂ  'Ferma il tempo')."; -$lang['wiexuid'] = "Eccezione degli utenti"; -$lang['wiexuiddesc'] = "Lista degli utenti (ID Univoco) che non verranno contati dal Ranksystem (separati da virgola. es 5GFxciykQMojlrvugWti835Wdto=,YQf+7x/4LJ2Tw5cuQGItsVEn+S4=)
Questi utentiverranno ignorati."; -$lang['wiexregrp'] = "rimuovi gruppo"; -$lang['wiexregrpdesc'] = "Se un utente viene escluso dal Ranksystem, il gruppo di server assegnato dal Ranksystem verrĂ  rimosso.

Il gruppo verrĂ  rimosso solo con il '".$lang['wiexres']."' con il '".$lang['wiexres1']."'. In tutti gli altri modi, il gruppo di server non verrĂ  rimosso.

Questa funzione Ăš rilevante solo in combinazione con un '".$lang['wiexuid']."' o un '".$lang['wiexgrp']."' in combinazione con il '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "Definisci Rankup"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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!"; -$lang['wihladm1'] = "aggiungi tempo"; -$lang['wihladm2'] = "rimuovere il 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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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Ă ."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Path dei Log"; -$lang['wilogdesc'] = "La path dei log del RankSystem.

Esempio:
/var/logs/ranksystem/

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

Potrete utilizzare i BB-code di un comunissimo messaggio .
%s

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

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

Puoi usare le funzioni base html per modificare il layout

Esempio:
<b> - per grassetto
<u> - per sottolineato
<i> - per italico
<br> - per andata a capo (new line)"; -$lang['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "Database"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "Altri"; -$lang['winav5'] = "Messaggio"; -$lang['winav6'] = "Pagina delle Statistiche"; -$lang['winav7'] = "Amministra"; -$lang['winav8'] = "Avvia / Arresta il Bot"; -$lang['winav9'] = "Aggiornamento disponibile!"; -$lang['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['winxmsg2'] = "Messaggio (Maggiore)"; -$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. 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]"; -$lang['wirtpw5'] = "E' stato inviato a TeamSpeak3 un messaggio privato all'amministratore con la nuova password."; -$lang['wirtpw6'] = "La password della webinterface Ăš stata resettata con successo. Richiesta dall' IP %s."; -$lang['wirtpw7'] = "Resetta la Password"; -$lang['wirtpw8'] = "Qui puoi resettare la password dell'interfaccia web."; -$lang['wirtpw9'] = "I seguenti campi sono necessari per resettare la password:"; -$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "Tempo AttivitĂ "; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "Tempo Online"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; -$lang['wishexcld'] = "Eccetto gli utenti"; -$lang['wishexclddesc'] = "Mostra gli utenti in list_rankup.php,
Chi Ăš escluso dai rank non partecipa alla lista."; -$lang['wishexgrp'] = "Eccetto i Servergroups"; -$lang['wishexgrpdesc'] = "Mostra gli utenti in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem."; -$lang['wishhicld'] = "Utenti col massimo rank"; -$lang['wishhiclddesc'] = "Mostra gli utenti in list_rankup.php, che hanno raggiunto il piĂč elevato rank nel Ranksystem."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "stile personalizzato"; -$lang['wistyledesc'] = "Definisci uno stile personalizzato per il sistema di classifica.
Questo stile verrĂ  utilizzato per la pagina statistiche e l'interfaccia web.

Inserisci il tuo stile nella cartella 'style' in una sottocartella.
Il nome della sottocartella determinerĂ  il nome dello stile.

Gli stili che iniziano con 'TSN_' sono forniti dal sistema di classifica. Verranno aggiornati con le future versioni.
Non dovresti quindi apportare modifiche a questi.
Tuttavia, puoi utilizzarli come modello. Copia lo stile in una cartella separata per apportare modifiche.

Sono richiesti due file CSS. Uno per la pagina statistiche e uno per l'interfaccia web.
È possibile anche includere un JavaScript personalizzato, ma questo Ú opzionale.

Convenzione dei nomi per CSS:
- Fissare 'ST.css' per la pagina statistiche (/stats/)
- Fissare 'WI.css' per la pagina dell'interfaccia web (/webinterface/)


Convenzione dei nomi per JavaScript:
- Fissare 'ST.js' per la pagina statistiche (/stats/)
- Fissare 'WI.js' per la pagina dell'interfaccia web (/webinterface/)


Se vuoi condividere il tuo stile con gli altri, puoi inviarlo all'indirizzo e-mail seguente:

%s

Lo includeremo nella prossima versione!"; -$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['wisvres'] = "Dovrai riavviare il Ranksystem affinché i cambiamenti vengano applicati!"; -$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['wits3pre'] = "Prefisso del comando del bot"; -$lang['wits3predesc'] = "Sul server di TeamSpeak puoi comunicare con il bot Ranksystem tramite chat. Di default, i comandi del bot sono contrassegnati con un punto esclamativo '!'. Il prefisso viene utilizzato per identificare i comandi del bot come tali.

Questo prefisso puĂČ essere sostituito con qualsiasi altro prefisso desiderato. CiĂČ puĂČ essere necessario se si stanno utilizzando altri bot con comandi simili.

Ad esempio, il comando predefinito del bot sarebbe:
!help


Se si sostituisce il prefisso con '#', il comando apparirĂ  come segue:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "Password della query di Teamspeak (di norma viene creata al primo avvio di Teamspeak, guarda qui per modificarla: CHANGE QUERY PASSWORD
."; -$lang['wits3querusr'] = "TS3 - Utente della Query"; -$lang['wits3querusrdesc'] = "Il nome utente della Query scelta
Di default Ăš serveradmin
Ma se preferisci potrai creare un ulteriore query solo per il Ranksystem.
Per vedere i permessi necessari alla Query guarda:
%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['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"; -$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['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'] = "Inserisci l'ID del canale di verifica.

Questo canale va impostato manualmente nel tuo server Teamspeak. Nome, permessi e altre proprietĂ  possono essere impostati a tua scelta; Solo gli utenti potranno entrare in questo canale!

La verifica va fatta dall'utente nella sua pagina delle informazioni (/stats/). Questo Ăš necessario solo se i visitatori della pagina web non possono essere direttamente associati al profilo del server Teamspeak.

Per essere verificato l'utente deve essere all'interno del canale di verifica sul server Teamspeak. Qui riceverĂ  un token per la sua pagina delle statistiche."; -$lang['wivlang'] = "Lingua"; -$lang['wivlangdesc'] = "Scegli la lingua di default del Ranksystem.

La lingua Ăš inoltre selezionabile dal sito e viene salvata per tutta la sessione."; -?> \ No newline at end of file + L'utente Ăš stato aggiunto al sistema."; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Consenti di avviare/fermare il bot di Ranksystem tramite API'; +$lang['apipermdesc'] = '(ON = Consenti ; OFF = Nega)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$lang['changedbid'] = "L'utente %s (unique Client-ID: %s) ha ottenuto un nuovo database-ID (%s). Aggiorna il vecchio Client-database-ID (%s) e resetta il tempo raggiunto!"; +$lang['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'] = '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.'; +$lang['cleanno'] = 'Non Ú stato rilevato nulla da cancellare...'; +$lang['cleanp'] = 'tempo di pulitura del database'; +$lang['cleanpdesc'] = "Imposta il tempo che deve trascorrere alla prossima pulitura del database.

Imposta il tempo in secondi.

È consigliato eseguire la 'pulitura' del database almeno una volta al giorno, in quanto il tempo di 'pulitura' del database aumenta nel caso vi sia un database di grandi dimensioni."; +$lang['cleanrs'] = 'Numero di utenti trovati nel database del Ranksystem: %s'; +$lang['cleants'] = 'Numero di utenti trovati nel database di TeamSpeak: %s (of %s)'; +$lang['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!'; +$lang['errgrplist'] = 'Errore nel ricevere servergrouplist: '; +$lang['errlogin'] = 'Nome utente e/o password errati! Riprova...'; +$lang['errlogin2'] = 'Protezione attacchi brute force: Riprova in %s secondi!'; +$lang['errlogin3'] = 'Protezione attacchi brute force: Hai commesso troppi errori. Sei stato bannato per 5 minuti!'; +$lang['error'] = 'Errore '; +$lang['errorts3'] = 'Errore TS3: '; +$lang['errperm'] = "Controlla i permessi per la cartella '%s'!"; +$lang['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'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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!
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 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 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)"; +$lang['isntwidbmsg'] = 'Errore del Database: '; +$lang['isntwidbname'] = 'Nome DB:'; +$lang['isntwidbnamedesc'] = 'Nome del database'; +$lang['isntwidbpass'] = 'Password DB:'; +$lang['isntwidbpassdesc'] = 'La Password per accedere al database'; +$lang['isntwidbtype'] = 'Tipo DB:'; +$lang['isntwidbtypedesc'] = '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'] = 'Utente DB:'; +$lang['isntwidbusrdesc'] = "Nome dell'utente che ha l'accesso al database"; +$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver"; +$lang['isntwiusr'] = "L'utente dell'interfaccia Web Ăš stato creato con successo."; +$lang['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'; +$lang['listcldbid'] = 'Client-database-ID'; +$lang['listexcept'] = 'Nessuno (disabilitato)'; +$lang['listgrps'] = 'Gruppo attuale da'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Nome Utente'; +$lang['listnxsg'] = 'Prossimo Gruppo'; +$lang['listnxup'] = 'Prossimo Rank Tra'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'Rank'; +$lang['listseen'] = 'Ultima Volta Online'; +$lang['listsuma'] = 'Somma del tempo di attivitĂ '; +$lang['listsumi'] = 'Somma del tempo in IDLE'; +$lang['listsumo'] = 'Somma del tempo Online'; +$lang['listuid'] = 'Client-ID Univoco'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Login'; +$lang['module_disabled'] = 'This module is deactivated.'; +$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'] = 'Non sei idoneo per eseguire questo comando!'; +$lang['msg0004'] = 'Il client %s (%s) ha richiesto uno shotdown.'; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Il client %s (%s) ha richiesto un %s.'; +$lang['msg0008'] = 'Controllo aggiornamenti completato. Se un aggiornamento Ăš disponibile, FunzionerĂ  immediatamente.'; +$lang['msg0009'] = 'Pulizia del database-utenti iniziata.'; +$lang['msg0010'] = 'Run command !log to get more information.'; +$lang['msg0011'] = 'Cleaned group cache. Start loading groups and icons...'; +$lang['noentry'] = 'Nessuna voce trovata..'; +$lang['pass'] = 'Password'; +$lang['pass2'] = 'Cambia la password'; +$lang['pass3'] = 'vecchia password'; +$lang['pass4'] = 'nuova password'; +$lang['pass5'] = 'Password Dimenticata?'; +$lang['permission'] = 'Permessi'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'ripetere'; +$lang['resettime'] = "Resetta il tempo online e in idle dell'utente %s (Client-ID univico: %s; Client-database-ID %s), perchĂš Ăš stato rimmosso perchĂš escluso."; +$lang['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).'; +$lang['setontime'] = 'aggiungi tempo'; +$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_pib'] = 'PiB'; +$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'] = '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.'; +$lang['stag0007'] = 'Per favore attendi finchĂš la tua modifica venga applicata prima di apportare nuove modifiche...'; +$lang['stag0008'] = 'Mofiche del gruppo effettuate con successo. Potrebbe metterci alcuni secondi per essere attivo anche sul Ts3.'; +$lang['stag0009'] = 'Non puoi scegliere piĂč di %s gruppi nello stesso momento!'; +$lang['stag0010'] = 'Per favore scegli almeno un gruppo.'; +$lang['stag0011'] = 'Limite gruppi simultanei: '; +$lang['stag0012'] = 'Imposta gruppi'; +$lang['stag0013'] = 'Addons ON/OFF'; +$lang['stag0014'] = "Imposta l'Addon su on (abilitato) o off (disabilitato).

nel disabilitare l'addon una parte della pagina stats/ potrebbe essere nascosta."; +$lang['stag0015'] = 'Non Ăš possibile trovarti nel server TS3. %sClicca Qui%s per essere verificato.'; +$lang['stag0016'] = 'verification needed!'; +$lang['stag0017'] = 'verificate here..'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Statistiche del server'; +$lang['stix0002'] = 'Utenti totali'; +$lang['stix0003'] = 'Vedi dettagli'; +$lang['stix0004'] = 'Tempo online di tutti gli utenti / Totale'; +$lang['stix0005'] = 'Vedi i migliori di sempre'; +$lang['stix0006'] = 'Vedi i migliori del mese'; +$lang['stix0007'] = 'Vedi i migliori della settimana'; +$lang['stix0008'] = 'Utilizzo del server'; +$lang['stix0009'] = 'Negli ultimi 7 giorni'; +$lang['stix0010'] = 'Negli ultimi 30 giorni'; +$lang['stix0011'] = 'Nelle ultime 24 ore'; +$lang['stix0012'] = 'seleziona il periodo'; +$lang['stix0013'] = 'Ultimo giorno'; +$lang['stix0014'] = 'Ultima settimana'; +$lang['stix0015'] = 'Ultimo mese'; +$lang['stix0016'] = 'Tempo di attivitĂ /inattivitĂ  (di tutti gli utenti)'; +$lang['stix0017'] = 'Versioni (di tutti gli utenti)'; +$lang['stix0018'] = 'NazionalitĂ  (di tutti gli utenti)'; +$lang['stix0019'] = 'Piattaforme (di tutti gli utenti)'; +$lang['stix0020'] = 'Statistiche correnti'; +$lang['stix0023'] = 'Stato del server'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Utenti (Online / Max)'; +$lang['stix0027'] = 'Numero delle stanze'; +$lang['stix0028'] = 'Ping medio del server'; +$lang['stix0029'] = 'Totale byte ricevuti'; +$lang['stix0030'] = 'Totale byte inviati'; +$lang['stix0031'] = 'Tempo online del server'; +$lang['stix0032'] = 'Prima di essere offline:'; +$lang['stix0033'] = '00 Giorni, 00 Ore, 00 Min, 00 Sec'; +$lang['stix0034'] = 'Media Pacchetti persi'; +$lang['stix0035'] = 'Statistiche complessive'; +$lang['stix0036'] = 'Nome del server'; +$lang['stix0037'] = 'Indirizzo del server (Indirizzo del server : Porta)'; +$lang['stix0038'] = 'Password del server'; +$lang['stix0039'] = 'Nessuna (Il server Ăš pubblico)'; +$lang['stix0040'] = 'Si (Il server Ăš privato)'; +$lang['stix0041'] = 'ID del server'; +$lang['stix0042'] = 'Piattaforma del server'; +$lang['stix0043'] = 'Versione del Server'; +$lang['stix0044'] = 'Data di creazione del server (dd/mm/yyyy)'; +$lang['stix0045'] = 'Inserito nella lista dei server'; +$lang['stix0046'] = 'Attivato'; +$lang['stix0047'] = 'Non attivato'; +$lang['stix0048'] = 'Non vi sono ancora abbastanza informazioni...'; +$lang['stix0049'] = 'Tempo online di tutti gli utenti / mese'; +$lang['stix0050'] = 'Tempo online di tutti gli utenti / settimana'; +$lang['stix0051'] = 'Il TeamSpeak non ha una data di creazione...'; +$lang['stix0052'] = 'Altri'; +$lang['stix0053'] = 'Tempo di AttivitĂ  (in Giorni)'; +$lang['stix0054'] = 'Tempo di InattivitĂ  (in Giorni)'; +$lang['stix0055'] = 'online nelle ultime 24 ore'; +$lang['stix0056'] = 'online negli ultimi %s giorni'; +$lang['stix0059'] = 'Lista degli utenti'; +$lang['stix0060'] = 'Utenti'; +$lang['stix0061'] = 'Visualizza tutte le versioni'; +$lang['stix0062'] = 'Viaualizza tutte le nazionalitĂ '; +$lang['stix0063'] = 'Visualizza tutte le piattaforme'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'Le mie statistiche'; +$lang['stmy0002'] = 'Rank'; +$lang['stmy0003'] = 'Database ID:'; +$lang['stmy0004'] = 'ID Univoco:'; +$lang['stmy0005'] = 'Connessioni totali al server:'; +$lang['stmy0006'] = 'Data di inzio statistiche:'; +$lang['stmy0007'] = 'Tempo totale online:'; +$lang['stmy0008'] = 'Tempo online negli ultimi %s giorni:'; +$lang['stmy0009'] = 'Tempo di attivitĂ  negli ultimi %s giorni:'; +$lang['stmy0010'] = 'Obbiettivi completati:'; +$lang['stmy0011'] = 'Progresso obbiettivo tempo online'; +$lang['stmy0012'] = 'Tempo: Leggendario'; +$lang['stmy0013'] = 'PerchĂ© hai raggiunto il tempo online di %s ore.'; +$lang['stmy0014'] = 'Completato'; +$lang['stmy0015'] = 'Tempo: Oro'; +$lang['stmy0016'] = "% Completato per il raggiungimento del livello 'Leggendario'"; +$lang['stmy0017'] = 'Tempo: Argento'; +$lang['stmy0018'] = "% Completato per il raggiungimento del livello 'Oro'"; +$lang['stmy0019'] = 'Tempo: Bronzo'; +$lang['stmy0020'] = "% Completato per il raggiungimento del livello 'Argento'"; +$lang['stmy0021'] = 'Tempo: Non Classificato'; +$lang['stmy0022'] = "% Completato per il raggiungimento del livello 'Bronzo'"; +$lang['stmy0023'] = 'Progresso obbiettivo connessioni'; +$lang['stmy0024'] = 'Connessioni: Leggendario'; +$lang['stmy0025'] = 'PerchĂš ti sei connesso %s volte al server.'; +$lang['stmy0026'] = 'Connessioni: Oro'; +$lang['stmy0027'] = 'Connessioni: Argento'; +$lang['stmy0028'] = 'Connessioni: Bronzo'; +$lang['stmy0029'] = 'Connessioni: Non Classificato'; +$lang['stmy0030'] = 'Progresso prossimo gruppo'; +$lang['stmy0031'] = 'Tempo di attivitĂ  totale:'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'NazionalitĂ '; +$lang['stna0002'] = 'statistiche'; +$lang['stna0003'] = 'Codice'; +$lang['stna0004'] = 'Contati'; +$lang['stna0005'] = 'Versioni'; +$lang['stna0006'] = 'Piattaforme'; +$lang['stna0007'] = 'Percentage'; +$lang['stnv0001'] = 'News del server'; +$lang['stnv0002'] = 'Chiudi'; +$lang['stnv0003'] = 'Aggiorna le informazioni utente'; +$lang['stnv0004'] = 'Aggiorna solamente quando vengono modificate le informazioni su TS3, come ad esempio un cambio del nome od un nuovo collegamento'; +$lang['stnv0005'] = 'Funziona solamente se sei connesso al server TS3 in contemporaneo (devi avere TeamSpeak aperto ed essere collegato con la tua identitĂ  per vedere le tue statistiche)'; +$lang['stnv0006'] = 'Aggiorna'; +$lang['stnv0016'] = 'Non disponibile'; +$lang['stnv0017'] = 'Non sei connesso al server TeamSpeak, perciĂČ non potrai vedere le tue statistiche personali.'; +$lang['stnv0018'] = 'Per favore connettiti al server TeamSpeak e ricarica questa sessione premendo il pulsante blu in alto a destra.'; +$lang['stnv0019'] = 'Le mie statistiche - contenuto della pagina'; +$lang['stnv0020'] = 'Questa pagina contiene un sommario generale delle tue statistiche personali e le attivitĂ  nel server.'; +$lang['stnv0021'] = "Queste informazioni sono state inserite dal primo avvio del Ranksystem e non dall'inizio del server TeamSpeak."; +$lang['stnv0022'] = 'Questa pagina riceve i dati dal database. PerciĂČ potrebbe avere un lieve ritardo nel ricevere le informazioni.'; +$lang['stnv0023'] = 'The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds).'; +$lang['stnv0024'] = 'Ranksystem - Statistiche'; +$lang['stnv0025'] = 'Inserimenti limitati'; +$lang['stnv0026'] = 'tutti'; +$lang['stnv0027'] = 'Le informazioni su questo sito potrebbero NON essere aggiornate in quanto sembra che il Ranksystem non sia connesso al server TeamSpeak.'; +$lang['stnv0028'] = '(Non sei connesso al TS3!)'; +$lang['stnv0029'] = 'Lista Utenti'; +$lang['stnv0030'] = 'Informazioni Ranksystem'; +$lang['stnv0031'] = 'Nel campo di ricerca potrai inserire un nome utente, un Client-ID o un Client-database-ID.'; +$lang['stnv0032'] = 'Potrai inoltre filtrare i risultati (vedi sotto). Puoi inserire i filtri nel campo di ricerca.'; +$lang['stnv0033'] = 'La ricerca di utenti combinata a dei filtri Ăš possible. Inserire prima il filtro e successivamente nome utente o ID.'; +$lang['stnv0034'] = 'È inoltre possibile combinare diversi filtri. Inseriscili consecutivamente nel campo di ricerca.'; +$lang['stnv0035'] = 'Esempio:
filtro:non esclusi:Utente Teamspeak'; +$lang['stnv0036'] = 'Mostra solo gli utenti che sono esclusi (client, servergroup or channel exception).'; +$lang['stnv0037'] = 'Mostra solo gli utenti che non sono esclusi.'; +$lang['stnv0038'] = 'Mostra solo gli utenti online.'; +$lang['stnv0039'] = 'Mostra solo gli utenti offline'; +$lang['stnv0040'] = 'Mostra solo gli utenti che sono in un determinato Server Group. Rappresentano il rank attuale.
Sostituisci qui GROUPID.'; +$lang['stnv0041'] = "Mostra solo gli utenti selezionati per ultima visita effettuata.
Replace OPERATOR con '<' or '>' or '=' or '!='.
E Sostituisci qui TIME con formato data 'Y-m-d H-i' (example: 2016-06-18 20-25).
Esempio: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Mostra solo gli utenti di un determinato paese.
Sostituisci qui TS3-COUNTRY-CODE e il codice del paese.
Per la lista dei codici google for ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'Connettiti al Ts3'; +$lang['stri0001'] = 'Informazioni sul Ranksystem'; +$lang['stri0002'] = "Che cos'Ăš il ranksystem?"; +$lang['stri0003'] = "E' un bot di Ts3, che automaticamente attribuisce i rank (servergroups) agli utenti su un TeamSpeak 3 per il tempo trascorso online o di attivitĂ  online. Inoltre raccoglie informazioni e statistiche sull’utente e sul server mostrandoli sul sito."; +$lang['stri0004'] = 'Chi ha creato il Ranksystem?'; +$lang['stri0005'] = 'Quando Ăš stato creato?'; +$lang['stri0006'] = 'Prima Alpha: 05/10/2014.'; +$lang['stri0007'] = 'Prima Beta: 01/02/2015.'; +$lang['stri0008'] = "Puoi trovare l'ultima versione nel sito web del Ranksystem."; +$lang['stri0009'] = "Com'Ăš stato creato il RankSystem?"; +$lang['stri0010'] = 'Che linguaggio Ăš stato utilizzato'; +$lang['stri0011'] = 'Utilizza inoltre le seguenti librerie:'; +$lang['stri0012'] = 'Un ringraziamento speciale a:'; +$lang['stri0013'] = '%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'] = '%s per la traduzione ceca'; +$lang['stri0025'] = '%s per la traduzione polacca'; +$lang['stri0026'] = '%s per la traduzione spagnola'; +$lang['stri0027'] = '%s per la traduzione ungherese'; +$lang['stri0028'] = '%s per la traduzione azera'; +$lang['stri0029'] = '%s per la funzione di stampa'; +$lang['stri0030'] = "%s per lo stile 'CosmicBlue' per la pagina delle statistiche e l'interfaccia web"; +$lang['stta0001'] = 'Di sempre'; +$lang['sttm0001'] = 'Del mese'; +$lang['sttw0001'] = 'Top utenti'; +$lang['sttw0002'] = 'Della settimana'; +$lang['sttw0003'] = 'con %s %s di tempo online'; +$lang['sttw0004'] = 'Top 10 a confronto'; +$lang['sttw0005'] = 'Ore (Definisce il 100 %)'; +$lang['sttw0006'] = '%s ore (%s%)'; +$lang['sttw0007'] = 'Top 10 Statistiche'; +$lang['sttw0008'] = 'Top 10 vs Altri utenti in tempo online'; +$lang['sttw0009'] = 'Top 10 vs Altri utenti in tempo di attivitĂ '; +$lang['sttw0010'] = 'Top 10 vs Altri utenti in tempo di inattivitĂ '; +$lang['sttw0011'] = 'Top 10 (in ore)'; +$lang['sttw0012'] = 'Gli altri %s utenti (in ore)'; +$lang['sttw0013'] = 'con %s %s di tempo attivo'; +$lang['sttw0014'] = 'ore'; +$lang['sttw0015'] = 'minuti'; +$lang['stve0001'] = "\nSalve %s,\nPer essere verificato nel RankSystem clicca il link qui sotto:\n[B]%s[/B]\n\nSe il link non funziona, puoi inserire il token manualmente:\n%s\n\nSe non hai eseguito tu questa richiesta, allora ignora questo messaggio. Se stai ricevendo questo messaggio varie volte, contatta un Admin."; +$lang['stve0002'] = 'Un messaggio contenente il token ti Ăš stato inviato in chat privata sul server Ts3.'; +$lang['stve0003'] = "Inserisci il token che hai ricevuto nel server Ts3. Se non hai ricevuto il messaggio, assicurati di aver selezionato l'Unique ID corretto."; +$lang['stve0004'] = 'Il token inserito Ăš errato! Per favore reinseriscilo.'; +$lang['stve0005'] = 'Congratulazioni, sei stato verificato con successo! Ora puoi continuare..'; +$lang['stve0006'] = "C'Ăš stato un errore sconosciuto. Per favore riprova. Se ricapita contatta un amministratore."; +$lang['stve0007'] = 'Verifica sul server TeamSpeak'; +$lang['stve0008'] = 'Scegli qui il tuo Unique ID del server Ts3 per verificarti.'; +$lang['stve0009'] = ' -- Seleziona -- '; +$lang['stve0010'] = 'Riceverai un token sul server Teamspeak3, il quale devi inserire qui:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'verifica'; +$lang['time_day'] = 'Giorno(i)'; +$lang['time_hour'] = 'Ora(e)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sec(s)'; +$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'; +$lang['upgrp0003'] = "Errore nello scrivere l'icona del server."; +$lang['upgrp0004'] = 'Errore nel scaricare la nuova icona del server dal server TS3: '; +$lang['upgrp0005'] = "Errore nell'eliminare l'icona del server."; +$lang['upgrp0006'] = "L'icona del server Ăš stata eliminata dal server TS3, ora Ăš eliminata anche dal Ranksystem."; +$lang['upgrp0007'] = "Errore nello scrivere l'icona del servergroup %s con l'ID %s."; +$lang['upgrp0008'] = "Errore nello scaricare l'icona del servergroup %s con l'ID %s: "; +$lang['upgrp0009'] = "Errore nell'eliminare l'icona del server group %s con l'ID %s."; +$lang['upgrp0010'] = "l'icona del servergroup %s con l'ID %s Ăš stata rimossa dal server TS3, ora Ăš eliminata anche dal Ranksystem."; +$lang['upgrp0011'] = "Scaricando la nuova ServerGroupIcon pwe il gruppo %s con l'ID: %s"; +$lang['upinf'] = 'È stata trovata una versione piu recente del RankSystem. Informa gli utenti del server...'; +$lang['upinf2'] = 'Il RankSystem Ăš stato aggiornato di recente (%s). Controlla il %sChangelog%s per maggiori informazioni sui cambiamenti.'; +$lang['upmsg'] = "\nHey, Una nuova versione del [B]Ranksystem[/B] Ăš disponibile!\n\nVersione corrente: %s\n[B]Nuova Versione: %s[/B]\n\nPer maggiori informazioni visita il nostro sito [URL]%s[/URL].\n\nPer iniziare l'aggiornamento in background. [B]Controlla ranksystem.log![/B]"; +$lang['upmsg2'] = "\nHey, the [B]Ranksystem[/B] has been updated.\n\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%s[/URL]."; +$lang['upusrerr'] = 'Il Client-ID Univoco %s non Ăš stato trovato sul TeamSpeak!'; +$lang['upusrinf'] = "L'utente %s Ăš stato informato correttamente."; +$lang['user'] = 'Nome Utente'; +$lang['verify0001'] = 'Assicurati di essere realmente connesso al server TS3!'; +$lang['verify0002'] = "Entra, se non l'hai giĂ  fatto, nel %sverification-channel%s!"; +$lang['verify0003'] = "Se sei giĂ  connesso al server TS3, Contatta un amministratore.
L'amministratore deve creare un canale di verifica nel server TS3. Poi, Il canale deve essere impostato nel RankSystem, ciĂČ puĂČ essere fatto solo da un amministratore.
Maggiori informazioni possono essere trovate nella pagina di amministrazione (-> stats page) del Ranksystem.

Senza ciĂČ non possiamo verificarti nel Ranksystem! Scusa :("; +$lang['verify0004'] = 'Nessun utente nel canale di verifica trovato...'; +$lang['wi'] = 'Interfaccia Web'; +$lang['wiaction'] = 'Azione'; +$lang['wiadmhide'] = 'Nascondi clients esclusi'; +$lang['wiadmhidedesc'] = 'Per nascondere i clients esclusi dalla lista'; +$lang['wiadmuuid'] = '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['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['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!'; +$lang['wibot4'] = 'Avvia / Arresta il Bot Ranksystem'; +$lang['wibot5'] = 'Avvia il Bot'; +$lang['wibot6'] = 'Arresta il Bot'; +$lang['wibot7'] = 'Riavvia il Bot'; +$lang['wibot8'] = 'Log Ranksystem (estrai):'; +$lang['wibot9'] = 'Compila tutti i campi obbligatori prima di avviare il bot Ranksystem!'; +$lang['wichdbid'] = 'Client-database-ID reset'; +$lang['wichdbiddesc'] = 'Resetta il tempo online di un utente se il suo database-ID Ăš cambiato.
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'] = '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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$lang['widelcldgrpdesc'] = "Il Ranksystem memorizzerĂ  il servergroup assegnato, cosĂŹ che non sia piĂč necessario eseguire continuamente il worker.php.

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

Questa funzione puĂČ essere molto utile, quando un utente non Ăš in un servergroup, Gli puĂČ essere attribuito il tempo online.

Attenzione: Eseguilo solo quando sei sicuro che non vi sia un aumento di rank per l'utente! Altrimenti il Ranksystem non potrĂ  rimuovere il precedente servergroup in quanto non Ăš memorizzato ;-)"; +$lang['widelsg'] = 'rimosso(i) dal servergroup'; +$lang['widelsgdesc'] = "Scegli se agli utenti venga rimosso anche l'ultimo servergroup conosciuto, quando cancelli gli utenti dal database del Ranksystem.

ConsidererĂ  solamente i servergroup riguardanti il Ranksystem"; +$lang['wiexcept'] = 'Exceptions'; +$lang['wiexcid'] = 'Eccezione Stanze'; +$lang['wiexciddesc'] = "Inserisci gli ID delle stanze dove non verrĂ  conteggiato il tempo del Rank.

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

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

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

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

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


L'esclusione dei canali non c'entra qui, perchĂš il tempo sarĂ  sempre ignorato (come la modalitĂ  'Ferma il tempo')."; +$lang['wiexuid'] = 'Eccezione degli utenti'; +$lang['wiexuiddesc'] = 'Lista degli utenti (ID Univoco) che non verranno contati dal Ranksystem (separati da virgola. es 5GFxciykQMojlrvugWti835Wdto=,YQf+7x/4LJ2Tw5cuQGItsVEn+S4=)
Questi utentiverranno ignorati.'; +$lang['wiexregrp'] = 'rimuovi gruppo'; +$lang['wiexregrpdesc'] = "Se un utente viene escluso dal Ranksystem, il gruppo di server assegnato dal Ranksystem verrĂ  rimosso.

Il gruppo verrĂ  rimosso solo con il '".$lang['wiexres']."' con il '".$lang['wiexres1']."'. In tutti gli altri modi, il gruppo di server non verrĂ  rimosso.

Questa funzione Ăš rilevante solo in combinazione con un '".$lang['wiexuid']."' o un '".$lang['wiexgrp']."' in combinazione con il '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'Definisci Rankup'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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!"; +$lang['wihladm1'] = 'aggiungi tempo'; +$lang['wihladm2'] = 'rimuovere il 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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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Ă ."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Path dei Log'; +$lang['wilogdesc'] = "La path dei log del RankSystem.

Esempio:
/var/logs/ranksystem/

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

Potrete utilizzare i BB-code di un comunissimo messaggio .
%s

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

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

Puoi usare le funzioni base html per modificare il layout

Esempio:
<b> - per grassetto
<u> - per sottolineato
<i> - per italico
<br> - per andata a capo (new line)'; +$lang['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'Database'; +$lang['winav3'] = 'Core'; +$lang['winav4'] = 'Altri'; +$lang['winav5'] = 'Messaggio'; +$lang['winav6'] = 'Pagina delle Statistiche'; +$lang['winav7'] = 'Amministra'; +$lang['winav8'] = 'Avvia / Arresta il Bot'; +$lang['winav9'] = 'Aggiornamento disponibile!'; +$lang['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['winxmsg2'] = 'Messaggio (Maggiore)'; +$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. 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]"; +$lang['wirtpw5'] = "E' stato inviato a TeamSpeak3 un messaggio privato all'amministratore con la nuova password."; +$lang['wirtpw6'] = "La password della webinterface Ăš stata resettata con successo. Richiesta dall' IP %s."; +$lang['wirtpw7'] = 'Resetta la Password'; +$lang['wirtpw8'] = "Qui puoi resettare la password dell'interfaccia web."; +$lang['wirtpw9'] = 'I seguenti campi sono necessari per resettare la password:'; +$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'Tempo AttivitĂ '; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'Tempo Online'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Define the default sorting column for the List Rankup page.'; +$lang['wishexcld'] = 'Eccetto gli utenti'; +$lang['wishexclddesc'] = 'Mostra gli utenti in list_rankup.php,
Chi Ăš escluso dai rank non partecipa alla lista.'; +$lang['wishexgrp'] = 'Eccetto i Servergroups'; +$lang['wishexgrpdesc'] = "Mostra gli utenti in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem."; +$lang['wishhicld'] = 'Utenti col massimo rank'; +$lang['wishhiclddesc'] = 'Mostra gli utenti in list_rankup.php, che hanno raggiunto il piĂč elevato rank nel Ranksystem.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'stile personalizzato'; +$lang['wistyledesc'] = "Definisci uno stile personalizzato per il sistema di classifica.
Questo stile verrĂ  utilizzato per la pagina statistiche e l'interfaccia web.

Inserisci il tuo stile nella cartella 'style' in una sottocartella.
Il nome della sottocartella determinerĂ  il nome dello stile.

Gli stili che iniziano con 'TSN_' sono forniti dal sistema di classifica. Verranno aggiornati con le future versioni.
Non dovresti quindi apportare modifiche a questi.
Tuttavia, puoi utilizzarli come modello. Copia lo stile in una cartella separata per apportare modifiche.

Sono richiesti due file CSS. Uno per la pagina statistiche e uno per l'interfaccia web.
È possibile anche includere un JavaScript personalizzato, ma questo Ú opzionale.

Convenzione dei nomi per CSS:
- Fissare 'ST.css' per la pagina statistiche (/stats/)
- Fissare 'WI.css' per la pagina dell'interfaccia web (/webinterface/)


Convenzione dei nomi per JavaScript:
- Fissare 'ST.js' per la pagina statistiche (/stats/)
- Fissare 'WI.js' per la pagina dell'interfaccia web (/webinterface/)


Se vuoi condividere il tuo stile con gli altri, puoi inviarlo all'indirizzo e-mail seguente:

%s

Lo includeremo nella prossima versione!"; +$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['wisvres'] = 'Dovrai riavviare il Ranksystem affinché i cambiamenti vengano applicati!'; +$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['wits3pre'] = 'Prefisso del comando del bot'; +$lang['wits3predesc'] = "Sul server di TeamSpeak puoi comunicare con il bot Ranksystem tramite chat. Di default, i comandi del bot sono contrassegnati con un punto esclamativo '!'. Il prefisso viene utilizzato per identificare i comandi del bot come tali.

Questo prefisso puĂČ essere sostituito con qualsiasi altro prefisso desiderato. CiĂČ puĂČ essere necessario se si stanno utilizzando altri bot con comandi simili.

Ad esempio, il comando predefinito del bot sarebbe:
!help


Se si sostituisce il prefisso con '#', il comando apparirĂ  come segue:
#help
"; +$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'; +$lang['wits3querpwdesc'] = 'Password della query di Teamspeak (di norma viene creata al primo avvio di Teamspeak, guarda qui per modificarla: CHANGE QUERY PASSWORD
.'; +$lang['wits3querusr'] = 'TS3 - Utente della Query'; +$lang['wits3querusrdesc'] = 'Il nome utente della Query scelta
Di default Ăš serveradmin
Ma se preferisci potrai creare un ulteriore query solo per il Ranksystem.
Per vedere i permessi necessari alla Query guarda:
%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['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'; +$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['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'] = "Inserisci l'ID del canale di verifica.

Questo canale va impostato manualmente nel tuo server Teamspeak. Nome, permessi e altre proprietĂ  possono essere impostati a tua scelta; Solo gli utenti potranno entrare in questo canale!

La verifica va fatta dall'utente nella sua pagina delle informazioni (/stats/). Questo Ăš necessario solo se i visitatori della pagina web non possono essere direttamente associati al profilo del server Teamspeak.

Per essere verificato l'utente deve essere all'interno del canale di verifica sul server Teamspeak. Qui riceverĂ  un token per la sua pagina delle statistiche."; +$lang['wivlang'] = 'Lingua'; +$lang['wivlangdesc'] = 'Scegli la lingua di default del Ranksystem.

La lingua Ăš inoltre selezionabile dal sito e viene salvata per tutta la sessione.'; diff --git a/languages/core_nl_Nederlands_nl.php b/languages/core_nl_Nederlands_nl.php index 5b7b45a..4206d30 100644 --- a/languages/core_nl_Nederlands_nl.php +++ b/languages/core_nl_Nederlands_nl.php @@ -1,708 +1,708 @@ - zojuist toegevoegd aan ranksysteem."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Sta het starten/stoppen van de Ranksystem Bot via API toe"; -$lang['apipermdesc'] = "(ON = Toestaan ; OFF = Weigeren)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$lang['changedbid'] = "Gebruiker %s (unieke Client-ID: %s) heeft een nieuwe TeamSpeak Client-database-ID (%s). Update de oude Client-database-ID (%s) en reset gecollecteerde tijden!"; -$lang['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'] = "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."; -$lang['cleanno'] = "Er was niks om te verwijderen..."; -$lang['cleanp'] = "opschoon periode"; -$lang['cleanpdesc'] = "Zet een tijd dat moet zijn verstreken voordat de 'clean clients' nogmaals start.

Zet een tijd in seconden.

Één keer per dag is aangeraden, omdat het opschonen van clients veel meer tijd nodig heeft voor grotere databasen."; -$lang['cleanrs'] = "Clients in the Ranksystem database: %s"; -$lang['cleants'] = "Clients gevonden in de TeamSpeak database: %s (van de %s)"; -$lang['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!"; -$lang['errgrplist'] = "Error while getting servergrouplist: "; -$lang['errlogin'] = "Gebruikersnaam en/of wachtwoord zijn onjuist! Probeer opnieuw..."; -$lang['errlogin2'] = "Brute force protection: Probeer nogmaals in %s seconde!"; -$lang['errlogin3'] = "Brute force protection: Te vaak mislukt. Verbannen voor 300 seconden!"; -$lang['error'] = "Foutmelding "; -$lang['errorts3'] = "TS3 Error: "; -$lang['errperm'] = "Please check the permission for the folder '%s'!"; -$lang['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"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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!
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 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 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)"; -$lang['isntwidbmsg'] = "Database foutmelding: "; -$lang['isntwidbname'] = "DB Naam:"; -$lang['isntwidbnamedesc'] = "Naam van database"; -$lang['isntwidbpass'] = "DB Wachtwoord:"; -$lang['isntwidbpassdesc'] = "Wachtwoord voor toegang van de database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "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 Gebruiker:"; -$lang['isntwidbusrdesc'] = "Gebruiker voor toegang van de database"; -$lang['isntwidel'] = "Verwijder A.U.B het bestand 'install.php' van je webserver"; -$lang['isntwiusr'] = "Gebruiker voor de webinterface is succesvol aangemaakt."; -$lang['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"; -$lang['listcldbid'] = "Client-database-ID"; -$lang['listexcept'] = "Nee, want uitgesloten"; -$lang['listgrps'] = "actuele groep sinds"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Clientnaam"; -$lang['listnxsg'] = "volgende servergroep"; -$lang['listnxup'] = "volgende rang omhoog"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "rang"; -$lang['listseen'] = "laatst gezien"; -$lang['listsuma'] = "overzicht actieve tijd"; -$lang['listsumi'] = "overzicht inactieve tijd"; -$lang['listsumo'] = "overzicht online tijd"; -$lang['listuid'] = "unieke Client-ID"; -$lang['listver'] = "client version"; -$lang['login'] = "Inloggen"; -$lang['module_disabled'] = "This module is deactivated."; -$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'] = "Je bent niet in beschikking van deze commando!"; -$lang['msg0004'] = "Client %s (%s) verzoekt afsluiten."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Client %s (%s) verzoekt opnieuw %s."; -$lang['msg0008'] = "Update check done. If an update is available, it will runs 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'] = "Geen invoer gevonden.."; -$lang['pass'] = "Wachtwoord"; -$lang['pass2'] = "Verander wachtwoord"; -$lang['pass3'] = "oud wachtwoord"; -$lang['pass4'] = "nieuw wachtwoord"; -$lang['pass5'] = "Wachtwoord Vergeten?"; -$lang['permission'] = "Machtigingen"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "herhalen"; -$lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; -$lang['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)."; -$lang['setontime'] = "voeg tijd toe"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of concurrent groups: "; -$lang['stag0012'] = "set groups"; -$lang['stag0013'] = "Addon ON/OFF"; -$lang['stag0014'] = "Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden."; -$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; -$lang['stag0016'] = "verification needed!"; -$lang['stag0017'] = "verificate here.."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Server statistieken"; -$lang['stix0002'] = "Totaal gebruikers"; -$lang['stix0003'] = "Bekijk gegevens"; -$lang['stix0004'] = "Online tijd van alle gebruiker / Totaal"; -$lang['stix0005'] = "Bekijk de top van alle tijd"; -$lang['stix0006'] = "Bekijk de top van de maand"; -$lang['stix0007'] = "Bekijk de top van de week"; -$lang['stix0008'] = "Server gebruik"; -$lang['stix0009'] = "In de laatste 7 dagen"; -$lang['stix0010'] = "In de laatste 30 dagen"; -$lang['stix0011'] = "In de laatste 24 uren"; -$lang['stix0012'] = "selecteer periode"; -$lang['stix0013'] = "Laatste dag"; -$lang['stix0014'] = "Laatste week"; -$lang['stix0015'] = "Laatste maand"; -$lang['stix0016'] = "Actieve / inactieve tijd (van alle clients)"; -$lang['stix0017'] = "Versies (van alle clients)"; -$lang['stix0018'] = "Nationaliteiten (van alle clients)"; -$lang['stix0019'] = "Platform (van alle clients)"; -$lang['stix0020'] = "Actuele statistieken"; -$lang['stix0023'] = "Server toestand"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clients (Online / Max)"; -$lang['stix0027'] = "Aantal kanalen"; -$lang['stix0028'] = "Gemiddelde server ping"; -$lang['stix0029'] = "Totaal bytes ontvangen"; -$lang['stix0030'] = "Totaal bytes verzonden"; -$lang['stix0031'] = "Server uptijd"; -$lang['stix0032'] = "voor offline:"; -$lang['stix0033'] = "00 Dagen, 00 Uren, 00 Minuten, 00 Seconden"; -$lang['stix0034'] = "Gemiddelde pakketverlies"; -$lang['stix0035'] = "Globaal statistieken"; -$lang['stix0036'] = "Server naam"; -$lang['stix0037'] = "Server adres (Host Adres : Port)"; -$lang['stix0038'] = "Server wachtwoord"; -$lang['stix0039'] = "Nee (Server is globaal)"; -$lang['stix0040'] = "Ja (Server is privé)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Server platform"; -$lang['stix0043'] = "Server versie"; -$lang['stix0044'] = "Server aanmaakdatum (dd/mm/yyyy)"; -$lang['stix0045'] = "Rapport naar serverlijst"; -$lang['stix0046'] = "Geactiveerd"; -$lang['stix0047'] = "Niet geactiveerd"; -$lang['stix0048'] = "niet genoeg gegevens..."; -$lang['stix0049'] = "Online tijd van alle gebruikers / maand"; -$lang['stix0050'] = "Online tijd van alle gebruikers / week"; -$lang['stix0051'] = "TeamSpeak mislukt, geen aanmaakdatum..."; -$lang['stix0052'] = "overige"; -$lang['stix0053'] = "Actieve Tijd (in Dagen)"; -$lang['stix0054'] = "Inactieve Tijd (in Dagen)"; -$lang['stix0055'] = "online last 24 hours"; -$lang['stix0056'] = "online last %s days"; -$lang['stix0059'] = "List of user"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "View all versions"; -$lang['stix0062'] = "View all nations"; -$lang['stix0063'] = "View all platforms"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "Mijn statistieken"; -$lang['stmy0002'] = "Rang"; -$lang['stmy0003'] = "Database ID:"; -$lang['stmy0004'] = "Unieke ID:"; -$lang['stmy0005'] = "Totaal connecties naar de server:"; -$lang['stmy0006'] = "Start datum van statistieken:"; -$lang['stmy0007'] = "Totaal online tijd.:"; -$lang['stmy0008'] = "Online tijd laatste %s dagen:"; -$lang['stmy0009'] = "Active time last %s days:"; -$lang['stmy0010'] = "Prestaties voltooid:"; -$lang['stmy0011'] = "Tijd prestaties vooruitgang"; -$lang['stmy0012'] = "Tijd: Legendarisch"; -$lang['stmy0013'] = "Omdat je een online tijd hebt van %s uren."; -$lang['stmy0014'] = "Vooruitgang voltooid"; -$lang['stmy0015'] = "Tijd: Goud"; -$lang['stmy0016'] = "% voltooid voor Legendarisch"; -$lang['stmy0017'] = "Tijd: Zilver"; -$lang['stmy0018'] = "% voltooid voor Goud"; -$lang['stmy0019'] = "Tijd: Brons"; -$lang['stmy0020'] = "% voltooid voor Zilver"; -$lang['stmy0021'] = "Tijd: Geen rang"; -$lang['stmy0022'] = "% voltooid voor Brons"; -$lang['stmy0023'] = "Connectie prestaties vooruitgang"; -$lang['stmy0024'] = "Connecties: Legendarisch"; -$lang['stmy0025'] = "Omdat je %s connecties hebt op de server."; -$lang['stmy0026'] = "Connecties: Goud"; -$lang['stmy0027'] = "Connecties: Zilver"; -$lang['stmy0028'] = "Connecties: Brons"; -$lang['stmy0029'] = "Connecties: Geen rang"; -$lang['stmy0030'] = "Vooruitgang volgende servergroep"; -$lang['stmy0031'] = "Total active time"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Nations"; -$lang['stna0002'] = "statistics"; -$lang['stna0003'] = "Code"; -$lang['stna0004'] = "Count"; -$lang['stna0005'] = "Versions"; -$lang['stna0006'] = "Platforms"; -$lang['stna0007'] = "Percentage"; -$lang['stnv0001'] = "Server nieuws"; -$lang['stnv0002'] = "Sluiten"; -$lang['stnv0003'] = "Ververs client informatie"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Refresh"; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Ranksystem - Statistics"; -$lang['stnv0025'] = "Limit entries"; -$lang['stnv0026'] = "all"; -$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(You are not connected to the TS3!)"; -$lang['stnv0029'] = "List Rankup"; -$lang['stnv0030'] = "Ranksystem info"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "connect TS3"; -$lang['stri0001'] = "Ranksystem information"; -$lang['stri0002'] = "What is the Ranksystem?"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the latest version on the Ranksystem Website."; -$lang['stri0009'] = "How was the Ranksystem created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "%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'] = "%s voor Tsjechische vertaling"; -$lang['stri0025'] = "%s voor Poolse vertaling"; -$lang['stri0026'] = "%s voor Spaanse vertaling"; -$lang['stri0027'] = "%s voor Hongaarse vertaling"; -$lang['stri0028'] = "%s voor Azerbeidzjaanse vertaling"; -$lang['stri0029'] = "%s voor de imprint-functie"; -$lang['stri0030'] = "%s voor de 'CosmicBlue'-stijl voor de statistiekenpagina en de webinterface"; -$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"; -$lang['sttw0004'] = "Top 10 compared"; -$lang['sttw0005'] = "Hours (Defines 100 %)"; -$lang['sttw0006'] = "%s hours (%s%)"; -$lang['sttw0007'] = "Top 10 Statistics"; -$lang['sttw0008'] = "Top 10 vs others in online time"; -$lang['sttw0009'] = "Top 10 vs others in active time"; -$lang['sttw0010'] = "Top 10 vs others in inactive time"; -$lang['sttw0011'] = "Top 10 (in hours)"; -$lang['sttw0012'] = "Other %s users (in hours)"; -$lang['sttw0013'] = "With %s %s active time"; -$lang['sttw0014'] = "hours"; -$lang['sttw0015'] = "minutes"; -$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin."; -$lang['stve0002'] = "A message with the token was sent to you on the TS3 server."; -$lang['stve0003'] = "Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID."; -$lang['stve0004'] = "The entered token does not match! Please try it again."; -$lang['stve0005'] = "Congratulations, you are successfully verified! You can now go on.."; -$lang['stve0006'] = "An unknown error happened. Please try it again. On repeated times contact an admin"; -$lang['stve0007'] = "Verify on TeamSpeak"; -$lang['stve0008'] = "Choose here your unique ID on the TS3 server to verify yourself."; -$lang['stve0009'] = " -- select yourself -- "; -$lang['stve0010'] = "You will receive a token on the TS3 server, which you have to enter here:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verify"; -$lang['time_day'] = "Day(s)"; -$lang['time_hour'] = "Hour(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(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"; -$lang['upgrp0003'] = "Error while writing out the servericon."; -$lang['upgrp0004'] = "Error while downloading TS3 ServerIcon from TS3 server: "; -$lang['upgrp0005'] = "Error while deleting the servericon."; -$lang['upgrp0006'] = "Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0007'] = "Error while writing out the servergroup icon from group %s with ID %s."; -$lang['upgrp0008'] = "Error while downloading servergroup icon from group %s with ID %s: "; -$lang['upgrp0009'] = "Error while deleting the servergroup icon from group %s with ID %s."; -$lang['upgrp0010'] = "Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem."; -$lang['upgrp0011'] = "Download new ServerGroupIcon for group %s with ID: %s"; -$lang['upinf'] = "A new Version of the Ranksystem is available; Inform clients on server..."; -$lang['upinf2'] = "The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes."; -$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%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 informations [URL]%s[/URL]."; -$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; -$lang['upusrinf'] = "User %s was successfully informed."; -$lang['user'] = "Username"; -$lang['verify0001'] = "Please be sure, you are really connected to the TS3 server!"; -$lang['verify0002'] = "Enter, if not already done, the Ranksystem %sverification-channel%s!"; -$lang['verify0003'] = "If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :("; -$lang['verify0004'] = "No user inside the verification channel found..."; -$lang['wi'] = "Webinterface"; -$lang['wiaction'] = "action"; -$lang['wiadmhide'] = "hide excepted clients"; -$lang['wiadmhidedesc'] = "To hide excepted user in the following selection"; -$lang['wiadmuuid'] = "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['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['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!"; -$lang['wibot4'] = "Start / Stop Ranksystem Bot"; -$lang['wibot5'] = "Start Bot"; -$lang['wibot6'] = "Stop Bot"; -$lang['wibot7'] = "Restart Bot"; -$lang['wibot8'] = "Ranksystem log (extract):"; -$lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksystem Bot!"; -$lang['wichdbid'] = "Client-database-ID reset"; -$lang['wichdbiddesc'] = "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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

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

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

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; -$lang['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.

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

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "servergroup exception"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "exception mode"; -$lang['wiexres1'] = "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): At 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 actual value (before the user got excepted). After loosing the excepted reason (after removing the excepted servergroup or remove the expection rule) the 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The 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 seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wiexregrp'] = "verwijder groep"; -$lang['wiexregrpdesc'] = "Als een gebruiker uitgesloten is van Ranksystem, wordt de door Ranksystem toegewezen servergroep verwijderd.

De groep wordt alleen verwijderd met de '".$lang['wiexres']."' met de '".$lang['wiexres1']."'. In alle andere modi wordt de servergroep niet verwijderd.

Deze functie is alleen relevant in combinatie met een '".$lang['wiexuid']."' of een '".$lang['wiexgrp']."' in combinatie met de '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "Rank Definition"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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['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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Logpath"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

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

This message will be send 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 modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wimsgusr'] = "Rank up notification"; -$lang['wimsgusrdesc'] = "Inform an user with a private text message about his rank up."; -$lang['winav1'] = "TeamSpeak"; -$lang['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$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['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['winxmsg2'] = "Message (highest)"; -$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. 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"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "active time"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "online time"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$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 conside for the Ranksystem."; -$lang['wishhicld'] = "Clients in highest Level"; -$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "aangepaste stijl"; -$lang['wistyledesc'] = "Definieer een aangepaste stijl voor het Ranksysteem.
Deze stijl wordt gebruikt voor de statistiekenpagina en het webinterface.

Plaats je eigen stijl in de map 'style' in een submap.
De naam van de submap bepaalt de naam van de stijl.

Stijlen die beginnen met 'TSN_' worden geleverd door het Ranksysteem. Deze worden bijgewerkt in toekomstige updates.
Maak geen aanpassingen aan deze stijlen!
Maar je kunt ze gebruiken als sjabloon. Kopieer de stijl naar een eigen map om aanpassingen te maken.

Er zijn twee CSS-bestanden vereist. Een voor de statistiekenpagina en een voor het webinterface.
Je kunt ook een eigen JavaScript toevoegen, maar dit is optioneel.

Naamgevingsconventie voor CSS:
- Vaste 'ST.css' voor de statistiekenpagina (/stats/)
- Vaste 'WI.css' voor de webinterfacepagina (/webinterface/)


Naamgevingsconventie voor JavaScript:
- Vaste 'ST.js' voor de statistiekenpagina (/stats/)
- Vaste 'WI.js' voor de webinterfacepagina (/webinterface/)


Als je je stijl ook met anderen wilt delen, kun je deze sturen naar het volgende e-mailadres:

%s

We zullen deze in de volgende release leveren!"; -$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['wisvres'] = "You need to restart the Ranksystem before the changes will take effect! %s"; -$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['wits3pre'] = "Voorvoegsel van bot-commando"; -$lang['wits3predesc'] = "Op de TeamSpeak-server kun je communiceren met de Ranksystem-bot via de chat. Standaard zijn bot-commando's gemarkeerd met een uitroepteken '!'. De voorvoegsel wordt gebruikt om commando's voor de bot te identificeren als zodanig.

Dit voorvoegsel kan worden vervangen door een ander gewenst voorvoegsel. Dit kan nodig zijn als er andere bots worden gebruikt met vergelijkbare commando's.

Bijvoorbeeld, het standaard bot-commando zou er als volgt uitzien:
!help


Als het voorvoegsel wordt vervangen door '#', zou het commando er als volgt uitzien:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 query password
Password for the query user."; -$lang['wits3querusr'] = "TS3 Query-User"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
%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['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"; -$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['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 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'] = "Language"; -$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.

The language is also selectable on the websites for the users and will be stored for the session."; -?> \ No newline at end of file + zojuist toegevoegd aan ranksysteem.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Sta het starten/stoppen van de Ranksystem Bot via API toe'; +$lang['apipermdesc'] = '(ON = Toestaan ; OFF = Weigeren)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$lang['changedbid'] = 'Gebruiker %s (unieke Client-ID: %s) heeft een nieuwe TeamSpeak Client-database-ID (%s). Update de oude Client-database-ID (%s) en reset gecollecteerde tijden!'; +$lang['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'] = '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.'; +$lang['cleanno'] = 'Er was niks om te verwijderen...'; +$lang['cleanp'] = 'opschoon periode'; +$lang['cleanpdesc'] = "Zet een tijd dat moet zijn verstreken voordat de 'clean clients' nogmaals start.

Zet een tijd in seconden.

Één keer per dag is aangeraden, omdat het opschonen van clients veel meer tijd nodig heeft voor grotere databasen."; +$lang['cleanrs'] = 'Clients in the Ranksystem database: %s'; +$lang['cleants'] = 'Clients gevonden in de TeamSpeak database: %s (van de %s)'; +$lang['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!'; +$lang['errgrplist'] = 'Error while getting servergrouplist: '; +$lang['errlogin'] = 'Gebruikersnaam en/of wachtwoord zijn onjuist! Probeer opnieuw...'; +$lang['errlogin2'] = 'Brute force protection: Probeer nogmaals in %s seconde!'; +$lang['errlogin3'] = 'Brute force protection: Te vaak mislukt. Verbannen voor 300 seconden!'; +$lang['error'] = 'Foutmelding '; +$lang['errorts3'] = 'TS3 Error: '; +$lang['errperm'] = "Please check the permission for the folder '%s'!"; +$lang['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'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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!
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 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 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)'; +$lang['isntwidbmsg'] = 'Database foutmelding: '; +$lang['isntwidbname'] = 'DB Naam:'; +$lang['isntwidbnamedesc'] = 'Naam van database'; +$lang['isntwidbpass'] = 'DB Wachtwoord:'; +$lang['isntwidbpassdesc'] = 'Wachtwoord voor toegang van de database'; +$lang['isntwidbtype'] = 'DB Type:'; +$lang['isntwidbtypedesc'] = '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 Gebruiker:'; +$lang['isntwidbusrdesc'] = 'Gebruiker voor toegang van de database'; +$lang['isntwidel'] = "Verwijder A.U.B het bestand 'install.php' van je webserver"; +$lang['isntwiusr'] = 'Gebruiker voor de webinterface is succesvol aangemaakt.'; +$lang['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'; +$lang['listcldbid'] = 'Client-database-ID'; +$lang['listexcept'] = 'Nee, want uitgesloten'; +$lang['listgrps'] = 'actuele groep sinds'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Clientnaam'; +$lang['listnxsg'] = 'volgende servergroep'; +$lang['listnxup'] = 'volgende rang omhoog'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'rang'; +$lang['listseen'] = 'laatst gezien'; +$lang['listsuma'] = 'overzicht actieve tijd'; +$lang['listsumi'] = 'overzicht inactieve tijd'; +$lang['listsumo'] = 'overzicht online tijd'; +$lang['listuid'] = 'unieke Client-ID'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Inloggen'; +$lang['module_disabled'] = 'This module is deactivated.'; +$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'] = 'Je bent niet in beschikking van deze commando!'; +$lang['msg0004'] = 'Client %s (%s) verzoekt afsluiten.'; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Client %s (%s) verzoekt opnieuw %s.'; +$lang['msg0008'] = 'Update check done. If an update is available, it will runs 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'] = 'Geen invoer gevonden..'; +$lang['pass'] = 'Wachtwoord'; +$lang['pass2'] = 'Verander wachtwoord'; +$lang['pass3'] = 'oud wachtwoord'; +$lang['pass4'] = 'nieuw wachtwoord'; +$lang['pass5'] = 'Wachtwoord Vergeten?'; +$lang['permission'] = 'Machtigingen'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'herhalen'; +$lang['resettime'] = 'Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception.'; +$lang['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).'; +$lang['setontime'] = 'voeg tijd toe'; +$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_pib'] = 'PiB'; +$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'] = '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.'; +$lang['stag0007'] = 'Please wait till your last changes take effect before you change already the next things...'; +$lang['stag0008'] = 'Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server.'; +$lang['stag0009'] = 'You cannot choose more then %s group(s) at the same time!'; +$lang['stag0010'] = 'Please choose at least one new group.'; +$lang['stag0011'] = 'Limit of concurrent groups: '; +$lang['stag0012'] = 'set groups'; +$lang['stag0013'] = 'Addon ON/OFF'; +$lang['stag0014'] = 'Turn the Addon on (enabled) or off (disabled).

On disabling the addon a possible part on the stats/ site will be hidden.'; +$lang['stag0015'] = "You couldn't be find on the TeamSpeak server. Please %sclick here%s to verify yourself."; +$lang['stag0016'] = 'verification needed!'; +$lang['stag0017'] = 'verificate here..'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Server statistieken'; +$lang['stix0002'] = 'Totaal gebruikers'; +$lang['stix0003'] = 'Bekijk gegevens'; +$lang['stix0004'] = 'Online tijd van alle gebruiker / Totaal'; +$lang['stix0005'] = 'Bekijk de top van alle tijd'; +$lang['stix0006'] = 'Bekijk de top van de maand'; +$lang['stix0007'] = 'Bekijk de top van de week'; +$lang['stix0008'] = 'Server gebruik'; +$lang['stix0009'] = 'In de laatste 7 dagen'; +$lang['stix0010'] = 'In de laatste 30 dagen'; +$lang['stix0011'] = 'In de laatste 24 uren'; +$lang['stix0012'] = 'selecteer periode'; +$lang['stix0013'] = 'Laatste dag'; +$lang['stix0014'] = 'Laatste week'; +$lang['stix0015'] = 'Laatste maand'; +$lang['stix0016'] = 'Actieve / inactieve tijd (van alle clients)'; +$lang['stix0017'] = 'Versies (van alle clients)'; +$lang['stix0018'] = 'Nationaliteiten (van alle clients)'; +$lang['stix0019'] = 'Platform (van alle clients)'; +$lang['stix0020'] = 'Actuele statistieken'; +$lang['stix0023'] = 'Server toestand'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Clients (Online / Max)'; +$lang['stix0027'] = 'Aantal kanalen'; +$lang['stix0028'] = 'Gemiddelde server ping'; +$lang['stix0029'] = 'Totaal bytes ontvangen'; +$lang['stix0030'] = 'Totaal bytes verzonden'; +$lang['stix0031'] = 'Server uptijd'; +$lang['stix0032'] = 'voor offline:'; +$lang['stix0033'] = '00 Dagen, 00 Uren, 00 Minuten, 00 Seconden'; +$lang['stix0034'] = 'Gemiddelde pakketverlies'; +$lang['stix0035'] = 'Globaal statistieken'; +$lang['stix0036'] = 'Server naam'; +$lang['stix0037'] = 'Server adres (Host Adres : Port)'; +$lang['stix0038'] = 'Server wachtwoord'; +$lang['stix0039'] = 'Nee (Server is globaal)'; +$lang['stix0040'] = 'Ja (Server is privé)'; +$lang['stix0041'] = 'Server ID'; +$lang['stix0042'] = 'Server platform'; +$lang['stix0043'] = 'Server versie'; +$lang['stix0044'] = 'Server aanmaakdatum (dd/mm/yyyy)'; +$lang['stix0045'] = 'Rapport naar serverlijst'; +$lang['stix0046'] = 'Geactiveerd'; +$lang['stix0047'] = 'Niet geactiveerd'; +$lang['stix0048'] = 'niet genoeg gegevens...'; +$lang['stix0049'] = 'Online tijd van alle gebruikers / maand'; +$lang['stix0050'] = 'Online tijd van alle gebruikers / week'; +$lang['stix0051'] = 'TeamSpeak mislukt, geen aanmaakdatum...'; +$lang['stix0052'] = 'overige'; +$lang['stix0053'] = 'Actieve Tijd (in Dagen)'; +$lang['stix0054'] = 'Inactieve Tijd (in Dagen)'; +$lang['stix0055'] = 'online last 24 hours'; +$lang['stix0056'] = 'online last %s days'; +$lang['stix0059'] = 'List of user'; +$lang['stix0060'] = 'User'; +$lang['stix0061'] = 'View all versions'; +$lang['stix0062'] = 'View all nations'; +$lang['stix0063'] = 'View all platforms'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'Mijn statistieken'; +$lang['stmy0002'] = 'Rang'; +$lang['stmy0003'] = 'Database ID:'; +$lang['stmy0004'] = 'Unieke ID:'; +$lang['stmy0005'] = 'Totaal connecties naar de server:'; +$lang['stmy0006'] = 'Start datum van statistieken:'; +$lang['stmy0007'] = 'Totaal online tijd.:'; +$lang['stmy0008'] = 'Online tijd laatste %s dagen:'; +$lang['stmy0009'] = 'Active time last %s days:'; +$lang['stmy0010'] = 'Prestaties voltooid:'; +$lang['stmy0011'] = 'Tijd prestaties vooruitgang'; +$lang['stmy0012'] = 'Tijd: Legendarisch'; +$lang['stmy0013'] = 'Omdat je een online tijd hebt van %s uren.'; +$lang['stmy0014'] = 'Vooruitgang voltooid'; +$lang['stmy0015'] = 'Tijd: Goud'; +$lang['stmy0016'] = '% voltooid voor Legendarisch'; +$lang['stmy0017'] = 'Tijd: Zilver'; +$lang['stmy0018'] = '% voltooid voor Goud'; +$lang['stmy0019'] = 'Tijd: Brons'; +$lang['stmy0020'] = '% voltooid voor Zilver'; +$lang['stmy0021'] = 'Tijd: Geen rang'; +$lang['stmy0022'] = '% voltooid voor Brons'; +$lang['stmy0023'] = 'Connectie prestaties vooruitgang'; +$lang['stmy0024'] = 'Connecties: Legendarisch'; +$lang['stmy0025'] = 'Omdat je %s connecties hebt op de server.'; +$lang['stmy0026'] = 'Connecties: Goud'; +$lang['stmy0027'] = 'Connecties: Zilver'; +$lang['stmy0028'] = 'Connecties: Brons'; +$lang['stmy0029'] = 'Connecties: Geen rang'; +$lang['stmy0030'] = 'Vooruitgang volgende servergroep'; +$lang['stmy0031'] = 'Total active time'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Nations'; +$lang['stna0002'] = 'statistics'; +$lang['stna0003'] = 'Code'; +$lang['stna0004'] = 'Count'; +$lang['stna0005'] = 'Versions'; +$lang['stna0006'] = 'Platforms'; +$lang['stna0007'] = 'Percentage'; +$lang['stnv0001'] = 'Server nieuws'; +$lang['stnv0002'] = 'Sluiten'; +$lang['stnv0003'] = 'Ververs client informatie'; +$lang['stnv0004'] = 'Only use this refresh, when your TS3 information got changed, such as your TS3 username'; +$lang['stnv0005'] = 'It only works, when you are connected to the TS3 server at the same time'; +$lang['stnv0006'] = 'Refresh'; +$lang['stnv0016'] = 'Not available'; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = 'Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner.'; +$lang['stnv0019'] = 'My statistics - Page content'; +$lang['stnv0020'] = 'This page contains a overall summary of your personal statistics and activity on the server.'; +$lang['stnv0021'] = 'The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server.'; +$lang['stnv0022'] = 'This page receives its values out of a database. So the values might be delayed a bit.'; +$lang['stnv0023'] = 'The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds).'; +$lang['stnv0024'] = 'Ranksystem - Statistics'; +$lang['stnv0025'] = 'Limit entries'; +$lang['stnv0026'] = 'all'; +$lang['stnv0027'] = 'The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak.'; +$lang['stnv0028'] = '(You are not connected to the TS3!)'; +$lang['stnv0029'] = 'List Rankup'; +$lang['stnv0030'] = 'Ranksystem info'; +$lang['stnv0031'] = 'About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID.'; +$lang['stnv0032'] = 'You can also use a view filter options (see below). Enter the filter also inside the search field.'; +$lang['stnv0033'] = 'Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern.'; +$lang['stnv0034'] = 'Also it is possible to combine multiple filters. Enter this consecutively inside the search field.'; +$lang['stnv0035'] = 'Example:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Show only clients, which are excepted (client, servergroup or channel exception).'; +$lang['stnv0037'] = 'Show only clients, which are not excepted.'; +$lang['stnv0038'] = 'Show only clients, which are online.'; +$lang['stnv0039'] = 'Show only clients, which are not online.'; +$lang['stnv0040'] = 'Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID.'; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'connect TS3'; +$lang['stri0001'] = 'Ranksystem information'; +$lang['stri0002'] = 'What is the Ranksystem?'; +$lang['stri0003'] = 'A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site.'; +$lang['stri0004'] = 'Who created the Ranksystem?'; +$lang['stri0005'] = 'When the Ranksystem was Created?'; +$lang['stri0006'] = 'First alpha release: 05/10/2014.'; +$lang['stri0007'] = 'First beta release: 01/02/2015.'; +$lang['stri0008'] = 'You can see the latest version on the Ranksystem Website.'; +$lang['stri0009'] = 'How was the Ranksystem created?'; +$lang['stri0010'] = 'The Ranksystem is coded in'; +$lang['stri0011'] = 'It uses also the following libraries:'; +$lang['stri0012'] = 'Special Thanks To:'; +$lang['stri0013'] = '%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'] = '%s voor Tsjechische vertaling'; +$lang['stri0025'] = '%s voor Poolse vertaling'; +$lang['stri0026'] = '%s voor Spaanse vertaling'; +$lang['stri0027'] = '%s voor Hongaarse vertaling'; +$lang['stri0028'] = '%s voor Azerbeidzjaanse vertaling'; +$lang['stri0029'] = '%s voor de imprint-functie'; +$lang['stri0030'] = "%s voor de 'CosmicBlue'-stijl voor de statistiekenpagina en de webinterface"; +$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'; +$lang['sttw0004'] = 'Top 10 compared'; +$lang['sttw0005'] = 'Hours (Defines 100 %)'; +$lang['sttw0006'] = '%s hours (%s%)'; +$lang['sttw0007'] = 'Top 10 Statistics'; +$lang['sttw0008'] = 'Top 10 vs others in online time'; +$lang['sttw0009'] = 'Top 10 vs others in active time'; +$lang['sttw0010'] = 'Top 10 vs others in inactive time'; +$lang['sttw0011'] = 'Top 10 (in hours)'; +$lang['sttw0012'] = 'Other %s users (in hours)'; +$lang['sttw0013'] = 'With %s %s active time'; +$lang['sttw0014'] = 'hours'; +$lang['sttw0015'] = 'minutes'; +$lang['stve0001'] = "\nHello %s,\nto verify you with the Ranksystem click on the link below:\n[B]%s[/B]\n\nIf the link doesn't work, you can also type the token manually in:\n%s\n\nIf you didn't request this message, please ignore it. When you are getting it repeated times, please contact an admin."; +$lang['stve0002'] = 'A message with the token was sent to you on the TS3 server.'; +$lang['stve0003'] = 'Please enter the token, which you received on the TS3 server. If you have not received a message, please be sure you have chosen the correct unique ID.'; +$lang['stve0004'] = 'The entered token does not match! Please try it again.'; +$lang['stve0005'] = 'Congratulations, you are successfully verified! You can now go on..'; +$lang['stve0006'] = 'An unknown error happened. Please try it again. On repeated times contact an admin'; +$lang['stve0007'] = 'Verify on TeamSpeak'; +$lang['stve0008'] = 'Choose here your unique ID on the TS3 server to verify yourself.'; +$lang['stve0009'] = ' -- select yourself -- '; +$lang['stve0010'] = 'You will receive a token on the TS3 server, which you have to enter here:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'verify'; +$lang['time_day'] = 'Day(s)'; +$lang['time_hour'] = 'Hour(s)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sec(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'; +$lang['upgrp0003'] = 'Error while writing out the servericon.'; +$lang['upgrp0004'] = 'Error while downloading TS3 ServerIcon from TS3 server: '; +$lang['upgrp0005'] = 'Error while deleting the servericon.'; +$lang['upgrp0006'] = 'Noticed the ServerIcon got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0007'] = 'Error while writing out the servergroup icon from group %s with ID %s.'; +$lang['upgrp0008'] = 'Error while downloading servergroup icon from group %s with ID %s: '; +$lang['upgrp0009'] = 'Error while deleting the servergroup icon from group %s with ID %s.'; +$lang['upgrp0010'] = 'Noticed icon of severgroup %s with ID %s got removed from TS3 server, now it was also removed from the Ranksystem.'; +$lang['upgrp0011'] = 'Download new ServerGroupIcon for group %s with ID: %s'; +$lang['upinf'] = 'A new Version of the Ranksystem is available; Inform clients on server...'; +$lang['upinf2'] = 'The Ranksystem was recently (%s) updated. Check out the %sChangelog%s for more information about the changes.'; +$lang['upmsg'] = "\nHey, a new version of the [B]Ranksystem[/B] is available!\n\ncurrent version: %s\n[B]new version: %s[/B]\n\nPlease check out our site for more informations [URL]%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 informations [URL]%s[/URL]."; +$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!"; +$lang['upusrinf'] = 'User %s was successfully informed.'; +$lang['user'] = 'Username'; +$lang['verify0001'] = 'Please be sure, you are really connected to the TS3 server!'; +$lang['verify0002'] = 'Enter, if not already done, the Ranksystem %sverification-channel%s!'; +$lang['verify0003'] = 'If you are really connected to the TS3 server, please contact an admin there.
This needs to create a verfication channel on the TeamSpeak server. After this, the created channel needs to be defined to the Ranksystem, which only an admin can do.
More information the admin will find inside the webinterface (-> stats page) of the Ranksystem.

Without this activity it is not possible to verify you for the Ranksystem at this moment! Sorry :('; +$lang['verify0004'] = 'No user inside the verification channel found...'; +$lang['wi'] = 'Webinterface'; +$lang['wiaction'] = 'action'; +$lang['wiadmhide'] = 'hide excepted clients'; +$lang['wiadmhidedesc'] = 'To hide excepted user in the following selection'; +$lang['wiadmuuid'] = '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['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['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!'; +$lang['wibot4'] = 'Start / Stop Ranksystem Bot'; +$lang['wibot5'] = 'Start Bot'; +$lang['wibot6'] = 'Stop Bot'; +$lang['wibot7'] = 'Restart Bot'; +$lang['wibot8'] = 'Ranksystem log (extract):'; +$lang['wibot9'] = 'Fill out all mandatory fields before starting the Ranksystem Bot!'; +$lang['wichdbid'] = 'Client-database-ID reset'; +$lang['wichdbiddesc'] = '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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

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

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

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['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.

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

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = 'servergroup exception'; +$lang['wiexgrpdesc'] = 'A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up.'; +$lang['wiexres'] = 'exception mode'; +$lang['wiexres1'] = '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): At 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 actual value (before the user got excepted). After loosing the excepted reason (after removing the excepted servergroup or remove the expection rule) the 'counting' will go on.

3) reset time: With this function the counted online and idle time will be resetting to zero at the moment the user are not any more excepted (due removing the excepted servergroup or remove the exception rule). The 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 seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up.'; +$lang['wiexregrp'] = 'verwijder groep'; +$lang['wiexregrpdesc'] = "Als een gebruiker uitgesloten is van Ranksystem, wordt de door Ranksystem toegewezen servergroep verwijderd.

De groep wordt alleen verwijderd met de '".$lang['wiexres']."' met de '".$lang['wiexres1']."'. In alle andere modi wordt de servergroep niet verwijderd.

Deze functie is alleen relevant in combinatie met een '".$lang['wiexuid']."' of een '".$lang['wiexgrp']."' in combinatie met de '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'Rank Definition'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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['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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Logpath'; +$lang['wilogdesc'] = 'Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

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

This message will be send 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 modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)'; +$lang['wimsgusr'] = 'Rank up notification'; +$lang['wimsgusrdesc'] = 'Inform an user with a private text message about his rank up.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$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['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['winxmsg2'] = 'Message (highest)'; +$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. 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"; +$lang['wirtpw5'] = 'There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login.'; +$lang['wirtpw6'] = 'The password of the webinterface has been successfully reset. Request from IP %s.'; +$lang['wirtpw7'] = 'Reset Password'; +$lang['wirtpw8'] = 'Here you can reset the password for the webinterface.'; +$lang['wirtpw9'] = 'Following things are required to reset the password:'; +$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'active time'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'online time'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$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 conside for the Ranksystem."; +$lang['wishhicld'] = 'Clients in highest Level'; +$lang['wishhiclddesc'] = 'Show clients in list_rankup.php, which reached the highest level in the Ranksystem.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'aangepaste stijl'; +$lang['wistyledesc'] = "Definieer een aangepaste stijl voor het Ranksysteem.
Deze stijl wordt gebruikt voor de statistiekenpagina en het webinterface.

Plaats je eigen stijl in de map 'style' in een submap.
De naam van de submap bepaalt de naam van de stijl.

Stijlen die beginnen met 'TSN_' worden geleverd door het Ranksysteem. Deze worden bijgewerkt in toekomstige updates.
Maak geen aanpassingen aan deze stijlen!
Maar je kunt ze gebruiken als sjabloon. Kopieer de stijl naar een eigen map om aanpassingen te maken.

Er zijn twee CSS-bestanden vereist. Een voor de statistiekenpagina en een voor het webinterface.
Je kunt ook een eigen JavaScript toevoegen, maar dit is optioneel.

Naamgevingsconventie voor CSS:
- Vaste 'ST.css' voor de statistiekenpagina (/stats/)
- Vaste 'WI.css' voor de webinterfacepagina (/webinterface/)


Naamgevingsconventie voor JavaScript:
- Vaste 'ST.js' voor de statistiekenpagina (/stats/)
- Vaste 'WI.js' voor de webinterfacepagina (/webinterface/)


Als je je stijl ook met anderen wilt delen, kun je deze sturen naar het volgende e-mailadres:

%s

We zullen deze in de volgende release leveren!"; +$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['wisvres'] = 'You need to restart the Ranksystem before the changes will take effect! %s'; +$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['wits3pre'] = 'Voorvoegsel van bot-commando'; +$lang['wits3predesc'] = "Op de TeamSpeak-server kun je communiceren met de Ranksystem-bot via de chat. Standaard zijn bot-commando's gemarkeerd met een uitroepteken '!'. De voorvoegsel wordt gebruikt om commando's voor de bot te identificeren als zodanig.

Dit voorvoegsel kan worden vervangen door een ander gewenst voorvoegsel. Dit kan nodig zijn als er andere bots worden gebruikt met vergelijkbare commando's.

Bijvoorbeeld, het standaard bot-commando zou er als volgt uitzien:
!help


Als het voorvoegsel wordt vervangen door '#', zou het commando er als volgt uitzien:
#help
"; +$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'; +$lang['wits3querpwdesc'] = 'TeamSpeak 3 query password
Password for the query user.'; +$lang['wits3querusr'] = 'TS3 Query-User'; +$lang['wits3querusrdesc'] = 'TeamSpeak 3 query username
Default is serveradmin
Of course, you can also create an additional serverquery account only for the Ranksystem.
The needed permissions you find on:
%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['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'; +$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['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 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'] = '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.'; diff --git a/languages/core_pl_polski_pl.php b/languages/core_pl_polski_pl.php index 94c1b71..3565612 100644 --- a/languages/core_pl_polski_pl.php +++ b/languages/core_pl_polski_pl.php @@ -1,708 +1,708 @@ - dodany do Ranksystemu teraz."; -$lang['api'] = "API"; -$lang['apikey'] = "Klucz API"; -$lang['apiperm001'] = "Zezwalaj na uruchamianie/zatrzymywanie bota Ranksystem za pomocą API"; -$lang['apipermdesc'] = "(ON = Zezwalaj ; OFF = ZabroƄ)"; -$lang['addonchch'] = "KanaƂ"; -$lang['addonchchdesc'] = "Wybierz kanaƂ, na którym chcesz ustawić opis kanaƂu."; -$lang['addonchdesc'] = "Opis kanaƂu"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Nazwa zmiennej"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "OpĂłĆșnienie"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Tryb"; -$lang['addonchmo1'] = "Top tygodnia - czasu aktywnoƛci"; -$lang['addonchmo2'] = "Top tygodnia - czasu online"; -$lang['addonchmo3'] = "Top miesiąca - czasu aktywnoƛci"; -$lang['addonchmo4'] = "Top miesiąca - czasu online"; -$lang['addonchmo5'] = "Top wszechczasów - czasu aktywnoƛci"; -$lang['addonchmo6'] = "Top wszechczasów - czasu online"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "rosnąco"; -$lang['autooff'] = "autostart is deactivated"; -$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'] = "Ú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'] = "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 moĆŒna poƂączyć się z bazą danych: "; -$lang['desc'] = "malejąco"; -$lang['descr'] = "Opis"; -$lang['duration'] = "Czas trwania"; -$lang['errcsrf'] = "CSRF Token jest zƂy lub wygasƂ (=security-check failed)! OdƛwieĆŒ proszę stronę i sprĂłbuj ponownie. Jeƛli bƂąd ten powtarza się wielokrotnie, usuƄ plik cookie sesji z przeglądarki i sprĂłbuj 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 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'] = "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 najwyĆŒszą range"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "w sekundach"; -$lang['install'] = "Instalacja"; -$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 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 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)"; -$lang['isntwidbmsg'] = "Database error: "; -$lang['isntwidbname'] = "DB Name:"; -$lang['isntwidbnamedesc'] = "Name of database"; -$lang['isntwidbpass'] = "DB Password:"; -$lang['isntwidbpassdesc'] = "Password to access the database"; -$lang['isntwidbtype'] = "DB Type:"; -$lang['isntwidbtypedesc'] = "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'] = "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['listnat'] = "Kraj"; -$lang['listnick'] = "Nazwa klienta"; -$lang['listnxsg'] = "Następna grupa serwerowa"; -$lang['listnxup'] = "Następna ranga"; -$lang['listpla'] = "Platforma"; -$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['listver'] = "Wersja klienta"; -$lang['login'] = "Zaloguj się"; -$lang['module_disabled'] = "Ten moduƂ jest nieaktywny."; -$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 się natychmiast."; -$lang['msg0009'] = "Czyszczenie bazy danych uĆŒytkownikĂłw zostaƂo uruchomione."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Oczyszczona pamięć podręczna grup. Rozpoczęcie Ƃadowania grup i ikon..."; -$lang['noentry'] = "Nie znaleziono wpisĂłw ..."; -$lang['pass'] = "HasƂo"; -$lang['pass2'] = "ZmieƄ hasƂo"; -$lang['pass3'] = "Stare hasƂo"; -$lang['pass4'] = "Nowe hasƂo"; -$lang['pass5'] = "ZapomniaƂeƛ hasƂa?"; -$lang['permission'] = "Uprawnienia"; -$lang['privacy'] = "Polityka prywatnoƛci"; -$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)."; -$lang['setontime'] = "Dodaj czas"; -$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'] = "Przyznano grupe serwerową %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'] = "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_pib'] = "PiB"; -$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'] = "Wybierz grupy serwerĂłw, ktĂłre uĆŒytkownik moĆŒe przypisać do siebie."; -$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. 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 moĆŒna byƂo Cię znaleĆșć na serwerze TeamSpeak. Proszę %skliknij tutaj%s aby się zweryfikować."; -$lang['stag0016'] = "potrzebna weryfikacja!"; -$lang['stag0017'] = "weryfikacja tutaj.."; -$lang['stag0018'] = "Lista wyƂączonych grup serwerowych. Jeƛli uĆŒytkownik jest wƂaƛcicielem jednej z tych grup serwerĂłw, nie będzie mĂłgƂ korzystać z Dodatku."; -$lang['stag0019'] = "Jesteƛ wykluczony z tej funkcji, poniewaĆŒ jesteƛ czƂonkiem grupy serwerowej: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Statystyki serwera"; -$lang['stix0002'] = "Liczba uĆŒytkownikĂłw"; -$lang['stix0003'] = "PokaĆŒ listę wszystkich uĆŒytkownikĂłw"; -$lang['stix0004'] = "Czas online wszystkich uĆŒytkownikĂłw / Ɓącznie"; -$lang['stix0005'] = "Zobacz najwyzszy czas"; -$lang['stix0006'] = "PokaĆŒ TOP 10 uĆŒytkownikĂłw miesiąca"; -$lang['stix0007'] = "PokaĆŒ TOP 10 uĆŒytkownikĂłw tygodnia"; -$lang['stix0008'] = "Wykorzystanie serwera"; -$lang['stix0009'] = "W ciągu ostatnich 7 dni"; -$lang['stix0010'] = "W ciągu ostatnich 30 dni"; -$lang['stix0011'] = "W ciągu ostatnich 24 godzin"; -$lang['stix0012'] = "wybierz okres"; -$lang['stix0013'] = "Ostatnie 24 godziny"; -$lang['stix0014'] = "Ostatnie 7 dni"; -$lang['stix0015'] = "Ostatnie 30 dni"; -$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'] = "Iloƛć kanaƂów"; -$lang['stix0028'] = "Úredni ping serwera"; -$lang['stix0029'] = "Ɓącznie otrzymane bajty"; -$lang['stix0030'] = "WysƂane wszystkie bajty"; -$lang['stix0031'] = "Czas pracy serwera"; -$lang['stix0032'] = "Przed offline:"; -$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"; -$lang['stix0039'] = "Nie (serwer jest publiczny)"; -$lang['stix0040'] = "Tak (serwer jest prywatny)"; -$lang['stix0041'] = "ID serwera"; -$lang['stix0042'] = "Platforma serwerowa"; -$lang['stix0043'] = "Wersja serwerera TS3"; -$lang['stix0044'] = "Data utworzenia serwera (dd/mm/yyyy)"; -$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 wszystkich uĆŒytkownikĂłw / miesiąc"; -$lang['stix0050'] = "Czas online wszystkich uĆŒytkownikĂłw / tydzieƄ"; -$lang['stix0051'] = "TeamSpeak zawiĂłdƂ, więc 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 uĆŒytkownikĂłw"; -$lang['stix0060'] = "UĆŒytkownik"; -$lang['stix0061'] = "Wyƛwietl wszystkie wersje"; -$lang['stix0062'] = "Zobacz wszystkie narody"; -$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 rozpoczęcia statystyk:"; -$lang['stmy0007'] = "Ɓączny czas online:"; -$lang['stmy0008'] = "Czas online ostatnich %s dni:"; -$lang['stmy0009'] = "Aktywny czas ostatnich %s dni:"; -$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['stmy0019'] = "Czas: Brązowy"; -$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'] = "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['stmy0032'] = "Ostatnio obliczono:"; -$lang['stna0001'] = "Narody"; -$lang['stna0002'] = "Statystyka"; -$lang['stna0003'] = "Kod"; -$lang['stna0004'] = "Liczba"; -$lang['stna0005'] = "Wersje"; -$lang['stna0006'] = "Platformy"; -$lang['stna0007'] = "Procentowo"; -$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ĆŒ"; -$lang['stnv0016'] = "Niedostepnę"; -$lang['stnv0017'] = "Nie jestes podƂączony do serwera TS3, wiec nie mozesz wyswietlic zadnych danych."; -$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 - Zawartoƛć strony"; -$lang['stnv0020'] = "Ta strona zawiera ogĂłlne podsumowanie Twoich osobistych statystyk i aktywnoƛci na serwerze."; -$lang['stnv0021'] = "Informacje te są zbierane od początku istnienia Ranksystemu, nie są one zbierane od początku istnienia serwera TeamSpeak."; -$lang['stnv0022'] = "Ta strona otrzymuje swoje wartoƛci z bazy danych. Wartoƛci te mogą być więc nieco opĂłĆșnione."; -$lang['stnv0023'] = "Iloƛć czasu online dla wszystkich uĆŒytkownikĂłw na tydzieƄ i na miesiąc będzie obliczana tylko co 15 minut. Wszystkie inne wartoƛci powinny być prawie na ĆŒywo (maksymalnie z kilkusekundowym opĂłĆșnieniem)."; -$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 juĆŒ poƂączony z TeamSpeakiem."; -$lang['stnv0028'] = "(Nie jesteƛ podƂączony do TS3!)"; -$lang['stnv0029'] = "Lista rankingowa"; -$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'] = "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'] = "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'] = "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Ƃ Ranksystem?"; -$lang['stri0005'] = "Kiedy Ranksystem zostaƂ utworzony?"; -$lang['stri0006'] = "Pierwsze wydanie alfa: 05/10/2014."; -$lang['stri0007'] = "Pierwsze wydanie beta: 01/02/2015."; -$lang['stri0008'] = "MoĆŒesz zobaczyć najnowszą wersje na stronie Ranksystem."; -$lang['stri0009'] = "Jak powstaƂ system Ranksystem?"; -$lang['stri0010'] = "Ranksystem powstaƂ w technologii"; -$lang['stri0011'] = "UĆŒywa rĂłwnieĆŒ nastepujących bibliotek:"; -$lang['stri0012'] = "Specjalne podziękowania dla:"; -$lang['stri0013'] = "%s za rosyjskie tƂumaczenie"; -$lang['stri0014'] = "%s za styl do bootstrap'a"; -$lang['stri0015'] = "%s za wƂoskie tƂumaczenie"; -$lang['stri0016'] = "%s za arabskie tƂumaczenie"; -$lang['stri0017'] = "%s za rumuƄskie tƂumaczenie"; -$lang['stri0018'] = "%s za holenderskie tƂumaczenie"; -$lang['stri0019'] = "%s za francuskie tƂumaczenie"; -$lang['stri0020'] = "%s za portugalskie tƂumaczenie"; -$lang['stri0021'] = "%s za ƛwietne wsparcie w GitHub i nasz publiczny serwer, dzielenie się swoimi pomysƂami, wstępne testowanie wszystkiego i wiele więcej"; -$lang['stri0022'] = "%s za dzielenie się swoimi pomysƂami i wstępnymi testami"; -$lang['stri0023'] = "Stabilny od: 18/04/2016."; -$lang['stri0024'] = "%s za czeskie tƂumaczenie"; -$lang['stri0025'] = "%s za polskie tƂumaczenie"; -$lang['stri0026'] = "%s za hiszpaƄskie tƂumaczenie"; -$lang['stri0027'] = "%s za węgierskie tƂumaczenie"; -$lang['stri0028'] = "%s za azerbejdĆŒaƄskie tƂumaczenie"; -$lang['stri0029'] = "%s za funkjcę imprintu"; -$lang['stri0030'] = "%s za styl 'CosmicBlue' dla strony statystyk i interfejsu web"; -$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 porĂłwnaniu"; -$lang['sttw0005'] = "Godziny (Definiuje 100 %)"; -$lang['sttw0006'] = "%s godziny (%s%)"; -$lang['sttw0007'] = "Top 10 najlepszych statystyk"; -$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'] = "Inni %s uĆŒytkownicy (w godzinach)"; -$lang['sttw0013'] = "Z %s %s czasu aktywnego"; -$lang['sttw0014'] = "Godziny"; -$lang['sttw0015'] = "minuty"; -$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 się z administratorem"; -$lang['stve0007'] = "SprawdĆș na TeamSpeak"; -$lang['stve0008'] = "Wybierz tutaj swĂłj unikalny identyfikator klienta na serwerze TS3, aby się zweryfikować."; -$lang['stve0009'] = " -- wybierz siebie -- "; -$lang['stve0010'] = "Otrzymasz token na serwerze TS3, ktĂłry musisz wprowadzić tutaj:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "Zweryfikuj się"; -$lang['time_day'] = "DzieƄ"; -$lang['time_hour'] = "Godzina(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Sec(s)"; -$lang['unknown'] = "unknown"; -$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'] = "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 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 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 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'] = "UĆŒytkownik %s zostaƂ poinformowany."; -$lang['user'] = "Nazwa uĆŒytkownika"; -$lang['verify0001'] = "Upewnij się, ze naprawdę jesteƛ podƂączony do serwera TS3!"; -$lang['verify0002'] = "PoƂącz się z serwerem, jeƛli jeszcze tego nie zrobiƂeƛ, RankSystem %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 ĆŒadnego uĆŒytkownika w kanale weryfikacyjnym..."; -$lang['wi'] = "Interfejs sieciowy"; -$lang['wiaction'] = "akcja"; -$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['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 (logi):"; -$lang['wibot9'] = "WypeƂnij wszystkie obowiązkowe pola przed uruchomieniem bota Ranksystem!"; -$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'] = "ZmieƄ hasƂo"; -$lang['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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 wyƛwietlania daty.

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'] = "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 (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 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 klientów, ktorych nie nalezy uwzgledniac w systemie Ranksystem.
Uzytkownik na tej liscie zostanie zignorowany w rankingu."; -$lang['wiexregrp'] = "usuƄ grupę"; -$lang['wiexregrpdesc'] = "Jeƛli uĆŒytkownik jest wykluczony z Ranksystem, grupa serwera przypisana przez Ranksystem zostanie usunięta.

Grupa zostanie usunięta tylko z '".$lang['wiexres']."' z '".$lang['wiexres1']."'. W pozostaƂych trybach grupa serwera nie zostanie usunięta.

Ta funkcja jest relevantna tylko w poƂączeniu z '".$lang['wiexuid']."' lub '".$lang['wiexgrp']."' w poƂączeniu z '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Czas w sekundach"; -$lang['wigrpt2'] = "Grupa serwerowa"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "Definiowanie rang"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasię uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy) => identyfikator grupy serwerow => permanent flag

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=>0,120=>10=>0,180=>11=>0
W tym przypadku uzytkownik dostaje po 60 sekundach grupe serwerow 9, po kolei po 60 sekundach grupa serwerow 10 itd."; -$lang['wigrptk'] = "cumulative"; -$lang['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$lang['wihladm'] = "Lista Rankup (tryb administratora)"; -$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['wihladm3'] = "Reset Ranksystem"; -$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)"; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Proszę wybrać co najmniej jedną opcję!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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'] = "NIE wyƂączaj ani nie uruchamiaj ponownie bota podczas resetowania!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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['wiimpaddr'] = "Adres"; -$lang['wiimpaddrdesc'] = "Wpisz tutaj swoje imię i nazwisko oraz adres.
PrzykƂad:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "Adres E-Mail"; -$lang['wiimpemaildesc'] = "Wpisz tutaj swĂłj adres e-mail.
PrzykƂad:
info@example.com
"; -$lang['wiimpnotes'] = "Dodatkowe informacje"; -$lang['wiimpnotesdesc'] = "Dodaj dodatkowe informacje, takie jak zastrzeĆŒenie.
Zostaw pole puste, aby ta sekcja nie pojawiƂa się.
Kod HTML do formatowania jest dozwolony."; -$lang['wiimpphone'] = "Telefon"; -$lang['wiimpphonedesc'] = "Wpisz tutaj swój numer telefonu z międzynarodowym numerem kierunkowym.
PrzykƂad:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Wpisz tutaj swoją politykę prywatnoƛci (maksymalnie 21 588 znaków).
Kod HTML do formatowania jest dozwolony."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Funkcja Imprint"; -$lang['wiimpswitchdesc'] = "Aktywuj tę funkcję, aby publicznie wyƛwietlić deklarację imprintu i ochrony danych."; -$lang['wilog'] = "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'] = "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 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['winav13'] = "OgĂłlne (Statystyka)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "Baza danych"; -$lang['winav3'] = "RdzeƄ"; -$lang['winav4'] = "Inne"; -$lang['winav5'] = "Wiadomoƛci"; -$lang['winav6'] = "Strona statystyk"; -$lang['winav7'] = "Administracja"; -$lang['winav8'] = "Start / Stop bot"; -$lang['winav9'] = "Dostępna aktualizacja!"; -$lang['winxinfo'] = "Polecenie \"!nextup\""; -$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'] = "wyƂączone"; -$lang['winxmode2'] = "dozwolone - tylko nastepna ranga"; -$lang['winxmode3'] = "dozwolone - wszystkie kolejne stopnie"; -$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 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['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "PokaĆŒ/ukryj kolumnę"; -$lang['wishcolat'] = "Czas aktywny"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "czas online"; -$lang['wishdef'] = "Domyƛlne sortowanie kolumn"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Zdefiniuj domyƛlną kolumnę sortowania dla strony Rankup listy."; -$lang['wishexcld'] = "z wyjątkiem klienta"; -$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'] = "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'] = "PokaĆŒ klientĂłw w list_rankup.php, ktory osiągnąƂ najwyzszy poziom w Ranksystem."; -$lang['wishmax'] = "Wykres wykorzystania serwera"; -$lang['wishmax0'] = "wyƛwietl wszystkie statystyki"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "ukryj kanaƂ"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "Niestandardowy styl"; -$lang['wistyledesc'] = "Okreƛl alternatywny, niestandardowy styl dla Ranksystem.
Ten styl będzie uĆŒywany na stronie statystyk i interfejsie webowym.

Umieƛć swój styl w katalogu 'style' w podkatalogu.
Nazwa podkatalogu okreƛla nazwę stylu.

Style zaczynające się od 'TSN_' są dostarczane przez Ranksystem. Są one aktualizowane przez przyszƂe aktualizacje.
Nie powinno się więc dokonywać w nich ĆŒadnych zmian!
Jednak mogą one sƂuĆŒyć jako wzĂłr. Skopiuj styl do wƂasnego katalogu, aby dokonać w nim zmian.

Potrzebne są dwa pliki CSS. Jeden dla strony statystyk i jeden dla interfejsu webowego.
MoĆŒna rĂłwnieĆŒ zaƂączyć wƂasne skrypty JavaScript. Jest to jednak opcjonalne.

Konwencja nazw dla CSS:
- StaƂe 'ST.css' dla strony statystyk (/stats/)
- StaƂe 'WI.css' dla strony interfejsu webowego (/webinterface/)


Konwencja nazw dla JavaScript:
- StaƂe 'ST.js' dla strony statystyk (/stats/)
- StaƂe 'WI.js' dla strony interfejsu webowego (/webinterface/)


Jeƛli chcesz udostępnić swĂłj styl innym, moĆŒesz wysƂać go na poniĆŒszy adres e-mail:

%s

Dodamy go z następną aktualizacją!"; -$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 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 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['wits3pre'] = "Prefiks polecenia bota"; -$lang['wits3predesc'] = "Na serwerze TeamSpeak moĆŒesz porozumiewać się z botem Ranksystem za poƛrednictwem czatu. Domyƛlnie polecenia bota są oznaczone wykrzyknikiem '!'. Prefiks jest uĆŒywany do identyfikacji poleceƄ dla bota jako takich.

Ten prefiks moĆŒna zastąpić dowolnym innym poĆŒÄ…danym prefiksem. MoĆŒe to być konieczne, jeƛli uĆŒywane są inne boti z podobnymi poleceniami.

Na przykƂad domyƛlne polecenie bota wyglądaƂoby tak:
!help


Jeƛli prefiks zostanie zastąpiony znakiem '#', polecenie wyglądać będzie następująco:
#help
"; -$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
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'] = "KanaƂ aktualizacji"; -$lang['wiupch0'] = "stable (stabilna)"; -$lang['wiupch1'] = "beta (eksperymentalna)"; -$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'] = "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."; -?> + dodany do Ranksystemu teraz.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'Klucz API'; +$lang['apiperm001'] = 'Zezwalaj na uruchamianie/zatrzymywanie bota Ranksystem za pomocą API'; +$lang['apipermdesc'] = '(ON = Zezwalaj ; OFF = ZabroƄ)'; +$lang['addonchch'] = 'KanaƂ'; +$lang['addonchchdesc'] = 'Wybierz kanaƂ, na ktĂłrym chcesz ustawić opis kanaƂu.'; +$lang['addonchdesc'] = 'Opis kanaƂu'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Nazwa zmiennej'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'OpĂłĆșnienie'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Tryb'; +$lang['addonchmo1'] = 'Top tygodnia - czasu aktywnoƛci'; +$lang['addonchmo2'] = 'Top tygodnia - czasu online'; +$lang['addonchmo3'] = 'Top miesiąca - czasu aktywnoƛci'; +$lang['addonchmo4'] = 'Top miesiąca - czasu online'; +$lang['addonchmo5'] = 'Top wszechczasów - czasu aktywnoƛci'; +$lang['addonchmo6'] = 'Top wszechczasów - czasu online'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'rosnąco'; +$lang['autooff'] = 'autostart is deactivated'; +$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'] = 'Ú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'] = '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 moĆŒna poƂączyć się z bazą danych: '; +$lang['desc'] = 'malejąco'; +$lang['descr'] = 'Opis'; +$lang['duration'] = 'Czas trwania'; +$lang['errcsrf'] = 'CSRF Token jest zƂy lub wygasƂ (=security-check failed)! OdƛwieĆŒ proszę stronę i sprĂłbuj ponownie. Jeƛli bƂąd ten powtarza się wielokrotnie, usuƄ plik cookie sesji z przeglądarki i sprĂłbuj 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 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'] = "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 najwyĆŒszą range'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'w sekundach'; +$lang['install'] = 'Instalacja'; +$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 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 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)'; +$lang['isntwidbmsg'] = 'Database error: '; +$lang['isntwidbname'] = 'DB Name:'; +$lang['isntwidbnamedesc'] = 'Name of database'; +$lang['isntwidbpass'] = 'DB Password:'; +$lang['isntwidbpassdesc'] = 'Password to access the database'; +$lang['isntwidbtype'] = 'DB Type:'; +$lang['isntwidbtypedesc'] = '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'] = '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['listnat'] = 'Kraj'; +$lang['listnick'] = 'Nazwa klienta'; +$lang['listnxsg'] = 'Następna grupa serwerowa'; +$lang['listnxup'] = 'Następna ranga'; +$lang['listpla'] = 'Platforma'; +$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['listver'] = 'Wersja klienta'; +$lang['login'] = 'Zaloguj się'; +$lang['module_disabled'] = 'Ten moduƂ jest nieaktywny.'; +$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 się natychmiast.'; +$lang['msg0009'] = 'Czyszczenie bazy danych uĆŒytkownikĂłw zostaƂo uruchomione.'; +$lang['msg0010'] = 'Run command !log to get more information.'; +$lang['msg0011'] = 'Oczyszczona pamięć podręczna grup. Rozpoczęcie Ƃadowania grup i ikon...'; +$lang['noentry'] = 'Nie znaleziono wpisĂłw ...'; +$lang['pass'] = 'HasƂo'; +$lang['pass2'] = 'ZmieƄ hasƂo'; +$lang['pass3'] = 'Stare hasƂo'; +$lang['pass4'] = 'Nowe hasƂo'; +$lang['pass5'] = 'ZapomniaƂeƛ hasƂa?'; +$lang['permission'] = 'Uprawnienia'; +$lang['privacy'] = 'Polityka prywatnoƛci'; +$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).'; +$lang['setontime'] = 'Dodaj czas'; +$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'] = 'Przyznano grupe serwerową %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'] = '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_pib'] = 'PiB'; +$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'] = 'Wybierz grupy serwerĂłw, ktĂłre uĆŒytkownik moĆŒe przypisać do siebie.'; +$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. 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 moĆŒna byƂo Cię znaleĆșć na serwerze TeamSpeak. Proszę %skliknij tutaj%s aby się zweryfikować.'; +$lang['stag0016'] = 'potrzebna weryfikacja!'; +$lang['stag0017'] = 'weryfikacja tutaj..'; +$lang['stag0018'] = 'Lista wyƂączonych grup serwerowych. Jeƛli uĆŒytkownik jest wƂaƛcicielem jednej z tych grup serwerĂłw, nie będzie mĂłgƂ korzystać z Dodatku.'; +$lang['stag0019'] = 'Jesteƛ wykluczony z tej funkcji, poniewaĆŒ jesteƛ czƂonkiem grupy serwerowej: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Statystyki serwera'; +$lang['stix0002'] = 'Liczba uĆŒytkownikĂłw'; +$lang['stix0003'] = 'PokaĆŒ listę wszystkich uĆŒytkownikĂłw'; +$lang['stix0004'] = 'Czas online wszystkich uĆŒytkownikĂłw / Ɓącznie'; +$lang['stix0005'] = 'Zobacz najwyzszy czas'; +$lang['stix0006'] = 'PokaĆŒ TOP 10 uĆŒytkownikĂłw miesiąca'; +$lang['stix0007'] = 'PokaĆŒ TOP 10 uĆŒytkownikĂłw tygodnia'; +$lang['stix0008'] = 'Wykorzystanie serwera'; +$lang['stix0009'] = 'W ciągu ostatnich 7 dni'; +$lang['stix0010'] = 'W ciągu ostatnich 30 dni'; +$lang['stix0011'] = 'W ciągu ostatnich 24 godzin'; +$lang['stix0012'] = 'wybierz okres'; +$lang['stix0013'] = 'Ostatnie 24 godziny'; +$lang['stix0014'] = 'Ostatnie 7 dni'; +$lang['stix0015'] = 'Ostatnie 30 dni'; +$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'] = 'Iloƛć kanaƂów'; +$lang['stix0028'] = 'Úredni ping serwera'; +$lang['stix0029'] = 'Ɓącznie otrzymane bajty'; +$lang['stix0030'] = 'WysƂane wszystkie bajty'; +$lang['stix0031'] = 'Czas pracy serwera'; +$lang['stix0032'] = 'Przed offline:'; +$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'; +$lang['stix0039'] = 'Nie (serwer jest publiczny)'; +$lang['stix0040'] = 'Tak (serwer jest prywatny)'; +$lang['stix0041'] = 'ID serwera'; +$lang['stix0042'] = 'Platforma serwerowa'; +$lang['stix0043'] = 'Wersja serwerera TS3'; +$lang['stix0044'] = 'Data utworzenia serwera (dd/mm/yyyy)'; +$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 wszystkich uĆŒytkownikĂłw / miesiąc'; +$lang['stix0050'] = 'Czas online wszystkich uĆŒytkownikĂłw / tydzieƄ'; +$lang['stix0051'] = 'TeamSpeak zawiĂłdƂ, więc 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 uĆŒytkownikĂłw'; +$lang['stix0060'] = 'UĆŒytkownik'; +$lang['stix0061'] = 'Wyƛwietl wszystkie wersje'; +$lang['stix0062'] = 'Zobacz wszystkie narody'; +$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 rozpoczęcia statystyk:'; +$lang['stmy0007'] = 'Ɓączny czas online:'; +$lang['stmy0008'] = 'Czas online ostatnich %s dni:'; +$lang['stmy0009'] = 'Aktywny czas ostatnich %s dni:'; +$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['stmy0019'] = 'Czas: Brązowy'; +$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'] = '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['stmy0032'] = 'Ostatnio obliczono:'; +$lang['stna0001'] = 'Narody'; +$lang['stna0002'] = 'Statystyka'; +$lang['stna0003'] = 'Kod'; +$lang['stna0004'] = 'Liczba'; +$lang['stna0005'] = 'Wersje'; +$lang['stna0006'] = 'Platformy'; +$lang['stna0007'] = 'Procentowo'; +$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ĆŒ'; +$lang['stnv0016'] = 'Niedostepnę'; +$lang['stnv0017'] = 'Nie jestes podƂączony do serwera TS3, wiec nie mozesz wyswietlic zadnych danych.'; +$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 - Zawartoƛć strony'; +$lang['stnv0020'] = 'Ta strona zawiera ogĂłlne podsumowanie Twoich osobistych statystyk i aktywnoƛci na serwerze.'; +$lang['stnv0021'] = 'Informacje te są zbierane od początku istnienia Ranksystemu, nie są one zbierane od początku istnienia serwera TeamSpeak.'; +$lang['stnv0022'] = 'Ta strona otrzymuje swoje wartoƛci z bazy danych. Wartoƛci te mogą być więc nieco opĂłĆșnione.'; +$lang['stnv0023'] = 'Iloƛć czasu online dla wszystkich uĆŒytkownikĂłw na tydzieƄ i na miesiąc będzie obliczana tylko co 15 minut. Wszystkie inne wartoƛci powinny być prawie na ĆŒywo (maksymalnie z kilkusekundowym opĂłĆșnieniem).'; +$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 juĆŒ poƂączony z TeamSpeakiem.'; +$lang['stnv0028'] = '(Nie jesteƛ podƂączony do TS3!)'; +$lang['stnv0029'] = 'Lista rankingowa'; +$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'] = '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'] = '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'] = '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Ƃ Ranksystem?'; +$lang['stri0005'] = 'Kiedy Ranksystem zostaƂ utworzony?'; +$lang['stri0006'] = 'Pierwsze wydanie alfa: 05/10/2014.'; +$lang['stri0007'] = 'Pierwsze wydanie beta: 01/02/2015.'; +$lang['stri0008'] = 'MoĆŒesz zobaczyć najnowszą wersje na stronie Ranksystem.'; +$lang['stri0009'] = 'Jak powstaƂ system Ranksystem?'; +$lang['stri0010'] = 'Ranksystem powstaƂ w technologii'; +$lang['stri0011'] = 'UĆŒywa rĂłwnieĆŒ nastepujących bibliotek:'; +$lang['stri0012'] = 'Specjalne podziękowania dla:'; +$lang['stri0013'] = '%s za rosyjskie tƂumaczenie'; +$lang['stri0014'] = "%s za styl do bootstrap'a"; +$lang['stri0015'] = '%s za wƂoskie tƂumaczenie'; +$lang['stri0016'] = '%s za arabskie tƂumaczenie'; +$lang['stri0017'] = '%s za rumuƄskie tƂumaczenie'; +$lang['stri0018'] = '%s za holenderskie tƂumaczenie'; +$lang['stri0019'] = '%s za francuskie tƂumaczenie'; +$lang['stri0020'] = '%s za portugalskie tƂumaczenie'; +$lang['stri0021'] = '%s za ƛwietne wsparcie w GitHub i nasz publiczny serwer, dzielenie się swoimi pomysƂami, wstępne testowanie wszystkiego i wiele więcej'; +$lang['stri0022'] = '%s za dzielenie się swoimi pomysƂami i wstępnymi testami'; +$lang['stri0023'] = 'Stabilny od: 18/04/2016.'; +$lang['stri0024'] = '%s za czeskie tƂumaczenie'; +$lang['stri0025'] = '%s za polskie tƂumaczenie'; +$lang['stri0026'] = '%s za hiszpaƄskie tƂumaczenie'; +$lang['stri0027'] = '%s za węgierskie tƂumaczenie'; +$lang['stri0028'] = '%s za azerbejdĆŒaƄskie tƂumaczenie'; +$lang['stri0029'] = '%s za funkjcę imprintu'; +$lang['stri0030'] = "%s za styl 'CosmicBlue' dla strony statystyk i interfejsu web"; +$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 porĂłwnaniu'; +$lang['sttw0005'] = 'Godziny (Definiuje 100 %)'; +$lang['sttw0006'] = '%s godziny (%s%)'; +$lang['sttw0007'] = 'Top 10 najlepszych statystyk'; +$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'] = 'Inni %s uĆŒytkownicy (w godzinach)'; +$lang['sttw0013'] = 'Z %s %s czasu aktywnego'; +$lang['sttw0014'] = 'Godziny'; +$lang['sttw0015'] = 'minuty'; +$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 się z administratorem'; +$lang['stve0007'] = 'SprawdĆș na TeamSpeak'; +$lang['stve0008'] = 'Wybierz tutaj swĂłj unikalny identyfikator klienta na serwerze TS3, aby się zweryfikować.'; +$lang['stve0009'] = ' -- wybierz siebie -- '; +$lang['stve0010'] = 'Otrzymasz token na serwerze TS3, ktĂłry musisz wprowadzić tutaj:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'Zweryfikuj się'; +$lang['time_day'] = 'DzieƄ'; +$lang['time_hour'] = 'Godzina(s)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Sec(s)'; +$lang['unknown'] = 'unknown'; +$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'] = '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 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 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 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'] = 'UĆŒytkownik %s zostaƂ poinformowany.'; +$lang['user'] = 'Nazwa uĆŒytkownika'; +$lang['verify0001'] = 'Upewnij się, ze naprawdę jesteƛ podƂączony do serwera TS3!'; +$lang['verify0002'] = 'PoƂącz się z serwerem, jeƛli jeszcze tego nie zrobiƂeƛ, RankSystem %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 ĆŒadnego uĆŒytkownika w kanale weryfikacyjnym...'; +$lang['wi'] = 'Interfejs sieciowy'; +$lang['wiaction'] = 'akcja'; +$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['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 (logi):'; +$lang['wibot9'] = 'WypeƂnij wszystkie obowiązkowe pola przed uruchomieniem bota Ranksystem!'; +$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'] = 'ZmieƄ hasƂo'; +$lang['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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 wyƛwietlania daty.

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'] = '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 (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 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 klientów, ktorych nie nalezy uwzgledniac w systemie Ranksystem.
Uzytkownik na tej liscie zostanie zignorowany w rankingu.'; +$lang['wiexregrp'] = 'usuƄ grupę'; +$lang['wiexregrpdesc'] = "Jeƛli uĆŒytkownik jest wykluczony z Ranksystem, grupa serwera przypisana przez Ranksystem zostanie usunięta.

Grupa zostanie usunięta tylko z '".$lang['wiexres']."' z '".$lang['wiexres1']."'. W pozostaƂych trybach grupa serwera nie zostanie usunięta.

Ta funkcja jest relevantna tylko w poƂączeniu z '".$lang['wiexuid']."' lub '".$lang['wiexgrp']."' w poƂączeniu z '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Czas w sekundach'; +$lang['wigrpt2'] = 'Grupa serwerowa'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'Definiowanie rang'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasię uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy) => identyfikator grupy serwerow => permanent flag

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=>0,120=>10=>0,180=>11=>0
W tym przypadku uzytkownik dostaje po 60 sekundach grupe serwerow 9, po kolei po 60 sekundach grupa serwerow 10 itd."; +$lang['wigrptk'] = 'cumulative'; +$lang['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$lang['wihladm'] = 'Lista Rankup (tryb administratora)'; +$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['wihladm3'] = 'Reset Ranksystem'; +$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)'; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Proszę wybrać co najmniej jedną opcję!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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'] = 'NIE wyƂączaj ani nie uruchamiaj ponownie bota podczas resetowania!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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['wiimpaddr'] = 'Adres'; +$lang['wiimpaddrdesc'] = 'Wpisz tutaj swoje imię i nazwisko oraz adres.
PrzykƂad:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'Adres E-Mail'; +$lang['wiimpemaildesc'] = 'Wpisz tutaj swĂłj adres e-mail.
PrzykƂad:
info@example.com
'; +$lang['wiimpnotes'] = 'Dodatkowe informacje'; +$lang['wiimpnotesdesc'] = 'Dodaj dodatkowe informacje, takie jak zastrzeĆŒenie.
Zostaw pole puste, aby ta sekcja nie pojawiƂa się.
Kod HTML do formatowania jest dozwolony.'; +$lang['wiimpphone'] = 'Telefon'; +$lang['wiimpphonedesc'] = 'Wpisz tutaj swój numer telefonu z międzynarodowym numerem kierunkowym.
PrzykƂad:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Wpisz tutaj swoją politykę prywatnoƛci (maksymalnie 21 588 znaków).
Kod HTML do formatowania jest dozwolony.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Funkcja Imprint'; +$lang['wiimpswitchdesc'] = 'Aktywuj tę funkcję, aby publicznie wyƛwietlić deklarację imprintu i ochrony danych.'; +$lang['wilog'] = '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'] = '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 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['winav13'] = 'OgĂłlne (Statystyka)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'Baza danych'; +$lang['winav3'] = 'RdzeƄ'; +$lang['winav4'] = 'Inne'; +$lang['winav5'] = 'Wiadomoƛci'; +$lang['winav6'] = 'Strona statystyk'; +$lang['winav7'] = 'Administracja'; +$lang['winav8'] = 'Start / Stop bot'; +$lang['winav9'] = 'Dostępna aktualizacja!'; +$lang['winxinfo'] = 'Polecenie "!nextup"'; +$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'] = 'wyƂączone'; +$lang['winxmode2'] = 'dozwolone - tylko nastepna ranga'; +$lang['winxmode3'] = 'dozwolone - wszystkie kolejne stopnie'; +$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 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['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'PokaĆŒ/ukryj kolumnę'; +$lang['wishcolat'] = 'Czas aktywny'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'czas online'; +$lang['wishdef'] = 'Domyƛlne sortowanie kolumn'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Zdefiniuj domyƛlną kolumnę sortowania dla strony Rankup listy.'; +$lang['wishexcld'] = 'z wyjątkiem klienta'; +$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'] = "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'] = 'PokaĆŒ klientĂłw w list_rankup.php, ktory osiągnąƂ najwyzszy poziom w Ranksystem.'; +$lang['wishmax'] = 'Wykres wykorzystania serwera'; +$lang['wishmax0'] = 'wyƛwietl wszystkie statystyki'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'ukryj kanaƂ'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'Niestandardowy styl'; +$lang['wistyledesc'] = "Okreƛl alternatywny, niestandardowy styl dla Ranksystem.
Ten styl będzie uĆŒywany na stronie statystyk i interfejsie webowym.

Umieƛć swój styl w katalogu 'style' w podkatalogu.
Nazwa podkatalogu okreƛla nazwę stylu.

Style zaczynające się od 'TSN_' są dostarczane przez Ranksystem. Są one aktualizowane przez przyszƂe aktualizacje.
Nie powinno się więc dokonywać w nich ĆŒadnych zmian!
Jednak mogą one sƂuĆŒyć jako wzĂłr. Skopiuj styl do wƂasnego katalogu, aby dokonać w nim zmian.

Potrzebne są dwa pliki CSS. Jeden dla strony statystyk i jeden dla interfejsu webowego.
MoĆŒna rĂłwnieĆŒ zaƂączyć wƂasne skrypty JavaScript. Jest to jednak opcjonalne.

Konwencja nazw dla CSS:
- StaƂe 'ST.css' dla strony statystyk (/stats/)
- StaƂe 'WI.css' dla strony interfejsu webowego (/webinterface/)


Konwencja nazw dla JavaScript:
- StaƂe 'ST.js' dla strony statystyk (/stats/)
- StaƂe 'WI.js' dla strony interfejsu webowego (/webinterface/)


Jeƛli chcesz udostępnić swĂłj styl innym, moĆŒesz wysƂać go na poniĆŒszy adres e-mail:

%s

Dodamy go z następną aktualizacją!"; +$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 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 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['wits3pre'] = 'Prefiks polecenia bota'; +$lang['wits3predesc'] = "Na serwerze TeamSpeak moĆŒesz porozumiewać się z botem Ranksystem za poƛrednictwem czatu. Domyƛlnie polecenia bota są oznaczone wykrzyknikiem '!'. Prefiks jest uĆŒywany do identyfikacji poleceƄ dla bota jako takich.

Ten prefiks moĆŒna zastąpić dowolnym innym poĆŒÄ…danym prefiksem. MoĆŒe to być konieczne, jeƛli uĆŒywane są inne boti z podobnymi poleceniami.

Na przykƂad domyƛlne polecenie bota wyglądaƂoby tak:
!help


Jeƛli prefiks zostanie zastąpiony znakiem '#', polecenie wyglądać będzie następująco:
#help
"; +$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
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'] = 'KanaƂ aktualizacji'; +$lang['wiupch0'] = 'stable (stabilna)'; +$lang['wiupch1'] = 'beta (eksperymentalna)'; +$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'] = '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.'; diff --git "a/languages/core_pt_Portugu\303\252s_pt.php" "b/languages/core_pt_Portugu\303\252s_pt.php" index a52ad35..9b9de88 100644 --- "a/languages/core_pt_Portugu\303\252s_pt.php" +++ "b/languages/core_pt_Portugu\303\252s_pt.php" @@ -1,708 +1,708 @@ - adicionado ao sistema de ranking agora."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Permitir iniciar/parar o bot do Ranksystem atravĂ©s da API"; -$lang['apipermdesc'] = "(ON = Permitir ; OFF = Negar)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascendente"; -$lang['autooff'] = "autostart is deactivated"; -$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'] = "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'] = "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."; -$lang['cleanno'] = "NĂŁo havia nada para excluir..."; -$lang['cleanp'] = "PerĂ­odo de limpeza"; -$lang['cleanpdesc'] = "Defina o tempo que deve decorrer antes que os 'PerĂ­odo de limpeza' seja executado.

Defina o tempo em segundos.

Recomendado Ă© uma vez por dia, porque a limpeza do cliente precisa de muito tempo para grandes banco de dados."; -$lang['cleanrs'] = "Clientes no banco de dados do Sistema de ranking: %s"; -$lang['cleants'] = "Clienes encontratos no banco de dados do TeamSpeak: %s (de %s)"; -$lang['day'] = "%s dia"; -$lang['days'] = "%s dias"; -$lang['dbconerr'] = "Falha ao conectar ao banco de dados: "; -$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 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'] = "%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'] = "Fator"; -$lang['highest'] = "maior classificação alcançada"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$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!
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 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 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)"; -$lang['isntwidbmsg'] = "Erro de banco de dados: "; -$lang['isntwidbname'] = "Nome da DB:"; -$lang['isntwidbnamedesc'] = "Nome do banco de dados"; -$lang['isntwidbpass'] = "Senha da DB:"; -$lang['isntwidbpassdesc'] = "Senha para acessar o banco de dados"; -$lang['isntwidbtype'] = "Tipo de DB:"; -$lang['isntwidbtypedesc'] = "Tipo de banco de dados 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'] = "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"; -$lang['listcldbid'] = "Cliente-database-ID"; -$lang['listexcept'] = "NĂŁo, client em exceção"; -$lang['listgrps'] = "actual group since"; -$lang['listnat'] = "country"; -$lang['listnick'] = "Nome"; -$lang['listnxsg'] = "PrĂłximo grupo"; -$lang['listnxup'] = "PrĂłximo ranking em"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "Ranking"; -$lang['listseen'] = "Visto pela Ășltima vez"; -$lang['listsuma'] = "Tempo total ativo"; -$lang['listsumi'] = "Tempo total afk"; -$lang['listsumo'] = "Tempo total Online"; -$lang['listuid'] = "ID Ăčnica"; -$lang['listver'] = "client version"; -$lang['login'] = "Entrar"; -$lang['module_disabled'] = "This module is deactivated."; -$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"; -$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'] = "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"; -$lang['pass3'] = "Senha antiga"; -$lang['pass4'] = "Nova senha"; -$lang['pass5'] = "Esqueceu a senha?"; -$lang['permission'] = "PermissĂ”es"; -$lang['privacy'] = "Privacy Policy"; -$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'] = "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)."; -$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['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'] = "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_pib'] = "PiB"; -$lang['size_tib'] = "TiB"; -$lang['size_yib'] = "YiB"; -$lang['size_zib'] = "ZiB"; -$lang['stag0001'] = "Adicionar Grupos/Tags"; -$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'] = "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."; -$lang['stag0007'] = "Aguarde atĂ© as Ășltimas alteraçÔes terem efeito antes de mudar outras coisas..."; -$lang['stag0008'] = "AlteraçÔes de grupo salvas com sucesso. Pode levar alguns segundos atĂ© ter efeito no servidor ts3."; -$lang['stag0009'] = "VocĂȘ nĂŁo pode escolher mais de %s grupo(s) ao mesmo tempo!"; -$lang['stag0010'] = "Escolha pelo menos um novo grupo."; -$lang['stag0011'] = "Limite de Grupos: "; -$lang['stag0012'] = "Salvar"; -$lang['stag0013'] = "MĂłdulo ONline/OFFline"; -$lang['stag0014'] = "Troque o mĂłdulo online (habilitado) ou desligado (desativado).

Ao desativar o addon, uma possĂ­vel parte nas stats/ do site estarĂĄ escondida."; -$lang['stag0015'] = "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['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "EstatĂ­sticas do Servidor"; -$lang['stix0002'] = "Total de usuĂĄrios"; -$lang['stix0003'] = "Ver detalhes"; -$lang['stix0004'] = "Tempo online de todos os usuĂĄrios/total"; -$lang['stix0005'] = "Veja o top de todos os tempos"; -$lang['stix0006'] = "Veja o top do mĂȘs"; -$lang['stix0007'] = "Veja o top da semana"; -$lang['stix0008'] = "Uso do servidor"; -$lang['stix0009'] = "Nos Ășltimos 7 Dias"; -$lang['stix0010'] = "Nos Ășltimos 30 Dias"; -$lang['stix0011'] = "Nas Ășltimas 24 horas"; -$lang['stix0012'] = "Selecionar peĂ­odo"; -$lang['stix0013'] = "Ùltimo dia"; -$lang['stix0014'] = "Ùtima semana"; -$lang['stix0015'] = "Ùtimo mĂȘs"; -$lang['stix0016'] = "Tempo ativo / inativo (de todos os clientes)"; -$lang['stix0017'] = "VersĂ”es (de todos os clientes)"; -$lang['stix0018'] = "Nacionalidades (de todos os clientes)"; -$lang['stix0019'] = "Plataformas (de todos os clientes)"; -$lang['stix0020'] = "EstatĂ­sticas atuais"; -$lang['stix0023'] = "Status do servidor"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clientes (Online / Max)"; -$lang['stix0027'] = "Quantidade de canais"; -$lang['stix0028'] = "MĂ©dia de ping"; -$lang['stix0029'] = "Total de bytes recebidos"; -$lang['stix0030'] = "Total de bytes enviados"; -$lang['stix0031'] = "Tempo ativo do servidor"; -$lang['stix0032'] = "before offline:"; -$lang['stix0033'] = "00 Dias, 00 Horas, 00 Min, 00 Seg"; -$lang['stix0034'] = "Perda mĂ©dia de pacotes"; -$lang['stix0035'] = "EstatĂ­sticas gerais"; -$lang['stix0036'] = "Nome do Servidor"; -$lang['stix0037'] = "Endereço do servidor (endereço : porta)"; -$lang['stix0038'] = "Senha do servidor"; -$lang['stix0039'] = "NĂŁo (Servidor Ă© publico)"; -$lang['stix0040'] = "Sim (Servidor Ă© privado)"; -$lang['stix0041'] = "ID do servidor"; -$lang['stix0042'] = "Plataforma do servidor"; -$lang['stix0043'] = "VersĂŁo do servidor"; -$lang['stix0044'] = "Data da criação do servidor (dd/mm/yyyy)"; -$lang['stix0045'] = "RelatĂłrio de servidores"; -$lang['stix0046'] = "Ativado"; -$lang['stix0047'] = "NĂŁo ativado"; -$lang['stix0048'] = "ainda nĂŁo hĂĄ dados suficientes..."; -$lang['stix0049'] = "Tempo online de todos os usuĂĄrios / MĂȘs"; -$lang['stix0050'] = "Tempo online de todos os usuĂĄrios / Semana"; -$lang['stix0051'] = "TeamSpeak falhou, entĂŁo nenhuma data de criação"; -$lang['stix0052'] = "outros"; -$lang['stix0053'] = "Tempo Ativo (em Dias)"; -$lang['stix0054'] = "Tempo Inativo (em Dias)"; -$lang['stix0055'] = "on-line nas Ășltimas 24 horas"; -$lang['stix0056'] = "online nos Ășltimos %s Dias"; -$lang['stix0059'] = "Lista de usuĂĄrios"; -$lang['stix0060'] = "UsuĂĄrio"; -$lang['stix0061'] = "Ver todas as versĂ”es"; -$lang['stix0062'] = "Veja todas as naçÔes"; -$lang['stix0063'] = "Ver todas as plataformas"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "Minhas estatĂ­sticas"; -$lang['stmy0002'] = "Rank"; -$lang['stmy0003'] = "ID da data base:"; -$lang['stmy0004'] = "ID Ùnica:"; -$lang['stmy0005'] = "ConexĂ”es totais no servidor:"; -$lang['stmy0006'] = "Data de inĂ­cio das estatĂ­sticas:"; -$lang['stmy0007'] = "Tempo total online:"; -$lang['stmy0008'] = "Tempo online nos Ășltimos %s Dias:"; -$lang['stmy0009'] = "Ativo nos Ășltimos %s Dias:"; -$lang['stmy0010'] = "RealizaçÔes concluĂ­das:"; -$lang['stmy0011'] = "Progresso da conquista de tempo"; -$lang['stmy0012'] = "Tempo: LendĂĄrio"; -$lang['stmy0013'] = "Porque vocĂȘ tem um tempo online de %s horas."; -$lang['stmy0014'] = "Progresso concluĂ­do"; -$lang['stmy0015'] = "Tempo: Ouro"; -$lang['stmy0016'] = "% Completado para o LendĂĄrio"; -$lang['stmy0017'] = "Tempo: Prata"; -$lang['stmy0018'] = "% Completado para o Ouro"; -$lang['stmy0019'] = "Tempo: Bronze"; -$lang['stmy0020'] = "% Completado para o Prata"; -$lang['stmy0021'] = "Tempo: NĂŁo classificado"; -$lang['stmy0022'] = "% Completado para o Bronze"; -$lang['stmy0023'] = "Progresso da realização de conexĂŁo"; -$lang['stmy0024'] = "conexĂ”es: LendĂĄrio"; -$lang['stmy0025'] = "Porque vocĂȘ se conectou %s vezes no servidor."; -$lang['stmy0026'] = "ConexĂ”es: Ouro"; -$lang['stmy0027'] = "ConexĂ”es: Prata"; -$lang['stmy0028'] = "ConexĂ”es: Bronze"; -$lang['stmy0029'] = "ConexĂ”es: NĂŁo classificado"; -$lang['stmy0030'] = "Progresso para o prĂłximo grupo"; -$lang['stmy0031'] = "Tempo total ativo"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "NaçÔes"; -$lang['stna0002'] = "Estatisticas"; -$lang['stna0003'] = "CĂłdigo"; -$lang['stna0004'] = "PaĂ­s"; -$lang['stna0005'] = "VersĂ”es"; -$lang['stna0006'] = "Plataformas"; -$lang['stna0007'] = "Porcentagem"; -$lang['stnv0001'] = "NotĂ­cias do Servidor"; -$lang['stnv0002'] = "Fechar"; -$lang['stnv0003'] = "Atualizar informaçÔes do cliente"; -$lang['stnv0004'] = "Use apenas esta atualização, quando suas informaçÔes TS3 foram alteradas, como seu nome de usuĂĄrio TS3"; -$lang['stnv0005'] = "SĂł funciona, quando vocĂȘ estĂĄ conectado ao servidor TS3 ao mesmo tempo"; -$lang['stnv0006'] = "Atualizar"; -$lang['stnv0016'] = "NĂŁo disponĂ­vel"; -$lang['stnv0017'] = "VocĂȘ nĂŁo estĂĄ conectado ao servidor TS3, portanto, ele nĂŁo pode exibir dados para vocĂȘ."; -$lang['stnv0018'] = "Conecte-se ao servidor TS3 e, em seguida, atualize sua sessĂŁo pressionando o botĂŁo de atualização azul no canto superior direito."; -$lang['stnv0019'] = "Minhas estatĂ­sticas - ConteĂșdo da pĂĄgina"; -$lang['stnv0020'] = "Esta pĂĄgina contĂ©m um resumo geral de suas estatĂ­sticas e atividades pessoais no servidor."; -$lang['stnv0021'] = "As informaçÔes sĂŁo coletadas desde o inĂ­cio do sistems de Ranking, elas nĂŁo sĂŁo desde o inĂ­cio do servidor TeamSpeak."; -$lang['stnv0022'] = "Esta pĂĄgina recebe seus valores de um banco de dados. Portanto, os valores podem ser atrasados um pouco."; -$lang['stnv0023'] = "A quantidade de tempo online para todos os usuĂĄrios por semana e por mĂȘs serĂĄ calculada apenas a cada 15 minutos. Todos os outros valores devem estar quase ao vivo (no mĂĄximo atrasado por alguns segundos)."; -$lang['stnv0024'] = "Ranking - Estatisticas"; -$lang['stnv0025'] = "Limite de Nomes"; -$lang['stnv0026'] = "Todos"; -$lang['stnv0027'] = "As informaçÔes neste site podem estar desatualizadas! Parece que o Sistema de ranking nĂŁo estĂĄ mais conectado ao TeamSpeak."; -$lang['stnv0028'] = "(VocĂȘ nĂŁo estĂĄ conectado ao TS3!)"; -$lang['stnv0029'] = "Ranking"; -$lang['stnv0030'] = "InformaçÔes"; -$lang['stnv0031'] = "Sobre o campo de pesquisa, vocĂȘ pode procurar pelo o nome do cliente, ID do cliente e pelo ID do banco de dados do cliente.."; -$lang['stnv0032'] = "VocĂȘ tambĂ©m pode usar as opçÔes de filtro de exibição (veja abaixo). Digite o filtro tambĂ©m dentro do campo de pesquisa."; -$lang['stnv0033'] = "Combinação de filtro e padrĂŁo de busca sĂŁo possĂ­veis. Digite primeiro o (s) filtro (s) seguido sem nenhum padrĂŁo de busca."; -$lang['stnv0034'] = "TambĂ©m Ă© possĂ­vel combinar vĂĄrios filtros. Digite isso consecutivamente dentro do campo de pesquisa."; -$lang['stnv0035'] = "Exemplo:
Filtro:exceção:TeamSpeakUser"; -$lang['stnv0036'] = "Mostrar apenas clientes, que são aceitos (cliente, grupo de servidores ou exceção de canal)."; -$lang['stnv0037'] = "Mostrar apenas clientes, que não estão excluídos."; -$lang['stnv0038'] = "Mostrar apenas clientes, que estão online."; -$lang['stnv0039'] = "Mostrar apenas clientes, que não estão online."; -$lang['stnv0040'] = "Mostrar apenas clientes, que estão em grupo definido. Represente o nível / ranking.
Substituir GRUPOIP com o desejado grupo de servidores ID."; -$lang['stnv0041'] = "Mostrar apenas clientes, que sĂŁo selecionados por entre.
Substituir OPERATOR por '<' or '>' or '=' or '!='.
E Substituir TEMPO com data / hora com formato"; -$lang['stnv0042'] = "Mostrar apenas clientes, que sĂŁo de paĂ­s definido.
Substitua TS3-COUNTRY-CODE com o paĂ­s desejado.
Para a lista de cĂłdigos google"; -$lang['stnv0043'] = "Conectar no TS3"; -$lang['stri0001'] = "InformaçÔes"; -$lang['stri0002'] = "Oque Ă© o Sistema de ranking?"; -$lang['stri0003'] = "È um script, que automaticamente atribui classificaçÔes (grupos do servidor) ao usuĂĄrio no TeamSpeak 3 Server para tempo on-line ou atividade on-line. Ele tambĂ©m reĂșne informaçÔes e estatĂ­sticas sobre o usuĂĄrio e exibe o resultado neste site."; -$lang['stri0004'] = "Quem criou o Sistema de Ranking?"; -$lang['stri0005'] = "Quando foi criado o Sistema de Ranking?"; -$lang['stri0006'] = "Primeira versĂŁo alfa: 05/10/2014."; -$lang['stri0007'] = "Lançamento aberto: 01/02/2015."; -$lang['stri0008'] = "VocĂȘ pode ver a versĂŁo mais recente em Sistema de ranking Website.."; -$lang['stri0009'] = "Como o Sistema de ranking foi criado?"; -$lang['stri0010'] = "O Sistema de ranking estĂĄ codificado em"; -$lang['stri0011'] = "Ele tambĂ©m usa as seguintes bibliotecas:"; -$lang['stri0012'] = "Agradecimentos especiais para:"; -$lang['stri0013'] = "%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'] = "%s para tradução tcheca"; -$lang['stri0025'] = "%s para tradução polonesa"; -$lang['stri0026'] = "%s para tradução espanhola"; -$lang['stri0027'] = "%s para tradução hĂșngara"; -$lang['stri0028'] = "%s para tradução azeri"; -$lang['stri0029'] = "%s para a função de impressĂŁo"; -$lang['stri0030'] = "%s para o estilo 'CosmicBlue' para a pĂĄgina de estatĂ­sticas e a interface web"; -$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"; -$lang['sttw0004'] = "Top 10 comparação"; -$lang['sttw0005'] = "Horas (O Melhor 100 %)"; -$lang['sttw0006'] = "%s horas (%s%)"; -$lang['sttw0007'] = "Top 10 Estatisticas"; -$lang['sttw0008'] = "Top 10 vs outros em tempo online"; -$lang['sttw0009'] = "Top 10 vs outros em tempo ativo"; -$lang['sttw0010'] = "Top 10 vs outros em tempo inativo"; -$lang['sttw0011'] = "Top 10 (in horas)"; -$lang['sttw0012'] = "Outros %s usuĂĄrios (em horas)"; -$lang['sttw0013'] = "Com %s %s ativo"; -$lang['sttw0014'] = "horas"; -$lang['sttw0015'] = "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."; -$lang['stve0004'] = "O token inserido nĂŁo corresponde! Por favor, tente novamente."; -$lang['stve0005'] = "ParabĂ©ns, vocĂȘ foi verificado com sucesso! VocĂȘ pode continuar .."; -$lang['stve0006'] = "Ocorreu um erro desconhecido. Por favor, tente novamente. Se o erro continuar, entre em contato com um administrador"; -$lang['stve0007'] = "Verifique no TeamSpeak"; -$lang['stve0008'] = "Escolha aqui sua ID/Nick no servidor TS3 para verificar-se."; -$lang['stve0009'] = " -- Escolha um -- "; -$lang['stve0010'] = "VocĂȘ receberĂĄ um token no servidor TS3, que vocĂȘ deve inserir aqui:"; -$lang['stve0011'] = "Token:"; -$lang['stve0012'] = "verificar"; -$lang['time_day'] = "Dia(s)"; -$lang['time_hour'] = "Hr(s)"; -$lang['time_min'] = "Min(s)"; -$lang['time_ms'] = "ms"; -$lang['time_sec'] = "Seg(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"; -$lang['upgrp0003'] = "Erro ao ler icones de servidor."; -$lang['upgrp0004'] = "Erro durante o download do Ă­cone TS3 do seu servidor: "; -$lang['upgrp0005'] = "Erro ao excluir o Ă­cone do servidor."; -$lang['upgrp0006'] = "Avisou que o Ícone do Servidor foi removido do servidor TS3, agora tambĂ©m foi removido do Sistema de Ranking."; -$lang['upgrp0007'] = "Erro ao escrever o Ă­cone do grupo do servidor, do grupo %s Com ID %s."; -$lang['upgrp0008'] = "Erro durante o download do Ă­cone do grupo de servidores, do grupo %s Com ID %s: "; -$lang['upgrp0009'] = "Erro ao excluir o Ă­cone do grupo do servidor, do grupo %s Com ID %s."; -$lang['upgrp0010'] = "Avisou que o grupo de servidor %s com ID %s foi removido do servidor TS3, agora tambĂ©m foi removido do Sistema de Ranking"; -$lang['upgrp0011'] = "Baixe o novo Ă­cone do grupo de servidores para o grupo %s com ID: %s"; -$lang['upinf'] = "Uma nova versĂŁo do Sistema de ranking estĂĄ disponĂ­vel; Informar clientes no servidor..."; -$lang['upinf2'] = "O Sistema de Ranking foi recentemente(%s) atualizado. Confira a %sChangelog%s para obter mais informaçÔes sobre as mudanças."; -$lang['upmsg'] = "\nOlĂĄ, uma nova versĂŁo do [B]Sistema de ranking[/B] estĂĄ disponĂ­vel!\n\nversĂŁo atual: %s\n[B]nova versĂŁo: %s[/B]\n\nConfira nosso site para obter mais informaçÔes [URL]%s[/URL].\n\niniciando o processo de atualização em segundo plano. [B]Verifique o arquivo ranksystem.log![/B]"; -$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 (-> 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-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['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!"; -$lang['wibot4'] = "Iniciar / Parar Ranking Bot"; -$lang['wibot5'] = "Iniciar Bot"; -$lang['wibot6'] = "Parar Bot"; -$lang['wibot7'] = "Reiniciar Bot"; -$lang['wibot8'] = "Logs do Sistema de ranking(extraido):"; -$lang['wibot9'] = "Preencha todos os campos obrigatórios antes de iniciar o Sistems de ranking Bot!"; -$lang['wichdbid'] = "Resetar data base de clientes"; -$lang['wichdbiddesc'] = "Redefinir o tempo online de um usuårio, se o seu TeamSpeak Client-database-ID mudado.
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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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'] = "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"; -$lang['widelsgdesc'] = "Escolha se os clientes tambĂ©m devem ser removidos do Ășltimo grupo de servidores encontrado, quando vocĂȘ exclui clientes do banco de dados do Sistema de ranking.

Só considerou os grupos de servidores, que diziam respeito ao Sistema de ranking"; -$lang['wiexcept'] = "Exceptions"; -$lang['wiexcid'] = "Exceção de canal"; -$lang['wiexciddesc'] = "Uma lista separada por vírgulas dos IDs de canais que não devem participar no Sistema de ranking.

Mantenha os usuĂĄrios em um dos canais listados, o tempo em que serĂĄ completamente ignorado. NĂŁo vai contar o tempo online, mas o tempo ocioso vai contar.

Esta função faz apenas sentido com o modo 'tempo online', porque aqui podem ser ignorados os canais AFK, por exemplo.
Com o modo 'tempo ativo', esta função Ă© inĂștil porque, como seria deduzido o tempo de inatividade em salas AFK, portanto, nĂŁo contado de qualquer maneira.

Um usuårio em um canal excluído, é alterado por esse período como 'excluído do Sistema de Ranks'. O usuårio não aparece mais na lista 'stats/list_rankup.php' a menos que os clientes excluídos não sejam exibidos lå (Pågina de Estatísticas - cliente em exceção)."; -$lang['wiexgrp'] = "Grupo em exceção"; -$lang['wiexgrpdesc'] = "Uma lista separada de vírgulas de IDs de grupos de servidores, que não devem participar do Sistema de ranking.
O usuĂĄrio em pelo menos uma dessas IDs de grupos de servidores serĂĄ ignorado para o ranking."; -$lang['wiexres'] = "Modo de exceção"; -$lang['wiexres1'] = "tempo de contagem (padrĂŁo)"; -$lang['wiexres2'] = "Intervalo"; -$lang['wiexres3'] = "Redefinir o tempo"; -$lang['wiexresdesc'] = "Existem trĂȘs modos, como lidar com uma exceção. Em todos os casos, a classificação (atribuir grupo de servidores) estĂĄ desativado. VocĂȘ pode escolher diferentes opçÔes de como o tempo gasto de um usuĂĄrio (que Ă© excecionado) deve ser tratado.

1) 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['wiexregrp'] = "remover grupo"; -$lang['wiexregrpdesc'] = "Se um usuĂĄrio for excluĂ­do do Ranksystem, o grupo de servidor atribuĂ­do pelo Ranksystem serĂĄ removido.

O grupo sĂł serĂĄ removido com o '".$lang['wiexres']."' com o '".$lang['wiexres1']."'. Em todos os outros modos, o grupo de servidor nĂŁo serĂĄ removido.

Esta função é relevante apenas em combinação com um '".$lang['wiexuid']."' ou um '".$lang['wiexgrp']."' em combinação com o '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Modo de Importação"; -$lang['wigrpt1'] = "Tempo em Segundos"; -$lang['wigrpt2'] = "Grupo do servidor"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "DefiniçÔes de classifiaÔes"; -$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 => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$lang['wihladm'] = "Classificação (Modo Admin)"; -$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'] = "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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Solicitado sobre a função de administrador."; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Status do trabalho"; -$lang['wihladmrs0'] = "desativado"; -$lang['wihladmrs1'] = "criado"; -$lang['wihladmrs10'] = "Trabalho confirmado com sucesso!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Tem certeza de que ainda deseja redefinir o sistema?"; -$lang['wihladmrs13'] = "Sim, inicie a redefinição"; -$lang['wihladmrs14'] = "NĂŁo, cancelar"; -$lang['wihladmrs15'] = "Por favor, escolha pelo menos uma opção!"; -$lang['wihladmrs16'] = "ativado"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Caminha de logs"; -$lang['wilogdesc'] = "Caminho do arquivo de log do Sistema de ranking.

Exemplo:
/var/logs/ranksystem/

Certifique-se, o usuårio da web tem as permissÔes de gravação"; -$lang['wilogout'] = "Sair"; -$lang['wimsgmsg'] = "Mensagens"; -$lang['wimsgmsgdesc'] = "Defina uma mensagem, que serå enviada para um usuårio, quando ele subir a próxima classificação mais alta.

Esta mensagem serå enviada via mensagem privada TS3. Então, todos sabem que o código bb pode ser usado, o que também funciona para uma mensagem privada normal.
%s

Além disso, o tempo gasto anteriormente pode ser expresso por argumentos:
%1\$s - Dias
%2\$s - horas
%3\$s - minutos
%4\$s - segundos
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

Exemplo:
Eii,\\nVocĂȘ alcançou uma classificação mais alta, jĂĄ que vocĂȘ jĂĄ se conectou para %1\$s Dias, %2\$s horas e %3\$s minutos nosso servidor de TS [b]Continue assim ![/b];-)
"; -$lang['wimsgsn'] = "NotĂ­cias do servidor"; -$lang['wimsgsndesc'] = "Defina uma mensagem, que serĂĄ mostrada no /stats/ pĂĄgina como notĂ­cias do servidor.

VocĂȘ pode usar as funçÔes html padrĂŁo para modificar o layout

Exemplo:
<b> - para negrito
<u> - para sublinhar
<i> - para itĂĄlico
<br> - para uma nova linha"; -$lang['wimsgusr'] = "Notificação de Classificação"; -$lang['wimsgusrdesc'] = "Informar um usuĂĄrio com uma mensagem de texto privada sobre sua classificação."; -$lang['winav1'] = "TeamSpeak"; -$lang['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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "Base de dados"; -$lang['winav3'] = "NĂșcleo"; -$lang['winav4'] = "Outras configuraĂ”es"; -$lang['winav5'] = "Mensagem"; -$lang['winav6'] = "PĂĄgina de estatĂ­sticas"; -$lang['winav7'] = "Administrar"; -$lang['winav8'] = "Iniciar / Parar Bot"; -$lang['winav9'] = "Atualização disponĂ­vel!"; -$lang['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['winxmsg2'] = "Mensagem (Måxima classificação)"; -$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. 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'] = "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['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "Tempo ativo"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$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['wishcolot'] = "Tempo online"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; -$lang['wishexcld'] = "Clientes em exceção"; -$lang['wishexclddesc'] = "Mostrar clientes ma list_rankup.php,
que são excluídos e, portanto, não participam do Sistema de ranking."; -$lang['wishexgrp'] = "Grupos em exceção"; -$lang['wishexgrpdesc'] = "Mostrar clientes na list_rankup.php, que estão na lista 'clientes em exceção' e não devem ser considerados para o Sistema de Ranking."; -$lang['wishhicld'] = "Clientes com o mais alto nível"; -$lang['wishhiclddesc'] = "Mostrar clientes na list_rankup.php, que atingiu o nível mais alto no Sistema de ranking."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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'] = "ordem de classificação padrĂŁo"; -$lang['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "estilo personalizado"; -$lang['wistyledesc'] = "Defina um estilo personalizado diferente para o sistema de classificação.
Este estilo serĂĄ usado para a pĂĄgina de estatĂ­sticas e a interface web.

Coloque seu prĂłprio estilo na pasta 'style' em uma pasta subjacente.
O nome da pasta subjacente determina o nome do estilo.

Os estilos que começam com 'TSN_' são fornecidos pelo sistema de classificação. Esses serão atualizados em futuras atualizaçÔes.
Portanto, nenhuma modificação deve ser feita neles!
No entanto, eles podem ser usados como modelo. Copie o estilo para uma pasta própria para fazer modificaçÔes nela.

SĂŁo necessĂĄrios dois arquivos CSS. Um para a pĂĄgina de estatĂ­sticas e outro para a interface web.
Também é possível incluir seu próprio JavaScript, mas isso é opcional.

Convenção de nomes do CSS:
- Fixar 'ST.css' para a pĂĄgina de estatĂ­sticas (/stats/)
- Fixar 'WI.css' para a pĂĄgina de interface web (/webinterface/)


Convenção de nomes para JavaScript:
- Fixar 'ST.js' para a pĂĄgina de estatĂ­sticas (/stats/)
- Fixar 'WI.js' para a pĂĄgina de interface web (/webinterface/)


Se vocĂȘ quiser disponibilizar seu estilo para outras pessoas, pode enviĂĄ-lo para o seguinte endereço de e-mail:

%s

Nós o incluiremos na próxima versão!"; -$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'] = "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['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['wits3pre'] = "Prefixo do comando do bot"; -$lang['wits3predesc'] = "No servidor TeamSpeak, vocĂȘ pode se comunicar com o bot Ranksystem atravĂ©s do chat. Por padrĂŁo, os comandos do bot sĂŁo marcados com um ponto de exclamação '!'. O prefixo Ă© usado para identificar os comandos do bot como tal.

Este prefixo pode ser substituĂ­do por qualquer outro prefixo desejado. Isso pode ser necessĂĄrio se estiverem sendo usados outros bots com comandos semelhantes.

Por exemplo, o comando padrĂŁo do bot seria:
!help


Se o prefixo for substituĂ­do por '#', o comando ficarĂĄ assim:
#help
"; -$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"; -$lang['wits3querpwdesc'] = "TeamSpeak 3 senha query
Senha para o usuĂĄrio da consulta."; -$lang['wits3querusr'] = "TS3 UsuĂĄrio-query"; -$lang['wits3querusrdesc'] = "Nome de usuĂĄrio da consulta TeamSpeak 3
O padrĂŁo Ă© serveradmin
Claro, vocĂȘ tambĂ©m pode criar uma conta de serverquery adicional somente para o Sistema de ranking.
As permissĂ”es necessĂĄrias que vocĂȘ encontra em:
%s"; -$lang['wits3query'] = "TS3 Porta-query"; -$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'] = "Canal de atualizĂŁo"; -$lang['wiupch0'] = "estĂĄvel"; -$lang['wiupch1'] = "beta"; -$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"; -$lang['wivlangdesc'] = "Escolha um idioma padrão para o Sistema de ranking.

O idioma também é selecionåvel nos sites para os usuårios e serå armazenado para as próximas sessÔes."; -?> \ No newline at end of file + adicionado ao sistema de ranking agora.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Permitir iniciar/parar o bot do Ranksystem através da API'; +$lang['apipermdesc'] = '(ON = Permitir ; OFF = Negar)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascendente'; +$lang['autooff'] = 'autostart is deactivated'; +$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'] = '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'] = '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.'; +$lang['cleanno'] = 'NĂŁo havia nada para excluir...'; +$lang['cleanp'] = 'PerĂ­odo de limpeza'; +$lang['cleanpdesc'] = "Defina o tempo que deve decorrer antes que os 'PerĂ­odo de limpeza' seja executado.

Defina o tempo em segundos.

Recomendado Ă© uma vez por dia, porque a limpeza do cliente precisa de muito tempo para grandes banco de dados."; +$lang['cleanrs'] = 'Clientes no banco de dados do Sistema de ranking: %s'; +$lang['cleants'] = 'Clienes encontratos no banco de dados do TeamSpeak: %s (de %s)'; +$lang['day'] = '%s dia'; +$lang['days'] = '%s dias'; +$lang['dbconerr'] = 'Falha ao conectar ao banco de dados: '; +$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 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'] = '%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'] = 'Fator'; +$lang['highest'] = 'maior classificação alcançada'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$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!
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 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 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)'; +$lang['isntwidbmsg'] = 'Erro de banco de dados: '; +$lang['isntwidbname'] = 'Nome da DB:'; +$lang['isntwidbnamedesc'] = 'Nome do banco de dados'; +$lang['isntwidbpass'] = 'Senha da DB:'; +$lang['isntwidbpassdesc'] = 'Senha para acessar o banco de dados'; +$lang['isntwidbtype'] = 'Tipo de DB:'; +$lang['isntwidbtypedesc'] = 'Tipo de banco de dados 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'] = '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'; +$lang['listcldbid'] = 'Cliente-database-ID'; +$lang['listexcept'] = 'NĂŁo, client em exceção'; +$lang['listgrps'] = 'actual group since'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'Nome'; +$lang['listnxsg'] = 'PrĂłximo grupo'; +$lang['listnxup'] = 'PrĂłximo ranking em'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'Ranking'; +$lang['listseen'] = 'Visto pela Ășltima vez'; +$lang['listsuma'] = 'Tempo total ativo'; +$lang['listsumi'] = 'Tempo total afk'; +$lang['listsumo'] = 'Tempo total Online'; +$lang['listuid'] = 'ID Ăčnica'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Entrar'; +$lang['module_disabled'] = 'This module is deactivated.'; +$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'; +$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'] = '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'; +$lang['pass3'] = 'Senha antiga'; +$lang['pass4'] = 'Nova senha'; +$lang['pass5'] = 'Esqueceu a senha?'; +$lang['permission'] = 'PermissĂ”es'; +$lang['privacy'] = 'Privacy Policy'; +$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'] = '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).'; +$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['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'] = '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_pib'] = 'PiB'; +$lang['size_tib'] = 'TiB'; +$lang['size_yib'] = 'YiB'; +$lang['size_zib'] = 'ZiB'; +$lang['stag0001'] = 'Adicionar Grupos/Tags'; +$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'] = '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.'; +$lang['stag0007'] = 'Aguarde atĂ© as Ășltimas alteraçÔes terem efeito antes de mudar outras coisas...'; +$lang['stag0008'] = 'AlteraçÔes de grupo salvas com sucesso. Pode levar alguns segundos atĂ© ter efeito no servidor ts3.'; +$lang['stag0009'] = 'VocĂȘ nĂŁo pode escolher mais de %s grupo(s) ao mesmo tempo!'; +$lang['stag0010'] = 'Escolha pelo menos um novo grupo.'; +$lang['stag0011'] = 'Limite de Grupos: '; +$lang['stag0012'] = 'Salvar'; +$lang['stag0013'] = 'MĂłdulo ONline/OFFline'; +$lang['stag0014'] = 'Troque o mĂłdulo online (habilitado) ou desligado (desativado).

Ao desativar o addon, uma possĂ­vel parte nas stats/ do site estarĂĄ escondida.'; +$lang['stag0015'] = '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['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'EstatĂ­sticas do Servidor'; +$lang['stix0002'] = 'Total de usuĂĄrios'; +$lang['stix0003'] = 'Ver detalhes'; +$lang['stix0004'] = 'Tempo online de todos os usuĂĄrios/total'; +$lang['stix0005'] = 'Veja o top de todos os tempos'; +$lang['stix0006'] = 'Veja o top do mĂȘs'; +$lang['stix0007'] = 'Veja o top da semana'; +$lang['stix0008'] = 'Uso do servidor'; +$lang['stix0009'] = 'Nos Ășltimos 7 Dias'; +$lang['stix0010'] = 'Nos Ășltimos 30 Dias'; +$lang['stix0011'] = 'Nas Ășltimas 24 horas'; +$lang['stix0012'] = 'Selecionar peĂ­odo'; +$lang['stix0013'] = 'Ùltimo dia'; +$lang['stix0014'] = 'Ùtima semana'; +$lang['stix0015'] = 'Ùtimo mĂȘs'; +$lang['stix0016'] = 'Tempo ativo / inativo (de todos os clientes)'; +$lang['stix0017'] = 'VersĂ”es (de todos os clientes)'; +$lang['stix0018'] = 'Nacionalidades (de todos os clientes)'; +$lang['stix0019'] = 'Plataformas (de todos os clientes)'; +$lang['stix0020'] = 'EstatĂ­sticas atuais'; +$lang['stix0023'] = 'Status do servidor'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Clientes (Online / Max)'; +$lang['stix0027'] = 'Quantidade de canais'; +$lang['stix0028'] = 'MĂ©dia de ping'; +$lang['stix0029'] = 'Total de bytes recebidos'; +$lang['stix0030'] = 'Total de bytes enviados'; +$lang['stix0031'] = 'Tempo ativo do servidor'; +$lang['stix0032'] = 'before offline:'; +$lang['stix0033'] = '00 Dias, 00 Horas, 00 Min, 00 Seg'; +$lang['stix0034'] = 'Perda mĂ©dia de pacotes'; +$lang['stix0035'] = 'EstatĂ­sticas gerais'; +$lang['stix0036'] = 'Nome do Servidor'; +$lang['stix0037'] = 'Endereço do servidor (endereço : porta)'; +$lang['stix0038'] = 'Senha do servidor'; +$lang['stix0039'] = 'NĂŁo (Servidor Ă© publico)'; +$lang['stix0040'] = 'Sim (Servidor Ă© privado)'; +$lang['stix0041'] = 'ID do servidor'; +$lang['stix0042'] = 'Plataforma do servidor'; +$lang['stix0043'] = 'VersĂŁo do servidor'; +$lang['stix0044'] = 'Data da criação do servidor (dd/mm/yyyy)'; +$lang['stix0045'] = 'RelatĂłrio de servidores'; +$lang['stix0046'] = 'Ativado'; +$lang['stix0047'] = 'NĂŁo ativado'; +$lang['stix0048'] = 'ainda nĂŁo hĂĄ dados suficientes...'; +$lang['stix0049'] = 'Tempo online de todos os usuĂĄrios / MĂȘs'; +$lang['stix0050'] = 'Tempo online de todos os usuĂĄrios / Semana'; +$lang['stix0051'] = 'TeamSpeak falhou, entĂŁo nenhuma data de criação'; +$lang['stix0052'] = 'outros'; +$lang['stix0053'] = 'Tempo Ativo (em Dias)'; +$lang['stix0054'] = 'Tempo Inativo (em Dias)'; +$lang['stix0055'] = 'on-line nas Ășltimas 24 horas'; +$lang['stix0056'] = 'online nos Ășltimos %s Dias'; +$lang['stix0059'] = 'Lista de usuĂĄrios'; +$lang['stix0060'] = 'UsuĂĄrio'; +$lang['stix0061'] = 'Ver todas as versĂ”es'; +$lang['stix0062'] = 'Veja todas as naçÔes'; +$lang['stix0063'] = 'Ver todas as plataformas'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'Minhas estatĂ­sticas'; +$lang['stmy0002'] = 'Rank'; +$lang['stmy0003'] = 'ID da data base:'; +$lang['stmy0004'] = 'ID Ùnica:'; +$lang['stmy0005'] = 'ConexĂ”es totais no servidor:'; +$lang['stmy0006'] = 'Data de inĂ­cio das estatĂ­sticas:'; +$lang['stmy0007'] = 'Tempo total online:'; +$lang['stmy0008'] = 'Tempo online nos Ășltimos %s Dias:'; +$lang['stmy0009'] = 'Ativo nos Ășltimos %s Dias:'; +$lang['stmy0010'] = 'RealizaçÔes concluĂ­das:'; +$lang['stmy0011'] = 'Progresso da conquista de tempo'; +$lang['stmy0012'] = 'Tempo: LendĂĄrio'; +$lang['stmy0013'] = 'Porque vocĂȘ tem um tempo online de %s horas.'; +$lang['stmy0014'] = 'Progresso concluĂ­do'; +$lang['stmy0015'] = 'Tempo: Ouro'; +$lang['stmy0016'] = '% Completado para o LendĂĄrio'; +$lang['stmy0017'] = 'Tempo: Prata'; +$lang['stmy0018'] = '% Completado para o Ouro'; +$lang['stmy0019'] = 'Tempo: Bronze'; +$lang['stmy0020'] = '% Completado para o Prata'; +$lang['stmy0021'] = 'Tempo: NĂŁo classificado'; +$lang['stmy0022'] = '% Completado para o Bronze'; +$lang['stmy0023'] = 'Progresso da realização de conexĂŁo'; +$lang['stmy0024'] = 'conexĂ”es: LendĂĄrio'; +$lang['stmy0025'] = 'Porque vocĂȘ se conectou %s vezes no servidor.'; +$lang['stmy0026'] = 'ConexĂ”es: Ouro'; +$lang['stmy0027'] = 'ConexĂ”es: Prata'; +$lang['stmy0028'] = 'ConexĂ”es: Bronze'; +$lang['stmy0029'] = 'ConexĂ”es: NĂŁo classificado'; +$lang['stmy0030'] = 'Progresso para o prĂłximo grupo'; +$lang['stmy0031'] = 'Tempo total ativo'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'NaçÔes'; +$lang['stna0002'] = 'Estatisticas'; +$lang['stna0003'] = 'CĂłdigo'; +$lang['stna0004'] = 'PaĂ­s'; +$lang['stna0005'] = 'VersĂ”es'; +$lang['stna0006'] = 'Plataformas'; +$lang['stna0007'] = 'Porcentagem'; +$lang['stnv0001'] = 'NotĂ­cias do Servidor'; +$lang['stnv0002'] = 'Fechar'; +$lang['stnv0003'] = 'Atualizar informaçÔes do cliente'; +$lang['stnv0004'] = 'Use apenas esta atualização, quando suas informaçÔes TS3 foram alteradas, como seu nome de usuĂĄrio TS3'; +$lang['stnv0005'] = 'SĂł funciona, quando vocĂȘ estĂĄ conectado ao servidor TS3 ao mesmo tempo'; +$lang['stnv0006'] = 'Atualizar'; +$lang['stnv0016'] = 'NĂŁo disponĂ­vel'; +$lang['stnv0017'] = 'VocĂȘ nĂŁo estĂĄ conectado ao servidor TS3, portanto, ele nĂŁo pode exibir dados para vocĂȘ.'; +$lang['stnv0018'] = 'Conecte-se ao servidor TS3 e, em seguida, atualize sua sessĂŁo pressionando o botĂŁo de atualização azul no canto superior direito.'; +$lang['stnv0019'] = 'Minhas estatĂ­sticas - ConteĂșdo da pĂĄgina'; +$lang['stnv0020'] = 'Esta pĂĄgina contĂ©m um resumo geral de suas estatĂ­sticas e atividades pessoais no servidor.'; +$lang['stnv0021'] = 'As informaçÔes sĂŁo coletadas desde o inĂ­cio do sistems de Ranking, elas nĂŁo sĂŁo desde o inĂ­cio do servidor TeamSpeak.'; +$lang['stnv0022'] = 'Esta pĂĄgina recebe seus valores de um banco de dados. Portanto, os valores podem ser atrasados um pouco.'; +$lang['stnv0023'] = 'A quantidade de tempo online para todos os usuĂĄrios por semana e por mĂȘs serĂĄ calculada apenas a cada 15 minutos. Todos os outros valores devem estar quase ao vivo (no mĂĄximo atrasado por alguns segundos).'; +$lang['stnv0024'] = 'Ranking - Estatisticas'; +$lang['stnv0025'] = 'Limite de Nomes'; +$lang['stnv0026'] = 'Todos'; +$lang['stnv0027'] = 'As informaçÔes neste site podem estar desatualizadas! Parece que o Sistema de ranking nĂŁo estĂĄ mais conectado ao TeamSpeak.'; +$lang['stnv0028'] = '(VocĂȘ nĂŁo estĂĄ conectado ao TS3!)'; +$lang['stnv0029'] = 'Ranking'; +$lang['stnv0030'] = 'InformaçÔes'; +$lang['stnv0031'] = 'Sobre o campo de pesquisa, vocĂȘ pode procurar pelo o nome do cliente, ID do cliente e pelo ID do banco de dados do cliente..'; +$lang['stnv0032'] = 'VocĂȘ tambĂ©m pode usar as opçÔes de filtro de exibição (veja abaixo). Digite o filtro tambĂ©m dentro do campo de pesquisa.'; +$lang['stnv0033'] = 'Combinação de filtro e padrĂŁo de busca sĂŁo possĂ­veis. Digite primeiro o (s) filtro (s) seguido sem nenhum padrĂŁo de busca.'; +$lang['stnv0034'] = 'TambĂ©m Ă© possĂ­vel combinar vĂĄrios filtros. Digite isso consecutivamente dentro do campo de pesquisa.'; +$lang['stnv0035'] = 'Exemplo:
Filtro:exceção:TeamSpeakUser'; +$lang['stnv0036'] = 'Mostrar apenas clientes, que são aceitos (cliente, grupo de servidores ou exceção de canal).'; +$lang['stnv0037'] = 'Mostrar apenas clientes, que não estão excluídos.'; +$lang['stnv0038'] = 'Mostrar apenas clientes, que estão online.'; +$lang['stnv0039'] = 'Mostrar apenas clientes, que não estão online.'; +$lang['stnv0040'] = 'Mostrar apenas clientes, que estão em grupo definido. Represente o nível / ranking.
Substituir GRUPOIP com o desejado grupo de servidores ID.'; +$lang['stnv0041'] = "Mostrar apenas clientes, que sĂŁo selecionados por entre.
Substituir OPERATOR por '<' or '>' or '=' or '!='.
E Substituir TEMPO com data / hora com formato"; +$lang['stnv0042'] = 'Mostrar apenas clientes, que sĂŁo de paĂ­s definido.
Substitua TS3-COUNTRY-CODE com o paĂ­s desejado.
Para a lista de cĂłdigos google'; +$lang['stnv0043'] = 'Conectar no TS3'; +$lang['stri0001'] = 'InformaçÔes'; +$lang['stri0002'] = 'Oque Ă© o Sistema de ranking?'; +$lang['stri0003'] = 'È um script, que automaticamente atribui classificaçÔes (grupos do servidor) ao usuĂĄrio no TeamSpeak 3 Server para tempo on-line ou atividade on-line. Ele tambĂ©m reĂșne informaçÔes e estatĂ­sticas sobre o usuĂĄrio e exibe o resultado neste site.'; +$lang['stri0004'] = 'Quem criou o Sistema de Ranking?'; +$lang['stri0005'] = 'Quando foi criado o Sistema de Ranking?'; +$lang['stri0006'] = 'Primeira versĂŁo alfa: 05/10/2014.'; +$lang['stri0007'] = 'Lançamento aberto: 01/02/2015.'; +$lang['stri0008'] = 'VocĂȘ pode ver a versĂŁo mais recente em Sistema de ranking Website..'; +$lang['stri0009'] = 'Como o Sistema de ranking foi criado?'; +$lang['stri0010'] = 'O Sistema de ranking estĂĄ codificado em'; +$lang['stri0011'] = 'Ele tambĂ©m usa as seguintes bibliotecas:'; +$lang['stri0012'] = 'Agradecimentos especiais para:'; +$lang['stri0013'] = '%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'] = '%s para tradução tcheca'; +$lang['stri0025'] = '%s para tradução polonesa'; +$lang['stri0026'] = '%s para tradução espanhola'; +$lang['stri0027'] = '%s para tradução hĂșngara'; +$lang['stri0028'] = '%s para tradução azeri'; +$lang['stri0029'] = '%s para a função de impressĂŁo'; +$lang['stri0030'] = "%s para o estilo 'CosmicBlue' para a pĂĄgina de estatĂ­sticas e a interface web"; +$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'; +$lang['sttw0004'] = 'Top 10 comparação'; +$lang['sttw0005'] = 'Horas (O Melhor 100 %)'; +$lang['sttw0006'] = '%s horas (%s%)'; +$lang['sttw0007'] = 'Top 10 Estatisticas'; +$lang['sttw0008'] = 'Top 10 vs outros em tempo online'; +$lang['sttw0009'] = 'Top 10 vs outros em tempo ativo'; +$lang['sttw0010'] = 'Top 10 vs outros em tempo inativo'; +$lang['sttw0011'] = 'Top 10 (in horas)'; +$lang['sttw0012'] = 'Outros %s usuĂĄrios (em horas)'; +$lang['sttw0013'] = 'Com %s %s ativo'; +$lang['sttw0014'] = 'horas'; +$lang['sttw0015'] = '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.'; +$lang['stve0004'] = 'O token inserido nĂŁo corresponde! Por favor, tente novamente.'; +$lang['stve0005'] = 'ParabĂ©ns, vocĂȘ foi verificado com sucesso! VocĂȘ pode continuar ..'; +$lang['stve0006'] = 'Ocorreu um erro desconhecido. Por favor, tente novamente. Se o erro continuar, entre em contato com um administrador'; +$lang['stve0007'] = 'Verifique no TeamSpeak'; +$lang['stve0008'] = 'Escolha aqui sua ID/Nick no servidor TS3 para verificar-se.'; +$lang['stve0009'] = ' -- Escolha um -- '; +$lang['stve0010'] = 'VocĂȘ receberĂĄ um token no servidor TS3, que vocĂȘ deve inserir aqui:'; +$lang['stve0011'] = 'Token:'; +$lang['stve0012'] = 'verificar'; +$lang['time_day'] = 'Dia(s)'; +$lang['time_hour'] = 'Hr(s)'; +$lang['time_min'] = 'Min(s)'; +$lang['time_ms'] = 'ms'; +$lang['time_sec'] = 'Seg(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'; +$lang['upgrp0003'] = 'Erro ao ler icones de servidor.'; +$lang['upgrp0004'] = 'Erro durante o download do Ă­cone TS3 do seu servidor: '; +$lang['upgrp0005'] = 'Erro ao excluir o Ă­cone do servidor.'; +$lang['upgrp0006'] = 'Avisou que o Ícone do Servidor foi removido do servidor TS3, agora tambĂ©m foi removido do Sistema de Ranking.'; +$lang['upgrp0007'] = 'Erro ao escrever o Ă­cone do grupo do servidor, do grupo %s Com ID %s.'; +$lang['upgrp0008'] = 'Erro durante o download do Ă­cone do grupo de servidores, do grupo %s Com ID %s: '; +$lang['upgrp0009'] = 'Erro ao excluir o Ă­cone do grupo do servidor, do grupo %s Com ID %s.'; +$lang['upgrp0010'] = 'Avisou que o grupo de servidor %s com ID %s foi removido do servidor TS3, agora tambĂ©m foi removido do Sistema de Ranking'; +$lang['upgrp0011'] = 'Baixe o novo Ă­cone do grupo de servidores para o grupo %s com ID: %s'; +$lang['upinf'] = 'Uma nova versĂŁo do Sistema de ranking estĂĄ disponĂ­vel; Informar clientes no servidor...'; +$lang['upinf2'] = 'O Sistema de Ranking foi recentemente(%s) atualizado. Confira a %sChangelog%s para obter mais informaçÔes sobre as mudanças.'; +$lang['upmsg'] = "\nOlĂĄ, uma nova versĂŁo do [B]Sistema de ranking[/B] estĂĄ disponĂ­vel!\n\nversĂŁo atual: %s\n[B]nova versĂŁo: %s[/B]\n\nConfira nosso site para obter mais informaçÔes [URL]%s[/URL].\n\niniciando o processo de atualização em segundo plano. [B]Verifique o arquivo ranksystem.log![/B]"; +$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 (-> 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-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['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!'; +$lang['wibot4'] = 'Iniciar / Parar Ranking Bot'; +$lang['wibot5'] = 'Iniciar Bot'; +$lang['wibot6'] = 'Parar Bot'; +$lang['wibot7'] = 'Reiniciar Bot'; +$lang['wibot8'] = 'Logs do Sistema de ranking(extraido):'; +$lang['wibot9'] = 'Preencha todos os campos obrigatórios antes de iniciar o Sistems de ranking Bot!'; +$lang['wichdbid'] = 'Resetar data base de clientes'; +$lang['wichdbiddesc'] = 'Redefinir o tempo online de um usuårio, se o seu TeamSpeak Client-database-ID mudado.
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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'] = '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'; +$lang['widelsgdesc'] = 'Escolha se os clientes tambĂ©m devem ser removidos do Ășltimo grupo de servidores encontrado, quando vocĂȘ exclui clientes do banco de dados do Sistema de ranking.

Só considerou os grupos de servidores, que diziam respeito ao Sistema de ranking'; +$lang['wiexcept'] = 'Exceptions'; +$lang['wiexcid'] = 'Exceção de canal'; +$lang['wiexciddesc'] = "Uma lista separada por vírgulas dos IDs de canais que não devem participar no Sistema de ranking.

Mantenha os usuĂĄrios em um dos canais listados, o tempo em que serĂĄ completamente ignorado. NĂŁo vai contar o tempo online, mas o tempo ocioso vai contar.

Esta função faz apenas sentido com o modo 'tempo online', porque aqui podem ser ignorados os canais AFK, por exemplo.
Com o modo 'tempo ativo', esta função Ă© inĂștil porque, como seria deduzido o tempo de inatividade em salas AFK, portanto, nĂŁo contado de qualquer maneira.

Um usuårio em um canal excluído, é alterado por esse período como 'excluído do Sistema de Ranks'. O usuårio não aparece mais na lista 'stats/list_rankup.php' a menos que os clientes excluídos não sejam exibidos lå (Pågina de Estatísticas - cliente em exceção)."; +$lang['wiexgrp'] = 'Grupo em exceção'; +$lang['wiexgrpdesc'] = 'Uma lista separada de vírgulas de IDs de grupos de servidores, que não devem participar do Sistema de ranking.
O usuĂĄrio em pelo menos uma dessas IDs de grupos de servidores serĂĄ ignorado para o ranking.'; +$lang['wiexres'] = 'Modo de exceção'; +$lang['wiexres1'] = 'tempo de contagem (padrĂŁo)'; +$lang['wiexres2'] = 'Intervalo'; +$lang['wiexres3'] = 'Redefinir o tempo'; +$lang['wiexresdesc'] = "Existem trĂȘs modos, como lidar com uma exceção. Em todos os casos, a classificação (atribuir grupo de servidores) estĂĄ desativado. VocĂȘ pode escolher diferentes opçÔes de como o tempo gasto de um usuĂĄrio (que Ă© excecionado) deve ser tratado.

1) 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['wiexregrp'] = 'remover grupo'; +$lang['wiexregrpdesc'] = "Se um usuĂĄrio for excluĂ­do do Ranksystem, o grupo de servidor atribuĂ­do pelo Ranksystem serĂĄ removido.

O grupo sĂł serĂĄ removido com o '".$lang['wiexres']."' com o '".$lang['wiexres1']."'. Em todos os outros modos, o grupo de servidor nĂŁo serĂĄ removido.

Esta função é relevante apenas em combinação com um '".$lang['wiexuid']."' ou um '".$lang['wiexgrp']."' em combinação com o '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Modo de Importação'; +$lang['wigrpt1'] = 'Tempo em Segundos'; +$lang['wigrpt2'] = 'Grupo do servidor'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'DefiniçÔes de classifiaÔes'; +$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 => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$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 => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$lang['wihladm'] = 'Classificação (Modo Admin)'; +$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'] = '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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Solicitado sobre a função de administrador.'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Status do trabalho'; +$lang['wihladmrs0'] = 'desativado'; +$lang['wihladmrs1'] = 'criado'; +$lang['wihladmrs10'] = 'Trabalho confirmado com sucesso!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Tem certeza de que ainda deseja redefinir o sistema?'; +$lang['wihladmrs13'] = 'Sim, inicie a redefinição'; +$lang['wihladmrs14'] = 'NĂŁo, cancelar'; +$lang['wihladmrs15'] = 'Por favor, escolha pelo menos uma opção!'; +$lang['wihladmrs16'] = 'ativado'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Caminha de logs'; +$lang['wilogdesc'] = 'Caminho do arquivo de log do Sistema de ranking.

Exemplo:
/var/logs/ranksystem/

Certifique-se, o usuårio da web tem as permissÔes de gravação'; +$lang['wilogout'] = 'Sair'; +$lang['wimsgmsg'] = 'Mensagens'; +$lang['wimsgmsgdesc'] = 'Defina uma mensagem, que serå enviada para um usuårio, quando ele subir a próxima classificação mais alta.

Esta mensagem serå enviada via mensagem privada TS3. Então, todos sabem que o código bb pode ser usado, o que também funciona para uma mensagem privada normal.
%s

Além disso, o tempo gasto anteriormente pode ser expresso por argumentos:
%1$s - Dias
%2$s - horas
%3$s - minutos
%4$s - segundos
%5$s - name of reached servergroup
%6$s - name of the user (recipient)

Exemplo:
Eii,\\nVocĂȘ alcançou uma classificação mais alta, jĂĄ que vocĂȘ jĂĄ se conectou para %1$s Dias, %2$s horas e %3$s minutos nosso servidor de TS [b]Continue assim ![/b];-)
'; +$lang['wimsgsn'] = 'NotĂ­cias do servidor'; +$lang['wimsgsndesc'] = 'Defina uma mensagem, que serĂĄ mostrada no /stats/ pĂĄgina como notĂ­cias do servidor.

VocĂȘ pode usar as funçÔes html padrĂŁo para modificar o layout

Exemplo:
<b> - para negrito
<u> - para sublinhar
<i> - para itĂĄlico
<br> - para uma nova linha'; +$lang['wimsgusr'] = 'Notificação de Classificação'; +$lang['wimsgusrdesc'] = 'Informar um usuĂĄrio com uma mensagem de texto privada sobre sua classificação.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'Base de dados'; +$lang['winav3'] = 'NĂșcleo'; +$lang['winav4'] = 'Outras configuraĂ”es'; +$lang['winav5'] = 'Mensagem'; +$lang['winav6'] = 'PĂĄgina de estatĂ­sticas'; +$lang['winav7'] = 'Administrar'; +$lang['winav8'] = 'Iniciar / Parar Bot'; +$lang['winav9'] = 'Atualização disponĂ­vel!'; +$lang['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['winxmsg2'] = 'Mensagem (Måxima classificação)'; +$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. 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'] = '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['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'Tempo ativo'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$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['wishcolot'] = 'Tempo online'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Define the default sorting column for the List Rankup page.'; +$lang['wishexcld'] = 'Clientes em exceção'; +$lang['wishexclddesc'] = 'Mostrar clientes ma list_rankup.php,
que são excluídos e, portanto, não participam do Sistema de ranking.'; +$lang['wishexgrp'] = 'Grupos em exceção'; +$lang['wishexgrpdesc'] = "Mostrar clientes na list_rankup.php, que estão na lista 'clientes em exceção' e não devem ser considerados para o Sistema de Ranking."; +$lang['wishhicld'] = 'Clientes com o mais alto nível'; +$lang['wishhiclddesc'] = 'Mostrar clientes na list_rankup.php, que atingiu o nível mais alto no Sistema de ranking.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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'] = 'ordem de classificação padrĂŁo'; +$lang['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'estilo personalizado'; +$lang['wistyledesc'] = "Defina um estilo personalizado diferente para o sistema de classificação.
Este estilo serĂĄ usado para a pĂĄgina de estatĂ­sticas e a interface web.

Coloque seu prĂłprio estilo na pasta 'style' em uma pasta subjacente.
O nome da pasta subjacente determina o nome do estilo.

Os estilos que começam com 'TSN_' são fornecidos pelo sistema de classificação. Esses serão atualizados em futuras atualizaçÔes.
Portanto, nenhuma modificação deve ser feita neles!
No entanto, eles podem ser usados como modelo. Copie o estilo para uma pasta própria para fazer modificaçÔes nela.

SĂŁo necessĂĄrios dois arquivos CSS. Um para a pĂĄgina de estatĂ­sticas e outro para a interface web.
Também é possível incluir seu próprio JavaScript, mas isso é opcional.

Convenção de nomes do CSS:
- Fixar 'ST.css' para a pĂĄgina de estatĂ­sticas (/stats/)
- Fixar 'WI.css' para a pĂĄgina de interface web (/webinterface/)


Convenção de nomes para JavaScript:
- Fixar 'ST.js' para a pĂĄgina de estatĂ­sticas (/stats/)
- Fixar 'WI.js' para a pĂĄgina de interface web (/webinterface/)


Se vocĂȘ quiser disponibilizar seu estilo para outras pessoas, pode enviĂĄ-lo para o seguinte endereço de e-mail:

%s

Nós o incluiremos na próxima versão!"; +$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'] = '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['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['wits3pre'] = 'Prefixo do comando do bot'; +$lang['wits3predesc'] = "No servidor TeamSpeak, vocĂȘ pode se comunicar com o bot Ranksystem atravĂ©s do chat. Por padrĂŁo, os comandos do bot sĂŁo marcados com um ponto de exclamação '!'. O prefixo Ă© usado para identificar os comandos do bot como tal.

Este prefixo pode ser substituĂ­do por qualquer outro prefixo desejado. Isso pode ser necessĂĄrio se estiverem sendo usados outros bots com comandos semelhantes.

Por exemplo, o comando padrĂŁo do bot seria:
!help


Se o prefixo for substituĂ­do por '#', o comando ficarĂĄ assim:
#help
"; +$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'; +$lang['wits3querpwdesc'] = 'TeamSpeak 3 senha query
Senha para o usuĂĄrio da consulta.'; +$lang['wits3querusr'] = 'TS3 UsuĂĄrio-query'; +$lang['wits3querusrdesc'] = 'Nome de usuĂĄrio da consulta TeamSpeak 3
O padrĂŁo Ă© serveradmin
Claro, vocĂȘ tambĂ©m pode criar uma conta de serverquery adicional somente para o Sistema de ranking.
As permissĂ”es necessĂĄrias que vocĂȘ encontra em:
%s'; +$lang['wits3query'] = 'TS3 Porta-query'; +$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'] = 'Canal de atualizĂŁo'; +$lang['wiupch0'] = 'estĂĄvel'; +$lang['wiupch1'] = 'beta'; +$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'; +$lang['wivlangdesc'] = 'Escolha um idioma padrão para o Sistema de ranking.

O idioma tambĂ©m Ă© selecionĂĄvel nos sites para os usuĂĄrios e serĂĄ armazenado para as prĂłximas sessĂ”es.'; diff --git "a/languages/core_ro_Rom\303\242n\304\203_ro.php" "b/languages/core_ro_Rom\303\242n\304\203_ro.php" index daa01f7..c68d1ba 100644 --- "a/languages/core_ro_Rom\303\242n\304\203_ro.php" +++ "b/languages/core_ro_Rom\303\242n\304\203_ro.php" @@ -1,708 +1,708 @@ - adaugat la Sistem Rank acum."; -$lang['api'] = "API"; -$lang['apikey'] = "API Key"; -$lang['apiperm001'] = "Permiteți pornirea/oprirea Ranksystem Bot prin API"; -$lang['apipermdesc'] = "(ON = Permiteți ; OFF = Refuzați)"; -$lang['addonchch'] = "Channel"; -$lang['addonchchdesc'] = "Select a channel where you want to set the channel description."; -$lang['addonchdesc'] = "Channel description"; -$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ascending"; -$lang['autooff'] = "autostart is deactivated"; -$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."; -$lang['changedbid'] = "Userul %s (unique Client-ID: %s) a primit un noua identitate (%s). Actualizam vechea identitate (%s) ?i resetam timpul colectat!"; -$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'] = "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 "; -$lang['cleanno'] = "Nu a fost nimic de eliminat..."; -$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['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!"; -$lang['errgrplist'] = "Eroare pentru afisarea gradelor: "; -$lang['errlogin'] = "Numele de utilizator ?i / sau parola sunt incorecte ! Încearca din nou..."; -$lang['errlogin2'] = "Protec?ie for?a bruta: üncerca?i din nou ün %s seconde!"; -$lang['errlogin3'] = "Protec?ie for?a bruta: Prea multe gre?eli. Banat pentru 300 de secunde!"; -$lang['error'] = "Eroare"; -$lang['errorts3'] = "Eroare TS3: "; -$lang['errperm'] = "Verifica permisiunile pentru folderul '%s'!"; -$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"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "in Seconds"; -$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!
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 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 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)"; -$lang['isntwidbmsg'] = "Eroare DB: "; -$lang['isntwidbname'] = "Nume DB:"; -$lang['isntwidbnamedesc'] = "Nume DB"; -$lang['isntwidbpass'] = "Parola DB:"; -$lang['isntwidbpassdesc'] = "Parola pentru a accesa DB"; -$lang['isntwidbtype'] = "Tipul 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['isntwidbusr'] = "DB User:"; -$lang['isntwidbusrdesc'] = "User-ul pentru acces la DB"; -$lang['isntwidel'] = "Va rugam sa ?terge?i fi?ierul 'install.php' din webserver"; -$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"; -$lang['listcldbid'] = "ID baza de date"; -$lang['listexcept'] = "Nu, cauza respinsa"; -$lang['listgrps'] = "data"; -$lang['listnat'] = "country"; -$lang['listnick'] = "nume client"; -$lang['listnxsg'] = "urmatorul grad"; -$lang['listnxup'] = "urmatorul grad peste"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "grad"; -$lang['listseen'] = "ultima conectare"; -$lang['listsuma'] = "sum. timp activ"; -$lang['listsumi'] = "sum. timpul de inactivitate"; -$lang['listsumo'] = "sum. timp online"; -$lang['listuid'] = "unique-ID"; -$lang['listver'] = "client version"; -$lang['login'] = "Logare"; -$lang['module_disabled'] = "This module is deactivated."; -$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'] = "Nu ai acces pentru aceste comenzi!"; -$lang['msg0004'] = "Userul %s (%s) a oprit botul."; -$lang['msg0005'] = "cya"; -$lang['msg0006'] = "brb"; -$lang['msg0007'] = "Userul %s (%s) a %s botul."; -$lang['msg0008'] = "Update cu succes. Daca este disponibil un update, acesta va rula imediat."; -$lang['msg0009'] = "Stergerea userilor a inceput."; -$lang['msg0010'] = "Run command !log to get more information."; -$lang['msg0011'] = "Cleaned group cache. Start loading groups and icons..."; -$lang['noentry'] = "Nu am gasit..."; -$lang['pass'] = "Parola"; -$lang['pass2'] = "Schimba parola"; -$lang['pass3'] = "parola veche"; -$lang['pass4'] = "noua parola"; -$lang['pass5'] = "Ai uitat parola?"; -$lang['permission'] = "Permisiuni"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "reptere"; -$lang['resettime'] = "Reset timp online si idle pentru userul: %s (ID: %s; ID baza de date %s), motiv: a fost sters din lista de exceptie."; -$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)."; -$lang['setontime'] = "adauga timp"; -$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_pib'] = "PiB"; -$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'] = "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."; -$lang['stag0007'] = "Please wait till your last changes take effect before you change already the next things..."; -$lang['stag0008'] = "Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server."; -$lang['stag0009'] = "You cannot choose more then %s group(s) at the same time!"; -$lang['stag0010'] = "Please choose at least one new group."; -$lang['stag0011'] = "Limit of simultaneous groups: "; -$lang['stag0012'] = "seteaza grade"; -$lang['stag0013'] = "Addon pornit/oprit"; -$lang['stag0014'] = "Activeaza sau dezactiveazaa pluginul.

Prin dezactivarea addon-ului, o parte din /stats/, posibil va fi ascunsa."; -$lang['stag0015'] = "Nu ai putut fi gasit pe serverul TeamSpeak. Te rog da %sclick her%s pentru a va verifica."; -$lang['stag0016'] = "verification needed!"; -$lang['stag0017'] = "verificate here.."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "Statistica server"; -$lang['stix0002'] = "Numarul total de utilizatori"; -$lang['stix0003'] = "Vezi detalii"; -$lang['stix0004'] = "Timp on-line al tuturor utilizatorilor"; -$lang['stix0005'] = "Vedere de sus din toate timpurile"; -$lang['stix0006'] = "Vedere de sus a lunii"; -$lang['stix0007'] = "Vedere de sus a saptamñnii"; -$lang['stix0008'] = "Utilizarea serverului"; -$lang['stix0009'] = "În ultimele 7 zile"; -$lang['stix0010'] = "În ultimele 30 de zile"; -$lang['stix0011'] = "În ultimele 24 de ore"; -$lang['stix0012'] = "Selectare perioada"; -$lang['stix0013'] = "Ultima zi"; -$lang['stix0014'] = "Saptamñna trecuta"; -$lang['stix0015'] = "Luna trecuta"; -$lang['stix0016'] = "Timp activ/inactiv (tuturor clien?ilor)"; -$lang['stix0017'] = "Versiunile ( tuturor clien?ilor )"; -$lang['stix0018'] = "Nationalitati"; -$lang['stix0019'] = "Platforme"; -$lang['stix0020'] = "Statisticile curente"; -$lang['stix0023'] = "Status server"; -$lang['stix0024'] = "Online"; -$lang['stix0025'] = "Offline"; -$lang['stix0026'] = "Clien?i (Online/Max)"; -$lang['stix0027'] = "Canale"; -$lang['stix0028'] = "Ping mediu pe server"; -$lang['stix0029'] = "Numar total de octe?i primit"; -$lang['stix0030'] = "Numar total de octe?i trimi?i"; -$lang['stix0031'] = "Server uptime"; -$lang['stix0032'] = "Dupa offline:"; -$lang['stix0033'] = "00 zile, 00 ore, 00 minute, 00 secunde"; -$lang['stix0034'] = "Pachete"; -$lang['stix0035'] = "Statisticile generale"; -$lang['stix0036'] = "Nume Server"; -$lang['stix0037'] = "Adresa Server"; -$lang['stix0038'] = "Parola Server"; -$lang['stix0039'] = "Nu(Server public)"; -$lang['stix0040'] = "Da (Server privat)"; -$lang['stix0041'] = "Server ID"; -$lang['stix0042'] = "Platforma"; -$lang['stix0043'] = "Versiune"; -$lang['stix0044'] = "Creat in data"; -$lang['stix0045'] = "Raport la lista de servere"; -$lang['stix0046'] = "Activat"; -$lang['stix0047'] = "Nu este activat"; -$lang['stix0048'] = "Nu sunt suficiente date ünca ..."; -$lang['stix0049'] = "Timp on-line la to?i utilizatorii / luna"; -$lang['stix0050'] = "Timp on-line la to?i utilizatorii / saptamñna"; -$lang['stix0051'] = "TeamSpeak nu a reu?it , deci nici o data creata..."; -$lang['stix0052'] = "altele"; -$lang['stix0053'] = "timp activ (in zile)"; -$lang['stix0054'] = "timp inactiv (in zile)"; -$lang['stix0055'] = "online in ultimele 24 ore"; -$lang['stix0056'] = "online in ultimele %s zile"; -$lang['stix0059'] = "Lista useri"; -$lang['stix0060'] = "User"; -$lang['stix0061'] = "Vezi versiuni"; -$lang['stix0062'] = "Vezi natiuni"; -$lang['stix0063'] = "Vezi platforme"; -$lang['stix0064'] = "Last 3 months"; -$lang['stmy0001'] = "Statisticile mele"; -$lang['stmy0002'] = "Grad"; -$lang['stmy0003'] = "ID baza de date:"; -$lang['stmy0004'] = "Unique-Id"; -$lang['stmy0005'] = "Conectari totale:"; -$lang['stmy0006'] = "Prima conectare:"; -$lang['stmy0007'] = "Timp total on-line:"; -$lang['stmy0008'] = "Timp online ultimele %s zile:"; -$lang['stmy0009'] = "Timp online in ultimele %s zile:"; -$lang['stmy0010'] = "Realizari finalizate:"; -$lang['stmy0011'] = "Timp progres realizare"; -$lang['stmy0012'] = "Ora: Veteran"; -$lang['stmy0013'] = "Pentru ca ai un timp online %s ore."; -$lang['stmy0014'] = "Progres finalizat"; -$lang['stmy0015'] = "Ora: Aur"; -$lang['stmy0016'] = "% completat pentru Legendar"; -$lang['stmy0017'] = "Ora: Argint"; -$lang['stmy0018'] = "% completat pentru Aur"; -$lang['stmy0019'] = "Ora: Bronz"; -$lang['stmy0020'] = "% completat pentru Argint"; -$lang['stmy0021'] = "Ora: fara rank"; -$lang['stmy0022'] = "% completat pentru Bronz"; -$lang['stmy0023'] = "Conexiune progres realizare"; -$lang['stmy0024'] = "Conectari: Veteran"; -$lang['stmy0025'] = "deoarece te-ai conetat de %s ori pe server."; -$lang['stmy0026'] = "Conectari: Aur"; -$lang['stmy0027'] = "Conectari: Argint"; -$lang['stmy0028'] = "Conectari: Bronz"; -$lang['stmy0029'] = "Conectari: fara rank"; -$lang['stmy0030'] = "Progres pentru noul rank"; -$lang['stmy0031'] = "Timp total activ"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "Natiuni"; -$lang['stna0002'] = "statistici"; -$lang['stna0003'] = "Cod"; -$lang['stna0004'] = "numar"; -$lang['stna0005'] = "Versiuni"; -$lang['stna0006'] = "Platforme"; -$lang['stna0007'] = "Procent"; -$lang['stnv0001'] = "Noutati server"; -$lang['stnv0002'] = "Iesi"; -$lang['stnv0003'] = "Reincarca"; -$lang['stnv0004'] = "Only use this refresh, when your TS3 information got changed, such as your TS3 username"; -$lang['stnv0005'] = "It only works, when you are connected to the TS3 server at the same time"; -$lang['stnv0006'] = "Reincarca"; -$lang['stnv0016'] = "Not available"; -$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; -$lang['stnv0018'] = "Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner."; -$lang['stnv0019'] = "My statistics - Page content"; -$lang['stnv0020'] = "This page contains a overall summary of your personal statistics and activity on the server."; -$lang['stnv0021'] = "The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server."; -$lang['stnv0022'] = "This page receives its values out of a database. So the values might be delayed a bit."; -$lang['stnv0023'] = "The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds)."; -$lang['stnv0024'] = "Sistem Rank - Statistici"; -$lang['stnv0025'] = "Limita intrari"; -$lang['stnv0026'] = "toti"; -$lang['stnv0027'] = "The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak."; -$lang['stnv0028'] = "(Nu esti conectat pe TS3!)"; -$lang['stnv0029'] = "Lista rank"; -$lang['stnv0030'] = "Informatii Sistem Rank"; -$lang['stnv0031'] = "About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID."; -$lang['stnv0032'] = "You can also use a view filter options (see below). Enter the filter also inside the search field."; -$lang['stnv0033'] = "Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern."; -$lang['stnv0034'] = "Also it is possible to combine multiple filters. Enter this consecutively inside the search field."; -$lang['stnv0035'] = "Example:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "Show only clients, which are excepted (client, servergroup or channel exception)."; -$lang['stnv0037'] = "Show only clients, which are not excepted."; -$lang['stnv0038'] = "Show only clients, which are online."; -$lang['stnv0039'] = "Show only clients, which are not online."; -$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID."; -$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2"; -$lang['stnv0043'] = "conecteaza-te pe TS3"; -$lang['stri0001'] = "Informatii Sistem Rank"; -$lang['stri0002'] = "Ce este Sistem rank?"; -$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site."; -$lang['stri0004'] = "Who created the Ranksystem?"; -$lang['stri0005'] = "When the Ranksystem was Created?"; -$lang['stri0006'] = "First alpha release: 05/10/2014."; -$lang['stri0007'] = "First beta release: 01/02/2015."; -$lang['stri0008'] = "You can see the latest version on the Ranksystem Website."; -$lang['stri0009'] = "How was the Ranksystem created?"; -$lang['stri0010'] = "The Ranksystem is coded in"; -$lang['stri0011'] = "It uses also the following libraries:"; -$lang['stri0012'] = "Special Thanks To:"; -$lang['stri0013'] = "%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'] = "%s pentru traducerea cehă"; -$lang['stri0025'] = "%s pentru traducerea poloneză"; -$lang['stri0026'] = "%s pentru traducerea spaniolă"; -$lang['stri0027'] = "%s pentru traducerea maghiară"; -$lang['stri0028'] = "%s pentru traducerea azeră"; -$lang['stri0029'] = "%s pentru funcția de imprimare"; -$lang['stri0030'] = "%s pentru stilul 'CosmicBlue' pentru pagina de statistici și interfața web"; -$lang['stta0001'] = "tot timpul"; -$lang['sttm0001'] = "luna"; -$lang['sttw0001'] = "Top useri"; -$lang['sttw0002'] = "saptamana"; -$lang['sttw0003'] = "cu %s %s timp online"; -$lang['sttw0004'] = "Top 10 comparat"; -$lang['sttw0005'] = "ore (Defines 100 %)"; -$lang['sttw0006'] = "%s ore (%s%)"; -$lang['sttw0007'] = "Top 10 Statistici"; -$lang['sttw0008'] = "Top 10 vs altii in timp online"; -$lang['sttw0009'] = "Top 10 vs altii in timp online"; -$lang['sttw0010'] = "Top 10 vs altii in timp inactiv"; -$lang['sttw0011'] = "Top 10 (in ore)"; -$lang['sttw0012'] = "Alti %s useri (in ore)"; -$lang['sttw0013'] = "Cu %s %s timp online"; -$lang['sttw0014'] = "ore"; -$lang['sttw0015'] = "minute"; -$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."; -$lang['stve0004'] = "Tokenul introdus nu se potriveste. Te rog incearca din nou!"; -$lang['stve0005'] = "Felicitari, sunteti verificat cu succes! Acum puteti continua .."; -$lang['stve0006'] = "A aparut o eroare necunoscuta. Incearca din nou. Daca eroarea contiuna sa apara, contactati un administrator."; -$lang['stve0007'] = "Verifica pe TS3"; -$lang['stve0008'] = "alege aici ID-ul dvs. unic de pe serverul TS3 pentru a va verifica."; -$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['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"; -$lang['upgrp0003'] = "Eroare la citirea iconitei serverului."; -$lang['upgrp0004'] = "Eroare la descarcarea iconite pe serverul TS3: "; -$lang['upgrp0005'] = "Eroare la stergerea iconitei."; -$lang['upgrp0006'] = "Iconita a fost stearsa de pe server, acum s-a sters si de pe web."; -$lang['upgrp0007'] = "Eroare la citirea iconite pentru grupul %s cu ID %s."; -$lang['upgrp0008'] = "Eroare la descarcarea iconite pentru grupul %s cu ID %s: "; -$lang['upgrp0009'] = "Eroare la stergerea iconite pentru grupul %s cu ID %s."; -$lang['upgrp0010'] = "Iconita grupului %s cu ID %s a fost stearsa de pe server, acum s-a sters si de pe web."; -$lang['upgrp0011'] = "Descarca iconita noua pentru gradul %s cu ID: %s"; -$lang['upinf'] = "Este disponibila o noua versiune a sistemului rank; Informati clientii pe server ..."; -$lang['upinf2'] = "Sistemul rank a fost recent (%s) updatat. Verifica %sChangelog%s pentru mai multe informatii."; -$lang['upmsg'] = "Salut, o noua versiune pentru [B]Sistemul rank[/B] este disponibila!\nversiune curenta: %s\n[B]versiune noua: %s[/B]\nViziteaza site-ul nostru pentru mai multe informatii: [URL]%s[/URL].\nActualizarea a fost pornita. [B]Verifica ranksystem.log![/B]"; -$lang['upmsg2'] = "Salut, [B]Sistemul rank[/B] a fost actualizat.\n[B]noua versiune: %s[/B]\nViziteaza site-ul nostru pentru mai multe detalii [URL]%s[/URL]."; -$lang['upusrerr'] = "Unique-ID pentru userul %s nu a putut fi gasit pe TeamSpeak!"; -$lang['upusrinf'] = "Userul %s a fost informat cu succes."; -$lang['user'] = "Nume user"; -$lang['verify0001'] = "Asigurati-va ca sunteti intr-adevar conectat pe serverul TS3!"; -$lang['verify0002'] = "Intrati, daca nu ati facut deja asta, pe canalul de verificare %sverification-channel%s!"; -$lang['verify0003'] = "Daca sunteti intr-adevar conectat la serverul TS3, va rugam sa contactati un admin.
Acesta trebuie sa creeze un canal de verificare pe serverul TeamSpeak. Dupa, canalul creat trebuie sa fie definit de sistemul rank, pe care numai un administrator il poate face.
stats page) a sistemului rank. Nu este posibil sa va verificam in acest moment! Ne pare rau :("; -$lang['verify0004'] = "No user inside the verification channel found..."; -$lang['wi'] = "Admin Panel"; -$lang['wiaction'] = "actiune"; -$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['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['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!"; -$lang['wibot4'] = "Porneste/Opreste BOT"; -$lang['wibot5'] = "Porneste"; -$lang['wibot6'] = "Opreste"; -$lang['wibot7'] = "Reporneste"; -$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['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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$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['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"; -$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

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

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

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; -$lang['widelsg'] = "elimina din grad"; -$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'] = "canal exceptie"; -$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

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

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

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; -$lang['wiexgrp'] = "grad exceptie"; -$lang['wiexgrpdesc'] = "A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up."; -$lang['wiexres'] = "mod exceptie"; -$lang['wiexres1'] = "contorizeaza timp (implicit)"; -$lang['wiexres2'] = "pauza timp"; -$lang['wiexres3'] = "reseteaza timp"; -$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) contorizeaza timp (implicit): At 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) pauza timp: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After loosing the excepted reason (after removing the excepted servergroup or remove the expection rule) the 'counting' will go on.

3) reseteaza timp: 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 exceptie"; -$lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up."; -$lang['wiexregrp'] = "elimină grupul"; -$lang['wiexregrpdesc'] = "Dacă un utilizator este exclus din Ranksystem, grupul de server atribuit de Ranksystem va fi eliminat.

Grupul va fi eliminat doar cu '".$lang['wiexres']."' cu '".$lang['wiexres1']."'. În toate celelalte moduri, grupul de server nu va fi eliminat.

Această funcție este relevantă doar Ăźn combinație cu un '".$lang['wiexuid']."' sau un '".$lang['wiexgrp']."' Ăźn combinație cu '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Import Mode"; -$lang['wigrpt1'] = "Time in Seconds"; -$lang['wigrpt2'] = "Servergroup"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "Clasificare grade"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$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!"; -$lang['wihladm1'] = "adăugați timp"; -$lang['wihladm2'] = "Ăźndepărtați timpul"; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Job Status"; -$lang['wihladmrs0'] = "disabled"; -$lang['wihladmrs1'] = "created"; -$lang['wihladmrs10'] = "Job(s) successfully confirmed!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Are you sure, you still want to reset the system?"; -$lang['wihladmrs13'] = "Yes, start reset"; -$lang['wihladmrs14'] = "No, cancel"; -$lang['wihladmrs15'] = "Please choose at least one option!"; -$lang['wihladmrs16'] = "enabled"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 job is in progress!"; -$lang['wihladmrs9'] = "Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one."; -$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."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "Folder"; -$lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

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

This message will be send 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'] = "Noutati server"; -$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)"; -$lang['wimsgusr'] = "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['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "baza de date"; -$lang['winav3'] = "Core"; -$lang['winav4'] = "altele"; -$lang['winav5'] = "mesaj"; -$lang['winav6'] = "pagina statistici"; -$lang['winav7'] = "administreaza"; -$lang['winav8'] = "porneste/opreste"; -$lang['winav9'] = "Actualizare disponibila!"; -$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['winxmsg2'] = "Mesj (cel mai mare)"; -$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. 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"; -$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login."; -$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s."; -$lang['wirtpw7'] = "Reset Password"; -$lang['wirtpw8'] = "Here you can reset the password for the webinterface."; -$lang['wirtpw9'] = "Following things are required to reset the password:"; -$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "timp activ"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "hash IP addresses"; -$lang['wishcolha0'] = "disable hashing"; -$lang['wishcolha1'] = "secure hashing"; -$lang['wishcolha2'] = "fast hashing (default)"; -$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['wishcolot'] = "timp online"; -$lang['wishdef'] = "default column sort"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "Define the default sorting column for the List Rankup page."; -$lang['wishexcld'] = "client exceptie"; -$lang['wishexclddesc'] = "Afisati clientii in list_rankup.php,
care sunt exclusi si, prin urmare, nu participa la sistemul rank."; -$lang['wishexgrp'] = "grad exceptie"; -$lang['wishexgrpdesc'] = "Afisati clientii in list_rankup.php, care se afla in lista \"exceptie client\" si nu ar trebui sa fie afisati pe sistemul rank"; -$lang['wishhicld'] = "Clienti cu cel mai mare rank"; -$lang['wishhiclddesc'] = "Afisati clientii in list_rankup.php, care au atins cel mai mare grad din sistemul rank."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$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['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$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['wistyle'] = "stil personalizat"; -$lang['wistyledesc'] = "Definiți un stil personalizat diferit pentru sistemul de ranguri.
Acest stil va fi utilizat pentru pagina de statistici și interfața web.

Plasați propriul stil Ăźn directorul 'style' Ăźntr-un subdirector propriu.
Numele subdirectorului determină numele stilului.

Stilurile care ßncep cu 'TSN_' sunt furnizate de către sistemul de ranguri. Acestea vor fi actualizate prin actualizări viitoare.
Prin urmare, nu ar trebui să se facă modificări ßn acestea!
Cu toate acestea, acestea pot fi utilizate ca șabloane. Copiați stilul Ăźntr-un director propriu pentru a face modificări.

Sunt necesare două fișiere CSS. Unul pentru pagina de statistici și unul pentru interfața web.
De asemenea, se poate include un JavaScript propriu. Acest lucru este opțional.

Convenția de nume pentru CSS:
- Fix 'ST.css' pentru pagina de statistici (/stats/)
- Fix 'WI.css' pentru pagina de interfață web (/webinterface/)


Convenția de nume pentru JavaScript:
- Fix 'ST.js' pentru pagina de statistici (/stats/)
- Fix 'WI.js' pentru pagina de interfață web (/webinterface/)


Dacă doriți să oferiți și altora stilul dvs., puteți trimite la următoarea adresă de e-mail:

%s

Vom furniza cu următoarea versiune!"; -$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['wisvres'] = "Trebuie sa reporniti sistemul rank inainte ca schimbarile sa aiba efect! %s"; -$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['wits3pre'] = "Prefixul comenzii botului"; -$lang['wits3predesc'] = "Pe serverul TeamSpeak poți comunica cu botul Ranksystem prin intermediul chat-ului. În mod implicit, comenzile botului sunt marcate cu un semn de exclamare '!'. Prefixul este folosit pentru a identifica comenzile pentru bot ca atare.

Acest prefix poate fi Ăźnlocuit cu orice alt prefix dorit. Acest lucru poate fi necesar dacă se utilizează alți boturi cu comenzi similare.

De exemplu, comanda pentru botul implicit ar arăta astfel:
!help


Dacă prefixul este ßnlocuit cu '#', comanda ar arăta astfel:
#help
"; -$lang['wits3qnm'] = "Nume"; -$lang['wits3qnmdesc'] = "Se va stabili numele, cu aceasta conexiune de interogare.
Puteti sa-l numiti gratuit."; -$lang['wits3querpw'] = "TS3 parola query"; -$lang['wits3querpwdesc'] = "TeamSpeak3 parola query
Parola pentru query."; -$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['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"; -$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['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'] = "Canal de verificare"; -$lang['wiverifydesc'] = "Scrie aici ID-ul canalului pentru verificare.

Acest canal trebuie setat manual pe serverul TeamSpeak. Numele, permisiunile ?i alte proprieta?i ar putea fi definite pentru alegerea dvs.; doar utilizatorul ar trebui sa fie posibil sa se alature acestui canal!

Verificarea se face de catre utilizatorul respectiv ?u?i pe pagina de statistici (/stats/). Acest lucru este necesar doar daca vizitatorul site-ului nu poate fi asociat automat cu utilizatorul TeamSpeak.

Pentru a verifica daca utilizatorul TeamSpeak trebuie sa fie pe canalul de verificare. Acolo el poate primi token-ul cu care se verifica pentru pagina de statistici."; -$lang['wivlang'] = "Limba"; -$lang['wivlangdesc'] = "Alege limba default pentru web.

Limba se poate schimba din web de fiecare user."; -?> \ No newline at end of file + adaugat la Sistem Rank acum.'; +$lang['api'] = 'API'; +$lang['apikey'] = 'API Key'; +$lang['apiperm001'] = 'Permiteți pornirea/oprirea Ranksystem Bot prin API'; +$lang['apipermdesc'] = '(ON = Permiteți ; OFF = Refuzați)'; +$lang['addonchch'] = 'Channel'; +$lang['addonchchdesc'] = 'Select a channel where you want to set the channel description.'; +$lang['addonchdesc'] = 'Channel description'; +$lang['addonchdescdesc'] = "Define here the description, which should be set to the channel, you defined above. The definite description will overwrite the full description, which is currently set in the channel.

You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ascending'; +$lang['autooff'] = 'autostart is deactivated'; +$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.'; +$lang['changedbid'] = 'Userul %s (unique Client-ID: %s) a primit un noua identitate (%s). Actualizam vechea identitate (%s) ?i resetam timpul colectat!'; +$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'] = '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 '; +$lang['cleanno'] = 'Nu a fost nimic de eliminat...'; +$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['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!'; +$lang['errgrplist'] = 'Eroare pentru afisarea gradelor: '; +$lang['errlogin'] = 'Numele de utilizator ?i / sau parola sunt incorecte ! Încearca din nou...'; +$lang['errlogin2'] = 'Protec?ie for?a bruta: üncerca?i din nou ün %s seconde!'; +$lang['errlogin3'] = 'Protec?ie for?a bruta: Prea multe gre?eli. Banat pentru 300 de secunde!'; +$lang['error'] = 'Eroare'; +$lang['errorts3'] = 'Eroare TS3: '; +$lang['errperm'] = "Verifica permisiunile pentru folderul '%s'!"; +$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'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'in Seconds'; +$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!
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 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 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)'; +$lang['isntwidbmsg'] = 'Eroare DB: '; +$lang['isntwidbname'] = 'Nume DB:'; +$lang['isntwidbnamedesc'] = 'Nume DB'; +$lang['isntwidbpass'] = 'Parola DB:'; +$lang['isntwidbpassdesc'] = 'Parola pentru a accesa DB'; +$lang['isntwidbtype'] = 'Tipul 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['isntwidbusr'] = 'DB User:'; +$lang['isntwidbusrdesc'] = 'User-ul pentru acces la DB'; +$lang['isntwidel'] = "Va rugam sa ?terge?i fi?ierul 'install.php' din webserver"; +$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'; +$lang['listcldbid'] = 'ID baza de date'; +$lang['listexcept'] = 'Nu, cauza respinsa'; +$lang['listgrps'] = 'data'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'nume client'; +$lang['listnxsg'] = 'urmatorul grad'; +$lang['listnxup'] = 'urmatorul grad peste'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'grad'; +$lang['listseen'] = 'ultima conectare'; +$lang['listsuma'] = 'sum. timp activ'; +$lang['listsumi'] = 'sum. timpul de inactivitate'; +$lang['listsumo'] = 'sum. timp online'; +$lang['listuid'] = 'unique-ID'; +$lang['listver'] = 'client version'; +$lang['login'] = 'Logare'; +$lang['module_disabled'] = 'This module is deactivated.'; +$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'] = 'Nu ai acces pentru aceste comenzi!'; +$lang['msg0004'] = 'Userul %s (%s) a oprit botul.'; +$lang['msg0005'] = 'cya'; +$lang['msg0006'] = 'brb'; +$lang['msg0007'] = 'Userul %s (%s) a %s botul.'; +$lang['msg0008'] = 'Update cu succes. Daca este disponibil un update, acesta va rula imediat.'; +$lang['msg0009'] = 'Stergerea userilor a inceput.'; +$lang['msg0010'] = 'Run command !log to get more information.'; +$lang['msg0011'] = 'Cleaned group cache. Start loading groups and icons...'; +$lang['noentry'] = 'Nu am gasit...'; +$lang['pass'] = 'Parola'; +$lang['pass2'] = 'Schimba parola'; +$lang['pass3'] = 'parola veche'; +$lang['pass4'] = 'noua parola'; +$lang['pass5'] = 'Ai uitat parola?'; +$lang['permission'] = 'Permisiuni'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'reptere'; +$lang['resettime'] = 'Reset timp online si idle pentru userul: %s (ID: %s; ID baza de date %s), motiv: a fost sters din lista de exceptie.'; +$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).'; +$lang['setontime'] = 'adauga timp'; +$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_pib'] = 'PiB'; +$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'] = '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.'; +$lang['stag0007'] = 'Please wait till your last changes take effect before you change already the next things...'; +$lang['stag0008'] = 'Group changes successfully saved. It can take a few seconds till it take effect on the ts3 server.'; +$lang['stag0009'] = 'You cannot choose more then %s group(s) at the same time!'; +$lang['stag0010'] = 'Please choose at least one new group.'; +$lang['stag0011'] = 'Limit of simultaneous groups: '; +$lang['stag0012'] = 'seteaza grade'; +$lang['stag0013'] = 'Addon pornit/oprit'; +$lang['stag0014'] = 'Activeaza sau dezactiveazaa pluginul.

Prin dezactivarea addon-ului, o parte din /stats/, posibil va fi ascunsa.'; +$lang['stag0015'] = 'Nu ai putut fi gasit pe serverul TeamSpeak. Te rog da %sclick her%s pentru a va verifica.'; +$lang['stag0016'] = 'verification needed!'; +$lang['stag0017'] = 'verificate here..'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'Statistica server'; +$lang['stix0002'] = 'Numarul total de utilizatori'; +$lang['stix0003'] = 'Vezi detalii'; +$lang['stix0004'] = 'Timp on-line al tuturor utilizatorilor'; +$lang['stix0005'] = 'Vedere de sus din toate timpurile'; +$lang['stix0006'] = 'Vedere de sus a lunii'; +$lang['stix0007'] = 'Vedere de sus a saptamñnii'; +$lang['stix0008'] = 'Utilizarea serverului'; +$lang['stix0009'] = 'În ultimele 7 zile'; +$lang['stix0010'] = 'În ultimele 30 de zile'; +$lang['stix0011'] = 'În ultimele 24 de ore'; +$lang['stix0012'] = 'Selectare perioada'; +$lang['stix0013'] = 'Ultima zi'; +$lang['stix0014'] = 'Saptamñna trecuta'; +$lang['stix0015'] = 'Luna trecuta'; +$lang['stix0016'] = 'Timp activ/inactiv (tuturor clien?ilor)'; +$lang['stix0017'] = 'Versiunile ( tuturor clien?ilor )'; +$lang['stix0018'] = 'Nationalitati'; +$lang['stix0019'] = 'Platforme'; +$lang['stix0020'] = 'Statisticile curente'; +$lang['stix0023'] = 'Status server'; +$lang['stix0024'] = 'Online'; +$lang['stix0025'] = 'Offline'; +$lang['stix0026'] = 'Clien?i (Online/Max)'; +$lang['stix0027'] = 'Canale'; +$lang['stix0028'] = 'Ping mediu pe server'; +$lang['stix0029'] = 'Numar total de octe?i primit'; +$lang['stix0030'] = 'Numar total de octe?i trimi?i'; +$lang['stix0031'] = 'Server uptime'; +$lang['stix0032'] = 'Dupa offline:'; +$lang['stix0033'] = '00 zile, 00 ore, 00 minute, 00 secunde'; +$lang['stix0034'] = 'Pachete'; +$lang['stix0035'] = 'Statisticile generale'; +$lang['stix0036'] = 'Nume Server'; +$lang['stix0037'] = 'Adresa Server'; +$lang['stix0038'] = 'Parola Server'; +$lang['stix0039'] = 'Nu(Server public)'; +$lang['stix0040'] = 'Da (Server privat)'; +$lang['stix0041'] = 'Server ID'; +$lang['stix0042'] = 'Platforma'; +$lang['stix0043'] = 'Versiune'; +$lang['stix0044'] = 'Creat in data'; +$lang['stix0045'] = 'Raport la lista de servere'; +$lang['stix0046'] = 'Activat'; +$lang['stix0047'] = 'Nu este activat'; +$lang['stix0048'] = 'Nu sunt suficiente date ünca ...'; +$lang['stix0049'] = 'Timp on-line la to?i utilizatorii / luna'; +$lang['stix0050'] = 'Timp on-line la to?i utilizatorii / saptamñna'; +$lang['stix0051'] = 'TeamSpeak nu a reu?it , deci nici o data creata...'; +$lang['stix0052'] = 'altele'; +$lang['stix0053'] = 'timp activ (in zile)'; +$lang['stix0054'] = 'timp inactiv (in zile)'; +$lang['stix0055'] = 'online in ultimele 24 ore'; +$lang['stix0056'] = 'online in ultimele %s zile'; +$lang['stix0059'] = 'Lista useri'; +$lang['stix0060'] = 'User'; +$lang['stix0061'] = 'Vezi versiuni'; +$lang['stix0062'] = 'Vezi natiuni'; +$lang['stix0063'] = 'Vezi platforme'; +$lang['stix0064'] = 'Last 3 months'; +$lang['stmy0001'] = 'Statisticile mele'; +$lang['stmy0002'] = 'Grad'; +$lang['stmy0003'] = 'ID baza de date:'; +$lang['stmy0004'] = 'Unique-Id'; +$lang['stmy0005'] = 'Conectari totale:'; +$lang['stmy0006'] = 'Prima conectare:'; +$lang['stmy0007'] = 'Timp total on-line:'; +$lang['stmy0008'] = 'Timp online ultimele %s zile:'; +$lang['stmy0009'] = 'Timp online in ultimele %s zile:'; +$lang['stmy0010'] = 'Realizari finalizate:'; +$lang['stmy0011'] = 'Timp progres realizare'; +$lang['stmy0012'] = 'Ora: Veteran'; +$lang['stmy0013'] = 'Pentru ca ai un timp online %s ore.'; +$lang['stmy0014'] = 'Progres finalizat'; +$lang['stmy0015'] = 'Ora: Aur'; +$lang['stmy0016'] = '% completat pentru Legendar'; +$lang['stmy0017'] = 'Ora: Argint'; +$lang['stmy0018'] = '% completat pentru Aur'; +$lang['stmy0019'] = 'Ora: Bronz'; +$lang['stmy0020'] = '% completat pentru Argint'; +$lang['stmy0021'] = 'Ora: fara rank'; +$lang['stmy0022'] = '% completat pentru Bronz'; +$lang['stmy0023'] = 'Conexiune progres realizare'; +$lang['stmy0024'] = 'Conectari: Veteran'; +$lang['stmy0025'] = 'deoarece te-ai conetat de %s ori pe server.'; +$lang['stmy0026'] = 'Conectari: Aur'; +$lang['stmy0027'] = 'Conectari: Argint'; +$lang['stmy0028'] = 'Conectari: Bronz'; +$lang['stmy0029'] = 'Conectari: fara rank'; +$lang['stmy0030'] = 'Progres pentru noul rank'; +$lang['stmy0031'] = 'Timp total activ'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'Natiuni'; +$lang['stna0002'] = 'statistici'; +$lang['stna0003'] = 'Cod'; +$lang['stna0004'] = 'numar'; +$lang['stna0005'] = 'Versiuni'; +$lang['stna0006'] = 'Platforme'; +$lang['stna0007'] = 'Procent'; +$lang['stnv0001'] = 'Noutati server'; +$lang['stnv0002'] = 'Iesi'; +$lang['stnv0003'] = 'Reincarca'; +$lang['stnv0004'] = 'Only use this refresh, when your TS3 information got changed, such as your TS3 username'; +$lang['stnv0005'] = 'It only works, when you are connected to the TS3 server at the same time'; +$lang['stnv0006'] = 'Reincarca'; +$lang['stnv0016'] = 'Not available'; +$lang['stnv0017'] = "You are not connected to the TS3 Server, so it can't display any data for you."; +$lang['stnv0018'] = 'Please connect to the TS3 Server and then Refresh your Session by pressing the blue Refresh Button at the top-right corner.'; +$lang['stnv0019'] = 'My statistics - Page content'; +$lang['stnv0020'] = 'This page contains a overall summary of your personal statistics and activity on the server.'; +$lang['stnv0021'] = 'The informations are collected since the beginning of the Ranksystem, they are not since the beginning of the TeamSpeak server.'; +$lang['stnv0022'] = 'This page receives its values out of a database. So the values might be delayed a bit.'; +$lang['stnv0023'] = 'The amount of online time for all user per week and per month will be only calculated every 15 minutes. All other values should be nearly live (at maximum delayed for a few seconds).'; +$lang['stnv0024'] = 'Sistem Rank - Statistici'; +$lang['stnv0025'] = 'Limita intrari'; +$lang['stnv0026'] = 'toti'; +$lang['stnv0027'] = 'The informations on this site could be outdated! It seems the Ranksystem is no more connected to the TeamSpeak.'; +$lang['stnv0028'] = '(Nu esti conectat pe TS3!)'; +$lang['stnv0029'] = 'Lista rank'; +$lang['stnv0030'] = 'Informatii Sistem Rank'; +$lang['stnv0031'] = 'About the search field you can search for pattern in clientname, unique Client-ID and Client-database-ID.'; +$lang['stnv0032'] = 'You can also use a view filter options (see below). Enter the filter also inside the search field.'; +$lang['stnv0033'] = 'Combination of filter and search pattern are possible. Enter first the filter(s) followed without any sign your search pattern.'; +$lang['stnv0034'] = 'Also it is possible to combine multiple filters. Enter this consecutively inside the search field.'; +$lang['stnv0035'] = 'Example:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'Show only clients, which are excepted (client, servergroup or channel exception).'; +$lang['stnv0037'] = 'Show only clients, which are not excepted.'; +$lang['stnv0038'] = 'Show only clients, which are online.'; +$lang['stnv0039'] = 'Show only clients, which are not online.'; +$lang['stnv0040'] = 'Show only clients, which are in defined group. Represent the actuel rank/level.
Replace GROUPID with the wished servergroup ID.'; +$lang['stnv0041'] = "Show only clients, which are selected by lastseen.
Replace OPERATOR with '<' or '>' or '=' or '!='.
And replace TIME with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).
Full example: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = 'Show only clients, which are from defined country.
Replace TS3-COUNTRY-CODE with the wished country.
For list of codes google for ISO 3166-1 alpha-2'; +$lang['stnv0043'] = 'conecteaza-te pe TS3'; +$lang['stri0001'] = 'Informatii Sistem Rank'; +$lang['stri0002'] = 'Ce este Sistem rank?'; +$lang['stri0003'] = 'A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site.'; +$lang['stri0004'] = 'Who created the Ranksystem?'; +$lang['stri0005'] = 'When the Ranksystem was Created?'; +$lang['stri0006'] = 'First alpha release: 05/10/2014.'; +$lang['stri0007'] = 'First beta release: 01/02/2015.'; +$lang['stri0008'] = 'You can see the latest version on the Ranksystem Website.'; +$lang['stri0009'] = 'How was the Ranksystem created?'; +$lang['stri0010'] = 'The Ranksystem is coded in'; +$lang['stri0011'] = 'It uses also the following libraries:'; +$lang['stri0012'] = 'Special Thanks To:'; +$lang['stri0013'] = '%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'] = '%s pentru traducerea cehă'; +$lang['stri0025'] = '%s pentru traducerea poloneză'; +$lang['stri0026'] = '%s pentru traducerea spaniolă'; +$lang['stri0027'] = '%s pentru traducerea maghiară'; +$lang['stri0028'] = '%s pentru traducerea azeră'; +$lang['stri0029'] = '%s pentru funcția de imprimare'; +$lang['stri0030'] = "%s pentru stilul 'CosmicBlue' pentru pagina de statistici și interfața web"; +$lang['stta0001'] = 'tot timpul'; +$lang['sttm0001'] = 'luna'; +$lang['sttw0001'] = 'Top useri'; +$lang['sttw0002'] = 'saptamana'; +$lang['sttw0003'] = 'cu %s %s timp online'; +$lang['sttw0004'] = 'Top 10 comparat'; +$lang['sttw0005'] = 'ore (Defines 100 %)'; +$lang['sttw0006'] = '%s ore (%s%)'; +$lang['sttw0007'] = 'Top 10 Statistici'; +$lang['sttw0008'] = 'Top 10 vs altii in timp online'; +$lang['sttw0009'] = 'Top 10 vs altii in timp online'; +$lang['sttw0010'] = 'Top 10 vs altii in timp inactiv'; +$lang['sttw0011'] = 'Top 10 (in ore)'; +$lang['sttw0012'] = 'Alti %s useri (in ore)'; +$lang['sttw0013'] = 'Cu %s %s timp online'; +$lang['sttw0014'] = 'ore'; +$lang['sttw0015'] = 'minute'; +$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.'; +$lang['stve0004'] = 'Tokenul introdus nu se potriveste. Te rog incearca din nou!'; +$lang['stve0005'] = 'Felicitari, sunteti verificat cu succes! Acum puteti continua ..'; +$lang['stve0006'] = 'A aparut o eroare necunoscuta. Incearca din nou. Daca eroarea contiuna sa apara, contactati un administrator.'; +$lang['stve0007'] = 'Verifica pe TS3'; +$lang['stve0008'] = 'alege aici ID-ul dvs. unic de pe serverul TS3 pentru a va verifica.'; +$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['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'; +$lang['upgrp0003'] = 'Eroare la citirea iconitei serverului.'; +$lang['upgrp0004'] = 'Eroare la descarcarea iconite pe serverul TS3: '; +$lang['upgrp0005'] = 'Eroare la stergerea iconitei.'; +$lang['upgrp0006'] = 'Iconita a fost stearsa de pe server, acum s-a sters si de pe web.'; +$lang['upgrp0007'] = 'Eroare la citirea iconite pentru grupul %s cu ID %s.'; +$lang['upgrp0008'] = 'Eroare la descarcarea iconite pentru grupul %s cu ID %s: '; +$lang['upgrp0009'] = 'Eroare la stergerea iconite pentru grupul %s cu ID %s.'; +$lang['upgrp0010'] = 'Iconita grupului %s cu ID %s a fost stearsa de pe server, acum s-a sters si de pe web.'; +$lang['upgrp0011'] = 'Descarca iconita noua pentru gradul %s cu ID: %s'; +$lang['upinf'] = 'Este disponibila o noua versiune a sistemului rank; Informati clientii pe server ...'; +$lang['upinf2'] = 'Sistemul rank a fost recent (%s) updatat. Verifica %sChangelog%s pentru mai multe informatii.'; +$lang['upmsg'] = "Salut, o noua versiune pentru [B]Sistemul rank[/B] este disponibila!\nversiune curenta: %s\n[B]versiune noua: %s[/B]\nViziteaza site-ul nostru pentru mai multe informatii: [URL]%s[/URL].\nActualizarea a fost pornita. [B]Verifica ranksystem.log![/B]"; +$lang['upmsg2'] = "Salut, [B]Sistemul rank[/B] a fost actualizat.\n[B]noua versiune: %s[/B]\nViziteaza site-ul nostru pentru mai multe detalii [URL]%s[/URL]."; +$lang['upusrerr'] = 'Unique-ID pentru userul %s nu a putut fi gasit pe TeamSpeak!'; +$lang['upusrinf'] = 'Userul %s a fost informat cu succes.'; +$lang['user'] = 'Nume user'; +$lang['verify0001'] = 'Asigurati-va ca sunteti intr-adevar conectat pe serverul TS3!'; +$lang['verify0002'] = 'Intrati, daca nu ati facut deja asta, pe canalul de verificare %sverification-channel%s!'; +$lang['verify0003'] = 'Daca sunteti intr-adevar conectat la serverul TS3, va rugam sa contactati un admin.
Acesta trebuie sa creeze un canal de verificare pe serverul TeamSpeak. Dupa, canalul creat trebuie sa fie definit de sistemul rank, pe care numai un administrator il poate face.
stats page) a sistemului rank. Nu este posibil sa va verificam in acest moment! Ne pare rau :('; +$lang['verify0004'] = 'No user inside the verification channel found...'; +$lang['wi'] = 'Admin Panel'; +$lang['wiaction'] = 'actiune'; +$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['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['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!'; +$lang['wibot4'] = 'Porneste/Opreste BOT'; +$lang['wibot5'] = 'Porneste'; +$lang['wibot6'] = 'Opreste'; +$lang['wibot7'] = 'Reporneste'; +$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['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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$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['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'; +$lang['widelcldgrpdesc'] = "The Ranksystem remember the given servergroups, so it don't need to give/check this with every run of the worker.php again.

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

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

Attention: Run this in a moment, where the next few minutes no rankups become due!!! The Ranksystem can't remove the old group, cause it can't remember ;-)"; +$lang['widelsg'] = 'elimina din grad'; +$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'] = 'canal exceptie'; +$lang['wiexciddesc'] = "A comma separated list of the channel-IDs that are not to participate in the Ranksystem.

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

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

Be a user in an excluded channel, it is noted for this period as 'excluded from the Ranksystem'. The user dows no longer appears in the list 'stats/list_rankup.php' unless excluded clients should not be displayed there (Stats Page - excepted client)."; +$lang['wiexgrp'] = 'grad exceptie'; +$lang['wiexgrpdesc'] = 'A comma seperated list of servergroup-IDs, which should not conside for the Ranksystem.
User in at least one of this servergroups IDs will be ignored for the rank up.'; +$lang['wiexres'] = 'mod exceptie'; +$lang['wiexres1'] = 'contorizeaza timp (implicit)'; +$lang['wiexres2'] = 'pauza timp'; +$lang['wiexres3'] = 'reseteaza timp'; +$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) contorizeaza timp (implicit): At 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) pauza timp: On this option the spend online and idle time will be frozen (break) to the actual value (before the user got excepted). After loosing the excepted reason (after removing the excepted servergroup or remove the expection rule) the 'counting' will go on.

3) reseteaza timp: 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 exceptie'; +$lang['wiexuiddesc'] = 'A comma seperated list of unique Client-IDs, which should not conside for the Ranksystem.
User in this list will be ignored for the rank up.'; +$lang['wiexregrp'] = 'elimină grupul'; +$lang['wiexregrpdesc'] = "Dacă un utilizator este exclus din Ranksystem, grupul de server atribuit de Ranksystem va fi eliminat.

Grupul va fi eliminat doar cu '".$lang['wiexres']."' cu '".$lang['wiexres1']."'. În toate celelalte moduri, grupul de server nu va fi eliminat.

Această funcție este relevantă doar Ăźn combinație cu un '".$lang['wiexuid']."' sau un '".$lang['wiexgrp']."' Ăźn combinație cu '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Import Mode'; +$lang['wigrpt1'] = 'Time in Seconds'; +$lang['wigrpt2'] = 'Servergroup'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'Clasificare grade'; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

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['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

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=>0,120=>10=>0,180=>11=>0
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['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$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!"; +$lang['wihladm1'] = 'adăugați timp'; +$lang['wihladm2'] = 'Ăźndepărtați timpul'; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Job Status'; +$lang['wihladmrs0'] = 'disabled'; +$lang['wihladmrs1'] = 'created'; +$lang['wihladmrs10'] = 'Job(s) successfully confirmed!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Are you sure, you still want to reset the system?'; +$lang['wihladmrs13'] = 'Yes, start reset'; +$lang['wihladmrs14'] = 'No, cancel'; +$lang['wihladmrs15'] = 'Please choose at least one option!'; +$lang['wihladmrs16'] = 'enabled'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 job is in progress!'; +$lang['wihladmrs9'] = 'Please %s confirm %s the job(s). This will reset the job status of all jobs. It is needed to be able to start a new one.'; +$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."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'Folder'; +$lang['wilogdesc'] = 'Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

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

This message will be send 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'] = 'Noutati server'; +$lang['wimsgsndesc'] = 'Define a message, which will be shown on the /stats/ page as server news.

You can use default html functions to modify the layout

Example:
<b> - for bold
<u> - for underline
<i> - for italic
<br> - for word-wrap (new line)'; +$lang['wimsgusr'] = '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['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'baza de date'; +$lang['winav3'] = 'Core'; +$lang['winav4'] = 'altele'; +$lang['winav5'] = 'mesaj'; +$lang['winav6'] = 'pagina statistici'; +$lang['winav7'] = 'administreaza'; +$lang['winav8'] = 'porneste/opreste'; +$lang['winav9'] = 'Actualizare disponibila!'; +$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['winxmsg2'] = 'Mesj (cel mai mare)'; +$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. 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"; +$lang['wirtpw5'] = 'There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login.'; +$lang['wirtpw6'] = 'The password of the webinterface has been successfully reset. Request from IP %s.'; +$lang['wirtpw7'] = 'Reset Password'; +$lang['wirtpw8'] = 'Here you can reset the password for the webinterface.'; +$lang['wirtpw9'] = 'Following things are required to reset the password:'; +$lang['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['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'timp activ'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'hash IP addresses'; +$lang['wishcolha0'] = 'disable hashing'; +$lang['wishcolha1'] = 'secure hashing'; +$lang['wishcolha2'] = 'fast hashing (default)'; +$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['wishcolot'] = 'timp online'; +$lang['wishdef'] = 'default column sort'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'Define the default sorting column for the List Rankup page.'; +$lang['wishexcld'] = 'client exceptie'; +$lang['wishexclddesc'] = 'Afisati clientii in list_rankup.php,
care sunt exclusi si, prin urmare, nu participa la sistemul rank.'; +$lang['wishexgrp'] = 'grad exceptie'; +$lang['wishexgrpdesc'] = 'Afisati clientii in list_rankup.php, care se afla in lista "exceptie client" si nu ar trebui sa fie afisati pe sistemul rank'; +$lang['wishhicld'] = 'Clienti cu cel mai mare rank'; +$lang['wishhiclddesc'] = 'Afisati clientii in list_rankup.php, care au atins cel mai mare grad din sistemul rank.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$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['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$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['wistyle'] = 'stil personalizat'; +$lang['wistyledesc'] = "Definiți un stil personalizat diferit pentru sistemul de ranguri.
Acest stil va fi utilizat pentru pagina de statistici și interfața web.

Plasați propriul stil Ăźn directorul 'style' Ăźntr-un subdirector propriu.
Numele subdirectorului determină numele stilului.

Stilurile care ßncep cu 'TSN_' sunt furnizate de către sistemul de ranguri. Acestea vor fi actualizate prin actualizări viitoare.
Prin urmare, nu ar trebui să se facă modificări ßn acestea!
Cu toate acestea, acestea pot fi utilizate ca șabloane. Copiați stilul Ăźntr-un director propriu pentru a face modificări.

Sunt necesare două fișiere CSS. Unul pentru pagina de statistici și unul pentru interfața web.
De asemenea, se poate include un JavaScript propriu. Acest lucru este opțional.

Convenția de nume pentru CSS:
- Fix 'ST.css' pentru pagina de statistici (/stats/)
- Fix 'WI.css' pentru pagina de interfață web (/webinterface/)


Convenția de nume pentru JavaScript:
- Fix 'ST.js' pentru pagina de statistici (/stats/)
- Fix 'WI.js' pentru pagina de interfață web (/webinterface/)


Dacă doriți să oferiți și altora stilul dvs., puteți trimite la următoarea adresă de e-mail:

%s

Vom furniza cu următoarea versiune!"; +$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['wisvres'] = 'Trebuie sa reporniti sistemul rank inainte ca schimbarile sa aiba efect! %s'; +$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['wits3pre'] = 'Prefixul comenzii botului'; +$lang['wits3predesc'] = "Pe serverul TeamSpeak poți comunica cu botul Ranksystem prin intermediul chat-ului. În mod implicit, comenzile botului sunt marcate cu un semn de exclamare '!'. Prefixul este folosit pentru a identifica comenzile pentru bot ca atare.

Acest prefix poate fi Ăźnlocuit cu orice alt prefix dorit. Acest lucru poate fi necesar dacă se utilizează alți boturi cu comenzi similare.

De exemplu, comanda pentru botul implicit ar arăta astfel:
!help


Dacă prefixul este ßnlocuit cu '#', comanda ar arăta astfel:
#help
"; +$lang['wits3qnm'] = 'Nume'; +$lang['wits3qnmdesc'] = 'Se va stabili numele, cu aceasta conexiune de interogare.
Puteti sa-l numiti gratuit.'; +$lang['wits3querpw'] = 'TS3 parola query'; +$lang['wits3querpwdesc'] = 'TeamSpeak3 parola query
Parola pentru query.'; +$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['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'; +$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['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'] = 'Canal de verificare'; +$lang['wiverifydesc'] = 'Scrie aici ID-ul canalului pentru verificare.

Acest canal trebuie setat manual pe serverul TeamSpeak. Numele, permisiunile ?i alte proprieta?i ar putea fi definite pentru alegerea dvs.; doar utilizatorul ar trebui sa fie posibil sa se alature acestui canal!

Verificarea se face de catre utilizatorul respectiv ?u?i pe pagina de statistici (/stats/). Acest lucru este necesar doar daca vizitatorul site-ului nu poate fi asociat automat cu utilizatorul TeamSpeak.

Pentru a verifica daca utilizatorul TeamSpeak trebuie sa fie pe canalul de verificare. Acolo el poate primi token-ul cu care se verifica pentru pagina de statistici.'; +$lang['wivlang'] = 'Limba'; +$lang['wivlangdesc'] = 'Alege limba default pentru web.

Limba se poate schimba din web de fiecare user.'; diff --git "a/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" "b/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" index 8de620d..ec13525 100644 --- "a/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" +++ "b/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" @@ -1,708 +1,708 @@ -
You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; -$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; -$lang['addonchdescdesc00'] = "Variable Name"; -$lang['addonchdescdesc01'] = "Collected active time since ever (all time)."; -$lang['addonchdescdesc02'] = "Collected active time in the last month."; -$lang['addonchdescdesc03'] = "Collected active time in the last week."; -$lang['addonchdescdesc04'] = "Collected online time since ever (all time)."; -$lang['addonchdescdesc05'] = "Collected online time in the last month."; -$lang['addonchdescdesc06'] = "Collected online time in the last week."; -$lang['addonchdescdesc07'] = "Collected idle time since ever (all time)."; -$lang['addonchdescdesc08'] = "Collected idle time in the last month."; -$lang['addonchdescdesc09'] = "Collected idle time in the last week."; -$lang['addonchdescdesc10'] = "Channel database ID, where the user is currently in."; -$lang['addonchdescdesc11'] = "Channel name, where the user is currently in."; -$lang['addonchdescdesc12'] = "The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front."; -$lang['addonchdescdesc13'] = "Group database ID of the current rank group."; -$lang['addonchdescdesc14'] = "Group name of the current rank group."; -$lang['addonchdescdesc15'] = "Time, when the user got the last rank up."; -$lang['addonchdescdesc16'] = "Needed time, to the next rank up."; -$lang['addonchdescdesc17'] = "Current rank position of all user."; -$lang['addonchdescdesc18'] = "Country Code by the ip address of the TeamSpeak user."; -$lang['addonchdescdesc20'] = "Time, when the user has the first connect to the TS."; -$lang['addonchdescdesc22'] = "Client database ID."; -$lang['addonchdescdesc23'] = "Client description on the TS server."; -$lang['addonchdescdesc24'] = "Time, when the user was last seen on the TS server."; -$lang['addonchdescdesc25'] = "Current/last nickname of the client."; -$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; -$lang['addonchdescdesc27'] = "Platform Code of the TeamSpeak user."; -$lang['addonchdescdesc28'] = "Count of the connections to the server."; -$lang['addonchdescdesc29'] = "Public unique Client ID."; -$lang['addonchdescdesc30'] = "Client Version of the TeamSpeak user."; -$lang['addonchdescdesc31'] = "Current time on updating the channel description."; -$lang['addonchdelay'] = "Delay"; -$lang['addonchdelaydesc'] = "Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached."; -$lang['addonchmo'] = "Mode"; -$lang['addonchmo1'] = "Top Week - active time"; -$lang['addonchmo2'] = "Top Week - online time"; -$lang['addonchmo3'] = "Top Month - active time"; -$lang['addonchmo4'] = "Top Month - online time"; -$lang['addonchmo5'] = "Top All Time - active time"; -$lang['addonchmo6'] = "Top All Time - online time"; -$lang['addonchmodesc'] = "Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time."; -$lang['addonchtopl'] = "Channelinfo Toplist"; -$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; -$lang['asc'] = "ĐżĐŸ ĐČĐŸĐ·Ń€Đ°ŃŃ‚Đ°ĐœĐžŃŽ"; -$lang['autooff'] = "autostart is deactivated"; -$lang['botoff'] = "Đ‘ĐŸŃ‚ ĐŸŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ."; -$lang['boton'] = "Đ‘ĐŸŃ‚ Đ·Đ°ĐżŃƒŃ‰Đ”Đœ..."; -$lang['brute'] = "ХлОшĐșĐŸĐŒ ĐŒĐœĐŸĐłĐŸ ĐœĐ”ĐșĐŸŃ€Ń€Đ”ĐșŃ‚ĐœŃ‹Ń… ĐżĐŸĐżŃ‹Ń‚ĐŸĐș ĐČŃ…ĐŸĐŽĐ° ĐČ ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс. Вы былО Đ·Đ°Đ±Đ»ĐŸĐșĐžŃ€ĐŸĐČĐ°ĐœŃ‹ ĐœĐ° 300 сДĐșŃƒĐœĐŽ! ĐŸĐŸŃĐ»Đ”ĐŽĐœĐžĐč ŃƒŃĐżĐ”ŃˆĐœŃ‹Đč ĐČŃ…ĐŸĐŽ был ĐČŃ‹ĐżĐŸĐ»Đ”Đœ с IP %s."; -$lang['brute1'] = "ĐžĐ±ĐœĐ°Ń€ŃƒĐ¶Đ”ĐœĐ° ĐœĐ”ĐČĐ”Ń€ĐœĐ°Ń ĐżĐŸĐżŃ‹Ń‚Đșа ĐČŃ…ĐŸĐŽĐ° ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ с IP %s Đž ĐžĐŒĐ”ĐœĐ”ĐŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń %s."; -$lang['brute2'] = "ĐŁŃĐżĐ”ŃˆĐœŃ‹Đč ĐČŃ…ĐŸĐŽ ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ с IP %s."; -$lang['changedbid'] = "ĐŁ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń %s (UID: %s) ĐžĐ·ĐŒĐ”ĐœĐžĐ»ŃŃ TeamSpeak DBID (%s). ĐžĐ±ĐœĐŸĐČĐ»ŃĐ”ĐŒ старыĐč Client-DBID (%s) Đž сбрасыĐČĐ°Đ”ĐŒ Đ”ĐŒŃƒ ŃŃ‚Đ°Ń€ĐŸĐ” ĐČŃ€Đ”ĐŒŃ!"; -$lang['chkfileperm'] = "ĐĐ”ĐČĐ”Ń€ĐœŃ‹Đ” проĐČОлДгОО фаĐčла ОлО папĐșĐž!
Đ’Đ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ŃƒŃŃ‚Đ°ĐœĐŸĐČоть праĐČĐžĐ»ŃŒĐœĐŸĐłĐŸ ĐČĐ»Đ°ĐŽĐ”Đ»ŃŒŃ†Đ° фаĐčĐ»ĐŸĐČ Đž ĐżĐ°ĐżĐŸĐș!

ВлаЎДлДц ĐČсДх фаĐčĐ»ĐŸĐČ Đž ĐżĐ°ĐżĐŸĐș ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐŽĐŸĐ»Đ¶Đ”Đœ Đ±Ń‹Ń‚ŃŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Đ”ĐŒ, ĐżĐŸĐŽ ĐșĐŸŃ‚ĐŸŃ€Ń‹ĐŒ Đ·Đ°ĐżŃƒŃ‰Đ”Đœ ĐČДб-сДрĐČДр (ĐżŃ€ĐžĐŒ.: www-data).
На Linux ŃĐžŃŃ‚Đ”ĐŒĐ°Ń… ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐŸĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”Đ” (ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ ĐČ Ń‚Đ”Ń€ĐŒĐžĐœĐ°Đ»Đ”):
%sйаĐș жД ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹ проĐČОлДгОО ĐŽĐŸŃŃ‚ŃƒĐżĐ°, Ń‡Ń‚ĐŸ бы ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐČДб-сДрĐČДра ĐŒĐŸĐł чотать, посать Đž ĐžŃĐżĐŸĐ»ĐœŃŃ‚ŃŒ фаĐčлы.
На Linux ŃĐžŃŃ‚Đ”ĐŒĐ°Ń… ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐŸĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”Đ” (ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ ĐČ Ń‚Đ”Ń€ĐŒĐžĐœĐ°Đ»Đ”):
%sĐĄĐżĐžŃĐŸĐș фаĐčĐ»ĐŸĐČ/ĐżĐ°ĐżĐŸĐș:
%s"; -$lang['chkphpcmd'] = "ĐĐ”ĐČĐ”Ń€ĐœĐŸ ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐ° ĐșĐŸĐŒĐ°ĐœĐŽĐ° запусĐșа PHP ĐČ ĐșĐŸĐœŃ„ĐžĐłĐ” %s! PHP ĐœĐ” ĐœĐ°ĐčĐŽĐ”Đœ ĐżĐŸ уĐșĐ°Đ·Đ°ĐœĐœĐŸĐŒŃƒ путо!
ОтĐșŃ€ĐŸĐčтД уĐșĐ°Đ·Đ°ĐœĐœŃ‹Đč фаĐčĐ» Đž ĐżŃ€ĐŸĐżĐžŃˆĐžŃ‚Đ” ĐČĐ”Ń€ĐœŃ‹Đč путь ĐŽĐŸ Đ±ĐžĐœĐ°Ń€ĐœĐžĐșа PHP!

ĐĄĐ”Đčчас ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐŸ %s:
%s
Đ Đ”Đ·ŃƒĐ»ŃŒŃ‚Đ°Ń‚ ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐžŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹:%sВы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżŃ€ĐŸŃ‚Đ”ŃŃ‚ĐžŃ€ĐŸĐČать ĐČашу ĐșĐŸĐŒĐ°ĐœĐŽŃƒ запусĐșа чДрДз Ń‚Đ”Ń€ĐŒĐžĐœĐ°Đ»ŃŒĐœŃ‹Đč ĐŽĐŸŃŃ‚ŃƒĐż ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€ '-v'.
ĐŸŃ€ĐžĐŒĐ”Ń€: %sĐ Đ”Đ·ŃƒĐ»ŃŒŃ‚Đ°Ń‚ĐŸĐŒ ĐŽĐŸĐ»Đ¶ĐœĐ° Đ±Ń‹Ń‚ŃŒ ĐČĐ”Ń€ŃĐžŃ PHP!"; -$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['cleanno'] = "ĐĐ” ĐœĐ°ĐčĐŽĐ”ĐœŃ‹ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО, ĐżĐŸĐŽĐ»Đ”Đ¶Đ°Ń‰ĐžĐ” ŃƒĐŽĐ°Đ»Đ”ĐœĐžŃŽ Оз базы ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['cleanp'] = "ĐŸĐ”Ń€ĐžĐŸĐŽ ĐŸŃ‡ĐžŃŃ‚ĐșĐž базы ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['cleanpdesc'] = "ĐŁĐșажОтД ĐČŃ€Đ”ĐŒŃ, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” ĐŽĐŸĐ»Đ¶ĐœĐŸ ĐżŃ€ĐŸĐčто пДрДЎ ĐŸŃ‡Đ”Ń€Đ”ĐŽĐœĐŸĐč ĐŸŃ‡ĐžŃŃ‚ĐșĐŸĐč ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč.

ĐŁŃŃ‚Đ°ĐœĐ°ĐČлОĐČĐ°Đ”Ń‚ŃŃ ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń….

Đ”Đ»Ń Đ±ĐŸĐ»ŃŒŃˆĐžŃ… баз ĐŽĐ°ĐœĐœŃ‹Ń… рДĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ĐŸĐŽĐžĐœ раз ĐČ ĐŽĐ”ĐœŃŒ."; -$lang['cleanrs'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ: %s"; -$lang['cleants'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐœĐ°ĐčĐŽĐ”ĐœĐŸ ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… TeamSpeak: %s (at %s)"; -$lang['day'] = "%s ĐŽĐ”ĐœŃŒ"; -$lang['days'] = "%s ĐŽĐœŃ"; -$lang['dbconerr'] = "ĐžŃˆĐžĐ±Đșа ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń…: "; -$lang['desc'] = "ĐżĐŸ ŃƒĐ±Ń‹ĐČĐ°ĐœĐžŃŽ"; -$lang['descr'] = "ĐžĐżĐžŃĐ°ĐœĐžĐ”"; -$lang['duration'] = "ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒ"; -$lang['errcsrf'] = "Ключ CSRF ĐœĐ”ĐČĐ”Ń€Đ”Đœ ОлО ОстДĐș ŃŃ€ĐŸĐș Đ”ĐłĐŸ ĐŽĐ”ĐčстĐČоя (ĐŸŃˆĐžĐ±Đșа ĐżŃ€ĐŸĐČДрĐșĐž Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚Đž)! ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚Đ” эту ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐœĐŸĐČа. ЕслО ĐČы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” эту ĐŸŃˆĐžĐ±Đșу ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ раз, ŃƒĐŽĐ°Đ»ĐžŃ‚Đ” ĐșуĐșĐž с ŃŃ‚ĐŸĐłĐŸ саĐčта ĐČ ĐČĐ°ŃˆĐ”ĐŒ Đ±Ń€Đ°ŃƒĐ·Đ”Ń€Đ” Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐœĐŸĐČа!"; -$lang['errgrpid'] = "ĐžŃˆĐžĐ±Đșа про ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœĐžĐž ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐč ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…. ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, оспраĐČŃŒŃ‚Đ” ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒŃ‹ Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ŃĐœĐŸĐČа!"; -$lang['errgrplist'] = "ĐžŃˆĐžĐ±Đșа про ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžĐž спОсĐșа групп сДрĐČДра: "; -$lang['errlogin'] = "ĐĐ”ĐČĐ”Ń€ĐœĐŸ ĐČĐČĐ”ĐŽŃ‘Đœ Đ»ĐŸĐłĐžĐœ ОлО ĐżĐ°Ń€ĐŸĐ»ŃŒ! ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐŸĐČŃ‚ĐŸŃ€ĐžŃ‚Đ” ĐČĐČĐŸĐŽ ĐŽĐ°ĐœĐœŃ‹Ń… Đ·Đ°ĐœĐŸĐČĐŸ."; -$lang['errlogin2'] = "Защота ĐŸŃ‚ ĐżĐ”Ń€Đ”Đ±ĐŸŃ€Đ°: ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ĐżĐŸĐČŃ‚ĐŸŃ€ĐžŃ‚ŃŒ чДрДз %s сДĐșŃƒĐœĐŽ!"; -$lang['errlogin3'] = "Защота ĐŸŃ‚ ĐżĐ”Ń€Đ”Đ±ĐŸŃ€Đ°: От ĐČас ĐżĐŸŃŃ‚ŃƒĐżĐ°Đ”Ń‚ слОшĐșĐŸĐŒ ĐŒĐœĐŸĐłĐŸ Đ·Đ°ĐżŃ€ĐŸŃĐŸĐČ. Вы былО Đ·Đ°Đ±Đ°ĐœĐ”ĐœŃ‹ ĐœĐ° 300 сДĐșŃƒĐœĐŽ!"; -$lang['error'] = "ĐžŃˆĐžĐ±Đșа "; -$lang['errorts3'] = "ĐžŃˆĐžĐ±Đșа TS3: "; -$lang['errperm'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐœĐ°Đ»ĐžŃ‡ĐžĐž проĐČОлДгОĐč ĐœĐ° Đ·Đ°ĐżĐžŃŃŒ ĐČ ĐżĐ°ĐżĐșу '%s'!"; -$lang['errphp'] = "%1\$s ĐŸŃ‚ŃŃƒŃ‚ŃŃ‚ĐČŃƒĐ”Ń‚. ĐĐ”ĐČĐŸĐ·ĐŒĐŸĐ¶ĐœĐŸ ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ŃŒ бДз ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐœĐŸĐłĐŸ %1\$s!"; -$lang['errseltime'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČĐČДЎОтД ĐČŃ€Đ”ĐŒŃ, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐœĐ°Ń‡ĐžŃĐ»ĐžŃ‚ŃŒ."; -$lang['errselusr'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, уĐșажОтД ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń!"; -$lang['errukwn'] = "ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐœĐ”ĐžĐ·ĐČĐ”ŃŃ‚ĐœĐ°Ń ĐŸŃˆĐžĐ±Đșа!"; -$lang['factor'] = "ĐșĐŸŃŃ„Ń„ĐžŃ†ĐžĐ”ĐœŃ‚"; -$lang['highest'] = "Đ”ĐŸŃŃ‚ĐžĐłĐœŃƒŃ‚ ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœŃ‹Đč Ń€Đ°ĐœĐł"; -$lang['imprint'] = "Imprint"; -$lang['input'] = "Input Value"; -$lang['insec'] = "ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń…"; -$lang['install'] = "ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșа"; -$lang['instdb'] = "ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșа базы ĐŽĐ°ĐœĐœŃ‹Ń…"; -$lang['instdbsuc'] = "База ĐŽĐ°ĐœĐœŃ‹Ń… %s ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸĐ·ĐŽĐ°ĐœĐ°."; -$lang['insterr1'] = "ВНИМАНИЕ: ĐŁĐșĐ°Đ·Đ°ĐœĐœĐ°Ń база ĐŽĐ°ĐœĐœŃ‹Ń… \"%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 740 (В windows 'ĐŸĐŸĐ»ĐœŃ‹Đč ĐŽĐŸŃŃ‚ŃƒĐż') Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД Đ·Đ°ĐœĐŸĐČĐŸ."; -$lang['isntwicfg2'] = "ĐšĐŸĐœŃ„ĐžĐłŃƒŃ€ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса"; -$lang['isntwichm'] = "ОтсутстĐČуют праĐČа ĐœĐ° Đ·Đ°ĐżĐžŃŃŒ ĐČ ĐżĐ°ĐżĐșу \"%s\". ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ŃƒŃŃ‚Đ°ĐœĐŸĐČОтД ĐœĐ° эту папĐșу праĐČа chmod 740 (В windows 'ĐżĐŸĐ»ĐœŃ‹Đč ĐŽĐŸŃŃ‚ŃƒĐż') Đž ĐżĐŸĐČŃ‚ĐŸŃ€ĐžŃ‚Đ” ŃŃ‚ĐŸŃ‚ этап Đ·Đ°ĐœĐŸĐČĐŸ."; -$lang['isntwiconf'] = "Đ—Đ°Ń‚Đ”ĐŒ ĐŸŃ‚ĐșŃ€ĐŸĐčтД ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ %s ĐŽĐ»Ń ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ!"; -$lang['isntwidbhost'] = "АЎрДс:"; -$lang['isntwidbhostdesc'] = "АЎрДс сДрĐČДра базы ĐŽĐ°ĐœĐœŃ‹Ń…
(IP ОлО ĐŽĐŸĐŒĐ”Đœ)"; -$lang['isntwidbmsg'] = "ĐžŃˆĐžĐ±Đșа базы ĐŽĐ°ĐœĐœŃ‹Ń…: "; -$lang['isntwidbname'] = "Đ˜ĐŒŃ:"; -$lang['isntwidbnamedesc'] = "ĐĐ°Đ·ĐČĐ°ĐœĐžĐ” базы ĐŽĐ°ĐœĐœŃ‹Ń…"; -$lang['isntwidbpass'] = "ĐŸĐ°Ń€ĐŸĐ»ŃŒ:"; -$lang['isntwidbpassdesc'] = "ĐŸĐ°Ń€ĐŸĐ»ŃŒ ĐŽĐ»Ń ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń…"; -$lang['isntwidbtype'] = "йОп базы ĐŽĐ°ĐœĐœŃ‹Ń…:"; -$lang['isntwidbtypedesc'] = "йОп базы ĐŽĐ°ĐœĐœŃ‹Ń…, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐŽĐŸĐ»Đ¶ĐœĐ° ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ.

ĐŁŃŃ‚Đ°ĐœĐ°ĐČлОĐČать PDO ĐŽĐ»Ń PHP ĐœĐ” Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ŃŃ.
Đ”Đ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž Đž ŃĐžŃŃ‚Đ”ĐŒĐœŃ‹Ń… Ń‚Ń€Đ”Đ±ĐŸĐČĐ°ĐœĐžĐč ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐżĐŸŃĐ”Ń‚ĐžŃ‚Đ” ŃĐżĐ”Ń†ĐžĐ°Đ»ŃŒĐœŃƒŃŽ ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ:
%s"; -$lang['isntwidbusr'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ:"; -$lang['isntwidbusrdesc'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ с ĐŽĐŸŃŃ‚ŃƒĐżĐŸĐŒ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń…"; -$lang['isntwidel'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ŃƒĐŽĐ°Đ»ĐžŃ‚Đ” фаĐčĐ» 'install.php' с ĐČДб-сДрĐČДра ĐČ Ń†Đ”Đ»ŃŃ… Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚Đž!"; -$lang['isntwiusr'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸĐ·ĐŽĐ°Đœ."; -$lang['isntwiusr2'] = "ĐŸĐŸĐ·ĐŽŃ€Đ°ĐČĐ»ŃĐ”ĐŒ! ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșа ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ŃƒŃĐżĐ”ŃˆĐœĐŸ заĐČĐ”Ń€ŃˆĐ”ĐœĐ°."; -$lang['isntwiusrcr'] = "ĐĄĐŸĐ·ĐŽĐ°ĐœĐžĐ” аĐșĐșĐ°ŃƒĐœŃ‚Đ° ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°"; -$lang['isntwiusrd'] = "ĐĄĐŸĐ·ĐŽĐ°ĐœĐžĐ” ĐŽĐ°ĐœĐœŃ‹Ń… аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžĐž ĐŽĐ»Ń ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčсу ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['isntwiusrdesc'] = "ВĐČДЎОтД ĐžĐŒŃ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń Đž ĐżĐ°Ń€ĐŸĐ»ŃŒ ĐŽĐ»Ń ĐŽĐŸŃŃ‚ŃƒĐżĐ° ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ. ĐĄ ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ĐČы ŃĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°ŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['isntwiusrh'] = "Đ”ĐŸŃŃ‚ŃƒĐż - ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ"; -$lang['listacsg'] = "йДĐșущая группа Ń€Đ°ĐœĐłĐ°"; -$lang['listcldbid'] = "ID ĐșĐ»ĐžĐ”ĐœŃ‚Đ° ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…"; -$lang['listexcept'] = "ĐĐ”Ń‚, ОсĐșĐ»ŃŽŃ‡Đ”Đœ"; -$lang['listgrps'] = "йДĐșущая группа ĐœĐ°Ń‡ĐžĐœĐ°Ń с"; -$lang['listnat'] = "country"; -$lang['listnick'] = "НоĐșĐœĐ”ĐčĐŒ"; -$lang['listnxsg'] = "ĐĄĐ»Đ”ĐŽŃƒŃŽŃ‰Đ°Ń группа Ń€Đ°ĐœĐłĐ°"; -$lang['listnxup'] = "ĐĄĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč Ń€Đ°ĐœĐł чДрДз"; -$lang['listpla'] = "platform"; -$lang['listrank'] = "Đ Đ°ĐœĐł"; -$lang['listseen'] = "ĐŸĐŸŃĐ»Đ”ĐŽĐœŃŃ аĐșтоĐČĐœĐŸŃŃ‚ŃŒ"; -$lang['listsuma'] = "ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž"; -$lang['listsumi'] = "ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ ĐżŃ€ĐŸŃŃ‚ĐŸŃ"; -$lang['listsumo'] = "ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ"; -$lang['listuid'] = "ĐŁĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID ĐșĐ»ĐžĐ”ĐœŃ‚Đ°(UID)"; -$lang['listver'] = "client version"; -$lang['login'] = "АĐČŃ‚ĐŸŃ€ĐžĐ·ĐŸĐČаться"; -$lang['module_disabled'] = "This module is deactivated."; -$lang['msg0001'] = "Đ—Đ°ĐżŃƒŃ‰Đ”ĐœĐ° ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐČДрсОО: %s"; -$lang['msg0002'] = "ĐĄĐżĐžŃĐŸĐș ĐŽĐŸŃŃ‚ŃƒĐżĐœŃ‹Ń… ĐșĐŸĐŒĐ°ĐœĐŽ ĐŒĐŸĐ¶ĐœĐŸ ĐœĐ°Đčто Đ·ĐŽĐ”ŃŃŒ[URL]https://ts-ranksystem.com/#commands[/URL]"; -$lang['msg0003'] = "ĐŁ ĐČас ĐœĐ”Ń‚ ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐŽĐ°ĐœĐœĐŸĐč ĐșĐŸĐŒĐ°ĐœĐŽĐ”!"; -$lang['msg0004'] = "ĐšĐ»ĐžĐ”ĐœŃ‚ %s (%s) ĐČыĐșлючОл ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['msg0005'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐČыĐșĐ»ŃŽŃ‡Đ°Đ”Ń‚ŃŃ... ĐŸŃ€ŃĐŒĐŸ сДĐčчас!"; -$lang['msg0006'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃĐșĐ°Đ”Ń‚ŃŃ..."; -$lang['msg0007'] = "ĐšĐ»ĐžĐ”ĐœŃ‚ %s (%s) %s ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['msg0008'] = "ĐŸŃ€ĐŸĐČДрĐșа ĐœĐ° ĐœĐ°Đ»ĐžŃ‡ĐžĐ” ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč заĐČĐ”Ń€ŃˆĐ”ĐœĐ°. ЕслО ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ĐŽĐŸŃŃ‚ŃƒĐżĐœĐŸ - ĐŸĐœĐŸ ĐœĐ°Ń‡ĐœĐ”Ń‚ŃŃ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž."; -$lang['msg0009'] = "ĐĐ°Ń‡Đ°Đ»Đ°ŃŃŒ ĐŸŃ‡ĐžŃŃ‚Đșа ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒŃĐșĐŸĐč базы ĐŽĐ°ĐœĐœŃ‹Ń…."; -$lang['msg0010'] = "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД ĐșĐŸĐŒĐ°ĐœĐŽŃƒ !log Ń‡Ń‚ĐŸ бы ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ Đ±ĐŸĐ»ŃŒŃˆĐ” сĐČĐ”ĐŽĐ”ĐœĐžĐč."; -$lang['msg0011'] = "ĐžŃ‡ĐžŃ‰Đ”Đœ Đșэш групп. ĐĐ°Ń‡ĐžĐœĐ°ŃŽ Đ·Đ°ĐłŃ€ŃƒĐ·Đșу групп Đž ĐžĐșĐŸĐœĐŸĐș..."; -$lang['noentry'] = "ЗапОсДĐč ĐœĐ” ĐœĐ°ĐčĐŽĐ”ĐœĐŸ.."; -$lang['pass'] = "ĐŸĐ°Ń€ĐŸĐ»ŃŒ"; -$lang['pass2'] = "Đ˜Đ·ĐŒĐ”ĐœĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ"; -$lang['pass3'] = "СтарыĐč ĐżĐ°Ń€ĐŸĐ»ŃŒ"; -$lang['pass4'] = "ĐĐŸĐČыĐč ĐżĐ°Ń€ĐŸĐ»ŃŒ"; -$lang['pass5'] = "ЗабылО ĐżĐ°Ń€ĐŸĐ»ŃŒ?"; -$lang['permission'] = "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžŃ"; -$lang['privacy'] = "Privacy Policy"; -$lang['repeat'] = "ĐŸĐŸĐČŃ‚ĐŸŃ€ ĐœĐŸĐČĐŸĐłĐŸ ĐżĐ°Ń€ĐŸĐ»Ń"; -$lang['resettime'] = "ХбрасыĐČĐ°Đ”ĐŒ ĐŸĐœĐ»Đ°ĐčĐœ Đž ĐČŃ€Đ”ĐŒŃ ĐżŃ€ĐŸŃŃ‚ĐŸŃ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń %s (UID: %s; DBID %s), таĐș ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ был ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč."; -$lang['sccupcount'] = "%s сДĐșŃƒĐœĐŽ аĐșтоĐČĐœĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž Đ±Ń‹Đ»ĐŸ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐŸ ĐșĐ»ĐžĐ”ĐœŃ‚Ńƒ с ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹ĐŒ ID (UID) %s. Đ‘ĐŸĐ»ŃŒŃˆĐ” ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŒĐŸĐ¶ĐœĐŸ ĐœĐ°Đčто ĐČ Đ»ĐŸĐł-фаĐčлД ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['sccupcount2'] = "ĐŁŃĐżĐ”ŃˆĐœĐŸ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐŸ %s сДĐșŃƒĐœĐŽ аĐșтоĐČĐœĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐșĐ»ĐžĐ”ĐœŃ‚Ńƒ с ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹ĐŒ ID (UID) %s ĐżĐŸ Đ·Đ°ĐżŃ€ĐŸŃŃƒ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['setontime'] = "Đ”ĐŸĐ±Đ°ĐČоть ĐČŃ€Đ”ĐŒŃ"; -$lang['setontime2'] = "ĐžŃ‚ĐœŃŃ‚ŃŒ ĐČŃ€Đ”ĐŒŃ"; -$lang['setontimedesc'] = "Đ”Đ°ĐœĐœĐ°Ń Ń„ŃƒĐœĐșцоя ĐœĐ°Ń‡ĐžŃĐ»ŃĐ”Ń‚ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœĐ° с ŃƒŃ‡Ń‘Ń‚ĐŸĐŒ ĐżŃ€ĐŸŃˆĐ»Ń‹Ń… ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐžĐč. От ŃŃ‚ĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž таĐșжД Đ±ŃƒĐŽĐ”Ń‚ ĐČĐżĐŸŃĐ»Đ”ĐŽŃŃ‚ĐČОО ŃŃ„ĐŸŃ€ĐŒĐžŃ€ĐŸĐČĐ°Đœ Ń€Đ°ĐœĐł ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń.

ĐŸĐŸ ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐžŃŽ Đ·Đ°ĐżŃ€ĐŸŃĐ° ĐČĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ Đ±ŃƒĐŽĐ”Ń‚ учотыĐČаться про ĐČыЎачД Ń€Đ°ĐœĐłĐ° Đž ĐŽĐŸĐ»Đ¶ĐœĐŸ ĐżĐŸĐŽĐ”ĐčстĐČĐŸĐČать ĐŒĐłĐœĐŸĐČĐ”ĐœĐœĐŸ (ĐœĐ”ĐŒĐœĐŸĐłĐŸ ĐŽĐŸĐ»ŃŒŃˆĐ” про ĐČĐșĐ»ŃŽŃ‡Đ”ĐœĐœĐŸĐŒ SlowMode'Đ”)."; -$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_pib'] = "ПоБ"; -$lang['size_tib'] = "боБ"; -$lang['size_yib'] = "ЙоБ"; -$lang['size_zib'] = "ЗоБ"; -$lang['stag0001'] = "ĐœĐ”ĐœĐ”ĐŽĐ¶Đ”Ń€ групп"; -$lang['stag0001desc'] = "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ Ń„ŃƒĐœĐșцою 'ĐœĐ”ĐœĐ”ĐŽĐ¶Đ”Ń€ групп' ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐŒĐŸĐłŃƒŃ‚ ŃĐ°ĐŒĐž упраĐČĐ»ŃŃ‚ŃŒ сĐČĐŸĐžĐŒĐž ĐłŃ€ŃƒĐżĐżĐ°ĐŒĐž сДрĐČДра (ĐżŃ€ĐžĐŒĐ”Ń€: ĐžĐłŃ€ĐŸĐČыД-, ĐżĐŸ ŃŃ‚Ń€Đ°ĐœĐ”-, ĐżĐŸĐ» Đž т.ĐŽ.).

ĐŸĐŸŃĐ»Đ” аĐșтоĐČацоо ŃŃ‚ĐŸĐč Ń„ŃƒĐœĐșцоо ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” статостоĐșĐž ĐżĐŸŃĐČотся ŃĐŸĐŸŃ‚ĐČДтстĐČующоĐč ĐżŃƒĐœĐșт ĐŒĐ”ĐœŃŽ.

Вы ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ŃĐ”Ń‚Đ”, ĐșаĐșОД группы ĐŽĐŸŃŃ‚ŃƒĐżĐœŃ‹ ĐŽĐ»Ń ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐž.
Вы таĐș жД ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐŸĐłŃ€Đ°ĐœĐžŃ‡ĐžŃ‚ŃŒ ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐ” ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ групп, ĐŽĐŸŃŃ‚ŃƒĐżĐœĐŸĐ” ĐŽĐ»Ń ĐŸĐŽĐœĐŸĐČŃ€Đ”ĐŒĐ”ĐœĐœĐŸĐč ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐž."; -$lang['stag0002'] = "Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐœŃ‹Đ” группы"; -$lang['stag0003'] = "ВыбДрОтД группы сДрĐČДра, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ŃĐŒĐŸĐ¶Đ”Ń‚ ĐœĐ°Đ·ĐœĐ°Ń‡ĐžŃ‚ŃŒ сДбД ŃĐ°ĐŒ."; -$lang['stag0004'] = "Đ›ĐžĐŒĐžŃ‚ ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČа групп"; -$lang['stag0005'] = "МаĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐ” ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ групп, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐŒĐŸĐ¶Đ”Ń‚ ŃƒŃŃ‚Đ°ĐœĐŸĐČоть сДбД ĐŸĐŽĐœĐŸĐČŃ€Đ”ĐŒĐ”ĐœĐœĐŸ."; -$lang['stag0006'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ĐžĐ»Đ° ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ UIDĐŸĐČ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… Đș сДрĐČĐ”Ń€Ńƒ с ĐČĐ°ŃˆĐžĐŒ IP. ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста %sĐœĐ°Đ¶ĐŒĐžŃ‚Đ” сюЮа%s Ń‡Ń‚ĐŸ бы ĐżĐ”Ń€Đ”ĐżŃ€ĐŸĐČĐ”Ń€ĐžŃ‚ŃŒ."; -$lang['stag0007'] = "ĐŸŃ€Đ”Đ¶ĐŽĐ” Ń‡Đ”ĐŒ ĐČĐœĐŸŃĐžŃ‚ŃŒ ĐœĐŸĐČыД ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐżĐŸĐŽĐŸĐ¶ĐŽĐžŃ‚Đ” ĐżĐŸĐșа ĐČашО ĐżŃ€Đ”ĐŽŃ‹ĐŽŃƒŃ‰ĐžĐ” ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐČступят ĐČ ŃĐžĐ»Ńƒ..."; -$lang['stag0008'] = "Đ˜Đ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœŃ‹. ЧДрДз ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ сДĐșŃƒĐœĐŽ группы Đ±ŃƒĐŽŃƒŃ‚ ĐČŃ‹ĐŽĐ°ĐœŃ‹ ĐœĐ° сДрĐČДрД."; -$lang['stag0009'] = "Вы ĐœĐ” ĐŒĐŸĐ¶Đ”Ń‚Đ” ŃƒŃŃ‚Đ°ĐœĐŸĐČоть Đ±ĐŸĐ»Đ”Đ” %s групп(ы)!"; -$lang['stag0010'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ĐČыбДрОтД ĐșаĐș ĐŒĐžĐœĐžĐŒŃƒĐŒ ĐŸĐŽĐœŃƒ ĐœĐŸĐČую группу."; -$lang['stag0011'] = "ĐœĐŸĐ¶ĐœĐŸ ĐČŃ‹Đ±Ń€Đ°Ń‚ŃŒ ĐœĐ” Đ±ĐŸĐ»Đ”Đ”: "; -$lang['stag0012'] = "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ Đž ŃƒŃŃ‚Đ°ĐœĐŸĐČоть группы"; -$lang['stag0013'] = "ĐĐŽĐŽĐŸĐœ ВКЛ/ВЫКЛ"; -$lang['stag0014'] = "ĐŸĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ ĐČĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ (ВКЛ) ОлО ĐČыĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ (ВЫКЛ) Đ°ĐŽĐŽĐŸĐœ.

ЕслО ĐŸŃ‚ĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ Đ°ĐŽĐŽĐŸĐœ Ń‚ĐŸ ĐżŃƒĐœĐșт ĐŒĐ”ĐœŃŽ ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐœĐ°ĐČогацоо stats/ Đ±ŃƒĐŽĐ”Ń‚ сĐșрыт."; -$lang['stag0015'] = "Вы ĐœĐ” ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đș сДрĐČĐ”Ń€Ńƒ Đ»ĐžĐ±ĐŸ ĐČĐ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐŸĐčто ĐżŃ€ĐŸĐČДрĐșу! ĐĐ°Đ¶ĐŒĐžŃ‚Đ” %sĐ·ĐŽĐ”ŃŃŒ%s Ń‡Ń‚ĐŸ бы ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ŃŒ"; -$lang['stag0016'] = "ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐ° ĐŽĐŸĐżĐŸĐ»ĐœĐžŃ‚Đ”Đ»ŃŒĐœĐ°Ń ĐżŃ€ĐŸĐČДрĐșа!"; -$lang['stag0017'] = "ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” Đ·ĐŽĐ”ŃŃŒ ĐŽĐ»Ń ĐżŃ€ĐŸĐČДрĐșĐž..."; -$lang['stag0018'] = "A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on."; -$lang['stag0019'] = "You are excepted from this function because you own the servergroup: %s (ID: %s)."; -$lang['stag0020'] = "Title"; -$lang['stag0021'] = "Enter a title for this group. The title will be shown also on the statistics page."; -$lang['stix0001'] = "СтатостоĐșа сДрĐČДра"; -$lang['stix0002'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč Đ·Đ°Ń€Đ”ĐłĐžŃŃ‚Ń€ĐžŃ€ĐŸĐČĐ°ĐœĐŸ ĐČ Đ±Đ°Đ·Đ” ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['stix0003'] = "ĐŸĐŸŃĐŒĐŸŃ‚Ń€Đ”Ń‚ŃŒ ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐ”Đ”"; -$lang['stix0004'] = "ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐČсё ĐČŃ€Đ”ĐŒŃ"; -$lang['stix0005'] = "Đ Đ”ĐčŃ‚ĐžĐœĐł за ĐČсё ĐČŃ€Đ”ĐŒŃ"; -$lang['stix0006'] = "Đ Đ”ĐčŃ‚ĐžĐœĐł за ĐŒĐ”ŃŃŃ†"; -$lang['stix0007'] = "Đ Đ”ĐčŃ‚ĐžĐœĐł за ĐœĐ”ĐŽĐ”Đ»ŃŽ"; -$lang['stix0008'] = "АĐșтоĐČĐœĐŸŃŃ‚ŃŒ сДрĐČДра"; -$lang['stix0009'] = "За ĐżĐŸŃĐ»Đ”ĐŽĐœĐžĐ” 7 ĐŽĐœĐ”Đč"; -$lang['stix0010'] = "За ĐżĐŸŃĐ»Đ”ĐŽĐœĐžĐ” 30 ĐŽĐœĐ”Đč"; -$lang['stix0011'] = "За ĐżĐŸŃĐ»Đ”ĐŽĐœĐžĐ” 24 часа"; -$lang['stix0012'] = "ВыбДрОтД ĐżĐ”Ń€ĐžĐŸĐŽ"; -$lang['stix0013'] = "За ĐŽĐ”ĐœŃŒ"; -$lang['stix0014'] = "За ĐœĐ”ĐŽĐ”Đ»ŃŽ"; -$lang['stix0015'] = "За ĐŒĐ”ŃŃŃ†"; -$lang['stix0016'] = "ĐĄĐŸĐŸŃ‚ĐœĐŸŃˆ. аĐșтоĐČĐœ./AFK"; -$lang['stix0017'] = "ВДрсОО ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ"; -$lang['stix0018'] = "Đ Đ”ĐčŃ‚ĐžĐœĐł ĐżĐŸ ŃŃ‚Ń€Đ°ĐœĐ°ĐŒ"; -$lang['stix0019'] = "ĐŸĐŸĐżŃƒĐ»ŃŃ€ĐœĐŸŃŃ‚ŃŒ ĐżĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒ"; -$lang['stix0020'] = "йДĐșущая статостоĐșа"; -$lang['stix0023'] = "Статус сДрĐČДра"; -$lang['stix0024'] = "АĐșтоĐČĐ”Đœ"; -$lang['stix0025'] = "ĐĐ”Đ°ĐșтоĐČĐ”Đœ"; -$lang['stix0026'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (ĐžĐœĐ»Đ°ĐčĐœ / МаĐșŃĐžĐŒŃƒĐŒ)"; -$lang['stix0027'] = "ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐșĐ°ĐœĐ°Đ»ĐŸĐČ"; -$lang['stix0028'] = "ĐĄŃ€Đ”ĐŽĐœĐžĐč ĐżĐžĐœĐł ĐœĐ° сДрĐČДрД"; -$lang['stix0029'] = "Đ’ŃĐ”ĐłĐŸ баĐčт ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐŸ"; -$lang['stix0030'] = "Đ’ŃĐ”ĐłĐŸ баĐčт ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ"; -$lang['stix0031'] = "ХДрĐČДр ĐŸĐœĐ»Đ°ĐčĐœ"; -$lang['stix0032'] = "ĐĐ°Ń…ĐŸĐŽĐžŃ‚ŃŃ ĐČ ĐŸŃ„Ń„Đ»Đ°ĐčĐœĐ”:"; -$lang['stix0033'] = "00 ĐŽĐœĐ”Đč, 00 Ń‡Đ°ŃĐŸĐČ, 00 ĐŒĐžĐœ., 00 сДĐș."; -$lang['stix0034'] = "ĐĄŃ€Đ”ĐŽĐœŃŃ ĐżĐŸŃ‚Đ”Ń€Ń паĐșĐ”Ń‚ĐŸĐČ"; -$lang['stix0035'] = "Đ˜ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐŸ сДрĐČДрД"; -$lang['stix0036'] = "ĐĐ°Đ·ĐČĐ°ĐœĐžĐ” сДрĐČДра"; -$lang['stix0037'] = "АЎрДс сДрĐČДра (IP:ĐŸĐŸŃ€Ń‚)"; -$lang['stix0038'] = "Đ—Đ°Ń‰ĐžŃ‰Đ”Đœ ĐżĐ°Ń€ĐŸĐ»Đ”ĐŒ"; -$lang['stix0039'] = "ĐĐ”Ń‚ (ĐŸŃƒĐ±Đ»ĐžŃ‡ĐœŃ‹Đč сДрĐČДр)"; -$lang['stix0040'] = "Да (ПроĐČĐ°Ń‚ĐœŃ‹Đč сДрĐČДр)"; -$lang['stix0041'] = "ID сДрĐČДра"; -$lang['stix0042'] = "ĐŸĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒĐ° сДрĐČДра"; -$lang['stix0043'] = "Đ’Đ”Ń€ŃĐžŃ сДрĐČДра"; -$lang['stix0044'] = "Дата ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ (ĐŽĐŽ/ĐŒĐŒ/гггг)"; -$lang['stix0045'] = "Đ’ĐžĐŽĐžĐŒĐŸŃŃ‚ŃŒ ĐČ ĐłĐ»ĐŸĐ±Đ°Đ». спОсĐșĐ”"; -$lang['stix0046'] = "ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Đ”Ń‚ŃŃ"; -$lang['stix0047'] = "ĐĐ” ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Đ”Ń‚ŃŃ"; -$lang['stix0048'] = "ĐĐ”Ń‚ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž..."; -$lang['stix0049'] = "ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐŒĐ”ŃŃŃ†"; -$lang['stix0050'] = "ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐœĐ”ĐŽĐ”Đ»ŃŽ"; -$lang['stix0051'] = "ĐžŃˆĐžĐ±Đșа про ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžĐž Юаты"; -$lang['stix0052'] = "ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Đ”"; -$lang['stix0053'] = "АĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ (ĐČ ĐŽĐœŃŃ…)"; -$lang['stix0054'] = "ĐĐ”Đ°ĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ (ĐČ ĐŽĐœŃŃ…)"; -$lang['stix0055'] = "ĐŸĐœĐ»Đ°ĐčĐœ ĐČ Ń‚Đ”Ń‡Đ”ĐœĐžĐ” ŃŃƒŃ‚ĐŸĐș"; -$lang['stix0056'] = "ĐŸĐœĐ»Đ°ĐčĐœ ĐČ Ń‚Đ”Ń‡Đ”ĐœĐžĐ” %s ĐŽĐœĐ”Đč"; -$lang['stix0059'] = "ĐĄĐżĐžŃĐŸĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč"; -$lang['stix0060'] = "ĐšĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ"; -$lang['stix0061'] = "ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐČсД ĐČДрсОО"; -$lang['stix0062'] = "ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐČсД ŃŃ‚Ń€Đ°ĐœŃ‹"; -$lang['stix0063'] = "ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐČсД ĐżĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒŃ‹"; -$lang['stix0064'] = "За 3 ĐŒĐ”ŃŃŃ†Đ°"; -$lang['stmy0001'] = "ĐœĐŸŃ статостоĐșа"; -$lang['stmy0002'] = "Đ Đ°ĐœĐł"; -$lang['stmy0003'] = "ID ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…:"; -$lang['stmy0004'] = "ĐŁĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID (UID):"; -$lang['stmy0005'] = "Đ’ŃĐ”ĐłĐŸ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đș сДрĐČĐ”Ń€Ńƒ:"; -$lang['stmy0006'] = "Đ—Đ°ĐœĐ”ŃŃ‘Đœ ĐČ Đ±Đ°Đ·Ńƒ статостоĐșĐž"; -$lang['stmy0007'] = "ĐŸŃ€ĐŸĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ ĐœĐ° сДрĐČДрД:"; -$lang['stmy0008'] = "ĐžĐœĐ»Đ°ĐčĐœ за %s ĐŽĐœĐ”Đč:"; -$lang['stmy0009'] = "АĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ за %s ĐŽĐœĐ”Đč:"; -$lang['stmy0010'] = "ĐŸĐŸĐ»ŃƒŃ‡Đ”ĐœĐŸ ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐč:"; -$lang['stmy0011'] = "Đ”ĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐ” за ĐŸĐœĐ»Đ°ĐčĐœ ĐœĐ° сДрĐČДрД"; -$lang['stmy0012'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ›Đ”ĐłĐ”ĐœĐŽĐ°"; -$lang['stmy0013'] = "Вы ĐżŃ€ĐŸĐČДлО ĐČ ĐŸĐœĐ»Đ°ĐčĐœĐ” ĐœĐ° сДрĐČДрД %s час (-а, -ĐŸĐČ)."; -$lang['stmy0014'] = "ĐŸĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐ° ĐČся Ń†Đ”ĐżĐŸŃ‡Đșа"; -$lang['stmy0015'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ—ĐŸĐ»ĐŸŃ‚ĐŸ"; -$lang['stmy0016'] = "% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ \"Đ›Đ”ĐłĐ”ĐœĐŽĐ°\""; -$lang['stmy0017'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: ĐĄĐ”Ń€Đ”Đ±Ń€ĐŸ"; -$lang['stmy0018'] = "% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ \"Đ—ĐŸĐ»ĐŸŃ‚ĐŸ\""; -$lang['stmy0019'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ‘Ń€ĐŸĐœĐ·Đ°"; -$lang['stmy0020'] = "% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ \"ĐĄĐ”Ń€Đ”Đ±Ń€ĐŸ\""; -$lang['stmy0021'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: БДз ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐč"; -$lang['stmy0022'] = "% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ \"Đ‘Ń€ĐŸĐœĐ·Đ°\""; -$lang['stmy0023'] = "Đ”ĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐ” за ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč"; -$lang['stmy0024'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ›Đ”ĐłĐ”ĐœĐŽĐ°"; -$lang['stmy0025'] = "Вы ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ°Đ»ĐžŃŃŒ Đș сДрĐČĐ”Ń€Ńƒ: %s раз."; -$lang['stmy0026'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ—ĐŸĐ»ĐŸŃ‚ĐŸ"; -$lang['stmy0027'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: ĐĄĐ”Ń€Đ”Đ±Ń€ĐŸ"; -$lang['stmy0028'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ‘Ń€ĐŸĐœĐ·Đ°"; -$lang['stmy0029'] = "ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: БДз ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐč"; -$lang['stmy0030'] = "ĐŸŃ€ĐŸĐłŃ€Đ”ŃŃ ĐŽĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐłĐŸ Ń€Đ°ĐœĐłĐ° ĐœĐ° сДрĐČДрД"; -$lang['stmy0031'] = "ОбщДД ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž"; -$lang['stmy0032'] = "Last calculated:"; -$lang['stna0001'] = "ĐĄŃ‚Ń€Đ°ĐœŃ‹"; -$lang['stna0002'] = "статостоĐșа"; -$lang['stna0003'] = "ĐšĐŸĐŽ ŃŃ‚Ń€Đ°ĐœŃ‹"; -$lang['stna0004'] = "Đ·Đ°Ń€Đ”ĐłĐžŃŃ‚Ń€ĐžŃ€ĐŸĐČĐ°ĐœĐŸ"; -$lang['stna0005'] = "ВДрсОО"; -$lang['stna0006'] = "ĐŸĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒŃ‹"; -$lang['stna0007'] = "ĐŸŃ€ĐŸŃ†Đ”ĐœŃ‚"; -$lang['stnv0001'] = "Нашо ĐœĐŸĐČĐŸŃŃ‚Đž"; -$lang['stnv0002'] = "ЗаĐșрыть"; -$lang['stnv0003'] = "ĐžĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŸ ĐșĐ»ĐžĐ”ĐœŃ‚Đ”"; -$lang['stnv0004'] = "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД эту ĐŸĐżŃ†ĐžŃŽ ДслО Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐŸĐ±ĐœĐŸĐČоть ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŸ сДбД. К ĐżŃ€ĐžĐŒĐ”Ń€Ńƒ, ĐČы зашлО ĐżĐŸĐŽ ĐŽŃ€ŃƒĐłĐžĐŒ UIDĐŸĐŒ ĐœĐ° сДрĐČДр TeamSpeak Đž Ń…ĐŸŃ‚ĐžŃ‚Đ” уĐČĐžĐŽĐ”Ń‚ŃŒ Đ”ĐłĐŸ статостоĐșу."; -$lang['stnv0005'] = "Опцоя ŃŃ€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ Ń‚ĐŸĐ»ŃŒĐșĐŸ ДслО ĐČы ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đș сДрĐČĐ”Ń€Ńƒ TeamSpeak ĐČ ĐŽĐ°ĐœĐœŃ‹Đč ĐŒĐŸĐŒĐ”ĐœŃ‚."; -$lang['stnv0006'] = "ĐžĐ±ĐœĐŸĐČоть"; -$lang['stnv0016'] = "ĐĐ”ĐŽĐŸŃŃ‚ŃƒĐżĐœĐŸ"; -$lang['stnv0017'] = "Đ”Đ»Ń ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐŽĐ°ĐœĐœĐŸĐč ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČы ĐżĐŸĐŽĐșĐ»ŃŽŃ‡ĐžĐ»ĐžŃŃŒ Đș сДрĐČĐ”Ń€Ńƒ TeamSpeak"; -$lang['stnv0018'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐŸĐŽĐșĐ»ŃŽŃ‡ĐžŃ‚Đ”ŃŃŒ Đș TeamSpeak сДрĐČĐ”Ń€Ńƒ, а Đ·Đ°Ń‚Đ”ĐŒ ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” ŃĐžĐœŃŽŃŽ ĐșĐœĐŸĐżĐșу ''ĐžĐ±ĐœĐŸĐČоть'' ĐČ ĐżŃ€Đ°ĐČĐŸĐŒ ĐČĐ”Ń€Ń…ĐœĐ”ĐŒ углу Đ±Ń€Đ°ŃƒĐ·Đ”Ń€Đ°."; -$lang['stnv0019'] = "СтатостоĐșа сДрĐČДра - ŃĐŸĐŽĐ”Ń€Đ¶ĐžĐŒĐŸĐ”"; -$lang['stnv0020'] = "Эта ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ° ŃĐŸĐŽĐ”Ń€Đ¶ĐžŃ‚ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŸ ĐČашДĐč статостоĐșĐ” Đž аĐșтоĐČĐœĐŸŃŃ‚Đž ĐœĐ° сДрĐČДрД."; -$lang['stnv0021'] = "Đ‘ĐŸĐ»ŃŒŃˆĐžĐœŃŃ‚ĐČĐŸ ŃŃ‚ĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž Đ±Ń‹Đ»ĐŸ ŃĐŸĐ±Ń€Đ°ĐœĐŸ с ĐŒĐŸĐŒĐ”ĐœŃ‚Đ° ĐœĐ°Ń‡Đ°Đ»ŃŒĐœĐŸĐłĐŸ старта ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ, ĐœĐžĐșаĐș ĐœĐ” с ĐŒĐŸĐŒĐ”ĐœŃ‚Đ° пДрĐČĐŸĐłĐŸ запусĐșа TeamSpeak сДрĐČДра."; -$lang['stnv0022'] = "Đ”Đ°ĐœĐœĐ°Ń ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐ° Оз базы ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ Đž ĐŒĐŸĐ¶Đ”Ń‚ ĐŸŃ‚Đ»ĐžŃ‡Đ°Ń‚ŃŒŃŃ ĐŸŃ‚ Ń‚ĐŸĐč, ĐșĐŸŃ‚ĐŸŃ€Đ°Ń Ń…Ń€Đ°ĐœĐžŃ‚ŃŃ ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… TeamSpeak."; -$lang['stnv0023'] = "ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐœĐ”ĐŽĐ”Đ»ŃŽ Đž ĐŒĐ”ŃŃŃ† ĐŸĐ±ĐœĐŸĐČĐ»ŃĐ”Ń‚ŃŃ ĐșажЎыД 15 ĐŒĐžĐœŃƒŃ‚. ВсД ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Đ” Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ ĐŸĐ±ĐœĐŸĐČĐ»ŃŃŽŃ‚ŃŃ ĐŒĐŸĐŒĐ”ĐœŃ‚Đ°Đ»ŃŒĐœĐŸ (ОлО с заЎДржĐșĐŸĐč ĐČ ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ сДĐșŃƒĐœĐŽ)."; -$lang['stnv0024'] = "RankSystem — статостоĐșа TeamSpeak 3 сДрĐČДра"; -$lang['stnv0025'] = "ĐžĐłŃ€Đ°ĐœĐžŃ‡Đ”ĐœĐžĐ” спОсĐșа"; -$lang['stnv0026'] = "ВсД"; -$lang['stnv0027'] = "Đ˜ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐœĐ° саĐčтД ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°Ń€Đ”ĐČшДĐč! ĐšĐ°Đ¶Đ”Ń‚ŃŃ, ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ĐŸĐ»ŃŒŃˆĐ” ĐœĐ” ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐ° Đș TeamSpeak 3 сДрĐČĐ”Ń€Ńƒ. ĐŸĐŸŃ‚Đ”Ń€ŃĐœĐŸ ŃĐŸĐ”ĐŽĐžĐœĐ”ĐœĐžĐ”?"; -$lang['stnv0028'] = "(Вы ĐœĐ” ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đș сДрĐČĐ”Ń€Ńƒ TS3!)"; -$lang['stnv0029'] = "ĐžĐ±Ń‰Đ°Ń статостоĐșа"; -$lang['stnv0030'] = "О ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['stnv0031'] = "ĐŸĐŸĐžŃĐș таĐșжД ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт ŃˆĐ°Đ±Đ»ĐŸĐœŃ‹: ĐœĐžĐșĐœĐ”ĐčĐŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń, ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID(UID) Đž ID ĐșĐ»ĐžĐ”ĐœŃ‚Đ° ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…(DBID)."; -$lang['stnv0032'] = "Вы таĐșжД ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Ń„ĐžĐ»ŃŒŃ‚Ń€ Đ·Đ°ĐżŃ€ĐŸŃĐ° (ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐœĐžĐ¶Đ”). Đ”Đ»Ń ŃŃ‚ĐŸĐłĐŸ ĐČĐČДЎОтД Đ”ĐłĐŸ ĐČ ĐżĐŸĐžŃĐșĐŸĐČĐŸĐ” ĐżĐŸĐ»Đ”."; -$lang['stnv0033'] = "йаĐșжД ĐŽĐŸĐżŃƒŃŃ‚ĐžĐŒŃ‹ ĐșĐŸĐŒĐ±ĐžĐœĐ°Ń†ĐžĐž ŃˆĐ°Đ±Đ»ĐŸĐœĐŸĐČ Đž Ń„ĐžĐ»ŃŒŃ‚Ń€ĐŸĐČ. Đ”Đ»Ń ŃŃ‚ĐŸĐłĐŸ ĐČĐČДЎОтД пДрĐČŃ‹ĐŒ Ń„ĐžĐ»ŃŒŃ‚Ń€, за ĐœĐžĐŒ бДз ĐżŃ€ĐŸĐ±Đ”Đ»ĐŸĐČ ŃˆĐ°Đ±Đ»ĐŸĐœ."; -$lang['stnv0034'] = "Đ­Ń‚ĐŸ ĐżĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ ĐșĐŸĐŒĐ±ĐžĐœĐžŃ€ĐŸĐČать ĐŒĐœĐŸĐ¶Đ”ŃŃ‚ĐČĐŸ Ń„ĐžĐ»ŃŒŃ‚Ń€ĐŸĐČ, ĐČĐČĐŸĐŽĐžŃ‚ŃŒ ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżĐŸŃĐ»Đ”ĐŽĐŸĐČĐ°Ń‚Đ”Đ»ŃŒĐœĐŸ."; -$lang['stnv0035'] = "ĐŸŃ€ĐžĐŒĐ”Ń€:
filter:nonexcepted:TeamSpeakUser"; -$lang['stnv0036'] = "ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč, групп сДрĐČДра ОлО ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐ” ĐșĐ°ĐœĐ°Đ»Đ°)."; -$lang['stnv0037'] = "ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐœĐ”ĐžŃĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč"; -$lang['stnv0038'] = "ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐŸĐœĐ»Đ°ĐčĐœ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč"; -$lang['stnv0039'] = "ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐŸŃ„Ń„Đ»Đ°ĐčĐœ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč"; -$lang['stnv0040'] = "ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ ŃƒĐșĐ°Đ·Đ°ĐœĐœŃ‹Ń… группах, ĐŸĐœĐ° жД - Ń„ĐžĐ»ŃŒŃ‚Ń€Đ°Ń†ĐžŃ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐżĐŸ Ń€Đ°ĐœĐłĐ°ĐŒ
Đ—Đ°ĐŒĐ”ĐœĐžŃ‚Đ” GROUPID ĐœĐ° Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹Đ” ID группы Ń€Đ°ĐœĐłĐ°."; -$lang['stnv0041'] = "ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč, ŃƒĐŽĐŸĐČлДтĐČĐŸŃ€ŃŃŽŃ‰ĐžŃ… ĐżĐŸĐžŃĐșĐŸĐČĐŸĐŒŃƒ Đ·Đ°ĐżŃ€ĐŸŃŃƒ ĐżĐŸ ЎатД ĐżĐŸŃĐ»Đ”ĐŽĐœĐ”ĐłĐŸ ĐżĐŸŃĐ”Ń‰Đ”ĐœĐžŃ сДрĐČДра.
Đ—Đ°ĐŒĐ”ĐœĐžŃ‚Đ” OPERATOR ĐœĐ° '<' ОлО '>' ОлО '=' ОлО '!='.
йаĐșжД Đ·Đ°ĐŒĐ”ĐœĐžŃ‚Đ” TIME ĐœĐ° Đ¶Đ”Đ»Đ°Đ”ĐŒŃƒŃŽ Юату ĐżĐŸĐžŃĐșа ĐČ Ń„ĐŸŃ€ĐŒĐ°Ń‚Đ” 'Y-m-d H-i'(ĐłĐŸĐŽ-ĐŒĐ”ŃŃŃ†-ĐŽĐ”ĐœŃŒ час-ĐŒĐžĐœŃƒŃ‚Đ°) (ĐżŃ€ĐžĐŒĐ”Ń€: 2016-06-18 20-25).
Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃ‹Đč ĐżŃ€ĐžĐŒĐ”Ń€ Đ·Đ°ĐżŃ€ĐŸŃĐ°: filter:lastseen:<:2016-06-18 20-25:"; -$lang['stnv0042'] = "ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč Оз уĐșĐ°Đ·Đ°ĐœĐœĐŸĐč ŃŃ‚Ń€Đ°ĐœŃ‹.
Đ—Đ°ĐŒĐ”ĐœĐžŃ‚Đ” TS3-COUNTRY-CODE ĐœĐ° Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹Đč ĐșĐŸĐŽ ŃŃ‚Ń€Đ°ĐœŃ‹.
ĐšĐŸĐŽŃ‹ ŃŃ‚Ń€Đ°Đœ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČĐ·ŃŃ‚ŃŒ Đ—ĐŽĐ”ŃŃŒ(ВоĐșĐžĐżĐ”ĐŽĐžŃ)"; -$lang['stnv0043'] = "ĐŸĐŸĐŽĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒŃŃ Đș сДрĐČĐ”Ń€Ńƒ TS3"; -$lang['stri0001'] = "Đ˜ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐŸ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['stri0002'] = "Đ§Ń‚ĐŸ таĐșĐŸĐ” ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN?"; -$lang['stri0003'] = "ĐŁĐŽĐŸĐ±ĐœĐ°Ń ŃĐžŃŃ‚Đ”ĐŒĐ°, ĐżĐŸĐ·ĐČĐŸĐ»ŃŃŽŃ‰Đ°Ń ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐœĐ° сДрĐČДрД TeamSpeak 3 ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ-ĐżĐŸĐŸŃ‰Ń€Đ”ĐœĐžĐč, ĐŸŃĐœĐŸĐČĐ°ĐœĐœŃƒŃŽ ĐœĐ° ĐČŃ€Đ”ĐŒĐ”ĐœĐž, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐżŃ€ĐŸĐČĐŸĐŽŃŃ‚ ĐœĐ° сДрĐČДрД. ĐšĐŸ ĐČŃĐ”ĐŒŃƒ ĐżŃ€ĐŸŃ‡Đ”ĐŒŃƒ, ĐŸĐœĐ° таĐșжД Đ·Đ°ĐœĐžĐŒĐ°Đ”Ń‚ŃŃ ŃĐ±ĐŸŃ€ĐŸĐŒ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŃ… Đž ĐżĐŸŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐŒ Дё ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ ĐœĐ° саĐčтД."; -$lang['stri0004'] = "ĐšŃ‚ĐŸ яĐČĐ»ŃĐ”Ń‚ŃŃ Дё Ń€Đ°Đ·Ń€Đ°Đ±ĐŸŃ‚Ń‡ĐžĐșĐŸĐŒ?"; -$lang['stri0005'] = "ĐšĐŸĐłĐŽĐ° была ŃĐŸĐ·ĐŽĐ°ĐœĐ° ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN?"; -$lang['stri0006'] = "ĐĐ»ŃŒŃ„Đ°-рДлОз: 05/10/2014."; -$lang['stri0007'] = "БДта-рДлОз: 01/02/2015."; -$lang['stri0008'] = "Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°Đčто ĐœĐŸĐČую ĐČДрсОю ĐœĐ° саĐčтД: ĐžŃ„ĐžŃ†ĐžĐ°Đ»ŃŒĐœŃ‹Đč саĐčт ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ TSN."; -$lang['stri0009'] = "КаĐș ŃĐŸĐ·ĐŽĐ°ĐČĐ°Đ»Đ°ŃŃŒ ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN?"; -$lang['stri0010'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN разрабатыĐČĐ°Đ»Đ°ŃŃŒ ĐœĐ° ŃĐ·Ń‹ĐșĐ”"; -$lang['stri0011'] = "Про ŃĐŸĐ·ĐŽĐ°ĐœĐžĐž ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Đ»ŃŃ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč ĐœĐ°Đ±ĐŸŃ€ ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚ĐŸĐČ:"; -$lang['stri0012'] = "ĐžŃĐŸĐ±Đ°Ń Đ±Đ»Đ°ĐłĐŸĐŽĐ°Ń€ĐœĐŸŃŃ‚ŃŒ:"; -$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'] = "%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° Ń‡Đ”ŃˆŃĐșĐžĐč ŃĐ·Ń‹Đș"; -$lang['stri0025'] = "%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° ĐżĐŸĐ»ŃŒŃĐșĐžĐč ŃĐ·Ń‹Đș"; -$lang['stri0026'] = "%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° ĐžŃĐżĐ°ĐœŃĐșĐžĐč ŃĐ·Ń‹Đș"; -$lang['stri0027'] = "%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° ĐČĐ”ĐœĐłĐ”Ń€ŃĐșĐžĐč ŃĐ·Ń‹Đș"; -$lang['stri0028'] = "%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° азДрбаĐčĐŽĐ¶Đ°ĐœŃĐșĐžĐč ŃĐ·Ń‹Đș"; -$lang['stri0029'] = "%s ĐŽĐ»Ń Ń„ŃƒĐœĐșцоо 'Imprint'"; -$lang['stri0030'] = "%s ĐŽĐ»Ń ŃŃ‚ĐžĐ»Ń 'CosmicBlue' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž Đž ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса"; -$lang['stta0001'] = "За ĐČсД ĐČŃ€Đ”ĐŒŃ"; -$lang['sttm0001'] = "За ĐŒĐ”ŃŃŃ†"; -$lang['sttw0001'] = "ĐąĐŸĐż-10 ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč"; -$lang['sttw0002'] = "За ĐœĐ”ĐŽĐ”Đ»ŃŽ"; -$lang['sttw0003'] = "ĐĐ°Đ±Ń€Đ°Đ» %s %s Ń‡Đ°ŃĐŸĐČ ĐŸĐœĐ»Đ°ĐčĐœĐ°"; -$lang['sttw0004'] = "ĐąĐŸĐż-10 ĐČ ĐłŃ€Đ°Ń„ĐžĐșĐ” (разрыĐČ ĐŒĐ”Đ¶ĐŽŃƒ ŃƒŃ‡Đ°ŃŃ‚ĐœĐžĐșĐ°ĐŒĐž)"; -$lang['sttw0005'] = "Ń‡Đ°ŃĐŸĐČ (прДЎстаĐČĐ»ŃĐ”Ń‚ ŃĐŸĐ±ĐŸĐč 100%)"; -$lang['sttw0006'] = "%s Ń‡Đ°ŃĐŸĐČ (%s%)"; -$lang['sttw0007'] = "ĐŁŃ‡Đ°ŃŃ‚ĐœĐžĐșĐž Ń‚ĐŸĐż-10 ĐČ ŃŃ€Đ°ĐČĐœĐ”ĐœĐžĐž"; -$lang['sttw0008'] = "ĐąĐŸĐż-10 ĐżŃ€ĐŸŃ‚ĐžĐČ ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Ń… ĐżĐŸ ĐŸĐœĐ»Đ°ĐčĐœŃƒ"; -$lang['sttw0009'] = "ĐąĐŸĐż-10 ĐżŃ€ĐŸŃ‚ĐžĐČ ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Ń… ĐżĐŸ аĐșтоĐČĐœĐŸŃŃ‚Đž"; -$lang['sttw0010'] = "TĐŸĐż-10 ĐżŃ€ĐŸŃ‚ĐžĐČ ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Ń… ĐżĐŸ ĐŸŃ„Ń„Đ»Đ°ĐčĐœŃƒ"; -$lang['sttw0011'] = "ĐąĐŸĐż-10 ĐČ ĐłŃ€Đ°Ń„ĐžĐșĐ”"; -$lang['sttw0012'] = "ĐžŃŃ‚Đ°Đ»ŃŒĐœŃ‹Đ” %s ĐșĐ»ĐžĐ”ĐœŃ‚Ń‹ (ĐČ Ń‡Đ°ŃĐ°Ń…)"; -$lang['sttw0013'] = "ĐĄ %s %s Ń‡Đ°ŃĐ°ĐŒĐž аĐșтоĐČĐœĐŸŃŃ‚Đž"; -$lang['sttw0014'] = "час(-а,-ĐŸĐČ)"; -$lang['sttw0015'] = "ĐœĐžĐœŃƒŃ‚ (ы)"; -$lang['stve0001'] = "\nЗЮраĐČстĐČуĐčтД %s,\n Ń‡Ń‚ĐŸ бы ĐżŃ€ĐŸĐčто ĐżŃ€ĐŸĐČДрĐșу ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ ĐșлОĐșĐœĐžŃ‚Đ” ĐżĐŸ ссылĐșĐ” ĐœĐžĐ¶Đ”:\n[B]%s[/B]\n\nЕслО ссылĐșа ĐœĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ - ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČŃ€ŃƒŃ‡ĐœŃƒŃŽ сĐșĐŸĐżĐžŃ€ĐŸĐČать ĐșĐŸĐŽ ĐżĐŸĐŽŃ‚ĐČĐ”Ń€Đ¶ĐŽĐ”ĐœĐžŃ Đž ĐČĐČДстО Đ”ĐłĐŸ ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐżŃ€ĐŸĐČДрĐșĐž :\n%s\n\nЕслО ĐČы ĐœĐ” Đ·Đ°ĐżŃ€Đ°ŃˆĐžĐČалО ĐŽĐ°ĐœĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” - ĐżŃ€ĐŸĐžĐłĐœĐŸŃ€ĐžŃ€ŃƒĐčтД Đ”ĐłĐŸ. ЕслО ĐżĐŸ ĐșаĐșĐŸĐč-Đ»ĐžĐ±ĐŸ ĐżŃ€ĐžŃ‡ĐžĐœĐ” ĐČы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” ŃŃ‚ĐŸ ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ раз, сĐČŃĐ¶ĐžŃ‚Đ”ŃŃŒ с Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ĐŸĐŒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['stve0002'] = "ĐĄĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” с ĐșĐ»ŃŽŃ‡ĐŸĐŒ Đ±Ń‹Đ»ĐŸ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ ĐČĐ°ĐŒ чДрДз Đ»ĐžŃ‡ĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐœĐ° сДрĐČДрД TS3."; -$lang['stve0003'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČĐČДЎОтД Đșлюч, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐČы ĐżĐŸĐ»ŃƒŃ‡ĐžĐ»Đž ĐœĐ° сДрĐČДрД TS3. ЕслО ĐČы ĐœĐ” ĐżĐŸĐ»ŃƒŃ‡ĐžĐ»Đž Đșлюч - ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ Ń‡Ń‚ĐŸ ĐČы ĐČыбралО праĐČĐžĐ»ŃŒĐœŃ‹Đč ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID."; -$lang['stve0004'] = "Ключ, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐČы ĐČĐČДлО ĐœĐ” ĐżĐŸĐŽŃ…ĐŸĐŽĐžŃ‚! ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐœĐŸĐČа."; -$lang['stve0005'] = "ĐŸĐŸĐ·ĐŽŃ€Đ°ĐČĐ»ŃĐ”ĐŒ, ĐżŃ€ĐŸĐČДрĐșа ĐżŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ŃƒŃĐżĐ”ŃˆĐœĐŸ! ĐąĐ”ĐżĐ”Ń€ŃŒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČаться ĐČŃĐ”ĐŒ Ń„ŃƒĐœĐșŃ†ĐžĐŸĐœĐ°Đ»ĐŸĐŒ.."; -$lang['stve0006'] = "ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐœĐ”ĐžĐ·ĐČĐ”ŃŃ‚ĐœĐ°Ń ĐŸŃˆĐžĐ±Đșа. ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД Дщё раз. ЕслО ĐœĐ” ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŃ - сĐČŃĐ¶ĐžŃ‚Đ”ŃŃŒ с Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ĐŸĐŒ."; -$lang['stve0007'] = "ĐŸŃ€ĐŸĐČДрĐșа ĐœĐ° сДрĐČДрД TS"; -$lang['stve0008'] = "ВыбДрОтД сĐČĐŸĐč ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID ĐœĐ° сДрĐČДрД Ń‡Ń‚ĐŸ бы ĐżŃ€ĐŸĐžĐ·ĐČДстО ĐżŃ€ĐŸĐČДрĐșу."; -$lang['stve0009'] = " -- ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” сюЮа ĐČыбДрОтД ŃĐ”Đ±Ń Оз спОсĐșа -- "; -$lang['stve0010'] = "Вы ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚Đ” Đșлюч ĐŽĐ»Ń ĐżĐŸĐŽŃ‚ĐČĐ”Ń€Đ¶ĐŽĐ”ĐœĐžŃ ĐœĐ° сДрĐČДрД, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐČĐ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐČĐČДстО ĐČ ĐŽĐ°ĐœĐœĐŸĐ” ĐżĐŸĐ»Đ”:"; -$lang['stve0011'] = "Ключ:"; -$lang['stve0012'] = "ĐżŃ€ĐŸĐČĐ”Ń€ĐžŃ‚ŃŒ"; -$lang['time_day'] = "Đ”ĐœĐž"; -$lang['time_hour'] = "Часы"; -$lang['time_min'] = "ĐœĐžĐœŃƒŃ‚Ń‹"; -$lang['time_ms'] = "ĐŒŃ"; -$lang['time_sec'] = "ĐĄĐ”ĐșŃƒĐœĐŽŃ‹"; -$lang['unknown'] = "ĐœĐ”ĐžĐ·ĐČĐ”ŃŃ‚ĐœĐŸ"; -$lang['upgrp0001'] = "Группа сДрĐČДра с ID %s ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ ĐČ ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đ” '%s' (ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс -> ŃĐžŃŃ‚Đ”ĐŒĐ° -> Ń€Đ°ĐœĐł), ĐŸĐŽĐœĐ°ĐșĐŸ ĐŸĐœĐ° ĐœĐ” ĐœĐ°ĐčĐŽĐ”ĐœĐ° ĐœĐ° сДрĐČДрД TS3! ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐ”Ń€Đ”ĐœĐ°ŃŃ‚Ń€ĐŸĐčтД ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžŃŽ ĐžĐœĐ°Ń‡Đ” ĐČĐŸĐ·ĐœĐžĐșĐœŃƒŃ‚ ĐŸŃˆĐžĐ±ĐșĐž!"; -$lang['upgrp0002'] = "Đ—Đ°ĐłŃ€ŃƒĐ·Đșа ĐœĐŸĐČĐŸĐč ĐžĐșĐŸĐœĐșĐž сДрĐČДра"; -$lang['upgrp0003'] = "Про запОсО ĐžĐșĐŸĐœĐșĐž сДрĐČДра ĐœĐ° ЎОсĐș ĐżŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐŸŃˆĐžĐ±Đșа."; -$lang['upgrp0004'] = "ĐžŃˆĐžĐ±Đșа про Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐ” ĐžĐșĐŸĐœĐșĐž сДрĐČДра: "; -$lang['upgrp0005'] = "ĐžŃˆĐžĐ±Đșа ŃƒĐŽĐ°Đ»Đ”ĐœĐžŃ ĐžĐșĐŸĐœĐșĐž сДрĐČДра."; -$lang['upgrp0006'] = "ИĐșĐŸĐœĐșа сДрĐČДра была ŃƒĐŽĐ°Đ»Đ”ĐœĐ° с сДрĐČДра TS3, Ń‚Đ”ĐżĐ”Ń€ŃŒ ĐŸĐœĐ° таĐș жД ŃƒĐŽĐ°Đ»Đ”ĐœĐ° Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['upgrp0007'] = "ĐžŃˆĐžĐ±Đșа про ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœĐžĐž ĐžĐșĐŸĐœĐșĐž группы сДрĐČДра %s с ID %s."; -$lang['upgrp0008'] = "ĐžŃˆĐžĐ±Đșа про Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐ” ĐžĐșĐŸĐœĐșĐž группы сДрĐČДра %s с ID %s: "; -$lang['upgrp0009'] = "ĐžŃˆĐžĐ±Đșа про ŃƒĐŽĐ°Đ»Đ”ĐœĐžĐž ĐžĐșĐŸĐœĐșĐž группы сДрĐČДра %s с ID %s."; -$lang['upgrp0010'] = "ИĐșĐŸĐœĐșа группы сДрĐČДра %s с ID %s была ŃƒĐŽĐ°Đ»Đ”ĐœĐ° с сДрĐČДра TS3, Ń‚Đ”ĐżĐ”Ń€ŃŒ ĐŸĐœĐ° таĐș жД ŃƒĐŽĐ°Đ»Đ”ĐœĐ° Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; -$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['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 ŃŃ‚ĐŸĐłĐŸ ĐșĐ°ĐœĐ°Đ»Đ° ĐČ ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșах ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ, (ŃŃ‚ĐŸ ŃĐŒĐŸĐ¶Đ”Ń‚ ŃĐŽĐ”Đ»Đ°Ń‚ŃŒ Ń‚ĐŸĐ»ŃŒĐșĐŸ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ!).
Đ‘ĐŸĐ»ŃŒŃˆĐ” ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŒĐŸĐ¶ĐœĐŸ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ ĐČ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ (ĐŒĐ”ĐœŃŽ ĐĄĐžŃŃ‚Đ”ĐŒĐ°).

БДз этох ĐŽĐ”ĐčстĐČĐžĐč ĐœĐ° ĐŽĐ°ĐœĐœŃ‹Đč ĐŒĐŸĐŒĐ”ĐœŃ‚ ĐŒŃ‹ ĐœĐ” ŃĐŒĐŸĐ¶Đ”ĐŒ ĐżŃ€ĐŸĐČĐ”Ń€ĐžŃ‚ŃŒ ĐČас ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ. ИзĐČĐžĐœĐžŃ‚Đ” :("; -$lang['verify0004'] = "ĐĐ” ĐœĐ°ĐčĐŽĐ”ĐœĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ ĐżŃ€ĐŸĐČĐ”Ń€ĐŸŃ‡ĐœĐŸĐŒ ĐșĐ°ĐœĐ°Đ»Đ”..."; -$lang['wi'] = "ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ"; -$lang['wiaction'] = "Đ’Ń‹ĐżĐŸĐ»ĐœĐžŃ‚ŃŒ"; -$lang['wiadmhide'] = "сĐșрыĐČать ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ"; -$lang['wiadmhidedesc'] = "ĐŃƒĐ¶ĐœĐŸ лО сĐșрыĐČать ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ ĐČ ĐŽĐ°ĐœĐœĐŸĐŒ спОсĐșĐ”"; -$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['wiboostempty'] = "ĐĄĐżĐžŃĐŸĐș пуст. Đ”Đ»Ń ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” ĐœĐ° ĐșĐœĐŸĐżĐșу с ĐžĐșĐŸĐœĐșĐŸĐč плюса"; -$lang['wibot1'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±Ń‹Đ»Đ° ĐČыĐșĐ»ŃŽŃ‡Đ”ĐœĐ°. Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃƒŃŽ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČ Đ»ĐŸĐłĐ” ĐœĐžĐ¶Đ”!"; -$lang['wibot2'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐ°. Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃƒŃŽ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČ Đ»ĐŸĐłĐ” ĐœĐžĐ¶Đ”!"; -$lang['wibot3'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ¶Đ°Đ”Ń‚ŃŃ. Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃƒŃŽ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČ Đ»ĐŸĐłĐ” ĐœĐžĐ¶Đ”!"; -$lang['wibot4'] = "ВĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ / ВыĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ Đ±ĐŸŃ‚Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['wibot5'] = "Запустоть"; -$lang['wibot6'] = "ĐžŃŃ‚Đ°ĐœĐŸĐČоть"; -$lang['wibot7'] = "ĐŸĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ"; -$lang['wibot8'] = "Đ›ĐŸĐł ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ:"; -$lang['wibot9'] = "Đ—Đ°ĐżĐŸĐ»ĐœĐžŃ‚Đ” ĐČсД ĐŸĐ±ŃĐ·Đ°Ń‚Đ”Đ»ŃŒĐœŃ‹Đ” ĐżĐŸĐ»Ń пДрДЎ запусĐșĐŸĐŒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ!"; -$lang['wichdbid'] = "ĐĄĐ±Ń€ĐŸŃ про ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐž DBID"; -$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['wicmdlinesec'] = "Commandline Check"; -$lang['wicmdlinesecdesc'] = "The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!"; -$lang['wiconferr'] = "Есть ĐŸŃˆĐžĐ±Đșа ĐČ ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ. ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČŃ‹ĐżĐŸĐ»ĐœĐžŃ‚Đ” ĐČŃ…ĐŸĐŽ ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ Đž ĐżŃ€ĐŸĐČĐ”Ń€ŃŒŃ‚Đ” ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž разЎДла 'ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșа ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'. ĐžŃĐŸĐ±Đ”ĐœĐœĐŸ Ń‚Ń‰Đ°Ń‚Đ”Đ»ŃŒĐœĐŸ ĐżŃ€ĐŸĐČĐ”Ń€ŃŒŃ‚Đ” 'Đ Đ°ĐœĐłĐž'!"; -$lang['widaform'] = "Đ€ĐŸŃ€ĐŒĐ°Ń‚ Юаты"; -$lang['widaformdesc'] = "ВыбДрОтД Ń„ĐŸŃ€ĐŒĐ°Ń‚ ĐżĐŸĐșаза Юаты.

ĐŸŃ€ĐžĐŒĐ”Ń€:
%a ĐŽĐœĐ”Đč, %h Ń‡Đ°ŃĐŸĐČ, %i ĐŒĐžĐœŃƒŃ‚, %s сДĐșŃƒĐœĐŽ"; -$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['wiexciddesc'] = "ЧДрДз Đ·Đ°ĐżŃŃ‚ŃƒŃŽ ĐŽĐŸĐ»Đ¶Đ”Đœ Đ±ŃƒĐŽĐ”Ń‚ уĐșĐ°Đ·Đ°Đœ ŃĐżĐžŃĐŸĐș ĐșĐ°ĐœĐ°Đ»ĐŸĐČ, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐŽĐŸĐ»Đ¶ĐœĐ° Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČать

ĐĐ°Ń…ĐŸĐŽŃŃŃŒ ĐČ ŃŃ‚ĐžŃ… ĐșĐ°ĐœĐ°Đ»Đ°Ń…, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐœĐ°Ń‡ĐžŃĐ»ŃŃ‚ŃŒŃŃ ĐČŃ€Đ”ĐŒŃ за ĐŸĐœĐ»Đ°ĐčĐœ ĐœĐ° сДрĐČДрД.

Đ”Đ°ĐœĐœŃƒŃŽ Ń„ŃƒĐœĐșцоя ĐŒĐŸĐ¶ĐœĐŸ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Đș ĐżŃ€ĐžĐŒĐ”Ń€Ńƒ, ĐŽĐ»Ń AFK ĐșĐ°ĐœĐ°Đ»ĐŸĐČ.
Про Ń€Đ”Đ¶ĐžĐŒĐ” ĐżĐŸĐŽŃŃ‡Ń‘Ń‚Đ° за 'аĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ', эта Ń„ŃƒĐœĐșцоя ŃŃ‚Đ°ĐœĐŸĐČотся Đ±Đ”ŃĐżĐŸĐ»Đ”Đ·ĐœĐŸĐč, т.Đș. ĐČ ĐșĐ°ĐœĐ°Đ»Đ” ŃŽĐ·Đ”Ń€Ńƒ пДрДстаДт ĐČĐŸĐČсД ĐœĐ°Ń‡ĐžŃĐ»ŃŃ‚ŃŒŃŃ ĐČŃ€Đ”ĐŒŃ бДзЎДĐčстĐČоя

ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐœĐ°Ń…ĐŸĐŽŃŃ‰ĐžĐ”ŃŃ ĐČ Ń‚Đ°Đșох ĐșĐ°ĐœĐ°Đ»Đ°Ń…, ĐżĐŸĐŒĐ”Ń‡Đ°ŃŽŃ‚ŃŃ ĐœĐ° ŃŃ‚ĐŸŃ‚ ĐżĐ”Ń€ĐžĐŸĐŽ ĐșаĐș 'ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'. К Ń‚ĐŸĐŒŃƒ жД, ĐŽĐ°ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО пДрДстают ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒŃŃ ĐČ 'stats/list_rankup.php' Đž ŃŃ‚Đ°ĐœĐŸĐČятся ĐŽĐŸŃŃ‚ŃƒĐżĐœŃ‹ Ń‚ĐŸĐ»ŃŒĐșĐŸ с Ń„ĐžĐ»ŃŒŃ‚Ń€ĐŸĐŒ ĐżĐŸĐžŃĐșа ОлО с ĐČĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹ĐŒ ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ \"ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč\"(ĐĄŃ‚Ń€Đ°ĐœĐžŃ†Đ° статостоĐșĐž - \"ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО\")."; -$lang['wiexgrp'] = "ИсĐșлюч. группы сДрĐČДра"; -$lang['wiexgrpdesc'] = "ĐŁĐșажОтД чДрДз Đ·Đ°ĐżŃŃ‚ŃƒŃŽ ID групп сДрĐČДра, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐČ ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… Đ±ŃƒĐŽŃƒŃ‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČаться ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ.
ЕслО ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐœĐ°Ń…ĐŸĐŽĐžŃ‚ŃŃ Ń…ĐŸŃ‚Ń‹ бы ĐČ ĐŸĐŽĐœĐŸĐč Оз этох групп, Ń‚ĐŸ ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČать Đ”ĐłĐŸ (Đž ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐœĐ°Ń‡ĐžŃĐ»ŃŃ‚ŃŒ ĐŸĐœĐ»Đ°ĐčĐœ)."; -$lang['wiexres'] = "ĐœĐ”Ń‚ĐŸĐŽ ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ"; -$lang['wiexres1'] = "ĐČсДгЎа счотать ĐČŃ€Đ”ĐŒŃ (ŃŃ‚Đ°ĐœĐŽĐ°Ń€Ń‚ĐœŃ‹Đč)"; -$lang['wiexres2'] = "Đ·Đ°ĐŒĐŸŃ€ĐŸĐ·Đșа ĐČŃ€Đ”ĐŒĐ”ĐœĐž"; -$lang['wiexres3'] = "ŃĐ±Ń€ĐŸŃ ĐČŃ€Đ”ĐŒĐ”ĐœĐž"; -$lang['wiexresdesc'] = "ĐĄŃƒŃ‰Đ”ŃŃ‚ĐČŃƒĐ”Ń‚ тро Ń€Đ”Đ¶ĐžĐŒĐ° Ń€Đ°Đ±ĐŸŃ‚Ń‹ с ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹ĐŒĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒĐž. Đ’ĐŸ ĐČсДх ŃĐ»ŃƒŃ‡Đ°ŃŃ… ĐČŃ€Đ”ĐŒŃ ĐœĐ” ĐœĐ°Ń‡ĐžŃĐ»ŃĐ”Ń‚ŃŃ, а Ń€Đ°ĐœĐłĐž ĐœĐ” ĐČыЮаются. Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČŃ‹Đ±Ń€Đ°Ń‚ŃŒ Ń€Đ°Đ·ĐœŃ‹Đ” ĐČĐ°Ń€ĐžĐ°ĐœŃ‚Ń‹ Ń‚ĐŸĐłĐŸ, ĐșаĐș ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Đ”ĐŒ ĐČŃ€Đ”ĐŒŃ Đ±ŃƒĐŽĐ”Ń‚ ĐŸĐ±Ń€Đ°Đ±Đ°Ń‚Ń‹ĐČаться ĐżĐŸŃĐ»Đ” Ń‚ĐŸĐłĐŸ ĐșаĐș ĐŸĐœ Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč.

1) ĐČсДгЎа счотать ĐČŃ€Đ”ĐŒŃ (ŃŃ‚Đ°ĐœĐŽĐ°Ń€Ń‚ĐœŃ‹Đč): ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ, ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐČсДгЎа счОтаДт ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ/аĐșтоĐČĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ОсĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ (ĐșĐ»ĐžĐ”ĐœŃ‚/сДрĐČĐ”Ń€ĐœĐ°Ń группа). В ĐŽĐ°ĐœĐœĐŸĐŒ Ń€Đ”Đ¶ĐžĐŒĐ” ĐœĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžĐ” Ń€Đ°ĐœĐłĐ°. Đ­Ń‚ĐŸ ĐŸĐ·ĐœĐ°Ń‡Đ°Đ”Ń‚, Ń‡Ń‚ĐŸ ĐșаĐș Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ŃƒĐŽĐ°Đ»ĐžŃ‚ŃŃ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč, Đ”ĐŒŃƒ Đ±ŃƒĐŽŃƒŃ‚ ĐČŃ‹ĐŽĐ°ĐœŃ‹ группы Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐŸŃĐœĐŸĐČыĐČаясь ĐœĐ° ĐČŃ€Đ”ĐŒĐ”ĐœĐž Đ”ĐłĐŸ аĐșтоĐČĐœĐŸŃŃ‚Đž (ĐœĐ°ĐżŃ€ĐžĐŒĐ”Ń€, ŃƒŃ€ĐŸĐČĐ”ĐœŃŒ 3).

2) Đ·Đ°ĐŒĐŸŃ€ĐŸĐ·Đșа ĐČŃ€Đ”ĐŒĐ”ĐœĐž: ĐĄ ŃŃ‚ĐŸĐč ĐŸĐżŃ†ĐžĐ”Đč ĐŸĐœĐ»Đ°ĐčĐœ Đž ĐČŃ€Đ”ĐŒŃ ĐżŃ€ĐŸŃŃ‚ĐŸŃ Đ±ŃƒĐŽŃƒŃ‚ Đ·Đ°ĐŒĐŸŃ€ĐŸĐ¶Đ”ĐœŃ‹ ĐœĐ° тДĐșŃƒŃ‰Đ”ĐŒ Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐž (ĐŽĐŸ Ń‚ĐŸĐłĐŸ ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ был ОсĐșĐ»ŃŽŃ‡Đ”Đœ). ĐŸĐŸŃĐ»Đ” Ń‚ĐŸĐłĐŸ ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đ”ĐłĐŸ ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ Đž ĐœĐ”Đ°ĐșтоĐČĐœĐŸŃŃ‚Đž Đ±ŃƒĐŽŃƒŃ‚ ŃĐœĐŸĐČа ĐœĐ°ĐșаплОĐČаться.

3) ŃĐ±Ń€ĐŸŃ ĐČŃ€Đ”ĐŒĐ”ĐœĐž: ĐĄ ŃŃ‚ĐŸĐč ĐŸĐżŃ†ĐžĐ”Đč про ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń ĐČŃ€Đ”ĐŒŃ Đ”ĐłĐŸ аĐșтоĐČĐœĐŸŃŃ‚Đž Đž ĐœĐ”Đ°ĐșтоĐČĐœĐŸŃŃ‚Đž Đ±ŃƒĐŽŃƒŃ‚ учотыĐČаться, ĐŸĐŽĐœĐ°ĐșĐŸ ĐżĐŸŃĐ»Đ” Ń‚ĐŸĐłĐŸ ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đ”ĐłĐŸ ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž Đž ĐœĐ”Đ°ĐșтоĐČĐœĐŸŃŃ‚Đž Đ±ŃƒĐŽŃƒŃ‚ ŃĐ±Ń€ĐŸŃˆĐ”ĐœŃ‹.


ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐżĐŸ ĐșĐ°ĐœĐ°Đ»Đ°ĐŒ ĐœĐ” ограют ĐœĐžĐșаĐșĐŸĐč Ń€ĐŸĐ»Đž, таĐș ĐșаĐș ĐČŃ€Đ”ĐŒŃ ĐČсДгЎа Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČаться (ĐșаĐș ĐČ Ń€Đ”Đ¶ĐžĐŒĐ” Đ·Đ°ĐŒĐŸŃ€ĐŸĐ·ĐșĐž)."; -$lang['wiexuid'] = "ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО"; -$lang['wiexuiddesc'] = "ĐŁĐșажОтД чДрДз Đ·Đ°ĐżŃŃ‚ŃƒŃŽ ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đ” ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșĐ°Ń‚ĐŸŃ€Ń‹ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (UID), ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČать Đž ĐžĐŒ ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ засчОтыĐČаться ĐČŃ€Đ”ĐŒŃ, ĐżŃ€ĐŸĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐœĐ° сДрĐČДрД.
"; -$lang['wiexregrp'] = "ŃƒĐŽĐ°Đ»ĐžŃ‚ŃŒ группу"; -$lang['wiexregrpdesc'] = "ЕслО ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ОсĐșĐ»ŃŽŃ‡Đ”Đœ Оз Ranksystem, Ń‚ĐŸ группа сДрĐČДра, ĐœĐ°Đ·ĐœĐ°Ń‡Đ”ĐœĐœĐ°Ń Ranksystem, Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”ĐœĐ°.

Группа Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”ĐœĐ° Ń‚ĐŸĐ»ŃŒĐșĐŸ с '".$lang['wiexres']."' с '".$lang['wiexres1']."'. В Юругох Ń€Đ”Đ¶ĐžĐŒĐ°Ń… группа сДрĐČДра ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”ĐœĐ°.

Эта Ń„ŃƒĐœĐșцоя рДлДĐČĐ°ĐœŃ‚ĐœĐ° Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐČ ĐșĐŸĐŒĐ±ĐžĐœĐ°Ń†ĐžĐž с '".$lang['wiexuid']."' ОлО '".$lang['wiexgrp']."' ĐČ ŃĐŸŃ‡Đ”Ń‚Đ°ĐœĐžĐž с '".$lang['wiexres1']."'"; -$lang['wigrpimp'] = "Đ Đ”Đ¶ĐžĐŒ ĐžĐŒĐżĐŸŃ€Ń‚Đ°"; -$lang['wigrpt1'] = "Đ’Ń€Đ”ĐŒŃ ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń…"; -$lang['wigrpt2'] = "Группа сДрĐČДра"; -$lang['wigrpt3'] = "Permanent Group"; -$lang['wigrptime'] = "ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșа Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['wigrptime2desc'] = "ĐŁĐșажОтД ĐČŃ€Đ”ĐŒŃ ĐżĐŸŃĐ»Đ” ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐŽĐŸĐ»Đ¶Đ”Đœ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ ĐČŃ‹Đ±Ń€Đ°ĐœĐœŃƒŃŽ группу.

ĐČŃ€Đ”ĐŒŃ ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń… => ID группы сДрĐČДра => permanent flag

МаĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐ” Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” - 999.999.999 сДĐșŃƒĐœĐŽ (ĐŸĐșĐŸĐ»ĐŸ 31 ĐłĐŸĐŽĐ°).

ВĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ Đ±ŃƒĐŽĐ”Ń‚ ĐŸĐ±Ń€Đ°Đ±Đ°Ń‚Ń‹ĐČаться ĐșаĐș 'ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ' ОлО 'аĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ', ĐČ Đ·Đ°ĐČĐžŃĐžĐŒĐŸŃŃ‚Đž ĐŸŃ‚ Ń‚ĐŸĐłĐŸ Ń‡Ń‚ĐŸ ĐČы ĐČыбралО ĐČ 'Ń€Đ”Đ¶ĐžĐŒĐ” Ń€Đ°Đ±ĐŸŃ‚Ń‹'.


ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ уĐșазыĐČать ĐŸĐ±Ń‰Đ”Đ” ĐČŃ€Đ”ĐŒŃ.

ĐœĐ”ĐżŃ€Đ°ĐČĐžĐ»ŃŒĐœĐŸ:

100 сДĐșŃƒĐœĐŽ, 100 сДĐșŃƒĐœĐŽ, 50 сДĐșŃƒĐœĐŽ
праĐČĐžĐ»ŃŒĐœĐŸ:

100 сДĐșŃƒĐœĐŽ, 200 сДĐșŃƒĐœĐŽ, 250 сДĐșŃƒĐœĐŽ
"; -$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; -$lang['wigrptimedesc'] = "ĐŁĐșажОтД чДрДз ĐșаĐșĐŸĐč ĐżŃ€ĐŸĐŒĐ”Đ¶ŃƒŃ‚ĐŸĐș ĐČŃ€Đ”ĐŒĐ”ĐœĐž, Đ±ŃƒĐŽŃƒŃ‚ ĐČыЮаĐČаться группы сДрĐČДра.

Đ’Ń€Đ”ĐŒŃ (ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń…) => ĐœĐŸĐŒĐ”Ń€ группы сДрĐČДра (ServerGroupID) => permanent flag

К Ń‚ĐŸĐŒŃƒ жД, ĐŸŃ‚ ĐČŃ‹Đ±Ń€Đ°ĐœĐœĐŸĐłĐŸ Ń€Đ”Đ¶ĐžĐŒĐ° Đ±ŃƒĐŽĐ”Ń‚ заĐČĐžŃĐ”Ń‚ŃŒ.

КажЎыĐč ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€ ĐŽĐŸĐ»Đ¶Đ”Đœ Ń€Đ°Đ·ĐŽĐ”Đ»ŃŃ‚ŃŒŃŃ Đ·Đ°ĐżŃŃ‚ĐŸĐč.

йаĐș жД ĐČŃ€Đ”ĐŒŃ ĐŽĐŸĐ»Đ¶ĐœĐŸ Đ±Ń‹Ń‚ŃŒ уĐșĐ°Đ·Đ°ĐœĐŸ ĐżĐŸ 'ĐœĐ°Ń€Đ°ŃŃ‚Đ°ŃŽŃ‰Đ”Đč'

ĐŸŃ€ĐžĐŒĐ”Ń€:
60=>9=>0,120=>10=>0,180=>11=>0
ĐŸĐŸ ĐžŃŃ‚Đ”Ń‡Đ”ĐœĐžŃŽ 60 сДĐșŃƒĐœĐŽ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚ сДрĐČДр группу ĐżĐŸĐŽ SGID 9, ĐżĐŸ ĐžŃŃ‚Đ”Ń‡Đ”ĐœĐžĐž ĐŸŃ‡Đ”Ń€Đ”ĐŽĐœŃ‹Ń… 120 сДĐșŃƒĐœĐŽ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚ группу сДрĐČДра с ID 10, Đž таĐș ЎалДД..."; -$lang['wigrptk'] = "ĐŸĐ±Ń‰Đ”Đ”"; -$lang['wiheadacao'] = "Access-Control-Allow-Origin"; -$lang['wiheadacao1'] = "allow any ressource"; -$lang['wiheadacao3'] = "allow custom URL"; -$lang['wiheadacaodesc'] = "With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
"; -$lang['wiheadcontyp'] = "X-Content-Type-Options"; -$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; -$lang['wiheaddesc'] = "With this you can define the %s header. More information you can find here:
%s"; -$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; -$lang['wiheadframe'] = "X-Frame-Options"; -$lang['wiheadxss'] = "X-XSS-Protection"; -$lang['wiheadxss1'] = "disables XSS filtering"; -$lang['wiheadxss2'] = "enables XSS filtering"; -$lang['wiheadxss3'] = "filter XSS parts"; -$lang['wiheadxss4'] = "block full rendering"; -$lang['wihladm'] = "ĐĄĐżĐžŃĐŸĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (Đ Đ”Đ¶ĐžĐŒ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°)"; -$lang['wihladm0'] = "ĐžĐżĐžŃĐ°ĐœĐžĐ” Ń„ŃƒĐœĐșцоо (ĐșлОĐșĐ°Đ±Đ”Đ»ŃŒĐœĐŸ)"; -$lang['wihladm0desc'] = "ВыбДрОтД ĐŸĐŽĐœŃƒ ОлО ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ ĐŸĐżŃ†ĐžĐč ŃĐ±Ń€ĐŸŃĐ° Đž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” \"ĐœĐ°Ń‡Đ°Ń‚ŃŒ ŃĐ±Ń€ĐŸŃ\" ĐŽĐ»Ń запусĐșа.

ĐŸĐŸŃĐ»Đ” запусĐșа заЎач(Đž) ŃĐ±Ń€ĐŸŃĐ° ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ”Ń‚ŃŒ статус ĐœĐ° ŃŃ‚ĐŸĐč ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ”.

ЗаЮача Đ±ŃƒĐŽĐ”Ń‚ ĐČŃ‹ĐżĐŸĐ»ĐœŃŃ‚ŃŒŃŃ Đ±ĐŸŃ‚ĐŸĐŒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
ĐžĐœ ĐŽĐŸĐ»Đ¶Đ”Đœ ĐŸŃŃ‚Đ°ĐČаться Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐœŃ‹ĐŒ.
НЕ ОСбАНАВЛИВАЙбЕ Đž НЕ ПЕРЕЗАПУСКАЙбЕ Đ±ĐŸŃ‚Đ° ĐČĐŸ ĐČŃ€Đ”ĐŒŃ ŃĐ±Ń€ĐŸŃĐ°!

ВсД ĐżŃ€ĐŸŃ†Đ”ŃŃŃ‹ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽŃƒŃ‚ ĐżŃ€ĐžĐŸŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœŃ‹ ĐœĐ° ĐČŃ€Đ”ĐŒŃ ŃĐ±Ń€ĐŸŃĐ°. ĐŸĐŸŃĐ»Đ” заĐČĐ”Ń€ŃˆĐ”ĐœĐžŃ Đ±ĐŸŃ‚ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ Ń€Đ°Đ±ĐŸŃ‚Ńƒ ĐČ ĐœĐŸŃ€ĐŒĐ°Đ»ŃŒĐœĐŸĐŒ Ń€Đ”Đ¶ĐžĐŒĐ”.
Ещё раз, НЕ ОСбАНАВЛИВАЙбЕ Đž НЕ ПЕРЕЗАПУСКАЙбЕ Đ±ĐŸŃ‚Đ°!

ĐŸĐŸŃĐ»Đ” заĐČĐ”Ń€ŃˆĐ”ĐœĐžŃ ĐČсДх заЎач ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐžĐœŃŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ. Статус заЎач Đ±ŃƒĐŽĐ”Ń‚ ŃĐ±Ń€ĐŸŃˆĐ”Đœ. ĐŸĐŸŃĐ»Đ” ŃŃ‚ĐŸĐłĐŸ ĐŒĐŸĐ¶ĐœĐŸ Đ±ŃƒĐŽĐ”Ń‚ ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐœĐŸĐČыД заЎачО ŃĐ±Ń€ĐŸŃĐ°.

В ŃĐ»ŃƒŃ‡Đ°Đ” ŃĐ±Ń€ĐŸŃĐ° ĐČы ĐČĐ”Ń€ĐŸŃŃ‚ĐœĐŸ таĐș жД Đ·Đ°Ń…ĐŸŃ‚ĐžŃ‚Đ” ŃĐœŃŃ‚ŃŒ группы сДрĐČДра с ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč. Đ”ĐŸ заĐČĐ”Ń€ŃˆĐ”ĐœĐžŃ ŃĐ±Ń€ĐŸŃĐ° ĐŸŃ‡Đ”ĐœŃŒ ĐČĐ°Đ¶ĐœĐŸ ĐœĐ” ĐžĐ·ĐŒĐ”ĐœŃŃ‚ŃŒ ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžŃ Ń€Đ°ĐœĐłĐ°.
ĐĄĐœŃŃ‚ĐžĐ” сДрĐČĐ”Ń€ĐœŃ‹Ń… групп ĐŒĐŸĐ¶Đ”Ń‚ Đ·Đ°ĐœŃŃ‚ŃŒ ĐșаĐșĐŸĐ”-Ń‚ĐŸ ĐČŃ€Đ”ĐŒŃ. АĐșтоĐČĐœŃ‹Đč 'Ń€Đ”Đ¶ĐžĐŒ Đ·Đ°ĐŒĐ”ĐŽĐ»Đ”ĐœĐœĐŸĐłĐŸ Query' таĐș жД Đ·Đ°ĐŒĐ”ĐŽĐ»ĐžŃ‚ ŃŃ‚ĐŸŃ‚ ĐżŃ€ĐŸŃ†Đ”ŃŃ. Đ Đ”ĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”ĐŒ ĐŸŃ‚ĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ Đ”ĐłĐŸ ĐœĐ° ĐČŃ€Đ”ĐŒŃ.!


Đ‘ŃƒĐŽŃŒŃ‚Đ” ĐŸŃŃ‚ĐŸŃ€ĐŸĐ¶ĐœŃ‹, ĐżĐŸŃĐ»Đ” запусĐșа ŃĐ±Ń€ĐŸŃĐ° ĐŸĐ±Ń€Đ°Ń‚ĐœĐŸĐłĐŸ путо ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚!"; -$lang['wihladm1'] = "ĐŽĐŸĐ±Đ°ĐČоть ĐČŃ€Đ”ĐŒŃ"; -$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['wihladm4'] = "Delete user"; -$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; -$lang['wihladm41'] = "You really want to delete the following user?"; -$lang['wihladm42'] = "Attention: They cannot be restored!"; -$lang['wihladm43'] = "Yes, delete"; -$lang['wihladm44'] = "User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log)."; -$lang['wihladm45'] = "Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database."; -$lang['wihladm46'] = "Requested about admin function"; -$lang['wihladmex'] = "Database Export"; -$lang['wihladmex1'] = "Database Export Job successfully created."; -$lang['wihladmex2'] = "Note:%s The password of the ZIP container is your current TS3 Query-Password:"; -$lang['wihladmex3'] = "File %s successfully deleted."; -$lang['wihladmex4'] = "An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?"; -$lang['wihladmex5'] = "download file"; -$lang['wihladmex6'] = "delete file"; -$lang['wihladmex7'] = "Create SQL Export"; -$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; -$lang['wihladmrs'] = "Статус заЎачО"; -$lang['wihladmrs0'] = "ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ°"; -$lang['wihladmrs1'] = "ŃĐŸĐ·ĐŽĐ°ĐœĐ°"; -$lang['wihladmrs10'] = "Đ—Đ°ĐŽĐ°ĐœĐžĐ” ŃƒŃĐżĐ”ŃˆĐœĐŸ ĐżĐŸĐŽŃ‚ĐČĐ”Ń€Đ¶ĐŽĐ”ĐœĐŸ!"; -$lang['wihladmrs11'] = "Estimated time until completion the job"; -$lang['wihladmrs12'] = "Вы уĐČĐ”Ń€Đ”ĐœŃ‹ Ń‡Ń‚ĐŸ Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ŃŒ? Вся статостоĐșа ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ŃĐ±Ń€ĐŸŃˆĐ”ĐœĐ°!"; -$lang['wihladmrs13'] = "Да, ĐœĐ°Ń‡Đ°Ń‚ŃŒ ŃĐ±Ń€ĐŸŃ"; -$lang['wihladmrs14'] = "ĐĐ”Ń‚, ĐŸŃ‚ĐŒĐ”ĐœĐžŃ‚ŃŒ"; -$lang['wihladmrs15'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČыбДрОтД ĐșаĐș ĐŒĐžĐœĐžĐŒŃƒĐŒ ĐŸĐŽĐžĐœ Оз ĐČĐ°Ń€ĐžĐ°ĐœŃ‚ĐŸĐČ!"; -$lang['wihladmrs16'] = "ĐČĐșĐ»ŃŽŃ‡Đ”ĐœĐŸ"; -$lang['wihladmrs17'] = "Press %s Cancel %s to cancel the job."; -$lang['wihladmrs18'] = "Job(s) was successfully canceled by request!"; -$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 ĐŒĐžĐœŃƒŃ‚Ń‹ ĐżŃ€ĐŸŃŃ‚ĐŸŃ."; -$lang['wiimpaddr'] = "Address"; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpaddrurl'] = "Imprint URL"; -$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; -$lang['wiimpemail'] = "E-Mail Address"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpnotes'] = "Additional information"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpphone'] = "Phone"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; -$lang['wiimpprivurl'] = "Privacy URL"; -$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; -$lang['wilog'] = "ПапĐșа Đ»ĐŸĐłĐžŃ€ĐŸĐČĐ°ĐœĐžŃ Ń€Đ°Đ±ĐŸŃ‚Ń‹ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ"; -$lang['wilogdesc'] = "Đ Đ°ŃĐżĐŸĐ»ĐŸĐ¶Đ”ĐœĐžĐ” Đ»ĐŸĐłĐŸĐČ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐœĐ° ЎОсĐșĐ”.

ĐŸŃ€ĐžĐŒĐ”Ń€:
/var/logs/ranksystem/

ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐČДб-ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐžĐŒĐ”Đ”Ń‚ Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐ” ĐœĐ° рДЎаĐșŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” ŃŃ‚ĐŸĐč папĐșĐž/фаĐčĐ»ĐŸĐČ (chmod)."; -$lang['wilogout'] = "Đ’Ń‹Ń…ĐŸĐŽ"; -$lang['wimsgmsg'] = "ĐžĐżĐŸĐČĐ”Ń‰Đ”ĐœĐžĐ”"; -$lang['wimsgmsgdesc'] = "ЗаЮать ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю, про ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐž ĐČŃ‹ŃŃˆĐ”ĐłĐŸ Ń€Đ°ĐœĐłĐ°.

Đ”Đ°ĐœĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ŃŃ ĐżĐŸŃŃ€Đ”ĐŽŃŃ‚ĐČĐŸĐŒ Đ»ĐžŃ‡ĐœŃ‹Ń… ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐč ĐœĐ° TeamSpeak 3 сДрĐČДрД. йДĐșст ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°ĐœĐžĐ” bb-ĐșĐŸĐŽĐŸĐČ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃ‹ Teamspeak.
%s

ĐšŃ€ĐŸĐŒĐ” Ń‚ĐŸĐłĐŸ, таĐșжД ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаются ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” Đ°Ń€ĐłŃƒĐŒĐ”ĐœŃ‚Ń‹ ĐČ ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐž:
%1\$s - ĐŽĐœĐž
%2\$s - часы
%3\$s - ĐŒĐžĐœŃƒŃ‚
%4\$s - сДĐșŃƒĐœĐŽŃ‹
%5\$s - name of reached servergroup
%6$s - name of the user (recipient)

ĐŸŃ€ĐžĐŒĐ”Ń€:
ПроĐČДт,\\nты ĐŽĐŸŃŃ‚ĐžĐł ĐČысшоĐč Ń€Đ°ĐœĐł, за ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ ĐœĐ° сДрĐČДрД ĐČ Ń‚Đ”Ń‡Đ”ĐœĐžĐ” %1\$s ĐŽĐœĐ”Đč, %2\$s Ń‡Đ°ŃĐŸĐČ Đž %3\$s ĐŒĐžĐœŃƒŃ‚ ĐœĐ° ĐœĐ°ŃˆĐ”ĐŒ сДрĐČДрД.[B]ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶Đ°Đč ĐČ Ń‚ĐŸĐŒ жД ĐŽŃƒŃ…Đ”![/B] ;-)
"; -$lang['wimsgsn'] = "ĐĐŸĐČĐŸŃŃ‚Đž сДрĐČДра"; -$lang['wimsgsndesc'] = "Đ—ĐŽĐ”ŃŃŒ уĐșазыĐČĐ°Đ”Ń‚ŃŃ ĐœĐŸĐČĐŸŃŃ‚ĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”, ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Đ”ĐŒĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ ĐČ ĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ” саĐčта \"/stats/\".

Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐžŃĐżĐŸĐ»ŃŒĐ·ĐČать html-Ń€Đ°Đ·ĐŒĐ”Ń‚Đșу ĐŽĐ»Ń ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ ĐșрасоĐČĐŸĐłĐŸ ĐŸŃ„ĐŸŃ€ĐŒĐ»Đ”ĐœĐžŃ тДĐșста.

ĐŸŃ€ĐžĐŒĐ”Ń€:
<b> - Đ–ĐžŃ€ĐœŃ‹Đč
<u> - ĐŸĐŸĐŽŃ‡Đ”Ń€ĐșĐœŃƒŃ‚Ń‹Đč
<i> - НаĐșĐ»ĐŸĐœĐœŃ‹Đč
<br> - ĐŸĐ”Ń€Đ”ĐœĐŸŃ тДĐșста ĐœĐ° ĐœĐŸĐČую ŃŃ‚Ń€ĐŸĐșу"; -$lang['wimsgusr'] = "ĐŁĐČĐ”ĐŽĐŸĐŒĐ»Đ”ĐœĐžĐ” про ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžĐž"; -$lang['wimsgusrdesc'] = "ĐĄĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю ĐŸ ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžĐž Ń€Đ°ĐœĐłĐ°."; -$lang['winav1'] = "TeamSpeak"; -$lang['winav10'] = "ĐĄĐŸĐ”ĐŽĐžĐœĐ”ĐœĐžĐ” с ĐŽĐ°ĐœĐœŃ‹ĐŒ саĐčŃ‚ĐŸĐŒ ĐœĐ” Đ·Đ°Ń‰ĐžŃ‰Đ”ĐœĐŸ с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ %s HTTPS%sĐ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ ĐżĐŸĐČĐ»Đ”Ń‡ŃŒ за ŃĐŸĐ±ĐŸĐč ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒŃ‹ ĐŽĐ»Ń ĐČашДĐč проĐČĐ°Ń‚ĐœĐŸŃŃ‚Đž Đž Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚Đž! %sĐ”Đ»Ń ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°ĐœĐžŃ HTTPS ĐČаш ĐČДб-сДрĐČДр ĐŽĐŸĐ»Đ¶Đ”Đœ ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČать SSL-ŃĐŸĐ”ĐŽĐžĐœĐ”ĐœĐžĐ”."; -$lang['winav11'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, уĐșажОтД ŃĐ”Đ±Ń ĐșаĐș ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐČ ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșах, ĐŒĐ”ĐœŃŽ \"TeamSpeak\". Đ­Ń‚ĐŸ ĐŸŃ‡Đ”ĐœŃŒ ĐČĐ°Đ¶ĐœĐŸ, таĐș ĐșаĐș ĐČ ŃĐ»ŃƒŃ‡Đ°Đ” ŃƒŃ‚Đ”Ń€Đž ĐżĐ°Ń€ĐŸĐ»Ń ĐČĐŸŃŃŃ‚Đ°ĐœĐŸĐČоть Đ”ĐłĐŸ (ŃˆŃ‚Đ°Ń‚ĐœŃ‹ĐŒĐž срДЎстĐČĐ°ĐŒĐž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ) ŃŃ‚Đ°ĐœĐ”Ń‚ ĐœĐ”ĐČĐŸĐ·ĐŒĐŸĐ¶ĐœĐŸ!"; -$lang['winav12'] = "ĐĐŽĐŽĐŸĐœŃ‹"; -$lang['winav13'] = "General (Stats)"; -$lang['winav14'] = "You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:"; -$lang['winav2'] = "База ĐŽĐ°ĐœĐœŃ‹Ń…"; -$lang['winav3'] = "ĐĄĐžŃŃ‚Đ”ĐŒĐ°"; -$lang['winav4'] = "ĐŸŃ€ĐŸŃ‡Đ”Đ”"; -$lang['winav5'] = "ĐžĐżĐŸĐČĐ”Ń‰Đ”ĐœĐžŃ"; -$lang['winav6'] = "СтатостоĐșа"; -$lang['winav7'] = "ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”"; -$lang['winav8'] = "Запустоть / ĐžŃŃ‚Đ°ĐœĐŸĐČоть Đ±ĐŸŃ‚Đ°"; -$lang['winav9'] = "Đ”ĐŸŃŃ‚ŃƒĐżĐœĐŸ ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ”!"; -$lang['winxinfo'] = "ĐšĐŸĐŒĐ°ĐœĐŽĐ° \"!nextup\""; -$lang['winxinfodesc'] = "Đ Đ°Đ·Ń€Đ”ŃˆĐ°Đ”Ń‚ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃŃ‚ŃŒ Đ±ĐŸŃ‚Ńƒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐșĐŸĐŒĐ°ĐœĐŽŃƒ \"!nextup\" Đ»ĐžŃ‡ĐœŃ‹ĐŒ ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”ĐŒ.

ĐŸĐŸŃĐ»Đ” ĐŸŃ‚ĐżŃ€Đ°ĐČĐșĐž ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю Đ±ŃƒĐŽĐ”Ń‚ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ ĐŸŃ‚ĐČĐ”Ń‚ĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” с ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐ”Đč ĐŸ Ń‚Ń€Đ”Đ±ŃƒĐ”ĐŒĐŸĐŒ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐŽĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐłĐŸ ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžŃ.

ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - Đ€ŃƒĐœĐșцоя ĐżĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ°. ĐšĐŸĐŒĐ°ĐœĐŽĐ° '!nextup' Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČаться.
ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč Ń€Đ°ĐœĐł - Đ‘ŃƒĐŽĐ”Ń‚ ĐČĐŸĐ·ĐČращаться ĐČŃ€Đ”ĐŒŃ, ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ХЛЕДУПЩЕГО Ń€Đ°ĐœĐłĐ° ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ.
ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - ĐČсД ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” Ń€Đ°ĐœĐłĐž - Đ‘ŃƒĐŽĐ”Ń‚ ĐČĐŸĐ·ĐČращаться ĐČŃ€Đ”ĐŒŃ, ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ВХЕЄ ĐżĐŸŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžŃ… Ń€Đ°ĐœĐłĐŸĐČ ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['winxmode1'] = "ĐĐ” сбрасыĐČать"; -$lang['winxmode2'] = "ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč Ń€Đ°ĐœĐł"; -$lang['winxmode3'] = "ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - ĐČсД ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” Ń€Đ°ĐœĐłĐž"; -$lang['winxmsg1'] = "ĐĄĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”-ĐŸŃ‚ĐČДт"; -$lang['winxmsg2'] = "ĐĄĐŸĐŸĐ±Ń‰. ĐŸ ĐŒĐ°Đșс.Ń€Đ°ĐœĐłĐ”"; -$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'] = "ĐŁĐČы, ĐœĐŸ Ń€Đ°ĐœĐ”Đ” ĐČы ĐœĐ” уĐșазалО ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ, с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐŽĐŸĐ»Đ¶ĐœĐŸ ĐżŃ€ĐŸĐžĐ·ĐČĐŸĐŽĐžŃ‚ŃŒŃŃ ĐČĐŸŃŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ĐżĐ°Ń€ĐŸĐ»Ń ĐŸŃ‚ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž. Đ•ĐŽĐžĐœŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč ĐŸŃŃ‚Đ°ĐČшОĐčся ŃĐżĐŸŃĐŸĐ± ŃĐ±Ń€ĐŸŃĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ ŃŃ‚ĐŸ ĐŸĐ±ĐœĐŸĐČоть Đ”ĐłĐŸ ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…. Đ˜ĐœŃŃ‚Ń€ŃƒĐșцоя ĐżĐŸ Ń€ŃƒŃ‡ĐœĐŸĐŒŃƒ ŃĐ±Ń€ĐŸŃŃƒ ĐŽĐŸŃŃ‚ŃƒĐżĐœĐ° Đ·ĐŽĐ”ŃŃŒ:
%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, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČĐŸĐčто"; -$lang['wirtpw6'] = "ĐŸĐ°Ń€ĐŸĐ»ŃŒ ĐŸŃ‚ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐ±Ń€ĐŸŃˆĐ”Đœ. IP, с ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐżŃ€ĐŸĐžĐ·ĐČĐ”ĐŽĐ”Đœ ŃĐ±Ń€ĐŸŃ: %s."; -$lang['wirtpw7'] = "ĐĄĐ±Ń€ĐŸŃĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ"; -$lang['wirtpw8'] = "Đ—ĐŽĐ”ŃŃŒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ŃĐ±Ń€ĐŸŃĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ ĐŽĐ»Ń ĐČĐŸŃŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžŃ ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž"; -$lang['wirtpw9'] = "Đ”Đ»Ń ŃĐ±Ń€ĐŸŃĐ° ĐżĐ°Ń€ĐŸĐ»Ń ĐżĐŸŃ‚Ń€Đ”Đ±ŃƒĐ”Ń‚ŃŃ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”Đ”:"; -$lang['wiselcld'] = "Đ’Ń‹Đ±ĐŸŃ€ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń"; -$lang['wiselclddesc'] = "ĐŁĐșажОтД ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń ĐżĐŸ Đ”ĐłĐŸ ĐżĐŸŃĐ»Đ”ĐŽĐœĐ”ĐŒŃƒ ĐœĐžĐșĐœĐ”ĐčĐŒŃƒ ОлО ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœĐŸĐŒŃƒ ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșĐ°Ń‚ĐŸŃ€Ńƒ(UID), ОлО ID ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… Teamspeak 3 сДрĐČДра."; -$lang['wisesssame'] = "Session Cookie 'SameSite'"; -$lang['wisesssamedesc'] = "The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above."; -$lang['wishcol'] = "Show/hide column"; -$lang['wishcolat'] = "Đ’Ń€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž"; -$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; -$lang['wishcolha'] = "Đ„ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” IP аЎрДса"; -$lang['wishcolha0'] = "Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” ĐČыĐșĐ»ŃŽŃ‡Đ”ĐœĐŸ"; -$lang['wishcolha1'] = "Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸĐ” Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”"; -$lang['wishcolha2'] = "Đ±Ń‹ŃŃ‚Ń€ĐŸĐ” Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ)"; -$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['wishcolot'] = "Đ’Ń€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ"; -$lang['wishdef'] = "ĐšĐŸĐ»ĐŸĐœĐșа ŃĐŸŃ€Ń‚ĐžŃ€ĐŸĐČĐșĐž ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ"; -$lang['wishdef2'] = "2nd column sort"; -$lang['wishdef2desc'] = "Define the second sorting level for the List Rankup page."; -$lang['wishdefdesc'] = "ОпрДЎДлОтД ĐșĐŸĐ»ĐŸĐœĐșу, ĐżĐŸ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐč ŃĐ»Đ”ĐŽŃƒĐ”Ń‚ ŃĐŸŃ€Ń‚ĐžŃ€ĐŸĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐŸĐ±Ń‰Đ”Đč статостоĐșĐž."; -$lang['wishexcld'] = "ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО"; -$lang['wishexclddesc'] = "ĐŸĐŸĐșазыĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ list_rankup.php,
ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ОсĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đž ĐœĐ” участĐČуют ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['wishexgrp'] = "ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” группы"; -$lang['wishexgrpdesc'] = "ĐŸĐŸĐșазыĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ list_rankup.php, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐœĐ°Ń…ĐŸĐŽŃŃ‚ŃŃ ĐČ ŃĐżĐžŃĐșĐ” 'ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč' Đž ĐœĐ” ĐŽĐŸĐ»Đ¶ĐœŃ‹ учотыĐČаться ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['wishhicld'] = "ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлО с ĐČŃ‹ŃŃˆĐžĐŒ Ń€Đ°ĐœĐłĐŸĐŒ"; -$lang['wishhiclddesc'] = "ĐŸĐŸĐșазыĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ list_rankup.php, ĐŽĐŸŃŃ‚ĐžĐłŃˆĐžŃ… ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐłĐŸ ŃƒŃ€ĐŸĐČĐœŃ ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ."; -$lang['wishmax'] = "Server usage graph"; -$lang['wishmax0'] = "show all stats"; -$lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "hide channel"; -$lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; -$lang['wishnav'] = "ĐŸĐŸĐșазыĐČать ĐœĐ°ĐČогацою ĐżĐŸ ŃĐžŃŃ‚Đ”ĐŒĐ”"; -$lang['wishnavdesc'] = "ĐŸĐŸĐșазыĐČать лО ĐœĐ°ĐČогацою ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” on 'stats/'.

ЕслО эта ĐŸĐżŃ†ĐžŃ ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ° Ń‚ĐŸ ĐœĐ°ĐČогацоя ĐœĐ° саĐčтД ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒŃŃ.
Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČĐ·ŃŃ‚ŃŒ Đ»ŃŽĐ±ŃƒŃŽ ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ, ĐœĐ°ĐżŃ€ĐžĐŒĐ”Ń€ 'stats/list_rankup.php' Đž ĐČŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ Дё ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ фрДĐčĐŒŃ‹ ĐČ ĐČĐ°ŃˆĐ”ĐŒ ŃŃƒŃ‰Đ”ŃŃ‚ĐČŃƒŃŽŃ‰Đ”ĐŒ саĐčтД ОлО Ń„ĐŸŃ€ŃƒĐŒĐ”."; -$lang['wishsort'] = "ĐĄĐŸŃ€Ń‚ĐžŃ€ĐŸĐČĐșа ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ"; -$lang['wishsort2'] = "2nd sorting order"; -$lang['wishsort2desc'] = "This will define the order for the second level sorting."; -$lang['wishsortdesc'] = "ВыбДрОтД ĐœŃƒĐ¶ĐœŃ‹Đč топ ŃĐŸŃ€Ń‚ĐžŃ€ĐŸĐČĐșĐž ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ ĐŸĐ±Ń‰Đ”Đč статостоĐșĐž."; -$lang['wistcodesc'] = "ĐŁĐșажОтД ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đș сДрĐČĐ”Ń€Ńƒ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžŃ."; -$lang['wisttidesc'] = "ĐŁĐșажОтД ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐČŃ€Đ”ĐŒŃ (ĐČ Ń‡Đ°ŃĐ°Ń…), ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžŃ."; -$lang['wistyle'] = "ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒŃĐșĐžĐč ŃŃ‚ĐžĐ»ŃŒ"; -$lang['wistyledesc'] = "ОпрДЎДлОтД ĐŸŃ‚Đ»ĐžŃ‡ĐœŃ‹Đč, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒŃĐșĐžĐč ŃŃ‚ĐžĐ»ŃŒ (ŃŃ‚ĐžĐ»ŃŒ) ĐŽĐ»Ń ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
Đ­Ń‚ĐŸŃ‚ ŃŃ‚ĐžĐ»ŃŒ Đ±ŃƒĐŽĐ”Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČаться ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” статостоĐșĐž Đž ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”ĐčсД.

Đ Đ°Đ·ĐŒĐ”ŃŃ‚ĐžŃ‚Đ” сĐČĐŸĐč ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč ŃŃ‚ĐžĐ»ŃŒ ĐČ ĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ” 'style' ĐČ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœĐŸĐŒ ĐżĐŸĐŽĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ”.
Đ˜ĐŒŃ ĐżĐŸĐŽĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ° ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ŃĐ”Ń‚ ĐžĐŒŃ ŃŃ‚ĐžĐ»Ń.

ХтОлО, ĐœĐ°Ń‡ĐžĐœĐ°ŃŽŃ‰ĐžĐ”ŃŃ с 'TSN_', ĐżĐŸŃŃ‚Đ°ĐČĐ»ŃŃŽŃ‚ŃŃ ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ. ĐžĐœĐž Đ±ŃƒĐŽŃƒŃ‚ ĐŸĐ±ĐœĐŸĐČĐ»ŃŃ‚ŃŒŃŃ ĐČ Đ±ŃƒĐŽŃƒŃ‰ĐžŃ… ĐČĐ”Ń€ŃĐžŃŃ….
В ĐœĐžŃ… ĐœĐ” ŃĐ»Đ”ĐŽŃƒĐ”Ń‚ ĐŽĐ”Đ»Đ°Ń‚ŃŒ ĐœĐžĐșаĐșох ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐč!
ĐžĐŽĐœĐ°ĐșĐŸ ĐŸĐœĐž ĐŒĐŸĐłŃƒŃ‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČаться ĐșаĐș ŃˆĐ°Đ±Đ»ĐŸĐœ. ĐĄĐșĐŸĐżĐžŃ€ŃƒĐčтД ŃŃ‚ĐžĐ»ŃŒ ĐČ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč ĐșĐ°Ń‚Đ°Đ»ĐŸĐł, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČĐœĐ”ŃŃ‚Đž ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐČ ĐœĐ”ĐŒ.

ĐąŃ€Đ”Đ±ŃƒŃŽŃ‚ŃŃ ĐŽĐČа фаĐčла CSS. ĐžĐŽĐžĐœ ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž Đž ĐŸĐŽĐžĐœ ĐŽĐ»Ń ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса.
йаĐșжД ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐČĐșĐ»ŃŽŃ‡Đ”Đœ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč JavaScript. Đ­Ń‚ĐŸ ĐœĐ”ĐŸĐ±ŃĐ·Đ°Ń‚Đ”Đ»ŃŒĐœĐŸ.

ĐšĐŸĐœĐČĐ”ĐœŃ†ĐžŃ ĐžĐŒĐ”ĐœĐŸĐČĐ°ĐœĐžŃ CSS:
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœŃ‹Đč 'ST.css' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž (/stats/)
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœŃ‹Đč 'WI.css' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса (/webinterface/)


ĐĐ°Đ·ĐČĐ°ĐœĐžĐ” папĐșĐž ŃĐŸ ŃŃ‚ĐžĐ»Đ”ĐŒ ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ŃĐ”Ń‚ ĐžĐŒŃ ŃŃ‚ĐžĐ»Ń.

ХтОлО, ĐœĐ°Ń‡ĐžĐœĐ°ŃŽŃ‰ĐžĐ”ŃŃ с 'TSN_', ĐżĐŸŃŃ‚Đ°ĐČĐ»ŃŃŽŃ‚ŃŃ ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ. ĐžĐœĐž Đ±ŃƒĐŽŃƒŃ‚ ĐŸĐ±ĐœĐŸĐČĐ»ŃŃ‚ŃŒŃŃ ĐČ Đ±ŃƒĐŽŃƒŃ‰ĐžŃ… ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžŃŃ….
ĐĐ” рДĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ĐČĐœĐŸŃĐžŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐČ ŃŃ‚Đž стОлО!
ĐžĐŽĐœĐ°ĐșĐŸ ĐŸĐœĐž ĐŒĐŸĐłŃƒŃ‚ ŃĐ»ŃƒĐ¶ĐžŃ‚ŃŒ ŃˆĐ°Đ±Đ»ĐŸĐœĐŸĐŒ. ĐĄĐșĐŸĐżĐžŃ€ŃƒĐčтД ŃŃ‚ĐžĐ»ŃŒ ĐČ ĐŸŃ‚ĐŽĐ”Đ»ŃŒĐœŃƒŃŽ папĐșу, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČĐœĐŸŃĐžŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ.

ĐąŃ€Đ”Đ±ŃƒŃŽŃ‚ŃŃ ĐŽĐČа фаĐčла CSS. ĐžĐŽĐžĐœ ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž, ĐŽŃ€ŃƒĐłĐŸĐč ĐŽĐ»Ń ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса.
йаĐșжД ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐČĐșĐ»ŃŽŃ‡Đ”Đœ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč JavaScript. ĐĐŸ ŃŃ‚ĐŸ ĐœĐ”ĐŸĐ±ŃĐ·Đ°Ń‚Đ”Đ»ŃŒĐœĐŸ.

ĐšĐŸĐœĐČĐ”ĐœŃ†ĐžŃ ĐžĐŒĐ”ĐœĐŸĐČĐ°ĐœĐžŃ JavaScript:
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœĐŸĐ” 'ST.js' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž (/stats/)
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœĐŸĐ” 'WI.js' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса (/webinterface/)


ЕслО ĐČы Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČоть сĐČĐŸĐč ŃŃ‚ĐžĐ»ŃŒ ĐŽŃ€ŃƒĐłĐžĐŒ Đ»ŃŽĐŽŃĐŒ, ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐŸŃ‚ĐżŃ€Đ°ĐČоть Đ”ĐłĐŸ ĐœĐ° ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ŃƒŃŽ ŃĐ»Đ”ĐșŃ‚Ń€ĐŸĐœĐœŃƒŃŽ ĐżĐŸŃ‡Ń‚Ńƒ:

%s

Мы ĐČĐșĐ»ŃŽŃ‡ĐžĐŒ Đ”ĐłĐŸ ĐČ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐŒ ĐČыпусĐșĐ”!"; -$lang['wisupidle'] = "Đ Đ”Đ¶ĐžĐŒ ĐČŃ€Đ”ĐŒĐ”ĐœĐž"; -$lang['wisupidledesc'] = "ĐŸŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»Đ”ĐœŃ‹ ĐŽĐČа Ń€Đ”Đ¶ĐžĐŒĐ°, ĐżĐŸ ĐșĐŸŃ‚ĐŸŃ€Ń‹ĐŒ Đ±ŃƒĐŽĐ”Ń‚ ĐČысчоĐČаться Ń€Đ°ĐœĐł ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč:

1) Đ’Ń€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ(ОбщДД ĐČŃ€Đ”ĐŒŃ): ОбщДД ĐČŃ€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐœĐ° сДрĐČДрД, сĐșлаЎыĐČĐ°Đ”Ń‚ŃŃ Оз \"АĐșтоĐČĐœĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž\" Đž \"ĐČŃ€Đ”ĐŒĐ”ĐœĐž бДзЎДĐčстĐČоя\"(ĐșĐŸĐ»ĐŸĐœĐșа 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ' ĐČ 'stats/list_rankup.php')

2) АĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ(Đ’Ń€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž): Đ’Ń€Đ”ĐŒŃ, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐœĐ” ĐœĐ°Ń…ĐŸĐŽĐžĐ»ŃŃ ĐČ Đ±Đ”Đ·ĐŽĐ”ĐčстĐČОО. Đ—ĐœĐ°Ń‡Đ”ĐœĐžĐ” ŃŃ‚ĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐČысчотыĐČĐ°Đ”Ń‚ŃŃ ĐżŃƒŃ‚Đ”ĐŒ ĐČŃ‹Ń‡ĐžŃ‚Đ°ĐœĐžŃ \"ĐČŃ€Đ”ĐŒĐ”ĐœĐž бДзЎДĐčстĐČоя Оз\" Оз \"ĐžĐ±Ń‰Đ”ĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐœĐ° сДрĐČДрД\" (ĐšĐŸĐ»ĐŸĐœĐșа 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž' ĐČ 'stats/list_rankup.php').

ĐĐ” рДĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ŃĐŒĐ”ĐœĐ° Ń€Đ”Đ¶ĐžĐŒĐ° про ужД ĐŸŃ‚Ń€Đ°Đ±ĐŸŃ‚Đ°ĐČŃˆĐ”ĐŒ ĐŽĐŸĐ»ĐłĐžĐč ŃŃ€ĐŸĐș ŃŃ‚Đ°Ń€ĐŸĐŒ Ń€Đ”Đ¶ĐžĐŒĐ”, ĐœĐŸ ĐŽĐŸĐżŃƒŃŃ‚ĐžĐŒĐŸ."; -$lang['wisvconf'] = "ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ"; -$lang['wisvinfo1'] = "Đ’ĐœĐžĐŒĐ°ĐœĐžĐ”! Про ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐž Ń€Đ”Đ¶ĐžĐŒĐ° Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžŃ IP Đ°ĐŽŃ€Đ”ŃĐŸĐČ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ Ń‡Ń‚ĐŸ бы ĐșажЎыĐč Оз ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐżĐ”Ń€Đ”ĐżĐŸĐŽĐșĐ»ŃŽŃ‡ĐžĐ»ŃŃ Đș сДрĐČĐ”Ń€Ńƒ TS3 ОлО ĐŸĐœĐž ĐœĐ” ŃĐŒĐŸĐłŃƒŃ‚ ŃĐžĐœŃ…Ń€ĐŸĐœĐžĐ·ĐžŃ€ĐŸĐČаться ŃĐŸ ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ”Đč статостоĐșĐž."; -$lang['wisvres'] = "Đ”Đ»Ń ĐżŃ€ĐžĐœŃŃ‚ĐžŃ ĐČĐœĐ”ŃĐ”ĐœĐœŃ‹Ń… праĐČĐŸĐș ĐČĐ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ! %s"; -$lang['wisvsuc'] = "Đ˜Đ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœŃ‹!"; -$lang['witime'] = "Đ§Đ°ŃĐŸĐČĐŸĐč ĐżĐŸŃŃ"; -$lang['witimedesc'] = "Đ’Ń‹Đ±Ń€Đ°Ń‚ŃŒ Ń‡Đ°ŃĐŸĐČĐŸĐč ĐżĐŸŃŃ сДрĐČДра.

ОĐșазыĐČаДт ĐČĐ»ĐžŃĐœĐžĐ” ĐœĐ° ĐČŃ€Đ”ĐŒŃ, ĐŸŃ‚Ń€Đ°Đ¶Đ°Đ”ĐŒĐŸĐ” ĐČ Đ»ĐŸĐł-фаĐčлД ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ (ranksystem.log)."; -$lang['wits3avat'] = "ЗаЎДржĐșа Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐž аĐČĐ°Ń‚Đ°Ń€ĐŸĐČ"; -$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['wits3pre'] = "ĐŸŃ€Đ”Ń„ĐžĐșс ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ Đ±ĐŸŃ‚Đ°"; -$lang['wits3predesc'] = "На сДрĐČДрД TeamSpeak ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” сĐČŃĐ·Đ°Ń‚ŃŒŃŃ с Đ±ĐŸŃ‚ĐŸĐŒ Ranksystem чДрДз чат. ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ Đ±ĐŸŃ‚Đ° ĐŸŃ‚ĐŒĐ”Ń‡Đ”ĐœŃ‹ ĐČĐŸŃĐșĐ»ĐžŃ†Đ°Ń‚Đ”Đ»ŃŒĐœŃ‹ĐŒ Đ·ĐœĐ°ĐșĐŸĐŒ '!'. ĐŸŃ€Đ”Ń„ĐžĐșс ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ ĐŽĐ»Ń ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșацоо ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń Đ±ĐŸŃ‚Đ° ĐșаĐș таĐșĐŸĐČых.

Đ­Ń‚ĐŸŃ‚ прДфОĐșс ĐŒĐŸĐ¶ĐœĐŸ Đ·Đ°ĐŒĐ”ĐœĐžŃ‚ŃŒ Đ»ŃŽĐ±Ń‹ĐŒ ĐŽŃ€ŃƒĐłĐžĐŒ Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹ĐŒ прДфОĐșŃĐŸĐŒ. Đ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ ĐżĐŸĐœĐ°ĐŽĐŸĐ±ĐžŃ‚ŃŒŃŃ, ДслО ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃŽŃ‚ŃŃ ĐŽŃ€ŃƒĐłĐžĐ” Đ±ĐŸŃ‚Ń‹ с ĐżĐŸŃ…ĐŸĐ¶ĐžĐŒĐž ĐșĐŸĐŒĐ°ĐœĐŽĐ°ĐŒĐž.

ĐĐ°ĐżŃ€ĐžĐŒĐ”Ń€, ĐșĐŸĐŒĐ°ĐœĐŽĐ° Đ±ĐŸŃ‚Đ° ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ Đ±ŃƒĐŽĐ”Ń‚ ĐČŃ‹ĐłĐ»ŃĐŽĐ”Ń‚ŃŒ таĐș:
!help


ЕслО прДфОĐșс Đ·Đ°ĐŒĐ”ĐœĐžŃ‚ŃŒ ĐœĐ° '#', ĐșĐŸĐŒĐ°ĐœĐŽĐ° Đ±ŃƒĐŽĐ”Ń‚ ĐČŃ‹ĐłĐ»ŃĐŽĐ”Ń‚ŃŒ таĐș:
#help
"; -$lang['wits3qnm'] = "ĐžŃĐœĐŸĐČĐœ. ĐœĐžĐș Đ±ĐŸŃ‚Đ°"; -$lang['wits3qnmdesc'] = "НоĐșĐœĐ”ĐčĐŒ, ĐżĐŸĐŽ ĐșĐŸŃ‚ĐŸŃ€Ń‹ĐŒ ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ аĐČŃ‚ĐŸŃ€ĐžĐ·ĐŸĐČыĐČаться ĐœĐ° сДрĐČДрД.
ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐŸĐœĐŸ ĐœĐ” Đ·Đ°ĐœŃŃ‚ĐŸ ĐșĐ”ĐŒ-Ń‚ĐŸ ĐŽŃ€ŃƒĐłĐžĐŒ."; -$lang['wits3querpw'] = "TS3 Query-ĐŸĐ°Ń€ĐŸĐ»ŃŒ"; -$lang['wits3querpwdesc'] = "Đ›ĐŸĐłĐžĐœ ĐŽĐ»Ń аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžĐž ĐœĐ° сДрĐČДрД
ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ: serveradmin
ĐšĐŸĐœĐ”Ń‡ĐœĐŸ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” уĐșĐ°Đ·Đ°Ń‚ŃŒ ĐŽŃ€ŃƒĐłĐŸĐč Đ»ĐŸĐłĐžĐœ ĐŽĐ»Ń ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹Đ” Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžŃ проĐČОлДгОĐč ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°Đčто ĐœĐ°:
%s"; -$lang['wits3querusr'] = "TS3 Query-Đ›ĐŸĐłĐžĐœ"; -$lang['wits3querusrdesc'] = "TeamSpeak 3 query-Đ›ĐŸĐłĐžĐœ
ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ: serveradmin
ĐšĐŸĐœĐ”Ń‡ĐœĐŸ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” уĐșĐ°Đ·Đ°Ń‚ŃŒ ĐŽŃ€ŃƒĐłĐŸĐč Đ»ĐŸĐłĐžĐœ ĐŽĐ»Ń ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹Đ” Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžŃ проĐČОлДгОĐč ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°Đčто ĐœĐ°:
%s"; -$lang['wits3query'] = "TS3 Query-ĐŸĐŸŃ€Ń‚"; -$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'] = "Đ“ĐŸĐ»ĐŸŃĐŸĐČĐŸĐč ĐżĐŸŃ€Ń‚ сДрĐČДра
ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ: 9987 (UDP)
Đ­Ń‚ĐŸŃ‚ ĐżĐŸŃ€Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ Teamspeak 3 ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐŒ ĐŽĐ»Ń ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș сДрĐČĐ”Ń€Ńƒ."; -$lang['witsz'] = "ĐžĐłŃ€Đ°ĐœĐžŃ‡Đ”ĐœĐžĐ” Đ»ĐŸĐł-фаĐčла"; -$lang['witszdesc'] = "МаĐșŃĐžĐŒĐ°Đ»ŃŒĐœŃ‹Đč Ń€Đ°Đ·ĐŒĐ”Ń€ Đ»ĐŸĐł-фаĐčла, про прДĐČŃ‹ŃˆĐ”ĐœĐžĐž ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐżŃ€ĐŸĐžĐ·ĐŸĐčЎДт Ń€ĐŸŃ‚Đ°Ń†ĐžŃ.

ĐŁĐșажОтД Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” ĐČ ĐŒĐ”ĐłĐ°Đ±Đ°Đčтах.

ĐšĐŸĐłĐŽĐ° уĐČДлОчОĐČаДтД Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ”, Đ±ŃƒĐŽŃŒŃ‚Đ” уĐČĐ”Ń€Đ”ĐœŃ‹ ĐČ Ń‚ĐŸĐŒ Ń‡Ń‚ĐŸ у ĐČас ĐŽĐŸŃŃ‚Đ°Ń‚ĐŸŃ‡ĐœĐŸ сĐČĐŸĐ±ĐŸĐŽĐœĐŸĐłĐŸ ĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœŃŃ‚ĐČа ĐœĐ° ЎОсĐșĐ”. ХлОшĐșĐŸĐŒ Đ±ĐŸĐ»ŃŒŃˆĐžĐ” Đ»ĐŸĐłĐž ĐŒĐŸĐłŃƒŃ‚ проĐČДстО Đș ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒĐ°ĐŒ с ĐżŃ€ĐŸĐžĐ·ĐČĐŸĐŽĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒŃŽ!

Đ˜Đ·ĐŒĐ”ĐœĐ”ĐœĐžĐ” ĐŽĐ°ĐœĐœĐŸĐłĐŸ ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đ° ĐżĐŸĐŽĐ”ĐčстĐČŃƒĐ”Ń‚ про ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃĐșĐ” ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ. ЕслО Ń€Đ°Đ·ĐŒĐ”Ń€ Đ»ĐŸĐł-фаĐčла ĐČŃ‹ŃˆĐ” уĐșĐ°Đ·Đ°ĐœĐœĐŸĐłĐŸ Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ - Ń€ĐŸŃ‚Đ°Ń†ĐžŃ ĐżŃ€ĐŸĐžĐ·ĐŸĐčЎДт ĐŒĐłĐœĐŸĐČĐ”ĐœĐœĐŸ."; -$lang['wiupch'] = "ĐšĐ°ĐœĐ°Đ» ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč"; -$lang['wiupch0'] = "ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃ‹Đč"; -$lang['wiupch1'] = "бДта"; -$lang['wiupchdesc'] = "ĐŸĐŸ ĐŒĐ”Ń€Đ” ĐČŃ‹Ń…ĐŸĐŽĐ° ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐ°. Đ—ĐŽĐ”ŃŃŒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČŃ‹Đ±Ń€Đ°Ń‚ŃŒ Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹Đč ĐșĐ°ĐœĐ°Đ» ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč.

ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃ‹Đč (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ): Вы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃƒŃŽ ĐČДрсОю. Đ Đ”ĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ĐČ ĐżŃ€ĐŸĐŽĐ°ĐșŃˆĐœĐ”.

бДта: Вы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” ĐżĐŸŃĐ»Đ”ĐŽĐœŃŽŃŽ бДта-ĐČДрсОю. Đ€ŃƒĐœĐșŃ†ĐžĐŸĐœĐ°Đ»ŃŒĐœŃ‹Đ” ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžŃ ĐżŃ€ĐžŃ…ĐŸĐŽŃŃ‚ быстрДД, ĐŸĐŽĐœĐ°ĐșĐŸ росĐș ĐČĐŸĐ·ĐœĐžĐșĐœĐŸĐČĐ”ĐœĐžŃ Đ±Đ°ĐłĐŸĐČ ĐČŃ‹ŃˆĐ”. Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД ĐœĐ° сĐČĐŸĐč страх Đž росĐș!

Про ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐž ĐșĐ°ĐœĐ°Đ»Đ° ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč с бДта ĐœĐ° ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃ‹Đč ĐČĐ”Ń€ŃĐžŃ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐœĐ” ĐżĐŸĐœĐžĐ·ĐžŃ‚ŃŃ. ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐ° ĐŽĐŸ ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœĐŸĐč ĐČДрсОО, ĐČŃ‹ĐżŃƒŃ‰Đ”ĐœĐœĐŸĐč ĐżĐŸŃĐ»Đ” бДта-ĐČДрсОО."; -$lang['wiverify'] = "ĐšĐ°ĐœĐ°Đ» ĐŽĐ»Ń ĐżŃ€ĐŸĐČДрĐșĐž"; -$lang['wiverifydesc'] = "Đ—ĐŽĐ”ŃŃŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ уĐșĐ°Đ·Đ°Ń‚ŃŒ ID ĐșĐ°ĐœĐ°Đ»Đ°, ĐČ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐŒ Đ±ŃƒĐŽĐ”Ń‚ ĐżŃ€ĐŸŃ…ĐŸĐŽĐžŃ‚ŃŒ ĐżŃ€ĐŸĐČДрĐșа ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč.

Đ­Ń‚ĐŸŃ‚ ĐșĐ°ĐœĐ°Đ» ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐœĐ°ŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ ĐœĐ° сДрĐČДрД TS3 ĐČŃ€ŃƒŃ‡ĐœŃƒŃŽ. Đ˜ĐŒŃ, проĐČОлДгОО Đž ĐŽŃ€ŃƒĐłĐžĐ” ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐŒĐŸĐłŃƒŃ‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœŃ‹ ĐżĐŸ ĐČĐ°ŃˆĐ”ĐŒŃƒ Đ¶Đ”Đ»Đ°ĐœĐžŃŽ; ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ Đ»ĐžŃˆŃŒ ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČоть ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ ĐČĐŸĐ·ĐŒĐŸĐ¶ĐœĐŸŃŃ‚ŃŒ ĐČŃ…ĐŸĐŽĐžŃ‚ŃŒ ĐČ ĐŽĐ°ĐœĐœŃ‹Đč ĐșĐ°ĐœĐ°Đ»!
Đ­Ń‚ĐŸ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐČ ŃĐ»ŃƒŃ‡Đ°Đ” ДслО ĐżĐŸŃĐ”Ń‚ĐžŃ‚Đ”Đ»ŃŒ ĐœĐ” ŃĐŒĐŸĐ¶Đ”Ń‚ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžŃ†ĐžŃ€ĐŸĐČаться ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ.

Đ”Đ»Ń ĐżŃ€ĐŸĐČДрĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ сДрĐČДра ĐŽĐŸĐ»Đ¶Đ”Đœ Đ±Ń‹Ń‚ŃŒ ĐČĐœŃƒŃ‚Ń€Đž ĐŽĐ°ĐœĐœĐŸĐłĐŸ ĐșĐ°ĐœĐ°Đ»Đ°. ĐąĐ°ĐŒ ĐŸĐœ ŃĐŒĐŸĐ¶Đ”Ń‚ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ Đșлюч, с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐŸĐœ ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžŃ†ĐžŃ€ŃƒĐ”Ń‚ ŃĐ”Đ±Ń ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” статостоĐșĐž."; -$lang['wivlang'] = "ĐŻĐ·Ń‹Đș"; -$lang['wivlangdesc'] = "ВыбДрОтД ŃĐ·Ń‹Đș, ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”ĐŒŃ‹Đč ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ.

ĐŻĐ·Ń‹Đș саĐčта ĐżĐŸ-ĐżŃ€Đ”Đ¶ĐœĐ”ĐŒŃƒ Đ±ŃƒĐŽĐ”Ń‚ ĐŽĐŸŃŃ‚ŃƒĐżĐ”Đœ ĐŽĐ»Ń пДрДĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐČŃĐ”ĐŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ."; -?> \ No newline at end of file +
You can use all BB-Codes, which are valid inside TeamSpeak.

The following list of variables could be used to set variable values, like a client nickname.
Replace '_XXX}' with a sequential number of the TeamSpeak user (between 1 and 10), like '_1}' or '_10}'.

Example:
{$CLIENT_NICKNAME_1}
"; +$lang['addonchdesc2desc'] = "Advanced Options

It is also possible to set an if condition to show some text only, when the condition is true.

Example:
{if {$CLIENT_ONLINE_STATUS_1} === 'Online'}
[COLOR=GREEN](Online)[/COLOR]
{else}
[COLOR=RED](Offline)[/COLOR]
{/if}


You can also change the date format by setting a format definition at the end of a variable.

Example:
{$CLIENT_LAST_SEEN_1|date_format:"%d.%m.%Y %H:%M:%S"}


Uppercase some text.

Example:
{$CLIENT_NICKNAME_1|upper}


It is also possible to replace values with complex regular expressions.

Example:
{$CLIENT_VERSION_1|regex_replace:"/(.*)(\[.*)/":"$1"}


All options to change a variable value, are documentated here: %s
All possible functions are documentated here: %s"; +$lang['addonchdescdesc00'] = 'Variable Name'; +$lang['addonchdescdesc01'] = 'Collected active time since ever (all time).'; +$lang['addonchdescdesc02'] = 'Collected active time in the last month.'; +$lang['addonchdescdesc03'] = 'Collected active time in the last week.'; +$lang['addonchdescdesc04'] = 'Collected online time since ever (all time).'; +$lang['addonchdescdesc05'] = 'Collected online time in the last month.'; +$lang['addonchdescdesc06'] = 'Collected online time in the last week.'; +$lang['addonchdescdesc07'] = 'Collected idle time since ever (all time).'; +$lang['addonchdescdesc08'] = 'Collected idle time in the last month.'; +$lang['addonchdescdesc09'] = 'Collected idle time in the last week.'; +$lang['addonchdescdesc10'] = 'Channel database ID, where the user is currently in.'; +$lang['addonchdescdesc11'] = 'Channel name, where the user is currently in.'; +$lang['addonchdescdesc12'] = 'The variable ending part of the URL of the Group Icon. Set the URL of your Ranksystem in front.'; +$lang['addonchdescdesc13'] = 'Group database ID of the current rank group.'; +$lang['addonchdescdesc14'] = 'Group name of the current rank group.'; +$lang['addonchdescdesc15'] = 'Time, when the user got the last rank up.'; +$lang['addonchdescdesc16'] = 'Needed time, to the next rank up.'; +$lang['addonchdescdesc17'] = 'Current rank position of all user.'; +$lang['addonchdescdesc18'] = 'Country Code by the ip address of the TeamSpeak user.'; +$lang['addonchdescdesc20'] = 'Time, when the user has the first connect to the TS.'; +$lang['addonchdescdesc22'] = 'Client database ID.'; +$lang['addonchdescdesc23'] = 'Client description on the TS server.'; +$lang['addonchdescdesc24'] = 'Time, when the user was last seen on the TS server.'; +$lang['addonchdescdesc25'] = 'Current/last nickname of the client.'; +$lang['addonchdescdesc26'] = "Status of the user. Output 'Online' or 'Offline'"; +$lang['addonchdescdesc27'] = 'Platform Code of the TeamSpeak user.'; +$lang['addonchdescdesc28'] = 'Count of the connections to the server.'; +$lang['addonchdescdesc29'] = 'Public unique Client ID.'; +$lang['addonchdescdesc30'] = 'Client Version of the TeamSpeak user.'; +$lang['addonchdescdesc31'] = 'Current time on updating the channel description.'; +$lang['addonchdelay'] = 'Delay'; +$lang['addonchdelaydesc'] = 'Define a delay, how often the channel description should be updated.

Unless the result (description) has changed, it will not be updated even if the defined time span is exceeded.

Use the variable %LAST_UPDATE_TIME% to force the update when the delay (time span) is reached.'; +$lang['addonchmo'] = 'Mode'; +$lang['addonchmo1'] = 'Top Week - active time'; +$lang['addonchmo2'] = 'Top Week - online time'; +$lang['addonchmo3'] = 'Top Month - active time'; +$lang['addonchmo4'] = 'Top Month - online time'; +$lang['addonchmo5'] = 'Top All Time - active time'; +$lang['addonchmo6'] = 'Top All Time - online time'; +$lang['addonchmodesc'] = 'Select a mode, which toplist should be set to the channel.

You can choose from a period of a week, a month or since ever (all time).
You can also choose by active or online time.'; +$lang['addonchtopl'] = 'Channelinfo Toplist'; +$lang['addonchtopldesc'] = "With the 'Channelinfo Toplist' function you always have the current list of top user directly on your TeamSpeak server. It writes the current list in a channel description.

You define, which channel should be used and which statistics should be shown (monthly or weekly and active or online time).

The description is fully customizeable with variables.

TS Permission needed:
b_channel_modify_description"; +$lang['asc'] = 'ĐżĐŸ ĐČĐŸĐ·Ń€Đ°ŃŃ‚Đ°ĐœĐžŃŽ'; +$lang['autooff'] = 'autostart is deactivated'; +$lang['botoff'] = 'Đ‘ĐŸŃ‚ ĐŸŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”Đœ.'; +$lang['boton'] = 'Đ‘ĐŸŃ‚ Đ·Đ°ĐżŃƒŃ‰Đ”Đœ...'; +$lang['brute'] = 'ХлОшĐșĐŸĐŒ ĐŒĐœĐŸĐłĐŸ ĐœĐ”ĐșĐŸŃ€Ń€Đ”ĐșŃ‚ĐœŃ‹Ń… ĐżĐŸĐżŃ‹Ń‚ĐŸĐș ĐČŃ…ĐŸĐŽĐ° ĐČ ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс. Вы былО Đ·Đ°Đ±Đ»ĐŸĐșĐžŃ€ĐŸĐČĐ°ĐœŃ‹ ĐœĐ° 300 сДĐșŃƒĐœĐŽ! ĐŸĐŸŃĐ»Đ”ĐŽĐœĐžĐč ŃƒŃĐżĐ”ŃˆĐœŃ‹Đč ĐČŃ…ĐŸĐŽ был ĐČŃ‹ĐżĐŸĐ»Đ”Đœ с IP %s.'; +$lang['brute1'] = 'ĐžĐ±ĐœĐ°Ń€ŃƒĐ¶Đ”ĐœĐ° ĐœĐ”ĐČĐ”Ń€ĐœĐ°Ń ĐżĐŸĐżŃ‹Ń‚Đșа ĐČŃ…ĐŸĐŽĐ° ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ с IP %s Đž ĐžĐŒĐ”ĐœĐ”ĐŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń %s.'; +$lang['brute2'] = 'ĐŁŃĐżĐ”ŃˆĐœŃ‹Đč ĐČŃ…ĐŸĐŽ ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ с IP %s.'; +$lang['changedbid'] = 'ĐŁ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń %s (UID: %s) ĐžĐ·ĐŒĐ”ĐœĐžĐ»ŃŃ TeamSpeak DBID (%s). ĐžĐ±ĐœĐŸĐČĐ»ŃĐ”ĐŒ старыĐč Client-DBID (%s) Đž сбрасыĐČĐ°Đ”ĐŒ Đ”ĐŒŃƒ ŃŃ‚Đ°Ń€ĐŸĐ” ĐČŃ€Đ”ĐŒŃ!'; +$lang['chkfileperm'] = 'ĐĐ”ĐČĐ”Ń€ĐœŃ‹Đ” проĐČОлДгОО фаĐčла ОлО папĐșĐž!
Đ’Đ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ŃƒŃŃ‚Đ°ĐœĐŸĐČоть праĐČĐžĐ»ŃŒĐœĐŸĐłĐŸ ĐČĐ»Đ°ĐŽĐ”Đ»ŃŒŃ†Đ° фаĐčĐ»ĐŸĐČ Đž ĐżĐ°ĐżĐŸĐș!

ВлаЎДлДц ĐČсДх фаĐčĐ»ĐŸĐČ Đž ĐżĐ°ĐżĐŸĐș ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐŽĐŸĐ»Đ¶Đ”Đœ Đ±Ń‹Ń‚ŃŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Đ”ĐŒ, ĐżĐŸĐŽ ĐșĐŸŃ‚ĐŸŃ€Ń‹ĐŒ Đ·Đ°ĐżŃƒŃ‰Đ”Đœ ĐČДб-сДрĐČДр (ĐżŃ€ĐžĐŒ.: www-data).
На Linux ŃĐžŃŃ‚Đ”ĐŒĐ°Ń… ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐŸĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”Đ” (ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ ĐČ Ń‚Đ”Ń€ĐŒĐžĐœĐ°Đ»Đ”):
%sйаĐș жД ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹ проĐČОлДгОО ĐŽĐŸŃŃ‚ŃƒĐżĐ°, Ń‡Ń‚ĐŸ бы ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐČДб-сДрĐČДра ĐŒĐŸĐł чотать, посать Đž ĐžŃĐżĐŸĐ»ĐœŃŃ‚ŃŒ фаĐčлы.
На Linux ŃĐžŃŃ‚Đ”ĐŒĐ°Ń… ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐŸĐŽĐ”Đ»Đ°Ń‚ŃŒ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”Đ” (ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ ĐČ Ń‚Đ”Ń€ĐŒĐžĐœĐ°Đ»Đ”):
%sĐĄĐżĐžŃĐŸĐș фаĐčĐ»ĐŸĐČ/ĐżĐ°ĐżĐŸĐș:
%s'; +$lang['chkphpcmd'] = "ĐĐ”ĐČĐ”Ń€ĐœĐŸ ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐ° ĐșĐŸĐŒĐ°ĐœĐŽĐ° запусĐșа PHP ĐČ ĐșĐŸĐœŃ„ĐžĐłĐ” %s! PHP ĐœĐ” ĐœĐ°ĐčĐŽĐ”Đœ ĐżĐŸ уĐșĐ°Đ·Đ°ĐœĐœĐŸĐŒŃƒ путо!
ОтĐșŃ€ĐŸĐčтД уĐșĐ°Đ·Đ°ĐœĐœŃ‹Đč фаĐčĐ» Đž ĐżŃ€ĐŸĐżĐžŃˆĐžŃ‚Đ” ĐČĐ”Ń€ĐœŃ‹Đč путь ĐŽĐŸ Đ±ĐžĐœĐ°Ń€ĐœĐžĐșа PHP!

ĐĄĐ”Đčчас ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐŸ %s:
%s
Đ Đ”Đ·ŃƒĐ»ŃŒŃ‚Đ°Ń‚ ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐžŃ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹:%sВы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżŃ€ĐŸŃ‚Đ”ŃŃ‚ĐžŃ€ĐŸĐČать ĐČашу ĐșĐŸĐŒĐ°ĐœĐŽŃƒ запусĐșа чДрДз Ń‚Đ”Ń€ĐŒĐžĐœĐ°Đ»ŃŒĐœŃ‹Đč ĐŽĐŸŃŃ‚ŃƒĐż ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€ '-v'.
ĐŸŃ€ĐžĐŒĐ”Ń€: %sĐ Đ”Đ·ŃƒĐ»ŃŒŃ‚Đ°Ń‚ĐŸĐŒ ĐŽĐŸĐ»Đ¶ĐœĐ° Đ±Ń‹Ń‚ŃŒ ĐČĐ”Ń€ŃĐžŃ PHP!"; +$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['cleanno'] = 'ĐĐ” ĐœĐ°ĐčĐŽĐ”ĐœŃ‹ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО, ĐżĐŸĐŽĐ»Đ”Đ¶Đ°Ń‰ĐžĐ” ŃƒĐŽĐ°Đ»Đ”ĐœĐžŃŽ Оз базы ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['cleanp'] = 'ĐŸĐ”Ń€ĐžĐŸĐŽ ĐŸŃ‡ĐžŃŃ‚ĐșĐž базы ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['cleanpdesc'] = 'ĐŁĐșажОтД ĐČŃ€Đ”ĐŒŃ, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” ĐŽĐŸĐ»Đ¶ĐœĐŸ ĐżŃ€ĐŸĐčто пДрДЎ ĐŸŃ‡Đ”Ń€Đ”ĐŽĐœĐŸĐč ĐŸŃ‡ĐžŃŃ‚ĐșĐŸĐč ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč.

ĐŁŃŃ‚Đ°ĐœĐ°ĐČлОĐČĐ°Đ”Ń‚ŃŃ ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń….

Đ”Đ»Ń Đ±ĐŸĐ»ŃŒŃˆĐžŃ… баз ĐŽĐ°ĐœĐœŃ‹Ń… рДĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ĐŸĐŽĐžĐœ раз ĐČ ĐŽĐ”ĐœŃŒ.'; +$lang['cleanrs'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ: %s'; +$lang['cleants'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐœĐ°ĐčĐŽĐ”ĐœĐŸ ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… TeamSpeak: %s (at %s)'; +$lang['day'] = '%s ĐŽĐ”ĐœŃŒ'; +$lang['days'] = '%s ĐŽĐœŃ'; +$lang['dbconerr'] = 'ĐžŃˆĐžĐ±Đșа ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń…: '; +$lang['desc'] = 'ĐżĐŸ ŃƒĐ±Ń‹ĐČĐ°ĐœĐžŃŽ'; +$lang['descr'] = 'ĐžĐżĐžŃĐ°ĐœĐžĐ”'; +$lang['duration'] = 'ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒ'; +$lang['errcsrf'] = 'Ключ CSRF ĐœĐ”ĐČĐ”Ń€Đ”Đœ ОлО ОстДĐș ŃŃ€ĐŸĐș Đ”ĐłĐŸ ĐŽĐ”ĐčстĐČоя (ĐŸŃˆĐžĐ±Đșа ĐżŃ€ĐŸĐČДрĐșĐž Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚Đž)! ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚Đ” эту ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐœĐŸĐČа. ЕслО ĐČы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” эту ĐŸŃˆĐžĐ±Đșу ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ раз, ŃƒĐŽĐ°Đ»ĐžŃ‚Đ” ĐșуĐșĐž с ŃŃ‚ĐŸĐłĐŸ саĐčта ĐČ ĐČĐ°ŃˆĐ”ĐŒ Đ±Ń€Đ°ŃƒĐ·Đ”Ń€Đ” Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐœĐŸĐČа!'; +$lang['errgrpid'] = 'ĐžŃˆĐžĐ±Đșа про ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœĐžĐž ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐč ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…. ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, оспраĐČŃŒŃ‚Đ” ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒŃ‹ Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ŃĐœĐŸĐČа!'; +$lang['errgrplist'] = 'ĐžŃˆĐžĐ±Đșа про ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžĐž спОсĐșа групп сДрĐČДра: '; +$lang['errlogin'] = 'ĐĐ”ĐČĐ”Ń€ĐœĐŸ ĐČĐČĐ”ĐŽŃ‘Đœ Đ»ĐŸĐłĐžĐœ ОлО ĐżĐ°Ń€ĐŸĐ»ŃŒ! ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐŸĐČŃ‚ĐŸŃ€ĐžŃ‚Đ” ĐČĐČĐŸĐŽ ĐŽĐ°ĐœĐœŃ‹Ń… Đ·Đ°ĐœĐŸĐČĐŸ.'; +$lang['errlogin2'] = 'Защота ĐŸŃ‚ ĐżĐ”Ń€Đ”Đ±ĐŸŃ€Đ°: ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ĐżĐŸĐČŃ‚ĐŸŃ€ĐžŃ‚ŃŒ чДрДз %s сДĐșŃƒĐœĐŽ!'; +$lang['errlogin3'] = 'Защота ĐŸŃ‚ ĐżĐ”Ń€Đ”Đ±ĐŸŃ€Đ°: От ĐČас ĐżĐŸŃŃ‚ŃƒĐżĐ°Đ”Ń‚ слОшĐșĐŸĐŒ ĐŒĐœĐŸĐłĐŸ Đ·Đ°ĐżŃ€ĐŸŃĐŸĐČ. Вы былО Đ·Đ°Đ±Đ°ĐœĐ”ĐœŃ‹ ĐœĐ° 300 сДĐșŃƒĐœĐŽ!'; +$lang['error'] = 'ĐžŃˆĐžĐ±Đșа '; +$lang['errorts3'] = 'ĐžŃˆĐžĐ±Đșа TS3: '; +$lang['errperm'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ ĐœĐ°Đ»ĐžŃ‡ĐžĐž проĐČОлДгОĐč ĐœĐ° Đ·Đ°ĐżĐžŃŃŒ ĐČ ĐżĐ°ĐżĐșу '%s'!"; +$lang['errphp'] = '%1$s ĐŸŃ‚ŃŃƒŃ‚ŃŃ‚ĐČŃƒĐ”Ń‚. ĐĐ”ĐČĐŸĐ·ĐŒĐŸĐ¶ĐœĐŸ ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ŃŒ бДз ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐœĐŸĐłĐŸ %1$s!'; +$lang['errseltime'] = 'ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČĐČДЎОтД ĐČŃ€Đ”ĐŒŃ, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐœĐ°Ń‡ĐžŃĐ»ĐžŃ‚ŃŒ.'; +$lang['errselusr'] = 'ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, уĐșажОтД ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń!'; +$lang['errukwn'] = 'ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐœĐ”ĐžĐ·ĐČĐ”ŃŃ‚ĐœĐ°Ń ĐŸŃˆĐžĐ±Đșа!'; +$lang['factor'] = 'ĐșĐŸŃŃ„Ń„ĐžŃ†ĐžĐ”ĐœŃ‚'; +$lang['highest'] = 'Đ”ĐŸŃŃ‚ĐžĐłĐœŃƒŃ‚ ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœŃ‹Đč Ń€Đ°ĐœĐł'; +$lang['imprint'] = 'Imprint'; +$lang['input'] = 'Input Value'; +$lang['insec'] = 'ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń…'; +$lang['install'] = 'ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșа'; +$lang['instdb'] = 'ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșа базы ĐŽĐ°ĐœĐœŃ‹Ń…'; +$lang['instdbsuc'] = 'База ĐŽĐ°ĐœĐœŃ‹Ń… %s ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸĐ·ĐŽĐ°ĐœĐ°.'; +$lang['insterr1'] = 'ВНИМАНИЕ: ĐŁĐșĐ°Đ·Đ°ĐœĐœĐ°Ń база ĐŽĐ°ĐœĐœŃ‹Ń… "%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 740 (В windows 'ĐŸĐŸĐ»ĐœŃ‹Đč ĐŽĐŸŃŃ‚ŃƒĐż') Đž ĐżĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД Đ·Đ°ĐœĐŸĐČĐŸ."; +$lang['isntwicfg2'] = 'ĐšĐŸĐœŃ„ĐžĐłŃƒŃ€ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса'; +$lang['isntwichm'] = "ОтсутстĐČуют праĐČа ĐœĐ° Đ·Đ°ĐżĐžŃŃŒ ĐČ ĐżĐ°ĐżĐșу \"%s\". ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ŃƒŃŃ‚Đ°ĐœĐŸĐČОтД ĐœĐ° эту папĐșу праĐČа chmod 740 (В windows 'ĐżĐŸĐ»ĐœŃ‹Đč ĐŽĐŸŃŃ‚ŃƒĐż') Đž ĐżĐŸĐČŃ‚ĐŸŃ€ĐžŃ‚Đ” ŃŃ‚ĐŸŃ‚ этап Đ·Đ°ĐœĐŸĐČĐŸ."; +$lang['isntwiconf'] = 'Đ—Đ°Ń‚Đ”ĐŒ ĐŸŃ‚ĐșŃ€ĐŸĐčтД ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ %s ĐŽĐ»Ń ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ!'; +$lang['isntwidbhost'] = 'АЎрДс:'; +$lang['isntwidbhostdesc'] = 'АЎрДс сДрĐČДра базы ĐŽĐ°ĐœĐœŃ‹Ń…
(IP ОлО ĐŽĐŸĐŒĐ”Đœ)'; +$lang['isntwidbmsg'] = 'ĐžŃˆĐžĐ±Đșа базы ĐŽĐ°ĐœĐœŃ‹Ń…: '; +$lang['isntwidbname'] = 'Đ˜ĐŒŃ:'; +$lang['isntwidbnamedesc'] = 'ĐĐ°Đ·ĐČĐ°ĐœĐžĐ” базы ĐŽĐ°ĐœĐœŃ‹Ń…'; +$lang['isntwidbpass'] = 'ĐŸĐ°Ń€ĐŸĐ»ŃŒ:'; +$lang['isntwidbpassdesc'] = 'ĐŸĐ°Ń€ĐŸĐ»ŃŒ ĐŽĐ»Ń ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń…'; +$lang['isntwidbtype'] = 'йОп базы ĐŽĐ°ĐœĐœŃ‹Ń…:'; +$lang['isntwidbtypedesc'] = 'йОп базы ĐŽĐ°ĐœĐœŃ‹Ń…, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐŽĐŸĐ»Đ¶ĐœĐ° ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ.

ĐŁŃŃ‚Đ°ĐœĐ°ĐČлОĐČать PDO ĐŽĐ»Ń PHP ĐœĐ” Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ŃŃ.
Đ”Đ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž Đž ŃĐžŃŃ‚Đ”ĐŒĐœŃ‹Ń… Ń‚Ń€Đ”Đ±ĐŸĐČĐ°ĐœĐžĐč ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐżĐŸŃĐ”Ń‚ĐžŃ‚Đ” ŃĐżĐ”Ń†ĐžĐ°Đ»ŃŒĐœŃƒŃŽ ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ:
%s'; +$lang['isntwidbusr'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ:'; +$lang['isntwidbusrdesc'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ с ĐŽĐŸŃŃ‚ŃƒĐżĐŸĐŒ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń…'; +$lang['isntwidel'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ŃƒĐŽĐ°Đ»ĐžŃ‚Đ” фаĐčĐ» 'install.php' с ĐČДб-сДрĐČДра ĐČ Ń†Đ”Đ»ŃŃ… Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚Đž!"; +$lang['isntwiusr'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸĐ·ĐŽĐ°Đœ.'; +$lang['isntwiusr2'] = 'ĐŸĐŸĐ·ĐŽŃ€Đ°ĐČĐ»ŃĐ”ĐŒ! ĐŁŃŃ‚Đ°ĐœĐŸĐČĐșа ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ŃƒŃĐżĐ”ŃˆĐœĐŸ заĐČĐ”Ń€ŃˆĐ”ĐœĐ°.'; +$lang['isntwiusrcr'] = 'ĐĄĐŸĐ·ĐŽĐ°ĐœĐžĐ” аĐșĐșĐ°ŃƒĐœŃ‚Đ° ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°'; +$lang['isntwiusrd'] = 'ĐĄĐŸĐ·ĐŽĐ°ĐœĐžĐ” ĐŽĐ°ĐœĐœŃ‹Ń… аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžĐž ĐŽĐ»Ń ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčсу ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['isntwiusrdesc'] = 'ВĐČДЎОтД ĐžĐŒŃ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń Đž ĐżĐ°Ń€ĐŸĐ»ŃŒ ĐŽĐ»Ń ĐŽĐŸŃŃ‚ŃƒĐżĐ° ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ. ĐĄ ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ĐČы ŃĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°ŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['isntwiusrh'] = 'Đ”ĐŸŃŃ‚ŃƒĐż - ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ'; +$lang['listacsg'] = 'йДĐșущая группа Ń€Đ°ĐœĐłĐ°'; +$lang['listcldbid'] = 'ID ĐșĐ»ĐžĐ”ĐœŃ‚Đ° ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…'; +$lang['listexcept'] = 'ĐĐ”Ń‚, ОсĐșĐ»ŃŽŃ‡Đ”Đœ'; +$lang['listgrps'] = 'йДĐșущая группа ĐœĐ°Ń‡ĐžĐœĐ°Ń с'; +$lang['listnat'] = 'country'; +$lang['listnick'] = 'НоĐșĐœĐ”ĐčĐŒ'; +$lang['listnxsg'] = 'ĐĄĐ»Đ”ĐŽŃƒŃŽŃ‰Đ°Ń группа Ń€Đ°ĐœĐłĐ°'; +$lang['listnxup'] = 'ĐĄĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč Ń€Đ°ĐœĐł чДрДз'; +$lang['listpla'] = 'platform'; +$lang['listrank'] = 'Đ Đ°ĐœĐł'; +$lang['listseen'] = 'ĐŸĐŸŃĐ»Đ”ĐŽĐœŃŃ аĐșтоĐČĐœĐŸŃŃ‚ŃŒ'; +$lang['listsuma'] = 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž'; +$lang['listsumi'] = 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ ĐżŃ€ĐŸŃŃ‚ĐŸŃ'; +$lang['listsumo'] = 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ'; +$lang['listuid'] = 'ĐŁĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID ĐșĐ»ĐžĐ”ĐœŃ‚Đ°(UID)'; +$lang['listver'] = 'client version'; +$lang['login'] = 'АĐČŃ‚ĐŸŃ€ĐžĐ·ĐŸĐČаться'; +$lang['module_disabled'] = 'This module is deactivated.'; +$lang['msg0001'] = 'Đ—Đ°ĐżŃƒŃ‰Đ”ĐœĐ° ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐČДрсОО: %s'; +$lang['msg0002'] = 'ĐĄĐżĐžŃĐŸĐș ĐŽĐŸŃŃ‚ŃƒĐżĐœŃ‹Ń… ĐșĐŸĐŒĐ°ĐœĐŽ ĐŒĐŸĐ¶ĐœĐŸ ĐœĐ°Đčто Đ·ĐŽĐ”ŃŃŒ[URL]https://ts-ranksystem.com/#commands[/URL]'; +$lang['msg0003'] = 'ĐŁ ĐČас ĐœĐ”Ń‚ ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐŽĐ°ĐœĐœĐŸĐč ĐșĐŸĐŒĐ°ĐœĐŽĐ”!'; +$lang['msg0004'] = 'ĐšĐ»ĐžĐ”ĐœŃ‚ %s (%s) ĐČыĐșлючОл ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['msg0005'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐČыĐșĐ»ŃŽŃ‡Đ°Đ”Ń‚ŃŃ... ĐŸŃ€ŃĐŒĐŸ сДĐčчас!'; +$lang['msg0006'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃĐșĐ°Đ”Ń‚ŃŃ...'; +$lang['msg0007'] = 'ĐšĐ»ĐžĐ”ĐœŃ‚ %s (%s) %s ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['msg0008'] = 'ĐŸŃ€ĐŸĐČДрĐșа ĐœĐ° ĐœĐ°Đ»ĐžŃ‡ĐžĐ” ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč заĐČĐ”Ń€ŃˆĐ”ĐœĐ°. ЕслО ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ĐŽĐŸŃŃ‚ŃƒĐżĐœĐŸ - ĐŸĐœĐŸ ĐœĐ°Ń‡ĐœĐ”Ń‚ŃŃ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž.'; +$lang['msg0009'] = 'ĐĐ°Ń‡Đ°Đ»Đ°ŃŃŒ ĐŸŃ‡ĐžŃŃ‚Đșа ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒŃĐșĐŸĐč базы ĐŽĐ°ĐœĐœŃ‹Ń….'; +$lang['msg0010'] = 'Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД ĐșĐŸĐŒĐ°ĐœĐŽŃƒ !log Ń‡Ń‚ĐŸ бы ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ Đ±ĐŸĐ»ŃŒŃˆĐ” сĐČĐ”ĐŽĐ”ĐœĐžĐč.'; +$lang['msg0011'] = 'ĐžŃ‡ĐžŃ‰Đ”Đœ Đșэш групп. ĐĐ°Ń‡ĐžĐœĐ°ŃŽ Đ·Đ°ĐłŃ€ŃƒĐ·Đșу групп Đž ĐžĐșĐŸĐœĐŸĐș...'; +$lang['noentry'] = 'ЗапОсДĐč ĐœĐ” ĐœĐ°ĐčĐŽĐ”ĐœĐŸ..'; +$lang['pass'] = 'ĐŸĐ°Ń€ĐŸĐ»ŃŒ'; +$lang['pass2'] = 'Đ˜Đ·ĐŒĐ”ĐœĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ'; +$lang['pass3'] = 'СтарыĐč ĐżĐ°Ń€ĐŸĐ»ŃŒ'; +$lang['pass4'] = 'ĐĐŸĐČыĐč ĐżĐ°Ń€ĐŸĐ»ŃŒ'; +$lang['pass5'] = 'ЗабылО ĐżĐ°Ń€ĐŸĐ»ŃŒ?'; +$lang['permission'] = 'Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžŃ'; +$lang['privacy'] = 'Privacy Policy'; +$lang['repeat'] = 'ĐŸĐŸĐČŃ‚ĐŸŃ€ ĐœĐŸĐČĐŸĐłĐŸ ĐżĐ°Ń€ĐŸĐ»Ń'; +$lang['resettime'] = 'ХбрасыĐČĐ°Đ”ĐŒ ĐŸĐœĐ»Đ°ĐčĐœ Đž ĐČŃ€Đ”ĐŒŃ ĐżŃ€ĐŸŃŃ‚ĐŸŃ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń %s (UID: %s; DBID %s), таĐș ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ был ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč.'; +$lang['sccupcount'] = '%s сДĐșŃƒĐœĐŽ аĐșтоĐČĐœĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž Đ±Ń‹Đ»ĐŸ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐŸ ĐșĐ»ĐžĐ”ĐœŃ‚Ńƒ с ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹ĐŒ ID (UID) %s. Đ‘ĐŸĐ»ŃŒŃˆĐ” ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŒĐŸĐ¶ĐœĐŸ ĐœĐ°Đčто ĐČ Đ»ĐŸĐł-фаĐčлД ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['sccupcount2'] = 'ĐŁŃĐżĐ”ŃˆĐœĐŸ ĐŽĐŸĐ±Đ°ĐČĐ»Đ”ĐœĐŸ %s сДĐșŃƒĐœĐŽ аĐșтоĐČĐœĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐșĐ»ĐžĐ”ĐœŃ‚Ńƒ с ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹ĐŒ ID (UID) %s ĐżĐŸ Đ·Đ°ĐżŃ€ĐŸŃŃƒ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['setontime'] = 'Đ”ĐŸĐ±Đ°ĐČоть ĐČŃ€Đ”ĐŒŃ'; +$lang['setontime2'] = 'ĐžŃ‚ĐœŃŃ‚ŃŒ ĐČŃ€Đ”ĐŒŃ'; +$lang['setontimedesc'] = "Đ”Đ°ĐœĐœĐ°Ń Ń„ŃƒĐœĐșцоя ĐœĐ°Ń‡ĐžŃĐ»ŃĐ”Ń‚ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœĐ° с ŃƒŃ‡Ń‘Ń‚ĐŸĐŒ ĐżŃ€ĐŸŃˆĐ»Ń‹Ń… ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐžĐč. От ŃŃ‚ĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž таĐșжД Đ±ŃƒĐŽĐ”Ń‚ ĐČĐżĐŸŃĐ»Đ”ĐŽŃŃ‚ĐČОО ŃŃ„ĐŸŃ€ĐŒĐžŃ€ĐŸĐČĐ°Đœ Ń€Đ°ĐœĐł ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń.

ĐŸĐŸ ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐžŃŽ Đ·Đ°ĐżŃ€ĐŸŃĐ° ĐČĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ Đ±ŃƒĐŽĐ”Ń‚ учотыĐČаться про ĐČыЎачД Ń€Đ°ĐœĐłĐ° Đž ĐŽĐŸĐ»Đ¶ĐœĐŸ ĐżĐŸĐŽĐ”ĐčстĐČĐŸĐČать ĐŒĐłĐœĐŸĐČĐ”ĐœĐœĐŸ (ĐœĐ”ĐŒĐœĐŸĐłĐŸ ĐŽĐŸĐ»ŃŒŃˆĐ” про ĐČĐșĐ»ŃŽŃ‡Đ”ĐœĐœĐŸĐŒ SlowMode'Đ”)."; +$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_pib'] = 'ПоБ'; +$lang['size_tib'] = 'боБ'; +$lang['size_yib'] = 'ЙоБ'; +$lang['size_zib'] = 'ЗоБ'; +$lang['stag0001'] = 'ĐœĐ”ĐœĐ”ĐŽĐ¶Đ”Ń€ групп'; +$lang['stag0001desc'] = "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ Ń„ŃƒĐœĐșцою 'ĐœĐ”ĐœĐ”ĐŽĐ¶Đ”Ń€ групп' ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐŒĐŸĐłŃƒŃ‚ ŃĐ°ĐŒĐž упраĐČĐ»ŃŃ‚ŃŒ сĐČĐŸĐžĐŒĐž ĐłŃ€ŃƒĐżĐżĐ°ĐŒĐž сДрĐČДра (ĐżŃ€ĐžĐŒĐ”Ń€: ĐžĐłŃ€ĐŸĐČыД-, ĐżĐŸ ŃŃ‚Ń€Đ°ĐœĐ”-, ĐżĐŸĐ» Đž т.ĐŽ.).

ĐŸĐŸŃĐ»Đ” аĐșтоĐČацоо ŃŃ‚ĐŸĐč Ń„ŃƒĐœĐșцоо ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” статостоĐșĐž ĐżĐŸŃĐČотся ŃĐŸĐŸŃ‚ĐČДтстĐČующоĐč ĐżŃƒĐœĐșт ĐŒĐ”ĐœŃŽ.

Вы ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ŃĐ”Ń‚Đ”, ĐșаĐșОД группы ĐŽĐŸŃŃ‚ŃƒĐżĐœŃ‹ ĐŽĐ»Ń ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐž.
Вы таĐș жД ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐŸĐłŃ€Đ°ĐœĐžŃ‡ĐžŃ‚ŃŒ ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐ” ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ групп, ĐŽĐŸŃŃ‚ŃƒĐżĐœĐŸĐ” ĐŽĐ»Ń ĐŸĐŽĐœĐŸĐČŃ€Đ”ĐŒĐ”ĐœĐœĐŸĐč ŃƒŃŃ‚Đ°ĐœĐŸĐČĐșĐž."; +$lang['stag0002'] = 'Đ Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐœŃ‹Đ” группы'; +$lang['stag0003'] = 'ВыбДрОтД группы сДрĐČДра, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ŃĐŒĐŸĐ¶Đ”Ń‚ ĐœĐ°Đ·ĐœĐ°Ń‡ĐžŃ‚ŃŒ сДбД ŃĐ°ĐŒ.'; +$lang['stag0004'] = 'Đ›ĐžĐŒĐžŃ‚ ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČа групп'; +$lang['stag0005'] = 'МаĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐ” ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ групп, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐŒĐŸĐ¶Đ”Ń‚ ŃƒŃŃ‚Đ°ĐœĐŸĐČоть сДбД ĐŸĐŽĐœĐŸĐČŃ€Đ”ĐŒĐ”ĐœĐœĐŸ.'; +$lang['stag0006'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ĐžĐ»Đ° ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ UIDĐŸĐČ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… Đș сДрĐČĐ”Ń€Ńƒ с ĐČĐ°ŃˆĐžĐŒ IP. ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста %sĐœĐ°Đ¶ĐŒĐžŃ‚Đ” сюЮа%s Ń‡Ń‚ĐŸ бы ĐżĐ”Ń€Đ”ĐżŃ€ĐŸĐČĐ”Ń€ĐžŃ‚ŃŒ.'; +$lang['stag0007'] = 'ĐŸŃ€Đ”Đ¶ĐŽĐ” Ń‡Đ”ĐŒ ĐČĐœĐŸŃĐžŃ‚ŃŒ ĐœĐŸĐČыД ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐżĐŸĐŽĐŸĐ¶ĐŽĐžŃ‚Đ” ĐżĐŸĐșа ĐČашО ĐżŃ€Đ”ĐŽŃ‹ĐŽŃƒŃ‰ĐžĐ” ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐČступят ĐČ ŃĐžĐ»Ńƒ...'; +$lang['stag0008'] = 'Đ˜Đ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœŃ‹. ЧДрДз ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ сДĐșŃƒĐœĐŽ группы Đ±ŃƒĐŽŃƒŃ‚ ĐČŃ‹ĐŽĐ°ĐœŃ‹ ĐœĐ° сДрĐČДрД.'; +$lang['stag0009'] = 'Вы ĐœĐ” ĐŒĐŸĐ¶Đ”Ń‚Đ” ŃƒŃŃ‚Đ°ĐœĐŸĐČоть Đ±ĐŸĐ»Đ”Đ” %s групп(ы)!'; +$lang['stag0010'] = 'ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста ĐČыбДрОтД ĐșаĐș ĐŒĐžĐœĐžĐŒŃƒĐŒ ĐŸĐŽĐœŃƒ ĐœĐŸĐČую группу.'; +$lang['stag0011'] = 'ĐœĐŸĐ¶ĐœĐŸ ĐČŃ‹Đ±Ń€Đ°Ń‚ŃŒ ĐœĐ” Đ±ĐŸĐ»Đ”Đ”: '; +$lang['stag0012'] = 'ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ Đž ŃƒŃŃ‚Đ°ĐœĐŸĐČоть группы'; +$lang['stag0013'] = 'ĐĐŽĐŽĐŸĐœ ВКЛ/ВЫКЛ'; +$lang['stag0014'] = 'ĐŸĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ ĐČĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ (ВКЛ) ОлО ĐČыĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ (ВЫКЛ) Đ°ĐŽĐŽĐŸĐœ.

ЕслО ĐŸŃ‚ĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ Đ°ĐŽĐŽĐŸĐœ Ń‚ĐŸ ĐżŃƒĐœĐșт ĐŒĐ”ĐœŃŽ ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐœĐ°ĐČогацоо stats/ Đ±ŃƒĐŽĐ”Ń‚ сĐșрыт.'; +$lang['stag0015'] = 'Вы ĐœĐ” ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đș сДрĐČĐ”Ń€Ńƒ Đ»ĐžĐ±ĐŸ ĐČĐ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐŸĐčто ĐżŃ€ĐŸĐČДрĐșу! ĐĐ°Đ¶ĐŒĐžŃ‚Đ” %sĐ·ĐŽĐ”ŃŃŒ%s Ń‡Ń‚ĐŸ бы ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ŃŒ'; +$lang['stag0016'] = 'ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐ° ĐŽĐŸĐżĐŸĐ»ĐœĐžŃ‚Đ”Đ»ŃŒĐœĐ°Ń ĐżŃ€ĐŸĐČДрĐșа!'; +$lang['stag0017'] = 'ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” Đ·ĐŽĐ”ŃŃŒ ĐŽĐ»Ń ĐżŃ€ĐŸĐČДрĐșĐž...'; +$lang['stag0018'] = 'A list of excepted servergroups. If a user owns one of this servergroups, he will not be able to use the Add-on.'; +$lang['stag0019'] = 'You are excepted from this function because you own the servergroup: %s (ID: %s).'; +$lang['stag0020'] = 'Title'; +$lang['stag0021'] = 'Enter a title for this group. The title will be shown also on the statistics page.'; +$lang['stix0001'] = 'СтатостоĐșа сДрĐČДра'; +$lang['stix0002'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč Đ·Đ°Ń€Đ”ĐłĐžŃŃ‚Ń€ĐžŃ€ĐŸĐČĐ°ĐœĐŸ ĐČ Đ±Đ°Đ·Đ” ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['stix0003'] = 'ĐŸĐŸŃĐŒĐŸŃ‚Ń€Đ”Ń‚ŃŒ ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐ”Đ”'; +$lang['stix0004'] = 'ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐČсё ĐČŃ€Đ”ĐŒŃ'; +$lang['stix0005'] = 'Đ Đ”ĐčŃ‚ĐžĐœĐł за ĐČсё ĐČŃ€Đ”ĐŒŃ'; +$lang['stix0006'] = 'Đ Đ”ĐčŃ‚ĐžĐœĐł за ĐŒĐ”ŃŃŃ†'; +$lang['stix0007'] = 'Đ Đ”ĐčŃ‚ĐžĐœĐł за ĐœĐ”ĐŽĐ”Đ»ŃŽ'; +$lang['stix0008'] = 'АĐșтоĐČĐœĐŸŃŃ‚ŃŒ сДрĐČДра'; +$lang['stix0009'] = 'За ĐżĐŸŃĐ»Đ”ĐŽĐœĐžĐ” 7 ĐŽĐœĐ”Đč'; +$lang['stix0010'] = 'За ĐżĐŸŃĐ»Đ”ĐŽĐœĐžĐ” 30 ĐŽĐœĐ”Đč'; +$lang['stix0011'] = 'За ĐżĐŸŃĐ»Đ”ĐŽĐœĐžĐ” 24 часа'; +$lang['stix0012'] = 'ВыбДрОтД ĐżĐ”Ń€ĐžĐŸĐŽ'; +$lang['stix0013'] = 'За ĐŽĐ”ĐœŃŒ'; +$lang['stix0014'] = 'За ĐœĐ”ĐŽĐ”Đ»ŃŽ'; +$lang['stix0015'] = 'За ĐŒĐ”ŃŃŃ†'; +$lang['stix0016'] = 'ĐĄĐŸĐŸŃ‚ĐœĐŸŃˆ. аĐșтоĐČĐœ./AFK'; +$lang['stix0017'] = 'ВДрсОО ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ'; +$lang['stix0018'] = 'Đ Đ”ĐčŃ‚ĐžĐœĐł ĐżĐŸ ŃŃ‚Ń€Đ°ĐœĐ°ĐŒ'; +$lang['stix0019'] = 'ĐŸĐŸĐżŃƒĐ»ŃŃ€ĐœĐŸŃŃ‚ŃŒ ĐżĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒ'; +$lang['stix0020'] = 'йДĐșущая статостоĐșа'; +$lang['stix0023'] = 'Статус сДрĐČДра'; +$lang['stix0024'] = 'АĐșтоĐČĐ”Đœ'; +$lang['stix0025'] = 'ĐĐ”Đ°ĐșтоĐČĐ”Đœ'; +$lang['stix0026'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (ĐžĐœĐ»Đ°ĐčĐœ / МаĐșŃĐžĐŒŃƒĐŒ)'; +$lang['stix0027'] = 'ĐšĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐșĐ°ĐœĐ°Đ»ĐŸĐČ'; +$lang['stix0028'] = 'ĐĄŃ€Đ”ĐŽĐœĐžĐč ĐżĐžĐœĐł ĐœĐ° сДрĐČДрД'; +$lang['stix0029'] = 'Đ’ŃĐ”ĐłĐŸ баĐčт ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐŸ'; +$lang['stix0030'] = 'Đ’ŃĐ”ĐłĐŸ баĐčт ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ'; +$lang['stix0031'] = 'ХДрĐČДр ĐŸĐœĐ»Đ°ĐčĐœ'; +$lang['stix0032'] = 'ĐĐ°Ń…ĐŸĐŽĐžŃ‚ŃŃ ĐČ ĐŸŃ„Ń„Đ»Đ°ĐčĐœĐ”:'; +$lang['stix0033'] = '00 ĐŽĐœĐ”Đč, 00 Ń‡Đ°ŃĐŸĐČ, 00 ĐŒĐžĐœ., 00 сДĐș.'; +$lang['stix0034'] = 'ĐĄŃ€Đ”ĐŽĐœŃŃ ĐżĐŸŃ‚Đ”Ń€Ń паĐșĐ”Ń‚ĐŸĐČ'; +$lang['stix0035'] = 'Đ˜ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐŸ сДрĐČДрД'; +$lang['stix0036'] = 'ĐĐ°Đ·ĐČĐ°ĐœĐžĐ” сДрĐČДра'; +$lang['stix0037'] = 'АЎрДс сДрĐČДра (IP:ĐŸĐŸŃ€Ń‚)'; +$lang['stix0038'] = 'Đ—Đ°Ń‰ĐžŃ‰Đ”Đœ ĐżĐ°Ń€ĐŸĐ»Đ”ĐŒ'; +$lang['stix0039'] = 'ĐĐ”Ń‚ (ĐŸŃƒĐ±Đ»ĐžŃ‡ĐœŃ‹Đč сДрĐČДр)'; +$lang['stix0040'] = 'Да (ПроĐČĐ°Ń‚ĐœŃ‹Đč сДрĐČДр)'; +$lang['stix0041'] = 'ID сДрĐČДра'; +$lang['stix0042'] = 'ĐŸĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒĐ° сДрĐČДра'; +$lang['stix0043'] = 'Đ’Đ”Ń€ŃĐžŃ сДрĐČДра'; +$lang['stix0044'] = 'Дата ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ (ĐŽĐŽ/ĐŒĐŒ/гггг)'; +$lang['stix0045'] = 'Đ’ĐžĐŽĐžĐŒĐŸŃŃ‚ŃŒ ĐČ ĐłĐ»ĐŸĐ±Đ°Đ». спОсĐșĐ”'; +$lang['stix0046'] = 'ĐžŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Đ”Ń‚ŃŃ'; +$lang['stix0047'] = 'ĐĐ” ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Đ”Ń‚ŃŃ'; +$lang['stix0048'] = 'ĐĐ”Ń‚ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž...'; +$lang['stix0049'] = 'ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐŒĐ”ŃŃŃ†'; +$lang['stix0050'] = 'ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐœĐ”ĐŽĐ”Đ»ŃŽ'; +$lang['stix0051'] = 'ĐžŃˆĐžĐ±Đșа про ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžĐž Юаты'; +$lang['stix0052'] = 'ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Đ”'; +$lang['stix0053'] = 'АĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ (ĐČ ĐŽĐœŃŃ…)'; +$lang['stix0054'] = 'ĐĐ”Đ°ĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ (ĐČ ĐŽĐœŃŃ…)'; +$lang['stix0055'] = 'ĐŸĐœĐ»Đ°ĐčĐœ ĐČ Ń‚Đ”Ń‡Đ”ĐœĐžĐ” ŃŃƒŃ‚ĐŸĐș'; +$lang['stix0056'] = 'ĐŸĐœĐ»Đ°ĐčĐœ ĐČ Ń‚Đ”Ń‡Đ”ĐœĐžĐ” %s ĐŽĐœĐ”Đč'; +$lang['stix0059'] = 'ĐĄĐżĐžŃĐŸĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč'; +$lang['stix0060'] = 'ĐšĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ'; +$lang['stix0061'] = 'ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐČсД ĐČДрсОО'; +$lang['stix0062'] = 'ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐČсД ŃŃ‚Ń€Đ°ĐœŃ‹'; +$lang['stix0063'] = 'ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐČсД ĐżĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒŃ‹'; +$lang['stix0064'] = 'За 3 ĐŒĐ”ŃŃŃ†Đ°'; +$lang['stmy0001'] = 'ĐœĐŸŃ статостоĐșа'; +$lang['stmy0002'] = 'Đ Đ°ĐœĐł'; +$lang['stmy0003'] = 'ID ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…:'; +$lang['stmy0004'] = 'ĐŁĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID (UID):'; +$lang['stmy0005'] = 'Đ’ŃĐ”ĐłĐŸ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đș сДрĐČĐ”Ń€Ńƒ:'; +$lang['stmy0006'] = 'Đ—Đ°ĐœĐ”ŃŃ‘Đœ ĐČ Đ±Đ°Đ·Ńƒ статостоĐșĐž'; +$lang['stmy0007'] = 'ĐŸŃ€ĐŸĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ ĐœĐ° сДрĐČДрД:'; +$lang['stmy0008'] = 'ĐžĐœĐ»Đ°ĐčĐœ за %s ĐŽĐœĐ”Đč:'; +$lang['stmy0009'] = 'АĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ за %s ĐŽĐœĐ”Đč:'; +$lang['stmy0010'] = 'ĐŸĐŸĐ»ŃƒŃ‡Đ”ĐœĐŸ ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐč:'; +$lang['stmy0011'] = 'Đ”ĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐ” за ĐŸĐœĐ»Đ°ĐčĐœ ĐœĐ° сДрĐČДрД'; +$lang['stmy0012'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ›Đ”ĐłĐ”ĐœĐŽĐ°'; +$lang['stmy0013'] = 'Вы ĐżŃ€ĐŸĐČДлО ĐČ ĐŸĐœĐ»Đ°ĐčĐœĐ” ĐœĐ° сДрĐČДрД %s час (-а, -ĐŸĐČ).'; +$lang['stmy0014'] = 'ĐŸĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐ° ĐČся Ń†Đ”ĐżĐŸŃ‡Đșа'; +$lang['stmy0015'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ—ĐŸĐ»ĐŸŃ‚ĐŸ'; +$lang['stmy0016'] = '% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ "Đ›Đ”ĐłĐ”ĐœĐŽĐ°"'; +$lang['stmy0017'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: ĐĄĐ”Ń€Đ”Đ±Ń€ĐŸ'; +$lang['stmy0018'] = '% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ "Đ—ĐŸĐ»ĐŸŃ‚ĐŸ"'; +$lang['stmy0019'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ‘Ń€ĐŸĐœĐ·Đ°'; +$lang['stmy0020'] = '% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ "ĐĄĐ”Ń€Đ”Đ±Ń€ĐŸ"'; +$lang['stmy0021'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: БДз ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐč'; +$lang['stmy0022'] = '% заĐČĐ”Ń€ŃˆĐ”ĐœĐŸ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ŃƒŃ€ĐŸĐČĐœŃ "Đ‘Ń€ĐŸĐœĐ·Đ°"'; +$lang['stmy0023'] = 'Đ”ĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐ” за ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč'; +$lang['stmy0024'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ›Đ”ĐłĐ”ĐœĐŽĐ°'; +$lang['stmy0025'] = 'Вы ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ°Đ»ĐžŃŃŒ Đș сДрĐČĐ”Ń€Ńƒ: %s раз.'; +$lang['stmy0026'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ—ĐŸĐ»ĐŸŃ‚ĐŸ'; +$lang['stmy0027'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: ĐĄĐ”Ń€Đ”Đ±Ń€ĐŸ'; +$lang['stmy0028'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: Đ‘Ń€ĐŸĐœĐ·Đ°'; +$lang['stmy0029'] = 'ĐŁŃ€ĐŸĐČĐ”ĐœŃŒ: БДз ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐč'; +$lang['stmy0030'] = 'ĐŸŃ€ĐŸĐłŃ€Đ”ŃŃ ĐŽĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐłĐŸ Ń€Đ°ĐœĐłĐ° ĐœĐ° сДрĐČДрД'; +$lang['stmy0031'] = 'ОбщДД ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž'; +$lang['stmy0032'] = 'Last calculated:'; +$lang['stna0001'] = 'ĐĄŃ‚Ń€Đ°ĐœŃ‹'; +$lang['stna0002'] = 'статостоĐșа'; +$lang['stna0003'] = 'ĐšĐŸĐŽ ŃŃ‚Ń€Đ°ĐœŃ‹'; +$lang['stna0004'] = 'Đ·Đ°Ń€Đ”ĐłĐžŃŃ‚Ń€ĐžŃ€ĐŸĐČĐ°ĐœĐŸ'; +$lang['stna0005'] = 'ВДрсОО'; +$lang['stna0006'] = 'ĐŸĐ»Đ°Ń‚Ń„ĐŸŃ€ĐŒŃ‹'; +$lang['stna0007'] = 'ĐŸŃ€ĐŸŃ†Đ”ĐœŃ‚'; +$lang['stnv0001'] = 'Нашо ĐœĐŸĐČĐŸŃŃ‚Đž'; +$lang['stnv0002'] = 'ЗаĐșрыть'; +$lang['stnv0003'] = 'ĐžĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŸ ĐșĐ»ĐžĐ”ĐœŃ‚Đ”'; +$lang['stnv0004'] = 'Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД эту ĐŸĐżŃ†ĐžŃŽ ДслО Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐŸĐ±ĐœĐŸĐČоть ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŸ сДбД. К ĐżŃ€ĐžĐŒĐ”Ń€Ńƒ, ĐČы зашлО ĐżĐŸĐŽ ĐŽŃ€ŃƒĐłĐžĐŒ UIDĐŸĐŒ ĐœĐ° сДрĐČДр TeamSpeak Đž Ń…ĐŸŃ‚ĐžŃ‚Đ” уĐČĐžĐŽĐ”Ń‚ŃŒ Đ”ĐłĐŸ статостоĐșу.'; +$lang['stnv0005'] = 'Опцоя ŃŃ€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ Ń‚ĐŸĐ»ŃŒĐșĐŸ ДслО ĐČы ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đș сДрĐČĐ”Ń€Ńƒ TeamSpeak ĐČ ĐŽĐ°ĐœĐœŃ‹Đč ĐŒĐŸĐŒĐ”ĐœŃ‚.'; +$lang['stnv0006'] = 'ĐžĐ±ĐœĐŸĐČоть'; +$lang['stnv0016'] = 'ĐĐ”ĐŽĐŸŃŃ‚ŃƒĐżĐœĐŸ'; +$lang['stnv0017'] = 'Đ”Đ»Ń ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐŽĐ°ĐœĐœĐŸĐč ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČы ĐżĐŸĐŽĐșĐ»ŃŽŃ‡ĐžĐ»ĐžŃŃŒ Đș сДрĐČĐ”Ń€Ńƒ TeamSpeak'; +$lang['stnv0018'] = "ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐŸĐŽĐșĐ»ŃŽŃ‡ĐžŃ‚Đ”ŃŃŒ Đș TeamSpeak сДрĐČĐ”Ń€Ńƒ, а Đ·Đ°Ń‚Đ”ĐŒ ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” ŃĐžĐœŃŽŃŽ ĐșĐœĐŸĐżĐșу ''ĐžĐ±ĐœĐŸĐČоть'' ĐČ ĐżŃ€Đ°ĐČĐŸĐŒ ĐČĐ”Ń€Ń…ĐœĐ”ĐŒ углу Đ±Ń€Đ°ŃƒĐ·Đ”Ń€Đ°."; +$lang['stnv0019'] = 'СтатостоĐșа сДрĐČДра - ŃĐŸĐŽĐ”Ń€Đ¶ĐžĐŒĐŸĐ”'; +$lang['stnv0020'] = 'Эта ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ° ŃĐŸĐŽĐ”Ń€Đ¶ĐžŃ‚ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ĐŸ ĐČашДĐč статостоĐșĐ” Đž аĐșтоĐČĐœĐŸŃŃ‚Đž ĐœĐ° сДрĐČДрД.'; +$lang['stnv0021'] = 'Đ‘ĐŸĐ»ŃŒŃˆĐžĐœŃŃ‚ĐČĐŸ ŃŃ‚ĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž Đ±Ń‹Đ»ĐŸ ŃĐŸĐ±Ń€Đ°ĐœĐŸ с ĐŒĐŸĐŒĐ”ĐœŃ‚Đ° ĐœĐ°Ń‡Đ°Đ»ŃŒĐœĐŸĐłĐŸ старта ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ, ĐœĐžĐșаĐș ĐœĐ” с ĐŒĐŸĐŒĐ”ĐœŃ‚Đ° пДрĐČĐŸĐłĐŸ запусĐșа TeamSpeak сДрĐČДра.'; +$lang['stnv0022'] = 'Đ”Đ°ĐœĐœĐ°Ń ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐ° Оз базы ĐŽĐ°ĐœĐœŃ‹Ń… ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ Đž ĐŒĐŸĐ¶Đ”Ń‚ ĐŸŃ‚Đ»ĐžŃ‡Đ°Ń‚ŃŒŃŃ ĐŸŃ‚ Ń‚ĐŸĐč, ĐșĐŸŃ‚ĐŸŃ€Đ°Ń Ń…Ń€Đ°ĐœĐžŃ‚ŃŃ ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… TeamSpeak.'; +$lang['stnv0023'] = 'ОбщОĐč ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœŃ‹Đč ĐŸĐœĐ»Đ°ĐčĐœ за ĐœĐ”ĐŽĐ”Đ»ŃŽ Đž ĐŒĐ”ŃŃŃ† ĐŸĐ±ĐœĐŸĐČĐ»ŃĐ”Ń‚ŃŃ ĐșажЎыД 15 ĐŒĐžĐœŃƒŃ‚. ВсД ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Đ” Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ ĐŸĐ±ĐœĐŸĐČĐ»ŃŃŽŃ‚ŃŃ ĐŒĐŸĐŒĐ”ĐœŃ‚Đ°Đ»ŃŒĐœĐŸ (ОлО с заЎДржĐșĐŸĐč ĐČ ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ сДĐșŃƒĐœĐŽ).'; +$lang['stnv0024'] = 'RankSystem — статостоĐșа TeamSpeak 3 сДрĐČДра'; +$lang['stnv0025'] = 'ĐžĐłŃ€Đ°ĐœĐžŃ‡Đ”ĐœĐžĐ” спОсĐșа'; +$lang['stnv0026'] = 'ВсД'; +$lang['stnv0027'] = 'Đ˜ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐœĐ° саĐčтД ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°Ń€Đ”ĐČшДĐč! ĐšĐ°Đ¶Đ”Ń‚ŃŃ, ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ĐŸĐ»ŃŒŃˆĐ” ĐœĐ” ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐ° Đș TeamSpeak 3 сДрĐČĐ”Ń€Ńƒ. ĐŸĐŸŃ‚Đ”Ń€ŃĐœĐŸ ŃĐŸĐ”ĐŽĐžĐœĐ”ĐœĐžĐ”?'; +$lang['stnv0028'] = '(Вы ĐœĐ” ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đș сДрĐČĐ”Ń€Ńƒ TS3!)'; +$lang['stnv0029'] = 'ĐžĐ±Ń‰Đ°Ń статостоĐșа'; +$lang['stnv0030'] = 'О ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['stnv0031'] = 'ĐŸĐŸĐžŃĐș таĐșжД ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт ŃˆĐ°Đ±Đ»ĐŸĐœŃ‹: ĐœĐžĐșĐœĐ”ĐčĐŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń, ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID(UID) Đž ID ĐșĐ»ĐžĐ”ĐœŃ‚Đ° ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…(DBID).'; +$lang['stnv0032'] = 'Вы таĐșжД ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Ń„ĐžĐ»ŃŒŃ‚Ń€ Đ·Đ°ĐżŃ€ĐŸŃĐ° (ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐœĐžĐ¶Đ”). Đ”Đ»Ń ŃŃ‚ĐŸĐłĐŸ ĐČĐČДЎОтД Đ”ĐłĐŸ ĐČ ĐżĐŸĐžŃĐșĐŸĐČĐŸĐ” ĐżĐŸĐ»Đ”.'; +$lang['stnv0033'] = 'йаĐșжД ĐŽĐŸĐżŃƒŃŃ‚ĐžĐŒŃ‹ ĐșĐŸĐŒĐ±ĐžĐœĐ°Ń†ĐžĐž ŃˆĐ°Đ±Đ»ĐŸĐœĐŸĐČ Đž Ń„ĐžĐ»ŃŒŃ‚Ń€ĐŸĐČ. Đ”Đ»Ń ŃŃ‚ĐŸĐłĐŸ ĐČĐČДЎОтД пДрĐČŃ‹ĐŒ Ń„ĐžĐ»ŃŒŃ‚Ń€, за ĐœĐžĐŒ бДз ĐżŃ€ĐŸĐ±Đ”Đ»ĐŸĐČ ŃˆĐ°Đ±Đ»ĐŸĐœ.'; +$lang['stnv0034'] = 'Đ­Ń‚ĐŸ ĐżĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ ĐșĐŸĐŒĐ±ĐžĐœĐžŃ€ĐŸĐČать ĐŒĐœĐŸĐ¶Đ”ŃŃ‚ĐČĐŸ Ń„ĐžĐ»ŃŒŃ‚Ń€ĐŸĐČ, ĐČĐČĐŸĐŽĐžŃ‚ŃŒ ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżĐŸŃĐ»Đ”ĐŽĐŸĐČĐ°Ń‚Đ”Đ»ŃŒĐœĐŸ.'; +$lang['stnv0035'] = 'ĐŸŃ€ĐžĐŒĐ”Ń€:
filter:nonexcepted:TeamSpeakUser'; +$lang['stnv0036'] = 'ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč, групп сДрĐČДра ОлО ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐ” ĐșĐ°ĐœĐ°Đ»Đ°).'; +$lang['stnv0037'] = 'ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐœĐ”ĐžŃĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč'; +$lang['stnv0038'] = 'ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐŸĐœĐ»Đ°ĐčĐœ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč'; +$lang['stnv0039'] = 'ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐŸŃ„Ń„Đ»Đ°ĐčĐœ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč'; +$lang['stnv0040'] = 'ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ ŃƒĐșĐ°Đ·Đ°ĐœĐœŃ‹Ń… группах, ĐŸĐœĐ° жД - Ń„ĐžĐ»ŃŒŃ‚Ń€Đ°Ń†ĐžŃ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐżĐŸ Ń€Đ°ĐœĐłĐ°ĐŒ
Đ—Đ°ĐŒĐ”ĐœĐžŃ‚Đ” GROUPID ĐœĐ° Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹Đ” ID группы Ń€Đ°ĐœĐłĐ°.'; +$lang['stnv0041'] = "ĐŸĐŸĐșĐ°Đ·Đ°Ń‚ŃŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč, ŃƒĐŽĐŸĐČлДтĐČĐŸŃ€ŃŃŽŃ‰ĐžŃ… ĐżĐŸĐžŃĐșĐŸĐČĐŸĐŒŃƒ Đ·Đ°ĐżŃ€ĐŸŃŃƒ ĐżĐŸ ЎатД ĐżĐŸŃĐ»Đ”ĐŽĐœĐ”ĐłĐŸ ĐżĐŸŃĐ”Ń‰Đ”ĐœĐžŃ сДрĐČДра.
Đ—Đ°ĐŒĐ”ĐœĐžŃ‚Đ” OPERATOR ĐœĐ° '<' ОлО '>' ОлО '=' ОлО '!='.
йаĐșжД Đ·Đ°ĐŒĐ”ĐœĐžŃ‚Đ” TIME ĐœĐ° Đ¶Đ”Đ»Đ°Đ”ĐŒŃƒŃŽ Юату ĐżĐŸĐžŃĐșа ĐČ Ń„ĐŸŃ€ĐŒĐ°Ń‚Đ” 'Y-m-d H-i'(ĐłĐŸĐŽ-ĐŒĐ”ŃŃŃ†-ĐŽĐ”ĐœŃŒ час-ĐŒĐžĐœŃƒŃ‚Đ°) (ĐżŃ€ĐžĐŒĐ”Ń€: 2016-06-18 20-25).
Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃ‹Đč ĐżŃ€ĐžĐŒĐ”Ń€ Đ·Đ°ĐżŃ€ĐŸŃĐ°: filter:lastseen:<:2016-06-18 20-25:"; +$lang['stnv0042'] = 'ĐŸĐŸĐșазыĐČать Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč Оз уĐșĐ°Đ·Đ°ĐœĐœĐŸĐč ŃŃ‚Ń€Đ°ĐœŃ‹.
Đ—Đ°ĐŒĐ”ĐœĐžŃ‚Đ” TS3-COUNTRY-CODE ĐœĐ° Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹Đč ĐșĐŸĐŽ ŃŃ‚Ń€Đ°ĐœŃ‹.
ĐšĐŸĐŽŃ‹ ŃŃ‚Ń€Đ°Đœ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČĐ·ŃŃ‚ŃŒ Đ—ĐŽĐ”ŃŃŒ(ВоĐșĐžĐżĐ”ĐŽĐžŃ)'; +$lang['stnv0043'] = 'ĐŸĐŸĐŽĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒŃŃ Đș сДрĐČĐ”Ń€Ńƒ TS3'; +$lang['stri0001'] = 'Đ˜ĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃ ĐŸ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['stri0002'] = 'Đ§Ń‚ĐŸ таĐșĐŸĐ” ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN?'; +$lang['stri0003'] = 'ĐŁĐŽĐŸĐ±ĐœĐ°Ń ŃĐžŃŃ‚Đ”ĐŒĐ°, ĐżĐŸĐ·ĐČĐŸĐ»ŃŃŽŃ‰Đ°Ń ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐœĐ° сДрĐČДрД TeamSpeak 3 ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ-ĐżĐŸĐŸŃ‰Ń€Đ”ĐœĐžĐč, ĐŸŃĐœĐŸĐČĐ°ĐœĐœŃƒŃŽ ĐœĐ° ĐČŃ€Đ”ĐŒĐ”ĐœĐž, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐżŃ€ĐŸĐČĐŸĐŽŃŃ‚ ĐœĐ° сДрĐČДрД. ĐšĐŸ ĐČŃĐ”ĐŒŃƒ ĐżŃ€ĐŸŃ‡Đ”ĐŒŃƒ, ĐŸĐœĐ° таĐșжД Đ·Đ°ĐœĐžĐŒĐ°Đ”Ń‚ŃŃ ŃĐ±ĐŸŃ€ĐŸĐŒ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŃ… Đž ĐżĐŸŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐŒ Дё ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ ĐœĐ° саĐčтД.'; +$lang['stri0004'] = 'ĐšŃ‚ĐŸ яĐČĐ»ŃĐ”Ń‚ŃŃ Дё Ń€Đ°Đ·Ń€Đ°Đ±ĐŸŃ‚Ń‡ĐžĐșĐŸĐŒ?'; +$lang['stri0005'] = 'ĐšĐŸĐłĐŽĐ° была ŃĐŸĐ·ĐŽĐ°ĐœĐ° ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN?'; +$lang['stri0006'] = 'ĐĐ»ŃŒŃ„Đ°-рДлОз: 05/10/2014.'; +$lang['stri0007'] = 'БДта-рДлОз: 01/02/2015.'; +$lang['stri0008'] = 'Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°Đčто ĐœĐŸĐČую ĐČДрсОю ĐœĐ° саĐčтД: ĐžŃ„ĐžŃ†ĐžĐ°Đ»ŃŒĐœŃ‹Đč саĐčт ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ TSN.'; +$lang['stri0009'] = 'КаĐș ŃĐŸĐ·ĐŽĐ°ĐČĐ°Đ»Đ°ŃŃŒ ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN?'; +$lang['stri0010'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ TSN разрабатыĐČĐ°Đ»Đ°ŃŃŒ ĐœĐ° ŃĐ·Ń‹ĐșĐ”'; +$lang['stri0011'] = 'Про ŃĐŸĐ·ĐŽĐ°ĐœĐžĐž ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Đ»ŃŃ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč ĐœĐ°Đ±ĐŸŃ€ ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚ĐŸĐČ:'; +$lang['stri0012'] = 'ĐžŃĐŸĐ±Đ°Ń Đ±Đ»Đ°ĐłĐŸĐŽĐ°Ń€ĐœĐŸŃŃ‚ŃŒ:'; +$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'] = '%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° Ń‡Đ”ŃˆŃĐșĐžĐč ŃĐ·Ń‹Đș'; +$lang['stri0025'] = '%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° ĐżĐŸĐ»ŃŒŃĐșĐžĐč ŃĐ·Ń‹Đș'; +$lang['stri0026'] = '%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° ĐžŃĐżĐ°ĐœŃĐșĐžĐč ŃĐ·Ń‹Đș'; +$lang['stri0027'] = '%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° ĐČĐ”ĐœĐłĐ”Ń€ŃĐșĐžĐč ŃĐ·Ń‹Đș'; +$lang['stri0028'] = '%s ĐŽĐ»Ń пДрДĐČĐŸĐŽĐ° ĐœĐ° азДрбаĐčĐŽĐ¶Đ°ĐœŃĐșĐžĐč ŃĐ·Ń‹Đș'; +$lang['stri0029'] = "%s ĐŽĐ»Ń Ń„ŃƒĐœĐșцоо 'Imprint'"; +$lang['stri0030'] = "%s ĐŽĐ»Ń ŃŃ‚ĐžĐ»Ń 'CosmicBlue' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž Đž ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса"; +$lang['stta0001'] = 'За ĐČсД ĐČŃ€Đ”ĐŒŃ'; +$lang['sttm0001'] = 'За ĐŒĐ”ŃŃŃ†'; +$lang['sttw0001'] = 'ĐąĐŸĐż-10 ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč'; +$lang['sttw0002'] = 'За ĐœĐ”ĐŽĐ”Đ»ŃŽ'; +$lang['sttw0003'] = 'ĐĐ°Đ±Ń€Đ°Đ» %s %s Ń‡Đ°ŃĐŸĐČ ĐŸĐœĐ»Đ°ĐčĐœĐ°'; +$lang['sttw0004'] = 'ĐąĐŸĐż-10 ĐČ ĐłŃ€Đ°Ń„ĐžĐșĐ” (разрыĐČ ĐŒĐ”Đ¶ĐŽŃƒ ŃƒŃ‡Đ°ŃŃ‚ĐœĐžĐșĐ°ĐŒĐž)'; +$lang['sttw0005'] = 'Ń‡Đ°ŃĐŸĐČ (прДЎстаĐČĐ»ŃĐ”Ń‚ ŃĐŸĐ±ĐŸĐč 100%)'; +$lang['sttw0006'] = '%s Ń‡Đ°ŃĐŸĐČ (%s%)'; +$lang['sttw0007'] = 'ĐŁŃ‡Đ°ŃŃ‚ĐœĐžĐșĐž Ń‚ĐŸĐż-10 ĐČ ŃŃ€Đ°ĐČĐœĐ”ĐœĐžĐž'; +$lang['sttw0008'] = 'ĐąĐŸĐż-10 ĐżŃ€ĐŸŃ‚ĐžĐČ ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Ń… ĐżĐŸ ĐŸĐœĐ»Đ°ĐčĐœŃƒ'; +$lang['sttw0009'] = 'ĐąĐŸĐż-10 ĐżŃ€ĐŸŃ‚ĐžĐČ ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Ń… ĐżĐŸ аĐșтоĐČĐœĐŸŃŃ‚Đž'; +$lang['sttw0010'] = 'TĐŸĐż-10 ĐżŃ€ĐŸŃ‚ĐžĐČ ĐŸŃŃ‚Đ°Đ»ŃŒĐœŃ‹Ń… ĐżĐŸ ĐŸŃ„Ń„Đ»Đ°ĐčĐœŃƒ'; +$lang['sttw0011'] = 'ĐąĐŸĐż-10 ĐČ ĐłŃ€Đ°Ń„ĐžĐșĐ”'; +$lang['sttw0012'] = 'ĐžŃŃ‚Đ°Đ»ŃŒĐœŃ‹Đ” %s ĐșĐ»ĐžĐ”ĐœŃ‚Ń‹ (ĐČ Ń‡Đ°ŃĐ°Ń…)'; +$lang['sttw0013'] = 'ĐĄ %s %s Ń‡Đ°ŃĐ°ĐŒĐž аĐșтоĐČĐœĐŸŃŃ‚Đž'; +$lang['sttw0014'] = 'час(-а,-ĐŸĐČ)'; +$lang['sttw0015'] = 'ĐœĐžĐœŃƒŃ‚ (ы)'; +$lang['stve0001'] = "\nЗЮраĐČстĐČуĐčтД %s,\n Ń‡Ń‚ĐŸ бы ĐżŃ€ĐŸĐčто ĐżŃ€ĐŸĐČДрĐșу ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ ĐșлОĐșĐœĐžŃ‚Đ” ĐżĐŸ ссылĐșĐ” ĐœĐžĐ¶Đ”:\n[B]%s[/B]\n\nЕслО ссылĐșа ĐœĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ - ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČŃ€ŃƒŃ‡ĐœŃƒŃŽ сĐșĐŸĐżĐžŃ€ĐŸĐČать ĐșĐŸĐŽ ĐżĐŸĐŽŃ‚ĐČĐ”Ń€Đ¶ĐŽĐ”ĐœĐžŃ Đž ĐČĐČДстО Đ”ĐłĐŸ ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐżŃ€ĐŸĐČДрĐșĐž :\n%s\n\nЕслО ĐČы ĐœĐ” Đ·Đ°ĐżŃ€Đ°ŃˆĐžĐČалО ĐŽĐ°ĐœĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” - ĐżŃ€ĐŸĐžĐłĐœĐŸŃ€ĐžŃ€ŃƒĐčтД Đ”ĐłĐŸ. ЕслО ĐżĐŸ ĐșаĐșĐŸĐč-Đ»ĐžĐ±ĐŸ ĐżŃ€ĐžŃ‡ĐžĐœĐ” ĐČы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” ŃŃ‚ĐŸ ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ раз, сĐČŃĐ¶ĐžŃ‚Đ”ŃŃŒ с Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ĐŸĐŒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ."; +$lang['stve0002'] = 'ĐĄĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” с ĐșĐ»ŃŽŃ‡ĐŸĐŒ Đ±Ń‹Đ»ĐŸ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ ĐČĐ°ĐŒ чДрДз Đ»ĐžŃ‡ĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐœĐ° сДрĐČДрД TS3.'; +$lang['stve0003'] = 'ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČĐČДЎОтД Đșлюч, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐČы ĐżĐŸĐ»ŃƒŃ‡ĐžĐ»Đž ĐœĐ° сДрĐČДрД TS3. ЕслО ĐČы ĐœĐ” ĐżĐŸĐ»ŃƒŃ‡ĐžĐ»Đž Đșлюч - ŃƒĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ Ń‡Ń‚ĐŸ ĐČы ĐČыбралО праĐČĐžĐ»ŃŒĐœŃ‹Đč ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID.'; +$lang['stve0004'] = 'Ключ, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐČы ĐČĐČДлО ĐœĐ” ĐżĐŸĐŽŃ…ĐŸĐŽĐžŃ‚! ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД ŃĐœĐŸĐČа.'; +$lang['stve0005'] = 'ĐŸĐŸĐ·ĐŽŃ€Đ°ĐČĐ»ŃĐ”ĐŒ, ĐżŃ€ĐŸĐČДрĐșа ĐżŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ŃƒŃĐżĐ”ŃˆĐœĐŸ! ĐąĐ”ĐżĐ”Ń€ŃŒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČаться ĐČŃĐ”ĐŒ Ń„ŃƒĐœĐșŃ†ĐžĐŸĐœĐ°Đ»ĐŸĐŒ..'; +$lang['stve0006'] = 'ĐŸŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐœĐ”ĐžĐ·ĐČĐ”ŃŃ‚ĐœĐ°Ń ĐŸŃˆĐžĐ±Đșа. ĐŸĐŸĐżŃ€ĐŸĐ±ŃƒĐčтД Дщё раз. ЕслО ĐœĐ” ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŃ - сĐČŃĐ¶ĐžŃ‚Đ”ŃŃŒ с Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ĐŸĐŒ.'; +$lang['stve0007'] = 'ĐŸŃ€ĐŸĐČДрĐșа ĐœĐ° сДрĐČДрД TS'; +$lang['stve0008'] = 'ВыбДрОтД сĐČĐŸĐč ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đč ID ĐœĐ° сДрĐČДрД Ń‡Ń‚ĐŸ бы ĐżŃ€ĐŸĐžĐ·ĐČДстО ĐżŃ€ĐŸĐČДрĐșу.'; +$lang['stve0009'] = ' -- ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” сюЮа ĐČыбДрОтД ŃĐ”Đ±Ń Оз спОсĐșа -- '; +$lang['stve0010'] = 'Вы ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚Đ” Đșлюч ĐŽĐ»Ń ĐżĐŸĐŽŃ‚ĐČĐ”Ń€Đ¶ĐŽĐ”ĐœĐžŃ ĐœĐ° сДрĐČДрД, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐČĐ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐČĐČДстО ĐČ ĐŽĐ°ĐœĐœĐŸĐ” ĐżĐŸĐ»Đ”:'; +$lang['stve0011'] = 'Ключ:'; +$lang['stve0012'] = 'ĐżŃ€ĐŸĐČĐ”Ń€ĐžŃ‚ŃŒ'; +$lang['time_day'] = 'Đ”ĐœĐž'; +$lang['time_hour'] = 'Часы'; +$lang['time_min'] = 'ĐœĐžĐœŃƒŃ‚Ń‹'; +$lang['time_ms'] = 'ĐŒŃ'; +$lang['time_sec'] = 'ĐĄĐ”ĐșŃƒĐœĐŽŃ‹'; +$lang['unknown'] = 'ĐœĐ”ĐžĐ·ĐČĐ”ŃŃ‚ĐœĐŸ'; +$lang['upgrp0001'] = "Группа сДрĐČДра с ID %s ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ ĐČ ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đ” '%s' (ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс -> ŃĐžŃŃ‚Đ”ĐŒĐ° -> Ń€Đ°ĐœĐł), ĐŸĐŽĐœĐ°ĐșĐŸ ĐŸĐœĐ° ĐœĐ” ĐœĐ°ĐčĐŽĐ”ĐœĐ° ĐœĐ° сДрĐČДрД TS3! ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐżĐ”Ń€Đ”ĐœĐ°ŃŃ‚Ń€ĐŸĐčтД ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžŃŽ ĐžĐœĐ°Ń‡Đ” ĐČĐŸĐ·ĐœĐžĐșĐœŃƒŃ‚ ĐŸŃˆĐžĐ±ĐșĐž!"; +$lang['upgrp0002'] = 'Đ—Đ°ĐłŃ€ŃƒĐ·Đșа ĐœĐŸĐČĐŸĐč ĐžĐșĐŸĐœĐșĐž сДрĐČДра'; +$lang['upgrp0003'] = 'Про запОсО ĐžĐșĐŸĐœĐșĐž сДрĐČДра ĐœĐ° ЎОсĐș ĐżŃ€ĐŸĐžĐ·ĐŸŃˆĐ»Đ° ĐŸŃˆĐžĐ±Đșа.'; +$lang['upgrp0004'] = 'ĐžŃˆĐžĐ±Đșа про Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐ” ĐžĐșĐŸĐœĐșĐž сДрĐČДра: '; +$lang['upgrp0005'] = 'ĐžŃˆĐžĐ±Đșа ŃƒĐŽĐ°Đ»Đ”ĐœĐžŃ ĐžĐșĐŸĐœĐșĐž сДрĐČДра.'; +$lang['upgrp0006'] = 'ИĐșĐŸĐœĐșа сДрĐČДра была ŃƒĐŽĐ°Đ»Đ”ĐœĐ° с сДрĐČДра TS3, Ń‚Đ”ĐżĐ”Ń€ŃŒ ĐŸĐœĐ° таĐș жД ŃƒĐŽĐ°Đ»Đ”ĐœĐ° Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['upgrp0007'] = 'ĐžŃˆĐžĐ±Đșа про ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœĐžĐž ĐžĐșĐŸĐœĐșĐž группы сДрĐČДра %s с ID %s.'; +$lang['upgrp0008'] = 'ĐžŃˆĐžĐ±Đșа про Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐ” ĐžĐșĐŸĐœĐșĐž группы сДрĐČДра %s с ID %s: '; +$lang['upgrp0009'] = 'ĐžŃˆĐžĐ±Đșа про ŃƒĐŽĐ°Đ»Đ”ĐœĐžĐž ĐžĐșĐŸĐœĐșĐž группы сДрĐČДра %s с ID %s.'; +$lang['upgrp0010'] = 'ИĐșĐŸĐœĐșа группы сДрĐČДра %s с ID %s была ŃƒĐŽĐ°Đ»Đ”ĐœĐ° с сДрĐČДра TS3, Ń‚Đ”ĐżĐ”Ń€ŃŒ ĐŸĐœĐ° таĐș жД ŃƒĐŽĐ°Đ»Đ”ĐœĐ° Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.'; +$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['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 ŃŃ‚ĐŸĐłĐŸ ĐșĐ°ĐœĐ°Đ»Đ° ĐČ ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșах ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ, (ŃŃ‚ĐŸ ŃĐŒĐŸĐ¶Đ”Ń‚ ŃĐŽĐ”Đ»Đ°Ń‚ŃŒ Ń‚ĐŸĐ»ŃŒĐșĐŸ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ!).
Đ‘ĐŸĐ»ŃŒŃˆĐ” ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐŒĐŸĐ¶ĐœĐŸ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ ĐČ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ (ĐŒĐ”ĐœŃŽ ĐĄĐžŃŃ‚Đ”ĐŒĐ°).

БДз этох ĐŽĐ”ĐčстĐČĐžĐč ĐœĐ° ĐŽĐ°ĐœĐœŃ‹Đč ĐŒĐŸĐŒĐ”ĐœŃ‚ ĐŒŃ‹ ĐœĐ” ŃĐŒĐŸĐ¶Đ”ĐŒ ĐżŃ€ĐŸĐČĐ”Ń€ĐžŃ‚ŃŒ ĐČас ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ. ИзĐČĐžĐœĐžŃ‚Đ” :('; +$lang['verify0004'] = 'ĐĐ” ĐœĐ°ĐčĐŽĐ”ĐœĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ ĐżŃ€ĐŸĐČĐ”Ń€ĐŸŃ‡ĐœĐŸĐŒ ĐșĐ°ĐœĐ°Đ»Đ”...'; +$lang['wi'] = 'ĐŸĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ'; +$lang['wiaction'] = 'Đ’Ń‹ĐżĐŸĐ»ĐœĐžŃ‚ŃŒ'; +$lang['wiadmhide'] = 'сĐșрыĐČать ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ'; +$lang['wiadmhidedesc'] = 'ĐŃƒĐ¶ĐœĐŸ лО сĐșрыĐČать ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ ĐČ ĐŽĐ°ĐœĐœĐŸĐŒ спОсĐșĐ”'; +$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['wiboostempty'] = 'ĐĄĐżĐžŃĐŸĐș пуст. Đ”Đ»Ń ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” ĐœĐ° ĐșĐœĐŸĐżĐșу с ĐžĐșĐŸĐœĐșĐŸĐč плюса'; +$lang['wibot1'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±Ń‹Đ»Đ° ĐČыĐșĐ»ŃŽŃ‡Đ”ĐœĐ°. Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃƒŃŽ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČ Đ»ĐŸĐłĐ” ĐœĐžĐ¶Đ”!'; +$lang['wibot2'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐ°. Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃƒŃŽ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČ Đ»ĐŸĐłĐ” ĐœĐžĐ¶Đ”!'; +$lang['wibot3'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ¶Đ°Đ”Ń‚ŃŃ. Đ‘ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœŃƒŃŽ ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžŃŽ ŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČ Đ»ĐŸĐłĐ” ĐœĐžĐ¶Đ”!'; +$lang['wibot4'] = 'ВĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ / ВыĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ Đ±ĐŸŃ‚Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['wibot5'] = 'Запустоть'; +$lang['wibot6'] = 'ĐžŃŃ‚Đ°ĐœĐŸĐČоть'; +$lang['wibot7'] = 'ĐŸĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃŃ‚ĐžŃ‚ŃŒ'; +$lang['wibot8'] = 'Đ›ĐŸĐł ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ:'; +$lang['wibot9'] = 'Đ—Đ°ĐżĐŸĐ»ĐœĐžŃ‚Đ” ĐČсД ĐŸĐ±ŃĐ·Đ°Ń‚Đ”Đ»ŃŒĐœŃ‹Đ” ĐżĐŸĐ»Ń пДрДЎ запусĐșĐŸĐŒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ!'; +$lang['wichdbid'] = 'ĐĄĐ±Ń€ĐŸŃ про ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐž DBID'; +$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['wicmdlinesec'] = 'Commandline Check'; +$lang['wicmdlinesecdesc'] = 'The Ranksystem bot has a security check to be able to start the bot only via command line. This method will be used by default when starting the bot about the Ranksystem webinterface.

On some system environments it is needed to disable this feature to be able to start the Ranksystem bot.
In this case you need to secure your environment yourself to prevent bot starts from outside (via URL jobs/bot.php)

Do NOT disable this function, when the bot is running on your system!'; +$lang['wiconferr'] = "Есть ĐŸŃˆĐžĐ±Đșа ĐČ ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ. ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČŃ‹ĐżĐŸĐ»ĐœĐžŃ‚Đ” ĐČŃ…ĐŸĐŽ ĐČ ĐżĐ°ĐœĐ”Đ»ŃŒ упраĐČĐ»Đ”ĐœĐžŃ Đž ĐżŃ€ĐŸĐČĐ”Ń€ŃŒŃ‚Đ” ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž разЎДла 'ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșа ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'. ĐžŃĐŸĐ±Đ”ĐœĐœĐŸ Ń‚Ń‰Đ°Ń‚Đ”Đ»ŃŒĐœĐŸ ĐżŃ€ĐŸĐČĐ”Ń€ŃŒŃ‚Đ” 'Đ Đ°ĐœĐłĐž'!"; +$lang['widaform'] = 'Đ€ĐŸŃ€ĐŒĐ°Ń‚ Юаты'; +$lang['widaformdesc'] = 'ВыбДрОтД Ń„ĐŸŃ€ĐŒĐ°Ń‚ ĐżĐŸĐșаза Юаты.

ĐŸŃ€ĐžĐŒĐ”Ń€:
%a ĐŽĐœĐ”Đč, %h Ń‡Đ°ŃĐŸĐČ, %i ĐŒĐžĐœŃƒŃ‚, %s сДĐșŃƒĐœĐŽ'; +$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['wiexciddesc'] = "ЧДрДз Đ·Đ°ĐżŃŃ‚ŃƒŃŽ ĐŽĐŸĐ»Đ¶Đ”Đœ Đ±ŃƒĐŽĐ”Ń‚ уĐșĐ°Đ·Đ°Đœ ŃĐżĐžŃĐŸĐș ĐșĐ°ĐœĐ°Đ»ĐŸĐČ, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐŽĐŸĐ»Đ¶ĐœĐ° Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČать

ĐĐ°Ń…ĐŸĐŽŃŃŃŒ ĐČ ŃŃ‚ĐžŃ… ĐșĐ°ĐœĐ°Đ»Đ°Ń…, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐœĐ°Ń‡ĐžŃĐ»ŃŃ‚ŃŒŃŃ ĐČŃ€Đ”ĐŒŃ за ĐŸĐœĐ»Đ°ĐčĐœ ĐœĐ° сДрĐČДрД.

Đ”Đ°ĐœĐœŃƒŃŽ Ń„ŃƒĐœĐșцоя ĐŒĐŸĐ¶ĐœĐŸ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Đș ĐżŃ€ĐžĐŒĐ”Ń€Ńƒ, ĐŽĐ»Ń AFK ĐșĐ°ĐœĐ°Đ»ĐŸĐČ.
Про Ń€Đ”Đ¶ĐžĐŒĐ” ĐżĐŸĐŽŃŃ‡Ń‘Ń‚Đ° за 'аĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ', эта Ń„ŃƒĐœĐșцоя ŃŃ‚Đ°ĐœĐŸĐČотся Đ±Đ”ŃĐżĐŸĐ»Đ”Đ·ĐœĐŸĐč, т.Đș. ĐČ ĐșĐ°ĐœĐ°Đ»Đ” ŃŽĐ·Đ”Ń€Ńƒ пДрДстаДт ĐČĐŸĐČсД ĐœĐ°Ń‡ĐžŃĐ»ŃŃ‚ŃŒŃŃ ĐČŃ€Đ”ĐŒŃ бДзЎДĐčстĐČоя

ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐœĐ°Ń…ĐŸĐŽŃŃ‰ĐžĐ”ŃŃ ĐČ Ń‚Đ°Đșох ĐșĐ°ĐœĐ°Đ»Đ°Ń…, ĐżĐŸĐŒĐ”Ń‡Đ°ŃŽŃ‚ŃŃ ĐœĐ° ŃŃ‚ĐŸŃ‚ ĐżĐ”Ń€ĐžĐŸĐŽ ĐșаĐș 'ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'. К Ń‚ĐŸĐŒŃƒ жД, ĐŽĐ°ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО пДрДстают ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒŃŃ ĐČ 'stats/list_rankup.php' Đž ŃŃ‚Đ°ĐœĐŸĐČятся ĐŽĐŸŃŃ‚ŃƒĐżĐœŃ‹ Ń‚ĐŸĐ»ŃŒĐșĐŸ с Ń„ĐžĐ»ŃŒŃ‚Ń€ĐŸĐŒ ĐżĐŸĐžŃĐșа ОлО с ĐČĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹ĐŒ ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ”ĐœĐžĐ”ĐŒ \"ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč\"(ĐĄŃ‚Ń€Đ°ĐœĐžŃ†Đ° статостоĐșĐž - \"ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО\")."; +$lang['wiexgrp'] = 'ИсĐșлюч. группы сДрĐČДра'; +$lang['wiexgrpdesc'] = 'ĐŁĐșажОтД чДрДз Đ·Đ°ĐżŃŃ‚ŃƒŃŽ ID групп сДрĐČДра, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐČ ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… Đ±ŃƒĐŽŃƒŃ‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČаться ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ.
ЕслО ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐœĐ°Ń…ĐŸĐŽĐžŃ‚ŃŃ Ń…ĐŸŃ‚Ń‹ бы ĐČ ĐŸĐŽĐœĐŸĐč Оз этох групп, Ń‚ĐŸ ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČать Đ”ĐłĐŸ (Đž ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐœĐ°Ń‡ĐžŃĐ»ŃŃ‚ŃŒ ĐŸĐœĐ»Đ°ĐčĐœ).'; +$lang['wiexres'] = 'ĐœĐ”Ń‚ĐŸĐŽ ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ'; +$lang['wiexres1'] = 'ĐČсДгЎа счотать ĐČŃ€Đ”ĐŒŃ (ŃŃ‚Đ°ĐœĐŽĐ°Ń€Ń‚ĐœŃ‹Đč)'; +$lang['wiexres2'] = 'Đ·Đ°ĐŒĐŸŃ€ĐŸĐ·Đșа ĐČŃ€Đ”ĐŒĐ”ĐœĐž'; +$lang['wiexres3'] = 'ŃĐ±Ń€ĐŸŃ ĐČŃ€Đ”ĐŒĐ”ĐœĐž'; +$lang['wiexresdesc'] = 'ĐĄŃƒŃ‰Đ”ŃŃ‚ĐČŃƒĐ”Ń‚ тро Ń€Đ”Đ¶ĐžĐŒĐ° Ń€Đ°Đ±ĐŸŃ‚Ń‹ с ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹ĐŒĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒĐž. Đ’ĐŸ ĐČсДх ŃĐ»ŃƒŃ‡Đ°ŃŃ… ĐČŃ€Đ”ĐŒŃ ĐœĐ” ĐœĐ°Ń‡ĐžŃĐ»ŃĐ”Ń‚ŃŃ, а Ń€Đ°ĐœĐłĐž ĐœĐ” ĐČыЮаются. Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČŃ‹Đ±Ń€Đ°Ń‚ŃŒ Ń€Đ°Đ·ĐœŃ‹Đ” ĐČĐ°Ń€ĐžĐ°ĐœŃ‚Ń‹ Ń‚ĐŸĐłĐŸ, ĐșаĐș ĐœĐ°ĐșĐŸĐżĐ»Đ”ĐœĐœĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Đ”ĐŒ ĐČŃ€Đ”ĐŒŃ Đ±ŃƒĐŽĐ”Ń‚ ĐŸĐ±Ń€Đ°Đ±Đ°Ń‚Ń‹ĐČаться ĐżĐŸŃĐ»Đ” Ń‚ĐŸĐłĐŸ ĐșаĐș ĐŸĐœ Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč.

1) ĐČсДгЎа счотать ĐČŃ€Đ”ĐŒŃ (ŃŃ‚Đ°ĐœĐŽĐ°Ń€Ń‚ĐœŃ‹Đč): ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ, ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ ĐČсДгЎа счОтаДт ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ/аĐșтоĐČĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ОсĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ (ĐșĐ»ĐžĐ”ĐœŃ‚/сДрĐČĐ”Ń€ĐœĐ°Ń группа). В ĐŽĐ°ĐœĐœĐŸĐŒ Ń€Đ”Đ¶ĐžĐŒĐ” ĐœĐ” Ń€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžĐ” Ń€Đ°ĐœĐłĐ°. Đ­Ń‚ĐŸ ĐŸĐ·ĐœĐ°Ń‡Đ°Đ”Ń‚, Ń‡Ń‚ĐŸ ĐșаĐș Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ŃƒĐŽĐ°Đ»ĐžŃ‚ŃŃ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč, Đ”ĐŒŃƒ Đ±ŃƒĐŽŃƒŃ‚ ĐČŃ‹ĐŽĐ°ĐœŃ‹ группы Оз ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐŸŃĐœĐŸĐČыĐČаясь ĐœĐ° ĐČŃ€Đ”ĐŒĐ”ĐœĐž Đ”ĐłĐŸ аĐșтоĐČĐœĐŸŃŃ‚Đž (ĐœĐ°ĐżŃ€ĐžĐŒĐ”Ń€, ŃƒŃ€ĐŸĐČĐ”ĐœŃŒ 3).

2) Đ·Đ°ĐŒĐŸŃ€ĐŸĐ·Đșа ĐČŃ€Đ”ĐŒĐ”ĐœĐž: ĐĄ ŃŃ‚ĐŸĐč ĐŸĐżŃ†ĐžĐ”Đč ĐŸĐœĐ»Đ°ĐčĐœ Đž ĐČŃ€Đ”ĐŒŃ ĐżŃ€ĐŸŃŃ‚ĐŸŃ Đ±ŃƒĐŽŃƒŃ‚ Đ·Đ°ĐŒĐŸŃ€ĐŸĐ¶Đ”ĐœŃ‹ ĐœĐ° тДĐșŃƒŃ‰Đ”ĐŒ Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐž (ĐŽĐŸ Ń‚ĐŸĐłĐŸ ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ был ОсĐșĐ»ŃŽŃ‡Đ”Đœ). ĐŸĐŸŃĐ»Đ” Ń‚ĐŸĐłĐŸ ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đ”ĐłĐŸ ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ Đž ĐœĐ”Đ°ĐșтоĐČĐœĐŸŃŃ‚Đž Đ±ŃƒĐŽŃƒŃ‚ ŃĐœĐŸĐČа ĐœĐ°ĐșаплОĐČаться.

3) ŃĐ±Ń€ĐŸŃ ĐČŃ€Đ”ĐŒĐ”ĐœĐž: ĐĄ ŃŃ‚ĐŸĐč ĐŸĐżŃ†ĐžĐ”Đč про ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń ĐČŃ€Đ”ĐŒŃ Đ”ĐłĐŸ аĐșтоĐČĐœĐŸŃŃ‚Đž Đž ĐœĐ”Đ°ĐșтоĐČĐœĐŸŃŃ‚Đž Đ±ŃƒĐŽŃƒŃ‚ учотыĐČаться, ĐŸĐŽĐœĐ°ĐșĐŸ ĐżĐŸŃĐ»Đ” Ń‚ĐŸĐłĐŸ ĐșаĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”Đœ Оз ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đ”ĐłĐŸ ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž Đž ĐœĐ”Đ°ĐșтоĐČĐœĐŸŃŃ‚Đž Đ±ŃƒĐŽŃƒŃ‚ ŃĐ±Ń€ĐŸŃˆĐ”ĐœŃ‹.


ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐżĐŸ ĐșĐ°ĐœĐ°Đ»Đ°ĐŒ ĐœĐ” ограют ĐœĐžĐșаĐșĐŸĐč Ń€ĐŸĐ»Đž, таĐș ĐșаĐș ĐČŃ€Đ”ĐŒŃ ĐČсДгЎа Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČаться (ĐșаĐș ĐČ Ń€Đ”Đ¶ĐžĐŒĐ” Đ·Đ°ĐŒĐŸŃ€ĐŸĐ·ĐșĐž).'; +$lang['wiexuid'] = 'ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО'; +$lang['wiexuiddesc'] = 'ĐŁĐșажОтД чДрДз Đ·Đ°ĐżŃŃ‚ŃƒŃŽ ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœŃ‹Đ” ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșĐ°Ń‚ĐŸŃ€Ń‹ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (UID), ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČать Đž ĐžĐŒ ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ засчОтыĐČаться ĐČŃ€Đ”ĐŒŃ, ĐżŃ€ĐŸĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐœĐ° сДрĐČДрД.
'; +$lang['wiexregrp'] = 'ŃƒĐŽĐ°Đ»ĐžŃ‚ŃŒ группу'; +$lang['wiexregrpdesc'] = "ЕслО ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ОсĐșĐ»ŃŽŃ‡Đ”Đœ Оз Ranksystem, Ń‚ĐŸ группа сДрĐČДра, ĐœĐ°Đ·ĐœĐ°Ń‡Đ”ĐœĐœĐ°Ń Ranksystem, Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”ĐœĐ°.

Группа Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”ĐœĐ° Ń‚ĐŸĐ»ŃŒĐșĐŸ с '".$lang['wiexres']."' с '".$lang['wiexres1']."'. В Юругох Ń€Đ”Đ¶ĐžĐŒĐ°Ń… группа сДрĐČДра ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ŃƒĐŽĐ°Đ»Đ”ĐœĐ°.

Эта Ń„ŃƒĐœĐșцоя рДлДĐČĐ°ĐœŃ‚ĐœĐ° Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐČ ĐșĐŸĐŒĐ±ĐžĐœĐ°Ń†ĐžĐž с '".$lang['wiexuid']."' ОлО '".$lang['wiexgrp']."' ĐČ ŃĐŸŃ‡Đ”Ń‚Đ°ĐœĐžĐž с '".$lang['wiexres1']."'"; +$lang['wigrpimp'] = 'Đ Đ”Đ¶ĐžĐŒ ĐžĐŒĐżĐŸŃ€Ń‚Đ°'; +$lang['wigrpt1'] = 'Đ’Ń€Đ”ĐŒŃ ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń…'; +$lang['wigrpt2'] = 'Группа сДрĐČДра'; +$lang['wigrpt3'] = 'Permanent Group'; +$lang['wigrptime'] = 'ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșа Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['wigrptime2desc'] = "ĐŁĐșажОтД ĐČŃ€Đ”ĐŒŃ ĐżĐŸŃĐ»Đ” ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐŽĐŸĐ»Đ¶Đ”Đœ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ ĐČŃ‹Đ±Ń€Đ°ĐœĐœŃƒŃŽ группу.

ĐČŃ€Đ”ĐŒŃ ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń… => ID группы сДрĐČДра => permanent flag

МаĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐ” Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” - 999.999.999 сДĐșŃƒĐœĐŽ (ĐŸĐșĐŸĐ»ĐŸ 31 ĐłĐŸĐŽĐ°).

ВĐČĐ”ĐŽĐ”ĐœĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ Đ±ŃƒĐŽĐ”Ń‚ ĐŸĐ±Ń€Đ°Đ±Đ°Ń‚Ń‹ĐČаться ĐșаĐș 'ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ' ОлО 'аĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ', ĐČ Đ·Đ°ĐČĐžŃĐžĐŒĐŸŃŃ‚Đž ĐŸŃ‚ Ń‚ĐŸĐłĐŸ Ń‡Ń‚ĐŸ ĐČы ĐČыбралО ĐČ 'Ń€Đ”Đ¶ĐžĐŒĐ” Ń€Đ°Đ±ĐŸŃ‚Ń‹'.


ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ уĐșазыĐČать ĐŸĐ±Ń‰Đ”Đ” ĐČŃ€Đ”ĐŒŃ.

ĐœĐ”ĐżŃ€Đ°ĐČĐžĐ»ŃŒĐœĐŸ:

100 сДĐșŃƒĐœĐŽ, 100 сДĐșŃƒĐœĐŽ, 50 сДĐșŃƒĐœĐŽ
праĐČĐžĐ»ŃŒĐœĐŸ:

100 сДĐșŃƒĐœĐŽ, 200 сДĐșŃƒĐœĐŽ, 250 сДĐșŃƒĐœĐŽ
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "ĐŁĐșажОтД чДрДз ĐșаĐșĐŸĐč ĐżŃ€ĐŸĐŒĐ”Đ¶ŃƒŃ‚ĐŸĐș ĐČŃ€Đ”ĐŒĐ”ĐœĐž, Đ±ŃƒĐŽŃƒŃ‚ ĐČыЮаĐČаться группы сДрĐČДра.

Đ’Ń€Đ”ĐŒŃ (ĐČ ŃĐ”ĐșŃƒĐœĐŽĐ°Ń…) => ĐœĐŸĐŒĐ”Ń€ группы сДрĐČДра (ServerGroupID) => permanent flag

К Ń‚ĐŸĐŒŃƒ жД, ĐŸŃ‚ ĐČŃ‹Đ±Ń€Đ°ĐœĐœĐŸĐłĐŸ Ń€Đ”Đ¶ĐžĐŒĐ° Đ±ŃƒĐŽĐ”Ń‚ заĐČĐžŃĐ”Ń‚ŃŒ.

КажЎыĐč ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€ ĐŽĐŸĐ»Đ¶Đ”Đœ Ń€Đ°Đ·ĐŽĐ”Đ»ŃŃ‚ŃŒŃŃ Đ·Đ°ĐżŃŃ‚ĐŸĐč.

йаĐș жД ĐČŃ€Đ”ĐŒŃ ĐŽĐŸĐ»Đ¶ĐœĐŸ Đ±Ń‹Ń‚ŃŒ уĐșĐ°Đ·Đ°ĐœĐŸ ĐżĐŸ 'ĐœĐ°Ń€Đ°ŃŃ‚Đ°ŃŽŃ‰Đ”Đč'

ĐŸŃ€ĐžĐŒĐ”Ń€:
60=>9=>0,120=>10=>0,180=>11=>0
ĐŸĐŸ ĐžŃŃ‚Đ”Ń‡Đ”ĐœĐžŃŽ 60 сДĐșŃƒĐœĐŽ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚ сДрĐČДр группу ĐżĐŸĐŽ SGID 9, ĐżĐŸ ĐžŃŃ‚Đ”Ń‡Đ”ĐœĐžĐž ĐŸŃ‡Đ”Ń€Đ”ĐŽĐœŃ‹Ń… 120 сДĐșŃƒĐœĐŽ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚ группу сДрĐČДра с ID 10, Đž таĐș ЎалДД..."; +$lang['wigrptk'] = 'ĐŸĐ±Ń‰Đ”Đ”'; +$lang['wiheadacao'] = 'Access-Control-Allow-Origin'; +$lang['wiheadacao1'] = 'allow any ressource'; +$lang['wiheadacao3'] = 'allow custom URL'; +$lang['wiheadacaodesc'] = 'With this you can define the Access-Control-Allow-Origin header. More information you can find here:
%s

To allow a custom origin, enter the URL
Example:
https://ts-ranksystem.com


Muliple origins can be also defined. Seperate this from each other with a comma.
Example:
https://ts-ranksystem.com,https://ts-n.net
'; +$lang['wiheadcontyp'] = 'X-Content-Type-Options'; +$lang['wiheadcontypdesc'] = "Enable it to set this header to the option 'nosniff'."; +$lang['wiheaddesc'] = 'With this you can define the %s header. More information you can find here:
%s'; +$lang['wiheaddesc1'] = "Choose 'disabled' to not set the header by the Ranksystem."; +$lang['wiheadframe'] = 'X-Frame-Options'; +$lang['wiheadxss'] = 'X-XSS-Protection'; +$lang['wiheadxss1'] = 'disables XSS filtering'; +$lang['wiheadxss2'] = 'enables XSS filtering'; +$lang['wiheadxss3'] = 'filter XSS parts'; +$lang['wiheadxss4'] = 'block full rendering'; +$lang['wihladm'] = 'ĐĄĐżĐžŃĐŸĐș ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč (Đ Đ”Đ¶ĐžĐŒ Đ°ĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ°)'; +$lang['wihladm0'] = 'ĐžĐżĐžŃĐ°ĐœĐžĐ” Ń„ŃƒĐœĐșцоо (ĐșлОĐșĐ°Đ±Đ”Đ»ŃŒĐœĐŸ)'; +$lang['wihladm0desc'] = "ВыбДрОтД ĐŸĐŽĐœŃƒ ОлО ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ ĐŸĐżŃ†ĐžĐč ŃĐ±Ń€ĐŸŃĐ° Đž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” \"ĐœĐ°Ń‡Đ°Ń‚ŃŒ ŃĐ±Ń€ĐŸŃ\" ĐŽĐ»Ń запусĐșа.

ĐŸĐŸŃĐ»Đ” запусĐșа заЎач(Đž) ŃĐ±Ń€ĐŸŃĐ° ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ”Ń‚ŃŒ статус ĐœĐ° ŃŃ‚ĐŸĐč ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ”.

ЗаЮача Đ±ŃƒĐŽĐ”Ń‚ ĐČŃ‹ĐżĐŸĐ»ĐœŃŃ‚ŃŒŃŃ Đ±ĐŸŃ‚ĐŸĐŒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
ĐžĐœ ĐŽĐŸĐ»Đ¶Đ”Đœ ĐŸŃŃ‚Đ°ĐČаться Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐœŃ‹ĐŒ.
НЕ ОСбАНАВЛИВАЙбЕ Đž НЕ ПЕРЕЗАПУСКАЙбЕ Đ±ĐŸŃ‚Đ° ĐČĐŸ ĐČŃ€Đ”ĐŒŃ ŃĐ±Ń€ĐŸŃĐ°!

ВсД ĐżŃ€ĐŸŃ†Đ”ŃŃŃ‹ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽŃƒŃ‚ ĐżŃ€ĐžĐŸŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœŃ‹ ĐœĐ° ĐČŃ€Đ”ĐŒŃ ŃĐ±Ń€ĐŸŃĐ°. ĐŸĐŸŃĐ»Đ” заĐČĐ”Ń€ŃˆĐ”ĐœĐžŃ Đ±ĐŸŃ‚ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ Ń€Đ°Đ±ĐŸŃ‚Ńƒ ĐČ ĐœĐŸŃ€ĐŒĐ°Đ»ŃŒĐœĐŸĐŒ Ń€Đ”Đ¶ĐžĐŒĐ”.
Ещё раз, НЕ ОСбАНАВЛИВАЙбЕ Đž НЕ ПЕРЕЗАПУСКАЙбЕ Đ±ĐŸŃ‚Đ°!

ĐŸĐŸŃĐ»Đ” заĐČĐ”Ń€ŃˆĐ”ĐœĐžŃ ĐČсДх заЎач ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżŃ€ĐžĐœŃŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ. Статус заЎач Đ±ŃƒĐŽĐ”Ń‚ ŃĐ±Ń€ĐŸŃˆĐ”Đœ. ĐŸĐŸŃĐ»Đ” ŃŃ‚ĐŸĐłĐŸ ĐŒĐŸĐ¶ĐœĐŸ Đ±ŃƒĐŽĐ”Ń‚ ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐœĐŸĐČыД заЎачО ŃĐ±Ń€ĐŸŃĐ°.

В ŃĐ»ŃƒŃ‡Đ°Đ” ŃĐ±Ń€ĐŸŃĐ° ĐČы ĐČĐ”Ń€ĐŸŃŃ‚ĐœĐŸ таĐș жД Đ·Đ°Ń…ĐŸŃ‚ĐžŃ‚Đ” ŃĐœŃŃ‚ŃŒ группы сДрĐČДра с ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč. Đ”ĐŸ заĐČĐ”Ń€ŃˆĐ”ĐœĐžŃ ŃĐ±Ń€ĐŸŃĐ° ĐŸŃ‡Đ”ĐœŃŒ ĐČĐ°Đ¶ĐœĐŸ ĐœĐ” ĐžĐ·ĐŒĐ”ĐœŃŃ‚ŃŒ ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžŃ Ń€Đ°ĐœĐłĐ°.
ĐĄĐœŃŃ‚ĐžĐ” сДрĐČĐ”Ń€ĐœŃ‹Ń… групп ĐŒĐŸĐ¶Đ”Ń‚ Đ·Đ°ĐœŃŃ‚ŃŒ ĐșаĐșĐŸĐ”-Ń‚ĐŸ ĐČŃ€Đ”ĐŒŃ. АĐșтоĐČĐœŃ‹Đč 'Ń€Đ”Đ¶ĐžĐŒ Đ·Đ°ĐŒĐ”ĐŽĐ»Đ”ĐœĐœĐŸĐłĐŸ Query' таĐș жД Đ·Đ°ĐŒĐ”ĐŽĐ»ĐžŃ‚ ŃŃ‚ĐŸŃ‚ ĐżŃ€ĐŸŃ†Đ”ŃŃ. Đ Đ”ĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”ĐŒ ĐŸŃ‚ĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ Đ”ĐłĐŸ ĐœĐ° ĐČŃ€Đ”ĐŒŃ.!


Đ‘ŃƒĐŽŃŒŃ‚Đ” ĐŸŃŃ‚ĐŸŃ€ĐŸĐ¶ĐœŃ‹, ĐżĐŸŃĐ»Đ” запусĐșа ŃĐ±Ń€ĐŸŃĐ° ĐŸĐ±Ń€Đ°Ń‚ĐœĐŸĐłĐŸ путо ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚!"; +$lang['wihladm1'] = 'ĐŽĐŸĐ±Đ°ĐČоть ĐČŃ€Đ”ĐŒŃ'; +$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['wihladm4'] = 'Delete user'; +$lang['wihladm4desc'] = "Choose one or multiple user to delete them out of the Ranksystem database. The fully user will be removed and within all saved information, like the collected times.

The deletion doesn't effect the TeamSpeak server. If the user still exists in the TS database, it will not be deleted due this function."; +$lang['wihladm41'] = 'You really want to delete the following user?'; +$lang['wihladm42'] = 'Attention: They cannot be restored!'; +$lang['wihladm43'] = 'Yes, delete'; +$lang['wihladm44'] = 'User %s (UUID: %s; DBID: %s) will be removed out of the Ranksystem database in a few seconds (have a look to the Ranksystem log).'; +$lang['wihladm45'] = 'Removed user %s (UUID: %s; DBID: %s) out of the Ranksystem database.'; +$lang['wihladm46'] = 'Requested about admin function'; +$lang['wihladmex'] = 'Database Export'; +$lang['wihladmex1'] = 'Database Export Job successfully created.'; +$lang['wihladmex2'] = 'Note:%s The password of the ZIP container is your current TS3 Query-Password:'; +$lang['wihladmex3'] = 'File %s successfully deleted.'; +$lang['wihladmex4'] = 'An error happens on deleting the file %s. Is the file still existing and the permissions to delete them are given?'; +$lang['wihladmex5'] = 'download file'; +$lang['wihladmex6'] = 'delete file'; +$lang['wihladmex7'] = 'Create SQL Export'; +$lang['wihladmexdesc'] = "With this function you can create an export / backup of the Ranksystem database. As output it will be created an SQL file, which will be ZIP compressed.

The export might need a few minutes, depending on how big the database is. It will be done as job by the Ranksystem bot.
Do NOT stop or restart the Ranksystem Bot, while the job is running!

Before you start an export, you might want to configure your webserver, 'ZIP' and 'SQL' files inside your logpath (Webinterface -> Other -> Logpath) are not accessible for clients. This will protect your export, cause there are sensitive data inside, like your TS3 Query credentials. The webserver users still need permissions for these files to access this for the download about the webinterface!

After the download, check the last line of the SQL file, to be sure the file is fully written. It needs to be:
-- Finished export

On PHP version >= 7.2 the export 'ZIP' file will be password protected. As password, we will use the TS3 Query password, you set in TeamSpeak options.

Import the SQL file if needed directly to your database. You can use phpMyAdmin for this, but it is not needed. You can use every way you can run a SQL file on your database.
Be careful by importing the SQL file. All existing data on the chosen database will be deleted due the import."; +$lang['wihladmrs'] = 'Статус заЎачО'; +$lang['wihladmrs0'] = 'ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ°'; +$lang['wihladmrs1'] = 'ŃĐŸĐ·ĐŽĐ°ĐœĐ°'; +$lang['wihladmrs10'] = 'Đ—Đ°ĐŽĐ°ĐœĐžĐ” ŃƒŃĐżĐ”ŃˆĐœĐŸ ĐżĐŸĐŽŃ‚ĐČĐ”Ń€Đ¶ĐŽĐ”ĐœĐŸ!'; +$lang['wihladmrs11'] = 'Estimated time until completion the job'; +$lang['wihladmrs12'] = 'Вы уĐČĐ”Ń€Đ”ĐœŃ‹ Ń‡Ń‚ĐŸ Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐżŃ€ĐŸĐŽĐŸĐ»Đ¶ĐžŃ‚ŃŒ? Вся статостоĐșа ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ŃĐ±Ń€ĐŸŃˆĐ”ĐœĐ°!'; +$lang['wihladmrs13'] = 'Да, ĐœĐ°Ń‡Đ°Ń‚ŃŒ ŃĐ±Ń€ĐŸŃ'; +$lang['wihladmrs14'] = 'ĐĐ”Ń‚, ĐŸŃ‚ĐŒĐ”ĐœĐžŃ‚ŃŒ'; +$lang['wihladmrs15'] = 'ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, ĐČыбДрОтД ĐșаĐș ĐŒĐžĐœĐžĐŒŃƒĐŒ ĐŸĐŽĐžĐœ Оз ĐČĐ°Ń€ĐžĐ°ĐœŃ‚ĐŸĐČ!'; +$lang['wihladmrs16'] = 'ĐČĐșĐ»ŃŽŃ‡Đ”ĐœĐŸ'; +$lang['wihladmrs17'] = 'Press %s Cancel %s to cancel the job.'; +$lang['wihladmrs18'] = 'Job(s) was successfully canceled by request!'; +$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 ĐŒĐžĐœŃƒŃ‚Ń‹ ĐżŃ€ĐŸŃŃ‚ĐŸŃ."; +$lang['wiimpaddr'] = 'Address'; +$lang['wiimpaddrdesc'] = 'Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
'; +$lang['wiimpaddrurl'] = 'Imprint URL'; +$lang['wiimpaddrurldesc'] = 'Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field.'; +$lang['wiimpemail'] = 'E-Mail Address'; +$lang['wiimpemaildesc'] = 'Enter your email address here.
Example:
info@example.com
'; +$lang['wiimpnotes'] = 'Additional information'; +$lang['wiimpnotesdesc'] = 'Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed.'; +$lang['wiimpphone'] = 'Phone'; +$lang['wiimpphonedesc'] = 'Enter your telephone number with international area code here.
Example:
+49 171 1234567
'; +$lang['wiimpprivacydesc'] = 'Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed.'; +$lang['wiimpprivurl'] = 'Privacy URL'; +$lang['wiimpprivurldesc'] = 'Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field.'; +$lang['wiimpswitch'] = 'Imprint function'; +$lang['wiimpswitchdesc'] = 'Activate this function to publicly display the imprint and data protection declaration (privacy policy).'; +$lang['wilog'] = 'ПапĐșа Đ»ĐŸĐłĐžŃ€ĐŸĐČĐ°ĐœĐžŃ Ń€Đ°Đ±ĐŸŃ‚Ń‹ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ'; +$lang['wilogdesc'] = 'Đ Đ°ŃĐżĐŸĐ»ĐŸĐ¶Đ”ĐœĐžĐ” Đ»ĐŸĐłĐŸĐČ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐœĐ° ЎОсĐșĐ”.

ĐŸŃ€ĐžĐŒĐ”Ń€:
/var/logs/ranksystem/

ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐČДб-ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐžĐŒĐ”Đ”Ń‚ Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐ” ĐœĐ° рДЎаĐșŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” ŃŃ‚ĐŸĐč папĐșĐž/фаĐčĐ»ĐŸĐČ (chmod).'; +$lang['wilogout'] = 'Đ’Ń‹Ń…ĐŸĐŽ'; +$lang['wimsgmsg'] = 'ĐžĐżĐŸĐČĐ”Ń‰Đ”ĐœĐžĐ”'; +$lang['wimsgmsgdesc'] = 'ЗаЮать ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю, про ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžĐž ĐČŃ‹ŃŃˆĐ”ĐłĐŸ Ń€Đ°ĐœĐłĐ°.

Đ”Đ°ĐœĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ŃŃ ĐżĐŸŃŃ€Đ”ĐŽŃŃ‚ĐČĐŸĐŒ Đ»ĐžŃ‡ĐœŃ‹Ń… ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐč ĐœĐ° TeamSpeak 3 сДрĐČДрД. йДĐșст ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°ĐœĐžĐ” bb-ĐșĐŸĐŽĐŸĐČ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃ‹ Teamspeak.
%s

ĐšŃ€ĐŸĐŒĐ” Ń‚ĐŸĐłĐŸ, таĐșжД ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаются ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” Đ°Ń€ĐłŃƒĐŒĐ”ĐœŃ‚Ń‹ ĐČ ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐž:
%1$s - ĐŽĐœĐž
%2$s - часы
%3$s - ĐŒĐžĐœŃƒŃ‚
%4$s - сДĐșŃƒĐœĐŽŃ‹
%5$s - name of reached servergroup
%6$s - name of the user (recipient)

ĐŸŃ€ĐžĐŒĐ”Ń€:
ПроĐČДт,\\nты ĐŽĐŸŃŃ‚ĐžĐł ĐČысшоĐč Ń€Đ°ĐœĐł, за ĐČŃ€Đ”ĐŒŃ ĐŸĐœĐ»Đ°ĐčĐœ ĐœĐ° сДрĐČДрД ĐČ Ń‚Đ”Ń‡Đ”ĐœĐžĐ” %1$s ĐŽĐœĐ”Đč, %2$s Ń‡Đ°ŃĐŸĐČ Đž %3$s ĐŒĐžĐœŃƒŃ‚ ĐœĐ° ĐœĐ°ŃˆĐ”ĐŒ сДрĐČДрД.[B]ĐŸŃ€ĐŸĐŽĐŸĐ»Đ¶Đ°Đč ĐČ Ń‚ĐŸĐŒ жД ĐŽŃƒŃ…Đ”![/B] ;-)
'; +$lang['wimsgsn'] = 'ĐĐŸĐČĐŸŃŃ‚Đž сДрĐČДра'; +$lang['wimsgsndesc'] = 'Đ—ĐŽĐ”ŃŃŒ уĐșазыĐČĐ°Đ”Ń‚ŃŃ ĐœĐŸĐČĐŸŃŃ‚ĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”, ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Đ”ĐŒĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ ĐČ ĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ” саĐčта "/stats/".

Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐžŃĐżĐŸĐ»ŃŒĐ·ĐČать html-Ń€Đ°Đ·ĐŒĐ”Ń‚Đșу ĐŽĐ»Ń ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ ĐșрасоĐČĐŸĐłĐŸ ĐŸŃ„ĐŸŃ€ĐŒĐ»Đ”ĐœĐžŃ тДĐșста.

ĐŸŃ€ĐžĐŒĐ”Ń€:
<b> - Đ–ĐžŃ€ĐœŃ‹Đč
<u> - ĐŸĐŸĐŽŃ‡Đ”Ń€ĐșĐœŃƒŃ‚Ń‹Đč
<i> - НаĐșĐ»ĐŸĐœĐœŃ‹Đč
<br> - ĐŸĐ”Ń€Đ”ĐœĐŸŃ тДĐșста ĐœĐ° ĐœĐŸĐČую ŃŃ‚Ń€ĐŸĐșу'; +$lang['wimsgusr'] = 'ĐŁĐČĐ”ĐŽĐŸĐŒĐ»Đ”ĐœĐžĐ” про ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžĐž'; +$lang['wimsgusrdesc'] = 'ĐĄĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю ĐŸ ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžĐž Ń€Đ°ĐœĐłĐ°.'; +$lang['winav1'] = 'TeamSpeak'; +$lang['winav10'] = 'ĐĄĐŸĐ”ĐŽĐžĐœĐ”ĐœĐžĐ” с ĐŽĐ°ĐœĐœŃ‹ĐŒ саĐčŃ‚ĐŸĐŒ ĐœĐ” Đ·Đ°Ń‰ĐžŃ‰Đ”ĐœĐŸ с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ %s HTTPS%sĐ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ ĐżĐŸĐČĐ»Đ”Ń‡ŃŒ за ŃĐŸĐ±ĐŸĐč ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒŃ‹ ĐŽĐ»Ń ĐČашДĐč проĐČĐ°Ń‚ĐœĐŸŃŃ‚Đž Đž Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸŃŃ‚Đž! %sĐ”Đ»Ń ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°ĐœĐžŃ HTTPS ĐČаш ĐČДб-сДрĐČДр ĐŽĐŸĐ»Đ¶Đ”Đœ ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČать SSL-ŃĐŸĐ”ĐŽĐžĐœĐ”ĐœĐžĐ”.'; +$lang['winav11'] = 'ĐŸĐŸĐ¶Đ°Đ»ŃƒĐčста, уĐșажОтД ŃĐ”Đ±Ń ĐșаĐș ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐČ ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșах, ĐŒĐ”ĐœŃŽ "TeamSpeak". Đ­Ń‚ĐŸ ĐŸŃ‡Đ”ĐœŃŒ ĐČĐ°Đ¶ĐœĐŸ, таĐș ĐșаĐș ĐČ ŃĐ»ŃƒŃ‡Đ°Đ” ŃƒŃ‚Đ”Ń€Đž ĐżĐ°Ń€ĐŸĐ»Ń ĐČĐŸŃŃŃ‚Đ°ĐœĐŸĐČоть Đ”ĐłĐŸ (ŃˆŃ‚Đ°Ń‚ĐœŃ‹ĐŒĐž срДЎстĐČĐ°ĐŒĐž ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ) ŃŃ‚Đ°ĐœĐ”Ń‚ ĐœĐ”ĐČĐŸĐ·ĐŒĐŸĐ¶ĐœĐŸ!'; +$lang['winav12'] = 'ĐĐŽĐŽĐŸĐœŃ‹'; +$lang['winav13'] = 'General (Stats)'; +$lang['winav14'] = 'You have disabled the navbar of the statistics page. You might want to embed the statistic page with an IFrame into another website? Then have a look in this FAQ:'; +$lang['winav2'] = 'База ĐŽĐ°ĐœĐœŃ‹Ń…'; +$lang['winav3'] = 'ĐĄĐžŃŃ‚Đ”ĐŒĐ°'; +$lang['winav4'] = 'ĐŸŃ€ĐŸŃ‡Đ”Đ”'; +$lang['winav5'] = 'ĐžĐżĐŸĐČĐ”Ń‰Đ”ĐœĐžŃ'; +$lang['winav6'] = 'СтатостоĐșа'; +$lang['winav7'] = 'ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”'; +$lang['winav8'] = 'Запустоть / ĐžŃŃ‚Đ°ĐœĐŸĐČоть Đ±ĐŸŃ‚Đ°'; +$lang['winav9'] = 'Đ”ĐŸŃŃ‚ŃƒĐżĐœĐŸ ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ”!'; +$lang['winxinfo'] = 'ĐšĐŸĐŒĐ°ĐœĐŽĐ° "!nextup"'; +$lang['winxinfodesc'] = "Đ Đ°Đ·Ń€Đ”ŃˆĐ°Đ”Ń‚ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃŃ‚ŃŒ Đ±ĐŸŃ‚Ńƒ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐșĐŸĐŒĐ°ĐœĐŽŃƒ \"!nextup\" Đ»ĐžŃ‡ĐœŃ‹ĐŒ ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”ĐŒ.

ĐŸĐŸŃĐ»Đ” ĐŸŃ‚ĐżŃ€Đ°ĐČĐșĐž ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлю Đ±ŃƒĐŽĐ”Ń‚ ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»Đ”ĐœĐŸ ĐŸŃ‚ĐČĐ”Ń‚ĐœĐŸĐ” ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ” с ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐ”Đč ĐŸ Ń‚Ń€Đ”Đ±ŃƒĐ”ĐŒĐŸĐŒ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐŽĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐłĐŸ ĐżĐŸĐČŃ‹ŃˆĐ”ĐœĐžŃ.

ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - Đ€ŃƒĐœĐșцоя ĐżĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ°. ĐšĐŸĐŒĐ°ĐœĐŽĐ° '!nextup' Đ±ŃƒĐŽĐ”Ń‚ ĐžĐłĐœĐŸŃ€ĐžŃ€ĐŸĐČаться.
ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč Ń€Đ°ĐœĐł - Đ‘ŃƒĐŽĐ”Ń‚ ĐČĐŸĐ·ĐČращаться ĐČŃ€Đ”ĐŒŃ, ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ХЛЕДУПЩЕГО Ń€Đ°ĐœĐłĐ° ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ.
ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - ĐČсД ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” Ń€Đ°ĐœĐłĐž - Đ‘ŃƒĐŽĐ”Ń‚ ĐČĐŸĐ·ĐČращаться ĐČŃ€Đ”ĐŒŃ, ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ВХЕЄ ĐżĐŸŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžŃ… Ń€Đ°ĐœĐłĐŸĐČ ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ."; +$lang['winxmode1'] = 'ĐĐ” сбрасыĐČать'; +$lang['winxmode2'] = 'ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - Ń‚ĐŸĐ»ŃŒĐșĐŸ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐč Ń€Đ°ĐœĐł'; +$lang['winxmode3'] = 'ВĐșĐ»ŃŽŃ‡Đ”ĐœĐ° - ĐČсД ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” Ń€Đ°ĐœĐłĐž'; +$lang['winxmsg1'] = 'ĐĄĐŸĐŸĐ±Ń‰Đ”ĐœĐžĐ”-ĐŸŃ‚ĐČДт'; +$lang['winxmsg2'] = 'ĐĄĐŸĐŸĐ±Ń‰. ĐŸ ĐŒĐ°Đșс.Ń€Đ°ĐœĐłĐ”'; +$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'] = 'ĐŁĐČы, ĐœĐŸ Ń€Đ°ĐœĐ”Đ” ĐČы ĐœĐ” уĐșазалО ĐĐŽĐŒĐžĐœĐžŃŃ‚Ń€Đ°Ń‚ĐŸŃ€Đ° ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ, с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐŽĐŸĐ»Đ¶ĐœĐŸ ĐżŃ€ĐŸĐžĐ·ĐČĐŸĐŽĐžŃ‚ŃŒŃŃ ĐČĐŸŃŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ĐżĐ°Ń€ĐŸĐ»Ń ĐŸŃ‚ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž. Đ•ĐŽĐžĐœŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč ĐŸŃŃ‚Đ°ĐČшОĐčся ŃĐżĐŸŃĐŸĐ± ŃĐ±Ń€ĐŸŃĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ ŃŃ‚ĐŸ ĐŸĐ±ĐœĐŸĐČоть Đ”ĐłĐŸ ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń…. Đ˜ĐœŃŃ‚Ń€ŃƒĐșцоя ĐżĐŸ Ń€ŃƒŃ‡ĐœĐŸĐŒŃƒ ŃĐ±Ń€ĐŸŃŃƒ ĐŽĐŸŃŃ‚ŃƒĐżĐœĐ° Đ·ĐŽĐ”ŃŃŒ:
%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, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČĐŸĐčто'; +$lang['wirtpw6'] = 'ĐŸĐ°Ń€ĐŸĐ»ŃŒ ĐŸŃ‚ ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐ±Ń€ĐŸŃˆĐ”Đœ. IP, с ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐżŃ€ĐŸĐžĐ·ĐČĐ”ĐŽĐ”Đœ ŃĐ±Ń€ĐŸŃ: %s.'; +$lang['wirtpw7'] = 'ĐĄĐ±Ń€ĐŸŃĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ'; +$lang['wirtpw8'] = 'Đ—ĐŽĐ”ŃŃŒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ŃĐ±Ń€ĐŸŃĐžŃ‚ŃŒ ĐżĐ°Ń€ĐŸĐ»ŃŒ ĐŽĐ»Ń ĐČĐŸŃŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœĐžŃ ĐŽĐŸŃŃ‚ŃƒĐżĐ° Đș ĐČДб-ĐżĐ°ĐœĐ”Đ»Đž'; +$lang['wirtpw9'] = 'Đ”Đ»Ń ŃĐ±Ń€ĐŸŃĐ° ĐżĐ°Ń€ĐŸĐ»Ń ĐżĐŸŃ‚Ń€Đ”Đ±ŃƒĐ”Ń‚ŃŃ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”Đ”:'; +$lang['wiselcld'] = 'Đ’Ń‹Đ±ĐŸŃ€ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń'; +$lang['wiselclddesc'] = 'ĐŁĐșажОтД ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»Ń ĐżĐŸ Đ”ĐłĐŸ ĐżĐŸŃĐ»Đ”ĐŽĐœĐ”ĐŒŃƒ ĐœĐžĐșĐœĐ”ĐčĐŒŃƒ ОлО ŃƒĐœĐžĐșĐ°Đ»ŃŒĐœĐŸĐŒŃƒ ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșĐ°Ń‚ĐŸŃ€Ńƒ(UID), ОлО ID ĐČ Đ±Đ°Đ·Đ” ĐŽĐ°ĐœĐœŃ‹Ń… Teamspeak 3 сДрĐČДра.'; +$lang['wisesssame'] = "Session Cookie 'SameSite'"; +$lang['wisesssamedesc'] = 'The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context. More information you can find here:
%s

You can define the SameSite attribute here. This might be necessary/useful, when your are embed the Ranksystem with an iframe on another website.

This is only supported with PHP 7.3 or above.'; +$lang['wishcol'] = 'Show/hide column'; +$lang['wishcolat'] = 'Đ’Ń€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž'; +$lang['wishcoldesc'] = "Switch this column 'on' or 'off' to show or hide it on the stats page.

This allows you to configure the List Rankup (stats/list_rankup.php) individually."; +$lang['wishcolha'] = 'Đ„ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” IP аЎрДса'; +$lang['wishcolha0'] = 'Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” ĐČыĐșĐ»ŃŽŃ‡Đ”ĐœĐŸ'; +$lang['wishcolha1'] = 'Đ±Đ”Đ·ĐŸĐżĐ°ŃĐœĐŸĐ” Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”'; +$lang['wishcolha2'] = 'Đ±Ń‹ŃŃ‚Ń€ĐŸĐ” Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžĐ” (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ)'; +$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['wishcolot'] = 'Đ’Ń€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ'; +$lang['wishdef'] = 'ĐšĐŸĐ»ĐŸĐœĐșа ŃĐŸŃ€Ń‚ĐžŃ€ĐŸĐČĐșĐž ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ'; +$lang['wishdef2'] = '2nd column sort'; +$lang['wishdef2desc'] = 'Define the second sorting level for the List Rankup page.'; +$lang['wishdefdesc'] = 'ОпрДЎДлОтД ĐșĐŸĐ»ĐŸĐœĐșу, ĐżĐŸ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐč ŃĐ»Đ”ĐŽŃƒĐ”Ń‚ ŃĐŸŃ€Ń‚ĐžŃ€ĐŸĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” ĐŸĐ±Ń‰Đ”Đč статостоĐșĐž.'; +$lang['wishexcld'] = 'ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО'; +$lang['wishexclddesc'] = 'ĐŸĐŸĐșазыĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ list_rankup.php,
ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ОсĐșĐ»ŃŽŃ‡Đ”ĐœŃ‹ Đž ĐœĐ” участĐČуют ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['wishexgrp'] = 'ИсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Đ” группы'; +$lang['wishexgrpdesc'] = "ĐŸĐŸĐșазыĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ list_rankup.php, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐœĐ°Ń…ĐŸĐŽŃŃ‚ŃŃ ĐČ ŃĐżĐžŃĐșĐ” 'ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐœŃ‹Ń… ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč' Đž ĐœĐ” ĐŽĐŸĐ»Đ¶ĐœŃ‹ учотыĐČаться ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ."; +$lang['wishhicld'] = 'ĐŸĐŸĐ»ŃŒĐ·ĐŸĐČатДлО с ĐČŃ‹ŃŃˆĐžĐŒ Ń€Đ°ĐœĐłĐŸĐŒ'; +$lang['wishhiclddesc'] = 'ĐŸĐŸĐșазыĐČать ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐČ list_rankup.php, ĐŽĐŸŃŃ‚ĐžĐłŃˆĐžŃ… ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸĐłĐŸ ŃƒŃ€ĐŸĐČĐœŃ ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ” Ń€Đ°ĐœĐłĐŸĐČ.'; +$lang['wishmax'] = 'Server usage graph'; +$lang['wishmax0'] = 'show all stats'; +$lang['wishmax1'] = 'hide max. clients'; +$lang['wishmax2'] = 'hide channel'; +$lang['wishmax3'] = 'hide max. clients + channel'; +$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$lang['wishnav'] = 'ĐŸĐŸĐșазыĐČать ĐœĐ°ĐČогацою ĐżĐŸ ŃĐžŃŃ‚Đ”ĐŒĐ”'; +$lang['wishnavdesc'] = "ĐŸĐŸĐșазыĐČать лО ĐœĐ°ĐČогацою ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” on 'stats/'.

ЕслО эта ĐŸĐżŃ†ĐžŃ ĐŸŃ‚ĐșĐ»ŃŽŃ‡Đ”ĐœĐ° Ń‚ĐŸ ĐœĐ°ĐČогацоя ĐœĐ° саĐčтД ĐœĐ” Đ±ŃƒĐŽĐ”Ń‚ ĐŸŃ‚ĐŸĐ±Ń€Đ°Đ¶Đ°Ń‚ŃŒŃŃ.
Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČĐ·ŃŃ‚ŃŒ Đ»ŃŽĐ±ŃƒŃŽ ŃŃ‚Ń€Đ°ĐœĐžŃ†Ńƒ, ĐœĐ°ĐżŃ€ĐžĐŒĐ”Ń€ 'stats/list_rankup.php' Đž ĐČŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ Дё ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ фрДĐčĐŒŃ‹ ĐČ ĐČĐ°ŃˆĐ”ĐŒ ŃŃƒŃ‰Đ”ŃŃ‚ĐČŃƒŃŽŃ‰Đ”ĐŒ саĐčтД ОлО Ń„ĐŸŃ€ŃƒĐŒĐ”."; +$lang['wishsort'] = 'ĐĄĐŸŃ€Ń‚ĐžŃ€ĐŸĐČĐșа ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ'; +$lang['wishsort2'] = '2nd sorting order'; +$lang['wishsort2desc'] = 'This will define the order for the second level sorting.'; +$lang['wishsortdesc'] = 'ВыбДрОтД ĐœŃƒĐ¶ĐœŃ‹Đč топ ŃĐŸŃ€Ń‚ĐžŃ€ĐŸĐČĐșĐž ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ ĐŸĐ±Ń‰Đ”Đč статостоĐșĐž.'; +$lang['wistcodesc'] = 'ĐŁĐșажОтД ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐșĐŸĐ»ĐžŃ‡Đ”ŃŃ‚ĐČĐŸ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč Đș сДрĐČĐ”Ń€Ńƒ ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžŃ.'; +$lang['wisttidesc'] = 'ĐŁĐșажОтД ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐČŃ€Đ”ĐŒŃ (ĐČ Ń‡Đ°ŃĐ°Ń…), ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸĐ” ĐŽĐ»Ń ĐżĐŸĐ»ŃƒŃ‡Đ”ĐœĐžŃ ĐŽĐŸŃŃ‚ĐžĐ¶Đ”ĐœĐžŃ.'; +$lang['wistyle'] = 'ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒŃĐșĐžĐč ŃŃ‚ĐžĐ»ŃŒ'; +$lang['wistyledesc'] = "ОпрДЎДлОтД ĐŸŃ‚Đ»ĐžŃ‡ĐœŃ‹Đč, ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒŃĐșĐžĐč ŃŃ‚ĐžĐ»ŃŒ (ŃŃ‚ĐžĐ»ŃŒ) ĐŽĐ»Ń ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
Đ­Ń‚ĐŸŃ‚ ŃŃ‚ĐžĐ»ŃŒ Đ±ŃƒĐŽĐ”Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČаться ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” статостоĐșĐž Đž ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”ĐčсД.

Đ Đ°Đ·ĐŒĐ”ŃŃ‚ĐžŃ‚Đ” сĐČĐŸĐč ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč ŃŃ‚ĐžĐ»ŃŒ ĐČ ĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ” 'style' ĐČ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœĐŸĐŒ ĐżĐŸĐŽĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ”.
Đ˜ĐŒŃ ĐżĐŸĐŽĐșĐ°Ń‚Đ°Đ»ĐŸĐłĐ° ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ŃĐ”Ń‚ ĐžĐŒŃ ŃŃ‚ĐžĐ»Ń.

ХтОлО, ĐœĐ°Ń‡ĐžĐœĐ°ŃŽŃ‰ĐžĐ”ŃŃ с 'TSN_', ĐżĐŸŃŃ‚Đ°ĐČĐ»ŃŃŽŃ‚ŃŃ ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ. ĐžĐœĐž Đ±ŃƒĐŽŃƒŃ‚ ĐŸĐ±ĐœĐŸĐČĐ»ŃŃ‚ŃŒŃŃ ĐČ Đ±ŃƒĐŽŃƒŃ‰ĐžŃ… ĐČĐ”Ń€ŃĐžŃŃ….
В ĐœĐžŃ… ĐœĐ” ŃĐ»Đ”ĐŽŃƒĐ”Ń‚ ĐŽĐ”Đ»Đ°Ń‚ŃŒ ĐœĐžĐșаĐșох ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐč!
ĐžĐŽĐœĐ°ĐșĐŸ ĐŸĐœĐž ĐŒĐŸĐłŃƒŃ‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČаться ĐșаĐș ŃˆĐ°Đ±Đ»ĐŸĐœ. ĐĄĐșĐŸĐżĐžŃ€ŃƒĐčтД ŃŃ‚ĐžĐ»ŃŒ ĐČ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč ĐșĐ°Ń‚Đ°Đ»ĐŸĐł, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČĐœĐ”ŃŃ‚Đž ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐČ ĐœĐ”ĐŒ.

ĐąŃ€Đ”Đ±ŃƒŃŽŃ‚ŃŃ ĐŽĐČа фаĐčла CSS. ĐžĐŽĐžĐœ ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž Đž ĐŸĐŽĐžĐœ ĐŽĐ»Ń ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса.
йаĐșжД ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐČĐșĐ»ŃŽŃ‡Đ”Đœ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč JavaScript. Đ­Ń‚ĐŸ ĐœĐ”ĐŸĐ±ŃĐ·Đ°Ń‚Đ”Đ»ŃŒĐœĐŸ.

ĐšĐŸĐœĐČĐ”ĐœŃ†ĐžŃ ĐžĐŒĐ”ĐœĐŸĐČĐ°ĐœĐžŃ CSS:
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœŃ‹Đč 'ST.css' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž (/stats/)
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœŃ‹Đč 'WI.css' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса (/webinterface/)


ĐĐ°Đ·ĐČĐ°ĐœĐžĐ” папĐșĐž ŃĐŸ ŃŃ‚ĐžĐ»Đ”ĐŒ ĐŸĐżŃ€Đ”ĐŽĐ”Đ»ŃĐ”Ń‚ ĐžĐŒŃ ŃŃ‚ĐžĐ»Ń.

ХтОлО, ĐœĐ°Ń‡ĐžĐœĐ°ŃŽŃ‰ĐžĐ”ŃŃ с 'TSN_', ĐżĐŸŃŃ‚Đ°ĐČĐ»ŃŃŽŃ‚ŃŃ ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ. ĐžĐœĐž Đ±ŃƒĐŽŃƒŃ‚ ĐŸĐ±ĐœĐŸĐČĐ»ŃŃ‚ŃŒŃŃ ĐČ Đ±ŃƒĐŽŃƒŃ‰ĐžŃ… ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžŃŃ….
ĐĐ” рДĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ĐČĐœĐŸŃĐžŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ĐČ ŃŃ‚Đž стОлО!
ĐžĐŽĐœĐ°ĐșĐŸ ĐŸĐœĐž ĐŒĐŸĐłŃƒŃ‚ ŃĐ»ŃƒĐ¶ĐžŃ‚ŃŒ ŃˆĐ°Đ±Đ»ĐŸĐœĐŸĐŒ. ĐĄĐșĐŸĐżĐžŃ€ŃƒĐčтД ŃŃ‚ĐžĐ»ŃŒ ĐČ ĐŸŃ‚ĐŽĐ”Đ»ŃŒĐœŃƒŃŽ папĐșу, Ń‡Ń‚ĐŸĐ±Ń‹ ĐČĐœĐŸŃĐžŃ‚ŃŒ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžŃ.

ĐąŃ€Đ”Đ±ŃƒŃŽŃ‚ŃŃ ĐŽĐČа фаĐčла CSS. ĐžĐŽĐžĐœ ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž, ĐŽŃ€ŃƒĐłĐŸĐč ĐŽĐ»Ń ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса.
йаĐșжД ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐČĐșĐ»ŃŽŃ‡Đ”Đœ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœŃ‹Đč JavaScript. ĐĐŸ ŃŃ‚ĐŸ ĐœĐ”ĐŸĐ±ŃĐ·Đ°Ń‚Đ”Đ»ŃŒĐœĐŸ.

ĐšĐŸĐœĐČĐ”ĐœŃ†ĐžŃ ĐžĐŒĐ”ĐœĐŸĐČĐ°ĐœĐžŃ JavaScript:
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœĐŸĐ” 'ST.js' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ статостоĐșĐž (/stats/)
- ЀОĐșŃĐžŃ€ĐŸĐČĐ°ĐœĐœĐŸĐ” 'WI.js' ĐŽĐ»Ń ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ ĐČДб-ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčса (/webinterface/)


ЕслО ĐČы Ń…ĐŸŃ‚ĐžŃ‚Đ” ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČоть сĐČĐŸĐč ŃŃ‚ĐžĐ»ŃŒ ĐŽŃ€ŃƒĐłĐžĐŒ Đ»ŃŽĐŽŃĐŒ, ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐŸŃ‚ĐżŃ€Đ°ĐČоть Đ”ĐłĐŸ ĐœĐ° ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ŃƒŃŽ ŃĐ»Đ”ĐșŃ‚Ń€ĐŸĐœĐœŃƒŃŽ ĐżĐŸŃ‡Ń‚Ńƒ:

%s

Мы ĐČĐșĐ»ŃŽŃ‡ĐžĐŒ Đ”ĐłĐŸ ĐČ ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐŒ ĐČыпусĐșĐ”!"; +$lang['wisupidle'] = 'Đ Đ”Đ¶ĐžĐŒ ĐČŃ€Đ”ĐŒĐ”ĐœĐž'; +$lang['wisupidledesc'] = "ĐŸŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»Đ”ĐœŃ‹ ĐŽĐČа Ń€Đ”Đ¶ĐžĐŒĐ°, ĐżĐŸ ĐșĐŸŃ‚ĐŸŃ€Ń‹ĐŒ Đ±ŃƒĐŽĐ”Ń‚ ĐČысчоĐČаться Ń€Đ°ĐœĐł ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč:

1) Đ’Ń€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ(ОбщДД ĐČŃ€Đ”ĐŒŃ): ОбщДД ĐČŃ€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐœĐ° сДрĐČДрД, сĐșлаЎыĐČĐ°Đ”Ń‚ŃŃ Оз \"АĐșтоĐČĐœĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž\" Đž \"ĐČŃ€Đ”ĐŒĐ”ĐœĐž бДзЎДĐčстĐČоя\"(ĐșĐŸĐ»ĐŸĐœĐșа 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ' ĐČ 'stats/list_rankup.php')

2) АĐșтоĐČĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ(Đ’Ń€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž): Đ’Ń€Đ”ĐŒŃ, ĐșĐŸŃ‚ĐŸŃ€ĐŸĐ” ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ ĐœĐ” ĐœĐ°Ń…ĐŸĐŽĐžĐ»ŃŃ ĐČ Đ±Đ”Đ·ĐŽĐ”ĐčстĐČОО. Đ—ĐœĐ°Ń‡Đ”ĐœĐžĐ” ŃŃ‚ĐŸĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐČысчотыĐČĐ°Đ”Ń‚ŃŃ ĐżŃƒŃ‚Đ”ĐŒ ĐČŃ‹Ń‡ĐžŃ‚Đ°ĐœĐžŃ \"ĐČŃ€Đ”ĐŒĐ”ĐœĐž бДзЎДĐčстĐČоя Оз\" Оз \"ĐžĐ±Ń‰Đ”ĐłĐŸ ĐČŃ€Đ”ĐŒĐ”ĐœĐž ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐœĐ° сДрĐČДрД\" (ĐšĐŸĐ»ĐŸĐœĐșа 'ĐĄŃƒĐŒĐŒ. ĐČŃ€Đ”ĐŒŃ аĐșтоĐČĐœĐŸŃŃ‚Đž' ĐČ 'stats/list_rankup.php').

ĐĐ” рДĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ŃĐŒĐ”ĐœĐ° Ń€Đ”Đ¶ĐžĐŒĐ° про ужД ĐŸŃ‚Ń€Đ°Đ±ĐŸŃ‚Đ°ĐČŃˆĐ”ĐŒ ĐŽĐŸĐ»ĐłĐžĐč ŃŃ€ĐŸĐș ŃŃ‚Đ°Ń€ĐŸĐŒ Ń€Đ”Đ¶ĐžĐŒĐ”, ĐœĐŸ ĐŽĐŸĐżŃƒŃŃ‚ĐžĐŒĐŸ."; +$lang['wisvconf'] = 'ĐĄĐŸŃ…Ń€Đ°ĐœĐžŃ‚ŃŒ'; +$lang['wisvinfo1'] = 'Đ’ĐœĐžĐŒĐ°ĐœĐžĐ”! Про ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐž Ń€Đ”Đ¶ĐžĐŒĐ° Ń…ŃŃˆĐžŃ€ĐŸĐČĐ°ĐœĐžŃ IP Đ°ĐŽŃ€Đ”ŃĐŸĐČ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ Ń‡Ń‚ĐŸ бы ĐșажЎыĐč Оз ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč ĐżĐ”Ń€Đ”ĐżĐŸĐŽĐșĐ»ŃŽŃ‡ĐžĐ»ŃŃ Đș сДрĐČĐ”Ń€Ńƒ TS3 ОлО ĐŸĐœĐž ĐœĐ” ŃĐŒĐŸĐłŃƒŃ‚ ŃĐžĐœŃ…Ń€ĐŸĐœĐžĐ·ĐžŃ€ĐŸĐČаться ŃĐŸ ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ”Đč статостоĐșĐž.'; +$lang['wisvres'] = 'Đ”Đ»Ń ĐżŃ€ĐžĐœŃŃ‚ĐžŃ ĐČĐœĐ”ŃĐ”ĐœĐœŃ‹Ń… праĐČĐŸĐș ĐČĐ°ĐŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐżĐ”Ń€Đ”Đ·Đ°ĐłŃ€ŃƒĐ·ĐžŃ‚ŃŒ ŃĐžŃŃ‚Đ”ĐŒŃƒ Ń€Đ°ĐœĐłĐŸĐČ! %s'; +$lang['wisvsuc'] = 'Đ˜Đ·ĐŒĐ”ĐœĐ”ĐœĐžŃ ŃƒŃĐżĐ”ŃˆĐœĐŸ ŃĐŸŃ…Ń€Đ°ĐœĐ”ĐœŃ‹!'; +$lang['witime'] = 'Đ§Đ°ŃĐŸĐČĐŸĐč ĐżĐŸŃŃ'; +$lang['witimedesc'] = 'Đ’Ń‹Đ±Ń€Đ°Ń‚ŃŒ Ń‡Đ°ŃĐŸĐČĐŸĐč ĐżĐŸŃŃ сДрĐČДра.

ОĐșазыĐČаДт ĐČĐ»ĐžŃĐœĐžĐ” ĐœĐ° ĐČŃ€Đ”ĐŒŃ, ĐŸŃ‚Ń€Đ°Đ¶Đ°Đ”ĐŒĐŸĐ” ĐČ Đ»ĐŸĐł-фаĐčлД ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ (ranksystem.log).'; +$lang['wits3avat'] = 'ЗаЎДржĐșа Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐž аĐČĐ°Ń‚Đ°Ń€ĐŸĐČ'; +$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['wits3pre'] = 'ĐŸŃ€Đ”Ń„ĐžĐșс ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ Đ±ĐŸŃ‚Đ°'; +$lang['wits3predesc'] = "На сДрĐČДрД TeamSpeak ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” сĐČŃĐ·Đ°Ń‚ŃŒŃŃ с Đ±ĐŸŃ‚ĐŸĐŒ Ranksystem чДрДз чат. ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ Đ±ĐŸŃ‚Đ° ĐŸŃ‚ĐŒĐ”Ń‡Đ”ĐœŃ‹ ĐČĐŸŃĐșĐ»ĐžŃ†Đ°Ń‚Đ”Đ»ŃŒĐœŃ‹ĐŒ Đ·ĐœĐ°ĐșĐŸĐŒ '!'. ĐŸŃ€Đ”Ń„ĐžĐșс ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ ĐŽĐ»Ń ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžĐșацоо ĐșĐŸĐŒĐ°ĐœĐŽ ĐŽĐ»Ń Đ±ĐŸŃ‚Đ° ĐșаĐș таĐșĐŸĐČых.

Đ­Ń‚ĐŸŃ‚ прДфОĐșс ĐŒĐŸĐ¶ĐœĐŸ Đ·Đ°ĐŒĐ”ĐœĐžŃ‚ŃŒ Đ»ŃŽĐ±Ń‹ĐŒ ĐŽŃ€ŃƒĐłĐžĐŒ Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹ĐŒ прДфОĐșŃĐŸĐŒ. Đ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ ĐżĐŸĐœĐ°ĐŽĐŸĐ±ĐžŃ‚ŃŒŃŃ, ДслО ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃŽŃ‚ŃŃ ĐŽŃ€ŃƒĐłĐžĐ” Đ±ĐŸŃ‚Ń‹ с ĐżĐŸŃ…ĐŸĐ¶ĐžĐŒĐž ĐșĐŸĐŒĐ°ĐœĐŽĐ°ĐŒĐž.

ĐĐ°ĐżŃ€ĐžĐŒĐ”Ń€, ĐșĐŸĐŒĐ°ĐœĐŽĐ° Đ±ĐŸŃ‚Đ° ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ Đ±ŃƒĐŽĐ”Ń‚ ĐČŃ‹ĐłĐ»ŃĐŽĐ”Ń‚ŃŒ таĐș:
!help


ЕслО прДфОĐșс Đ·Đ°ĐŒĐ”ĐœĐžŃ‚ŃŒ ĐœĐ° '#', ĐșĐŸĐŒĐ°ĐœĐŽĐ° Đ±ŃƒĐŽĐ”Ń‚ ĐČŃ‹ĐłĐ»ŃĐŽĐ”Ń‚ŃŒ таĐș:
#help
"; +$lang['wits3qnm'] = 'ĐžŃĐœĐŸĐČĐœ. ĐœĐžĐș Đ±ĐŸŃ‚Đ°'; +$lang['wits3qnmdesc'] = 'НоĐșĐœĐ”ĐčĐŒ, ĐżĐŸĐŽ ĐșĐŸŃ‚ĐŸŃ€Ń‹ĐŒ ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ аĐČŃ‚ĐŸŃ€ĐžĐ·ĐŸĐČыĐČаться ĐœĐ° сДрĐČДрД.
ĐŁĐ±Đ”ĐŽĐžŃ‚Đ”ŃŃŒ, Ń‡Ń‚ĐŸ ĐŸĐœĐŸ ĐœĐ” Đ·Đ°ĐœŃŃ‚ĐŸ ĐșĐ”ĐŒ-Ń‚ĐŸ ĐŽŃ€ŃƒĐłĐžĐŒ.'; +$lang['wits3querpw'] = 'TS3 Query-ĐŸĐ°Ń€ĐŸĐ»ŃŒ'; +$lang['wits3querpwdesc'] = 'Đ›ĐŸĐłĐžĐœ ĐŽĐ»Ń аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžĐž ĐœĐ° сДрĐČДрД
ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ: serveradmin
ĐšĐŸĐœĐ”Ń‡ĐœĐŸ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” уĐșĐ°Đ·Đ°Ń‚ŃŒ ĐŽŃ€ŃƒĐłĐŸĐč Đ»ĐŸĐłĐžĐœ ĐŽĐ»Ń ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹Đ” Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžŃ проĐČОлДгОĐč ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°Đčто ĐœĐ°:
%s'; +$lang['wits3querusr'] = 'TS3 Query-Đ›ĐŸĐłĐžĐœ'; +$lang['wits3querusrdesc'] = 'TeamSpeak 3 query-Đ›ĐŸĐłĐžĐœ
ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ: serveradmin
ĐšĐŸĐœĐ”Ń‡ĐœĐŸ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” уĐșĐ°Đ·Đ°Ń‚ŃŒ ĐŽŃ€ŃƒĐłĐŸĐč Đ»ĐŸĐłĐžĐœ ĐŽĐ»Ń ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ.
ĐĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹Đ” Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžŃ проĐČОлДгОĐč ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐœĐ°Đčто ĐœĐ°:
%s'; +$lang['wits3query'] = 'TS3 Query-ĐŸĐŸŃ€Ń‚'; +$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'] = 'Đ“ĐŸĐ»ĐŸŃĐŸĐČĐŸĐč ĐżĐŸŃ€Ń‚ сДрĐČДра
ĐŸĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ: 9987 (UDP)
Đ­Ń‚ĐŸŃ‚ ĐżĐŸŃ€Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ Teamspeak 3 ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐŒ ĐŽĐ»Ń ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș сДрĐČĐ”Ń€Ńƒ.'; +$lang['witsz'] = 'ĐžĐłŃ€Đ°ĐœĐžŃ‡Đ”ĐœĐžĐ” Đ»ĐŸĐł-фаĐčла'; +$lang['witszdesc'] = 'МаĐșŃĐžĐŒĐ°Đ»ŃŒĐœŃ‹Đč Ń€Đ°Đ·ĐŒĐ”Ń€ Đ»ĐŸĐł-фаĐčла, про прДĐČŃ‹ŃˆĐ”ĐœĐžĐž ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐżŃ€ĐŸĐžĐ·ĐŸĐčЎДт Ń€ĐŸŃ‚Đ°Ń†ĐžŃ.

ĐŁĐșажОтД Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ” ĐČ ĐŒĐ”ĐłĐ°Đ±Đ°Đčтах.

ĐšĐŸĐłĐŽĐ° уĐČДлОчОĐČаДтД Đ·ĐœĐ°Ń‡Đ”ĐœĐžĐ”, Đ±ŃƒĐŽŃŒŃ‚Đ” уĐČĐ”Ń€Đ”ĐœŃ‹ ĐČ Ń‚ĐŸĐŒ Ń‡Ń‚ĐŸ у ĐČас ĐŽĐŸŃŃ‚Đ°Ń‚ĐŸŃ‡ĐœĐŸ сĐČĐŸĐ±ĐŸĐŽĐœĐŸĐłĐŸ ĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœŃŃ‚ĐČа ĐœĐ° ЎОсĐșĐ”. ХлОшĐșĐŸĐŒ Đ±ĐŸĐ»ŃŒŃˆĐžĐ” Đ»ĐŸĐłĐž ĐŒĐŸĐłŃƒŃ‚ проĐČДстО Đș ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒĐ°ĐŒ с ĐżŃ€ĐŸĐžĐ·ĐČĐŸĐŽĐžŃ‚Đ”Đ»ŃŒĐœĐŸŃŃ‚ŃŒŃŽ!

Đ˜Đ·ĐŒĐ”ĐœĐ”ĐœĐžĐ” ĐŽĐ°ĐœĐœĐŸĐłĐŸ ĐżĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Đ° ĐżĐŸĐŽĐ”ĐčстĐČŃƒĐ”Ń‚ про ĐżĐ”Ń€Đ”Đ·Đ°ĐżŃƒŃĐșĐ” ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ. ЕслО Ń€Đ°Đ·ĐŒĐ”Ń€ Đ»ĐŸĐł-фаĐčла ĐČŃ‹ŃˆĐ” уĐșĐ°Đ·Đ°ĐœĐœĐŸĐłĐŸ Đ·ĐœĐ°Ń‡Đ”ĐœĐžŃ - Ń€ĐŸŃ‚Đ°Ń†ĐžŃ ĐżŃ€ĐŸĐžĐ·ĐŸĐčЎДт ĐŒĐłĐœĐŸĐČĐ”ĐœĐœĐŸ.'; +$lang['wiupch'] = 'ĐšĐ°ĐœĐ°Đ» ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč'; +$lang['wiupch0'] = 'ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃ‹Đč'; +$lang['wiupch1'] = 'бДта'; +$lang['wiupchdesc'] = 'ĐŸĐŸ ĐŒĐ”Ń€Đ” ĐČŃ‹Ń…ĐŸĐŽĐ° ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč ŃĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐ°. Đ—ĐŽĐ”ŃŃŒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐČŃ‹Đ±Ń€Đ°Ń‚ŃŒ Đ¶Đ”Đ»Đ°Đ”ĐŒŃ‹Đč ĐșĐ°ĐœĐ°Đ» ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč.

ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃ‹Đč (ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ): Вы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃƒŃŽ ĐČДрсОю. Đ Đ”ĐșĐŸĐŒĐ”ĐœĐŽŃƒĐ”Ń‚ŃŃ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ĐČ ĐżŃ€ĐŸĐŽĐ°ĐșŃˆĐœĐ”.

бДта: Вы ĐżĐŸĐ»ŃƒŃ‡Đ°Đ”Ń‚Đ” ĐżĐŸŃĐ»Đ”ĐŽĐœŃŽŃŽ бДта-ĐČДрсОю. Đ€ŃƒĐœĐșŃ†ĐžĐŸĐœĐ°Đ»ŃŒĐœŃ‹Đ” ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžŃ ĐżŃ€ĐžŃ…ĐŸĐŽŃŃ‚ быстрДД, ĐŸĐŽĐœĐ°ĐșĐŸ росĐș ĐČĐŸĐ·ĐœĐžĐșĐœĐŸĐČĐ”ĐœĐžŃ Đ±Đ°ĐłĐŸĐČ ĐČŃ‹ŃˆĐ”. Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД ĐœĐ° сĐČĐŸĐč страх Đž росĐș!

Про ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐžĐž ĐșĐ°ĐœĐ°Đ»Đ° ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč с бДта ĐœĐ° ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœŃ‹Đč ĐČĐ”Ń€ŃĐžŃ ŃĐžŃŃ‚Đ”ĐŒŃ‹ Ń€Đ°ĐœĐłĐŸĐČ ĐœĐ” ĐżĐŸĐœĐžĐ·ĐžŃ‚ŃŃ. ĐĄĐžŃŃ‚Đ”ĐŒĐ° Ń€Đ°ĐœĐłĐŸĐČ Đ±ŃƒĐŽĐ”Ń‚ ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐ° ĐŽĐŸ ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœĐŸĐč ĐČДрсОО, ĐČŃ‹ĐżŃƒŃ‰Đ”ĐœĐœĐŸĐč ĐżĐŸŃĐ»Đ” бДта-ĐČДрсОО.'; +$lang['wiverify'] = 'ĐšĐ°ĐœĐ°Đ» ĐŽĐ»Ń ĐżŃ€ĐŸĐČДрĐșĐž'; +$lang['wiverifydesc'] = 'Đ—ĐŽĐ”ŃŃŒ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ уĐșĐ°Đ·Đ°Ń‚ŃŒ ID ĐșĐ°ĐœĐ°Đ»Đ°, ĐČ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐŒ Đ±ŃƒĐŽĐ”Ń‚ ĐżŃ€ĐŸŃ…ĐŸĐŽĐžŃ‚ŃŒ ĐżŃ€ĐŸĐČДрĐșа ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč.

Đ­Ń‚ĐŸŃ‚ ĐșĐ°ĐœĐ°Đ» ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ ĐœĐ°ŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ ĐœĐ° сДрĐČДрД TS3 ĐČŃ€ŃƒŃ‡ĐœŃƒŃŽ. Đ˜ĐŒŃ, проĐČОлДгОО Đž ĐŽŃ€ŃƒĐłĐžĐ” ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž ĐŒĐŸĐłŃƒŃ‚ Đ±Ń‹Ń‚ŃŒ ŃƒŃŃ‚Đ°ĐœĐŸĐČĐ»Đ”ĐœŃ‹ ĐżĐŸ ĐČĐ°ŃˆĐ”ĐŒŃƒ Đ¶Đ”Đ»Đ°ĐœĐžŃŽ; ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ Đ»ĐžŃˆŃŒ ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČоть ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ ĐČĐŸĐ·ĐŒĐŸĐ¶ĐœĐŸŃŃ‚ŃŒ ĐČŃ…ĐŸĐŽĐžŃ‚ŃŒ ĐČ ĐŽĐ°ĐœĐœŃ‹Đč ĐșĐ°ĐœĐ°Đ»!
Đ­Ń‚ĐŸ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒĐŸ Ń‚ĐŸĐ»ŃŒĐșĐŸ ĐČ ŃĐ»ŃƒŃ‡Đ°Đ” ДслО ĐżĐŸŃĐ”Ń‚ĐžŃ‚Đ”Đ»ŃŒ ĐœĐ” ŃĐŒĐŸĐ¶Đ”Ń‚ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžŃ†ĐžŃ€ĐŸĐČаться ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ.

Đ”Đ»Ń ĐżŃ€ĐŸĐČДрĐșĐž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃŒ сДрĐČДра ĐŽĐŸĐ»Đ¶Đ”Đœ Đ±Ń‹Ń‚ŃŒ ĐČĐœŃƒŃ‚Ń€Đž ĐŽĐ°ĐœĐœĐŸĐłĐŸ ĐșĐ°ĐœĐ°Đ»Đ°. ĐąĐ°ĐŒ ĐŸĐœ ŃĐŒĐŸĐ¶Đ”Ń‚ ĐżĐŸĐ»ŃƒŃ‡ĐžŃ‚ŃŒ Đșлюч, с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐșĐŸŃ‚ĐŸŃ€ĐŸĐłĐŸ ĐŸĐœ ĐžĐŽĐ”ĐœŃ‚ĐžŃ„ĐžŃ†ĐžŃ€ŃƒĐ”Ń‚ ŃĐ”Đ±Ń ĐœĐ° ŃŃ‚Ń€Đ°ĐœĐžŃ†Đ” статостоĐșĐž.'; +$lang['wivlang'] = 'ĐŻĐ·Ń‹Đș'; +$lang['wivlangdesc'] = 'ВыбДрОтД ŃĐ·Ń‹Đș, ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”ĐŒŃ‹Đč ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°ĐœĐłĐŸĐČ ĐżĐŸ ŃƒĐŒĐŸĐ»Ń‡Đ°ĐœĐžŃŽ.

ĐŻĐ·Ń‹Đș саĐčта ĐżĐŸ-ĐżŃ€Đ”Đ¶ĐœĐ”ĐŒŃƒ Đ±ŃƒĐŽĐ”Ń‚ ĐŽĐŸŃŃ‚ŃƒĐżĐ”Đœ ĐŽĐ»Ń пДрДĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ ĐČŃĐ”ĐŒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°Ń‚Đ”Đ»ŃĐŒ.'; diff --git a/languages/nations_az.php b/languages/nations_az.php index b1d0c0e..3b3dd42 100644 --- a/languages/nations_az.php +++ b/languages/nations_az.php @@ -1,251 +1,251 @@ - \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + \ No newline at end of file + Date: Sun, 9 Jul 2023 15:24:21 +0200 Subject: [PATCH 05/10] Apply PHP-CS-Fixer code-style to `other/` --- other/_functions.php | 2458 ++++++++++++++++++---------------- other/config.php | 228 ++-- other/dbconfig.php | 12 +- other/load_addons_config.php | 29 +- other/phpcommand.php | 58 +- other/session_handling.php | 20 +- 6 files changed, 1470 insertions(+), 1335 deletions(-) diff --git a/other/_functions.php b/other/_functions.php index 64ed3c8..9b75dcf 100644 --- a/other/_functions.php +++ b/other/_functions.php @@ -1,1170 +1,1296 @@ -getMessage(); - $output['loglvl'] = 3; - } - try { - $wcmd = "cmd /C ".$GLOBALS['phpcommand']." ".dirname(__DIR__).DIRECTORY_SEPARATOR."jobs".DIRECTORY_SEPARATOR."bot.php"; - $oExec = $WshShell->Run($wcmd, 0, false); - } catch (Exception $e) { - $output['rc'] = 1; - $output['msg'] = "Error due starting the Ranksystem Bot (exec command enabled?): ".$e->getMessage(); - $output['loglvl'] = 3; - } - try { - exec("wmic process where \"Name LIKE \"%php%\" AND CommandLine LIKE \"%bot.php%\"\" get ProcessId", $pid); - } catch (Exception $e) { - $output['rc'] = 1; - $output['msg'] = "Error due getting process list (wmic command enabled?): ".$e->getMessage(); - $output['loglvl'] = 3; - } - if(isset($pid[1]) && is_numeric($pid[1])) { - exec("echo ".$pid[1]." > ".$GLOBALS['pidfile']); - if (file_exists($GLOBALS['autostart'])) { - unlink($GLOBALS['autostart']); - } - $output['rc'] = 0; - $output['msg'] = "Ranksystem Bot successfully started!"; - $output['loglvl'] = 4; - usleep(80000); - $output['log'] = getlog('40',explode(',',"CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG,NONE"),NULL,NULL); - } else { - $output['rc'] = 1; - $output['msg'] = "Starting the Ranksystem Bot failed!"; - $output['loglvl'] = 3; - } - } else { - exec($GLOBALS['phpcommand']." ".dirname(__DIR__).DIRECTORY_SEPARATOR."jobs".DIRECTORY_SEPARATOR."bot.php >/dev/null 2>&1 & echo $! > ".$GLOBALS['pidfile']); - if (check_bot_process() == FALSE) { - $output['rc'] = 1; - $output['msg'] = "Starting the Ranksystem Bot failed!"; - $output['loglvl'] = 3; - } else { - if (file_exists($GLOBALS['autostart'])) { - unlink($GLOBALS['autostart']); - } - $output['rc'] = 0; - $output['msg'] = "Ranksystem Bot successfully started!"; - $output['loglvl'] = 4; - usleep(80000); - $output['log'] = getlog('40',explode(',',"CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG,NONE"),NULL,NULL); - } - } - } else { - $output['rc'] = 0; - $output['msg'] = "The Ranksystem is already running."; - $output['loglvl'] = 4; - } - } else { - $output['rc'] = 1; - $output['msg'] = check_log_permissions()." Canceled start request!"; - $output['loglvl'] = 3; - } - return $output; -} - -function bot_stop() { - $output = array(); - if (check_log_permissions() === TRUE) { - if (check_bot_process() == FALSE) { - if(is_file($GLOBALS['pidfile'])) { - unlink($GLOBALS['pidfile']); - } - $output['rc'] = 0; - $output['msg'] = "The Ranksystem seems not to be running."; - $output['loglvl'] = 4; - } else { - $pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); - unlink($GLOBALS['pidfile']); - $count_check=0; - while (check_bot_process($pid) == TRUE) { - sleep(1); - $count_check ++; - if($count_check > 10) { - if (substr(php_uname(), 0, 7) == "Windows") { - exec("taskkill /F /PID ".$pid); - } else { - exec("kill -9 ".$pid); - } - $output['rc'] = 1; - $output['msg'] = "Stop command received! Bot does not react, process killed!"; - $output['loglvl'] = 3; - break; - } - } - if (check_bot_process($pid) == TRUE) { - $output['rc'] = 1; - $output['msg'] = "Stopping the Ranksystem Bot failed!"; - $output['loglvl'] = 3; - } else { - file_put_contents($GLOBALS['autostart'],""); - $output['rc'] = 0; - $output['msg'] = "Ranksystem Bot successfully stopped!"; - $output['loglvl'] = 4; - usleep(80000); - $output['log'] = getlog('40',explode(',',"CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG,NONE"),NULL,NULL); - } - } - } else { - $output['rc'] = 1; - $output['msg'] = check_log_permissions()." Canceled stop request!"; - $output['loglvl'] = 3; - } - return $output; -} - -function check_bot_process($pid = NULL) { - if (substr(php_uname(), 0, 7) == "Windows") { - if(!empty($pid)) { - exec("wmic process where \"processid=".$pid."\" get processid 2>nul", $result); - if(isset($result[1]) && is_numeric($result[1])) { - return TRUE; - } else { - return FALSE; - } - } else { - if (file_exists($GLOBALS['pidfile'])) { - $pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); - exec("wmic process where \"processid=".$pid."\" get processid 2>nul", $result); - if(isset($result[1]) && is_numeric($result[1])) { - return TRUE; - } else { - return FALSE; - } - } else { - return FALSE; - } - } - } else { - if(!empty($pid)) { - $result = str_replace(array("\r", "\n"), '', shell_exec("ps ".$pid)); - if (strstr($result, $pid)) { - return TRUE; - } else { - return FALSE; - } - } else { - if (file_exists($GLOBALS['pidfile'])) { - $check_pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); - $result = str_replace(array("\r", "\n"), '', shell_exec("ps ".$check_pid)); - if (strstr($result, $check_pid)) { - return TRUE; - } else { - return FALSE; - } - } else { - return FALSE; - } - } - } -} - -function check_log_permissions() { - if(!is_writable($GLOBALS['logpath'])) { - return "!!!! Logs folder is not writable !!!!"; - } elseif(file_exists($GLOBALS['logfile']) && !is_writable($GLOBALS['logfile'])) { - return "!!!! Log file is not writable !!!!"; - } else { - return TRUE; - } -} - -function check_shutdown() { - if(!file_exists($GLOBALS['pidfile'])) { - shutdown(NULL,4,"Received signal to stop!"); - } -} - -function date_format_to($format, $syntax) { - $strf_syntax = [ - '%O', '%d', '%a', '%e', '%A', '%u', '%w', '%j', - '%V', - '%B', '%m', '%b', '%-m', - '%G', '%Y', '%y', - '%P', '%p', '%l', '%I', '%H', '%M', '%S', - '%z', '%Z', - '%s' - ]; - $date_syntax = [ - 'S', 'd', 'D', 'j', 'l', 'N', 'w', 'z', - 'W', - 'F', 'm', 'M', 'n', - 'o', 'Y', 'y', - 'a', 'A', 'g', 'h', 'H', 'i', 's', - 'O', 'T', - 'U' - ]; - switch ( $syntax ) { - case 'date': - $from = $strf_syntax; - $to = $date_syntax; - break; - - case 'strf': - $from = $date_syntax; - $to = $strf_syntax; - break; - - default: - return false; - } - $pattern = array_map( - function ( $s ) { - return '/(? true - ); - } else { - $dboptions = array(); - } - try { - $mysqlcon = new PDO($dbserver, $dbuser, $dbpass, $dboptions); - return $mysqlcon; - } catch (PDOException $e) { - echo 'Delivered Parameter: '.$dbserver.'

'; - echo 'Database Connection failed: '.$e->getMessage().'

Check:
- You have already installed the Ranksystem? Run install.php first!
- Is the database reachable?
- You have installed all needed PHP extenstions? Have a look here for Windows or Linux?'; $err_lvl = 3; - if($exit!=NULL) exit; - } - } -} - -function enter_logfile($loglevel,$logtext,$norotate = false) { - if($loglevel!=9 && $loglevel > $GLOBALS['logs_debug_level']) return; - $file = $GLOBALS['logfile']; - 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($GLOBALS['logs_timezone']))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n"); - fclose($loghandle); - if($norotate == false && filesize($file) > ($GLOBALS['logs_rotation_size'] * 1048576)) { - $loghandle = fopen($file, 'a'); - fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($GLOBALS['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($GLOBALS['logs_timezone']))->format("Y-m-d H:i:s.u ")." NOTICE Rotated logfile...\n"); - fclose($loghandle); - } -} - -function error_handling($msg,$type = NULL) { - if(is_string($msg) && is_string($type) && strstr($type, '#') && strstr($msg, '#####')) { - $type_arr = explode('#', $type); - $msg_arr = explode('#####', $msg); - $cnt = 0; - - foreach($msg_arr as $msg) { - switch ($type_arr[$cnt]) { - case NULL: echo '
'; break; - case 0: echo '
'; break; - case 1: echo '
'; break; - case 2: echo '
'; break; - case 3: echo '
'; break; - } - echo '',$msg_arr[$cnt],'
'; - $cnt++; - } - } else { - switch ($type) { - case NULL: echo '
'; break; - case 0: echo '
'; break; - case 1: echo '
'; break; - case 2: echo '
'; break; - case 3: echo '
'; break; - } - echo '',$msg,'
'; - } -} - -function exception_client_code($code) { - switch ($code) { - case 1: - return "1 - Channel Exception"; - case 2: - return "2 - ServerGroup Exception"; - case 3: - return "3 - Client Exception"; - } -} - -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 getlog($number_lines,$filters,$filter2,$inactivefilter = NULL) { - $lines=array(); - if(file_exists($GLOBALS['logfile'])) { - $fp = fopen($GLOBALS['logfile'], "r"); - $buffer=array(); - while($line = fgets($fp, 4096)) { - array_push($buffer, htmlspecialchars($line)); - } - fclose($fp); - $buffer = array_reverse($buffer); - $lastfilter = 'init'; - foreach($buffer as $line) { - if(substr($line, 0, 2) != "20" && in_array($lastfilter, $filters)) { - array_push($lines, $line); - if (count($lines)>$number_lines) { - break; - } - continue; - } - foreach($filters as $filter) { - if(($filter != NULL && strstr($line, $filter) && $filter2 == NULL) || ($filter2 != NULL && strstr($line, $filter2) && $filter != NULL && strstr($line, $filter))) { - if($filter == "CRITICAL" || $filter == "ERROR") { - array_push($lines, ''.$line.''); - } elseif($filter == "WARNING") { - array_push($lines, ''.$line.''); - } else { - array_push($lines, $line); - } - $lastfilter = $filter; - if (count($lines)>$number_lines) { - break 2; - } - break; - } elseif($inactivefilter != NULL) { - foreach($inactivefilter as $defilter) { - if($defilter != NULL && strstr($line, $defilter)) { - $lastfilter = $defilter; - } - } - } - } - } - } else { - $lines[] = "No log entry found...\n"; - $lines[] = "The logfile will be created with next startup.\n"; - } - return $lines; -} - -function get_language() { - $rspathhex = get_rspath(); - if(isset($_GET["lang"])) { - if(is_dir($GLOBALS['langpath'])) { - foreach(scandir($GLOBALS['langpath']) as $file) { - if ('.' === $file || '..' === $file || is_dir($file)) continue; - $sep_lang = preg_split("/[._]/", $file); - if(isset($sep_lang[0]) && $sep_lang[0] == 'core' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[4]) && strtolower($sep_lang[4]) == 'php') { - if(strtolower($_GET["lang"]) == strtolower($sep_lang[1])) { - $_SESSION[$rspathhex.'language'] = $sep_lang[1]; - return $sep_lang[1]; - } - } - } - } - - } - if(isset($_SESSION[$rspathhex.'language'])) { - return $_SESSION[$rspathhex.'language']; - } - if(isset($GLOBALS['default_language'])) { - return $GLOBALS['default_language']; - } - return "en"; -} - -function get_percentage($max_value, $value) { - if($max_value>0) { - return (round(($value/$max_value)*100)); - } else { - return 0; - } -} - -function get_rspath() { - return 'rs_'.dechex(crc32(__DIR__)).'_'; -} - -function get_style($default_style) { - $rspathhex = get_rspath(); - if(isset($_GET["style"])) { - if(is_dir($GLOBALS['stylepath'])) { - foreach(scandir($GLOBALS['stylepath']) as $folder) { - if ('.' === $folder || '..' === $folder) continue; - if(is_dir($GLOBALS['stylepath'].DIRECTORY_SEPARATOR.$folder)) { - foreach(scandir($GLOBALS['stylepath'].DIRECTORY_SEPARATOR.$folder) as $file) { - if ('.' === $file || '..' === $file || is_dir($file)) continue; - $sep_style = preg_split("/[._]/", $file); - if($file == "ST.css") { - $_SESSION[$rspathhex.'style'] = $folder; - return $folder; - } - } - } - } - } - - } - if(isset($_SESSION[$rspathhex.'style'])) { - return $_SESSION[$rspathhex.'style']; - } - if(isset($default_style)) { - return $default_style; - } - return NULL; -} - -function human_readable_size($bytes,$lang) { - $size = array($lang['size_byte'],$lang['size_kib'],$lang['size_mib'],$lang['size_gib'],$lang['size_tib'],$lang['size_pib'],$lang['size_eib'],$lang['size_zib'],$lang['size_yib']); - $factor = floor((strlen($bytes) - 1) / 3); - return sprintf("%.2f", $bytes / pow(1024, $factor)) . ' ' . @$size[$factor]; -} - -function list_rankup($cfg,$lang,$sqlhisgroup,$value,$adminlogin,$nation,$grpcount,$rank = NULL) { - $return = ''; - if ($cfg['stats_column_rank_switch'] == 1 || $adminlogin == 1) { - if($value['except'] == 2 || $value['except'] == 3) { - $return .= ''; - } else { - $return .= ''.$value['rank'].''; - } - } - if ($adminlogin == 1) { - $return .= ''.htmlspecialchars($value['name']).''; - } elseif ($cfg['stats_column_client_name_switch'] == 1) { - $return .= ''.htmlspecialchars($value['name']).''; - } - if ($adminlogin == 1) { - $return .= ''.$value['uuid'].''; - } elseif ($cfg['stats_column_unique_id_switch'] == 1) { - $return .= ''.$value['uuid'].''; - } - if ($cfg['stats_column_client_db_id_switch'] == 1 || $adminlogin == 1) - $return .= ''.$value['cldbid'].''; - if ($cfg['stats_column_last_seen_switch'] == 1 || $adminlogin == 1) { - if ($value['online'] == 1) { - $return .= 'online'; - } else { - $return .= ''.date('Y-m-d H:i:s',$value['lastseen']).''; - } - } - if ($cfg['stats_column_nation_switch'] == 1 || $adminlogin == 1) { - if(strtoupper($value['nation']) == 'XX' || $value['nation'] == NULL) { - $return .= ''; - } else { - $return .= ''; - } - } - if ($cfg['stats_column_version_switch'] == 1 || $adminlogin == 1) { - $return .= ''.htmlspecialchars($value['version']).''; - } - if ($cfg['stats_column_platform_switch'] == 1 || $adminlogin == 1) { - $return .= ''.htmlspecialchars($value['platform']).''; - } - if ($cfg['stats_column_online_time_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['count'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['count'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_idle_time_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['idle'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['idle'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_active_time_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['count']) && is_numeric($value['idle'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".(round($value['count'])-round($value['idle']))); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_online_day_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['count_day'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['count_day'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_idle_day_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['idle_day'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['idle_day'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_active_day_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['active_day'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['active_day'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_online_week_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['count_week'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['count_week'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_idle_week_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['idle_week'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['idle_week'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_active_week_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['active_week'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['active_week'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_online_month_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['count_month'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['count_month'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_idle_month_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['idle_month'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['idle_month'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_active_month_switch'] == 1 || $adminlogin == 1) { - if (is_numeric($value['active_month'])) { - $return .= ''; - $dtF = new DateTime("@0"); - $dtT = new DateTime("@".round($value['active_month'])); - $return .= $dtF->diff($dtT)->format($cfg['default_date_format']).''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_current_server_group_switch'] == 1 || $adminlogin == 1) { - if ($value['grpid'] == 0) { - $return .= ''; - } elseif(isset($sqlhisgroup[$value['grpid']]) && $sqlhisgroup[$value['grpid']]['iconid'] != 0) { - $return .= 'groupicon'.$sqlhisgroup[$value['grpid']]['sgidname'].''; - } elseif(isset($sqlhisgroup[$value['grpid']])) { - $return .= ''.$sqlhisgroup[$value['grpid']]['sgidname'].''; - } else { - $return .= ''.$lang['unknown'].''; - } - } - if ($cfg['stats_column_current_group_since_switch'] == 1 || $adminlogin == 1) { - if ($value['grpsince'] == 0) { - $return .= ''; - } else { - $return .= ''.date('Y-m-d H:i:s',$value['grpsince']).''; - } - } - if ($cfg['stats_column_next_rankup_switch'] == 1 || $adminlogin == 1) { - $return .= ''.$dtF->diff($dtT)->format($cfg['default_date_format']).''; - } elseif ($value['except'] == 0 || $value['except'] == 1) { - $return .= '0 '.$lang['time_sec'].'">0'; - } elseif ($value['except'] == 2 || $value['except'] == 3) { - $return .= '0 '.$lang['time_sec'].'">0'; - } else { - $return .= $lang['errukwn'].''; - } - } - if ($cfg['stats_column_next_server_group_switch'] == 1 || $adminlogin == 1) { - if ($grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) { - $return .= ''.$lang['highest'].''; - } elseif ($value['except'] == 2 || $value['except'] == 3) { - $return .= ''.$lang['listexcept'].''; - } elseif (isset($sqlhisgroup[$rank['group']]) && $sqlhisgroup[$rank['group']]['iconid'] != 0) { - $return .= 'missed_icon'.$sqlhisgroup[$rank['group']]['sgidname'].''; - } elseif (isset($sqlhisgroup[$rank['group']])) { - $return .= ''.$sqlhisgroup[$rank['group']]['sgidname'].''; - } else { - $return .= ''; - } - } - return $return; -} - -function mime2extension($mimetype) { - $mimearr = [ - 'image/bmp' => 'bmp', - 'image/x-bmp' => 'bmp', - 'image/x-bitmap' => 'bmp', - 'image/x-xbitmap' => 'bmp', - 'image/x-win-bitmap' => 'bmp', - 'image/x-windows-bmp' => 'bmp', - 'image/ms-bmp' => 'bmp', - 'image/x-ms-bmp' => 'bmp', - 'image/gif' => 'gif', - 'image/jpeg' => 'jpg', - 'image/pjpeg' => 'jpg', - 'image/x-portable-bitmap' => 'pbm', - 'image/x-portable-graymap' => 'pgm', - 'image/png' => 'png', - 'image/x-png' => 'png', - 'image/x-portable-pixmap' => 'ppm', - 'image/svg+xml' => 'svg', - 'image/x-xbitmap' => 'xbm', - 'image/x-xpixmap' => 'xpm' - ]; - return isset($mimearr[$mimetype]) ? $mimearr[$mimetype] : FALSE; -} - -function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring) { - $pagination = ''; - return $pagination; -} - -function php_error_handling($err_code, $err_msg, $err_file, $err_line) { - global $cfg; - switch ($err_code) { - case E_USER_ERROR: $loglevel = 2; break; - case E_USER_WARNING: $loglevel = 3; break; - case E_USER_NOTICE: $loglevel = 4; break; - default: $loglevel = 4; - } - if(substr($err_msg, 0, 15) != "password_hash()" && substr($err_msg, 0, 11) != "fsockopen()") { - enter_logfile($loglevel,$err_code.": ".$err_msg." on line ".$err_line." in ".$err_file); - } - return true; -} - -function rem_session_ts3() { - $rspathhex = get_rspath(); - unset($_SESSION[$rspathhex.'admin']); - unset($_SESSION[$rspathhex.'clientip']); - unset($_SESSION[$rspathhex.'connected']); - unset($_SESSION[$rspathhex.'inactivefilter']); - unset($_SESSION[$rspathhex.'language']); - unset($_SESSION[$rspathhex.'logfilter']); - unset($_SESSION[$rspathhex.'logfilter2']); - unset($_SESSION[$rspathhex.'multiple']); - unset($_SESSION[$rspathhex.'newversion']); - unset($_SESSION[$rspathhex.'number_lines']); - unset($_SESSION[$rspathhex.'password']); - unset($_SESSION[$rspathhex.'serverport']); - unset($_SESSION[$rspathhex.'temp_cldbid']); - unset($_SESSION[$rspathhex.'temp_name']); - unset($_SESSION[$rspathhex.'temp_uuid']); - unset($_SESSION[$rspathhex.'token']); - unset($_SESSION[$rspathhex.'tsavatar']); - unset($_SESSION[$rspathhex.'tscldbid']); - unset($_SESSION[$rspathhex.'tsconnections']); - unset($_SESSION[$rspathhex.'tscreated']); - unset($_SESSION[$rspathhex.'tsname']); - unset($_SESSION[$rspathhex.'tsuid']); - unset($_SESSION[$rspathhex.'upinfomsg']); - unset($_SESSION[$rspathhex.'username']); - unset($_SESSION[$rspathhex.'uuid_verified']); -} - -function select_channel($channellist, $cfg_cid, $multiple=NULL) { - if(isset($channellist) && count($channellist)>0) { - $options = ''; - if($multiple == 1) $options = ' multiple=""'; - $selectbox = ''; - } elseif ($multiple === 1) { - $selectbox = ''; - $selectbox .= '
'; - } else { - $selectbox = ''; - $selectbox .= ''; - } - return $selectbox; -} - -function set_language($language) { - if(is_dir($GLOBALS['langpath'])) { - foreach(scandir($GLOBALS['langpath']) as $file) { - if ('.' === $file || '..' === $file || is_dir($file)) continue; - $sep_lang = preg_split("/[._]/", $file); - if(isset($sep_lang[0]) && $sep_lang[0] == 'core' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[4]) && strtolower($sep_lang[4]) == 'php') { - if(strtolower($language) == strtolower($sep_lang[1])) { - include($GLOBALS['langpath'].DIRECTORY_SEPARATOR.'/core_'.$sep_lang[1].'_'.$sep_lang[2].'_'.$sep_lang[3].'.'.$sep_lang[4]); - $_SESSION[get_rspath().'language'] = $sep_lang[1]; - $required_lang = 1; - break; - } - } - } - } - if(!isset($required_lang)) { - include($GLOBALS['langpath'].DIRECTORY_SEPARATOR.'core_en_english_gb.php'); - } - return $lang; -} - -function set_session_ts3($mysqlcon,$cfg,$lang,$dbname) { - $hpclientip = getclientip(); - $rspathhex = get_rspath(); - - $allclients = $mysqlcon->query("SELECT `u`.`uuid`,`u`.`cldbid`,`u`.`name`,`u`.`firstcon`,`s`.`total_connections` FROM `$dbname`.`user` AS `u` LEFT JOIN `$dbname`.`stats_user` AS `s` ON `u`.`uuid`=`s`.`uuid` WHERE `online`='1'")->fetchAll(); - $iptable = $mysqlcon->query("SELECT `uuid`,`iphash`,`ip` FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); - if(!isset($_SESSION[$rspathhex.'connected']) && isset($cfg['stats_news_html'])) $_SESSION[$rspathhex.'stats_news_html'] = $cfg['stats_news_html']; - $_SESSION[$rspathhex.'connected'] = 0; - $_SESSION[$rspathhex.'tsname'] = $lang['stag0016']; - $_SESSION[$rspathhex.'serverport'] = $cfg['teamspeak_voice_port']; - $_SESSION[$rspathhex.'multiple'] = array(); - - - if($cfg['rankup_hash_ip_addresses_mode'] == 2) { - $salt = md5(dechex(crc32(dirname(__DIR__)))); - $hashedip = crypt($hpclientip, '$2y$10$'.$salt.'$'); - } - - foreach ($allclients as $client) { - if(isset($_SESSION[$rspathhex.'uuid_verified']) && $_SESSION[$rspathhex.'uuid_verified'] != $client['uuid']) { - continue; - } - $verify = FALSE; - if($cfg['rankup_hash_ip_addresses_mode'] == 1) { - if (isset($iptable[$client['uuid']]['iphash']) && $iptable[$client['uuid']]['iphash'] != NULL && password_verify($hpclientip, $iptable[$client['uuid']]['iphash'])) { - $verify = TRUE; - } - } elseif($cfg['rankup_hash_ip_addresses_mode'] == 2) { - if (isset($iptable[$client['uuid']]['iphash']) && $hashedip == $iptable[$client['uuid']]['iphash'] && $iptable[$client['uuid']]['iphash'] != NULL) { - $verify = TRUE; - } - } else { - if (isset($iptable[$client['uuid']]['ip']) && $hpclientip == $iptable[$client['uuid']]['ip'] && $iptable[$client['uuid']]['ip'] != NULL) { - $verify = TRUE; - } - } - if ($verify == TRUE) { - $_SESSION[$rspathhex.'tsname'] = htmlspecialchars($client['name']); - if(isset($_SESSION[$rspathhex.'tsuid']) && $_SESSION[$rspathhex.'tsuid'] != $client['uuid']) { - $_SESSION[$rspathhex.'multiple'][$client['uuid']] = htmlspecialchars($client['name']); - $_SESSION[$rspathhex.'tsname'] = "verification needed (multiple)!"; - unset($_SESSION[$rspathhex.'admin']); - } elseif (!isset($_SESSION[$rspathhex.'tsuid'])) { - $_SESSION[$rspathhex.'multiple'][$client['uuid']] = htmlspecialchars($client['name']); - } - $_SESSION[$rspathhex.'tsuid'] = $client['uuid']; - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $auuid) { - if ($_SESSION[$rspathhex.'tsuid'] == $auuid) { - $_SESSION[$rspathhex.'admin'] = TRUE; - } - } - } - $_SESSION[$rspathhex.'tscldbid'] = $client['cldbid']; - if ($client['firstcon'] == 0) { - $_SESSION[$rspathhex.'tscreated'] = $lang['unknown']; - } else { - $_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $client['firstcon']); - } - if ($client['total_connections'] != NULL) { - $_SESSION[$rspathhex.'tsconnections'] = $client['total_connections']; - } else { - $_SESSION[$rspathhex.'tsconnections'] = 0; - } - $convert = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'); - $uuidasbase16 = ''; - for ($i = 0; $i < 20; $i++) { - $char = ord(substr(base64_decode($_SESSION[$rspathhex.'tsuid']), $i, 1)); - $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; - $uuidasbase16 .= $convert[$char & 0x0F]; - } - if (is_file('../avatars/' . $uuidasbase16 . '.png')) { - $_SESSION[$rspathhex.'tsavatar'] = $uuidasbase16 . '.png'; - } else { - $_SESSION[$rspathhex.'tsavatar'] = "none"; - } - $_SESSION[$rspathhex.'connected'] = 1; - $_SESSION[$rspathhex.'language'] = $cfg['default_language']; - $_SESSION[$rspathhex.'style'] = $cfg['default_style']; - } - } -} - -function sendmessage($ts3, $cfg, $uuid, $msg, $targetmode, $targetid=NULL, $erromsg=NULL, $loglevel=NULL, $successmsg=NULL, $nolog=NULL) { - try { - if(strlen($msg) > 1024) { - $fragarr = explode("##*##", wordwrap($msg, 1022, "##*##", TRUE), 1022); - foreach($fragarr as $frag) { - usleep($cfg['teamspeak_query_command_delay']); - if ($targetmode==2 && $targetid!=NULL) { - $ts3->serverGetSelected()->channelGetById($targetid)->message("\n".$frag); - if($nolog==NULL) enter_logfile(6,"sendmessage fragment to channel (ID: $targetid): ".$frag); - } elseif ($targetmode==3) { - $ts3->serverGetSelected()->message("\n".$frag); - if($nolog==NULL) enter_logfile(6,"sendmessage fragment to server: ".$frag); - } elseif ($targetmode==1 && $targetid!=NULL) { - $ts3->serverGetSelected()->clientGetById($targetid)->message("\n".$frag); - if($nolog==NULL) enter_logfile(6,"sendmessage fragment to connectionID $targetid (uuid $uuid): ".$frag); - } else { - $ts3->serverGetSelected()->clientGetByUid($uuid)->message("\n".$frag); - if($nolog==NULL) enter_logfile(6,"sendmessage fragment to uuid $uuid (connectionID $targetid): ".$frag); - } - } - } else { - usleep($cfg['teamspeak_query_command_delay']); - if ($targetmode==2 && $targetid!=NULL) { - $ts3->serverGetSelected()->channelGetById($targetid)->message($msg); - if($nolog==NULL) enter_logfile(6,"sendmessage to channel (ID: $targetid): ".$msg); - } elseif ($targetmode==3) { - $ts3->serverGetSelected()->message($msg); - if($nolog==NULL) enter_logfile(6,"sendmessage to server: ".$msg); - } elseif ($targetmode==1 && $targetid!=NULL) { - $ts3->serverGetSelected()->clientGetById($targetid)->message($msg); - if($nolog==NULL) enter_logfile(6,"sendmessage to connectionID $targetid (uuid $uuid): ".$msg); - } else { - $ts3->serverGetSelected()->clientGetByUid($uuid)->message($msg); - if($nolog==NULL) enter_logfile(6,"sendmessage to uuid $uuid (connectionID $targetid): ".$msg); - } - - } - if($successmsg!=NULL) { - enter_logfile(5,$successmsg); - } - } catch (Exception $e) { - if($loglevel!=NULL) { - enter_logfile($loglevel,$erromsg." TS3: ".$e->getCode().': '.$e->getMessage()); - } else { - enter_logfile(3,"sendmessage: ".$e->getCode().': '.$e->getMessage().", targetmode: $targetmode, targetid: $targetid"); - } - } -} - -function shutdown($mysqlcon,$loglevel,$reason,$nodestroypid = TRUE) { - if($nodestroypid === TRUE) { - if (file_exists($GLOBALS['pidfile'])) { - unlink($GLOBALS['pidfile']); - } - } - if($nodestroypid === TRUE) { - enter_logfile($loglevel,$reason." Shutting down!"); - enter_logfile(9,"###################################################################"); - } else { - enter_logfile($loglevel,$reason." Ignore request!"); - } - if(isset($mysqlcon)) { - $mysqlcon = null; - } - exit; -} - -function sort_channel_tree($channellist) { - foreach($channellist as $cid => $results) { - $channel['channel_order'][$results['pid']][$results['channel_order']] = $cid; - $channel['pid'][$results['pid']][] = $cid; - } - - foreach($channel['pid'] as $pid => $pid_value) { - $channel_order = 0; - $count_pid = count($pid_value); - for($y=0; $y<$count_pid; $y++) { - foreach($channellist as $cid => $value) { - if(isset($channel['channel_order'][$pid][$channel_order]) && $channel['channel_order'][$pid][$channel_order] == $cid) { - $channel['sorted'][$pid][$cid] = $channellist[$cid]; - $channel_order = $cid; - } - } - } - } - - function channel_list($channel, $channel_list, $pid, $sub) { - if($channel['sorted'][$pid]) { - foreach($channel['sorted'][$pid] as $cid => $value) { - $channel_list[$cid] = $value; - $channel_list[$cid]['sub_level'] = $sub; - if(isset($channel['pid'][$cid])) { - $sub++; - $channel_list[$cid]['has_childs'] = 1; - $channel_list = channel_list($channel, $channel_list, $cid, $sub); - $sub--; - } - } - } - return $channel_list; - } - - $sorted_channel = channel_list($channel, array(), 0, 1); - return $sorted_channel; -} - -function sort_options($lang) { - $arr_sort_options = array( - array('option' => 'rank', 'title' => $lang['listrank'], 'icon' => 'fas fa-hashtag', 'config' => 'stats_column_rank_switch'), - array('option' => 'name', 'title' => $lang['listnick'], 'icon' => 'fas fa-user', 'config' => 'stats_column_client_name_switch'), - array('option' => 'uuid', 'title' => $lang['listuid'], 'icon' => 'fas fa-id-card', 'config' => 'stats_column_unique_id_switch'), - array('option' => 'cldbid', 'title' => $lang['listcldbid'], 'icon' => 'fas fa-database', 'config' => 'stats_column_client_db_id_switch'), - array('option' => 'lastseen', 'title' => $lang['listseen'], 'icon' => 'fas fa-user-clock', 'config' => 'stats_column_last_seen_switch'), - array('option' => 'nation', 'title' => $lang['listnat'], 'icon' => 'fas fa-globe-europe', 'config' => 'stats_column_nation_switch'), - array('option' => 'version', 'title' => $lang['listver'], 'icon' => 'fas fa-tag', 'config' => 'stats_column_version_switch'), - array('option' => 'platform', 'title' => $lang['listpla'], 'icon' => 'fas fa-server', 'config' => 'stats_column_platform_switch'), - array('option' => 'count', 'title' => $lang['listsumo'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_time_switch'), - array('option' => 'idle', 'title' => $lang['listsumi'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_idle_time_switch'), - array('option' => 'active', 'title' => $lang['listsuma'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_active_time_switch'), - array('option' => 'count_day', 'title' => $lang['listsumo'].' '.$lang['stix0013'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_day_switch'), - array('option' => 'idle_day', 'title' => $lang['listsumi'].' '.$lang['stix0013'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_idle_day_switch'), - array('option' => 'active_day', 'title' => $lang['listsuma'].' '.$lang['stix0013'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_active_day_switch'), - array('option' => 'count_week', 'title' => $lang['listsumo'].' '.$lang['stix0014'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_week_switch'), - array('option' => 'idle_week', 'title' => $lang['listsumi'].' '.$lang['stix0014'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_idle_week_switch'), - array('option' => 'active_week', 'title' => $lang['listsuma'].' '.$lang['stix0014'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_active_week_switch'), - array('option' => 'count_month', 'title' => $lang['listsumo'].' '.$lang['stix0015'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_month_switch'), - array('option' => 'idle_month', 'title' => $lang['listsumi'].' '.$lang['stix0015'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_idle_month_switch'), - array('option' => 'active_month', 'title' => $lang['listsuma'].' '.$lang['stix0015'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_active_month_switch'), - array('option' => 'grpid', 'title' => $lang['listacsg'], 'icon' => 'fas fa-clipboard-check', 'config' => 'stats_column_current_server_group_switch'), - array('option' => 'grpidsince', 'title' => $lang['listgrps'], 'icon' => 'fas fa-history', 'config' => 'stats_column_current_group_since_switch'), - array('option' => 'nextup', 'title' => $lang['listnxup'], 'icon' => 'fas fa-clock', 'config' => 'stats_column_next_rankup_switch'), - array('option' => 'active', 'title' => $lang['listnxsg'], 'icon' => 'fas fa-clipboard-list', 'config' => 'stats_column_next_server_group_switch') - ); - return $arr_sort_options; -} - -function start_session($cfg) { - ini_set('session.cookie_httponly', 1); - ini_set('session.use_strict_mode', 1); - ini_set('session.sid_length', 128); - if(isset($cfg['default_header_xss'])) { - header("X-XSS-Protection: ".$cfg['default_header_xss']); - } else { - header("X-XSS-Protection: 1; mode=block"); - } - if(!isset($cfg['default_header_contenttyp']) || $cfg['default_header_contenttyp'] == 1) { - header("X-Content-Type-Options: nosniff"); - } - if(isset($cfg['default_header_frame']) && $cfg['default_header_frame'] != NULL) { - header("X-Frame-Options: ".$cfg['default_header_frame']); - } - - if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") { - $prot = 'https'; - ini_set('session.cookie_secure', 1); - if(!headers_sent()) { - header("Strict-Transport-Security: max-age=31536000; includeSubDomains; preload;"); - } - } else { - $prot = 'http'; - } - - if(isset($cfg['default_header_origin']) && $cfg['default_header_origin'] != NULL && $cfg['default_header_origin'] != 'null') { - if(strstr($cfg['default_header_origin'], ',')) { - $origin_arr = explode(',', $cfg['default_header_origin']); - if(isset($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'], $origin_arr)) { - header("Access-Control-Allow-Origin: ".$_SERVER['HTTP_ORIGIN']); - } - } else { - header("Access-Control-Allow-Origin: ".$cfg['default_header_origin']); - } - } - - if(version_compare(PHP_VERSION, '7.3.0', '>=')) { - if(isset($cfg['default_session_sametime'])) { - ini_set('session.cookie_samesite', $cfg['default_session_sametime']); - } else { - ini_set('session.cookie_samesite', "Strict"); - } - } - - session_start(); - return $prot; -} -?> \ No newline at end of file + });'; + } + + return $selectbox; +} + +function set_language($language) +{ + if (is_dir($GLOBALS['langpath'])) { + foreach (scandir($GLOBALS['langpath']) as $file) { + if ('.' === $file || '..' === $file || is_dir($file)) { + continue; + } + $sep_lang = preg_split('/[._]/', $file); + if (isset($sep_lang[0]) && $sep_lang[0] == 'core' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[4]) && strtolower($sep_lang[4]) == 'php') { + if (strtolower($language) == strtolower($sep_lang[1])) { + include $GLOBALS['langpath'].DIRECTORY_SEPARATOR.'/core_'.$sep_lang[1].'_'.$sep_lang[2].'_'.$sep_lang[3].'.'.$sep_lang[4]; + $_SESSION[get_rspath().'language'] = $sep_lang[1]; + $required_lang = 1; + break; + } + } + } + } + if (! isset($required_lang)) { + include $GLOBALS['langpath'].DIRECTORY_SEPARATOR.'core_en_english_gb.php'; + } + + return $lang; +} + +function set_session_ts3($mysqlcon, $cfg, $lang, $dbname) +{ + $hpclientip = getclientip(); + $rspathhex = get_rspath(); + + $allclients = $mysqlcon->query("SELECT `u`.`uuid`,`u`.`cldbid`,`u`.`name`,`u`.`firstcon`,`s`.`total_connections` FROM `$dbname`.`user` AS `u` LEFT JOIN `$dbname`.`stats_user` AS `s` ON `u`.`uuid`=`s`.`uuid` WHERE `online`='1'")->fetchAll(); + $iptable = $mysqlcon->query("SELECT `uuid`,`iphash`,`ip` FROM `$dbname`.`user_iphash`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE); + if (! isset($_SESSION[$rspathhex.'connected']) && isset($cfg['stats_news_html'])) { + $_SESSION[$rspathhex.'stats_news_html'] = $cfg['stats_news_html']; + } + $_SESSION[$rspathhex.'connected'] = 0; + $_SESSION[$rspathhex.'tsname'] = $lang['stag0016']; + $_SESSION[$rspathhex.'serverport'] = $cfg['teamspeak_voice_port']; + $_SESSION[$rspathhex.'multiple'] = []; + + if ($cfg['rankup_hash_ip_addresses_mode'] == 2) { + $salt = md5(dechex(crc32(dirname(__DIR__)))); + $hashedip = crypt($hpclientip, '$2y$10$'.$salt.'$'); + } + + foreach ($allclients as $client) { + if (isset($_SESSION[$rspathhex.'uuid_verified']) && $_SESSION[$rspathhex.'uuid_verified'] != $client['uuid']) { + continue; + } + $verify = false; + if ($cfg['rankup_hash_ip_addresses_mode'] == 1) { + if (isset($iptable[$client['uuid']]['iphash']) && $iptable[$client['uuid']]['iphash'] != null && password_verify($hpclientip, $iptable[$client['uuid']]['iphash'])) { + $verify = true; + } + } elseif ($cfg['rankup_hash_ip_addresses_mode'] == 2) { + if (isset($iptable[$client['uuid']]['iphash']) && $hashedip == $iptable[$client['uuid']]['iphash'] && $iptable[$client['uuid']]['iphash'] != null) { + $verify = true; + } + } else { + if (isset($iptable[$client['uuid']]['ip']) && $hpclientip == $iptable[$client['uuid']]['ip'] && $iptable[$client['uuid']]['ip'] != null) { + $verify = true; + } + } + if ($verify == true) { + $_SESSION[$rspathhex.'tsname'] = htmlspecialchars($client['name']); + if (isset($_SESSION[$rspathhex.'tsuid']) && $_SESSION[$rspathhex.'tsuid'] != $client['uuid']) { + $_SESSION[$rspathhex.'multiple'][$client['uuid']] = htmlspecialchars($client['name']); + $_SESSION[$rspathhex.'tsname'] = 'verification needed (multiple)!'; + unset($_SESSION[$rspathhex.'admin']); + } elseif (! isset($_SESSION[$rspathhex.'tsuid'])) { + $_SESSION[$rspathhex.'multiple'][$client['uuid']] = htmlspecialchars($client['name']); + } + $_SESSION[$rspathhex.'tsuid'] = $client['uuid']; + if (isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != null) { + foreach (array_flip($cfg['webinterface_admin_client_unique_id_list']) as $auuid) { + if ($_SESSION[$rspathhex.'tsuid'] == $auuid) { + $_SESSION[$rspathhex.'admin'] = true; + } + } + } + $_SESSION[$rspathhex.'tscldbid'] = $client['cldbid']; + if ($client['firstcon'] == 0) { + $_SESSION[$rspathhex.'tscreated'] = $lang['unknown']; + } else { + $_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $client['firstcon']); + } + if ($client['total_connections'] != null) { + $_SESSION[$rspathhex.'tsconnections'] = $client['total_connections']; + } else { + $_SESSION[$rspathhex.'tsconnections'] = 0; + } + $convert = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']; + $uuidasbase16 = ''; + for ($i = 0; $i < 20; $i++) { + $char = ord(substr(base64_decode($_SESSION[$rspathhex.'tsuid']), $i, 1)); + $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; + $uuidasbase16 .= $convert[$char & 0x0F]; + } + if (is_file('../avatars/'.$uuidasbase16.'.png')) { + $_SESSION[$rspathhex.'tsavatar'] = $uuidasbase16.'.png'; + } else { + $_SESSION[$rspathhex.'tsavatar'] = 'none'; + } + $_SESSION[$rspathhex.'connected'] = 1; + $_SESSION[$rspathhex.'language'] = $cfg['default_language']; + $_SESSION[$rspathhex.'style'] = $cfg['default_style']; + } + } +} + +function sendmessage($ts3, $cfg, $uuid, $msg, $targetmode, $targetid = null, $erromsg = null, $loglevel = null, $successmsg = null, $nolog = null) +{ + try { + if (strlen($msg) > 1024) { + $fragarr = explode('##*##', wordwrap($msg, 1022, '##*##', true), 1022); + foreach ($fragarr as $frag) { + usleep($cfg['teamspeak_query_command_delay']); + if ($targetmode == 2 && $targetid != null) { + $ts3->serverGetSelected()->channelGetById($targetid)->message("\n".$frag); + if ($nolog == null) { + enter_logfile(6, "sendmessage fragment to channel (ID: $targetid): ".$frag); + } + } elseif ($targetmode == 3) { + $ts3->serverGetSelected()->message("\n".$frag); + if ($nolog == null) { + enter_logfile(6, 'sendmessage fragment to server: '.$frag); + } + } elseif ($targetmode == 1 && $targetid != null) { + $ts3->serverGetSelected()->clientGetById($targetid)->message("\n".$frag); + if ($nolog == null) { + enter_logfile(6, "sendmessage fragment to connectionID $targetid (uuid $uuid): ".$frag); + } + } else { + $ts3->serverGetSelected()->clientGetByUid($uuid)->message("\n".$frag); + if ($nolog == null) { + enter_logfile(6, "sendmessage fragment to uuid $uuid (connectionID $targetid): ".$frag); + } + } + } + } else { + usleep($cfg['teamspeak_query_command_delay']); + if ($targetmode == 2 && $targetid != null) { + $ts3->serverGetSelected()->channelGetById($targetid)->message($msg); + if ($nolog == null) { + enter_logfile(6, "sendmessage to channel (ID: $targetid): ".$msg); + } + } elseif ($targetmode == 3) { + $ts3->serverGetSelected()->message($msg); + if ($nolog == null) { + enter_logfile(6, 'sendmessage to server: '.$msg); + } + } elseif ($targetmode == 1 && $targetid != null) { + $ts3->serverGetSelected()->clientGetById($targetid)->message($msg); + if ($nolog == null) { + enter_logfile(6, "sendmessage to connectionID $targetid (uuid $uuid): ".$msg); + } + } else { + $ts3->serverGetSelected()->clientGetByUid($uuid)->message($msg); + if ($nolog == null) { + enter_logfile(6, "sendmessage to uuid $uuid (connectionID $targetid): ".$msg); + } + } + } + if ($successmsg != null) { + enter_logfile(5, $successmsg); + } + } catch (Exception $e) { + if ($loglevel != null) { + enter_logfile($loglevel, $erromsg.' TS3: '.$e->getCode().': '.$e->getMessage()); + } else { + enter_logfile(3, 'sendmessage: '.$e->getCode().': '.$e->getMessage().", targetmode: $targetmode, targetid: $targetid"); + } + } +} + +function shutdown($mysqlcon, $loglevel, $reason, $nodestroypid = true) +{ + if ($nodestroypid === true) { + if (file_exists($GLOBALS['pidfile'])) { + unlink($GLOBALS['pidfile']); + } + } + if ($nodestroypid === true) { + enter_logfile($loglevel, $reason.' Shutting down!'); + enter_logfile(9, '###################################################################'); + } else { + enter_logfile($loglevel, $reason.' Ignore request!'); + } + if (isset($mysqlcon)) { + $mysqlcon = null; + } + exit; +} + +function sort_channel_tree($channellist) +{ + foreach ($channellist as $cid => $results) { + $channel['channel_order'][$results['pid']][$results['channel_order']] = $cid; + $channel['pid'][$results['pid']][] = $cid; + } + + foreach ($channel['pid'] as $pid => $pid_value) { + $channel_order = 0; + $count_pid = count($pid_value); + for ($y = 0; $y < $count_pid; $y++) { + foreach ($channellist as $cid => $value) { + if (isset($channel['channel_order'][$pid][$channel_order]) && $channel['channel_order'][$pid][$channel_order] == $cid) { + $channel['sorted'][$pid][$cid] = $channellist[$cid]; + $channel_order = $cid; + } + } + } + } + + function channel_list($channel, $channel_list, $pid, $sub) + { + if ($channel['sorted'][$pid]) { + foreach ($channel['sorted'][$pid] as $cid => $value) { + $channel_list[$cid] = $value; + $channel_list[$cid]['sub_level'] = $sub; + if (isset($channel['pid'][$cid])) { + $sub++; + $channel_list[$cid]['has_childs'] = 1; + $channel_list = channel_list($channel, $channel_list, $cid, $sub); + $sub--; + } + } + } + + return $channel_list; + } + + $sorted_channel = channel_list($channel, [], 0, 1); + + return $sorted_channel; +} + +function sort_options($lang) +{ + $arr_sort_options = [ + ['option' => 'rank', 'title' => $lang['listrank'], 'icon' => 'fas fa-hashtag', 'config' => 'stats_column_rank_switch'], + ['option' => 'name', 'title' => $lang['listnick'], 'icon' => 'fas fa-user', 'config' => 'stats_column_client_name_switch'], + ['option' => 'uuid', 'title' => $lang['listuid'], 'icon' => 'fas fa-id-card', 'config' => 'stats_column_unique_id_switch'], + ['option' => 'cldbid', 'title' => $lang['listcldbid'], 'icon' => 'fas fa-database', 'config' => 'stats_column_client_db_id_switch'], + ['option' => 'lastseen', 'title' => $lang['listseen'], 'icon' => 'fas fa-user-clock', 'config' => 'stats_column_last_seen_switch'], + ['option' => 'nation', 'title' => $lang['listnat'], 'icon' => 'fas fa-globe-europe', 'config' => 'stats_column_nation_switch'], + ['option' => 'version', 'title' => $lang['listver'], 'icon' => 'fas fa-tag', 'config' => 'stats_column_version_switch'], + ['option' => 'platform', 'title' => $lang['listpla'], 'icon' => 'fas fa-server', 'config' => 'stats_column_platform_switch'], + ['option' => 'count', 'title' => $lang['listsumo'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_time_switch'], + ['option' => 'idle', 'title' => $lang['listsumi'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_idle_time_switch'], + ['option' => 'active', 'title' => $lang['listsuma'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_active_time_switch'], + ['option' => 'count_day', 'title' => $lang['listsumo'].' '.$lang['stix0013'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_day_switch'], + ['option' => 'idle_day', 'title' => $lang['listsumi'].' '.$lang['stix0013'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_idle_day_switch'], + ['option' => 'active_day', 'title' => $lang['listsuma'].' '.$lang['stix0013'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_active_day_switch'], + ['option' => 'count_week', 'title' => $lang['listsumo'].' '.$lang['stix0014'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_week_switch'], + ['option' => 'idle_week', 'title' => $lang['listsumi'].' '.$lang['stix0014'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_idle_week_switch'], + ['option' => 'active_week', 'title' => $lang['listsuma'].' '.$lang['stix0014'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_active_week_switch'], + ['option' => 'count_month', 'title' => $lang['listsumo'].' '.$lang['stix0015'], 'icon' => 'fas fa-hourglass-start', 'config' => 'stats_column_online_month_switch'], + ['option' => 'idle_month', 'title' => $lang['listsumi'].' '.$lang['stix0015'], 'icon' => 'fas fa-hourglass-half', 'config' => 'stats_column_idle_month_switch'], + ['option' => 'active_month', 'title' => $lang['listsuma'].' '.$lang['stix0015'], 'icon' => 'fas fa-hourglass-end', 'config' => 'stats_column_active_month_switch'], + ['option' => 'grpid', 'title' => $lang['listacsg'], 'icon' => 'fas fa-clipboard-check', 'config' => 'stats_column_current_server_group_switch'], + ['option' => 'grpidsince', 'title' => $lang['listgrps'], 'icon' => 'fas fa-history', 'config' => 'stats_column_current_group_since_switch'], + ['option' => 'nextup', 'title' => $lang['listnxup'], 'icon' => 'fas fa-clock', 'config' => 'stats_column_next_rankup_switch'], + ['option' => 'active', 'title' => $lang['listnxsg'], 'icon' => 'fas fa-clipboard-list', 'config' => 'stats_column_next_server_group_switch'], + ]; + + return $arr_sort_options; +} + +function start_session($cfg) +{ + ini_set('session.cookie_httponly', 1); + ini_set('session.use_strict_mode', 1); + ini_set('session.sid_length', 128); + if (isset($cfg['default_header_xss'])) { + header('X-XSS-Protection: '.$cfg['default_header_xss']); + } else { + header('X-XSS-Protection: 1; mode=block'); + } + if (! isset($cfg['default_header_contenttyp']) || $cfg['default_header_contenttyp'] == 1) { + header('X-Content-Type-Options: nosniff'); + } + if (isset($cfg['default_header_frame']) && $cfg['default_header_frame'] != null) { + header('X-Frame-Options: '.$cfg['default_header_frame']); + } + + if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { + $prot = 'https'; + ini_set('session.cookie_secure', 1); + if (! headers_sent()) { + header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload;'); + } + } else { + $prot = 'http'; + } + + if (isset($cfg['default_header_origin']) && $cfg['default_header_origin'] != null && $cfg['default_header_origin'] != 'null') { + if (strstr($cfg['default_header_origin'], ',')) { + $origin_arr = explode(',', $cfg['default_header_origin']); + if (isset($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'], $origin_arr)) { + header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); + } + } else { + header('Access-Control-Allow-Origin: '.$cfg['default_header_origin']); + } + } + + if (version_compare(PHP_VERSION, '7.3.0', '>=')) { + if (isset($cfg['default_session_sametime'])) { + ini_set('session.cookie_samesite', $cfg['default_session_sametime']); + } else { + ini_set('session.cookie_samesite', 'Strict'); + } + } + + session_start(); + + return $prot; +} diff --git a/other/config.php b/other/config.php index 06ad353..d8e54a9 100644 --- a/other/config.php +++ b/other/config.php @@ -1,110 +1,118 @@ -query("SELECT * FROM `$dbname`.`cfg_params`"))) { - if(isset($newcfg) && $newcfg != NULL) { - $cfg = $newcfg->fetchAll(PDO::FETCH_KEY_PAIR); - if(empty($cfg['webinterface_admin_client_unique_id_list'])) { - $cfg['webinterface_admin_client_unique_id_list'] = NULL; - } else { - $cfg['webinterface_admin_client_unique_id_list'] = array_flip(explode(',', $cfg['webinterface_admin_client_unique_id_list'])); - } - if(empty($cfg['rankup_excepted_unique_client_id_list'])) { - $cfg['rankup_excepted_unique_client_id_list'] = NULL; - } else { - $cfg['rankup_excepted_unique_client_id_list'] = array_flip(explode(',', $cfg['rankup_excepted_unique_client_id_list'])); - } - if(empty($cfg['rankup_excepted_group_id_list'])) { - $cfg['rankup_excepted_group_id_list'] = NULL; - } else { - $cfg['rankup_excepted_group_id_list'] = array_flip(explode(',', $cfg['rankup_excepted_group_id_list'])); - } - if(empty($cfg['rankup_excepted_channel_id_list'])) { - $cfg['rankup_excepted_channel_id_list'] = NULL; - } else { - $cfg['rankup_excepted_channel_id_list'] = array_flip(explode(',', $cfg['rankup_excepted_channel_id_list'])); - } - if(empty($cfg['rankup_definition'])) { - $cfg['rankup_definition'] = NULL; - } else { - foreach (explode(',', $cfg['rankup_definition']) as $entry) { - if(substr_count($entry, '=>') > 1) { - list($time, $group, $keepflag) = explode('=>', $entry); - } else { - list($time, $group) = explode('=>', $entry); - $keepflag = 0; - } - $addnewvalue1[$time] = array("time"=>$time,"group"=>$group,"keep"=>$keepflag); - $cfg['rankup_definition'] = $addnewvalue1; - } - } - if(empty($cfg['rankup_boost_definition'])) { - $cfg['rankup_boost_definition'] = NULL; - } else { - foreach (explode(',', $cfg['rankup_boost_definition']) as $entry) { - list($key, $value1, $value2) = explode('=>', $entry); - $addnewvalue2[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); - $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, $desc, $perm_bot) = array_pad(explode('=>', $entry), 3, null); - if(!$perm_bot) $perm_bot = 0; - $addnewvalue3[$key] = array("key"=>$key,"desc"=>$desc,"perm_bot"=>$perm_bot); - $cfg['stats_api_keys'] = $addnewvalue3; - } - } - unset($addnewvalue1, $addnewvalue2, $addnewvalue3, $newcfg); - } -} - -if(empty($cfg['logs_debug_level'])) { - $GLOBALS['logs_debug_level'] = $cfg['logs_debug_level'] = "5"; -} else { - $GLOBALS['logs_debug_level'] = $cfg['logs_debug_level']; -} -if(empty($cfg['logs_rotation_size'])) { - $GLOBALS['logs_rotation_size'] = $cfg['logs_rotation_size'] = "5"; -} else { - $GLOBALS['logs_rotation_size'] = $cfg['logs_rotation_size']; -} - -if(!isset($cfg['logs_path']) || $cfg['logs_path'] == NULL) { $cfg['logs_path'] = dirname(__DIR__).DIRECTORY_SEPARATOR."logs".DIRECTORY_SEPARATOR; } -if(!isset($cfg['logs_timezone'])) { - $GLOBALS['logs_timezone'] = "Europe/Berlin"; -} else { - $GLOBALS['logs_timezone'] = $cfg['logs_timezone']; -} -date_default_timezone_set($GLOBALS['logs_timezone']); -$GLOBALS['logpath'] = $cfg['logs_path']; -$GLOBALS['logfile'] = $cfg['logs_path'].'ranksystem.log'; -$GLOBALS['pidfile'] = $cfg['logs_path'].'pid'; -$GLOBALS['autostart'] = $cfg['logs_path'].'autostart_deactivated'; -$GLOBALS['langpath'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'languages'.DIRECTORY_SEPARATOR; -if(!isset($cfg['default_language']) || $cfg['default_language'] == NULL) { - $GLOBALS['default_language'] = 'en'; -} else { - $GLOBALS['default_language'] = $cfg['default_language']; -} -$GLOBALS['stylepath'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'styles'.DIRECTORY_SEPARATOR; -if(isset($cfg['default_style'])) $GLOBALS['style'] = get_style($cfg['default_style']); -$GLOBALS['avatarpath'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR; - -require_once(__DIR__.DIRECTORY_SEPARATOR.'phpcommand.php'); -$GLOBALS['phpcommand'] = $phpcommand; -?> \ No newline at end of file +query("SELECT * FROM `$dbname`.`cfg_params`"))) { + if (isset($newcfg) && $newcfg != null) { + $cfg = $newcfg->fetchAll(PDO::FETCH_KEY_PAIR); + if (empty($cfg['webinterface_admin_client_unique_id_list'])) { + $cfg['webinterface_admin_client_unique_id_list'] = null; + } else { + $cfg['webinterface_admin_client_unique_id_list'] = array_flip(explode(',', $cfg['webinterface_admin_client_unique_id_list'])); + } + if (empty($cfg['rankup_excepted_unique_client_id_list'])) { + $cfg['rankup_excepted_unique_client_id_list'] = null; + } else { + $cfg['rankup_excepted_unique_client_id_list'] = array_flip(explode(',', $cfg['rankup_excepted_unique_client_id_list'])); + } + if (empty($cfg['rankup_excepted_group_id_list'])) { + $cfg['rankup_excepted_group_id_list'] = null; + } else { + $cfg['rankup_excepted_group_id_list'] = array_flip(explode(',', $cfg['rankup_excepted_group_id_list'])); + } + if (empty($cfg['rankup_excepted_channel_id_list'])) { + $cfg['rankup_excepted_channel_id_list'] = null; + } else { + $cfg['rankup_excepted_channel_id_list'] = array_flip(explode(',', $cfg['rankup_excepted_channel_id_list'])); + } + if (empty($cfg['rankup_definition'])) { + $cfg['rankup_definition'] = null; + } else { + foreach (explode(',', $cfg['rankup_definition']) as $entry) { + if (substr_count($entry, '=>') > 1) { + list($time, $group, $keepflag) = explode('=>', $entry); + } else { + list($time, $group) = explode('=>', $entry); + $keepflag = 0; + } + $addnewvalue1[$time] = ['time'=>$time, 'group'=>$group, 'keep'=>$keepflag]; + $cfg['rankup_definition'] = $addnewvalue1; + } + } + if (empty($cfg['rankup_boost_definition'])) { + $cfg['rankup_boost_definition'] = null; + } else { + foreach (explode(',', $cfg['rankup_boost_definition']) as $entry) { + list($key, $value1, $value2) = explode('=>', $entry); + $addnewvalue2[$key] = ['group'=>$key, 'factor'=>$value1, 'time'=>$value2]; + $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, $desc, $perm_bot) = array_pad(explode('=>', $entry), 3, null); + if (! $perm_bot) { + $perm_bot = 0; + } + $addnewvalue3[$key] = ['key'=>$key, 'desc'=>$desc, 'perm_bot'=>$perm_bot]; + $cfg['stats_api_keys'] = $addnewvalue3; + } + } + unset($addnewvalue1, $addnewvalue2, $addnewvalue3, $newcfg); + } +} + +if (empty($cfg['logs_debug_level'])) { + $GLOBALS['logs_debug_level'] = $cfg['logs_debug_level'] = '5'; +} else { + $GLOBALS['logs_debug_level'] = $cfg['logs_debug_level']; +} +if (empty($cfg['logs_rotation_size'])) { + $GLOBALS['logs_rotation_size'] = $cfg['logs_rotation_size'] = '5'; +} else { + $GLOBALS['logs_rotation_size'] = $cfg['logs_rotation_size']; +} + +if (! isset($cfg['logs_path']) || $cfg['logs_path'] == null) { + $cfg['logs_path'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'logs'.DIRECTORY_SEPARATOR; +} +if (! isset($cfg['logs_timezone'])) { + $GLOBALS['logs_timezone'] = 'Europe/Berlin'; +} else { + $GLOBALS['logs_timezone'] = $cfg['logs_timezone']; +} +date_default_timezone_set($GLOBALS['logs_timezone']); +$GLOBALS['logpath'] = $cfg['logs_path']; +$GLOBALS['logfile'] = $cfg['logs_path'].'ranksystem.log'; +$GLOBALS['pidfile'] = $cfg['logs_path'].'pid'; +$GLOBALS['autostart'] = $cfg['logs_path'].'autostart_deactivated'; +$GLOBALS['langpath'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'languages'.DIRECTORY_SEPARATOR; +if (! isset($cfg['default_language']) || $cfg['default_language'] == null) { + $GLOBALS['default_language'] = 'en'; +} else { + $GLOBALS['default_language'] = $cfg['default_language']; +} +$GLOBALS['stylepath'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'styles'.DIRECTORY_SEPARATOR; +if (isset($cfg['default_style'])) { + $GLOBALS['style'] = get_style($cfg['default_style']); +} +$GLOBALS['avatarpath'] = dirname(__DIR__).DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR; + +require_once __DIR__.DIRECTORY_SEPARATOR.'phpcommand.php'; +$GLOBALS['phpcommand'] = $phpcommand; diff --git a/other/dbconfig.php b/other/dbconfig.php index 16e07a2..c0b3e9e 100644 --- a/other/dbconfig.php +++ b/other/dbconfig.php @@ -1,7 +1,7 @@ \ No newline at end of file + +$db['type'] = 'type'; +$db['host'] = 'hostname'; +$db['user'] = 'dbuser'; +$db['pass'] = 'dbpass'; +$db['dbname'] = 'ts3_ranksystem'; diff --git a/other/load_addons_config.php b/other/load_addons_config.php index 02209f0..4b66577 100644 --- a/other/load_addons_config.php +++ b/other/load_addons_config.php @@ -1,14 +1,15 @@ -query("SELECT * FROM `$dbname`.`addons_config`")) === false) { - if(function_exists('enter_logfile')) { - enter_logfile($cfg,2,"Error on loading addons config.. Database down, not reachable, corrupt or empty?"); - } else { - echo 'Error on loading addons config..

Check:
- You have already installed the Ranksystem? Run install.php first!
- Is the database reachable?
- You have installed all needed PHP extenstions? Have a look here for Windows or Linux?'; - } - } else { - return $addons_config->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - } - //$addons_config['assign_groups_groupids']['value']; -} -?> \ No newline at end of file +query("SELECT * FROM `$dbname`.`addons_config`")) === false) { + if (function_exists('enter_logfile')) { + enter_logfile($cfg, 2, 'Error on loading addons config.. Database down, not reachable, corrupt or empty?'); + } else { + echo 'Error on loading addons config..

Check:
- You have already installed the Ranksystem? Run install.php first!
- Is the database reachable?
- You have installed all needed PHP extenstions? Have a look here for Windows or Linux?'; + } + } else { + return $addons_config->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + } + //$addons_config['assign_groups_groupids']['value']; +} diff --git a/other/phpcommand.php b/other/phpcommand.php index 5c3f899..99a3a58 100644 --- a/other/phpcommand.php +++ b/other/phpcommand.php @@ -1,30 +1,30 @@ - \" <-- at the beginning and end of the path, see example below -#$phpcommand = '\"C:\Program Files (x86)\PHP\php.exe\"'; -#$phpcommand = '\"C:\Program Files (x86)\Plesk\Additional\PHP73\php.exe\"'; -## -## -## OTHER -## Synology NAS -#$phpcommand = '/volume1/@appstore/PHP7.2/usr/local/bin/php72'; -?> \ No newline at end of file +//# +//# LINUX +//$phpcommand = 'php74'; +//$phpcommand = '/usr/bin/php7.3'; +//$phpcommand = '/usr/bin/php7.4'; +//$phpcommand = '/opt/plesk/php/7.3/bin/php'; +//$phpcommand = '/opt/plesk/php/7.4/bin/php'; +//# +//# +//# WINDOWS +//$phpcommand = 'C:\PHP7\php.exe'; +//$phpcommand = 'C:\wamp\bin\php\php.exe'; +//$phpcommand = 'C:\xampp\php80\php.exe'; +// On blanks or special characters inside the path, you need to escape these with special marks --> \" <-- at the beginning and end of the path, see example below +//$phpcommand = '\"C:\Program Files (x86)\PHP\php.exe\"'; +//$phpcommand = '\"C:\Program Files (x86)\Plesk\Additional\PHP73\php.exe\"'; +//# +//# +//# OTHER +//# Synology NAS +//$phpcommand = '/volume1/@appstore/PHP7.2/usr/local/bin/php72'; diff --git a/other/session_handling.php b/other/session_handling.php index 0e93232..631ce9a 100644 --- a/other/session_handling.php +++ b/other/session_handling.php @@ -1,10 +1,10 @@ - \ No newline at end of file + Date: Sun, 9 Jul 2023 15:25:16 +0200 Subject: [PATCH 06/10] Apply PHP-CS-Fixer code-style to `stats/` --- stats/_footer.php | 28 +- stats/_nav.php | 627 ++++++++++++++++++++------------------- stats/_preload.php | 55 ++-- stats/assign_groups.php | 464 +++++++++++++++-------------- stats/imprint.php | 57 ++-- stats/index.php | 420 +++++++++++++++----------- stats/info.php | 81 ++--- stats/list_rankup.php | 280 ++++++++--------- stats/my_stats.php | 394 +++++++++++++----------- stats/nations.php | 109 +++---- stats/platforms.php | 55 ++-- stats/privacy_policy.php | 29 +- stats/top_all.php | 299 +++++++++++-------- stats/top_month.php | 315 +++++++++++--------- stats/top_week.php | 315 +++++++++++--------- stats/update_graph.php | 106 +++---- stats/verify.php | 358 +++++++++++----------- stats/versions.php | 55 ++-- 18 files changed, 2175 insertions(+), 1872 deletions(-) diff --git a/stats/_footer.php b/stats/_footer.php index fb2fb85..ccacb6f 100644 --- a/stats/_footer.php +++ b/stats/_footer.php @@ -1,15 +1,15 @@ -',$lang['imprint'],''; - } else { - echo ''; +',$lang['imprint'],''; + } else { + echo ''; } -?> \ No newline at end of file diff --git a/stats/_nav.php b/stats/_nav.php index ff5d723..7145cb2 100644 --- a/stats/_nav.php +++ b/stats/_nav.php @@ -1,188 +1,189 @@ -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['username'])) { - $_GET["search"] = $_POST['usersuche']; - $_GET["seite"] = 1; -} -$filter = $searchstring = NULL; -if(isset($_GET["search"]) && $_GET["search"] != '') { - $getstring = htmlspecialchars($_GET['search']); -} -if(isset($getstring) && strstr($getstring, 'filter:excepted:')) { - if(str_replace('filter:excepted:','',$getstring)!='') { - $searchstring = str_replace('filter:excepted:','',$getstring); - } - $filter .= " AND `except` IN ('2','3')"; -} elseif(isset($getstring) && strstr($getstring, 'filter:nonexcepted:')) { - if(str_replace('filter:nonexcepted:','',$getstring)!='') { - $searchstring = str_replace('filter:nonexcepted:','',$getstring); - } - $filter .= " AND `except` IN ('0','1')"; -} else { - if(isset($getstring)) { - $searchstring = $getstring; - } else { - $searchstring = ''; - } - if($cfg['stats_show_excepted_clients_switch'] == 0) { - $filter .= " AND `except` IN ('0','1')"; - } -} -if(isset($getstring) && strstr($getstring, 'filter:online:')) { - $searchstring = preg_replace('/filter\:online\:/','',$searchstring); - $filter .= " AND `online`='1'"; -} elseif(isset($getstring) && strstr($getstring, 'filter:nononline:')) { - $searchstring = preg_replace('/filter\:nononline\:/','',$searchstring); - $filter .= " AND `online`='0'"; -} -if(isset($getstring) && strstr($getstring, 'filter:actualgroup:')) { - preg_match('/filter\:actualgroup\:(.*)\:/',$searchstring,$grpvalue); - $searchstring = preg_replace('/filter\:actualgroup\:(.*)\:/','',$searchstring); - $filter .= " AND `grpid`='".$grpvalue[1]."'"; -} -if(isset($getstring) && strstr($getstring, 'filter:country:')) { - preg_match('/filter\:country\:(.*)\:/',$searchstring,$grpvalue); - $searchstring = preg_replace('/filter\:country\:(.*)\:/','',$searchstring); - $filter .= " AND `nation`='".$grpvalue[1]."'"; -} -if(isset($getstring) && strstr($getstring, 'filter:lastseen:')) { - preg_match('/filter\:lastseen\:(.*)\:(.*)\:/',$searchstring,$seenvalue); - $searchstring = preg_replace('/filter\:lastseen\:(.*)\:(.*)\:/','',$searchstring); - if(isset($seenvalue[2]) && is_numeric($seenvalue[2])) { - $lastseen = $seenvalue[2]; - } elseif(isset($seenvalue[2])) { - $r = date_parse_from_format("Y-m-d H-i",$seenvalue[2]); - $lastseen = mktime($r['hour'], $r['minute'], $r['second'], $r['month'], $r['day'], $r['year']); - } else { - $lastseen = 0; - } - if(isset($seenvalue[1]) && ($seenvalue[1] == '<' || $seenvalue[1] == '<')) { - $operator = '<'; - } elseif(isset($seenvalue[1]) && ($seenvalue[1] == '>' || $seenvalue[1] == '>')) { - $operator = '>'; - } elseif(isset($seenvalue[1]) && $seenvalue[1] == '!=') { - $operator = '!='; - } else { - $operator = '='; - } - $filter .= " AND `lastseen`".$operator."'".$lastseen."'"; -} -$searchstring = htmlspecialchars_decode($searchstring); - -if(isset($getstring)) { - $dbdata_full = $mysqlcon->prepare("SELECT COUNT(*) FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue)$filter"); - $dbdata_full->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); - $dbdata_full->execute(); - $sumentries = $dbdata_full->fetch(PDO::FETCH_NUM); - $getstring = rawurlencode($getstring); -} else { - $getstring = ''; - $sumentries = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`user`")->fetch(PDO::FETCH_NUM); -} - -if(!isset($_GET["seite"])) { - $seite = 1; -} else { - $_GET["seite"] = preg_replace('/\D/', '', $_GET["seite"]); - if($_GET["seite"] > 0) { - $seite = $_GET["seite"]; - } else { - $seite = 1; - } -} -$adminlogin = 0; -$sortarr = array_flip(array("active","cldbid","count","grpid","grpsince","idle","lastseen","name","nation","nextup","platform","rank","uuid","version","count_day","count_week","count_month","idle_day","idle_week","idle_month","active_day","active_week","active_month")); - -if(isset($_GET['sort']) && isset($sortarr[$_GET['sort']])) { - $keysort = $_GET['sort']; -} else { - $keysort = $cfg['stats_column_default_sort']; -} -if(isset($_GET['order']) && $_GET['order'] == 'desc') { - $keyorder = 'desc'; -} elseif(isset($_GET['order']) && $_GET['order'] == 'asc') { - $keyorder = 'asc'; -} else { - $keyorder = $cfg['stats_column_default_order']; -} - -if(isset($_GET['admin'])) { - if(hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass']) && hash_equals($_SESSION[$rspathhex.'clientip'], getclientip())) { - $adminlogin = 1; - } -} - -if(!isset($_GET["user"])) { - $user_pro_seite = 25; -} elseif($_GET['user'] == "all") { - if($sumentries[0] > 1000) { - $user_pro_seite = 1000; - } else { - $user_pro_seite = $sumentries[0]; - } -} else { - $_GET["user"] = preg_replace('/\D/', '', $_GET["user"]); - if($_GET["user"] > 1000) { - $user_pro_seite = 1000; - } elseif($_GET["user"] > 0) { - $user_pro_seite = $_GET["user"]; - } else { - $user_pro_seite = 25; - } -} -?> +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['username'])) { + $_GET['search'] = $_POST['usersuche']; + $_GET['seite'] = 1; +} +$filter = $searchstring = null; +if (isset($_GET['search']) && $_GET['search'] != '') { + $getstring = htmlspecialchars($_GET['search']); +} +if (isset($getstring) && strstr($getstring, 'filter:excepted:')) { + if (str_replace('filter:excepted:', '', $getstring) != '') { + $searchstring = str_replace('filter:excepted:', '', $getstring); + } + $filter .= " AND `except` IN ('2','3')"; +} elseif (isset($getstring) && strstr($getstring, 'filter:nonexcepted:')) { + if (str_replace('filter:nonexcepted:', '', $getstring) != '') { + $searchstring = str_replace('filter:nonexcepted:', '', $getstring); + } + $filter .= " AND `except` IN ('0','1')"; +} else { + if (isset($getstring)) { + $searchstring = $getstring; + } else { + $searchstring = ''; + } + if ($cfg['stats_show_excepted_clients_switch'] == 0) { + $filter .= " AND `except` IN ('0','1')"; + } +} +if (isset($getstring) && strstr($getstring, 'filter:online:')) { + $searchstring = preg_replace('/filter\:online\:/', '', $searchstring); + $filter .= " AND `online`='1'"; +} elseif (isset($getstring) && strstr($getstring, 'filter:nononline:')) { + $searchstring = preg_replace('/filter\:nononline\:/', '', $searchstring); + $filter .= " AND `online`='0'"; +} +if (isset($getstring) && strstr($getstring, 'filter:actualgroup:')) { + preg_match('/filter\:actualgroup\:(.*)\:/', $searchstring, $grpvalue); + $searchstring = preg_replace('/filter\:actualgroup\:(.*)\:/', '', $searchstring); + $filter .= " AND `grpid`='".$grpvalue[1]."'"; +} +if (isset($getstring) && strstr($getstring, 'filter:country:')) { + preg_match('/filter\:country\:(.*)\:/', $searchstring, $grpvalue); + $searchstring = preg_replace('/filter\:country\:(.*)\:/', '', $searchstring); + $filter .= " AND `nation`='".$grpvalue[1]."'"; +} +if (isset($getstring) && strstr($getstring, 'filter:lastseen:')) { + preg_match('/filter\:lastseen\:(.*)\:(.*)\:/', $searchstring, $seenvalue); + $searchstring = preg_replace('/filter\:lastseen\:(.*)\:(.*)\:/', '', $searchstring); + if (isset($seenvalue[2]) && is_numeric($seenvalue[2])) { + $lastseen = $seenvalue[2]; + } elseif (isset($seenvalue[2])) { + $r = date_parse_from_format('Y-m-d H-i', $seenvalue[2]); + $lastseen = mktime($r['hour'], $r['minute'], $r['second'], $r['month'], $r['day'], $r['year']); + } else { + $lastseen = 0; + } + if (isset($seenvalue[1]) && ($seenvalue[1] == '<' || $seenvalue[1] == '<')) { + $operator = '<'; + } elseif (isset($seenvalue[1]) && ($seenvalue[1] == '>' || $seenvalue[1] == '>')) { + $operator = '>'; + } elseif (isset($seenvalue[1]) && $seenvalue[1] == '!=') { + $operator = '!='; + } else { + $operator = '='; + } + $filter .= ' AND `lastseen`'.$operator."'".$lastseen."'"; +} +$searchstring = htmlspecialchars_decode($searchstring); + +if (isset($getstring)) { + $dbdata_full = $mysqlcon->prepare("SELECT COUNT(*) FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue)$filter"); + $dbdata_full->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); + $dbdata_full->execute(); + $sumentries = $dbdata_full->fetch(PDO::FETCH_NUM); + $getstring = rawurlencode($getstring); +} else { + $getstring = ''; + $sumentries = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`user`")->fetch(PDO::FETCH_NUM); +} + +if (! isset($_GET['seite'])) { + $seite = 1; +} else { + $_GET['seite'] = preg_replace('/\D/', '', $_GET['seite']); + if ($_GET['seite'] > 0) { + $seite = $_GET['seite']; + } else { + $seite = 1; + } +} +$adminlogin = 0; +$sortarr = array_flip(['active', 'cldbid', 'count', 'grpid', 'grpsince', 'idle', 'lastseen', 'name', 'nation', 'nextup', 'platform', 'rank', 'uuid', 'version', 'count_day', 'count_week', 'count_month', 'idle_day', 'idle_week', 'idle_month', 'active_day', 'active_week', 'active_month']); + +if (isset($_GET['sort']) && isset($sortarr[$_GET['sort']])) { + $keysort = $_GET['sort']; +} else { + $keysort = $cfg['stats_column_default_sort']; +} +if (isset($_GET['order']) && $_GET['order'] == 'desc') { + $keyorder = 'desc'; +} elseif (isset($_GET['order']) && $_GET['order'] == 'asc') { + $keyorder = 'asc'; +} else { + $keyorder = $cfg['stats_column_default_order']; +} + +if (isset($_GET['admin'])) { + if (hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass']) && hash_equals($_SESSION[$rspathhex.'clientip'], getclientip())) { + $adminlogin = 1; + } +} + +if (! isset($_GET['user'])) { + $user_pro_seite = 25; +} elseif ($_GET['user'] == 'all') { + if ($sumentries[0] > 1000) { + $user_pro_seite = 1000; + } else { + $user_pro_seite = $sumentries[0]; + } +} else { + $_GET['user'] = preg_replace('/\D/', '', $_GET['user']); + if ($_GET['user'] > 1000) { + $user_pro_seite = 1000; + } elseif ($_GET['user'] > 0) { + $user_pro_seite = $_GET['user']; + } else { + $user_pro_seite = 25; + } +} +?> - + - + TSN Ranksystem - ts-ranksystem.com - -'; - } - switch(basename($_SERVER['SCRIPT_NAME'])) { - case "index.php": - ?> - - - - - - + +'; + } + switch(basename($_SERVER['SCRIPT_NAME'])) { + case 'index.php': + ?> + + + + + + - '; - } - if(isset($cfg['stats_show_site_navigation_switch']) && $cfg['stats_show_site_navigation_switch'] == 0) { ?> - + '; + } + if (isset($cfg['stats_show_site_navigation_switch']) && $cfg['stats_show_site_navigation_switch'] == 0) { ?> + @@ -221,16 +222,16 @@ @@ -241,14 +242,14 @@
@@ -258,17 +259,17 @@
@@ -281,43 +282,43 @@
- +
-'; - } +'; + } ?> \ No newline at end of file diff --git a/stats/_preload.php b/stats/_preload.php index 8ba1f13..3397668 100644 --- a/stats/_preload.php +++ b/stats/_preload.php @@ -1,27 +1,28 @@ - \ No newline at end of file +

This addon is (currently) disabled!

'; - exit; - } - - if(isset($_SESSION[$rspathhex.'tsuid'])) { - $uuid = $_SESSION[$rspathhex.'tsuid']; - } else { - $uuid = "no_uuid_found"; - } - if(($dbdata = $mysqlcon->query("SELECT `cldgroup` FROM `$dbname`.`user` WHERE `uuid`='$uuid'")->fetch()) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - $cld_groups = array(); - if(isset($dbdata['cldgroup']) && $dbdata['cldgroup'] != '') { - $cld_groups = explode(',', $dbdata['cldgroup']); - } - - $disabled = ''; - $allowed_groups_arr = array(); - - $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; - } - - 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(($sqlhisgroup = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if(count($_SESSION[$rspathhex.'multiple']) > 1 and !isset($_SESSION[$rspathhex.'uuid_verified'])) { - $disabled = 1; - $err_msg = sprintf($lang['stag0006'], '', ''); $err_lvl = 3; - } elseif ($_SESSION[$rspathhex.'connected'] == 0) { - $err_msg = sprintf($lang['stag0015'], '', ''); $err_lvl = 3; - $disabled = 1; - } else { - - - $name = explode(';',$addons_config['assign_groups_name']['value']); - $alwgr = explode(';',$addons_config['assign_groups_groupids']['value']); - $limit = explode(';',$addons_config['assign_groups_limit']['value']); - $excgr = explode(';',$addons_config['assign_groups_excepted_groupids']['value']); - - if(isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - if(($sumentries = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`addon_assign_groups` WHERE `uuid`='$uuid'")->fetch(PDO::FETCH_NUM)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } else { - if($sumentries[0] > 0) { - $err_msg = $lang['stag0007']; $err_lvl = 3; - } else { - $set_groups = $err_msg = ''; - $limit_raised = $excepted = 0; - - foreach($alwgr as $rowid => $value) { - $count_limit = $changed_group = 0; - - $allowed_groups_arr = explode(',', $alwgr[$rowid]); - $excepted_groups_arr = explode(',', $excgr[$rowid]); - - foreach($allowed_groups_arr as $allowed_group) { - if(in_array($allowed_group, $cld_groups)) { - $count_limit++; - } - if(isset($_POST[$allowed_group]) && $_POST[$allowed_group] == 1 && !in_array($allowed_group, $cld_groups)) { - $set_groups .= $allowed_group.','; - array_push($cld_groups, $allowed_group); - $count_limit++; - $changed_group++; - } - if(!isset($_POST[$allowed_group]) && in_array($allowed_group, $cld_groups)) { - $set_groups .= '-'.$allowed_group.','; - $position = array_search($allowed_group, $cld_groups); - array_splice($cld_groups, $position, 1); - $count_limit--; - $changed_group++; - } - } - - if(isset($excepted_groups_arr) && $excepted_groups_arr != '') { - foreach($excepted_groups_arr as $excepted_group) { - if(in_array($excepted_group, $cld_groups) && $changed_group != 0) { - $excepted++; - if($err_msg != '') { - $err_msg .= '#####'; - $err_lvl .= '#3'; - } else { - $err_lvl = 3; - } - $err_msg .= "".$name[$rowid]."
".sprintf($lang['stag0019'], $sqlhisgroup[$excepted_group]['sgidname'], $excepted_group); - break; - } - } - } - - if($set_groups != '' && $count_limit > $limit[$rowid]) { - if($err_msg != '') { - $err_msg .= '#####'; - $err_lvl .= '#3'; - } else { - $err_lvl = 3; - } - $err_msg .= "".$name[$rowid]."
".sprintf($lang['stag0009'], $limit[$rowid]); - $limit_raised = 1; - } - } - $set_groups = substr($set_groups, 0, -1); - - if($set_groups != '' && $limit_raised == 0 && $excepted == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`addon_assign_groups` SET `uuid`='$uuid',`grpids`='$set_groups'; DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === 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 = $lang['stag0008']; $err_lvl = NULL; - } - } elseif($limit_raised != 0) { - #message above generated - } elseif($excepted > 0) { - #message above generated - } else { - $err_msg = $lang['stag0010']; $err_lvl = 3; - } - } - } - } elseif(isset($_POST['update'])) { - echo '
',$lang['errcsrf'],'
'; - rem_session_ts3(); - exit; - } - } - ?> +

This addon is (currently) disabled!

'; + exit; + } + + if (isset($_SESSION[$rspathhex.'tsuid'])) { + $uuid = $_SESSION[$rspathhex.'tsuid']; + } else { + $uuid = 'no_uuid_found'; + } + if (($dbdata = $mysqlcon->query("SELECT `cldgroup` FROM `$dbname`.`user` WHERE `uuid`='$uuid'")->fetch()) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + $cld_groups = []; + if (isset($dbdata['cldgroup']) && $dbdata['cldgroup'] != '') { + $cld_groups = explode(',', $dbdata['cldgroup']); + } + + $disabled = ''; + $allowed_groups_arr = []; + + $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; + } + + 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 (($sqlhisgroup = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (count($_SESSION[$rspathhex.'multiple']) > 1 and ! isset($_SESSION[$rspathhex.'uuid_verified'])) { + $disabled = 1; + $err_msg = sprintf($lang['stag0006'], '', ''); + $err_lvl = 3; + } elseif ($_SESSION[$rspathhex.'connected'] == 0) { + $err_msg = sprintf($lang['stag0015'], '', ''); + $err_lvl = 3; + $disabled = 1; + } else { + $name = explode(';', $addons_config['assign_groups_name']['value']); + $alwgr = explode(';', $addons_config['assign_groups_groupids']['value']); + $limit = explode(';', $addons_config['assign_groups_limit']['value']); + $excgr = explode(';', $addons_config['assign_groups_excepted_groupids']['value']); + + if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + if (($sumentries = $mysqlcon->query("SELECT COUNT(*) FROM `$dbname`.`addon_assign_groups` WHERE `uuid`='$uuid'")->fetch(PDO::FETCH_NUM)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + if ($sumentries[0] > 0) { + $err_msg = $lang['stag0007']; + $err_lvl = 3; + } else { + $set_groups = $err_msg = ''; + $limit_raised = $excepted = 0; + + foreach ($alwgr as $rowid => $value) { + $count_limit = $changed_group = 0; + + $allowed_groups_arr = explode(',', $alwgr[$rowid]); + $excepted_groups_arr = explode(',', $excgr[$rowid]); + + foreach ($allowed_groups_arr as $allowed_group) { + if (in_array($allowed_group, $cld_groups)) { + $count_limit++; + } + if (isset($_POST[$allowed_group]) && $_POST[$allowed_group] == 1 && ! in_array($allowed_group, $cld_groups)) { + $set_groups .= $allowed_group.','; + array_push($cld_groups, $allowed_group); + $count_limit++; + $changed_group++; + } + if (! isset($_POST[$allowed_group]) && in_array($allowed_group, $cld_groups)) { + $set_groups .= '-'.$allowed_group.','; + $position = array_search($allowed_group, $cld_groups); + array_splice($cld_groups, $position, 1); + $count_limit--; + $changed_group++; + } + } + + if (isset($excepted_groups_arr) && $excepted_groups_arr != '') { + foreach ($excepted_groups_arr as $excepted_group) { + if (in_array($excepted_group, $cld_groups) && $changed_group != 0) { + $excepted++; + if ($err_msg != '') { + $err_msg .= '#####'; + $err_lvl .= '#3'; + } else { + $err_lvl = 3; + } + $err_msg .= ''.$name[$rowid].'
'.sprintf($lang['stag0019'], $sqlhisgroup[$excepted_group]['sgidname'], $excepted_group); + break; + } + } + } + + if ($set_groups != '' && $count_limit > $limit[$rowid]) { + if ($err_msg != '') { + $err_msg .= '#####'; + $err_lvl .= '#3'; + } else { + $err_lvl = 3; + } + $err_msg .= ''.$name[$rowid].'
'.sprintf($lang['stag0009'], $limit[$rowid]); + $limit_raised = 1; + } + } + $set_groups = substr($set_groups, 0, -1); + + if ($set_groups != '' && $limit_raised == 0 && $excepted == 0) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`addon_assign_groups` SET `uuid`='$uuid',`grpids`='$set_groups'; DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === 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 = $lang['stag0008']; + $err_lvl = null; + } + } elseif ($limit_raised != 0) { + //message above generated + } elseif ($excepted > 0) { + //message above generated + } else { + $err_msg = $lang['stag0010']; + $err_lvl = 3; + } + } + } + } elseif (isset($_POST['update'])) { + echo '
',$lang['errcsrf'],'
'; + rem_session_ts3(); + exit; + } + } + ?>
- +

- +

- +
- $value) { - $output[$forcount]['output'] = ''; - $allowed_groups_arr = explode(',', $alwgr[$rowid]); - $excepted_groups_arr = explode(',', $excgr[$rowid]); - if(isset($excepted_groups_arr) && $excepted_groups_arr != '') { - foreach($excepted_groups_arr as $excepted_group) { - if(in_array($excepted_group, $cld_groups)) { - $output[$forcount]['except'] = 1; - $excepted_group = "".$name[$rowid]."
".sprintf($lang['stag0019'], $sqlhisgroup[$excepted_group]['sgidname'], $excepted_group); - $exception_count++; - break; - } - } - } - $output[$forcount]['output'] .= '

'.$name[$rowid].'

'.$lang['stag0011'].$limit[$rowid].'
'; - foreach($allowed_groups_arr as $allowed_group) { - $output[$forcount]['output'] .= '
'; - if (isset($sqlhisgroup[$allowed_group]['iconid']) && $sqlhisgroup[$allowed_group]['iconid'] != 0) { - $output[$forcount]['output'] .= ''; - } else { - $output[$forcount]['output'] .= ''; - } - $output[$forcount]['output'] .= '
'; - if(in_array($allowed_group, $cld_groups)) { - $output[$forcount]['output'] .= ''; - } else { - $output[$forcount]['output'] .= ''; - } - $output[$forcount]['output'] .= '
'; - } - $output[$forcount]['output'] .= '
'; - $forcount++; - } - - foreach($output as $value) { - if(isset($value['except']) && $value['except'] == 1) { - echo '
- + - diff --git a/stats/index.php b/stats/index.php index 6e556f2..5b6374f 100644 --- a/stats/index.php +++ b/stats/index.php @@ -1,39 +1,45 @@ -query("SELECT * FROM `$dbname`.`stats_server`")->fetch()) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` WHERE `sgid`=0")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - ?> +query("SELECT * FROM `$dbname`.`stats_server`")->fetch()) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` WHERE `sgid`=0")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + ?>
- +

- + @@ -49,14 +55,14 @@

-
-
+
+
@@ -71,14 +77,18 @@
-
-
+
+
@@ -93,14 +103,22 @@
-
-
+
+
@@ -115,14 +133,22 @@
-
-
+
+
@@ -136,15 +162,15 @@ - + @@ -311,102 +337,137 @@
-

+

- - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +
'.$lang['stix0024'].''; } else { echo ''.$lang['stix0025'].''; } ?>'.$lang['stix0024'].''; + } else { + echo ''.$lang['stix0025'].''; + } ?>
'.$lang['stix0032'].''.(new DateTime("@0"))->diff($serveruptime)->format($cfg['default_date_format']).')'; } else { echo $lang['stix0033']; } ?>'.$lang['stix0032'].''.(new DateTime('@0'))->diff($serveruptime)->format($cfg['default_date_format']).')'; + } else { + echo $lang['stix0033']; + } ?>
-

+

- - + + - - - - + + - - + + - - + + - - + + - - + + - - + +
servericon'; - } else { echo $sql_res['server_name']; } ?>servericon'; + } else { + echo $sql_res['server_name']; + } ?>
"> -
@@ -416,60 +477,60 @@
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - '; - } else { - echo ''; - } - if (isset($nation[$sql_res['country_nation_name_2']])) { - echo ''; - } else { - echo ''; - } - if (isset($nation[$sql_res['country_nation_name_3']])) { - echo ''; - } else { - echo ''; - } - if (isset($nation[$sql_res['country_nation_name_4']])) { - echo ''; - } else { - echo ''; - } - if (isset($nation[$sql_res['country_nation_name_5']])) { - echo ''; - } else { - echo ''; - } - ?> - - - - - - - - - + '; + } else { + echo ''; + } + if (isset($nation[$sql_res['country_nation_name_2']])) { + echo ''; + } else { + echo ''; + } + if (isset($nation[$sql_res['country_nation_name_3']])) { + echo ''; + } else { + echo ''; + } + if (isset($nation[$sql_res['country_nation_name_4']])) { + echo ''; + } else { + echo ''; + } + if (isset($nation[$sql_res['country_nation_name_5']])) { + echo ''; + } else { + echo ''; + } + ?> + + + + + + + + + @@ -497,9 +558,10 @@ - + - \ No newline at end of file diff --git a/stats/info.php b/stats/info.php index 96fe8a7..19daeca 100644 --- a/stats/info.php +++ b/stats/info.php @@ -1,48 +1,50 @@ - +
- +

- +

-

-

+

+


-

+

The Ranksystem was coded by Newcomer1989 Copyright © 2009-2023 powered by TS-N.NET


-

-

-

-

-

+

+

+

+

+


-

-

+

+

PHP - Copyright © 2001-2023 the PHP Group


-

+

jQuery v3.6.2 - Copyright © 2020 The jQuery Foundation

Font Awesome 5.15.1 - Copyright © Fonticons, Inc.

flag-icon-css 3.5.0 - Copyright © 2020 flag-icons

@@ -62,33 +64,34 @@
-

-

Shad86 -'); ?>

-

mightyBroccoli -'); ?>

-

Arselopster, DeviantUser & kidi -'); ?>

-

-

ZanK & jacopomozzy -'); ?>

-

DeStRoYzR & Jehad -'); ?>

-

SakaLuX -'); ?>

-

0x0539 -'); ?>

-

-

Pasha -'); ?>

-

KeviN & Stetinac -'); ?>

-

DoktorekOne & toster234 -'); ?>

-

JavierlechuXD -'); ?>

-

ExXeL -'); ?>

-

G. FARZALIYEV -'); ?>

-

Nick Slowinski -'); ?>

-

JimmyNail -'); ?>

+

+

Shad86 -'); ?>

+

mightyBroccoli -'); ?>

+

Arselopster, DeviantUser & kidi -'); ?>

+

+

ZanK & jacopomozzy -'); ?>

+

DeStRoYzR & Jehad -'); ?>

+

SakaLuX -'); ?>

+

0x0539 -'); ?>

+

+

Pasha -'); ?>

+

KeviN & Stetinac -'); ?>

+

DoktorekOne & toster234 -'); ?>

+

JavierlechuXD -'); ?>

+

ExXeL -'); ?>

+

G. FARZALIYEV -'); ?>

+

Nick Slowinski -'); ?>

+

JimmyNail -'); ?>


- + - \ No newline at end of file diff --git a/stats/list_rankup.php b/stats/list_rankup.php index 7a7a8b7..beb78b6 100644 --- a/stats/list_rankup.php +++ b/stats/list_rankup.php @@ -1,148 +1,154 @@ -prepare("SELECT * FROM `$dbname`.`user`$stats_user_tbl WHERE 1=1$filter$stats_user_where ORDER BY $order LIMIT :start, :userproseite"); - } else { - $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user`$stats_user_tbl WHERE (`user`.`uuid` LIKE :searchvalue OR `user`.`cldbid` LIKE :searchvalue OR `user`.`name` LIKE :searchvalue) $filter$stats_user_where ORDER BY $order LIMIT :start, :userproseite"); - $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); - } - - $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); - $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); - $dbdata->execute(); - - if($user_pro_seite > 0 && isset($sumentries[0])) { - $seiten_anzahl_gerundet = ceil($sumentries[0] / $user_pro_seite); - } else { - $seiten_anzahl_gerundet = 0; - } - - if(($sqlhisgroup = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - $sqlhis = $dbdata->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); - - if($adminlogin == 1) { - switch ($keyorder) { - case "asc": - $keyorder2 = "desc&admin=true"; - break; - case "desc": - $keyorder2 = "asc&admin=true"; - } - $keyorder .= "&admin=true"; - } else { - switch ($keyorder) { - case "asc": - $keyorder2 = "desc"; - break; - case "desc": - $keyorder2 = "asc"; - } - } - ?> +prepare("SELECT * FROM `$dbname`.`user`$stats_user_tbl WHERE 1=1$filter$stats_user_where ORDER BY $order LIMIT :start, :userproseite"); + } else { + $dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user`$stats_user_tbl WHERE (`user`.`uuid` LIKE :searchvalue OR `user`.`cldbid` LIKE :searchvalue OR `user`.`name` LIKE :searchvalue) $filter$stats_user_where ORDER BY $order LIMIT :start, :userproseite"); + $dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR); + } + + $dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT); + $dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT); + $dbdata->execute(); + + if ($user_pro_seite > 0 && isset($sumentries[0])) { + $seiten_anzahl_gerundet = ceil($sumentries[0] / $user_pro_seite); + } else { + $seiten_anzahl_gerundet = 0; + } + + if (($sqlhisgroup = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + $sqlhis = $dbdata->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE); + + if ($adminlogin == 1) { + switch ($keyorder) { + case 'asc': + $keyorder2 = 'desc&admin=true'; + break; + case 'desc': + $keyorder2 = 'asc&admin=true'; + } + $keyorder .= '&admin=true'; + } else { + switch ($keyorder) { + case 'asc': + $keyorder2 = 'desc'; + break; + case 'desc': + $keyorder2 = 'asc'; + } + } + ?>
- +
- + - $val) { - if ($cfg[$val['config']] == 1 || $adminlogin == 1) { - echo ''; - $count_columns++; - } - } - echo ''; - ksort($cfg['rankup_definition']); - if (count($sqlhis) > 0) { - foreach ($sqlhis as $uuid => $value) { - if ($cfg['rankup_time_assess_mode'] == 1) { - $activetime = $value['count'] - $value['idle']; - } else { - $activetime = $value['count']; - } - $grpcount=0; - if($cfg['stats_column_next_server_group_switch'] != 1) { - echo list_rankup($cfg,$lang,$sqlhisgroup,$value,$adminlogin,$nation,$grpcount); - } else { - foreach ($cfg['rankup_definition'] as $rank) { - $grpcount++; - if ($activetime < $rank['time'] || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] <= 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) { - echo list_rankup($cfg,$lang,$sqlhisgroup,$value,$adminlogin,$nation,$grpcount,$rank); - break; - } - } - } - } - } else { - echo ''; - } - echo '
',$val['title'],'
',$lang['noentry'],'
'; - if($user_pro_seite != "all") { - echo pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring); - } - ?> + $val) { + if ($cfg[$val['config']] == 1 || $adminlogin == 1) { + echo '',$val['title'],''; + $count_columns++; + } + } + echo ''; + ksort($cfg['rankup_definition']); + if (count($sqlhis) > 0) { + foreach ($sqlhis as $uuid => $value) { + if ($cfg['rankup_time_assess_mode'] == 1) { + $activetime = $value['count'] - $value['idle']; + } else { + $activetime = $value['count']; + } + $grpcount = 0; + if ($cfg['stats_column_next_server_group_switch'] != 1) { + echo list_rankup($cfg, $lang, $sqlhisgroup, $value, $adminlogin, $nation, $grpcount); + } else { + foreach ($cfg['rankup_definition'] as $rank) { + $grpcount++; + if ($activetime < $rank['time'] || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] <= 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) { + echo list_rankup($cfg, $lang, $sqlhisgroup, $value, $adminlogin, $nation, $grpcount, $rank); + break; + } + } + } + } + } else { + echo '',$lang['noentry'],''; + } + echo ''; + if ($user_pro_seite != 'all') { + echo pagination($keysort, $keyorder, $user_pro_seite, $seiten_anzahl_gerundet, $seite, $getstring); + } + ?>
- + - \ No newline at end of file diff --git a/stats/my_stats.php b/stats/my_stats.php index fc99386..61c7644 100644 --- a/stats/my_stats.php +++ b/stats/my_stats.php @@ -1,91 +1,130 @@ - 1 && !isset($_SESSION[$rspathhex.'uuid_verified'])) { - $err_msg = sprintf($lang['stag0006'], '', ''); $err_lvl = 3; - } elseif (isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) { - $err_msg = sprintf($lang['stag0015'], '', ''); $err_lvl = 3; - } else { - $dbdata_fetched = $mysqlcon->query("SELECT * FROM `$dbname`.`user` WHERE `uuid` LIKE '%".$_SESSION[$rspathhex.'tsuid']."%'")->fetch(); - $count_hours = round($dbdata_fetched['count']/3600); - $idle_hours = round($dbdata_fetched['idle']/3600); - $dbdata_fetched['count'] = round($dbdata_fetched['count']); - $dbdata_fetched['idle'] = round($dbdata_fetched['idle']); - - if ($cfg['rankup_time_assess_mode'] == 1) { - $activetime = $dbdata_fetched['count'] - $dbdata_fetched['idle']; - } else { - $activetime = $dbdata_fetched['count']; - } - $active_count = $dbdata_fetched['count'] - $dbdata_fetched['idle']; - - krsort($cfg['rankup_definition']); - $nextgrp = ''; - - foreach ($cfg['rankup_definition'] as $rank) { - $actualgrp = $rank['time']; - if ($activetime > $rank['time']) { - break; - } else { - $nextgrp = $rank['time']; - } - } - if($actualgrp==$nextgrp) { - $actualgrp = 0; - } - if($activetime>$nextgrp) { - $percentage_rankup = 100; - } else { - $takedtime = $activetime - $actualgrp; - $neededtime = $nextgrp - $actualgrp; - $percentage_rankup = round($takedtime/$neededtime*100, 2); - } - - $stats_user = $mysqlcon->query("SELECT `count_week`,`active_week`,`count_month`,`active_month`,`last_calculated` FROM `$dbname`.`stats_user` WHERE `uuid`='".$_SESSION[$rspathhex.'tsuid']."'")->fetch(); - - if (isset($stats_user['count_week'])) $count_week = $stats_user['count_week']; else $count_week = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_week"); $count_week = $dtF->diff($dtT)->format($cfg['default_date_format']); - if (isset($stats_user['active_week'])) $active_week = $stats_user['active_week']; else $active_week = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_week"); $active_week = $dtF->diff($dtT)->format($cfg['default_date_format']); - if (isset($stats_user['count_month'])) $count_month = $stats_user['count_month']; else $count_month = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$count_month"); $count_month = $dtF->diff($dtT)->format($cfg['default_date_format']); - if (isset($stats_user['active_month'])) $active_month = $stats_user['active_month']; else $active_month = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_month"); $active_month = $dtF->diff($dtT)->format($cfg['default_date_format']); - if (isset($dbdata_fetched['count'])) $count_total = $dbdata_fetched['count']; else $count_total = 0; - $dtF = new DateTime("@0"); $dtT = new DateTime("@".round($count_total)); $count_total = $dtF->diff($dtT)->format($cfg['default_date_format']); - $dtF = new DateTime("@0"); $dtT = new DateTime("@$active_count"); $active_count = $dtF->diff($dtT)->format($cfg['default_date_format']); - - $achievements_done = 0; - - if($count_hours >= $cfg['stats_time_legend']) { - $achievements_done = $achievements_done + 4; - } elseif($count_hours >= $cfg['stats_time_gold']) { - $achievements_done = $achievements_done + 3; - } elseif($count_hours >= $cfg['stats_time_silver']) { - $achievements_done = $achievements_done + 2; - } else { - $achievements_done = $achievements_done + 1; - } - if($_SESSION[$rspathhex.'tsconnections'] >= $cfg['stats_connects_legend']) { - $achievements_done = $achievements_done + 4; - } elseif($_SESSION[$rspathhex.'tsconnections'] >= $cfg['stats_connects_gold']) { - $achievements_done = $achievements_done + 3; - } elseif($_SESSION[$rspathhex.'tsconnections'] >= $cfg['stats_connects_silver']) { - $achievements_done = $achievements_done + 2; - } else { - $achievements_done = $achievements_done + 1; - } - } - ?> + 1 && ! isset($_SESSION[$rspathhex.'uuid_verified'])) { + $err_msg = sprintf($lang['stag0006'], '', ''); + $err_lvl = 3; + } elseif (isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || ! isset($_SESSION[$rspathhex.'connected'])) { + $err_msg = sprintf($lang['stag0015'], '', ''); + $err_lvl = 3; + } else { + $dbdata_fetched = $mysqlcon->query("SELECT * FROM `$dbname`.`user` WHERE `uuid` LIKE '%".$_SESSION[$rspathhex.'tsuid']."%'")->fetch(); + $count_hours = round($dbdata_fetched['count'] / 3600); + $idle_hours = round($dbdata_fetched['idle'] / 3600); + $dbdata_fetched['count'] = round($dbdata_fetched['count']); + $dbdata_fetched['idle'] = round($dbdata_fetched['idle']); + + if ($cfg['rankup_time_assess_mode'] == 1) { + $activetime = $dbdata_fetched['count'] - $dbdata_fetched['idle']; + } else { + $activetime = $dbdata_fetched['count']; + } + $active_count = $dbdata_fetched['count'] - $dbdata_fetched['idle']; + + krsort($cfg['rankup_definition']); + $nextgrp = ''; + + foreach ($cfg['rankup_definition'] as $rank) { + $actualgrp = $rank['time']; + if ($activetime > $rank['time']) { + break; + } else { + $nextgrp = $rank['time']; + } + } + if ($actualgrp == $nextgrp) { + $actualgrp = 0; + } + if ($activetime > $nextgrp) { + $percentage_rankup = 100; + } else { + $takedtime = $activetime - $actualgrp; + $neededtime = $nextgrp - $actualgrp; + $percentage_rankup = round($takedtime / $neededtime * 100, 2); + } + + $stats_user = $mysqlcon->query("SELECT `count_week`,`active_week`,`count_month`,`active_month`,`last_calculated` FROM `$dbname`.`stats_user` WHERE `uuid`='".$_SESSION[$rspathhex.'tsuid']."'")->fetch(); + + if (isset($stats_user['count_week'])) { + $count_week = $stats_user['count_week']; + } else { + $count_week = 0; + } + $dtF = new DateTime('@0'); + $dtT = new DateTime("@$count_week"); + $count_week = $dtF->diff($dtT)->format($cfg['default_date_format']); + if (isset($stats_user['active_week'])) { + $active_week = $stats_user['active_week']; + } else { + $active_week = 0; + } + $dtF = new DateTime('@0'); + $dtT = new DateTime("@$active_week"); + $active_week = $dtF->diff($dtT)->format($cfg['default_date_format']); + if (isset($stats_user['count_month'])) { + $count_month = $stats_user['count_month']; + } else { + $count_month = 0; + } + $dtF = new DateTime('@0'); + $dtT = new DateTime("@$count_month"); + $count_month = $dtF->diff($dtT)->format($cfg['default_date_format']); + if (isset($stats_user['active_month'])) { + $active_month = $stats_user['active_month']; + } else { + $active_month = 0; + } + $dtF = new DateTime('@0'); + $dtT = new DateTime("@$active_month"); + $active_month = $dtF->diff($dtT)->format($cfg['default_date_format']); + if (isset($dbdata_fetched['count'])) { + $count_total = $dbdata_fetched['count']; + } else { + $count_total = 0; + } + $dtF = new DateTime('@0'); + $dtT = new DateTime('@'.round($count_total)); + $count_total = $dtF->diff($dtT)->format($cfg['default_date_format']); + $dtF = new DateTime('@0'); + $dtT = new DateTime("@$active_count"); + $active_count = $dtF->diff($dtT)->format($cfg['default_date_format']); + + $achievements_done = 0; + + if ($count_hours >= $cfg['stats_time_legend']) { + $achievements_done = $achievements_done + 4; + } elseif ($count_hours >= $cfg['stats_time_gold']) { + $achievements_done = $achievements_done + 3; + } elseif ($count_hours >= $cfg['stats_time_silver']) { + $achievements_done = $achievements_done + 2; + } else { + $achievements_done = $achievements_done + 1; + } + if ($_SESSION[$rspathhex.'tsconnections'] >= $cfg['stats_connects_legend']) { + $achievements_done = $achievements_done + 4; + } elseif ($_SESSION[$rspathhex.'tsconnections'] >= $cfg['stats_connects_gold']) { + $achievements_done = $achievements_done + 3; + } elseif ($_SESSION[$rspathhex.'tsconnections'] >= $cfg['stats_connects_silver']) { + $achievements_done = $achievements_done + 2; + } else { + $achievements_done = $achievements_done + 1; + } + } + ?>
- 1 || isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) { echo "
"; exit; } ?> + 1 || isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || ! isset($_SESSION[$rspathhex.'connected'])) { + echo ''; + exit; + } ?>

- + @@ -98,262 +137,263 @@
-
-
+
- '; - } else { - echo ''; - } - ?> + '; + } else { + echo ''; + } + ?>

- +
-

+

-
- +
+
- +
-

- = $cfg['stats_time_legend']) { ?> +

+ = $cfg['stats_time_legend']) { ?>
- +
-
+
- +
- = $cfg['stats_time_gold']) { ?> + = $cfg['stats_time_gold']) { ?>
- +
-
+
-
- +
+
- = $cfg['stats_time_silver']) { ?> + = $cfg['stats_time_silver']) { ?>
- +
-
+
-
- +
+
- = $cfg['stats_time_bronze']) { ?> + = $cfg['stats_time_bronze']) { ?>
- +
-
+
-
- +
+
- +
- +
-
+
-
- +
+
- +
-

- = $cfg['stats_connects_legend']) { ?> +

+ = $cfg['stats_connects_legend']) { ?>
-
+
-
+
- +
- = $cfg['stats_connects_gold']) { ?> + = $cfg['stats_connects_gold']) { ?>
-
+
-
+
-
- +
+
- = $cfg['stats_connects_silver']) { ?> + = $cfg['stats_connects_silver']) { ?>
-
+
-
+
-
- +
+
- = $cfg['stats_connects_bronze']) { ?> + = $cfg['stats_connects_bronze']) { ?>
-
+
-
+
-
- +
+
- +
-
+
-
+
-
- +
+
- +
- + - \ No newline at end of file diff --git a/stats/nations.php b/stats/nations.php index 67c1bb3..9923fb4 100644 --- a/stats/nations.php +++ b/stats/nations.php @@ -1,33 +1,37 @@ -query("SELECT * FROM `$dbname`.`stats_nations` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - ?> +query("SELECT * FROM `$dbname`.`stats_nations` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + ?>
- + - \ No newline at end of file diff --git a/stats/platforms.php b/stats/platforms.php index e4d87a4..ed4e4db 100644 --- a/stats/platforms.php +++ b/stats/platforms.php @@ -1,16 +1,18 @@ -query("SELECT * FROM `$dbname`.`stats_platforms` ORDER BY `count` DESC")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - ?> +query("SELECT * FROM `$dbname`.`stats_platforms` ORDER BY `count` DESC")->fetchALL(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + ?>
- +

- +

@@ -21,27 +23,27 @@ # - - - + + + - $value) { - $sum_of_all = $sum_of_all + $value['count']; - } - foreach ($sql_res as $platform => $value) { - $count++; - echo ' + $value) { + $sum_of_all = $sum_of_all + $value['count']; + } + foreach ($sql_res as $platform => $value) { + $count++; + echo ' ',$count,' ',$platform,' ',$value['count'],' ',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' % - '; - } - ?> + '; + } + ?>
@@ -50,9 +52,10 @@
- + - \ No newline at end of file diff --git a/stats/privacy_policy.php b/stats/privacy_policy.php index 6b25a0c..8e5b687 100644 --- a/stats/privacy_policy.php +++ b/stats/privacy_policy.php @@ -1,37 +1,40 @@ - + ?>
- +

- +

- +
- +
- +
-
+
- +
- + - \ No newline at end of file diff --git a/stats/top_all.php b/stats/top_all.php index 08e5018..b1655b0 100644 --- a/stats/top_all.php +++ b/stats/top_all.php @@ -1,82 +1,84 @@ - $value) { - $notinuuid .= "'".$uuid."',"; - } - $notinuuid = substr($notinuuid, 0, -1); - } else { - $notinuuid = "'0'"; - } - - $notingroup = ''; - $andnotgroup = ''; - if($cfg['rankup_excepted_group_id_list'] != NULL) { - foreach($cfg['rankup_excepted_group_id_list'] as $group => $value) { - $notingroup .= "'".$group."',"; - $andnotgroup .= " AND `u`.`cldgroup` NOT LIKE ('".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group."')"; - } - $notingroup = substr($notingroup, 0, -1); - } else { - $notingroup = '0'; - } - - if ($cfg['rankup_time_assess_mode'] == 1) { - $order = "(`count` - `idle`)"; - $texttime = $lang['sttw0013']; - } else { - $order = "`count`"; - $texttime = $lang['sttw0003']; - } - - $db_arr = $mysqlcon->query("SELECT `u`.`uuid`,`u`.`name`,`u`.`count`,`u`.`idle`,`u`.`cldgroup`,`u`.`online` FROM (SELECT `uuid`,`removed` FROM `$dbname`.`stats_user` WHERE `removed`!=1) `s` INNER JOIN `$dbname`.`user` `u` ON `u`.`uuid`=`s`.`uuid` WHERE `u`.`uuid` NOT IN ($notinuuid) AND `u`.`cldgroup` NOT IN ($notingroup) $andnotgroup ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - - $count10 = 0; - $top10_sum = 0; - $top10_idle_sum = 0; - - foreach ($db_arr as $uuid => $client) { - if ($cfg['rankup_time_assess_mode'] == 1) { - $hours = $client['count'] - $client['idle']; - } else { - $hours = $client['count']; - } - $top10_sum = round(($client['count']/3600)) + $top10_sum; - $top10_idle_sum = round(($client['idle']/3600)) + $top10_idle_sum; - $client_data[$count10] = array( - 'name' => htmlspecialchars($client['name']), - 'title' => htmlspecialchars($client['name']), - 'count' => $hours, - 'online' => $client['online'] - ); - $count10++; - } - - for($count10 = $count10; $count10 <= 10; $count10++) { - $client_data[$count10] = array( - 'name' => "".$lang['unknown']."", - 'title' => $lang['unknown'], - 'count' => 0, - 'online' => 0 - ); - } - - $sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`user` `u` WHERE `uuid` NOT IN ($notinuuid) AND `cldgroup` NOT IN ($notingroup) $andnotgroup")->fetch(); - $others_sum = round(($sum['count']/3600)) - $top10_sum; - $others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; - $sumentries = $sum['user'] - 10; - ?> + $value) { + $notinuuid .= "'".$uuid."',"; + } + $notinuuid = substr($notinuuid, 0, -1); + } else { + $notinuuid = "'0'"; + } + + $notingroup = ''; + $andnotgroup = ''; + if ($cfg['rankup_excepted_group_id_list'] != null) { + foreach ($cfg['rankup_excepted_group_id_list'] as $group => $value) { + $notingroup .= "'".$group."',"; + $andnotgroup .= " AND `u`.`cldgroup` NOT LIKE ('".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group."')"; + } + $notingroup = substr($notingroup, 0, -1); + } else { + $notingroup = '0'; + } + + if ($cfg['rankup_time_assess_mode'] == 1) { + $order = '(`count` - `idle`)'; + $texttime = $lang['sttw0013']; + } else { + $order = '`count`'; + $texttime = $lang['sttw0003']; + } + + $db_arr = $mysqlcon->query("SELECT `u`.`uuid`,`u`.`name`,`u`.`count`,`u`.`idle`,`u`.`cldgroup`,`u`.`online` FROM (SELECT `uuid`,`removed` FROM `$dbname`.`stats_user` WHERE `removed`!=1) `s` INNER JOIN `$dbname`.`user` `u` ON `u`.`uuid`=`s`.`uuid` WHERE `u`.`uuid` NOT IN ($notinuuid) AND `u`.`cldgroup` NOT IN ($notingroup) $andnotgroup ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + + $count10 = 0; + $top10_sum = 0; + $top10_idle_sum = 0; + + foreach ($db_arr as $uuid => $client) { + if ($cfg['rankup_time_assess_mode'] == 1) { + $hours = $client['count'] - $client['idle']; + } else { + $hours = $client['count']; + } + $top10_sum = round(($client['count'] / 3600)) + $top10_sum; + $top10_idle_sum = round(($client['idle'] / 3600)) + $top10_idle_sum; + $client_data[$count10] = [ + 'name' => htmlspecialchars($client['name']), + 'title' => htmlspecialchars($client['name']), + 'count' => $hours, + 'online' => $client['online'], + ]; + $count10++; + } + + for ($count10 = $count10; $count10 <= 10; $count10++) { + $client_data[$count10] = [ + 'name' => ''.$lang['unknown'].'', + 'title' => $lang['unknown'], + 'count' => 0, + 'online' => 0, + ]; + } + + $sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`user` `u` WHERE `uuid` NOT IN ($notinuuid) AND `cldgroup` NOT IN ($notingroup) $andnotgroup")->fetch(); + $others_sum = round(($sum['count'] / 3600)) - $top10_sum; + $others_idle_sum = round(($sum['idle'] / 3600)) - $top10_idle_sum; + $sumentries = $sum['user'] - 10; + ?>
- +

- - + +

@@ -91,8 +93,12 @@
 
-
',$client_data[0]['name']; ?>
-
+
',$client_data[0]['name']; ?>
+
@@ -110,8 +116,12 @@
 
-
',$client_data[1]['name']; ?>
-
+
',$client_data[1]['name']; ?>
+
@@ -127,8 +137,12 @@
 
-
',$client_data[2]['name']; ?>
-
+
',$client_data[2]['name']; ?>
+
@@ -144,8 +158,12 @@ #4th
-
',$client_data[3]['name']; ?>
-
+
',$client_data[3]['name']; ?>
+
@@ -159,8 +177,12 @@ #5th
-
',$client_data[4]['name']; ?>
-
+
',$client_data[4]['name']; ?>
+
@@ -174,8 +196,12 @@ #6th
-
',$client_data[5]['name']; ?>
-
+
',$client_data[5]['name']; ?>
+
@@ -194,8 +220,12 @@ #7th
-
',$client_data[6]['name']; ?>
-
+
',$client_data[6]['name']; ?>
+
@@ -212,8 +242,12 @@ #8th
-
',$client_data[7]['name']; ?>
-
+
',$client_data[7]['name']; ?>
+
@@ -230,8 +264,12 @@ #9th
-
',$client_data[8]['name']; ?>
-
+
',$client_data[8]['name']; ?>
+
@@ -248,8 +286,12 @@ #10th
-
',$client_data[9]['name']; ?>
-
+
',$client_data[9]['name']; ?>
+
@@ -258,66 +300,66 @@
-

-

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

+

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

+

-

+

@@ -328,7 +370,7 @@
-

+

@@ -339,7 +381,7 @@
-

+

@@ -351,7 +393,7 @@
- + @@ -369,30 +411,31 @@ Morris.Donut({ element: 'top10vs_donut1', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_time_color_1, donut_time_color_2] }); Morris.Donut({ element: 'top10vs_donut2', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_version_color_1, donut_version_color_2] }); Morris.Donut({ element: 'top10vs_donut3', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_nation_color_1, donut_nation_color_2] }); - \ No newline at end of file diff --git a/stats/top_month.php b/stats/top_month.php index 211b4f2..4231f04 100644 --- a/stats/top_month.php +++ b/stats/top_month.php @@ -1,91 +1,95 @@ - $value) { - $notinuuid .= "'".$uuid."',"; - } - $notinuuid = substr($notinuuid, 0, -1); - } else { - $notinuuid = "'0'"; - } - - $notingroup = ''; - $andnotgroup = ''; - if($cfg['rankup_excepted_group_id_list'] != NULL) { - foreach($cfg['rankup_excepted_group_id_list'] as $group => $value) { - $notingroup .= "'".$group."',"; - $andnotgroup .= " AND `u`.`cldgroup` NOT LIKE ('".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group."')"; - } - $notingroup = substr($notingroup, 0, -1); - } else { - $notingroup = '0'; - } - - if ($cfg['rankup_time_assess_mode'] == 1) { - $order = "(`s`.`count_month` - `s`.`idle_month`)"; - $texttime = $lang['sttw0013']; - } else { - $order = "`s`.`count_month`"; - $texttime = $lang['sttw0003']; - } - - $timeago = time() - 2592000; - $db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_month`,`s`.`idle_month`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_month`<`s`.`count_month` AND `s`.`count_month`>=0 AND `s`.`idle_month`>=0 ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - - $count_ids = $mysqlcon->query("SELECT COUNT(DISTINCT(`id`)) AS `count` from `$dbname`.`user_snapshot`")->fetch(); - - $count10 = 0; - $top10_sum = 0; - $top10_idle_sum = 0; - - foreach ($db_arr as $uuid => $client) { - if ($cfg['rankup_time_assess_mode'] == 1) { - $hours = $client['count_month'] - $client['idle_month']; - } else { - $hours = $client['count_month']; - } - $top10_sum += $client['count_month']; - $top10_idle_sum += $client['idle_month']; - $client_data[$count10] = array( - 'name' => htmlspecialchars($client['name']), - 'title' => htmlspecialchars($client['name']), - 'count' => $hours, - 'online' => $client['online'] - ); - $count10++; - } - - for($count10 = $count10; $count10 <= 10; $count10++) { - $client_data[$count10] = array( - 'name' => "".$lang['unknown']."", - 'title' => $lang['unknown'], - 'count' => 0, - 'online' => 0 - ); - } - - $sum = $mysqlcon->query("SELECT SUM(`s`.`count_month`) AS `count`, SUM(`s`.`idle_month`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_month`<`s`.`count_month` AND `s`.`count_month`>=0 AND `s`.`idle_month`>=0;")->fetch(); - $top10_sum = round(($top10_sum/3600)); - $top10_idle_sum = round(($top10_idle_sum/3600)); - $others_sum = round(($sum['count']/3600)) - $top10_sum; - $others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; - $sumentries = $sum['user'] - 10; - ?> + $value) { + $notinuuid .= "'".$uuid."',"; + } + $notinuuid = substr($notinuuid, 0, -1); + } else { + $notinuuid = "'0'"; + } + + $notingroup = ''; + $andnotgroup = ''; + if ($cfg['rankup_excepted_group_id_list'] != null) { + foreach ($cfg['rankup_excepted_group_id_list'] as $group => $value) { + $notingroup .= "'".$group."',"; + $andnotgroup .= " AND `u`.`cldgroup` NOT LIKE ('".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group."')"; + } + $notingroup = substr($notingroup, 0, -1); + } else { + $notingroup = '0'; + } + + if ($cfg['rankup_time_assess_mode'] == 1) { + $order = '(`s`.`count_month` - `s`.`idle_month`)'; + $texttime = $lang['sttw0013']; + } else { + $order = '`s`.`count_month`'; + $texttime = $lang['sttw0003']; + } + + $timeago = time() - 2592000; + $db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_month`,`s`.`idle_month`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_month`<`s`.`count_month` AND `s`.`count_month`>=0 AND `s`.`idle_month`>=0 ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + + $count_ids = $mysqlcon->query("SELECT COUNT(DISTINCT(`id`)) AS `count` from `$dbname`.`user_snapshot`")->fetch(); + + $count10 = 0; + $top10_sum = 0; + $top10_idle_sum = 0; + + foreach ($db_arr as $uuid => $client) { + if ($cfg['rankup_time_assess_mode'] == 1) { + $hours = $client['count_month'] - $client['idle_month']; + } else { + $hours = $client['count_month']; + } + $top10_sum += $client['count_month']; + $top10_idle_sum += $client['idle_month']; + $client_data[$count10] = [ + 'name' => htmlspecialchars($client['name']), + 'title' => htmlspecialchars($client['name']), + 'count' => $hours, + 'online' => $client['online'], + ]; + $count10++; + } + + for ($count10 = $count10; $count10 <= 10; $count10++) { + $client_data[$count10] = [ + 'name' => ''.$lang['unknown'].'', + 'title' => $lang['unknown'], + 'count' => 0, + 'online' => 0, + ]; + } + + $sum = $mysqlcon->query("SELECT SUM(`s`.`count_month`) AS `count`, SUM(`s`.`idle_month`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_month`<`s`.`count_month` AND `s`.`count_month`>=0 AND `s`.`idle_month`>=0;")->fetch(); + $top10_sum = round(($top10_sum / 3600)); + $top10_idle_sum = round(($top10_idle_sum / 3600)); + $others_sum = round(($sum['count'] / 3600)) - $top10_sum; + $others_idle_sum = round(($sum['idle'] / 3600)) - $top10_idle_sum; + $sumentries = $sum['user'] - 10; + ?>
- +

- - + +

- +
@@ -97,8 +101,12 @@
 
-
',$client_data[0]['name']; ?>
-
+
',$client_data[0]['name']; ?>
+
@@ -116,8 +124,12 @@
 
-
',$client_data[1]['name']; ?>
-
+
',$client_data[1]['name']; ?>
+
@@ -133,8 +145,12 @@
 
-
',$client_data[2]['name']; ?>
-
+
',$client_data[2]['name']; ?>
+
@@ -150,8 +166,12 @@ #4th
-
',$client_data[3]['name']; ?>
-
+
',$client_data[3]['name']; ?>
+
@@ -165,8 +185,12 @@ #5th
-
',$client_data[4]['name']; ?>
-
+
',$client_data[4]['name']; ?>
+
@@ -180,8 +204,12 @@ #6th
-
',$client_data[5]['name']; ?>
-
+
',$client_data[5]['name']; ?>
+
@@ -200,8 +228,12 @@ #7th
-
',$client_data[6]['name']; ?>
-
+
',$client_data[6]['name']; ?>
+
@@ -218,8 +250,12 @@ #8th
-
',$client_data[7]['name']; ?>
-
+
',$client_data[7]['name']; ?>
+
@@ -236,8 +272,12 @@ #9th
-
',$client_data[8]['name']; ?>
-
+
',$client_data[8]['name']; ?>
+
@@ -254,8 +294,12 @@ #10th
-
',$client_data[9]['name']; ?>
-
+
',$client_data[9]['name']; ?>
+
@@ -264,66 +308,66 @@
-

-

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

+

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

+

-

+

@@ -334,7 +378,7 @@
-

+

@@ -345,7 +389,7 @@
-

+

@@ -354,11 +398,11 @@
- +
- + @@ -376,30 +420,31 @@ Morris.Donut({ element: 'top10vs_donut1', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_time_color_1, donut_time_color_2] }); Morris.Donut({ element: 'top10vs_donut2', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_version_color_1, donut_version_color_2] }); Morris.Donut({ element: 'top10vs_donut3', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_nation_color_1, donut_nation_color_2] }); - \ No newline at end of file diff --git a/stats/top_week.php b/stats/top_week.php index ca7244a..8eea986 100644 --- a/stats/top_week.php +++ b/stats/top_week.php @@ -1,91 +1,95 @@ - $value) { - $notinuuid .= "'".$uuid."',"; - } - $notinuuid = substr($notinuuid, 0, -1); - } else { - $notinuuid = "'0'"; - } - - $notingroup = ''; - $andnotgroup = ''; - if($cfg['rankup_excepted_group_id_list'] != NULL) { - foreach($cfg['rankup_excepted_group_id_list'] as $group => $value) { - $notingroup .= "'".$group."',"; - $andnotgroup .= " AND `u`.`cldgroup` NOT LIKE ('".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group."')"; - } - $notingroup = substr($notingroup, 0, -1); - } else { - $notingroup = "'0'"; - } - - if ($cfg['rankup_time_assess_mode'] == 1) { - $order = "(`s`.`count_week` - `s`.`idle_week`)"; - $texttime = $lang['sttw0013']; - } else { - $order = "`s`.`count_week`"; - $texttime = $lang['sttw0003']; - } - - $timeago = time() - 604800; - $db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_week`,`s`.`idle_week`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_week`<`s`.`count_week` AND `s`.`count_week`>=0 AND `s`.`idle_week`>=0 ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - - $count_ids = $mysqlcon->query("SELECT COUNT(DISTINCT(`id`)) AS `count` from `$dbname`.`user_snapshot`")->fetch(); - - $count10 = 0; - $top10_sum = 0; - $top10_idle_sum = 0; - - foreach ($db_arr as $uuid => $client) { - if ($cfg['rankup_time_assess_mode'] == 1) { - $hours = $client['count_week'] - $client['idle_week']; - } else { - $hours = $client['count_week']; - } - $top10_sum += $client['count_week']; - $top10_idle_sum += $client['idle_week']; - $client_data[$count10] = array( - 'name' => htmlspecialchars($client['name']), - 'title' => htmlspecialchars($client['name']), - 'count' => $hours, - 'online' => $client['online'] - ); - $count10++; - } - - for($count10 = $count10; $count10 < 10; $count10++) { - $client_data[$count10] = array( - 'name' => "".$lang['unknown']."", - 'title' => $lang['unknown'], - 'count' => 0, - 'online' => 0 - ); - } - - $sum = $mysqlcon->query("SELECT SUM(`s`.`count_week`) AS `count`, SUM(`s`.`idle_week`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_week`<`s`.`count_week` AND `s`.`count_week`>=0 AND `s`.`idle_week`>=0;")->fetch(); - $top10_sum = round(($top10_sum/3600)); - $top10_idle_sum = round(($top10_idle_sum/3600)); - $others_sum = round(($sum['count']/3600)) - $top10_sum; - $others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum; - $sumentries = $sum['user'] - 10; - ?> + $value) { + $notinuuid .= "'".$uuid."',"; + } + $notinuuid = substr($notinuuid, 0, -1); + } else { + $notinuuid = "'0'"; + } + + $notingroup = ''; + $andnotgroup = ''; + if ($cfg['rankup_excepted_group_id_list'] != null) { + foreach ($cfg['rankup_excepted_group_id_list'] as $group => $value) { + $notingroup .= "'".$group."',"; + $andnotgroup .= " AND `u`.`cldgroup` NOT LIKE ('".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group.",%') AND `u`.`cldgroup` NOT LIKE ('%,".$group."')"; + } + $notingroup = substr($notingroup, 0, -1); + } else { + $notingroup = "'0'"; + } + + if ($cfg['rankup_time_assess_mode'] == 1) { + $order = '(`s`.`count_week` - `s`.`idle_week`)'; + $texttime = $lang['sttw0013']; + } else { + $order = '`s`.`count_week`'; + $texttime = $lang['sttw0003']; + } + + $timeago = time() - 604800; + $db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_week`,`s`.`idle_week`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_week`<`s`.`count_week` AND `s`.`count_week`>=0 AND `s`.`idle_week`>=0 ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + + $count_ids = $mysqlcon->query("SELECT COUNT(DISTINCT(`id`)) AS `count` from `$dbname`.`user_snapshot`")->fetch(); + + $count10 = 0; + $top10_sum = 0; + $top10_idle_sum = 0; + + foreach ($db_arr as $uuid => $client) { + if ($cfg['rankup_time_assess_mode'] == 1) { + $hours = $client['count_week'] - $client['idle_week']; + } else { + $hours = $client['count_week']; + } + $top10_sum += $client['count_week']; + $top10_idle_sum += $client['idle_week']; + $client_data[$count10] = [ + 'name' => htmlspecialchars($client['name']), + 'title' => htmlspecialchars($client['name']), + 'count' => $hours, + 'online' => $client['online'], + ]; + $count10++; + } + + for ($count10 = $count10; $count10 < 10; $count10++) { + $client_data[$count10] = [ + 'name' => ''.$lang['unknown'].'', + 'title' => $lang['unknown'], + 'count' => 0, + 'online' => 0, + ]; + } + + $sum = $mysqlcon->query("SELECT SUM(`s`.`count_week`) AS `count`, SUM(`s`.`idle_week`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_week`<`s`.`count_week` AND `s`.`count_week`>=0 AND `s`.`idle_week`>=0;")->fetch(); + $top10_sum = round(($top10_sum / 3600)); + $top10_idle_sum = round(($top10_idle_sum / 3600)); + $others_sum = round(($sum['count'] / 3600)) - $top10_sum; + $others_idle_sum = round(($sum['idle'] / 3600)) - $top10_idle_sum; + $sumentries = $sum['user'] - 10; + ?>
- +

- - + +

- +
@@ -97,8 +101,12 @@
 
-
',$client_data[0]['name']; ?>
-
+
',$client_data[0]['name']; ?>
+
@@ -116,8 +124,12 @@
 
-
',$client_data[1]['name']; ?>
-
+
',$client_data[1]['name']; ?>
+
@@ -133,8 +145,12 @@
 
-
',$client_data[2]['name']; ?>
-
+
',$client_data[2]['name']; ?>
+
@@ -150,8 +166,12 @@ #4th
-
',$client_data[3]['name']; ?>
-
+
',$client_data[3]['name']; ?>
+
@@ -165,8 +185,12 @@ #5th
-
',$client_data[4]['name']; ?>
-
+
',$client_data[4]['name']; ?>
+
@@ -180,8 +204,12 @@ #6th
-
',$client_data[5]['name']; ?>
-
+
',$client_data[5]['name']; ?>
+
@@ -200,8 +228,12 @@ #7th
-
',$client_data[6]['name']; ?>
-
+
',$client_data[6]['name']; ?>
+
@@ -218,8 +250,12 @@ #8th
-
',$client_data[7]['name']; ?>
-
+
',$client_data[7]['name']; ?>
+
@@ -236,8 +272,12 @@ #9th
-
',$client_data[8]['name']; ?>
-
+
',$client_data[8]['name']; ?>
+
@@ -254,8 +294,12 @@ #10th
-
',$client_data[9]['name']; ?>
-
+
',$client_data[9]['name']; ?>
+
@@ -264,66 +308,66 @@
-

-

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

+

#1 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#2 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#3 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#4 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#5 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#6 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#7 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#8 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#9 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

+

#10 '.$lang['stix0024'].')' : ' (Status: '.$lang['stix0025'].')' ?>

-
+
-

+

-

+

@@ -334,7 +378,7 @@
-

+

@@ -345,7 +389,7 @@
-

+

@@ -354,11 +398,11 @@
- +
- + @@ -376,30 +420,31 @@ Morris.Donut({ element: 'top10vs_donut1', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_time_color_1, donut_time_color_2] }); Morris.Donut({ element: 'top10vs_donut2', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_version_color_1, donut_version_color_2] }); Morris.Donut({ element: 'top10vs_donut3', data: [ - {label: , value: }, - {label: , value: }, + {label: , value: }, + {label: , value: }, ], colors: [donut_nation_color_1, donut_nation_color_2] }); - \ No newline at end of file diff --git a/stats/update_graph.php b/stats/update_graph.php index 4d9fec2..2291b03 100644 --- a/stats/update_graph.php +++ b/stats/update_graph.php @@ -1,53 +1,53 @@ -query("SET @a:=0"); - -switch($_GET['serverusagechart']) { - case 'week': - $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,2) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 336")->fetchAll(PDO::FETCH_ASSOC); - //MySQL 8 above - //SELECT `timestamp`, `clients`, `channel` FROM (SELECT ROW_NUMBER() OVER (ORDER BY `timestamp`) AS `id`, `timestamp`, `clients`, `channel` FROM `$dbname`.`server_usage` WHERE `timestamp` > (UNIX_TIMESTAMP() - 604800) ORDER BY `timestamp` DESC) AS `u2` WHERE (`u2`.`id` % 2) = 1; - break; - case 'month': - $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,4) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 720")->fetchAll(PDO::FETCH_ASSOC); - //MySQL 8 above - //SELECT `timestamp`, `clients`, `channel` FROM (SELECT ROW_NUMBER() OVER (ORDER BY `timestamp`) AS `id`, `timestamp`, `clients`, `channel` FROM `$dbname`.`server_usage` WHERE `timestamp` > (UNIX_TIMESTAMP() - 2592000) ORDER BY `timestamp` DESC) AS `u2` WHERE (`u2`.`id` % 4) = 1; - break; - case '3month': - $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,16) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 548")->fetchAll(PDO::FETCH_ASSOC); - //MySQL 8 above - //SELECT `timestamp`, `clients`, `channel` FROM (SELECT ROW_NUMBER() OVER (ORDER BY `timestamp`) AS `id`, `timestamp`, `clients`, `channel` FROM `$dbname`.`server_usage` WHERE `timestamp` > (UNIX_TIMESTAMP() - 7776000) ORDER BY `timestamp` DESC LIMIT 8640) AS `u2` WHERE (`u2`.`id` % 16) = 1; - break; - default: - $server_usage = $mysqlcon->query("SELECT `timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage` ORDER BY `timestamp` DESC LIMIT 96")->fetchAll(PDO::FETCH_ASSOC); -} - -$chart_data = array(); - -foreach($server_usage as $chart_value) { - $chart_data[] = array( - "y" => date('Y-m-d H:i',$chart_value['timestamp']), - "a" => $chart_value['clients'], - "b" => $chart_value['channel'] - ); -} - -echo json_encode($chart_data); -?> \ No newline at end of file +query('SET @a:=0'); + +switch($_GET['serverusagechart']) { + case 'week': + $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,2) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 336")->fetchAll(PDO::FETCH_ASSOC); + //MySQL 8 above + //SELECT `timestamp`, `clients`, `channel` FROM (SELECT ROW_NUMBER() OVER (ORDER BY `timestamp`) AS `id`, `timestamp`, `clients`, `channel` FROM `$dbname`.`server_usage` WHERE `timestamp` > (UNIX_TIMESTAMP() - 604800) ORDER BY `timestamp` DESC) AS `u2` WHERE (`u2`.`id` % 2) = 1; + break; + case 'month': + $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,4) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 720")->fetchAll(PDO::FETCH_ASSOC); + //MySQL 8 above + //SELECT `timestamp`, `clients`, `channel` FROM (SELECT ROW_NUMBER() OVER (ORDER BY `timestamp`) AS `id`, `timestamp`, `clients`, `channel` FROM `$dbname`.`server_usage` WHERE `timestamp` > (UNIX_TIMESTAMP() - 2592000) ORDER BY `timestamp` DESC) AS `u2` WHERE (`u2`.`id` % 4) = 1; + break; + case '3month': + $server_usage = $mysqlcon->query("SELECT `u1`.`timestamp`,`u1`.`clients`,`u1`.`channel` FROM (SELECT @a:=@a+1,mod(@a,16) AS `row_count`,`timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage`) AS `u2`, `$dbname`.`server_usage` AS `u1` WHERE `u1`.`timestamp`=`u2`.`timestamp` AND `u2`.`row_count`='1' ORDER BY `u2`.`timestamp` DESC LIMIT 548")->fetchAll(PDO::FETCH_ASSOC); + //MySQL 8 above + //SELECT `timestamp`, `clients`, `channel` FROM (SELECT ROW_NUMBER() OVER (ORDER BY `timestamp`) AS `id`, `timestamp`, `clients`, `channel` FROM `$dbname`.`server_usage` WHERE `timestamp` > (UNIX_TIMESTAMP() - 7776000) ORDER BY `timestamp` DESC LIMIT 8640) AS `u2` WHERE (`u2`.`id` % 16) = 1; + break; + default: + $server_usage = $mysqlcon->query("SELECT `timestamp`,`clients`,`channel` FROM `$dbname`.`server_usage` ORDER BY `timestamp` DESC LIMIT 96")->fetchAll(PDO::FETCH_ASSOC); +} + +$chart_data = []; + +foreach ($server_usage as $chart_value) { + $chart_data[] = [ + 'y' => date('Y-m-d H:i', $chart_value['timestamp']), + 'a' => $chart_value['clients'], + 'b' => $chart_value['channel'], + ]; +} + +echo json_encode($chart_data); diff --git a/stats/verify.php b/stats/verify.php index ed78af9..df6f1ff 100644 --- a/stats/verify.php +++ b/stats/verify.php @@ -1,192 +1,209 @@ -prepare("SELECT `a`.`firstcon` AS `firstcon`, `b`.`total_connections` AS `total_connections` FROM `$dbname`.`user` `a` INNER JOIN `$dbname`.`stats_user` `b` ON `a`.`uuid`=`b`.`uuid` WHERE `b`.`uuid` = :uuid"); - $dbdata->bindValue(':uuid', $_SESSION[$rspathhex.'tsuid'], PDO::PARAM_STR); - $dbdata->execute(); - $clientinfo = $dbdata->fetchAll(); - if ($clientinfo[0]['total_connections'] != NULL) { - $_SESSION[$rspathhex.'tsconnections'] = $clientinfo[0]['total_connections']; - } else { - $_SESSION[$rspathhex.'tsconnections'] = 0; - } - if ($clientinfo[0]['firstcon'] == 0) { - $_SESSION[$rspathhex.'tscreated'] = $lang['unknown']; - } else { - $_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $clientinfo[0]['firstcon']); - } - $convert = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'); - $uuidasbase16 = ''; - for ($i = 0; $i < 20; $i++) { - $char = ord(substr(base64_decode($_SESSION[$rspathhex.'tsuid']), $i, 1)); - $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; - $uuidasbase16 .= $convert[$char & 0x0F]; - } - if (is_file('../avatars/' . $uuidasbase16 . '.png')) { - $_SESSION[$rspathhex.'tsavatar'] = $uuidasbase16 . '.png'; - } else { - $_SESSION[$rspathhex.'tsavatar'] = "none"; - } - $_SESSION[$rspathhex.'language'] = $cfg['default_language']; - } else { - $err_msg = $lang['stve0006']; $err_lvl = 3; - } - } - - if((!isset($_SESSION[$rspathhex.'multiple']) || count($_SESSION[$rspathhex.'multiple']) == 0) && ($cfg['teamspeak_verification_channel_id'] == NULL || $cfg['teamspeak_verification_channel_id'] == 0)) { - $err_msg = $lang['verify0001']."

".$lang['verify0003']; - $err_lvl = 3; - } elseif((isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) && $cfg['teamspeak_verification_channel_id'] != NULL && $cfg['teamspeak_verification_channel_id'] != 0) { - $err_msg = $lang['verify0001']; $err_lvl = 1; - $uuids = $mysqlcon->query("SELECT `name`,`uuid` FROM `$dbname`.`user` WHERE `online`='1' AND `cid`='{$cfg['teamspeak_verification_channel_id']}' ORDER BY `name` ASC")->fetchAll(); - foreach($uuids as $entry) { - $_SESSION[$rspathhex.'multiple'][$entry['uuid']] = $entry['name']; - } - } elseif(count($_SESSION[$rspathhex.'multiple']) == 1 && $_SESSION[$rspathhex.'connected'] == 1) { - $err_msg = $lang['stve0005']; $err_lvl = 1; - } - - if(isset($_POST['uuid']) && !isset($_SESSION[$rspathhex.'temp_uuid'])) { - if(array_key_exists($_POST['uuid'], $_SESSION[$rspathhex.'multiple'])) { - require_once('../libs/ts3_lib/TeamSpeak3.php'); - try { - if($cfg['teamspeak_query_encrypt_switch'] == 1) { - $ts3 = TeamSpeak3::factory("serverquery://".rawurlencode($cfg['teamspeak_query_user']).":".rawurlencode($cfg['teamspeak_query_pass'])."@".$cfg['teamspeak_host_address'].":".$cfg['teamspeak_query_port']."/?server_port=".$cfg['teamspeak_voice_port']."&ssh=1"); - } else { - $ts3 = TeamSpeak3::factory("serverquery://".rawurlencode($cfg['teamspeak_query_user']).":".rawurlencode($cfg['teamspeak_query_pass'])."@".$cfg['teamspeak_host_address'].":".$cfg['teamspeak_query_port']."/?server_port=".$cfg['teamspeak_voice_port']."&blocking=0"); - } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->selfUpdate(array('client_nickname' => "Ranksystem - Verification")); - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $allclients = $ts3->clientList(); - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - - foreach ($allclients as $client) { - if($client['client_unique_identifier'] == $_POST['uuid']) { - $cldbid = $client['client_database_id']; - $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); - $_SESSION[$rspathhex.'temp_uuid'] = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); - $_SESSION[$rspathhex.'temp_cldbid'] = $cldbid; - $_SESSION[$rspathhex.'temp_name'] = $nickname; - $pwd = substr(str_shuffle("abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"),0,6); - $_SESSION[$rspathhex.'token'] = $pwd; - $tokenlink = '[URL]http'.(!empty($_SERVER['HTTPS'])?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?token='.$pwd.'[/URL]'; - try { - $ts3->clientGetByUid($_SESSION[$rspathhex.'temp_uuid'])->message(sprintf($lang['stve0001'], $nickname, $tokenlink, $pwd)); - $err_msg = $lang['stve0002']; $err_lvl = 1; - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - break; - } - } - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - } else { - $err_msg = "The chosen user couldn't found! You are still connected on the TS server? Please stay connected on the server during the verification process!"; - $err_lvl = 3; - } - } - ?> +prepare("SELECT `a`.`firstcon` AS `firstcon`, `b`.`total_connections` AS `total_connections` FROM `$dbname`.`user` `a` INNER JOIN `$dbname`.`stats_user` `b` ON `a`.`uuid`=`b`.`uuid` WHERE `b`.`uuid` = :uuid"); + $dbdata->bindValue(':uuid', $_SESSION[$rspathhex.'tsuid'], PDO::PARAM_STR); + $dbdata->execute(); + $clientinfo = $dbdata->fetchAll(); + if ($clientinfo[0]['total_connections'] != null) { + $_SESSION[$rspathhex.'tsconnections'] = $clientinfo[0]['total_connections']; + } else { + $_SESSION[$rspathhex.'tsconnections'] = 0; + } + if ($clientinfo[0]['firstcon'] == 0) { + $_SESSION[$rspathhex.'tscreated'] = $lang['unknown']; + } else { + $_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $clientinfo[0]['firstcon']); + } + $convert = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']; + $uuidasbase16 = ''; + for ($i = 0; $i < 20; $i++) { + $char = ord(substr(base64_decode($_SESSION[$rspathhex.'tsuid']), $i, 1)); + $uuidasbase16 .= $convert[($char & 0xF0) >> 4]; + $uuidasbase16 .= $convert[$char & 0x0F]; + } + if (is_file('../avatars/'.$uuidasbase16.'.png')) { + $_SESSION[$rspathhex.'tsavatar'] = $uuidasbase16.'.png'; + } else { + $_SESSION[$rspathhex.'tsavatar'] = 'none'; + } + $_SESSION[$rspathhex.'language'] = $cfg['default_language']; + } else { + $err_msg = $lang['stve0006']; + $err_lvl = 3; + } + } + + if ((! isset($_SESSION[$rspathhex.'multiple']) || count($_SESSION[$rspathhex.'multiple']) == 0) && ($cfg['teamspeak_verification_channel_id'] == null || $cfg['teamspeak_verification_channel_id'] == 0)) { + $err_msg = $lang['verify0001'].'

'.$lang['verify0003']; + $err_lvl = 3; + } elseif ((isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || ! isset($_SESSION[$rspathhex.'connected'])) && $cfg['teamspeak_verification_channel_id'] != null && $cfg['teamspeak_verification_channel_id'] != 0) { + $err_msg = $lang['verify0001']; + $err_lvl = 1; + $uuids = $mysqlcon->query("SELECT `name`,`uuid` FROM `$dbname`.`user` WHERE `online`='1' AND `cid`='{$cfg['teamspeak_verification_channel_id']}' ORDER BY `name` ASC")->fetchAll(); + foreach ($uuids as $entry) { + $_SESSION[$rspathhex.'multiple'][$entry['uuid']] = $entry['name']; + } + } elseif (count($_SESSION[$rspathhex.'multiple']) == 1 && $_SESSION[$rspathhex.'connected'] == 1) { + $err_msg = $lang['stve0005']; + $err_lvl = 1; + } + + if (isset($_POST['uuid']) && ! isset($_SESSION[$rspathhex.'temp_uuid'])) { + if (array_key_exists($_POST['uuid'], $_SESSION[$rspathhex.'multiple'])) { + require_once '../libs/ts3_lib/TeamSpeak3.php'; + try { + if ($cfg['teamspeak_query_encrypt_switch'] == 1) { + $ts3 = TeamSpeak3::factory('serverquery://'.rawurlencode($cfg['teamspeak_query_user']).':'.rawurlencode($cfg['teamspeak_query_pass']).'@'.$cfg['teamspeak_host_address'].':'.$cfg['teamspeak_query_port'].'/?server_port='.$cfg['teamspeak_voice_port'].'&ssh=1'); + } else { + $ts3 = TeamSpeak3::factory('serverquery://'.rawurlencode($cfg['teamspeak_query_user']).':'.rawurlencode($cfg['teamspeak_query_pass']).'@'.$cfg['teamspeak_host_address'].':'.$cfg['teamspeak_query_port'].'/?server_port='.$cfg['teamspeak_voice_port'].'&blocking=0'); + } + + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->selfUpdate(['client_nickname' => 'Ranksystem - Verification']); + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + + try { + usleep($cfg['teamspeak_query_command_delay']); + $allclients = $ts3->clientList(); + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + + foreach ($allclients as $client) { + if ($client['client_unique_identifier'] == $_POST['uuid']) { + $cldbid = $client['client_database_id']; + $nickname = htmlspecialchars($client['client_nickname'], ENT_QUOTES); + $_SESSION[$rspathhex.'temp_uuid'] = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES); + $_SESSION[$rspathhex.'temp_cldbid'] = $cldbid; + $_SESSION[$rspathhex.'temp_name'] = $nickname; + $pwd = substr(str_shuffle('abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'), 0, 6); + $_SESSION[$rspathhex.'token'] = $pwd; + $tokenlink = '[URL]http'.(! empty($_SERVER['HTTPS']) ? 's' : '').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?token='.$pwd.'[/URL]'; + try { + $ts3->clientGetByUid($_SESSION[$rspathhex.'temp_uuid'])->message(sprintf($lang['stve0001'], $nickname, $tokenlink, $pwd)); + $err_msg = $lang['stve0002']; + $err_lvl = 1; + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + break; + } + } + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + } else { + $err_msg = "The chosen user couldn't found! You are still connected on the TS server? Please stay connected on the server during the verification process!"; + $err_lvl = 3; + } + } + ?>
- 1 || ((isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) && $cfg['teamspeak_verification_channel_id'] != NULL && $cfg['teamspeak_verification_channel_id'] != 0)) { - ?> + 1 || ((isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || ! isset($_SESSION[$rspathhex.'connected'])) && $cfg['teamspeak_verification_channel_id'] != null && $cfg['teamspeak_verification_channel_id'] != 0)) { + ?> - + - \ No newline at end of file diff --git a/stats/versions.php b/stats/versions.php index f3881a2..114b9b1 100644 --- a/stats/versions.php +++ b/stats/versions.php @@ -1,16 +1,18 @@ -query("SELECT * FROM `$dbname`.`stats_versions` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - ?> +query("SELECT * FROM `$dbname`.`stats_versions` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); + ?>
- +

- +

@@ -21,27 +23,27 @@ # - - - + + + - $value) { - $sum_of_all = $sum_of_all + $value['count']; - } - foreach ($sql_res as $version => $value) { - $count++; - echo ' + $value) { + $sum_of_all = $sum_of_all + $value['count']; + } + foreach ($sql_res as $version => $value) { + $count++; + echo ' ',$count,' ',$version,' ',$value['count'],' ',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' % - '; - } - ?> + '; + } + ?>
@@ -50,9 +52,10 @@
- + - \ No newline at end of file From 6a9a160482253375cc1cb8d3b21d50b8505b4a07 Mon Sep 17 00:00:00 2001 From: Sebi94nbg Date: Sun, 9 Jul 2023 15:25:41 +0200 Subject: [PATCH 07/10] Apply PHP-CS-Fixer code-style to `webinterface/` --- webinterface/_nav.php | 392 +++++++------- webinterface/_preload.php | 57 ++- webinterface/addon_assign_groups.php | 426 +++++++++------- webinterface/addon_channelinfo_toplist.php | 205 ++++---- webinterface/admin_addtime.php | 193 ++++--- webinterface/admin_delclient.php | 180 ++++--- webinterface/admin_remtime.php | 195 +++---- webinterface/api.php | 194 +++---- webinterface/boost.php | 437 ++++++++-------- webinterface/bot.php | 445 +++++++++------- webinterface/changepassword.php | 103 ++-- webinterface/core.php | 101 ++-- webinterface/db.php | 192 ++++--- webinterface/download_file.php | 61 +-- webinterface/except.php | 275 +++++----- webinterface/export.php | 329 ++++++------ webinterface/imprint.php | 153 +++--- webinterface/index.php | 281 +++++----- webinterface/msg.php | 152 +++--- webinterface/other.php | 451 ++++++++-------- webinterface/rank.php | 376 +++++++------- webinterface/ranklist.php | 567 ++++++++++++--------- webinterface/reset.php | 505 ++++++++++-------- webinterface/resetpassword.php | 207 ++++---- webinterface/stats.php | 203 ++++---- webinterface/ts.php | 294 ++++++----- 26 files changed, 3858 insertions(+), 3116 deletions(-) diff --git a/webinterface/_nav.php b/webinterface/_nav.php index 6597e78..b102555 100644 --- a/webinterface/_nav.php +++ b/webinterface/_nav.php @@ -1,69 +1,75 @@ -query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; -} else { - 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']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass'])) { - if (substr(php_uname(), 0, 7) == "Windows") { - if (file_exists($GLOBALS['pidfile'])) { - $pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); - 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($GLOBALS['pidfile'])) { - $check_pid = str_replace(array("\r", "\n"), '', file_get_contents($GLOBALS['pidfile'])); - $result = str_replace(array("\r", "\n"), '', shell_exec("ps ".$check_pid)); - if (strstr($result, $check_pid)) { - $botstatus = 1; - } else { - $botstatus = 0; - } - } else { - $botstatus = 0; - } - } -} - -if(isset($_POST['switchexpert']) && isset($_SESSION[$rspathhex.'username']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_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; - } -} -?> +query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; +} else { + 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']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass'])) { + if (substr(php_uname(), 0, 7) == 'Windows') { + if (file_exists($GLOBALS['pidfile'])) { + $pid = str_replace(["\r", "\n"], '', file_get_contents($GLOBALS['pidfile'])); + 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($GLOBALS['pidfile'])) { + $check_pid = str_replace(["\r", "\n"], '', file_get_contents($GLOBALS['pidfile'])); + $result = str_replace(["\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']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_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 - - '; - } - ?> - + + '; + } +?> + - '; - } - ?> + '; +} +?>
'; - } - } - } - ?> + '; + if ($botstatus == 1) { + echo '
  • '.$lang['boton'].'
  • '; + } else { + echo '
  • '.$lang['botoff'].''; + if (file_exists($GLOBALS['autostart'])) { + echo '

    ',$lang['autooff'],'
  • '; + } else { + echo '
    '; + } + } +} +?>
    -"; - $err_msg = sprintf($lang['winav10'], $host,'!
    ', '
    '); $err_lvl = 2; -} +'; + $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 index 862f2f3..8ced0cc 100644 --- a/webinterface/_preload.php +++ b/webinterface/_preload.php @@ -1,28 +1,29 @@ - \ No newline at end of file +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(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - $assign_groups_active = 0; - if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']]) && isset($_POST['assign_groups_active']) && !isset($_POST['assign_groups_groupids']) && !isset($_POST['assign_groups_excepted_groupids'])) { - $err_msg = $lang['stag0010']; - $err_lvl = 3; - } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $limit = $alwgr = $excgr = $name = ''; - if (isset($_POST['assign_groups_active'])) $assign_groups_active = 1; - foreach($_POST['assign_groups_limit'] as $rowid => $value) { - $name .= isset($_POST["assign_groups_name"][$rowid]) ? $_POST["assign_groups_name"][$rowid].';' : ';'; - $limit .= isset($_POST["assign_groups_limit"][$rowid]) ? intval($_POST["assign_groups_limit"][$rowid]).';' : '1;'; - if(isset($_POST['assign_groups_groupids'][$rowid])) { - foreach ($_POST['assign_groups_groupids'][$rowid] as $group) { - $alwgr .= $group.','; - } - $alwgr = substr($alwgr,0,-1); - } else { - $err_msg = $lang['stag0010']; - $err_lvl = 3; - } - $alwgr .= ';'; - if(isset($_POST['assign_groups_excepted_groupids'][$rowid])) { - foreach ($_POST['assign_groups_excepted_groupids'][$rowid] as $group) { - $excgr .= $group.','; - } - $excgr = substr($excgr,0,-1); - } else { - - } - $excgr .= ';'; - } - $name = substr($name,0,-1); - $limit = substr($limit,0,-1); - $alwgr = substr($alwgr,0,-1); - $excgr = substr($excgr,0,-1); - - if(!isset($err_lvl) || $err_lvl < 3) { - $sqlexec = $mysqlcon->prepare("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_name', :assign_groups_name), ('assign_groups_active', :assign_groups_active), ('assign_groups_limit', :assign_groups_limit), ('assign_groups_groupids', :assign_groups_groupids), ('assign_groups_excepted_groupids', :assign_groups_excepted_groupids) ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`= :csrf_token;"); - $sqlexec->bindParam(':assign_groups_name', $name, PDO::PARAM_STR); - $sqlexec->bindParam(':assign_groups_active', $assign_groups_active, PDO::PARAM_STR); - $sqlexec->bindParam(':assign_groups_limit', $limit, PDO::PARAM_STR); - $sqlexec->bindParam(':assign_groups_groupids', $alwgr, PDO::PARAM_STR); - $sqlexec->bindParam(':assign_groups_excepted_groupids', $excgr, PDO::PARAM_STR); - $sqlexec->bindParam(':csrf_token', $_POST['csrf_token']); - $sqlexec->execute(); - - if ($sqlexec->errorCode() != 0) { - $err_msg = print_r($sqlexec->errorInfo(), true); - $err_lvl = 3; - } elseif($addons_config['assign_groups_active']['value'] != $assign_groups_active && $assign_groups_active == 1) { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '
    '); - $err_lvl = NULL; - } else { - $err_msg = $lang['wisvsuc']; - $err_lvl = NULL; - } - } - - $addons_config['assign_groups_groupids']['value'] = $alwgr; - $addons_config['assign_groups_excepted_groupids']['value'] = $excgr; - $addons_config['assign_groups_name']['value'] = $name; - $addons_config['assign_groups_limit']['value'] = $limit; - $addons_config['assign_groups_active']['value'] = $assign_groups_active; - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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 (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + $assign_groups_active = 0; + if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']]) && isset($_POST['assign_groups_active']) && ! isset($_POST['assign_groups_groupids']) && ! isset($_POST['assign_groups_excepted_groupids'])) { + $err_msg = $lang['stag0010']; + $err_lvl = 3; + } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $limit = $alwgr = $excgr = $name = ''; + if (isset($_POST['assign_groups_active'])) { + $assign_groups_active = 1; + } + foreach ($_POST['assign_groups_limit'] as $rowid => $value) { + $name .= isset($_POST['assign_groups_name'][$rowid]) ? $_POST['assign_groups_name'][$rowid].';' : ';'; + $limit .= isset($_POST['assign_groups_limit'][$rowid]) ? intval($_POST['assign_groups_limit'][$rowid]).';' : '1;'; + if (isset($_POST['assign_groups_groupids'][$rowid])) { + foreach ($_POST['assign_groups_groupids'][$rowid] as $group) { + $alwgr .= $group.','; + } + $alwgr = substr($alwgr, 0, -1); + } else { + $err_msg = $lang['stag0010']; + $err_lvl = 3; + } + $alwgr .= ';'; + if (isset($_POST['assign_groups_excepted_groupids'][$rowid])) { + foreach ($_POST['assign_groups_excepted_groupids'][$rowid] as $group) { + $excgr .= $group.','; + } + $excgr = substr($excgr, 0, -1); + } else { + } + $excgr .= ';'; + } + $name = substr($name, 0, -1); + $limit = substr($limit, 0, -1); + $alwgr = substr($alwgr, 0, -1); + $excgr = substr($excgr, 0, -1); + + if (! isset($err_lvl) || $err_lvl < 3) { + $sqlexec = $mysqlcon->prepare("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_name', :assign_groups_name), ('assign_groups_active', :assign_groups_active), ('assign_groups_limit', :assign_groups_limit), ('assign_groups_groupids', :assign_groups_groupids), ('assign_groups_excepted_groupids', :assign_groups_excepted_groupids) ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`= :csrf_token;"); + $sqlexec->bindParam(':assign_groups_name', $name, PDO::PARAM_STR); + $sqlexec->bindParam(':assign_groups_active', $assign_groups_active, PDO::PARAM_STR); + $sqlexec->bindParam(':assign_groups_limit', $limit, PDO::PARAM_STR); + $sqlexec->bindParam(':assign_groups_groupids', $alwgr, PDO::PARAM_STR); + $sqlexec->bindParam(':assign_groups_excepted_groupids', $excgr, PDO::PARAM_STR); + $sqlexec->bindParam(':csrf_token', $_POST['csrf_token']); + $sqlexec->execute(); + + if ($sqlexec->errorCode() != 0) { + $err_msg = print_r($sqlexec->errorInfo(), true); + $err_lvl = 3; + } elseif ($addons_config['assign_groups_active']['value'] != $assign_groups_active && $assign_groups_active == 1) { + $err_msg = $lang['wisvsuc'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } else { + $err_msg = $lang['wisvsuc']; + $err_lvl = null; + } + } + + $addons_config['assign_groups_groupids']['value'] = $alwgr; + $addons_config['assign_groups_excepted_groupids']['value'] = $excgr; + $addons_config['assign_groups_name']['value'] = $name; + $addons_config['assign_groups_limit']['value'] = $limit; + $addons_config['assign_groups_active']['value'] = $assign_groups_active; + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -116,11 +119,11 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
     
    @@ -143,17 +146,31 @@
    @@ -175,35 +192,49 @@
    - $value) { - ?> + $value) { + ?>
    @@ -217,20 +248,40 @@
    - + $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.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 ''; + } + } + ?>
    @@ -251,29 +302,47 @@
    - + $groupParam) { + if (in_array($groupID, $assign_groups_excepted_groupids)) { + $selected = ' selected'; + } else { + $selected = ''; + } + 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 ''; + } + } + ?>
    - +
    @@ -315,10 +384,10 @@
    @@ -331,10 +400,10 @@
    @@ -347,10 +416,10 @@
    @@ -363,10 +432,10 @@
    @@ -379,10 +448,10 @@ @@ -395,10 +464,10 @@ @@ -438,6 +507,7 @@ function addboostgroup() { - \ No newline at end of file diff --git a/webinterface/addon_channelinfo_toplist.php b/webinterface/addon_channelinfo_toplist.php index 61b8546..6e0fd23 100644 --- a/webinterface/addon_channelinfo_toplist.php +++ b/webinterface/addon_channelinfo_toplist.php @@ -1,74 +1,80 @@ -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(($channellist = $mysqlcon->query("SELECT * FROM `$dbname`.`channel` ORDER BY `pid`,`channel_order`,`channel_name` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - $channelinfo_toplist_active = 0; - - if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - if (isset($_POST['channelinfo_toplist_active'])) $channelinfo_toplist_active = 1; - if(is_array($_POST['channelid'])) $_POST['channelid'] = $_POST['channelid'][0]; - - if(!isset($err_lvl) || $err_lvl < 3) { - $sqlexec = $mysqlcon->prepare("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_active', :channelinfo_toplist_active), ('channelinfo_toplist_desc', :channelinfo_toplist_desc), ('channelinfo_toplist_delay', :channelinfo_toplist_delay), ('channelinfo_toplist_channelid', :channelinfo_toplist_channelid), ('channelinfo_toplist_modus', :channelinfo_toplist_modus) ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`= :csrf_token"); - $sqlexec->bindParam(':channelinfo_toplist_active', $channelinfo_toplist_active, PDO::PARAM_STR); - $sqlexec->bindParam(':channelinfo_toplist_desc', $_POST['channelinfo_toplist_desc'], PDO::PARAM_STR); - $sqlexec->bindParam(':channelinfo_toplist_delay', $_POST['channelinfo_toplist_delay'], PDO::PARAM_STR); - $sqlexec->bindParam(':channelinfo_toplist_channelid', $_POST['channelid'], PDO::PARAM_STR); - $sqlexec->bindParam(':channelinfo_toplist_modus', $_POST['channelinfo_toplist_modus'], PDO::PARAM_STR); - $sqlexec->bindParam(':csrf_token', $_POST['csrf_token']); - $sqlexec->execute(); - - if ($sqlexec->errorCode() != 0) { - $err_msg = print_r($sqlexec->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], ''); - $err_lvl = NULL; - } - } - - $addons_config['channelinfo_toplist_active']['value'] = $channelinfo_toplist_active; - $addons_config['channelinfo_toplist_channelid']['value'] = $_POST['channelid']; - $addons_config['channelinfo_toplist_modus']['value'] = $_POST['channelinfo_toplist_modus']; - $addons_config['channelinfo_toplist_delay']['value'] = $_POST['channelinfo_toplist_delay']; - $addons_config['channelinfo_toplist_desc']['value'] = $_POST['channelinfo_toplist_desc']; - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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 (($channellist = $mysqlcon->query("SELECT * FROM `$dbname`.`channel` ORDER BY `pid`,`channel_order`,`channel_name` ASC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + $channelinfo_toplist_active = 0; + + if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + if (isset($_POST['channelinfo_toplist_active'])) { + $channelinfo_toplist_active = 1; + } + if (is_array($_POST['channelid'])) { + $_POST['channelid'] = $_POST['channelid'][0]; + } + + if (! isset($err_lvl) || $err_lvl < 3) { + $sqlexec = $mysqlcon->prepare("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('channelinfo_toplist_active', :channelinfo_toplist_active), ('channelinfo_toplist_desc', :channelinfo_toplist_desc), ('channelinfo_toplist_delay', :channelinfo_toplist_delay), ('channelinfo_toplist_channelid', :channelinfo_toplist_channelid), ('channelinfo_toplist_modus', :channelinfo_toplist_modus) ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`= :csrf_token"); + $sqlexec->bindParam(':channelinfo_toplist_active', $channelinfo_toplist_active, PDO::PARAM_STR); + $sqlexec->bindParam(':channelinfo_toplist_desc', $_POST['channelinfo_toplist_desc'], PDO::PARAM_STR); + $sqlexec->bindParam(':channelinfo_toplist_delay', $_POST['channelinfo_toplist_delay'], PDO::PARAM_STR); + $sqlexec->bindParam(':channelinfo_toplist_channelid', $_POST['channelid'], PDO::PARAM_STR); + $sqlexec->bindParam(':channelinfo_toplist_modus', $_POST['channelinfo_toplist_modus'], PDO::PARAM_STR); + $sqlexec->bindParam(':csrf_token', $_POST['csrf_token']); + $sqlexec->execute(); + + if ($sqlexec->errorCode() != 0) { + $err_msg = print_r($sqlexec->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + } + + $addons_config['channelinfo_toplist_active']['value'] = $channelinfo_toplist_active; + $addons_config['channelinfo_toplist_channelid']['value'] = $_POST['channelid']; + $addons_config['channelinfo_toplist_modus']['value'] = $_POST['channelinfo_toplist_modus']; + $addons_config['channelinfo_toplist_delay']['value'] = $_POST['channelinfo_toplist_delay']; + $addons_config['channelinfo_toplist_desc']['value'] = $_POST['channelinfo_toplist_desc']; + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -84,11 +90,11 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
     
    @@ -102,23 +108,41 @@
    - +
    @@ -165,10 +189,10 @@
    @@ -181,10 +205,10 @@
    @@ -197,10 +221,10 @@ @@ -213,10 +237,10 @@ @@ -229,10 +253,10 @@ @@ -254,6 +278,7 @@ - \ No newline at end of file diff --git a/webinterface/admin_addtime.php b/webinterface/admin_addtime.php index b0df830..bb6a2cb 100644 --- a/webinterface/admin_addtime.php +++ b/webinterface/admin_addtime.php @@ -1,76 +1,92 @@ -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['number']) || $_POST['number'] == "yes") { - $_SESSION[$rspathhex.'showexcepted'] = "yes"; - $filter = " WHERE `except`='0'"; - } else { - $_SESSION[$rspathhex.'showexcepted'] = "no"; - $filter = ""; - } - - if(($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` $filter ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { - $err_msg = "DB Error1: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $setontime = 0; - if($_POST['setontime_day']) { $setontime = $setontime + $_POST['setontime_day'] * 86400; } - if($_POST['setontime_hour']) { $setontime = $setontime + $_POST['setontime_hour'] * 3600; } - if($_POST['setontime_min']) { $setontime = $setontime + $_POST['setontime_min'] * 60; } - if($_POST['setontime_sec']) { $setontime = $setontime + $_POST['setontime_sec']; } - if($setontime == 0) { - $err_msg = $lang['errseltime']; $err_lvl = 3; - } elseif($_POST['user'] == NULL) { - $err_msg = $lang['errselusr']; $err_lvl = 3; - } else { - $allinsertdata = ''; - $succmsg = ''; - $nowtime = time(); - foreach($_POST['user'] as $uuid) { - $allinsertdata .= "('".$uuid."', ".$nowtime.", ".$setontime."),"; - $succmsg .= sprintf($lang['sccupcount'],$setontime,$uuid)."
    "; - } - $allinsertdata = substr($allinsertdata, 0, -1); - if($mysqlcon->exec("INSERT INTO `$dbname`.`admin_addtime` (`uuid`,`timestamp`,`timecount`) VALUES $allinsertdata;") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } 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; - } - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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['number']) || $_POST['number'] == 'yes') { + $_SESSION[$rspathhex.'showexcepted'] = 'yes'; + $filter = " WHERE `except`='0'"; + } else { + $_SESSION[$rspathhex.'showexcepted'] = 'no'; + $filter = ''; + } + + if (($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` $filter ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { + $err_msg = 'DB Error1: '.print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $setontime = 0; + if ($_POST['setontime_day']) { + $setontime = $setontime + $_POST['setontime_day'] * 86400; + } + if ($_POST['setontime_hour']) { + $setontime = $setontime + $_POST['setontime_hour'] * 3600; + } + if ($_POST['setontime_min']) { + $setontime = $setontime + $_POST['setontime_min'] * 60; + } + if ($_POST['setontime_sec']) { + $setontime = $setontime + $_POST['setontime_sec']; + } + if ($setontime == 0) { + $err_msg = $lang['errseltime']; + $err_lvl = 3; + } elseif ($_POST['user'] == null) { + $err_msg = $lang['errselusr']; + $err_lvl = 3; + } else { + $allinsertdata = ''; + $succmsg = ''; + $nowtime = time(); + foreach ($_POST['user'] as $uuid) { + $allinsertdata .= "('".$uuid."', ".$nowtime.', '.$setontime.'),'; + $succmsg .= sprintf($lang['sccupcount'], $setontime, $uuid).'
    '; + } + $allinsertdata = substr($allinsertdata, 0, -1); + if ($mysqlcon->exec("INSERT INTO `$dbname`.`admin_addtime` (`uuid`,`timestamp`,`timecount`) VALUES $allinsertdata;") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } 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; + } + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -89,10 +105,16 @@
    @@ -100,11 +122,11 @@
    @@ -117,7 +139,7 @@ min: 0, max: 11574, verticalbuttons: true, - prefix: '' + prefix: '' });
    @@ -131,7 +153,7 @@ min: 0, max: 277777, verticalbuttons: true, - prefix: '' + prefix: '' });
    @@ -145,7 +167,7 @@ min: 0, max: 16666666, verticalbuttons: true, - prefix: '' + prefix: '' });
    @@ -159,7 +181,7 @@ min: 0, max: 999999999, verticalbuttons: true, - prefix: '' + prefix: '' }); @@ -189,10 +211,10 @@ @@ -205,10 +227,10 @@ @@ -221,16 +243,17 @@ - \ No newline at end of file diff --git a/webinterface/admin_delclient.php b/webinterface/admin_delclient.php index c88f345..d91f293 100644 --- a/webinterface/admin_delclient.php +++ b/webinterface/admin_delclient.php @@ -1,82 +1,89 @@ -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['number']) || $_POST['number'] == "yes") { - $_SESSION[$rspathhex.'showexcepted'] = "yes"; - $filter = " WHERE `except`='0'"; - } else { - $_SESSION[$rspathhex.'showexcepted'] = "no"; - $filter = ""; - } - - if(($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name`,`lastseen` FROM `$dbname`.`user` $filter ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)) === false) { - $err_msg = "DB Error1: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if (isset($_POST['confirm']) && isset($db_csrf[$_POST['csrf_token']])) { - $allinsertdata = ''; - $succmsg = ''; - $del_arr = explode(';',$_POST['uuids']); - foreach($del_arr as $uuid) { - $allinsertdata .= "('".$uuid."', '4273093200', '0'),"; - $succmsg .= sprintf($lang['wihladm44'], $user_arr[$uuid]['name'], $uuid, $user_arr[$uuid]['cldbid'])."
    "; - } - $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; - } - } elseif(isset($_POST['update']) && $_POST['user'] == NULL && isset($db_csrf[$_POST['csrf_token']])) { - $err_msg = $lang['errselusr']; $err_lvl = 3; - } elseif(isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $err_msg = ''.$lang['wihladm41'].'
    '.$lang['wihladm42'].'

    '; - $uuids = ''; - foreach($_POST['user'] as $uuid) { - $uuids .= $uuid.';'; - $err_msg .= ' - '.sprintf("%s (UUID: %s; DBID: %s)",$user_arr[$uuid]['name'],$uuid,$user_arr[$uuid]['cldbid']).' - '.$lang['listseen'].' '.date('Y-m-d H:i:s',$user_arr[$uuid]['lastseen']).'
    '; - } - $uuids = substr($uuids,0,-1); - $err_msg .= '

    +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['number']) || $_POST['number'] == 'yes') { + $_SESSION[$rspathhex.'showexcepted'] = 'yes'; + $filter = " WHERE `except`='0'"; + } else { + $_SESSION[$rspathhex.'showexcepted'] = 'no'; + $filter = ''; + } + + if (($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name`,`lastseen` FROM `$dbname`.`user` $filter ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_UNIQUE)) === false) { + $err_msg = 'DB Error1: '.print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (isset($_POST['confirm']) && isset($db_csrf[$_POST['csrf_token']])) { + $allinsertdata = ''; + $succmsg = ''; + $del_arr = explode(';', $_POST['uuids']); + foreach ($del_arr as $uuid) { + $allinsertdata .= "('".$uuid."', '4273093200', '0'),"; + $succmsg .= sprintf($lang['wihladm44'], $user_arr[$uuid]['name'], $uuid, $user_arr[$uuid]['cldbid']).'
    '; + } + $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; + } + } elseif (isset($_POST['update']) && $_POST['user'] == null && isset($db_csrf[$_POST['csrf_token']])) { + $err_msg = $lang['errselusr']; + $err_lvl = 3; + } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $err_msg = ''.$lang['wihladm41'].'
    '.$lang['wihladm42'].'

    '; + $uuids = ''; + foreach ($_POST['user'] as $uuid) { + $uuids .= $uuid.';'; + $err_msg .= ' - '.sprintf('%s (UUID: %s; DBID: %s)', $user_arr[$uuid]['name'], $uuid, $user_arr[$uuid]['cldbid']).' - '.$lang['listseen'].' '.date('Y-m-d H:i:s', $user_arr[$uuid]['lastseen']).'
    '; + } + $uuids = substr($uuids, 0, -1); + $err_msg .= '

    -
    '; - $err_lvl = 1; - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> + '; + $err_lvl = 1; + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -95,10 +102,16 @@
    @@ -106,11 +119,11 @@
    @@ -139,10 +152,10 @@
    @@ -155,10 +168,10 @@ @@ -171,16 +184,17 @@ - \ No newline at end of file diff --git a/webinterface/admin_remtime.php b/webinterface/admin_remtime.php index 847990f..31d13d1 100644 --- a/webinterface/admin_remtime.php +++ b/webinterface/admin_remtime.php @@ -1,77 +1,93 @@ -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['number']) || $_POST['number'] == "yes") { - $_SESSION[$rspathhex.'showexcepted'] = "yes"; - $filter = " WHERE `except`='0'"; - } else { - $_SESSION[$rspathhex.'showexcepted'] = "no"; - $filter = ""; - } - - if(($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` $filter ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { - $err_msg = "DB Error: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $setontime = 0; - if($_POST['setontime_day']) { $setontime = $setontime + $_POST['setontime_day'] * 86400; } - if($_POST['setontime_hour']) { $setontime = $setontime + $_POST['setontime_hour'] * 3600; } - if($_POST['setontime_min']) { $setontime = $setontime + $_POST['setontime_min'] * 60; } - if($_POST['setontime_sec']) { $setontime = $setontime + $_POST['setontime_sec']; } - if($setontime == 0) { - $err_msg = $lang['errseltime']; $err_lvl = 3; - } elseif($_POST['user'] == NULL) { - $err_msg = $lang['errselusr']; $err_lvl = 3; - } else { - $allinsertdata = ''; - $succmsg = ''; - $nowtime = time(); - $setontime = $setontime * -1; - foreach($_POST['user'] as $uuid) { - $allinsertdata .= "('".$uuid."', ".$nowtime.", ".$setontime."),"; - $succmsg .= sprintf($lang['sccupcount'],$setontime,$uuid)."
    "; - } - $allinsertdata = substr($allinsertdata, 0, -1); - if($mysqlcon->exec("INSERT INTO `$dbname`.`admin_addtime` (`uuid`,`timestamp`,`timecount`) VALUES $allinsertdata;") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } 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; - } - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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['number']) || $_POST['number'] == 'yes') { + $_SESSION[$rspathhex.'showexcepted'] = 'yes'; + $filter = " WHERE `except`='0'"; + } else { + $_SESSION[$rspathhex.'showexcepted'] = 'no'; + $filter = ''; + } + + if (($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` $filter ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { + $err_msg = 'DB Error: '.print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $setontime = 0; + if ($_POST['setontime_day']) { + $setontime = $setontime + $_POST['setontime_day'] * 86400; + } + if ($_POST['setontime_hour']) { + $setontime = $setontime + $_POST['setontime_hour'] * 3600; + } + if ($_POST['setontime_min']) { + $setontime = $setontime + $_POST['setontime_min'] * 60; + } + if ($_POST['setontime_sec']) { + $setontime = $setontime + $_POST['setontime_sec']; + } + if ($setontime == 0) { + $err_msg = $lang['errseltime']; + $err_lvl = 3; + } elseif ($_POST['user'] == null) { + $err_msg = $lang['errselusr']; + $err_lvl = 3; + } else { + $allinsertdata = ''; + $succmsg = ''; + $nowtime = time(); + $setontime = $setontime * -1; + foreach ($_POST['user'] as $uuid) { + $allinsertdata .= "('".$uuid."', ".$nowtime.', '.$setontime.'),'; + $succmsg .= sprintf($lang['sccupcount'], $setontime, $uuid).'
    '; + } + $allinsertdata = substr($allinsertdata, 0, -1); + if ($mysqlcon->exec("INSERT INTO `$dbname`.`admin_addtime` (`uuid`,`timestamp`,`timecount`) VALUES $allinsertdata;") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } 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; + } + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -90,10 +106,16 @@
    @@ -101,11 +123,11 @@
    @@ -118,7 +140,7 @@ min: 0, max: 11574, verticalbuttons: true, - prefix: '' + prefix: '' });
    @@ -132,7 +154,7 @@ min: 0, max: 277777, verticalbuttons: true, - prefix: '' + prefix: '' });
    @@ -146,7 +168,7 @@ min: 0, max: 16666666, verticalbuttons: true, - prefix: '' + prefix: '' });
    @@ -160,7 +182,7 @@ min: 0, max: 999999999, verticalbuttons: true, - prefix: '' + prefix: '' }); @@ -190,10 +212,10 @@ @@ -206,10 +228,10 @@ @@ -222,16 +244,17 @@ - \ No newline at end of file diff --git a/webinterface/api.php b/webinterface/api.php index 98f51cf..040eca6 100644 --- a/webinterface/api.php +++ b/webinterface/api.php @@ -1,63 +1,69 @@ -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; - if(isset($_POST["perm_bot"]) && in_array($rowid,$_POST["perm_bot"])) $perm_bot = 1; else $perm_bot = 0; - $apidefinition[] = "$apikey=>$desc=>$perm_bot"; - } - - $stats_api_keys = implode(",", $apidefinition); - - $cfg['stats_api_keys'] = $stats_api_keys; - } else { - $cfg['stats_api_keys'] = NULL; - } - - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_api_keys',".$mysqlcon->quote($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, $desc, $perm_bot) = explode('=>', $entry); - $addnewvalue[$key] = array("key"=>$key,"desc"=>$desc,"perm_bot"=>$perm_bot); - $cfg['stats_api_keys'] = $addnewvalue; - } - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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; + if (isset($_POST['perm_bot']) && in_array($rowid, $_POST['perm_bot'])) { + $perm_bot = 1; + } else { + $perm_bot = 0; + } + $apidefinition[] = "$apikey=>$desc=>$perm_bot"; + } + + $stats_api_keys = implode(',', $apidefinition); + + $cfg['stats_api_keys'] = $stats_api_keys; + } else { + $cfg['stats_api_keys'] = null; + } + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_api_keys',".$mysqlcon->quote($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, $desc, $perm_bot) = explode('=>', $entry); + $addnewvalue[$key] = ['key'=>$key, 'desc'=>$desc, 'perm_bot'=>$perm_bot]; + $cfg['stats_api_keys'] = $addnewvalue; + } + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +
    @@ -68,7 +74,7 @@
    - +
    @@ -84,7 +90,7 @@
    - +
    @@ -93,7 +99,8 @@
    '; + } else { + echo '
    '; + }?>
    @@ -178,12 +185,12 @@
    @@ -266,6 +273,7 @@ function copyurl(url) { - \ No newline at end of file diff --git a/webinterface/boost.php b/webinterface/boost.php index 9117b09..cde9673 100644 --- a/webinterface/boost.php +++ b/webinterface/boost.php @@ -1,149 +1,149 @@ -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(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(!isset($groupslist) || $groupslist == NULL) { - $err_msg = 'No servergroups found inside the Ranksystem cache!

    Please connect the Ranksystem Bot to the TS server. The Ranksystem will download the servergroups when it is connected to the server.
    Give it a few minutes and reload this page. The dropdown field should contain your groups after.'; - $err_lvl = 1; - } - - if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) { - if(empty($_POST['rankup_boost_definition'])) { - $grouparr_old = null; - } else { - foreach (explode(',', $_POST['rankup_boost_definition']) as $entry) { - list($key, $value1, $value2) = explode('=>', $entry); - $grouparr_old[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); - $cfg['rankup_boost_definition'] = $grouparr_old; - } - } - - if(isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != NULL) { - foreach($cfg['rankup_boost_definition'] as $groupid => $value) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wiboost']).'
    '; - $err_lvl = 3; - $errcnf++; - } - } - } - - $cfg['rankup_boost_definition'] = $_POST['rankup_boost_definition']; - - if($errcnf == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_boost_definition','{$cfg['rankup_boost_definition']}') 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']." ".sprintf($lang['wisvres'], ''); - $err_lvl = NULL; - } - } else { - $err_msg .= "
    ".$lang['errgrpid']; - } - - if(empty($_POST['rankup_boost_definition'])) { - $cfg['rankup_boost_definition'] = NULL; - } else { - foreach (explode(',', $_POST['rankup_boost_definition']) as $entry) { - list($key, $value1, $value2) = explode('=>', $entry); - $addnewvalue2[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); - $cfg['rankup_boost_definition'] = $addnewvalue2; - } - } - - } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $rankup_boost_definition = $err_msg = ""; - $errcnf = 0; - - if (isset($_POST['boostduration']) && !isset($_POST['boostgroup']) && isset($_POST['boostfactor'])) { - $errcnf++; - $err_msg = "Missing servergroup in your defintion!
    "; - $err_lvl = 3; - $cfg['rankup_boost_definition'] = null; - } elseif (isset($_POST['boostduration']) && isset($_POST['boostgroup']) && isset($_POST['boostfactor'])) { - $boostdefinition = []; - foreach($_POST['boostgroup'] as $rowid => $groupid) { - $factor = isset($_POST["boostfactor"][$rowid]) ? floatval($_POST["boostfactor"][$rowid]) : 1; - $duration = isset($_POST["boostduration"][$rowid]) ? intval($_POST["boostduration"][$rowid]) : 1; - $boostdefinition[] = "$groupid=>$factor=>$duration"; - } - - $rankup_boost_definition = implode(",", $boostdefinition); - - $grouparr = []; - foreach(explode(',', $rankup_boost_definition) as $entry) { - list($groupid, $factor, $duration) = explode('=>', $entry); - $grouparr[$groupid] = $factor; - } - - if(isset($groupslist) && $groupslist != NULL) { - foreach($grouparr as $groupid => $time) { - if((!isset($groupslist[$groupid]) && $groupid != NULL) || $groupid == 0) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
    '; - $err_lvl = 3; - $errcnf++; - } - } - } - - $cfg['rankup_boost_definition'] = $rankup_boost_definition; - } else { - $cfg['rankup_boost_definition'] = null; - if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `boosttime`=0;") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - } - - if($errcnf == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_boost_definition','{$cfg['rankup_boost_definition']}') 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']." ".sprintf($lang['wisvres'], '
    '); - $err_lvl = NULL; - } - } else { - $err_msg .= "
    ".$lang['errgrpid']; - } - - if(empty($rankup_boost_definition)) { - $cfg['rankup_boost_definition'] = NULL; - } else { - $boostexp = explode(',', $rankup_boost_definition); - foreach ($boostexp as $entry) { - list($key, $value1, $value2) = explode('=>', $entry); - $addnewvalue2[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2); - $cfg['rankup_boost_definition'] = $addnewvalue2; - } - } - - } elseif(isset($_POST['update']) || isset($_POST['update_old'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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 (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (! isset($groupslist) || $groupslist == null) { + $err_msg = 'No servergroups found inside the Ranksystem cache!

    Please connect the Ranksystem Bot to the TS server. The Ranksystem will download the servergroups when it is connected to the server.
    Give it a few minutes and reload this page. The dropdown field should contain your groups after.'; + $err_lvl = 1; + } + + if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) { + if (empty($_POST['rankup_boost_definition'])) { + $grouparr_old = null; + } else { + foreach (explode(',', $_POST['rankup_boost_definition']) as $entry) { + list($key, $value1, $value2) = explode('=>', $entry); + $grouparr_old[$key] = ['group'=>$key, 'factor'=>$value1, 'time'=>$value2]; + $cfg['rankup_boost_definition'] = $grouparr_old; + } + } + + if (isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != null) { + foreach ($cfg['rankup_boost_definition'] as $groupid => $value) { + if (! isset($groupslist[$groupid]) && $groupid != null) { + $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wiboost']).'
    '; + $err_lvl = 3; + $errcnf++; + } + } + } + + $cfg['rankup_boost_definition'] = $_POST['rankup_boost_definition']; + + if ($errcnf == 0) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_boost_definition','{$cfg['rankup_boost_definition']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + } else { + $err_msg .= '
    '.$lang['errgrpid']; + } + + if (empty($_POST['rankup_boost_definition'])) { + $cfg['rankup_boost_definition'] = null; + } else { + foreach (explode(',', $_POST['rankup_boost_definition']) as $entry) { + list($key, $value1, $value2) = explode('=>', $entry); + $addnewvalue2[$key] = ['group'=>$key, 'factor'=>$value1, 'time'=>$value2]; + $cfg['rankup_boost_definition'] = $addnewvalue2; + } + } + } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $rankup_boost_definition = $err_msg = ''; + $errcnf = 0; + + if (isset($_POST['boostduration']) && ! isset($_POST['boostgroup']) && isset($_POST['boostfactor'])) { + $errcnf++; + $err_msg = 'Missing servergroup in your defintion!
    '; + $err_lvl = 3; + $cfg['rankup_boost_definition'] = null; + } elseif (isset($_POST['boostduration']) && isset($_POST['boostgroup']) && isset($_POST['boostfactor'])) { + $boostdefinition = []; + foreach ($_POST['boostgroup'] as $rowid => $groupid) { + $factor = isset($_POST['boostfactor'][$rowid]) ? floatval($_POST['boostfactor'][$rowid]) : 1; + $duration = isset($_POST['boostduration'][$rowid]) ? intval($_POST['boostduration'][$rowid]) : 1; + $boostdefinition[] = "$groupid=>$factor=>$duration"; + } + + $rankup_boost_definition = implode(',', $boostdefinition); + + $grouparr = []; + foreach (explode(',', $rankup_boost_definition) as $entry) { + list($groupid, $factor, $duration) = explode('=>', $entry); + $grouparr[$groupid] = $factor; + } + + if (isset($groupslist) && $groupslist != null) { + foreach ($grouparr as $groupid => $time) { + if ((! isset($groupslist[$groupid]) && $groupid != null) || $groupid == 0) { + $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
    '; + $err_lvl = 3; + $errcnf++; + } + } + } + + $cfg['rankup_boost_definition'] = $rankup_boost_definition; + } else { + $cfg['rankup_boost_definition'] = null; + if ($mysqlcon->exec("UPDATE `$dbname`.`user` SET `boosttime`=0;") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + } + + if ($errcnf == 0) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_boost_definition','{$cfg['rankup_boost_definition']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + } else { + $err_msg .= '
    '.$lang['errgrpid']; + } + + if (empty($rankup_boost_definition)) { + $cfg['rankup_boost_definition'] = null; + } else { + $boostexp = explode(',', $rankup_boost_definition); + foreach ($boostexp as $entry) { + list($key, $value1, $value2) = explode('=>', $entry); + $addnewvalue2[$key] = ['group'=>$key, 'factor'=>$value1, 'time'=>$value2]; + $cfg['rankup_boost_definition'] = $addnewvalue2; + } + } + } elseif (isset($_POST['update']) || isset($_POST['update_old'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +
    @@ -157,7 +157,7 @@
    - +
    @@ -180,17 +180,31 @@ '; + } else { + echo '
    '; + }?>
    @@ -277,7 +309,7 @@
    - +
    @@ -288,16 +320,16 @@
    - +
    @@ -323,10 +355,10 @@
    @@ -339,10 +371,10 @@
    @@ -410,6 +442,7 @@ function addboostgroup() { - \ No newline at end of file diff --git a/webinterface/bot.php b/webinterface/bot.php index 6896ac0..2ca4b89 100644 --- a/webinterface/bot.php +++ b/webinterface/bot.php @@ -1,207 +1,222 @@ -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['start']) || isset($_POST['stop']) || isset($_POST['restart']) || isset($_POST['logfilter'])) && !isset($db_csrf[$_POST['csrf_token']])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - - $logoutput = getlog($number_lines,$filters,$filter2,$inactivefilter); - - if (isset($_POST['start']) && isset($db_csrf[$_POST['csrf_token']])) { - if(!is_writable($GLOBALS['logpath'])) { - $err_msg = "!!!! Logs folder is not writable !!!!
    Cancel start request!"; $err_lvl = 3; - } else { - $output = ''; - exec($phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php start", $resultexec); - if (file_exists($GLOBALS['autostart'])) { - unlink($GLOBALS['autostart']); - } - foreach($resultexec as $line) $output .= print_r($line, true).'
    '; - $err_msg = $lang['wibot2'].'

    Result of worker.php:
    '.$output.'
    '; - $err_lvl = 1; - usleep(80000); - $logoutput = getlog($number_lines,$filters,$filter2,$inactivefilter); - } - } - - if (isset($_POST['stop']) && isset($db_csrf[$_POST['csrf_token']])) { - if(!is_writable($GLOBALS['logpath'])) { - $err_msg = "!!!! Logs folder is not writable !!!!
    Cancel stop request!"; $err_lvl = 3; - } else { - $output = ''; - exec($phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php stop", $resultexec); - file_put_contents($GLOBALS['autostart'],""); - foreach($resultexec as $line) $output .= print_r($line, true).'
    '; - $err_msg = $lang['wibot1'].'

    Result of worker.php:
    '.$output.'
    ';; - $err_lvl = 1; - usleep(80000); - $logoutput = getlog($number_lines,$filters,$filter2,$inactivefilter); - } - } - - if (isset($_POST['restart']) && isset($db_csrf[$_POST['csrf_token']])) { - if(!is_writable($GLOBALS['logpath'])) { - $err_msg = "!!!! Logs folder is not writable !!!!
    Cancel restart request!"; $err_lvl = 3; - } else { - $output = ''; - exec($phpcommand." ".dirname(__DIR__).DIRECTORY_SEPARATOR."worker.php restart", $resultexec); - if (file_exists($GLOBALS['autostart'])) { - unlink($GLOBALS['autostart']); - } - foreach($resultexec as $line) $output .= print_r($line, true).'
    '; - $err_msg = $lang['wibot3'].'

    Result of worker.php:
    '.$output.'
    '; - $err_lvl = 1; - usleep(80000); - $logoutput = getlog($number_lines,$filters,$filter2,$inactivefilter); - } - } - - $disabled = ''; - if($cfg['teamspeak_host_address'] == NULL || $cfg['teamspeak_query_port'] == NULL || $cfg['teamspeak_voice_port'] == NULL || $cfg['teamspeak_query_user'] == NULL || $cfg['teamspeak_query_pass'] == NULL || $cfg['teamspeak_query_nickname'] == NULL || $cfg['rankup_definition'] == NULL || $GLOBALS['logpath'] == NULL) { - $disabled = 1; - $err_msg = $lang['wibot9']; - $err_lvl = 2; - } - ?> +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['start']) || isset($_POST['stop']) || isset($_POST['restart']) || isset($_POST['logfilter'])) && ! isset($db_csrf[$_POST['csrf_token']])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + + $logoutput = getlog($number_lines, $filters, $filter2, $inactivefilter); + + if (isset($_POST['start']) && isset($db_csrf[$_POST['csrf_token']])) { + if (! is_writable($GLOBALS['logpath'])) { + $err_msg = '!!!! Logs folder is not writable !!!!
    Cancel start request!'; + $err_lvl = 3; + } else { + $output = ''; + exec($phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php start', $resultexec); + if (file_exists($GLOBALS['autostart'])) { + unlink($GLOBALS['autostart']); + } + foreach ($resultexec as $line) { + $output .= print_r($line, true).'
    '; + } + $err_msg = $lang['wibot2'].'

    Result of worker.php:
    '.$output.'
    '; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($number_lines, $filters, $filter2, $inactivefilter); + } + } + + if (isset($_POST['stop']) && isset($db_csrf[$_POST['csrf_token']])) { + if (! is_writable($GLOBALS['logpath'])) { + $err_msg = '!!!! Logs folder is not writable !!!!
    Cancel stop request!'; + $err_lvl = 3; + } else { + $output = ''; + exec($phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php stop', $resultexec); + file_put_contents($GLOBALS['autostart'], ''); + foreach ($resultexec as $line) { + $output .= print_r($line, true).'
    '; + } + $err_msg = $lang['wibot1'].'

    Result of worker.php:
    '.$output.'
    '; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($number_lines, $filters, $filter2, $inactivefilter); + } + } + + if (isset($_POST['restart']) && isset($db_csrf[$_POST['csrf_token']])) { + if (! is_writable($GLOBALS['logpath'])) { + $err_msg = '!!!! Logs folder is not writable !!!!
    Cancel restart request!'; + $err_lvl = 3; + } else { + $output = ''; + exec($phpcommand.' '.dirname(__DIR__).DIRECTORY_SEPARATOR.'worker.php restart', $resultexec); + if (file_exists($GLOBALS['autostart'])) { + unlink($GLOBALS['autostart']); + } + foreach ($resultexec as $line) { + $output .= print_r($line, true).'
    '; + } + $err_msg = $lang['wibot3'].'

    Result of worker.php:
    '.$output.'
    '; + $err_lvl = 1; + usleep(80000); + $logoutput = getlog($number_lines, $filters, $filter2, $inactivefilter); + } + } + + $disabled = ''; + if ($cfg['teamspeak_host_address'] == null || $cfg['teamspeak_query_port'] == null || $cfg['teamspeak_voice_port'] == null || $cfg['teamspeak_query_user'] == null || $cfg['teamspeak_query_pass'] == null || $cfg['teamspeak_query_nickname'] == null || $cfg['rankup_definition'] == null || $GLOBALS['logpath'] == null) { + $disabled = 1; + $err_msg = $lang['wibot9']; + $err_lvl = 2; + } + ?>
    - +

    - +

    - +
     
    -
     
    - +
     
     
    - +
     
    -
    @@ -211,74 +226,107 @@

    - +

    - +
    - - - + + + - +
    @@ -286,7 +334,9 @@
    -
    +
    @@ -294,6 +344,7 @@
    - \ No newline at end of file diff --git a/webinterface/changepassword.php b/webinterface/changepassword.php index cbf47f8..479f060 100644 --- a/webinterface/changepassword.php +++ b/webinterface/changepassword.php @@ -1,74 +1,80 @@ -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['changepw']) && isset($db_csrf[$_POST['csrf_token']])) { - if (!password_verify($_POST['oldpwd'], $cfg['webinterface_pass'])) { - $err_msg = $lang['wichpw1']; $err_lvl = 3; - } else { - $cfg['webinterface_pass'] = password_hash($_POST['newpwd1'], PASSWORD_DEFAULT); - if (!hash_equals($_POST['newpwd1'], $_POST['newpwd2']) || $_POST['newpwd1'] == NULL) { - $err_msg = $lang['wichpw2']; $err_lvl = 3; - } elseif($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_pass','{$cfg['webinterface_pass']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } else { - enter_logfile(3,sprintf($lang['wichpw3'],getclientip())); - $err_msg = $lang['wisvsuc']; $err_lvl = NULL; - } - } - } elseif(isset($_POST['changepw'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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['changepw']) && isset($db_csrf[$_POST['csrf_token']])) { + if (! password_verify($_POST['oldpwd'], $cfg['webinterface_pass'])) { + $err_msg = $lang['wichpw1']; + $err_lvl = 3; + } else { + $cfg['webinterface_pass'] = password_hash($_POST['newpwd1'], PASSWORD_DEFAULT); + if (! hash_equals($_POST['newpwd1'], $_POST['newpwd2']) || $_POST['newpwd1'] == null) { + $err_msg = $lang['wichpw2']; + $err_lvl = 3; + } elseif ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_pass','{$cfg['webinterface_pass']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + enter_logfile(3, sprintf($lang['wichpw3'], getclientip())); + $err_msg = $lang['wisvsuc']; + $err_lvl = null; + } + } + } elseif (isset($_POST['changepw'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +
    - \ No newline at end of file diff --git a/webinterface/db.php b/webinterface/db.php index 02c801c..5c7da17 100644 --- a/webinterface/db.php +++ b/webinterface/db.php @@ -1,68 +1,69 @@ -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']])) { - $newconfig='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']])) { + $newconfig = ''; - $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].';dbname='.$_POST['dbname'].';charset=utf8mb4'; - try { - $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass']); - $handle=fopen('../other/dbconfig.php','w'); - if(!fwrite($handle,$newconfig)) - { - $err_msg = sprintf($lang['widbcfgerr']); - $err_lvl = 3; - } else { - $err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], ''); - $err_lvl = 0; - $db['type'] = $_POST['dbtype']; - $db['host'] = $_POST['dbhost']; - $dbname = $_POST['dbname']; - $db['user'] = $_POST['dbuser']; - $db['pass'] = $_POST['dbpass']; - } - fclose($handle); - } catch (PDOException $e) { - $err_msg = sprintf($lang['widbcfgerr']); - $err_lvl = 3; - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> + ?>'; + $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].';dbname='.$_POST['dbname'].';charset=utf8mb4'; + try { + $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass']); + $handle = fopen('../other/dbconfig.php', 'w'); + if (! fwrite($handle, $newconfig)) { + $err_msg = sprintf($lang['widbcfgerr']); + $err_lvl = 3; + } else { + $err_msg = $lang['wisvsuc'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = 0; + $db['type'] = $_POST['dbtype']; + $db['host'] = $_POST['dbhost']; + $dbname = $_POST['dbname']; + $db['user'] = $_POST['dbuser']; + $db['pass'] = $_POST['dbpass']; + } + fclose($handle); + } catch (PDOException $e) { + $err_msg = sprintf($lang['widbcfgerr']); + $err_lvl = 3; + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -75,20 +76,56 @@
    @@ -154,10 +191,10 @@
    @@ -170,10 +207,10 @@ @@ -186,10 +223,10 @@ @@ -202,10 +239,10 @@ @@ -218,10 +255,10 @@ @@ -242,6 +279,7 @@ - \ No newline at end of file diff --git a/webinterface/download_file.php b/webinterface/download_file.php index 4033db7..22bfcaa 100644 --- a/webinterface/download_file.php +++ b/webinterface/download_file.php @@ -1,31 +1,32 @@ -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); - $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 = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if (isset($db_csrf[$_GET['csrf_token']]) && isset($_GET['file']) && substr($_GET['file'],0,10) == "db_export_" && file_exists($GLOBALS['logpath'].$_GET['file']) && isset($_SESSION[$rspathhex.'username']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass'])) { - header('Content-Description: File Transfer'); - header('Content-Type: application/octet-stream'); - header('Content-Disposition: attachment; filename="'.basename($GLOBALS['logpath'].$_GET['file']).'"'); - header('Expires: 0'); - header('Cache-Control: must-revalidate'); - header('Pragma: public'); - header('Content-Length: ' . filesize($GLOBALS['logpath'].$_GET['file'])); - readfile($GLOBALS['logpath'].$_GET['file']); - } else { - rem_session_ts3(); - echo "Error on downloading file. File do not exists (anymore)? If yes, try it again. There could happened a problem with your session."; - } - ?> -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); + $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 = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (isset($db_csrf[$_GET['csrf_token']]) && isset($_GET['file']) && substr($_GET['file'], 0, 10) == 'db_export_' && file_exists($GLOBALS['logpath'].$_GET['file']) && isset($_SESSION[$rspathhex.'username']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass'])) { + header('Content-Description: File Transfer'); + header('Content-Type: application/octet-stream'); + header('Content-Disposition: attachment; filename="'.basename($GLOBALS['logpath'].$_GET['file']).'"'); + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: public'); + header('Content-Length: '.filesize($GLOBALS['logpath'].$_GET['file'])); + readfile($GLOBALS['logpath'].$_GET['file']); + } else { + rem_session_ts3(); + echo 'Error on downloading file. File do not exists (anymore)? If yes, try it again. There could happened a problem with your session.'; + } + ?> + \ No newline at end of file diff --git a/webinterface/except.php b/webinterface/except.php index 045a53f..7389430 100644 --- a/webinterface/except.php +++ b/webinterface/except.php @@ -1,78 +1,85 @@ -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(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(($channellist = $mysqlcon->query("SELECT * FROM `$dbname`.`channel` ORDER BY `pid`,`channel_order`,`channel_name` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { - $err_msg = "DB Error1: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $err_msg = $cfg['rankup_excepted_group_id_list'] = $cfg['rankup_excepted_unique_client_id_list'] = $cfg['rankup_excepted_channel_id_list'] = ''; - $errcnf = 0; - $cfg['rankup_excepted_mode'] = $_POST['rankup_excepted_mode']; - - if (isset($_POST['rankup_excepted_unique_client_id_list']) && $_POST['rankup_excepted_unique_client_id_list'] != NULL) { - $cfg['rankup_excepted_unique_client_id_list'] = implode(',',$_POST['rankup_excepted_unique_client_id_list']); - } - if (isset($_POST['rankup_excepted_group_id_list']) && $_POST['rankup_excepted_group_id_list'] != NULL) { - $cfg['rankup_excepted_group_id_list'] = implode(',',$_POST['rankup_excepted_group_id_list']); - } - if (isset($_POST['channelid']) && $_POST['channelid'] != NULL) { - $cfg['rankup_excepted_channel_id_list'] = implode(',',$_POST['channelid']); - } - if (isset($_POST['rankup_excepted_remove_group_switch'])) $cfg['rankup_excepted_remove_group_switch'] = 1; else $cfg['rankup_excepted_remove_group_switch'] = 0; - - if($errcnf == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_excepted_mode','{$cfg['rankup_excepted_mode']}'),('rankup_excepted_unique_client_id_list','{$cfg['rankup_excepted_unique_client_id_list']}'),('rankup_excepted_group_id_list','{$cfg['rankup_excepted_group_id_list']}'),('rankup_excepted_channel_id_list','{$cfg['rankup_excepted_channel_id_list']}'),('rankup_excepted_remove_group_switch','{$cfg['rankup_excepted_remove_group_switch']}') 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']." ".sprintf($lang['wisvres'], ''); - $err_lvl = NULL; - } - } else { - $err_msg .= "
    ".$lang['errgrpid']; - } - - if (isset($_POST['rankup_excepted_unique_client_id_list']) && $_POST['rankup_excepted_unique_client_id_list'] != NULL) { - $cfg['rankup_excepted_unique_client_id_list'] = array_flip($_POST['rankup_excepted_unique_client_id_list']); - } - if (isset($_POST['rankup_excepted_group_id_list']) && $_POST['rankup_excepted_group_id_list'] != NULL) { - $cfg['rankup_excepted_group_id_list'] = array_flip($_POST['rankup_excepted_group_id_list']); - } - if (isset($_POST['channelid']) && $_POST['channelid'] != NULL) { - $cfg['rankup_excepted_channel_id_list'] = array_flip($_POST['channelid']); - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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 (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (($channellist = $mysqlcon->query("SELECT * FROM `$dbname`.`channel` ORDER BY `pid`,`channel_order`,`channel_name` ASC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { + $err_msg = 'DB Error1: '.print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $err_msg = $cfg['rankup_excepted_group_id_list'] = $cfg['rankup_excepted_unique_client_id_list'] = $cfg['rankup_excepted_channel_id_list'] = ''; + $errcnf = 0; + $cfg['rankup_excepted_mode'] = $_POST['rankup_excepted_mode']; + + if (isset($_POST['rankup_excepted_unique_client_id_list']) && $_POST['rankup_excepted_unique_client_id_list'] != null) { + $cfg['rankup_excepted_unique_client_id_list'] = implode(',', $_POST['rankup_excepted_unique_client_id_list']); + } + if (isset($_POST['rankup_excepted_group_id_list']) && $_POST['rankup_excepted_group_id_list'] != null) { + $cfg['rankup_excepted_group_id_list'] = implode(',', $_POST['rankup_excepted_group_id_list']); + } + if (isset($_POST['channelid']) && $_POST['channelid'] != null) { + $cfg['rankup_excepted_channel_id_list'] = implode(',', $_POST['channelid']); + } + if (isset($_POST['rankup_excepted_remove_group_switch'])) { + $cfg['rankup_excepted_remove_group_switch'] = 1; + } else { + $cfg['rankup_excepted_remove_group_switch'] = 0; + } + + if ($errcnf == 0) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_excepted_mode','{$cfg['rankup_excepted_mode']}'),('rankup_excepted_unique_client_id_list','{$cfg['rankup_excepted_unique_client_id_list']}'),('rankup_excepted_group_id_list','{$cfg['rankup_excepted_group_id_list']}'),('rankup_excepted_channel_id_list','{$cfg['rankup_excepted_channel_id_list']}'),('rankup_excepted_remove_group_switch','{$cfg['rankup_excepted_remove_group_switch']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + } else { + $err_msg .= '
    '.$lang['errgrpid']; + } + + if (isset($_POST['rankup_excepted_unique_client_id_list']) && $_POST['rankup_excepted_unique_client_id_list'] != null) { + $cfg['rankup_excepted_unique_client_id_list'] = array_flip($_POST['rankup_excepted_unique_client_id_list']); + } + if (isset($_POST['rankup_excepted_group_id_list']) && $_POST['rankup_excepted_group_id_list'] != null) { + $cfg['rankup_excepted_group_id_list'] = array_flip($_POST['rankup_excepted_group_id_list']); + } + if (isset($_POST['channelid']) && $_POST['channelid'] != null) { + $cfg['rankup_excepted_channel_id_list'] = array_flip($_POST['channelid']); + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +
    @@ -80,7 +87,7 @@
    - +
    @@ -90,11 +97,20 @@
    @@ -103,12 +119,16 @@
    @@ -116,18 +136,36 @@
    @@ -137,9 +175,9 @@
    - +
    @@ -147,11 +185,11 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    @@ -177,10 +215,10 @@ @@ -193,10 +231,10 @@ @@ -209,10 +247,10 @@ @@ -225,10 +263,10 @@ @@ -241,10 +279,10 @@ @@ -266,6 +304,7 @@ - \ No newline at end of file diff --git a/webinterface/export.php b/webinterface/export.php index d8c3a9a..8ca5d2a 100644 --- a/webinterface/export.php +++ b/webinterface/export.php @@ -1,127 +1,137 @@ -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); - $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 = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(!is_int($job_check['database_export']['timestamp'])) { - $job_check['database_export']['timestamp'] = intval($job_check['database_export']['timestamp']); - } - function get_status($lang, $job_check, $check = NULL) { - $err_msg = "".$lang['wihladmex'].": "; - switch($job_check['database_export']['timestamp']) { - case 1: - if($check == 1) { - $err_msg .= $lang['wihladmrs16']."
    "; break; - } else { - $err_msg .= $lang['wihladmrs1']."
    "; break; - } - case 2: - $err_msg .= "".$lang['wihladmrs2']."
    "; break; - case 3: - $err_msg .= "".$lang['wihladmrs3']."
    "; break; - case 4: - $err_msg .= "".$lang['wihladmrs4']."
    "; break; - default: - $err_msg .= "".$lang['wihladmrs0']."
    "; - } - - return $err_msg; - } - - if($job_check['database_export']['timestamp'] != 0) { - $err_msg = ''.$lang['wihladmrs'].":

    "; $err_lvl = 2;
    -		$err_msg .= get_status($lang, $job_check);
    -
    -		if(in_array($job_check['database_export']['timestamp'], [0,3,4], true)) {
    -			$err_msg .= '

    '; - if($job_check['database_export']['timestamp'] == 4) { - $err_msg .= "Exported file successfully."; - if(version_compare(phpversion(), '7.2', '>=') && version_compare(phpversion("zip"), '1.2.0', '>=')) { - $err_msg .= "
    ".sprintf($lang['wihladmex2'], "")."
    ".$cfg['teamspeak_query_pass']."
    "; - } - } - $err_msg .= '
    '.sprintf($lang['wihladmrs9'], ''); - } else { - $err_msg .= '
    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8'].'

    '.sprintf($lang['wihladmrs17'], '
    '); - } - } - - if (isset($_POST['confirm']) && isset($db_csrf[$_POST['csrf_token']])) { - if(in_array($job_check['database_export']['timestamp'], [0,3,4], true)) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export','0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wihladmrs10']; - $err_lvl = NULL; - } - } else { - $err_msg = $lang['errukwn']; - $err_lvl = 3; - } - } elseif (isset($_POST['cancel']) && isset($db_csrf[$_POST['csrf_token']])) { - if(in_array($job_check['database_export']['timestamp'], [0,1,2,4], true)) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export','3') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wihladmrs18']; - $err_lvl = NULL; - } - } else { - $err_msg = $lang['errukwn']; - $err_lvl = 3; - } - } elseif (isset($_POST['delete']) && isset($db_csrf[$_POST['csrf_token']])) { - if(substr($_POST['delete'],0,10) == "db_export_" && unlink($GLOBALS['logpath'].$_POST['delete'])) { - $err_msg = sprintf($lang['wihladmex3'], $_POST['delete']); - $err_lvl = NULL; - } else { - $err_msg = sprintf($lang['wihladmex4'], $_POST['delete']); - $err_lvl = 3; - } - } elseif (isset($_POST['download']) && isset($db_csrf[$_POST['csrf_token']])) { - $err_msg = "download request: ".$_POST['download']; - $err_lvl = 3; - } elseif (isset($_POST['export']) && isset($db_csrf[$_POST['csrf_token']])) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export','1') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = ''.$lang['wihladmex1'].'

    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; - if(($snapshot = $mysqlcon->query("SELECT COUNT(*) AS `count` from `$dbname`.`user_snapshot`")->fetch()) === false) { } else { - $est_time = round($snapshot['count'] * 0.00005) + 5; - $dtF = new \DateTime('@0'); - $dtT = new \DateTime("@$est_time"); - $est_time = $dtF->diff($dtT)->format($cfg['default_date_format']); - $err_msg .= '

    '.$lang['wihladmrs11'].': '.$est_time.'.
    '; - } - $err_lvl = NULL; - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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); + $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 = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (! is_int($job_check['database_export']['timestamp'])) { + $job_check['database_export']['timestamp'] = intval($job_check['database_export']['timestamp']); + } + function get_status($lang, $job_check, $check = null) + { + $err_msg = ''.$lang['wihladmex'].': '; + switch($job_check['database_export']['timestamp']) { + case 1: + if ($check == 1) { + $err_msg .= $lang['wihladmrs16'].'
    '; + break; + } else { + $err_msg .= $lang['wihladmrs1'].'
    '; + break; + } + case 2: + $err_msg .= ''.$lang['wihladmrs2'].'
    '; + break; + case 3: + $err_msg .= ''.$lang['wihladmrs3'].'
    '; + break; + case 4: + $err_msg .= ''.$lang['wihladmrs4'].'
    '; + break; + default: + $err_msg .= ''.$lang['wihladmrs0'].'
    '; + } + + return $err_msg; + } + + if ($job_check['database_export']['timestamp'] != 0) { + $err_msg = ''.$lang['wihladmrs'].':

    ';
    +        $err_lvl = 2;
    +        $err_msg .= get_status($lang, $job_check);
    +
    +        if (in_array($job_check['database_export']['timestamp'], [0, 3, 4], true)) {
    +            $err_msg .= '

    '; + if ($job_check['database_export']['timestamp'] == 4) { + $err_msg .= 'Exported file successfully.'; + if (version_compare(phpversion(), '7.2', '>=') && version_compare(phpversion('zip'), '1.2.0', '>=')) { + $err_msg .= '
    '.sprintf($lang['wihladmex2'], '').'
    '.$cfg['teamspeak_query_pass'].'
    '; + } + } + $err_msg .= '
    '.sprintf($lang['wihladmrs9'], '
    '); + } else { + $err_msg .= '
    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8'].'

    '.sprintf($lang['wihladmrs17'], '
    '); + } + } + + if (isset($_POST['confirm']) && isset($db_csrf[$_POST['csrf_token']])) { + if (in_array($job_check['database_export']['timestamp'], [0, 3, 4], true)) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export','0') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wihladmrs10']; + $err_lvl = null; + } + } else { + $err_msg = $lang['errukwn']; + $err_lvl = 3; + } + } elseif (isset($_POST['cancel']) && isset($db_csrf[$_POST['csrf_token']])) { + if (in_array($job_check['database_export']['timestamp'], [0, 1, 2, 4], true)) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export','3') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wihladmrs18']; + $err_lvl = null; + } + } else { + $err_msg = $lang['errukwn']; + $err_lvl = 3; + } + } elseif (isset($_POST['delete']) && isset($db_csrf[$_POST['csrf_token']])) { + if (substr($_POST['delete'], 0, 10) == 'db_export_' && unlink($GLOBALS['logpath'].$_POST['delete'])) { + $err_msg = sprintf($lang['wihladmex3'], $_POST['delete']); + $err_lvl = null; + } else { + $err_msg = sprintf($lang['wihladmex4'], $_POST['delete']); + $err_lvl = 3; + } + } elseif (isset($_POST['download']) && isset($db_csrf[$_POST['csrf_token']])) { + $err_msg = 'download request: '.$_POST['download']; + $err_lvl = 3; + } elseif (isset($_POST['export']) && isset($db_csrf[$_POST['csrf_token']])) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('database_export','1') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = ''.$lang['wihladmex1'].'

    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; + if (($snapshot = $mysqlcon->query("SELECT COUNT(*) AS `count` from `$dbname`.`user_snapshot`")->fetch()) === false) { + } else { + $est_time = round($snapshot['count'] * 0.00005) + 5; + $dtF = new \DateTime('@0'); + $dtT = new \DateTime("@$est_time"); + $est_time = $dtF->diff($dtT)->format($cfg['default_date_format']); + $err_msg .= '

    '.$lang['wihladmrs11'].': '.$est_time.'.
    '; + } + $err_lvl = null; + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    @@ -135,61 +145,69 @@ function get_status($lang, $job_check, $check = NULL) {
     
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    -
    - - - - - + + + + + + - +
    - +
    @@ -197,7 +215,7 @@ function get_status($lang, $job_check, $check = NULL) {
     
    - +
    @@ -218,16 +236,17 @@ function get_status($lang, $job_check, $check = NULL) {
    - \ No newline at end of file diff --git a/webinterface/imprint.php b/webinterface/imprint.php index bd79e4f..c6b2265 100644 --- a/webinterface/imprint.php +++ b/webinterface/imprint.php @@ -1,58 +1,64 @@ -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']])) { - $cfg['stats_imprint_address'] = addslashes($_POST['stats_imprint_address']); - $cfg['stats_imprint_address_url'] = addslashes($_POST['stats_imprint_address_url']); - $cfg['stats_imprint_email'] = addslashes($_POST['stats_imprint_email']); - $cfg['stats_imprint_phone'] = addslashes($_POST['stats_imprint_phone']); - $cfg['stats_imprint_notes'] = addslashes($_POST['stats_imprint_notes']); - $cfg['stats_imprint_privacypolicy'] = addslashes($_POST['stats_imprint_privacypolicy']); - $cfg['stats_imprint_privacypolicy_url'] = addslashes($_POST['stats_imprint_privacypolicy_url']); - if (isset($_POST['stats_imprint_switch'])) $cfg['stats_imprint_switch'] = 1; else $cfg['stats_imprint_switch'] = 0; - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_imprint_switch','{$cfg['stats_imprint_switch']}'),('stats_imprint_address','{$cfg['stats_imprint_address']}'),('stats_imprint_address_url','{$cfg['stats_imprint_address_url']}'),('stats_imprint_email','{$cfg['stats_imprint_email']}'),('stats_imprint_phone','{$cfg['stats_imprint_phone']}'),('stats_imprint_notes','{$cfg['stats_imprint_notes']}'),('stats_imprint_privacypolicy','{$cfg['stats_imprint_privacypolicy']}'),('stats_imprint_privacypolicy_url','{$cfg['stats_imprint_privacypolicy_url']}') 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; - } - $cfg['stats_imprint_address'] = $_POST['stats_imprint_address']; - $cfg['stats_imprint_email'] = $_POST['stats_imprint_email']; - $cfg['stats_imprint_phone'] = $_POST['stats_imprint_phone']; - $cfg['stats_imprint_notes'] = $_POST['stats_imprint_notes']; - $cfg['stats_imprint_privacypolicy'] = $_POST['stats_imprint_privacypolicy']; - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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']])) { + $cfg['stats_imprint_address'] = addslashes($_POST['stats_imprint_address']); + $cfg['stats_imprint_address_url'] = addslashes($_POST['stats_imprint_address_url']); + $cfg['stats_imprint_email'] = addslashes($_POST['stats_imprint_email']); + $cfg['stats_imprint_phone'] = addslashes($_POST['stats_imprint_phone']); + $cfg['stats_imprint_notes'] = addslashes($_POST['stats_imprint_notes']); + $cfg['stats_imprint_privacypolicy'] = addslashes($_POST['stats_imprint_privacypolicy']); + $cfg['stats_imprint_privacypolicy_url'] = addslashes($_POST['stats_imprint_privacypolicy_url']); + if (isset($_POST['stats_imprint_switch'])) { + $cfg['stats_imprint_switch'] = 1; + } else { + $cfg['stats_imprint_switch'] = 0; + } + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_imprint_switch','{$cfg['stats_imprint_switch']}'),('stats_imprint_address','{$cfg['stats_imprint_address']}'),('stats_imprint_address_url','{$cfg['stats_imprint_address_url']}'),('stats_imprint_email','{$cfg['stats_imprint_email']}'),('stats_imprint_phone','{$cfg['stats_imprint_phone']}'),('stats_imprint_notes','{$cfg['stats_imprint_notes']}'),('stats_imprint_privacypolicy','{$cfg['stats_imprint_privacypolicy']}'),('stats_imprint_privacypolicy_url','{$cfg['stats_imprint_privacypolicy_url']}') 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; + } + $cfg['stats_imprint_address'] = $_POST['stats_imprint_address']; + $cfg['stats_imprint_email'] = $_POST['stats_imprint_email']; + $cfg['stats_imprint_phone'] = $_POST['stats_imprint_phone']; + $cfg['stats_imprint_notes'] = $_POST['stats_imprint_notes']; + $cfg['stats_imprint_privacypolicy'] = $_POST['stats_imprint_privacypolicy']; + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -60,17 +66,17 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - + '>
    @@ -82,13 +88,13 @@
    - + '>
    - + '>
    @@ -106,7 +112,7 @@
    - + '>
    @@ -139,10 +145,10 @@
    @@ -155,10 +161,10 @@
    @@ -171,10 +177,10 @@
    @@ -187,10 +193,10 @@ @@ -203,10 +209,10 @@ @@ -219,10 +225,10 @@ @@ -235,10 +241,10 @@ @@ -251,10 +257,10 @@ @@ -264,6 +270,7 @@ - \ No newline at end of file diff --git a/webinterface/index.php b/webinterface/index.php index 34523f0..c1fd307 100644 --- a/webinterface/index.php +++ b/webinterface/index.php @@ -1,147 +1,183 @@ -chown -R www-data:www-data '.$GLOBALS['logpath'].'
    ', '
    chmod 0740 '.$GLOBALS['logfile'].'


    ', '
    '.$GLOBALS['logfile'].'
    '); - $err_lvl = 3; $dis_login = 0; - } - - if(!is_writable($GLOBALS['logpath'])) { - $err_msg = sprintf($lang['chkfileperm'], '
    chown -R www-data:www-data '.$GLOBALS['logpath'].'

    ', '
    chmod 0740 '.$GLOBALS['logpath'].'


    ', '
    '.$GLOBALS['logpath'].'
    '); - $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',get_cfg_var('cfg_file_path')); $err_lvl = 3; $dis_login = 1; - } else { - 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; $dis_login = 1; - } 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(!isset($err_msg) && version_compare(PHP_VERSION, '7.2.0', '<')) { - $err_msg = "Your PHP Version: (".PHP_VERSION.") is outdated and no longer supported. Please update it!"; - $err_lvl = 2; - } - - if(!isset($cfg['webinterface_access_count']) || $cfg['webinterface_access_count'] != NULL) $cfg['webinterface_access_count'] = 0; - if(!isset($cfg['webinterface_access_last']) || $cfg['webinterface_access_last'] != NULL) $cfg['webinterface_access_last'] = 0; - - if(($cfg['webinterface_access_last'] + 1) >= time()) { - $waittime = $cfg['webinterface_access_last'] + 2 - time(); - $err_msg = sprintf($lang['errlogin2'],$waittime); - $err_lvl = 3; - } elseif ($cfg['webinterface_access_count'] >= 10) { - enter_logfile(3,sprintf($lang['brute'], getclientip())); - $err_msg = $lang['errlogin3']; - $err_lvl = 3; - $bantime = time() + 299; - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_last','{$bantime}'),('webinterface_access_count','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { } - } elseif (isset($_POST['username']) && hash_equals($_POST['username'], $cfg['webinterface_user']) && password_verify($_POST['password'], $cfg['webinterface_pass'])) { - $_SESSION[$rspathhex.'username'] = $cfg['webinterface_user']; - $_SESSION[$rspathhex.'password'] = $cfg['webinterface_pass']; - $_SESSION[$rspathhex.'clientip'] = getclientip(); - $_SESSION[$rspathhex.'newversion'] = $cfg['version_latest_available']; - if(isset($cfg['stats_news_html'])) $_SESSION[$rspathhex.'stats_news_html'] = $cfg['stats_news_html']; - enter_logfile(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: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); - exit; - } elseif(isset($_POST['username'])) { - $nowtime = time(); - enter_logfile(5,sprintf($lang['brute1'], getclientip(), htmlspecialchars($_POST['username']))); - $cfg['webinterface_access_count']++; - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_last','{$nowtime}'),('webinterface_access_count','{$cfg['webinterface_access_count']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { } - $err_msg = $lang['errlogin']; - $err_lvl = 3; - } - - if(isset($_SESSION[$rspathhex.'username']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass'])) { - header("Location: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/bot.php"); - exit; - } - - require_once('_nav.php'); - ?> +chown -R www-data:www-data '.$GLOBALS['logpath'].'
    ', '
    chmod 0740 '.$GLOBALS['logfile'].'


    ', '
    '.$GLOBALS['logfile'].'
    '); + $err_lvl = 3; + $dis_login = 0; + } + + if (! is_writable($GLOBALS['logpath'])) { + $err_msg = sprintf($lang['chkfileperm'], '
    chown -R www-data:www-data '.$GLOBALS['logpath'].'

    ', '
    chmod 0740 '.$GLOBALS['logpath'].'


    ', '
    '.$GLOBALS['logpath'].'
    '); + $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', get_cfg_var('cfg_file_path')); + $err_lvl = 3; + $dis_login = 1; + } else { + 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; + $dis_login = 1; + } 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 (! isset($err_msg) && version_compare(PHP_VERSION, '7.2.0', '<')) { + $err_msg = 'Your PHP Version: ('.PHP_VERSION.') is outdated and no longer supported. Please update it!'; + $err_lvl = 2; + } + + if (! isset($cfg['webinterface_access_count']) || $cfg['webinterface_access_count'] != null) { + $cfg['webinterface_access_count'] = 0; + } + if (! isset($cfg['webinterface_access_last']) || $cfg['webinterface_access_last'] != null) { + $cfg['webinterface_access_last'] = 0; + } + + if (($cfg['webinterface_access_last'] + 1) >= time()) { + $waittime = $cfg['webinterface_access_last'] + 2 - time(); + $err_msg = sprintf($lang['errlogin2'], $waittime); + $err_lvl = 3; + } elseif ($cfg['webinterface_access_count'] >= 10) { + enter_logfile(3, sprintf($lang['brute'], getclientip())); + $err_msg = $lang['errlogin3']; + $err_lvl = 3; + $bantime = time() + 299; + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_last','{$bantime}'),('webinterface_access_count','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { + } + } elseif (isset($_POST['username']) && hash_equals($_POST['username'], $cfg['webinterface_user']) && password_verify($_POST['password'], $cfg['webinterface_pass'])) { + $_SESSION[$rspathhex.'username'] = $cfg['webinterface_user']; + $_SESSION[$rspathhex.'password'] = $cfg['webinterface_pass']; + $_SESSION[$rspathhex.'clientip'] = getclientip(); + $_SESSION[$rspathhex.'newversion'] = $cfg['version_latest_available']; + if (isset($cfg['stats_news_html'])) { + $_SESSION[$rspathhex.'stats_news_html'] = $cfg['stats_news_html']; + } + enter_logfile(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: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\').'/bot.php'); + exit; + } elseif (isset($_POST['username'])) { + $nowtime = time(); + enter_logfile(5, sprintf($lang['brute1'], getclientip(), htmlspecialchars($_POST['username']))); + $cfg['webinterface_access_count']++; + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_last','{$nowtime}'),('webinterface_access_count','{$cfg['webinterface_access_count']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { + } + $err_msg = $lang['errlogin']; + $err_lvl = 3; + } + + if (isset($_SESSION[$rspathhex.'username']) && hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass'])) { + header("Location: $prot://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\').'/bot.php'); + exit; + } + + require_once '_nav.php'; + ?>
    - +
    @@ -179,10 +194,10 @@
    @@ -195,10 +210,10 @@ @@ -211,10 +226,10 @@ @@ -224,6 +239,7 @@ - \ No newline at end of file diff --git a/webinterface/other.php b/webinterface/other.php index 1e068cc..7416bbf 100644 --- a/webinterface/other.php +++ b/webinterface/other.php @@ -1,93 +1,116 @@ -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']])) { - if ($_POST['rankup_hash_ip_addresses_mode'] != $cfg['rankup_hash_ip_addresses_mode']) { - $err_msg2 = $lang['wisvinfo1']; - $err_lvl2 = 2; - } - $cfg['rankup_hash_ip_addresses_mode'] = $_POST['rankup_hash_ip_addresses_mode']; - $cfg['default_session_sametime'] = $_POST['default_session_sametime']; - $cfg['default_header_origin'] = htmlspecialchars($_POST['default_header_origin'], ENT_QUOTES); - $cfg['default_header_xss'] = htmlspecialchars($_POST['default_header_xss'], ENT_QUOTES); - if (isset($_POST['default_header_contenttyp'])) $cfg['default_header_contenttyp'] = 1; else $cfg['default_header_contenttyp'] = 0; - $cfg['default_header_frame'] = htmlspecialchars($_POST['default_header_frame'], ENT_QUOTES); - if (isset($_POST['default_cmdline_sec_switch'])) $cfg['default_cmdline_sec_switch'] = 1; else $cfg['default_cmdline_sec_switch'] = 0; - $cfg['logs_timezone'] = $_POST['logs_timezone']; - $cfg['default_date_format'] = $_POST['default_date_format']; - $cfg['logs_path'] = addslashes($_POST['logs_path']); - $cfg['logs_debug_level'] = $_POST['logs_debug_level']; - $cfg['logs_rotation_size'] = $_POST['logs_rotation_size']; - $cfg['default_language'] = $_SESSION[$rspathhex.'language'] = $_POST['default_language']; - unset($lang); $lang = set_language($cfg['default_language']); - $cfg['version_update_channel'] = $_POST['version_update_channel']; - if (isset($_POST['rankup_client_database_id_change_switch'])) $cfg['rankup_client_database_id_change_switch'] = 1; else $cfg['rankup_client_database_id_change_switch'] = 0; - if (isset($_POST['rankup_clean_clients_switch'])) $cfg['rankup_clean_clients_switch'] = 1; else $cfg['rankup_clean_clients_switch'] = 0; - $cfg['rankup_clean_clients_period'] = $_POST['rankup_clean_clients_period']; - - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('logs_timezone','{$cfg['logs_timezone']}'),('default_date_format','{$cfg['default_date_format']}'),('logs_path','{$cfg['logs_path']}'),('logs_debug_level','{$cfg['logs_debug_level']}'),('logs_rotation_size','{$cfg['logs_rotation_size']}'),('default_language','{$cfg['default_language']}'),('default_style','{$cfg['default_style']}'),('version_update_channel','{$cfg['version_update_channel']}'),('rankup_hash_ip_addresses_mode','{$cfg['rankup_hash_ip_addresses_mode']}'),('default_session_sametime','{$cfg['default_session_sametime']}'),('default_header_origin','{$cfg['default_header_origin']}'),('default_header_xss','{$cfg['default_header_xss']}'),('default_header_contenttyp','{$cfg['default_header_contenttyp']}'),('default_header_frame','{$cfg['default_header_frame']}'),('default_cmdline_sec_switch','{$cfg['default_cmdline_sec_switch']}'),('rankup_client_database_id_change_switch','{$cfg['rankup_client_database_id_change_switch']}'),('rankup_clean_clients_switch','{$cfg['rankup_clean_clients_switch']}'),('rankup_clean_clients_period','{$cfg['rankup_clean_clients_period']}') 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']." ".sprintf($lang['wisvres'], ''); - $err_lvl = NULL; - } - $cfg['logs_path'] = $_POST['logs_path']; - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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']])) { + if ($_POST['rankup_hash_ip_addresses_mode'] != $cfg['rankup_hash_ip_addresses_mode']) { + $err_msg2 = $lang['wisvinfo1']; + $err_lvl2 = 2; + } + $cfg['rankup_hash_ip_addresses_mode'] = $_POST['rankup_hash_ip_addresses_mode']; + $cfg['default_session_sametime'] = $_POST['default_session_sametime']; + $cfg['default_header_origin'] = htmlspecialchars($_POST['default_header_origin'], ENT_QUOTES); + $cfg['default_header_xss'] = htmlspecialchars($_POST['default_header_xss'], ENT_QUOTES); + if (isset($_POST['default_header_contenttyp'])) { + $cfg['default_header_contenttyp'] = 1; + } else { + $cfg['default_header_contenttyp'] = 0; + } + $cfg['default_header_frame'] = htmlspecialchars($_POST['default_header_frame'], ENT_QUOTES); + if (isset($_POST['default_cmdline_sec_switch'])) { + $cfg['default_cmdline_sec_switch'] = 1; + } else { + $cfg['default_cmdline_sec_switch'] = 0; + } + $cfg['logs_timezone'] = $_POST['logs_timezone']; + $cfg['default_date_format'] = $_POST['default_date_format']; + $cfg['logs_path'] = addslashes($_POST['logs_path']); + $cfg['logs_debug_level'] = $_POST['logs_debug_level']; + $cfg['logs_rotation_size'] = $_POST['logs_rotation_size']; + $cfg['default_language'] = $_SESSION[$rspathhex.'language'] = $_POST['default_language']; + unset($lang); + $lang = set_language($cfg['default_language']); + $cfg['version_update_channel'] = $_POST['version_update_channel']; + if (isset($_POST['rankup_client_database_id_change_switch'])) { + $cfg['rankup_client_database_id_change_switch'] = 1; + } else { + $cfg['rankup_client_database_id_change_switch'] = 0; + } + if (isset($_POST['rankup_clean_clients_switch'])) { + $cfg['rankup_clean_clients_switch'] = 1; + } else { + $cfg['rankup_clean_clients_switch'] = 0; + } + $cfg['rankup_clean_clients_period'] = $_POST['rankup_clean_clients_period']; + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('logs_timezone','{$cfg['logs_timezone']}'),('default_date_format','{$cfg['default_date_format']}'),('logs_path','{$cfg['logs_path']}'),('logs_debug_level','{$cfg['logs_debug_level']}'),('logs_rotation_size','{$cfg['logs_rotation_size']}'),('default_language','{$cfg['default_language']}'),('default_style','{$cfg['default_style']}'),('version_update_channel','{$cfg['version_update_channel']}'),('rankup_hash_ip_addresses_mode','{$cfg['rankup_hash_ip_addresses_mode']}'),('default_session_sametime','{$cfg['default_session_sametime']}'),('default_header_origin','{$cfg['default_header_origin']}'),('default_header_xss','{$cfg['default_header_xss']}'),('default_header_contenttyp','{$cfg['default_header_contenttyp']}'),('default_header_frame','{$cfg['default_header_frame']}'),('default_cmdline_sec_switch','{$cfg['default_cmdline_sec_switch']}'),('rankup_client_database_id_change_switch','{$cfg['rankup_client_database_id_change_switch']}'),('rankup_clean_clients_switch','{$cfg['rankup_clean_clients_switch']}'),('rankup_clean_clients_period','{$cfg['rankup_clean_clients_period']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + $cfg['logs_path'] = $_POST['logs_path']; + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - - + +

    - +

    - +
    @@ -95,16 +118,16 @@
    @@ -128,14 +151,14 @@
    @@ -161,24 +184,30 @@
    @@ -187,10 +216,16 @@
    @@ -200,12 +235,21 @@
    @@ -216,59 +260,59 @@
    - '; - echo ''; - echo ''; - echo ''; - echo ''; - ?> + '; + echo ''; + echo ''; + echo ''; + echo ''; + ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - ?> + '; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + ?>
    @@ -277,22 +321,22 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
     
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
     
    @@ -301,11 +345,11 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
     
    @@ -347,10 +391,10 @@ @@ -363,10 +407,10 @@ @@ -379,10 +423,10 @@ @@ -395,10 +439,10 @@ @@ -411,10 +455,10 @@ @@ -427,10 +471,10 @@ @@ -443,10 +487,10 @@ @@ -459,10 +503,10 @@ @@ -475,10 +519,10 @@ @@ -491,10 +535,10 @@ @@ -507,10 +551,10 @@ @@ -523,10 +567,10 @@ @@ -539,10 +583,10 @@ @@ -555,10 +599,10 @@ @@ -571,10 +615,10 @@ @@ -587,10 +631,10 @@ @@ -603,10 +647,10 @@ @@ -619,10 +663,10 @@ @@ -669,6 +713,7 @@ - \ No newline at end of file diff --git a/webinterface/rank.php b/webinterface/rank.php index 204eb0b..8769ac6 100644 --- a/webinterface/rank.php +++ b/webinterface/rank.php @@ -1,143 +1,148 @@ -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(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(!isset($groupslist) || $groupslist == NULL) { - $err_msg = 'No servergroups found inside the Ranksystem cache!

    Please connect the Ranksystem Bot to the TS server. The Ranksystem will download the servergroups when it is connected to the server.
    Give it a few minutes and reload this page. The dropdown field should contain your groups after.'; - $err_lvl = 1; - } - - if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) { - if(empty($_POST['rankup_definition'])) { - $grouparr_old = null; - } else { - foreach (explode(',', $_POST['rankup_definition']) as $entry) { - list($time, $groupid, $keepflag) = explode('=>', $entry); - if($keepflag == NULL) $keepflag = 0; - $grouparr_old[$time] = array("time"=>$time,"group"=>$groupid,"keep"=>$keepflag); - $cfg['rankup_definition'] = $grouparr_old; - } - } - - $errcnf = 0; - if(isset($groupslist) && $groupslist != NULL) { - if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) { - foreach($cfg['rankup_definition'] as $time => $value) { - if(!isset($groupslist[$value['group']]) && $value['group'] != NULL) { - if(!isset($err_msg)) $err_msg = ''; - $err_msg .= sprintf($lang['upgrp0001'], $value['group'], $lang['wigrptime']).'
    '; - $err_lvl = 3; - $errcnf++; - } - } - } - } - - if($_POST['rankup_definition'] == "") { - $err_msg = "Saving of empty defintion prevented.

    Your changes were not be saved!

    You need at least one entry to be able to save the configuration!"; - $err_lvl = 3; - } else { - if($errcnf == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$_POST['rankup_definition']}') 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']." ".sprintf($lang['wisvres'], ''); - $err_lvl = NULL; - } - } else { - $err_msg .= "
    ".$lang['errgrpid']; - } - } - - } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - $rankup_definition = ""; - if(isset($_POST['rankuptime']) && isset($_POST['rankupgroup'])) { - $rankupgroups = []; - foreach($_POST['rankuptime'] as $key => $entry) { - $servergroupId = isset($_POST["rankupgroup"][$key]) ? $_POST["rankupgroup"][$key] : 0; - if(isset($_POST["rankupkeep"]) && in_array($key,$_POST["rankupkeep"])) { - $keepflag = 1; - } else { - $keepflag = 0; - } - if(empty($entry)) { - $entry = 0; - } - $rankupgroups[] = "$entry=>$servergroupId=>$keepflag"; - } - $rankup_definition = implode(",", $rankupgroups); - $grouparr = []; - foreach(explode(',', $rankup_definition) as $entry) { - list($time, $groupid, $keepflag) = explode('=>', $entry); - $grouparr[$groupid] = $time; - } - - $err_msg = ''; - $errcnf = 0; - if(isset($groupslist) && $groupslist != NULL) { - foreach($grouparr as $groupid => $time) { - if((!isset($groupslist[$groupid]) && $groupid != NULL) || $groupid == 0) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
    '; - $err_lvl = 3; - $errcnf++; - } - } - } - - $cfg['rankup_definition'] = $rankup_definition; - - if($errcnf == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$cfg['rankup_definition']}') 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']." ".sprintf($lang['wisvres'], '
    '); - $err_lvl = NULL; - } - } else { - $err_msg .= "
    ".$lang['errgrpid']; - } - - if(empty($rankup_definition)) { - $cfg['rankup_definition'] = NULL; - } else { - $grouptimearr = explode(',', $rankup_definition); - foreach ($grouptimearr as $entry) { - list($time, $groupid, $keepflag) = explode('=>', $entry); - $addnewvalue1[$time] = array("time"=>$time,"group"=>$groupid,"keep"=>$keepflag); - $cfg['rankup_definition'] = $addnewvalue1; - } - } - } else { - $err_msg = $lang['errukwn']; - $err_lvl = 3; - } - } elseif(isset($_POST['update']) || isset($_POST['update_old'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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 (($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (! isset($groupslist) || $groupslist == null) { + $err_msg = 'No servergroups found inside the Ranksystem cache!

    Please connect the Ranksystem Bot to the TS server. The Ranksystem will download the servergroups when it is connected to the server.
    Give it a few minutes and reload this page. The dropdown field should contain your groups after.'; + $err_lvl = 1; + } + + if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) { + if (empty($_POST['rankup_definition'])) { + $grouparr_old = null; + } else { + foreach (explode(',', $_POST['rankup_definition']) as $entry) { + list($time, $groupid, $keepflag) = explode('=>', $entry); + if ($keepflag == null) { + $keepflag = 0; + } + $grouparr_old[$time] = ['time'=>$time, 'group'=>$groupid, 'keep'=>$keepflag]; + $cfg['rankup_definition'] = $grouparr_old; + } + } + + $errcnf = 0; + if (isset($groupslist) && $groupslist != null) { + if (isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != null) { + foreach ($cfg['rankup_definition'] as $time => $value) { + if (! isset($groupslist[$value['group']]) && $value['group'] != null) { + if (! isset($err_msg)) { + $err_msg = ''; + } + $err_msg .= sprintf($lang['upgrp0001'], $value['group'], $lang['wigrptime']).'
    '; + $err_lvl = 3; + $errcnf++; + } + } + } + } + + if ($_POST['rankup_definition'] == '') { + $err_msg = 'Saving of empty defintion prevented.

    Your changes were not be saved!

    You need at least one entry to be able to save the configuration!'; + $err_lvl = 3; + } else { + if ($errcnf == 0) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$_POST['rankup_definition']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + } else { + $err_msg .= '
    '.$lang['errgrpid']; + } + } + } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + $rankup_definition = ''; + if (isset($_POST['rankuptime']) && isset($_POST['rankupgroup'])) { + $rankupgroups = []; + foreach ($_POST['rankuptime'] as $key => $entry) { + $servergroupId = isset($_POST['rankupgroup'][$key]) ? $_POST['rankupgroup'][$key] : 0; + if (isset($_POST['rankupkeep']) && in_array($key, $_POST['rankupkeep'])) { + $keepflag = 1; + } else { + $keepflag = 0; + } + if (empty($entry)) { + $entry = 0; + } + $rankupgroups[] = "$entry=>$servergroupId=>$keepflag"; + } + $rankup_definition = implode(',', $rankupgroups); + $grouparr = []; + foreach (explode(',', $rankup_definition) as $entry) { + list($time, $groupid, $keepflag) = explode('=>', $entry); + $grouparr[$groupid] = $time; + } + + $err_msg = ''; + $errcnf = 0; + if (isset($groupslist) && $groupslist != null) { + foreach ($grouparr as $groupid => $time) { + if ((! isset($groupslist[$groupid]) && $groupid != null) || $groupid == 0) { + $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
    '; + $err_lvl = 3; + $errcnf++; + } + } + } + + $cfg['rankup_definition'] = $rankup_definition; + + if ($errcnf == 0) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$cfg['rankup_definition']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + } else { + $err_msg .= '
    '.$lang['errgrpid']; + } + + if (empty($rankup_definition)) { + $cfg['rankup_definition'] = null; + } else { + $grouptimearr = explode(',', $rankup_definition); + foreach ($grouptimearr as $entry) { + list($time, $groupid, $keepflag) = explode('=>', $entry); + $addnewvalue1[$time] = ['time'=>$time, 'group'=>$groupid, 'keep'=>$keepflag]; + $cfg['rankup_definition'] = $addnewvalue1; + } + } + } else { + $err_msg = $lang['errukwn']; + $err_lvl = 3; + } + } elseif (isset($_POST['update']) || isset($_POST['update_old'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +
    @@ -151,7 +156,7 @@
    - +
    @@ -171,43 +176,61 @@
    - +
    - +
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - +
    @@ -242,7 +265,7 @@
    - +
    @@ -254,7 +277,11 @@
    - +
    @@ -280,10 +307,10 @@
    @@ -296,10 +323,10 @@
    @@ -369,6 +396,7 @@ function addrankupgroup() { - \ No newline at end of file diff --git a/webinterface/ranklist.php b/webinterface/ranklist.php index 7ec27bb..fd4b0c4 100644 --- a/webinterface/ranklist.php +++ b/webinterface/ranklist.php @@ -1,77 +1,183 @@ -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']])) { - if (isset($_POST['stats_column_rank_switch'])) $cfg['stats_column_rank_switch'] = 1; else $cfg['stats_column_rank_switch'] = 0; - if (isset($_POST['stats_column_client_name_switch'])) $cfg['stats_column_client_name_switch'] = 1; else $cfg['stats_column_client_name_switch'] = 0; - if (isset($_POST['stats_column_unique_id_switch'])) $cfg['stats_column_unique_id_switch'] = 1; else $cfg['stats_column_unique_id_switch'] = 0; - if (isset($_POST['stats_column_client_db_id_switch'])) $cfg['stats_column_client_db_id_switch'] = 1; else $cfg['stats_column_client_db_id_switch'] = 0; - if (isset($_POST['stats_column_last_seen_switch'])) $cfg['stats_column_last_seen_switch'] = 1; else $cfg['stats_column_last_seen_switch'] = 0; - if (isset($_POST['stats_column_nation_switch'])) $cfg['stats_column_nation_switch'] = 1; else $cfg['stats_column_nation_switch'] = 0; - if (isset($_POST['stats_column_version_switch'])) $cfg['stats_column_version_switch'] = 1; else $cfg['stats_column_version_switch'] = 0; - if (isset($_POST['stats_column_platform_switch'])) $cfg['stats_column_platform_switch'] = 1; else $cfg['stats_column_platform_switch'] = 0; - if (isset($_POST['stats_column_online_time_switch'])) $cfg['stats_column_online_time_switch'] = 1; else $cfg['stats_column_online_time_switch'] = 0; - if (isset($_POST['stats_column_idle_time_switch'])) $cfg['stats_column_idle_time_switch'] = 1; else $cfg['stats_column_idle_time_switch'] = 0; - if (isset($_POST['stats_column_active_time_switch'])) $cfg['stats_column_active_time_switch'] = 1; else $cfg['stats_column_active_time_switch'] = 0; - if (isset($_POST['stats_column_current_server_group_switch'])) $cfg['stats_column_current_server_group_switch'] = 1; else $cfg['stats_column_current_server_group_switch'] = 0; - if (isset($_POST['stats_column_next_rankup_switch'])) $cfg['stats_column_next_rankup_switch'] = 1; else $cfg['stats_column_next_rankup_switch'] = 0; - if (isset($_POST['stats_column_next_server_group_switch'])) $cfg['stats_column_next_server_group_switch'] = 1; else $cfg['stats_column_next_server_group_switch'] = 0; - if (isset($_POST['stats_column_current_group_since_switch'])) $cfg['stats_column_current_group_since_switch'] = 1; else $cfg['stats_column_current_group_since_switch'] = 0; - if (isset($_POST['stats_column_online_day_switch'])) $cfg['stats_column_online_day_switch'] = 1; else $cfg['stats_column_online_day_switch'] = 0; - if (isset($_POST['stats_column_idle_day_switch'])) $cfg['stats_column_idle_day_switch'] = 1; else $cfg['stats_column_idle_day_switch'] = 0; - if (isset($_POST['stats_column_active_day_switch'])) $cfg['stats_column_active_day_switch'] = 1; else $cfg['stats_column_active_day_switch'] = 0; - if (isset($_POST['stats_column_online_week_switch'])) $cfg['stats_column_online_week_switch'] = 1; else $cfg['stats_column_online_week_switch'] = 0; - if (isset($_POST['stats_column_idle_week_switch'])) $cfg['stats_column_idle_week_switch'] = 1; else $cfg['stats_column_idle_week_switch'] = 0; - if (isset($_POST['stats_column_active_week_switch'])) $cfg['stats_column_active_week_switch'] = 1; else $cfg['stats_column_active_week_switch'] = 0; - if (isset($_POST['stats_column_online_month_switch'])) $cfg['stats_column_online_month_switch'] = 1; else $cfg['stats_column_online_month_switch'] = 0; - if (isset($_POST['stats_column_idle_month_switch'])) $cfg['stats_column_idle_month_switch'] = 1; else $cfg['stats_column_idle_month_switch'] = 0; - if (isset($_POST['stats_column_active_month_switch'])) $cfg['stats_column_active_month_switch'] = 1; else $cfg['stats_column_active_month_switch'] = 0; - if (isset($_POST['stats_show_excepted_clients_switch'])) $cfg['stats_show_excepted_clients_switch'] = 1; else $cfg['stats_show_excepted_clients_switch'] = 0; - if (isset($_POST['stats_show_clients_in_highest_rank_switch'])) $cfg['stats_show_clients_in_highest_rank_switch'] = 1; else $cfg['stats_show_clients_in_highest_rank_switch'] = 0; - - $cfg['stats_column_default_order'] = $_POST['stats_column_default_order']; - $cfg['stats_column_default_sort'] = $_POST['stats_column_default_sort']; - $cfg['stats_column_default_order_2'] = $_POST['stats_column_default_order_2']; - $cfg['stats_column_default_sort_2'] = $_POST['stats_column_default_sort_2']; - - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_column_rank_switch','{$cfg['stats_column_rank_switch']}'),('stats_column_client_name_switch','{$cfg['stats_column_client_name_switch']}'),('stats_column_unique_id_switch','{$cfg['stats_column_unique_id_switch']}'),('stats_column_client_db_id_switch','{$cfg['stats_column_client_db_id_switch']}'),('stats_column_last_seen_switch','{$cfg['stats_column_last_seen_switch']}'),('stats_column_nation_switch','{$cfg['stats_column_nation_switch']}'),('stats_column_version_switch','{$cfg['stats_column_version_switch']}'),('stats_column_platform_switch','{$cfg['stats_column_platform_switch']}'),('stats_column_online_time_switch','{$cfg['stats_column_online_time_switch']}'),('stats_column_idle_time_switch','{$cfg['stats_column_idle_time_switch']}'),('stats_column_active_time_switch','{$cfg['stats_column_active_time_switch']}'),('stats_column_current_server_group_switch','{$cfg['stats_column_current_server_group_switch']}'),('stats_column_current_group_since_switch','{$cfg['stats_column_current_group_since_switch']}'),('stats_column_online_day_switch','{$cfg['stats_column_online_day_switch']}'),('stats_column_idle_day_switch','{$cfg['stats_column_idle_day_switch']}'),('stats_column_active_day_switch','{$cfg['stats_column_active_day_switch']}'),('stats_column_online_week_switch','{$cfg['stats_column_online_week_switch']}'),('stats_column_idle_week_switch','{$cfg['stats_column_idle_week_switch']}'),('stats_column_active_week_switch','{$cfg['stats_column_active_week_switch']}'),('stats_column_online_month_switch','{$cfg['stats_column_online_month_switch']}'),('stats_column_idle_month_switch','{$cfg['stats_column_idle_month_switch']}'),('stats_column_active_month_switch','{$cfg['stats_column_active_month_switch']}'),('stats_column_next_rankup_switch','{$cfg['stats_column_next_rankup_switch']}'),('stats_column_next_server_group_switch','{$cfg['stats_column_next_server_group_switch']}'),('stats_column_default_order','{$cfg['stats_column_default_order']}'),('stats_column_default_sort','{$cfg['stats_column_default_sort']}'),('stats_column_default_order_2','{$cfg['stats_column_default_order_2']}'),('stats_column_default_sort_2','{$cfg['stats_column_default_sort_2']}'),('stats_show_excepted_clients_switch','{$cfg['stats_show_excepted_clients_switch']}'),('stats_show_clients_in_highest_rank_switch','{$cfg['stats_show_clients_in_highest_rank_switch']}') 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; - } - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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']])) { + if (isset($_POST['stats_column_rank_switch'])) { + $cfg['stats_column_rank_switch'] = 1; + } else { + $cfg['stats_column_rank_switch'] = 0; + } + if (isset($_POST['stats_column_client_name_switch'])) { + $cfg['stats_column_client_name_switch'] = 1; + } else { + $cfg['stats_column_client_name_switch'] = 0; + } + if (isset($_POST['stats_column_unique_id_switch'])) { + $cfg['stats_column_unique_id_switch'] = 1; + } else { + $cfg['stats_column_unique_id_switch'] = 0; + } + if (isset($_POST['stats_column_client_db_id_switch'])) { + $cfg['stats_column_client_db_id_switch'] = 1; + } else { + $cfg['stats_column_client_db_id_switch'] = 0; + } + if (isset($_POST['stats_column_last_seen_switch'])) { + $cfg['stats_column_last_seen_switch'] = 1; + } else { + $cfg['stats_column_last_seen_switch'] = 0; + } + if (isset($_POST['stats_column_nation_switch'])) { + $cfg['stats_column_nation_switch'] = 1; + } else { + $cfg['stats_column_nation_switch'] = 0; + } + if (isset($_POST['stats_column_version_switch'])) { + $cfg['stats_column_version_switch'] = 1; + } else { + $cfg['stats_column_version_switch'] = 0; + } + if (isset($_POST['stats_column_platform_switch'])) { + $cfg['stats_column_platform_switch'] = 1; + } else { + $cfg['stats_column_platform_switch'] = 0; + } + if (isset($_POST['stats_column_online_time_switch'])) { + $cfg['stats_column_online_time_switch'] = 1; + } else { + $cfg['stats_column_online_time_switch'] = 0; + } + if (isset($_POST['stats_column_idle_time_switch'])) { + $cfg['stats_column_idle_time_switch'] = 1; + } else { + $cfg['stats_column_idle_time_switch'] = 0; + } + if (isset($_POST['stats_column_active_time_switch'])) { + $cfg['stats_column_active_time_switch'] = 1; + } else { + $cfg['stats_column_active_time_switch'] = 0; + } + if (isset($_POST['stats_column_current_server_group_switch'])) { + $cfg['stats_column_current_server_group_switch'] = 1; + } else { + $cfg['stats_column_current_server_group_switch'] = 0; + } + if (isset($_POST['stats_column_next_rankup_switch'])) { + $cfg['stats_column_next_rankup_switch'] = 1; + } else { + $cfg['stats_column_next_rankup_switch'] = 0; + } + if (isset($_POST['stats_column_next_server_group_switch'])) { + $cfg['stats_column_next_server_group_switch'] = 1; + } else { + $cfg['stats_column_next_server_group_switch'] = 0; + } + if (isset($_POST['stats_column_current_group_since_switch'])) { + $cfg['stats_column_current_group_since_switch'] = 1; + } else { + $cfg['stats_column_current_group_since_switch'] = 0; + } + if (isset($_POST['stats_column_online_day_switch'])) { + $cfg['stats_column_online_day_switch'] = 1; + } else { + $cfg['stats_column_online_day_switch'] = 0; + } + if (isset($_POST['stats_column_idle_day_switch'])) { + $cfg['stats_column_idle_day_switch'] = 1; + } else { + $cfg['stats_column_idle_day_switch'] = 0; + } + if (isset($_POST['stats_column_active_day_switch'])) { + $cfg['stats_column_active_day_switch'] = 1; + } else { + $cfg['stats_column_active_day_switch'] = 0; + } + if (isset($_POST['stats_column_online_week_switch'])) { + $cfg['stats_column_online_week_switch'] = 1; + } else { + $cfg['stats_column_online_week_switch'] = 0; + } + if (isset($_POST['stats_column_idle_week_switch'])) { + $cfg['stats_column_idle_week_switch'] = 1; + } else { + $cfg['stats_column_idle_week_switch'] = 0; + } + if (isset($_POST['stats_column_active_week_switch'])) { + $cfg['stats_column_active_week_switch'] = 1; + } else { + $cfg['stats_column_active_week_switch'] = 0; + } + if (isset($_POST['stats_column_online_month_switch'])) { + $cfg['stats_column_online_month_switch'] = 1; + } else { + $cfg['stats_column_online_month_switch'] = 0; + } + if (isset($_POST['stats_column_idle_month_switch'])) { + $cfg['stats_column_idle_month_switch'] = 1; + } else { + $cfg['stats_column_idle_month_switch'] = 0; + } + if (isset($_POST['stats_column_active_month_switch'])) { + $cfg['stats_column_active_month_switch'] = 1; + } else { + $cfg['stats_column_active_month_switch'] = 0; + } + if (isset($_POST['stats_show_excepted_clients_switch'])) { + $cfg['stats_show_excepted_clients_switch'] = 1; + } else { + $cfg['stats_show_excepted_clients_switch'] = 0; + } + if (isset($_POST['stats_show_clients_in_highest_rank_switch'])) { + $cfg['stats_show_clients_in_highest_rank_switch'] = 1; + } else { + $cfg['stats_show_clients_in_highest_rank_switch'] = 0; + } + + $cfg['stats_column_default_order'] = $_POST['stats_column_default_order']; + $cfg['stats_column_default_sort'] = $_POST['stats_column_default_sort']; + $cfg['stats_column_default_order_2'] = $_POST['stats_column_default_order_2']; + $cfg['stats_column_default_sort_2'] = $_POST['stats_column_default_sort_2']; + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_column_rank_switch','{$cfg['stats_column_rank_switch']}'),('stats_column_client_name_switch','{$cfg['stats_column_client_name_switch']}'),('stats_column_unique_id_switch','{$cfg['stats_column_unique_id_switch']}'),('stats_column_client_db_id_switch','{$cfg['stats_column_client_db_id_switch']}'),('stats_column_last_seen_switch','{$cfg['stats_column_last_seen_switch']}'),('stats_column_nation_switch','{$cfg['stats_column_nation_switch']}'),('stats_column_version_switch','{$cfg['stats_column_version_switch']}'),('stats_column_platform_switch','{$cfg['stats_column_platform_switch']}'),('stats_column_online_time_switch','{$cfg['stats_column_online_time_switch']}'),('stats_column_idle_time_switch','{$cfg['stats_column_idle_time_switch']}'),('stats_column_active_time_switch','{$cfg['stats_column_active_time_switch']}'),('stats_column_current_server_group_switch','{$cfg['stats_column_current_server_group_switch']}'),('stats_column_current_group_since_switch','{$cfg['stats_column_current_group_since_switch']}'),('stats_column_online_day_switch','{$cfg['stats_column_online_day_switch']}'),('stats_column_idle_day_switch','{$cfg['stats_column_idle_day_switch']}'),('stats_column_active_day_switch','{$cfg['stats_column_active_day_switch']}'),('stats_column_online_week_switch','{$cfg['stats_column_online_week_switch']}'),('stats_column_idle_week_switch','{$cfg['stats_column_idle_week_switch']}'),('stats_column_active_week_switch','{$cfg['stats_column_active_week_switch']}'),('stats_column_online_month_switch','{$cfg['stats_column_online_month_switch']}'),('stats_column_idle_month_switch','{$cfg['stats_column_idle_month_switch']}'),('stats_column_active_month_switch','{$cfg['stats_column_active_month_switch']}'),('stats_column_next_rankup_switch','{$cfg['stats_column_next_rankup_switch']}'),('stats_column_next_server_group_switch','{$cfg['stats_column_next_server_group_switch']}'),('stats_column_default_order','{$cfg['stats_column_default_order']}'),('stats_column_default_sort','{$cfg['stats_column_default_sort']}'),('stats_column_default_order_2','{$cfg['stats_column_default_order_2']}'),('stats_column_default_sort_2','{$cfg['stats_column_default_sort_2']}'),('stats_show_excepted_clients_switch','{$cfg['stats_show_excepted_clients_switch']}'),('stats_show_clients_in_highest_rank_switch','{$cfg['stats_show_clients_in_highest_rank_switch']}') 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; + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -79,51 +185,51 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    @@ -131,183 +237,183 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    @@ -320,12 +426,12 @@
    @@ -333,10 +439,10 @@
    @@ -345,11 +451,11 @@
    @@ -357,10 +463,10 @@
    @@ -370,21 +476,21 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    @@ -410,10 +516,10 @@ @@ -426,10 +532,10 @@ @@ -442,10 +548,10 @@ @@ -458,10 +564,10 @@ @@ -474,10 +580,10 @@ @@ -490,10 +596,10 @@ @@ -506,10 +612,10 @@ @@ -544,6 +650,7 @@ - \ No newline at end of file diff --git a/webinterface/reset.php b/webinterface/reset.php index 6f75e7c..6753cd5 100644 --- a/webinterface/reset.php +++ b/webinterface/reset.php @@ -1,218 +1,276 @@ -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); - $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 = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(($job_check = $mysqlcon->query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - function reset_status($lang, $job_check, $check = NULL) { - $err_msg = "".$lang['wihladm31'].": "; - - switch([$job_check['reset_user_time']['timestamp'],$job_check['reset_user_delete']['timestamp']]) { - case [0,1]: - if($check == 1) { - $err_msg .= $lang['wihladmrs16']." (".$lang['wisupidle'].": ".$lang['wihladm312'].")
    "; break; - } else { - $err_msg .= $lang['wihladmrs1']." (".$lang['wisupidle'].": ".$lang['wihladm312'].")
    "; break; - } - case [0,2]: - $err_msg .= "".$lang['wihladmrs2']." (".$lang['wisupidle'].": ".$lang['wihladm312'].")
    "; break; - case [0,3]: - $err_msg .= "".$lang['wihladmrs3']." (".$lang['wisupidle'].": ".$lang['wihladm312'].")
    "; break; - case [0,4]: - $err_msg .= "".$lang['wihladmrs4']." (".$lang['wisupidle'].": ".$lang['wihladm312'].")
    "; break; - case [1,0]: - if($check == 1) { - $err_msg .= $lang['wihladmrs16']." (".$lang['wisupidle'].": ".$lang['wihladm311'].")
    "; break; - } else { - $err_msg .= $lang['wihladmrs1']." (".$lang['wisupidle'].": ".$lang['wihladm311'].")
    "; break; - } - case [2,0]: - $err_msg .= "".$lang['wihladmrs2']." (".$lang['wisupidle'].": ".$lang['wihladm311'].")
    "; break; - case [3,0]: - $err_msg .= "".$lang['wihladmrs3']." (".$lang['wisupidle'].": ".$lang['wihladm311'].")
    "; break; - case [4,0]: - $err_msg .= "".$lang['wihladmrs4']." (".$lang['wisupidle'].": ".$lang['wihladm311'].")
    "; break; - default: - $err_msg .= "".$lang['wihladmrs0']."
    "; - } - - $err_msg .= "".$lang['wihladm32'].": "; - switch($job_check['reset_group_withdraw']['timestamp']) { - case 1: - if($check == 1) { - $err_msg .= $lang['wihladmrs16']."
    "; break; - } else { - $err_msg .= $lang['wihladmrs1']."
    "; break; - } - case 2: - $err_msg .= "".$lang['wihladmrs2']."
    "; break; - case 3: - $err_msg .= "".$lang['wihladmrs3']."
    "; break; - case 4: - $err_msg .= "".$lang['wihladmrs4']."
    "; break; - default: - $err_msg .= "".$lang['wihladmrs0']."
    "; - } - - $err_msg .= "".$lang['wihladm33'].": "; - switch($job_check['reset_webspace_cache']['timestamp']) { - case 1: - if($check == 1) { - $err_msg .= $lang['wihladmrs16']."
    "; break; - } else { - $err_msg .= $lang['wihladmrs1']."
    "; break; - } - case 2: - $err_msg .= "".$lang['wihladmrs2']."
    "; break; - case 3: - $err_msg .= "".$lang['wihladmrs3']."
    "; break; - case 4: - $err_msg .= "".$lang['wihladmrs4']."
    "; break; - default: - $err_msg .= "".$lang['wihladmrs0']."
    "; - } - - $err_msg .= "".$lang['wihladm34'].": "; - switch($job_check['reset_usage_graph']['timestamp']) { - case 1: - if($check == 1) { - $err_msg .= $lang['wihladmrs16']."
    "; break; - } else { - $err_msg .= $lang['wihladmrs1']."
    "; break; - } - case 2: - $err_msg .= "".$lang['wihladmrs2']."
    "; break; - case 3: - $err_msg .= "".$lang['wihladmrs3']."
    "; break; - case 4: - $err_msg .= "".$lang['wihladmrs4']."
    "; break; - default: - $err_msg .= "".$lang['wihladmrs0']."
    "; - } - - $err_msg .= "

    ".$lang['wihladm36'].": "; - switch($job_check['reset_stop_after']['timestamp']) { - case 1: - $err_msg .= $lang['wihladmrs16']."
    "; break; - default: - $err_msg .= "".$lang['wihladmrs0']."
    "; - } - - return $err_msg; - } - - - if($job_check['reset_user_time']['timestamp'] != 0 || $job_check['reset_user_delete']['timestamp'] != 0 || $job_check['reset_group_withdraw']['timestamp'] != 0 || $job_check['reset_webspace_cache']['timestamp'] != 0 || $job_check['reset_usage_graph']['timestamp'] != 0) { - $err_msg = ''.$lang['wihladmrs'].":

    "; $err_lvl = 2;
    -		$err_msg .= reset_status($lang, $job_check);
    -
    -		if(in_array(intval($job_check['reset_user_time']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_user_delete']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_group_withdraw']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_webspace_cache']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_usage_graph']['timestamp']), [0,4], true)) {
    -			$err_msg .= '



    '.sprintf($lang['wihladmrs9'], ''); - } else { - $err_msg .= '
    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; - } - } - - if (isset($_POST['confirm']) && isset($db_csrf[$_POST['csrf_token']])) { - if(in_array(intval($job_check['reset_user_time']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_user_delete']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_group_withdraw']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_webspace_cache']['timestamp']), [0,4], true) && in_array(intval($job_check['reset_usage_graph']['timestamp']), [0,4], true)) { - 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') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = $lang['wihladmrs10']; - $err_lvl = NULL; - } - } else { - $err_msg = $lang['errukwn']; $err_lvl = 3; - } - } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { - if($job_check['reset_user_time']['timestamp'] != 0 || $job_check['reset_user_delete']['timestamp'] != 0 || $job_check['reset_group_withdraw']['timestamp'] != 0 || $job_check['reset_webspace_cache']['timestamp'] != 0 || $job_check['reset_usage_graph']['timestamp'] != 0) { - $err_msg = ''.$lang['wihladmrs6'].'

    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; - $err_lvl = 3; - } elseif($_POST['reset_user_time'] == 0 && !isset($_POST['reset_group_withdraw']) && !isset($_POST['reset_webspace_cache']) && !isset($_POST['reset_usage_graph'])) { - $err_msg = $lang['wihladmrs15']; $err_lvl = 3; - } else { - if(($stats_server = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_server`")->fetch()) === false) { - $err_msg .= print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - if(($groups = $mysqlcon->query("SELECT COUNT(*) AS `count` from `$dbname`.`groups`")->fetch()) === false) { - $err_msg .= print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } - - if (isset($_POST['reset_user_time']) && $_POST['reset_user_time'] == 1) { - $job_check['reset_user_time']['timestamp'] = 1; - } elseif (isset($_POST['reset_user_time']) && $_POST['reset_user_time'] == 2) { - $job_check['reset_user_delete']['timestamp'] = 1; - } - if (isset($_POST['reset_group_withdraw'])) $_POST['reset_group_withdraw'] = $job_check['reset_group_withdraw']['timestamp'] = 1; else $_POST['reset_group_withdraw'] = $job_check['reset_group_withdraw']['timestamp'] = 0; - if (isset($_POST['reset_webspace_cache'])) $_POST['reset_webspace_cache'] = $job_check['reset_webspace_cache']['timestamp'] = 1; else $_POST['reset_webspace_cache'] = $job_check['reset_webspace_cache']['timestamp'] = 0; - if (isset($_POST['reset_usage_graph'])) $_POST['reset_usage_graph'] = $job_check['reset_usage_graph']['timestamp'] = 1; else $_POST['reset_usage_graph'] = $job_check['reset_usage_graph']['timestamp'] = 0; - if (isset($_POST['reset_stop_after'])) $_POST['reset_stop_after'] = $job_check['reset_stop_after']['timestamp'] = 1; else $_POST['reset_stop_after'] = $job_check['reset_stop_after']['timestamp'] = 0; - - if ($_POST['reset_group_withdraw'] == 0) $delay = 0; else $delay = ($cfg['teamspeak_query_command_delay'] / 1000000) + 0.05; - if ($_POST['reset_webspace_cache'] == 0) $cache_needed_time = 0; else $cache_needed_time = $stats_server['total_user'] / 10 * 0.005; - $time_to_begin = 5 * $cfg['teamspeak_query_command_delay'] / 1000000; - $est_time = round($delay * ($stats_server['total_user'] + $groups['count']) + $time_to_begin + $cache_needed_time); - $dtF = new \DateTime('@0'); - $dtT = new \DateTime("@$est_time"); - $est_time = $dtF->diff($dtT)->format($cfg['default_date_format']); - - $err_msg = $lang['wihladmrs11'].': '.$est_time.'.
    '.$lang['wihladmrs12'].'

    ';
    -			$err_msg .= reset_status($lang, $job_check, $check = 1);
    -			$err_msg .= '


    '; - $err_lvl = 1; - } - } elseif(isset($_POST['startjobs']) && isset($db_csrf[$_POST['csrf_token']])) { - if($_POST['reset_user_time'] == 1) { - $reset_user_time = 1; - $reset_user_delete = 0; - } elseif($_POST['reset_user_time'] == 2) { - $reset_user_delete = 1; - $reset_user_time = 0; - } else { - $reset_user_time = 0; - $reset_user_delete = 0; - } - - if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('reset_user_time','{$reset_user_time}'),('reset_user_delete','{$reset_user_delete}'),('reset_group_withdraw','{$_POST['reset_group_withdraw']}'),('reset_webspace_cache','{$_POST['reset_webspace_cache']}'),('reset_usage_graph','{$_POST['reset_usage_graph']}'),('reset_stop_after','{$_POST['reset_stop_after']}') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { - $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } else { - $err_msg = ''.$lang['wihladmrs5'].'

    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; - $err_lvl = NULL; - } - } elseif(isset($_POST['update']) || isset($_POST['confirm'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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); + $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 = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (($job_check = $mysqlcon->query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)) === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + function reset_status($lang, $job_check, $check = null) + { + $err_msg = ''.$lang['wihladm31'].': '; + + switch([$job_check['reset_user_time']['timestamp'], $job_check['reset_user_delete']['timestamp']]) { + case [0, 1]: + if ($check == 1) { + $err_msg .= $lang['wihladmrs16'].' ('.$lang['wisupidle'].': '.$lang['wihladm312'].')
    '; + break; + } else { + $err_msg .= $lang['wihladmrs1'].' ('.$lang['wisupidle'].': '.$lang['wihladm312'].')
    '; + break; + } + case [0, 2]: + $err_msg .= ''.$lang['wihladmrs2'].' ('.$lang['wisupidle'].': '.$lang['wihladm312'].')
    '; + break; + case [0, 3]: + $err_msg .= ''.$lang['wihladmrs3'].' ('.$lang['wisupidle'].': '.$lang['wihladm312'].')
    '; + break; + case [0, 4]: + $err_msg .= ''.$lang['wihladmrs4'].' ('.$lang['wisupidle'].': '.$lang['wihladm312'].')
    '; + break; + case [1, 0]: + if ($check == 1) { + $err_msg .= $lang['wihladmrs16'].' ('.$lang['wisupidle'].': '.$lang['wihladm311'].')
    '; + break; + } else { + $err_msg .= $lang['wihladmrs1'].' ('.$lang['wisupidle'].': '.$lang['wihladm311'].')
    '; + break; + } + case [2, 0]: + $err_msg .= ''.$lang['wihladmrs2'].' ('.$lang['wisupidle'].': '.$lang['wihladm311'].')
    '; + break; + case [3, 0]: + $err_msg .= ''.$lang['wihladmrs3'].' ('.$lang['wisupidle'].': '.$lang['wihladm311'].')
    '; + break; + case [4, 0]: + $err_msg .= ''.$lang['wihladmrs4'].' ('.$lang['wisupidle'].': '.$lang['wihladm311'].')
    '; + break; + default: + $err_msg .= ''.$lang['wihladmrs0'].'
    '; + } + + $err_msg .= ''.$lang['wihladm32'].': '; + switch($job_check['reset_group_withdraw']['timestamp']) { + case 1: + if ($check == 1) { + $err_msg .= $lang['wihladmrs16'].'
    '; + break; + } else { + $err_msg .= $lang['wihladmrs1'].'
    '; + break; + } + case 2: + $err_msg .= ''.$lang['wihladmrs2'].'
    '; + break; + case 3: + $err_msg .= ''.$lang['wihladmrs3'].'
    '; + break; + case 4: + $err_msg .= ''.$lang['wihladmrs4'].'
    '; + break; + default: + $err_msg .= ''.$lang['wihladmrs0'].'
    '; + } + + $err_msg .= ''.$lang['wihladm33'].': '; + switch($job_check['reset_webspace_cache']['timestamp']) { + case 1: + if ($check == 1) { + $err_msg .= $lang['wihladmrs16'].'
    '; + break; + } else { + $err_msg .= $lang['wihladmrs1'].'
    '; + break; + } + case 2: + $err_msg .= ''.$lang['wihladmrs2'].'
    '; + break; + case 3: + $err_msg .= ''.$lang['wihladmrs3'].'
    '; + break; + case 4: + $err_msg .= ''.$lang['wihladmrs4'].'
    '; + break; + default: + $err_msg .= ''.$lang['wihladmrs0'].'
    '; + } + + $err_msg .= ''.$lang['wihladm34'].': '; + switch($job_check['reset_usage_graph']['timestamp']) { + case 1: + if ($check == 1) { + $err_msg .= $lang['wihladmrs16'].'
    '; + break; + } else { + $err_msg .= $lang['wihladmrs1'].'
    '; + break; + } + case 2: + $err_msg .= ''.$lang['wihladmrs2'].'
    '; + break; + case 3: + $err_msg .= ''.$lang['wihladmrs3'].'
    '; + break; + case 4: + $err_msg .= ''.$lang['wihladmrs4'].'
    '; + break; + default: + $err_msg .= ''.$lang['wihladmrs0'].'
    '; + } + + $err_msg .= '

    '.$lang['wihladm36'].': '; + switch($job_check['reset_stop_after']['timestamp']) { + case 1: + $err_msg .= $lang['wihladmrs16'].'
    '; + break; + default: + $err_msg .= ''.$lang['wihladmrs0'].'
    '; + } + + return $err_msg; + } + + if ($job_check['reset_user_time']['timestamp'] != 0 || $job_check['reset_user_delete']['timestamp'] != 0 || $job_check['reset_group_withdraw']['timestamp'] != 0 || $job_check['reset_webspace_cache']['timestamp'] != 0 || $job_check['reset_usage_graph']['timestamp'] != 0) { + $err_msg = ''.$lang['wihladmrs'].':

    ';
    +        $err_lvl = 2;
    +        $err_msg .= reset_status($lang, $job_check);
    +
    +        if (in_array(intval($job_check['reset_user_time']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_user_delete']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_group_withdraw']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_webspace_cache']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_usage_graph']['timestamp']), [0, 4], true)) {
    +            $err_msg .= '



    '.sprintf($lang['wihladmrs9'], '
    '); + } else { + $err_msg .= '
    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; + } + } + + if (isset($_POST['confirm']) && isset($db_csrf[$_POST['csrf_token']])) { + if (in_array(intval($job_check['reset_user_time']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_user_delete']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_group_withdraw']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_webspace_cache']['timestamp']), [0, 4], true) && in_array(intval($job_check['reset_usage_graph']['timestamp']), [0, 4], true)) { + 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') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = $lang['wihladmrs10']; + $err_lvl = null; + } + } else { + $err_msg = $lang['errukwn']; + $err_lvl = 3; + } + } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { + if ($job_check['reset_user_time']['timestamp'] != 0 || $job_check['reset_user_delete']['timestamp'] != 0 || $job_check['reset_group_withdraw']['timestamp'] != 0 || $job_check['reset_webspace_cache']['timestamp'] != 0 || $job_check['reset_usage_graph']['timestamp'] != 0) { + $err_msg = ''.$lang['wihladmrs6'].'

    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; + $err_lvl = 3; + } elseif ($_POST['reset_user_time'] == 0 && ! isset($_POST['reset_group_withdraw']) && ! isset($_POST['reset_webspace_cache']) && ! isset($_POST['reset_usage_graph'])) { + $err_msg = $lang['wihladmrs15']; + $err_lvl = 3; + } else { + if (($stats_server = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_server`")->fetch()) === false) { + $err_msg .= print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + if (($groups = $mysqlcon->query("SELECT COUNT(*) AS `count` from `$dbname`.`groups`")->fetch()) === false) { + $err_msg .= print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (isset($_POST['reset_user_time']) && $_POST['reset_user_time'] == 1) { + $job_check['reset_user_time']['timestamp'] = 1; + } elseif (isset($_POST['reset_user_time']) && $_POST['reset_user_time'] == 2) { + $job_check['reset_user_delete']['timestamp'] = 1; + } + if (isset($_POST['reset_group_withdraw'])) { + $_POST['reset_group_withdraw'] = $job_check['reset_group_withdraw']['timestamp'] = 1; + } else { + $_POST['reset_group_withdraw'] = $job_check['reset_group_withdraw']['timestamp'] = 0; + } + if (isset($_POST['reset_webspace_cache'])) { + $_POST['reset_webspace_cache'] = $job_check['reset_webspace_cache']['timestamp'] = 1; + } else { + $_POST['reset_webspace_cache'] = $job_check['reset_webspace_cache']['timestamp'] = 0; + } + if (isset($_POST['reset_usage_graph'])) { + $_POST['reset_usage_graph'] = $job_check['reset_usage_graph']['timestamp'] = 1; + } else { + $_POST['reset_usage_graph'] = $job_check['reset_usage_graph']['timestamp'] = 0; + } + if (isset($_POST['reset_stop_after'])) { + $_POST['reset_stop_after'] = $job_check['reset_stop_after']['timestamp'] = 1; + } else { + $_POST['reset_stop_after'] = $job_check['reset_stop_after']['timestamp'] = 0; + } + + if ($_POST['reset_group_withdraw'] == 0) { + $delay = 0; + } else { + $delay = ($cfg['teamspeak_query_command_delay'] / 1000000) + 0.05; + } + if ($_POST['reset_webspace_cache'] == 0) { + $cache_needed_time = 0; + } else { + $cache_needed_time = $stats_server['total_user'] / 10 * 0.005; + } + $time_to_begin = 5 * $cfg['teamspeak_query_command_delay'] / 1000000; + $est_time = round($delay * ($stats_server['total_user'] + $groups['count']) + $time_to_begin + $cache_needed_time); + $dtF = new \DateTime('@0'); + $dtT = new \DateTime("@$est_time"); + $est_time = $dtF->diff($dtT)->format($cfg['default_date_format']); + + $err_msg = $lang['wihladmrs11'].': '.$est_time.'.
    '.$lang['wihladmrs12'].'

    ';
    +            $err_msg .= reset_status($lang, $job_check, $check = 1);
    +            $err_msg .= '


    '; + $err_lvl = 1; + } + } elseif (isset($_POST['startjobs']) && isset($db_csrf[$_POST['csrf_token']])) { + if ($_POST['reset_user_time'] == 1) { + $reset_user_time = 1; + $reset_user_delete = 0; + } elseif ($_POST['reset_user_time'] == 2) { + $reset_user_delete = 1; + $reset_user_time = 0; + } else { + $reset_user_time = 0; + $reset_user_delete = 0; + } + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`,`timestamp`) VALUES ('reset_user_time','{$reset_user_time}'),('reset_user_delete','{$reset_user_delete}'),('reset_group_withdraw','{$_POST['reset_group_withdraw']}'),('reset_webspace_cache','{$_POST['reset_webspace_cache']}'),('reset_usage_graph','{$_POST['reset_usage_graph']}'),('reset_stop_after','{$_POST['reset_stop_after']}') ON DUPLICATE KEY UPDATE `timestamp`=VALUES(`timestamp`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + $err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + $err_msg = ''.$lang['wihladmrs5'].'

    '.sprintf($lang['wihladmrs7'], '
    ').'

    '.$lang['wihladmrs8']; + $err_lvl = null; + } + } elseif (isset($_POST['update']) || isset($_POST['confirm'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -231,10 +289,10 @@ function reset_status($lang, $job_check, $check = NULL) {
    @@ -288,10 +346,10 @@ function reset_status($lang, $job_check, $check = NULL) {
    @@ -304,10 +362,10 @@ function reset_status($lang, $job_check, $check = NULL) {
    @@ -320,10 +378,10 @@ function reset_status($lang, $job_check, $check = NULL) { @@ -336,10 +394,10 @@ function reset_status($lang, $job_check, $check = NULL) { @@ -352,10 +410,10 @@ function reset_status($lang, $job_check, $check = NULL) { @@ -368,10 +426,10 @@ function reset_status($lang, $job_check, $check = NULL) { @@ -384,6 +442,7 @@ function reset_status($lang, $job_check, $check = NULL) { - \ No newline at end of file diff --git a/webinterface/resetpassword.php b/webinterface/resetpassword.php index 32dd7bc..6c5adcc 100644 --- a/webinterface/resetpassword.php +++ b/webinterface/resetpassword.php @@ -1,113 +1,125 @@ -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 (($cfg['webinterface_access_last'] + 1) >= time()) { - $again = $cfg['webinterface_access_last'] + 2 - 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 = sprintf($lang['wirtpw1'], 'https://github.com/Newcomer1989/TSN-Ranksystem/wiki#reset-password-webinterface'); $err_lvl=3; - } elseif (isset($_POST['resetpw']) && isset($db_csrf[$_POST['csrf_token']])) { - $nowtime = time(); - $newcount = $cfg['webinterface_access_count'] + 1; - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_last','{$nowtime}'),('webinterface_access_count','{$newcount}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { } - - require_once(dirname(__DIR__).DIRECTORY_SEPARATOR.'libs/ts3_lib/TeamSpeak3.php'); - try { - if($cfg['teamspeak_query_encrypt_switch'] == 1) { - $ts3 = TeamSpeak3::factory("serverquery://".rawurlencode($cfg['teamspeak_query_user']).":".rawurlencode($cfg['teamspeak_query_pass'])."@".$cfg['teamspeak_host_address'].":".$cfg['teamspeak_query_port']."/?server_port=".$cfg['teamspeak_voice_port']."&ssh=1"); - } else { - $ts3 = TeamSpeak3::factory("serverquery://".rawurlencode($cfg['teamspeak_query_user']).":".rawurlencode($cfg['teamspeak_query_pass'])."@".$cfg['teamspeak_host_address'].":".$cfg['teamspeak_query_port']."/?server_port=".$cfg['teamspeak_voice_port']."&blocking=0"); - } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->selfUpdate(array('client_nickname' => "Ranksystem - Reset Password")); - } catch (Exception $e) { } - - try { - usleep($cfg['teamspeak_query_command_delay']); - $allclients = $ts3->clientList(); - - $pwd = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#*+;:-_~?=%&!()'),0,12); - $cfg['webinterface_pass'] = password_hash($pwd, PASSWORD_DEFAULT); - $err_msg = ''; - - foreach($allclients as $client) { - if(array_key_exists(htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES), $cfg['webinterface_admin_client_unique_id_list'])) { - $checkuuid = 1; - if($client['connection_client_ip'] == getclientip()) { - $checkip = 1; - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_pass','{$cfg['webinterface_pass']}'),('webinterface_access_last','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { - $err_msg .= $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; - } else { - try { - usleep($cfg['teamspeak_query_command_delay']); - $ts3->clientGetByUid($client['client_unique_identifier'])->message(sprintf($lang['wirtpw4'], $cfg['webinterface_user'], $pwd, '[URL=http'.(!empty($_SERVER['HTTPS'])?"s":"").'://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).']','[/URL]')); - $err_msg .= sprintf($lang['wirtpw5'],'',''); $err_lvl = 1; - enter_logfile(3,sprintf($lang['wirtpw6'],getclientip())); - } catch (Exception $e) { - $err_msg .= $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - } - } - } - } - - if (!isset($checkuuid)) { - $err_msg = $lang['wirtpw2']; $err_lvl = 3; - } elseif (!isset($checkip)) { - $err_msg = $lang['wirtpw3']; $err_lvl = 3; - } - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - } catch (Exception $e) { - $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3; - } - } elseif(isset($_POST['resetpw'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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 (($cfg['webinterface_access_last'] + 1) >= time()) { + $again = $cfg['webinterface_access_last'] + 2 - 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 = sprintf($lang['wirtpw1'], 'https://github.com/Newcomer1989/TSN-Ranksystem/wiki#reset-password-webinterface'); + $err_lvl = 3; + } elseif (isset($_POST['resetpw']) && isset($db_csrf[$_POST['csrf_token']])) { + $nowtime = time(); + $newcount = $cfg['webinterface_access_count'] + 1; + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_access_last','{$nowtime}'),('webinterface_access_count','{$newcount}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { + } + + require_once dirname(__DIR__).DIRECTORY_SEPARATOR.'libs/ts3_lib/TeamSpeak3.php'; + try { + if ($cfg['teamspeak_query_encrypt_switch'] == 1) { + $ts3 = TeamSpeak3::factory('serverquery://'.rawurlencode($cfg['teamspeak_query_user']).':'.rawurlencode($cfg['teamspeak_query_pass']).'@'.$cfg['teamspeak_host_address'].':'.$cfg['teamspeak_query_port'].'/?server_port='.$cfg['teamspeak_voice_port'].'&ssh=1'); + } else { + $ts3 = TeamSpeak3::factory('serverquery://'.rawurlencode($cfg['teamspeak_query_user']).':'.rawurlencode($cfg['teamspeak_query_pass']).'@'.$cfg['teamspeak_host_address'].':'.$cfg['teamspeak_query_port'].'/?server_port='.$cfg['teamspeak_voice_port'].'&blocking=0'); + } + + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->selfUpdate(['client_nickname' => 'Ranksystem - Reset Password']); + } catch (Exception $e) { + } + + try { + usleep($cfg['teamspeak_query_command_delay']); + $allclients = $ts3->clientList(); + + $pwd = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#*+;:-_~?=%&!()'), 0, 12); + $cfg['webinterface_pass'] = password_hash($pwd, PASSWORD_DEFAULT); + $err_msg = ''; + + foreach ($allclients as $client) { + if (array_key_exists(htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES), $cfg['webinterface_admin_client_unique_id_list'])) { + $checkuuid = 1; + if ($client['connection_client_ip'] == getclientip()) { + $checkip = 1; + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('webinterface_pass','{$cfg['webinterface_pass']}'),('webinterface_access_last','0') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`)") === false) { + $err_msg .= $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } else { + try { + usleep($cfg['teamspeak_query_command_delay']); + $ts3->clientGetByUid($client['client_unique_identifier'])->message(sprintf($lang['wirtpw4'], $cfg['webinterface_user'], $pwd, '[URL=http'.(! empty($_SERVER['HTTPS']) ? 's' : '').'://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).']', '[/URL]')); + $err_msg .= sprintf($lang['wirtpw5'], '', ''); + $err_lvl = 1; + enter_logfile(3, sprintf($lang['wirtpw6'], getclientip())); + } catch (Exception $e) { + $err_msg .= $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + } + } + } + } + + if (! isset($checkuuid)) { + $err_msg = $lang['wirtpw2']; + $err_lvl = 3; + } elseif (! isset($checkip)) { + $err_msg = $lang['wirtpw3']; + $err_lvl = 3; + } + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + } catch (Exception $e) { + $err_msg = $lang['errorts3'].$e->getCode().': '.$e->getMessage(); + $err_lvl = 3; + } + } elseif (isset($_POST['resetpw'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +
    @@ -301,10 +325,10 @@ @@ -317,10 +341,10 @@ @@ -333,10 +357,10 @@ @@ -346,6 +370,7 @@ - \ No newline at end of file diff --git a/webinterface/ts.php b/webinterface/ts.php index 42ca402..509b884 100644 --- a/webinterface/ts.php +++ b/webinterface/ts.php @@ -1,89 +1,96 @@ -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; - } - - $monthago = time() - 2592000; - if(($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` WHERE `lastseen`>'{$monthago}' ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { - $err_msg = print_r($mysqlcon->errorInfo(), true); - $err_lvl = 3; - } - - if(($channellist = $mysqlcon->query("SELECT * FROM `$dbname`.`channel` ORDER BY `pid`,`channel_order`,`channel_name` ASC")->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']])) { - $cfg['webinterface_admin_client_unique_id_list'] = ''; - if(is_array($_POST['channelid'])) $_POST['channelid'] = $_POST['channelid'][0]; - - if (isset($_POST['webinterface_admin_client_unique_id_list']) && $_POST['webinterface_admin_client_unique_id_list'] != NULL) { - $cfg['webinterface_admin_client_unique_id_list'] = implode(',',$_POST['webinterface_admin_client_unique_id_list']); - } - - if(isset($_POST['teamspeak_host_address']) && $_POST['teamspeak_host_address'] != NULL) { - $cfg['teamspeak_host_address'] = preg_replace('/\s/', '', $_POST['teamspeak_host_address']); - } else { - $cfg['teamspeak_host_address'] = ''; - } - $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'] = 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['channelid']; - $cfg['teamspeak_query_command_delay'] = $_POST['teamspeak_query_command_delay']; - $cfg['teamspeak_avatar_download_delay']= $_POST['teamspeak_avatar_download_delay']; - if(isset($_POST['teamspeak_chatcommand_prefix']) && $_POST['teamspeak_chatcommand_prefix'] != NULL) { - $cfg['teamspeak_chatcommand_prefix'] = htmlspecialchars($_POST['teamspeak_chatcommand_prefix'], ENT_QUOTES); - } else { - $cfg['teamspeak_chatcommand_prefix'] = "!"; - } - - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('teamspeak_host_address','{$cfg['teamspeak_host_address']}'),('teamspeak_query_encrypt_switch','{$cfg['teamspeak_query_encrypt_switch']}'),('teamspeak_query_port','{$cfg['teamspeak_query_port']}'),('teamspeak_voice_port','{$cfg['teamspeak_voice_port']}'),('teamspeak_query_user','{$cfg['teamspeak_query_user']}'),('teamspeak_query_pass','{$cfg['teamspeak_query_pass']}'),('teamspeak_query_nickname','{$cfg['teamspeak_query_nickname']}'),('teamspeak_default_channel_id','{$cfg['teamspeak_default_channel_id']}'),('teamspeak_query_command_delay','{$cfg['teamspeak_query_command_delay']}'),('teamspeak_avatar_download_delay','{$cfg['teamspeak_avatar_download_delay']}'),('webinterface_admin_client_unique_id_list','{$cfg['webinterface_admin_client_unique_id_list']}'),('teamspeak_chatcommand_prefix','{$cfg['teamspeak_chatcommand_prefix']}') 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']." ".sprintf($lang['wisvres'], ''); - $err_lvl = NULL; - } - - if (isset($_POST['webinterface_admin_client_unique_id_list']) && $_POST['webinterface_admin_client_unique_id_list'] != NULL) { - $cfg['webinterface_admin_client_unique_id_list'] = array_flip($_POST['webinterface_admin_client_unique_id_list']); - } - - } elseif(isset($_POST['update'])) { - echo '
    ',$lang['errcsrf'],'
    '; - rem_session_ts3(); - exit; - } - ?> +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; + } + + $monthago = time() - 2592000; + if (($user_arr = $mysqlcon->query("SELECT `uuid`,`cldbid`,`name` FROM `$dbname`.`user` WHERE `lastseen`>'{$monthago}' ORDER BY `name` ASC")->fetchAll(PDO::FETCH_ASSOC)) === false) { + $err_msg = print_r($mysqlcon->errorInfo(), true); + $err_lvl = 3; + } + + if (($channellist = $mysqlcon->query("SELECT * FROM `$dbname`.`channel` ORDER BY `pid`,`channel_order`,`channel_name` ASC")->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']])) { + $cfg['webinterface_admin_client_unique_id_list'] = ''; + if (is_array($_POST['channelid'])) { + $_POST['channelid'] = $_POST['channelid'][0]; + } + + if (isset($_POST['webinterface_admin_client_unique_id_list']) && $_POST['webinterface_admin_client_unique_id_list'] != null) { + $cfg['webinterface_admin_client_unique_id_list'] = implode(',', $_POST['webinterface_admin_client_unique_id_list']); + } + + if (isset($_POST['teamspeak_host_address']) && $_POST['teamspeak_host_address'] != null) { + $cfg['teamspeak_host_address'] = preg_replace('/\s/', '', $_POST['teamspeak_host_address']); + } else { + $cfg['teamspeak_host_address'] = ''; + } + $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'] = 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['channelid']; + $cfg['teamspeak_query_command_delay'] = $_POST['teamspeak_query_command_delay']; + $cfg['teamspeak_avatar_download_delay'] = $_POST['teamspeak_avatar_download_delay']; + if (isset($_POST['teamspeak_chatcommand_prefix']) && $_POST['teamspeak_chatcommand_prefix'] != null) { + $cfg['teamspeak_chatcommand_prefix'] = htmlspecialchars($_POST['teamspeak_chatcommand_prefix'], ENT_QUOTES); + } else { + $cfg['teamspeak_chatcommand_prefix'] = '!'; + } + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('teamspeak_host_address','{$cfg['teamspeak_host_address']}'),('teamspeak_query_encrypt_switch','{$cfg['teamspeak_query_encrypt_switch']}'),('teamspeak_query_port','{$cfg['teamspeak_query_port']}'),('teamspeak_voice_port','{$cfg['teamspeak_voice_port']}'),('teamspeak_query_user','{$cfg['teamspeak_query_user']}'),('teamspeak_query_pass','{$cfg['teamspeak_query_pass']}'),('teamspeak_query_nickname','{$cfg['teamspeak_query_nickname']}'),('teamspeak_default_channel_id','{$cfg['teamspeak_default_channel_id']}'),('teamspeak_query_command_delay','{$cfg['teamspeak_query_command_delay']}'),('teamspeak_avatar_download_delay','{$cfg['teamspeak_avatar_download_delay']}'),('webinterface_admin_client_unique_id_list','{$cfg['webinterface_admin_client_unique_id_list']}'),('teamspeak_chatcommand_prefix','{$cfg['teamspeak_chatcommand_prefix']}') 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'].' '.sprintf($lang['wisvres'], '
    '); + $err_lvl = null; + } + + if (isset($_POST['webinterface_admin_client_unique_id_list']) && $_POST['webinterface_admin_client_unique_id_list'] != null) { + $cfg['webinterface_admin_client_unique_id_list'] = array_flip($_POST['webinterface_admin_client_unique_id_list']); + } + } elseif (isset($_POST['update'])) { + echo '
    ',$lang['errcsrf'],'
    '; + rem_session_ts3(); + exit; + } + ?>
    - +

    - +

    - +
    @@ -98,11 +105,11 @@
    - '; - } else { - echo ''; - } ?> + '; + } else { + echo ''; + } ?>
    @@ -173,9 +180,9 @@
    - +
     
    @@ -183,15 +190,33 @@
    @@ -210,30 +235,38 @@
    - +
     
    - " minlength="1" maxlength="30" required> +
    - +
    @@ -256,10 +289,10 @@ @@ -272,10 +305,10 @@ @@ -288,10 +321,10 @@ @@ -304,10 +337,10 @@ @@ -320,10 +353,10 @@ @@ -336,10 +369,10 @@ @@ -352,10 +385,10 @@ @@ -368,10 +401,10 @@ @@ -384,10 +417,10 @@ @@ -400,10 +433,10 @@ @@ -416,10 +449,10 @@ @@ -432,10 +465,10 @@ @@ -457,6 +490,7 @@ - \ No newline at end of file From b595f33847dcfa108fd46c592863eb07ba88057a Mon Sep 17 00:00:00 2001 From: Sebi94nbg Date: Sun, 9 Jul 2023 15:34:25 +0200 Subject: [PATCH 08/10] Apply PHP-CS-Fixer code-style to `index.php` --- index.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.php b/index.php index b125c42..b7a0bfc 100644 --- a/index.php +++ b/index.php @@ -1,8 +1,8 @@ - \ No newline at end of file + Date: Sun, 9 Jul 2023 15:34:34 +0200 Subject: [PATCH 09/10] Apply PHP-CS-Fixer code-style to `install.php` --- install.php | 1017 +++++++++++++++++++++++++++------------------------ 1 file changed, 540 insertions(+), 477 deletions(-) diff --git a/install.php b/install.php index c244bd3..fa0132c 100644 --- a/install.php +++ b/install.php @@ -1,11 +1,11 @@ -ï»ż + @@ -21,81 +21,86 @@
    -'; - - if(!is_writable('./other/dbconfig.php')) { - $err_msg = $lang['isntwicfg']; - $err_lvl = 2; - } else { - $count = 1; - $stmt = $mysqlcon->query('SHOW DATABASES'); - while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { - if ($row['Database'] == $dbname) { - $dbExists = true; - break; - } - } - if ($dbExists) { - if(($mysqlcon->exec("DROP DATABASE `$dbname`")) === false) { } - } - - if($mysqlcon->exec("CREATE DATABASE `$dbname`") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`user` ( +?>'; + + if (! is_writable('./other/dbconfig.php')) { + $err_msg = $lang['isntwicfg']; + $err_lvl = 2; + } else { + $count = 1; + $stmt = $mysqlcon->query('SHOW DATABASES'); + while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { + if ($row['Database'] == $dbname) { + $dbExists = true; + break; + } + } + if ($dbExists) { + if (($mysqlcon->exec("DROP DATABASE `$dbname`")) === false) { + } + } + + if ($mysqlcon->exec("CREATE DATABASE `$dbname`") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`user` ( `uuid` 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', @@ -115,25 +120,29 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms `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 { - if($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - if($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`groups` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } else { + if ($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + if ($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + if ($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`groups` ( `sgid` int(10) 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', @@ -141,54 +150,61 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms `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++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`cfg_params` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`cfg_params` ( `param` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `value` varchar(21588) 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`.`server_usage` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`server_usage` ( `timestamp` int(10) UNSIGNED NOT NULL default '0', `clients` smallint(5) UNSIGNED NOT NULL default '0', `channel` smallint(5) UNSIGNED NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } else { - if($mysqlcon->exec("CREATE INDEX `serverusage_timestamp` ON `$dbname`.`server_usage` (`timestamp`)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`user_snapshot` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } else { + if ($mysqlcon->exec("CREATE INDEX `serverusage_timestamp` ON `$dbname`.`server_usage` (`timestamp`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`user_snapshot` ( `id` tinyint(3) UNSIGNED NOT NULL default '0', `cldbid` int(10) UNSIGNED NOT NULL default '0', `count` int(10) UNSIGNED NOT NULL default '0', `idle` int(10) UNSIGNED NOT NULL default '0', PRIMARY KEY (`id`,`cldbid`) - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } else { - if($mysqlcon->exec("CREATE INDEX `snapshot_id` ON `$dbname`.`user_snapshot` (`id`)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - if($mysqlcon->exec("CREATE INDEX `snapshot_cldbid` ON `$dbname`.`user_snapshot` (`cldbid`)") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_server` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } else { + if ($mysqlcon->exec("CREATE INDEX `snapshot_id` ON `$dbname`.`user_snapshot` (`id`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + if ($mysqlcon->exec("CREATE INDEX `snapshot_cldbid` ON `$dbname`.`user_snapshot` (`cldbid`)") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_server` ( `total_user` int(10) NOT NULL default '0', `total_online_time` bigint(13) NOT NULL default '0', `total_online_month` bigint(11) NOT NULL default '0', @@ -243,12 +259,13 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms `user_week` int(10) NOT NULL default '0', `user_month` int(10) NOT NULL default '0', `user_quarter` int(10) NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_user` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_user` ( `uuid` char(28) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `active_day` mediumint(8) UNSIGNED NOT NULL default '0', `active_month` mediumint(8) UNSIGNED NOT NULL default '0', @@ -266,44 +283,49 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms `last_calculated` int(10) UNSIGNED NOT NULL default '0', `removed` tinyint(1) NOT NULL default '0', `total_connections` MEDIUMINT(8) UNSIGNED NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("INSERT INTO `$dbname`.`stats_server` SET `total_user`='9999'") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`admin_addtime` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`stats_server` SET `total_user`='9999'") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`admin_addtime` ( `uuid` 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` ( + );") === 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(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++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`job_check` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`job_check` ( `job_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `timestamp` int(10) UNSIGNED NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`) VALUES + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`job_check` (`job_name`) VALUES ('calc_donut_chars'), ('calc_server_stats'), ('calc_user_lastscan'), @@ -331,55 +353,61 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms ('runtime_check'), ('update_channel'), ('update_groups') - ;") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_nations` ( + ;") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_nations` ( `nation` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `count` smallint(5) UNSIGNED NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_versions` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_versions` ( `version` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `count` smallint(5) UNSIGNED NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_platforms` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`stats_platforms` ( `platform` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, `count` smallint(5) UNSIGNED NOT NULL default '0' - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } else { - if($mysqlcon->exec("INSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } else { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`stats_platforms` (`platform`,`count`) VALUES ('Windows',0), ('Android',0), ('OSX',0), ('iOS',0), ('Linux',0) - ;") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`addons_config` ( + ;") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`addons_config` ( `param` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci UNIQUE, `value` varchar(16000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - $channelinfo_desc = $mysqlcon->quote('[CENTER][B][SIZE=15]User Toplist (last week)[/SIZE][/B][/CENTER] + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + $channelinfo_desc = $mysqlcon->quote('[CENTER][B][SIZE=15]User Toplist (last week)[/SIZE][/B][/CENTER] [SIZE=11][B]1st[/B] [URL=client://0/{$CLIENT_UNIQUE_IDENTIFIER_1}]{$CLIENT_NICKNAME_1}[/URL][/SIZE][SIZE=7] {if {$CLIENT_ONLINE_STATUS_1} === \'Online\'}[COLOR=GREEN](Online)[/COLOR] currently in channel [URL=channelid://{$CLIENT_CURRENT_CHANNEL_ID_1}]{$CLIENT_CURRENT_CHANNEL_NAME_1}[/URL]{else}[COLOR=RED](Offline)[/COLOR] @@ -432,9 +460,9 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms [SIZE=8]Last week active: {$CLIENT_ACTIVE_TIME_LAST_WEEK_10}; reached Servergroup: [IMG]https://domain.com/ranksystem/{$CLIENT_CURRENT_RANK_GROUP_ICON_URL_10}[/IMG] {$CLIENT_CURRENT_RANK_GROUP_NAME_10}[/SIZE] -[SIZE=6]Updated: {$LAST_UPDATE_TIME}[/SIZE]', ENT_QUOTES); - - if($mysqlcon->exec("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES +[SIZE=6]Updated: {$LAST_UPDATE_TIME}[/SIZE]', ENT_QUOTES); + + if ($mysqlcon->exec("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_active','0'), ('assign_groups_name',''), ('assign_groups_excepted_groupids',''), @@ -447,123 +475,132 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms ('channelinfo_toplist_channelid','0'), ('channelinfo_toplist_modus','1'), ('channelinfo_toplist_lastupdate','0') - ;") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`addon_assign_groups` ( + ;") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`addon_assign_groups` ( `uuid` 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` ( + );") === 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 NOT NULL - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($mysqlcon->exec("CREATE TABLE `$dbname`.`channel` ( + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($mysqlcon->exec("CREATE TABLE `$dbname`.`channel` ( `cid` int(10) UNSIGNED NOT NULL default '0' PRIMARY KEY, `pid` int(10) UNSIGNED NOT NULL default '0', `channel_order` int(10) UNSIGNED NOT NULL default '0', `channel_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL - );") === false) { - $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'
    '; $err_lvl = 2; - $count++; - } - - if($count == 1) { - $err_msg = sprintf($lang['instdbsuc'], $dbname); $err_lvl = NULL; - $install_webuser = 1; - - $dbconfig = fopen('./other/dbconfig.php','w'); - if(!fwrite($dbconfig, $newconfig)) { - $err_msg = $lang['isntwicfg']; - $err_lvl = 2; - } - fclose($dbconfig); - } - } -} - -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',get_cfg_var('cfg_file_path')); $err_lvl = 3; - } else { - $dboptions = array(); - } - } else { - $dboptions = array(); - } - - if(!isset($err_msg)) { - $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].'; dbname='.$_POST['dbname'].';charset=utf8mb4'; - $dbserver2 = $_POST['dbtype'].':host='.$_POST['dbhost'].';charset=utf8mb4'; - $dbexists = 0; - try { - $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass'], $dboptions); - $dbexists = 1; - } catch (PDOException $e) { - try { - $mysqlcon = new PDO($dbserver2, $_POST['dbuser'], $_POST['dbpass'], $dboptions); - } catch (PDOException $e) { - $err_msg = htmlspecialchars($lang['dbconerr'].$e->getMessage()); $err_lvl = 1; - } - } - - if(!is_writable('./other/dbconfig.php')) { - $err_msg = $lang['isntwicfg']; - $err_lvl = 2; - } - } - - if(!isset($err_msg)) { - if(isset($_POST['installchecked'])) { - install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); - } elseif($dbexists == 1) { - $err_msg = sprintf($lang['insterr1'],$_POST['dbname']); - $err_lvl = 2; - $show_warning = 1; - } else { - install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); - } - } -} - -if(isset($_POST['confweb'])) { - require_once('other/dbconfig.php'); - $user=$_POST['user']; - $pass=password_hash($_POST['pass'], PASSWORD_DEFAULT); - $logpath = addslashes(__DIR__.DIRECTORY_SEPARATOR."logs".DIRECTORY_SEPARATOR); - $dbname = $db['dbname']; - $dbserver = $db['type'].':host='.$db['host'].'; dbname=`'.$db['dbname'].'`;charset=utf8mb4'; - $dbserver2 = $db['type'].':host='.$db['host']; - try { - $mysqlcon = new PDO($dbserver, $db['user'], $db['pass']); - } catch (PDOException $e) { - try { - $mysqlcon = new PDO($dbserver2, $db['user'], $db['pass']); - } catch (PDOException $e) { - $err_msg = htmlspecialchars($lang['dbconerr'].$e->getMessage()); $err_lvl = 1; - } - } - if(!isset($err_lvl) || $err_lvl != 1) { - $dateformat = $mysqlcon->quote("%a days, %h hours, %i mins, %s secs"); - $nextupinfomsg1 = $mysqlcon->quote("Your next rank up will be in %1\$s days, %2\$s hours, %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B]."); - $nextupinfomsg2 = $mysqlcon->quote("You have already reached the highest rank."); - $nextupinfomsg3 = $mysqlcon->quote("You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."); - $servernews = $mysqlcon->quote("Message
    This is an example Message.
    Change this Message inside the webinterface."); - $rankupmsg = $mysqlcon->quote('Hey, you reached a higher rank, since you already connected for %1$s days, %2$s hours and %3$s minutes to our TS3 server.[B]Keep it up![/B] ;-) '); - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES + );") === false) { + $err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true).'
    '; + $err_lvl = 2; + $count++; + } + + if ($count == 1) { + $err_msg = sprintf($lang['instdbsuc'], $dbname); + $err_lvl = null; + $install_webuser = 1; + + $dbconfig = fopen('./other/dbconfig.php', 'w'); + if (! fwrite($dbconfig, $newconfig)) { + $err_msg = $lang['isntwicfg']; + $err_lvl = 2; + } + fclose($dbconfig); + } + } +} + +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', get_cfg_var('cfg_file_path')); + $err_lvl = 3; + } else { + $dboptions = []; + } + } else { + $dboptions = []; + } + + if (! isset($err_msg)) { + $dbserver = $_POST['dbtype'].':host='.$_POST['dbhost'].'; dbname='.$_POST['dbname'].';charset=utf8mb4'; + $dbserver2 = $_POST['dbtype'].':host='.$_POST['dbhost'].';charset=utf8mb4'; + $dbexists = 0; + try { + $mysqlcon = new PDO($dbserver, $_POST['dbuser'], $_POST['dbpass'], $dboptions); + $dbexists = 1; + } catch (PDOException $e) { + try { + $mysqlcon = new PDO($dbserver2, $_POST['dbuser'], $_POST['dbpass'], $dboptions); + } catch (PDOException $e) { + $err_msg = htmlspecialchars($lang['dbconerr'].$e->getMessage()); + $err_lvl = 1; + } + } + + if (! is_writable('./other/dbconfig.php')) { + $err_msg = $lang['isntwicfg']; + $err_lvl = 2; + } + } + + if (! isset($err_msg)) { + if (isset($_POST['installchecked'])) { + install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); + } elseif ($dbexists == 1) { + $err_msg = sprintf($lang['insterr1'], $_POST['dbname']); + $err_lvl = 2; + $show_warning = 1; + } else { + install($_POST['dbtype'], $_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $lang, $mysqlcon, $err_msg, $err_lvl, $install_webuser); + } + } +} + +if (isset($_POST['confweb'])) { + require_once 'other/dbconfig.php'; + $user = $_POST['user']; + $pass = password_hash($_POST['pass'], PASSWORD_DEFAULT); + $logpath = addslashes(__DIR__.DIRECTORY_SEPARATOR.'logs'.DIRECTORY_SEPARATOR); + $dbname = $db['dbname']; + $dbserver = $db['type'].':host='.$db['host'].'; dbname=`'.$db['dbname'].'`;charset=utf8mb4'; + $dbserver2 = $db['type'].':host='.$db['host']; + try { + $mysqlcon = new PDO($dbserver, $db['user'], $db['pass']); + } catch (PDOException $e) { + try { + $mysqlcon = new PDO($dbserver2, $db['user'], $db['pass']); + } catch (PDOException $e) { + $err_msg = htmlspecialchars($lang['dbconerr'].$e->getMessage()); + $err_lvl = 1; + } + } + if (! isset($err_lvl) || $err_lvl != 1) { + $dateformat = $mysqlcon->quote('%a days, %h hours, %i mins, %s secs'); + $nextupinfomsg1 = $mysqlcon->quote('Your next rank up will be in %1$s days, %2$s hours, %3$s minutes and %4$s seconds. The next servergroup you will reach is [B]%5$s[/B].'); + $nextupinfomsg2 = $mysqlcon->quote('You have already reached the highest rank.'); + $nextupinfomsg3 = $mysqlcon->quote('You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.'); + $servernews = $mysqlcon->quote('Message
    This is an example Message.
    Change this Message inside the webinterface.'); + $rankupmsg = $mysqlcon->quote('Hey, you reached a higher rank, since you already connected for %1$s days, %2$s hours and %3$s minutes to our TS3 server.[B]Keep it up![/B] ;-) '); + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_cmdline_sec_switch', '1'), ('default_date_format', {$dateformat}), ('default_header_contenttyp', '1'), @@ -670,142 +707,164 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms ('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'].'

    '; - $err_msg = $lang['isntwiusr2'].'

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

    '; - if(!unlink('./install.php')) { - $err_msg .= $lang['isntwidel']; - } - $install_finished = 1; $err_lvl = NULL; - } - } -} - -if (!isset($_POST['install']) && !isset($_POST['confweb'])) { - unset($err_msg); - unset($err_lvl); - $err_msg = ''; - if(!is_writable('./other/dbconfig.php')) { - $err_msg = $lang['isntwicfg']; $err_lvl = 3; - } - - $file_err_count=0; - $file_err_msg = ''; - try { - $scandir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__)); - $files = array(); - foreach ($scandir as $object) { - if(!strstr($object, '/.') && !strstr($object, '\.')) { - if (!$object->isDir()) { - if(!is_writable($object->getPathname())) { - $file_err_msg .= "File is not writeable ".$object."
    "; - $file_err_count++; - } - } else { - if(!is_writable($object->getPathname())) { - $file_err_msg .= "Folder is not writeable ".$object."
    "; - $file_err_count++; - } - } - } - } - } catch (Exception $e) { - $err_msg .= "File Permissions Error: ".$e->getCode()." ".$e->getMessage(); - $err_lvl = 3; - } - - if($file_err_count!=0) { - $err_msg = "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):
    chown -R www-data:www-data ".__DIR__."

    Also 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):
    chmod -R 640 ".__DIR__."


    List of concerned files/folders:
    "; - $err_lvl = 3; - $err_msg .= $file_err_msg; - } - - if(!class_exists('PDO')) { - $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', '<')) { - $err_msg = sprintf($lang['insterr4'],phpversion()); $err_lvl = 3; - } - if(!function_exists('simplexml_load_file')) { - $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())) { - $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())) { - $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())) { - $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())) { - $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); - } -} - -if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 || $err_lvl == 2 || $err_lvl == 3) { - if(isset($show_warning)) { - $dbhost = $_POST['dbhost']; - $dbname = $_POST['dbname']; - $dbuser = $_POST['dbuser']; - $dbpass = $_POST['dbpass']; - } 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 = ""; - $dbuser = ""; - $dbpass = ""; - } - ?> + ;") === false) { + $err_msg = $lang['isntwidbmsg'].$mysqlcon->errorCode().' '.print_r($mysqlcon->errorInfo(), true); + $err_lvl = 2; + } else { + $err_msg = $lang['isntwiusr'].'

    '; + $err_msg = $lang['isntwiusr2'].'

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

    '; + if (! unlink('./install.php')) { + $err_msg .= $lang['isntwidel']; + } + $install_finished = 1; + $err_lvl = null; + } + } +} + +if (! isset($_POST['install']) && ! isset($_POST['confweb'])) { + unset($err_msg); + unset($err_lvl); + $err_msg = ''; + if (! is_writable('./other/dbconfig.php')) { + $err_msg = $lang['isntwicfg']; + $err_lvl = 3; + } + + $file_err_count = 0; + $file_err_msg = ''; + try { + $scandir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__)); + $files = []; + foreach ($scandir as $object) { + if (! strstr($object, '/.') && ! strstr($object, '\.')) { + if (! $object->isDir()) { + if (! is_writable($object->getPathname())) { + $file_err_msg .= 'File is not writeable '.$object.'
    '; + $file_err_count++; + } + } else { + if (! is_writable($object->getPathname())) { + $file_err_msg .= 'Folder is not writeable '.$object.'
    '; + $file_err_count++; + } + } + } + } + } catch (Exception $e) { + $err_msg .= 'File Permissions Error: '.$e->getCode().' '.$e->getMessage(); + $err_lvl = 3; + } + + if ($file_err_count != 0) { + $err_msg = '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):
    chown -R www-data:www-data '.__DIR__.'

    Also 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):
    chmod -R 640 '.__DIR__.'


    List of concerned files/folders:
    '; + $err_lvl = 3; + $err_msg .= $file_err_msg; + } + + if (! class_exists('PDO')) { + $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', '<')) { + $err_msg = sprintf($lang['insterr4'], phpversion()); + $err_lvl = 3; + } + if (! function_exists('simplexml_load_file')) { + $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())) { + $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())) { + $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())) { + $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())) { + $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); + } +} + +if ((! isset($_POST['install']) && ! isset($_POST['confweb'])) || $err_lvl == 1 || $err_lvl == 2 || $err_lvl == 3) { + if (isset($show_warning)) { + $dbhost = $_POST['dbhost']; + $dbname = $_POST['dbname']; + $dbuser = $_POST['dbuser']; + $dbpass = $_POST['dbpass']; + } 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 = ''; + $dbuser = ''; + $dbpass = ''; + } + ?>
    - +

    - +

    @@ -869,16 +928,16 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms
     
    - ",$lang['instdb'],""; - } else { - echo ""; - } - if(isset($show_warning)) { - echo ''; - } - ?> + ',$lang['instdb'],''; + } else { + echo ''; + } + if (isset($show_warning)) { + echo ''; + } + ?>
     
    @@ -894,10 +953,10 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms
    @@ -910,10 +969,10 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms @@ -926,10 +985,10 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms @@ -942,10 +1001,10 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms @@ -958,10 +1017,10 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms @@ -974,27 +1033,29 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms - +
    - +

    - +

    - +

     
    @@ -1031,32 +1092,34 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms
     
    - ",$lang['isntwiusrcr'],""; - } else { - echo ""; - } - ?> + ',$lang['isntwiusrcr'],''; + } else { + echo ''; + } + ?>
     
    - +
    - +
    - +