881 lines
69 KiB
JSON
881 lines
69 KiB
JSON
{
|
||
"common": {
|
||
"error_title": "Ошибка",
|
||
"no_data_title": "Нет данных",
|
||
"access_denied_title": "Доступ запрещён",
|
||
"access_denied_desc": "Этот сервер заблокирован.",
|
||
"no_players_selected": "Игроки не выбраны. Выберите хотя бы одного игрока.",
|
||
"must_use_in_server": "Эта команда доступна только на сервере.",
|
||
"could_not_resolve_channel": "Не удалось определить выбранный канал.",
|
||
"failed_update_setting": "❌ Не удалось обновить настройку.",
|
||
"configuration_not_found": "Конфигурация не найдена.",
|
||
"no_channel_selected": "Канал не выбран.",
|
||
"no_selection_received": "Выбор не получен.",
|
||
"database_error": "❌ Ошибка базы данных: {error}",
|
||
"enabled": "Включено",
|
||
"disabled": "Отключено",
|
||
"not_configured": "Не настроено",
|
||
"unknown": "Неизвестно",
|
||
"rating_field": "Рейтинг",
|
||
"battles_field": "Бои",
|
||
"wins_field": "Победы",
|
||
"losses_field": "Поражения",
|
||
"win_rate_field": "Процент побед",
|
||
"kills_field": "Уничтожения",
|
||
"deaths_field": "Гибели",
|
||
"kd_field": "K/D",
|
||
"members_field": "Участники",
|
||
"placement_field": "Место",
|
||
"points_field": "Очки",
|
||
"ground_kills_field": "Наземные уничтожения",
|
||
"air_kills_field": "Воздушные уничтожения",
|
||
"total_kills_field": "Всего уничтожений",
|
||
"assists_field": "Помощь",
|
||
"captures_field": "Захваты",
|
||
"none_option": "Нет"
|
||
},
|
||
"buttons": {
|
||
"skip": "Пропустить",
|
||
"previous": "Назад",
|
||
"next": "Далее",
|
||
"prev": "Назад",
|
||
"prev_arrow": "◀ Назад",
|
||
"next_arrow": "Далее ▶",
|
||
"prev_arrow_only": "◀",
|
||
"next_arrow_only": "▶",
|
||
"generate_chart": "📊 Построить график",
|
||
"show_graph": "Показать график",
|
||
"view_player_stats": "📊 Статистика игроков",
|
||
"compare_nearby": "📈 Сравнить соседние полки",
|
||
"confirm_swap": "Да, заменить",
|
||
"cancel_swap": "Нет, оставить прежний",
|
||
"set_squadron": "Установить полк",
|
||
"same_as_logs": "Как в логах",
|
||
"require_password": "🔒 Требовать пароль",
|
||
"password_required": "🔒 Пароль обязателен",
|
||
"lock_data": "🔐 Привязать данные полка",
|
||
"data_locked": "🔐 Данные привязаны к серверу",
|
||
"allow_public": "👥 Разрешить публичную мету",
|
||
"public_enabled": "👥 Публичная мета включена",
|
||
"update_accounts": "📋 Обновить мета-аккаунты",
|
||
"change_password": "🔑 Изменить пароль",
|
||
"help": "❓ Помощь",
|
||
"add_player": "➕ Добавить игрока",
|
||
"update_all": "🔄 Обновить всех участников",
|
||
"back_to_settings": "⬅ К настройкам",
|
||
"manage_notifications": "Управление уведомлениями",
|
||
"diagnose_permissions": "Диагностика прав",
|
||
"enable": "Включить",
|
||
"disable": "Отключить",
|
||
"change_channel": "Сменить канал",
|
||
"view_replay": "Просмотреть реплей",
|
||
"view_website": "Открыть на сайте",
|
||
"view_video": "Просмотреть видео",
|
||
"view_log": "Просмотреть лог",
|
||
"view_chat": "Просмотреть чат",
|
||
"subscribe_website": "Подписаться через сайт",
|
||
"yes_disband": "Да, распустить",
|
||
"cancel": "Отмена",
|
||
"transfer_leave": "Передать и выйти",
|
||
"accept_selected": "Принять выбранных",
|
||
"accept_all": "Принять всех",
|
||
"decline_selected": "Отклонить выбранных",
|
||
"back": "Назад",
|
||
"remove_all": "Удалить всех",
|
||
"remove_active": "Удалить активных",
|
||
"remove_queued": "Удалить в очереди",
|
||
"remove_selected": "Удалить выбранных",
|
||
"ping_all": "Пинг всех",
|
||
"ping_active": "Пинг активных",
|
||
"ping_queued": "Пинг в очереди",
|
||
"ping_selected": "Пинг выбранных",
|
||
"accept_members": "Принять участников",
|
||
"remove_members": "Удалить участников",
|
||
"ping_members": "Пинг участников",
|
||
"rename_stack": "Переименовать стак",
|
||
"request_to_join": "Запросить вступление",
|
||
"leave_withdraw": "Выйти / Отозвать",
|
||
"manage_stack": "Управление стаком ⚙️",
|
||
"disband_stack": "Распустить стак",
|
||
"force_disband_create": "Принудительно распустить и создать новый"
|
||
},
|
||
"events": {
|
||
"guild_join_title": "Спасибо, что добавили меня!",
|
||
"guild_join_desc": "Запустите `/setup`, чтобы настроить бота для этого сервера."
|
||
},
|
||
"comp": {
|
||
"not_found_title": "Составы не найдены",
|
||
"not_found_desc": "Нет данных для **{squadron}**, попробуйте позже.",
|
||
"error_loading_title": "Ошибка загрузки составов",
|
||
"error_loading_desc": "Не удалось загрузить данные составов: {error}",
|
||
"title": "Составы полка {squadron}",
|
||
"desc": "Составы, замеченные за последние {minutes} минут",
|
||
"no_recent_title": "Нет недавних составов",
|
||
"no_recent_desc": "Нет составов за последние {minutes} минут.",
|
||
"comp_title": "СОСТАВ {index}",
|
||
"last_seen_label": "**Последний раз замечен** : {timestamp}{warning}",
|
||
"comp_label": "**Состав**: {notation}",
|
||
"no_players_recorded": "Нет зафиксированных игроков.",
|
||
"limit_reached_title": "Лимит составов достигнут",
|
||
"limit_reached_desc": "Этот сервер использовал все {limit} запросов составов для этого таймслота. Подпишитесь (через /unlock) для безлимитного доступа или дождитесь следующего таймслота.",
|
||
"user_limit_reached_desc": "Вы использовали все {limit} ваших личных запросов составов для этого таймслота на не-премиум серверах. Другие участники здесь могут продолжать использовать оставшуюся квоту сервера, а премиум-серверы (где использован /unlock) остаются без ограничений — оформите /unlock или дождитесь следующего таймслота.",
|
||
"remaining_footer": "{remaining}/{limit} запросов составов осталось в этом таймслоте",
|
||
"user_remaining_footer": "{remaining}/{limit} личных запросов составов осталось в этом таймслоте",
|
||
"remaining_footer_combined": "{user_remaining}/{user_limit} личных · {server_remaining}/{server_limit} серверных запросов составов осталось в этом таймслоте"
|
||
},
|
||
"quick_log": {
|
||
"invalid_type": "Тип может быть только Логи, Очки, Таблица лидеров, Еженедельный BR или Все.",
|
||
"squadron_required": "Для типов Логи, Очки или Оба необходимо указать название полка.",
|
||
"wildcard_logs_only": "Только тип Логи поддерживает универсальный полк.",
|
||
"squadron_not_resolved": "Не удалось определить полк `{squadron}`.",
|
||
"save_failed": "Не удалось сохранить настройки. Попробуйте позже.",
|
||
"premium_warning": "\n\n> ⚠️ **Игровые логи требуют Premium.** Запустите `/unlock` для подписки ($2.99/мес.) — логи не будут публиковаться до её активации.",
|
||
"leaderboard_set": "Оповещение глобального рейтинга установлено для этого канала.",
|
||
"both_set": "Оповещения о логах и очках для {squadron} установлены для этого канала.{premium_note}",
|
||
"alarm_set": "Оповещение {alarm_type} для {squadron} установлено для этого канала.{premium_note}",
|
||
"weekly_br_wildcard_set": "Еженедельный отчёт BR (топ-20 полков) настроен на этот канал. Отправляется в конце каждой ротации BR.",
|
||
"weekly_br_squadron_set": "Еженедельный отчёт BR для {squadron} (топ-15 игроков) настроен на этот канал. Отправляется в конце каждой ротации BR."
|
||
},
|
||
"diagnostics": {
|
||
"title": "Диагностика автологирования",
|
||
"channel_permissions_header": "**Права канала** (<#{channel_id}>)",
|
||
"perms_needed": " ^ Автологирование требует всех указанных прав для отправки таблиц результатов.",
|
||
"server_squadron_header": "**Полк сервера** (`/set-squadron`)",
|
||
"server_squadron_short": " Короткое: `{short}`",
|
||
"server_squadron_long": " Длинное: `{long}`",
|
||
"server_squadron_not_set": " Не задано (цвет полосы таблицы результатов будет 'not_set')",
|
||
"autolog_prefs_header": "**Настройки автологирования** (`/quick-log`)",
|
||
"autolog_none_configured": " ❌ Ничего НЕ настроено — автологирование НЕ будет отправлять ничего на этот сервер.",
|
||
"autolog_setup_hint": " Используйте `/quick-log <squadron_short> Logs` в нужном канале для настройки.",
|
||
"autolog_no_logs_channels": " ❌ Каналы для логов не настроены. Найдены только каналы для Очков/Рейтинга.",
|
||
"autolog_enable_hint": " Используйте `/quick-log <squadron_short> Logs` для включения автологирования.",
|
||
"selected_channel_tag": " **(выбранный канал)**",
|
||
"missing_send_attach": " (отсутствуют права отправки/прикрепления)",
|
||
"channel_not_found": " (канал не найден)",
|
||
"invalid_channel_id": " (некорректный ID канала)",
|
||
"premium_status_header": "**Статус Premium** (`/unlock`)",
|
||
"premium_active": " ✅ На этом сервере активна подписка Premium.",
|
||
"premium_not_subscribed": " ❌ На этом сервере **нет** подписки Premium.",
|
||
"premium_autolog_required": " Автологирование требует Premium. Используйте `/unlock` для подписки.",
|
||
"premium_not_subscribed_free": " ⚪ Подписка отсутствует — используйте `/unlock` для подписки ($2.99/мес.).",
|
||
"premium_free_note": " *(Автологи сейчас бесплатны для всех серверов.)*"
|
||
},
|
||
"sq_info": {
|
||
"title": "Информация о полке: {squadron}",
|
||
"placement_field": "Место",
|
||
"total_points_field": "Всего очков",
|
||
"total_members_field": "Всего участников",
|
||
"members_field": "Участники",
|
||
"fetch_failed": "Не удалось получить информацию о полке."
|
||
},
|
||
"sq_info_graph": {
|
||
"title": "{squadron} — SQ-INFO (Сезон {season})",
|
||
"embed_title": "{squadron} — Состав полка",
|
||
"embed_desc": "Сезон **{season}** · Медиана боёв: **{median}** · Костяк: **{core}** · Активные: **{active}** · Слабые: **{weak}**\nСтолбцы по убыванию боёв; высота = винрейт. Костяк = ≥ медианы и WR ≥ 1,5× WR полка. Слабые = меньше медианы или WR < WR полка ÷ 2. Активные = все остальные.",
|
||
"core_threshold_line": "КОСТЯК ≥ {wr} %",
|
||
"weak_threshold_line": "СЛАБЫЕ < {wr} %",
|
||
"y_label": "Винрейт",
|
||
"core_header": "КОСТЯК — {count} · WR {avg}%",
|
||
"active_header": "АКТИВНЫЕ — {count} · WR {avg}%",
|
||
"weak_header": "СЛАБЫЕ — {count} · WR {avg}%",
|
||
"no_active_season": "Активный сезон не найден. Попробуйте позже, когда начнётся следующий.",
|
||
"no_members": "Текущие участники для {squadron} не найдены."
|
||
},
|
||
"recap_card": {
|
||
"unknown_season": "Неизвестный сезон: `{season}`.",
|
||
"no_clan_id": "Не удалось определить ID полка `{squadron}`.",
|
||
"render_failed": "Не удалось сгенерировать сезонную карточку. Попробуйте позже."
|
||
},
|
||
"sq_stats": {
|
||
"no_data_title": "Нет данных",
|
||
"no_data_desc": "Исторические данные для полка {squadron} не найдены",
|
||
"title": "{squadron} // ПОЛК",
|
||
"desc": "Тренд общего счёта (последние {count} точек данных)",
|
||
"previous_score_field": "Предыдущий счёт",
|
||
"current_score_field": "Текущий счёт",
|
||
"change_field": "Изменение",
|
||
"player_title": "{squadron} // ИГРОКИ",
|
||
"player_desc": "Тренды очков отдельных игроков",
|
||
"comparison_title": "{squadron} // СРАВНЕНИЕ РЕЙТИНГА",
|
||
"comparison_desc": "Сравнение с полками на позициях {range}",
|
||
"current_position_field": "Текущая позиция",
|
||
"squadrons_shown_field": "Полков отображено",
|
||
"squadron_not_found_error": "Полк не найден в рейтинге",
|
||
"no_nearby_error": "Соседние полки не найдены",
|
||
"no_historical_error": "Исторические данные для соседних полков не найдены",
|
||
"comparison_chart_failed": "Не удалось построить сравнительный график",
|
||
"select_players_placeholder": "Выберите игроков (Стр. {page})"
|
||
},
|
||
"loss_calc": {
|
||
"title": "Потеря очков — {squadron}",
|
||
"players_leaving_field": "Уходящие игроки",
|
||
"share_of_total_field": "% от общего",
|
||
"points_lost_real_field": "Потеряно очков (реальных)",
|
||
"points_lost_raw_field": "Потеряно очков (сырых)",
|
||
"squadron_rating_field": "Рейтинг полка",
|
||
"squadron_position_field": "Позиция полка",
|
||
"positions_lost_field": "Потеряно позиций",
|
||
"not_found_footer": "Не найдено в полке: {players}",
|
||
"fetch_failed": "Не удалось получить данные полка: {error}",
|
||
"no_point_data": "Данные об очках для этого полка недоступны.",
|
||
"no_matching_players": "В полке **{squadron}** не найдено подходящих игроков."
|
||
},
|
||
"player": {
|
||
"select_player_placeholder": "Выберите игрока",
|
||
"no_stats_found": "❌ Статистика не найдена для UID: {uid}",
|
||
"no_vehicle_stats": "❌ Статистика техники для этого игрока не найдена.",
|
||
"vehicles_found": "Найдено **{count}** единиц техники для **{nick}**\nВыберите технику для просмотра подробной статистики:",
|
||
"vehicle_select_placeholder": "Выберите технику (Стр. {page}/{total})",
|
||
"combat_stats_header": "**__БОЕВАЯ СТАТИСТИКА__**",
|
||
"ground_kills_label": "**Наземные уничтожения:** {value}",
|
||
"air_kills_label": "**Воздушные уничтожения:** {value}",
|
||
"total_kills_label": "**Всего уничтожений:** {value}",
|
||
"assists_label": "**Помощь:** {value}",
|
||
"deaths_label": "**Гибели:** {value}",
|
||
"kd_label": "**K/D:** {value}",
|
||
"captures_label": "**Захваты:** {value}",
|
||
"battle_record_header": "**__БОЕВОЙ СЧЁТ__**",
|
||
"total_battles_label": "**Всего боёв:** {value}",
|
||
"wins_label": "**Победы:** {value}",
|
||
"losses_label": "**Поражения:** {value}",
|
||
"win_rate_label": "**Процент побед:** {value}%",
|
||
"stats_desc": "Статистика **{nick}** (**{squadron}**)\nUID: `{uid}`",
|
||
"not_found_title": "Игрок не найден",
|
||
"not_found_desc": "История игр для `{player}` не найдена.",
|
||
"no_players_found": "Игроки, соответствующие **{username}**, не найдены\nПопробуйте использовать `/website` для поиска на сайте.",
|
||
"multiple_matches": "Найдено несколько совпадений, выберите нужное ниже:",
|
||
"must_provide_input": "Необходимо указать хотя бы UID или никнейм.",
|
||
"must_provide_or_link": "Укажите UID или никнейм, либо сначала привяжите свой аккаунт с помощью `/set-player`.",
|
||
"link_select": "Найдено несколько игроков — выберите, какой аккаунт привязать к вашему Discord:",
|
||
"link_success": "✅ Ваш аккаунт Discord привязан к **{nick}** (UID `{uid}`).\nКоманды вроде `/player-stats` теперь будут использовать этот аккаунт по умолчанию."
|
||
},
|
||
"player_games": {
|
||
"no_recent_title": "Нет недавних игр",
|
||
"no_recent_desc": "Игры для **{player}** за последние 8 часов не найдены.",
|
||
"squadron_label": "**Полк:** {squadron}",
|
||
"record_label": "**П:** {wins} **Пор:** {losses} **ПП:** {wr}%",
|
||
"comps_played_header": "\n\n**Сыгранные составы**"
|
||
},
|
||
"match": {
|
||
"missing_input_title": "Отсутствуют данные",
|
||
"missing_input_desc": "Укажите `match_id` или `player_name`.",
|
||
"not_found_title": "Матч не найден",
|
||
"not_found_desc": "Не удалось найти матч с ID `{match_id}`.",
|
||
"invalid_data_title": "Некорректные данные матча",
|
||
"invalid_data_desc": "Не удалось обработать данные реплея.",
|
||
"scoreboard_error_title": "Ошибка таблицы результатов",
|
||
"scoreboard_error_desc": "Не удалось создать изображение таблицы результатов.",
|
||
"no_games_title": "Игры не найдены",
|
||
"no_games_desc": "История игр для **{player}** не найдена.",
|
||
"recent_matches_title": "Недавние матчи: {player}",
|
||
"recent_matches_desc": "Отображается до {count} недавних игр. Выберите одну для просмотра полной таблицы результатов.",
|
||
"select_match_placeholder": "Выберите матч для просмотра..."
|
||
},
|
||
"compare": {
|
||
"no_players_found": "Игроки, соответствующие **{name}**, не найдены.",
|
||
"multiple_matches": "Найдено несколько совпадений для **{name}**: {matches}\nИспользуйте более точное имя (предложения автодополнения точны).",
|
||
"could_not_resolve": "Не удалось определить игроков.",
|
||
"could_not_fetch": "❌ Не удалось получить статистику для **{name}**.",
|
||
"no_graph_data": "Данные за последние 90 дней недоступны.",
|
||
"no_squadron_points_data": "Нет данных об очках полка для {names} (игрок не найден в истории отслеживаемых полков).",
|
||
"graph_title": "Очки игрока — последние 90 дней",
|
||
"battles_label": "Бои",
|
||
"wins_label": "Победы",
|
||
"losses_label": "Поражения",
|
||
"win_rate_label": "Процент побед",
|
||
"ground_kills_label": "Наземные уничтожения",
|
||
"air_kills_label": "Воздушные уничтожения",
|
||
"total_kills_label": "Всего уничтожений",
|
||
"assists_label": "Помощь",
|
||
"deaths_label": "Гибели",
|
||
"kd_label": "K/D",
|
||
"captures_label": "Захваты"
|
||
},
|
||
"squadron": {
|
||
"not_found_desc": "Полк `{squadron}` не найден.",
|
||
"set_title": "✅ Полк установлен",
|
||
"set_desc": "Полк **{squadron}** установлен для этого сервера.",
|
||
"short_name_field": "Короткое название",
|
||
"long_name_field": "Длинное название",
|
||
"swap_title": "✅ Полк заменён",
|
||
"swap_desc": "Заменено **{old}** на **{new}** для этого сервера.",
|
||
"already_set_title": "⚠️ Полк уже установлен",
|
||
"already_set_desc": "На этом сервере сейчас установлено **{old}**.\nЗаменить на **{new}**?",
|
||
"swap_cancelled": "❌ Смена полка отменена."
|
||
},
|
||
"setup": {
|
||
"step1_title": "Настройка сервера — Шаг 1 из 3",
|
||
"step1_desc": "Этот мастер поможет настроить бота для вашего сервера.\n\n**Шаг 1** — Установите полк\n**Шаг 2** — Выберите канал для логов\n**Шаг 3** — Выберите канал для очков\n",
|
||
"step1_current_sq": "\nТекущий настроенный полк: **[{short}] {long}**",
|
||
"step2_title": "Настройка сервера — Шаг 2 из 3",
|
||
"step2_desc": "Полк установлен: **[{short}] {long}**.\n\nКуда публиковать **боевые логи**?\nВыберите текстовый канал ниже или пропустите этот шаг.",
|
||
"step3_title": "Настройка сервера — Шаг 3 из 3",
|
||
"step3_desc": "Куда публиковать **уведомления об очках**?\nВыберите текстовый канал ниже или пропустите этот шаг.",
|
||
"step3_same_as_logs": "\n\nВы также можете нажать «Как в логах» для использования канала логов.",
|
||
"summary_title": "Настройка завершена",
|
||
"summary_desc": "Вы можете использовать `/autolog-management` для изменения этих настроек позже.",
|
||
"squadron_field": "Полк",
|
||
"logs_channel_field": "Канал логов",
|
||
"points_channel_field": "Канал очков",
|
||
"premium_required_field": "⚠️ Игровые логи требуют Premium",
|
||
"premium_required_value": "Автоматические таблицы результатов не будут публиковаться, пока у сервера нет активной подписки. Запустите `/unlock` для подписки ($2.99/мес.).",
|
||
"modal_title": "Установить полк",
|
||
"modal_label": "Короткое название полка",
|
||
"modal_placeholder": "напр. AXYS",
|
||
"squadron_not_found": "Полк `{squadron}` не найден. Попробуйте снова.",
|
||
"logs_channel_placeholder": "Выберите канал для логов...",
|
||
"points_channel_placeholder": "Выберите канал для очков..."
|
||
},
|
||
"meta_management": {
|
||
"squadron_not_found_title": "❌ Полк не найден",
|
||
"squadron_not_found_desc": "Не удалось найти ID клана для полка: **{squadron}**",
|
||
"access_denied_title": "❌ Доступ запрещён",
|
||
"access_denied_desc": "Неверный пароль. Мета-данные этого полка защищены.",
|
||
"data_locked_title": "🔐 Данные полка привязаны",
|
||
"data_locked_desc": "**{squadron}** имеет включённую привязку данных и не может быть перенесён на другой сервер.\n\nВладелец полка должен отключить **Привязку данных полка** перед переносом.",
|
||
"error_retrieving_settings": "❌ Ошибка получения настроек сервера после переноса. Попробуйте снова.",
|
||
"error_retrieving_settings_retry": "❌ Ошибка получения настроек сервера. Попробуйте запустить команду снова.",
|
||
"authenticated_title": "✅ Аутентификация успешна",
|
||
"authenticated_desc": "Пароль подтверждён. Управление настройками **{squadron}**.",
|
||
"claimed_title": "✅ Полк закреплён",
|
||
"claimed_desc": "**{squadron}** успешно закреплён за этим сервером!",
|
||
"password_requirement_field": "🔒 Требование пароля",
|
||
"data_lock_field": "🔐 Привязка данных полка",
|
||
"public_meta_field": "👥 Публичный доступ к мета",
|
||
"access_password_field": "🔑 Пароль доступа",
|
||
"enabled_value": "✅ Включено",
|
||
"disabled_value": "❌ Отключено",
|
||
"settings_title": "🔐 Настройки управления мета",
|
||
"settings_desc": "**Полк:** {squadron}\n**ID клана:** {clan_id}",
|
||
"first_time_title": "🔐 Управление мета — Первоначальная настройка",
|
||
"first_time_owner_desc": "**Полк:** {squadron}\n**ID клана:** {clan_id}\n\n🔑 Ваш пароль доступа сгенерирован. **Сохраните этот пароль** — он потребуется для аутентификации при доступе к мета-данным в будущем.\n\n**Пароль:** `{password}`",
|
||
"first_time_non_owner_desc": "**Полк:** {squadron}\n**ID клана:** {clan_id}\n\nПолк настроен. Запросите пароль доступа у владельца сервера.",
|
||
"settings_field": "Настройки",
|
||
"settings_hint": "Используйте кнопки ниже для настройки прав доступа.",
|
||
"password_toggled": "✅ Требование пароля: **{state}**",
|
||
"lock_toggled": "✅ Привязка данных полка: **{state}**",
|
||
"public_meta_toggled": "✅ Публичный доступ к мета: **{state}**\n{detail}",
|
||
"public_meta_enabled_detail": "Теперь не-администраторы могут использовать команду `/meta`.",
|
||
"public_meta_disabled_detail": "Команду `/meta` могут использовать только администраторы.",
|
||
"owner_only_password": "❌ Только владелец сервера может изменить пароль полка.",
|
||
"help_title": "📖 Справка по управлению мета",
|
||
"help_desc": "Описание каждой настройки и функции:",
|
||
"help_password_field": "🔑 Пароль доступа",
|
||
"help_password_value": "Пароль доступа вашего полка. Пароль в панели настроек виден только **владельцу сервера**. Любой, у кого есть пароль, может закрепить мета-данные вашего полка на своём сервере, поэтому храните его в безопасности.",
|
||
"help_require_field": "🔒 Требовать пароль",
|
||
"help_require_value": "При включении даже администраторы этого сервера должны вводить пароль полка для доступа к `/meta-management`. Добавляет дополнительный уровень защиты от случайных изменений.",
|
||
"help_lock_field": "🔐 Привязка данных полка",
|
||
"help_lock_value": "При включении привязывает данные полка к этому серверу, предотвращая перенос даже при наличии правильного пароля. Необходимо отключить перед переносом полка.",
|
||
"help_public_field": "👥 Разрешить публичную мета",
|
||
"help_public_value": "При включении позволяет участникам без прав администратора использовать команду `/meta` для поиска техники полка. При отключении команду `/meta` могут использовать только администраторы сервера.",
|
||
"help_accounts_field": "📋 Обновить мета-аккаунты",
|
||
"help_accounts_value": "Открывает менеджер ростера игроков, где можно добавлять или удалять игроков из мета-ростера полка. Используйте **Обновить всех участников** для синхронизации всего полка сразу.",
|
||
"help_change_pw_field": "🔑 Изменить пароль",
|
||
"help_change_pw_value": "**Только для владельца сервера.** Изменить пароль доступа полка и задать необязательную подсказку. Подсказка отображается в запросе пароля для помощи в его запоминании.",
|
||
"password_modal_title": "Пароль доступа к полку",
|
||
"password_modal_label": "Введите пароль полка",
|
||
"password_modal_placeholder": "XXXX-XXXX-XXXX",
|
||
"change_pw_modal_title": "Изменить пароль полка",
|
||
"current_password_label": "Текущий пароль",
|
||
"current_password_placeholder": "Введите текущий пароль",
|
||
"new_password_label": "Новый пароль",
|
||
"new_password_placeholder": "Введите новый пароль",
|
||
"confirm_password_label": "Подтвердите новый пароль",
|
||
"confirm_password_placeholder": "Повторно введите новый пароль",
|
||
"hint_label": "Подсказка к паролю (необязательно)",
|
||
"hint_placeholder": "Подсказка для запоминания пароля",
|
||
"pw_incorrect": "❌ Текущий пароль неверен.",
|
||
"pw_mismatch": "❌ Новые пароли не совпадают. Попробуйте снова.",
|
||
"pw_empty": "❌ Новый пароль не может быть пустым.",
|
||
"pw_changed": "✅ Пароль для **{squadron}** успешно изменён.\n**Новый пароль:** `{password}`",
|
||
"pw_changed_hint": "\n**Подсказка:** {hint}",
|
||
"player_add_modal_title": "Добавить игрока в мета-ростер",
|
||
"player_add_label": "UID или никнейм игрока",
|
||
"player_add_placeholder": "Введите UID (напр., 12345678) или никнейм игрока",
|
||
"player_not_found": "❌ Игрок `{player}` не найден в базе данных Players_Global.\n",
|
||
"roster_title": "📋 Управление мета-ростером — {squadron}",
|
||
"roster_desc": "**ID клана полка:** {clan_id}\n**Всего игроков:** {count}",
|
||
"roster_page_field": "Игроки (Стр. {page}/{total})",
|
||
"no_players_field": "Нет игроков",
|
||
"no_players_hint": "В мета-ростер ещё не добавлено ни одного игрока. Нажмите **Добавить игрока**, чтобы начать.",
|
||
"remove_player_placeholder": "Выберите игрока для удаления...",
|
||
"fetch_members_failed": "❌ Не удалось получить список участников полка: {error}",
|
||
"no_members_found": "❌ Участники полка не найдены или API-запрос не выполнен.",
|
||
"roster_synced": "✅ Ростер синхронизирован с полком.",
|
||
"roster_added": "**+{count}** добавлено",
|
||
"roster_removed": "**-{count}** удалено (покинули полк)",
|
||
"roster_up_to_date": "**{count}** уже актуальны",
|
||
"refreshing_vehicles": "Обновление данных о технике в фоновом режиме..."
|
||
},
|
||
"meta": {
|
||
"not_configured": "❌ Мета-данные не настроены для этого сервера. Сначала запустите `/meta-management`.",
|
||
"no_permission": "❌ Для использования этой команды необходимы права администратора.\nАдминистраторы могут включить публичный доступ через `/meta-management`.",
|
||
"no_results": "❌ Ни один игрок в ростере вашего полка не имеет **{vehicle}**.",
|
||
"no_results_admin_hint": "\n*Ожидаете, что кто-то должен иметь это? Нажмите кнопку обновления участников в `/meta-management` и проверьте снова.*",
|
||
"search_title": "🔍 Результаты поиска — {vehicle}",
|
||
"matches_found": "**Найдено совпадений:** {count} игрок(ов)",
|
||
"spawns_label": "Появления",
|
||
"deaths_label": "Гибели",
|
||
"gk_label": "НУ",
|
||
"ak_label": "ВУ",
|
||
"points_label": "Очки",
|
||
"kdr_label": "K/D",
|
||
"games_label": "Бои",
|
||
"no_points": "—"
|
||
},
|
||
"top": {
|
||
"title": "**Топ 20 полков**",
|
||
"rating_label": "**Рейтинг:** {value}",
|
||
"air_kills_label": "**Воздушные уничтожения:** {value}",
|
||
"ground_kills_label": "**Наземные уничтожения:** {value}",
|
||
"deaths_label": "**Гибели:** {value}",
|
||
"kd_label": "**K/D:** {value}",
|
||
"win_rate_label": "**Процент побед:** {value}",
|
||
"playtime_label": "**Время в игре:** {value}",
|
||
"fetch_failed": "Не удалось получить данные о полках."
|
||
},
|
||
"analytics": {
|
||
"no_data_title": "Нет данных",
|
||
"no_matches_desc": "Матчи не найдены.",
|
||
"no_comp_desc": "Данные о составах не найдены.",
|
||
"no_consistency_desc": "Недостаточно данных об игроках (минимум 50 матчей).",
|
||
"no_time_desc": "Данные о времени не найдены.",
|
||
"unknown_view": "Неизвестный вид.",
|
||
"map_title": "Процент побед по картам: {squadron}",
|
||
"comp_title": "Составы команд: {squadron}",
|
||
"consistency_title": "Стабильность игроков: {squadron}",
|
||
"consistency_desc": "Отсортировано по K/D",
|
||
"time_title": "Результативность по времени суток: {squadron}",
|
||
"eu_timeslot": "\n**EU Timeslot**",
|
||
"na_timeslot": "\n**NA Timeslot**",
|
||
"off_peak": "\n**Off-Peak**",
|
||
"matchups_title": "📜 {squadron} — История Противостояний",
|
||
"matchups_won_field": "🏆 Чаще Всего Побеждали",
|
||
"matchups_lost_field": "💀 Чаще Всего Проигрывали",
|
||
"no_matchups_desc": "Нет записанных матчей против других полков."
|
||
},
|
||
"recent": {
|
||
"title": "Недавние матчи: {squadron}",
|
||
"no_matches_desc": "Матчи для этого полка не найдены."
|
||
},
|
||
"h2h": {
|
||
"two_required_title": "Необходимо два полка",
|
||
"two_required_desc": "Укажите хотя бы один полк или используйте `/set-squadron` и укажите соперника.",
|
||
"provide_a_desc": "Укажите `squadron_a` или сначала используйте `/set-squadron`.",
|
||
"provide_b_desc": "Укажите `squadron_b` или сначала используйте `/set-squadron`.",
|
||
"squadron_not_found_title": "Полк не найден",
|
||
"same_squadron_title": "Одинаковый полк",
|
||
"same_squadron_desc": "Нельзя проверить статистику встреч против самих себя.",
|
||
"record_desc": "**Счёт:** {a_wins}П - {b_wins}Пор ({total} игр)",
|
||
"no_matches_desc": "Нет зафиксированных матчей между **{a}** и **{b}**."
|
||
},
|
||
"autolog": {
|
||
"premium_active_line": "✅ **Premium:** Активно — автологирование включено для этого сервера.",
|
||
"premium_not_subscribed_line": "❌ **Premium:** Подписка отсутствует — используйте `/unlock` для включения автологирования.",
|
||
"premium_free_line": "⚪ **Premium:** Подписка отсутствует — используйте `/unlock` для подписки ($2.99/мес.). *(Автологи сейчас бесплатны для всех серверов.)*",
|
||
"what_to_do": "\n\nЧто вы хотите сделать?",
|
||
"select_notif_type": "Выберите тип уведомления для управления:",
|
||
"select_notif_placeholder": "Выберите тип уведомления",
|
||
"logs_option": "Логи",
|
||
"logs_option_desc": "Управление уведомлениями о логах",
|
||
"points_option": "Очки",
|
||
"points_option_desc": "Управление уведомлениями об очках",
|
||
"leaderboard_option": "Рейтинг",
|
||
"leaderboard_option_desc": "Управление уведомлениями о рейтинге",
|
||
"selected_type": "Выбрано **{type}**. Теперь выберите полк для управления:",
|
||
"select_squadron_placeholder": "Выберите полк",
|
||
"select_squadron_page_placeholder": "Выберите полк (Стр. {page})",
|
||
"no_squadrons_available": "Нет доступных полков для этого типа уведомлений.",
|
||
"managing_global": "Управление **{type}** (глобально) в канале **{channel}**.",
|
||
"managing_squadron": "Управление **{type}** для полка **{squadron}** в канале **{channel}**.",
|
||
"select_channel": "Выберите новый канал:",
|
||
"select_channel_placeholder": "Выберите канал",
|
||
"select_channel_page_placeholder": "Выберите канал (Стр. {page})",
|
||
"global_toggled": "{type} (глобально) теперь {state}.",
|
||
"squadron_toggled": "{type} для **{squadron}** теперь {state}.",
|
||
"channel_updated_global": "Обновлён {type} (глобально) — канал {channel}",
|
||
"channel_updated_squadron": "Обновлён {type} для **{squadron}** — канал {channel}",
|
||
"diagnose_channel_placeholder": "Выберите канал для диагностики...",
|
||
"select_channel_diagnose": "Выберите канал для диагностики:",
|
||
"game_not_logged_title": "Игра не залогирована",
|
||
"game_not_logged_desc": "Используйте `/unlock`, чтобы оформить подписку уровня **Standard** (или выше) и получать автоматические таблицы результатов.",
|
||
"server_not_upgraded_title": "⚠️ Сервер не обновлён",
|
||
"server_not_upgraded_autolog_desc": "На этом сервере нет активной подписки Premium.\n\n**Автоматические таблицы результатов перестанут отправляться на серверы без обновления после <t:{deadline}:D>.**\n\nИспользуйте `/unlock` для подписки и продолжения получения автоматических игровых логов.",
|
||
"replay_not_available": "Данные реплея пока недоступны — подождите немного и попробуйте снова!",
|
||
"too_many_videos": "Сейчас обрабатывается слишком много видео — попробуйте снова через мгновение.",
|
||
"video_gen_failed": "Ошибка создания видео: `{error}`",
|
||
"video_missing": "Не удалось создать видео реплея — выходной файл отсутствует или пуст.",
|
||
"video_too_large": "Видео реплея слишком большое для загрузки ({file_mb:.1f} МБ). Лимит сервера: {limit_mb:.0f} МБ.",
|
||
"video_web_fallback": "Вы также можете просмотреть этот матч на {url}",
|
||
"video_upload_failed": "Видео слишком большое для загрузки — просмотрите его на сайте:\n{url}",
|
||
"video_unexpected_error": "Неожиданная ошибка при создании видео реплея: `{error}`",
|
||
"replay_not_found": "Данные реплея для сессии `{session_id}` не найдены на диске.",
|
||
"chat_log_title": "**Лог чата для игры [{session_id}]({url})**",
|
||
"chat_log_part_title": "**Лог чата для игры [{session_id}]({url}) (Часть {part}/{total})**",
|
||
"chat_log_part_only": "**Лог чата (Часть {part}/{total})**",
|
||
"no_chat_log": "Лог чата для сессии `{session_id}` не найден.",
|
||
"chat_log_error": "Неожиданная ошибка при загрузке лога чата: `{error}`",
|
||
"battle_log_title": "**Боевой лог для игры [{session_id}]({url})**",
|
||
"battle_log_part_title": "**Боевой лог для игры [{session_id}]({url}) (Часть {part}/{total})**",
|
||
"battle_log_part_only": "**Боевой лог (Часть {part}/{total})**",
|
||
"no_battle_log": "Боевые события для сессии `{session_id}` не найдены.",
|
||
"battle_log_error": "Неожиданная ошибка при загрузке боевого лога: `{error}`",
|
||
"points_update_title": "**{squadron} {region} Обновление очков**",
|
||
"points_update_desc": "# {old_total} -> {new_total} {chart}{wl_line}{placement_line}\n\n**Изменения игроков:**",
|
||
"points_table_header": "Имя Изменение Теперь\n",
|
||
"wl_line": "\n**{squadron}** сыграл **{wins}П-{losses}Пор** за эту сессию",
|
||
"placement_rose": "\n**{squadron}** поднялся на **{new_place}** с **{old_place}**",
|
||
"placement_fell": "\n**{squadron}** опустился на **{new_place}** с **{old_place}**",
|
||
"points_not_logged_title": "Очки не залогированы",
|
||
"points_not_logged_desc": "Используйте `/unlock`, чтобы оформить подписку уровня **Standard** (или выше) и получать автоматические обновления очков.",
|
||
"server_not_upgraded_points_desc": "На этом сервере нет активной подписки Premium.\n\n**Автоматические обновления перестанут отправляться на серверы без обновления после <t:{deadline}:D>.**\n\nИспользуйте `/unlock` для подписки и продолжения получения автоматических обновлений.",
|
||
"leave_title": "⚠️ Игрок покинул {squadron}",
|
||
"leave_desc": "**{nick}** ({uid}) покинул полк.\n\nПоследние зафиксированные очки: **{points}**",
|
||
"no_squadrons_desc": "No squadrons configured",
|
||
"no_channels_desc": "No channels available",
|
||
"over_cap_title": "Полк превышает лимит вашего тарифа",
|
||
"over_cap_desc": "Ваш сервер на тарифе **{tier}**, который разрешает **{cap}** полков для **{notif}**. Полк **{squadron}** сейчас сверх лимита и не логируется. Перейдите на более высокий тариф, чтобы восстановить.",
|
||
"over_cap_footer": "Повысить тариф: sre.pawjob.us/premium или /unlock",
|
||
"wildcard_blocked_title": "Для подстановочных символов нужен тариф выше",
|
||
"wildcard_blocked_desc": "Подстановочные полки (*, all, everything) доступны только на тарифах Pro и Max. Ваш сервер на **{tier}** для {notif}. Повысьте тариф, чтобы включить их.",
|
||
"cap_header": "{used}/{cap} {notif} включено — тариф {tier}"
|
||
},
|
||
"track": {
|
||
"squadron_not_found": "Полк не найден.",
|
||
"fetch_failed": "Не удалось получить информацию о полке."
|
||
},
|
||
"unlock": {
|
||
"title": "SRE Bot Premium",
|
||
"desc": "**Разблокируйте премиум-функции для этого сервера.**\n\nPremium включает:\n> • Автоматическая публикация таблиц результатов\n> • Логи чата и боя\n> • Просмотр реплеев\n> • Безлимитные запросы /comp\n> • Приоритетная поддержка\n\n**$2.99 / месяц · за сервер · отмена в любое время**\n\n⚠️ Биллинг Discord доступен только в отдельных странах. Если кнопка ниже показывает **«Продукт недоступен»**, это может быть связано с неподдерживаемой страной или использованием **мобильного устройства**. Используйте вместо этого кнопку **Подписаться через сайт**.",
|
||
"already_subscribed_title": "SRE Bot Premium",
|
||
"already_subscribed_desc": "✅ **Этот сервер уже подписан!**",
|
||
"manage_discord_field": "Управление подпиской",
|
||
"manage_discord_value": "Ваша подписка оформлена через **Discord**.\nДля отмены перейдите в **Настройки пользователя → Подписки** в Discord.",
|
||
"manage_website_field": "Управление подпиской",
|
||
"manage_website_value": "Ваша подписка оформлена через **сайт**.\nУправляйте ей на [whop.com/billing](https://whop.com/billing).",
|
||
"coming_soon_field": "Скоро",
|
||
"coming_soon_value": "Подписки Premium пока недоступны. Загляните позже!",
|
||
"current_tier": "Ваш текущий тариф: **{tier}**.",
|
||
"upgrade_to": "Повысить до {tier}",
|
||
"upgrade_to_value": "Увеличьте лимит полков и получите больше функций с тарифом **{tier}**."
|
||
},
|
||
"language": {
|
||
"prompt": "Пожалуйста, выберите язык сервера:",
|
||
"select_placeholder": "Выберите язык сервера",
|
||
"language_set": "Язык установлен: {language}.",
|
||
"translate_prompt": "Выберите целевой язык ниже 👇",
|
||
"translate_placeholder": "Выберите целевой язык…",
|
||
"translate_result": "**{author} → {language}:**\n{text}",
|
||
"translation_unavailable": "Перевод недоступен (DeepL не настроен)",
|
||
"translation_failed": "Ошибка перевода"
|
||
},
|
||
"misc": {
|
||
"credits_title": "Авторы",
|
||
"credits_desc": "**Meowww**\n\n> **NotSoToothless** - Ведущий разработчик, менеджер бота, менеджер сообщества\n> **Z3R0** - Разработчик, разработчик оптимизации, инженер баз данных\n> **Clippii (Heidi)** - Разработчик, веб-разработчик, менеджер сообщества\n> **LivingTheDagor** - Разработчик, разработчик парсера, консультант\n> **Lux_** - API-инженер, разработчик Spectra\n> **Konigallerwaffen** - Консультант по обратной связи и функциям\n> **Žralok Tonda** - Чешский переводчик\n> **Styevy**, **Lopais** - Немецкие переводчики\n> **Susogus**, **playforfun698** - Польские переводчики\n> **Bobr** - Русский переводчик\n\n\n[Хотите присоединиться к нам?](https://discord.gg/BCvkK8JhPe)",
|
||
"schedule_title": "РАСПИСАНИЕ СЕЗОНА",
|
||
"schedule_not_found_title": "Расписание не найдено",
|
||
"schedule_not_found_desc": "Данные расписания пока недоступны.",
|
||
"news_no_news_title": "Нет новостей",
|
||
"news_no_news_desc": "Объявлений пока нет. Загляните позже!",
|
||
"news_footer": "Спасибо за вашу поддержку! ᖙᘘᗢ",
|
||
"help_title": "Руководство по боту",
|
||
"donate_title": "Поддержать SRE Bot",
|
||
"donate_desc": "Если вам нравится SRE Bot и вы хотите поддержать его развитие, угостите меня кофе!\n\n**[Пожертвовать на Ko-fi](https://ko-fi.com/notsotoothless)**\n\nКаждый взнос помогает поддерживать работу бота и развивать новые функции. Спасибо!",
|
||
"status_title": "Статус бота",
|
||
"status_last_received": "Последняя полученная игра",
|
||
"status_avg_ttl": "Среднее TTL (последние 30)",
|
||
"status_no_data": "Пока нет данных",
|
||
"status_gaijin_slow": "⚠️ Серверы Gaijin медленные",
|
||
"help_commands_header": "**Обзор команд**",
|
||
"help_links": "Подробности в документации [здесь]({docs}) или поддержка [здесь]({support}).",
|
||
"help_terms": "[Условия использования]({terms}) • [Политика конфиденциальности]({terms})",
|
||
"help_group_admin": "Начало работы и управление",
|
||
"help_group_squadron": "Информация об эскадрилье",
|
||
"help_group_rankings": "Рейтинги и инструменты",
|
||
"help_group_players": "Игроки",
|
||
"help_group_meta": "Мета",
|
||
"help_group_stacks": "Стаки",
|
||
"help_group_settings": "Настройки и информация",
|
||
"help_translate_hint": "ПКМ по сообщению → «Приложения», чтобы перевести"
|
||
},
|
||
"dev": {
|
||
"restricted_dev_team": "This command is restricted to the dev team.",
|
||
"restricted_bot_owner": "❌ This command is restricted to the bot owner.",
|
||
"invalid_server_id": "❌ Invalid server ID. Must be a 17-19 digit Discord server ID.",
|
||
"expiry_too_soon": "❌ Expiry timestamp must be at least 1 month from now.\n> Now: <t:{now}:F>\n> Minimum: <t:{min}:F>\n> You provided: <t:{provided}:F>",
|
||
"entitlement_write_failed": "❌ Failed to write entitlement: {error}",
|
||
"entitlement_created_title": "✅ Manual Entitlement Created",
|
||
"entitlement_created_desc": "**Server:** {guild_name} (`{server_id}`)\n**Expires:** <t:{unix_ts}:F> (<t:{unix_ts}:R>)\n**Created:** <t:{now}:F>",
|
||
"query_failed": "Query failed: {error}",
|
||
"health_title": "Bot Health Dashboard",
|
||
"health_uptime": "Uptime",
|
||
"health_guilds": "Guilds",
|
||
"health_games_processed": "Games Processed",
|
||
"health_tasks": "Tasks",
|
||
"health_websocket": "WebSocket",
|
||
"health_never": "never",
|
||
"health_errors": "({count} errors)",
|
||
"health_last_msg": "last msg {ago} ({count} total)",
|
||
"health_avg_ttl": "Avg TTL (Last 30)",
|
||
"entitlements_title": "Active Entitlements ({count} total)",
|
||
"entitlements_no_entries": "No entitlements.",
|
||
"entitlements_empty_title": "Active Entitlements",
|
||
"entitlements_empty_desc": "No active entitlements found.",
|
||
"entitlements_tag_discord": "Discord",
|
||
"entitlements_tag_whop": "Whop",
|
||
"entitlements_tag_manual": "Manual",
|
||
"query_prefix": "Query: {name}"
|
||
},
|
||
"leaderboard_alarm": {
|
||
"title": "🏆 Рейтинг полков",
|
||
"top15_desc": "Топ 15 полков со статистикой, публикуется через 35 минут после закрытия таймслота.\nЭто сообщение отправлено <t:{timestamp}:R>.",
|
||
"top30_desc": "Полки 16-30 со статистикой.",
|
||
"not_logged_title": "Рейтинг не залогирован",
|
||
"not_logged_desc": "Используйте `/unlock`, чтобы оформить подписку уровня **Standard** (или выше) и получать автоматические обновления рейтинга.",
|
||
"server_not_upgraded_title": "⚠️ Сервер не обновлён",
|
||
"server_not_upgraded_desc": "На этом сервере нет активной подписки Premium.\n\n**Автоматические обновления перестанут отправляться на серверы без обновления после <t:{deadline}:D>.**\n\nИспользуйте `/unlock` для подписки и продолжения получения автоматических обновлений."
|
||
},
|
||
"stacks": {
|
||
"stack_title": "Стак {leader}",
|
||
"stack_named_title": "{name}",
|
||
"no_members": "Пока нет участников.",
|
||
"members_field": "Участники ({count}/{max})",
|
||
"queue_field": "Очередь ({count}/{max})",
|
||
"manage_title": "Управление стаком",
|
||
"no_pending_requests": "Нет ожидающих заявок.",
|
||
"disbanded_title": "Стак [Распущен]",
|
||
"disbanded_desc": "Этот стак был распущен лидером.",
|
||
"expired_title": "Стак [Истёк]",
|
||
"expired_desc": "Этот стак истёк.",
|
||
"join_modal_title": "Заявка на вступление в стак",
|
||
"join_vehicle_label": "На чём будете играть?",
|
||
"join_vehicle_placeholder": "напр. F-16C, WZ305...",
|
||
"ping_modal_title": "Сообщение пинга",
|
||
"ping_message_label": "Своё сообщение (необязательно)",
|
||
"ping_message_placeholder": "напр. Заходите! Стак начинается!",
|
||
"rename_modal_title": "Переименовать стак",
|
||
"rename_label": "Название стака",
|
||
"rename_placeholder": "напр. Ночные совы, Альфа отряд...",
|
||
"select_new_leader": "Выберите нового лидера…",
|
||
"select_applicants": "Выберите кандидатов…",
|
||
"no_pending_applications": "Нет ожидающих заявок.",
|
||
"select_to_remove": "Выберите людей для удаления…",
|
||
"no_members_or_applicants": "Нет участников или кандидатов.",
|
||
"select_to_ping": "Выберите людей для индивидуального пинга…",
|
||
"stack_not_found": "❌ Стак не найден.",
|
||
"no_longer_exists": "❌ Этот стак больше не существует.",
|
||
"member_not_exists": "❌ Этот участник больше не существует.",
|
||
"already_has_stack": "❌ У этого игрока уже есть активный стак.",
|
||
"already_member": "❌ Вы уже участник этого стака.",
|
||
"already_applied": "❌ У вас уже есть ожидающая заявка в этот стак.",
|
||
"queue_full": "❌ Очередь заполнена ({max}/{max}). Попробуйте позже.",
|
||
"application_sent": "✅ Заявка отправлена! Лидер стака её рассмотрит.",
|
||
"stack_disbanded": "✅ Стак распущен.",
|
||
"cancelled": "Отменено.",
|
||
"select_member_transfer": "❌ Выберите участника для передачи руководства.",
|
||
"ownership_transferred": "✅ Руководство передано {nick}. Вы покинули стак.",
|
||
"select_applicant_first": "❌ Сначала выберите хотя бы одного кандидата.",
|
||
"stack_full": "❌ Стак уже заполнен ({max}/{max} участников).",
|
||
"select_person_first": "❌ Сначала выберите хотя бы одного человека.",
|
||
"no_one_to_ping": "❌ Некого пинговать.",
|
||
"ping_footer": "Пинг от {leader} для {stack}.",
|
||
"pinged": "✅ Пинг отправлен!",
|
||
"select_from_dropdown": "❌ Сначала выберите хотя бы одного человека из выпадающего меню.",
|
||
"stack_renamed": "✅ Стак переименован в **{name}**.",
|
||
"only_member_use_disband": "❌ Вы единственный участник. Используйте **Распустить стак** для завершения.",
|
||
"select_transfer_prompt": "Выберите участника для передачи руководства перед уходом:",
|
||
"left_stack": "✅ Вы покинули стак.",
|
||
"application_withdrawn": "✅ Ваша заявка отозвана.",
|
||
"not_member_or_applicant": "❌ Вы не являетесь участником или кандидатом этого стака.",
|
||
"leader_only_manage": "❌ Только лидер стака может им управлять.",
|
||
"leader_only_disband": "❌ Только лидер стака может его распустить.",
|
||
"confirm_disband": "Вы уверены, что хотите распустить этот стак? Это действие нельзя отменить.",
|
||
"already_active_stack": "⚠️ У вас уже есть активный стак. Если исходное сообщение исчезло (напр. после перезапуска бота), вы можете принудительно распустить его и начать заново.",
|
||
"force_created": "✅ Предыдущий стак распущен. Новый стак создан.",
|
||
"no_active_stack": "❌ У вас нет активного стака. Используйте `/stack-create` для создания.",
|
||
"could_not_parse_channel": "⚠️ Не удалось обработать сохранённый ID канала."
|
||
},
|
||
"commands": {
|
||
"common": {
|
||
"season": "Сезон для создания карточки",
|
||
"theme": "Цветовая тема карточки",
|
||
"squadron_short": "Короткое название эскадрильи",
|
||
"player_username": "Имя игрока",
|
||
"choice_dark": "Тёмная",
|
||
"choice_light": "Светлая"
|
||
},
|
||
"comp": {
|
||
"description": "Найти последние известные составы команды",
|
||
"squadron_short": "Короткое название команды противника"
|
||
},
|
||
"quick_log": {
|
||
"description": "Настроить уведомление для этой эскадрильи в этом канале",
|
||
"squadron_name": "КОРОТКОЕ название эскадрильи для отслеживания",
|
||
"type": "Выберите Логи, Очки, Таблица лидеров, Еженедельный BR или Все",
|
||
"choice_logs": "Logs",
|
||
"choice_points": "Очки",
|
||
"choice_player_leave": "Выход игрока",
|
||
"choice_leaderboard": "Рейтинг",
|
||
"choice_both": "Оба (Logs + Очки)",
|
||
"choice_weekly_br": "Еженедельный BR"
|
||
},
|
||
"sq_info": {
|
||
"description": "Получить информацию об эскадрилье"
|
||
},
|
||
"sq_info_graph": {
|
||
"description": "Показать график состава полка по активности и винрейту (текущий сезон)"
|
||
},
|
||
"sq_card": {
|
||
"description": "Создать сезонную карточку эскадрильи",
|
||
"squadron": "Короткое название эскадрильи"
|
||
},
|
||
"sq_stats": {
|
||
"description": "Показать очки эскадрильи во времени"
|
||
},
|
||
"loss_calculator": {
|
||
"description": "Рассчитать потерю очков, если игроки уйдут из эскадрильи",
|
||
"player1": "Уходящий игрок",
|
||
"player_optional": "Уходящий игрок (необязательно)"
|
||
},
|
||
"website": {
|
||
"description": "Получить ссылку на сайт SRE Bot"
|
||
},
|
||
"card": {
|
||
"description": "Создать сезонную карточку игрока"
|
||
},
|
||
"player_stats": {
|
||
"description": "Показать подробную статистику техники игрока",
|
||
"username": "Имя WT для запроса статистики",
|
||
"uid": "UID WT для запроса статистики"
|
||
},
|
||
"view_player_games": {
|
||
"description": "Показать последние 20 игр игрока"
|
||
},
|
||
"view_match": {
|
||
"description": "Показать таблицу матча по ID или игроку",
|
||
"match_id": "Hex ID сессии матча",
|
||
"player_name": "Игрок для просмотра недавних матчей"
|
||
},
|
||
"compare": {
|
||
"description": "Сравнить суммарную SQB-статистику игроков",
|
||
"player1": "Первый игрок",
|
||
"player2": "Второй игрок",
|
||
"player_optional": "Дополнительный игрок (необязательно)"
|
||
},
|
||
"leaderboard": {
|
||
"description": "Открыть глобальный рейтинг SRE Bot"
|
||
},
|
||
"set_squadron": {
|
||
"description": "Задать тег эскадрильи для этого сервера",
|
||
"abbreviated_name": "Короткое название эскадрильи"
|
||
},
|
||
"setup": {
|
||
"description": "Настроить бота для этого сервера"
|
||
},
|
||
"meta_management": {
|
||
"description": "Управлять доступом к мета-данным этого сервера"
|
||
},
|
||
"meta": {
|
||
"description": "Искать мета-ростер по названию техники",
|
||
"vehicle": "Название техники для поиска"
|
||
},
|
||
"top": {
|
||
"description": "Показать топ-20 эскадрилий с подробной статистикой"
|
||
},
|
||
"language": {
|
||
"description": "Изменить язык бота."
|
||
},
|
||
"translate_message": {
|
||
"name": "Перевести сообщение"
|
||
},
|
||
"sq_track": {
|
||
"description": "Отслеживать эскадрилью и сравнить с прошлой проверкой",
|
||
"squadron_short_name": "Короткое название эскадрильи"
|
||
},
|
||
"analytics": {
|
||
"description": "Показать расширенную SQB-аналитику эскадрильи",
|
||
"view": "Какой вид аналитики показать",
|
||
"choice_maps": "Винрейт по картам",
|
||
"choice_comps": "Составы команд",
|
||
"choice_consistency": "Стабильность игроков",
|
||
"choice_time": "Время суток",
|
||
"choice_matchups": "История встреч"
|
||
},
|
||
"recent": {
|
||
"description": "Показать недавние бои эскадрильи",
|
||
"length": "Количество матчей"
|
||
},
|
||
"vs": {
|
||
"description": "Личная статистика двух эскадрилий",
|
||
"squadron_a": "Первая эскадрилья",
|
||
"squadron_b": "Вторая эскадрилья"
|
||
},
|
||
"autolog_management": {
|
||
"description": "Управлять autolog-уведомлениями и проверять права"
|
||
},
|
||
"diagnose_perms": {
|
||
"description": "Проверить права autolog в этом канале"
|
||
},
|
||
"unlock": {
|
||
"description": "Открыть Premium-функции для этого сервера"
|
||
},
|
||
"credits": {
|
||
"description": "Показать команду, создавшую проект"
|
||
},
|
||
"schedule": {
|
||
"description": "Показать текущий сезонный BR-график"
|
||
},
|
||
"news": {
|
||
"description": "Показать последние новости и объявления SRE Bot"
|
||
},
|
||
"help": {
|
||
"description": "Показать руководство, ToS и ссылки поддержки"
|
||
},
|
||
"donate": {
|
||
"description": "Поддержать разработку SRE Bot"
|
||
},
|
||
"stack_create": {
|
||
"description": "Создать стак игроков",
|
||
"vehicle": "На какой технике начнёте?"
|
||
},
|
||
"stack_manage": {
|
||
"description": "Повторно отправить активный стак в этот канал"
|
||
},
|
||
"bot_status": {
|
||
"description": "Статус бота: последняя полученная игра и среднее TTL"
|
||
},
|
||
"set_player": {
|
||
"description": "Привяжите аккаунт Discord к игроку War Thunder",
|
||
"username": "Имя WT для привязки",
|
||
"uid": "WT UID для привязки"
|
||
}
|
||
},
|
||
"permission": {
|
||
"blacklisted_title": "❌ В чёрном списке",
|
||
"blacklisted_desc": "Вы не можете использовать эту команду.",
|
||
"reason_line": "**Причина:** {reason}",
|
||
"access_denied_title": "⛔ Доступ запрещён",
|
||
"no_permission_desc": "У вас нет прав для использования этой команды.",
|
||
"unexpected_error_title": "❗ Ошибка, сообщите о ней....",
|
||
"tier_gate_title": "🔒 Требуется Premium",
|
||
"tier_gate_standard_desc": "Эта команда требует подписку **Standard** или выше. Используйте `/unlock`, чтобы оформить.",
|
||
"tier_gate_pro_desc": "Эта команда требует подписку **Pro** или выше. Используйте `/unlock`, чтобы оформить.",
|
||
"tier_gate_max_desc": "Эта команда требует подписку **Max**. Используйте `/unlock`, чтобы оформить."
|
||
},
|
||
"weekly_br": {
|
||
"title_wildcard": "Еженедельный отчёт BR — {br} BR",
|
||
"title_squadron": "Еженедельный отчёт BR — [{tag}] {long} • {br} BR",
|
||
"window_label": "Период: {start} → {end}",
|
||
"wildcard_desc_first": "Топ-{count} полков по Score • Места {low}–{high}",
|
||
"wildcard_desc_second": "Топ-{count} полков по Score • Места {low}–{high}",
|
||
"squadron_stats_line": "- {games} боёв • K/D {kdr} • Побед {wr}%",
|
||
"top_players_inline_header": "🥇 Лучшие игроки:",
|
||
"player_line_short": " {rank}. {nick} ⭐ {score} ({games}б)",
|
||
"top_players_header": "**Топ-{count} игроков по Score:**",
|
||
"player_line_full": "{rank}. **{nick}** ⭐ {score} • {games} боёв • K/D {kdr}",
|
||
"squadron_header_line": "Score полка: {score} • {games} боёв • Побед {wr}% • K/D {kdr}",
|
||
"squadron_header_no_aggregate": "Score полка: недостаточно активности команды на этой неделе.",
|
||
"no_data": "Нет матчей для [{tag}] в этой ротации BR."
|
||
}
|
||
}
|