verstak-sync-server/internal/server/locale.go

666 lines
43 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package server
func t(locale, key string) string {
if translations, ok := _translations[locale]; ok {
if v, ok := translations[key]; ok {
return v
}
}
if translations, ok := _translations["en"]; ok {
if v, ok := translations[key]; ok {
return v
}
}
if locale == "ru" {
return "Перевод временно недоступен"
}
return "Translation unavailable"
}
var _translations = map[string]map[string]string{
"ru": {
"home.title": "Синхронизация Верстака",
"home.eyebrow": "Локальная работа, когда нужно",
"home.heading": "Ваши vault остаются вашими",
"home.description": "Verstak Sync Server безопасно связывает ваши устройства, не заменяя локальный vault.",
"home.login": "Войти",
"home.register": "Создать аккаунт",
"home.version": "Версия",
"nav.primary": "Основная навигация",
"nav.login": "Войти",
"nav.register": "Регистрация",
"footer.localFirst": "Локальная работа прежде всего",
"locale.label": "Язык",
"locale.system": "Системный",
"locale.apply": "Применить язык",
"auth.welcome": "Добро пожаловать",
"auth.account": "Учётная запись",
"auth.loginTitle": "Вход в синхронизацию",
"auth.login": "Войти",
"auth.logout": "Выйти",
"auth.register": "Создать аккаунт",
"auth.registerTitle": "Создать аккаунт",
"auth.haveAccount": "Уже есть аккаунт? Войти",
"auth.forgot": "Забыли пароль?",
"auth.forgotTitle": "Восстановление пароля",
"auth.forgotDescription": "Укажите email, и мы отправим ссылку для сброса пароля, если аккаунт существует.",
"auth.sendLink": "Отправить ссылку",
"auth.backLogin": "Вернуться ко входу",
"auth.resetTitle": "Новый пароль",
"auth.savePassword": "Сохранить пароль",
"field.username": "Имя пользователя",
"field.usernameOrEmail": "Имя пользователя или email",
"field.email": "Email",
"field.password": "Пароль",
"field.newPassword": "Новый пароль",
"field.confirmPassword": "Подтвердите пароль",
"register.resultTitle": "Проверьте почту",
"register.resultMessage": "Если SMTP настроен, мы отправили ссылку подтверждения. После подтверждения можно войти.",
"forgot.sentTitle": "Проверьте почту",
"forgot.sentMessage": "Если аккаунт существует, ссылка для сброса уже отправлена.",
"reset.doneTitle": "Пароль изменён",
"reset.doneMessage": "Теперь можно войти с новым паролем.",
"confirm.title": "Подтвердите email",
"confirm.description": "Подтвердите адрес email, чтобы активировать учётную запись.",
"confirm.action": "Подтвердить email",
"confirm.resultTitle": "Email подтверждён",
"confirm.resultMessage": "Учётная запись активирована. Теперь можно войти.",
"common.continue": "Продолжить",
"common.back": "Назад",
"common.actions": "Действия",
"error.label": "Ошибка",
"error.badRequest": "Некорректный запрос",
"error.tryAgain": "Проверьте данные и повторите попытку.",
"error.registrationDisabled": "Регистрация отключена администратором.",
"error.allFieldsRequired": "Все поля обязательны.",
"error.passwordInvalid": "Пароль не соответствует требованиям безопасности.",
"error.accountTaken": "Имя пользователя или email уже заняты.",
"error.emailRequired": "Введите email.",
"error.passwordMismatch": "Пароли не совпадают.",
"error.invalidPublicURL": "Укажите корректный абсолютный public URL с http или https.",
"error.rateLimited": "Слишком много попыток. Подождите и повторите запрос.",
"error.notFound": "Страница не найдена.",
"error.deviceMustBeRevoked": "Удалять можно только предварительно отозванное устройство.",
"home.unavailableTitle": "Сервер временно недоступен",
"home.unavailableMessage": "Сервер ещё не готов обслуживать запросы. Повторите попытку позже.",
"error.invalidCredentials": "Неверное имя пользователя или пароль.",
"error.internal": "Внутренняя ошибка. Повторите попытку позже.",
"admin.eyebrow": "Администрирование сервера",
"admin.loginTitle": "Вход администратора",
"admin.navigation": "Навигация администратора",
"admin.overview": "Обзор",
"admin.access": "Доступ",
"admin.activeDevices": "Активные устройства",
"admin.operations": "Операции",
"admin.vaults": "Хранилища",
"admin.storage": "Хранилище",
"admin.audit": "Аудит",
"admin.settings": "Настройки",
"admin.diagnostics": "Диагностика",
"admin.serviceHealth": "Состояние сервиса",
"admin.lastActivity": "Последняя активность",
"admin.noVaults": "Vault пока нет",
"admin.databaseBytes": "Размер базы данных, байт",
"admin.blobBytes": "Объём blobs, байт",
"admin.retentionNote": "Журнал операций не удаляется автоматически: он нужен новым устройствам для восстановления состояния.",
"admin.event": "Событие",
"admin.time": "Время",
"admin.noAudit": "Событий аудита пока нет",
"admin.database": "База данных доступна",
"admin.blobStorage": "Blob-хранилище доступно",
"admin.schema": "Версия схемы",
"admin.serverTime": "Время сервера",
"admin.healthJSON": "Открыть health JSON",
"admin.manage": "Управление",
"admin.saveUser": "Сохранить пользователя",
"admin.search": "Поиск",
"admin.all": "Все",
"admin.applyFilters": "Применить",
"admin.pagination": "Пагинация",
"admin.previous": "Назад",
"admin.next": "Далее",
"admin.runCleanup": "Запустить безопасную очистку",
"admin.downloadDiagnostics": "Скачать диагностику",
"admin.vaultPrivacy": "Содержимое файлов и операции не отображаются в диагностике.",
"admin.general": "Общие настройки",
"admin.serverName": "Название сервера",
"admin.allowRegistration": "Разрешить публичную регистрацию",
"admin.smtpConfigured": "SMTP настраивается отдельно и пароль никогда не возвращается в форму.",
"user.account": "Моя учётная запись",
"user.devices": "Подключённые устройства",
"user.emailConfirmed": "Email подтверждён",
"user.emailUnconfirmed": "Email не подтверждён",
"user.filterDevices": "Поиск устройств",
"user.connectInstruction": "Подключите новое устройство через приложение Verstak: откройте настройки синхронизации и выполните pairing с этим сервером.",
"user.deviceRevoked": "Устройство отозвано.",
"user.noDevices": "Устройств пока нет",
"device.name": "Устройство",
"device.vault": "Хранилище",
"device.version": "Версия клиента",
"device.lastSeen": "Последняя активность",
"device.created": "Подключено",
"device.status": "Статус",
"device.active": "Активно",
"device.revoked": "Отозвано",
"device.revoke": "Отозвать",
"device.revokeConfirm": "Отозвать это устройство? Для продолжения нужен пароль.",
"server.registerTitle": "Регистрация",
"server.register": "Регистрация",
"server.username": "Имя пользователя",
"server.email": "Email",
"server.password": "Пароль",
"server.registerBtn": "Зарегистрироваться",
"server.alreadyHaveAccount": "Уже есть аккаунт?",
"server.loginBtn": "Войти",
"server.loginTitle": "Вход",
"server.usernameOrEmail": "Имя пользователя или email",
"server.forgotPassword": "Забыли пароль?",
"server.adminLink": "Админ",
"server.dashboard": "Панель управления",
"server.allFieldsRequired": "Все поля обязательны",
"server.back": "Назад",
"server.emailConfirmBody": "Подтвердите регистрацию: %s",
"server.emailConfirmSubject": "Verstak — подтверждение email",
"server.registrationSuccess": "Регистрация успешна",
"server.registrationEmailSent": "Письмо с ссылкой подтверждения отправлено.",
"server.registrationCheckEmail": "Проверьте почту и подтвердите аккаунт.",
"server.registrationAutoMessage": "Email не подтверждается. Токен подтверждения выведен в лог сервера.",
"server.resetPasswordTitle": "Сброс пароля",
"server.resetPassword": "Сброс пароля",
"server.resetInstruction": "Введите email для получения ссылки сброса.",
"server.sendLink": "Отправить ссылку",
"server.backToLogin": "Вернуться к входу",
"server.emailSentTitle": "Письмо отправлено",
"server.emailSent": "Письмо отправлено",
"server.emailSentMessage": "Если аккаунт существует, ссылка для сброса пароля отправлена на почту.",
"server.goHome": "На главную",
"server.newPasswordTitle": "Новый пароль",
"server.newPassword": "Новый пароль",
"server.passwordConfirm": "Подтвердите пароль",
"server.save": "Сохранить",
"server.passwordChanged": "Пароль изменён",
"server.passwordChangedMessage": "Пароль успешно изменён. Теперь можно войти.",
"server.emailConfirmed": "Email подтверждён",
"server.emailConfirmedMessage": "Аккаунт активирован. Теперь можно войти.",
"server.needEmail": "Введите email",
"server.passwordsDoNotMatch": "Пароли не совпадают",
"server.newPasswordResult": "Новый пароль для %s:\n",
"server.logout": "Выйти",
"server.error": "Ошибка",
"server.internalError": "Что-то пошло не так. Повторите попытку.",
"server.registrationFailed": "Не удалось зарегистрировать аккаунт. Повторите попытку.",
"userDashboard.devices": "Устройства",
"userDashboard.device": "Устройство",
"userDashboard.status": "Статус",
"userDashboard.connected": "Подключено",
"userDashboard.lastSeen": "Последний раз",
"userDashboard.version": "Версия",
"userDashboard.connectNew": "Подключить новое устройство",
"userDashboard.connectNewHint": "Установите Верстак на новом устройстве и выполните регистрацию.",
"userDashboard.revokeConfirm": "Отозвать устройство?",
"userDashboard.revokePrompt": "Введите пароль для подтверждения:",
"userDashboard.noDevices": "Нет устройств",
"userDashboard.active": "Активно",
"userDashboard.revoked": "Отозвано",
"userDashboard.revoke": "Отозвать",
"admin.login": "Вход администратора",
"admin.username": "Имя пользователя",
"admin.password": "Пароль",
"admin.loginBtn": "Войти",
"admin.dashboard": "Панель управления",
"admin.deviceCount": "Устройств",
"admin.opsCount": "Операций",
"admin.devices": "Устройства",
"admin.noDevices": "Нет устройств",
"admin.device": "Устройство",
"admin.user": "Пользователь",
"admin.version": "Версия",
"admin.status": "Статус",
"admin.lastSeen": "Последний раз",
"admin.active": "Активно",
"admin.revoked": "Отозвано",
"admin.revoke": "Отозвать",
"admin.smtp": "SMTP",
"admin.users": "Пользователи",
"admin.usersHeading": "Пользователи",
"admin.healthCheck": "Проверка здоровья",
"admin.smtpServer": "SMTP сервер",
"admin.smtpPort": "SMTP порт",
"admin.smtpType": "Тип шифрования",
"admin.smtpNoEncryption": "Без шифрования",
"admin.smtpUsername": "Имя пользователя SMTP",
"admin.smtpPassword": "Пароль SMTP",
"admin.smtpFrom": "Отправитель",
"admin.smtpServerURL": "URL сервера",
"admin.smtpSave": "Сохранить",
"admin.smtpTest": "Тест",
"admin.smtpTitle": "Настройки SMTP",
"admin.smtpTesting": "Проверка...",
"admin.smtpPassed": "✓ Тест пройден",
"admin.smtpRequired": "Укажите SMTP-сервер, порт и отправителя.",
"admin.smtpTestFailed": "Не удалось проверить настройки SMTP. Повторите попытку.",
"admin.settingsSaved": "Настройки сервера сохранены.",
"admin.smtpSaved": "Настройки SMTP сохранены.",
"admin.smtpStartTLS": "STARTTLS",
"admin.smtpTLS": "TLS",
"admin.warningReadiness": "Один или несколько компонентов сервера не готовы к работе.",
"admin.warningSMTP": "SMTP не настроен: письма подтверждения и сброса пароля не будут отправляться.",
"admin.warningOperations": "Журнал операций быстро растёт. Не удаляйте его без checkpoint-механизма.",
"admin.ops24h": "за 24 часа",
"admin.sort": "Сортировка",
"admin.created": "Создан",
"admin.ip": "IP",
"admin.message": "Сообщение",
"admin.severity": "Важность",
"admin.info": "Информация",
"admin.warningLevel": "Предупреждение",
"admin.errorLevel": "Ошибка",
"admin.publicURL": "Публичный URL",
"admin.saveSettings": "Сохранить настройки",
"admin.trustedProxies": "Доверенные reverse proxy",
"admin.network": "Сеть",
"admin.limits": "Лимиты и retention",
"admin.readOnlyConfig": "Лимиты задаются конфигурацией сервера и доступны здесь только для просмотра.",
"admin.maxJSONBody": "Максимальный JSON body",
"admin.maxPushOperations": "Операций в push",
"admin.maxPullPage": "Операций в pull page",
"admin.maxBlobBytes": "Максимальный размер blob",
"admin.maxVaultBlobBytes": "Квота blob vault",
"admin.maxUserBlobBytes": "Квота blob пользователя",
"admin.sequence": "Последняя sequence",
"admin.refresh": "Обновить",
"admin.copyDiagnostics": "Скопировать диагностику",
"admin.copied": "Скопировано",
"admin.blobReferences": "Ссылки на blobs",
"admin.orphanBlobs": "Blob без ссылок",
"admin.tempUploads": "Временные загрузки",
"admin.expiredSessions": "Истёкшие сессии",
"admin.expiredTokens": "Истёкшие email-токены",
"admin.lastCleanup": "Последняя очистка",
"admin.cleanupDone": "Безопасная очистка завершена.",
"audit.other": "Другое событие",
"audit.deviceAuthFailed": "Ошибка авторизации устройства",
"audit.devicePaired": "Устройство подключено",
"audit.deviceRevoked": "Устройство отозвано",
"audit.deviceDeleted": "Отозванное устройство удалено",
"audit.rateLimited": "Сработало ограничение попыток",
"audit.retentionCleanup": "Выполнена безопасная очистка",
"audit.smtpSettingsUpdated": "Настройки SMTP изменены",
"audit.smtpTestFailed": "Проверка SMTP не удалась",
"audit.smtpTestPassed": "Проверка SMTP прошла",
"audit.userBlockChanged": "Статус блокировки пользователя изменён",
"audit.userConfirmed": "Email пользователя подтверждён",
"audit.userCreated": "Пользователь создан",
"audit.userDeleted": "Пользователь удалён",
"audit.userPasswordReset": "Пароль пользователя сброшен",
"audit.userUpdated": "Пользователь изменён",
"audit.webSettingsUpdated": "Общие настройки изменены",
"status.ok": "Работает",
"status.degraded": "Требует внимания",
"status.available": "Доступно",
"status.unavailable": "Недоступно",
"admin.revokeConfirm": "Вы уверены?",
"common.loading": "Загрузка...",
"common.ok": "OK",
"common.error": "Ошибка",
"common.warning": "Предупреждения",
"admin.filterPlaceholder": "Поиск...",
"admin.email": "Email",
"admin.actions": "Действия",
"admin.confirmTitle": "Подтверждение",
"admin.modalCancel": "Отмена",
"admin.modalConfirm": "Подтвердить",
"admin.editUser": "Редактировать пользователя",
"admin.editBtn": "Сохранить",
"admin.resultTitle": "Результат",
"admin.confirmed": "Подтверждён",
"admin.unconfirmed": "Не подтверждён",
"admin.blocked": "Заблокирован",
"admin.unblock": "Разблокировать",
"admin.block": "Заблокировать",
"admin.resetPassword": "Сбросить пароль",
"admin.noUsers": "Нет пользователей",
"admin.resetPasswordConfirm": "Сбросить пароль",
"admin.resetPasswordMessage": "Новый пароль: ",
"admin.generatePassword": "Сгенерировать одноразовый пароль",
"admin.oneTimePasswordNotice": "Сохраните этот пароль сейчас: он будет показан только один раз.",
"admin.oneTimePasswordHint": "После ухода со страницы получить пароль повторно нельзя. Пользователь должен сменить его после входа.",
"admin.resetBtn": "Сбросить",
"admin.deleteUser": "Удалить",
"admin.deleteDevice": "Удалить устройство",
"admin.confirmUser": "Подтвердить email",
"admin.deleteUserConfirm": "Удалить пользователя и все связанные устройства, vault-связи, blobs и операции? Это действие нельзя отменить.",
"admin.deleteUserMessage": "Удалить пользователя %s?",
"admin.deleteBtn": "Удалить",
"admin.unblockUserTitle": "Разблокировать",
"admin.blockUserTitle": "Заблокировать",
"admin.unblockUserMessage": "Разблокировать пользователя?",
"admin.blockUserMessage": "Заблокировать пользователя?",
"admin.createUser": "Создать пользователя",
"admin.createUserBtn": "Создать",
"admin.createUserFailed": "Не удалось создать пользователя. Повторите попытку.",
},
"en": {
"home.title": "Verstak Sync",
"home.eyebrow": "Local work, when it matters",
"home.heading": "Your vaults stay yours",
"home.description": "Verstak Sync Server securely connects your devices without replacing the local vault.",
"home.login": "Login",
"home.register": "Create account",
"home.version": "Version",
"nav.primary": "Primary navigation",
"nav.login": "Login",
"nav.register": "Register",
"footer.localFirst": "Local-first by design",
"locale.label": "Language",
"locale.system": "System",
"locale.apply": "Apply language",
"auth.welcome": "Welcome",
"auth.account": "Account",
"auth.loginTitle": "Sign in to sync",
"auth.login": "Login",
"auth.logout": "Logout",
"auth.register": "Create account",
"auth.registerTitle": "Create an account",
"auth.haveAccount": "Already have an account? Login",
"auth.forgot": "Forgot password?",
"auth.forgotTitle": "Reset your password",
"auth.forgotDescription": "Enter your email and we will send a reset link if the account exists.",
"auth.sendLink": "Send reset link",
"auth.backLogin": "Back to login",
"auth.resetTitle": "New password",
"auth.savePassword": "Save password",
"field.username": "Username",
"field.usernameOrEmail": "Username or email",
"field.email": "Email",
"field.password": "Password",
"field.newPassword": "New password",
"field.confirmPassword": "Confirm password",
"register.resultTitle": "Check your email",
"register.resultMessage": "If SMTP is configured, we sent a confirmation link. You can sign in after confirmation.",
"forgot.sentTitle": "Check your email",
"forgot.sentMessage": "If the account exists, a reset link has been sent.",
"reset.doneTitle": "Password changed",
"reset.doneMessage": "You can now sign in with your new password.",
"confirm.title": "Confirm your email",
"confirm.description": "Confirm your email address to activate the account.",
"confirm.action": "Confirm email",
"confirm.resultTitle": "Email confirmed",
"confirm.resultMessage": "Your account is active. You can now sign in.",
"common.continue": "Continue",
"common.back": "Back",
"common.actions": "Actions",
"error.label": "Error",
"error.badRequest": "Invalid request",
"error.tryAgain": "Check the entered data and try again.",
"error.registrationDisabled": "Registration is disabled by the administrator.",
"error.allFieldsRequired": "All fields are required.",
"error.passwordInvalid": "The password does not meet the security requirements.",
"error.accountTaken": "Username or email is already in use.",
"error.emailRequired": "Enter an email address.",
"error.passwordMismatch": "Passwords do not match.",
"error.invalidPublicURL": "Enter a valid absolute public URL using http or https.",
"error.rateLimited": "Too many attempts. Wait and try again.",
"error.notFound": "Page not found.",
"error.deviceMustBeRevoked": "Only a revoked device can be deleted.",
"home.unavailableTitle": "Server is temporarily unavailable",
"home.unavailableMessage": "The server is not ready to serve requests yet. Try again later.",
"error.invalidCredentials": "Invalid username or password.",
"error.internal": "Internal error. Please try again later.",
"admin.eyebrow": "Server administration",
"admin.loginTitle": "Administrator login",
"admin.navigation": "Administrator navigation",
"admin.overview": "Overview",
"admin.access": "Access",
"admin.activeDevices": "Active devices",
"admin.operations": "Operations",
"admin.vaults": "Vaults",
"admin.storage": "Storage",
"admin.audit": "Audit log",
"admin.settings": "Settings",
"admin.diagnostics": "Diagnostics",
"admin.serviceHealth": "Service health",
"admin.lastActivity": "Last activity",
"admin.noVaults": "No vaults yet",
"admin.databaseBytes": "Database size, bytes",
"admin.blobBytes": "Blob storage, bytes",
"admin.retentionNote": "Operations are not deleted automatically: new devices need them to restore state.",
"admin.event": "Event",
"admin.time": "Time",
"admin.noAudit": "No audit events yet",
"admin.database": "Database reachable",
"admin.blobStorage": "Blob storage writable",
"admin.schema": "Schema version",
"admin.serverTime": "Server time",
"admin.healthJSON": "Open health JSON",
"admin.manage": "Manage",
"admin.saveUser": "Save user",
"admin.search": "Search",
"admin.all": "All",
"admin.applyFilters": "Apply",
"admin.pagination": "Pagination",
"admin.previous": "Previous",
"admin.next": "Next",
"admin.runCleanup": "Run safe cleanup",
"admin.downloadDiagnostics": "Download diagnostics",
"admin.vaultPrivacy": "File contents and operations are not displayed in diagnostics.",
"admin.general": "General settings",
"admin.serverName": "Server name",
"admin.allowRegistration": "Allow public registration",
"admin.smtpConfigured": "SMTP is configured separately and its password is never returned to a form.",
"user.account": "My account",
"user.devices": "Connected devices",
"user.emailConfirmed": "Email confirmed",
"user.emailUnconfirmed": "Email not confirmed",
"user.filterDevices": "Search devices",
"user.connectInstruction": "Connect another device in Verstak: open sync settings and pair it with this server.",
"user.deviceRevoked": "Device revoked.",
"user.noDevices": "No devices yet",
"device.name": "Device",
"device.vault": "Vault",
"device.version": "Client version",
"device.lastSeen": "Last activity",
"device.created": "Connected",
"device.status": "Status",
"device.active": "Active",
"device.revoked": "Revoked",
"device.revoke": "Revoke",
"device.revokeConfirm": "Revoke this device? Your password is required to continue.",
"server.registerTitle": "Registration",
"server.register": "Register",
"server.username": "Username",
"server.email": "Email",
"server.password": "Password",
"server.registerBtn": "Register",
"server.alreadyHaveAccount": "Already have an account?",
"server.loginBtn": "Login",
"server.loginTitle": "Login",
"server.usernameOrEmail": "Username or email",
"server.forgotPassword": "Forgot password?",
"server.adminLink": "Admin",
"server.dashboard": "Dashboard",
"server.allFieldsRequired": "All fields are required",
"server.back": "Back",
"server.emailConfirmBody": "Confirm registration: %s",
"server.emailConfirmSubject": "Verstak — email confirmation",
"server.registrationSuccess": "Registration successful",
"server.registrationEmailSent": "Confirmation link has been sent.",
"server.registrationCheckEmail": "Check your email and confirm your account.",
"server.registrationAutoMessage": "Email is not confirmed. Confirmation token logged to server.",
"server.resetPasswordTitle": "Reset Password",
"server.resetPassword": "Reset Password",
"server.resetInstruction": "Enter your email to receive a reset link.",
"server.sendLink": "Send link",
"server.backToLogin": "Back to login",
"server.emailSentTitle": "Email sent",
"server.emailSent": "Email sent",
"server.emailSentMessage": "If the account exists, a reset link has been sent.",
"server.goHome": "Go home",
"server.newPasswordTitle": "New Password",
"server.newPassword": "New Password",
"server.passwordConfirm": "Confirm Password",
"server.save": "Save",
"server.passwordChanged": "Password changed",
"server.passwordChangedMessage": "Password has been changed. You can now login.",
"server.emailConfirmed": "Email confirmed",
"server.emailConfirmedMessage": "Account activated. You can now login.",
"server.needEmail": "Enter email",
"server.passwordsDoNotMatch": "Passwords do not match",
"server.newPasswordResult": "New password for %s:\n",
"server.logout": "Logout",
"server.error": "Error",
"server.internalError": "Something went wrong. Please try again.",
"server.registrationFailed": "Could not register the account. Please try again.",
"userDashboard.devices": "Devices",
"userDashboard.device": "Device",
"userDashboard.status": "Status",
"userDashboard.connected": "Connected",
"userDashboard.lastSeen": "Last seen",
"userDashboard.version": "Version",
"userDashboard.connectNew": "Connect new device",
"userDashboard.connectNewHint": "Install Verstak on a new device and register it.",
"userDashboard.revokeConfirm": "Revoke device?",
"userDashboard.revokePrompt": "Enter password to confirm:",
"userDashboard.noDevices": "No devices",
"userDashboard.active": "Active",
"userDashboard.revoked": "Revoked",
"userDashboard.revoke": "Revoke",
"admin.login": "Admin Login",
"admin.username": "Username",
"admin.password": "Password",
"admin.loginBtn": "Login",
"admin.dashboard": "Admin Dashboard",
"admin.deviceCount": "Devices",
"admin.opsCount": "Operations",
"admin.devices": "Devices",
"admin.noDevices": "No devices",
"admin.device": "Device",
"admin.user": "User",
"admin.version": "Version",
"admin.status": "Status",
"admin.lastSeen": "Last seen",
"admin.active": "Active",
"admin.revoked": "Revoked",
"admin.revoke": "Revoke",
"admin.smtp": "SMTP",
"admin.users": "Users",
"admin.usersHeading": "Users",
"admin.healthCheck": "Health Check",
"admin.smtpServer": "SMTP Server",
"admin.smtpPort": "SMTP Port",
"admin.smtpType": "Encryption",
"admin.smtpNoEncryption": "None",
"admin.smtpUsername": "SMTP Username",
"admin.smtpPassword": "SMTP Password",
"admin.smtpFrom": "From",
"admin.smtpServerURL": "Server URL",
"admin.smtpSave": "Save",
"admin.smtpTest": "Test",
"admin.smtpTitle": "SMTP Settings",
"admin.smtpTesting": "Testing...",
"admin.smtpPassed": "✓ Test passed",
"admin.smtpRequired": "Enter the SMTP server, port, and sender.",
"admin.smtpTestFailed": "Could not test the SMTP settings. Please try again.",
"admin.settingsSaved": "Server settings saved.",
"admin.smtpSaved": "SMTP settings saved.",
"admin.smtpStartTLS": "STARTTLS",
"admin.smtpTLS": "TLS",
"admin.warningReadiness": "One or more server components are not ready.",
"admin.warningSMTP": "SMTP is not configured: confirmation and password-reset emails will not be sent.",
"admin.warningOperations": "The operation log is growing quickly. Do not prune it without a checkpoint mechanism.",
"admin.ops24h": "in the last 24 hours",
"admin.sort": "Sort",
"admin.created": "Created",
"admin.ip": "IP",
"admin.message": "Message",
"admin.severity": "Severity",
"admin.info": "Info",
"admin.warningLevel": "Warning",
"admin.errorLevel": "Error",
"admin.publicURL": "Public URL",
"admin.saveSettings": "Save settings",
"admin.trustedProxies": "Trusted reverse proxies",
"admin.network": "Network",
"admin.limits": "Limits and retention",
"admin.readOnlyConfig": "Limits are configured on the server and are read-only here.",
"admin.maxJSONBody": "Maximum JSON body",
"admin.maxPushOperations": "Operations per push",
"admin.maxPullPage": "Operations per pull page",
"admin.maxBlobBytes": "Maximum blob size",
"admin.maxVaultBlobBytes": "Vault blob quota",
"admin.maxUserBlobBytes": "User blob quota",
"admin.sequence": "Latest sequence",
"admin.refresh": "Refresh",
"admin.copyDiagnostics": "Copy diagnostics",
"admin.copied": "Copied",
"admin.blobReferences": "Blob references",
"admin.orphanBlobs": "Unreferenced blobs",
"admin.tempUploads": "Temporary uploads",
"admin.expiredSessions": "Expired sessions",
"admin.expiredTokens": "Expired email tokens",
"admin.lastCleanup": "Last cleanup",
"admin.cleanupDone": "Safe cleanup completed.",
"audit.other": "Other event",
"audit.deviceAuthFailed": "Device authentication failed",
"audit.devicePaired": "Device paired",
"audit.deviceRevoked": "Device revoked",
"audit.deviceDeleted": "Revoked device deleted",
"audit.rateLimited": "Rate limit triggered",
"audit.retentionCleanup": "Safe cleanup completed",
"audit.smtpSettingsUpdated": "SMTP settings updated",
"audit.smtpTestFailed": "SMTP test failed",
"audit.smtpTestPassed": "SMTP test passed",
"audit.userBlockChanged": "User block status changed",
"audit.userConfirmed": "User email confirmed",
"audit.userCreated": "User created",
"audit.userDeleted": "User deleted",
"audit.userPasswordReset": "User password reset",
"audit.userUpdated": "User updated",
"audit.webSettingsUpdated": "General settings updated",
"status.ok": "Operational",
"status.degraded": "Needs attention",
"status.available": "Available",
"status.unavailable": "Unavailable",
"admin.revokeConfirm": "Are you sure?",
"common.loading": "Loading...",
"common.ok": "OK",
"common.error": "Error",
"common.warning": "Warnings",
"admin.filterPlaceholder": "Search...",
"admin.email": "Email",
"admin.actions": "Actions",
"admin.confirmTitle": "Confirm",
"admin.modalCancel": "Cancel",
"admin.modalConfirm": "Confirm",
"admin.editUser": "Edit User",
"admin.editBtn": "Save",
"admin.resultTitle": "Result",
"admin.confirmed": "Confirmed",
"admin.unconfirmed": "Unconfirmed",
"admin.blocked": "Blocked",
"admin.unblock": "Unblock",
"admin.block": "Block",
"admin.resetPassword": "Reset Password",
"admin.noUsers": "No users",
"admin.resetPasswordConfirm": "Reset Password",
"admin.resetPasswordMessage": "New password: ",
"admin.generatePassword": "Generate one-time password",
"admin.oneTimePasswordNotice": "Save this password now: it is shown only once.",
"admin.oneTimePasswordHint": "It cannot be retrieved after leaving this page. The user should change it after signing in.",
"admin.resetBtn": "Reset",
"admin.deleteUser": "Delete",
"admin.deleteDevice": "Delete device",
"admin.confirmUser": "Confirm email",
"admin.deleteUserConfirm": "Delete this user and all related devices, vault associations, blobs, and operations? This cannot be undone.",
"admin.deleteUserMessage": "Delete user %s?",
"admin.deleteBtn": "Delete",
"admin.unblockUserTitle": "Unblock",
"admin.blockUserTitle": "Block",
"admin.unblockUserMessage": "Unblock user?",
"admin.blockUserMessage": "Block user?",
"admin.createUser": "Create User",
"admin.createUserBtn": "Create",
"admin.createUserFailed": "Could not create the user. Please try again.",
},
}