| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735 |
- {
- "page": {
- "notFound": "Запись обслуживания не найдена",
- "updated": "Запись обслуживания обновлена",
- "failedUpdate": "Не удалось обновить запись обслуживания",
- "deleteTitle": "Удалить запись обслуживания",
- "deleteDescription": "Это безвозвратно удалит запись обслуживания и все связанные данные. Это действие необратимо.",
- "deleted": "Запись обслуживания удалена",
- "failedDelete": "Не удалось удалить",
- "datesExpiredTitle": "Даты счёта истекли",
- "datesExpiredDescription": "Дата счёта или срок оплаты истёк. Хотите обновить даты перед продолжением?",
- "datesExpiredUpdate": "Обновить даты и продолжить",
- "datesExpiredProceed": "Продолжить без изменений",
- "datesExpiredUseToday": "Обновить до сегодняшней даты",
- "datesExpiredCustomize": "Выбрать даты вручную",
- "datesExpiredBack": "Назад",
- "datesExpiredSetToday": "Установить на сегодня",
- "customFieldsInvalid": "Заполните все обязательные пользовательские поля",
- "customFieldsSaveFailed": "Не удалось сохранить пользовательские поля",
- "problems": {
- "title": "Заказу нужно название, прежде чем его можно сохранить.",
- "negative": "Количество, часы, цены и затраты не могут быть отрицательными.",
- "partName": "У каждой детали с ценой должно быть название.",
- "laborDescription": "У каждой строки работ с часами или ставкой должно быть описание.",
- "concernCondition": "Если у пункта указаны причина, устранение или проверка, заполните и симптом."
- }
- },
- "header": {
- "tabs": {
- "details": "Детали",
- "images": "Изображения",
- "video": "Видео",
- "documents": "Документы",
- "statusReports": "Отчёты о состоянии"
- },
- "save": "Сохранить",
- "pdf": "PDF",
- "email": "Эл. почта",
- "share": "Поделиться",
- "notify": "Уведомить",
- "delete": "Удалить",
- "unpaid": "Не оплачено",
- "unsavedChanges": "Несохранённые изменения",
- "saved": "Сохранено",
- "joinCall": "Присоединиться к видеозвонку",
- "moreActions": "Другие действия",
- "designMenu": "Дизайн счёта",
- "designMenuLoading": "Проверяем, с каким дизайном печатается этот счёт...",
- "designMenuExplain": "Ушёл клиенту {date}, поэтому печатается с тем дизайном, с которым был отправлен. Выбор другого меняет только внешний вид. То, что написано в счёте, останется как при отправке, а прежний вид не сохраняется.",
- "designSentWith": "Дизайн на момент отправки",
- "designFollow": "Как текущий по умолчанию",
- "designFollowNamed": "Как текущий по умолчанию ({name})",
- "designDefaultName": "текущий дизайн по умолчанию",
- "designPickConfirmTitle": "Перевести этот счёт на {name}?",
- "designPickConfirmBody": "Меняется только внешний вид. Данные сервиса, клиент, условия оплаты и суммы останутся ровно такими, какими были отправлены. Нынешний дизайн не сохраняется, поэтому отменить это не получится.",
- "designPickConfirm": "Изменить дизайн",
- "designPickDone": "Счёт теперь печатается с дизайном {name}",
- "designPickFailed": "Не удалось изменить дизайн"
- },
- "basicInfo": {
- "title": "Основная информация",
- "invoiceDetails": "Детали счёта",
- "customerInfo": "Клиент и транспорт",
- "paid": "Оплачено",
- "markPaid": "Отметить как оплачено",
- "markUnpaid": "Отметить как неоплачено",
- "vehicle": "Транспортное средство",
- "open": "Открыть",
- "customer": "Клиент",
- "titleLabel": "Название *",
- "titlePlaceholder": "Замена масла",
- "date": "Дата",
- "type": "Тип",
- "mileage": "Пробег",
- "mileageMarine": "Моточасы",
- "status": "Статус",
- "technician": "Механик",
- "invoiceNumber": "Номер счёта",
- "invoiceDate": "Дата счёта",
- "invoiceDueDate": "Срок оплаты",
- "typeOptions": {
- "maintenance": "Техобслуживание",
- "repair": "Ремонт",
- "upgrade": "Модернизация",
- "inspection": "Осмотр"
- },
- "statusOptions": {
- "pending": "Ожидает",
- "in_progress": "В работе",
- "waiting_parts": "Ожидание запчастей",
- "completed": "Завершено"
- },
- "searchVehicles": "Поиск транспортных средств...",
- "noVehicleFound": "Транспортное средство не найдено.",
- "techPicker": {
- "placeholder": "Выберите или введите имя...",
- "searchPlaceholder": "Поиск или ввод имени...",
- "useCustom": "Использовать \"{search}\"",
- "typePrompt": "Введите имя...",
- "boardTechnicians": "Механики доски",
- "teamMembers": "Участники команды"
- },
- "design": "Дизайн счёта",
- "designDefault": "По умолчанию для мастерской",
- "designFollowing": "По умолчанию ({name})",
- "designSaved": "Дизайн счёта обновлён",
- "designFollowingRule": "По умолчанию ({name}, {rule})",
- "designRule": {
- "parts_sale": "Продажа только запчастей"
- },
- "designSaveFailed": "Не удалось изменить дизайн счёта"
- },
- "parts": {
- "title": "Запчасти",
- "fromInventory": "Со склада",
- "addPart": "Добавить запчасть",
- "partNumber": "Арт. №",
- "name": "Название",
- "qty": "Кол-во",
- "unitCost": "Себестоимость",
- "unitCostHint": "Закупочная цена (внутренняя — клиенту не показывается)",
- "markupPercent": "Наценка %",
- "markupPercentHint": "Наценка к себестоимости (внутренняя — клиенту не показывается)",
- "applyMarkup": "Применить {percent}%",
- "applyMarkupHint": "Повторно применить наценку {percent}% к себестоимости в каждой строке",
- "unitPrice": "Цена за ед.",
- "total": "Итого",
- "namePlaceholder": "Название *",
- "subtotal": "Подитог запчастей: {amount}",
- "inventoryTitle": "Выбор запчасти со склада",
- "searchInventory": "Поиск на складе...",
- "inStock": "{quantity} в наличии",
- "noInventory": "Запчасти на складе не найдены.",
- "scanBarcode": "Сканировать",
- "scanTitle": "Сканировать штрихкод",
- "partFound": "\"{name}\" добавлено из склада",
- "partNotFound": "Деталь для штрихкода \"{barcode}\" не найдена",
- "deleteRow": "Удалить строку",
- "outOfStock": "Нет в наличии",
- "onBackorder": "Под заказ ({count})",
- "nameMissingHint": "Строки без названия детали не сохраняются."
- },
- "labor": {
- "title": "Работа",
- "addLabor": "Добавить работу",
- "fromPresets": "Из шаблонов",
- "description": "Описание",
- "hours": "Часы",
- "rate": "Ставка ({currency}/ч)",
- "total": "Итого",
- "descriptionPlaceholder": "Описание *",
- "subtotal": "Подитог работ: {amount}",
- "addService": "Добавить услугу",
- "addFinding": "Наблюдение",
- "newObservation": "Новое наблюдение",
- "addExisting": "Показать существующие ({count})",
- "qty": "Кол-во",
- "qtyOrHours": "Услуга / Часы",
- "hourlyTag": "н/ч",
- "serviceTag": "усл.",
- "hourlyHint": "Почасовая: оценка по нормо-часам (часы × ставка/час). Нажмите для изменения.",
- "serviceHint": "Услуга: фиксированная цена за единицу. Нажмите для изменения.",
- "deleteRow": "Удалить строку",
- "descriptionMissingHint": "Строки без описания не сохраняются."
- },
- "liveLabor": {
- "title": "{count, plural, one {Механик добавил # строку работ в этот заказ} few {Механик добавил # строки работ в этот заказ} many {Механик добавил # строк работ в этот заказ} other {Механик добавил # строк работ в этот заказ}}",
- "body": "Пока вы редактируете, она не попадает в список. При следующем сохранении она сохранится в любом случае.",
- "show": "Показать"
- },
- "totals": {
- "title": "Итоги",
- "parts": "Запчасти",
- "labor": "Работа",
- "subtotal": "Подитог",
- "subtotalInclTax": "Подитог (с НДС)",
- "discount": "Скидка",
- "discountNone": "Нет",
- "discountPercentage": "Процент",
- "discountFixed": "Фиксированная",
- "tax": "Налог",
- "taxIncluded": "Налог (вкл.)",
- "total": "Итого",
- "inclusiveModeHint": "Цены позиций вводятся с НДС. Итоги показывают разбивку: без НДС + НДС.",
- "partsCost": "Себестоимость запчастей (внутр.)"
- },
- "notes": {
- "title": "Заметки",
- "public": "Публичные",
- "internal": "Внутренние",
- "publicPlaceholder": "Заметки, видимые на счёте...",
- "internalPlaceholder": "Внутренние заметки (не показываются на счёте)...",
- "publicHelper": "Отображаются на счёте и в общих документах",
- "internalHelper": "Видно только вашей команде",
- "aiWrite": "ИИ-генерация",
- "aiGenerated": "ИИ-заметки успешно сгенерированы",
- "aiGenerateFailed": "Не удалось сгенерировать ИИ-заметки",
- "aiDialogTitle": "ИИ-генерация",
- "aiDialogDescription": "ИИ проанализирует запчасти и работы в этой записи обслуживания и создаст профессиональное описание. Результат будет записан в текущий выбранный тип заметки.",
- "aiGenerate": "Сгенерировать",
- "aiOverwriteDescription": "Текущая заметка уже содержит текст. Вы можете заменить его или добавить сгенерированный ИИ текст ниже.",
- "aiOverwriteReplace": "Заменить",
- "aiOverwriteAppend": "Добавить",
- "aiOverwriteCancel": "Отмена",
- "aiDontShowAgain": "Больше не показывать",
- "internalTitle": "Внутренние заметки",
- "publicTitle": "Заметки для клиента"
- },
- "invoice": {
- "title": "Итоги по счёту",
- "parts": "Запчасти",
- "labor": "Работа",
- "subtotal": "Подитог",
- "subtotalInclTax": "Подитог (с НДС)",
- "discount": "Скидка",
- "tax": "Налог ({rate}%)",
- "taxIncluded": "Налог (вкл., {rate}%)",
- "total": "Итого",
- "paid": "Оплачено",
- "balanceDue": "К оплате",
- "paidBadge": "ОПЛАЧЕНО",
- "entityLabel": "Счёт",
- "emailSubject": "Подтверждение оплаты",
- "statusEmailSubject": "Обновление статуса обслуживания",
- "markCompletedTitle": "Отметить этот счёт как завершённый?",
- "markCompletedDescription": "Он уже отправлен клиенту, но всё ещё помечен как незавершённый, поэтому останется на доске работ.",
- "markCompletedConfirm": "Отметить завершённым",
- "lockedFieldsetLabel": "Счёт заблокирован, редактирование отключено"
- },
- "payments": {
- "title": "Платежи",
- "markUnpaid": "Отметить как неоплаченный",
- "markPaid": "Отметить как оплаченный",
- "recordPayment": "Записать платёж",
- "totalPaid": "Всего оплачено",
- "amount": "Сумма",
- "date": "Дата",
- "method": "Способ",
- "note": "Примечание",
- "notePlaceholder": "Необязательное примечание",
- "savePayment": "Сохранить платёж",
- "methodOptions": {
- "cash": "Наличные",
- "card": "Карта",
- "transfer": "Перевод",
- "other": "Другое"
- },
- "recorded": "Платёж записан",
- "markedPaid": "Отмечено как оплаченный",
- "markedUnpaid": "Отмечено как неоплаченный",
- "deleted": "Платёж удалён",
- "failedRecord": "Не удалось записать платёж",
- "failedStatus": "Не удалось обновить статус оплаты",
- "failedDelete": "Не удалось удалить платёж",
- "deleteTitle": "Удалить платёж",
- "deleteDescription": "Эта запись платежа будет удалена.",
- "failedPdf": "Не удалось сгенерировать PDF-счёт",
- "received": "Полученные платежи",
- "noneYet": "Оплат пока нет.",
- "balanceDue": "К оплате"
- },
- "attachments": {
- "deleteTitle": "Удалить вложение",
- "deleteDescription": "Это вложение будет безвозвратно удалено. Это действие необратимо.",
- "deleted": "Вложение удалено",
- "failedDelete": "Не удалось удалить",
- "images": "Изображения ({count})",
- "videos": "Видео ({count})",
- "diagnostics": "Диагностические отчёты ({count})",
- "documents": "Документы ({count})",
- "download": "Скачать",
- "close": "Закрыть"
- },
- "share": {
- "title": "Поделиться счётом",
- "description": "Создайте публичную ссылку, по которой любой сможет просмотреть и скачать этот счёт без входа в систему.",
- "notifyTitle": "Уведомить {name}",
- "email": "Эл. почта",
- "noEmail": "(эл. почта не указана)",
- "sms": "SMS",
- "noPhone": "(телефон не указан)",
- "sendNotification": "Отправить уведомление",
- "revokeLink": "Отозвать ссылку",
- "generateLink": "Создать публичную ссылку",
- "emailSent": "Письмо отправлено",
- "failedEmail": "Не удалось отправить письмо",
- "smsSent": "SMS отправлено",
- "failedSms": "Не удалось отправить SMS",
- "copyLink": "Копировать ссылку"
- },
- "sidebar": {
- "vehicle": "Транспортное средство",
- "customer": "Клиент",
- "vin": "VIN: {vin}",
- "mileageAtService": "Пробег при обслуживании: {mileage} {unit}",
- "engineHoursAtService": "Моточасы при обслуживании: {mileage} {unit}",
- "sharedLink": {
- "title": "Общая ссылка",
- "sharedOn": "Опубликовано {date}",
- "notViewed": "Ещё не просмотрено",
- "viewedTimes": "Просмотрено {count, plural, one {# раз} few {# раза} other {# раз}}",
- "lastViewed": "Последний раз {date}",
- "copyLink": "Копировать ссылку",
- "linkCopied": "Ссылка скопирована"
- }
- },
- "images": {
- "title": "Фотографии обслуживания",
- "dropzone": "Перетащите изображения сюда или нажмите для выбора",
- "uploading": "Загрузка...",
- "formats": "JPG, PNG, WebP — макс. 10МБ каждое",
- "uploadingImages": "Загрузка изображений...",
- "limitReached": "Лимит изображений достигнут ({count}/{max})",
- "upgradePrompt": "Обновите тариф для загрузки дополнительных изображений.",
- "onlyAllowed": "Допускаются только изображения JPG, PNG и WebP. {names} пропущены.",
- "onlyUploading": "Загружается только {count} изображений для соблюдения лимита.",
- "uploadingCount": "Загрузка изображений: {count}...",
- "uploadedCount": "Загружено изображений: {count}",
- "uploadFailed": "Загрузка не удалась",
- "deleted": "Изображение удалено",
- "failedDelete": "Не удалось удалить изображение",
- "failedUpdate": "Не удалось обновить",
- "description": "Описание...",
- "invoice": "Счёт"
- },
- "videos": {
- "title": "Видео обслуживания",
- "dropzone": "Перетащите видео сюда или нажмите для выбора",
- "uploading": "Загрузка...",
- "formats": "MP4, WebM, MOV — макс. 10МБ каждое",
- "uploadingVideos": "Загрузка видео...",
- "uploadingCount": "Загрузка видео: {count}...",
- "uploadedCount": "Загружено видео: {count}",
- "uploadFailed": "Загрузка не удалась",
- "deleted": "Видео удалено",
- "failedDelete": "Не удалось удалить видео",
- "failedUpdate": "Не удалось обновить",
- "invoice": "Счёт"
- },
- "documents": {
- "diagnosticTitle": "Диагностические отчёты",
- "documentsTitle": "Документы",
- "dropzone": "Перетащите файлы сюда или нажмите для выбора",
- "uploading": "Загрузка...",
- "diagnosticFormats": "PDF, CSV, TXT — макс. 10МБ каждый",
- "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — макс. 10МБ каждый",
- "uploadingReports": "Загрузка отчётов...",
- "uploadingDocuments": "Загрузка документов...",
- "diagnosticLimitReached": "Лимит диагностических отчётов достигнут ({count}/{max})",
- "documentLimitReached": "Лимит документов достигнут ({count}/{max})",
- "upgradePrompt": "Обновите тариф для загрузки дополнительных файлов.",
- "diagnosticLabel": "Диагностический отчёт",
- "documentLabel": "Документ",
- "limitReachedToast": "Лимит {label} достигнут ({count}/{max}). Обновите тариф для увеличения.",
- "onlyUploading": "Загружается только {count} файлов для соблюдения лимита.",
- "uploadingCount": "Загрузка файлов: {count}...",
- "uploadedCount": "Загружено файлов: {count}",
- "uploadFailed": "Загрузка не удалась",
- "deleted": "Файл удалён",
- "failedDelete": "Не удалось удалить файл",
- "failedUpdate": "Не удалось обновить",
- "invoice": "Счёт"
- },
- "schedule": {
- "title": "Расписание",
- "date": "Дата",
- "startTime": "Время начала",
- "endTime": "Время окончания",
- "durationPresets": "Длительность",
- "technician": "Механик",
- "selectTechnician": "Выберите механика...",
- "searchOrCreate": "Поиск или создание механика...",
- "createTechnician": "Создать \"{name}\"",
- "creating": "Создание...",
- "failedCreate": "Не удалось создать механика",
- "addNew": "+ Добавить нового",
- "add": "Добавить",
- "newTechPlaceholder": "Имя механика...",
- "assign": "Назначить на доску",
- "assigned": "Назначено на доску работ",
- "failedAssign": "Не удалось назначить",
- "assignNotAllowed": "У вас нет разрешения назначать техников. Попросите владельца или администратора разрешить вашей роли изменять рабочую доску.",
- "endBeforeStart": "Время окончания должно быть позже времени начала",
- "failedUpdate": "Не удалось обновить время в расписании",
- "splitCreated": "Работа занимает несколько дней — создано продолжение на следующий день",
- "customTechnicians": "Свои",
- "readMore": "Подробнее",
- "setDefaults": "Настройки по умолчанию",
- "workBay": "Пост",
- "selectWorkBay": "Выберите пост…",
- "noWorkBay": "Без поста",
- "noTechnician": "Без механика",
- "technicians": "Механики",
- "otherTeamMembers": "Другие участники",
- "makeTechnician": "Сделает механиком",
- "addSomeoneNew": "Добавить человека",
- "notOnBoard": "Ещё не на доске",
- "putOnBoard": "Добавить на доску",
- "slotTaken": "{count, plural, one {Это время уже занято} other {На это время приходится # пересечений}}",
- "anotherJob": "другая работа",
- "clashTechnician": "техник занят",
- "clashBay": "пост занят",
- "clashBoth": "заняты оба",
- "bookedAnyway": "Всё равно сохранено. Измените время или выберите ближайшее свободное.",
- "pickNextAvailable": "Выбрать ближайшее свободное время",
- "findingSlot": "Поиск времени…",
- "slotPicked": "Назначено на ближайшее свободное время",
- "noSlotFound": "В ближайшие недели свободного времени не найдено",
- "assignedTitle": "Назначенный механик",
- "boardLink": "Доска работ",
- "someoneElse": "Кто-то другой",
- "loadOf": "{booked} / {capacity} ч",
- "loadFree": "Свободно {hours} ч",
- "loadFull": "Всё занято",
- "loadOn": "Занятые часы на {date}",
- "promisedAt": "Обещано клиенту",
- "promisedPlaceholder": "Срок ещё не обещан",
- "promisedClear": "Очистить"
- },
- "notifications": {
- "title": "Уведомления клиента",
- "viaSms": "через SMS",
- "viaEmail": "по эл. почте",
- "justNow": "Только что",
- "minutesAgo": "{count}м назад",
- "hoursAgo": "{count}ч назад",
- "daysAgo": "{count}д назад"
- },
- "table": {
- "warranty": "Гарантия"
- },
- "warranty": {
- "title": "Гарантия",
- "months": "Срок (месяцев)",
- "notes": "Условия гарантии",
- "notesPlaceholder": "напр. 12-месячная гарантия на все запчасти и работу...",
- "expiresAt": "Истекает",
- "presets": {
- "3months": "3 мес",
- "6months": "6 мес",
- "12months": "12 мес",
- "24months": "24 мес"
- },
- "status": {
- "active": "Активна",
- "expiring": "Истекает",
- "expired": "Истекла",
- "none": "Нет"
- },
- "statementLabel": "Что клиенту сообщается о гарантии",
- "statement": {
- "none": "Не указано",
- "included": "Предоставляется",
- "not_included": "Не предоставляется"
- },
- "noneHint": "В этом документе о гарантии ничего не печатается.",
- "mileageWithUnit": "Лимит пробега ({unit})",
- "notIncludedNotes": "Заявление для клиента",
- "notIncludedPlaceholder": "напр. Мастерская не даёт гарантию на запчасти, предоставленные клиентом.",
- "printedHint": "Печатается под гарантией в документе.",
- "notIncludedHint": "Оставьте пустым, и в документе будет указано, что законные права не затрагиваются.",
- "summaryMonths": "{count} мес."
- },
- "concerns": {
- "title": "Обращения клиента",
- "hint": "Почему клиент обратился, своими словами. Отдельная строка для каждого названного пункта.",
- "add": "Добавить ещё",
- "placeholder": "При торможении сзади слышен шум",
- "remove": "Удалить этот пункт",
- "notAnswered": "По этому пункту пока ничего не найдено",
- "answered": "Найдено по этому пункту: {count}",
- "storyTitle": "Описание работ",
- "storyHint": "Симптом, причина, устранение, проверка. Нажмите на шаг, чтобы открыть его; по одной строке на каждый пункт, названный клиентом или замеченный вами.",
- "steps": {
- "condition": "Симптом",
- "cause": "Причина",
- "correction": "Устранение",
- "confirm": "Проверка"
- },
- "conditionPlaceholder": "Что сообщил клиент или что заметили вы",
- "causePlaceholder": "Что показала диагностика: в чём первопричина",
- "correctionPlaceholder": "Что сделано для устранения",
- "confirmPlaceholder": "Как проверен ремонт: тест-драйв, повторное сканирование, симптом исчез",
- "markConfirmed": "Проверено",
- "confirmedBy": "Проверено: {name}, {date}",
- "confirmedAt": "Проверено {date}",
- "confirmedOnSave": "При сохранении будет отмечено вашим именем",
- "confirmedCount": "Проверено {confirmed} из {total}",
- "findingsCount": "{count, plural, one {# наблюдение} few {# наблюдения} many {# наблюдений} other {# наблюдения}}",
- "addFinding": "Добавить наблюдение",
- "unconfirmedTitle": "Завершить с непроверенными пунктами?",
- "unconfirmedBody": "{count, plural, =1 {Один пункт не проверен после ремонта:} one {# пункт не проверен после ремонта:} few {# пункта не проверены после ремонта:} many {# пунктов не проверены после ремонта:} other {# пункта не проверены после ремонта:}}",
- "unconfirmedProceed": "Всё равно завершить",
- "addMedia": "Добавить медиа",
- "mediaUploading": "Загрузка…",
- "mediaAdded": "{count, plural, one {Добавлен # файл} few {Добавлено # файла} many {Добавлено # файлов} other {Добавлено # файла}}",
- "mediaFailed": "Не удалось загрузить {name}",
- "mediaTypes": "Выберите фото (JPG, PNG, WebP) или видео.",
- "dictate": {
- "start": "Диктовать",
- "listening": "Слушаю",
- "startHint": "Говорите, и текст появится здесь. Ничего не записывается.",
- "stopHint": "Перестать слушать",
- "notAllowed": "Браузеру не разрешён доступ к микрофону. Разрешите его для этого сайта и попробуйте снова.",
- "noMicrophone": "Микрофон не найден.",
- "failed": "Диктовка остановлена. Попробуйте снова.",
- "startHintServer": "Говорите, и текст пишется по ходу речи. Звук уходит в вашу речевую модель на расшифровку и не сохраняется.",
- "transcribing": "Завершение…",
- "language": "Язык речи",
- "auto": "Авто",
- "nothingHeard": "Ничего не было слышно.",
- "fellBack": "Пока используется встроенная диктовка браузера.",
- "autoLong": "Авто (определить язык)",
- "engine": "Кто записывает",
- "engineAi": "Речевая модель (точнее)",
- "engineBrowser": "Браузер (пишет по ходу речи)",
- "liveFellBack": "Текст появляется частями раз в несколько секунд, а не по словам."
- },
- "stepEmpty": "Ещё не заполнено",
- "removeTitle": "Удалить этот пункт?",
- "removeBody": "Его симптом, причина, устранение и проверка удалятся вместе с ним при сохранении заказ-наряда.",
- "removeAttached": "Его наблюдения и медиа останутся в заказ-наряде, но уже не будут привязаны к пункту.",
- "removeConfirm": "Удалить пункт",
- "saveFirst": "Сначала сохраните заказ-наряд"
- },
- "videoCall": {
- "title": "Видеозвонок",
- "none": "У этого заказ-наряда нет видеозвонка.",
- "needsSchedule": "Сначала укажите время начала. Встреча следует расписанию.",
- "add": "Добавить встречу {provider}",
- "addedHere": "добавлен из этого заказ-наряда",
- "fromCalendar": "из события календаря",
- "join": "Присоединиться",
- "copy": "Копировать ссылку",
- "copied": "Ссылка скопирована",
- "remove": "Удалить",
- "removeTitle": "Удалить видеозвонок?",
- "removeDescription": "Встреча удаляется у провайдера. Те, у кого уже есть ссылка, больше не смогут присоединиться.",
- "created": "Встреча создана. Ссылка на заказ-наряде.",
- "removed": "Встреча удалена",
- "failed": "Что-то пошло не так",
- "shareHint": "Клиент получает эту ссылку, только когда вы её отправите.",
- "shareHintNoChannel": "Клиент получает эту ссылку, только когда вы её отправите. Канал сообщений не настроен, поэтому скопируйте её в сообщение сами.",
- "send": {
- "button": "Отправить клиенту",
- "title": "Отправить ссылку на видеозвонок",
- "description": "Отправить ссылку для подключения клиенту {name}.",
- "messageLabel": "Примечание (необязательно)",
- "messagePlaceholder": "Что клиенту стоит знать до звонка...",
- "linkAlwaysIncluded": "Ссылка для подключения всегда добавляется под вашим примечанием.",
- "sms": "SMS",
- "email": "Эл. почта",
- "telegram": "Telegram",
- "noPhone": "(нет телефона)",
- "noEmail": "(нет эл. почты)",
- "noTelegram": "(чат не привязан)",
- "notAvailable": "(не настроено)",
- "cancel": "Отмена",
- "send": "Отправить",
- "sent": "Ссылка на видеозвонок отправлена",
- "partlySent": "Отправлено через {sent}; не отправлено через {failed}",
- "failed": "Не удалось отправить ссылку"
- },
- "notify": {
- "invitation": "Здравствуйте, {name}! Видеозвонок по поводу {vehicle} состоится {when}. Подключайтесь здесь: {url}",
- "invitationNoTime": "Здравствуйте, {name}! Вот ссылка на видеозвонок по поводу {vehicle}: {url}",
- "joinLine": "Подключиться к видеозвонку: {url}",
- "emailSubject": "Видеозвонок по поводу вашего {vehicle}"
- }
- },
- "modern": {
- "statusLabel": "Статус заказ-наряда",
- "back": "Назад",
- "backToClassic": "Вернуться к классическому виду",
- "openCustomer": "Открыть клиента",
- "serviceHistory": "История обслуживания",
- "changeVehicle": "Сменить транспортное средство",
- "vehicleChangesOnSave": "При сохранении заказ-наряд перейдёт на это транспортное средство.",
- "phone": "Телефон",
- "email": "Эл. почта",
- "notSet": "Не указано",
- "noCustomer": "В этом заказ-наряде нет клиента.",
- "invoiceTitle": "Счёт и оплата",
- "filesTitle": "Файлы и медиа",
- "activity": {
- "title": "Активность",
- "messageSent": "Клиенту отправлено сообщение",
- "linkShared": "Отправлена ссылка на счёт",
- "linkViewed": "{count, plural, =1 {Клиент открыл ссылку} one {Клиент открыл ссылку # раз} few {Клиент открыл ссылку # раза} many {Клиент открыл ссылку # раз} other {Клиент открыл ссылку # раза}}",
- "paymentTaken": "Записан платёж {amount}",
- "statusSet": "Статус изменён на {status}"
- },
- "invite": {
- "title": "Страница заказ-наряда обновлена.",
- "body": "Более понятная компоновка с теми же полями. Вернуться можно в любой момент.",
- "try": "Попробовать",
- "dismiss": "Не сейчас",
- "menu": "Попробовать новый вид"
- },
- "promised": "Обещано {date}",
- "promisedOverdue": "Обещано {date}, просрочено",
- "opened": "Открыт {date}",
- "openedBy": "Открыт {date}, автор: {name}",
- "editTitle": "Изменить название",
- "titleField": "Название",
- "media": {
- "tabs": {
- "photos": "Фото",
- "diagnostics": "Диагностика",
- "dropoff": "Приёмка"
- },
- "summary": "{count, plural, one {# файл} few {# файла} many {# файлов} other {# файла}} · клиент видит только отмеченные",
- "customerCanSee": "Видно клиенту",
- "showToCustomer": "Показать клиенту",
- "hideFromCustomer": "Скрыть от клиента",
- "add": {
- "image": "Добавить фото",
- "document": "Добавить документы",
- "diagnostic": "Добавить диагностический отчёт",
- "video": "Добавить видео",
- "dropoff": "Добавить фото приёмки"
- },
- "dropHint": "Перетащите файлы или нажмите, чтобы выбрать",
- "added": "{count, plural, one {Добавлен # файл} few {Добавлено # файла} many {Добавлено # файлов} other {Добавлено # файла}}",
- "failed": "Не удалось загрузить {name}",
- "wrongType": "Эти файлы не подходят для этой вкладки: {names}",
- "limit": "Достигнут лимит ({count}/{max})",
- "dropoffHint": "Автомобиль в том виде, в каком он прибыл, со временем каждого снимка. Хранится для мастерской и не показывается клиенту, если вы не решите иначе."
- },
- "moneyBar": {
- "total": "Итого",
- "paid": "Оплачено",
- "balance": "К оплате",
- "settled": "Оплачено полностью",
- "takePayment": "Принять оплату",
- "preview": "Просмотр счёта",
- "previewShort": "Просмотр",
- "send": "Отправить клиенту",
- "sendShort": "Отправить"
- },
- "vehicleInfo": {
- "more": "Подробнее",
- "less": "Свернуть",
- "copy": "Копировать: {label}",
- "copied": "Скопировано",
- "lastInspection": "Последний техосмотр",
- "purchaseDate": "Дата покупки",
- "purchasePrice": "Цена покупки",
- "overdue": "просрочен",
- "customerSince": "Клиент с"
- },
- "moreStatuses": "Другие статусы"
- },
- "photoHandoff": {
- "button": "Добавить с телефона",
- "dialogTitle": "Добавить фото и документы с телефона",
- "dialogBody": "Снимайте или выбирайте фото или отправьте PDF с любого телефона. Всё сразу попадает в этот заказ-наряд.",
- "expires": "Код действует до {time}.",
- "waiting": "Ожидание фото и документов…",
- "received": "{count, plural, one {Получен # файл} few {Получено # файла} many {Получено # файлов} other {Получено # файла}}",
- "copyLink": "Копировать ссылку",
- "linkCopied": "Ссылка скопирована",
- "failed": "Не удалось создать код. Попробуйте ещё раз.",
- "done": "Готово",
- "pageTitle": "Добавить фото и документы",
- "forJob": "Заказ-наряд {number}",
- "takePhoto": "Сделать фото",
- "choosePhotos": "Выбрать фото",
- "hint": "Всё сразу попадает в заказ-наряд. Снимайте столько фото, сколько нужно.",
- "uploading": "Загрузка…",
- "added": "Добавлено",
- "notAdded": "Не добавлено",
- "retry": "Повторить",
- "addedCount": "{count, plural, one {Добавлен # файл} few {Добавлено # файла} many {Добавлено # файлов} other {Добавлено # файла}}",
- "expiredTitle": "Срок действия кода истёк",
- "invalidTitle": "Эта ссылка не работает",
- "errors": {
- "expired": "Попросите новый код на стойке. Каждый код действует 30 минут.",
- "invalid": "Отсканируйте код в заказ-наряде ещё раз.",
- "limit": "В этом заказ-наряде уже столько фото, сколько он может вместить.",
- "type": "Здесь можно добавлять только фото и документы PDF.",
- "tooLarge": "Файл слишком большой.",
- "failed": "Фото не добавлено. Проверьте подключение и попробуйте ещё раз.",
- "codeLimit": "С этим кодом уже добавлено столько фото, сколько допускает один код. Отсканируйте новый код на стойке."
- },
- "concernHeading": "Фото будут привязаны к этому пункту",
- "howTitle": "Как это работает",
- "step1": "Наведите камеру телефона на код и откройте ссылку.",
- "step2": "Сделайте фото или выберите фото или документы PDF, которые уже есть на телефоне.",
- "step3": "Они появляются в этом заказ-наряде по мере поступления.",
- "noSignIn": "Входить в систему на телефоне не нужно.",
- "customerToo": "Пользоваться могут сотрудники, и клиент тоже: дайте ему отсканировать код или отправьте ссылку.",
- "scope": "Ссылка только добавляет фото и документы в этот заказ-наряд и перестаёт работать через 30 минут.",
- "scanHint": "Отсканируйте камерой телефона",
- "chooseDocument": "Загрузить документ",
- "privacy": "То, что вы добавляете здесь, видит только сервис.",
- "dropoff": {
- "button": "Фото при приёмке",
- "dialogTitle": "Сфотографируйте автомобиль при приёмке",
- "dialogBody": "Обход автомобиля до начала работ: четыре стороны, одометр и уже имеющиеся повреждения. Это ваше подтверждение, если царапину когда-нибудь оспорят.",
- "step2": "Следуйте списку на телефоне: по одному фото каждой стороны, одометр и повреждения.",
- "scope": "Ссылка только добавляет фото приёмки к этому заказ-наряду и перестаёт работать через 30 минут.",
- "pageTitle": "Автомобиль при приёмке",
- "pageBody": "Делайте снимки по порядку. Добавьте крупный план уже имеющихся повреждений.",
- "retake": "Переснять",
- "slots": {
- "front": "Спереди",
- "right": "Правая сторона",
- "rear": "Сзади",
- "left": "Левая сторона",
- "odometer": "Одометр",
- "other": "Повреждение или другое"
- }
- }
- },
- "payCode": {
- "button": "Код для оплаты",
- "title": "Оплата по коду",
- "body": "Клиент сканирует код камерой телефона, открывается счёт, и он оплачивает его там.",
- "sharesInvoice": "Показ кода открывает счёт клиенту, так же как отправка. С этого момента счёт сохраняет данные, которые в нём есть сейчас.",
- "show": "Показать код",
- "failed": "Не удалось создать код. Попробуйте ещё раз.",
- "toPay": "К оплате",
- "scanHint": "Сканируйте камерой телефона",
- "copyLink": "Копировать ссылку",
- "linkCopied": "Ссылка скопирована",
- "waiting": "Ожидаем оплату. Обновляется автоматически.",
- "paid": "Оплата получена",
- "paidBody": "Оплата отражена в заказ-наряде.",
- "done": "Готово"
- },
- "customStatus": {
- "defaultMessage": "Здравствуйте, {customer_name}! Новости о вашем {vehicle}: {status}. {company_name}"
- }
- }
|