Русский перевод интерфейса и схемы, падежи, выкладка через релиз

Словарь схемы 0.16.25 (7250 строк), ru.json, ручные правки падежей,
перевод ключа name только в меню, release.sh для выкладки в релиз current.

Claude-Session: https://claude.ai/code/session_01BFaqS6mH9sa99RWghq2j46
Этот коммит содержится в:
2026-10-06 01:37:19 +09:00
родитель 891297bdac
Коммит 61ff14915b
28 изменённых файлов: 15322 добавлений и 2007 удалений
+1
Просмотреть файл
@@ -23,3 +23,4 @@ scripts/
!.vscode/
.vscode/*
!.vscode/extensions.json
webui.zip
+28
Просмотреть файл
@@ -0,0 +1,28 @@
# Stalwart WebUI на русском, оформление StackWorks
Форк [stalwartlabs/webui](https://github.com/stalwartlabs/webui) (AGPL-3.0) для почтового сервера
StackWorks mail.stackworks.ru. Отличия от оригинала:
- язык всегда русский: `src/i18n/ru.json` для строк самого интерфейса и `src/i18n/schema-ru.json`
для схемы, которую присылает сервер (названия разделов, полей, описания); перевод схемы делает
`src/i18n/schemaRu.ts` прямо при загрузке, ключ `name` переводится только в меню (layouts),
в остальных местах это идентификаторы полей и значений;
- оформление StackWorks: палитра и шрифты в `src/index.css`, логотип в `src/components/common/Logo.tsx`,
тёмные верхняя полоса и боковое меню (классы sw-top, sw-aside, sw-active).
## Перевод
Рабочие файлы в `i18n-work/`: схема сервера `schema-0.16.25.json`, части перевода `part*.ru.json`,
ручные правки `overrides.ru.json` (падежи названий: единственное число в винительном для
«Создать/Изменить/Удалить …», множественное в родительном для «Показано 1-9 из …»),
глоссарий `GLOSSARY.md`. Склейка: `python3 i18n-work/merge.py`.
После обновления сервера Stalwart новые строки схемы останутся английскими: выгрузить новую
схему (`/api/schema/...` из браузера), найти строки без перевода, перевести и пересобрать.
## Выкладка
`./release.sh` собирает интерфейс и выкладывает `webui.zip` в релиз `current` этого репозитория.
Сервер берёт его по адресу из `x:Application.resourceUrl`:
https://git.stackworks.ru/viktor/stalwart-webui-ru/releases/download/current/webui.zip
и обновляет раз в 30 дней или сразу по действию `x:Action/set {"@type":"UpdateApps"}`.
+1
Просмотреть файл
@@ -209,3 +209,4 @@
297 Группы и роли
298 Обратный DNS для IP
299 Индексный документ
363 Аутентифицирован как
1 1 Все
209 297 Группы и роли
210 298 Обратный DNS для IP
211 299 Индексный документ
212 363 Аутентифицирован как
+197
Просмотреть файл
@@ -0,0 +1,197 @@
1010 Имя пользователя для Basic-аутентификации на endpoint Prometheus
1011 Удалённый клиент превысил допустимое число получателей
1012 Настраивает обработку этапа MAIL FROM и проверку отправителя.
1013 Отображаемое имя участника (например, «Иван Петров» или «Переговорная 4Б»)
1014 Максимальная длина паролей пользователей во внутреннем каталоге.
1015 ID сервера PowerDNS в путях API (по умолчанию localhost)
1016 Секрет или токен для аутентификации на DNS-сервере
1017 Среднее время приёма нового письма в хранилище.
1018 Для аутентификации нужен токен MFA, но он не был передан
1019 Макс. число карточек контактов, которое пользователь может создать по умолчанию
1020 Время ожидания перед новым запросом к push-сервису
1021 Проверять ли домен в адресе почты отправителя.
1022 Настраивает выполнение задач, включая стратегии повторов.
1023 Как долго хранить отправленные письма перед автоматическим удалением
1024 Макс. число попыток доставки до истечения срока жизни письма
1025 Имя пользователя для аутентификации на удалённом сервере
1026 Автоматически добавляет входящие приглашения в календарь пользователя.
1027 Выражение, которое возвращает true, если отправителю разрешено отправлять
1028 Список разрешённых IP-адресов или диапазонов CIDR для этих учётных данных
1029 Параметр L1-регуляризации для алгоритма FTRL-Proximal
1030 WebDAV: блокировка файловых ресурсов для защиты от одновременных изменений
1031 Настраивает анализ входящих отчётов и параметры исходящих.
1032 Идентификатор домена, к которому относится эта подпись DKIM
1033 Начало периода отпуска; если null, действует сразу
1034 Какой скрипт Sieve запускать после команды EHLO от клиента
1035 Не удалось удалить: сервер не подтвердил удаление элемента.
1036 Макс. число писем, которое можно отправить за один сеанс SMTP
1037 Задаёт максимальное число результатов, которое может вернуть метод Query
1038 Время, после которого загрузка ресурса ASN/Geo считается неудачной.
1039 Выражение с пользовательскими правилами субадресации для домена
1040 Имя в заголовке From письма с отчётом DKIM
1041 Макс. число push-подписок, которое пользователь может создать по умолчанию
1042 Настраивает источники данных ASN и геолокации для поиска по IP-адресам.
1043 Адрес отправителя отчёта или пусто, чтобы использовать имя хоста по умолчанию
1044 Пароль администратора, сгенерированный сервером
1045 Сертификат TLS по умолчанию, если клиент не передал SNI
1046 Число писем в этой папке без ключевых слов $seen и $draft
1047 Макс. число попыток сканирования портов до бана IP-адреса
1048 Поставлено в очередь за период: авторизованные отправки, DSN и отчёты.
1049 Макс. число ошибок получателей до разрыва сеанса
1050 WebDAV: блокировка записей адресной книги для защиты от одновременных изменений
1051 Ошибка при сбросе буферизованных данных в клиентское соединение.
1052 Может создавать, изменять, удалять и перемещать карточки контактов в этой адресной книге
1053 Макс. число отключений за бездействие до бана IP-адреса
1054 Клиент изменил список контроля доступа ресурса или коллекции.
1055 Имя хоста или IP-адрес сервера, где работает фильтр Milter
1056 Адрес почты по умолчанию, если отправитель его не указал.
1057 Обнаружена почтовая петля: в письме слишком много заголовков Received
1058 Записи PTR, возвращённые обратным DNS-запросом для удалённого IP-адреса
1059 Алгоритм каноникализации заголовков и тела перед подписью
1060 Запрос данных учётной записи по адресу почты получателя или псевдониму.
1061 Имя хоста сервиса или null, чтобы использовать имя хоста сервера по умолчанию
1062 Клиент скачал ресурс, например событие календаря, контакт или файл.
1063 Return-Path по умолчанию для уведомлений по почте из скрипта Sieve
1064 Число одновременных запросов на разрешение имён
1065 Клиент скопировал ресурс или коллекцию в другое место на сервере.
1066 Сведения о провайдере для сервисов автоконфигурации.
1067 В DKIM2-Signature нет алгоритма подписи, приемлемого для этого сервера.
1068 Может добавлять и снимать ключевое слово $seen у писем в этой папке (IMAP ACL «s»)
1069 Аутентификация на удалённом сервере с настроенными учётными данными ретрансляции.
1070 Разрешать ли все источники (origin) в политике CORS для HTTP-сервера
1071 Настраивает лимиты протокола JMAP для запросов, загрузок и push-уведомлений.
1072 Может создавать, изменять и удалять события пользователя и события без владельца
1073 Ограничивает число одновременных запросов пользователя к серверу JMAP
1074 Адрес почты отправителя письма, связанного с этим образцом для обучения
1075 Бакет S3 для хранения блобов (писем, скриптов Sieve и т. д.)
1076 Выражение, которое возвращает стратегию планирования при постановке писем в очередь
1077 Через сколько вебхук будет отброшен, если его не удаётся доставить
1078 Настраивает аутентификацию, включая политики паролей и роли по умолчанию.
1079 Макс. число уведомлений для событий календаря, которое пользователь может создать по умолчанию
1080 Настраивает проверку отправителей: DKIM, SPF, DMARC и ARC.
1081 Макс. число ошибок аутентификации до разрыва сеанса
1082 Адрес удалённого SMTP-сервера: IP-адрес или доменное имя
1083 Должен ли Stalwart подключаться к серверу с недействительным сертификатом TLS
1084 Срок хранения ID, сохранённых расширением duplicate из пользовательских скриптов
1085 Тема ответа автоответчика; если null, сервер выберет подходящую
1086 Критическая ошибка при инициализации сервера, запустить сервер не удалось.
1087 Индекс шарда для обслуживания, если применимо к типу обслуживания
1088 Сервер запущен в режиме восстановления для обслуживания или диагностики.
1089 В заголовке DKIM2 Message-Instance нет обязательного тега, поэтому его нельзя проверить.
1090 Для этого домена не найдено корректных адресов для отчётов, отчёт не будет отправлен.
1091 Время, после которого эта подпись DKIM истекает и перестаёт считаться действительной
1092 Устанавливается TCP-соединение с удалённым почтовым сервером для исходящей доставки.
1093 Срок хранения ID, сохранённых расширением duplicate из доверенных скриптов
1094 Откройте доступ к этой папке другим учётным записям и задайте их права.
1095 Этот узел подключился к бэкенду PubSub и начал получать сообщения от других узлов.
1096 Создано уведомление об успешной доставке (DSN) и поставлено в очередь для исходного отправителя.
1097 Макс. размер ответа в байтах, который Stalwart примет от этого сервера Milter
1098 Порт удалённого сервера, обычно 25 для SMTP и 11200 для LMTP
1099 Push-уведомление успешно доставлено на зарегистрированный push-адрес клиента.
1100 Имя в заголовке From письма с отчётом о сбое аутентификации SPF
1101 Макс. размер ответа в байтах, который Stalwart примет от этого сервера MTA Hook
1102 Имя поля формы обратной связи, где указан адрес почты отправителя.
1103 Скрипт Sieve, указанный по имени в правиле конфигурации или действии include, не найден.
1104 Список локальных адресов IPv4 и IPv6 для доставки писем на удалённые SMTP-серверы
1105 На порту приёма произошла критическая ошибка, возможно, он перестал принимать соединения.
1106 Выполняется DNS-запрос записи TLSA для домена удалённого сервера.
1107 Может удалять письма из этой папки, перемещая или уничтожая их (IMAP ACL «te»)
1108 Число одновременных загрузок блобов с этой учётной записи достигло лимита.
1109 В запросе ресурса неверные или отсутствующие параметры, выполнить запрос нельзя.
1110 Число вызовов методов в одном запросе JMAP превышает максимум, заданный на сервере.
1111 Нет DNS-записи, нужной для аутентификации почты (например, ключа DKIM или политики SPF).
1112 Как часто менять ключи DKIM. Требует включённого автоматического управления DNS для домена.
1113 Удалённый сервер отклонил команду MAIL FROM, возможно, адрес или домен отправителя заблокирован.
1114 Адрес почты по умолчанию для поля From в уведомлениях из скрипта Sieve
1115 Очередь исходящих писем MTA запущена и готова обрабатывать и доставлять письма.
1116 Входящее письмо прошло спам-проверки и доставлено в почтовый ящик получателя.
1117 Необработанные байты, отправленные на удалённый сервер; пишутся на уровне trace для отладки сеанса SMTP.
1118 Сбой криптографической операции (подписи или проверки) при обработке аутентификации письма.
1119 Необработанные байты, отправленные клиенту ManageSieve; пишутся на уровне trace для отладки протокола.
1120 Версия протокола Milter, которую Stalwart использует при обмене с сервером Milter
1121 Макс. число попыток злоупотребления (ретрансляция или неудачные RCPT TO) до бана IP-адреса
1122 Поиск конкретной записи не дал результата; вызывающий код считает это ожидаемым промахом.
1123 Не считать письма спамом, если они отправлены с адресов из адресной книги пользователя.
1124 Идентификатор агента или пользователя (i=) в подписи DKIM не принадлежит домену подписи (d=).
1125 Пробовать ли TCP для запросов разрешения имён, если запрос по UDP завершился ошибкой
1126 Начато плавное завершение работы; активные соединения будут закрыты до выхода процесса.
1127 API DNS-провайдера не смогло удалить запись; в DNS могут остаться устаревшие записи проверки или DKIM.
1128 Версия vCard при сериализации карточек контактов для клиентов, не запросивших конкретную версию
1129 Бэкенд Meilisearch вернул ошибку; проверьте доступность сервиса и настройки индекса.
1130 Ключ подписи DKIM из конфигурации не найден; исходящие письма не будут подписаны.
1131 Уведомление о недоставке само не доставлено; письмо окончательно отброшено, чтобы избежать цикла доставки.
1132 Закрытый ключ ECDSA P-256 (PKCS#8 PEM) для подписи токенов аутентификации VAPID (RFC 8292) в Web Push.
1133 Метод каноникализации в подписи DKIM не распознан; подпись проверить нельзя.
1134 Ошибка пула соединений с базой данных: пул мог исчерпаться или бэкенд недоступен.
1135 Для домена удалённого сервера нет записи TLSA; проверка DANE для этого соединения пропущена.
1136 Удалённый сервер не прислал корректное приветствие SMTP 220 после подключения; сеанс продолжить нельзя.
1137 Ошибка при обработке запроса WebDAV; проверьте код статуса и путь к ресурсу.
1138 Для удалённых серверов с несколькими адресами: макс. число IP-адресов для каждой попытки доставки
1139 Является ли это адресной книгой учётной записи по умолчанию. У учётной записи может быть не более одной такой книги.
1140 Цикл сбора метрик завершён; счётчики и гистограммы сняты и готовы к экспорту.
1141 Ошибка при HTTP-запросе, например ответ 4xx или 5xx либо сбой на уровне транспорта.
1142 Задаёт начальный размер буфера чтения, в котором накапливаются части сообщений протокола.
1143 Не удалось доставить напоминание календаря; получатель может не узнать о предстоящем событии.
1144 Как долго держать IP-адрес в сером списке. Серый список задерживает письма неизвестных отправителей.
1145 Принято новое соединение POP3; сервер начнёт обрабатывать команды POP3 от этого клиента.
1146 Необработанные байты от удалённого клиента SMTP; пишутся на уровне trace для отладки сеанса SMTP.
1147 Внешнее письмо с отчётом не удалось разобрать; содержимое отчёта обработать нельзя.
1148 Заказ ACME перешёл в состояние «valid»: сертификат выпущен и готов к загрузке.
1149 Локальный путь для распаковки пакета приложения. Если пусто, приложение будет распаковано в /tmp.
1150 Ошибка при сохранении входящего письма; оно могло не дойти до получателя.
1151 Вложение отчёта не удалось распаковать (например, повреждён gzip); содержимое отчёта обработать нельзя.
1152 Ошибка при записи данных в клиентское соединение; соединение могло неожиданно закрыться.
1153 Период вывода ключа DKIM из использования истёк, его DNS-запись удалена; ключ больше не используется.
1154 Выражение конфигурации вычислено и дало результат; пишется на уровне trace для отладки логики правил.
1155 Настройка лимитов по умолчанию для почтовых сущностей и специальных папок, создаваемых для новых пользователей
1156 Попытка исходящей доставки завершена, успешно или с записанной временной либо постоянной ошибкой.
1157 Список узлов кластера с уникальным идентификатором, именем хоста, временем последнего продления аренды и статусом
1158 Время последнего продления аренды этим узлом; по нему определяется, активен ли узел в кластере
1159 Временная ошибка DNS не дала завершить проверку SPF; для этого письма результат считается neutral.
1160 Сервер не может вычислить изменения с момента токена состояния клиента; клиент должен выполнить полную синхронизацию.
1161 Политика MTA-STS домена получателя получена и сохранена в кэше для решений при исходящей доставке.
1162 Не удалось инициализировать клиент DNS-провайдера из конфигурации; автоматическое управление DNS-записями работать не будет.
1163 У набора заголовков ARC номер экземпляра не по порядку или некорректен, целостность цепочки нарушена.
1164 Не удалось собрать конфигурацию сервера из записей реестра; сервер может не запуститься или не перезагрузиться корректно.
1165 Заказ ACME завершился ошибкой и не может быть выполнен; провайдер отклонил одну или несколько проверок владения доменом.
1166 Создано уведомление о временной неудаче доставки; отправителя информируют, что доставка будет повторена.
1167 Временная ошибка DNS не дала завершить обратный запрос; результат IPREV для этого письма не определён.
1168 Запрошено TLS-соединение, но для этого порта приёма не настроен сертификат; соединение установить нельзя.
1169 Для этого порта приёма нет действительных сертификатов TLS; TLS-соединения будут отклоняться, пока сертификат не появится.
1170 Это событие очереди уже обрабатывает другой узел кластера; этот узел пропустит его, чтобы не дублировать попытки доставки.
1171 По умолчанию Client отправляет операции в Client через канал ёмкостью 2048. Эта опция позволяет изменить значение
1172 Переопределяет разрешённые узлы MX для домена политики MTA-STS. Если пусто, они берутся из системных настроек
1173 Не удалось скачать HTTP-список (например, список блокировки или разрешений); он не обновится до следующей попытки.
1174 Имя хоста удалённого почтового сервера не указано в политике MTA-STS; доставка может быть заблокирована в зависимости от режима политики.
1175 Провайдер ACME отклонил запрос: для этого домена за короткое время сделано слишком много попыток проверки.
1176 Клиент запросил метаданные свойств ресурса или коллекции (используется CalDAV/CardDAV для обнаружения календарей и контактов).
1177 API DNS-провайдера отклонило запрос на создание записи или не смогло его выполнить; проверки ACME DNS-01 и публикация DKIM могут быть заблокированы.
1178 Срок временной записи в списке разрешённых IP истёк, она удалена; для этого IP снова действуют обычные правила доступа.
1179 При обработке аутентификации обнаружена некритичная проблема, например неожиданный формат токена или аномалия поиска в каталоге.
1180 Задаёт имя в поле «From» писем с напоминаниями календаря, чтобы отправитель был узнаваем для пользователей
1181 Не удалось привязать порт приёма к настроенному адресу и порту: порт может быть занят или не хватает прав.
1182 IP отправляющего сервера не авторизован, но владелец домена предпочитает принять письмо с предупреждением, а не отклонить.
1183 Перейдите на Enterprise-версию Stalwart, введя здесь лицензионный ключ. Получить лицензию можно на https://license.stalw.art/buy
1184 Настройка хранения адресных книг и контактов, лимита размера vCard по умолчанию и квот на адресные книги и контакты для учётной записи
1185 Получен ответ от настроенного провайдера ИИ/LLM; пишется на уровне trace для отладки классификации или генерации с помощью ИИ.
1186 Сервер настроен доверять обратному прокси, но заголовка X-Forwarded-For нет; IP-адрес клиента невозможно определить точно.
1187 Общий объём памяти, разделяемый блочными кэшами всех семейств столбцов, для кэширования блоков данных, индексов и фильтров Блума, прочитанных с диска
1188 Домен получателя опубликовал пустую запись MX (RFC 7505), прямо указывающую, что он не принимает почту; доставка невозможна.
1189 Настройка сетевых сервисов в автоконфигурации и DNS-записях, включая почтовые обменники и конечные точки разных протоколов.
1190 Настройка резолвера, который Stalwart использует для всех DNS-запросов, включая MX, TXT, RBL и TLSA при доставке почты и применении политик
1191 Обратная DNS-запись подключившегося IP указывает на имя хоста, которое разрешается обратно в тот же IP: forward-confirmed reverse DNS подтверждён.
1192 Настройка выражений, выбирающих стратегии маршрутизации, планирования, соединения и TLS при доставке писем из исходящей очереди
1193 Настройка срока хранения трассировок доставки и истории метрик до окончательного удаления, а также частоты сбора истории метрик
1194 Настройка клиента совместного обнаружения спама Pyzor: вышестоящий сервер, тайм-ауты и пороги числа блокировок и разрешений для классификации
1195 Список явно отключённых прав доступа, даже если они наследуются через другие роли или группы. Имеет приоритет над включёнными правами.
1196 Список механизмов SASL для клиентов или пустой список, чтобы отключить аутентификацию. Stalwart поддерживает PLAIN, LOGIN и OAUTHBEARER
1197 Настройка полнотекстового индексирования писем, календарей, контактов и данных трассировки: индексируемые поля, определение языка по умолчанию и размеры пакетов
1198 Как долго хранить удалённые элементы в архиве до окончательного удаления. Если null, удалённые элементы не архивируются и сразу удаляются безвозвратно.
1199 Ищет группы, в которые входит учётная запись. Используйте, если членство в группах не указано в записи учётной записи. Символ ? в фильтре будет заменён на DN учётной записи.
1200 Настройка порогов и длительности банов, автоматически блокирующих удалённые IP-адреса за повторные неудачные аутентификации, попытки злоупотребления, бездействующие соединения и сканирование HTTP-портов
1201 Настройка отчётов DMARC (сводных и о сбоях аутентификации): личность отправителя, домен подписи, данные организации, лимит размера отчёта и частота отправки сводных отчётов
1202 Используется при получении учётных данных из общего файла. Если указан, сервер использует ID ключа доступа, секретный ключ доступа и токен сеанса (если есть) для этого профиля
1203 Одна запись кэша больше заданной ёмкости кэша, поэтому её не удалось сохранить и она будет заново строиться из базы при каждом обращении; увеличьте соответствующий размер кэша, чтобы убрать повторные перестроения.
1204 Можно автоматизировать DNS-записи, нужные почтовому серверу (SPF, DKIM, DMARC и другие), подключив API вашего DNS-провайдера.\nОставьте ручной режим, если ваш DNS не размещён у поддерживаемого провайдера; включить автоматизацию можно и позже.
1205 Откуда берутся учётные записи и учётные данные.\nВнутренний каталог рекомендуется для простой настройки и управления через WebUI, но в крупных организациях можно использовать внешние каталоги OIDC или LDAP для единого входа и создания пользователей.
1206 Использовать ли bind-аутентификацию. Если включено, сервер ищет учётную запись по filterLogin и пытается выполнить bind от её имени с введённым паролем. Если выключено, сервер подключается к LDAP по bind DN и секрету и получает секрет из записи учётной записи по атрибуту attrSecret.
1 1010 Имя пользователя для Basic-аутентификации на endpoint Prometheus
2 1011 Удалённый клиент превысил допустимое число получателей
3 1012 Настраивает обработку этапа MAIL FROM и проверку отправителя.
4 1013 Отображаемое имя участника (например, «Иван Петров» или «Переговорная 4Б»)
5 1014 Максимальная длина паролей пользователей во внутреннем каталоге.
6 1015 ID сервера PowerDNS в путях API (по умолчанию localhost)
7 1016 Секрет или токен для аутентификации на DNS-сервере
8 1017 Среднее время приёма нового письма в хранилище.
9 1018 Для аутентификации нужен токен MFA, но он не был передан
10 1019 Макс. число карточек контактов, которое пользователь может создать по умолчанию
11 1020 Время ожидания перед новым запросом к push-сервису
12 1021 Проверять ли домен в адресе почты отправителя.
13 1022 Настраивает выполнение задач, включая стратегии повторов.
14 1023 Как долго хранить отправленные письма перед автоматическим удалением
15 1024 Макс. число попыток доставки до истечения срока жизни письма
16 1025 Имя пользователя для аутентификации на удалённом сервере
17 1026 Автоматически добавляет входящие приглашения в календарь пользователя.
18 1027 Выражение, которое возвращает true, если отправителю разрешено отправлять
19 1028 Список разрешённых IP-адресов или диапазонов CIDR для этих учётных данных
20 1029 Параметр L1-регуляризации для алгоритма FTRL-Proximal
21 1030 WebDAV: блокировка файловых ресурсов для защиты от одновременных изменений
22 1031 Настраивает анализ входящих отчётов и параметры исходящих.
23 1032 Идентификатор домена, к которому относится эта подпись DKIM
24 1033 Начало периода отпуска; если null, действует сразу
25 1034 Какой скрипт Sieve запускать после команды EHLO от клиента
26 1035 Не удалось удалить: сервер не подтвердил удаление элемента.
27 1036 Макс. число писем, которое можно отправить за один сеанс SMTP
28 1037 Задаёт максимальное число результатов, которое может вернуть метод Query
29 1038 Время, после которого загрузка ресурса ASN/Geo считается неудачной.
30 1039 Выражение с пользовательскими правилами субадресации для домена
31 1040 Имя в заголовке From письма с отчётом DKIM
32 1041 Макс. число push-подписок, которое пользователь может создать по умолчанию
33 1042 Настраивает источники данных ASN и геолокации для поиска по IP-адресам.
34 1043 Адрес отправителя отчёта или пусто, чтобы использовать имя хоста по умолчанию
35 1044 Пароль администратора, сгенерированный сервером
36 1045 Сертификат TLS по умолчанию, если клиент не передал SNI
37 1046 Число писем в этой папке без ключевых слов $seen и $draft
38 1047 Макс. число попыток сканирования портов до бана IP-адреса
39 1048 Поставлено в очередь за период: авторизованные отправки, DSN и отчёты.
40 1049 Макс. число ошибок получателей до разрыва сеанса
41 1050 WebDAV: блокировка записей адресной книги для защиты от одновременных изменений
42 1051 Ошибка при сбросе буферизованных данных в клиентское соединение.
43 1052 Может создавать, изменять, удалять и перемещать карточки контактов в этой адресной книге
44 1053 Макс. число отключений за бездействие до бана IP-адреса
45 1054 Клиент изменил список контроля доступа ресурса или коллекции.
46 1055 Имя хоста или IP-адрес сервера, где работает фильтр Milter
47 1056 Адрес почты по умолчанию, если отправитель его не указал.
48 1057 Обнаружена почтовая петля: в письме слишком много заголовков Received
49 1058 Записи PTR, возвращённые обратным DNS-запросом для удалённого IP-адреса
50 1059 Алгоритм каноникализации заголовков и тела перед подписью
51 1060 Запрос данных учётной записи по адресу почты получателя или псевдониму.
52 1061 Имя хоста сервиса или null, чтобы использовать имя хоста сервера по умолчанию
53 1062 Клиент скачал ресурс, например событие календаря, контакт или файл.
54 1063 Return-Path по умолчанию для уведомлений по почте из скрипта Sieve
55 1064 Число одновременных запросов на разрешение имён
56 1065 Клиент скопировал ресурс или коллекцию в другое место на сервере.
57 1066 Сведения о провайдере для сервисов автоконфигурации.
58 1067 В DKIM2-Signature нет алгоритма подписи, приемлемого для этого сервера.
59 1068 Может добавлять и снимать ключевое слово $seen у писем в этой папке (IMAP ACL «s»)
60 1069 Аутентификация на удалённом сервере с настроенными учётными данными ретрансляции.
61 1070 Разрешать ли все источники (origin) в политике CORS для HTTP-сервера
62 1071 Настраивает лимиты протокола JMAP для запросов, загрузок и push-уведомлений.
63 1072 Может создавать, изменять и удалять события пользователя и события без владельца
64 1073 Ограничивает число одновременных запросов пользователя к серверу JMAP
65 1074 Адрес почты отправителя письма, связанного с этим образцом для обучения
66 1075 Бакет S3 для хранения блобов (писем, скриптов Sieve и т. д.)
67 1076 Выражение, которое возвращает стратегию планирования при постановке писем в очередь
68 1077 Через сколько вебхук будет отброшен, если его не удаётся доставить
69 1078 Настраивает аутентификацию, включая политики паролей и роли по умолчанию.
70 1079 Макс. число уведомлений для событий календаря, которое пользователь может создать по умолчанию
71 1080 Настраивает проверку отправителей: DKIM, SPF, DMARC и ARC.
72 1081 Макс. число ошибок аутентификации до разрыва сеанса
73 1082 Адрес удалённого SMTP-сервера: IP-адрес или доменное имя
74 1083 Должен ли Stalwart подключаться к серверу с недействительным сертификатом TLS
75 1084 Срок хранения ID, сохранённых расширением duplicate из пользовательских скриптов
76 1085 Тема ответа автоответчика; если null, сервер выберет подходящую
77 1086 Критическая ошибка при инициализации сервера, запустить сервер не удалось.
78 1087 Индекс шарда для обслуживания, если применимо к типу обслуживания
79 1088 Сервер запущен в режиме восстановления для обслуживания или диагностики.
80 1089 В заголовке DKIM2 Message-Instance нет обязательного тега, поэтому его нельзя проверить.
81 1090 Для этого домена не найдено корректных адресов для отчётов, отчёт не будет отправлен.
82 1091 Время, после которого эта подпись DKIM истекает и перестаёт считаться действительной
83 1092 Устанавливается TCP-соединение с удалённым почтовым сервером для исходящей доставки.
84 1093 Срок хранения ID, сохранённых расширением duplicate из доверенных скриптов
85 1094 Откройте доступ к этой папке другим учётным записям и задайте их права.
86 1095 Этот узел подключился к бэкенду PubSub и начал получать сообщения от других узлов.
87 1096 Создано уведомление об успешной доставке (DSN) и поставлено в очередь для исходного отправителя.
88 1097 Макс. размер ответа в байтах, который Stalwart примет от этого сервера Milter
89 1098 Порт удалённого сервера, обычно 25 для SMTP и 11200 для LMTP
90 1099 Push-уведомление успешно доставлено на зарегистрированный push-адрес клиента.
91 1100 Имя в заголовке From письма с отчётом о сбое аутентификации SPF
92 1101 Макс. размер ответа в байтах, который Stalwart примет от этого сервера MTA Hook
93 1102 Имя поля формы обратной связи, где указан адрес почты отправителя.
94 1103 Скрипт Sieve, указанный по имени в правиле конфигурации или действии include, не найден.
95 1104 Список локальных адресов IPv4 и IPv6 для доставки писем на удалённые SMTP-серверы
96 1105 На порту приёма произошла критическая ошибка, возможно, он перестал принимать соединения.
97 1106 Выполняется DNS-запрос записи TLSA для домена удалённого сервера.
98 1107 Может удалять письма из этой папки, перемещая или уничтожая их (IMAP ACL «te»)
99 1108 Число одновременных загрузок блобов с этой учётной записи достигло лимита.
100 1109 В запросе ресурса неверные или отсутствующие параметры, выполнить запрос нельзя.
101 1110 Число вызовов методов в одном запросе JMAP превышает максимум, заданный на сервере.
102 1111 Нет DNS-записи, нужной для аутентификации почты (например, ключа DKIM или политики SPF).
103 1112 Как часто менять ключи DKIM. Требует включённого автоматического управления DNS для домена.
104 1113 Удалённый сервер отклонил команду MAIL FROM, возможно, адрес или домен отправителя заблокирован.
105 1114 Адрес почты по умолчанию для поля From в уведомлениях из скрипта Sieve
106 1115 Очередь исходящих писем MTA запущена и готова обрабатывать и доставлять письма.
107 1116 Входящее письмо прошло спам-проверки и доставлено в почтовый ящик получателя.
108 1117 Необработанные байты, отправленные на удалённый сервер; пишутся на уровне trace для отладки сеанса SMTP.
109 1118 Сбой криптографической операции (подписи или проверки) при обработке аутентификации письма.
110 1119 Необработанные байты, отправленные клиенту ManageSieve; пишутся на уровне trace для отладки протокола.
111 1120 Версия протокола Milter, которую Stalwart использует при обмене с сервером Milter
112 1121 Макс. число попыток злоупотребления (ретрансляция или неудачные RCPT TO) до бана IP-адреса
113 1122 Поиск конкретной записи не дал результата; вызывающий код считает это ожидаемым промахом.
114 1123 Не считать письма спамом, если они отправлены с адресов из адресной книги пользователя.
115 1124 Идентификатор агента или пользователя (i=) в подписи DKIM не принадлежит домену подписи (d=).
116 1125 Пробовать ли TCP для запросов разрешения имён, если запрос по UDP завершился ошибкой
117 1126 Начато плавное завершение работы; активные соединения будут закрыты до выхода процесса.
118 1127 API DNS-провайдера не смогло удалить запись; в DNS могут остаться устаревшие записи проверки или DKIM.
119 1128 Версия vCard при сериализации карточек контактов для клиентов, не запросивших конкретную версию
120 1129 Бэкенд Meilisearch вернул ошибку; проверьте доступность сервиса и настройки индекса.
121 1130 Ключ подписи DKIM из конфигурации не найден; исходящие письма не будут подписаны.
122 1131 Уведомление о недоставке само не доставлено; письмо окончательно отброшено, чтобы избежать цикла доставки.
123 1132 Закрытый ключ ECDSA P-256 (PKCS#8 PEM) для подписи токенов аутентификации VAPID (RFC 8292) в Web Push.
124 1133 Метод каноникализации в подписи DKIM не распознан; подпись проверить нельзя.
125 1134 Ошибка пула соединений с базой данных: пул мог исчерпаться или бэкенд недоступен.
126 1135 Для домена удалённого сервера нет записи TLSA; проверка DANE для этого соединения пропущена.
127 1136 Удалённый сервер не прислал корректное приветствие SMTP 220 после подключения; сеанс продолжить нельзя.
128 1137 Ошибка при обработке запроса WebDAV; проверьте код статуса и путь к ресурсу.
129 1138 Для удалённых серверов с несколькими адресами: макс. число IP-адресов для каждой попытки доставки
130 1139 Является ли это адресной книгой учётной записи по умолчанию. У учётной записи может быть не более одной такой книги.
131 1140 Цикл сбора метрик завершён; счётчики и гистограммы сняты и готовы к экспорту.
132 1141 Ошибка при HTTP-запросе, например ответ 4xx или 5xx либо сбой на уровне транспорта.
133 1142 Задаёт начальный размер буфера чтения, в котором накапливаются части сообщений протокола.
134 1143 Не удалось доставить напоминание календаря; получатель может не узнать о предстоящем событии.
135 1144 Как долго держать IP-адрес в сером списке. Серый список задерживает письма неизвестных отправителей.
136 1145 Принято новое соединение POP3; сервер начнёт обрабатывать команды POP3 от этого клиента.
137 1146 Необработанные байты от удалённого клиента SMTP; пишутся на уровне trace для отладки сеанса SMTP.
138 1147 Внешнее письмо с отчётом не удалось разобрать; содержимое отчёта обработать нельзя.
139 1148 Заказ ACME перешёл в состояние «valid»: сертификат выпущен и готов к загрузке.
140 1149 Локальный путь для распаковки пакета приложения. Если пусто, приложение будет распаковано в /tmp.
141 1150 Ошибка при сохранении входящего письма; оно могло не дойти до получателя.
142 1151 Вложение отчёта не удалось распаковать (например, повреждён gzip); содержимое отчёта обработать нельзя.
143 1152 Ошибка при записи данных в клиентское соединение; соединение могло неожиданно закрыться.
144 1153 Период вывода ключа DKIM из использования истёк, его DNS-запись удалена; ключ больше не используется.
145 1154 Выражение конфигурации вычислено и дало результат; пишется на уровне trace для отладки логики правил.
146 1155 Настройка лимитов по умолчанию для почтовых сущностей и специальных папок, создаваемых для новых пользователей
147 1156 Попытка исходящей доставки завершена, успешно или с записанной временной либо постоянной ошибкой.
148 1157 Список узлов кластера с уникальным идентификатором, именем хоста, временем последнего продления аренды и статусом
149 1158 Время последнего продления аренды этим узлом; по нему определяется, активен ли узел в кластере
150 1159 Временная ошибка DNS не дала завершить проверку SPF; для этого письма результат считается neutral.
151 1160 Сервер не может вычислить изменения с момента токена состояния клиента; клиент должен выполнить полную синхронизацию.
152 1161 Политика MTA-STS домена получателя получена и сохранена в кэше для решений при исходящей доставке.
153 1162 Не удалось инициализировать клиент DNS-провайдера из конфигурации; автоматическое управление DNS-записями работать не будет.
154 1163 У набора заголовков ARC номер экземпляра не по порядку или некорректен, целостность цепочки нарушена.
155 1164 Не удалось собрать конфигурацию сервера из записей реестра; сервер может не запуститься или не перезагрузиться корректно.
156 1165 Заказ ACME завершился ошибкой и не может быть выполнен; провайдер отклонил одну или несколько проверок владения доменом.
157 1166 Создано уведомление о временной неудаче доставки; отправителя информируют, что доставка будет повторена.
158 1167 Временная ошибка DNS не дала завершить обратный запрос; результат IPREV для этого письма не определён.
159 1168 Запрошено TLS-соединение, но для этого порта приёма не настроен сертификат; соединение установить нельзя.
160 1169 Для этого порта приёма нет действительных сертификатов TLS; TLS-соединения будут отклоняться, пока сертификат не появится.
161 1170 Это событие очереди уже обрабатывает другой узел кластера; этот узел пропустит его, чтобы не дублировать попытки доставки.
162 1171 По умолчанию Client отправляет операции в Client через канал ёмкостью 2048. Эта опция позволяет изменить значение
163 1172 Переопределяет разрешённые узлы MX для домена политики MTA-STS. Если пусто, они берутся из системных настроек
164 1173 Не удалось скачать HTTP-список (например, список блокировки или разрешений); он не обновится до следующей попытки.
165 1174 Имя хоста удалённого почтового сервера не указано в политике MTA-STS; доставка может быть заблокирована в зависимости от режима политики.
166 1175 Провайдер ACME отклонил запрос: для этого домена за короткое время сделано слишком много попыток проверки.
167 1176 Клиент запросил метаданные свойств ресурса или коллекции (используется CalDAV/CardDAV для обнаружения календарей и контактов).
168 1177 API DNS-провайдера отклонило запрос на создание записи или не смогло его выполнить; проверки ACME DNS-01 и публикация DKIM могут быть заблокированы.
169 1178 Срок временной записи в списке разрешённых IP истёк, она удалена; для этого IP снова действуют обычные правила доступа.
170 1179 При обработке аутентификации обнаружена некритичная проблема, например неожиданный формат токена или аномалия поиска в каталоге.
171 1180 Задаёт имя в поле «From» писем с напоминаниями календаря, чтобы отправитель был узнаваем для пользователей
172 1181 Не удалось привязать порт приёма к настроенному адресу и порту: порт может быть занят или не хватает прав.
173 1182 IP отправляющего сервера не авторизован, но владелец домена предпочитает принять письмо с предупреждением, а не отклонить.
174 1183 Перейдите на Enterprise-версию Stalwart, введя здесь лицензионный ключ. Получить лицензию можно на https://license.stalw.art/buy
175 1184 Настройка хранения адресных книг и контактов, лимита размера vCard по умолчанию и квот на адресные книги и контакты для учётной записи
176 1185 Получен ответ от настроенного провайдера ИИ/LLM; пишется на уровне trace для отладки классификации или генерации с помощью ИИ.
177 1186 Сервер настроен доверять обратному прокси, но заголовка X-Forwarded-For нет; IP-адрес клиента невозможно определить точно.
178 1187 Общий объём памяти, разделяемый блочными кэшами всех семейств столбцов, для кэширования блоков данных, индексов и фильтров Блума, прочитанных с диска
179 1188 Домен получателя опубликовал пустую запись MX (RFC 7505), прямо указывающую, что он не принимает почту; доставка невозможна.
180 1189 Настройка сетевых сервисов в автоконфигурации и DNS-записях, включая почтовые обменники и конечные точки разных протоколов.
181 1190 Настройка резолвера, который Stalwart использует для всех DNS-запросов, включая MX, TXT, RBL и TLSA при доставке почты и применении политик
182 1191 Обратная DNS-запись подключившегося IP указывает на имя хоста, которое разрешается обратно в тот же IP: forward-confirmed reverse DNS подтверждён.
183 1192 Настройка выражений, выбирающих стратегии маршрутизации, планирования, соединения и TLS при доставке писем из исходящей очереди
184 1193 Настройка срока хранения трассировок доставки и истории метрик до окончательного удаления, а также частоты сбора истории метрик
185 1194 Настройка клиента совместного обнаружения спама Pyzor: вышестоящий сервер, тайм-ауты и пороги числа блокировок и разрешений для классификации
186 1195 Список явно отключённых прав доступа, даже если они наследуются через другие роли или группы. Имеет приоритет над включёнными правами.
187 1196 Список механизмов SASL для клиентов или пустой список, чтобы отключить аутентификацию. Stalwart поддерживает PLAIN, LOGIN и OAUTHBEARER
188 1197 Настройка полнотекстового индексирования писем, календарей, контактов и данных трассировки: индексируемые поля, определение языка по умолчанию и размеры пакетов
189 1198 Как долго хранить удалённые элементы в архиве до окончательного удаления. Если null, удалённые элементы не архивируются и сразу удаляются безвозвратно.
190 1199 Ищет группы, в которые входит учётная запись. Используйте, если членство в группах не указано в записи учётной записи. Символ ? в фильтре будет заменён на DN учётной записи.
191 1200 Настройка порогов и длительности банов, автоматически блокирующих удалённые IP-адреса за повторные неудачные аутентификации, попытки злоупотребления, бездействующие соединения и сканирование HTTP-портов
192 1201 Настройка отчётов DMARC (сводных и о сбоях аутентификации): личность отправителя, домен подписи, данные организации, лимит размера отчёта и частота отправки сводных отчётов
193 1202 Используется при получении учётных данных из общего файла. Если указан, сервер использует ID ключа доступа, секретный ключ доступа и токен сеанса (если есть) для этого профиля
194 1203 Одна запись кэша больше заданной ёмкости кэша, поэтому её не удалось сохранить и она будет заново строиться из базы при каждом обращении; увеличьте соответствующий размер кэша, чтобы убрать повторные перестроения.
195 1204 Можно автоматизировать DNS-записи, нужные почтовому серверу (SPF, DKIM, DMARC и другие), подключив API вашего DNS-провайдера.\nОставьте ручной режим, если ваш DNS не размещён у поддерживаемого провайдера; включить автоматизацию можно и позже.
196 1205 Откуда берутся учётные записи и учётные данные.\nВнутренний каталог рекомендуется для простой настройки и управления через WebUI, но в крупных организациях можно использовать внешние каталоги OIDC или LDAP для единого входа и создания пользователей.
197 1206 Использовать ли bind-аутентификацию. Если включено, сервер ищет учётную запись по filterLogin и пытается выполнить bind от её имени с введённым паролем. Если выключено, сервер подключается к LDAP по bind DN и секрету и получает секрет из записи учётной записи по атрибуту attrSecret.
+23
Просмотреть файл
@@ -0,0 +1,23 @@
import json,glob,re
d=json.load(open('../part3.json'))
tr={}
for f in sorted(glob.glob('[a-d].tsv')):
for l in open(f,encoding='utf-8').read().split('\n'):
if not l.strip(): continue
i,t=l.split('\t',1); tr[int(i)]=t.replace('\\n','\n')
out={s:tr.get(i,s) for i,s in enumerate(d)}
json.dump(out,open('../part3.ru.json','w'),ensure_ascii=False,indent=1)
# checks
assert len(out)==len(d)==len(set(d))
pat=re.compile(r'%\{[^}]*\}|\{\{[^}]*\}\}|\{[^{}]*\}|\$\w+')
bad=0
for k,v in out.items():
if '—' in v or '–' in v: print('DASH',k);bad+=1
for m in pat.findall(k):
if m not in v: print('PH',k,'|',v);bad+=1
kept=sum(1 for k,v in out.items() if k==v)
print(len(out),'kept',kept,'bad',bad)
# Latin/Cyrillic mixed words
for k,v in out.items():
for w in re.findall(r'\w+',v):
if re.search('[а-яё]',w,re.I) and re.search('[a-z]',w,re.I): print('MIX',w,v)
-16
Просмотреть файл
@@ -1,16 +0,0 @@
import json,re,glob,sys
a=json.load(open('part1.json'))
tz=re.compile(r'(Africa|America|Asia|Atlantic|Australia|Europe|Indian|Pacific|Antarctica|Arctic|Etc|US|Brazil|Canada|Chile|Mexico)/')
d={}
for f in sorted(glob.glob('part1.ru.chunk*.txt')):
for l in open(f).read().splitlines():
if ' => ' in l:
k,v=l.split(' => ',1);d[k]=v
for f in glob.glob('keep*.txt'):
for l in open(f).read().splitlines():
if l:d[l]=l
lo,hi=int(sys.argv[1]),int(sys.argv[2])
for i,s in enumerate(a[lo:hi],lo):
if s not in d and not tz.match(s):print('MISS',i,json.dumps(s,ensure_ascii=False))
bad=set(d)-set(a)
if bad:print('EXTRA',list(bad)[:20])
-34
Просмотреть файл
@@ -1,34 +0,0 @@
CSV
EST
LZ4
PRC
TLS
UTC
EXPN
HTTP
POP3
RSVP
W-SU
500ms
DeSEC
Gcore
SHA-1
GleSYS
LuaDNS
OVH CA
SQLite
Vercel
EST5EDT
PST8PDT
RCPT TO
SHA-256
/var/log
SoftFail
stalwart
Kwajalein
ap-east-1
us-east-1
HMAC-SHA384
TLS-ALPN-01
stalwart.log
Soyoustart CA
-5
Просмотреть файл
@@ -1,5 +0,0 @@
ap-northeast-1
cn-northwest-1
HMAC-SHA256-128
Relaxed/Relaxed
user@example.com
+47
Просмотреть файл
@@ -0,0 +1,47 @@
#!/usr/bin/env python3
"""Склейка переводов: i18n-work/part*.ru.json -> src/i18n/schema-ru.json и src/i18n/ru.json.
schema-ru.json - плоский словарь «английская строка -> русская» для схемы сервера.
ru.json - тот же формат, что en.json (вложенные ключи), значения взяты из словаря;
если перевода нет, остаётся английский текст.
Правки руками, которые должны пережить пересборку, класть в overrides.ru.json.
"""
import glob
import json
import os
import re
HERE = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.dirname(HERE)
d = {}
for f in sorted(glob.glob(os.path.join(HERE, "part[0-9].ru.json"))):
d.update(json.load(open(f, encoding="utf-8")))
ov = os.path.join(HERE, "overrides.ru.json")
if os.path.exists(ov):
d.update(json.load(open(ov, encoding="utf-8")))
# страховка: длинные тире в интерфейсе не нужны
d = {k: v.replace("—", "-").replace("–", "-") for k, v in d.items()}
# подстановки обязаны совпадать, иначе берём оригинал
PH = re.compile(r"\{\{[^}]+\}\}|%\{[^}]+\}|\{[a-z][^{}]*\}")
bad = [k for k, v in d.items() if sorted(PH.findall(k)) != sorted(PH.findall(v))]
for k in bad:
d[k] = k
json.dump(d, open(os.path.join(ROOT, "src/i18n/schema-ru.json"), "w", encoding="utf-8"), ensure_ascii=False, indent=0, sort_keys=True)
en = json.load(open(os.path.join(ROOT, "src/i18n/en.json"), encoding="utf-8"))
def tr(o):
if isinstance(o, dict):
return {k: tr(v) for k, v in o.items()}
if isinstance(o, str):
return d.get(o, o)
return o
json.dump(tr(en), open(os.path.join(ROOT, "src/i18n/ru.json"), "w", encoding="utf-8"), ensure_ascii=False, indent=2)
print(f"словарь: {len(d)} строк, отброшено из-за подстановок: {len(bad)}")
+124
Просмотреть файл
@@ -0,0 +1,124 @@
{
"AI model": "модель ИИ",
"API key": "ключ API",
"App password": "пароль приложения",
"DNS server": "DNS-сервер",
"OAuth client": "клиент OAuth",
"action": "действие",
"address book": "адресную книгу",
"address": "адрес",
"alert": "оповещение",
"application": "приложение",
"archived item": "архивный элемент",
"calendar": "календарь",
"certificate": "сертификат",
"cluster node": "узел кластера",
"directory": "каталог пользователей",
"domain": "домен",
"event": "событие",
"extension": "расширение",
"failed task": "неудачную задачу",
"group": "группу",
"hook": "хук",
"inbound delivery": "входящую доставку",
"key": "ключ",
"list": "список",
"listener": "порт приёма",
"log entry": "запись журнала",
"lookup": "справочник",
"mailbox": "папку",
"mailing list": "список рассылки",
"masked email": "скрытый адрес",
"message": "письмо",
"metric": "метрику",
"milter": "milter",
"outbound delivery": "исходящую доставку",
"principal": "участника",
"provider": "провайдер",
"public key": "открытый ключ",
"queue": "очередь",
"quota": "квоту",
"report": "отчёт",
"role": "роль",
"route": "маршрут",
"rule": "правило",
"sample": "образец",
"schedule": "расписание",
"script": "скрипт",
"server": "сервер",
"signature": "подпись",
"strategy": "стратегию",
"tag": "тег",
"task": "задачу",
"tenant": "организацию",
"throttle": "ограничение",
"trace": "трассировку",
"tracer": "трассировщик",
"user": "пользователя",
"webhook": "вебхук",
"AI models": "моделей ИИ",
"API keys": "ключей API",
"App passwords": "паролей приложений",
"DNS servers": "DNS-серверов",
"OAuth clients": "клиентов OAuth",
"actions": "действий",
"address books": "адресных книг",
"addresses": "адресов",
"alerts": "оповещений",
"applications": "приложений",
"archived items": "архивных элементов",
"calendars": "календарей",
"certificates": "сертификатов",
"cluster nodes": "узлов кластера",
"directories": "каталогов",
"domains": "доменов",
"events": "событий",
"extensions": "расширений",
"failed tasks": "неудачных задач",
"groups": "групп",
"hooks": "хуков",
"inbound deliveries": "входящих доставок",
"keys": "ключей",
"lists": "списков",
"listeners": "портов приёма",
"log entries": "записей журнала",
"lookups": "справочников",
"mailboxes": "папок",
"mailing lists": "списков рассылки",
"masked emails": "скрытых адресов",
"messages": "писем",
"metrics": "метрик",
"milters": "milter",
"outbound deliveries": "исходящих доставок",
"principals": "участников",
"providers": "провайдеров",
"public keys": "открытых ключей",
"queues": "очередей",
"quotas": "квот",
"reports": "отчётов",
"roles": "ролей",
"routes": "маршрутов",
"rules": "правил",
"samples": "образцов",
"schedules": "расписаний",
"scripts": "скриптов",
"servers": "серверов",
"signatures": "подписей",
"strategies": "стратегий",
"tags": "тегов",
"tasks": "задач",
"tenants": "организаций",
"throttles": "ограничений",
"traces": "трассировок",
"tracers": "трассировщиков",
"users": "пользователей",
"webhooks": "вебхуков",
"Observability": "Мониторинг",
"Cluster": "Кластер",
"Telemetry": "Телеметрия",
"Management": "Управление",
"Lookups": "Справочники",
"MTA": "Отправка (MTA)",
"AI": "ИИ",
"Enterprise": "Enterprise"
}
-222
Просмотреть файл
@@ -1,222 +0,0 @@
GB => ГБ
To => Кому
Body => Тело письма
Data => Данные
Info => Информация
List => Список
Save => Сохранить
Tags => Теги
item => элемент
rule => правило
Clear => Очистить
Event => Событие
Inbox => Входящие
Level => Уровень
Model => Модель
Proxy => Прокси
Ratio => Соотношение
Store => Хранилище
Trash => Корзина
event => событие
mySQL => MySQL
tasks => задачи
Action => Действие
Cancel => Отмена
Delete => Удалить
Errors => Ошибки
Key ID => ID ключа
Policy => Политика
Region => Регион
Server => Сервер
Timing => Время
domain => домен
memory => память
routes => маршруты
traces => трассировки
Actions => Действия
Base DN => Базовый DN
Changes => Изменения
Connect => Подключиться
Disable => Выключить
Filters => Фильтры
Headers => Заголовки
Logging => Журнал
Members => Участники
Network => Сеть
Restart => Перезапустить
Signing => Подпись
Summary => Сводка
Updates => Обновления
address => адрес
lookups => запросы
samples => образцы
API type => Тип API
Base URL => Базовый URL
Contacts => Контакты
DNS View => Представление DNS
Document => Документ
Group ID => ID группы
IMAP UID => IMAP UID
Key Name => Имя ключа
Local IP => Локальный IP
Min Wait => Мин. ожидание
No delay => Без задержки
Policies => Политики
Queue ID => ID очереди
Rotation => Ротация
Sections => Разделы
Training => Обучение
Value... => Значение...
messages => письма
API Token => Токен API
Caused by => Причина
Container => Контейнер
DSNs Sent => Отправлено DSN
Generator => Генератор
Histogram => Гистограмма
IPv4 Zone => Зона IPv4
Item Type => Тип элемента
MTA Hooks => Хуки MTA
My Rights => Мои права
Principal => Участник
Remote IP => Удалённый IP
Reuse key => Использовать ключ повторно
Script Id => ID скрипта
Separator => Разделитель
Spam Test => Проверка на спам
Time Zone => Часовой пояс
User OCID => OCID пользователя
Version 2 => Версия 2
extension => расширение
principal => участник
(optional) => (необязательно)
AUTH Stage => Этап AUTH
Attributes => Атрибуты
Categories => Категории
Confidence => Достоверность
Custom DNS => Свой DNS
DNS Server => Сервер DNS
Deliver At => Доставить в
Encryption => Шифрование
Event Type => Тип события
Expression => Выражение
IMAP Flags => Флаги IMAP
Issuer URL => URL эмитента
Loading... => Загрузка...
MX Records => Записи MX
Max Shares => Макс. число общих ресурсов
Next Retry => Следующая попытка
Parameters => Параметры
Public Key => Открытый ключ
Read Items => Чтение элементов
Route type => Тип маршрута
Secret Key => Секретный ключ
Spam Traps => Ловушки для спама
Text value => Текстовое значение
URL Prefix => Префикс URL
User Agent => User Agent
Virus Test => Проверка на вирусы
extensions => расширения
strategies => стратегии
Account Key => Ключ учётной записи
Bcc Address => Адрес скрытой копии
Contact UID => UID контакта
DKIM Domain => Домен DKIM
Description => Описание
E-mail Size => Размер письма
Enable list => Включить список
Export logs => Экспорт журналов
Float value => Дробное значение
Header Size => Размер заголовка
License Key => Лицензионный ключ
Lookup Keys => Ключи поиска
Max Results => Макс. число результатов
MySQL error => Ошибка MySQL
Performance => Производительность
Pyzor error => Ошибка Pyzor
Redis error => Ошибка Redis
Retry limit => Лимит повторов
SPF records => Записи SPF
Set up TOTP => Настроить TOTP
Spam Filter => Спам-фильтр
Sub-Auth ID => ID субаутентификации
Total Users => Всего пользователей
certificate => сертификат
public keys => открытые ключи
Account Name => Имя учётной записи
Address Book => Адресная книга
App password => Пароль приложения
Bearer Token => Токен Bearer
Client Token => Токен клиента
Contact Info => Контактные данные
Custom range => Свой диапазон
DMARC Report => Отчёт DMARC
DNS over TLS => DNS через TLS
Delete Group => Удалить группу
Email Domain => Почтовый домен
Entry length => Длина записи
Failure Type => Тип сбоя
From address => Адрес отправителя
Header Index => Индекс заголовка
Live Tracing => Трассировка в реальном времени
Max API Keys => Макс. число ключей API
Max lifetime => Макс. срок жизни
Metric store => Хранилище метрик
Nested Tests => Вложенные проверки
Oracle Cloud => Oracle Cloud
Queue Quotas => Квоты очереди
Remove Items => Удаление элементов
Restrictions => Ограничения
SQLite error => Ошибка SQLite
Shards Total => Всего шардов
Store Lookup => Поиск в хранилище
TLSA Records => Записи TLSA
Testing Mode => Тестовый режим
URL Resource => Ресурс URL
View details => Подробнее
applications => приложения
failed tasks => неудавшиеся задачи
Access Rights => Права доступа
Archived File => Архивный файл
Bad extension => Недопустимое расширение
Connect Stage => Этап подключения
DKIM Identity => Идентичность DKIM
DNS Made Easy => DNS Made Easy
Default Roles => Роли по умолчанию
Discard After => Удалять через
EHLO accepted => EHLO принят
Email Aliases => Псевдонимы почты
Envelope Test => Проверка конверта
Group account => Групповая учётная запись
Indexing Time => Время индексации
Live Property => Текущее свойство
Manage alerts => Управление оповещениями
Message Count => Число писем
Nested Blocks => Вложенные блоки
OIDC Provider => Провайдер OIDC
Push interval => Интервал отправки
Read replicas => Реплики для чтения
Reported URIs => Указанные URI
Route Details => Сведения о маршруте
Select key... => Выберите ключ...
Sharded Store => Шардированное хранилище
Subject field => Поле темы
Tracing Store => Хранилище трассировки
Variable Name => Имя переменной
iMIP Template => Шаблон iMIP
ACME providers => Провайдеры ACME
Alarm Template => Шаблон напоминания
Archived Until => В архиве до
Cache is stale => Кэш устарел
Classification => Классификация
Create Timeout => Тайм-аут создания
DNS Management => Управление DNS
Default Expiry => Срок хранения по умолчанию
Delivery tests => Проверки доставки
Email Defaults => Почта по умолчанию
External Rules => Внешние правила
Future Release => Отложенная отправка
IMAP IDLE stop => Остановка IMAP IDLE
Include Source => Включить исходник
tag => тег
File Name => Имя файла
-267
Просмотреть файл
@@ -1,267 +0,0 @@
Invalid ARC CV => Недопустимое значение CV в ARC
Local Delivery => Локальная доставка
Mailbox Limits => Ограничения почтового ящика
Metrics pushed => Метрики отправлены
Netcup API key => Ключ API Netcup
Protocol Flags => Флаги протокола
Read Free/Busy => Чтение занятости (свободен/занят)
Report Address => Адрес для отчётов
Retry Strategy => Стратегия повторов
Security Token => Токен безопасности
Shared Folders => Общие папки
Spam threshold => Порог спама
TLS negotiated => TLS согласован
Total failures => Всего сбоев
View Zone File => Показать файл зоны
Additional Info => Дополнительная информация
Buffered writes => Буферизованная запись
Chat Completion => Чат-ответ (Chat Completion)
DKIM Signatures => Подписи DKIM
Default Folders => Папки по умолчанию
Discard message => Отбросить письмо
Failed to save. => Не удалось сохранить.
IMAP IDLE start => Начало IMAP IDLE
Key Fingerprint => Отпечаток ключа
MAIL FROM Stage => Этап MAIL FROM
Match condition => Условие совпадения
Message Content => Содержимое письма
Nested Includes => Вложенные подключения
No get response => Нет ответа на get
Preferred chain => Предпочтительная цепочка
SMTP AUTH Stage => Этап SMTP AUTH
SPF EHLO Result => Результат SPF для EHLO
Server Hostname => Имя сервера
Storage Backend => Бэкенд хранилища
TLS version 1.2 => TLS версии 1.2
Trace not found => Трассировка не найдена
URL Redirectors => Сервисы перенаправления URL
WebDAV Protocol => Протокол WebDAV
Account Password => Пароль учётной записи
Archived Contact => Контакт в архиве
Confidence Index => Индекс достоверности
DANE TLSA policy => Политика DANE TLSA
Default Calendar => Календарь по умолчанию
Delivery Threads => Потоки доставки
Filesystem error => Ошибка файловой системы
HTTP Report URIs => URI для отчётов по HTTP
IP allow expired => Срок разрешения IP истёк
MX record lookup => Поиск записи MX
Max Lock Timeout => Макс. тайм-аут блокировки
Min. Ham samples => Мин. число образцов не-спама
Object not found => Объект не найден
PostgreSQL error => Ошибка PostgreSQL
Pyzor Classifier => Классификатор Pyzor
Reject threshold => Порог отклонения
Reporting Period => Период отчёта
SPF check failed => Проверка SPF не пройдена
Service Settings => Настройки службы
Tracing Indexing => Индексация трассировки
Untrusted Expiry => Срок для недоверенных
Wasabi us-east-2 => Wasabi us-east-2
cPanel API token => Токен API cPanel
Allowed endpoints => Разрешённые адреса доступа
Associated Domain => Связанный домен
Contacts Settings => Настройки контактов
Debug in Sievepad => Отладить в Sievepad
Domain Management => Управление доменами
Enable some tasks => Включить часть задач
Failed to delete. => Не удалось удалить.
IMAP COPY command => Команда IMAP COPY
IMAP UID validity => Действительность IMAP UID
Loading schema... => Загрузка схемы...
Meilisearch error => Ошибка Meilisearch
Min. Spam samples => Мин. число образцов спама
No results found. => Ничего не найдено.
POP3 LIST command => Команда POP3 LIST
Queue description => Описание очереди
Report Recipients => Получатели отчётов
SMTP HELP command => Команда SMTP HELP
Secret Access Key => Секретный ключ доступа
Stalwart Calendar => Календарь Stalwart
Too many messages => Слишком много писем
Writing to Milter => Запись в Milter
ACME order started => Заказ ACME начат
Account Switch Key => Ключ переключения учётной записи
Allowed Mechanisms => Разрешённые механизмы
Banned due to scan => Заблокирован за сканирование
Clustering enabled => Кластеризация включена
DKIM2 sequence gap => Разрыв последовательности DKIM2
Delivery Intervals => Интервалы доставки
Digital Ocean nyc3 => Digital Ocean nyc3
Email notification => Уведомление по почте
Format of the list => Формат списка
HMAC using SHA-512 => HMAC с SHA-512
IMAP CLOSE command => Команда IMAP CLOSE
Implicit TLS error => Ошибка неявного TLS
Mail loop detected => Обнаружена почтовая петля
Max iCal Instances => Макс. число экземпляров iCal
Minimum Batch Size => Минимальный размер пакета
Nested event value => Вложенное значение события
Original Recipient => Исходный получатель
Policy Application => Применение политики
RCPT TO greylisted => RCPT TO в серых списках
Resource not found => Ресурс не найден
SPF neutral result => Нейтральный результат SPF
Started {{s}}s ago => Запущено {{s}} с назад
TLS report content => Содержимое отчёта TLS
Verify After Write => Проверять после записи
inbound deliveries => входящие доставки
Account Type Column => Столбец типа учётной записи
Allow Invalid Certs => Разрешить недействительные сертификаты
Banned due to abuse => Заблокирован за злоупотребления
Calendar alarm sent => Напоминание календаря отправлено
ClouDNS sub-auth ID => ID субаутентификации ClouDNS
DKIM2 (RSA SHA-256) => DKIM2 (RSA SHA-256)
Default Certificate => Сертификат по умолчанию
ElasticSearch error => Ошибка ElasticSearch
Exoscale API secret => Секрет API Exoscale
HTTP error occurred => Произошла ошибка HTTP
IMAP SELECT command => Команда IMAP SELECT
Indexing Batch Size => Размер пакета индексации
Joker DMAPI API key => Ключ API Joker DMAPI
Mailbox by OBJECTID => Папка по OBJECTID
Network flush error => Ошибка сброса сетевого буфера
Notification E-mail => Почта для уведомлений
Reason for blocking => Причина блокировки
SMTP RCPT TO failed => SMTP RCPT TO не удался
SPF temporary error => Временная ошибка SPF
Server thread error => Ошибка потока сервера
Source IP Addresses => IP-адреса источника
TLS handshake error => Ошибка рукопожатия TLS
Transaction timeout => Тайм-аут транзакции
Wasabi ca-central-1 => Wasabi ca-central-1
WebDAV LOCK request => Запрос WebDAV LOCK
ACME token not found => Токен ACME не найден
Allowed IP addresses => Разрешённые IP-адреса
Basic Authentication => Базовая аутентификация
Calendars and Events => Календари и события
DKIM Failure Reports => Отчёты о сбоях DKIM
Data store read time => Время чтения из хранилища данных
Disabled Permissions => Отключённые права доступа
Failed to load data. => Не удалось загрузить данные.
IMAP Events in Sieve => События IMAP в Sieve
Invalid EHLO command => Недопустимая команда EHLO
MTA-STS Policy Fetch => Получение политики MTA-STS
Name of the database => Имя базы данных
Outgoing report size => Размер исходящего отчёта
Proxy protocol error => Ошибка протокола Proxy
Result not specified => Результат не указан
SPF identity aligned => Идентичность SPF согласована
Sharded Lookup Store => Шардированное справочное хранилище
Spam Filter Settings => Настройки спам-фильтра
Task will be retried => Задача будет повторена
Variable Name Length => Длина имени переменной
…and {{count}} more. => …и ещё {{count}}.
Already authenticated => Аутентификация уже выполнена
Archived Sieve Script => Архивный фильтр Sieve
Blob delete operation => Удаление файла из хранилища
Calendar iTIP message => Сообщение iTIP календаря
Connection pool error => Ошибка пула соединений
DMARC permanent error => Постоянная ошибка DMARC
Data store write time => Время записи в хранилище данных
Don't show this again => Больше не показывать
Enable spam filtering => Включить фильтрацию спама
IMAP GETQUOTA command => Команда IMAP GETQUOTA
IPREV permanent error => Постоянная ошибка IPREV
JMAP anchor not found => Якорь JMAP не найден
MTA-STS policy record => Запись политики MTA-STS
Milter action: Accept => Действие Milter: принять
Outbound Rate Limiter => Ограничитель исходящей скорости
Reload: Lookup stores => Перезагрузка: справочные хранилища
SMTP STARTTLS command => Команда SMTP STARTTLS
SPF From check passed => Проверка SPF по From пройдена
Sign in to the server => Вход на сервер
TLS Aggregate Reports => Сводные отчёты TLS
The body of the email => Тело письма
Unsupported parameter => Неподдерживаемый параметр
Volcengine access key => Ключ доступа Volcengine
WebDAV DELETE request => Запрос WebDAV DELETE
Write batch operation => Пакетная запись
Account Type Attribute => Атрибут типа учётной записи
Auth exchange too long => Обмен данными аутентификации слишком длинный
Cache & Temporary Data => Кэш и временные данные
Client sorted messages => Клиент отсортировал письма
DKIM signature deleted => Подпись DKIM удалена
DMARC: Troubleshooting => DMARC: диагностика
Domains being reported => Домены в отчёте
Failed to start trace. => Не удалось запустить трассировку.
Invalid JMAP arguments => Недопустимые аргументы JMAP
JMAP: Remove calendars => JMAP: удаление календарей
Mailbox does not exist => Папка не существует
Milter action: Discard => Действие Milter: отбросить
Network listener error => Ошибка порта приёма
Port of the DNS server => Порт сервера DNS
Require Authentication => Требовать аутентификацию
Task scheduler started => Планировщик задач запущен
Unexpected Sieve error => Непредвиденная ошибка Sieve
WebDAV OPTIONS request => Запрос WebDAV OPTIONS
Active POP3 connections => Активные соединения POP3
Azure cloud environment => Облачная среда Azure
Client checked a script => Клиент проверил скрипт
Client fetched messages => Клиент получил письма
Contact Fields to Index => Поля контактов для индексации
DKIM1 (Ed25519 SHA-256) => DKIM1 (Ed25519 SHA-256)
Enable Pyzor classifier => Включить классификатор Pyzor
Failed to fetch metrics => Не удалось получить метрики
IMAP connection started => Соединение IMAP установлено
JMAP resource not found => Ресурс JMAP не найден
MTA hook action: Reject => Действие хука MTA: отклонить
Manage permission roles => Управление ролями прав доступа
Message was quarantined => Письмо помещено в карантин
Policy Override Reasons => Причины переопределения политики
Raw IMAP input received => Получены необработанные данные IMAP
Replace all permissions => Заменить все права доступа
SMTP MAIL FROM rejected => SMTP MAIL FROM отклонён
Showing {{count}} items => Показано элементов: {{count}}
TLSA record match found => Найдено совпадение с записью TLSA
Tracing Fields to Index => Поля трассировки для индексации
Unauthorized IP address => IP-адрес не авторизован
WebDAV PROPFIND request => Запрос WebDAV PROPFIND
Authentication Directory => Каталог для аутентификации
Bemba locale for Zambia. => Язык бемба, Замбия.
Client created a mailbox => Клиент создал папку
Client reset the session => Клиент сбросил сессию
DKIM verification failed => Проверка DKIM не пройдена
DNS Made Easy API secret => Секрет API DNS Made Easy
Delivery attempt started => Попытка доставки начата
External Account Binding => Привязка внешней учётной записи
IMAP UNSUBSCRIBE command => Команда IMAP UNSUBSCRIBE
Kreyol locale for Haiti. => Креольский язык, Гаити.
ManageSieve NOOP command => Команда ManageSieve NOOP
Mythic Beasts API key ID => ID ключа API Mythic Beasts
Outbound Report Settings => Настройки исходящих отчётов
Redirect with Deliver-By => Перенаправление с Deliver-By
Spanish locale for Cuba. => Испанский язык, Куба.
TLS Strategy description => Описание стратегии TLS
Task scheduled for retry => Задача запланирована на повтор
The path to the log file => Путь к файлу журнала
WebDAV PROPPATCH request => Запрос WebDAV PROPPATCH
Address of the DNS server => Адрес сервера DNS
Authentication successful => Аутентификация выполнена
DKIM key has been revoked => Ключ DKIM отозван
DNS record not propagated => DNS-запись ещё не распространилась
Do not store tracing data => Не хранить данные трассировки
Encoded Character Support => Поддержка закодированных символов
French locale for France. => Французский язык, Франция.
Inbound Delivery Attempts => Попытки входящей доставки
Invalid recipient address => Недопустимый адрес получателя
Local registry read error => Ошибка чтения локального реестра
Maximum number of domains => Максимальное число доменов
Message passed evaluation => Письмо прошло проверку
New training sample added => Добавлен новый обучающий образец
Private key in PEM format => Закрытый ключ в формате PEM
Report submitted via HTTP => Отчёт отправлен по HTTP
Spanish locale for Spain. => Испанский язык, Испания.
Tags Management: Get tags => Управление тегами: получение тегов
Timeout for HTTP requests => Тайм-аут HTTP-запросов
Update Private Properties => Обновление закрытых свойств
Wolof locale for Senegal. => Язык волоф, Сенегал.
Authentication not allowed => Аутентификация не разрешена
Chuvash locale for Russia. => Чувашский язык, Россия.
Current status of the task => Текущее состояние задачи
DNS record deletion failed => Не удалось удалить DNS-запись
English locale for Israel. => Английский язык, Израиль.
Failed to parse ARF report => Не удалось разобрать отчёт ARF
IBM Cloud account username => Имя пользователя учётной записи IBM Cloud
JMAP: Remove contact cards => JMAP: удаление карточек контактов
Local registry parse error => Ошибка разбора локального реестра
-299
Просмотреть файл
@@ -1,299 +0,0 @@
Maximum length is {{max}}. => Максимальная длина: {{max}}.
Minimum length is {{min}}. => Минимальная длина: {{min}}.
Outbound Delivery Attempts => Попытки исходящей доставки
SMTP authentication failed => Аутентификация SMTP не пройдена
Spanish locale for Mexico. => Испанский язык, Мексика.
The TTL for new DNS record => TTL для новой DNS-записи
Use the internal directory => Использовать внутренний каталог
API signing key fingerprint => Отпечаток ключа подписи API
Central Nahuatl for Mexico. => Центральный науатль, Мексика.
Creation date of the domain => Дата создания домена
DMARC report format version => Версия формата отчёта DMARC
Enable or disable the alert => Включить или выключить оповещение
English locale for the USA. => Английский язык, США.
Generate Email Signing Keys => Создать ключи подписи почты
Invalid DELIVERBY parameter => Недопустимый параметр DELIVERBY
Keys Management: Query keys => Управление ключами: поиск ключей
Manage allowed IP addresses => Управление разрешёнными IP-адресами
Maximum number of DKIM keys => Максимальное число ключей DKIM
Multiple MAIL FROM commands => Несколько команд MAIL FROM
OpenTelemetry HTTP endpoint => HTTP-адрес OpenTelemetry
Processing ACME certificate => Обработка сертификата ACME
Reason for the last failure => Причина последнего сбоя
Russian locale for Ukraine. => Русский язык, Украина.
Settings: Get imap settings => Настройки: получение настроек IMAP
Spanish locale for Uruguay. => Испанский язык, Уругвай.
Task: Calendar alarm e-mail => Задача: письмо с напоминанием календаря
The rate limit was exceeded => Превышен лимит запросов
Whether to enable this rule => Включить это правило
An unexpected error occurred => Произошла непредвиденная ошибка
Classifying message for spam => Проверка письма на спам
Croatian locale for Croatia. => Хорватский язык, Хорватия.
Domain the policy applies to => Домен, к которому применяется политика
English locale for Zimbabwe. => Английский язык, Зимбабве.
Failed to parse DMARC report => Не удалось разобрать отчёт DMARC
JMAP: Remove calendar events => JMAP: удаление событий календаря
L2 (euclidean) normalization => Нормализация L2 (евклидова)
ManageSieve connection ended => Соединение ManageSieve завершено
No specific action requested => Особое действие не запрошено
Roles assigned to this group => Роли, назначенные этой группе
Size of the message in bytes => Размер письма в байтах
Successful DKIM verification => Проверка DKIM пройдена
The VRFY command is disabled => Команда VRFY отключена
Whether to enable this quota => Включить эту квоту
Action: Reload: Lookup stores => Действие: перезагрузка справочных хранилищ
Authentication result details => Подробности результата аутентификации
DKIM2 public key syntax error => Синтаксическая ошибка открытого ключа DKIM2
Disable all network listeners => Выключить все порты приёма
Enable some network listeners => Включить часть портов приёма
Events Management: Get events => Управление событиями: получение событий
Hungarian locale for Hungary. => Венгерский язык, Венгрия.
Let's get your server set up. => Давайте настроим сервер.
Maximum number of public keys => Максимальное число открытых ключей
Queues Management: Get queues => Управление очередями: получение очередей
Routes Management: Get routes => Управление маршрутами: получение маршрутов
Spanish locale for Argentina. => Испанский язык, Аргентина.
Successful DMARC verification => Проверка DMARC пройдена
The DSN extension is disabled => Расширение DSN отключено
WebDAV: Remove file resources => WebDAV: удаление файловых ресурсов
Active ManageSieve connections => Активные соединения ManageSieve
Calendar iTIP message received => Получено сообщение iTIP календаря
DKIM selector used for signing => Селектор DKIM для подписи
Delivery Attempt: {{hostname}} => Попытка доставки: {{hostname}}
Domain to use for DKIM signing => Домен для подписи DKIM
Exact domain match is required => Требуется точное совпадение домена
German locale for Switzerland. => Немецкий язык, Швейцария.
JMAP: Create new contact cards => JMAP: создание карточек контактов
Lists Management: Update lists => Управление списками: изменение списков
Microsoft Autodiscover records => Записи Microsoft Autodiscover
OCI region (e.g. us-ashburn-1) => Регион OCI (например, us-ashburn-1)
PubSub subscriber disconnected => Подписчик PubSub отключился
Rules Management: Create rules => Управление правилами: создание правил
Settings: Get sharing settings => Настройки: получение настроек общего доступа
Slovenian locale for Slovenia. => Словенский язык, Словения.
Tasks Management: Update tasks => Управление задачами: изменение задач
Trace completed for {{target}} => Трассировка для {{target}} завершена
Walser locale for Switzerland. => Язык вальзер, Швейцария.
Xhosa locale for South Africa. => Язык коса, Южная Африка.
Allow plain text authentication => Разрешить аутентификацию открытым текстом
Client requested mailbox status => Клиент запросил состояние папки
DNS Tree Walk method (RFC 9989) => Метод обхода дерева DNS (RFC 9989)
Events Management: Query events => Управление событиями: поиск событий
Hostname of the database server => Имя сервера базы данных
JMAP: Remove push subscriptions => JMAP: удаление push-подписок
Mail authentication parse error => Ошибка разбора данных аутентификации почты
Maximum number of OAuth clients => Максимальное число клиентов OAuth
Maximum number of nested blocks => Максимальное число вложенных блоков
New delivery attempt for domain => Новая попытка доставки для домена
Queues Management: Query queues => Управление очередями: поиск очередей
Reports Management: Get reports => Управление отчётами: получение отчётов
Server started in recovery mode => Сервер запущен в режиме восстановления
Settings: Update email settings => Настройки: изменение настроек почты
Spanish locale for El Salvador. => Испанский язык, Сальвадор.
The Alibaba Cloud access key ID => ID ключа доступа Alibaba Cloud
Tracers Management: Get tracers => Управление трассировщиками: получение трассировщиков
Type of feedback being reported => Тип сообщаемой обратной связи
Vacation with Seconds Parameter => Автоответ с параметром в секундах
Action: Reload: Blocked IPs list => Действие: перезагрузка списка заблокированных IP
Arabic language locale for Oman. => Арабский язык, Оман.
Concurrent request limit reached => Достигнут лимит одновременных запросов
Dutch language locale for Aruba. => Нидерландский язык, Аруба.
Failed to delete {{count}} item. => Не удалось удалить элементов: {{count}}.
IAM Service Account Key (Base64) => Ключ служебной учётной записи IAM (Base64)
JMAP: Create new calendar events => JMAP: создание событий календаря
Lithuanian locale for Lithuania. => Литовский язык, Литва.
ManageSieve CAPABILITIES command => Команда ManageSieve CAPABILITIES
Milter action: Temporary failure => Действие Milter: временный сбой
Oromo language locale for Kenya. => Язык оромо, Кения.
Queues Management: Create queues => Управление очередями: создание очередей
Routes Management: Update routes => Управление маршрутами: изменение маршрутов
Server started in bootstrap mode => Сервер запущен в режиме начальной настройки
Subject line of the report email => Тема письма с отчётом
The logging level for this event => Уровень журналирования для этого события
Use in-memory store (Redis only) => Использовать хранилище в памяти (только Redis)
Accounts Management: Get accounts => Управление учётными записями: получение учётных записей
Arabic language locale for Qatar. => Арабский язык, Катар.
Cache: Invalidate negative caches => Кэш: сброс отрицательных кэшей
Events Management: Destroy events => Управление событиями: удаление событий
Failed to delete {{count}} items. => Не удалось удалить элементов: {{count}}.
Host authorized by MTA-STS policy => Хост разрешён политикой MTA-STS
List of recipient email addresses => Список адресов получателей
ManageSieve DELETE script command => Команда ManageSieve DELETE (удаление скрипта)
Maximum number of local variables => Максимальное число локальных переменных
Message rejected by remote server => Письмо отклонено удалённым сервером
Nepali language locale for Nepal. => Непальский язык, Непал.
Queues Management: Destroy queues => Управление очередями: удаление очередей
Scripts Management: Query scripts => Управление скриптами: поиск скриптов
Settings: Get spam pyzor settings => Настройки: получение настроек Pyzor для спама
Short identifier for the schedule => Краткий идентификатор расписания
Task is locked by another process => Задача заблокирована другим процессом
The data did not pass validation. => Данные не прошли проверку.
Timestamp when the event occurred => Время, когда произошло событие
Unsupported DKIM canonicalization => Неподдерживаемая канонизация DKIM
Whether the key is a glob pattern => Является ли ключ glob-шаблоном
Actions Management: Update actions => Управление действиями: изменение действий
Calendar alarm recipient overriden => Получатель напоминания календаря переопределён
DKIM body hash verification failed => Проверка хеша тела DKIM не пройдена
Date and time when the task failed => Дата и время сбоя задачи
ECDHE RSA CHACHA20 POLY1305 SHA256 => ECDHE RSA CHACHA20 POLY1305 SHA256
Error parsing certificate for DANE => Ошибка разбора сертификата для DANE
JMAP: Create new sender identities => JMAP: создание профилей отправителя
Lookups Management: Update lookups => Управление поиском: изменение записей поиска
ManageSieve UNAUTHENTICATE command => Команда ManageSieve UNAUTHENTICATE
Maximum size of a message in bytes => Максимальный размер письма в байтах
Metrics Management: Update metrics => Управление метриками: изменение метрик
POP3 LIST specific message command => Команда POP3 LIST для конкретного письма
Reports Management: Create reports => Управление отчётами: создание отчётов
Santali language locale for India. => Язык сантали, Индия.
Settings: Get coordinator settings => Настройки: получение настроек координатора
Size of the archived email message => Размер архивного письма
The DELIVERBY parameter is invalid => Параметр DELIVERBY недопустим
Timeout for recycling a connection => Тайм-аут переиспользования соединения
URL with user-facing documentation => URL документации для пользователей
Whether to use ANSI colors in logs => Использовать цвета ANSI в журналах
Address(es) of the Sentinel node(s) => Адреса узлов Sentinel
Arabic language locale for Lebanon. => Арабский язык, Ливан.
Bhojpuri language locale for Nepal. => Язык бходжпури, Непал.
DKIM2 public key algorithm mismatch => Несовпадение алгоритма открытого ключа DKIM2
Domain from the message From header => Домен из заголовка From письма
Ge'ez language locale for Ethiopia. => Язык геэз, Эфиопия.
JMAP: Modify existing contact cards => JMAP: изменение карточек контактов
Kashmiri language locale for India. => Кашмирский язык, Индия.
MAIL FROM identity passed SPF check => Идентичность MAIL FROM прошла проверку SPF
Maximum depth of nested directories => Максимальная глубина вложенных каталогов
Milters Management: Destroy milters => Управление Milter: удаление Milter
Optional REST API endpoint override => Необязательная замена адреса REST API
Permissions assigned to this tenant => Права доступа, назначенные этой организации
Reports Management: Destroy reports => Управление отчётами: удаление отчётов
Servers Management: Destroy servers => Управление серверами: удаление серверов
Settings: Update bootstrap settings => Настройки: изменение настроек начальной загрузки
Task scheduled for future execution => Задача запланирована на будущее
The message of the event to trigger => Сообщение события, которое нужно вызвать
Whether this email alias is enabled => Включён ли этот псевдоним почты
Accounts Management: Update accounts => Управление учётными записями: изменение учётных записей
Both DKIM and SPF identities aligned => Идентичности DKIM и SPF согласованы
Connection timeout to the S3 service => Тайм-аут соединения с сервисом S3
Dzongkha language locale for Bhutan. => Язык дзонг-кэ, Бутан.
JMAP: Copy emails to another account => JMAP: копирование писем в другую учётную запись
Maximum delay between retry attempts => Максимальная задержка между попытками
Maximum time to wait between retries => Максимальное время ожидания между повторами
Missing MFA token for authentication => Для аутентификации не указан токен MFA
Remote IP address of the SMTP client => Удалённый IP-адрес клиента SMTP
Settings: Get tracing store settings => Настройки: получение настроек хранилища трассировки
Sidama language locale for Ethiopia. => Язык сидама, Эфиопия.
The command contained a syntax error => Команда содержит синтаксическую ошибку
Unique identifier for the credential => Уникальный идентификатор учётных данных
Yiddish Language locale for the USA. => Идиш, США.
Accounts Management: Destroy accounts => Управление учётными записями: удаление учётных записей
Catalan locale for Italy (L'Alguer) . => Каталанский язык, Италия (Альгеро).
Dhivehi Language Locale for Maldives. => Язык дивехи, Мальдивы.
Host not authorized by MTA-STS policy => Хост не разрешён политикой MTA-STS
IP address of the sending mail server => IP-адрес отправляющего почтового сервера
Listeners Management: Query listeners => Управление портами приёма: поиск портов
Maximum size of the IPv4 record cache => Максимальный размер кэша записей IPv4
Messages Management: Destroy messages => Управление письмами: удаление писем
Public key used for encrypting emails => Открытый ключ для шифрования писем
Secret read from environment variable => Секрет, прочитанный из переменной окружения
Settings: Get mta stage data settings => Настройки: получение настроек этапа данных MTA
Short identifier for the TLS strategy => Краткий идентификатор стратегии TLS
Tajik language locale for Tajikistan. => Таджикский язык, Таджикистан.
The remote client sent a RSET command => Удалённый клиент отправил команду RSET
Too many ACME authentication attempts => Слишком много попыток аутентификации ACME
User-visible name of the address book => Имя адресной книги, видимое пользователю
What happened to the original message => Что произошло с исходным письмом
{{count}} items updated successfully. => Обновлено элементов: {{count}}.
Addresses Management: Update addresses => Управление адресами: изменение адресов
Client appended a message to a mailbox => Клиент добавил письмо в папку
Enter a valid email address or domain. => Введите действительный адрес почты или домен.
JMAP: Echo back input data for testing => JMAP: возврат входных данных для проверки
Maximum number of external directories => Максимальное число внешних каталогов
Missing mail authentication parameters => Не указаны параметры аутентификации почты
Perform DKIM key rotation for a domain => Выполнить ротацию ключей DKIM для домена
Raw email message to classify for spam => Исходное письмо для проверки на спам
Settings: Get spam classifier settings => Настройки: получение настроек классификатора спама
Settings: Update task manager settings => Настройки: изменение настроек менеджера задач
The URL of the ACME directory endpoint => URL каталога ACME
Throttles Management: Create throttles => Управление ограничениями: создание ограничений
Username for HTTP Basic Authentication => Имя пользователя для HTTP Basic-аутентификации
AI models Management: Destroy AI models => Управление моделями ИИ: удаление моделей ИИ
Arabic language locale for South Sudan. => Арабский язык, Южный Судан.
Crypto error during mail authentication => Криптографическая ошибка при аутентификации почты
Directories Management: Get directories => Управление каталогами пользователей: получение каталогов
IMAP: View mailbox access control lists => IMAP: просмотр списков доступа к папкам
JMAP: Modify existing sender identities => JMAP: изменение профилей отправителя
Listeners Management: Destroy listeners => Управление портами приёма: удаление портов
Manage received DMARC aggregate reports => Управление полученными сводными отчётами DMARC
Maximum size of the mailing lists cache => Максимальный размер кэша списков рассылки
Reference to the stored message content => Ссылка на сохранённое содержимое письма
Settings: Update oidc provider settings => Настройки: изменение настроек провайдера OIDC
The addresses the listener will bind to => Адреса, к которым привяжется порт приёма
URL with developer-facing documentation => URL документации для разработчиков
Whether to enable TLS for this listener => Включить TLS для этого порта приёма
An error occurred during an IMAP command => Ошибка при выполнении команды IMAP
Defines a quota rule for message queues. => Задаёт правило квоты для очередей писем.
Extensions Management: Create extensions => Управление расширениями: создание расширений
JMAP: Retrieve push subscription details => JMAP: получение сведений о push-подписке
Maximum time to cache the MTA-STS policy => Максимальное время кэширования политики MTA-STS
Settings: Update calendar alarm settings => Настройки: изменение настроек напоминаний календаря
Settings: Update mta stage mail settings => Настройки: изменение настроек этапа MAIL в MTA
Sublinear term frequency scaling (log1p) => Сублинейное масштабирование частоты терминов (log1p)
The prompt to use for the LLM classifier => Промпт для классификатора на основе LLM
An item with the same key already exists. => Элемент с таким ключом уже существует.
Current status of the node in the cluster => Текущее состояние узла в кластере
Directories Management: Query directories => Управление каталогами пользователей: поиск каталогов
IMAP: Open a mailbox for read-only access => IMAP: открытие папки только для чтения
JMAP: Modify existing share notifications => JMAP: изменение уведомлений об общем доступе
Log entries Management: Query log entries => Управление записями журнала: поиск записей
Organizational domain match is sufficient => Достаточно совпадения организационного домена
Public keys Management: Query public keys => Управление открытыми ключами: поиск ключей
SPF check performed on MAIL FROM identity => Проверка SPF выполнена по идентичности MAIL FROM
Signatures Management: Destroy signatures => Управление подписями: удаление подписей
Task: Perform DNS management for a domain => Задача: управление DNS для домена
The maximum number of requests per minute => Максимальное число запросов в минуту
Username to connect to the Sentinel nodes => Имя пользователя для подключения к узлам Sentinel
e.g. v{version}-{algorithm}-{date-%Y%m%d} => например, v{version}-{algorithm}-{date-%Y%m%d}
Certificate hostname does not match server => Имя хоста в сертификате не совпадает с сервером
Delete all temporary ACME and OAuth tokens => Удалить все временные токены ACME и OAuth
Identifier of the account to be maintained => Идентификатор учётной записи для обслуживания
JMAP: Track changes to quota query results => JMAP: отслеживание изменений результатов запроса квот
Manage virtual queues for message delivery => Управление виртуальными очередями доставки писем
Missing outbound hostname in configuration => В настройках не указано исходящее имя хоста
Public keys Management: Update public keys => Управление открытыми ключами: изменение ключей
Settings: Get spf report settings settings => Настройки: получение настроек отчётов SPF
Task ignored based on current server roles => Задача пропущена с учётом текущих ролей сервера
The command contained an invalid parameter => Команда содержит недопустимый параметр
Time interval for retries or notifications => Интервал между повторами или уведомлениями
API key credential for programmatic access. => Учётные данные с ключом API для программного доступа.
Bearer token for HTTP Bearer Authentication => Токен Bearer для HTTP Bearer-аутентификации
Configures TLS aggregate report generation. => Настраивает создание сводных отчётов TLS.
Defines an in-memory lookup key-value pair. => Задаёт пару «ключ - значение» для поиска в памяти.
Error code or reason string for the failure => Код ошибки или строка с причиной сбоя
Info - Errors, warnings and info are logged => Info - в журнал пишутся ошибки, предупреждения и информация
Mailing lists Management: Get mailing lists => Управление списками рассылки: получение списков
Message headers after DKIM canonicalization => Заголовки письма после канонизации DKIM
Permanent error in DKIM record or signature => Постоянная ошибка в записи или подписи DKIM
Serbian Latin-script locale for Montenegro. => Сербский язык (латиница), Черногория.
The External Account Binding (EAB) HMAC key => HMAC-ключ External Account Binding (EAB)
WebDAV: Modify properties of file resources => WebDAV: изменение свойств файловых ресурсов
You do not have permission to view {{name}} => Нет прав доступа для просмотра: {{name}}
Certificates Management: Update certificates => Управление сертификатами: изменение сертификатов
Do not classify emails from contacts as spam => Не считать спамом письма от контактов
JMAP: Modify existing participant identities => JMAP: изменение профилей участников
Manage app passwords for programmatic access => Управление паролями приложений для программного доступа
SMTP response message from the remote server => Ответ SMTP от удалённого сервера
Task: Perform DKIM key rotation for a domain => Задача: ротация ключей DKIM для домена
The envelope recipient address was rewritten => Адрес получателя в конверте был переписан
WebDAV: Copy file resources to new locations => WebDAV: копирование файловых ресурсов в новые места
Applications Management: Destroy applications => Управление приложениями: удаление приложений
Client requested a specific unique identifier => Клиент запросил конкретный уникальный идентификатор
HELO/EHLO string of the receiving mail server => Строка HELO/EHLO принимающего почтового сервера
JMAP: Retrieve mailbox details and properties => JMAP: получение сведений и свойств папки
Low(lands) Saxon Language Locale for Germany. => Нижнесаксонский язык, Германия.
Maximum size of the calendar and events cache => Максимальный размер кэша календарей и событий
OAuth clients Management: Query OAuth clients => Управление клиентами OAuth: поиск клиентов
Settings: Get sieve user interpreter settings => Настройки: получение настроек пользовательского интерпретатора Sieve
Settings: Update tls report settings settings => Настройки: изменение настроек отчётов TLS
The temperature to use for the LLM classifier => Температура для классификатора на основе LLM
WebDAV: Upload or modify address book entries => WebDAV: загрузка или изменение записей адресной книги
Amount of time to wait after a recipient error => Время ожидания после ошибки получателя
Cluster nodes Management: Create cluster nodes => Управление узлами кластера: создание узлов
Разница между файлами не показана из-за своего большого размера Загрузить разницу
Разница между файлами не показана из-за своего большого размера Загрузить разницу
Разница между файлами не показана из-за своего большого размера Загрузить разницу
Разница между файлами не показана из-за своего большого размера Загрузить разницу
Разница между файлами не показана из-за своего большого размера Загрузить разницу
-218
Просмотреть файл
@@ -1,218 +0,0 @@
No|Нет
Key|Ключ
per|на
Blob|Файл
DSNs|Уведомления DSN
ELSE|ИНАЧЕ
Idle|Простой
None|Нет
Port|Порт
THEN|ТО
View|Просмотр
hook|вебхук
role|роль
user|пользователь
China|Китай
Daily|Ежедневно
Error|Ошибка
Leave|Выйти
Memos|Заметки
Pools|Пулы
Rules|Правила
Stale|Устаревшие
Trace|Трассировка
brute|перебор
lists|списки
rules|правила
Enable|Включить
Format|Формат
Issuer|Издатель
Logout|Выйти
Poland|Польша
Reason|Причина
Routes|Маршруты
Sender|Отправитель
Tenant|Организация
Values|Значения
lookup|поиск
report|отчёт
tracer|трассировка
Account|Учётная запись
Backlog|Невыполненные
Confirm|Подтвердить
Details|Подробности
Failure|Сбой
Locking|Блокировка
Maximum|Максимум
Options|Параметры
Queries|Запросы
Request|Запрос
Rule ID|ID правила
Sign in|Войти
Subject|Тема
actions|действия
inbound|входящие
reports|отчёты
webhook|вебхук
API keys|Ключи API
Attempts|Попытки
Chunking|Разбиение на части
Disabled|Выключено
Greeting|Приветствие
ID Token|ID-токен
Key Data|Данные ключа
Listener|Порт приёма
Messages|Письма
Password|Пароль
Provider|Провайдер
Response|Ответ
Schedule|Расписание
Snippets|Фрагменты
Timeouts|Таймауты
Validity|Срок действия
listener|порт приёма
schedule|расписание
AI models|Модели ИИ
Anonymous|Анонимно
Calendars|Календари
Connected|Подключено
DNS error|Ошибка DNS
Failed At|Время сбоя
Full Name|Полное имя
Heartbeat|Сигнал активности
IPv4 Only|Только IPv4
Intervals|Интервалы
Key-Value|Ключ-значение
Max Files|Макс. файлов
Pool Size|Размер пула
Redirects|Перенаправления
Retry Now|Повторить сейчас
Schedules|Расписания
Sent Date|Дата отправки
Tenant ID|ID организации
Universal|Универсальный
Variables|Переменные
addresses|адреса
throttles|ограничения частоты
ARF Report|Отчёт ARF
Cancel All|Отменить все
Conditions|Условия
Credential|Учётные данные
DNS Lookup|DNS-запрос
Definition|Определение
Enable TLS|Включить TLS
Evaluation|Оценка
Expires At|Истекает
HTTP total|Всего HTTP
LDAP error|Ошибка LDAP
MIME Types|Типы MIME
Max Length|Макс. длина
Name field|Поле имени
POP3 total|Всего POP3
Project ID|ID проекта
Rate limit|Лимит частоты
Reverse IP|Обратный IP
Scheduling|Планирование
Source IPs|IP-адреса источников
Task Types|Типы задач
URL Checks|Проверки URL
View Group|Просмотр группы
signatures|подписи
Azure error|Ошибка Azure
Compression|Сжатие
DANE Verify|Проверка DANE
DNSBL query|Запрос DNSBL
Domain name|Имя домена
Enable EDNS|Включить EDNS
Event Title|Название события
Fixed delay|Фиксированная задержка
Header Name|Имя заголовка
Last 7 days|Последние 7 дней
Login Query|Запрос входа
Max Objects|Макс. объектов
Metric type|Тип метрики
Public Keys|Открытые ключи
Received At|Время получения
Retry Count|Число повторов
SPF Results|Результаты SPF
Send buffer|Буфер отправки
Source Port|Порт источника
Strict mode|Строгий режим
TLS version|Версия TLS
Total Files|Всего файлов
application|приложение
log entries|записи журнала
Access Token|Токен доступа
Action Flags|Флаги действий
Auto-Expunge|Автоочистка
Cancel trace|Отменить трассировку
Contact Form|Форма обратной связи
Current code|Текущий код
DMARC Policy|Политика DMARC
DNS Resolver|DNS-резолвер
Delete After|Удалить через
Elapsed time|Затраченное время
Endpoint URL|URL конечной точки
Failed Tasks|Неудачные задачи
From Address|Адрес отправителя
HTTP Headers|HTTP-заголовки
Implicit TLS|Неявный TLS
Last Renewal|Последнее продление
Masked Email|Скрытый адрес почты
Max attempts|Макс. попыток
Method Calls|Вызовы методов
Nested Event|Вложенное событие
OVH Endpoint|Конечная точка OVH
Push Metrics|Отправка метрик
Resource URL|URL ресурса
SQL Database|База данных SQL
Set Keywords|Задать ключевые слова
Stop tracing|Остановить трассировку
TLS Warnings|Предупреждения TLS
Tenant Roles|Роли организации
Trap Address|Адрес-ловушка
View Message|Просмотр письма
address book|адресная книга
Access Key ID|ID ключа доступа
App passwords|Пароли приложений
Back to login|Назад ко входу
Configuration|Конфигурация
Country Index|Индекс стран
DMARC Results|Результаты DMARC
Default Names|Имена по умолчанию
Directory URL|URL каталога
EHLO Hostname|Имя хоста EHLO
Email Address|Адрес почты
Envelope From|Отправитель конверта
Form Sections|Разделы формы
IP Resolution|Определение IP
Last 24 hours|Последние 24 часа
Mailing Lists|Списки рассылки
Merge Threads|Объединять цепочки
NATS Settings|Настройки NATS
OAuth clients|Клиенты OAuth
Push Timeouts|Таймауты отправки
Read Replicas|Реплики для чтения
Refresh token|Токен обновления
RocksDB error|Ошибка RocksDB
SPF soft fail|Мягкий отказ SPF
Set Seen Flag|Ставить флаг «прочитано»
String Length|Длина строки
Total Threads|Всего цепочек
Upload Limits|Лимиты загрузки
cluster nodes|узлы кластера
ACME Providers|Провайдеры ACME
Attempt Number|Номер попытки
Archived Items|Архивные элементы
Blocked Domain|Заблокированный домен
Challenge type|Тип проверки
Counter metric|Метрика-счётчик
DMARC rejected|DMARC отклонил
Default Domain|Домен по умолчанию
Delivery Trace|Трассировка доставки
Else condition|Условие ИНАЧЕ
Expunge Timers|Таймеры очистки
From Organizer|От организатора
Hosted Zone ID|ID размещённой зоны
In-Memory Keys|Ключи в памяти
Ingestion Time|Время приёма
-347
Просмотреть файл
@@ -1,347 +0,0 @@
LLM Classifier|Классификатор LLM
Mailbox Filter|Фильтр папок
Max. Push Size|Макс. размер push-уведомления
Nested Foreach|Вложенный Foreach
Policy Version|Версия политики
Rates & Quotas|Лимиты и квоты
Retry Settings|Настройки повторов
Secret API Key|Секретный ключ API
Setup complete|Настройка завершена
Spam filtering|Спам-фильтрация
TLS Strategies|Стратегии TLS
Total Deadline|Общий срок
Username Claim|Поле имени пользователя
Zenoh Settings|Настройки Zenoh
archived items|архивные элементы
Active Sessions|Активные сессии
Blocked Domains|Заблокированные домены
Cancel Delivery|Отменить доставку
DKIM Management|Управление DKIM
Data Write Time|Время записи данных
Directory Cache|Кэш каталога пользователей
Failed Sessions|Неудачные сессии
GoDaddy API key|Ключ API GoDaddy
IMAP ID command|Команда IMAP ID
JWT Credentials|Учётные данные JWT
Log file output|Вывод в файл журнала
Match Variables|Переменные сопоставления
Member Of Query|Запрос членства в группах
Multi-homed IPs|Мультидомные IP-адреса
No action taken|Действий не предпринято
Plain Text Body|Текст письма (plain text)
Reject Non-FQDN|Отклонять не-FQDN
Retry Intervals|Интервалы повторов
SPF EHLO Domain|Домен EHLO для SPF
Sentinel URL(s)|URL Sentinel
Spam Classifier|Спам-классификатор
TLS certificate|Сертификат TLS
Total successes|Всего успешных
Type of Service|Тип обслуживания (ToS)
Username Domain|Домен имени пользователя
ARC Verification|Проверка ARC
Allow IP address|Разрешённый IP-адрес
Block cache size|Размер кэша блоков
Compartment OCID|OCID компартмента
Current Password|Текущий пароль
Database Cleanup|Очистка базы данных
Delivery History|История доставки
File Carbon Copy|Копия в файл
HTTP Connections|HTTP-соединения
IP address value|Значение IP-адреса
LuaDNS API token|Токен API LuaDNS
Masked Addresses|Скрытые адреса
Milter I/O error|Ошибка ввода-вывода Milter
Number of Shards|Число шардов
Polling Interval|Интервал опроса
Purge data store|Очистить хранилище данных
Recycling Method|Способ переиспользования
Reported Domains|Домены в отчёте
SPF Verification|Проверка SPF
Sender Rewriting|Перезапись отправителя
Token Expiration|Срок действия токена
Unpack Directory|Каталог распаковки
Zone Credentials|Учётные данные зоны
Account Directory|Каталог учётных записей
Catch-All Address|Адрес Catch-All
Contacts Indexing|Индексация контактов
DNSBL server type|Тип сервера DNSBL
Discard threshold|Порог отбрасывания
Enable Scheduling|Включить планирование
Explanation Index|Индекс пояснений
IBM Cloud API key|Ключ API IBM Cloud
IMAP SORT command|Команда IMAP SORT
Listener settings|Настройки порта приёма
Max App Passwords|Макс. паролей приложений
Metrics collected|Собранные метрики
No DKIM signature|Нет подписи DKIM
Outgoing Messages|Исходящие письма
POP3 UTF8 command|Команда POP3 UTF8
Publishing failed|Не удалось опубликовать
Relay not allowed|Ретрансляция запрещена
SMTP EXPN command|Команда SMTP EXPN
STARTTLS disabled|STARTTLS отключён
Spam Filter Cache|Кэш спам-фильтра
The spam tag name|Имя спам-тега
Write buffer size|Размер буфера записи
ACME order invalid|Заказ ACME недействителен
Account Identifier|Идентификатор учётной записи
Alert message sent|Оповещение отправлено
Assisted Discovery|Автоматическое обнаружение
Azure blob storage|Хранилище Azure Blob
DKIM AUID mismatch|Несовпадение AUID в DKIM
Data Store Latency|Задержка хранилища данных
Email Notification|Уведомление по почте
Enterprise License|Лицензия Enterprise
Extended Spam Test|Расширенная проверка на спам
HMAC using SHA-384|HMAC с SHA-384
Identity Alignment|Выравнивание идентификаторов
Locale & Time Zone|Язык и часовой пояс
Max iCal Attendees|Макс. участников iCal
Milter parse error|Ошибка разбора Milter
Negative Cache TTL|TTL отрицательного кэша
OTP Authentication|Аутентификация по одноразовому коду
Password Attribute|Атрибут пароля
Push Subscriptions|Push-подписки
Reservoir Sampling|Резервуарная выборка
SMTP RCPT TO Stage|Этап SMTP RCPT TO
Signing Algorithms|Алгоритмы подписи
TLS not configured|TLS не настроен
Vacation Extension|Расширение автоответа
iTIP message error|Ошибка сообщения iTIP
Account Maintenance|Обслуживание учётных записей
Alert configuration|Настройка оповещений
Authorization Cache|Кэш авторизации
Calendar Scheduling|Планирование в календаре
Client stored flags|Клиент сохранил флаги
DKIM1 (RSA SHA-256)|DKIM1 (RSA SHA-256)
Decompression error|Ошибка распаковки
Duplicate Extension|Расширение дубликатов
Event Notifications|Уведомления о событиях
For Every MIME Part|Для каждой части MIME
IMAP SEARCH command|Команда IMAP SEARCH
Inbound Rate Limits|Лимиты входящих
JMAP: Remove emails|JMAP: удаление писем
MIME Part Enclosure|Вложение части MIME
Netcup API password|Пароль API Netcup
No SPF record found|Запись SPF не найдена
POP3 error occurred|Ошибка POP3
Reason for allowing|Причина разрешения
Roles & Permissions|Роли и права доступа
SPF permanent error|Постоянная ошибка SPF
Server memory usage|Использование памяти сервером
Size of the message|Размер письма
Supported Languages|Поддерживаемые языки
Tracing event level|Уровень событий трассировки
View server metrics|Просмотр метрик сервера
WebDAV HEAD request|Запрос WebDAV HEAD
ACME order completed|Заказ ACME выполнен
Akamai client secret|Клиентский секрет Akamai
Automatic IP Banning|Автоматическая блокировка IP
Calendar Alarm Email|Письмо-напоминание из календаря
Created successfully|Успешно создано
DNS record not found|DNS-запись не найдена
Disable Capabilities|Отключаемые возможности
Extension identifier|Идентификатор расширения
IMAP EXPUNGE command|Команда IMAP EXPUNGE
Invalid ARC instance|Недопустимый экземпляр ARC
MAIL FROM Parameters|Параметры MAIL FROM
Messages per Command|Писем на команду
Outbound TLS Reports|Исходящие отчёты TLS
Provider Information|Сведения о провайдере
Remote Delivery (MX)|Удалённая доставка (MX)
SPF MAIL FROM Result|Результат SPF для MAIL FROM
Service Account JSON|JSON сервисного аккаунта
Something went wrong|Что-то пошло не так
Task manager started|Менеджер задач запущен
Value read from file|Значение прочитано из файла
Alert event triggered|Сработало событие оповещения
Archived Contact Card|Архивная карточка контакта
Auto-expunge executed|Автоочистка выполнена
Calendar iTIP Message|Сообщение iTIP календаря
Connection Strategies|Стратегии соединения
DKIM signer not found|Подписывающий DKIM не найден
DNS resolution failed|Не удалось разрешить DNS
Domeneshop API secret|Секрет API Domeneshop
Email: Receive emails|Почта: получение писем
HTTP request duration|Длительность HTTP-запроса
INWX account username|Имя пользователя INWX
Inherited permissions|Унаследованные права доступа
MIME Part Replacement|Замена части MIME
Message was forwarded|Письмо переслано
Other delivery result|Другой результат доставки
Receiving MX Hostname|Имя хоста принимающего MX
SMTP RCPT TO rejected|SMTP RCPT TO отклонён
SPF From check failed|Проверка SPF для From не пройдена
Sieve sending message|Sieve отправляет письмо
Subdomain Disposition|Политика для поддоменов
The AWS access key ID|ID ключа доступа AWS
Unsupported JMAP sort|Неподдерживаемая сортировка JMAP
Virus report received|Получен отчёт о вирусе
Why is this not free?|Почему это не бесплатно?
ACME TLS ALPN received|Получен ACME TLS ALPN
Baidu Cloud secret key|Секретный ключ Baidu Cloud
Client set mailbox ACL|Клиент изменил ACL папки
DKIM signature created|Подпись DKIM создана
DKIM2 message modified|Письмо изменено (DKIM2)
Domain checked for SPF|Домен, проверяемый по SPF
Executing {{label}}...|Выполняется {{label}}...
IMAP SUBSCRIBE command|Команда IMAP SUBSCRIBE
JMAP request too large|Слишком большой запрос JMAP
Mail Report Recipients|Получатели почтовых отчётов
Message parsing failed|Не удалось разобрать письмо
Netcup customer number|Номер клиента Netcup
Permissive CORS policy|Разрешающая политика CORS
Publishing in progress|Идёт публикация
Sieve script not found|Скрипт Sieve не найден
URL redirector domains|Домены перенаправления URL
VRFY address not found|Адрес для VRFY не найден
Active IMAP connections|Активные соединения IMAP
Authentication settings|Настройки аутентификации
Certificate has expired|Срок действия сертификата истёк
Client fetched a script|Клиент получил скрипт
Command not implemented|Команда не реализована
DKIM signature retiring|Подпись DKIM выводится из использования
Description of the role|Описание роли
Externally Stored Lists|Списки во внешнем хранилище
IMAP UIDBATCHES command|Команда IMAP UIDBATCHES
Invalid DNS record type|Недопустимый тип DNS-записи
MTA hook action: Accept|Действие вебхука MTA: принять
Manage TLS certificates|Управление сертификатами TLS
Message ingestion error|Ошибка приёма письма
POP3 connection started|Начато соединение POP3
RCPT TO address missing|Отсутствует адрес RCPT TO
Reload: Server settings|Перезагрузка: настройки сервера
Reverse IP check passed|Проверка обратного IP пройдена
Short name for the rule|Короткое имя правила
TLS Aggregate Reporting|Агрегированные отчёты TLS
Total number of domains|Общее число доменов
UTC date and time value|Значение даты и времени UTC
Waiting for more events|Ожидание новых событий
Archiving Data Retention|Срок хранения архива
Basque locale for Spain.|Баскский язык (Испания).
Client checked for space|Клиент проверил свободное место
Client renamed a mailbox|Клиент переименовал папку
DKIM signature published|Подпись DKIM опубликована
DKIM2 public key missing|Нет открытого ключа DKIM2
Delivery Retry Intervals|Интервалы повторов доставки
Enable Tracing Searching|Включить поиск по трассировке
Greek locale for Greece.|Греческий язык (Греция).
JMAP: Download blob data|JMAP: загрузка данных файла
Manage spam filter rules|Управление правилами спам-фильтра
May delete this calendar|Можно удалить этот календарь
OAuth and OpenID Connect|OAuth и OpenID Connect
PubSub publisher stopped|Издатель PubSub остановлен
Spam Classifier Training|Обучение спам-классификатора
System Sieve Interpreter|Системный интерпретатор Sieve
Task acquired from queue|Задача получена из очереди
The namespace of the key|Пространство имён ключа
Uyghur locale for China.|Уйгурский язык (Китай).
ASCII Case Map Comparator|Сравнение ASCII без учёта регистра
Attachment & File Storage|Хранение вложений и файлов
Configuration build error|Ошибка сборки конфигурации
DMARC report rate limited|Отчёт DMARC ограничен по частоте
Do not store metrics data|Не хранить данные метрик
Enable encryption at rest|Включить шифрование при хранении
French locale for Canada.|Французский язык (Канада).
Identifies the S3 account|Идентифицирует учётную запись S3
Initial Propagation Delay|Начальная задержка распространения
Legacy Autoconfig records|Устаревшие записи Autoconfig
Manage cluster node roles|Управление ролями узлов кластера
Message contained a virus|Письмо содержало вирус
Network connection closed|Сетевое соединение закрыто
Polish locale for Poland.|Польский язык (Польша).
RCPT TO address rewritten|Адрес RCPT TO перезаписан
Spanish locale for Chile.|Испанский язык (Чили).
TLS certificate not found|Сертификат TLS не найден
The request was too large|Запрос слишком большой
Unsupported DKIM key type|Неподдерживаемый тип ключа DKIM
Which OVH endpoint to use|Какую конечную точку OVH использовать
Allow Invalid Certificates|Разрешать недействительные сертификаты
Authentication failure ban|Блокировка за сбои аутентификации
Certificate is not trusted|Сертификату не доверяют
Conditional Extension Test|Условная проверка расширения
DNS record creation failed|Не удалось создать DNS-запись
English locale for Europe.|Английский язык (Европа).
Extension content or value|Содержимое или значение расширения
German locale for Germany.|Немецкий язык (Германия).
JMAP: Remove address books|JMAP: удаление адресных книг
Ligurian locale for Italy.|Лигурийский язык (Италия).
ManageSieve error occurred|Ошибка ManageSieve
Maximum size of a variable|Максимальный размер переменной
Optional regional endpoint|Необязательная региональная конечная точка
Russian locale for Russia.|Русский язык (Россия).
Skipping duplicate message|Дубликат письма пропущен
Tenant quota limit reached|Достигнут лимит квоты организации
Unsupported DKIM algorithm|Неподдерживаемый алгоритм DKIM
ACME authentication started|Начата аутентификация ACME
Catalan locale for France .|Каталанский язык (Франция).
Cornish locale for Britain.|Корнский язык (Великобритания).
DMARC authentication failed|Аутентификация DMARC не пройдена
Email notification settings|Настройки уведомлений по почте
English locale for Nigeria.|Английский язык (Нигерия).
Finnish locale for Finland.|Финский язык (Финляндия).
Impersonate Service Account|Выдавать себя за сервисный аккаунт
Joker authentication method|Способ аутентификации Joker
MTA: Pause queue processing|MTA: приостановка обработки очереди
Manually blocked IP address|IP-адрес, заблокированный вручную
Metadata not found for task|Метаданные задачи не найдены
OTP Authentication Settings|Настройки аутентификации по одноразовому коду
Port of the database server|Порт сервера базы данных
Raw ManageSieve output sent|Отправлен необработанный вывод ManageSieve
Rules Management: Get rules|Управление правилами: получение правил
Settings: Get http settings|Настройки: получение настроек HTTP
Spanish locale for Ecuador.|Испанский язык (Эквадор).
Tags Management: Query tags|Управление тегами: запрос тегов
The prefix for the log file|Префикс файла журнала
When the report was created|Когда создан отчёт
Catalan locale for Andorra .|Каталанский язык (Андорра).
Creation date of the account|Дата создания учётной записи
Domain Name Negative Lookups|Отрицательные запросы имён доменов
English locale for Botswana.|Английский язык (Ботсвана).
Extract Text from MIME Parts|Извлечение текста из частей MIME
JMAP: Modify existing emails|JMAP: изменение существующих писем
Keys Management: Update keys|Управление ключами: обновление ключей
ManageSieve STARTTLS command|Команда ManageSieve STARTTLS
No additional data returned.|Дополнительных данных нет.
Resolved {{count}} MX record|Найдено записей MX: {{count}}
Settings: Get email settings|Настройки: получение настроек почты
Subaddress (Detail) Matching|Сопоставление субадреса (detail)
The Milter frame was invalid|Недопустимый кадр Milter
Whether the script is active|Активен ли скрипт
Action executed successfully.|Действие выполнено успешно.
Application resource unpacked|Ресурс приложения распакован
Cannot calculate JMAP changes|Не удалось вычислить изменения JMAP
Description of the public key|Описание открытого ключа
ECDSA using P-384 and SHA-384|ECDSA с P-384 и SHA-384
Error fetching TLS-RPT record|Ошибка получения записи TLS-RPT
How often to refresh the list|Как часто обновлять список
Keys Management: Destroy keys|Управление ключами: удаление ключей
Maximum number of DNS servers|Максимальное число DNS-серверов
Queue name for this recipient|Имя очереди для этого получателя
Roles assigned to this tenant|Роли, назначенные этой организации
Shutting down Stalwart Server|Остановка Stalwart Server
Step {{current}} of {{total}}|Шаг {{current}} из {{total}}
Tasks Management: Query tasks|Управление задачами: запрос задач
Unknown object type: {{name}}|Неизвестный тип объекта: {{name}}
Action: DMARC: Troubleshooting|Действие: DMARC: диагностика
Bulgarian locale for Bulgaria.|Болгарский язык (Болгария).
DANE authentication successful|Аутентификация DANE успешна
Delayed Delivery Notifications|Уведомления о задержке доставки
Domain that signed the message|Домен, подписавший письмо
Error - Only errors are logged|Error - записываются только ошибки
French locale for Switzerland.|Французский язык (Швейцария).
JMAP: Create new address books|JMAP: создание адресных книг
Lists Management: Create lists|Управление списками: создание списков
Maximum number of nested tests|Максимальное число вложенных проверок
Number of shards for the index|Число шардов индекса
Preferred locale for the group|Предпочитаемый язык группы
Roles Management: Update roles|Управление ролями: обновление ролей
Settings: Get mta sts settings|Настройки: получение настроек MTA-STS
Short identifier for the route|Короткий идентификатор маршрута
Tasks Management: Create tasks|Управление задачами: создание задач
Timeout for message processing|Таймаут обработки письма
Venda locale for South Africa.|Венда (ЮАР).
Which cipher suites to disable|Какие наборы шифров отключить
Alerts Management: Query alerts|Управление оповещениями: запрос оповещений
Client requested mailbox rights|Клиент запросил права на папку
DKIM2 MAIL FROM domain mismatch|Домен MAIL FROM не совпадает (DKIM2)
-260
Просмотреть файл
@@ -1,260 +0,0 @@
English locale for New Zealand.|Английский язык (Новая Зеландия).
Hooks Management: Destroy hooks|Управление вебхуками: удаление вебхуков
JMAP: Modify existing mailboxes|JMAP: изменение существующих папок
Lookups Management: Get lookups|Управление справочниками: получение справочников
Maximum length of a script name|Максимальная длина имени скрипта
Maximum number of mailing lists|Максимальное число списков рассылки
Name of the thread to be merged|Имя цепочки для объединения
Protocol to use for DNS queries|Протокол для DNS-запросов
Raw policy strings as retrieved|Необработанные строки политики в том виде, как получены
Scripts Management: Get scripts|Управление скриптами: получение скриптов
Settings: Update cache settings|Настройки: изменение настроек кэша
Spam classifier model not ready|Модель спам-классификатора не готова
Tenants Management: Get tenants|Управление организациями: получение организаций
The endpoint for Open Telemetry|Конечная точка OpenTelemetry
Tulu language locale for India.|Тулу (Индия).
Use TLS to connect to the store|Использовать TLS для подключения к хранилищу
{{action}} ({{count}} {{name}})|{{action}} ({{count}} {{name}})
Arabic language locale for Iraq.|Арабский язык (Ирак).
Client requested message threads|Клиент запросил цепочки писем
Dogri language locale for India.|Догри (Индия).
Expression Evaluation (Stalwart)|Вычисление выражений (Stalwart)
How to interpret the events list|Как трактовать список событий
Issuance date of the certificate|Дата выпуска сертификата
List of calendar fields to index|Список полей календаря для индексации
Macedonian locale for Macedonia.|Македонский язык (Македония).
Message rescheduled for delivery|Доставка письма перенесена
Operation not supported by store|Операция не поддерживается хранилищем
Preferred locale for the account|Предпочитаемый язык учётной записи
Routes Management: Create routes|Управление маршрутами: создание маршрутов
Serbian Latin locale for Serbia.|Сербский язык, латиница (Сербия).
Spam classifier training started|Обучение спам-классификатора начато
The hostname of the Pyzor server|Имя хоста сервера Pyzor
Turkmen locale for Turkmenistan.|Туркменский язык (Туркменистан).
API keys Management: Get API keys|Управление ключами API: получение ключей API
Arabic language locale for India.|Арабский язык (Индия).
Blin language locale for Eritrea.|Билен (Эритрея).
Dutch locale for the Netherlands.|Нидерландский язык (Нидерланды).
FUTURE RELEASE extension disabled|Расширение FUTURE RELEASE отключено
Greenlandic locale for Greenland.|Гренландский язык (Гренландия).
JMAP: Remove Sieve filter scripts|JMAP: удаление фильтров Sieve
ManageSieve CREATE script command|Команда ManageSieve CREATE для скрипта
Maximum number of calendar events|Максимальное число событий календаря
Maximum size of the tenants cache|Максимальный размер кэша организаций
Name of the archived sieve script|Имя архивного скрипта Sieve
Path to the SQLite data directory|Путь к каталогу данных SQLite
Samples Management: Query samples|Управление образцами: запрос образцов
Settings: Get enterprise settings|Настройки: получение настроек Enterprise
Shan language locale for Myanmar.|Шанский язык (Мьянма).
TLS report received with warnings|Получен отчёт TLS с предупреждениями
The Milter requested a reply code|Milter запросил код ответа
The spam classifier model to use.|Модель спам-классификатора для использования.
Unique identifier for this report|Уникальный идентификатор этого отчёта
When the original message arrived|Когда пришло исходное письмо
Actions Management: Create actions|Управление действиями: создание действий
Bypass upload size and rate limits|Обходить лимиты размера и частоты загрузки
DANE is required but not available|DANE обязателен, но недоступен
DSN temporary failure notification|Уведомление DSN о временном сбое
Domains hosted across the cluster.|Домены, размещённые в кластере.
Envelope sender domain (MAIL FROM)|Домен отправителя в конверте (MAIL FROM)
IMAP: Upload messages to a mailbox|IMAP: загрузка писем в папку
Lookups Management: Create lookups|Управление справочниками: создание справочников
Manage routes for message delivery|Управление маршрутами доставки писем
Maximum number of received headers|Максимальное число заголовков Received
Metrics Management: Create metrics|Управление метриками: создание метрик
Other or unrecognized failure type|Другой или нераспознанный тип сбоя
Reporting URIs from the TLS policy|URI для отчётов из политики TLS
Samples Management: Update samples|Управление образцами: обновление образцов
Servers Management: Update servers|Управление серверами: обновление серверов
Short description for the throttle|Короткое описание ограничения частоты
Tenants Management: Update tenants|Управление организациями: обновление организаций
Time to wait between push attempts|Пауза между попытками отправки
Type of delivery error encountered|Тип возникшей ошибки доставки
When the report email was received|Когда получено письмо с отчётом
Actions Management: Destroy actions|Управление действиями: удаление действий
Arabic language locale for Bahrain.|Арабский язык (Бахрейн).
Bhojpuri language locale for India.|Бходжпури (Индия).
DKIM2 message-instance syntax error|Синтаксическая ошибка экземпляра сообщения DKIM2
Disposition associated with the tag|Политика, связанная с тегом
Frisian locale for the Netherlands.|Фризский язык (Нидерланды).
JMAP: Modify existing address books|JMAP: изменение существующих адресных книг
Kabyle language locale for Algeria.|Кабильский язык (Алжир).
MAIL FROM identity failed SPF check|Идентификатор MAIL FROM не прошёл проверку SPF
Manipuri language locale for India.|Манипури (Индия).
Metrics Management: Destroy metrics|Управление метриками: удаление метрик
OpenTelemetry metrics configuration|Настройка метрик OpenTelemetry
Perform DNS management for a domain|Управление DNS для домена
Report is locked by another process|Отчёт заблокирован другим процессом
Scripts Management: Destroy scripts|Управление скриптами: удаление скриптов
Settings: Get task manager settings|Настройки: получение настроек менеджера задач
Somali language locale for Somalia.|Сомалийский язык (Сомали).
The client is already authenticated|Клиент уже аутентифицирован
Webhooks Management: Query webhooks|Управление вебхуками: запрос вебхуков
Accounts Management: Create accounts|Управление учётными записями: создание учётных записей
Bislama language locale for Vanuatu.|Бислама (Вануату).
Client requested server capabilities|Клиент запросил возможности сервера
DNS view name (defaults to External)|Имя представления DNS (по умолчанию External)
JMAP account not supported by method|Учётная запись JMAP не поддерживается методом
Manage received ARF feedback reports|Управление полученными отчётами ARF
Maximum size of the scheduling cache|Максимальный размер кэша планирования
Minimum time to wait between retries|Минимальная пауза между повторами
Purge expired data from all accounts|Удалить просроченные данные из всех учётных записей
Settings: Get spam settings settings|Настройки: получение настроек спама
Short description of this DNS server|Короткое описание этого DNS-сервера
The REQUIRETLS extension is disabled|Расширение REQUIRETLS отключено
URL to a logo image for the provider|URL изображения логотипа провайдера
Webhooks Management: Update webhooks|Управление вебхуками: обновление вебхуков
API signing private key in PEM format|Закрытый ключ подписи API в формате PEM
Armenian language locale for Armenia.|Армянский язык (Армения).
Delivery delayed due to rate limiting|Доставка отложена из-за ограничения частоты
Georgian language locale for Georgia.|Грузинский язык (Грузия).
IMAP: Query supported IMAP extensions|IMAP: запрос поддерживаемых расширений IMAP
List of email aliases for the account|Список псевдонимов почты учётной записи
Manage schedules for message delivery|Управление расписаниями доставки писем
Message came from a trusted forwarder|Письмо пришло от доверенного пересыльщика
Providers Management: Query providers|Управление провайдерами: запрос провайдеров
Schedules Management: Query schedules|Управление расписаниями: запрос расписаний
Settings: Get mta stage auth settings|Настройки: получение настроек аутентификации на этапах MTA
Settings: Update sender auth settings|Настройки: изменение настроек аутентификации отправителя
Subject of the archived email message|Тема архивного письма
The remote client sent a QUIT command|Удалённый клиент отправил команду QUIT
Timeout for creating a new connection|Таймаут создания нового соединения
Unique identifier of the OAuth client|Уникальный идентификатор клиента OAuth
Webhooks Management: Destroy webhooks|Управление вебхуками: удаление вебхуков
{{count}} items deleted successfully.|Успешно удалено элементов: {{count}}.
Addresses Management: Create addresses|Управление адресами: создание адресов
Chinese language locale for Singapore.|Китайский язык (Сингапур).
English language locale for Singapore.|Английский язык (Сингапур).
How often to refresh the ASN/Geo data.|Как часто обновлять данные ASN и геолокации.
Maori language locale for New Zealand.|Маори (Новая Зеландия).
Miskito language locale for Nicaragua.|Мискито (Никарагуа).
Password for HTTP Basic Authentication|Пароль для HTTP Basic-аутентификации
Queued message submission for delivery|Письмо поставлено в очередь на доставку
Settings: Get report settings settings|Настройки: получение настроек отчётов
Settings: Update search store settings|Настройки: изменение настроек хранилища поиска
The S3 region where the bucket resides|Регион S3, в котором находится бакет
The type of HTTP authentication to use|Тип используемой HTTP-аутентификации
Ukrainian Language Locale for Ukraine.|Украинский язык (Украина).
https://sso.example.com/realms/myrealm|https://sso.example.com/realms/myrealm
An error occurred during a POP3 command|Ошибка при выполнении команды POP3
Connection lost before trace completed.|Соединение потеряно до завершения трассировки.
Destroy account and all associated data|Удалить учётную запись и все связанные данные
IMAP: Activate optional IMAP extensions|IMAP: включение необязательных расширений IMAP
JMAP: Modify existing email submissions|JMAP: изменение существующих отправок писем
Limburgish Language Locale for Belgium.|Лимбургский язык (Бельгия).
Manage public keys for email encryption|Управление открытыми ключами для шифрования почты
Maximum size of the access tokens cache|Максимальный размер кэша токенов доступа
Public keys Management: Get public keys|Управление открытыми ключами: получение открытых ключей
Settings: Update metrics store settings|Настройки: изменение настроек хранилища метрик
The FUTURE RELEASE parameter is invalid|Недопустимый параметр FUTURE RELEASE
Throttles Management: Destroy throttles|Управление ограничениями частоты: удаление ограничений
WebDAV: Upload or modify file resources|WebDAV: загрузка или изменение файловых ресурсов
Algorithm to use to compress e-mail data|Алгоритм сжатия данных писем
DMARC result based on SPF authentication|Результат DMARC по аутентификации SPF
Expression to rewrite the sender address|Выражение для перезаписи адреса отправителя
JMAP: Modify existing push subscriptions|JMAP: изменение существующих push-подписок
Maximum size of the MTA-STS record cache|Максимальный размер кэша записей MTA-STS
Settings: Update authentication settings|Настройки: изменение настроек аутентификации
Settings: Update mta stage ehlo settings|Настройки: изменение настроек EHLO на этапах MTA
Strategies Management: Update strategies|Управление стратегиями: обновление стратегий
The mailbox does not exist on the server|Папка не существует на сервере
Action: Cache: Invalidate negative caches|Действие: кэш: сброс отрицательных кэшей
Configures the LLM-based spam classifier.|Настраивает спам-классификатор на основе LLM.
Delivery delayed due to connection limits|Доставка отложена из-за лимитов соединений
IMAP: Modify mailbox access control lists|IMAP: изменение списков управления доступом к папкам
Include only events the user is attending|Только события, в которых пользователь участвует
List of roles assigned to this principal.|Список ролей, назначенных этому участнику.
Optional team ID to scope API requests to|Необязательный ID команды для ограничения запросов API
Prometheus metrics endpoint configuration|Настройка конечной точки метрик Prometheus
SPF check performed on HELO/EHLO identity|Проверка SPF по идентификатору HELO/EHLO
Settings: Update system settings settings|Настройки: изменение системных настроек
Strategy to use for retrying failed tasks|Стратегия повтора неудачных задач
The envelope sender address was rewritten|Адрес отправителя в конверте перезаписан
Type of document associated with the task|Тип документа, связанного с задачей
Whether to index the full source document|Индексировать ли исходный документ целиком
A short description of the web application|Короткое описание веб-приложения
DNS servers Management: Update DNS servers|Управление DNS-серверами: обновление DNS-серверов
IMAP: Open a mailbox for read-write access|IMAP: открытие папки для чтения и записи
JMAP: Track changes to email query results|JMAP: отслеживание изменений результатов запроса писем
Manage TLS strategies for message delivery|Управление стратегиями TLS для доставки писем
Minimum number of connections to the store|Минимальное число соединений с хранилищем
Public keys Management: Create public keys|Управление открытыми ключами: создание открытых ключей
Settings: Get spam dnsbl settings settings|Настройки: получение настроек DNSBL для спама
Stalwart has been configured successfully.|Stalwart успешно настроен.
The Milter requested to reject the message|Milter запросил отклонить письмо
Tibetan language locale for P.R. of China.|Тибетский язык (КНР).
https://api.openai.com/v1/chat/completions|https://api.openai.com/v1/chat/completions
Base64-encoded IAM service account key JSON|JSON ключа сервисного аккаунта IAM в кодировке Base64
Cluster nodes Management: Get cluster nodes|Управление узлами кластера: получение узлов кластера
Defines an external store used for lookups.|Определяет внешнее хранилище для справочников.
Envelope DSN (Delivery Status Notification)|DSN конверта (уведомление о статусе доставки)
IMAP: Subscribe or unsubscribe to mailboxes|IMAP: подписка на папки и отписка от них
Log entries Management: Destroy log entries|Управление записями журнала: удаление записей журнала
Maximum size of the file storage data cache|Максимальный размер кэша данных файлового хранилища
Parameters related to the MAIL FROM address|Параметры, связанные с адресом MAIL FROM
Select all {{total}} items matching filters|Выбрать все элементы, подходящие под фильтры: {{total}}
Task: Perform tenant maintenance operations|Задача: обслуживание организации
WebDAV: Create new address book collections|WebDAV: создание коллекций адресных книг
Whether to ignore the client's cipher order|Игнорировать ли порядок шифров клиента
Certificates Management: Create certificates|Управление сертификатами: создание сертификатов
Defines a logging and tracing output method.|Определяет способ вывода журнала и трассировки.
Inbound TLS-RPT reports that flagged issues.|Входящие отчёты TLS-RPT, в которых указаны проблемы.
Manage SMTP, IMAP, HTTP, and other listeners|Управление портами приёма SMTP, IMAP, HTTP и других
Result of the SPF check based on EHLO domain|Результат проверки SPF по домену EHLO
Stores a collected server metric data point.|Хранит собранное значение метрики сервера.
The date-time the email address was created.|Дата и время создания адреса почты.
This feature requires an Enterprise license.|Для этой функции нужна лицензия Enterprise.
App passwords Management: Query App passwords|Управление паролями приложений: запрос паролей приложений
Chinese locale for Peoples Republic of China.|Китайский язык (КНР).
Failed to load the admin panel configuration.|Не удалось загрузить конфигурацию панели администратора.
JMAP: Create new calendar event notifications|JMAP: создание уведомлений о событиях календаря
List of allowed URIs for the notify extension|Список разрешённых URI для расширения notify
Masked emails Management: Query masked emails|Управление скрытыми адресами: запрос скрытых адресов
Niuean (Vagahau Niue) locale for New Zealand.|Ниуэ (Новая Зеландия).
Reporting email addresses from the TLS policy|Адреса почты для отчётов из политики TLS
Settings: Update spf report settings settings|Настройки: изменение настроек отчётов SPF
The capacity of the training sample reservoir|Ёмкость резервуара обучающих образцов
WebDAV: Retrieve properties of file resources|WebDAV: получение свойств файловых ресурсов
All {{count}} items on this page are selected.|Выбраны все элементы на этой странице: {{count}}.
Berber language locale for Morocco (tifinagh).|Берберский язык, тифинаг (Марокко).
Defines a registered OAuth client application.|Определяет зарегистрированное клиентское приложение OAuth.
IMAP: List mailboxes the user is subscribed to|IMAP: список папок, на которые подписан пользователь
JMAP: Retrieve calendar details and properties|JMAP: получение сведений и свойств календаря
Mailing lists Management: Update mailing lists|Управление списками рассылки: обновление списков рассылки
Number of attempts made before the task failed|Число попыток до сбоя задачи
RSASSA-PSS using SHA-256 and MGF1 with SHA-256|RSASSA-PSS с SHA-256 и MGF1 с SHA-256
Settings: Update dkim report settings settings|Настройки: изменение настроек отчётов DKIM
The remote server sent an invalid EHLO command|Удалённый сервер отправил недопустимую команду EHLO
WebDAV: Move calendar entries to new locations|WebDAV: перемещение записей календаря
Cluster nodes Management: Destroy cluster nodes|Управление узлами кластера: удаление узлов кластера
Failed to establish connection to remote server|Не удалось подключиться к удалённому серверу
Kashmiri(devanagari) language locale for India.|Кашмири, деванагари (Индия).
Manage archived items available for restoration|Управление архивными элементами, доступными для восстановления
OAuth clients Management: Destroy OAuth clients|Управление клиентами OAuth: удаление клиентов OAuth
Settings: Update mta outbound strategy settings|Настройки: изменение стратегии исходящей доставки MTA
Timezone identifier for the start date and time|Идентификатор часового пояса для даты и времени начала
Whether DANE is required, optional, or disabled|DANE обязателен, необязателен или отключён
A client applied a partial update to a resource.|Клиент применил частичное обновление ресурса.
Archived items Management: Update archived items|Управление архивными элементами: обновление архивных элементов
Configures the storage backend for metrics data.|Настраивает хранилище данных метрик.
English language locale for Antigua and Barbuda.|Английский язык (Антигуа и Барбуда).
JMAP: Search for Sieve scripts matching criteria|JMAP: поиск скриптов Sieve по критериям
Maximum size of the email addresses lookup cache|Максимальный размер кэша поиска адресов почты
Task: Perform spam filter maintenance operations|Задача: обслуживание спам-фильтра
The port used to communicate with the DNS server|Порт для связи с DNS-сервером
Afar language locale for Eritrea (Saaho Dialect).|Афарский язык, диалект сахо (Эритрея).
Environment variable name to read the secret from|Имя переменной окружения, из которой читать секрет
JMAP: Track changes to emails since a given state|JMAP: отслеживание изменений писем с заданного состояния
Message priority (lower values = higher priority)|Приоритет письма (меньше значение - выше приоритет)
Query to obtain the e-mail aliases of an account.|Запрос для получения псевдонимов почты учётной записи.
The account ID used to authenticate with DNSimple|ID учётной записи для аутентификации в DNSimple
Train the spam classifier with the latest samples|Обучить спам-классификатор на последних образцах
All {{total}} items matching filters are selected.|Выбраны все элементы, подходящие под фильтры: {{total}}.
Enable full-text search indexing for calendar data|Включить индексацию календаря для полнотекстового поиска
JMAP: Search for calendar events matching criteria|JMAP: поиск событий календаря по критериям
Maximum time to wait for the DATA command response|Максимальное время ожидания ответа на команду DATA
Original message content that triggered the report|Содержимое исходного письма, вызвавшее отчёт
SMTP command that triggered an unexpected response|Команда SMTP, вызвавшая неожиданный ответ
The date and time when this IP address was allowed|Дата и время, когда этот IP-адрес был разрешён
The remote client already sent a MAIL FROM command|Удалённый клиент уже отправил команду MAIL FROM
Train as spam messages sent to spam trap addresses|Обучать как спам письма, отправленные на адреса-ловушки
Разница между файлами не показана из-за своего большого размера Загрузить разницу
Executable
+42
Просмотреть файл
@@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Сборка и выкладка русской версии веб-интерфейса Stalwart в оформлении StackWorks.
#
# ./release.sh собрать словари, интерфейс и архив webui.zip, выложить в релиз Gitea «current»
#
# Stalwart берёт интерфейс по адресу из настройки x:Application.resourceUrl:
# https://git.stackworks.ru/viktor/stalwart-webui-ru/releases/download/current/webui.zip
# После выкладки на почтовом сервере нажать «Действия -> Обновить приложения» или
# выполнить x:Action/set {"@type":"UpdateApps"} (см. README.ru.md).
set -euo pipefail
cd "$(dirname "$0")"
python3 i18n-work/merge.py # part*.ru.json -> src/i18n/schema-ru.json и src/i18n/ru.json
npm run build
rm -f webui.zip
python3 -c "import shutil; shutil.make_archive('webui', 'zip', 'dist')"
ls -l webui.zip
T=$(python3 -c "
import json
d=json.load(open('$HOME/.claude.json'))
def f(o):
if isinstance(o,dict):
if 'gitea' in o.get('mcpServers',{}): return o['mcpServers']['gitea']
for v in o.values():
r=f(v)
if r: return r
print(list(f(d)['env'].values())[-1])")
API=https://git.stackworks.ru/api/v1/repos/viktor/stalwart-webui-ru
H="Authorization: token $T"
# релиз «current» с тегом current: создаём, если нет, иначе заменяем вложение
REL=$(curl -s -H "$H" "$API/releases/tags/current" | python3 -c "import json,sys;print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true)
if [ -z "$REL" ]; then
REL=$(curl -s -H "$H" -H "Content-Type: application/json" -X POST "$API/releases" \
-d '{"tag_name":"current","target_commitish":"main","name":"Текущая сборка","body":"Архив webui.zip для Stalwart: русский язык и оформление StackWorks."}' \
| python3 -c "import json,sys;print(json.load(sys.stdin)['id'])")
fi
for A in $(curl -s -H "$H" "$API/releases/$REL/assets" | python3 -c "import json,sys;[print(a['id']) for a in json.load(sys.stdin) if a['name']=='webui.zip']"); do
curl -s -o /dev/null -H "$H" -X DELETE "$API/releases/$REL/assets/$A"
done
curl -s -H "$H" -F "attachment=@webui.zip" "$API/releases/$REL/assets?name=webui.zip" | python3 -c "import json,sys;d=json.load(sys.stdin);print('выложено:', d.get('browser_download_url'))"
+1 -1
Просмотреть файл
@@ -1106,7 +1106,7 @@ export function DynamicList({ viewName }: DynamicListProps) {
return (
<div className="relative space-y-4">
<div className="flex items-start justify-between gap-4">
<div className="flex flex-wrap items-start justify-between gap-4">
<div>
<h1 className="text-2xl font-bold tracking-tight">{list.title}</h1>
{list.subtitle && <p className="text-sm text-muted-foreground mt-1">{list.subtitle}</p>}
+330 -330
Просмотреть файл
@@ -1,389 +1,389 @@
{
"accounts": "Accounts",
"accounts": "Учётные записи",
"actions": {
"actionFailed": "Action failed.",
"backToActions": "Back to actions",
"execute": "Execute",
"executeAnother": "Execute another action",
"executedSuccess": "Action executed successfully.",
"executing": "Executing {{label}}...",
"failedTitle": "Action failed",
"noAdditionalData": "No additional data returned.",
"otherGroup": "Other",
"title": "Actions"
"actionFailed": "Не удалось выполнить действие.",
"backToActions": "Назад к действиям",
"execute": "Выполнить",
"executeAnother": "Выполнить другое действие",
"executedSuccess": "Действие выполнено успешно.",
"executing": "Выполняется {{label}}...",
"failedTitle": "Действие не выполнено",
"noAdditionalData": "Дополнительных данных нет.",
"otherGroup": "Другое",
"title": "Действия"
},
"bootstrap": {
"clipboardBlocked": "Your browser blocked clipboard access.",
"complete": "Setup complete",
"configuredSuccessfully": "Stalwart has been configured successfully.",
"copyFailed": "Copy failed",
"credentialsCreated": "Your administrator account has been created. Write these down now: the password will not be shown again.",
"emptyForm": "Setup form is empty. The server did not return any bootstrap fields.",
"failedToComplete": "Failed to complete setup.",
"failedToLoad": "Failed to load bootstrap state.",
"finishSetup": "Finish setup",
"loadingSetup": "Loading setup...",
"nextStepBody": "restart Stalwart for the new configuration to take effect. Once restarted, sign in with the credentials above to continue administering your server.",
"nextStepLabel": "Next step:",
"noConfirm": "The server did not confirm the update.",
"stepOf": "Step {{current}} of {{total}}",
"welcome": "Welcome to Stalwart",
"welcomeSubtitle": "Let's get your server set up."
"clipboardBlocked": "Браузер заблокировал доступ к буферу обмена.",
"complete": "Настройка завершена",
"configuredSuccessfully": "Stalwart успешно настроен.",
"copyFailed": "Не удалось скопировать",
"credentialsCreated": "Учётная запись администратора создана. Запишите данные сейчас: пароль больше не будет показан.",
"emptyForm": "Форма настройки пуста. Сервер не вернул начальных полей.",
"failedToComplete": "Не удалось завершить настройку.",
"failedToLoad": "Не удалось загрузить начальное состояние.",
"finishSetup": "Завершить настройку",
"loadingSetup": "Загрузка настройки...",
"nextStepBody": "перезапустите Stalwart, чтобы новая конфигурация вступила в силу. После перезапуска войдите с указанными выше данными и продолжайте администрировать сервер.",
"nextStepLabel": "Следующий шаг:",
"noConfirm": "Сервер не подтвердил обновление.",
"stepOf": "Шаг {{current}} из {{total}}",
"welcome": "Добро пожаловать в Stalwart",
"welcomeSubtitle": "Давайте настроим сервер."
},
"common": {
"apply": "Apply",
"back": "Back",
"cancel": "Cancel",
"clear": "Clear",
"confirm": "Confirm",
"continue": "Continue",
"create": "Create",
"delete": "Delete",
"loading": "Loading...",
"next": "Next",
"no": "No",
"noResultsDot": "No results.",
"save": "Save",
"search": "Search",
"searchPlaceholder": "Search...",
"yes": "Yes",
"close": "Close"
"apply": "Применить",
"back": "Назад",
"cancel": "Отмена",
"clear": "Очистить",
"confirm": "Подтвердить",
"continue": "Продолжить",
"create": "Создать",
"delete": "Удалить",
"loading": "Загрузка...",
"next": "Далее",
"no": "Нет",
"noResultsDot": "Нет результатов.",
"save": "Сохранить",
"search": "Поиск",
"searchPlaceholder": "Поиск...",
"yes": "Да",
"close": "Закрыть"
},
"dashboard": {
"customEllipsis": "Custom...",
"customRange": "Custom range",
"failedFetchMetrics": "Failed to fetch metrics",
"from": "From",
"liveMetricsDisconnected": "Live metrics stream disconnected after multiple retries.",
"liveMetricsFailed": "Failed to connect to live metrics.",
"preset24h": "Last 24 hours",
"preset30d": "Last 30 days",
"preset7d": "Last 7 days",
"preset90d": "Last 90 days",
"title": "Dashboard",
"to": "To"
"customEllipsis": "Другое...",
"customRange": "Свой диапазон",
"failedFetchMetrics": "Не удалось получить метрики",
"from": "От",
"liveMetricsDisconnected": "Поток метрик в реальном времени отключился после нескольких повторных попыток.",
"liveMetricsFailed": "Не удалось подключиться к метрикам в реальном времени.",
"preset24h": "Последние 24 часа",
"preset30d": "Последние 30 дней",
"preset7d": "Последние 7 дней",
"preset90d": "Последние 90 дней",
"title": "Обзор",
"to": "Кому"
},
"deliveryTrace": {
"attemptCount_one": "{{count}} attempt",
"attemptCount_other": "{{count}} attempts",
"attemptLabel": "Delivery Attempt: {{hostname}}",
"attemptCount_one": "Попыток: {{count}}",
"attemptCount_other": "Попыток: {{count}}",
"attemptLabel": "Попытка доставки: {{hostname}}",
"body": {
"connectionStart": "Connecting to {{ip}}",
"connectionSuccess": "Connected",
"daneVerifySuccess": "DANE verification passed",
"ehloSuccess": "EHLO accepted",
"ipLookupOverflow": "{{shown}} +{{extra}} more",
"mailFromSuccess": "Sender accepted",
"mtaStsFetchSuccess": "Policy fetched successfully",
"mtaStsNotFound": "No MTA-STS policy published",
"mtaStsVerifySuccess": "MTA-STS hostname verified",
"mxLookupStart": "Looking up MX for {{domain}}",
"mxLookupSuccess_one": "Resolved {{count}} MX record",
"mxLookupSuccess_other": "Resolved {{count}} MX records",
"quitCompleted": "Session closed",
"rcptToSuccess": "Recipient accepted",
"readGreetingSuccess": "Server greeting received",
"startTlsSuccess": "TLS negotiated",
"tlsRptLookupSuccess_one": "Found {{count}} reporting URI",
"tlsRptLookupSuccess_other": "Found {{count}} reporting URIs",
"tlsRptNotFound": "No TLS-RPT record published",
"tlsaLookupSuccess": "TLSA record found",
"tlsaNotFound": "No TLSA record found"
"connectionStart": "Подключение к {{ip}}",
"connectionSuccess": "Подключено",
"daneVerifySuccess": "Проверка DANE пройдена",
"ehloSuccess": "EHLO принят",
"ipLookupOverflow": "{{shown}} и ещё {{extra}}",
"mailFromSuccess": "Отправитель принят",
"mtaStsFetchSuccess": "Политика успешно получена",
"mtaStsNotFound": "Политика MTA-STS не опубликована",
"mtaStsVerifySuccess": "Имя хоста MTA-STS проверено",
"mxLookupStart": "Поиск MX для {{domain}}",
"mxLookupSuccess_one": "Найдено записей MX: {{count}}",
"mxLookupSuccess_other": "Разрешено записей MX: {{count}}",
"quitCompleted": "Сеанс закрыт",
"rcptToSuccess": "Получатель принят",
"readGreetingSuccess": "Получено приветствие сервера",
"startTlsSuccess": "TLS согласован",
"tlsRptLookupSuccess_one": "Найдено URI для отчётов: {{count}}",
"tlsRptLookupSuccess_other": "Найдено URI для отчётов: {{count}}",
"tlsRptNotFound": "Запись TLS-RPT не опубликована",
"tlsaLookupSuccess": "Запись TLSA найдена",
"tlsaNotFound": "Запись TLSA не найдена"
},
"cancelTrace": "Cancel trace",
"connectionLost": "Connection lost before trace completed.",
"deliveryFailed": "Delivery failed",
"deliverySuccessful": "Delivery successful",
"failedToStart": "Failed to start trace.",
"inDuration": "in {{elapsed}}",
"invalidTarget": "Enter a valid email address or domain.",
"cancelTrace": "Отменить трассировку",
"connectionLost": "Соединение потеряно до завершения трассировки.",
"deliveryFailed": "Доставка не удалась",
"deliverySuccessful": "Доставка выполнена",
"failedToStart": "Не удалось запустить трассировку.",
"inDuration": "через {{elapsed}}",
"invalidTarget": "Введите действительный адрес почты или домен.",
"phase": {
"connection": "TCP Connection",
"daneVerify": "DANE Verify",
"ipLookup": "IP Lookup",
"mtaStsFetch": "MTA-STS Policy Fetch",
"mtaStsVerify": "MTA-STS Verify",
"mxLookup": "MX Lookup",
"readGreeting": "Read Greeting",
"tlsRptLookup": "TLS-RPT Lookup",
"tlsaLookup": "TLSA / DANE Lookup"
"connection": "TCP-соединение",
"daneVerify": "Проверка DANE",
"ipLookup": "Поиск по IP",
"mtaStsFetch": "Получение политики MTA-STS",
"mtaStsVerify": "Проверка MTA-STS",
"mxLookup": "Поиск MX",
"readGreeting": "Читать приветствие",
"tlsRptLookup": "Проверка TLS-RPT",
"tlsaLookup": "Проверка TLSA / DANE"
},
"runAnother": "Run another trace",
"startTrace": "Start trace",
"startedAgoMin": "Started {{m}}m {{s}}s ago",
"startedAgoSec": "Started {{s}}s ago",
"subtitle": "Run a real outbound SMTP delivery attempt and watch every DNS lookup, TLS handshake, and SMTP command as it happens.",
"targetLabel": "Target address or domain",
"targetPlaceholder": "john@example.org or example.org",
"timedOut": "Trace timed out after 120 seconds.",
"title": "Delivery Trace",
"traceCompletedFor": "Trace completed for {{target}}",
"traceFailedFor": "Trace failed for {{target}}",
"tracingDelivery": "Tracing delivery to {{target}}",
"viewDetails": "View details",
"waiting": "Waiting for more events"
"runAnother": "Запустить ещё одну трассировку",
"startTrace": "Начать трассировку",
"startedAgoMin": "Запущено {{m}} мин {{s}} с назад",
"startedAgoSec": "Запущено {{s}} с назад",
"subtitle": "Выполнить настоящую попытку исходящей доставки по SMTP и наблюдать за каждым DNS-запросом, рукопожатием TLS и командой SMTP в реальном времени.",
"targetLabel": "Целевой адрес или домен",
"targetPlaceholder": "john@example.org или example.org",
"timedOut": "Трассировка прервана по тайм-ауту через 120 секунд.",
"title": "Трассировка доставки",
"traceCompletedFor": "Трассировка для {{target}} завершена",
"traceFailedFor": "Ошибка трассировки для {{target}}",
"tracingDelivery": "Трассировка доставки на {{target}}",
"viewDetails": "Подробнее",
"waiting": "Ожидание новых событий"
},
"duration": {
"days": "Days",
"hours": "Hours",
"milliseconds": "Milliseconds",
"minutes": "Minutes",
"seconds": "Seconds"
"days": "Дни",
"hours": "Часы",
"milliseconds": "Миллисекунды",
"minutes": "Минуты",
"seconds": "Секунды"
},
"enterprise": {
"featureDisabled": "This feature requires an Enterprise license.",
"trialTitle": "Unlock Enterprise Features",
"trialDescription": "Get access to advanced features including multi-tenancy, AI-powered spam filtering, alerts, and more.",
"trialButton": "Start 30-Day Free Trial",
"requestTrial": "Request a free trial to unlock this feature.",
"ossHidden": "This feature is not available in the open-source edition.",
"whyNotFree": "Why is this not free?"
"featureDisabled": "Для этой функции нужна лицензия Enterprise.",
"trialTitle": "Разблокировать функции Enterprise",
"trialDescription": "Доступ к расширенным функциям: многоорганизационность, спам-фильтрация на основе ИИ, оповещения и другое.",
"trialButton": "Начать бесплатный пробный период на 30 дней",
"requestTrial": "Запросите бесплатный пробный период, чтобы разблокировать эту функцию.",
"ossHidden": "Эта функция недоступна в версии с открытым исходным кодом.",
"whyNotFree": "Почему это не бесплатно?"
},
"errorBoundary": {
"title": "Something went wrong",
"tryAgain": "Try Again"
"title": "Что-то пошло не так",
"tryAgain": "Повторить"
},
"errors": {
"unexpectedError": "An unexpected error occurred.",
"viewNotFound": "View not found",
"loadSchemaFailed": "Failed to load the admin panel configuration.",
"notFound": "The requested resource was not found."
"unexpectedError": "Произошла непредвиденная ошибка.",
"viewNotFound": "Представление не найдено",
"loadSchemaFailed": "Не удалось загрузить конфигурацию панели администратора.",
"notFound": "Запрошенный ресурс не найден."
},
"expression": {
"addCondition": "Add condition",
"condition": "Condition",
"defaultValue": "Default value",
"else": "ELSE",
"addCondition": "Добавить условие",
"condition": "Условие",
"defaultValue": "Значение по умолчанию",
"else": "ИНАЧЕ",
"if": "IF",
"result": "Result",
"then": "THEN",
"value": "Value"
"result": "Результат",
"then": "ТО",
"value": "Значение"
},
"field": {
"add": "Add",
"addItem": "Add item",
"contentModified": "Content modified (will be saved as a new blob)",
"enable": "Enable",
"key": "Key...",
"loadingContent": "Loading content...",
"noMatches": "No matches",
"noPermissionToView": "You do not have permission to view {{name}}",
"none": "None",
"notSet": "Not set",
"optional": "(optional)",
"pickDate": "Pick a date",
"required": "required",
"selectEllipsis": "Select...",
"selectKey": "Select key...",
"selectOptions": "Select options...",
"time": "Time",
"type": "Type",
"typeAndPressEnter": "Type and press Enter...",
"unknownObjectType": "Unknown object type: {{name}}"
"add": "Добавить",
"addItem": "Добавить элемент",
"contentModified": "Содержимое изменено (будет сохранено как новый файл)",
"enable": "Включить",
"key": "Ключ...",
"loadingContent": "Загрузка содержимого...",
"noMatches": "Нет совпадений",
"noPermissionToView": "Нет прав доступа для просмотра: {{name}}",
"none": "Нет",
"notSet": "Не задано",
"optional": "(необязательно)",
"pickDate": "Выберите дату",
"required": "обязательно",
"selectEllipsis": "Выберите...",
"selectKey": "Выберите ключ...",
"selectOptions": "Выберите варианты...",
"time": "Время",
"type": "Тип",
"typeAndPressEnter": "Введите и нажмите Enter...",
"unknownObjectType": "Неизвестный тип объекта: {{name}}"
},
"filters": {
"after": "After",
"all": "All",
"before": "Before"
"after": "После",
"all": "Все",
"before": "До"
},
"form": {
"correctErrorsBelow": "Please correct the errors below.",
"createTitle": "Create {{name}}",
"createdServerGenerated": "The following values were generated by the server. Please save them now, they may not be retrievable later.",
"createdSuccess": "Created successfully",
"deleteDescription": "This action cannot be undone. This will permanently delete this {{name}}.",
"deleteTitle": "Delete {{name}}?",
"deletedSuccess": "{{name}} deleted successfully",
"editTitle": "Edit {{name}}",
"editTitleWithValue": "Edit {{name}}: {{value}}",
"failedToDelete": "Failed to delete.",
"failedToLoadData": "Failed to load data.",
"failedToSave": "Failed to save.",
"invalidValue": "Invalid value.",
"item": "item",
"leave": "Leave",
"loadingData": "Loading data...",
"loadingSchema": "Loading schema...",
"maxLengthIs": "Maximum length is {{max}}.",
"maxValueIs": "Maximum value is {{max}}.",
"minLengthIs": "Minimum length is {{min}}.",
"minValueIs": "Minimum value is {{min}}.",
"noChangesToSave": "No changes to save",
"objectNotFound": "Object not found.",
"otpCodeRequired": "Enter your current authenticator code to authorise this change.",
"required": "This field is required.",
"savedSuccess": "Saved successfully",
"selectType": "Select type...",
"stay": "Stay",
"unsavedChanges": "You have unsaved changes. Are you sure you want to leave?",
"unsavedChangesLabel": "Unsaved changes",
"unsavedChangesTitle": "Unsaved changes"
"correctErrorsBelow": "Исправьте ошибки ниже.",
"createTitle": "Создать {{name}}",
"createdServerGenerated": "Эти значения сгенерированы сервером. Сохраните их сейчас, позже получить их может не получиться.",
"createdSuccess": "Успешно создано",
"deleteDescription": "Это действие нельзя отменить. Объект {{name}} будет удалён безвозвратно.",
"deleteTitle": "Удалить {{name}}?",
"deletedSuccess": "{{name}} успешно удалён",
"editTitle": "Изменить {{name}}",
"editTitleWithValue": "Изменить {{name}}: {{value}}",
"failedToDelete": "Не удалось удалить.",
"failedToLoadData": "Не удалось загрузить данные.",
"failedToSave": "Не удалось сохранить.",
"invalidValue": "Недопустимое значение.",
"item": "элемент",
"leave": "Выйти",
"loadingData": "Загрузка данных...",
"loadingSchema": "Загрузка схемы...",
"maxLengthIs": "Максимальная длина: {{max}}.",
"maxValueIs": "Максимальное значение: {{max}}.",
"minLengthIs": "Минимальная длина: {{min}}.",
"minValueIs": "Минимальное значение: {{min}}.",
"noChangesToSave": "Нет изменений для сохранения",
"objectNotFound": "Объект не найден.",
"otpCodeRequired": "Введите текущий код из приложения-аутентификатора, чтобы подтвердить изменение.",
"required": "Это поле обязательно.",
"savedSuccess": "Сохранено",
"selectType": "Выберите тип...",
"stay": "Оставить",
"unsavedChanges": "Есть несохранённые изменения. Точно уйти?",
"unsavedChangesLabel": "Несохранённые изменения",
"unsavedChangesTitle": "Несохранённые изменения"
},
"globalSearch": {
"create": "Create",
"fields": "Fields",
"formSections": "Form Sections",
"list": "List",
"noResults": "No results found.",
"pages": "Pages",
"placeholder": "Search pages, fields, settings...",
"settings": "Settings",
"title": "Search",
"typeToSearch": "Type to search the admin panel."
"create": "Создать",
"fields": "Поля",
"formSections": "Разделы формы",
"list": "Список",
"noResults": "Ничего не найдено.",
"pages": "Страницы",
"placeholder": "Поиск по страницам, полям, настройкам...",
"settings": "Настройки",
"title": "Поиск",
"typeToSearch": "Введите текст для поиска по админ-панели."
},
"jmapErrors": {
"addressBookHasContents": "This address book has contacts. Remove them first.",
"alreadyExists": "An item with the same identifier already exists.",
"calendarHasEvent": "This calendar contains events. Remove them first.",
"forbidden": "You do not have permission to perform this action.",
"invalidForeignKey": "This item references another item that does not exist.",
"mailboxHasChild": "This mailbox has child mailboxes. Delete them first.",
"mailboxHasEmail": "This mailbox contains messages. Remove them first.",
"nodeHasChildren": "This item has children. Delete them first.",
"notFound": "The item was not found. It may have been already deleted.",
"objectIsLinked": "This item is referenced by other items and cannot be deleted.",
"overQuota": "The operation exceeds your storage quota.",
"primaryKeyViolation": "An item with the same key already exists.",
"rateLimit": "Too many requests. Please try again later.",
"singleton": "This item is a singleton and cannot be deleted.",
"tooLarge": "The item is too large.",
"unexpected": "Unexpected error ({{type}}).",
"validationFailed": "The data did not pass validation."
"addressBookHasContents": "В этой адресной книге есть контакты. Сначала удалите их.",
"alreadyExists": "Элемент с таким идентификатором уже существует.",
"calendarHasEvent": "В этом календаре есть события. Сначала удалите их.",
"forbidden": "Нет прав на выполнение этого действия.",
"invalidForeignKey": "Этот элемент ссылается на другой, несуществующий элемент.",
"mailboxHasChild": "В этой папке есть вложенные папки. Сначала удалите их.",
"mailboxHasEmail": "В этой папке есть письма. Сначала удалите их.",
"nodeHasChildren": "У этого элемента есть дочерние. Сначала удалите их.",
"notFound": "Элемент не найден. Возможно, он уже удалён.",
"objectIsLinked": "На этот элемент ссылаются другие элементы, удалить его нельзя.",
"overQuota": "Операция превышает квоту хранилища.",
"primaryKeyViolation": "Элемент с таким ключом уже существует.",
"rateLimit": "Слишком много запросов. Повторите попытку позже.",
"singleton": "Этот элемент существует в единственном экземпляре и не может быть удалён.",
"tooLarge": "Элемент слишком большой.",
"unexpected": "Непредвиденная ошибка ({{type}}).",
"validationFailed": "Данные не прошли проверку."
},
"list": {
"actionWithCount": "{{action}} ({{count}} {{name}})",
"actions": "Actions",
"allItemsSelected": "All {{total}} items matching filters are selected.",
"allPageSelected": "All {{count}} items on this page are selected.",
"bulkErrorGrouped": "{{count}} items: {{message}}",
"bulkErrorMore": "…and {{count}} more.",
"bulkFailDelete_one": "Failed to delete {{count}} item.",
"bulkFailDelete_other": "Failed to delete {{count}} items.",
"bulkFailUpdate_one": "Failed to update {{count}} item.",
"bulkFailUpdate_other": "Failed to update {{count}} items.",
"bulkMixedDelete": "{{success}} deleted, {{failed}} failed.",
"bulkMixedUpdate": "{{success}} updated, {{failed}} failed.",
"bulkSuccessDelete_one": "{{count}} item deleted successfully.",
"bulkSuccessDelete_other": "{{count}} items deleted successfully.",
"bulkSuccessUpdate_one": "{{count}} item updated successfully.",
"bulkSuccessUpdate_other": "{{count}} items updated successfully.",
"clearSelection": "Clear selection",
"confirmDescription": "Are you sure you want to proceed with: {{action}}?",
"confirmTitle": "Confirm Action",
"create": "Create {{name}}",
"delete": "Delete",
"deleteNotConfirmed": "Delete failed: item was not confirmed as destroyed by the server.",
"filterPlaceholder": "Search {{label}}...",
"filters": "Filters",
"massAction": "Actions",
"next": "Next",
"noResults": "No results found",
"previous": "Previous",
"resetFilters": "Reset",
"searchFilters": "Search",
"selectAll": "Select all",
"selectAllMatching": "Select all {{total}} items matching filters",
"selectFilterPlaceholder": "Select {{label}}...",
"selectItem": "Select item",
"showing": "Showing {{from}}-{{to}} of {{total}} {{name}}",
"showingItems": "Showing {{count}} items",
"sort": "Sort",
"unknownError": "Unknown error"
"actions": "Действия",
"allItemsSelected": "Выбраны все элементы, подходящие под фильтры: {{total}}.",
"allPageSelected": "Выбраны все элементы на этой странице: {{count}}.",
"bulkErrorGrouped": "Элементов: {{count}}. {{message}}",
"bulkErrorMore": "…и ещё {{count}}.",
"bulkFailDelete_one": "Не удалось удалить элементов: {{count}}.",
"bulkFailDelete_other": "Не удалось удалить элементов: {{count}}.",
"bulkFailUpdate_one": "Не удалось обновить элементов: {{count}}.",
"bulkFailUpdate_other": "Не удалось обновить элементов: {{count}}.",
"bulkMixedDelete": "Удалено: {{success}}, ошибок: {{failed}}.",
"bulkMixedUpdate": "Обновлено: {{success}}, с ошибкой: {{failed}}.",
"bulkSuccessDelete_one": "Удалено элементов: {{count}}.",
"bulkSuccessDelete_other": "Успешно удалено элементов: {{count}}.",
"bulkSuccessUpdate_one": "Элементов обновлено: {{count}}.",
"bulkSuccessUpdate_other": "Обновлено элементов: {{count}}.",
"clearSelection": "Снять выбор",
"confirmDescription": "Выполнить действие: {{action}}?",
"confirmTitle": "Подтвердите действие",
"create": "Создать {{name}}",
"delete": "Удалить",
"deleteNotConfirmed": "Не удалось удалить: сервер не подтвердил удаление элемента.",
"filterPlaceholder": "Поиск: {{label}}...",
"filters": "Фильтры",
"massAction": "Действия",
"next": "Далее",
"noResults": "Ничего не найдено",
"previous": "Назад",
"resetFilters": "Сбросить",
"searchFilters": "Поиск",
"selectAll": "Выбрать все",
"selectAllMatching": "Выбрать все элементы, подходящие под фильтры: {{total}}",
"selectFilterPlaceholder": "Выберите {{label}}...",
"selectItem": "Выберите элемент",
"showing": "Показано {{from}}-{{to}} из {{total}} {{name}}",
"showingItems": "Показано элементов: {{count}}",
"sort": "Сортировка",
"unknownError": "Неизвестная ошибка"
},
"login": {
"continue": "Continue",
"error": "An unexpected error occurred",
"prompt": "Enter your account name to continue",
"title": "Sign in",
"continue": "Продолжить",
"error": "Произошла непредвиденная ошибка",
"prompt": "Введите имя учётной записи, чтобы продолжить",
"title": "Войти",
"usernamePlaceholder": "user@example.com"
},
"logo": {
"alt": "Logo",
"stalwartAlt": "Stalwart Logo"
"alt": "Логотип",
"stalwartAlt": "Логотип Stalwart"
},
"logout": "Logout",
"logout": "Выйти",
"version": {
"label": "Stalwart WebUI v{{version}}"
},
"oauth": {
"backToLogin": "Back to login",
"discoveryFailed": "Discovery failed for \"{{username}}\": {{status}} {{statusText}}",
"error": "Authentication failed",
"missingData": "Missing OAuth session data. Please try logging in again.",
"missingParams": "Missing authorization code or state parameter",
"processing": "Completing sign in...",
"stateMismatch": "State parameter mismatch. Please try logging in again.",
"title": "Signing in",
"tokenExchangeFailed": "Token exchange failed: {{status}} {{statusText}}"
"backToLogin": "Назад ко входу",
"discoveryFailed": "Не удалось выполнить обнаружение для «{{username}}»: {{status}} {{statusText}}",
"error": "Аутентификация не пройдена",
"missingData": "Нет данных сессии OAuth. Попробуйте войти снова.",
"missingParams": "Отсутствует код авторизации или параметр state",
"processing": "Завершение входа...",
"stateMismatch": "Параметр state не совпал. Попробуйте войти ещё раз.",
"title": "Выполняется вход",
"tokenExchangeFailed": "Не удалось обменять токен: {{status}} {{statusText}}"
},
"otp": {
"clipboardBlocked": "Your browser blocked clipboard access.",
"codeIncorrect": "That code is incorrect. Make sure your authenticator clock is in sync.",
"confirmationCodeLabel": "Confirmation code",
"copyFailed": "Copy failed",
"copySecret": "Copy secret",
"currentCodeLabel": "Current code",
"currentCodePrompt": "Enter your current 6-digit code to authorise any change to this account (including disabling two-factor authentication).",
"disable": "Disable",
"enterCodePrompt": "Enter the code shown in your authenticator.",
"manualEntryDescription": "If you cannot scan the QR code, enter this secret into your authenticator app instead.",
"manualEntryLabel": "Or enter this code manually",
"qrCodeAlt": "TOTP QR code",
"scanDescription": "Scan the QR code below with Google Authenticator, 1Password, Authy, or any other TOTP app, then enter the 6-digit code it shows to confirm setup.",
"scanPrompt": "Scan with your authenticator app",
"setUp": "Set up TOTP",
"statusDisabled": "Two-factor authentication is not enabled.",
"statusEnabled": "Two-factor authentication is enabled."
"clipboardBlocked": "Браузер заблокировал доступ к буферу обмена.",
"codeIncorrect": "Неверный код. Проверьте, что часы в приложении-аутентификаторе синхронизированы.",
"confirmationCodeLabel": "Код подтверждения",
"copyFailed": "Не удалось скопировать",
"copySecret": "Копировать секрет",
"currentCodeLabel": "Текущий код",
"currentCodePrompt": "Введите текущий 6-значный код, чтобы подтвердить любое изменение этой учётной записи (включая отключение двухфакторной аутентификации).",
"disable": "Выключить",
"enterCodePrompt": "Введите код из приложения-аутентификатора.",
"manualEntryDescription": "Если QR-код отсканировать не получается, введите этот секрет в приложении-аутентификаторе.",
"manualEntryLabel": "Или введите этот код вручную",
"qrCodeAlt": "QR-код TOTP",
"scanDescription": "Отсканируйте QR-код ниже в Google Authenticator, 1Password, Authy или другом приложении TOTP, затем введите показанный 6-значный код для подтверждения.",
"scanPrompt": "Отсканируйте в приложении-аутентификаторе",
"setUp": "Настроить TOTP",
"statusDisabled": "Двухфакторная аутентификация не включена.",
"statusEnabled": "Двухфакторная аутентификация включена."
},
"rate": {
"count": "Count",
"per": "per",
"periodValue": "Period value"
"count": "Количество",
"per": "на",
"periodValue": "Значение периода"
},
"sections": "Sections",
"sections": "Разделы",
"sievepad": {
"debug": "Debug",
"defaultName": "Sieve script",
"dontShowAgain": "Don't show this again",
"failed": "Failed to open Sievepad.",
"warningDescription": "A new tab will open sievepad.com with a copy of this script. Sievepad compiles and runs the script entirely in your browser: nothing is uploaded to or stored on any server.",
"warningTitle": "Debug in Sievepad"
"debug": "Отладка",
"defaultName": "Скрипт Sieve",
"dontShowAgain": "Больше не показывать",
"failed": "Не удалось открыть Sievepad.",
"warningDescription": "В новой вкладке откроется sievepad.com с копией этого скрипта. Sievepad компилирует и запускает скрипт целиком в браузере: ничего не загружается и не хранится ни на одном сервере.",
"warningTitle": "Отладить в Sievepad"
},
"toggleTheme": "Toggle theme",
"toggleTheme": "Переключить тему",
"tracing": {
"addFilter": "Add filter",
"bufferFull": "(buffer full)",
"connecting": "Connecting...",
"date": "Date",
"disabled": "disabled",
"duration": "Duration",
"enabled": "enabled",
"eventCount_one": "{{count}} event",
"eventCount_other": "{{count}} events",
"events": "Events",
"failedToLoadTrace": "Failed to load trace",
"keywordsLabel": "Keywords (optional)",
"keywordsPlaceholder": "Enter keywords to filter events...",
"liveDisconnected": "Live tracing stream disconnected after multiple retries.",
"liveFailedStart": "Failed to start live tracing.",
"liveSubtitle": "Stream server events in real time.",
"liveTitle": "Live Tracing",
"noEvents": "No trace events to display.",
"restart": "Restart",
"spanType": "Span Type",
"startTracing": "Start tracing",
"stopTracing": "Stop tracing",
"stopped": "Stopped",
"streamingEvents": "Streaming events...",
"traceNotFound": "Trace not found",
"valuePlaceholder": "Value..."
"addFilter": "Добавить фильтр",
"bufferFull": "(буфер заполнен)",
"connecting": "Подключение...",
"date": "Дата",
"disabled": "выключено",
"duration": "Длительность",
"enabled": "включено",
"eventCount_one": "Событий: {{count}}",
"eventCount_other": "События: {{count}}",
"events": "События",
"failedToLoadTrace": "Не удалось загрузить трассу",
"keywordsLabel": "Ключевые слова (необязательно)",
"keywordsPlaceholder": "Введите ключевые слова для фильтрации событий...",
"liveDisconnected": "Поток трассировки в реальном времени отключился после нескольких попыток.",
"liveFailedStart": "Не удалось запустить трассировку в реальном времени.",
"liveSubtitle": "Потоковая передача событий сервера в реальном времени.",
"liveTitle": "Трассировка в реальном времени",
"noEvents": "Нет событий трассировки для показа.",
"restart": "Перезапустить",
"spanType": "Тип отрезка",
"startTracing": "Начать трассировку",
"stopTracing": "Остановить трассировку",
"stopped": "Остановлено",
"streamingEvents": "Потоковая передача событий...",
"traceNotFound": "Трассировка не найдена",
"valuePlaceholder": "Значение..."
},
"tryEnterprise": "Try Enterprise",
"userMenu": "User menu",
"tryEnterprise": "Попробовать Enterprise",
"userMenu": "Меню пользователя",
"view": {
"couldNotResolve": "Could not resolve object",
"failedToLoad": "Failed to load",
"noGetResponse": "No get response",
"objectNotFound": "Object not found"
"couldNotResolve": "Не удалось определить объект",
"failedToLoad": "Не удалось загрузить",
"noGetResponse": "Нет ответа на get",
"objectNotFound": "Объект не найден"
}
}
}
Разница между файлами не показана из-за своего большого размера Загрузить разницу
+15 -6
Просмотреть файл
@@ -6,19 +6,25 @@
import dict from './schema-ru.json';
const DICT = dict as Record<string, string>;
// Короткие названия только для пунктов меню (в подписях полей остаётся полный перевод)
const LAYOUT_DICT: Record<string, string> = { Directory: 'Пользователи' };
const KEYS = new Set([
'label', 'description', 'explanation', 'title', 'subtitle', 'placeholder',
'singularName', 'pluralName', 'keyLabel', 'valueLabel', 'defaultDisplayName', 'name',
'singularName', 'pluralName', 'keyLabel', 'valueLabel', 'defaultDisplayName',
]);
function walk(node: unknown, key?: string): unknown {
if (Array.isArray(node)) return node.map((v) => walk(v, key));
// Ключ name - это и подпись пункта меню (в layouts), и идентификатор поля или значения
// перечисления (в schemas, forms, lists, enums). Переводим его ТОЛЬКО в layouts,
// иначе ломаются поля данных и значения, которые уходят на сервер.
function walk(node: unknown, key?: string, inLayouts = false): unknown {
if (Array.isArray(node)) return node.map((v) => walk(v, key, inLayouts));
if (node && typeof node === 'object') {
const out: Record<string, unknown> = {};
for (const [k, v] of Object.entries(node as Record<string, unknown>)) out[k] = walk(v, k);
for (const [k, v] of Object.entries(node as Record<string, unknown>)) out[k] = walk(v, k, inLayouts);
return out;
}
if (typeof node === 'string' && key && KEYS.has(key)) {
if (typeof node === 'string' && inLayouts && key === 'name' && LAYOUT_DICT[node]) return LAYOUT_DICT[node];
if (typeof node === 'string' && key && (KEYS.has(key) || (inLayouts && key === 'name'))) {
const ru = DICT[node];
if (ru !== undefined) return ru;
}
@@ -26,5 +32,8 @@ function walk(node: unknown, key?: string): unknown {
}
export function translateSchema<T>(schema: T): T {
return walk(schema) as T;
const src = schema as Record<string, unknown>;
const out: Record<string, unknown> = {};
for (const [k, v] of Object.entries(src)) out[k] = walk(v, k, k === 'layouts');
return out as T;
}
+7 -1
Просмотреть файл
@@ -139,7 +139,8 @@ html, body { font-family: 'SW Inter', 'Segoe UI', system-ui, sans-serif; -webkit
h1, h2, h3, .text-2xl, .text-3xl { font-family: 'SW Rubik', 'Segoe UI', sans-serif; letter-spacing: -0.01em; }
/* логотип */
.sw-logo-text { display: flex; flex-direction: column; font: 700 17px/1 'SW Rubik', sans-serif; color: #f3f1eb; }
.sw-logo-text { display: flex; flex-direction: column; font: 700 17px/1 'SW Rubik', sans-serif; color: #16171c; }
header.sw-top .sw-logo-text { color: #f3f1eb; }
.sw-logo-text small { margin-top: 3px; font: 400 11.5px/1 'SW Inter', sans-serif; color: #9a9ca3; }
/* верхняя полоса и боковое меню тёмные, как панель Hestia StackWorks */
@@ -159,3 +160,8 @@ aside.sw-aside .text-muted-foreground { color: #8d8f96 !important; }
/* главные кнопки оранжевые, таблицы на белом поверх бумаги */
::selection { background: #ff4a1c; color: #fff; }
/* телефон: заголовок страницы и главная кнопка друг под другом */
@media (max-width: 640px) {
main h1 { font-size: 1.6rem; }
}