Выпущен 0.1.3: UX convenience pack, unwrap/admin polish и cache-bust статики.
devops-tools/wrapped/wrapped-build/pipeline/head There was a failure building this commit
devops-tools/wrapped/wrapped-build/pipeline/head There was a failure building this commit
Добавлены Share/QR PNG, zip all, size meter, PWA-manifest, системная тема и haptic на copy; улучшены success/unwrap и статистика админки (EN/RU).
This commit is contained in:
+90
-6
@@ -39,6 +39,20 @@
|
||||
"create.successTitle": "Token issued",
|
||||
"create.successWarnTitle": "One-time unwrap",
|
||||
"create.successWarnHint": "After opening, ciphertext is deleted on the server.",
|
||||
"create.passwordProtected": "Password protected",
|
||||
"create.sharePassword": "Password",
|
||||
"create.passwordSeparateHint": "Do not send the password in the same chat as the link.",
|
||||
"create.qrHint": "Scan to open the share link",
|
||||
"create.share": "Share",
|
||||
"create.shareTitle": "Wrapped link",
|
||||
"create.shareText": "One-time secure link from Wrapped",
|
||||
"create.downloadQr": "Download QR",
|
||||
"create.checkLink": "Copy the share link",
|
||||
"create.checkPassword": "Send the password in a separate message",
|
||||
"create.checkExpires": "Note the expiry time",
|
||||
"create.trustKey": "The encryption key lives only in the link #fragment — the server never sees it.",
|
||||
"create.sizeMeter": "≈ {used} / {max}",
|
||||
"create.sizeNearLimit": "Approaching size limit",
|
||||
"create.shareLink": "Share link",
|
||||
"create.token": "Wrapped token",
|
||||
"create.another": "Create another",
|
||||
@@ -78,17 +92,36 @@
|
||||
"unwrap.password": "Password (if set)",
|
||||
"unwrap.submit": "Unwrap",
|
||||
"unwrap.working": "Decrypting…",
|
||||
"unwrap.workingFetch": "Downloading…",
|
||||
"unwrap.workingDecrypt": "Decrypting…",
|
||||
"unwrap.destroyedTitle": "Server copy destroyed",
|
||||
"unwrap.destroyedHint": "Preview lives only in this browser session.",
|
||||
"unwrap.needKey": "Missing encryption key. Open the full share link (with #key) or paste the full wrapped token.",
|
||||
"unwrap.badToken": "Invalid token",
|
||||
"unwrap.badTokenHint": "Paste a full wrapped token or open a valid share link.",
|
||||
"unwrap.badPassword": "Wrong password",
|
||||
"unwrap.badPasswordHint": "Check the password and try again.",
|
||||
"unwrap.passwordRequired": "Password required",
|
||||
"unwrap.passwordRequiredHint": "This wrap is password-protected.",
|
||||
"unwrap.attemptsLeft": "{n} of {max} attempts left",
|
||||
"unwrap.passwordLocked": "Too many wrong passwords",
|
||||
"unwrap.passwordLockedHint": "This wrap has been destroyed.",
|
||||
"unwrap.unavailable": "Unavailable (already used, expired, or invalid).",
|
||||
"unwrap.passwordLockedHint": "This wrap has been destroyed after too many failed attempts.",
|
||||
"unwrap.unavailable": "Unavailable",
|
||||
"unwrap.unavailableHint": "Already used, expired, or invalid.",
|
||||
"unwrap.goneTitle": "This link is no longer available",
|
||||
"unwrap.goneHint": "Wrapped links are one-time and can expire. The ciphertext is gone from the server.",
|
||||
"unwrap.rateLimited": "Too many requests",
|
||||
"unwrap.rateLimitedHint": "Wait a minute and try again.",
|
||||
"unwrap.captchaFailed": "CAPTCHA failed",
|
||||
"unwrap.captchaFailedHint": "Complete the CAPTCHA and try again.",
|
||||
"unwrap.storageError": "Temporary storage error",
|
||||
"unwrap.storageErrorHint": "Try again in a moment.",
|
||||
"unwrap.decryptFailed": "Could not decrypt",
|
||||
"unwrap.decryptFailedHint": "The key in the link may be wrong. Ciphertext was already removed from the server.",
|
||||
"unwrap.createOwn": "Create your own wrap",
|
||||
"unwrap.tapPreview": "Tap image to enlarge",
|
||||
"unwrap.downloadAll": "Download all",
|
||||
"unwrap.trustKey": "The key was only in the link #fragment and was never sent to the server.",
|
||||
"common.copy": "Copy",
|
||||
"common.copied": "Copied",
|
||||
"common.download": "Download",
|
||||
@@ -100,6 +133,8 @@
|
||||
"admin.nav.danger": "Danger",
|
||||
"admin.nav.site": "Site",
|
||||
"admin.nav.logout": "Logout",
|
||||
"admin.nav.openMenu": "Menu",
|
||||
"admin.nav.closeMenu": "Close menu",
|
||||
"admin.brand.tagline": "Admin console",
|
||||
"admin.settings.title": "Settings",
|
||||
"admin.stats.title": "Statistics",
|
||||
@@ -107,14 +142,21 @@
|
||||
"admin.stats.minioTitle": "MinIO (pending ciphertext)",
|
||||
"admin.stats.objects": "object(s)",
|
||||
"admin.stats.dbPending": "DB pending",
|
||||
"admin.stats.unwrappedTitle": "Unwrapped (all time)",
|
||||
"admin.stats.unwrappedTitle": "Successful unwraps",
|
||||
"admin.stats.auditOk": "audit ok",
|
||||
"admin.stats.dbConsumed": "DB consumed",
|
||||
"admin.stats.last24h": "24h",
|
||||
"admin.stats.pendingTitle": "Not unwrapped",
|
||||
"admin.stats.items": "item(s)",
|
||||
"admin.stats.uploadedTitle": "Uploaded (all time)",
|
||||
"admin.stats.passwordBurnsTitle": "Burned by password",
|
||||
"admin.stats.passwordBurnsHint": "Destroyed after too many wrong passwords",
|
||||
"admin.stats.wrapsSection": "Wraps by status",
|
||||
"admin.stats.extraSection": "More",
|
||||
"admin.stats.failReasonsSection": "Unwrap fail reasons (all time)",
|
||||
"admin.stats.failReasons24hSection": "Unwrap fail reasons (24h)",
|
||||
"admin.stats.col.reason": "Reason",
|
||||
"admin.stats.noFailReasons": "No failed unwraps yet.",
|
||||
"admin.stats.col.status": "Status",
|
||||
"admin.stats.col.count": "Count",
|
||||
"admin.stats.col.size": "Size",
|
||||
@@ -257,6 +299,20 @@
|
||||
"create.successTitle": "Токен выдан",
|
||||
"create.successWarnTitle": "Расшифруй один раз",
|
||||
"create.successWarnHint": "После открытия ciphertext удаляется на сервере.",
|
||||
"create.passwordProtected": "Защищено паролем",
|
||||
"create.sharePassword": "Пароль",
|
||||
"create.passwordSeparateHint": "Не отправляйте пароль в той же переписке, что и ссылку.",
|
||||
"create.qrHint": "Отсканируйте, чтобы открыть ссылку",
|
||||
"create.share": "Поделиться",
|
||||
"create.shareTitle": "Ссылка Wrapped",
|
||||
"create.shareText": "Одноразовая защищённая ссылка из Wrapped",
|
||||
"create.downloadQr": "Скачать QR",
|
||||
"create.checkLink": "Скопируйте ссылку",
|
||||
"create.checkPassword": "Отправьте пароль отдельным сообщением",
|
||||
"create.checkExpires": "Учтите срок действия",
|
||||
"create.trustKey": "Ключ шифрования только во фрагменте ссылки #… — сервер его не видит.",
|
||||
"create.sizeMeter": "≈ {used} / {max}",
|
||||
"create.sizeNearLimit": "Близко к лимиту размера",
|
||||
"create.shareLink": "Ссылка",
|
||||
"create.token": "Wrapped-токен",
|
||||
"create.another": "Создать ещё",
|
||||
@@ -296,17 +352,36 @@
|
||||
"unwrap.password": "Пароль (если задан)",
|
||||
"unwrap.submit": "Расшифровать",
|
||||
"unwrap.working": "Расшифровка…",
|
||||
"unwrap.workingFetch": "Скачивание…",
|
||||
"unwrap.workingDecrypt": "Расшифровка…",
|
||||
"unwrap.destroyedTitle": "Копия на сервере уничтожена",
|
||||
"unwrap.destroyedHint": "Превью только в этой сессии браузера.",
|
||||
"unwrap.needKey": "Нет ключа шифрования. Открой полную ссылку (с #key) или вставь полный wrapped-токен.",
|
||||
"unwrap.badToken": "Неверный токен",
|
||||
"unwrap.badTokenHint": "Вставьте полный wrapped-токен или откройте корректную ссылку.",
|
||||
"unwrap.badPassword": "Неверный пароль",
|
||||
"unwrap.badPasswordHint": "Проверьте пароль и попробуйте снова.",
|
||||
"unwrap.passwordRequired": "Нужен пароль",
|
||||
"unwrap.passwordRequiredHint": "Этот wrap защищён паролем.",
|
||||
"unwrap.attemptsLeft": "Осталось попыток: {n} из {max}",
|
||||
"unwrap.passwordLocked": "Слишком много неверных паролей",
|
||||
"unwrap.passwordLockedHint": "Этот wrap уничтожен.",
|
||||
"unwrap.unavailable": "Недоступно (уже использовано, истекло или неверно).",
|
||||
"unwrap.passwordLockedHint": "Wrap уничтожен после исчерпания попыток.",
|
||||
"unwrap.unavailable": "Недоступно",
|
||||
"unwrap.unavailableHint": "Уже использовано, истекло или неверно.",
|
||||
"unwrap.goneTitle": "Ссылка больше недоступна",
|
||||
"unwrap.goneHint": "Wrapped-ссылки одноразовые и могут истекать. Ciphertext уже удалён с сервера.",
|
||||
"unwrap.rateLimited": "Слишком много запросов",
|
||||
"unwrap.rateLimitedHint": "Подождите минуту и попробуйте снова.",
|
||||
"unwrap.captchaFailed": "CAPTCHA не пройдена",
|
||||
"unwrap.captchaFailedHint": "Пройдите CAPTCHA и попробуйте снова.",
|
||||
"unwrap.storageError": "Временная ошибка хранилища",
|
||||
"unwrap.storageErrorHint": "Попробуйте чуть позже.",
|
||||
"unwrap.decryptFailed": "Не удалось расшифровать",
|
||||
"unwrap.decryptFailedHint": "Ключ в ссылке может быть неверным. Ciphertext уже удалён с сервера.",
|
||||
"unwrap.createOwn": "Создать свой wrap",
|
||||
"unwrap.tapPreview": "Нажмите на изображение, чтобы увеличить",
|
||||
"unwrap.downloadAll": "Скачать всё",
|
||||
"unwrap.trustKey": "Ключ был только во фрагменте ссылки #… и не уходил на сервер.",
|
||||
"common.copy": "Копировать",
|
||||
"common.copied": "Скопировано",
|
||||
"common.download": "Скачать",
|
||||
@@ -318,6 +393,8 @@
|
||||
"admin.nav.danger": "Опасная зона",
|
||||
"admin.nav.site": "Сайт",
|
||||
"admin.nav.logout": "Выйти",
|
||||
"admin.nav.openMenu": "Меню",
|
||||
"admin.nav.closeMenu": "Закрыть меню",
|
||||
"admin.brand.tagline": "Консоль администратора",
|
||||
"admin.settings.title": "Настройки",
|
||||
"admin.stats.title": "Статистика",
|
||||
@@ -325,14 +402,21 @@
|
||||
"admin.stats.minioTitle": "MinIO (нерасшифрованный ciphertext)",
|
||||
"admin.stats.objects": "объект(ов)",
|
||||
"admin.stats.dbPending": "в БД pending",
|
||||
"admin.stats.unwrappedTitle": "Расшифровано (за всё время)",
|
||||
"admin.stats.unwrappedTitle": "Успешные unwrap",
|
||||
"admin.stats.auditOk": "audit ok",
|
||||
"admin.stats.dbConsumed": "в БД consumed",
|
||||
"admin.stats.last24h": "за 24ч",
|
||||
"admin.stats.pendingTitle": "Не расшифровано",
|
||||
"admin.stats.items": "элемент(ов)",
|
||||
"admin.stats.uploadedTitle": "Загружено (за всё время)",
|
||||
"admin.stats.passwordBurnsTitle": "Сожжено паролем",
|
||||
"admin.stats.passwordBurnsHint": "Уничтожено после слишком многих неверных паролей",
|
||||
"admin.stats.wrapsSection": "Wraps по статусу",
|
||||
"admin.stats.extraSection": "Ещё",
|
||||
"admin.stats.failReasonsSection": "Причины ошибок unwrap (всё время)",
|
||||
"admin.stats.failReasons24hSection": "Причины ошибок unwrap (24ч)",
|
||||
"admin.stats.col.reason": "Причина",
|
||||
"admin.stats.noFailReasons": "Пока нет неудачных unwrap.",
|
||||
"admin.stats.col.status": "Статус",
|
||||
"admin.stats.col.count": "Кол-во",
|
||||
"admin.stats.col.size": "Размер",
|
||||
|
||||
Reference in New Issue
Block a user