English Version | Русская Версия
📝 Telegram VPS Management Bot — Changelog
[1.10.12] - 2025-10-25
Что нового?
🚀 Добавлено:
- Многоязычность (i18n):
- Добавлена полная поддержка русского и английского языков для всех сообщений бота, кнопок, меню, ошибок и уведомлений.
- Внедрён новый модуль
core/i18n.pyдля управления переводами, включающий словарьSTRINGS, функции загрузки/сохранения настроек (load_user_settings,save_user_settings), определения (get_user_lang) и установки (set_user_lang) языка пользователя, а также основную функцию переводаget_text(псевдоним_). - Пользователи могут выбирать язык через новую кнопку "🇷🇺 Язык" / "🇬🇧 Language" в главном меню, настройки сохраняются в
config/user_settings.json. - Добавлен фильтр
I18nFilterдля Aiogram, позволяющий хэндлерам реагировать на текстовые команды независимо от языка. - Добавлена инлайн-клавиатура для выбора языка (
get_language_keyboard).
- Документация: Добавлены английские версии
README.en.mdиCHANGELOG.en.mdс ссылками для переключения. - Скрипт установки: Добавлен англоязычный скрипт
deploy_en.sh. - Зависимости:
iperf3добавлен как зависимость, устанавливаемая черезdeploy.sh/deploy_en.sh.
✨ Улучшено:
- Структура кода: Все пользовательские строки вынесены из кода модулей и ядра в
core/i18n.py. - Модуль
speedtest:- Полностью переписан для использования
iperf3вместоspeedtest-cli. - Реализован поиск ближайшего сервера
iperf3по пингу с приоритезацией по стране/континенту VPS. - Добавлено редактирование сообщения для отображения статуса теста (поиск, пинг, скачивание, загрузка).
- Реализовано несколько попыток подключения к разным серверам в случае ошибки.
- Полностью переписан для использования
- Модуль
traffic:- Добавлена инлайн-кнопка "⏹ Остановить" в сообщение с мониторингом трафика.
- Повторное нажатие основной кнопки теперь не останавливает мониторинг, для этого используется инлайн-кнопка.
- Watchdog (
watchdog.py):- Все сообщения об ошибках и статусах теперь используют систему i18n (на языке по умолчанию).
- Улучшена обработка ошибок сети (
requests.exceptions.RequestException) и ошибок декодирования JSON при отправке/редактировании сообщений Telegram. - Улучшена логика определения статуса
inactive/failedпри ошибкахsystemctl. - Добавлены отдельные статусы/сообщения для планового перезапуска бота и самого watchdog.
- Логирование:
- Реализована ежедневная ротация лог-файлов для
bot.pyиwatchdog.py. - Логи бота и watchdog теперь сохраняются в отдельные поддиректории (
logs/bot/,logs/watchdog/).
- Реализована ежедневная ротация лог-файлов для
- Модуль
users: При удалении пользователя теперь также удаляются его языковые настройки и настройки уведомлений. - Модуль
xray: Скорректированы команды обновления Xray для Amnezia (добавлена установкаwget/unzip) и Marzban (добавлена проверка наличия.env). - Утилиты (
core/utils.py): Функцииformat_trafficиformat_uptimeтеперь поддерживают i18n для единиц измерения. - Клавиатуры (
core/keyboards.py): Все тексты кнопок теперь переводятся на язык пользователя.
🔧 Исправлено:
- i18n:
- Исправлена обработка нечисловых
user_idпри установке языка. - Добавлена обработка ошибок форматирования строк и проверка на существование ключа перевода в
get_text.
- Исправлена обработка нечисловых
- Модуль
users: Исправлено использование строковых ключей (admins/users) вместо локализованных названий вcallback_dataпри смене группы. - Циклические импорты: Устранены потенциальные циклические импорты между
core/shared_state.pyиcore/i18n.py. - Импорты: Исправлены относительные импорты (
from . import ...) в ядре для корректной работы. - Модуль
selftest: Импорт_перенесен внутрь хэндлера для избежания проблем с инициализацией i18n.
Версия 1.10.12 (Build 38) — Добавлена полная поддержка русского и английского языков (i18n), переписан модуль Speedtest на iperf3.
Full Changelog: 1.10.11-37...1.10.12