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

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

View file

@ -1,5 +1,8 @@
import json
import logging
from utils.i18n import get_translations, _
from babel.support import Translations
from fastapi import Depends
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
@ -7,9 +10,10 @@ logger = logging.getLogger(__name__)
class SettingsService:
"""Сервис для управления настройками и очистки данных сети."""
def __init__(self):
def __init__(self, translations: Translations = Depends(get_translations("services"))):
self.subnet_file = "storage/devices/devices.json"
self.wifi_file = "storage/wifi/wifi.json"
self.translations = translations
def clear_subnet(self) -> bool:
"""Очищает данные узлов подсети в файле devices.json.
@ -23,14 +27,14 @@ class SettingsService:
try:
with open(self.subnet_file, "w") as f:
json.dump([], f)
logger.info("Данные узлов подсети успешно очищены")
logger.info("Subnet nodes data successfully cleared")
return True
except FileNotFoundError:
logger.info("Файл устройств не найден, очистка считается успешной")
logger.info("Devices file not found, clearing considered successful")
return True
except Exception as e:
logger.error(f"Ошибка очистки узлов подсети: {str(e)}")
raise
logger.error(f"Error clearing subnet nodes: {str(e)}")
raise Exception(self.translations.gettext("Ошибка очистки узлов подсети: {error}").format(error=str(e)))
def clear_wifi(self) -> bool:
"""Очищает данные точек доступа Wi-Fi в файле wifi.json.
@ -44,14 +48,14 @@ class SettingsService:
try:
with open(self.wifi_file, "w") as f:
json.dump([], f)
logger.info("Данные точек доступа Wi-Fi успешно очищены")
logger.info("Wi-Fi access points data successfully cleared")
return True
except FileNotFoundError:
logger.info("Файл Wi-Fi не найден, очистка считается успешной")
logger.info("Wi-Fi file not found, clearing considered successful")
return True
except Exception as e:
logger.error(f"Ошибка очистки точек доступа Wi-Fi: {str(e)}")
raise
logger.error(f"Error clearing Wi-Fi access points: {str(e)}")
raise Exception(self.translations.gettext("Ошибка очистки точек доступа Wi-Fi: {error}").format(error=str(e)))
def clear_all_data(self) -> bool:
"""Очищает данные узлов подсети и точек доступа Wi-Fi в обоих файлах.
@ -67,14 +71,14 @@ class SettingsService:
with open(self.subnet_file, "w") as f:
json.dump([], f)
except FileNotFoundError:
logger.info("Файл устройств не найден, очистка считается успешной")
logger.info("Devices file not found, clearing considered successful")
try:
with open(self.wifi_file, "w") as f:
json.dump([], f)
except FileNotFoundError:
logger.info("Файл Wi-Fi не найден, очистка считается успешной")
logger.info("Все сетевые данные успешно очищены")
logger.info("Wi-Fi file not found, clearing considered successful")
logger.info("All network data successfully cleared")
return True
except Exception as e:
logger.error(f"Ошибка очистки всех сетевых данных: {str(e)}")
raise
logger.error(f"Error clearing all network data: {str(e)}")
raise Exception(self.translations.gettext("Ошибка очистки всех сетевых данных: {error}").format(error=str(e)))