Files
finance/frontend/src/i18n/locales/ru.json
T
2026-09-21 16:32:10 +05:00

402 lines
22 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"app": {
"title": "Finspace — семейные финансы",
"brand": "Finspace",
"footer": "RUB · приватный семейный гроссбух",
"financialSpace": "Финансовое пространство",
"ownerActive": "Владелец · активно",
"synced": "Все данные синхронизированы"
},
"nav": {
"label": "Основная навигация",
"month": "Этот месяц",
"accounts": "Счета",
"budget": "Бюджет",
"operations": "Гроссбух",
"review": "Очередь разбора",
"imports": "Выписки",
"analytics": "Аналитика",
"settings": "Пространство и данные"
},
"overview": {
"subtitle": "Семейные деньги с объяснением текущего месяца.",
"openBudget": "Открыть весь бюджет",
"newOperation": "Новая операция",
"availableNow": "деньги, доступные сейчас",
"afterPlan": "после плана и ожидаемых доходов",
"reserved": "зарезервировано по категориям",
"ofFunded": "потрачено из профинансированного",
"monthStory": "Как движется месяц",
"liveState": "Текущее состояние",
"poolAndIncome": "Пул и полученный доход",
"funded": "Распределено по категориям",
"spent": "Потрачено по категориям",
"poolRemaining": "Осталось в пуле",
"closeReadiness": "Готовность к закрытию",
"blockers": "блокировок",
"readyToClose": "Блокировок нет. Месяц можно закрывать.",
"importsNeedReview": "Выписок на проверке: {{count}}",
"reviewBlockers": "Разобрать блокировки",
"categoryPulse": "Состояние категорий"
},
"lang": {
"label": "Язык"
},
"common": {
"actions": "Действия",
"amount": "Сумма",
"cancel": "Отмена",
"choose": "— выберите —",
"close": "Закрыть",
"confirm": "Подтвердить",
"create": "Создать",
"dash": "—",
"date": "Дата",
"empty": "Пока ничего нет",
"loading": "Загрузка…",
"name": "Название",
"requiredField": "Обязательное поле",
"retry": "Повторить",
"save": "Сохранить",
"saving": "Сохранение…",
"showTable": "Показать таблицу",
"skipToContent": "Перейти к содержимому",
"status": "Статус"
},
"errors": {
"generic": "Что-то пошло не так. Попробуйте ещё раз.",
"http": "Ошибка сервера ({{status}}).",
"badAmount": "Введите сумму в рублях, больше нуля, не более двух знаков после запятой.",
"network_error": "Нет связи с сервером. Проверьте соединение.",
"auth_invalid_credentials": "Неверный email или пароль.",
"unauthorized": "Сессия истекла. Войдите снова.",
"forbidden": "Недостаточно прав для этого действия.",
"not_found": "Запись не найдена.",
"validation_error": "Проверьте правильность заполнения полей.",
"conflict": "Данные изменены кем-то другим. Обновите страницу и повторите.",
"rate_limited": "Слишком много попыток. Подождите немного.",
"session_expired": "Сессия истекла. Войдите снова."
},
"auth": {
"loginTitle": "Вход",
"loginSubtitle": "Войдите, чтобы открыть своё финансовое пространство.",
"email": "Email",
"password": "Пароль",
"passwordConfirm": "Повторите пароль",
"passwordHint": "Минимум 12 символов",
"passwordMismatch": "Пароли не совпадают",
"invalidEmail": "Введите корректный email",
"submit": "Войти",
"loggingIn": "Вход…",
"logout": "Выйти",
"haveInvite": "Есть приглашение? Принять его",
"inviteTitle": "Принятие приглашения",
"inviteSubtitle": "Задайте имя и пароль, чтобы создать своё финансовое пространство.",
"inviteTokenMissing": "Ссылка не содержит токен приглашения. Запросите новую ссылку.",
"accept": "Принять и создать пространство",
"accepting": "Создаём…",
"backToLogin": "Вернуться ко входу",
"fullName": "Имя",
"forgotPassword": "Забыли пароль?",
"resetTitle": "Сброс пароля",
"resetSubtitle": "Запросите одноразовую ссылку на email.",
"resetSend": "Отправить ссылку",
"resetSent": "Если аккаунт существует, ссылка для сброса отправлена.",
"resetSubmit": "Установить новый пароль",
"resetTokenMissing": "Запросите новую ссылку для сброса."
},
"accounts": {
"title": "Счета",
"subtitle": "Дебетовые, наличные и кредитные счета пространства.",
"add": "Добавить счёт",
"empty": "Счетов пока нет. Создайте первый счёт, чтобы начать учёт.",
"formTitle": "Новый счёт",
"type": "Тип",
"type.cash": "Наличные",
"type.debit": "Дебетовый",
"type.credit": "Кредитная карта",
"bank": "Банк",
"bankHint": "Необязательно, например «alfa»",
"maskedNumber": "Маскированный номер",
"openedOn": "Дата открытия",
"openingBalance": "Начальная позиция",
"openingBalanceHint": "Сколько денег на счёте на момент начала учёта",
"balance": "Остаток",
"assets": "Активы",
"liabilities": "Долг по кредиткам",
"netWorth": "Итого",
"status.active": "Активен",
"status.archived": "В архиве",
"archive": "В архив",
"archiveBlockedHint": "Архивировать можно только счёт с нулевым остатком",
"archiveConfirmTitle": "Архивировать счёт",
"archiveConfirmBody": "Счёт «{{name}}» скроется из рабочих списков, но останется в истории."
},
"operations": {
"title": "Операции",
"subtitle": "Расходы, доходы, переводы и возвраты.",
"new": "Новая операция",
"empty": "Операций по выбранным условиям не найдено.",
"search": "Поиск",
"filterAccount": "Счёт",
"filterKind": "Тип",
"filterFrom": "Дата с",
"filterTo": "Дата по",
"filterAll": "Все",
"uncategorizedOnly": "Только без категории",
"kindLabel": "Тип",
"kind.expense": "Расход",
"kind.income": "Доход",
"kind.transfer": "Перевод",
"kind.refund": "Возврат",
"status.confirmed": "Подтверждена",
"status.voided": "Отменена",
"noCategory": "Без категории",
"category": "Категория",
"payee": "Получатель",
"incomeSource": "Источник дохода",
"incomeSourceHint": "Необязательно",
"description": "Описание",
"account": "Счёт",
"fromAccount": "Счёт списания",
"toAccount": "Счёт зачисления",
"refundAccount": "Счёт возврата",
"parentOperation": "Исходная покупка",
"parentOperationHint": "Необязательно; свяжите возврат с исходным расходом",
"sameAccount": "Счета списания и зачисления должны различаться",
"occurredOn": "Дата операции",
"void": "Отменить",
"voidTitle": "Отмена операции",
"voidBody": "Операция от {{date}} на {{amount}} будет помечена отменённой.",
"voidReason": "Причина отмены",
"voidReasonHint": "Минимум 3 символа",
"prevPage": "Назад",
"nextPage": "Дальше"
},
"budget": {
"title": "Бюджет",
"subtitle": "План месяца, обеспечение и общий пул.",
"monthPicker": "Выбор месяца",
"month": "Месяц",
"prevMonth": "Предыдущий месяц",
"nextMonth": "Следующий месяц",
"status.open": "Открыт",
"status.closed": "Закрыт",
"projectedPool": "Прогнозный пул",
"actualPool": "Фактический пул",
"plannedTotal": "Запланировано",
"fundedTotal": "Обеспечено",
"spentTotal": "Потрачено",
"available": "Свободно",
"planned": "План",
"funded": "Обеспечено",
"spent": "Факт",
"remaining": "Остаток",
"categories": "Категории",
"reserves": "Резервы кредиток",
"noCategories": "В этом месяце ещё нет категорий. Скопируйте прошлый месяц или создайте план.",
"category.kind.monthly": "Месячная",
"category.kind.savings_envelope": "Конверт",
"category.kind.credit_reserve": "Резерв кредитки",
"planTitle": "План: {{name}}",
"fundTitle": "Обеспечение: {{name}}",
"fund": "Обеспечить",
"fundHint": "Перемещает фактические деньги из общего пула в категорию.",
"expectedIncome": "Ожидаемые доходы",
"incomeSource": "Источник",
"noSource": "Без источника",
"matched": "Сопоставлено",
"income.status.expected": "Ожидается",
"income.status.partially_matched": "Частично",
"income.status.matched": "Поступил",
"blockersTitle": "Закрытие заблокировано",
"blockers.uncategorized_expenses": "Есть расходы без категории.",
"blockers.negative_envelope": "Отрицательный баланс накопительного конверта.",
"blockers.unresolved_imports": "Есть незавершённые импорты.",
"blockers.open_decisions": "Есть неразобранные решения по импорту.",
"warnings.plan_exceeds_pool": "План превышает прогнозный пул.",
"warnings.underfunded_credit": "Долг по кредитке обеспечен не полностью.",
"warnings.expected_income_variance": "Ожидаемый доход расходится с фактическим.",
"close": "Закрыть месяц",
"closeConfirmTitle": "Закрыть месяц",
"closeConfirmBody": "Месяц {{month}} будет закрыт, остатки месячных категорий свернутся в общий пул.",
"reopen": "Открыть снова",
"reopenConfirmTitle": "Повторное открытие месяца",
"reopenConfirmBody": "Месяц и все последующие периоды будут открыты заново и пересчитаны.",
"copyPrevious": "Скопировать прошлый месяц"
},
"review": {
"title": "Очередь разбора",
"subtitle": "Проблемные импорты и расходы без категории.",
"empty": "Очередь пуста — всё разобрано.",
"sectionImports": "Импорты, требующие внимания",
"sectionUncategorized": "Расходы без категории",
"uncategorizedEmpty": "Расходов без категории нет.",
"assignCategory": "Назначить категорию",
"openImport": "Открыть импорт"
},
"imports": {
"title": "Импорт выписок",
"subtitle": "Загрузка и разбор банковских выписок.",
"upload": "Загрузить выписку",
"uploadTitle": "Новый импорт",
"uploading": "Загрузка…",
"adapterHint": "Поддерживаются: Альфа debit/credit XLSX, Ozon debit/credit PDF, Рокетбанк debit PDF.",
"file": "Файл выписки",
"targetAccount": "Счёт привязки",
"unassigned": "Не привязан",
"empty": "Импортов пока нет.",
"bank": "Банк / контракт",
"period": "Период",
"createdAt": "Создан",
"createdAtLine": "Создан: {{createdAt}}",
"status.uploaded": "Загружен",
"status.queued": "В очереди",
"status.processing": "Разбирается",
"status.review_required": "Требует разбора",
"status.ready": "Готов к применению",
"status.confirmed": "Применён",
"status.failed": "Ошибка",
"progress": "Прогресс разбора",
"steps.uploaded": "Загружен",
"steps.queued": "В очереди",
"steps.processing": "Разбирается",
"steps.review_required": "Разбор",
"steps.ready": "Готов",
"steps.confirmed": "Применён",
"detailTitle": "Импорт",
"backToList": "К списку",
"failedReason": "Разбор не удался: {{reason}}",
"blockers": "Критические проблемы",
"blockers.currency_mismatch": "Валюта выписки не совпадает со счётом.",
"blockers.amount_mismatch": "Сумма строки не совпадает с исходной.",
"blockers.missing_occurred_date": "Не определена дата операции.",
"blockers.missing_target_account": "Не подтверждён счёт привязки.",
"blockers.arithmetic_mismatch": "Контрольные суммы не сходятся.",
"blockers.unresolved_duplicate": "Есть неразобранные дубликаты.",
"blockers.unresolved_transfer": "Есть неразобранные переводы.",
"blockers.account_conflict": "Отпечаток счёта конфликтует с существующим.",
"warnings": "Предупреждения ({{count}})",
"warnings.amount_warning": "Нестандартная сумма.",
"warnings.date_warning": "Необычная дата.",
"warnings.payee_warning": "Получатель определён неточно.",
"warnings.mcc_missing": "MCC отсутствует.",
"warnings.description_warning": "Описание неполное.",
"reconciliationTitle": "Сверка",
"openingBalance": "Входящий остаток",
"closingBalance": "Исходящий остаток",
"computedBalance": "Расчётный остаток",
"reconciliation.matched": "Сошлось",
"reconciliation.mismatched": "Расхождение",
"reconciliation.not_available": "Данных для сверки нет",
"reconciliation.confirmed_without": "Подтверждено без сверки",
"totals": "Строк: {{total}} · создать: {{create}} · пропустить: {{discard}} · дубликатов: {{duplicate}} · переводов: {{transfer}}",
"rowsTitle": "Строки выписки",
"noRows": "Строк нет.",
"rowWarnings": "Замечания",
"rowWarnings.amount": "сумма",
"rowWarnings.date": "дата",
"rowWarnings.direction": "направление",
"rowWarnings.mcc": "MCC",
"rowWarnings.description": "описание",
"decision": "Решение",
"decision.pending": "Не решено",
"decision.create": "Создать операцию",
"decision.discard": "Пропустить",
"decision.duplicate": "Это дубликат",
"decision.transfer": "Это перевод",
"confirm": "Применить импорт",
"confirmTitle": "Применить импорт",
"confirmBody": "Будут созданы операции по выбранным строкам. Применение атомарно, его можно отменить.",
"confirmWithout": "Подтверждаю применение без полной сверки остатков",
"confirmReason": "Причина",
"reparse": "Переразобрать",
"revert": "Отменить применение",
"revertTitle": "Отменить применение импорта",
"revertBody": "Операции, созданные импортом «{{fileName}}», будут удалены атомарно; затронутые месяцы потребуют переоткрытия."
},
"analytics": {
"title": "Аналитика",
"subtitle": "Четыре фиксированных отчёта по вашему пространству.",
"range": "Период:",
"months_one": "{{count}} месяц",
"months_few": "{{count}} месяца",
"months_many": "{{count}} месяцев",
"months_other": "{{count}} месяца",
"noData": "Нет данных за период.",
"categorySpend": "Расходы по категориям",
"categorySpendTable": "Расходы по категориям за период",
"planFact": "План и факт",
"planFactTable": "План и факт по категориям за месяц",
"cashFlow": "Доходы и расходы",
"cashFlowTable": "Доходы, расходы и нетто по месяцам",
"balances": "Остатки и долг",
"balancesTable": "Остатки по счетам",
"income": "Доходы",
"expense": "Расходы",
"net": "Нетто",
"assets": "Активы",
"liabilities": "Долги",
"asOf": "Состояние на {{asOf}}",
"unallocated": "Без распределения"
},
"settings": {
"title": "Настройки и данные",
"subtitle": "Профиль, экспорт и управление данными пространства.",
"profile": "Профиль",
"timezone": "Часовой пояс",
"dataTitle": "Данные",
"export": "Запросить экспорт",
"exportHint": "Архив ZIP (CSV + JSON) со счетами, операциями, бюджетами и справочниками готовится в фоне; ссылка придёт в приложении.",
"deletionTitle": "Удаление пространства",
"deletionHint": "Пространство будет заблокировано немедленно и удалено через 30 дней. До истечения срока удаление можно отменить.",
"deletionPhrase": "Подтверждающая фраза",
"deletionPhraseHint": "Введите DELETE прописными буквами",
"phraseMismatch": "Введите ровно DELETE",
"deletionRequest": "Запросить удаление",
"deletionPending": "Пространство ожидает удаления {{cancelsUntil}}. Вы ещё можете отменить.",
"deletionCancel": "Отменить удаление",
"deletionStatusActive": "Активно"
},
"toast": {
"accountCreated": "Счёт «{{name}}» создан",
"accountArchived": "Счёт отправлен в архив",
"operationCreated": "Операция создана",
"operationVoided": "Операция отменена",
"categoryAssigned": "Категория назначена",
"planUpdated": "План обновлён",
"categoryFunded": "Категория обеспечена",
"monthClosed": "Месяц закрыт",
"monthReopened": "Месяц открыт заново",
"planCopied": "План прошлого месяца скопирован",
"importUploaded": "Выписка загружена, разбор запущен",
"importConfirmed": "Импорт применён",
"importReverted": "Импорт отменён",
"reparseQueued": "Переразбор запущен",
"exportQueued": "Экспорт поставлен в очередь",
"exportReady": "Экспорт готов к скачиванию",
"deletionRequested": "Удаление запрошено: 30 дней на отмену",
"deletionCancelled": "Удаление отменено"
},
"notFound": {
"title": "Страница не найдена",
"subtitle": "Такой страницы нет. Проверьте адрес или вернитесь к счетам.",
"back": "К счетам"
},
"categories": {
"groceries": "Продукты",
"transport": "Транспорт",
"housing": "Жильё",
"utilities": "Коммунальные",
"health": "Здоровье",
"education": "Образование",
"entertainment": "Развлечения",
"eating_out": "Кафе и рестораны",
"clothes": "Одежда",
"personal": "Личное",
"savings": "Накопления",
"debts": "Погашение долгов",
"other": "Прочее"
}
}