#228 skipped a vCard whose UID the book already held. The reporter asked for the opposite on #174 and he is right: the reason to import a file a second time is usually that the first one was not right, so skipping means a corrected export corrects nothing. A merge, not a replacement. Properties the file carries overwrite what is here; properties it does not mention are left alone, so a phone number added in ihasmail after the first import survives a re-import of the original file. The cost is that a field genuinely deleted at the source stays here, which is the better way to be wrong -- the other way round loses work nobody asked to lose. Worth confirming with him rather than assuming. `addressBookIds` is left off the patch. The card is already in this book, so saying it again says nothing, and saying it on a card that is also in another book would move it. Creates and updates now share one batch budget. Stalwart counts every object in a /set together, so batching the halves separately would send 300 new and 300 changed as two calls of 300 and be refused for a limit of 500 that neither half exceeds. LDIF is untouched and still reports look-alikes without acting on them, since what it should match on is the question still open on #223. Both imports keep one answer shape so a caller need not know which it called; LDIF's `updated` is always 0, which is the honest number rather than a missing field. The message a vCard attached to a message shows changes with it: the newer copy now wins instead of being dropped, so it says the contact was brought up to date rather than that nothing was added. Refs #223.
1095 lines
94 KiB
TypeScript
1095 lines
94 KiB
TypeScript
import type { Catalog } from "@/lib/i18n";
|
||
|
||
/**
|
||
* Russian — generated by AI, and not reviewed by a native speaker.
|
||
*
|
||
* First of Phase 2, and the first catalogue where the plural machinery earns
|
||
* its keep: Russian needs three forms where English has two, and choosing
|
||
* between them is not a question about the number 1. `plural()` was built
|
||
* around `Intl.PluralRules` for exactly this, and the entries below are the
|
||
* first real use of `few` and `many` rather than a test fixture.
|
||
*
|
||
* Marked Beta, with the report link doing the job a native speaker would. A
|
||
* missing string renders its English source, so deleting a bad entry is a
|
||
* valid fix.
|
||
*
|
||
* ── Decisions this file is consistent about ──────────────────────────────
|
||
*
|
||
* Register: **вы**, lowercase, which is the neutral polite address every
|
||
* Russian interface uses. Capitalised «Вы» is correspondence style — it reads
|
||
* as a letter addressed to one person, not as software — and using it here
|
||
* would be a small, constant wrongness on every screen. This follows the
|
||
* formal-address decision the other languages took, and in Russian it costs
|
||
* nothing: it is simply what software says.
|
||
*
|
||
* Most of the interface avoids the question anyway, because Russian UI
|
||
* convention is the infinitive for actions — «Удалить», «Ответить» — rather
|
||
* than an imperative addressed at the reader.
|
||
*
|
||
* Terminology, fixed once so it cannot drift:
|
||
*
|
||
* Inbox Входящие Archive (verb) архивировать
|
||
* Drafts Черновики Delete удалить
|
||
* Sent Отправленные Move to переместить в
|
||
* Deleted Items Корзина Reply ответить
|
||
* Junk / Spam Спам Reply all ответить всем
|
||
* Folder Папка Forward переслать
|
||
* Label Ярлык Star отметить
|
||
* Conversation Цепочка Read / unread прочитано / непрочитано
|
||
* Message Письмо Settings Настройки
|
||
* Attachment Вложение Signature Подпись
|
||
* Contact Контакт Identity Профиль отправителя
|
||
*
|
||
* «Письмо» rather than «сообщение» for a mail message: it is what Russian mail
|
||
* clients call one, and «сообщение» reads as a chat message. «Ярлык» for
|
||
* label, which is Gmail's word in Russian — the same rule as French, Spanish
|
||
* and Portuguese, and a fifth answer to it.
|
||
*
|
||
* Product names are never translated: ihasmail, Stalwart, JMAP, Sieve, vCard.
|
||
*/
|
||
export const catalog: Catalog = {
|
||
strings: {
|
||
"Go to folder…": "Перейти к папке…",
|
||
"Set for everyone here. You cannot change this.": "Задано для всех здесь. Изменить нельзя.",
|
||
"Export iCAL file": "Экспортировать файл iCAL",
|
||
"Could not export this calendar: {error}": "Не удалось экспортировать этот календарь: {error}",
|
||
// ── Actions ────────────────────────────────────────────────────────
|
||
"Archive": "Архивировать",
|
||
"Archive (e)": "Архивировать (e)",
|
||
"Delete": "Удалить",
|
||
"Delete (#)": "Удалить (#)",
|
||
"Reply": "Ответить",
|
||
"Reply (r)": "Ответить (r)",
|
||
"Reply all": "Ответить всем",
|
||
"Forward": "Переслать",
|
||
"Move to…": "Переместить в…",
|
||
"Move to (v)": "Переместить в (v)",
|
||
"Move to folder": "Переместить в папку",
|
||
"Move here": "Переместить сюда",
|
||
"Mark as read": "Отметить как прочитанное",
|
||
"Mark as read (Shift+I)": "Отметить как прочитанное (Shift+I)",
|
||
"Mark as unread": "Отметить как непрочитанное",
|
||
"Mark as unread (Shift+U)": "Отметить как непрочитанное (Shift+U)",
|
||
"Mark all as read": "Отметить всё как прочитанное",
|
||
"Mark all as read, incl. subfolders": "Отметить всё как прочитанное, включая вложенные папки",
|
||
"Star": "Отметить",
|
||
"Labels": "Ярлыки",
|
||
"Labels (l)": "Ярлыки (l)",
|
||
"Label as": "Присвоить ярлык",
|
||
"Label…": "Ярлык…",
|
||
"Compose": "Написать",
|
||
"Compose message": "Написать письмо",
|
||
"Send": "Отправить",
|
||
"Send at": "Отправить в",
|
||
"Cancel send": "Отменить отправку",
|
||
"Schedule send": "Отложить отправку",
|
||
"Save": "Сохранить",
|
||
"Save & activate": "Сохранить и включить",
|
||
"Save & close (Esc)": "Сохранить и закрыть (Esc)",
|
||
"Save as template": "Сохранить как шаблон",
|
||
"Save draft now": "Сохранить черновик сейчас",
|
||
"Cancel": "Отмена",
|
||
"Close": "Закрыть",
|
||
"Done": "Готово",
|
||
"Continue": "Продолжить",
|
||
"Edit": "Изменить",
|
||
"Edit…": "Изменить…",
|
||
"Rename": "Переименовать",
|
||
"Remove": "Убрать",
|
||
"Restore": "Восстановить",
|
||
"Retry": "Повторить",
|
||
"Reload": "Перезагрузить",
|
||
"Refresh": "Обновить",
|
||
"Copy": "Копировать",
|
||
"Copy email address": "Копировать адрес",
|
||
"Download": "Скачать",
|
||
"Download all": "Скачать всё",
|
||
"Download (.eml)": "Скачать (.eml)",
|
||
"Download latest as .eml": "Скачать последнее в .eml",
|
||
"Upload": "Загрузить",
|
||
"Upload files…": "Загрузить файлы…",
|
||
"Print": "Печать",
|
||
"Print conversation": "Напечатать цепочку",
|
||
"Undo (Ctrl+Z)": "Отменить (Ctrl+Z)",
|
||
"Redo": "Вернуть",
|
||
"Dismiss": "Закрыть",
|
||
"Discard changes": "Отменить изменения",
|
||
"Discard draft": "Удалить черновик",
|
||
"Duplicate": "Дублировать",
|
||
"Validate": "Проверить",
|
||
"Revoke": "Отозвать",
|
||
"Turn off": "Отключить",
|
||
"Clear": "Очистить",
|
||
"Clear selection": "Снять выделение",
|
||
"Clear custom colour": "Убрать свой цвет",
|
||
"Select": "Выбрать",
|
||
"Select all": "Выбрать всё",
|
||
"Unsubscribe": "Отписаться",
|
||
"Share…": "Поделиться…",
|
||
"Stop sharing": "Закрыть доступ",
|
||
"Open": "Открыть",
|
||
"Open in new tab": "Открыть в новой вкладке",
|
||
"Open in calendar": "Открыть в календаре",
|
||
"Back": "Назад",
|
||
"Back (u)": "Назад (u)",
|
||
"Back to list": "Назад к списку",
|
||
"Back to my files": "Назад к моим файлам",
|
||
"Go back to the list": "Вернуться к списку",
|
||
"Next": "Далее",
|
||
"Previous": "Назад",
|
||
"More": "Ещё",
|
||
"More actions": "Другие действия",
|
||
"More options": "Другие параметры",
|
||
"Move up": "Вверх",
|
||
"Move down": "Вниз",
|
||
"Drag to reorder": "Перетащите, чтобы изменить порядок",
|
||
"Right-click for options": "Правая кнопка мыши — параметры",
|
||
|
||
// ── Mail ───────────────────────────────────────────────────────────
|
||
"Mail": "Почта",
|
||
"Message": "Письмо",
|
||
"Messages": "Письма",
|
||
"Message body": "Текст письма",
|
||
"Message headers": "Заголовки письма",
|
||
"Message size": "Размер письма",
|
||
"Message-ID": "Message-ID",
|
||
"Original message": "Исходное письмо",
|
||
"Delete this message": "Удалить это письмо",
|
||
"New message to this address": "Новое письмо на этот адрес",
|
||
"Conversation view": "Показывать цепочками",
|
||
"Draft": "Черновик",
|
||
"Unread": "Непрочитанные",
|
||
"Unread only": "Только непрочитанные",
|
||
"All mail": "Вся почта",
|
||
"Sender": "Отправитель",
|
||
"Sender domain": "Домен отправителя",
|
||
"Recipients": "Получатели",
|
||
"From": "От",
|
||
"To": "Кому",
|
||
"Cc": "Копия",
|
||
"Bcc": "Скрытая копия",
|
||
"Subject": "Тема",
|
||
"Subject (optional)": "Тема (необязательно)",
|
||
"Body": "Текст",
|
||
"Body text": "Обычный текст",
|
||
"Attach files": "Прикрепить файлы",
|
||
"Attach from Files": "Прикрепить из Файлов",
|
||
"Remove attachment": "Убрать вложение",
|
||
"Has attachment": "Есть вложение",
|
||
"Has the words": "Содержит слова",
|
||
"Header name": "Имя заголовка",
|
||
"Show headers": "Показать заголовки",
|
||
"Show original": "Показать исходник",
|
||
"Show details": "Показать подробности",
|
||
"Show images": "Показать изображения",
|
||
"Remote images": "Внешние изображения",
|
||
"Remote images are blocked to protect your privacy.": "Внешние изображения заблокированы, чтобы защитить вашу приватность.",
|
||
"Always from {email}": "Всегда от {email}",
|
||
"This looks like a mailing list.": "Похоже, это рассылка.",
|
||
"This folder is empty": "Папка пуста",
|
||
"This folder is empty.": "Папка пуста.",
|
||
"Delete all spam now": "Удалить весь спам сейчас",
|
||
"Deleting spam is permanent — it does not go to Deleted Items first.": "Удаление спама необратимо — он не попадает сначала в корзину.",
|
||
"Keep in Inbox": "Оставить во входящих",
|
||
"Newer (k)": "Новее (k)",
|
||
"Older (j)": "Старее (j)",
|
||
"Open the next (older) conversation": "Открыть следующую цепочку (более старую)",
|
||
"Open the previous (newer) conversation": "Открыть предыдущую цепочку (более новую)",
|
||
"Loading conversation…": "Загрузка цепочки…",
|
||
"Important": "Важное",
|
||
"Unverified": "Не проверено",
|
||
"Priority": "Приоритет",
|
||
"High": "Высокий",
|
||
"Normal": "Обычный",
|
||
"Low": "Низкий",
|
||
"to {recipients}": "кому: {recipients}",
|
||
"From: {sender}": "От: {sender}",
|
||
"Waiting on the server — goes out {when}.": "Ожидает на сервере — будет отправлено {when}.",
|
||
"Scheduled — click to clear the schedule": "Отложено — нажмите, чтобы отменить",
|
||
"Nothing scheduled": "Ничего не отложено",
|
||
"The message waits on the server, so it goes out whether or not ihasmail is open.": "Письмо ждёт на сервере и будет отправлено независимо от того, открыт ihasmail или нет.",
|
||
"This server holds a message for up to {span}.": "Этот сервер удерживает письмо до {span}.",
|
||
"Date and time to send": "Дата и время отправки",
|
||
"Undo send window": "Время на отмену отправки",
|
||
"Read receipt requested": "Запрошено уведомление о прочтении",
|
||
"The sender asked for a read receipt.": "Отправитель запросил уведомление о прочтении.",
|
||
"Request read receipt": "Запросить уведомление о прочтении",
|
||
"Always request read receipts": "Всегда запрашивать уведомление о прочтении",
|
||
"Receipt": "Уведомление",
|
||
"Never send one": "Никогда не отправлять",
|
||
"Not this time": "Не в этот раз",
|
||
"It would go to {address}, which is not where the message came from.": "Оно ушло бы на {address}, а письмо пришло не оттуда.",
|
||
"Use {action} for the complete raw message.": "{action} — полное исходное сообщение.",
|
||
|
||
// ── Folders, calendar, contacts, files ─────────────────────────────
|
||
"Folder": "Папка",
|
||
"Folders": "Папки",
|
||
"Folder options": "Параметры папки",
|
||
"New folder": "Новая папка",
|
||
"New subfolder": "Новая вложенная папка",
|
||
"Open subfolders of {name}": "Открыть вложенные папки «{name}»",
|
||
"Delete folder": "Удалить папку",
|
||
"No matching folders": "Подходящих папок нет",
|
||
"No subfolders here.": "Здесь нет вложенных папок.",
|
||
"Type a folder name…": "Введите имя папки…",
|
||
"+ New folder…": "+ Новая папка…",
|
||
"Create, rename and hide folders.": "Создание, переименование и скрытие папок.",
|
||
"Show unsubscribed (hidden) folders": "Показывать неподписанные (скрытые) папки",
|
||
"Storage: {used} of {total} used.": "Хранилище: занято {used} из {total}.",
|
||
"{used} of {total}": "{used} из {total}",
|
||
|
||
"Calendar": "Календарь",
|
||
"My calendars": "Мои календари",
|
||
"New calendar": "Новый календарь",
|
||
"Calendar options": "Параметры календаря",
|
||
"Calendar & contacts": "Календарь и контакты",
|
||
"Calendar is not available": "Календарь недоступен",
|
||
"Event": "Событие",
|
||
"New event": "Новое событие",
|
||
"Create event…": "Создать событие…",
|
||
"(new event)": "(новое событие)",
|
||
"New all-day event": "Новое событие на весь день",
|
||
"Add title": "Добавить название",
|
||
"Add location": "Добавить место",
|
||
"Add to calendar": "Добавить в календарь",
|
||
"Add to my calendar": "Добавить в мой календарь",
|
||
"Remove from calendar": "Убрать из календаря",
|
||
"Remove from my calendar": "Убрать из моего календаря",
|
||
"All day": "Весь день",
|
||
"all-day": "весь день",
|
||
"Starts": "Начало",
|
||
"Starts (optional)": "Начало (необязательно)",
|
||
"Ends": "Окончание",
|
||
"Ends (optional)": "Окончание (необязательно)",
|
||
"Day": "День",
|
||
"Week": "Неделя",
|
||
"Month": "Месяц",
|
||
"Agenda": "Список",
|
||
"Today": "Сегодня",
|
||
"Go to day": "Перейти к дню",
|
||
"Go to week": "Перейти к неделе",
|
||
"Previous month": "Предыдущий месяц",
|
||
"Next month": "Следующий месяц",
|
||
"Does not repeat": "Не повторяется",
|
||
"Daily": "Ежедневно",
|
||
"Every weekday": "По будням",
|
||
"Yearly": "Ежегодно",
|
||
"Custom…": "Свой вариант…",
|
||
"Weekly on {weekday}": "Еженедельно, {weekday}",
|
||
"Monthly on day {day}": "Ежемесячно, {day}-го числа",
|
||
"Repeat every": "Повторять каждые",
|
||
"Repeat until": "Повторять до",
|
||
"after N times": "после N раз",
|
||
"on date": "до даты",
|
||
"never": "никогда",
|
||
"day(s)": "дн.",
|
||
"week(s)": "нед.",
|
||
"month(s)": "мес.",
|
||
"year(s)": "г.",
|
||
"Reminders": "Напоминания",
|
||
"Add reminder": "Добавить напоминание",
|
||
"Remove reminder": "Убрать напоминание",
|
||
"Default reminder": "Напоминание по умолчанию",
|
||
"At time of event": "В момент события",
|
||
"5 minutes before": "За 5 минут",
|
||
"10 minutes before": "За 10 минут",
|
||
"15 minutes before": "За 15 минут",
|
||
"30 minutes before": "За 30 минут",
|
||
"1 hour before": "За 1 час",
|
||
"1 day before": "За 1 день",
|
||
"15 minutes": "15 минут",
|
||
"30 minutes": "30 минут",
|
||
"45 minutes": "45 минут",
|
||
"1 hour": "1 час",
|
||
"1.5 hours": "1,5 часа",
|
||
"2 hours": "2 часа",
|
||
"Default event length": "Длительность события по умолчанию",
|
||
"Default view": "Вид по умолчанию",
|
||
"Guests": "Участники",
|
||
"Add guests by name or email": "Добавить участников по имени или адресу",
|
||
"Send invitation emails to guests": "Отправлять участникам приглашения по почте",
|
||
"Going?": "Придёте?",
|
||
"Yes": "Да",
|
||
"No": "Нет",
|
||
"Maybe": "Возможно",
|
||
"Confirmed": "Подтверждено",
|
||
"Tentative": "Под вопросом",
|
||
"Cancelled": "Отменено",
|
||
"organizer": "организатор",
|
||
"Organizer: {name}": "Организатор: {name}",
|
||
"Free": "Свободен",
|
||
"Busy": "Занят",
|
||
"Free/busy": "Занятость",
|
||
"Show as": "Показывать как",
|
||
"Availability on {date}": "Занятость на {date}",
|
||
"Count all events as busy": "Считать все события занятостью",
|
||
"Only events I'm attending": "Только события, где я участвую",
|
||
"Don't include in availability": "Не учитывать в занятости",
|
||
"Meeting link": "Ссылка на встречу",
|
||
"No events in the next 60 days.": "В ближайшие 60 дней событий нет.",
|
||
"Working hours": "Рабочее время",
|
||
"Working hours start": "Начало рабочего времени",
|
||
"Working hours end": "Конец рабочего времени",
|
||
"Colour categories": "Цветовые категории",
|
||
"Category": "Категория",
|
||
"No category": "Без категории",
|
||
"New category": "Новая категория",
|
||
"Delete category": "Удалить категорию",
|
||
"Manage categories…": "Управление категориями…",
|
||
"Use category color": "Цвет категории",
|
||
"Use calendar color": "Цвет календаря",
|
||
"Use the default colour": "Цвет по умолчанию",
|
||
"+{n} more": "+{n}",
|
||
|
||
"Contacts": "Контакты",
|
||
"Contacts are not available": "Контакты недоступны",
|
||
"New contact": "Новый контакт",
|
||
"Edit contact": "Изменить контакт",
|
||
"Select a contact": "Выберите контакт",
|
||
"All contacts": "Все контакты",
|
||
"Search contacts": "Поиск по контактам",
|
||
"Search contacts to add…": "Найдите контакты, чтобы добавить…",
|
||
"Loading contacts…": "Загрузка контактов…",
|
||
"Add to contacts": "Добавить в контакты",
|
||
"Add to my contacts": "Добавить в мои контакты",
|
||
"Remove from my contacts": "Убрать из моих контактов",
|
||
"Address book": "Адресная книга",
|
||
"Address books": "Адресные книги",
|
||
"All address books": "Все адресные книги",
|
||
"My address books": "Мои адресные книги",
|
||
"New address book": "Новая адресная книга",
|
||
"No address books yet.": "Адресных книг пока нет.",
|
||
"Choose from address books": "Выбрать из адресных книг",
|
||
"Import vCard": "Импорт vCard",
|
||
"Export all contacts": "Экспортировать все контакты",
|
||
"Export address book": "Экспортировать эту адресную книгу",
|
||
"Import contacts…": "Импортировать контакты…",
|
||
"Contact options": "Параметры контактов",
|
||
"Address book options": "Параметры адресной книги",
|
||
"Email group": "Написать группе",
|
||
"Email everyone": "Написать всем",
|
||
"Members": "Участники",
|
||
"Members ({count})": "Участники ({count})",
|
||
"Group": "Группа",
|
||
"· group": "· группа",
|
||
"Person": "Человек",
|
||
"First name": "Имя",
|
||
"Last name": "Фамилия",
|
||
"Middle name": "Отчество",
|
||
"More name fields": "Другие поля имени",
|
||
"Nickname": "Псевдоним",
|
||
"Prefix": "Обращение",
|
||
"Suffix": "Суффикс",
|
||
"Dr.": "Д-р",
|
||
"Jr.": "Мл.",
|
||
"Display name": "Отображаемое имя",
|
||
"Job title": "Должность",
|
||
"Organization": "Организация",
|
||
"Company": "Компания",
|
||
"Birthday": "День рождения",
|
||
"Notes": "Заметки",
|
||
"Website": "Сайт",
|
||
"Phone": "Телефон",
|
||
"Add phone": "Добавить телефон",
|
||
"Add email": "Добавить адрес",
|
||
"Add address": "Добавить почтовый адрес",
|
||
"Address": "Адрес",
|
||
"Street": "Улица",
|
||
"City": "Город",
|
||
"State / Region": "Область / регион",
|
||
"Postal code": "Индекс",
|
||
"Country": "Страна",
|
||
"Change photo": "Сменить фото",
|
||
"Remove photo": "Убрать фото",
|
||
"Updated {date}": "Обновлено {date}",
|
||
"Modified": "Изменено",
|
||
"Search names and addresses": "Поиск по именам и адресам",
|
||
"Add a person or group…": "Добавить человека или группу…",
|
||
"Choose recipients": "Выбрать получателей",
|
||
"Available to add": "Можно добавить",
|
||
"vCard": "vCard",
|
||
"vCard attachment": "Вложение vCard",
|
||
|
||
"Files": "Файлы",
|
||
"My files": "Мои файлы",
|
||
"File storage is not available": "Хранилище файлов недоступно",
|
||
"Drag files here or use Upload.": "Перетащите файлы сюда или нажмите «Загрузить».",
|
||
"Shared": "Общий доступ",
|
||
"Shared with me": "Доступные мне",
|
||
"Nothing is shared with you.": "Вам ничего не открыли.",
|
||
"Not shared with anyone yet.": "Доступ пока никому не открыт.",
|
||
"Check for new shares": "Проверить новые",
|
||
"Shared files are copied to your account when attached.": "При вложении общие файлы копируются в вашу учётную запись.",
|
||
"Viewer": "Чтение",
|
||
"Editor": "Изменение",
|
||
"Size": "Размер",
|
||
"Add files": "Добавить файлы",
|
||
"Minimize": "Свернуть",
|
||
|
||
// ── Settings ───────────────────────────────────────────────────────
|
||
"Settings": "Настройки",
|
||
"All settings": "Все настройки",
|
||
"Sections": "Разделы",
|
||
"General": "Общие",
|
||
"Appearance": "Внешний вид",
|
||
"Make ihasmail yours.": "Настройте ihasmail под себя.",
|
||
"Reading": "Чтение",
|
||
"Reading pane": "Область чтения",
|
||
"Reading, sending and list behaviour. Settings are stored in this browser.": "Поведение при чтении, отправке и в списке. Настройки хранятся в этом браузере.",
|
||
"Right of the list": "Справа от списка",
|
||
"Below the list": "Под списком",
|
||
"Hidden (open full width)": "Скрыта (открывать во всю ширину)",
|
||
"Off (open messages full width)": "Выключена (письма во всю ширину)",
|
||
"Off": "Выключено",
|
||
"Composing": "Написание",
|
||
"Default format": "Формат по умолчанию",
|
||
"Rich text (HTML)": "Форматированный текст (HTML)",
|
||
"Plain text": "Обычный текст",
|
||
"Quote original message in replies": "Цитировать исходное письмо в ответах",
|
||
"Place signature above quoted text": "Ставить подпись над цитатой",
|
||
"Attachment reminder": "Напоминание о вложении",
|
||
"Warn when the message mentions an attachment but none is attached.": "Предупреждать, если письмо упоминает вложение, но его нет.",
|
||
"Spell check while typing": "Проверять орфографию при вводе",
|
||
"Confirm before deleting": "Спрашивать перед удалением",
|
||
"Show message snippets": "Показывать начало письма",
|
||
"Preview the first line of each message in the list.": "Показывать первую строку каждого письма в списке.",
|
||
"Show sender avatars": "Показывать аватары отправителей",
|
||
"Group messages from the same thread together.": "Объединять письма одной цепочки.",
|
||
"After archiving or deleting": "После архивирования или удаления",
|
||
"Ask before showing (recommended)": "Спрашивать перед показом (рекомендуется)",
|
||
"Always (all messages)": "Всегда (все письма)",
|
||
"Show automatically from my contacts": "Автоматически для моих контактов",
|
||
"Immediately when opened": "Сразу при открытии",
|
||
"After 2 seconds": "Через 2 секунды",
|
||
"After 5 seconds": "Через 5 секунд",
|
||
"Never automatically": "Никогда автоматически",
|
||
"When someone requests a read receipt": "Когда запрашивают уведомление о прочтении",
|
||
"Ask me on each message": "Спрашивать для каждого письма",
|
||
"5 seconds": "5 секунд",
|
||
"8 seconds": "8 секунд",
|
||
"15 seconds": "15 секунд",
|
||
"30 seconds": "30 секунд",
|
||
"Locale": "Регион",
|
||
"Language": "Язык",
|
||
"Interface language": "Язык интерфейса",
|
||
"Language & region": "Язык и регион",
|
||
"Date format": "Формат даты",
|
||
"Time format": "Формат времени",
|
||
"Time zone": "Часовой пояс",
|
||
"Week starts on": "Неделя начинается с",
|
||
"Monday": "Понедельник",
|
||
"Tuesday": "Вторник",
|
||
"Wednesday": "Среда",
|
||
"Thursday": "Четверг",
|
||
"Friday": "Пятница",
|
||
"Saturday": "Суббота",
|
||
"Sunday": "Воскресенье",
|
||
"12-hour clock (6:23 PM)": "12-часовой формат (6:23 PM)",
|
||
"24-hour clock (18:23)": "24-часовой формат (18:23)",
|
||
"Browser default ({zone})": "Как в браузере ({zone})",
|
||
"Default ({zone})": "По умолчанию ({zone})",
|
||
"Automatic ({example})": "Автоматически ({example})",
|
||
"Automatic ({locale})": "Автоматически ({locale})",
|
||
"Automatic": "Автоматически",
|
||
"Preview: {example}": "Пример: {example}",
|
||
"Dates, times and month names follow this choice.": "Даты, время и названия месяцев следуют этому выбору.",
|
||
"Your mail server reports {name} ({tag}).": "Ваш почтовый сервер сообщает {name} ({tag}).",
|
||
"Your mail server does not report a locale, so the browser's is used.": "Ваш почтовый сервер не сообщает язык, поэтому используется язык браузера.",
|
||
"Dates": "Даты",
|
||
"Date": "Дата",
|
||
"Time": "Время",
|
||
"When": "Когда",
|
||
"Then": "Затем",
|
||
"then": "затем",
|
||
"Theme": "Тема",
|
||
"Accent color": "Акцентный цвет",
|
||
"Color": "Цвет",
|
||
"Colour": "Цвет",
|
||
"Text color": "Цвет текста",
|
||
"Density & text": "Плотность и текст",
|
||
"Display density": "Плотность отображения",
|
||
"Comfortable": "Свободная",
|
||
"Cozy (default)": "Средняя (по умолчанию)",
|
||
"Compact": "Плотная",
|
||
"Text size": "Размер текста",
|
||
"Font size": "Размер шрифта",
|
||
"Small": "Мелкий",
|
||
"Medium": "Средний",
|
||
"Large": "Крупный",
|
||
"Huge": "Очень крупный",
|
||
"Sidebar": "Боковая панель",
|
||
"Show labels in the sidebar": "Показывать ярлыки на боковой панели",
|
||
"Collapse sidebar to icons": "Свернуть боковую панель до значков",
|
||
"Apply the theme to messages too": "Применять тему и к письмам",
|
||
"Swiping": "Жесты смахивания",
|
||
"Swipe left": "Смахнуть влево",
|
||
"Swipe right": "Смахнуть вправо",
|
||
"Backup": "Резервная копия",
|
||
"Export settings": "Экспорт настроек",
|
||
"Import settings": "Импорт настроек",
|
||
"Settings imported": "Настройки импортированы",
|
||
"Invalid settings file": "Неверный файл настроек",
|
||
"Reset to defaults": "Сбросить к значениям по умолчанию",
|
||
"Default mail app": "Почтовая программа по умолчанию",
|
||
"Documentation": "Документация",
|
||
"About ihasmail": "О программе ihasmail",
|
||
"About": "О программе",
|
||
"Server": "Сервер",
|
||
"Server capabilities": "Возможности сервера",
|
||
"Accounts": "Учётные записи",
|
||
"Account": "Учётная запись",
|
||
"Max upload": "Максимальная загрузка",
|
||
"{size} MB": "{size} МБ",
|
||
"KB": "КБ",
|
||
"Image privacy proxy": "Прокси приватности изображений",
|
||
"enabled": "включён",
|
||
"disabled": "выключен",
|
||
"Enabled": "Включено",
|
||
"active": "активен",
|
||
"hidden": "скрыта",
|
||
"connected": "подключено",
|
||
"reconnecting…": "переподключение…",
|
||
"AGPL-3.0 source": "Исходный код AGPL-3.0",
|
||
|
||
// ── Identities, templates, filters ─────────────────────────────────
|
||
"Identities & signatures": "Профили отправителя и подписи",
|
||
"Add identity": "Добавить профиль",
|
||
"Delete identity": "Удалить профиль",
|
||
"Make default": "Сделать основным",
|
||
"Default": "Основной",
|
||
"Show when composing": "Показывать при написании",
|
||
"Hide when composing": "Скрывать при написании",
|
||
"Signature": "Подпись",
|
||
"Your signature…": "Ваша подпись…",
|
||
"Reply-To": "Обратный адрес",
|
||
"Reply-To (optional)": "Обратный адрес (необязательно)",
|
||
"Reply-To: {addresses}": "Обратный адрес: {addresses}",
|
||
"Replies go to…": "Ответы приходят на…",
|
||
"Set a Reply-To address": "Указать обратный адрес",
|
||
"{email} is now your default identity": "{email} теперь ваш основной профиль",
|
||
"Templates": "Шаблоны",
|
||
"New template": "Новый шаблон",
|
||
"Delete template": "Удалить шаблон",
|
||
"Insert template": "Вставить шаблон",
|
||
"Template text…": "Текст шаблона…",
|
||
"Subject: {subject}": "Тема: {subject}",
|
||
"Filters & rules": "Фильтры и правила",
|
||
"Filters unavailable": "Фильтры недоступны",
|
||
"Rules": "Правила",
|
||
"Rule name": "Название правила",
|
||
"New rule": "Новое правило",
|
||
"Delete rule": "Удалить правило",
|
||
"No filters yet": "Фильтров пока нет",
|
||
"Add condition": "Добавить условие",
|
||
"Remove condition": "Убрать условие",
|
||
"Add action": "Добавить действие",
|
||
"Remove action": "Убрать действие",
|
||
"all of the following match": "выполняются все условия",
|
||
"any of the following match": "выполняется любое из условий",
|
||
"contains": "содержит",
|
||
"does not contain": "не содержит",
|
||
"is": "равно",
|
||
"is not": "не равно",
|
||
"matches (wildcards * ?)": "совпадает с (шаблоны * ?)",
|
||
"does not match": "не совпадает с",
|
||
"matches regex": "совпадает с регулярным выражением",
|
||
"does not match regex": "не совпадает с регулярным выражением",
|
||
"exists": "существует",
|
||
"does not exist": "не существует",
|
||
"is larger than": "больше чем",
|
||
"is smaller than": "меньше чем",
|
||
"Stop processing more rules": "Прекратить обработку остальных правил",
|
||
"keep copy": "оставить копию",
|
||
"Forward to": "Переслать на",
|
||
"Reject with message": "Отклонить с сообщением",
|
||
"Scripts": "Скрипты",
|
||
"Scripts (advanced)": "Скрипты (для опытных)",
|
||
"Script name": "Название скрипта",
|
||
"New script": "Новый скрипт",
|
||
"Delete script": "Удалить скрипт",
|
||
"Sieve source": "Исходный код Sieve",
|
||
"Preview generated Sieve script": "Посмотреть созданный скрипт Sieve",
|
||
"Start with rules": "Начать с правил",
|
||
"Switch to rules?": "Перейти к правилам?",
|
||
"Create filter": "Создать фильтр",
|
||
"Filter messages like this": "Фильтровать похожие письма",
|
||
"Filter messages like this…": "Фильтровать похожие письма…",
|
||
"Also apply to existing messages in": "Применить и к письмам в",
|
||
"keyword (e.g. $important, work)": "ключевое слово (например, $important, work)",
|
||
"Other header…": "Другой заголовок…",
|
||
"Out of office": "Автоответ об отсутствии",
|
||
"Auto-reply enabled": "Автоответ включён",
|
||
|
||
// ── Security, sessions, notifications ──────────────────────────────
|
||
"Security & sessions": "Безопасность и сеансы",
|
||
"Password": "Пароль",
|
||
"Your password": "Ваш пароль",
|
||
"Current password": "Текущий пароль",
|
||
"New password": "Новый пароль",
|
||
"Confirm new password": "Подтвердите новый пароль",
|
||
"Current code": "Текущий код",
|
||
"Code from your authenticator": "Код из приложения-аутентификатора",
|
||
"Two-factor authentication": "Двухфакторная аутентификация",
|
||
"Turn off two-factor authentication": "Отключить двухфакторную аутентификацию",
|
||
"Your password alone will be enough to sign in again.": "Для входа снова будет достаточно одного пароля.",
|
||
"App passwords": "Пароли приложений",
|
||
"New app password for": "Новый пароль приложения для",
|
||
"Your new app password": "Ваш новый пароль приложения",
|
||
"Secret": "Секрет",
|
||
"Thunderbird on my laptop": "Thunderbird на ноутбуке",
|
||
"Active webmail sessions": "Активные сеансы веб-почты",
|
||
"Sign out": "Выйти",
|
||
"Sign out here": "Выйти здесь",
|
||
"Sign out all other sessions": "Завершить все остальные сеансы",
|
||
"Signed in as": "Вход выполнен как",
|
||
"This is my own device": "Это моё личное устройство",
|
||
"this device": "это устройство",
|
||
"Device": "Устройство",
|
||
"IP": "IP",
|
||
"Last active": "Последняя активность",
|
||
"Created": "Создан",
|
||
"Expires": "Истекает",
|
||
"Status": "Состояние",
|
||
"Online": "В сети",
|
||
"Reason": "Причина",
|
||
"Type": "Тип",
|
||
"Email or username": "Адрес или имя пользователя",
|
||
"Use your usual address as the username.": "В качестве имени пользователя укажите свой обычный адрес.",
|
||
"Fast, friendly webmail. Your mailbox, your way.": "Быстрая и удобная веб-почта. Ваш ящик — по-вашему.",
|
||
|
||
"Notifications": "Уведомления",
|
||
"Notifications are blocked in your browser settings.": "Уведомления заблокированы в настройках браузера.",
|
||
"Not supported in this browser.": "Не поддерживается в этом браузере.",
|
||
"Desktop notifications while ihasmail is open": "Системные уведомления, пока ihasmail открыт",
|
||
"Notify me even when ihasmail is closed": "Уведомлять, даже когда ihasmail закрыт",
|
||
"Play a sound for new mail": "Звук при новом письме",
|
||
"Test notification": "Проверить уведомление",
|
||
"Background notifications are on": "Фоновые уведомления включены",
|
||
"The tab title and favicon always show your unread Inbox count.": "Заголовок вкладки и значок всегда показывают число непрочитанных во входящих.",
|
||
"Live updates are delivered via JMAP push ({state}).": "Обновления в реальном времени приходят через JMAP push ({state}).",
|
||
"Shows a system notification when new mail arrives in your Inbox while the tab is in the background.": "Показывает системное уведомление, когда во входящие приходит письмо, а вкладка в фоне.",
|
||
|
||
// ── Editor, search, shortcuts, misc ────────────────────────────────
|
||
"Formatting": "Форматирование",
|
||
"Formatting options": "Параметры форматирования",
|
||
"Remove formatting": "Убрать форматирование",
|
||
"Bold (Ctrl+B)": "Полужирный (Ctrl+B)",
|
||
"Italic (Ctrl+I)": "Курсив (Ctrl+I)",
|
||
"Underline (Ctrl+U)": "Подчёркнутый (Ctrl+U)",
|
||
"Strikethrough": "Зачёркнутый",
|
||
"Highlight": "Выделение цветом",
|
||
"Bulleted list": "Маркированный список",
|
||
"Numbered list": "Нумерованный список",
|
||
"Increase indent": "Увеличить отступ",
|
||
"Decrease indent": "Уменьшить отступ",
|
||
"Align left": "По левому краю",
|
||
"Align right": "По правому краю",
|
||
"Center": "По центру",
|
||
"Quote": "Цитата",
|
||
"Code block": "Блок кода",
|
||
"Normal text": "Обычный текст",
|
||
"Insert link (Ctrl+K)": "Вставить ссылку (Ctrl+K)",
|
||
"Insert image": "Вставить изображение",
|
||
"Link": "Ссылка",
|
||
"List": "Список",
|
||
"Emoji": "Эмодзи",
|
||
"Write your message…": "Напишите письмо…",
|
||
"Search": "Поиск",
|
||
"Search mail": "Поиск по почте",
|
||
"Advanced search": "Расширенный поиск",
|
||
"Keyboard shortcuts": "Сочетания клавиш",
|
||
"Keyboard shortcuts (?)": "Сочетания клавиш (?)",
|
||
"Shortcuts": "Сочетания",
|
||
"Go to": "Перейти",
|
||
"Menu": "Меню",
|
||
"Close menu": "Закрыть меню",
|
||
"Options": "Параметры",
|
||
"Send options": "Параметры отправки",
|
||
"Name": "Имя",
|
||
"Email": "Адрес",
|
||
"Email address": "Адрес электронной почты",
|
||
"Description": "Описание",
|
||
"Location": "Место",
|
||
"Visibility": "Видимость",
|
||
"Private": "Личное",
|
||
"Work": "Работа",
|
||
"Loading…": "Загрузка…",
|
||
"None": "Нет",
|
||
"optional": "необязательно",
|
||
"Always show": "Всегда показывать",
|
||
"to": "кому",
|
||
"Received": "Получено",
|
||
"In-Reply-To": "In-Reply-To",
|
||
"References": "References",
|
||
"Add label / keyword": "Добавить ярлык или ключевое слово",
|
||
"Manage labels": "Управление ярлыками",
|
||
"Create “{name}”": "Создать «{name}»",
|
||
"Type a name to create your first label.": "Введите название, чтобы создать первый ярлык.",
|
||
"Labels are IMAP keywords stored on your messages, so they sync to other clients. Names and colours are kept in this browser.": "Ярлыки — это ключевые слова IMAP, которые хранятся в самих письмах и синхронизируются с другими клиентами. Названия и цвета остаются в этом браузере.",
|
||
"New label": "Новый ярлык",
|
||
"Delete label": "Удалить ярлык",
|
||
"PDF": "PDF",
|
||
"Large attachments may be rejected by some servers": "Некоторые серверы отклоняют большие вложения",
|
||
"Images are stored in your Files (folder “ihasmail”) and embedded when you send.": "Изображения хранятся в ваших Файлах (папка «ihasmail») и вставляются при отправке.",
|
||
"Thanks for your message. I'm away until … and will reply when I'm back.": "Спасибо за письмо. Я отсутствую до … и отвечу после возвращения.",
|
||
"Automatically reply to people who email you while you're away. Each sender gets at most one reply.": "Автоматически отвечать тем, кто напишет вам во время отсутствия. Каждый отправитель получит не больше одного ответа.",
|
||
"Sort incoming mail automatically. Rules run on the server (Sieve), so they work for every client you use.": "Автоматически сортировать входящую почту. Правила выполняются на сервере (Sieve), поэтому работают во всех клиентах.",
|
||
"Canned responses you can insert into any message from the composer's template button.": "Готовые ответы, которые можно вставить в любое письмо кнопкой шаблонов в редакторе.",
|
||
"Create a rule to move newsletters to a folder, flag important senders, or forward mail.": "Создайте правило, чтобы складывать рассылки в папку, отмечать важных отправителей или пересылать почту.",
|
||
"Advanced: manage raw Sieve scripts. Only one script can be active at a time.": "Для опытных: работа со скриптами Sieve напрямую. Одновременно активен только один скрипт.",
|
||
"Only part of your filter script arrived.": "Скрипт фильтрации получен не полностью.",
|
||
"Your active script “{name}” was written by hand.": "Ваш активный скрипт «{name}» написан вручную.",
|
||
"Another script (“{name}”) is active. Saving rules here will activate the “ihasmail” script instead.": "Активен другой скрипт («{name}»). Если сохранить правила здесь, вместо него включится скрипт «ihasmail».",
|
||
"“{name}” will be deactivated (not deleted) and a new “ihasmail” script will take over.": "«{name}» будет отключён (не удалён), а его место займёт новый скрипт «ihasmail».",
|
||
"Sieve filtering is not available for this account.": "Фильтрация Sieve недоступна для этой учётной записи.",
|
||
"Sieve filtering is not enabled for this account.": "Фильтрация Sieve не включена для этой учётной записи.",
|
||
"Vacation responses are not available for this account.": "Автоответы об отсутствии недоступны для этой учётной записи.",
|
||
"This account does not have the JMAP calendars capability.": "У этой учётной записи нет возможности JMAP «календари».",
|
||
"This account does not have the JMAP contacts capability.": "У этой учётной записи нет возможности JMAP «контакты».",
|
||
"This account does not have the JMAP file storage capability.": "У этой учётной записи нет возможности JMAP «хранилище файлов».",
|
||
|
||
// ── Labels held in constants, translated where they render ─────────
|
||
"Add": "Добавить",
|
||
"Create subfolders": "Создавать вложенные папки",
|
||
"Dark": "Тёмная",
|
||
"Light": "Светлая",
|
||
"Match system": "Как в системе",
|
||
"Day.Month.Year": "День.Месяц.Год",
|
||
"Day/Month/Year": "День/Месяц/Год",
|
||
"Month/Day/Year": "Месяц/День/Год",
|
||
"Year-Month-Day (ISO 8601)": "Год-Месяц-День (ISO 8601)",
|
||
"Edit all": "Изменять всё",
|
||
"Edit contents": "Изменять содержимое",
|
||
"Edit own": "Изменять своё",
|
||
"Flag": "Отмечать",
|
||
"Mark read": "Отмечать прочитанным",
|
||
"Private props": "Личные свойства",
|
||
"Read": "Читать",
|
||
"Read events": "Читать события",
|
||
"RSVP": "Отвечать на приглашения",
|
||
"See free/busy": "Видеть занятость",
|
||
"Share": "Открывать доступ",
|
||
"Write": "Писать",
|
||
"Live updates connected": "Обновления в реальном времени подключены",
|
||
"Live updates reconnecting…": "Переподключение обновлений в реальном времени…",
|
||
"Live updates off — checking periodically instead": "Обновления в реальном времени выключены — идёт периодическая проверка",
|
||
"Mark as read / unread": "Отметить как прочитанное / непрочитанное",
|
||
"Star / unstar": "Отметить / снять отметку",
|
||
"Report spam / not spam": "Пометить как спам / не спам",
|
||
"Report spam": "Пометить как спам",
|
||
"Not spam": "Не спам",
|
||
"Nothing": "Ничего",
|
||
"Later today": "Сегодня позже",
|
||
"Tomorrow morning": "Завтра утром",
|
||
"Tomorrow afternoon": "Завтра днём",
|
||
"Monday morning": "В понедельник утром",
|
||
"Open draft": "Открыть черновик",
|
||
"Undo": "Отменить",
|
||
"Deleted Items": "Корзина",
|
||
"Choose a date": "Выберите дату",
|
||
"Choose a date and time": "Выберите дату и время",
|
||
"Pick date and time…": "Выбрать дату и время…",
|
||
"After": "После",
|
||
"Before": "До",
|
||
|
||
// ── Folder names shown for a JMAP role (see lib/mailboxName.ts) ────
|
||
"folder\u0004Inbox": "Входящие",
|
||
"folder\u0004Archive": "Архив",
|
||
"folder\u0004Drafts": "Черновики",
|
||
"folder\u0004Sent": "Отправленные",
|
||
"folder\u0004Deleted Items": "Корзина",
|
||
"folder\u0004Junk Mail": "Спам",
|
||
"folder\u0004Important": "Важное",
|
||
"folder\u0004All mail": "Вся почта",
|
||
"folder": "папка",
|
||
"“{name}” moved into “{parent}”": "«{name}» перемещена в «{parent}»",
|
||
"“{name}” moved to the top level": "«{name}» перемещена на верхний уровень",
|
||
"Could not move “{name}”: {reason}": "Не удалось переместить «{name}»: {reason}",
|
||
"Delete “{name}”?": "Удалить «{name}»?",
|
||
"Rename folder": "Переименовать папку",
|
||
"Search: {query}": "Поиск: {query}",
|
||
"No conversation selected": "Цепочка не выбрана",
|
||
"Drop here for the top level": "Перетащите сюда, чтобы вынести на верхний уровень",
|
||
|
||
// ── Longer prose ───────────────────────────────────────────────────
|
||
"Search mail (from:, to:, subject:, has:attachment, is:unread, in:, before:, after:)": "Поиск по почте (from:, to:, subject:, has:attachment, is:unread, in:, before:, after:)",
|
||
"Settings → Filters & rules": "Настройки → Фильтры и правила",
|
||
"Open the Mail view to see all shortcuts.": "Откройте раздел «Почта», чтобы увидеть все сочетания клавиш.",
|
||
"Gmail-style shortcuts are always on. Press {key} anywhere to see this list.": "Сочетания клавиш в стиле Gmail всегда включены. Нажмите {key} в любом месте, чтобы увидеть этот список.",
|
||
"Select a conversation to read it here · Press {key} for shortcuts": "Выберите цепочку, чтобы прочитать её здесь · {key} — сочетания клавиш",
|
||
"Tip: press {key} on a conversation to apply labels. Search with {operator}.": "Совет: нажмите {key} на цепочке, чтобы присвоить ярлыки. Ищите через {operator}.",
|
||
"A fast, friendly, open-source webmail for {server}, built on JMAP.": "Быстрая и удобная веб-почта с открытым кодом для {server}, построенная на JMAP.",
|
||
"Defaults for the calendar views and new events.": "Значения по умолчанию для видов календаря и новых событий.",
|
||
"Replies will go to this address instead of the From address": "Ответы будут приходить на этот адрес, а не на адрес отправителя",
|
||
"Replies to mail sent from this identity go here instead of the From address.": "Ответы на письма из этого профиля приходят сюда, а не на адрес отправителя.",
|
||
"New identities must use an address this account is allowed to send from (aliases configured on the server).": "Новый профиль должен использовать адрес, с которого этой учётной записи разрешено отправлять (псевдонимы настраиваются на сервере).",
|
||
"Not offered when composing. It still receives mail, and you can still send from it by showing it again.": "Не предлагается при написании письма. Адрес по-прежнему принимает почту, и с него снова можно отправлять, если показать его обратно.",
|
||
"Each identity is a sender address with its own name, Reply-To and signature. The default identity is preselected when you compose; set a Reply-To when replies should go somewhere other than the From address.": "Каждый профиль — это адрес отправителя со своим именем, обратным адресом и подписью. Основной профиль подставляется при написании письма; укажите обратный адрес, если ответы должны приходить не на адрес отправителя.",
|
||
"This signature is larger than the server's {limit}-byte limit. ihasmail will keep the full version in your Files and store a short text fallback on the server — other mail clients will see the plain-text version.": "Эта подпись больше серверного предела в {limit} байт. ihasmail сохранит полную версию в ваших Файлах, а на сервере оставит короткий текстовый вариант — другие почтовые клиенты увидят именно его.",
|
||
"Outlook-style categories you can assign to events from the right-click menu or the event editor. The category name is stored on the event, so it syncs to other clients.": "Категории в стиле Outlook, которые можно присваивать событиям через контекстное меню или редактор события. Название категории хранится в самом событии и синхронизируется с другими клиентами.",
|
||
"Plain-text mail already follows the theme. With this on, HTML mail that brings no colours of its own does as well, instead of sitting on a white card. Messages that style themselves are left exactly as the sender designed them.": "Письма в обычном тексте уже следуют теме. С этой настройкой ей следуют и HTML-письма без собственных цветов, а не показываются на белом фоне. Письма с собственным оформлением остаются ровно такими, какими их задумал отправитель.",
|
||
"This is separate from {setting} in General, which decides how dates, times and numbers are written. You can read an English interface with German dates, or the other way round.": "Это не то же самое, что {setting} в разделе «Общие», где задаётся, как пишутся даты, время и числа. Можно читать английский интерфейс с русскими датами — или наоборот.",
|
||
"On a touchscreen, drag a message sideways to act on it. Each direction can do one thing, or nothing. These follow your account, so a phone and a tablet agree; a mouse ignores them and keeps dragging messages into folders instead.": "На сенсорном экране смахните письмо в сторону, чтобы выполнить над ним действие. Каждое направление может делать что-то одно — или ничего. Настройка привязана к учётной записи, поэтому телефон и планшет ведут себя одинаково; мышь её игнорирует, и письма по-прежнему перетаскиваются в папки.",
|
||
"This screen has no touchscreen, so nothing here changes what it does. Your phone or tablet will pick these up.": "У этого экрана нет сенсорного ввода, поэтому здесь ничего не изменится. Настройку подхватят телефон или планшет.",
|
||
"Holding a message selects it, and holding a folder opens its menu. Pull the top of the message list down to check for new mail.": "Долгое нажатие на письме выделяет его, а на папке — открывает её меню. Потяните список писем вниз, чтобы проверить почту.",
|
||
"A receipt tells whoever asked that this address is live and when the message was read, and the sender chooses where it goes — so there is no automatic option. Bulk mail, mailing lists and anything marked auto-submitted are never offered one at all.": "Уведомление сообщает запросившему, что адрес действующий и когда письмо было прочитано, а отправитель сам выбирает, куда его отправить, — поэтому автоматического варианта нет. Для массовых рассылок, списков рассылки и всего помеченного как отправленное автоматически оно не предлагается вовсе.",
|
||
"This browser cannot register apps for {scheme} links. Safari, in particular, has no such API — you can still make ihasmail the default from your operating system if you install it as an app.": "Этот браузер не умеет регистрировать программы для ссылок {scheme}. В частности, в Safari нет такого интерфейса — но ihasmail всё равно можно сделать программой по умолчанию средствами операционной системы, установив его как приложение.",
|
||
"Registering for {scheme} links requires a secure (HTTPS) connection.": "Для регистрации ссылок {scheme} нужно защищённое соединение (HTTPS).",
|
||
"Open {scheme} links — in web pages, documents and other apps — in ihasmail instead of a desktop mail client. Your browser will ask you to confirm, and you can change it later in its own settings (Chrome: Settings › Privacy and security › Site settings › Protocol handlers; Firefox: Settings › General › Applications).": "Открывать ссылки {scheme} — на веб-страницах, в документах и других программах — в ihasmail, а не в почтовой программе на компьютере. Браузер попросит подтверждение, и позже это можно изменить в его настройках (Chrome: Настройки › Конфиденциальность и безопасность › Настройки сайтов › Обработчики протоколов; Firefox: Настройки › Основные › Приложения).",
|
||
"Requested in this browser. Whether it took effect is up to the browser — check its settings if mail links still open elsewhere.": "Запрошено в этом браузере. Сработало ли это, решает он сам — проверьте его настройки, если почтовые ссылки по-прежнему открываются в другом месте.",
|
||
"For a system-wide default, install ihasmail as an app first (in Chrome: the install icon in the address bar). Your operating system can then offer ihasmail directly wherever it asks which mail app to use.": "Чтобы задать программу по умолчанию для всей системы, сначала установите ihasmail как приложение (в Chrome — значок установки в адресной строке). После этого операционная система сможет предлагать ihasmail везде, где спрашивает, какой почтовой программой воспользоваться.",
|
||
"Needs a browser with the Push API and a mail server that publishes a push key.": "Нужен браузер с Push API и почтовый сервер, публикующий push-ключ.",
|
||
"Your mail server delivers these straight to your browser, so they arrive with no ihasmail tab open, naming the sender and subject. Your browser still has to be running — if you quit it completely, notifications wait and arrive when you open it again.": "Почтовый сервер доставляет их прямо в браузер, поэтому они приходят без открытой вкладки ihasmail и содержат отправителя и тему. Браузер при этом должен быть запущен: если закрыть его полностью, уведомления подождут и придут при следующем запуске.",
|
||
"Your mail server can wake this browser, but will not include the sender or subject. Your browser still has to be running.": "Почтовый сервер может разбудить этот браузер, но не сообщит отправителя и тему. Браузер при этом должен быть запущен.",
|
||
"This is what a new-mail notification looks like.": "Так выглядит уведомление о новом письме.",
|
||
"You're signed in as {user}. Your password is never stored in the browser; the server keeps it encrypted per-session for talking to Stalwart.": "Вы вошли как {user}. Пароль никогда не хранится в браузере: сервер держит его в зашифрованном виде на время сеанса, чтобы общаться со Stalwart.",
|
||
"App passwords are managed by your mail administrator.": "Паролями приложений управляет ваш почтовый администратор.",
|
||
"Changing your password signs out your other webmail sessions. Any app passwords keep working.": "Смена пароля завершает остальные сеансы веб-почты. Пароли приложений продолжают работать.",
|
||
"This account has two-factor authentication on. ihasmail can't sign you in with a code yet, so signing in on another device needs an app password — or you can turn two-factor authentication off here.": "Для этой учётной записи включена двухфакторная аутентификация. ihasmail пока не умеет входить по коду, поэтому для входа на другом устройстве нужен пароль приложения — либо двухфакторную аутентификацию можно отключить здесь.",
|
||
"A separate password for a mail app or device, which you can revoke on its own. App passwords skip two-factor codes, so they keep working in apps that can't ask for one.": "Отдельный пароль для почтовой программы или устройства, который можно отозвать по отдельности. Пароли приложений обходят двухфакторные коды и поэтому работают там, где запросить код невозможно.",
|
||
"Copy it into {name} now — it isn't shown again.": "Скопируйте его в {name} сейчас — больше он не показывается.",
|
||
"No other users found in the directory, so nobody new can be added. Sharing already in place is listed below and can still be removed.": "В каталоге не найдено других пользователей, поэтому добавить некого. Уже открытый доступ перечислен ниже, и его по-прежнему можно закрыть.",
|
||
"Stalwart does not publish its version number to mail clients, so ihasmail reports the edition where the server gives one. ihasmail requires 0.16 or newer, and sign-in refuses anything older.": "Stalwart не сообщает почтовым клиентам номер версии, поэтому ihasmail показывает редакцию, если сервер её называет. ihasmail требует версию 0.16 или новее, и вход с более старой не выполняется.",
|
||
"It {damage}, so the rules in it can't be shown or edited — saving what did arrive would write it back over the rest. Reload the page to try again. Your rules are still on the server; nothing here has changed them.": "Он {damage}, поэтому правила в нём нельзя показать или изменить: сохранение полученной части затёрло бы остальное. Перезагрузите страницу и попробуйте снова. Ваши правила остаются на сервере, здесь их ничто не меняло.",
|
||
"The visual rule editor only manages scripts it created. You can edit the script in the {tab} tab, or start fresh with rules (the existing script will be kept but deactivated).": "Визуальный редактор правил работает только со скриптами, которые создал сам. Скрипт можно изменить на вкладке {tab} или начать заново с правил (существующий скрипт сохранится, но будет отключён).",
|
||
"Your filter script {damage}, so only part of it arrived. Adding a rule would write that part back over the whole thing. Reload the page and try again.": "Ваш скрипт фильтрации {damage}, поэтому получена только его часть. Добавление правила затёрло бы этой частью весь скрипт. Перезагрузите страницу и попробуйте снова.",
|
||
"Your filter script couldn't be read just now, so adding a rule would risk overwriting it. Reload the page and try again.": "Скрипт фильтрации сейчас не удалось прочитать, поэтому добавление правила рискует его перезаписать. Перезагрузите страницу и попробуйте снова.",
|
||
"Your active Sieve script was written by hand, so rules can't be added automatically. Open {where} to edit the script or switch to managed rules.": "Ваш активный скрипт Sieve написан вручную, поэтому правила нельзя добавить автоматически. Откройте {where}, чтобы изменить скрипт или перейти к управляемым правилам.",
|
||
"Only languages ihasmail has been translated into appear here, so this list grows as translations land rather than ahead of them — a language offered without strings behind it would leave the page claiming to be in a language it is not.": "Здесь показаны только языки, на которые ihasmail переведён, поэтому список растёт вместе с переводами, а не опережает их: язык без текстов заставил бы страницу утверждать, что она написана на языке, которым не является.",
|
||
"tell us about it": "сообщите нам",
|
||
"This translation was generated by AI and has not been checked by a native speaker, so it is marked Beta until somebody who speaks it signs it off. Anything that reads wrongly is worth reporting — {report}.": "Этот перевод сделан ИИ и не проверен носителем языка, поэтому помечен как Beta до тех пор, пока кто-нибудь его не подтвердит. Обо всём, что звучит неправильно, стоит сообщить — {report}.",
|
||
"{name} is the palette from {site}, and what a new account starts on. It is a dark theme, so it counts as dark wherever that matters, and the accent colour below still applies on top of it.": "{name} — это палитра с {site}, с которой начинает новая учётная запись. Тема тёмная, поэтому везде, где это важно, считается тёмной, а акцентный цвет ниже применяется поверх неё.",
|
||
"ihasmail's own version is the date of the commit it was built from, followed by where that commit came from: {example} was built from a commit dated the 30th of August 2026 that arrived through pull request 129. A commit that did not come through one carries its short SHA instead — {sha}. The version deliberately says nothing about Stalwart; what this build needs from the server is the line above.": "Собственная версия ihasmail — это дата коммита, из которого он собран, и указание, откуда этот коммит взялся: {example} собран из коммита от 30 августа 2026 года, пришедшего через pull request 129. Коммит, пришедший иначе, несёт вместо этого короткий SHA — {sha}. Версия намеренно ничего не сообщает о Stalwart; то, что этой сборке нужно от сервера, указано строкой выше.",
|
||
|
||
// ── Composer status, calendar title ────────────────────────────────
|
||
"New message": "Новое письмо",
|
||
"Sending…": "Отправка…",
|
||
"Saving…": "Сохранение…",
|
||
"Error": "Ошибка",
|
||
"Saved {when}": "Сохранено {when}",
|
||
"Unsaved": "Не сохранено",
|
||
"Agenda from {date}": "Расписание с {date}",
|
||
|
||
// ── Toasts, dialogs and computed labels (second extraction pass) ───
|
||
"(no subject)": "(без темы)",
|
||
"(skipped: {actions})": "(пропущено: {actions})",
|
||
"Activate": "Включить",
|
||
"Add a contact or import a vCard file.": "Добавьте контакт или импортируйте файл vCard.",
|
||
"Added to your calendar": "Добавлено в ваш календарь",
|
||
"All events in this calendar will be deleted.": "Все события этого календаря будут удалены.",
|
||
"All occurrences": "Все повторения",
|
||
"An occurrence cannot be moved to another calendar on its own": "Отдельное повторение нельзя перенести в другой календарь",
|
||
"Anything signed in with this password stops working immediately.": "Всё, что вошло с этим паролем, сразу перестанет работать.",
|
||
"App password revoked": "Пароль приложения отозван",
|
||
"Applies to every date in the series.": "Применяется ко всем датам серии.",
|
||
"Applies to this date only.": "Применяется только к этой дате.",
|
||
"Apply to series": "Применить ко всей серии",
|
||
"Applying filter to existing messages…": "Фильтр применяется к существующим письмам…",
|
||
"Attachments are still uploading": "Вложения ещё загружаются",
|
||
"Calendar saved": "Календарь сохранён",
|
||
"Categorised as {name}": "Назначена категория «{name}»",
|
||
"Category cleared": "Категория снята",
|
||
"Change this event?": "Изменить это событие?",
|
||
"Choose a calendar": "Выберите календарь",
|
||
"Choose an address book": "Выберите адресную книгу",
|
||
"Colour updated": "Цвет изменён",
|
||
"Contact created": "Контакт создан",
|
||
"Contact deleted": "Контакт удалён",
|
||
"Contact saved": "Контакт сохранён",
|
||
"Copied": "Скопировано",
|
||
"Copy of {title}": "Копия: {title}",
|
||
"Could not cancel: {error}": "Не удалось отменить: {error}",
|
||
"Could not copy": "Не удалось скопировать",
|
||
"Could not copy the address": "Не удалось скопировать адрес",
|
||
"Could not empty folder: {error}": "Не удалось очистить папку: {error}",
|
||
"Could not load source: {error}": "Не удалось загрузить исходный текст: {error}",
|
||
"Could not mark as read: {error}": "Не удалось отметить как прочитанное: {error}",
|
||
"Could not save draft: {error}": "Не удалось сохранить черновик: {error}",
|
||
"Could not save filter: {error}": "Не удалось сохранить фильтр: {error}",
|
||
"Could not save filters: {error}": "Не удалось сохранить фильтры: {error}",
|
||
"Could not send the receipt: {error}": "Не удалось отправить уведомление о прочтении: {error}",
|
||
"Could not sign in.": "Не удалось войти.",
|
||
"Could not store image: {error}": "Не удалось сохранить изображение: {error}",
|
||
"Could not update labels: {error}": "Не удалось обновить метки: {error}",
|
||
"Could not update the Scheduled folder: {error}": "Не удалось обновить папку «Отложенные»: {error}",
|
||
"Could not update: {error}": "Не удалось обновить: {error}",
|
||
"Create": "Создать",
|
||
"Create an address book first": "Сначала создайте адресную книгу",
|
||
"Custom colour removed": "Свой цвет снят",
|
||
"Deactivate": "Выключить",
|
||
"Delete failed: {error}": "Не удалось удалить: {error}",
|
||
"Delete forever": "Удалить безвозвратно",
|
||
"Delete script “{name}”?": "Удалить сценарий «{name}»?",
|
||
"Delete this event?": "Удалить это событие?",
|
||
"Delete this identity?": "Удалить этот профиль отправителя?",
|
||
"Delete {name}?": "Удалить {name}?",
|
||
"Deleted": "Удалено",
|
||
"Deletes the whole series. This cannot be undone.": "Удаляет всю серию. Отменить это будет нельзя.",
|
||
"Did you forget the attachment?": "Не забыли вложение?",
|
||
"Discard": "Не сохранять",
|
||
"Discard this draft?": "Удалить этот черновик?",
|
||
"Edit calendar": "Изменить календарь",
|
||
"Edit event": "Изменить событие",
|
||
"Edit identity": "Изменить профиль отправителя",
|
||
"Edit template": "Изменить шаблон",
|
||
"End must be after start": "Окончание должно быть позже начала",
|
||
"Event duplicated": "Событие продублировано",
|
||
"Everything inside it goes too.": "Всё, что внутри, тоже будет удалено.",
|
||
"Filter created": "Фильтр создан",
|
||
"Filter created — it will run on new mail": "Фильтр создан — он будет работать для новых писем",
|
||
"Filter saved": "Фильтр сохранён",
|
||
"Filter saved — it will run on new mail": "Фильтр сохранён — он будет работать для новых писем",
|
||
"Filter saved, but applying it failed: {error}": "Фильтр сохранён, но применить его не удалось: {error}",
|
||
"Filters saved": "Фильтры сохранены",
|
||
"Folder changed, but its filter rules could not be updated: {error}": "Папка изменена, но её правила фильтрации обновить не удалось: {error}",
|
||
"Folder created": "Папка создана",
|
||
"Folder deleted": "Папка удалена",
|
||
"Folder name": "Имя папки",
|
||
"Folder name (use / for a subfolder, e.g. Work/Invoices)": "Имя папки (/ создаёт вложенную папку, например Работа/Счета)",
|
||
"Folder name (use / for subfolders, e.g. Work/Invoices)": "Имя папки (/ создаёт вложенные папки, например Работа/Счета)",
|
||
"Folder “{name}” created": "Папка «{name}» создана",
|
||
"Forwarded": "Переслано",
|
||
"Hand to the server, held until {when} (Ctrl+Enter)": "Передать серверу и удержать до {when} (Ctrl+Enter)",
|
||
"Hide": "Скрыть",
|
||
"Hide quoted text": "Скрыть цитируемый текст",
|
||
"Hide this from the compose picker": "Не предлагать при написании",
|
||
"Identity saved": "Профиль отправителя сохранён",
|
||
"Images in signatures need the Files feature, which this account doesn't have.": "Для изображений в подписи нужны «Файлы», которых у этой учётной записи нет.",
|
||
"Invalid address: {address}": "Неверный адрес: {address}",
|
||
"Invalid username or password.": "Неверное имя пользователя или пароль.",
|
||
"It belongs to a change that was applied to this and all later occurrences, which the server will only edit as a whole. Apply to the entire series instead?": "Она относится к изменению, применённому к этому и всем последующим повторениям, а сервер правит такое изменение только целиком. Применить ко всей серии?",
|
||
"Label name": "Название метки",
|
||
"Larger than {size} MB limit": "Больше предела в {size} МБ",
|
||
"Message sent": "Письмо отправлено",
|
||
"Move failed: {error}": "Не удалось переместить: {error}",
|
||
"Move “{name}”": "Переместить «{name}»",
|
||
"Moved": "Перемещено",
|
||
"Network error. Please check your connection.": "Ошибка сети. Проверьте подключение.",
|
||
"New all-day event on {date}": "Новое событие на весь день {date}",
|
||
"New event at {time}": "Новое событие в {time}",
|
||
"New identity": "Новый профиль отправителя",
|
||
"No Archive folder is set yet.": "Папка архива ещё не задана.",
|
||
"Create one": "Создать",
|
||
"Could not set up an Archive folder: {error}": "Не удалось настроить папку архива: {error}",
|
||
"Role": "Роль",
|
||
"Drafts": "Черновики",
|
||
"Sent": "Отправленные",
|
||
"The server does not allow this role to be changed.": "Сервер не позволяет изменить эту роль.",
|
||
"Folder role updated": "Роль папки обновлена",
|
||
"No contacts yet": "Контактов пока нет",
|
||
"No longer shared": "Общий доступ прекращён",
|
||
"No matches": "Совпадений нет",
|
||
"No new mail in your inbox.": "Новых писем во входящих нет.",
|
||
"No results": "Ничего не найдено",
|
||
"Nothing here": "Здесь пусто",
|
||
"Only Deleted Items and Junk Mail can be emptied.": "Очистить можно только корзину и спам.",
|
||
"Please add at least one recipient": "Добавьте хотя бы одного получателя",
|
||
"Please use an image under 512 KB for signatures.": "Для подписи используйте изображение меньше 512 КБ.",
|
||
"Preview": "Просмотр",
|
||
"Read receipt sent": "Уведомление о прочтении отправлено",
|
||
"Remove attachments that failed to upload first": "Сначала удалите вложения, которые не загрузились",
|
||
"Removed from calendar": "Удалено из календаря",
|
||
"Removes this date and leaves the rest of the series.": "Удаляет эту дату и оставляет остальную серию.",
|
||
"Rename address book": "Переименовать адресную книгу",
|
||
"Rename category": "Переименовать категорию",
|
||
"Replied": "Есть ответ",
|
||
"Report spam (!)": "Пожаловаться на спам (!)",
|
||
"Response sent": "Ответ отправлен",
|
||
"Revoke “{name}”?": "Отозвать «{name}»?",
|
||
"Script has errors": "В сценарии есть ошибки",
|
||
"Script is valid": "Сценарий корректен",
|
||
"Script name is required": "Нужно указать имя сценария",
|
||
"Script saved": "Сценарий сохранён",
|
||
"Send (Ctrl+Enter)": "Отправить (Ctrl+Enter)",
|
||
"Send anyway": "Всё равно отправить",
|
||
"Send cancelled — the message is back in Drafts": "Отправка отменена — письмо вернулось в черновики",
|
||
"Send failed: {error}": "Не удалось отправить: {error}",
|
||
"Send invites": "Отправить приглашения",
|
||
"Send scheduled for {when}": "Отправка запланирована на {when}",
|
||
"Send without a subject?": "Отправить без темы?",
|
||
"Share “{name}”": "Открыть доступ к «{name}»",
|
||
"Sharing updated": "Общий доступ обновлён",
|
||
"Show": "Показать",
|
||
"Show quoted text": "Показать цитируемый текст",
|
||
"Show this in the compose picker": "Предлагать при написании",
|
||
"Sign out other sessions?": "Завершить другие сеансы?",
|
||
"Sign out others": "Завершить другие",
|
||
"Stop sharing “{name}”?": "Закрыть общий доступ к «{name}»?",
|
||
"Switch to {theme}": "Переключить на {theme}",
|
||
"Template": "Шаблон",
|
||
"Template name": "Название шаблона",
|
||
"The contacts in it go too.": "Контакты внутри тоже будут удалены.",
|
||
"The default identity is always offered when composing": "Профиль по умолчанию всегда предлагается при написании",
|
||
"The new passwords don't match": "Новые пароли не совпадают",
|
||
"The server scheduled this for {when}, not the time requested.": "Сервер запланировал это на {when}, а не на запрошенное время.",
|
||
"This date cannot be changed on its own": "Эту дату нельзя изменить отдельно",
|
||
"This occurrence": "Только это повторение",
|
||
"Too many attempts. Please wait a few minutes and try again.": "Слишком много попыток. Подождите несколько минут и попробуйте снова.",
|
||
"Try another search.": "Попробуйте другой запрос.",
|
||
"Try different keywords or filters.": "Попробуйте другие слова или фильтры.",
|
||
"Two-factor authentication is off": "Двухфакторная аутентификация выключена",
|
||
"Undo window: {seconds}s": "Время на отмену: {seconds} с",
|
||
"You're all caught up": "Всё прочитано",
|
||
"Your browser refused the request: {error}": "Браузер отклонил запрос: {error}",
|
||
"Your browser will ask whether to open mail links in ihasmail": "Браузер спросит, открывать ли почтовые ссылки в ihasmail",
|
||
"Your message mentions an attachment, but nothing is attached.": "В письме упомянуто вложение, но ничего не приложено.",
|
||
"event": "событие",
|
||
"Hide password": "Скрыть пароль",
|
||
"Show password": "Показать пароль",
|
||
"Settings reset to defaults": "Настройки сброшены к значениям по умолчанию",
|
||
"Removed. Mail links will open in whatever your browser falls back to.": "Удалено. Почтовые ссылки будут открываться там, куда переключится браузер.",
|
||
"Edit rule": "Изменить правило",
|
||
"Address copied": "Адрес скопирован",
|
||
"Search or create label": "Найдите или создайте метку",
|
||
"New label name": "Название новой метки",
|
||
"That folder no longer exists. Showing your inbox instead.": "Этой папки больше нет. Показаны входящие.",
|
||
"Labels updated": "Метки обновлены",
|
||
"Unsubscribe message prepared — just hit Send": "Письмо об отписке готово — осталось нажать «Отправить»",
|
||
"Maximize": "Развернуть",
|
||
"Full screen": "Во весь экран",
|
||
"Resize panes": "Изменить размер панелей",
|
||
"QR code": "QR-код",
|
||
"Draft discarded": "Черновик удалён",
|
||
"Draft saved": "Черновик сохранён",
|
||
"Emptying folder…": "Папка очищается…",
|
||
"Nothing unread here": "Здесь нет непрочитанного",
|
||
},
|
||
plurals: {
|
||
"Updated {n} contacts, nothing new": { one: "Обновлён {n} контакт, новых нет", few: "Обновлено {n} контакта, новых нет", many: "Обновлено {n} контактов, новых нет", other: "Обновлено {n} контакта, новых нет" },
|
||
"{n} updated": { one: "{n} обновлён", few: "{n} обновлено", many: "{n} обновлено", other: "{n} обновлено" },
|
||
"Updated {n} contacts you already had": { one: "Обновлён контакт, который уже был", few: "Обновлено {n} контакта, которые уже были", many: "Обновлено {n} контактов, которые уже были", other: "Обновлено {n} контакта, которые уже были" },
|
||
"{n} of them look like contacts you already had": { one: "{n} из них похож на контакт, который уже был", few: "{n} из них похожи на контакты, которые уже были", many: "{n} из них похожи на контакты, которые уже были", other: "{n} из них похожи на контакты, которые уже были" },
|
||
"Your administrator changed {n} settings": { one: "Администратор изменил {n} настройку", few: "Администратор изменил {n} настройки", many: "Администратор изменил {n} настроек", other: "Администратор изменил {n} настройки" },
|
||
"Exported {n} events": { one: "Экспортировано {n} событие", few: "Экспортировано {n} события", many: "Экспортировано {n} событий", other: "Экспортировано {n} события" },
|
||
"Imported {n} events": { one: "Импортировано {n} событие", few: "Импортировано {n} события", many: "Импортировано {n} событий", other: "Импортировано {n} события" },
|
||
"Already here: {n} events, nothing imported": { one: "Уже есть: {n} событие, ничего не импортировано", few: "Уже есть: {n} события, ничего не импортировано", many: "Уже есть: {n} событий, ничего не импортировано", other: "Уже есть: {n} события, ничего не импортировано" },
|
||
"{n} were already here": { one: "{n} уже было здесь", few: "{n} уже были здесь", many: "{n} уже были здесь", other: "{n} уже были здесь" },
|
||
/*
|
||
* Three forms, which is the whole reason plural() takes a map rather than
|
||
* (one, other). Intl.PluralRules picks: 1 is `one`, 2-4 are `few`, 5-20
|
||
* and most others are `many`. English needs none of this and would have
|
||
* shipped "1 писем" without it.
|
||
*/
|
||
"{n} messages": { one: "{n} письмо", few: "{n} письма", many: "{n} писем", other: "{n} письма" },
|
||
"{n} conversations": { one: "{n} цепочка", few: "{n} цепочки", many: "{n} цепочек", other: "{n} цепочки" },
|
||
// Impersonal, so the count needs no agreement at all — which is what
|
||
// Russian interfaces actually do here.
|
||
"{n} selected": { one: "Выбрано: {n}", few: "Выбрано: {n}", many: "Выбрано: {n}", other: "Выбрано: {n}" },
|
||
"{n} messages will be permanently deleted.": { one: "{n} письмо будет удалено безвозвратно.", few: "{n} письма будут удалены безвозвратно.", many: "{n} писем будут удалены безвозвратно.", other: "{n} письма будут удалены безвозвратно." },
|
||
"Signed out {n} other sessions": { one: "Завершён {n} другой сеанс", few: "Завершено {n} других сеанса", many: "Завершено {n} других сеансов", other: "Завершено {n} других сеанса" },
|
||
"applied to {matched} of {n} messages": { one: "применён к {matched} из {n} письма", few: "применён к {matched} из {n} писем", many: "применён к {matched} из {n} писем", other: "применён к {matched} из {n} писем" },
|
||
"Move {n} messages to…": { one: "Переместить {n} письмо в…", few: "Переместить {n} письма в…", many: "Переместить {n} писем в…", other: "Переместить {n} письма в…" },
|
||
"This permanently deletes the folder and its {n} messages.": { one: "Папка и {n} письмо в ней будут удалены безвозвратно.", few: "Папка и {n} письма в ней будут удалены безвозвратно.", many: "Папка и {n} писем в ней будут удалены безвозвратно.", other: "Папка и {n} письма в ней будут удалены безвозвратно." },
|
||
"Added {n} contacts": { one: "Добавлен {n} контакт", few: "Добавлено {n} контакта", many: "Добавлено {n} контактов", other: "Добавлено {n} контакта" },
|
||
"{n} people will lose access. The contacts in it are not affected.": { one: "{n} человек потеряет доступ. Контакты внутри не затрагиваются.", few: "{n} человека потеряют доступ. Контакты внутри не затрагиваются.", many: "{n} человек потеряют доступ. Контакты внутри не затрагиваются.", other: "{n} человека потеряют доступ. Контакты внутри не затрагиваются." },
|
||
"Imported {n} contacts": { one: "Импортирован {n} контакт", few: "Импортировано {n} контакта", many: "Импортировано {n} контактов", other: "Импортировано {n} контакта" },
|
||
"Saved for this date. {names} apply to the whole series and were left unchanged.": { one: "Сохранено для этой даты. {names} относится ко всей серии и осталось без изменений.", few: "Сохранено для этой даты. {names} относятся ко всей серии и остались без изменений.", many: "Сохранено для этой даты. {names} относятся ко всей серии и остались без изменений.", other: "Сохранено для этой даты. {names} относятся ко всей серии и остались без изменений." },
|
||
"{n} people will lose access. Events in it are not affected.": { one: "{n} человек потеряет доступ. События внутри не затрагиваются.", few: "{n} человека потеряют доступ. События внутри не затрагиваются.", many: "{n} человек потеряют доступ. События внутри не затрагиваются.", other: "{n} человека потеряют доступ. События внутри не затрагиваются." },
|
||
"{n} messages could not be deleted": { one: "Не удалось удалить {n} письмо", few: "Не удалось удалить {n} письма", many: "Не удалось удалить {n} писем", other: "Не удалось удалить {n} письма" },
|
||
"({n} deleted first)": { one: "(перед этим удалено: {n})", few: "(перед этим удалено: {n})", many: "(перед этим удалено: {n})", other: "(перед этим удалено: {n})" },
|
||
"Marked {n} messages as read": { one: "{n} письмо отмечено как прочитанное", few: "{n} письма отмечены как прочитанные", many: "{n} писем отмечены как прочитанные", other: "{n} письма отмечены как прочитанные" },
|
||
"in {n} folders": { one: "в {n} папке", few: "в {n} папках", many: "в {n} папках", other: "в {n} папках" },
|
||
"Deleted {n} messages": { one: "Удалено {n} письмо", few: "Удалено {n} письма", many: "Удалено {n} писем", other: "Удалено {n} письма" },
|
||
},
|
||
};
|