Выпущен 0.1.4: N открытий, «доступно с», шаблоны, /verify и A2HS.
This commit is contained in:
@@ -66,6 +66,51 @@
|
||||
"create.ttl.24h": "24 hours",
|
||||
"create.ttl.3d": "3 days",
|
||||
"create.ttl.7d": "7 days",
|
||||
"create.ttl.evening": "Until evening (20:00)",
|
||||
"create.maxOpens": "Opens",
|
||||
"create.maxOpensOption": "{n}",
|
||||
"create.maxOpensInvalid": "Invalid number of opens.",
|
||||
"create.availableFrom": "Available from (optional)",
|
||||
"create.availableFromHint": "Empty = available immediately",
|
||||
"create.availableFromPast": "Available-from must not be in the past.",
|
||||
"create.availableFromAfterExpiry": "Available-from must be before expiry.",
|
||||
"create.opensBadge": "{n} opens",
|
||||
"create.availableFromBadge": "Available from {datetime}",
|
||||
"create.itemLabel": "Label (optional)",
|
||||
"create.itemLabelPlaceholder": "e.g. Instructions",
|
||||
"create.tpl.access.name": "Access / password",
|
||||
"create.tpl.access.body": "Access details\n\nURL:\nUsername:\nPassword:\n\nNotes:\n",
|
||||
"create.tpl.code.name": "Code + notes",
|
||||
"create.tpl.code.body": "One-time code / snippet\n\n```\n\n```\n\nNotes:\n",
|
||||
"create.tpl.fileNote.name": "File + note",
|
||||
"create.tpl.fileNote.body": "Attached file(s) — see below.\n\nWhat this is for:\nHow to use:\n",
|
||||
"unwrap.notYetTitle": "Not available yet",
|
||||
"unwrap.notYetHint": "This wrap opens at {datetime}.",
|
||||
"unwrap.notYetHintGeneric": "This wrap is not available yet.",
|
||||
"unwrap.stillOnServerTitle": "Still on the server",
|
||||
"unwrap.stillOnServerHint": "{n} open(s) remaining — ciphertext stays until the last unwrap.",
|
||||
"unwrap.opensRemaining": "{n} open(s) remaining after this session.",
|
||||
"verify.eyebrow": "Verify",
|
||||
"verify.title": "How to verify Wrapped",
|
||||
"verify.lede": "What leaves your browser, what stays on the server, and how the key in #fragment works.",
|
||||
"verify.s1.title": "Encryption in the browser",
|
||||
"verify.s1.body": "Text and files are packed and encrypted with Web Crypto (AES-GCM) before upload. The server receives only ciphertext plus metadata (TTL, MIME, size, optional password hash).",
|
||||
"verify.s2.title": "Key in the URL fragment",
|
||||
"verify.s2.body": "The share link looks like /w/<id>#<key>. The part after # never reaches the server in the page request. Without that fragment (or the full wrapped token), ciphertext cannot be decrypted.",
|
||||
"verify.s3.title": "Opens and destruction",
|
||||
"verify.s3.body": "By default a wrap can be opened once; then ciphertext is deleted. If the sender chose 2–3 opens, the server keeps ciphertext until the last successful unwrap. Expiry and password lockout still destroy the package.",
|
||||
"verify.s4.title": "Optional password",
|
||||
"verify.s4.body": "When a password is set, the server checks an Argon2 hash before releasing ciphertext. Wrong guesses are limited; empty password does not burn an attempt.",
|
||||
"verify.s5.title": "Available from",
|
||||
"verify.s5.body": "If \"available from\" is set, unwrap is rejected until that time. After that, normal open/expiry rules apply.",
|
||||
"verify.createCta": "Create a wrap",
|
||||
"about.verifyLink": "How to verify →",
|
||||
"footer.verify": "How to verify",
|
||||
"install.aria": "Add to Home Screen",
|
||||
"install.tip": "Install Wrapped",
|
||||
"install.iosTip": "Share → Add to Home Screen",
|
||||
"admin.limits.maxOpens": "Max opens per wrap",
|
||||
"admin.limits.maxOpensHint": "Ceiling for create UI (1–10). Default: 3.",
|
||||
"create.ttl.default": "Default ({seconds} s)",
|
||||
"lang.plaintext": "Plain text",
|
||||
"lang.markdown": "Markdown",
|
||||
@@ -326,6 +371,51 @@
|
||||
"create.ttl.24h": "24 часа",
|
||||
"create.ttl.3d": "3 дня",
|
||||
"create.ttl.7d": "7 дней",
|
||||
"create.ttl.evening": "До вечера (20:00)",
|
||||
"create.maxOpens": "Открытий",
|
||||
"create.maxOpensOption": "{n}",
|
||||
"create.maxOpensInvalid": "Недопустимое число открытий.",
|
||||
"create.availableFrom": "Доступно с (необязательно)",
|
||||
"create.availableFromHint": "Пусто = доступно сразу",
|
||||
"create.availableFromPast": "«Доступно с» не может быть в прошлом.",
|
||||
"create.availableFromAfterExpiry": "«Доступно с» должно быть раньше срока истечения.",
|
||||
"create.opensBadge": "{n} открытий",
|
||||
"create.availableFromBadge": "Доступно с {datetime}",
|
||||
"create.itemLabel": "Подпись (необязательно)",
|
||||
"create.itemLabelPlaceholder": "напр. Инструкция",
|
||||
"create.tpl.access.name": "Доступ / пароль",
|
||||
"create.tpl.access.body": "Данные доступа\n\nURL:\nЛогин:\nПароль:\n\nЗаметки:\n",
|
||||
"create.tpl.code.name": "Код + заметка",
|
||||
"create.tpl.code.body": "Одноразовый код / фрагмент\n\n```\n\n```\n\nЗаметки:\n",
|
||||
"create.tpl.fileNote.name": "Файл + заметка",
|
||||
"create.tpl.fileNote.body": "Вложения — см. ниже.\n\nДля чего:\nКак пользоваться:\n",
|
||||
"unwrap.notYetTitle": "Ещё недоступно",
|
||||
"unwrap.notYetHint": "Этот wrap откроется {datetime}.",
|
||||
"unwrap.notYetHintGeneric": "Этот wrap ещё недоступен.",
|
||||
"unwrap.stillOnServerTitle": "Ещё на сервере",
|
||||
"unwrap.stillOnServerHint": "Осталось открытий: {n} — ciphertext хранится до последнего unwrap.",
|
||||
"unwrap.opensRemaining": "После этой сессии останется открытий: {n}.",
|
||||
"verify.eyebrow": "Проверка",
|
||||
"verify.title": "Как проверить Wrapped",
|
||||
"verify.lede": "Что уходит из браузера, что лежит на сервере и как работает ключ в #fragment.",
|
||||
"verify.s1.title": "Шифрование в браузере",
|
||||
"verify.s1.body": "Текст и файлы упаковываются и шифруются Web Crypto (AES-GCM) до загрузки. На сервер уходит только ciphertext и метаданные (TTL, MIME, размер, опциональный хеш пароля).",
|
||||
"verify.s2.title": "Ключ во фрагменте URL",
|
||||
"verify.s2.body": "Ссылка вида /w/<id>#<key>. Часть после # не уходит на сервер в запросе страницы. Без фрагмента (или полного токена) ciphertext не расшифровать.",
|
||||
"verify.s3.title": "Открытия и уничтожение",
|
||||
"verify.s3.body": "По умолчанию wrap открывается один раз — затем ciphertext удаляется. Если отправитель выбрал 2–3 открытия, сервер хранит ciphertext до последнего успешного unwrap. Срок и блокировка пароля по-прежнему уничтожают пакет.",
|
||||
"verify.s4.title": "Опциональный пароль",
|
||||
"verify.s4.body": "При пароле сервер проверяет Argon2-хеш до выдачи ciphertext. Число попыток ограничено; пустой пароль попытку не тратит.",
|
||||
"verify.s5.title": "Доступно с",
|
||||
"verify.s5.body": "Если задано «доступно с», unwrap отклоняется до этого момента. Дальше действуют обычные правила открытий и срока.",
|
||||
"verify.createCta": "Создать wrap",
|
||||
"about.verifyLink": "Как проверить →",
|
||||
"footer.verify": "Как проверить",
|
||||
"install.aria": "На экран «Домой»",
|
||||
"install.tip": "Установить Wrapped",
|
||||
"install.iosTip": "Поделиться → На экран «Домой»",
|
||||
"admin.limits.maxOpens": "Макс. открытий на wrap",
|
||||
"admin.limits.maxOpensHint": "Потолок для UI создания (1–10). По умолчанию: 3.",
|
||||
"create.ttl.default": "По умолчанию ({seconds} с)",
|
||||
"lang.plaintext": "Обычный текст",
|
||||
"lang.markdown": "Markdown",
|
||||
|
||||
Reference in New Issue
Block a user