22ec13e559
* Adding flexible reminder options to birthdays * Fix database migration merge conflict * Truncate calendar popup descriptions * Log app version on backend startup * Add host-mounted data and backup folders * feat: add housekeeping module * fix: align housekeeping UI and add task creation * refactor: rebuild housekeeping experience * feat: support multiple housekeeping staff * feat: integrate housekeeping visits with calendar * feat: refine housekeeping visits and payments * feat: add housekeeping staff visit logs * feat: add housekeeping receipts and document folders * feat: localize housekeeping folders and chores * feat: refine housekeeping tabs and document folders * fix: sync housekeeping tab active state * feat: use configured app name in onboarding and manifest
1463 lines
72 KiB
JSON
1463 lines
72 KiB
JSON
{
|
||
"common": {
|
||
"save": "Сохранить",
|
||
"cancel": "Отмена",
|
||
"delete": "Удалить",
|
||
"edit": "Редактировать",
|
||
"close": "Закрыть",
|
||
"create": "Создать",
|
||
"add": "Добавить",
|
||
"back": "Назад",
|
||
"next": "Далее",
|
||
"loading": "Загрузка…",
|
||
"saving": "Сохранение…",
|
||
"required": "Это поле обязательно.",
|
||
"error": "Ошибка",
|
||
"allFieldsRequired": "Пожалуйста, заполните все поля.",
|
||
"today": "Сегодня",
|
||
"tomorrow": "Завтра",
|
||
"skipToContent": "Перейти к содержимому",
|
||
"reload": "Обновить",
|
||
"errorOccurred": "Что-то пошло не так.",
|
||
"unexpectedError": "Произошла непредвиденная ошибка.",
|
||
"errorGeneric": "Произошла ошибка.",
|
||
"updateAvailable": "Доступно обновление — перезагрузите страницу для получения последней версии.",
|
||
"titleRequired": "Заголовок обязателен",
|
||
"nameRequired": "Имя обязательно",
|
||
"contentRequired": "Содержимое обязательно",
|
||
"all": "Все",
|
||
"unknownError": "Неизвестная ошибка",
|
||
"confirm": "Подтвердить",
|
||
"undo": "Отменить",
|
||
"reset": "Сбросить к исходному",
|
||
"errorOffline": "Нет подключения к интернету. Проверьте сеть.",
|
||
"errorForbidden": "Доступ запрещён. Пожалуйста, войдите снова.",
|
||
"errorNotFound": "Запись не найдена.",
|
||
"errorServer": "Ошибка сервера. Повторите попытку позже.",
|
||
"errorTimeout": "Соединение заняло слишком много времени. Попробуйте снова."
|
||
},
|
||
"nav": {
|
||
"dashboard": "Обзор",
|
||
"tasks": "Задачи",
|
||
"calendar": "Календарь",
|
||
"meals": "Питание",
|
||
"shopping": "Покупки",
|
||
"notes": "Заметки",
|
||
"contacts": "Контакты",
|
||
"birthdays": "Дни рождения",
|
||
"budget": "Бюджет",
|
||
"settings": "Настройки",
|
||
"main": "Главная навигация",
|
||
"navigation": "Навигация",
|
||
"quickActions": "Быстрые действия",
|
||
"recipes": "Рецепты",
|
||
"more": "Ещё",
|
||
"documents": "Документы",
|
||
"kitchen": "Кухня",
|
||
"search": "Поиск",
|
||
"housekeeping": "Housekeeping"
|
||
},
|
||
"dashboard": {
|
||
"title": "Обзор",
|
||
"greetingMorning": "Доброе утро, {{name}}",
|
||
"greetingDay": "Добрый день, {{name}}",
|
||
"greetingEvening": "Добрый вечер, {{name}}",
|
||
"allDone": "Всё готово",
|
||
"noEvents": "Нет событий",
|
||
"noPinnedNotes": "Нет закреплённых заметок",
|
||
"todayMeals": "Питание сегодня",
|
||
"allLink": "Все",
|
||
"weekLink": "Неделя",
|
||
"urgentTasksChip": "{{count}} задача скоро истекает",
|
||
"urgentTasksChipPlural": "{{count}} задач скоро истекает",
|
||
"eventsChip": "{{count}} событие сегодня",
|
||
"eventsChipPlural": "{{count}} событий сегодня",
|
||
"todayMealChip": "Сегодня: {{title}}",
|
||
"loadError": "Не удалось полностью загрузить панель управления.",
|
||
"weatherRefresh": "Обновить погоду",
|
||
"weatherRefreshTitle": "Обновить",
|
||
"weatherUpdated": "Погода обновлена",
|
||
"weatherFeelsLike": "Ощущается как {{temp}}° · {{humidity}}% · Ветер {{wind}} {{windUnit}}",
|
||
"fabTaskLabel": "Добавить задачу",
|
||
"fabCalendarLabel": "Добавить событие",
|
||
"fabShoppingLabel": "Добавить покупку",
|
||
"fabNoteLabel": "Добавить заметку",
|
||
"fabTask": "Задача",
|
||
"fabCalendar": "Событие",
|
||
"fabShopping": "Покупка",
|
||
"fabNote": "Заметка",
|
||
"overdue": "Просрочено",
|
||
"dueSoon": "Сегодня",
|
||
"dueToday": "Сегодня",
|
||
"dueTomorrow": "Завтра",
|
||
"allDay": "Весь день",
|
||
"shoppingMore": "+{{count}} ещё",
|
||
"weather": "Погода",
|
||
"familyMembers": "Члены семьи",
|
||
"participantsAdded": "участников добавлено",
|
||
"upcomingBirthdays": "Ближайшие дни рождения",
|
||
"noBirthdays": "Дней рождения пока нет",
|
||
"daysLeft": "{{count}} дн.",
|
||
"budgetOverview": "Обзор бюджета",
|
||
"monthlyIncome": "Доходы",
|
||
"monthlyExpenses": "Расходы",
|
||
"monthlyBalance": "Баланс",
|
||
"savingsRate": "Норма сбережений",
|
||
"topExpense": "Крупнейший расход",
|
||
"budgetEntries": "Записи",
|
||
"noBudgetData": "Нет данных бюджета за этот месяц.",
|
||
"customize": "Настроить",
|
||
"customizeTitle": "Настроить виджеты",
|
||
"customizeReset": "Сбросить",
|
||
"customizeSaved": "Панель сохранена",
|
||
"customizeMoveUp": "Вверх",
|
||
"customizeMoveDown": "Вниз",
|
||
"overdueTasksChip": "{{count}} просроченная задача",
|
||
"overdueTasksChipPlural": "{{count}} просроченных задач",
|
||
"customizeManage": "Виджеты",
|
||
"customizeExit": "Выйти из настройки",
|
||
"customizeDrag": "Перетащить виджет",
|
||
"customizeSize": "Размер",
|
||
"customizeSizeFor": "Размер для {{widget}}",
|
||
"customizeHide": "Скрыть {{widget}}",
|
||
"widgetSizeTiny": "Маленький (1×1)",
|
||
"widgetSizeNarrow": "Узкий (2×1)",
|
||
"widgetSizeStandard": "Стандартный (2×2)",
|
||
"widgetSizeLarge": "Большой (3×2)",
|
||
"widgetSizeFull": "Полный (4×2)"
|
||
},
|
||
"tasks": {
|
||
"title": "Задачи",
|
||
"newTask": "Новая задача",
|
||
"editTask": "Редактировать задачу",
|
||
"emptyTitle": "Нет задач — всё готово?",
|
||
"emptyDescription": "Создайте новые задачи с помощью кнопки +.",
|
||
"titleLabel": "Заголовок *",
|
||
"titlePlaceholder": "Что нужно сделать?",
|
||
"descriptionLabel": "Заметка",
|
||
"descriptionPlaceholder": "Дополнительные сведения…",
|
||
"priorityLabel": "Приоритет",
|
||
"categoryLabel": "Категория",
|
||
"dueDateLabel": "Срок выполнения",
|
||
"dueTimeLabel": "Время",
|
||
"assignedLabel": "Назначено",
|
||
"assignedNobody": "- Никому -",
|
||
"statusLabel": "Статус",
|
||
"priorityUrgent": "Срочно",
|
||
"priorityHigh": "Высокий",
|
||
"priorityMedium": "Средний",
|
||
"priorityLow": "Низкий",
|
||
"priorityNone": "Нет",
|
||
"statusOpen": "Открыто",
|
||
"statusInProgress": "В процессе",
|
||
"statusDone": "Выполнено",
|
||
"categoryHousehold": "Домашнее хозяйство",
|
||
"categorySchool": "Школа",
|
||
"categoryShopping": "Покупки",
|
||
"categoryRepair": "Ремонт",
|
||
"categoryHealth": "Здоровье",
|
||
"categoryFinance": "Финансы",
|
||
"categoryLeisure": "Досуг",
|
||
"categoryMisc": "Разное",
|
||
"overdue": "Просрочено",
|
||
"overdueDay": "Просрочено на {{count}}д",
|
||
"dueToday": "Срок сегодня",
|
||
"dueTomorrow": "Срок завтра",
|
||
"groupOverdue": "Просрочено",
|
||
"groupToday": "Сегодня",
|
||
"groupThisWeek": "На этой неделе",
|
||
"groupNextWeek": "На следующей неделе",
|
||
"groupLater": "Позже",
|
||
"groupNoDate": "Без даты",
|
||
"markDone": "Отметить {{title}} как выполненное",
|
||
"markOpen": "Отметить {{title}} как открытое",
|
||
"editButton": "Редактировать задачу",
|
||
"swipeOpen": "Открыть снова",
|
||
"swipeDone": "Выполнено",
|
||
"swipeEdit": "Редактировать",
|
||
"subtaskAdd": "+ Добавить подзадачу",
|
||
"subtaskToggle": "Показать подзадачи",
|
||
"subtaskMarkDone": "Отметить {{title}} как выполненное",
|
||
"deleteConfirm": "Удалить задачу и все подзадачи?",
|
||
"savedToast": "Задача сохранена.",
|
||
"createdToast": "Задача создана.",
|
||
"deletedToast": "Задача удалена.",
|
||
"loadError": "Не удалось загрузить задачу.",
|
||
"subtaskPrompt": "Подзадача:",
|
||
"kanbanOpen": "Открыто",
|
||
"kanbanInProgress": "В процессе",
|
||
"kanbanDone": "Выполнено",
|
||
"kanbanMoveToInProgress": "Перевести в работу",
|
||
"kanbanMoveToDone": "Отметить как выполненное",
|
||
"kanbanMoveToOpen": "Открыть снова",
|
||
"recurring": "Повторяющееся",
|
||
"listView": "Список",
|
||
"kanbanView": "Канбан",
|
||
"filterBtn": "Фильтр",
|
||
"filterClearAll": "Сбросить все фильтры",
|
||
"filterGroupPerson": "Человек",
|
||
"filterGroupPriority": "Приоритет",
|
||
"filterGroupStatus": "Статус",
|
||
"swipedDoneToast": "Отмечено как выполненное.",
|
||
"swipedOpenToast": "Отмечено как открытое.",
|
||
"statusArchived": "Архивирована",
|
||
"archiveButton": "Архивировать задачу",
|
||
"archivedToast": "Задача архивирована.",
|
||
"kanbanArchived": "Архивировано",
|
||
"reminderNeedsDueDate": "Установите срок выполнения, чтобы включить напоминания о задаче.",
|
||
"emptyAction": "Создать задачу",
|
||
"navLabelOverdue": "Задачи, {{count}} просрочено",
|
||
"bulkArchive": "Archive",
|
||
"bulkArchived": "Tasks archived.",
|
||
"bulkDelete": "Delete",
|
||
"bulkDeleteConfirm": "Delete {{count}} tasks permanently?",
|
||
"bulkDeleted": "Tasks deleted.",
|
||
"bulkMarkDone": "Mark done",
|
||
"bulkMarkOpen": "Mark open",
|
||
"bulkSelect": "Bulk select",
|
||
"bulkSelectedCount": "{{count}} selected",
|
||
"bulkStatusChanged": "Status changed.",
|
||
"selectTask": "Select task"
|
||
},
|
||
"shopping": {
|
||
"title": "Покупки",
|
||
"noLists": "Нет списков",
|
||
"noListsDescription": "Создайте список с помощью кнопки +.",
|
||
"emptyList": "Список пуст",
|
||
"emptyListDescription": "Добавьте товары через поле ввода выше.",
|
||
"newListPrompt": "Название нового списка:",
|
||
"newListButton": "Создать новый список",
|
||
"renameListPrompt": "Новое название списка:",
|
||
"deleteListConfirm": "Удалить список «{{name}}» и все товары?",
|
||
"deletedListToast": "Список удалён.",
|
||
"itemDeletedToast": "«{{name}}» удалено.",
|
||
"itemsRemovedToast": "{{count}} товаров удалено.",
|
||
"clearChecked": "Удалить отмеченные ({{count}})",
|
||
"itemNamePlaceholder": "Добавить товар…",
|
||
"itemQtyPlaceholder": "Количество",
|
||
"itemNameLabel": "Название товара",
|
||
"itemQtyLabel": "Количество",
|
||
"categoryLabel": "Категория",
|
||
"addItemLabel": "Добавить товар",
|
||
"renameListLabel": "Переименовать список",
|
||
"deleteListLabel": "Удалить список",
|
||
"swipeBack": "Отменить",
|
||
"swipeCheck": "Отметить",
|
||
"swipeDelete": "Удалить",
|
||
"markDoneLabel": "Отметить {{name}}",
|
||
"markUndoneLabel": "Снять отметку с {{name}}",
|
||
"deleteItemLabel": "Удалить {{name}}",
|
||
"listsLoadError": "Не удалось загрузить списки.",
|
||
"itemsLoadError": "Не удалось загрузить товары.",
|
||
"catFruitVeg": "Фрукты и овощи",
|
||
"catBakery": "Выпечка",
|
||
"catDairy": "Молочные продукты",
|
||
"catMeatFish": "Мясо и рыба",
|
||
"catFrozen": "Заморозка",
|
||
"catDrinks": "Напитки",
|
||
"catHousehold": "Хозтовары",
|
||
"catDrugstore": "Аптека",
|
||
"catMisc": "Разное",
|
||
"emptyAction": "Добавить товар"
|
||
},
|
||
"meals": {
|
||
"title": "План питания",
|
||
"noMealPlanned": "Питание не запланировано",
|
||
"addMeal": "Добавить {{type}}",
|
||
"editMeal": "Редактировать приём пищи",
|
||
"addMealTitle": "Добавить приём пищи",
|
||
"deleteMeal": "Удалить приём пищи",
|
||
"transferToShoppingList": "Добавить ингредиенты в список покупок",
|
||
"today": "Сегодня",
|
||
"prevWeek": "Предыдущая неделя",
|
||
"nextWeek": "Следующая неделя",
|
||
"loadError": "Не удалось загрузить план питания.",
|
||
"typeBreakfast": "Завтрак",
|
||
"typeLunch": "Обед",
|
||
"typeDinner": "Ужин",
|
||
"typeSnack": "Перекус",
|
||
"dayMo": "Пн",
|
||
"dayDi": "Вт",
|
||
"dayMi": "Ср",
|
||
"dayDo": "Чт",
|
||
"dayFr": "Пт",
|
||
"daySa": "Сб",
|
||
"daySo": "Вс",
|
||
"dateLabel": "Дата",
|
||
"mealTypeLabel": "Приём пищи",
|
||
"titleLabel": "Название *",
|
||
"titlePlaceholder": "напр. Борщ",
|
||
"notesLabel": "Заметки",
|
||
"notesPlaceholder": "Необязательно…",
|
||
"ingredientsLabel": "Ингредиенты",
|
||
"addIngredient": "Добавить ингредиент",
|
||
"ingredientNamePlaceholder": "Ингредиент",
|
||
"ingredientQtyPlaceholder": "Количество",
|
||
"ingredientCategoryLabel": "Категория",
|
||
"ingredientCategoryDefault": "Разное",
|
||
"removeIngredient": "Удалить ингредиент",
|
||
"transferLabel": "Перенести ингредиенты в список покупок",
|
||
"transferNow": "Перенести сейчас",
|
||
"noShoppingLists": "Нет списков покупок",
|
||
"transferSuccess": "{{count}} ингредиент перенесён",
|
||
"transferSuccessPlural": "{{count}} ингредиентов перенесено",
|
||
"transferAlreadyDone": "Все ингредиенты уже перенесены",
|
||
"ingredientCount": "{{count}} ингредиент",
|
||
"ingredientCountPlural": "{{count}} ингредиентов",
|
||
"titleRequired": "Название обязательно",
|
||
"loadingIndicator": "Загрузка…",
|
||
"recipeUrlLabel": "Ссылка на рецепт (необязательно)",
|
||
"recipeUrlPlaceholder": "https://…",
|
||
"openRecipe": "Открыть рецепт",
|
||
"savedRecipeLabel": "Saved recipe",
|
||
"savedRecipePlaceholder": "Select recipe",
|
||
"saveAsRecipe": "Save as recipe",
|
||
"recipeScaleLabel": "Scale ingredients",
|
||
"deletedToast": "Meal deleted"
|
||
},
|
||
"calendar": {
|
||
"title": "Календарь",
|
||
"newEvent": "Новое событие",
|
||
"editEvent": "Редактировать событие",
|
||
"addEvent": "Добавить событие",
|
||
"deleteEvent": "Удалить событие",
|
||
"noEvents": "Нет событий в выбранном периоде.",
|
||
"today": "Сегодня",
|
||
"back": "Назад",
|
||
"forward": "Вперёд",
|
||
"viewMonth": "Месяц",
|
||
"viewWeek": "Неделя",
|
||
"viewDay": "День",
|
||
"viewAgenda": "Повестка",
|
||
"allDay": "Весь день",
|
||
"allDayShort": "весь день",
|
||
"moreEvents": "+{{count}} ещё",
|
||
"weekNumberLabel": "Н{{week}} · {{month}} {{year}}",
|
||
"agendaFrom": "С {{date}}",
|
||
"titleLabel": "Заголовок *",
|
||
"titlePlaceholder": "напр. Врач",
|
||
"allDayToggle": "Весь день",
|
||
"startDateLabel": "Дата начала",
|
||
"startTimeLabel": "Время начала",
|
||
"endDateLabel": "Дата окончания",
|
||
"endTimeLabel": "Время окончания",
|
||
"fromLabel": "С",
|
||
"toLabel": "По",
|
||
"locationLabel": "Место",
|
||
"locationPlaceholder": "Необязательно",
|
||
"assignedLabel": "Назначено",
|
||
"assignedNobody": "- Никому -",
|
||
"colorLabel": "Цвет {{color}}",
|
||
"descriptionLabel": "Описание",
|
||
"descriptionPlaceholder": "Необязательно…",
|
||
"popupEdit": "Редактировать",
|
||
"deleteConfirm": "Удалить «{{title}}»?",
|
||
"createdToast": "Событие создано",
|
||
"savedToast": "Событие сохранено",
|
||
"deletedToast": "Событие удалено",
|
||
"loadError": "Не удалось загрузить события.",
|
||
"saveError": "Ошибка сохранения",
|
||
"deleteError": "Ошибка удаления",
|
||
"titleRequired": "Заголовок обязателен",
|
||
"monthJanuary": "Январь",
|
||
"monthFebruary": "Февраль",
|
||
"monthMarch": "Март",
|
||
"monthApril": "Апрель",
|
||
"monthMay": "Май",
|
||
"monthJune": "Июнь",
|
||
"monthJuly": "Июль",
|
||
"monthAugust": "Август",
|
||
"monthSeptember": "Сентябрь",
|
||
"monthOctober": "Октябрь",
|
||
"monthNovember": "Ноябрь",
|
||
"monthDecember": "Декабрь",
|
||
"dayShortSunday": "Вс",
|
||
"dayShortMonday": "Пн",
|
||
"dayShortTuesday": "Вт",
|
||
"dayShortWednesday": "Ср",
|
||
"dayShortThursday": "Чт",
|
||
"dayShortFriday": "Пт",
|
||
"dayShortSaturday": "Сб",
|
||
"dayLongSunday": "Воскресенье",
|
||
"dayLongMonday": "Понедельник",
|
||
"dayLongTuesday": "Вторник",
|
||
"dayLongWednesday": "Среда",
|
||
"dayLongThursday": "Четверг",
|
||
"dayLongFriday": "Пятница",
|
||
"dayLongSaturday": "Суббота",
|
||
"timeSuffix": "",
|
||
"ics": {
|
||
"reset": "Сбросить к исходному",
|
||
"resetToast": "Изменения сброшены."
|
||
},
|
||
"iconLabel": "Icon",
|
||
"iconSearchPlaceholder": "Поиск иконки...",
|
||
"iconSearchEmpty": "Иконка не найдена.",
|
||
"iconCategoryGeneral": "Общее",
|
||
"iconCategoryHealth": "Здоровье и спорт",
|
||
"iconCategoryTransport": "Транспорт и путешествия",
|
||
"iconCategoryWork": "Работа и образование",
|
||
"iconCategoryFood": "Еда и напитки",
|
||
"iconCategoryShopping": "Покупки и финансы",
|
||
"iconCategoryLeisure": "Досуг и развлечения",
|
||
"iconCategoryFamily": "Семья и питомцы",
|
||
"iconCategoryHome": "Дом и хозяйство",
|
||
"iconCategoryNature": "Природа и прочее",
|
||
"iconCalendar": "Календарь",
|
||
"iconAlarm": "Будильник",
|
||
"iconClock": "Часы",
|
||
"iconBell": "Напоминание",
|
||
"iconLocation": "Место",
|
||
"iconStar": "Избранное",
|
||
"iconFlag": "Флаг",
|
||
"iconTarget": "Цель",
|
||
"iconFlame": "Важно",
|
||
"iconTooth": "Стоматолог",
|
||
"iconHospital": "Больница",
|
||
"iconDoctor": "Врач",
|
||
"iconVaccine": "Прививка",
|
||
"iconMedicine": "Лекарство",
|
||
"iconBandage": "Перевязка",
|
||
"iconHealth": "Здоровье",
|
||
"iconActivity": "Активность",
|
||
"iconHaircut": "Парикмахерская",
|
||
"iconSports": "Спорт",
|
||
"iconTrophy": "Соревнование",
|
||
"iconCar": "Автомобиль",
|
||
"iconBus": "Автобус",
|
||
"iconTrain": "Поезд",
|
||
"iconPlane": "Путешествие",
|
||
"iconFlight": "Рейс",
|
||
"iconFuel": "Заправка",
|
||
"iconNavigation": "Навигация",
|
||
"iconWork": "Работа",
|
||
"iconLaptop": "Ноутбук",
|
||
"iconPresentation": "Презентация",
|
||
"iconSchool": "Школа",
|
||
"iconEducation": "Образование",
|
||
"iconReading": "Чтение",
|
||
"iconStudy": "Учёба",
|
||
"iconCalculator": "Калькулятор",
|
||
"iconMeal": "Приём пищи",
|
||
"iconCooking": "Готовка",
|
||
"iconCoffee": "Кофе",
|
||
"iconCake": "День рождения",
|
||
"iconPizza": "Пицца",
|
||
"iconWine": "Вино",
|
||
"iconBeer": "Бар",
|
||
"iconShopping": "Покупки",
|
||
"iconGroceries": "Продукты",
|
||
"iconGift": "Подарок",
|
||
"iconCard": "Карта",
|
||
"iconWallet": "Кошелёк",
|
||
"iconSavings": "Сбережения",
|
||
"iconBank": "Банк",
|
||
"iconMusic": "Музыка",
|
||
"iconMovie": "Фильм",
|
||
"iconTicket": "Билет",
|
||
"iconGame": "Игра",
|
||
"iconPhoto": "Фото",
|
||
"iconParty": "Вечеринка",
|
||
"iconFamily": "Семья",
|
||
"iconBaby": "Ребёнок",
|
||
"iconDog": "Собака",
|
||
"iconCat": "Кошка",
|
||
"iconPet": "Питомец",
|
||
"iconHome": "Дом",
|
||
"iconBuilding": "Здание",
|
||
"iconRepair": "Ремонт",
|
||
"iconMaintenance": "Обслуживание",
|
||
"iconDecoration": "Декор",
|
||
"iconFurniture": "Мебель",
|
||
"iconLaundry": "Стирка",
|
||
"iconLeaf": "Природа",
|
||
"iconTree": "Дерево",
|
||
"iconFlower": "Цветок",
|
||
"iconSun": "День",
|
||
"iconMoon": "Ночь",
|
||
"iconWeather": "Погода",
|
||
"invalidDate": "Use a valid date in the selected date format.",
|
||
"attachmentLabel": "Attachment",
|
||
"attachmentHint": "Attach a local image, PDF, or document. Images will be shown in the event popup.",
|
||
"attachmentFallback": "Attachment",
|
||
"attachmentReadError": "The attachment could not be read.",
|
||
"attachmentTooLarge": "Attachment may be at most 5 MB.",
|
||
"colorBlue": "Синий",
|
||
"colorCoral": "Коралловый",
|
||
"colorCyan": "Голубой",
|
||
"colorGray": "Серый",
|
||
"colorGreen": "Зелёный",
|
||
"colorOrange": "Оранжевый",
|
||
"colorPurple": "Фиолетовый",
|
||
"colorRed": "Красный",
|
||
"colorSkyBlue": "Небесно-голубой",
|
||
"colorYellow": "Жёлтый",
|
||
"iconCleaning": "Cleaning",
|
||
"caldavTargetHint": "Choose a CalDAV calendar to sync this event.",
|
||
"caldavTargetLabel": "Sync to CalDAV",
|
||
"caldavTargetLocal": "Store locally only",
|
||
"attachmentDocumentName": "{{title}} - {{name}}",
|
||
"attachmentDocumentDescription": "Вложение загружено для события календаря «{{title}}»."
|
||
},
|
||
"notes": {
|
||
"title": "Заметки",
|
||
"newNote": "Новая заметка",
|
||
"editNote": "Редактировать заметку",
|
||
"addNoteLabel": "Новая заметка",
|
||
"searchPlaceholder": "Поиск по заметкам…",
|
||
"emptyTitle": "Нет заметок",
|
||
"emptyDescription": "Создайте новую заметку с помощью кнопки +.",
|
||
"noResultsTitle": "Нет результатов",
|
||
"noResultsDescription": "Ни одна заметка не содержит «{{query}}».",
|
||
"titleLabel": "Заголовок (необязательно)",
|
||
"titlePlaceholder": "Без заголовка",
|
||
"contentLabel": "Содержимое",
|
||
"contentMarkdownHint": "(Поддерживается Markdown-форматирование)",
|
||
"contentPlaceholder": "Введите заметку…",
|
||
"colorLabel": "Цвет",
|
||
"pinnedLabel": "Закрепить (отображается на панели)",
|
||
"pinAction": "Закрепить",
|
||
"unpinAction": "Открепить",
|
||
"deleteLabel": "Удалить заметку",
|
||
"deleteConfirm": "Удалить эту заметку?",
|
||
"createdToast": "Заметка создана",
|
||
"savedToast": "Заметка сохранена",
|
||
"deletedToast": "Заметка удалена",
|
||
"loadError": "Не удалось загрузить заметки.",
|
||
"formatBold": "Жирный (Ctrl+B)",
|
||
"formatItalic": "Курсив (Ctrl+I)",
|
||
"formatUnderline": "Подчёркнутый (Ctrl+U)",
|
||
"formatStrikethrough": "Зачёркнутый",
|
||
"formatHeading": "Заголовок",
|
||
"formatList": "Маркированный список",
|
||
"formatOrderedList": "Нумерованный список",
|
||
"formatChecklist": "Список задач",
|
||
"formatLink": "Ссылка",
|
||
"formatCode": "Код",
|
||
"formatQuote": "Цитата",
|
||
"formatDivider": "Разделитель",
|
||
"emptyAction": "Создать заметку",
|
||
"colorAmber": "Янтарный",
|
||
"colorBlue": "Синий",
|
||
"colorGreen": "Зелёный",
|
||
"colorOrange": "Оранжевый",
|
||
"colorPurple": "Фиолетовый",
|
||
"colorTeal": "Бирюзовый",
|
||
"colorWhite": "Белый",
|
||
"colorYellow": "Жёлтый"
|
||
},
|
||
"contacts": {
|
||
"title": "Контакты",
|
||
"newContact": "Новый контакт",
|
||
"editContact": "Редактировать контакт",
|
||
"addButton": "Новый",
|
||
"newContactLabel": "Новый контакт",
|
||
"searchPlaceholder": "Поиск по имени, телефону или email…",
|
||
"importButton": "Импорт",
|
||
"importLabel": "Импортировать контакт из vCard",
|
||
"importTooltip": "Импортировать vCard",
|
||
"emptyTitle": "Нет контактов",
|
||
"emptyDescription": "Добавьте новые контакты с помощью кнопки +.",
|
||
"filterAll": "Все",
|
||
"nameLabel": "Имя *",
|
||
"namePlaceholder": "Полное имя",
|
||
"categoryLabel": "Категория",
|
||
"phoneLabel": "Телефон",
|
||
"phonePlaceholder": "+7 …",
|
||
"emailLabel": "Email",
|
||
"emailPlaceholder": "имя@пример.ру",
|
||
"addressLabel": "Адрес",
|
||
"addressPlaceholder": "Улица, индекс Город",
|
||
"notesLabel": "Заметки",
|
||
"notesPlaceholder": "Необязательно…",
|
||
"callLabel": "Позвонить",
|
||
"emailActionLabel": "Email",
|
||
"mapsLabel": "Открыть в Картах",
|
||
"exportLabel": "Экспортировать в vCard",
|
||
"exportTooltip": "Экспорт vCard",
|
||
"deleteLabel": "Удалить контакт",
|
||
"deleteConfirm": "Удалить этот контакт?",
|
||
"deletePersonConfirm": "Удалить «{{name}}»?",
|
||
"savedToast": "Контакт сохранён",
|
||
"updatedToast": "Контакт обновлён",
|
||
"deletedToast": "Контакт удалён",
|
||
"importedToast": "{{name}} импортирован.",
|
||
"importError": "Ошибка импорта: {{error}}",
|
||
"vcardNoName": "В vCard нет имени.",
|
||
"catDoctor": "Врач",
|
||
"catSchool": "Школа/Детсад",
|
||
"catAuthority": "Гос. орган",
|
||
"catInsurance": "Страховая",
|
||
"catCraftsman": "Мастер",
|
||
"catEmergency": "Экстренная помощь",
|
||
"catMisc": "Разное",
|
||
"categoryDoctor": "Врач",
|
||
"categorySchool": "Школа/Детсад",
|
||
"categoryAuthority": "Гос. орган",
|
||
"categoryInsurance": "Страховая",
|
||
"categoryCraftsman": "Мастер",
|
||
"categoryEmergency": "Экстренная помощь",
|
||
"categoryOther": "Другое",
|
||
"emptyAction": "Добавить контакт"
|
||
},
|
||
"budget": {
|
||
"title": "Бюджет",
|
||
"newEntry": "Новая запись",
|
||
"editEntry": "Редактировать запись",
|
||
"addEntryLabel": "Добавить запись",
|
||
"newEntryFabLabel": "Новая запись",
|
||
"currentMonth": "Текущий",
|
||
"prevMonth": "Предыдущий месяц",
|
||
"nextMonth": "Следующий месяц",
|
||
"income": "Доходы",
|
||
"expenses": "Расходы",
|
||
"balance": "Баланс",
|
||
"byCategory": "По категориям",
|
||
"transactions": "Транзакции",
|
||
"emptyTitle": "Нет записей за этот месяц",
|
||
"emptyDescription": "Добавьте записи бюджета с помощью кнопки +.",
|
||
"csvExport": "CSV",
|
||
"typeExpense": "Расход",
|
||
"typeIncome": "Доход",
|
||
"titleLabel": "Заголовок *",
|
||
"titlePlaceholder": "напр. Продукты",
|
||
"amountLabel": "Сумма *",
|
||
"amountPlaceholder": "0,00",
|
||
"categoryLabel": "Категория",
|
||
"dateLabel": "Дата *",
|
||
"recurringLabel": "Повторяющееся",
|
||
"deleteLabel": "Удалить запись",
|
||
"deleteConfirm": "Удалить эту запись?",
|
||
"deletePersonConfirm": "Удалить «{{title}}»?",
|
||
"addedToast": "Запись добавлена",
|
||
"savedToast": "Запись сохранена",
|
||
"deletedToast": "Запись удалена",
|
||
"loadError": "Не удалось загрузить бюджет.",
|
||
"trendNeutral": "— как в {{month}}",
|
||
"validAmountRequired": "Введите корректную сумму",
|
||
"dateRequired": "Дата обязательна",
|
||
"catFood": "Продукты",
|
||
"catRent": "Аренда",
|
||
"catInsurance": "Страховка",
|
||
"catMobility": "Транспорт",
|
||
"catLeisure": "Досуг",
|
||
"catClothing": "Одежда",
|
||
"catHealth": "Здоровье",
|
||
"catEducation": "Образование",
|
||
"catMisc": "Разное",
|
||
"catEarnedIncome": "Трудовой доход",
|
||
"catInvestmentIncome": "Инвестиционный доход",
|
||
"catTransferGiftIncome": "Переводы и подарки",
|
||
"catGovernmentBenefits": "Социальные пособия",
|
||
"catOtherIncome": "Прочие доходы",
|
||
"loadingIndicator": "Загрузка…",
|
||
"subcategoryLabel": "Subcategory",
|
||
"catHousing": "Housing / Home",
|
||
"catTransport": "Transport",
|
||
"catPersonalHealth": "Personal Care / Health",
|
||
"catShoppingClothing": "Shopping and Clothing",
|
||
"catFinancialOther": "Financial Services and Other",
|
||
"subcatRentMortgage": "Rent / Mortgage",
|
||
"subcatCondominium": "Condominium fees",
|
||
"subcatUtilities": "Electricity / Water / Gas",
|
||
"subcatInternetTvPhone": "Internet / TV / Phone",
|
||
"subcatRenovationMaintenance": "Renovation / Maintenance",
|
||
"subcatCleaning": "Cleaning",
|
||
"subcatGroceries": "Groceries",
|
||
"subcatRestaurantsBars": "Restaurants / Bars",
|
||
"subcatSnacksFastFood": "Snacks / Fast Food",
|
||
"subcatBakery": "Bakery",
|
||
"subcatFuel": "Fuel",
|
||
"subcatParkingTolls": "Parking / Tolls",
|
||
"subcatPublicTransport": "Public transport",
|
||
"subcatAppsTaxi": "Apps / Taxi",
|
||
"subcatMaintenanceInsurance": "Maintenance / Insurance",
|
||
"subcatPharmacy": "Pharmacy",
|
||
"subcatHealthInsurance": "Health insurance",
|
||
"subcatGymSports": "Gym / Sports",
|
||
"subcatBeautyCosmetics": "Beauty / Cosmetics",
|
||
"subcatTravel": "Travel",
|
||
"subcatStreaming": "Streaming",
|
||
"subcatEvents": "Events",
|
||
"subcatHobbies": "Hobbies",
|
||
"subcatClothesShoes": "Clothes / Shoes",
|
||
"subcatElectronics": "Electronics",
|
||
"subcatGifts": "Gifts",
|
||
"subcatCoursesCollege": "Courses / College",
|
||
"subcatSchoolSupplies": "School supplies",
|
||
"subcatLanguages": "Languages",
|
||
"subcatLoansInterest": "Займы / Проценты",
|
||
"subcatBankFees": "Bank fees",
|
||
"subcatInsuranceOther": "Insurance",
|
||
"subcatInvestments": "Investments",
|
||
"subcatTaxes": "Taxes",
|
||
"metaLoadError": "Budget categories could not be loaded.",
|
||
"addCategory": "+ category",
|
||
"addSubcategory": "+ subcategory",
|
||
"newCategoryPrompt": "Name of the new category:",
|
||
"newSubcategoryPrompt": "Name of the new subcategory:",
|
||
"categoryAddedToast": "Category added.",
|
||
"subcategoryAddedToast": "Subcategory added.",
|
||
"emptyAction": "Добавить запись",
|
||
"loansTitle": "Займы",
|
||
"loansSummary": "{{count}} активных · осталось {{amount}}",
|
||
"newLoan": "Новый займ",
|
||
"createLoan": "Создать займ",
|
||
"editLoan": "Изменить займ",
|
||
"deleteLoan": "Удалить займ",
|
||
"deleteLoanConfirm": "Удалить займ «{{title}}»? Платежи, уже добавленные в бюджет, тоже будут удалены.",
|
||
"deleteLoanPaymentConfirm": "Удалить этот платеж по займу?",
|
||
"loanRemainingAmount": "Осталось",
|
||
"loanRemainingInstallments": "Осталось платежей",
|
||
"loanPaidAmount": "Оплачено",
|
||
"loansEmpty": "Нет активных займов.",
|
||
"loanInstallmentMeta": "Оплачено {{paid}} из {{total}} платежей",
|
||
"loanRemainingOf": "из {{total}}",
|
||
"loanNextDue": "Следующий: {{month}}",
|
||
"loanPaidStatus": "Оплачено",
|
||
"markLoanPaid": "Отметить оплату",
|
||
"loanBorrowerLabel": "Человек *",
|
||
"loanBorrowerPlaceholder": "Напр. Lais",
|
||
"loanTitleLabel": "Название займа",
|
||
"loanTitlePlaceholder": "Напр. Личный займ",
|
||
"loanAmountLabel": "Общая сумма *",
|
||
"loanInstallmentsLabel": "Платежи *",
|
||
"loanStartMonthLabel": "Первый месяц оплаты *",
|
||
"loanNotesLabel": "Заметки",
|
||
"loanBorrowerRequired": "Укажите человека",
|
||
"loanInstallmentsRequired": "Укажите количество платежей",
|
||
"loanStartMonthRequired": "Укажите первый месяц оплаты",
|
||
"loanAddedToast": "Займ добавлен",
|
||
"loanSavedToast": "Займ сохранён",
|
||
"loanDeletedToast": "Займ удалён",
|
||
"loanPaymentAddedToast": "Платёж записан",
|
||
"loanPaymentTitle": "Платеж по займу: {{borrower}}",
|
||
"typeLoan": "Займ",
|
||
"tabsLabel": "Разделы бюджета",
|
||
"budgetTab": "Бюджет",
|
||
"loansTab": "Займы",
|
||
"filteredTransactions": "Отфильтрованные операции",
|
||
"clearLoanFilter": "Сбросить фильтр",
|
||
"loanFilterActive": "Займ: {{title}}",
|
||
"filterLoanTransactions": "Показать операции этого займа",
|
||
"loansEmptyDescription": "Создайте займ кнопкой + и выберите Займ.",
|
||
"newCategoryTitle": "Новая категория",
|
||
"newCategoryPlaceholder": "Название категории",
|
||
"newSubcategoryTitle": "Новая подкатегория",
|
||
"newSubcategoryPlaceholder": "Название подкатегории",
|
||
"loanStatusFilterLabel": "Фильтр статуса займов",
|
||
"loanStatusActive": "Активные",
|
||
"loanStatusPaid": "Оплаченные",
|
||
"loanStatusAll": "Все",
|
||
"loanTransactions": "Операции займа",
|
||
"loanInstallmentNumber": "Платёж {{number}} из {{total}}",
|
||
"loanReportTitle": "Отчёт по займу",
|
||
"loanNoTransactions": "Платежи ещё не записаны."
|
||
},
|
||
"settings": {
|
||
"title": "Настройки",
|
||
"tabGeneral": "Общие",
|
||
"tabMeals": "Питание",
|
||
"tabBudget": "Бюджет",
|
||
"tabShopping": "Покупки",
|
||
"tabCalendar": "Календарь",
|
||
"tabFamily": "Управление семьей",
|
||
"tabApiTokens": "API-токены",
|
||
"tabAccount": "Аккаунт",
|
||
"tabsAriaLabel": "Разделы настроек",
|
||
"sectionDesign": "Внешний вид",
|
||
"sectionAppName": "Название приложения",
|
||
"sectionShopping": "Покупки",
|
||
"shoppingCategoriesLabel": "Категории покупок",
|
||
"shoppingCategoriesHint": "Добавляйте, переименовывайте, удаляйте или сортируйте категории.",
|
||
"shoppingCategoryPlaceholder": "Новая категория…",
|
||
"shoppingCategoryRenameHint": "Нажмите для переименования",
|
||
"shoppingCategoryRenamePrompt": "Новое название категории:",
|
||
"shoppingCategoryMoveUp": "Переместить категорию вверх",
|
||
"shoppingCategoryMoveDown": "Переместить категорию вниз",
|
||
"shoppingCategoryDelete": "Удалить категорию",
|
||
"shoppingCategoryDeleteConfirm": "Удалить категорию «{{name}}»? Существующие товары будут перемещены в следующую категорию.",
|
||
"shoppingCategoryAdded": "Категория добавлена.",
|
||
"shoppingCategoryRenamed": "Категория переименована.",
|
||
"shoppingCategoryDeleted": "Категория удалена.",
|
||
"sectionAccount": "Мой аккаунт",
|
||
"sectionCalendarSync": "Синхронизация календаря",
|
||
"sectionFamily": "Члены семьи",
|
||
"cardAppearance": "Отображение",
|
||
"appNameTitle": "Название приложения",
|
||
"appNameLabel": "Название приложения",
|
||
"appNameHint": "Это название отображается в боковом меню, заголовке браузера и на экране входа.",
|
||
"appNamePlaceholder": "Oikos",
|
||
"appNameSavedToast": "Название приложения сохранено.",
|
||
"sectionDate": "Дата",
|
||
"dateFormatTitle": "Формат даты",
|
||
"dateFormatLabel": "Предпочитаемый формат даты",
|
||
"dateFormatHint": "Выберите, как даты отображаются в приложении.",
|
||
"dateFormatSavedToast": "Формат даты сохранён.",
|
||
"timeFormatLabel": "Формат времени",
|
||
"timeFormatHours": "часов",
|
||
"timeFormatSavedToast": "Формат времени сохранён.",
|
||
"themeSystem": "Система",
|
||
"themeSysLabel": "Использовать системную настройку",
|
||
"themeLight": "Светлая",
|
||
"themeLightLabel": "Светлая тема",
|
||
"themeDark": "Тёмная",
|
||
"themeDarkLabel": "Тёмная тема",
|
||
"changePassword": "Изменить пароль",
|
||
"currentPasswordLabel": "Текущий пароль",
|
||
"newPasswordLabel": "Новый пароль",
|
||
"confirmPasswordLabel": "Подтвердить новый пароль",
|
||
"savePassword": "Сохранить пароль",
|
||
"passwordMismatch": "Пароли не совпадают.",
|
||
"passwordSavedToast": "Пароль успешно изменён.",
|
||
"googleCalendar": "Google Календарь",
|
||
"appleCalendar": "Apple Calendar (iCloud)",
|
||
"syncNow": "Синхронизировать сейчас",
|
||
"disconnect": "Отключить",
|
||
"connectGoogle": "Подключить Google",
|
||
"connected": "Подключено",
|
||
"connectedLastSync": "Подключено · Последняя: {{date}}",
|
||
"notConnected": "Не подключено",
|
||
"notConfigured": "Не настроено (отсутствуют переменные .env)",
|
||
"configured": "Настроено (через .env)",
|
||
"configuredLastSync": "Настроено (через .env) · Последняя: {{date}}",
|
||
"syncSuccess": "{{provider}} синхронизирован.",
|
||
"disconnectedToast": "{{provider}} отключён.",
|
||
"googleOnlyAdmin": "Только администратор может подключить Google Календарь.",
|
||
"appleOnlyAdmin": "Только администратор может подключить Apple Calendar.",
|
||
"caldavUrlLabel": "URL сервера CalDAV",
|
||
"caldavUrlPlaceholder": "https://caldav.icloud.com",
|
||
"appleIdLabel": "Apple ID (email)",
|
||
"applePasswordLabel": "Пароль для приложения",
|
||
"applePasswordHint": "Создайте пароль на <strong>appleid.apple.com → Безопасность</strong>.",
|
||
"appleConnectBtn": "Подключить и протестировать",
|
||
"appleConnecting": "Подключение…",
|
||
"appleConnectedToast": "Apple Calendar подключён.",
|
||
"syncSuccessGoogle": "Синхронизация календаря с Google успешно подключена.",
|
||
"syncSuccessApple": "Синхронизация календаря с Apple успешно подключена.",
|
||
"syncErrorGoogle": "Не удалось подключиться к Google. Попробуйте ещё раз.",
|
||
"syncErrorApple": "Не удалось подключиться к Apple. Попробуйте ещё раз.",
|
||
"addMember": "+ Добавить участника",
|
||
"newMemberTitle": "Новый член семьи",
|
||
"usernameLabel": "Имя пользователя",
|
||
"displayNameLabel": "Отображаемое имя",
|
||
"memberPasswordLabel": "Пароль",
|
||
"colorLabel": "Цвет",
|
||
"profilePictureTitle": "Фото профиля",
|
||
"profilePictureLabel": "Загрузить фото",
|
||
"profilePictureHint": "PNG, JPEG или WebP. Большие изображения уменьшаются перед загрузкой.",
|
||
"profilePictureRemove": "Удалить фото",
|
||
"profilePictureTypeError": "Используйте изображение PNG, JPEG или WebP.",
|
||
"profilePictureFileTooLarge": "Файл изображения слишком большой.",
|
||
"profilePictureTooLarge": "Фото профиля всё ещё слишком большое после изменения размера.",
|
||
"profilePictureReadError": "Не удалось прочитать выбранное изображение.",
|
||
"profileSavedToast": "Профиль обновлён.",
|
||
"editMemberLabel": "Изменить",
|
||
"editMemberTitle": "Изменить члена семьи",
|
||
"saveMember": "Сохранить участника",
|
||
"memberUpdatedToast": "{{name}} обновлён.",
|
||
"familyRoleLabel": "Роль в семье",
|
||
"familyRoleDad": "Папа",
|
||
"familyRoleMom": "Мама",
|
||
"familyRoleParent": "Родитель",
|
||
"familyRoleChild": "Ребёнок",
|
||
"familyRoleGrandparent": "Дедушка/бабушка",
|
||
"familyRoleRelative": "Родственник",
|
||
"familyRoleOther": "Член семьи",
|
||
"systemAdminLabel": "Системный администратор",
|
||
"systemAdminHint": "Системные администраторы могут управлять настройками, интеграциями, API-токенами и семейными аккаунтами.",
|
||
"systemAdminBadge": "Системный администратор",
|
||
"roleLabel": "Роль",
|
||
"roleMember": "Участник",
|
||
"roleAdmin": "Администратор",
|
||
"createMember": "Создать",
|
||
"cancelAddMember": "Отмена",
|
||
"memberAddedToast": "{{name}} добавлен.",
|
||
"deleteMemberConfirm": "Удалить {{name}}?",
|
||
"memberDeletedToast": "{{name}} удалён.",
|
||
"deleteMemberLabel": "Удалить",
|
||
"logout": "Выйти",
|
||
"synchronizing": "Синхронизация…",
|
||
"googleDisconnectConfirm": "Отключить Google Календарь?",
|
||
"appleDisconnectConfirm": "Отключить Apple Calendar?",
|
||
"localeSystem": "Система",
|
||
"localeLabel": "Язык",
|
||
"languageTitle": "Язык",
|
||
"sectionMeals": "План питания",
|
||
"mealTypesLabel": "Видимые приёмы пищи",
|
||
"mealTypesHint": "В плане питания отображаются только выбранные типы приёмов пищи.",
|
||
"mealTypesSaved": "Настройки плана питания сохранены.",
|
||
"mealTypesMinOne": "Должен быть активен хотя бы один тип приёма пищи.",
|
||
"sectionBudget": "Бюджет",
|
||
"currencyLabel": "Валюта",
|
||
"currencyHint": "Устанавливает валюту для всего раздела бюджета.",
|
||
"currencySaved": "Валюта сохранена.",
|
||
"apiTokensTitle": "API Tokens",
|
||
"apiTokensCardTitle": "Access Tokens",
|
||
"apiTokensHint": "Create API tokens for external integrations. The full token is shown only once after creation.",
|
||
"apiTokenNameLabel": "Token name",
|
||
"apiTokenExpiresLabel": "Expiration date",
|
||
"apiTokenExpiresHint": "Leave empty to create a token without expiration.",
|
||
"apiTokenCreatedLabel": "New API token",
|
||
"apiTokenCreatedHint": "Store this token securely. It cannot be shown again.",
|
||
"apiTokenCreate": "Create token",
|
||
"apiTokenInvalidExpiration": "Please enter a valid expiration date.",
|
||
"apiTokenCreatedToast": "API token created.",
|
||
"apiTokenRevokedToast": "API token revoked.",
|
||
"apiTokenRevokeConfirm": "Revoke API token \"{{name}}\"?",
|
||
"apiTokenRevoke": "Revoke token",
|
||
"apiTokenRevoked": "Revoked",
|
||
"apiTokenExpired": "Expired",
|
||
"apiTokenActive": "Active",
|
||
"apiTokenPrefix": "Prefix",
|
||
"apiTokenExpires": "Expires",
|
||
"apiTokenNeverExpires": "No expiration",
|
||
"apiTokenLastUsed": "Last used",
|
||
"apiTokenNeverUsed": "Never used",
|
||
"ics": {
|
||
"title": "ICS-подписки",
|
||
"add": "Добавить подписку",
|
||
"addedToast": "Подписка добавлена.",
|
||
"deletedToast": "Подписка удалена.",
|
||
"syncedToast": "Подписка синхронизирована.",
|
||
"confirm_delete": "Вы действительно хотите удалить эту подписку? Все связанные события также будут удалены.",
|
||
"empty": "Подписок пока нет.",
|
||
"form": {
|
||
"name": "Название",
|
||
"url": "URL ICS",
|
||
"color": "Цвет",
|
||
"shared": "Видно всем"
|
||
},
|
||
"actions": {
|
||
"submit": "Добавить",
|
||
"save": "Сохранить",
|
||
"cancel": "Отмена",
|
||
"delete": "Удалить",
|
||
"edit": "Изменить",
|
||
"sync": "Синхронизировать сейчас"
|
||
},
|
||
"status": {
|
||
"lastSync": "Последняя синхронизация:",
|
||
"never": "Ещё не синхронизировано",
|
||
"syncing": "Синхронизация...",
|
||
"syncError": "Ошибка синхронизации"
|
||
},
|
||
"badges": {
|
||
"private": "Личное",
|
||
"shared": "Общее"
|
||
},
|
||
"updatedToast": "Подписка обновлена."
|
||
},
|
||
"memberPhoneLabel": "Номер телефона (необязательно)",
|
||
"memberEmailLabel": "Электронная почта (необязательно)",
|
||
"memberBirthDateLabel": "Дата рождения (необязательно)",
|
||
"memberContactBirthdayHint": "Этот участник автоматически синхронизируется с контактами и днями рождения.",
|
||
"memberBirthDateInvalid": "Используйте действительную дату рождения в выбранном формате.",
|
||
"memberPhoneMeta": "Телефон: {{value}}",
|
||
"memberBirthdayMeta": "День рождения: {{date}}",
|
||
"tabBackup": "Управление резервными копиями",
|
||
"sectionBackup": "Управление резервными копиями",
|
||
"backupDownloadTitle": "Скачать резервную копию базы данных",
|
||
"backupDownloadHint": "Создает согласованную SQLite-копию всех данных приложения.",
|
||
"backupDownloadButton": "Скачать копию",
|
||
"backupRestoreTitle": "Восстановить резервную копию базы данных",
|
||
"backupRestoreHint": "Восстановление заменит текущую базу данных. Перед продолжением скачайте свежую копию.",
|
||
"backupDropzoneTitle": "Перетащите файл копии сюда или нажмите для выбора",
|
||
"backupDropzoneHint": "Файлы SQLite: .db, .sqlite или .sqlite3",
|
||
"backupRestoreButton": "Восстановить копию",
|
||
"backupRestoreConfirm": "Эта копия заменит текущую базу данных для всех. Продолжить?",
|
||
"backupRestoring": "Восстановление...",
|
||
"backupRestoredToast": "База данных восстановлена. Перезагрузка...",
|
||
"backupCliTitle": "Восстановление CLI / Docker Compose",
|
||
"backupCliHint": "For operational restores, stop the app, mount the backup in a temporary container and replace the database file.",
|
||
"backupCliBackupHint": "Также можно создать копию напрямую через Docker Compose:",
|
||
"tabSync": "Synchronization",
|
||
"sectionContactSync": "Contact Synchronization",
|
||
"cardavTitle": "CardDAV Contacts",
|
||
"cardavDescription": "Connect multiple CardDAV accounts (iCloud, Nextcloud, Radicale, etc.) and sync your contacts.",
|
||
"cardavAddAccount": "Add CardDAV Account",
|
||
"cardavEmptyState": "No CardDAV accounts connected yet. Add your first account to sync contacts.",
|
||
"cardavNameLabel": "Account name",
|
||
"cardavNamePlaceholder": "e.g. iCloud, Nextcloud",
|
||
"cardavUrlLabel": "CardDAV Server URL",
|
||
"cardavUrlPlaceholder": "https://contacts.icloud.com",
|
||
"cardavUrlHint": "The base URL of your CardDAV server",
|
||
"cardavUsernameLabel": "Username",
|
||
"cardavPasswordLabel": "Password",
|
||
"cardavPasswordHint": "For iCloud: Use app-specific password from appleid.apple.com",
|
||
"cardavAccountAdded": "CardDAV account added successfully",
|
||
"cardavAccountDeleted": "CardDAV account removed",
|
||
"cardavSyncSuccess": "CardDAV sync successful",
|
||
"cardavSyncFailed": "CardDAV sync failed",
|
||
"cardavConnectionFailed": "Connection to CardDAV server failed",
|
||
"cardavAddressbooksToggle": "Show/hide addressbooks",
|
||
"cardavRefreshAddressbooks": "Refresh addressbooks",
|
||
"addressbookEnabled": "Addressbook enabled",
|
||
"addressbookDisabled": "Addressbook disabled",
|
||
"addressbooksRefreshed": "Addressbooks refreshed",
|
||
"deleteCardDAVAccountConfirm": "Really delete CardDAV account? All synced contacts will remain but lose their CardDAV link.",
|
||
"sectionHousekeeping": "Housekeeping",
|
||
"housekeepingPaymentsTitle": "Payment tasks",
|
||
"housekeepingPaymentTasksLabel": "Create a payment task on each housekeeper check-in",
|
||
"housekeepingPaymentTasksHint": "When enabled, each check-in creates a task for paying the staff member. Completing that task marks the visit payment as paid.",
|
||
"housekeepingPaymentTasksSaved": "Housekeeping payment setting saved.",
|
||
"backupSchedulerDisabled": "Disabled",
|
||
"backupSchedulerEnabled": "Enabled",
|
||
"backupSchedulerHint": "Scheduled backups are created automatically and old backups are rotated.",
|
||
"backupSchedulerKeep": "Retention",
|
||
"backupSchedulerKeepCount": "{{count}} backups",
|
||
"backupSchedulerLastBackup": "Last backup",
|
||
"backupSchedulerLastFail": "{{date}} (failed)",
|
||
"backupSchedulerLastSuccess": "{{date}} (successful)",
|
||
"backupSchedulerNever": "No backup created yet",
|
||
"backupSchedulerSchedule": "Schedule",
|
||
"backupSchedulerStatus": "Status",
|
||
"backupSchedulerTitle": "Automatic Backups",
|
||
"backupSchedulerTrigger": "Create backup now",
|
||
"backupSchedulerTriggeredToast": "Backup created successfully.",
|
||
"backupSchedulerTriggering": "Creating backup...",
|
||
"breadcrumbLabel": "Pfad",
|
||
"caldavAccountAdded": "CalDAV account added successfully",
|
||
"caldavAccountDeleted": "CalDAV account removed",
|
||
"caldavAddAccount": "Add CalDAV Account",
|
||
"caldavCalendarsToggle": "Show/hide calendars",
|
||
"caldavConnectionFailed": "Connection to CalDAV server failed",
|
||
"caldavDescription": "Connect multiple CalDAV accounts (iCloud, Nextcloud, Radicale, Baikal, etc.) and choose which calendars to sync.",
|
||
"caldavEmptyState": "No CalDAV accounts connected yet. Add your first account to get started.",
|
||
"caldavNameLabel": "Account Name",
|
||
"caldavNamePlaceholder": "e.g. My Radicale, iCloud, Nextcloud",
|
||
"caldavPasswordHint": "For iCloud: Use app-specific password from appleid.apple.com",
|
||
"caldavPasswordLabel": "Password",
|
||
"caldavRefreshCalendars": "Refresh calendars",
|
||
"caldavSyncFailed": "CalDAV sync failed",
|
||
"caldavSyncSuccess": "CalDAV sync successful",
|
||
"caldavTitle": "CalDAV Calendars",
|
||
"caldavUrlHint": "The base URL of your CalDAV server",
|
||
"caldavUsernameLabel": "Username",
|
||
"calendarDisabled": "Calendar disabled",
|
||
"calendarEnabled": "Calendar enabled",
|
||
"calendarsRefreshed": "Calendars refreshed",
|
||
"deleteAccountConfirm": "Really delete CalDAV account? All synced calendars will be removed.",
|
||
"emptyStateAddFirst": "Füge dein erstes Konto hinzu",
|
||
"emptyStateNoAccounts": "Noch keine Konten verbunden",
|
||
"helpTooltipCalDAV": "CalDAV ermöglicht die Synchronisation von Kalendern mit iCloud, Nextcloud und anderen CalDAV-Servern.",
|
||
"helpTooltipCardDAV": "CardDAV ermöglicht die Synchronisation von Kontakten mit iCloud, Nextcloud und anderen CardDAV-Servern.",
|
||
"lastSync": "Last synced",
|
||
"modulesHint": "Disabled modules disappear from the navigation. Data is preserved and reappears once a module is re-enabled.",
|
||
"modulesSaved": "Module visibility saved.",
|
||
"modulesTitle": "Active modules",
|
||
"navigationLabel": "Einstellungsnavigation",
|
||
"sectionAdmin": "Administration",
|
||
"sectionCloudServices": "Cloud-Dienste",
|
||
"sectionModules": "Modules",
|
||
"sectionModulesNav": "Module",
|
||
"sectionOpenStandards": "CalDAV & CardDAV",
|
||
"sectionPersonal": "Persönlich",
|
||
"sectionSync": "Synchronisation",
|
||
"statusError": "Fehler",
|
||
"statusNeverSynced": "Noch nie synchronisiert",
|
||
"statusSynced": "Synchronisiert",
|
||
"statusSyncing": "Synchronisiert…",
|
||
"syncedAgo": "vor {{time}}",
|
||
"tabSyncCalendar": "Kalender",
|
||
"tabSyncContacts": "Kontakte"
|
||
},
|
||
"login": {
|
||
"tagline": "Семейное планирование. Безопасно. С уважением к приватности. Открытый исходный код.",
|
||
"usernameLabel": "Имя пользователя",
|
||
"usernamePlaceholder": "имяпользователя",
|
||
"passwordLabel": "Пароль",
|
||
"passwordPlaceholder": "••••••••",
|
||
"loginButton": "Войти",
|
||
"loggingIn": "Вход…",
|
||
"tooManyAttempts": "Слишком много попыток. Подождите немного.",
|
||
"invalidCredentials": "Неверные данные для входа.",
|
||
"version": "v{{version}}"
|
||
},
|
||
"install": {
|
||
"title": "Установить Oikos",
|
||
"subtitle": "Добавить на главный экран",
|
||
"iosTip1": "Нажмите ",
|
||
"iosTip2": " → «На экран Домой»",
|
||
"installButton": "Установить",
|
||
"dismissLabel": "Закрыть"
|
||
},
|
||
"modal": {
|
||
"closeLabel": "Закрыть",
|
||
"overlayLabel": "Фон модального диалога",
|
||
"unsavedChanges": "Отменить изменения?",
|
||
"discardChanges": "Отменить"
|
||
},
|
||
"rrule": {
|
||
"freqNone": "Без повтора",
|
||
"freqDaily": "Ежедневно",
|
||
"freqWeekly": "Еженедельно",
|
||
"freqMonthly": "Ежемесячно",
|
||
"dayMo": "Пн",
|
||
"dayTu": "Вт",
|
||
"dayWe": "Ср",
|
||
"dayTh": "Чт",
|
||
"dayFr": "Пт",
|
||
"daySa": "Сб",
|
||
"daySu": "Вс",
|
||
"labelRepeat": "Повтор",
|
||
"labelEvery": "Каждые",
|
||
"labelOnDays": "В эти дни",
|
||
"labelUntil": "Заканчивается (необязательно)",
|
||
"unitDay": "день",
|
||
"unitDays": "дней",
|
||
"unitWeek": "неделю",
|
||
"unitWeeks": "недель",
|
||
"unitMonth": "месяц",
|
||
"unitMonths": "месяцев"
|
||
},
|
||
"recipes": {
|
||
"title": "Рецепты",
|
||
"addRecipe": "Добавить рецепт",
|
||
"editRecipe": "Редактировать рецепт",
|
||
"emptyTitle": "Рецептов еще нет",
|
||
"emptyDescription": "Сохраняйте свои любимые рецепты и используйте их повторно при планировании питания.",
|
||
"titleLabel": "Название *",
|
||
"titlePlaceholder": "напр. Паста Карбонара",
|
||
"notesLabel": "Заметки",
|
||
"notesPlaceholder": "Необязательно...",
|
||
"urlLabel": "Ссылка на рецепт",
|
||
"urlPlaceholder": "https://...",
|
||
"ingredientsLabel": "Ингредиенты",
|
||
"addToMeals": "Добавить в план питания",
|
||
"openLink": "Открыть ссылку на рецепт",
|
||
"deleteConfirm": "Удалить рецепт \"{{title}}\"?",
|
||
"created": "Рецепт сохранен.",
|
||
"updated": "Рецепт обновлен.",
|
||
"deleted": "Рецепт удален.",
|
||
"titleRequired": "Название обязательно",
|
||
"duplicate": "Дублировать",
|
||
"duplicated": "Рецепт дублирован.",
|
||
"copySuffix": "копия",
|
||
"emptyAction": "Создать рецепт"
|
||
},
|
||
"search": {
|
||
"title": "Поиск",
|
||
"open": "Открыть поиск",
|
||
"placeholder": "Поиск…",
|
||
"noResults": "Результаты не найдены."
|
||
},
|
||
"birthdays": {
|
||
"title": "Дни рождения",
|
||
"addButton": "Добавить день рождения",
|
||
"searchPlaceholder": "Поиск дней рождения…",
|
||
"upcomingTitle": "Ближайшие дни рождения",
|
||
"upcomingHint": "Ближайшие праздники, уже синхронизированные с календарём.",
|
||
"peopleTitle": "Люди",
|
||
"peopleHint": "Ищите, просматривайте и редактируйте все сохранённые дни рождения.",
|
||
"emptyTitle": "Дней рождения пока нет",
|
||
"emptyDescription": "Добавьте день рождения, чтобы он отображался в календаре и напоминаниях.",
|
||
"newTitle": "Новый день рождения",
|
||
"editTitle": "Редактировать день рождения",
|
||
"nameLabel": "Имя",
|
||
"birthDateLabel": "Дата рождения",
|
||
"photoLabel": "Фото профиля",
|
||
"removePhoto": "Удалить фото",
|
||
"notesLabel": "Заметки",
|
||
"notesPlaceholder": "Идеи подарков, любимый торт, семейные заметки…",
|
||
"calendarHint": "Каждый день рождения автоматически добавляется в календарь и систему напоминаний.",
|
||
"requiredFields": "Имя и дата рождения обязательны.",
|
||
"createdToast": "День рождения сохранён.",
|
||
"updatedToast": "День рождения обновлён.",
|
||
"deletedToast": "День рождения удалён.",
|
||
"deleteConfirm": "Удалить день рождения \"{{name}}\"?",
|
||
"ageNoteToday": "Исполняется {{age}} сегодня.",
|
||
"ageNoteTomorrow": "Исполнится {{age}} завтра.",
|
||
"ageNoteDays": "Исполнится {{age}} через {{days}} дн.",
|
||
"photoOptional": "Необязательно: можно сохранить без фото профиля."
|
||
},
|
||
"reminders": {
|
||
"sectionTitle": "Напоминание",
|
||
"enableLabel": "Установить напоминание",
|
||
"offsetLabel": "Напомнить",
|
||
"offsetNone": "Нет",
|
||
"offsetAtTime": "В момент начала",
|
||
"offset15min": "За 15 минут",
|
||
"offset1hour": "За 1 час",
|
||
"offset1day": "За 1 день",
|
||
"dateLabel": "Дата",
|
||
"timeLabel": "Время",
|
||
"toastTitle": "Напоминание",
|
||
"dismiss": "Отклонить",
|
||
"pendingBadgeTitle": "{{count}} ожидающее напоминание",
|
||
"pendingBadgeTitlePlural": "{{count}} ожидающих напоминания",
|
||
"notificationPermission": "Уведомления браузера",
|
||
"notificationEnable": "Включить уведомления",
|
||
"notificationEnabled": "Уведомления активны",
|
||
"notificationDenied": "Уведомления заблокированы",
|
||
"notificationHint": "Получайте уведомления, даже когда приложение открыто.",
|
||
"offset2days": "2 days before",
|
||
"offset1week": "1 week before",
|
||
"offset2weeks": "2 weeks before",
|
||
"offsetCustom": "Custom...",
|
||
"customAmountLabel": "Number",
|
||
"customUnitLabel": "Unit",
|
||
"customMinutes": "Minutes",
|
||
"customHours": "Hours",
|
||
"customDays": "Days",
|
||
"customWeeks": "Weeks"
|
||
},
|
||
"onboarding": {
|
||
"step1Title": "Добро пожаловать в {{name}}",
|
||
"step1Body": "Your personal family planner. Tasks, calendar, shopping and more – all in one place.",
|
||
"step2Title": "Навигация и модули",
|
||
"step2Body": "Внизу доступны Панель управления и Календарь напрямую. Кнопка ··· открывает дополнительные модули: Кухня, Заметки и Контакты.",
|
||
"step3Title": "Начните быстро",
|
||
"step3Body": "Кнопка + позволяет создавать новые записи везде. Смахните элементы списка влево или вправо для быстрых действий.",
|
||
"next": "Next",
|
||
"done": "Get started",
|
||
"skip": "Skip"
|
||
},
|
||
"offline": {
|
||
"banner": "Offline – reconnecting…"
|
||
},
|
||
"emptyHint": {
|
||
"recipes": "Создавайте рецепты и связывайте их с вашим планом питания.",
|
||
"birthdays": "Добавьте дни рождения — вы получите напоминание вовремя.",
|
||
"budget": "Создайте категории и фиксируйте доходы и расходы.",
|
||
"calendar": "Подключите Google Календарь в Настройках → Интеграции для автоматической синхронизации.",
|
||
"contacts": "Добавьте важные контакты — врач, школа, экстренная помощь — для быстрого доступа.",
|
||
"meals": "Планируйте питание на неделю и прикрепляйте рецепты.",
|
||
"notes": "Нажмите + для новой заметки. Заметки ищутся по полному тексту.",
|
||
"shopping": "Добавьте товары и смахните для отметки или удаления.",
|
||
"tasks": "Нажмите + для создания первой задачи. Смахните карточку влево для удаления."
|
||
},
|
||
"documents": {
|
||
"title": "Документы",
|
||
"addButton": "Добавить документ",
|
||
"searchPlaceholder": "Поиск документов...",
|
||
"gridView": "Сетка",
|
||
"listView": "Список",
|
||
"viewToggle": "Вид документов",
|
||
"allCategories": "Все категории",
|
||
"emptyTitle": "Документов пока нет",
|
||
"emptyDescription": "Загружайте семейные документы и управляйте доступом к каждому файлу.",
|
||
"newTitle": "Новый документ",
|
||
"editTitle": "Настройки документа",
|
||
"nameLabel": "Название",
|
||
"descriptionLabel": "Описание",
|
||
"categoryLabel": "Категория",
|
||
"fileLabel": "Файл",
|
||
"fileHint": "PDF, изображения, текст и файлы Office до 5 МБ.",
|
||
"visibilityLabel": "Видимость",
|
||
"statusLabel": "Статус",
|
||
"allowedMembersLabel": "Разрешённые участники",
|
||
"uploadAction": "Загрузить",
|
||
"downloadAction": "Скачать",
|
||
"editAction": "Настройки",
|
||
"archiveAction": "Архивировать",
|
||
"restoreAction": "Восстановить",
|
||
"savedToast": "Документ сохранён.",
|
||
"uploadedToast": "Документ загружен.",
|
||
"archivedToast": "Документ архивирован.",
|
||
"restoredToast": "Документ восстановлен.",
|
||
"deletedToast": "Документ удалён.",
|
||
"deleteConfirm": "Удалить документ «{{name}}»?",
|
||
"fileRequired": "Выберите файл для загрузки.",
|
||
"fileTooLarge": "Файл может быть не более 5 МБ.",
|
||
"fileReadError": "Не удалось прочитать файл.",
|
||
"statusActive": "Активный",
|
||
"statusArchived": "Архивированный",
|
||
"visibility": {
|
||
"family": "Вся семья",
|
||
"restricted": "Выбранные участники",
|
||
"private": "Только я"
|
||
},
|
||
"category": {
|
||
"medical": "Медицина",
|
||
"school": "Школа",
|
||
"identity": "Удостоверения",
|
||
"insurance": "Страхование",
|
||
"finance": "Финансы",
|
||
"home": "Дом",
|
||
"vehicle": "Автомобиль",
|
||
"legal": "Юридическое",
|
||
"travel": "Путешествия",
|
||
"pets": "Питомцы",
|
||
"warranty": "Гарантия",
|
||
"taxes": "Налоги",
|
||
"work": "Работа",
|
||
"other": "Другое"
|
||
},
|
||
"dropzoneTitle": "Перетащите файл сюда или нажмите для выбора",
|
||
"dropzoneHint": "Перетащите файл в эту область или используйте выбор файла.",
|
||
"selectedFileLabel": "Выбрано: {{name}}",
|
||
"addFolderButton": "Add folder",
|
||
"allFolders": "All folders",
|
||
"folderLabel": "Folder",
|
||
"noFolder": "No folder",
|
||
"newFolderTitle": "New folder",
|
||
"folderNameLabel": "Folder name",
|
||
"createFolderAction": "Create folder",
|
||
"folderCreatedToast": "Folder created.",
|
||
"housekeepingFolder": "Уборка",
|
||
"calendarItemsFolder": "Элементы календаря",
|
||
"folderBrowserTitle": "Просмотр папок"
|
||
},
|
||
"shortcuts": {
|
||
"goKitchen": "Кухня",
|
||
"goCal": "Календарь",
|
||
"goDash": "Дашборд",
|
||
"goNotes": "Заметки",
|
||
"goShop": "Список покупок",
|
||
"goTasks": "Задачи",
|
||
"help": "Горячие клавиши",
|
||
"new": "Создать новую запись",
|
||
"search": "Открыть поиск"
|
||
},
|
||
"housekeeping": {
|
||
"title": "Cleaner workspace",
|
||
"bottomNav": "Housekeeping navigation",
|
||
"home": "Home",
|
||
"tasks": "Tasks",
|
||
"report": "Report",
|
||
"notCheckedIn": "Not checked in",
|
||
"checkedInAt": "Checked in at",
|
||
"monthTotal": "Current month · {{count}} sessions",
|
||
"dailyRate": "Daily rate",
|
||
"extras": "Extras",
|
||
"checkIn": "Check in",
|
||
"checkOut": "Check out",
|
||
"quickSupply": "Missing product",
|
||
"supplyName": "Product name",
|
||
"supplyPlaceholder": "What is missing?",
|
||
"checkedInToast": "Check-in recorded.",
|
||
"checkedOutToast": "Check-out recorded.",
|
||
"supplyAddedToast": "Added to the shopping list.",
|
||
"overdue": "Overdue",
|
||
"dueToday": "Due today",
|
||
"ok": "OK",
|
||
"noTasks": "No housekeeping tasks yet.",
|
||
"everyDays": "Every {{days}} days",
|
||
"completeTask": "Complete {{name}}",
|
||
"taskDoneToast": "Task completed.",
|
||
"reportTitle": "Report a problem",
|
||
"problemDescription": "Problem description",
|
||
"problemPlaceholder": "Example: burnt-out light bulb",
|
||
"addPhoto": "Add photo",
|
||
"sendReport": "Send report",
|
||
"reportSentToast": "Problem reported.",
|
||
"recentReports": "Recent reports",
|
||
"addTask": "Add task",
|
||
"taskName": "Task",
|
||
"taskNamePlaceholder": "Example: Clean bathrooms",
|
||
"taskArea": "Area",
|
||
"taskAreaPlaceholder": "Example: Bathroom",
|
||
"taskFrequency": "Frequency",
|
||
"createTask": "Create task",
|
||
"taskCreatedToast": "Housekeeping task created.",
|
||
"dashboard": "Dashboard",
|
||
"reports": "Reports",
|
||
"visitsThisMonth": "Visits this month",
|
||
"lastVisit": "Last visit",
|
||
"pendingChores": "Pending chores",
|
||
"finishedChores": "Finished chores",
|
||
"payments": "Payments",
|
||
"pendingPayments": "Pending payments",
|
||
"monthlyPayments": "Monthly payments",
|
||
"noPaymentData": "No payment data yet.",
|
||
"noVisits": "No visits yet",
|
||
"noWorkerTitle": "No housekeeper profile",
|
||
"noWorkerHint": "Create the worker profile to define contacts, rate, and payment schedule.",
|
||
"taskTemplates": "Suggested chores",
|
||
"addCustomTask": "Add custom chore",
|
||
"noReports": "No reports yet.",
|
||
"profileTitle": "Housekeeper profile",
|
||
"profilePicture": "Housekeeper profile picture",
|
||
"workerName": "Name",
|
||
"workerUsername": "Username",
|
||
"workerPhone": "Phone",
|
||
"workerEmail": "Email",
|
||
"workerBirthDate": "Birthday",
|
||
"paymentSchedule": "Payment schedule",
|
||
"scheduleDaily": "Every visit",
|
||
"scheduleTwiceMonthly": "Twice a month",
|
||
"scheduleMonthly": "Monthly",
|
||
"profileColor": "Profile color",
|
||
"workerNotes": "Notes",
|
||
"workerSavedToast": "Housekeeper profile saved.",
|
||
"staff": "Staff",
|
||
"staffTitle": "Housekeeping staff",
|
||
"addWorker": "Add housekeeper",
|
||
"editWorker": "Edit housekeeper",
|
||
"noWorkers": "No housekeepers registered yet.",
|
||
"moreWorkers": "+{{count}} more",
|
||
"checkInDisabled": "Add a housekeeper before checking in.",
|
||
"calendarColor": "Calendar color",
|
||
"visitRecordedAt": "Visit recorded at",
|
||
"checkedInToday": "Recorded today",
|
||
"visitReports": "Staff visit reports",
|
||
"noVisitReports": "No staff visits recorded this month.",
|
||
"openVisitReport": "Open visit report",
|
||
"visitReportDetails": "Visit report",
|
||
"paymentPaid": "Paid",
|
||
"paymentPending": "Pending",
|
||
"totalPayment": "Total payment",
|
||
"paymentStatus": "Payment status",
|
||
"paymentTask": "Payment task",
|
||
"calendarEvent": "Calendar event",
|
||
"notAvailable": "Not available",
|
||
"calendarVisitTitle": "Housekeeping: {{name}}",
|
||
"paymentTaskTitle": "Pay {{name}} for housekeeping",
|
||
"paymentTaskDescription": "Housekeeping visit on {{date}}. Amount due: {{amount}}.",
|
||
"staffLogTitle": "{{name}} visits",
|
||
"staffLogHint": "Edit visit dates, amounts, and linked records.",
|
||
"filterMonth": "Month",
|
||
"editVisit": "Edit visit",
|
||
"deleteVisit": "Delete visit",
|
||
"deleteVisitConfirm": "Delete this visit? The linked calendar event and payment task will also be removed.",
|
||
"visitDeletedToast": "Visit deleted.",
|
||
"visitSavedToast": "Visit updated.",
|
||
"visitDate": "Visit date",
|
||
"markPaid": "Mark paid",
|
||
"visitPaidToast": "Payment marked as paid.",
|
||
"receiptUploadTitle": "Upload payment receipt",
|
||
"receiptUploadHint": "Attach a payment receipt. It will appear in Documents.",
|
||
"receiptDocumentName": "Receipt - {{name}} - {{date}}",
|
||
"receiptDocumentDescription": "Payment receipt for {{name}} housekeeping visit on {{date}}.",
|
||
"taskTemplateData": {
|
||
"cleanBathrooms": {
|
||
"name": "Убрать ванные комнаты",
|
||
"area": "Ванные комнаты"
|
||
},
|
||
"mopKitchenFloor": {
|
||
"name": "Вымыть пол на кухне",
|
||
"area": "Кухня"
|
||
},
|
||
"dustLivingRoom": {
|
||
"name": "Вытереть пыль в гостиной",
|
||
"area": "Гостиная"
|
||
},
|
||
"changeBedLinens": {
|
||
"name": "Сменить постельное белье",
|
||
"area": "Спальни"
|
||
},
|
||
"cleanRefrigerator": {
|
||
"name": "Почистить холодильник",
|
||
"area": "Кухня"
|
||
},
|
||
"cleanWindows": {
|
||
"name": "Помыть окна",
|
||
"area": "Весь дом"
|
||
},
|
||
"deepCleanOven": {
|
||
"name": "Глубоко очистить духовку",
|
||
"area": "Кухня"
|
||
},
|
||
"washOutdoor": {
|
||
"name": "Помыть балкон/патио",
|
||
"area": "Улица"
|
||
}
|
||
}
|
||
},
|
||
"userMultiSelect": {
|
||
"moreUsers": "weitere",
|
||
"nobody": "- Niemand -"
|
||
}
|
||
}
|