Add explicit option to disable automatic backups

Fixes #869
This commit is contained in:
Girish Ramakrishnan
2025-11-05 15:43:16 +01:00
parent 0650fca1cf
commit 2ea7847d4f
3 changed files with 73 additions and 60 deletions
+56 -47
View File
@@ -124,7 +124,8 @@
"settings": {
"allowProfileEditCheckbox": "Разрешить пользователям редактировать своё имя и адрес электронной почты",
"require2FACheckbox": "Требовать от пользователей настройки 2FA",
"saveAction": "Сохранить"
"saveAction": "Сохранить",
"title": "Настройки"
},
"externalLdap": {
"description": "Эта настройка будет синхронизировать и аутентифицировать пользователей и группы с внешнего сервера LDAP или Active Directory. Синхронизация выполняется периодически, но также может быть запущена вручную.",
@@ -143,7 +144,7 @@
"groupFilter": "Фильтр группы",
"groupnameField": "Поле с именем группы",
"auth": "Авторизоваться",
"autocreateUsersOnLogin": "Автоматически создавать пользователей после их входа",
"autocreateUsersOnLogin": "Автоматически создавать пользователей при входе",
"syncAction": "Синхронизировать",
"configureAction": "Настроить",
"errorSelfSignedCert": "Сервер использует недействительный или самоподписанный сертификат.",
@@ -152,7 +153,7 @@
"addUserDialog": {
"sendInviteCheckbox": "Отправить приглашение на электронную почту",
"title": "Добавить пользователя",
"addUserAction": "Добавить пользователя"
"addUserAction": "Добавить"
},
"user": {
"fullName": "Полное имя",
@@ -164,7 +165,7 @@
"displayName": "Отображаемое имя",
"primaryEmail": "Основной адрес электронной почты",
"recoveryEmail": "Электронная почта для восстановления пароля",
"activeCheckbox": "Пользователь активен",
"activeCheckbox": "Активный пользователь",
"fallbackEmailPlaceholder": "Если не указано, будет использоваться основной почтовый ящик",
"displayNamePlaceholder": "Необязательно. Если не указано, пользователь может указать во время регистрации"
},
@@ -206,7 +207,7 @@
},
"setGhostDialog": {
"description": "Установите временный пароль для доступа к приложениям и панели управления от имени данного пользователя. Такой пароль будет действовать 6 часов.",
"title": "Создайте пароль для обезличивания {{ username }}",
"title": "Вотйти от имени {{ username }}",
"password": "Временный Пароль",
"setPassword": "Установить пароль",
"generatePassword": "Сгенерировать пароль"
@@ -221,7 +222,8 @@
"group": {
"name": "Имя",
"users": "Пользователи",
"addGroupAction": "Добавить группу"
"addGroupAction": "Добавить",
"allowedApps": "Разрешённые приложения"
},
"externalLdapDialog": {
"title": "Настроить LDAP"
@@ -238,7 +240,7 @@
"description": "Сервер LDAP позволяет внешним приложениям аутентифицировать пользователей с использованием Каталога пользователей Cloudron.",
"secret": {
"label": "Привязать пароль",
"description": "Все запросы LDAP должны быть идентифицированы при помощи данного секрета и уникального имени пользователя (DN) <i>{{ userDN }}</i>",
"description": "Аутентифицируйте запросы с помощью данного секрета и уникального имени пользователя (DN) <i>{{ userDN }}</i>",
"url": "URL сервера"
},
"cloudflarePortWarning": "Для доступа к LDAP серверу через домен панели управления проксирование Cloudflare должно быть выключено",
@@ -273,17 +275,17 @@
"title": "Пароли приложений",
"app": "Приложение",
"name": "Имя",
"noPasswordsPlaceholder": "Пароли приложений не созданы"
"noPasswordsPlaceholder": "Пароли приложений отсутствуют"
},
"title": "Профиль",
"primaryEmail": "Главный адрес электронной почты",
"passwordRecoveryEmail": "Адрес электронной почты для восстановления пароля",
"passwordRecoveryEmail": "Почта для восстановления пароля",
"language": "Язык",
"apiTokens": {
"title": "API Токены",
"name": "Имя",
"description": "Используйте эти персональные токены для аутентификации в <a target=\"_blank\" href=\"{{ apiDocsLink }}\">Cloudron API</a>",
"noTokensPlaceholder": "API Токены не созданы",
"description": "Используйте эти персональные токены для аутентификации в <a target=\"_blank\" href=\"{{ apiDocsLink }}\">Cloudron API</a>.",
"noTokensPlaceholder": "API Токены отсутствуют",
"lastUsed": "Последний раз использован",
"neverUsed": "никогда",
"scope": "Область",
@@ -300,7 +302,7 @@
"changeEmail": {
"title": "Изменить главный адрес электронной почты",
"email": "Новый адрес электронной почты",
"password": ароль для подтверждения"
"password": "Подтверждение паролем"
},
"changeFallbackEmail": {
"title": "Изменить пароль электронной почты восстановления"
@@ -322,7 +324,7 @@
"access": "API доступ",
"allowedIpRanges": "Разрешённые диапазоны IP"
},
"changePasswordAction": "Изменить Пароль",
"changePasswordAction": "Изменить пароль",
"disable2FAAction": "Выключить 2FA",
"enable2FAAction": "Включить 2FA",
"passwordResetNotification": {
@@ -355,7 +357,7 @@
"description": "Обновления приложения устанавливаются периодически в соответствии с Расписанием обновлений."
},
"updates": {
"description": "Cloudron периодически проверяет <a href=\"https://cloudron.io\" target=\"_blank\">Магазин приложений</a>на наличие обновлений."
"description": "Cloudron периодически проверяет Магазин приложений на наличие обновлений."
}
},
"backups": {
@@ -363,7 +365,7 @@
"description": "Резервные копии - это полные снимки ваших приложений. Вы можете использовать резервные копии для восстановления работы приложения или для его клонирования.",
"title": "Резервные копии",
"time": "Создан",
"downloadConfigTooltip": "Скачать Конфигурацию",
"downloadConfigTooltip": "Скачать конфигурацию",
"cloneTooltip": "Клонировать",
"restoreTooltip": "Восстановить",
"createBackupAction": "Создать резервную копию",
@@ -538,12 +540,12 @@
"disableIndexingAction": "Отключить индексирование",
"txtPlaceholder": "Оставьте пустым, чтобы позволить поисковым ботам индексировать приложение"
},
"hstsPreload": "Активировать предзагрузку HSTS для этого сайта и всех поддоменов"
"hstsPreload": "Активировать предзагрузку HSTS (в том числе для поддоменов)"
},
"repair": {
"recovery": {
"title": "Режим восстановления",
"description": "Чтобы исправить сломанные плагины или неправильно внесённые изменения в конфигурацию, поместите приложение в <a href=\"{{ docsLink }}\" target=\"_blank\">Режим восстановления</a>.",
"description": "Чтобы исправить сломанные плагины или неправильно внесённые изменения в конфигурацию, поместите приложение в Режим восстановления.",
"restartAction": "Запустить повторно",
"disableAction": "Деактивировать режим восстановления",
"enableAction": "Активировать режим восстановления"
@@ -634,7 +636,7 @@
},
"archive": {
"action": "Архивировать",
"latestBackupInfo": "Последняя резервная копия создана {{date}}.",
"latestBackupInfo": "Последняя резервная копия в {{siteName}} создана {{date}}.",
"title": "Архив",
"description": "Последняя резервная копия будет добавлена в <a href=\"/#/backups\">Архив</a>. Приложение будет удалено, но его можно восстановить из интерфейса Резервного копирования. Другие резервные копии будут очищены в соответствии с политикой резервного копирования.",
"noBackup": "Приложение не имеет резервных копий. Архивирование требует по крайней мере одну резервную копию."
@@ -661,13 +663,13 @@
"appCount": "{{ appCount }} Приложений",
"contents": "Содержит",
"noApps": "Приложения отсутствуют",
"tooltipDownloadBackupConfig": "Скачать Конфигурацию",
"tooltipDownloadBackupConfig": "Скачать конфигурацию",
"cleanupBackups": "Очистить резервные копии",
"backupNow": "Создать копию",
"tooltipPreservedBackup": "Резервная копия будет сохранена"
},
"schedule": {
"title": "Расписание & Политика хранения",
"title": "Расписание & политика хранения",
"schedule": "Расписание",
"retentionPolicy": "Политика хранения"
},
@@ -746,7 +748,9 @@
"id": "Id",
"date": "Дата",
"version": "Версия",
"list": "Ссылается на резервные копии {{ appCount }} приложений"
"list": "Ссылается на резервные копии {{ appCount }} приложений",
"size": "Размер",
"duration": "Продолжительность"
},
"backupEdit": {
"title": "Редактировать резервную копию",
@@ -804,9 +808,10 @@
"domains": {
"title": "Домены",
"outbound": "Только исходящие письма",
"stats": "Количество: {{ mailboxCount }} / Используется: {{ usage }}",
"stats": "Почтовые ящики: {{ mailboxCount }} / Используется: {{ usage }}",
"disabled": "Выключено",
"testEmailTooltip": "Отправить тестовое письмо"
"testEmailTooltip": "Отправить тестовое письмо",
"inbound": "Входящие & Исходящие"
},
"settings": {
"title": "Настройки",
@@ -857,7 +862,7 @@
"customRules": "Пользовательские правила Spamassassin",
"blacklisteAddressesPlaceholder": "Шаблоны адресов электронной почты, разделенные строками",
"customRulesPlaceholder": "Пользовательские правила Spamassassin",
"blacklisteAddresses": "Адреса в листе блокировки",
"blacklisteAddresses": "Лист блокировки Email адресов",
"blacklisteAddressesInfo": "Подходящие адреса будут попадать в папку Спам. Поддерживаются '*' и '?' шаблоны glob."
},
"testMailDialog": {
@@ -927,7 +932,7 @@
"trustedIps": {
"summary": "{{ trustCount }} IP доверены",
"title": "Настроить доверенные IP",
"description": "HTTP заголовки от совпадающих IP адресов будут доверены"
"description": "HTTP заголовки от совпадающих IP адресов будут доверены."
},
"trustedIpRanges": "Доверенные IP и диапазоны "
},
@@ -973,9 +978,10 @@
"checkForUpdatesAction": "Проверить обновления",
"updateAvailableAction": "Доступно Обновление",
"stopUpdateAction": "Остановить обновление",
"description": "Обновления платформы и приложений запускаются на основании расписания и в соответствии с <a href=\"/#/system-locale\">системным часовым поясом</a>.",
"description": "Обновления платформы и приложений запускаются на основании установленного здесь расписания и в соответствии с <a href=\"/#/system-settings\">системным часовым поясом</a>.",
"schedule": "Расписание",
"disabled": "Выключено"
"disabled": "Выключено",
"onLatest": "последний"
},
"updateScheduleDialog": {
"title": "Настроить расписание автоматических обновлений",
@@ -984,7 +990,7 @@
"selectOne": "Выберите по крайней мере один день и время",
"days": "Дни",
"hours": "Часы",
"description": "Установите дни и часы, в которые будет происходить автоматическое обновление платформы и приложений. Убедитесь, что установленное расписание не пересекается с <a href=\"/#/backups\">расписанием резервного копирования</a>."
"description": "Установите дни и часы, в которые будет происходить автоматическое обновление платформы и приложений. Убедитесь, что установленное расписание не пересекается с расписанием резервного копирования."
},
"updateDialog": {
"title": "Обновить Cloudron до",
@@ -1054,7 +1060,7 @@
"renewCerts": {
"title": "Обновление сертификатов",
"description": "Сертификаты Let’s Encrypt перевыпускаются автоматически. Используйте данную опцию, чтобы запустить перевыпуск прямо сейчас.",
"renewAllAction": "Обновить сертификаты"
"renewAllAction": "Обновить все сертификаты"
},
"changeDashboardDomain": {
"title": "Домен панели управления",
@@ -1080,12 +1086,12 @@
"nameComApiToken": "API Токен",
"namecheapUsername": "Имя пользователя Namecheap",
"namecheapApiKey": "API Ключ",
"manualInfo": "Все записи DNS должны быть прописаны вручную до установки любого приложения.",
"letsEncryptInfo": "Для Lets Encrypt требуется, чтобы Ваш сервер был доступен через 80 порт",
"manualInfo": "Все записи DNS должны быть прописаны вручную до установки приложения",
"letsEncryptInfo": "Для Lets Encrypt требуется, чтобы Ваш сервер был доступен через 80 порт.",
"advancedAction": "Расширенные настройки…",
"zoneName": "Имя зоны (Необязательно)",
"addTitle": "Добавить домен",
"addDescription": "Добавление домена позволяет устанавливать приложения на его поддомены. Настроить электронную почту для выбранного домена можно разделе Электронная почта.",
"addDescription": "Добавление домена позволяет устанавливать приложения на его поддомены. Настроить электронную почту можно разделе Электронная почта.",
"linodeToken": "Токен Linode",
"namecheapInfo": "IP-адрес сервера должен быть внесён в список разрешённых ключей для этого ключа API",
"wildcardInfo": "Вручную настройте A (IPv4) и AAAA (IPv6) DNS записи для <b>*.{{ domain }}.</b> и <b>{{ domain }}.</b> на IP-адрес данного сервера",
@@ -1118,7 +1124,7 @@
"gandiTokenTypePAT": "Персональный токен доступа (PAT)",
"inwxUsername": "Имя пользователя",
"inwxPassword": "Пароль",
"customNameservers": "Домен использует пользовательские серверы имён"
"customNameservers": "Домен использует пользовательские (Vanity) серверы имён"
},
"removeDialog": {
"title": "Действительно удалить {{ domain }}?",
@@ -1317,7 +1323,8 @@
"usage": "Использовано",
"aliases": "Псевдонимы",
"emptyPlaceholder": "Почтовые ящики отсутствуют",
"noMatchesPlaceholder": "Подходящие почтовые ящики отсутствуют"
"noMatchesPlaceholder": "Подходящие почтовые ящики отсутствуют",
"stats": "Количество: {{ mailboxCount }} / Используется: {{ usage }}"
},
"title": "Входящие письма",
"sieveServerInfo": "Сервис ManageSieve",
@@ -1343,7 +1350,7 @@
"description": "Получать входящие письма для этого домена."
},
"config": {
"title": "Конфигурация электронной почты {{ domain }}",
"title": "Конфигурация электронной почты {{ domain }}",
"clientConfiguration": "Настройка почтовых клиентов",
"sending": {
"title": "Отправка"
@@ -1357,7 +1364,7 @@
"description": "Маскировка позволяет пользователям и приложениям отправлять письма с произвольным именем отправителя в поле «ОТ»."
},
"signature": {
"title": "Подпись",
"title": "Email подпись",
"plainTextFormat": "Обычный текст",
"htmlFormat": "Формат HTML",
"description": "Данный текст будет прикреплён ко всем письмам, отправляемым с выбранного домена."
@@ -1385,12 +1392,12 @@
"addAnotherAliasAction": "Добавить ещё один псевдоним",
"aliases": "Псевдонимы",
"noAliases": "Псевдонимы не настроены.",
"enableStorageQuota": "Включить квоту хранилища"
"enableStorageQuota": "Квота хранилища"
},
"deleteMailboxDialog": {
"title": "Удалить почтовый ящик {{ name }}@{{ domain }}",
"deleteAction": "Удалить",
"purgeMailboxCheckbox": "Удалить все письма и фильтры внутри почтового ящика",
"purgeMailboxCheckbox": "Удалить все письма и фильтры внутри этого почтового ящика",
"description": "После удаления, письма, отправленные на данный почтовый ящик, будут возвращаться отправителю с ошибкой. Вы можете не удалять содержимое почтовых ящиков в архивных целях. Они будут храниться на сервере по пути <code> /home/yellowtent/boxdata/mail/vmail</code>."
},
"addMailinglistDialog": {
@@ -1405,14 +1412,14 @@
"description": "Вы действительно хотите удалить список рассылки <b>{{ name }}@{{ domain }}</b>?"
},
"updateMailboxDialog": {
"enablePop3": "Включить POP3",
"activeCheckbox": "Почтовый ящик активен"
"enablePop3": "Доступ по протоколу POP3",
"activeCheckbox": "Активный почтовый ящик"
},
"editMailinglistDialog": {
"title": "Редактировать список рассылки {{ name }}@{{ domain }}"
},
"updateMailinglistDialog": {
"activeCheckbox": "Список рассылки активен"
"activeCheckbox": "Активный список рассылки"
},
"howToConnectInfoModal": "Настройка почтовых клиентов"
},
@@ -1423,7 +1430,8 @@
"2faToken": "2FA Токен",
"errorIncorrectCredentials": "Неправильное имя пользователя или пароль",
"errorIncorrect2FAToken": "Неверный 2FA токен",
"errorInternal": "Внутренняя ошибка, попробуйте позже"
"errorInternal": "Внутренняя ошибка, попробуйте позже",
"loginAction": "Войти"
},
"passwordReset": {
"title": "Сброс пароля",
@@ -1522,7 +1530,7 @@
},
"storage": {
"mounts": {
"description": "Смонтированные <a href=\"/#/volumes\">тома</a> станут доступны в <code>/media/(имя тома)</code>. Смонтированные данные не попадают в резервные копии приложений."
"description": "Смонтированные тома станут доступны в <code>/media/(имя тома)</code>. Смонтированные данные не попадают в резервные копии приложений."
}
},
"oidc": {
@@ -1535,7 +1543,7 @@
"id": "ID Клиента",
"secret": "Секрет",
"signingAlgorithm": "Метод подписи",
"loginRedirectUri": "URL обратного вызова (разделённые запятой)"
"loginRedirectUri": "URLs обратного вызова (разделённые запятой)"
},
"description": "Провайдер OpenID может быть использован внешними приложениями для SSO аутентификации.",
"editClientDialog": {
@@ -1566,7 +1574,8 @@
"backup": {
"target": {
"label": "Локация резервных копий",
"size": "Размер"
"size": "Размер",
"fileCount": "Файлы"
},
"sites": {
"title": "Локации резервных копий",
@@ -1585,7 +1594,7 @@
"provider": "Провайдер",
"username": "Имя пользователя",
"title": "Реестры Docker",
"description": "Cloudron может выполнять команду pull и установку <a href=\"{{ customAppsLink }}\" target=\"_blank\">сторонних приложений</a> из частного реестра docker.",
"description": "Cloudron может выполнять команду pull и установку сторонних приложений из частного реестра Docker.",
"removeDialog": {
"title": "Удалить {{ serverAddress }}"
},
@@ -1609,7 +1618,7 @@
},
"externallinks": {
"label": "Внешние ссылки",
"description": "Добавляет ярлык на внешние сервисы в панель управления"
"description": "Добавляет ярлык на внешние сервисы в панель управления."
},
"server": {
"title": "Сервер"