Files
OpenFlare/frontend/messages/fragments/security.ru.json
T
2026-10-25 22:35:32 +03:00

1102 lines
73 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"waf": {
"title": "WAF",
"createRule": "Новое правило",
"ruleGroups": "Группы правил",
"ruleGroupsDesc": "Создавайте правила защиты WAF с помощью визуального представления. Глобальные правила всегда применяются к каждому сайту.",
"refresh": "Обновить",
"loading": "Загрузка групп правил WAF...",
"empty": "Групп правил пока нет. Система обычно автоматически создает глобальную группу.",
"created": "Правило создано",
"groupDeleted": "Группа правил удалена.",
"deleteTitle": "Удалить группу правил",
"deleteDesc": "Удалить группу правил «{name}»? Это невозможно отменить.",
"deleting": "Удаление...",
"confirmDelete": "Удалить",
"operationFailed": "Операция не удалась",
"autoConfigMustBeObject": "Автоматическая конфигурация должна быть объектом JSON.",
"autoConfigInvalid": "Неверный формат автоматической конфигурации.",
"saveFailed": "Сохранить не удалось",
"enabled": "Включено",
"disabled": "Отключено",
"enable": "Включено",
"disable": "Отключено",
"global": "Глобальный",
"custom": "Пользовательский",
"allSites": "Все сайты",
"siteCount": "Сайтов: {count}",
"columns": {
"name": "Название",
"type": "Тип",
"status": "Статус",
"nodeCount": "Узлы",
"scope": "Область применения",
"updatedAt": "Обновлено",
"actions": "Действия"
},
"actions": {
"compose": "Изменить",
"delete": "Удалить"
},
"createDialog": {
"title": "Новое правило WAF",
"description": "После создания вы откроете редактор и настроите процесс обработки.",
"name": "Название правила",
"namePlaceholder": "например Защита кромок",
"submit": "Создавать и редактировать"
},
"editor": {
"missingId": "Требуется действительное правило ID.",
"loadFailed": "Не удалось загрузить правило. Пожалуйста, попробуйте еще раз.",
"reload": "Перезагрузить",
"back": "Назад",
"graphValid": "График действителен",
"issueCount": "Ошибок: {count}",
"unsaved": "несохраненный",
"enableRule": "Включить правило",
"format": "Формат",
"formatTitle": "Автоматическое расположение узлов и ребер",
"saving": "Сохранение...",
"save": "Сохранить",
"saved": "График правил сохранен.",
"conflict": "Это правило было обновлено в другом месте. Пожалуйста, перезагрузите.",
"saveCheckNodes": "Сохранить не удалось. Проверьте выделенные узлы и ребра.",
"ruleEnabled": "Правило включено",
"ruleDisabled": "Правило отключено",
"leaveTitle": "Несохраненные изменения",
"leaveDesc": "У вас есть несохраненные изменения. Все равно уйти?",
"leaveConfirm": "Уйти",
"deleteNode": "Удалить узел",
"systemNodeLocked": "Системные узлы не могут быть удалены",
"deleteEdge": "Удалить край",
"propsTitle": "Свойства узла",
"propsDesc": "Настроить этот процессор",
"systemNodeNoConfig": "Системные узлы не нуждаются в настройке.",
"displayName": "Отображаемое имя",
"ips": "IP адреса",
"cidrs": "CIDR диапазоны",
"ipGroups": "IP группы",
"countries": "Коды стран",
"countriesDesc": "Стран и территорий: {count}. Показаны названия и коды ISO.",
"regions": "Коды регионов",
"regionsDesc": "Регионов первого уровня: {count}. Поиск по названию или коду.",
"uaCheck": "Проверка User-Agent",
"enableUaCheck": "Включить флажок UA",
"enableUaCheckTip": "Если эта функция включена, запросы без User-Agent возвращают False.",
"block": "Заблокировать",
"blockTip": "Соответствие возвращает false и имеет приоритет над правилами сопоставления.",
"blockBots": "Блокировать UA обычных сканеров",
"blockBotsTip": "Браузер или OS классифицируется как бот (бот/паук/сканер/хлюпает, например Googlebot)",
"blockAbnormal": "Блокировать аномальные UA",
"blockAbnormalTip": "Браузер классифицирован как «Другой» или «Неизвестный» (исключая ботов поисковых систем; для сканеров используйте переключатель выше)",
"blockCustom": "Блокировать пользовательские UA",
"blockCustomTip": "Возвращает false, если необработанный User-Agent соответствует любому регулярному выражению (синтаксис шаблона Lua)",
"customUaPatterns": "Пользовательское регулярное выражение UA",
"customUaPatternsTip": "Одно регулярное выражение Lua-шаблона в каждой строке. Любое совпадение возвращает false. Макс 32.",
"uaMatch": "UA совпадение",
"matchMode": "Режим матча",
"matchModeTip": "Используется, когда установлены параметры браузера и OS.",
"matchOr": "OR",
"matchAnd": "AND",
"browsers": "Браузеры",
"os": "Операционные системы",
"security": "Проверки безопасности",
"securityTip": "Любое включенное совпадение правил возвращает False",
"basicProtection": "Базовая защита",
"help": "Помощь",
"oneValuePerLine": "Одно значение в строке",
"selectedCount": "Выбрано: {count}",
"pleaseSelect": "Выбрать",
"createLabel": "Новый {label}",
"searchNameOrCode": "Поиск имени или кода",
"addCode": "Добавить код",
"searchOptions": "Поиск по названию или коду ({count})",
"noMatchingOptions": "Нет подходящих вариантов",
"algorithm": "Алгоритм",
"algorithmFast": "Быстро",
"algorithmSlow": "Прочный",
"difficulty": "Сложность",
"sessionTtl": "Сеанс TTL (секунды)",
"challengeTtl": "Вызов TTL (секунды)",
"statusCode": "HTTP код состояния",
"responseBody": "HTML тело ответа",
"bytes": "байты",
"securityRules": {
"path_traversal": {
"label": "Обход пути",
"tip": "Обнаружение ../ и закодированных вариантов в пути/запросе/теле"
},
"file_inclusion": {
"label": "Включение файла (LFI/RFI)",
"tip": "Обнаружение php://, file://, /etc/passwd и подобных в Path/Query/Body"
},
"sql_injection": {
"label": "SQL инъекция",
"tip": "Обнаружение шаблонов внедрения SQL в запросе/теле/заголовке/файле cookie"
},
"command_injection": {
"label": "Внедрение команд",
"tip": "Обнаружение шаблонов внедрения команд OS в запросе/теле/заголовке"
},
"xss": {
"label": "XSS",
"tip": "Обнаружение отраженных шаблонов XSS в запросе/теле/заголовке"
},
"ssrf": {
"label": "SSRF",
"tip": "Обнаружение частных адресов и опасных протоколов в запросе/теле"
},
"malicious_upload": {
"label": "Вредоносная загрузка",
"tip": "Обнаружение опасных составных имен и расширений файлов"
},
"xxe": {
"label": "XXE",
"tip": "Обнаружение шаблонов внешних объектов в телах XML"
},
"crlf_injection": {
"label": "CRLF инъекция",
"tip": "Обнаружение инъекции новой строки в заголовке/запросе/теле"
}
}
}
},
"ipGroups": {
"title": "IP группы",
"create": "Новая группа IP",
"listTitle": "IP группы",
"listDesc": "Поддерживать ручные, автоматические и подписные наборы IP, на которые WAF могут ссылаться списки разрешений/запретов.",
"refresh": "Обновить",
"loading": "Загрузка групп IP...",
"empty": "IP групп пока нет. Сначала создайте его.",
"updated": "Группа IP обновлена",
"created": "IP группа создана",
"deleted": "IP группа удалена",
"synced": "Синхронизация завершена",
"ipRemoved": "IP удалено",
"testHit": "Проверка завершена. Совпавших IP-адресов: {count}.",
"testMiss": "Проверка правил завершена. Ни один IP-адрес не соответствует.",
"deleteTitle": "Удалить группу IP",
"deleteDesc": "Удалить группу IP «{name}»? Это невозможно отменить.",
"deleting": "Удаление...",
"confirmDelete": "Удалить",
"operationFailed": "Операция не удалась",
"types": {
"manual": "Вручную",
"automatic": "Автоматический",
"subscription": "Подписка"
},
"enabled": "Включено",
"disabled": "Отключено",
"noSyncRecord": "Нет истории синхронизации",
"columns": {
"name": "Название",
"type": "Тип",
"status": "Статус",
"ipCount": "IP-адреса",
"refCount": "Ссылки",
"syncStatus": "Статус синхронизации",
"updatedAt": "Обновлено",
"actions": "Действия"
},
"actions": {
"view": "Посмотреть",
"edit": "Изменить",
"test": "Правило теста",
"runNow": "Беги сейчас",
"syncNow": "Синхронизировать сейчас",
"delete": "Удалить"
},
"ban": {
"permanent": "Постоянный",
"expired": "Срок действия истек",
"minutesLater": "через {count} мин.",
"hoursLater": "через {count} ч"
},
"presets": {
"scan404": "Высокочастотное сканирование 404 с одного IP",
"directAccess": "Аномальный прямой доступ с одного IP"
},
"dialog": {
"editTitle": "Изменить {name}",
"createTitle": "Новая группа IP",
"description": "Поддерживать ручные, автоматические и подписные наборы IP, на которые WAF могут ссылаться списки разрешений/запретов.",
"name": "IP имя группы",
"nameRequired": "Введите имя группы IP.",
"type": "Тип",
"enable": "Включить группу IP",
"enableDesc": "Если этот параметр отключен, конфигурация сохраняется, но не расширяется в список времени выполнения WAF при публикации.",
"subscriptionUrl": "Подписка URL",
"subscriptionUrlRequired": "Тип подписки требует URL",
"subscriptionFormat": "Формат подписки",
"formatText": "Текстовый список",
"syncInterval": "Интервал синхронизации (минуты)",
"syncIntervalDesc": "Минимум 1 минута. По умолчанию 1440 минут.",
"mappingRule": "JSON правило сопоставления",
"mappingPlaceholder": "Оставьте пустым для корневого массива",
"autoIntervalDesc": "Как часто извлекать вредоносные IP-адреса из журналов запросов. Минимум 1 минута, по умолчанию 1440 минут.",
"presetRules": "Предустановленные правила",
"autoConfigJson": "Автоматическая конфигурация JSON",
"ipList": "IP-адреса/CIDR-адреса",
"ipListSubscriptionHint": "При следующей синхронизации подписки этот список будет перезаписан. Вы все равно можете сначала сохранить текущее содержимое.",
"ipListManualHint": "Один IP или CIDR в каждой строке.",
"saving": "Сохранение...",
"save": "Сохранить группу IP"
},
"testDialog": {
"title": "Результат автоматической проверки правил",
"description": "Воспроизведение журналов запросов в соответствии с текущей автоматической конфигурацией JSON.",
"testing": "Тестирование...",
"summary": "{lookback} · правил: {rules} · совпавших IP-адресов: {matched}",
"testedAt": "Протестировано: {time}",
"noMatch": "Ни один IP-адрес не соответствует.",
"empty": "Результата теста пока нет.",
"close": "Закрыть"
},
"viewDialog": {
"titleNamed": "Посмотреть {name}",
"title": "Посмотреть группу IP",
"summary": "{type} · IP-адресов: {count}",
"summaryFiltered": "{type} · IP-адресов: {count}, совпадений: {matched}",
"searchPlaceholder": "Поиск IP адресов...",
"clearSearch": "Очистить поиск",
"noSearchResult": "Соответствующие адреса IP не найдены.",
"fallbackDesc": "Просмотрите IP-адреса в этой группе и удалите записи, которые вам больше не нужны.",
"loading": "Загрузка списка IP...",
"noGroup": "Группа IP не выбрана.",
"emptyAuto": "Это автоматическое правило еще не зафиксировало ни одного IP-адреса. Нажмите «Запустить сейчас», чтобы запустить захват.",
"empty": "В этой группе IP нет IP-адресов.",
"subscriptionHint": "Группы подписки могут восстановить удаленные IP-адреса при следующей синхронизации.",
"ipAddress": "IP адрес",
"capturedAt": "Снято в",
"banRemaining": "Запретить осталось",
"actions": "Действия",
"deleteIp": "Удалить {ip}",
"close": "Закрыть",
"deleteTitle": "Удалить IP",
"deleteDesc": "Удалить {ip} из группы IP «{name}»?",
"deleting": "Удаление...",
"confirmDelete": "Удалить"
},
"autoConfigMustBeObject": "Автоматическая конфигурация должна быть объектом JSON."
},
"rateLimits": {
"title": "Лимиты запросов",
"subtitle": "Проверьте нагрузку на пограничные запросы и настройте ограничения параллелизма и пропускной способности по умолчанию.",
"loadingAuth": "Загрузка разрешений...",
"forbiddenTitle": "Недостаточно разрешений",
"forbiddenDesc": "Доступ к настройкам ограничения скорости имеют только администраторы.",
"tabAnalysis": "Анализ",
"tabConfig": "Конфигурация",
"loadingPage": "Загрузка ограничений скорости...",
"loadingPressure": "Загрузка данных о нагрузке…",
"loadFailed": "Загрузка не удалась",
"emptyTitle": "Нет данных",
"emptyDesc": "В текущем временном диапазоне нет журналов доступа.",
"topHost": "Самый высокий средний хост RPS",
"topIp": "Самый высокий средний показатель RPS IP",
"avgRate": "Средняя частота запросов для {range}",
"range": {
"h24": "24 часа",
"h72": "3 дня"
},
"chart": {
"title": "Нагрузка от запросов",
"empty": "Нет данных о нагрузке",
"requestRate": "Запросить ставку",
"uniqueVisitors": "Уникальные посетители",
"visitorsPerBucket": "Посетители / сегмент"
},
"config": {
"saved": "Настройки ограничения скорости сохранены.",
"saveFailed": "Сохранить не удалось",
"loading": "Загрузка настроек ограничения скорости...",
"preview": "Посмотреть предварительный просмотр конфигурации",
"title": "Глобальные лимиты запросов",
"description": "0 или пусто означает, что по умолчанию отключено. Сайты без собственных настроек наследуют эти значения. Опубликуйте релиз, чтобы применить изменения.",
"save": "Сохранить",
"connPerServer": "Параллелизм по умолчанию (на сайт)",
"connPerServerHint": "Максимальное количество одновременных подключений по умолчанию на сайт",
"connPerIp": "Параллелизм по умолчанию на IP",
"connPerIpHint": "Максимальное количество одновременных подключений по умолчанию на IP",
"limitRate": "Ограничение пропускной способности по умолчанию",
"limitRateHint": "Скорость передачи данных на один запрос по умолчанию, например 512k или 1m",
"reqPerIp": "Ограничение скорости запросов по умолчанию на IP",
"reqPerIpHint": "Частота запросов на один IP по умолчанию, например 10r/s или 100r/m. Оставьте пустым, чтобы отключить.",
"invalidConn": "Введите неотрицательное целое число для параллелизма или оставьте пустым, чтобы отключить",
"invalidRate": "Неверный формат скорости. Используйте 512k, 1m, число или оставьте пустым для отключения.",
"invalidReq": "Неверный формат частоты запросов. Используйте 10r/s или 100r/m либо оставьте пустым, чтобы отключить."
}
},
"pages": {
"title": "Страницы",
"subtitle": "Размещайте статические сайты на периферии. Загрузите статический пакет и выберите Pages в качестве основного в правилах прокси.",
"refresh": "Обновить",
"create": "Новый проект",
"loadFailed": "Загрузка не удалась",
"emptyTitle": "Проектов Pages пока нет",
"emptyDesc": "Создайте проект, а затем загрузите статический пакет развертывания.",
"enabled": "Включено",
"disabled": "Отключено",
"spaFallback": "SPA запасной вариант",
"strict404": "Строгий 404",
"currentActive": "В настоящее время активен",
"none": "Нет",
"activatedAt": "Активировано: ",
"notActivated": "Не активировано",
"viewDetail": "Посмотреть детали",
"saveFailed": "Сохранить не удалось",
"updated": "Проект обновлен",
"created": "Проект создан",
"deleted": "Проект удален",
"deleteFailed": "Удаление не удалось",
"editTitle": "Изменить проект страниц",
"createTitle": "Проект «Новые страницы»",
"editorDesc": "Настройте статические параметры хостинга. После загрузки пакета выберите Pages в качестве основного в правилах прокси.",
"settingsDesc": "Настройте статические параметры хостинга. При сохранении синхронизируются сведения о проекте и ссылки на прокси.",
"reset": "Сброс",
"saving": "Сохранение...",
"saveChanges": "Сохранить изменения",
"createProject": "Создать проект",
"form": {
"name": "Название проекта",
"nameRequired": "Введите название проекта",
"slug": "Ссылка проекта",
"slugPlaceholder": "Оставьте пустым для автоматической генерации",
"entryFile": "Входной файл",
"entryRequired": "Введите файл записи",
"rootDir": "Корневой каталог",
"optional": "Необязательно",
"spaFallback": "SPA запасной вариант",
"spaFallbackDesc": "Вернитесь к указанному пути, если ни один статический файл не соответствует",
"fallbackPath": "Резервный путь",
"fallbackPathPrefix": "Резервный путь должен начинаться с /",
"apiProxy": "API обратный прокси",
"apiProxyDesc": "Прикрепите правила прокси API к статическому сайту.",
"matchPath": "Путь совпадения",
"matchPathPrefix": "Путь совпадения должен начинаться с /",
"backend": "Бэкэнд URL",
"backendPrefix": "Серверная часть URL должна начинаться с http:// или https://.",
"rewrite": "Переписать правило"
},
"detail": {
"invalidId": "Требуется действительный проект Pages ID.",
"loading": "Загрузка сведений о проекте...",
"loadFailed": "Не удалось загрузить сведения о проекте.",
"back": "Вернуться к списку",
"notFound": "Этот проект Pages не существует или был удален.",
"deploymentCount": "Развёртываний: {count}",
"tabDeployments": "Развертывания",
"tabSettings": "Настройки"
},
"danger": {
"title": "Опасная зона",
"deleteProject": "Удалить проект",
"deleteHint": "Удалите навсегда {name} ({slug}) и все его развертывания.",
"confirmTitle": "Удалить проект страниц",
"confirmDesc": "Удалить проект {name}? Это невозможно отменить.",
"confirm": "Удалить"
},
"upload": {
"selectFile": "Выберите пакет развертывания",
"success": "Пакет развертывания загружен.",
"failed": "Загрузка не удалась",
"unsupported": "Поддерживаются только пакеты zip, tar.gz, tar.xz, tar.bz2, tar и 7z.",
"title": "Загрузить пакет развертывания",
"description": "Загрузите неизменяемый статический архив. Позже вы сможете активировать его из истории развертываний.",
"localPackage": "Локальный пакет",
"dropHint": "Перетащите пакет сюда или нажмите, чтобы выбрать файл",
"selected": "Выбрано {name} ({size})",
"chooseArchive": "Выберите поддерживаемый архив.",
"entry": "Запись о развертывании",
"entryHint": "Запись происходит из настроек проекта. Загрузка пакета не перезаписывает его.",
"processing": "Обработка на сервере",
"progress": "Ход загрузки",
"pleaseWait": "Пожалуйста, подождите",
"uploading": "Загрузка...",
"submit": "Загрузите и создайте развертывание"
},
"files": {
"loadFailed": "Не удалось загрузить список файлов",
"empty": "Нет записей в файлах",
"path": "Путь",
"size": "Размер"
},
"history": {
"source": {
"manual_upload": "Локальная загрузка",
"manual_url": "URL импорт",
"remote_url": "URL архива"
},
"trigger": {
"manual_upload": "Загрузка вручную",
"manual_url": "Ручной импорт",
"manual_sync": "Ручная синхронизация",
"scheduled_auto_update": "Запланированное обновление"
},
"fileMeta": "{checksum} · файлов: {count} · ",
"createdAt": "Создано {time}",
"activatedAt": " · Активировано {time}",
"collapseFiles": "Свернуть список файлов",
"expandFiles": "Развернуть список файлов",
"deploymentNumber": "Развертывание №{number}",
"activate": "Активировать",
"delete": "Удалить",
"activated": "Историческое развертывание активировано. Автообновление (если оно включено) отключено.",
"activateFailed": "Активация не удалась",
"deleted": "Развертывание удалено.",
"deleteFailed": "Удаление не удалось",
"activateTitle": "Активировать историческое развертывание",
"deleteTitle": "Удалить развертывание",
"activateDesc": "Активация другого исторического развертывания останавливает текущую исходную задачу. Если автоматическое обновление включено, оно будет отключено.",
"deleteDesc": "Удалить развертывание №{number}? Это невозможно отменить.",
"confirm": "Подтвердить",
"loading": "Загрузка истории развертываний...",
"loadFailed": "Не удалось загрузить историю развертываний.",
"productionHint": "Это живое производственное развертывание. Изменение активного развертывания вступает в силу немедленно.",
"manualUpload": "Загрузка вручную",
"emptyProductionTitle": "Нет производственного развертывания",
"emptyProductionDesc": "Загрузите локальный пакет или настройте удаленный источник выпуска URL/GitHub и синхронизируйте его.",
"historyHint": "Развертывания являются неизменяемыми. Исходная информация — это снимок времени создания. Вы можете активировать или удалить исторические развертывания.",
"emptyTitle": "Нет развертываний",
"emptyDesc": "Загрузите локальный пакет или настройте удаленный источник выпуска URL/GitHub и синхронизируйте его."
},
"source": {
"status": {
"idle": "Простой",
"checking": "Проверка",
"update_available": "Доступно обновление",
"syncing": "Синхронизация",
"failed": "Последняя синхронизация не удалась",
"attention": "Требуется подтверждение"
},
"check": "Проверить",
"syncPublish": "Синхронизировать и опубликовать",
"missingExecutionId": "Не выполнено задание ID",
"actionDone": "Источник {action} завершен.",
"actionFailed": "Источник {action} не удался",
"checkQueued": "Проверить задачу в очереди",
"checkQueueFailed": "Не удалось поставить задачу проверки в очередь",
"syncQueued": "Задача синхронизации поставлена в очередь",
"syncQueueFailed": "Не удалось поставить задачу синхронизации в очередь.",
"title": "Источник развертывания",
"loadingDesc": "Загрузка исходной конфигурации...",
"independentDesc": "Исходная конфигурация не зависит от истории развертывания.",
"loadFailed": "Не удалось загрузить источник развертывания.",
"configDesc": "Настройте удаленный источник и синхронизируйте его для публикации. Результаты отображаются в истории развертываний.",
"manualBadge": "Развертывание вручную",
"localPackage": "Локальный пакет",
"noRemote": "Нет постоянного удаленного источника. Загрузите пакет, а затем активируйте его из истории развертываний.",
"submitFailed": "Не удалось поставить исходную задачу в очередь.",
"statusFailed": "Не удалось прочитать статус задачи.",
"waitStopped": "Автоматическое ожидание остановлено. Задача может все еще выполняться в фоновом режиме.",
"refreshStatus": "Обновить статус задачи",
"configure": "Настроить",
"checkUpdate": "Проверьте наличие обновлений",
"refresh": "Обновить",
"confirmTitle": "Опубликовать текущую версию GitHub",
"confirmLead": "При этом публикуется точная ревизия, показанная в данный момент на карте:",
"revisionUnavailable": "Текущая редакция больше не доступна. Обновите и повторите попытку.",
"confirmPublish": "Подтвердить и опубликовать",
"updated": "Источник развертывания обновлен.",
"updateFailed": "Не удалось обновить источник развертывания.",
"switchedManual": "Переключен обратно на ручное развертывание",
"switchFailed": "Переключиться не удалось",
"urlRequired": "Введите удаленный URL",
"urlInvalid": "Введите действительный HTTP(S) URL",
"githubUrlInvalid": "Введите общедоступный репозиторий URL в формате https://github.com/'{owner}'/'{repo}'.",
"tagInvalid": "Тег выпуска должен быть допустимой ссылкой Git (допускаются 1–255 байт; / # & =).",
"assetInvalid": "Имя ресурса должно иметь длину от 1 до 255 байт и не может быть путем или содержать символы управления, новой строки или двунаправленного текста.",
"intervalInvalid": "Интервал проверки должен быть целым числом от 5 до 1440 минут.",
"useManual": "Использовать развертывание вручную",
"saveRemote": "Сохранить удаленный источник",
"saveGithub": "Сохранить источник GitHub",
"settingsTitle": "Источник развертывания",
"settingsDesc": "Выберите источник развертывания.",
"mode": "Тип источника",
"manual": "Развертывание вручную",
"manualHint": "Сохраните существующие развертывания и текущую производственную версию. Создайте новые развертывания с помощью «Загрузить пакет».",
"urlHint": "Введите HTTP(S) URL, чтобы загрузить пакет развертывания напрямую.",
"allowInsecure": "Разрешить небезопасные соединения",
"allowInsecureDesc": "По умолчанию разрешены публичные и частные адреса. Включение этого параметра позволяет пропустить проверку сертификата TLS для самозаверяющих или частных центров сертификации.",
"switchManualTitle": "Вернитесь к развертыванию вручную",
"switchManualDesc": "Текущая исходная конфигурация будет удалена. Существующие развертывания и текущая производственная версия сохраняются.",
"githubUrl": "GitHub хранилище URL",
"githubUrlHint": "Поддерживаются только общедоступные репозитории github.com.",
"releaseSelect": "Выбор релиза",
"latestRelease": "Последний выпуск",
"pinnedTag": "Закрепленный тег",
"pinnedTagHint": "Проверьте и синхронизируйте именно этот тег.",
"autoUpdate": "Автообновление",
"autoUpdateHint": "Автоматически синхронизировать и публиковать при обнаружении нового выпуска.",
"checkInterval": "Интервал проверки (минуты)",
"checkIntervalHint": "Можно установить от 5 до 1440 минут.",
"assetName": "Имя файла в релизе",
"noRecord": "Пока нет записей",
"address": "URL",
"verifyCert": "Проверить сертификат",
"lastSync": "Последняя синхронизация",
"neverSynced": "Еще не синхронизировано",
"applied": "Прикладной",
"latestReleaseLabel": "Последний выпуск",
"pinnedTagLabel": "Закрепленный тег · {tag}",
"tagMissing": "Не предусмотрено",
"assetChangedTitle": "Релизный актив изменен и требует подтверждения",
"assetChangedDesc": "Удаленная редакция не соответствует опубликованному содержимому. Проверьте версию и ресурсы, а затем подтвердите публикацию именно этой версии.",
"autoUpdateOn": "Вкл.",
"autoUpdateOff": "Выкл.",
"intervalMinutes": "{count, plural, one {# минута} few {# минуты} many {# минут} other {# минуты}}",
"nextCheck": "Следующая проверка",
"waitingSchedule": "Жду расписания",
"lastCheck": "Последняя проверка",
"neverChecked": "Еще не проверено",
"remote": "Удаленный"
}
},
"accessLogs": {
"title": "Журнал запросов",
"subtitle": "Просмотрите обзор трафика, детали IP и запросите журналы.",
"refresh": "Обновить",
"cleanup": "Очистка журналов",
"tabOverview": "Обзор",
"tabIps": "IP-адреса",
"tabList": "Журналы",
"cleaned": "Удалено записей журнала: {count}",
"cleanupFailed": "Очистка не удалась",
"loadingTitle": "Загрузка журналов доступа",
"loadingDesc": "Готовим страницу...",
"loadFailed": "Загрузка не удалась",
"range": {
"h24": "24 часа",
"h168": "7 дней",
"h360": "15 дней",
"h720": "30 дней"
},
"rangeHint": {
"hours24": "Последние 24 часа",
"days": "Период: {count} дн.",
"hours": "Период: {count} ч"
},
"sort": {
"logged_at:desc": "Сначала самые новые",
"logged_at:asc": "Сначала самый старый",
"status_code:desc": "Статус от высокого к низкому",
"status_code:asc": "Статус от низкого к высокому",
"remote_addr:asc": "IP А – Я",
"remote_addr:desc": "IP Я – А",
"total_requests:desc": "Запросы от высокого к низкому",
"total_requests:asc": "Запросы от низкого к высокому",
"request_length:desc": "Входящий от высокого к низкому",
"request_length:asc": "Входящий от низкого к высокому",
"bytes_sent:desc": "Исходящий от высокого к низкому",
"bytes_sent:asc": "Исходящий от низкого к высокому",
"success_ratio:desc": "Соотношение 2xx от высокого к низкому",
"success_ratio:asc": "Соотношение 2xx от низкого к высокому",
"last_seen_at:desc": "Последний раз видели сначала новые",
"last_seen_at:asc": "Последний раз видели самого старшего первым"
},
"cache": {
"hit": "Хит",
"origin": "Сервер-источник",
"uncached": "Некэшированный"
},
"filters": {
"pickTime": "Выберите время",
"remoteAddr": "Источник IP",
"remoteAddrPlaceholder": "Поиск по IP",
"host": "Хост",
"hostPlaceholder": "Поиск по хосту",
"statusCode": "Код состояния",
"statusCodePlaceholder": "Введите код состояния, например. 404",
"more": "Больше фильтров",
"nodeId": "Узел ID",
"nodeIdPlaceholder": "Поиск по node_id",
"path": "Путь",
"pathPlaceholder": "Поиск по пути",
"timeRange": "Временной диапазон",
"pageSize": "За страницу",
"pageSizeItem": "По {count} на странице",
"apply": "Фильтр",
"clear": "Очистить"
},
"cleanupDialog": {
"invalidDays": "Дней хранения должно быть больше 0.",
"title": "Очистка журналов доступа",
"description": "Удалите журналы доступа старше срока хранения. Это невозможно отменить.",
"policy": "Политика хранения",
"keepDays": "Срок хранения: {days} дн.",
"custom": "Пользовательские дни",
"customDays": "Пользовательские дни хранения",
"cleaning": "Очистка...",
"confirm": "Очистить"
},
"detail": {
"title": "Доступ к данным журнала",
"description": "Все поля для этого запроса. Используйте вкладку IP-адреса для анализа IP.",
"logId": "Запись ID",
"requestTime": "Запросить время",
"storedAt": "Хранится в",
"node": "Узел",
"nodeId": "Узел ID",
"clientIp": "Клиент IP",
"region": "Регион",
"host": "Хост",
"status": "Статус",
"cache": "Кэш",
"bytesSent": "Исходящий",
"requestLength": "Входящий",
"duration": "Продолжительность",
"path": "Путь",
"page": "Страница {page}",
"prev": "Назад",
"next": "Далее",
"listTitle": "Журналы",
"empty": "Нет журналов доступа",
"time": "Время",
"view": "Посмотреть детали"
},
"ip": {
"needRange": "Введите время начала и окончания",
"invalidTime": "Неверный формат времени",
"endAfterStart": "Время окончания должно быть позже времени начала.",
"maxRange": "Диапазон времени не может превышать 30 дней.",
"page": "Страница {page}",
"total": " · IP-адресов: {count}",
"prev": "Назад",
"next": "Далее",
"customRange": "Пользовательский диапазон",
"customPending": "Пользовательский (не применяется)",
"timeRange": "Временной диапазон",
"current": "Текущий: {range}",
"custom": "Пользовательский",
"start": "Запустить",
"end": "Конец",
"apply": "Применить",
"applyHint": "Нажмите «Применить» после изменения времени. Окно подробностей соответствует диапазону списка.",
"sort": "Сортировать",
"pageSize": "За страницу",
"title": "IP-адреса",
"empty": "Нет данных IP",
"region": "Регион",
"requests": "Запросы",
"successRatio": "соотношение 2хх",
"inbound": "Входящий",
"outbound": "Исходящий",
"lastSeen": "Последний раз видели",
"view": "Посмотреть детали IP",
"dialogTitle": "IP подробности",
"dialogDesc": ". Просмотрите тенденцию трафика этого IP, его распределение и групповые действия WAF IP-."
},
"analysis": {
"emptySeries": "Нет данных {title}",
"selectGroup": "Выберите группу IP, чтобы присоединиться.",
"added": "Добавлен {ip} в группу IP «{name}».",
"addFailed": "Не удалось добавить в группу IP.",
"removed": "Удален {ip} из группы IP «{name}».",
"removeFailed": "Удалить не удалось",
"joinTitle": "Добавьте IP в группу IP.",
"targetIp": "Цель IP:",
"loadingGroups": "Загрузка групп IP",
"loadGroupsFailed": "Не удалось загрузить группы IP.",
"alreadyIn": "Этот IP уже есть в этих IP группах.",
"alreadyInHint": "Вы можете удалить его или добавить в другую группу IP.",
"entryCount": "{type} · записей: {count}",
"delete": "Удалить",
"cannotDelete": "Невозможно удалить вручную",
"notInAny": "Этого IP пока нет ни в одной группе IP.",
"addToOther": "Добавить в другую группу IP",
"noWritable": "Нет записываемых вручную групп IP (или они уже содержат это IP).",
"selectManual": "Выберите группу вручную IP.",
"close": "Закрыть",
"processing": "Работаю...",
"joinSelected": "Добавить в выбранную группу IP",
"recentHours": "Период: {hours} ч",
"invalidIp": "Нет допустимого IP.",
"addToGroup": "Добавьте IP в группу IP.",
"loading": "Загрузка анализа IP",
"loadFailed": "Не удалось загрузить анализ IP.",
"totalRequests": "Всего запросов",
"errors": "Ошибки",
"bandwidth": "Обслуживаемая пропускная способность",
"received": "Полученные данные",
"uniqueHosts": "Уникальные хосты",
"uniquePaths": "Уникальные пути",
"trend": "IP тренд запроса",
"trendMeta": "{ip} · {range} · интервал: {minutes} мин",
"refresh": "Обновить",
"trendFailed": "Не удалось загрузить тренд.",
"trendEmpty": "У этого IP нет запросов в {range}."
},
"overview": {
"loadingTitle": "Загрузка обзора трафика",
"loadingDesc": "Агрегирование запросов, посещений и тенденций пропускной способности...",
"loadFailed": "Не удалось загрузить обзор трафика.",
"emptyTitle": "Нет обзорных данных",
"emptyDesc": "В текущем временном диапазоне нет статистики трафика.",
"uniqueVisitors": "{hint} · уникальные посетители",
"served": "{hint} · данные отправлены",
"requestsHint": "Следите за необычными скачками или падениями объема запросов.",
"requests": "Запросы",
"deviceDesc": "Запросите общий доступ по типу устройства.",
"deviceEmpty": "Нет данных о типе устройства",
"statusDesc": "Запросите долю по коду статуса HTTP.",
"statusEmpty": "Нет данных кода состояния",
"topPathsDesc": "Наиболее востребованные пути.",
"topHostsDesc": "Хосты с наибольшим трафиком.",
"topIpsDesc": "Исходные IP-адреса с наибольшим количеством запросов.",
"browsersDesc": "Запросы, агрегированные по браузеру.",
"osDesc": "Запросы, агрегированные по операционной системе.",
"uaDesc": "Запросы ранжированы по необработанному значению User-Agent."
},
"toolbar": {
"hostsFiltered": "Хостов в фильтре: {count}",
"filterByHost": "Фильтровать по хосту",
"filterHosts": "Фильтровать хосты",
"clear": "Очистить",
"searchPlaceholder": "Зона поиска или хост",
"loadingHosts": "Загрузка хостов…",
"loadHostsFailed": "Не удалось загрузить хосты",
"retry": "Повторить",
"noRegistered": "Нет зарегистрированных хостов",
"noMatch": "Нет подходящих хостов",
"selectZone": "Выберите зону {name}",
"selectHost": "Выберите хост {name}",
"selectedCount": "Выбрано хостов: {count}"
}
},
"cloudflare": {
"title": "Cloudflare",
"connectionSettings": "Настройки подключения",
"addGroup": "Новая группа",
"loadingOverview": "Загружается обзор Cloudflare...",
"notReadyTitle": "Cloudflare соединение не готово",
"notReadyDesc": "Импортируйте существующую учетную запись Cloudflare DNS или введите отдельный токен API и проверьте соединение.",
"configure": "Настроить соединение",
"groupsTitle": "Группы указателей",
"groupsDesc": "Управляйте целями Cloudflare DNS и членами домена.",
"loadingGroups": "Загрузка групп указателей...",
"emptyTitle": "Нет указывающих групп",
"emptyDesc": "Создайте группу, чтобы привязать членов домена к граничному узлу или пользовательской цели DNS.",
"enabled": "Включено",
"disabled": "Отключено",
"memberSummary": "Доменов: {count} · проксирование новых доменов: {proxy}",
"proxyOn": "на",
"proxyOff": "выкл.",
"manage": "Управление",
"sync": "Синхронизировать",
"delete": "Удалить",
"created": "Группа указателей создана.",
"syncQueued": "Групповая синхронизация поставлена в очередь",
"deleted": "Группа указателей и удаленные записи удалены.",
"deleteTitle": "Удалить группу указателей",
"deleteDesc": "При этом будут удалены все члены записи {name} и удаленные записи DNS, управляемые этим модулем. Это невозможно отменить.",
"confirmDelete": "Удалить",
"loadingDetail": "Загрузка сведений о группе...",
"groupUpdated": "Настройки группы обновлены",
"memberAddedOne": "Домен добавлен и поставлен в очередь на синхронизацию",
"memberAddedMany": "Домены добавлены в очередь синхронизации: {count}",
"memberAddFailed": "Не удалось добавить домены: {count}",
"memberPartial": "Частичный успех: {succeeded} добавлено, {failed} не удалось.",
"proxyUpdated": "Настройки проксирования обновлены. Синхронизация поставлена в очередь.",
"memberSyncQueued": "Синхронизация участников поставлена в очередь",
"memberDeleted": "Запись участника и удаленная запись DNS удалены.",
"batchEnableProxy": "Включить проксирование",
"batchProxyEnabled": "Проксирование включено, синхронизация поставлена в очередь. Доменов: {count}.",
"back": "Вернуться к списку",
"refresh": "Обновить",
"edit": "Изменить",
"addDomain": "Добавить домен",
"currentPoint": "Текущая цель",
"activeNode": "Активный узел {name} · {ip}",
"customTargetSummary": "Пользовательская цель {type} · {content}",
"nodeTargetMode": "Привязка узла",
"customTargetMode": "Пользовательская запись",
"syncEnabled": "Синхронизация включена",
"syncDisabled": "Синхронизация отключена",
"primaryNode": "Первичный {name}",
"backupNode": "Резервная копия {name}",
"backupUnset": "Не установлено",
"members": "Участники домена",
"membersDesc": "Оранжевое облако для каждого участника является единственным источником достоверной информации во время синхронизации.",
"noMembers": "Пока нет участников домена.",
"columns": {
"domain": "Домен",
"desiredIp": "Желаемое значение",
"status": "Статус",
"proxied": "Оранжевое облако",
"actions": "Действия"
},
"pendingSync": "Ожидает синхронизации",
"remove": "Удалить",
"groupDialog": {
"editTitle": "Редактировать группу указателей",
"createTitle": "Новая группа указателей",
"description": "Привяжите элементы к граничному узлу или назначьте настраиваемую цель записи DNS.",
"name": "Название группы",
"targetMode": "Целевой режим",
"bindNode": "Привязать узел",
"customTarget": "Пользовательский",
"recordType": "Тип записи",
"recordContent": "Значение DNS-записи",
"recordContentHint": "Введите IPv4 для A, IPv6 для AAAA или целевое имя хоста для CNAME.",
"recordContentPlaceholder": {
"CNAME": "например origin.example.com",
"A": "e.g. 203.0.113.10",
"AAAA": "например 2001:db8::10"
},
"primary": "Первичный узел",
"primaryPlaceholder": "Выберите пограничный узел с IPv4.",
"noIp": "Нет IP настроено",
"backup": "Резервный узел",
"none": "Нет",
"defaultProxied": "Проксировать новые домены по умолчанию",
"enableSync": "Включить синхронизацию",
"save": "Сохранить"
},
"memberDialog": {
"title": "Добавить участников домена",
"description": "Ищите и выбирайте оптом. Присоединение создает или перенимает уникальную одноименную запись DNS, используемую этой группой.",
"zoneDomain": "Домен зоны",
"searchPlaceholder": "Поиск доменов или зон…",
"selected": "Выбрано: {count}",
"visible": "Показано: {count}",
"unselectAll": "Снять выбор с видимых доменов",
"selectVisible": "Выбрать видимый",
"clear": "Очистить",
"noAvailable": "Нет доступных доменов (уже в группе или не добавлены в управление сайтом).",
"noMatch": "Нет подходящих доменов",
"groupByZone": "Группировать по зонам",
"selectZone": "Выберите зону {name}",
"zone": "Зона DNS",
"proxied": "Проксировать через Cloudflare",
"submitCount": "Добавить и синхронизировать ({count})",
"submit": "Добавить и синхронизировать"
},
"tasks": {
"pending": "Ожидает",
"running": "Выполняется",
"succeeded": "Успешно",
"failed": "Ошибка",
"system": "Система",
"manual": "Вручную",
"retry": "Повторить",
"schedule": "Запланировано",
"retried": "Задача синхронизации повторно поставлена в очередь",
"newTaskId": "Новое задание ID: {id}",
"retryFailed": "Не удалось повторить задачу",
"unknownError": "Неизвестная ошибка",
"title": "Синхронизировать задачи",
"description": "Показывает только выполнение синхронизации домена Cloudflare (sync_member) и групповой синхронизации (sync_group).",
"statusPlaceholder": "Статус",
"allStatus": "Все статусы",
"refresh": "Обновить",
"loadFailed": "Не удалось загрузить задачи синхронизации.",
"loading": "Загрузка задач синхронизации...",
"emptyTitle": "Нет задач синхронизации",
"emptyDesc": "После добавления доменов или синхронизации группы здесь отображаются операции синхронизации домена/группы Cloudflare.",
"columns": {
"task": "Задача",
"status": "Статус",
"trigger": "Триггер",
"duration": "Продолжительность",
"result": "Результат/ошибка",
"createdAt": "Создано"
},
"pageSummary": "Всего: {total}, страница {page}/{pages}",
"prev": "Назад",
"next": "Далее",
"detailTitle": "Синхронизировать сведения о задаче",
"defaultName": "Cloudflare синхронизация",
"loadingDetail": "Загрузка сведений о задаче...",
"status": "Статус",
"trigger": "Триггер",
"retries": "Повторные попытки",
"duration": "Продолжительность",
"taskId": "Задача ID",
"createdAt": "Создано",
"finishedAt": "Завершено",
"result": "Результат",
"error": "Ошибка",
"logs": "Журналы",
"close": "Закрыть"
},
"settings": {
"saved": "Cloudflare соединение сохранено",
"verified": "Cloudflare соединение проверено",
"cleared": "Cloudflare соединение очищено",
"back": "Вернуться к списку",
"title": "Cloudflare соединение",
"sourceTitle": "Источник учетных данных",
"sourceDesc": "Токен должен иметь права Zone:Read и DNS:Edit. Значения токенов не отображаются в ответах API и интерфейсе.",
"source": "Источник подключения",
"importDns": "Импортировать существующую учетную запись DNS.",
"standalone": "Автономный токен API",
"dnsAccount": "Cloudflare DNS аккаунт",
"selectAccount": "Выберите учетную запись DNS.",
"dnsHint": "Показаны только учетные записи типа Cloudflare DNS. Добавьте один в",
"dnsLink": "DNS аккаунтов",
"dnsHintAfter": ".",
"tokenKeep": "Оставьте пустым, чтобы сохранить существующий токен; сохранение заменяет его",
"tokenEnter": "Введите токен Cloudflare API",
"save": "Сохранить настройки",
"test": "Тестовое соединение",
"clear": "Сбросить настройки подключения",
"statusTitle": "Текущий статус",
"ready": "Токен проверен. Cloudflare синхронизация указателей может быть запущена.",
"notReady": "После сохранения вам еще нужно протестировать соединение. Синхронизация отклоняется до тех пор, пока она не будет проверена."
}
},
"openflareOps": {
"saved": "OpenFlare настройки операций сохранены",
"saveFailed": "Сохранить не удалось",
"tokenRotated": "Токен обнаружения заменён",
"tokenRotateFailed": "Не удалось заменить токен",
"kumaSynced": "Uptime Kuma синхронизация выполнена",
"syncFailed": "Синхронизация не удалась",
"invalidParams": "Проверка не удалась",
"loading": "Загрузка настроек операций OpenFlare...",
"loadFailed": "Загрузка не удалась",
"save": "Сохранить",
"agent": {
"title": "Работа агента",
"description": "Интервал контрольных сигналов и тайм-аут отсутствия связи передаются узлам при следующем контрольном сигнале.",
"heartbeat": "Интервал контрольных сигналов ({duration})",
"offline": "Тайм-аут отсутствия связи ({duration})",
"wsUpgrade": "Включить переход на WebSocket",
"wsUpgradeDesc": "После успешного контрольного сигнала по HTTP переходить на WebSocket, чтобы узлы сразу получали уведомления о публикации конфигурации.",
"updateRepo": "Репозиторий обновлений агента"
},
"geo": {
"title": "IP геолокация",
"description": "Управляет источником GeoIP для карт узлов и подобных представлений. Геолокация журнала доступа посетителей всегда использует MaxMind mmdb.",
"mode": "Метод поиска",
"disabled": "Выкл.",
"testIp": "Тест IP",
"querying": "Поиск…",
"query": "Найти",
"country": "Страна/регион"
},
"pages": {
"title": "Статический хостинг страниц",
"description": "Настройте ограничение размера загрузки и количество исторических развертываний, которые сохраняет каждый проект.",
"maxSize": "Ограничение размера пакета (МиБ)",
"history": "Хранить исторические развертывания (0 = неограниченно)",
"historyHint": "В каждом проекте хранится не более N развертываний: всегда сохраняется активное, затем остальные заполняются сначала самыми новыми. Дополнительные неактивные развертывания удаляются после успешной загрузки. Поддерживаются zip, tar.gz, tar.xz, tar.bz2, tar и 7z."
},
"discovery": {
"title": "Токен обнаружения и развертывание",
"description": "Новые узлы используют токен обнаружения при первом подключении. Заменить токен можно в разделе управления узлами или кнопкой ниже.",
"manageNodes": "Управление узлами",
"rotate": "Заменить токен",
"tokenReadonly": "Токен обнаружения (только для чтения)",
"loading": "Загрузка…",
"notGenerated": "Не создано",
"command": "Однострочная команда развертывания",
"commandHint": "Укажите доступный URL сервера и получите токен.",
"copied": "Команда скопирована",
"copy": "Копировать команду"
},
"kuma": {
"title": "Uptime Kuma интеграция",
"description": "Синхронизируйте сайты обратного прокси-сервера с экземпляром Uptime Kuma.",
"syncNow": "Синхронизировать сейчас",
"enable": "Включить Uptime Kuma",
"url": "Uptime Kuma URL",
"username": "Имя пользователя",
"password": "Пароль",
"passwordKeep": "Оставьте пустым, чтобы сохранить текущий пароль.",
"syncInterval": "Интервал синхронизации (минуты)",
"scope": "Область мониторинга",
"allSites": "Все сайты",
"selectedSites": "Выбранные сайты",
"selectedLabel": "Выбранные сайты",
"pickSites": "Выбирайте отслеживаемые сайты",
"noneSelected": "Сайты не выбраны",
"interval": "Интервал проверки (секунды)",
"retry": "Повторные попытки",
"retryInterval": "Интервал повтора (секунды)",
"timeout": "Тайм-аут запроса (секунды)"
},
"duration": {
"minutes": "{count} мин",
"seconds": "{count} сек."
},
"errors": {
"heartbeatMin": "Интервал контрольных сигналов не может быть меньше 1000 миллисекунд.",
"offlineMin": "Тайм-аут отсутствия связи не может быть меньше 10 000 миллисекунд.",
"offlineRatio": "Тайм-аут отсутствия связи должен быть как минимум в 3 раза больше интервала контрольных сигналов.",
"kumaUrl": "Введите Uptime Kuma URL.",
"kumaUser": "Введите имя пользователя Uptime Kuma.",
"syncInterval": "Интервал синхронизации должен быть положительным целым числом.",
"interval": "Интервал контрольных сигналов должен быть положительным целым числом.",
"retry": "Число повторов должно быть неотрицательным целым числом.",
"retryInterval": "Интервал повторных проверок должен быть положительным целым числом.",
"timeout": "Тайм-аут запроса должен быть положительным целым числом.",
"pagesSize": "Максимальный размер пакета страниц должен находиться в диапазоне от 1 до 2048 МБ.",
"pagesHistory": "Число страниц истории должно быть целым числом ≥ 0 (0 означает неограниченное количество)."
},
"status": {
"title": "Статус системы",
"loadFailed": "Не удалось загрузить статус системы.",
"unknownError": "Произошла неизвестная ошибка",
"autoRefresh": "Автообновление",
"refresh": "Обновить",
"overview": "Состояние сервиса",
"overviewDesc": "Основные показатели работоспособности сервиса",
"uptime": "Время работы",
"goroutines": "Горутины",
"heapObjects": "Объекты в куче",
"memory": "Память",
"memoryDesc": "Использование основной памяти",
"alloc": "Текущий объём выделенной памяти",
"totalAlloc": "Всего выделено",
"sys": "Системная память",
"nextGc": "Порог следующего GC",
"usageRatio": "Текущее использование (Alloc/Sys)",
"heapStack": "Куча/стек",
"heapStackDesc": "Подробности кучи и стека во время выполнения",
"heapAlloc": "Выделено в куче",
"heapSys": "Память кучи, полученная от ОС",
"heapIdle": "Незанятая память кучи",
"heapInuse": "Занятая память кучи",
"heapReleased": "Память кучи, возвращённая ОС",
"stackInuse": "Занятая память стека",
"stackSys": "Память стека, полученная от ОС",
"structs": "Внутренние структуры",
"structsDesc": "Память внутренних структур среды выполнения",
"mspanInuse": "MSpan используется",
"mspanSys": "Память MSpan, полученная от ОС",
"mcacheInuse": "MCache используется",
"mcacheSys": "Память MCache, полученная от ОС",
"buckHashSys": "Профилирование хеш-таблицы",
"gcSys": "GC метаданные",
"otherSys": "Другая системная память",
"gc": "GC и выделение памяти",
"gcDesc": "История GC и счётчики операций с памятью",
"numGc": "Количество запусков GC",
"lastGc": "Время с момента последнего GC",
"pauseTotal": "Общая длительность пауз GC",
"lastPause": "Последняя пауза GC",
"mallocs": "Количество выделений памяти",
"frees": "Количество освобождений памяти",
"lookups": "Поиск по указателю"
},
"siteModal": {
"title": "Выбирайте отслеживаемые сайты",
"description": "Выберите сайты обратного прокси-сервера для синхронизации с Uptime Kuma. Поиск по названию сайта или домену.",
"search": "Поиск сайтов",
"searchPlaceholder": "Поиск по имени или домену...",
"selectFiltered": "Выбрать отфильтрованное",
"clearFiltered": "Снять выбор с отфильтрованных сайтов",
"loading": "Загрузка сайтов...",
"loadFailed": "Не удалось загрузить сайты",
"noMatch": "Нет подходящих сайтов",
"select": "Выбрать",
"siteName": "Название сайта",
"primaryDomain": "Основной домен",
"selectedCount": "Выбрано сайтов для мониторинга: {count}",
"save": "Сохранить выбор"
}
}
}