diff --git a/dashboard/public/translation/en.json b/dashboard/public/translation/en.json
index 852e0b1e9..f3e90b0b3 100644
--- a/dashboard/public/translation/en.json
+++ b/dashboard/public/translation/en.json
@@ -374,7 +374,9 @@
"scheduleDescription": "Set the days and times for backups. Make sure this schedule does not overlap with the update schedule.",
"days": "Days",
"hours": "Hours",
- "retentionPolicy": "Retention Policy"
+ "retentionPolicy": "Retention Policy",
+ "disable": "Disable Automatic Backups",
+ "enable": "Enable Automatic Backups"
},
"configureBackupStorage": {
"title": "Configure Backup Site",
@@ -388,8 +390,8 @@
"bucketName": "Bucket name",
"prefix": "Prefix",
"region": "Region",
- "s3AccessKeyId": "Access key id",
- "s3SecretAccessKey": "Secret access key",
+ "s3AccessKeyId": "Access Key ID",
+ "s3SecretAccessKey": "Secret Access Key",
"gcsServiceKey": "Service Account Key",
"format": "Storage Format",
"s3LikeNote": "Please remove any object expiration lifecycle rules since it will corrupt rsync backups.",
diff --git a/dashboard/public/translation/ru.json b/dashboard/public/translation/ru.json
index 42d58bcbc..ccb050b87 100644
--- a/dashboard/public/translation/ru.json
+++ b/dashboard/public/translation/ru.json
@@ -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) {{ userDN }}",
+ "description": "Аутентифицируйте запросы с помощью данного секрета и уникального имени пользователя (DN) {{ userDN }}",
"url": "URL сервера"
},
"cloudflarePortWarning": "Для доступа к LDAP серверу через домен панели управления проксирование Cloudflare должно быть выключено",
@@ -273,17 +275,17 @@
"title": "Пароли приложений",
"app": "Приложение",
"name": "Имя",
- "noPasswordsPlaceholder": "Пароли приложений не созданы"
+ "noPasswordsPlaceholder": "Пароли приложений отсутствуют"
},
"title": "Профиль",
"primaryEmail": "Главный адрес электронной почты",
- "passwordRecoveryEmail": "Адрес электронной почты для восстановления пароля",
+ "passwordRecoveryEmail": "Почта для восстановления пароля",
"language": "Язык",
"apiTokens": {
"title": "API Токены",
"name": "Имя",
- "description": "Используйте эти персональные токены для аутентификации в Cloudron API",
- "noTokensPlaceholder": "API Токены не созданы",
+ "description": "Используйте эти персональные токены для аутентификации в Cloudron API.",
+ "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 периодически проверяет Магазин приложенийна наличие обновлений."
+ "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": "Чтобы исправить сломанные плагины или неправильно внесённые изменения в конфигурацию, поместите приложение в Режим восстановления.",
+ "description": "Чтобы исправить сломанные плагины или неправильно внесённые изменения в конфигурацию, поместите приложение в Режим восстановления.",
"restartAction": "Запустить повторно",
"disableAction": "Деактивировать режим восстановления",
"enableAction": "Активировать режим восстановления"
@@ -634,7 +636,7 @@
},
"archive": {
"action": "Архивировать",
- "latestBackupInfo": "Последняя резервная копия создана {{date}}.",
+ "latestBackupInfo": "Последняя резервная копия в {{siteName}} создана {{date}}.",
"title": "Архив",
"description": "Последняя резервная копия будет добавлена в Архив. Приложение будет удалено, но его можно восстановить из интерфейса Резервного копирования. Другие резервные копии будут очищены в соответствии с политикой резервного копирования.",
"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": "Обновления платформы и приложений запускаются на основании расписания и в соответствии с системным часовым поясом.",
+ "description": "Обновления платформы и приложений запускаются на основании установленного здесь расписания и в соответствии с системным часовым поясом.",
"schedule": "Расписание",
- "disabled": "Выключено"
+ "disabled": "Выключено",
+ "onLatest": "последний"
},
"updateScheduleDialog": {
"title": "Настроить расписание автоматических обновлений",
@@ -984,7 +990,7 @@
"selectOne": "Выберите по крайней мере один день и время",
"days": "Дни",
"hours": "Часы",
- "description": "Установите дни и часы, в которые будет происходить автоматическое обновление платформы и приложений. Убедитесь, что установленное расписание не пересекается с расписанием резервного копирования."
+ "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": "Для Let’s Encrypt требуется, чтобы Ваш сервер был доступен через 80 порт",
+ "manualInfo": "Все записи DNS должны быть прописаны вручную до установки приложения",
+ "letsEncryptInfo": "Для Let’s Encrypt требуется, чтобы Ваш сервер был доступен через 80 порт.",
"advancedAction": "Расширенные настройки…",
"zoneName": "Имя зоны (Необязательно)",
"addTitle": "Добавить домен",
- "addDescription": "Добавление домена позволяет устанавливать приложения на его поддомены. Настроить электронную почту для выбранного домена можно разделе Электронная почта.",
+ "addDescription": "Добавление домена позволяет устанавливать приложения на его поддомены. Настроить электронную почту можно разделе Электронная почта.",
"linodeToken": "Токен Linode",
"namecheapInfo": "IP-адрес сервера должен быть внесён в список разрешённых ключей для этого ключа API",
"wildcardInfo": "Вручную настройте A (IPv4) и AAAA (IPv6) DNS записи для *.{{ domain }}. и {{ domain }}. на 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": "После удаления, письма, отправленные на данный почтовый ящик, будут возвращаться отправителю с ошибкой. Вы можете не удалять содержимое почтовых ящиков в архивных целях. Они будут храниться на сервере по пути /home/yellowtent/boxdata/mail/vmail."
},
"addMailinglistDialog": {
@@ -1405,14 +1412,14 @@
"description": "Вы действительно хотите удалить список рассылки {{ name }}@{{ domain }}?"
},
"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": "Смонтированные тома станут доступны в /media/(имя тома). Смонтированные данные не попадают в резервные копии приложений."
+ "description": "Смонтированные тома станут доступны в /media/(имя тома). Смонтированные данные не попадают в резервные копии приложений."
}
},
"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 и установку сторонних приложений из частного реестра docker.",
+ "description": "Cloudron может выполнять команду pull и установку сторонних приложений из частного реестра Docker.",
"removeDialog": {
"title": "Удалить {{ serverAddress }}"
},
@@ -1609,7 +1618,7 @@
},
"externallinks": {
"label": "Внешние ссылки",
- "description": "Добавляет ярлык на внешние сервисы в панель управления"
+ "description": "Добавляет ярлык на внешние сервисы в панель управления."
},
"server": {
"title": "Сервер"
diff --git a/dashboard/src/components/BackupSiteScheduleDialog.vue b/dashboard/src/components/BackupSiteScheduleDialog.vue
index 09a503b92..239880a09 100644
--- a/dashboard/src/components/BackupSiteScheduleDialog.vue
+++ b/dashboard/src/components/BackupSiteScheduleDialog.vue
@@ -1,7 +1,7 @@