diff --git a/dashboard/public/translation/de.json b/dashboard/public/translation/de.json
index 5925194c4..8b93f764b 100644
--- a/dashboard/public/translation/de.json
+++ b/dashboard/public/translation/de.json
@@ -978,7 +978,7 @@
"version": "Version",
"contents": "Inhalt",
"noBackups": "Es wurde noch keine Datensicherung durchgeführt.",
- "title": "Liste vorhandener Datensicherungen",
+ "title": "Datensicherungen",
"tooltipEditBackup": "Datensicherung bearbeiten",
"tooltipPreservedBackup": "Dieses Backup bleibt erhalten"
},
@@ -2034,5 +2034,8 @@
"settings": {
"title": "Einstellungen"
}
+ },
+ "appearance": {
+ "title": "Erscheinungsbild"
}
}
diff --git a/dashboard/public/translation/nl.json b/dashboard/public/translation/nl.json
index 00d2036f1..862d7254c 100644
--- a/dashboard/public/translation/nl.json
+++ b/dashboard/public/translation/nl.json
@@ -566,7 +566,8 @@
"appCount": "{{ appCount }} apps",
"tooltipDownloadBackupConfig": "Download Configuratie",
"tooltipEditBackup": "Bewerk Backup",
- "tooltipPreservedBackup": "Deze backup blijft behouden"
+ "tooltipPreservedBackup": "Deze backup blijft behouden",
+ "primaryAction": "Stel in als Hoofd"
},
"logs": {
"title": "Logbestanden",
@@ -2091,6 +2092,10 @@
},
"sites": {
"title": "Backup Locaties"
+ },
+ "primaryDialog": {
+ "title": "Stel is als Hoofdlocatie",
+ "description": "De Hoofdlocatie wordt gebruikt voor automatische updates."
}
},
"dockerRegistries": {
diff --git a/dashboard/public/translation/ru.json b/dashboard/public/translation/ru.json
index fa2fb6202..188cc8859 100644
--- a/dashboard/public/translation/ru.json
+++ b/dashboard/public/translation/ru.json
@@ -96,7 +96,8 @@
},
"disableAction": "Выключить",
"navbar": {
- "users": "Пользователи"
+ "users": "Пользователи",
+ "groups": "Группы"
},
"enableAction": "Включить",
"statusEnabled": "Включено",
@@ -207,7 +208,7 @@
"editUserTooltip": "Редактировать пользователя",
"removeUserTooltip": "Удалить пользователя",
"transferOwnershipTooltip": "Передать право владельца",
- "invitationTooltip": "Пригласить пользователя",
+ "invitationTooltip": "Приглашение",
"setGhostTooltip": "Обезличить",
"mailmanagerTooltip": "Этот пользователь может управлять другими пользователями и почтовыми ящиками"
},
@@ -282,7 +283,7 @@
"recoveryEmail": "Электронная почта для восстановления пароля",
"errorDisplayNameRequired": "Требуется имя",
"activeCheckbox": "Пользователь активен",
- "fallbackEmailPlaceholder": "Необязательно. Если не указано, будет использоваться основной почтовый ящик",
+ "fallbackEmailPlaceholder": "Если не указано, будет использоваться основной почтовый ящик",
"displayNamePlaceholder": "Необязательно. Если не указано, пользователь может указать во время регистрации",
"external2FA": "Настройка 2FA осуществляется внешним ресурсом аутентификации",
"ldapGroups": "Группы LDAP"
@@ -297,7 +298,7 @@
"title": "Редактировать группу {{ name }}"
},
"deleteGroupDialog": {
- "description": "Данная группа всё ещё содержит {{ memberCount }} участников. Вы уверены, что данная группа не активна?",
+ "description": "Данная группа содержит {{ memberCount }} участников. Вы точно хотите удалить её?",
"title": "Удалить группу {{ name }}",
"deleteAction": "Удалить"
},
@@ -340,7 +341,7 @@
"setGhostDialog": {
"description": "Установите временный пароль для доступа к приложениям и панели управления от имени данного пользователя. Такой пароль будет действовать 6 часов.",
"title": "Создайте пароль для обезличивания {{ username }}",
- "password": "Пароль",
+ "password": "Временный Пароль",
"setPassword": "Установить пароль",
"generatePassword": "Сгенерировать пароль"
},
@@ -376,13 +377,14 @@
"label": "Ограничить доступ"
},
"enabled": "Включено",
- "description": "Cloudron может выступать в качестве центрального сервера каталогов пользователей для внешних приложений.",
+ "description": "Сервер LDAP может быть использован для аутентификации внешними приложениями.",
"secret": {
"label": "Привязать пароль",
"description": "Все запросы LDAP должны быть идентифицированы при помощи данного секрета и уникального имени пользователя (DN) {{ userDN }}",
"url": "URL сервера"
},
- "cloudflarePortWarning": "Для доступа к LDAP серверу через домен панели управления проксирование Cloudflare должно быть выключено"
+ "cloudflarePortWarning": "Для доступа к LDAP серверу через домен панели управления проксирование Cloudflare должно быть выключено",
+ "title": "Сервер LDAP"
},
"userImportDialog": {
"title": "Импорт пользователей",
@@ -406,7 +408,8 @@
"all": "Все пользователи",
"active": "Активные пользователи",
"inactive": "Неактивные пользователи"
- }
+ },
+ "title": "Пользователи & Группы"
},
"profile": {
"changeAvatar": {
@@ -418,7 +421,7 @@
"changePassword": {
"currentPassword": "Текущий пароль",
"errorPasswordInvalid": "Пароль должен быть не менее 8 и не более 265 символов",
- "title": "Изменить ваш пароль",
+ "title": "Изменить пароль",
"newPassword": "Новый пароль",
"newPasswordRepeat": "Повторите новый пароль",
"errorPasswordRequired": "Требуется пароль",
@@ -512,7 +515,7 @@
"access": "API доступ",
"allowedIpRanges": "Разрешённые диапазоны IP"
},
- "changePasswordAction": "Изменить пароль",
+ "changePasswordAction": "Изменить Пароль",
"disable2FAAction": "Выключить 2FA",
"enable2FAAction": "Включить 2FA",
"passwordResetAction": "Я забыл пароль",
@@ -572,12 +575,12 @@
"title": "Резервные копии",
"packageVersion": "Версия контейнера",
"time": "Создан",
- "downloadConfigTooltip": "Скачать конфигурацию резервной копии",
- "cloneTooltip": "Клонировать из данной резервной копии",
- "restoreTooltip": "Восстановить из данной резервной копии",
+ "downloadConfigTooltip": "Скачать Конфигурацию",
+ "cloneTooltip": "Клонировать",
+ "restoreTooltip": "Восстановить",
"createBackupAction": "Создать резервную копию",
"importAction": "Импортировать резервную копию",
- "downloadBackupTooltip": "Скачать резервную копию",
+ "downloadBackupTooltip": "Скачать",
"checkIntegrity": "Проверить целостность"
},
"import": {
@@ -586,7 +589,7 @@
},
"auto": {
"title": "Автоматические резервные копии",
- "description": "Резервные копии создаются периодически на основании Расписания резервного копирования.",
+ "description": "Приложение периодически сохраняется в соответствии с Расписанием резервного копирования.",
"enabled": "Автоматическая резервная копия включена.",
"disabled": "Автоматические обновления выключены.",
"disableAction": "Выключить автоматическое резервное копирование",
@@ -830,9 +833,10 @@
"importBackupDialog": {
"title": "Импортировать резервную копию",
"importAction": "Импортировать",
- "uploadAction": "Загрузить конфигурацию резервной копии",
+ "uploadAction": "загрузить Конфигурацию Резервной копии",
"description": "Любые данные, созданные между настоящим моментом и последней известной резервной копией будут безвозвратно утеряны. Рекомендуем создать резервную копию текущих данных перед импортом.",
- "remotePath": "Путь резервной копии"
+ "remotePath": "Путь резервной копии",
+ "provideBackupInfo": "Предоставьте информации о резервной копии для восстановления или"
},
"updateDialog": {
"title": "Обновить {{ app }}",
@@ -861,10 +865,10 @@
"title": "Вы действительно хотите остановить {{ app }}?"
},
"addApplinkDialog": {
- "title": "Добавить ссылку на внешнее приложение"
+ "title": "Добавить Внешнюю ссылку"
},
"editApplinkDialog": {
- "title": "Редактировать App Link",
+ "title": "Редактировать Внешнюю ссылку",
"deleteAction": "Удалить"
},
"applinks": {
@@ -927,11 +931,12 @@
"appCount": "{{ appCount }} приложений",
"contents": "Содержит",
"noApps": "Без приложений",
- "tooltipDownloadBackupConfig": "Скачать конфигурацию резервной копии",
+ "tooltipDownloadBackupConfig": "Скачать Конфигурацию",
"cleanupBackups": "Очистить резервные копии",
"backupNow": "Создать копию",
"tooltipEditBackup": "Редактировать резервную копию",
- "tooltipPreservedBackup": "Резервная копия будет сохранена"
+ "tooltipPreservedBackup": "Резервная копия будет сохранена",
+ "primaryAction": "Установить, как Основной"
},
"cleanupBackups": {
"title": "Очистить резервные копии",
@@ -939,14 +944,14 @@
"cleanupNow": "Очистить"
},
"schedule": {
- "title": "Расписание и Хранение",
+ "title": "Расписание & Политика хранения",
"description": "Полная резервная копия системы создаётся на основании Расписания в установленном Системном часовом поясе. Старые резервные копии удаляются в соответствии с Политикой хранения.",
"schedule": "Расписание",
"configure": "Настроить",
"retentionPolicy": "Политика хранения"
},
"configureBackupSchedule": {
- "scheduleDescription": "Выберите дни и часы, в которые Cloudron будет выполнять резервное копирование. Постарайтесь не перекрыть расписание обновлений.",
+ "scheduleDescription": "Установите дни и часы для резервного копирования. Убедитесь, что установленное расписание не пересекается с расписанием обновлений.",
"schedule": "Расписание",
"days": "Дни",
"hours": "Часы",
@@ -1059,10 +1064,13 @@
"addDialog": {
"title": "Добавить хранилище резервных копий"
}
+ },
+ "sites": {
+ "title": "Сайты"
}
},
"branding": {
- "title": "Внешний вид",
+ "title": "Брендирование",
"cloudronName": "Имя Cloudron",
"logo": "Логотип",
"footer": {
@@ -1291,7 +1299,7 @@
},
"timezone": {
"title": "Системный часовой пояс",
- "description": "Текущий часовой пояс: {{ timeZone }}. Этот параметр используется для планировщика резервного копирования и автообновлений. Временные метки в интерфейсе всегда отображаются с учётом часового пояса, установленного в браузере."
+ "description": "Используется для планирования резервного копирования и обновлений. Временные метки в интерфейсе всегда соответствуют часовому поясу браузера."
},
"updates": {
"title": "Обновления",
@@ -1301,7 +1309,7 @@
"updateAvailableAction": "Доступно Обновление",
"version": "Версия платформы",
"stopUpdateAction": "Остановить обновление",
- "description": "Обновления платформы и приложений применяются автоматически, на основании Расписания в Системной часовой зоне.",
+ "description": "Обновления платформы и приложений применяются на основании расписания и в соответствии с Системным часовым поясом.",
"schedule": "Расписание",
"disabled": "Выключено"
},
@@ -1319,7 +1327,7 @@
"selectOne": "Выберите по крайней мере один день и время",
"days": "Дни",
"hours": "Часы",
- "description": "Выберите дни и часы, в которые Cloudron будет автоматически применять обновления платформы и приложений. Постарайтесь не перекрыть расписание резервного копирования."
+ "description": "Установите дни и часы, в которые будет происходить автоматическое обновление платформы и приложений. Убедитесь, что установленное расписание не пересекается с расписанием резервного копирования."
},
"updateDialog": {
"title": "Обновить Cloudron до",
@@ -1332,7 +1340,7 @@
},
"language": {
"title": "Язык",
- "description": "Здесь может быть установлен язык Cloudron по умолчанию. Он также будет использован для системных писем, вроде приглашений пользователей и сброса паролей. Каждый пользователь может самостоятельно изменить предпочитаемый язык в своём профиле."
+ "description": "Устанавливает язык по умолчанию для Cloudron и системных писем (в том числе для приглашений, сброса пароля и др.). Пользователи могут изменить язык панели управления в своём профиле."
},
"registryConfig": {
"provider": "Поставщик реестра Docker",
@@ -1412,7 +1420,7 @@
"title": "Графики"
},
"locale": {
- "title": "Настройки локализации"
+ "title": "Локализация"
}
},
"eventlog": {
@@ -1474,7 +1482,7 @@
"addTitle": "Добавить домен",
"addDescription": "Добавление домена даст возможность устанавливать приложения на его поддомены. Настроить электронную почту для выбранного домена можно в специальном разделе.",
"linodeToken": "Токен Linode",
- "namecheapInfo": "IP-адрес сервера должен быть разрешён для этого ключа API.",
+ "namecheapInfo": "IP-адрес сервера должен быть внесён в список разрешённых ключей для этого ключа API",
"wildcardInfo": "Вручную настройте A (IPv4) и AAAA (IPv6) DNS записи для *.{{ domain }}. и {{ domain }}. на IP-адрес данного сервера",
"fallbackCert": "Резервный сертификат (необязательно)",
"fallbackCertCustomCert": "Сторонний сертификат",
@@ -1489,7 +1497,7 @@
"vultrToken": "Токен Vultr",
"fallbackCertInfo": "Сертификаты автоматически получаются и обновляются при помощи Let’s Encrypt. Смотрите текущий лимит запросов здесь.\nЭтот wildcard-сертификат будет использоваться в случае сбоя при получении сертификата Let’s Encrypt. В случае его отсутствия будет использован автоматически сгенерированный самоподписанный сертификат.",
"jitsiHostname": "Расположение Jitsi",
- "wellKnownDescription": "Значения будут использованы Cloudron для /.well-known/ адресов. Учтите, что для функционирования необходимо, чтобы приложение было доступно на основном домене {{ domain }}. Подробнее можно узнать в документации.",
+ "wellKnownDescription": "Значения будут использованы для ответа на https://{{ domain }}/.well-known/ адреса. Учтите, что для функционирования необходимо, чтобы приложение было доступно на основном домене {{ domain }}. Подробнее можно узнать в документации.",
"hetznerToken": "Токен Hetzner",
"cloudflareDefaultProxyStatus": "Активировать прокси для новых DNS записей",
"porkbunApikey": "API Ключ",
@@ -1914,7 +1922,7 @@
"volumes": {
"addVolumeAction": "Добавить том",
"name": "Имя",
- "openFileManagerActionTooltip": "Открыть файловый менеджер",
+ "openFileManagerActionTooltip": "Файловый менеджер",
"removeVolumeActionTooltip": "Удалить том",
"addVolumeDialog": {
"title": "Добавить том",
@@ -1942,7 +1950,7 @@
"tooltipEdit": "Редактировать том",
"mountStatus": "Статус монтирования",
"type": "Тип",
- "remountActionTooltip": "Перемонтировать том",
+ "remountActionTooltip": "Смонтировать повторно",
"title": "Тома",
"hostPath": "Назначение",
"description": "Тома - локальные или удаленные файловые системы. Они могут быть использованы для хранения данных приложений или для создания общей директории для нескольких приложений.",
@@ -1975,7 +1983,7 @@
"errorUsernameTooShort": "Имя пользователя слишком короткое",
"errorUsernameTooLong": "Имя пользователя слишком длинное",
"errorUsernameInvalid": "Неверное имя пользователя",
- "fullName": "Полное имя",
+ "fullName": "Полное Имя",
"password": "Новый пароль",
"passwordRepeat": "Повторите пароль",
"errorPassword": "Пароль должен содержать не менее 8 символов",
@@ -2023,7 +2031,7 @@
},
"storage": {
"mounts": {
- "description": "Приложения могут получить доступ к смонтированным томам по пути /media/(имя тома). Данные таких томов не будут включаться в резервные копии приложения."
+ "description": "Смонтированные тома станут доступны в /media/(имя тома). Смонтированные данные не попадают в резервные копии приложений."
}
},
"oidc": {
@@ -2041,7 +2049,7 @@
"logoutRedirectUri": "URL обратного вызова для выхода из системы (необязательно)"
},
"title": "Поставщик OpenID",
- "description": "Cloudron может выступать в качестве поставщика OpenID connect для внутренних приложений и внешних сервисов.",
+ "description": "Поставщик OpenID может быть использован внешними приложениями для SSO аутентификации.",
"editClientDialog": {
"title": "Редактировать клиента {{ client }}"
},
@@ -2056,6 +2064,11 @@
"keysEndpoint": "Конечная точка ключей",
"tokenEndpoint": "Конечная точка токена",
"authEndpoint": "Конечная точка аутентификации"
+ },
+ "clients": {
+ "title": "Клиенты OpenID",
+ "newClient": "Новый клиент",
+ "empty": "Клиенты OpenID не добавлены"
}
},
"automation": "Автоматизация",
@@ -2066,7 +2079,7 @@
},
"archives": {
"listing": {
- "placeholder": "Нет архивных приложений"
+ "placeholder": "Архивные приложения не созданы"
}
},
"backup": {
@@ -2076,6 +2089,46 @@
"description": "Это действие также удалить любые резервные копии, хранящиеся в данном расположении"
},
"label": "Хранилище"
+ },
+ "sites": {
+ "title": "Скопировать Сайты"
+ },
+ "primaryDialog": {
+ "title": "Установить, как Главный сайт",
+ "description": "Главный сайт используется для автоматических обновлений."
}
+ },
+ "dockerRegistries": {
+ "server": "Адрес сервера",
+ "provider": "Провайдер",
+ "username": "Имя пользователя",
+ "title": "Реестры Docker",
+ "description": "Cloudron может осуществлять pull и установку сторонних приложений из частного реестра docker.",
+ "removeDialog": {
+ "title": "Удалить {{ serverAddress }}"
+ },
+ "email": "Email",
+ "passwordToken": "Пароль/Токен",
+ "dialog": {
+ "title": "Реестр Docker"
+ }
+ },
+ "dockerRegistres": {
+ "removeDialog": {
+ "description": "Действительно удалить этот реестр?"
+ }
+ },
+ "userDirectory": {
+ "title": "Директория Пользователей"
+ },
+ "appearance": {
+ "title": "Внешний вид"
+ },
+ "dashboard": {
+ "title": "Панель управления"
+ },
+ "externallinks": {
+ "label": "Внешние ссылки",
+ "description": "Добавляет ярлык на внешние сервисы в панель управления"
}
}
diff --git a/dashboard/src/views/AppearanceView.vue b/dashboard/src/views/AppearanceView.vue
index 93d75ea21..b084701eb 100644
--- a/dashboard/src/views/AppearanceView.vue
+++ b/dashboard/src/views/AppearanceView.vue
@@ -88,7 +88,7 @@ onMounted(async () => {