Сравнить коммиты
3
Коммитов
current
...
stackworks
| Автор | SHA1 | Дата | |
|---|---|---|---|
|
|
3ee8fdfa94 | ||
|
|
0134f36ce6 | ||
|
|
61ff14915b |
@@ -23,3 +23,4 @@ scripts/
|
||||
!.vscode/
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
webui.zip
|
||||
|
||||
@@ -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"}`.
|
||||
@@ -209,3 +209,4 @@
|
||||
297 Группы и роли
|
||||
298 Обратный DNS для IP
|
||||
299 Индексный документ
|
||||
363 Аутентифицирован как
|
||||
|
||||
|
@@ -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.
|
||||
|
@@ -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)
|
||||
@@ -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])
|
||||
@@ -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
|
||||
@@ -1,5 +0,0 @@
|
||||
ap-northeast-1
|
||||
cn-northwest-1
|
||||
HMAC-SHA256-128
|
||||
Relaxed/Relaxed
|
||||
user@example.com
|
||||
Executable
+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)}")
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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 => Имя файла
|
||||
@@ -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 => Ошибка разбора локального реестра
|
||||
@@ -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 => Управление узлами кластера: создание узлов
|
||||
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@@ -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|Время приёма
|
||||
@@ -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)
|
||||
@@ -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'))"
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Подпись студии StackWorks («штамп»): знак и две строки - «разработка и поддержка» / StackWorks.
|
||||
* В остальных проектах она ставится скриптом https://stackworks.ru/sign/sw-sign.js,
|
||||
* здесь - компонентом, чтобы React не спорил с чужими изменениями страницы.
|
||||
* Оформление в src/index.css, классы swsig*.
|
||||
*/
|
||||
export default function SwSignature({ dark = false }: { dark?: boolean }) {
|
||||
const bg = dark ? '#F3F1EB' : '#16171C';
|
||||
const fg = dark ? '#16171C' : '#F3F1EB';
|
||||
return (
|
||||
<a
|
||||
className={'swsig' + (dark ? ' swsig-dark' : '')}
|
||||
href="https://stackworks.ru/?utm_source=mail.stackworks.ru&utm_medium=signature"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
aria-label="Разработка и поддержка - StackWorks"
|
||||
>
|
||||
<svg viewBox="0 0 100 100" aria-hidden="true">
|
||||
<rect x="2" y="2" width="96" height="96" rx="25" fill={bg} />
|
||||
<rect className="b b1" x="20" y="29" width="44" height="12" rx="6" fill={fg} />
|
||||
<rect className="b b2" x="30" y="45" width="50" height="12" rx="6" fill="#FF4A1C" />
|
||||
<rect className="b b3" x="40" y="61" width="34" height="12" rx="6" fill={fg} />
|
||||
</svg>
|
||||
<span className="swsig-txt">
|
||||
<span className="swsig-cap">разработка и поддержка</span>
|
||||
<span className="swsig-word">Stack<i>Works</i></span>
|
||||
</span>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
|
||||
import SwSignature from '@/components/common/SwSignature';
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import * as LucideIcons from 'lucide-react';
|
||||
@@ -365,6 +366,10 @@ export function Sidebar() {
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div className="flex justify-center px-3 py-3">
|
||||
<SwSignature dark />
|
||||
</div>
|
||||
|
||||
{layouts.length > 1 && (
|
||||
<TooltipProvider>
|
||||
<div className="sw-aside-foot flex items-center justify-around border-t bg-background px-2 py-2">
|
||||
|
||||
@@ -176,7 +176,7 @@ export function TopBar() {
|
||||
</>
|
||||
)}
|
||||
|
||||
{edition !== 'enterprise' && (
|
||||
{edition === 'community' && (
|
||||
<>
|
||||
<DropdownMenuItem onClick={() => setUpsellOpen(true)}>
|
||||
<Sparkles className="mr-2 h-4 w-4" />
|
||||
|
||||
@@ -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": "Объект не найден"
|
||||
}
|
||||
}
|
||||
}
|
||||
+7252
-1
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@@ -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;
|
||||
}
|
||||
|
||||
+24
-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,25 @@ aside.sw-aside .text-muted-foreground { color: #8d8f96 !important; }
|
||||
|
||||
/* главные кнопки оранжевые, таблицы на белом поверх бумаги */
|
||||
::selection { background: #ff4a1c; color: #fff; }
|
||||
|
||||
/* телефон: заголовок страницы и главная кнопка друг под другом */
|
||||
@media (max-width: 640px) {
|
||||
main h1 { font-size: 1.6rem; }
|
||||
}
|
||||
|
||||
/* подпись студии (компонент SwSignature, повторяет https://stackworks.ru/sign/sw-sign.js) */
|
||||
.swsig { --ink: #16171c; --cap: #6a6c75; --acc: #ff4a1c; display: inline-flex; align-items: center; gap: 10px;
|
||||
min-height: 44px; text-decoration: none; color: var(--ink); border-radius: 8px; }
|
||||
.swsig-dark { --ink: #f3f1eb; --cap: #9a9ca3; }
|
||||
.swsig svg { width: 30px; height: 30px; flex: 0 0 auto; display: block; }
|
||||
.swsig-txt { display: flex; flex-direction: column; gap: 4px; }
|
||||
.swsig-cap { font: 400 11.5px/1 'SW Inter', system-ui, sans-serif; color: var(--cap); white-space: nowrap; }
|
||||
.swsig-word { font: 700 16px/1 'SW Rubik', sans-serif; letter-spacing: -.01em; color: var(--ink); white-space: nowrap; }
|
||||
.swsig-word i { font-style: normal; color: var(--acc); }
|
||||
@keyframes swsig-shuffle { 0%, 100% { transform: translateX(0); } 45% { transform: translateX(9px); } }
|
||||
.swsig .b { transform-box: fill-box; }
|
||||
.swsig:hover .b, .swsig:focus-visible .b { animation: swsig-shuffle .38s ease-in-out both; }
|
||||
.swsig:hover .b2, .swsig:focus-visible .b2 { animation-delay: .07s; }
|
||||
.swsig:hover .b3, .swsig:focus-visible .b3 { animation-delay: .14s; }
|
||||
.swsig:focus-visible { outline: 2px solid var(--acc); outline-offset: 4px; }
|
||||
@media (prefers-reduced-motion: reduce) { .swsig .b { animation: none !important; } }
|
||||
|
||||
@@ -10,6 +10,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { ArrowRight, Loader2 } from 'lucide-react';
|
||||
|
||||
import Logo from '@/components/common/Logo';
|
||||
import SwSignature from '@/components/common/SwSignature';
|
||||
import { useDocumentTitle } from '@/hooks/useDocumentTitle';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Input } from '@/components/ui/input';
|
||||
@@ -43,7 +44,7 @@ export default function LoginPage() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex min-h-screen items-center justify-center bg-content-background px-4">
|
||||
<div className="flex min-h-screen flex-col items-center justify-center gap-6 bg-content-background px-4">
|
||||
<Card className="w-full max-w-sm shadow-sm">
|
||||
<CardHeader className="items-center text-center">
|
||||
<Logo />
|
||||
@@ -87,6 +88,7 @@ export default function LoginPage() {
|
||||
</form>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<SwSignature />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,11 +20,13 @@ interface AccountState {
|
||||
|
||||
export const useAccountStore = create<AccountState>()((set, get) => ({
|
||||
permissions: [],
|
||||
edition: 'community',
|
||||
edition: 'oss',
|
||||
locale: 'en',
|
||||
|
||||
// StackWorks: Enterprise не покупаем, поэтому бесплатную редакцию показываем как сборку
|
||||
// с открытым кодом - закрытые пункты скрыты, окно с предложением Enterprise не появляется.
|
||||
setAccountInfo: (permissions, edition, locale) => {
|
||||
set({ permissions, edition, locale });
|
||||
set({ permissions, edition: edition === 'community' ? 'oss' : edition, locale });
|
||||
},
|
||||
|
||||
hasPermission: (perm) => {
|
||||
|
||||
Ссылка в новой задаче
Block a user