Интернационализация для всех сервисов сервера

This commit is contained in:
parent 7491ce455d
commit ba8cea01e7
13 changed files with 1011 additions and 206 deletions

View file

@ -2,7 +2,8 @@ from scapy.layers.l2 import ARP, Ether
from scapy.sendrecv import srp
import netifaces
from netaddr import IPNetwork
from utils.i18n import get_translations, _
from babel.support import Translations
class NetworkScanner:
"""Инициализация сетевого сканера.
@ -11,12 +12,13 @@ class NetworkScanner:
вывода информации о клиентах.
"""
def __init__(self, interface=None):
def __init__(self, interface=None, translations: Translations = Depends(get_translations("services"))):
"""Инициализация параметров сетевого сканера.
Args:
interface (str, optional): Название сетевого интерфейса. По умолчанию
используется интерфейс по умолчанию из netifaces.gateways().
translations: Объект переводов для текущего языка.
Инициализирует интерфейс, информацию об IP-адресах и локальный MAC-адрес.
"""
@ -29,6 +31,7 @@ class NetworkScanner:
]
self.local_mac = netifaces.ifaddresses(
self.interface)[netifaces.AF_LINK][0]["addr"]
self.translations = translations
def _create_arp_packet(self, target_ip):
"""Создаёт ARP-пакет для отправки на указанный IP-адрес.
@ -95,8 +98,8 @@ class NetworkScanner:
Выводит IP-адреса и MAC-адреса в отсортированном по IP порядке.
"""
print("Доступные устройства в сети:")
print("IP" + " " * 18 + "MAC")
print(self.translations.gettext("Доступные устройства в сети:"))
print(self.translations.gettext("IP") + " " * 18 + self.translations.gettext("MAC"))
for client in sorted(clients, key=lambda x: x["ip"]):
print(f"{client['ip']:<16} {client['mac']}")