Merge pull request #156 from Coffey-Labs/i18n-ukrainian
Ukrainian, and not the Russian one with a different name on it
This commit is contained in:
@@ -43,6 +43,7 @@ export const UI_LANGUAGES: readonly UiLanguage[] = [
|
|||||||
{ tag: "nl", name: "Nederlands", beta: true },
|
{ tag: "nl", name: "Nederlands", beta: true },
|
||||||
{ tag: "pt-BR", name: "Português (Brasil)", beta: true },
|
{ tag: "pt-BR", name: "Português (Brasil)", beta: true },
|
||||||
{ tag: "ru", name: "Русский", beta: true },
|
{ tag: "ru", name: "Русский", beta: true },
|
||||||
|
{ tag: "uk", name: "Українська", beta: true },
|
||||||
];
|
];
|
||||||
|
|
||||||
/** Where to report a bad translation. Beta languages depend on it. */
|
/** Where to report a bad translation. Beta languages depend on it. */
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import { describe, expect, it, afterEach } from "vitest";
|
||||||
|
import { plural, setCatalog } from "@/lib/i18n";
|
||||||
|
import { catalog as uk } from "@/locales/uk";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ukrainian needs `few` and `many` where English has one plural, and the rule
|
||||||
|
* is not "n === 1": 11 is `many` despite ending in 1, and 21 is `one` again.
|
||||||
|
* English's two-form assumption would render "5 лист", which is the kind of
|
||||||
|
* wrong that makes a translation read as machine output whatever the
|
||||||
|
* vocabulary is.
|
||||||
|
*/
|
||||||
|
const FORMS = { one: "{n} message", other: "{n} messages" };
|
||||||
|
afterEach(() => setCatalog("en", { strings: {}, plurals: {} }));
|
||||||
|
|
||||||
|
describe("Ukrainian plurals", () => {
|
||||||
|
it("picks one, few and many by the language's own rule", () => {
|
||||||
|
setCatalog("uk", uk);
|
||||||
|
expect(plural(1, FORMS)).toBe("1 лист");
|
||||||
|
expect(plural(2, FORMS)).toBe("2 листи");
|
||||||
|
expect(plural(4, FORMS)).toBe("4 листи");
|
||||||
|
expect(plural(5, FORMS)).toBe("5 листів");
|
||||||
|
expect(plural(11, FORMS)).toBe("11 листів"); // many, despite ending in 1
|
||||||
|
expect(plural(21, FORMS)).toBe("21 лист"); // one again
|
||||||
|
expect(plural(0, FORMS)).toBe("0 листів");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("carries every form for each counted string it ships", () => {
|
||||||
|
// A missing `few` falls back to `other` silently, and is grammatical often
|
||||||
|
// enough to go unnoticed while being wrong the rest of the time.
|
||||||
|
for (const [key, forms] of Object.entries(uk.plurals)) {
|
||||||
|
for (const cat of ["one", "few", "many", "other"] as const) {
|
||||||
|
expect(forms[cat], `${key} is missing "${cat}"`).toBeTruthy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,859 @@
|
|||||||
|
import type { Catalog } from "@/lib/i18n";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ukrainian — generated by AI, and not reviewed by a native speaker.
|
||||||
|
*
|
||||||
|
* 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 ──────────────────────────────
|
||||||
|
*
|
||||||
|
* This is a translation, not a transliteration of the Russian one. The two
|
||||||
|
* languages share a plural structure and a script and almost nothing else
|
||||||
|
* that matters here: «Вхідні» is not «Входящие», «Кошик» is not «Корзина»,
|
||||||
|
* «Листування» is not «Цепочка». Producing Ukrainian by adapting Russian is
|
||||||
|
* the failure mode a Ukrainian reader will spot in the first sentence and
|
||||||
|
* will rightly resent, so the vocabulary was chosen against what Ukrainian
|
||||||
|
* mail clients say rather than against the neighbouring file.
|
||||||
|
*
|
||||||
|
* Register: **ви**, lowercase — the neutral polite address, matching the
|
||||||
|
* decision every other catalogue took. As in Russian, most of the interface
|
||||||
|
* sidesteps it by using the infinitive for actions.
|
||||||
|
*
|
||||||
|
* 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 folder: both are used, and «тека» is the
|
||||||
|
* form Ukrainian software has settled on. «Мітка» for label rather than
|
||||||
|
* Russian's «ярлык», which in Ukrainian means a shortcut.
|
||||||
|
*
|
||||||
|
* Product names are never translated: ihasmail, Stalwart, JMAP, Sieve, vCard.
|
||||||
|
*/
|
||||||
|
export const catalog: Catalog = {
|
||||||
|
strings: {
|
||||||
|
// ── 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 “Show original” for the complete raw message.": "Натисніть «Показати оригінал», щоб побачити лист повністю.",
|
||||||
|
|
||||||
|
// ── Folders, calendar, contacts, files ─────────────────────────────
|
||||||
|
"Folder": "Тека",
|
||||||
|
"Folders": "Теки",
|
||||||
|
"Folder options": "Параметри теки",
|
||||||
|
"New folder": "Нова тека",
|
||||||
|
"New subfolder": "Нова вкладена тека",
|
||||||
|
"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": "Нова подія",
|
||||||
|
"(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": "Експортувати все",
|
||||||
|
"Export book": "Експортувати книгу",
|
||||||
|
"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": "Меню",
|
||||||
|
"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; те, що цій збірці потрібно від сервера, вказано рядком вище.",
|
||||||
|
},
|
||||||
|
plurals: {
|
||||||
|
/*
|
||||||
|
* Ukrainian takes the same three forms as Russian and the same rule, but
|
||||||
|
* not the same words. Sharing a plural structure is not sharing a
|
||||||
|
* language, and a catalogue produced by adapting the Russian one is the
|
||||||
|
* thing a Ukrainian reader would notice first.
|
||||||
|
*/
|
||||||
|
"{n} messages": { one: "{n} лист", few: "{n} листи", many: "{n} листів", other: "{n} листа" },
|
||||||
|
"{n} conversations": { one: "{n} листування", few: "{n} листування", many: "{n} листувань", other: "{n} листування" },
|
||||||
|
"{n} selected": { one: "Вибрано: {n}", few: "Вибрано: {n}", many: "Вибрано: {n}", other: "Вибрано: {n}" },
|
||||||
|
},
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user