Merge pull request #60 from Haeniken/master

Russian localization and any quick fix
This commit is contained in:
Amin.MasterkinG
2021-10-05 19:28:07 +03:30
committed by GitHub
17 changed files with 175 additions and 14 deletions

View File

@@ -33,7 +33,7 @@ If you got a blank screen, You can enable `debug_mode` in the config file.
9. Vote System (4/03/2020).
10. Support HCaptcha/Recaptcha v2 (7/27/2020).
11. Support Two-Factor Authentication (2FA) (7/28/2020).
12. **Multi-Language support** (9/10/2020) (Support: 🇬🇧 English, 🇮🇷 Persian, 🇮🇹 Italian, 🇨🇳 Chinese-simplified, 🇹🇼 Chinese-traditional, 🇸🇪 Swedish, 🇫🇷 French, 🇩🇪 German, 🇪🇸 Spanish, 🇰🇷 Korean).
12. **Multi-Language support** (9/10/2020) (Support: 🇬🇧 English, 🇮🇷 Persian, 🇮🇹 Italian, 🇨🇳 Chinese-simplified, 🇹🇼 Chinese-traditional, 🇸🇪 Swedish, 🇫🇷 French, 🇩🇪 German, 🇪🇸 Spanish, 🇰🇷 Korean, 🇷🇺 Russian).
## Changelogs

5
application/config/config.php.sample Normal file → Executable file
View File

@@ -12,7 +12,7 @@ baseurl
page_title
That's your website title. Example: "My WOW Private server!"
language
Default website language (english/persian/italian/chinese-simplified/chinese-traditional/swedish/french/german/spanish/korean)
Default website language (english/persian/italian/chinese-simplified/chinese-traditional/swedish/french/german/spanish/korean/russian)
supported_langs
List of languages supported, You can remove each language you don't want!
if you want to disable language changer, Change it to: $config['supported_langs'] = false;
@@ -30,7 +30,8 @@ $config['supported_langs'] = [
'french' => 'French',
'german' => 'German',
'spanish' => 'Spanish',
'korean' => 'Korean'
'korean' => 'Korean',
'russian' => 'Russian'
];
/*===================================================================
If you see a white screen or have an issue, you can enable it to see the errors.

View File

@@ -81,6 +81,15 @@ class status
return false;
}
public static function get_top_gold($realmID)
{
$datas = database::$chars[$realmID]->select("characters", array("name", "level", "totaltime", "money"), ["ORDER" => ["money" => "DESC"], 'LIMIT' => 10]);
if (!empty($datas[0]["money"])) {
return $datas;
}
return false;
}
public static function get_top_guild_by_member($realmID)
{
$datas = database::$chars[$realmID]->query("SELECT guildid,name,leaderguid FROM guild WHERE guildid IN (SELECT guildid from guild_member GROUP by guildid ORDER by COUNT(*) DESC) LIMIT 10;")->fetchAll();
@@ -89,4 +98,4 @@ class status
}
return false;
}
}
}

View File

@@ -77,6 +77,7 @@ $language['class'] = '职业';
$language['level'] = '级别';
$language['top_players'] = '英雄榜';
$language['play_time'] = '游戏时间';
$language['gold'] = '金子';
$language['killers'] = '击杀榜';
$language['kills'] = '击杀';
$language['honor_points'] = '荣誉点数';

View File

@@ -77,6 +77,7 @@ $language['class'] = '職業';
$language['level'] = '等級';
$language['top_players'] = '英雄榜';
$language['play_time'] = '遊戲時間';
$language['gold'] = '金子';
$language['killers'] = '擊殺榜';
$language['kills'] = '擊殺';
$language['honor_points'] = '榮譽點數';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'Class';
$language['level'] = 'Level';
$language['top_players'] = 'Top Players';
$language['play_time'] = 'Play Time';
$language['gold'] = 'Gold';
$language['killers'] = 'Killers';
$language['kills'] = 'Kills';
$language['honor_points'] = 'Honor Points';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'Classe';
$language['level'] = 'Niveau';
$language['top_players'] = 'Top joueurs';
$language['play_time'] = 'Temps de jeu';
$language['gold'] = 'Or';
$language['killers'] = 'Tueurs';
$language['kills'] = 'Kills';
$language['honor_points'] = 'Points d\'honneurs';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'Klasse';
$language['level'] = 'Level';
$language['top_players'] = 'Top Spieler';
$language['play_time'] = 'Spielzeit';
$language['gold'] = 'Gold';
$language['killers'] = 'Meiste PVP kills';
$language['kills'] = 'Kills';
$language['honor_points'] = 'Ehren Punkte';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'Class';
$language['level'] = 'Level';
$language['top_players'] = 'Top Players';
$language['play_time'] = 'Play Time';
$language['gold'] = 'Oro';
$language['killers'] = 'Killers';
$language['kills'] = 'Kills';
$language['honor_points'] = 'Honor Points';

View File

@@ -77,6 +77,7 @@ $language['class'] = '클래스';
$language['level'] = '레벨';
$language['top_players'] = '상위 플레이어';
$language['play_time'] = '게임 플레이 시간';
$language['gold'] = '금';
$language['killers'] = '킬 현황';
$language['kills'] = '죽인 수';
$language['honor_points'] = '명예 포인트';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'کلاس';
$language['level'] = 'سطح';
$language['top_players'] = 'بازیکنان برتر';
$language['play_time'] = 'مدت بازی';
$language['gold'] = 'طلا';
$language['killers'] = 'قاتلین';
$language['kills'] = 'کشته ها';
$language['honor_points'] = 'هانور پوینت';

122
application/language/russian.php Executable file
View File

@@ -0,0 +1,122 @@
<?php
/**
* @author Amin Mahmoudi (MasterkinG)
* @copyright Copyright (c) 2019 - 2021, MasterkinG32. (https://masterking32.com)
* @link https://masterking32.com
* @Description : It's not masterking32 framework !
**/
$language['lang'] = 'russian';
$language['custom_css'] = '';
$language['tpl_light_custom_css'] = '';
$language['tpl_advance_custom_css'] = '';
$language['tpl_icecrown_custom_css'] = '';
$language['tpl_kaelthas_custom_css'] = '';
$language['tpl_battleforazeroth_custom_css'] = '';
// Lang changer
$language['change_lang_head'] = 'Language Changer';
$language['change_lang_form_head'] = 'Select Language';
$language['change_lang_sub'] = 'Change';
$language['welcome_to'] = 'Добро пожаловать на';
$language['welcome_message'] = 'Добро пожаловать на наш сервер, присоединяйся!';
$language['get_started'] = 'Начать';
$language['home'] = 'Домой';
$language['about'] = 'О нас';
$language['how_to_connect'] = 'Как подключиться';
$language['register'] = 'Регистрация';
$language['server_status'] = 'Статус сервера';
$language['contact'] = 'Контакты';
$language['server_information'] = 'Информация о сервере';
$language['server_type'] = 'Тип сервера';
$language['server_uptime'] = 'Стабильность';
$language['xp_rate'] = 'Рейтинг опыта';
$language['drop_rate'] = 'Рейтинг дропа';
$language['start_level'] = 'Стартовый уровень';
$language['max_level'] = 'Максимальный уровень';
$language['fixed_spells'] = 'Работоспособность заклинаний';
$language['fixed_dungeons'] = 'Работоспособность подземелий';
$language['fixed_instances'] = 'Работоспособность рейдов';
$language['edit_on'] = 'Редактировать в';
$language['server_address'] = 'Адрес сервера';
$language['realmlist'] = 'Realmlist';
$language['create_account'] = 'Создать аккаунт';
$language['create_account_tip1'] = 'Зарегистрируйте аккаунт. Он используется для как для входа в игру, так и на наш сайт. Нажмите здесь, что бы открыть страницу регистрации.';
$language['download_game'] = 'Установить клиент';
$language['create_account_tip2'] = 'Установите World of Warcraft. Вы можете скачать его (легально) отсюда: Windows или Mac. Обязательно обновитесь до нашей текущей версии - '. get_config('game_version').'. Обновления вы можете найти здесь.';
$language['setup_game'] = 'Настроить клиент';
$language['create_account_tip3'] = 'Откройте директорию "World of Warcraft". Директория по умолчанию - "C:\Program Files\World of Warcraft". Когда вы нашли её, откройте директорию под названием "Data", затем перейдите в директорию под названием enUS или enGB, в зависимости от языка вашего клиента.';
$language['change_server_address'] = 'Изменить адрес сервера';
$language['create_account_tip4'] = 'Очистите файл, и внесите в него:';
$language['server_rules'] = 'Правила сервера';
$language['read_before_register'] = 'ПРОЧТИТЕ ПЕРЕД РЕГИСТРАЦИЕЙ';
$language['read_our_rules'] = 'Пожалуйста, прочтите наши правила.';
$language['rule'] = 'Правила';
$language['create_new_game_account'] = 'Создать новый игровой аккаунт.';
$language['email'] = 'Email';
$language['username'] = 'Имя пользователя';
$language['password'] = 'Пароль';
$language['retype_password'] = 'Подтвердите пароль';
$language['captcha'] = 'Проверочный код';
$language['change_password'] = 'Изменить пароль';
$language['restore_password'] = 'Восстановить пароль';
$language['vote_for_us'] = 'Голосуйте за нас';
$language['two_factor_authentication'] = 'Двухфакторная аутентификация';
$language['two_factor_authentication_tip1'] = 'Установите Google Authenticator.';
$language['two_factor_authentication_enable'] = 'Включить 2FA';
$language['close'] = 'Отменить';
$language['vote'] = 'Голосование';
$language['old_password'] = 'Старый пароль';
$language['online_players'] = 'Игроки в сети';
$language['online_players_msg1'] = 'Ограничено отображением 49 игроков - Игроки в сети:';
$language['online_players_msg2'] = 'Сейчас нет игроков в сети';
$language['name'] = 'Имя';
$language['race'] = 'Раса';
$language['class'] = 'Класс';
$language['level'] = 'Уровень';
$language['top_players'] = 'Топ игроки';
$language['play_time'] = 'Время игры';
$language['gold'] = 'Золото';
$language['killers'] = 'Убийцы';
$language['kills'] = 'Победы';
$language['honor_points'] = 'Очки чести';
$language['honor_level'] = 'Уровень чести';
$language['arena_points'] = 'Очки арены';
$language['arena_teams'] = 'Команды арены';
$language['rank'] = 'Ранг';
$language['rating'] = 'Рейтинг';
$language['captain_name'] = 'Капитан команды';
$language['frequently_questions'] = 'Часто задаваемые вопросы';
$language['question'] = 'Вопрос';
$language['answer'] = 'Ответ';
$language['location'] = 'Местонахождение';
$language['call'] = 'Телефон';
$language['restore_account_password'] = 'Восстановить пароль от аккаунта';
$language['about_server'] = 'О сервере';
$language['game_version'] = 'Версия клиента';
$language['server_patch'] = 'Патч для игры';
$language['download'] = 'Загрузить';
$language['use_valid_email'] = 'Используйте допустимые символы для email.';
$language['use_valid_username'] = 'Используйте допустимые символы для имени пользователя.';
$language['old_password_not_valid'] = 'Старый пароль неверен.';
$language['passwords_not_equal'] = 'Пароли не совпадают.';
$language['passwords_length'] = 'Пароль слишком длинный.';
$language['username_length'] = 'Имя пользователя слишком длинное.';
$language['username_or_email_exists'] = 'Такое имя пользователя или email уже существует.';
$language['email_exists'] = 'Этот email-адрес уже существует.';
$language['username_exists'] = 'Это имя пользователя уже существует.';
$language['account_created'] = 'Ваш аккаунт был создан.';
$language['error_try_again'] = 'ОШИБКА! Пожалуйста, попробуйте снова!';
$language['password_changed'] = 'Пароль был изменен.';
$language['email_not_correct'] = 'Неверный email-адрес.';
$language['username_not_correct'] = 'Неверное имя пользователя.';
$language['check_your_email'] = 'Проверьте вашу электронную почту. (Не забудьте так же проверить директорию СПАМ).';
$language['account_is_not_valid'] = 'Неверный аккаунт.';
$language['vote_site_not_valid'] = 'Неверный сайт голосования!';
$language['you_already_voted'] = 'Вы уже голосовали на этом сайте.';
$language['captcha_not_valid'] = 'Неверный код.';
$language['hcaptcha_not_valid'] = 'Проверка HCaptcha не пройдена.';
$language['recaptcha_not_valid'] = 'Проверка ReCaptcha не пройдена.';
$language['captcha_required'] = 'Проверка не пройдена.';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'Clase';
$language['level'] = 'Nivel';
$language['top_players'] = 'Jugadores top';
$language['play_time'] = 'Tiempo de juego';
$language['gold'] = 'Oro';
$language['killers'] = 'Asesinos';
$language['kills'] = 'Matados';
$language['honor_points'] = 'Puntos de honor';

View File

@@ -77,6 +77,7 @@ $language['class'] = 'Klass';
$language['level'] = 'Level';
$language['top_players'] = 'Topp Spelare';
$language['play_time'] = 'Speltid';
$language['gold'] = 'Guld';
$language['killers'] = 'Killers';
$language['kills'] = 'Kills';
$language['honor_points'] = 'Honor Points';

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -38,7 +38,7 @@
</head>
<body>
<section id="hero"
style="background-image: url('<?php echo $antiXss->xss_clean(get_config("baseurl")); ?>/template/<?php echo $antiXss->xss_clean(get_config("template")); ?>/assets/img/wow-bg/<?php echo get_config('expansion') . '-' . rand(1, 6); ?>.jpg')">
style="background-image: url('<?php echo $antiXss->xss_clean(get_config("baseurl")); ?>/template/<?php echo $antiXss->xss_clean(get_config("template")); ?>/assets/img/wow-bg/<?php echo get_config('expansion') . '-' . rand(1, 6); ?>.jpg');background-size: cover;">
<div class="hero-container">
<a href="" class="hero-logo" data-aos="zoom-in"><img style="width: 250px; max-width: 80%;"
src="<?php echo $antiXss->xss_clean(get_config("baseurl")); ?>/template/<?php echo $antiXss->xss_clean(get_config("template")); ?>/assets/img/logo-1.png"

37
template/advance/tpl/main.php Normal file → Executable file
View File

@@ -26,24 +26,24 @@ require_once 'rules.php';
success_msg(); //Display message. ?>
<div class="input-group">
<span class="input-group"><?php elang('email'); ?></span>
<input type="email" class="form-control" placeholder="<?php elang('email'); ?>"
<input type="email" class="form-control" required placeholder="<?php elang('email'); ?>"
name="email">
</div>
<?php if (!get_config('battlenet_support')) { ?>
<div class="input-group">
<span class="input-group"><?php elang('username'); ?></span>
<input type="text" class="form-control" placeholder="<?php elang('username'); ?>"
<input type="text" class="form-control" pattern="[A-Za-z]{2,16}" required placeholder="<?php elang('username'); ?>"
name="username">
</div>
<?php } ?>
<div class="input-group">
<span class="input-group"><?php elang('password'); ?></span>
<input type="password" class="form-control" placeholder="<?php elang('password'); ?>"
<input type="password" class="form-control" minlength="4" maxlength="16" required placeholder="<?php elang('password'); ?>"
name="password">
</div>
<div class="input-group">
<span class="input-group"><?php elang('retype_password'); ?></span>
<input type="password" class="form-control" placeholder="<?php elang('retype_password'); ?>"
<input type="password" class="form-control" minlength="4" maxlength="16" required placeholder="<?php elang('retype_password'); ?>"
name="repassword">
</div>
<?php echo GetCaptchaHTML(); ?>
@@ -324,7 +324,7 @@ require_once 'rules.php';
if (!is_array($data2show)) {
echo "<span style='color: #0d99e5;'>" . lang('online_players_msg2') . "</span>";
} else {
echo '<table class="table table-striped"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th><th scope="col">' . lang('play_time') . '</th></tr></thead><tbody>';
echo '<table class="table table-striped table-responsive-sm"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th><th scope="col">' . lang('play_time') . '</th></tr></thead><tbody>';
$m = 1;
foreach ($data2show as $one_char) {
if (empty($one_char['name'])) {
@@ -337,13 +337,32 @@ require_once 'rules.php';
echo "</div><div class=\"modal-footer\"><button type=\"button\" class=\"btn btn-danger\" data-dismiss=\"modal\">Close</button></div></div></div></div>";
$i++;
$data2show = status::get_top_gold($onerealm['realmid']);
echo "<button type=\"button\" class=\"btn btn-info\" data-toggle=\"modal\" data-aos=\"fade-up\" data-aos-delay=\"100\"data-target=\"#modal-id$i\">" . lang('gold') . "</button><div class=\"modal\" id=\"modal-id$i\"><div class=\"modal-dialog modal-lg\"><div class=\"modal-content\">
<div class=\"modal-header\"><h4 class=\"modal-title\">" . lang('top_players') . " - " . lang('gold') . "</h4><button type=\"button\" class=\"close\" data-dismiss=\"modal\">&times;</button></div><div class=\"modal-body\">";
if (!is_array($data2show)) {
echo "<span style='color: #0d99e5;'>" . lang('online_players_msg2') . "</span>";
} else {
echo '<table class="table table-striped table-responsive-sm"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('level') . '</th> <th scope="col">' . lang('play_time') . '</th><th scope="col">' . lang('gold') . '</th></tr></thead><tbody>';
$m = 1;
foreach ($data2show as $one_char) {
if (empty($one_char['name'])) {
continue;
}
echo '<tr><td>' . $m++ . '<th scope="row">' . $antiXss->xss_clean($one_char['name']) . '</th><td>' . $antiXss->xss_clean($one_char["level"]) . '</td><td>' . $antiXss->xss_clean(get_human_time_from_sec($one_char['totaltime'])) . '</td><td>' . $antiXss->xss_clean(substr($one_char["money"], 0, -4)) . '<img src=\'' . get_config("baseurl") . '/template/' . $antiXss->xss_clean(get_config("template")) . '/images/goldcoin.png\'></td></tr>';
}
echo '</table>';
}
echo "</div><div class=\"modal-footer\"><button type=\"button\" class=\"btn btn-danger\" data-dismiss=\"modal\">Close</button></div></div></div></div>";
$i++;
$data2show = status::get_top_killers($onerealm['realmid']);
echo "<button type=\"button\" class=\"btn btn-info\" data-toggle=\"modal\" data-aos=\"fade-up\" data-aos-delay=\"100\"data-target=\"#modal-id$i\">" . lang('killers') . "</button><div class=\"modal\" id=\"modal-id$i\"><div class=\"modal-dialog modal-lg\"><div class=\"modal-content\">
<div class=\"modal-header\"><h4 class=\"modal-title\">" . lang('top_players') . " - " . lang('killers') . "</h4><button type=\"button\" class=\"close\" data-dismiss=\"modal\">&times;</button></div><div class=\"modal-body\">";
if (!is_array($data2show)) {
echo "<span style='color: #0d99e5;'>" . lang('online_players_msg2') . "</span>";
} else {
echo '<table class="table table-striped"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th><th scope="col">' . lang('kills') . '</th></tr></thead><tbody>';
echo '<table class="table table-striped table-responsive-sm"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th><th scope="col">' . lang('kills') . '</th></tr></thead><tbody>';
$m = 1;
foreach ($data2show as $one_char) {
if (empty($one_char['name'])) {
@@ -362,7 +381,7 @@ require_once 'rules.php';
if (!is_array($data2show)) {
echo "<span style='color: #0d99e5;'>" . lang('online_players_msg2') . "</span>";
} else {
echo '<table class="table table-striped"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('rank') . '</th>';
echo '<table class="table table-striped table-responsive-sm"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th>';
if (get_config('expansion') >= 6) {
echo '<th scope="col">' . lang('honor_level') . '</th>';
@@ -396,7 +415,7 @@ require_once 'rules.php';
if (!is_array($data2show)) {
echo "<span style='color: #0d99e5;'>" . lang('online_players_msg2') . "</span>";
} else {
echo '<table class="table table-striped"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th><th scope="col">' . lang('arena_points') . '</th></tr></thead><tbody>';
echo '<table class="table table-striped table-responsive-sm"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('race') . '</th> <th scope="col">' . lang('class') . '</th><th scope="col">' . lang('level') . '</th><th scope="col">' . lang('arena_points') . '</th></tr></thead><tbody>';
$m = 1;
foreach ($data2show as $one_char) {
if (empty($one_char['name'])) {
@@ -415,7 +434,7 @@ require_once 'rules.php';
if (!is_array($data2show)) {
echo "<span style='color: #0d99e5;'>" . lang('online_players_msg2') . "</span>";
} else {
echo '<table class="table table-striped"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('rating') . '</th><th scope="col">' . lang('captain_name') . '</th></tr></thead><tbody>';
echo '<table class="table table-striped table-responsive-sm"><thead><tr><th scope="col">' . lang('rank') . '</th><th scope="col">' . lang('name') . '</th><th scope="col">' . lang('rating') . '</th><th scope="col">' . lang('captain_name') . '</th></tr></thead><tbody>';
$m = 1;
foreach ($data2show as $one_char) {
$character_data = status::get_character_by_guid($onerealm['realmid'], $one_char['captainGuid']);