Экспорт конкретный подсетей. Обновление локалей учитывая жти изменения
This commit is contained in:
parent
b1306ff66f
commit
0c8533257d
8 changed files with 81 additions and 63 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -6,5 +6,5 @@ __pycache__
|
||||||
.wheels
|
.wheels
|
||||||
.vendor
|
.vendor
|
||||||
.python3-deb
|
.python3-deb
|
||||||
SRV/storage/devices/devices.json
|
SRV/storage/subnets/*
|
||||||
SRV/storage/wifi/wifi.json
|
SRV/storage/wifi/wifi.json
|
||||||
3
SRV/.gitignore
vendored
3
SRV/.gitignore
vendored
|
|
@ -6,4 +6,5 @@ __pycache__
|
||||||
.wheels
|
.wheels
|
||||||
.vendor
|
.vendor
|
||||||
.python3-deb
|
.python3-deb
|
||||||
storage/devices/
|
storage/subnets/
|
||||||
|
storage/wifi/
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from fastapi import APIRouter, HTTPException, Depends, Response, Request
|
from fastapi import APIRouter, HTTPException, Depends, Response, Request, Body
|
||||||
from starlette.responses import FileResponse
|
from starlette.responses import FileResponse
|
||||||
from services.settings_service import SettingsService
|
from services.settings_service import SettingsService
|
||||||
from utils.i18n import get_translations
|
from utils.i18n import get_translations
|
||||||
from babel.support import Translations
|
from babel.support import Translations
|
||||||
|
from models.subnet import SubnetScanRequest # Предполагается, что модель определена
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
@ -96,13 +97,13 @@ def clear_all_data(translations: Translations = Depends(get_translations())):
|
||||||
DEVICE_PATH = "storage/devices/devices.json"
|
DEVICE_PATH = "storage/devices/devices.json"
|
||||||
WIFI_PATH = "storage/wifi/wifi.json"
|
WIFI_PATH = "storage/wifi/wifi.json"
|
||||||
|
|
||||||
@router.get("/export_devices", response_class=FileResponse)
|
@router.post("/export_devices", response_class=FileResponse)
|
||||||
async def export_devices(subnet: str, translations: Translations = Depends(get_translations())):
|
async def export_devices(request: SubnetScanRequest = Body(...), translations: Translations = Depends(get_translations())):
|
||||||
"""
|
"""
|
||||||
Экспортирует файл с данными устройств в формате JSON для указанной подсети.
|
Экспортирует файл с данными устройств в формате JSON для указанной подсети.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
subnet (str): Подсеть в формате CIDR (например, "10.1.1.0/24").
|
request (SubnetScanRequest): Объект с полем subnet в формате CIDR.
|
||||||
translations: Объект переводов для текущего языка.
|
translations: Объект переводов для текущего языка.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
@ -111,10 +112,11 @@ async def export_devices(subnet: str, translations: Translations = Depends(get_t
|
||||||
Raises:
|
Raises:
|
||||||
HTTPException: Если файл не найден (status_code=404).
|
HTTPException: Если файл не найден (status_code=404).
|
||||||
"""
|
"""
|
||||||
|
subnet = request.subnet
|
||||||
file_path = f"storage/subnets/{subnet.replace('/', '_')}.json"
|
file_path = f"storage/subnets/{subnet.replace('/', '_')}.json"
|
||||||
if not os.path.exists(file_path):
|
if not os.path.exists(file_path):
|
||||||
logger.warning(f"Export file not found: {file_path}")
|
logger.warning(f"Export file not found: {file_path}")
|
||||||
raise HTTPException(status_code=404, detail=translations.gettext("Файл не найден"))
|
raise HTTPException(status_code=404, detail=translations.gettext("Файл для подсети {subnet} не найден").format(subnet=subnet))
|
||||||
logger.info(f"Exporting file: {file_path}")
|
logger.info(f"Exporting file: {file_path}")
|
||||||
return FileResponse(
|
return FileResponse(
|
||||||
path=file_path,
|
path=file_path,
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -7,8 +7,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2025-07-16 13:15+0500\n"
|
"POT-Creation-Date: 2025-07-16 13:39+0500\n"
|
||||||
"PO-Revision-Date: 2025-07-16 13:15+0500\n"
|
"PO-Revision-Date: 2025-07-16 13:39+0500\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
"Language-Team: en <LL@li.org>\n"
|
"Language-Team: en <LL@li.org>\n"
|
||||||
|
|
@ -96,55 +96,60 @@ msgstr "Failed to update container position: {error}"
|
||||||
msgid "Не удалось получить имя хоста"
|
msgid "Не удалось получить имя хоста"
|
||||||
msgstr "Failed to retrieve hostname"
|
msgstr "Failed to retrieve hostname"
|
||||||
|
|
||||||
#: api/v1/settings.py:37
|
#: api/v1/settings.py:38
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Данные узлов подсети {subnet} успешно очищены"
|
msgid "Данные узлов подсети {subnet} успешно очищены"
|
||||||
msgstr "Subnet node data for {subnet} successfully cleared"
|
msgstr "Subnet node data for {subnet} successfully cleared"
|
||||||
|
|
||||||
#: api/v1/settings.py:39
|
#: api/v1/settings.py:40
|
||||||
msgid "Данные всех подсетей успешно очищены"
|
msgid "Данные всех подсетей успешно очищены"
|
||||||
msgstr "All subnet data successfully cleared"
|
msgstr "All subnet data successfully cleared"
|
||||||
|
|
||||||
#: api/v1/settings.py:41
|
#: api/v1/settings.py:42
|
||||||
msgid "Не удалось очистить данные узлов подсети"
|
msgid "Не удалось очистить данные узлов подсети"
|
||||||
msgstr "Failed to clear subnet node data"
|
msgstr "Failed to clear subnet node data"
|
||||||
|
|
||||||
#: api/v1/settings.py:44 api/v1/settings.py:69 api/v1/settings.py:94
|
#: api/v1/settings.py:45 api/v1/settings.py:70 api/v1/settings.py:95
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка очистки: {error}"
|
msgid "Ошибка очистки: {error}"
|
||||||
msgstr "Clear error: {error}"
|
msgstr "Clear error: {error}"
|
||||||
|
|
||||||
#: api/v1/settings.py:64
|
#: api/v1/settings.py:65
|
||||||
msgid "Данные точек доступа Wi-Fi успешно очищены"
|
msgid "Данные точек доступа Wi-Fi успешно очищены"
|
||||||
msgstr "Wi-Fi access point data successfully cleared"
|
msgstr "Wi-Fi access point data successfully cleared"
|
||||||
|
|
||||||
#: api/v1/settings.py:66
|
#: api/v1/settings.py:67
|
||||||
msgid "Не удалось очистить данные точек доступа Wi-Fi"
|
msgid "Не удалось очистить данные точек доступа Wi-Fi"
|
||||||
msgstr "Failed to clear Wi-Fi access point data"
|
msgstr "Failed to clear Wi-Fi access point data"
|
||||||
|
|
||||||
#: api/v1/settings.py:89
|
#: api/v1/settings.py:90
|
||||||
msgid "Все сетевые данные успешно очищены"
|
msgid "Все сетевые данные успешно очищены"
|
||||||
msgstr "All network data successfully cleared"
|
msgstr "All network data successfully cleared"
|
||||||
|
|
||||||
#: api/v1/settings.py:91
|
#: api/v1/settings.py:92
|
||||||
msgid "Не удалось очистить все сетевые данные"
|
msgid "Не удалось очистить все сетевые данные"
|
||||||
msgstr "Failed to clear all network data"
|
msgstr "Failed to clear all network data"
|
||||||
|
|
||||||
#: api/v1/settings.py:117 api/v1/settings.py:141
|
#: api/v1/settings.py:119
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Файл для подсети {subnet} не найден"
|
||||||
|
msgstr "File for subnet {subnet} not found"
|
||||||
|
|
||||||
|
#: api/v1/settings.py:143
|
||||||
msgid "Файл не найден"
|
msgid "Файл не найден"
|
||||||
msgstr "File not found"
|
msgstr "File not found"
|
||||||
|
|
||||||
#: api/v1/settings.py:166
|
#: api/v1/settings.py:168
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык '{locale}' не поддерживается."
|
msgid "Язык '{locale}' не поддерживается."
|
||||||
msgstr "Language '{locale}' is not supported."
|
msgstr "Language '{locale}' is not supported."
|
||||||
|
|
||||||
#: api/v1/settings.py:172
|
#: api/v1/settings.py:174
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
msgid "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
||||||
msgstr "Language '{locale}' is not supported (no translation files)."
|
msgstr "Language '{locale}' is not supported (no translation files)."
|
||||||
|
|
||||||
#: api/v1/settings.py:175
|
#: api/v1/settings.py:177
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык успешно установлен: {locale}"
|
msgid "Язык успешно установлен: {locale}"
|
||||||
msgstr "Language successfully set: {locale}"
|
msgstr "Language successfully set: {locale}"
|
||||||
|
|
@ -421,24 +426,24 @@ msgstr "Wi-Fi access point clear error: {error}"
|
||||||
msgid "Ошибка очистки всех сетевых данных: {error}"
|
msgid "Ошибка очистки всех сетевых данных: {error}"
|
||||||
msgstr "All network data clear error: {error}"
|
msgstr "All network data clear error: {error}"
|
||||||
|
|
||||||
#: services/subnet_service.py:75 services/wifi_service.py:115
|
#: services/subnet_service.py:151 services/wifi_service.py:115
|
||||||
msgid "Неизвестный"
|
msgid "Неизвестный"
|
||||||
msgstr "Unknown"
|
msgstr "Unknown"
|
||||||
|
|
||||||
#: services/subnet_service.py:185
|
#: services/subnet_service.py:327
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка при сохранении устройств: {error}"
|
msgid "Ошибка при сохранении устройств: {error}"
|
||||||
msgstr "Error saving devices: {error}"
|
msgstr "Error saving devices: {error}"
|
||||||
|
|
||||||
#: services/subnet_service.py:268
|
#: services/subnet_service.py:441
|
||||||
msgid "Недопустимая подсеть по умолчанию"
|
msgid "Недопустимая подсеть по умолчанию"
|
||||||
msgstr "Invalid default subnet"
|
msgstr "Invalid default subnet"
|
||||||
|
|
||||||
#: services/subnet_service.py:288
|
#: services/subnet_service.py:461
|
||||||
msgid "В данной подсети не обнаружено устройств"
|
msgid "В данной подсети не обнаружено устройств"
|
||||||
msgstr "No devices found in this subnet"
|
msgstr "No devices found in this subnet"
|
||||||
|
|
||||||
#: services/subnet_service.py:345
|
#: services/subnet_service.py:518
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка сканирования: {error}"
|
msgid "Ошибка сканирования: {error}"
|
||||||
msgstr "Scan error: {error}"
|
msgstr "Scan error: {error}"
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2025-07-16 13:15+0500\n"
|
"POT-Creation-Date: 2025-07-16 13:39+0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -95,55 +95,60 @@ msgstr ""
|
||||||
msgid "Не удалось получить имя хоста"
|
msgid "Не удалось получить имя хоста"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:37
|
#: api/v1/settings.py:38
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Данные узлов подсети {subnet} успешно очищены"
|
msgid "Данные узлов подсети {subnet} успешно очищены"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:39
|
#: api/v1/settings.py:40
|
||||||
msgid "Данные всех подсетей успешно очищены"
|
msgid "Данные всех подсетей успешно очищены"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:41
|
#: api/v1/settings.py:42
|
||||||
msgid "Не удалось очистить данные узлов подсети"
|
msgid "Не удалось очистить данные узлов подсети"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:44 api/v1/settings.py:69 api/v1/settings.py:94
|
#: api/v1/settings.py:45 api/v1/settings.py:70 api/v1/settings.py:95
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка очистки: {error}"
|
msgid "Ошибка очистки: {error}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:64
|
#: api/v1/settings.py:65
|
||||||
msgid "Данные точек доступа Wi-Fi успешно очищены"
|
msgid "Данные точек доступа Wi-Fi успешно очищены"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:66
|
#: api/v1/settings.py:67
|
||||||
msgid "Не удалось очистить данные точек доступа Wi-Fi"
|
msgid "Не удалось очистить данные точек доступа Wi-Fi"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:89
|
#: api/v1/settings.py:90
|
||||||
msgid "Все сетевые данные успешно очищены"
|
msgid "Все сетевые данные успешно очищены"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:91
|
#: api/v1/settings.py:92
|
||||||
msgid "Не удалось очистить все сетевые данные"
|
msgid "Не удалось очистить все сетевые данные"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:117 api/v1/settings.py:141
|
#: api/v1/settings.py:119
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Файл для подсети {subnet} не найден"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: api/v1/settings.py:143
|
||||||
msgid "Файл не найден"
|
msgid "Файл не найден"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:166
|
#: api/v1/settings.py:168
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык '{locale}' не поддерживается."
|
msgid "Язык '{locale}' не поддерживается."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:172
|
#: api/v1/settings.py:174
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
msgid "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api/v1/settings.py:175
|
#: api/v1/settings.py:177
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык успешно установлен: {locale}"
|
msgid "Язык успешно установлен: {locale}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -420,24 +425,24 @@ msgstr ""
|
||||||
msgid "Ошибка очистки всех сетевых данных: {error}"
|
msgid "Ошибка очистки всех сетевых данных: {error}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: services/subnet_service.py:75 services/wifi_service.py:115
|
#: services/subnet_service.py:151 services/wifi_service.py:115
|
||||||
msgid "Неизвестный"
|
msgid "Неизвестный"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: services/subnet_service.py:185
|
#: services/subnet_service.py:327
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка при сохранении устройств: {error}"
|
msgid "Ошибка при сохранении устройств: {error}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: services/subnet_service.py:268
|
#: services/subnet_service.py:441
|
||||||
msgid "Недопустимая подсеть по умолчанию"
|
msgid "Недопустимая подсеть по умолчанию"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: services/subnet_service.py:288
|
#: services/subnet_service.py:461
|
||||||
msgid "В данной подсети не обнаружено устройств"
|
msgid "В данной подсети не обнаружено устройств"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: services/subnet_service.py:345
|
#: services/subnet_service.py:518
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка сканирования: {error}"
|
msgid "Ошибка сканирования: {error}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -7,8 +7,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2025-07-16 13:15+0500\n"
|
"POT-Creation-Date: 2025-07-16 13:39+0500\n"
|
||||||
"PO-Revision-Date: 2025-07-16 13:15+0500\n"
|
"PO-Revision-Date: 2025-07-16 13:39+0500\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"Language-Team: ru <LL@li.org>\n"
|
"Language-Team: ru <LL@li.org>\n"
|
||||||
|
|
@ -99,55 +99,60 @@ msgstr "Не удалось обновить положение контейне
|
||||||
msgid "Не удалось получить имя хоста"
|
msgid "Не удалось получить имя хоста"
|
||||||
msgstr "Не удалось получить имя хоста"
|
msgstr "Не удалось получить имя хоста"
|
||||||
|
|
||||||
#: api/v1/settings.py:37
|
#: api/v1/settings.py:38
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Данные узлов подсети {subnet} успешно очищены"
|
msgid "Данные узлов подсети {subnet} успешно очищены"
|
||||||
msgstr "Данные узлов подсети {subnet} успешно очищены"
|
msgstr "Данные узлов подсети {subnet} успешно очищены"
|
||||||
|
|
||||||
#: api/v1/settings.py:39
|
#: api/v1/settings.py:40
|
||||||
msgid "Данные всех подсетей успешно очищены"
|
msgid "Данные всех подсетей успешно очищены"
|
||||||
msgstr "Данные всех подсетей успешно очищены"
|
msgstr "Данные всех подсетей успешно очищены"
|
||||||
|
|
||||||
#: api/v1/settings.py:41
|
#: api/v1/settings.py:42
|
||||||
msgid "Не удалось очистить данные узлов подсети"
|
msgid "Не удалось очистить данные узлов подсети"
|
||||||
msgstr "Не удалось очистить данные узлов подсети"
|
msgstr "Не удалось очистить данные узлов подсети"
|
||||||
|
|
||||||
#: api/v1/settings.py:44 api/v1/settings.py:69 api/v1/settings.py:94
|
#: api/v1/settings.py:45 api/v1/settings.py:70 api/v1/settings.py:95
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка очистки: {error}"
|
msgid "Ошибка очистки: {error}"
|
||||||
msgstr "Ошибка очистки: {error}"
|
msgstr "Ошибка очистки: {error}"
|
||||||
|
|
||||||
#: api/v1/settings.py:64
|
#: api/v1/settings.py:65
|
||||||
msgid "Данные точек доступа Wi-Fi успешно очищены"
|
msgid "Данные точек доступа Wi-Fi успешно очищены"
|
||||||
msgstr "Данные точек доступа Wi-Fi успешно очищены"
|
msgstr "Данные точек доступа Wi-Fi успешно очищены"
|
||||||
|
|
||||||
#: api/v1/settings.py:66
|
#: api/v1/settings.py:67
|
||||||
msgid "Не удалось очистить данные точек доступа Wi-Fi"
|
msgid "Не удалось очистить данные точек доступа Wi-Fi"
|
||||||
msgstr "Не удалось очистить данные точек доступа Wi-Fi"
|
msgstr "Не удалось очистить данные точек доступа Wi-Fi"
|
||||||
|
|
||||||
#: api/v1/settings.py:89
|
#: api/v1/settings.py:90
|
||||||
msgid "Все сетевые данные успешно очищены"
|
msgid "Все сетевые данные успешно очищены"
|
||||||
msgstr "Все сетевые данные успешно очищены"
|
msgstr "Все сетевые данные успешно очищены"
|
||||||
|
|
||||||
#: api/v1/settings.py:91
|
#: api/v1/settings.py:92
|
||||||
msgid "Не удалось очистить все сетевые данные"
|
msgid "Не удалось очистить все сетевые данные"
|
||||||
msgstr "Не удалось очистить все сетевые данные"
|
msgstr "Не удалось очистить все сетевые данные"
|
||||||
|
|
||||||
#: api/v1/settings.py:117 api/v1/settings.py:141
|
#: api/v1/settings.py:119
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Файл для подсети {subnet} не найден"
|
||||||
|
msgstr "Файл для подсети {subnet} не найден"
|
||||||
|
|
||||||
|
#: api/v1/settings.py:143
|
||||||
msgid "Файл не найден"
|
msgid "Файл не найден"
|
||||||
msgstr "Файл не найден"
|
msgstr "Файл не найден"
|
||||||
|
|
||||||
#: api/v1/settings.py:166
|
#: api/v1/settings.py:168
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык '{locale}' не поддерживается."
|
msgid "Язык '{locale}' не поддерживается."
|
||||||
msgstr "Язык '{locale}' не поддерживается."
|
msgstr "Язык '{locale}' не поддерживается."
|
||||||
|
|
||||||
#: api/v1/settings.py:172
|
#: api/v1/settings.py:174
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
msgid "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
||||||
msgstr "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
msgstr "Язык '{locale}' не поддерживается (нет файлов переводов)."
|
||||||
|
|
||||||
#: api/v1/settings.py:175
|
#: api/v1/settings.py:177
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Язык успешно установлен: {locale}"
|
msgid "Язык успешно установлен: {locale}"
|
||||||
msgstr "Язык успешно установлен: {locale}"
|
msgstr "Язык успешно установлен: {locale}"
|
||||||
|
|
@ -426,24 +431,24 @@ msgstr "Ошибка очистки точек доступа Wi-Fi: {error}"
|
||||||
msgid "Ошибка очистки всех сетевых данных: {error}"
|
msgid "Ошибка очистки всех сетевых данных: {error}"
|
||||||
msgstr "Ошибка очистки всех сетевых данных: {error}"
|
msgstr "Ошибка очистки всех сетевых данных: {error}"
|
||||||
|
|
||||||
#: services/subnet_service.py:75 services/wifi_service.py:115
|
#: services/subnet_service.py:151 services/wifi_service.py:115
|
||||||
msgid "Неизвестный"
|
msgid "Неизвестный"
|
||||||
msgstr "Неизвестный"
|
msgstr "Неизвестный"
|
||||||
|
|
||||||
#: services/subnet_service.py:185
|
#: services/subnet_service.py:327
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка при сохранении устройств: {error}"
|
msgid "Ошибка при сохранении устройств: {error}"
|
||||||
msgstr "Ошибка при сохранении устройств: {error}"
|
msgstr "Ошибка при сохранении устройств: {error}"
|
||||||
|
|
||||||
#: services/subnet_service.py:268
|
#: services/subnet_service.py:441
|
||||||
msgid "Недопустимая подсеть по умолчанию"
|
msgid "Недопустимая подсеть по умолчанию"
|
||||||
msgstr "Недопустимая подсеть по умолчанию"
|
msgstr "Недопустимая подсеть по умолчанию"
|
||||||
|
|
||||||
#: services/subnet_service.py:288
|
#: services/subnet_service.py:461
|
||||||
msgid "В данной подсети не обнаружено устройств"
|
msgid "В данной подсети не обнаружено устройств"
|
||||||
msgstr "В данной подсети не обнаружено устройств"
|
msgstr "В данной подсети не обнаружено устройств"
|
||||||
|
|
||||||
#: services/subnet_service.py:345
|
#: services/subnet_service.py:518
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Ошибка сканирования: {error}"
|
msgid "Ошибка сканирования: {error}"
|
||||||
msgstr "Ошибка сканирования: {error}"
|
msgstr "Ошибка сканирования: {error}"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue