| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478 |
- {
- "page": {
- "notFound": "Rekord serwisu nie znaleziony",
- "updated": "Rekord serwisu zaktualizowany",
- "failedUpdate": "Nie udało się zaktualizować rekordu serwisu",
- "deleteTitle": "Usuń Rekord Serwisu",
- "deleteDescription": "Spowoduje to trwałe usunięcie tego rekordu serwisu i wszystkich związanych danych. Nie można tego cofnąć.",
- "deleted": "Rekord serwisu usunięty",
- "failedDelete": "Nie udało się usunąć",
- "datesExpiredTitle": "Daty faktury wygasły",
- "datesExpiredDescription": "Data faktury lub termin płatności już minął. Czy chcesz zaktualizować daty przed kontynuowaniem?",
- "datesExpiredUpdate": "Zaktualizuj daty i kontynuuj",
- "datesExpiredProceed": "Kontynuuj bez zmian",
- "datesExpiredUseToday": "Zaktualizuj do dzisiejszej daty",
- "datesExpiredCustomize": "Wybierz daty ręcznie",
- "datesExpiredBack": "Wstecz",
- "datesExpiredSetToday": "Ustaw na dziś",
- "customFieldsInvalid": "Proszę wypełnić wszystkie wymagane pola niestandardowe",
- "customFieldsSaveFailed": "Nie udało się zapisać pól niestandardowych",
- "problems": {
- "title": "Zlecenie musi mieć tytuł, zanim będzie można je zapisać.",
- "negative": "Ilości, godziny, ceny i koszty nie mogą być ujemne.",
- "partName": "Każda część z ceną musi mieć nazwę.",
- "laborDescription": "Każda pozycja robocizny z godzinami lub stawką musi mieć opis."
- }
- },
- "header": {
- "tabs": {
- "details": "Szczegóły",
- "images": "Obrazy",
- "video": "Wideo",
- "documents": "Dokumenty",
- "statusReports": "Raporty statusu"
- },
- "save": "Zapisz",
- "pdf": "PDF",
- "email": "Email",
- "share": "Udostępnij",
- "notify": "Powiadom",
- "delete": "Usuń",
- "unpaid": "Niezapłacone",
- "unsavedChanges": "Niezapisane zmiany",
- "saved": "Zapisano",
- "joinCall": "Dołącz do rozmowy wideo"
- },
- "basicInfo": {
- "title": "Informacje Podstawowe",
- "invoiceDetails": "Szczegóły faktury",
- "customerInfo": "Klient i pojazd",
- "paid": "Opłacone",
- "markPaid": "Oznacz jako opłacone",
- "markUnpaid": "Oznacz jako nieopłacone",
- "vehicle": "Pojazd",
- "open": "Otwarte",
- "customer": "Klient",
- "titleLabel": "Tytuł *",
- "titlePlaceholder": "Wymiana Oleju",
- "date": "Data",
- "type": "Typ",
- "mileage": "Przebieg",
- "mileageMarine": "Godziny Pracy",
- "status": "Status",
- "technician": "Technik",
- "invoiceNumber": "Numer Faktury",
- "invoiceDate": "Data faktury",
- "invoiceDueDate": "Termin płatności",
- "typeOptions": {
- "maintenance": "Konserwacja",
- "repair": "Naprawa",
- "upgrade": "Modernizacja",
- "inspection": "Inspekcja"
- },
- "statusOptions": {
- "pending": "Oczekujące",
- "in_progress": "W Trakcie",
- "waiting_parts": "Oczekiwanie na Części",
- "completed": "Ukończone"
- },
- "searchVehicles": "Szukaj pojazdów...",
- "noVehicleFound": "Pojazd nie znaleziony.",
- "techPicker": {
- "placeholder": "Wybierz lub wpisz nazwę...",
- "searchPlaceholder": "Szukaj lub wpisz nazwę...",
- "useCustom": "Użyj \"{search}\"",
- "typePrompt": "Wpisz nazwę...",
- "boardTechnicians": "Technicy z Tablicy",
- "teamMembers": "Członkowie Zespołu"
- },
- "design": "Projekt faktury",
- "designDefault": "Domyślny warsztatu",
- "designFollowing": "Domyślny ({name})",
- "designPinned": "Arkusz został zamrożony przy wystawieniu faktury {date}. Nowy wybór zadziała dopiero, gdy właściciel odblokuje fakturę i zostanie ona wysłana ponownie.",
- "designSaved": "Projekt faktury zaktualizowany",
- "designFollowingRule": "Domyślny ({name}, {rule})",
- "designRule": {
- "parts_sale": "Sprzedaż samych części"
- },
- "designSaveFailed": "Nie udało się zmienić projektu faktury"
- },
- "parts": {
- "title": "Części",
- "fromInventory": "Z Magazynu",
- "addPart": "Dodaj Część",
- "partNumber": "Nr Części",
- "name": "Nazwa",
- "qty": "Ilość",
- "unitCost": "Koszt",
- "unitCostHint": "Cena zakupu (wewnętrzne — nie pokazywane klientowi)",
- "markupPercent": "Marża %",
- "markupPercentHint": "Marża doliczana do kosztu (wewnętrzne — nie pokazywane klientowi)",
- "applyMarkup": "Zastosuj {percent}%",
- "applyMarkupHint": "Zastosuj ponownie marżę {percent}% do kosztu w każdym wierszu",
- "unitPrice": "Cena Jednostkowa",
- "total": "Razem",
- "namePlaceholder": "Nazwa *",
- "subtotal": "Razem Części: {amount}",
- "inventoryTitle": "Wybierz Część z Magazynu",
- "searchInventory": "Szukaj w magazynie...",
- "inStock": "{quantity} w magazynie",
- "noInventory": "Brak części w magazynie.",
- "scanBarcode": "Skanuj",
- "scanTitle": "Skanuj kod kreskowy",
- "partFound": "Dodano \"{name}\" z magazynu",
- "partNotFound": "Nie znaleziono części dla kodu kreskowego \"{barcode}\"",
- "deleteRow": "Delete row",
- "outOfStock": "Brak w magazynie",
- "onBackorder": "W zamówieniu ({count})",
- "nameMissingHint": "Wiersze bez nazwy części nie są zapisywane."
- },
- "labor": {
- "title": "Praca",
- "addLabor": "Dodaj Pracę",
- "fromPresets": "Z szablonów",
- "description": "Opis",
- "hours": "Godziny",
- "rate": "Stawka ({currency}/godz.)",
- "total": "Razem",
- "descriptionPlaceholder": "Opis *",
- "subtotal": "Razem Praca: {amount}",
- "addService": "Add Service",
- "addFinding": "Obserwacja",
- "newObservation": "Nowa obserwacja",
- "addExisting": "Pokaż istniejące ({count})",
- "qty": "Qty",
- "qtyOrHours": "Unit / Hours",
- "hourlyTag": "HR",
- "serviceTag": "SVC",
- "switchToHourly": "Switch to hourly pricing",
- "switchToService": "Switch to service pricing",
- "switchToHourlyHint": "Godzinowo: liczone według przepracowanych godzin (godziny × stawka/godz.). Kliknij, aby zmienić.",
- "switchToServiceHint": "Usługa: rozliczana jako stała opłata za jednostkę. Kliknij, aby zmienić.",
- "deleteRow": "Delete row",
- "descriptionMissingHint": "Wiersze bez opisu nie są zapisywane."
- },
- "totals": {
- "title": "Razem",
- "parts": "Części",
- "labor": "Praca",
- "subtotal": "Razem Częściowe",
- "subtotalInclTax": "Razem Częściowe (z podatkiem)",
- "discount": "Rabat",
- "discountNone": "Brak",
- "discountPercentage": "Procent",
- "discountFixed": "Stały",
- "tax": "Podatek",
- "taxIncluded": "Podatek (zaw.)",
- "total": "Razem",
- "inclusiveModeHint": "Ceny pozycji są wprowadzane z podatkiem. Sumy pokazują podział netto + podatek.",
- "partsCost": "Koszt części (wewnętrzny)"
- },
- "notes": {
- "title": "Notatki",
- "public": "Publiczne",
- "internal": "Wewnętrzne",
- "publicPlaceholder": "Notatki widoczne na fakturze...",
- "internalPlaceholder": "Notatki wewnętrzne (nie pokazywane na fakturze)...",
- "publicHelper": "Pokazane na fakturze i współdzielonych dokumentach",
- "internalHelper": "Widoczne tylko dla Twojego zespołu",
- "aiWrite": "AI Pisz",
- "aiGenerated": "Notatki AI wygenerowane pomyślnie",
- "aiGenerateFailed": "Nie udało się wygenerować notatek AI",
- "aiDialogTitle": "AI Pisz",
- "aiDialogDescription": "AI przeanalizuje części i robociznę w tym rekordzie serwisowym i wygeneruje profesjonalny opis. Wynik zostanie zapisany w wybranym typie notatki.",
- "aiGenerate": "Generuj",
- "aiOverwriteDescription": "Ta notatka ma już treść. Możesz ją zastąpić lub dołączyć tekst wygenerowany przez AI poniżej.",
- "aiOverwriteReplace": "Zastąp",
- "aiOverwriteAppend": "Dołącz",
- "aiOverwriteCancel": "Anuluj",
- "aiDontShowAgain": "Nie pokazuj ponownie"
- },
- "invoice": {
- "title": "Podsumowanie Faktury",
- "parts": "Części",
- "labor": "Praca",
- "subtotal": "Razem Częściowe",
- "subtotalInclTax": "Razem Częściowe (z podatkiem)",
- "discount": "Rabat",
- "tax": "Podatek ({rate}%)",
- "taxIncluded": "Podatek (zaw., {rate}%)",
- "total": "Razem",
- "paid": "Zapłacone",
- "balanceDue": "Pozostało do Zapłaty",
- "paidBadge": "ZAPŁACONE",
- "entityLabel": "Faktura",
- "emailSubject": "Potwierdzenie Płatności",
- "statusEmailSubject": "Aktualizacja statusu serwisu",
- "markCompletedTitle": "Oznaczyć tę fakturę jako zakończoną?",
- "markCompletedDescription": "Trafiła już do klienta, ale nadal jest oznaczona jako niezakończona, więc pozostanie na tablicy.",
- "markCompletedConfirm": "Oznacz jako zakończoną",
- "lockedFieldsetLabel": "Faktura zablokowana, edycja wyłączona"
- },
- "payments": {
- "title": "Płatności",
- "markUnpaid": "Oznacz jako Niezapłacone",
- "markPaid": "Oznacz jako Zapłacone",
- "recordPayment": "Zarejestruj Płatność",
- "totalPaid": "Razem Zapłacone",
- "amount": "Kwota",
- "date": "Data",
- "method": "Metoda",
- "note": "Notatka",
- "notePlaceholder": "Opcjonalna notatka",
- "savePayment": "Zapisz Płatność",
- "methodOptions": {
- "cash": "Gotówka",
- "card": "Karta",
- "transfer": "Przelew",
- "other": "Inne"
- },
- "recorded": "Płatność zarejestrowana",
- "markedPaid": "Oznaczone jako zapłacone",
- "markedUnpaid": "Oznaczone jako niezapłacone",
- "deleted": "Płatność usunięta",
- "failedRecord": "Nie udało się zarejestrować płatności",
- "failedStatus": "Nie udało się zaktualizować status płatności",
- "failedDelete": "Nie udało się usunąć płatności",
- "deleteTitle": "Usuń Płatność",
- "deleteDescription": "Spowoduje to usunięcie tego rekordu płatności.",
- "failedPdf": "Nie udało się wygenerować faktury PDF"
- },
- "attachments": {
- "deleteTitle": "Usuń Załącznik",
- "deleteDescription": "Spowoduje to trwałe usunięcie tego załącznika. Nie można tego cofnąć.",
- "deleted": "Załącznik usunięty",
- "failedDelete": "Nie udało się usunąć",
- "images": "Obrazy ({count})",
- "videos": "Wideo ({count})",
- "diagnostics": "Raporty Diagnostyczne ({count})",
- "documents": "Dokumenty ({count})",
- "download": "Download",
- "close": "Close"
- },
- "share": {
- "title": "Udostępnij Fakturę",
- "description": "Wygeneruj publiczny link, który pozwala każdemu wyświetlać i pobierać tę fakturę bez logowania.",
- "notifyTitle": "Powiadom {name}",
- "email": "Email",
- "noEmail": "(brak adresu email)",
- "sms": "SMS",
- "noPhone": "(brak numeru telefonu)",
- "sendNotification": "Wyślij Powiadomienie",
- "revokeLink": "Odwołaj Link",
- "generateLink": "Wygeneruj Publiczny Link",
- "emailSent": "Email wysłany",
- "failedEmail": "Nie udało się wysłać email",
- "smsSent": "SMS wysłany",
- "failedSms": "Nie udało się wysłać SMS",
- "copyLink": "Copy link"
- },
- "sidebar": {
- "vehicle": "Pojazd",
- "customer": "Klient",
- "vin": "VIN: {vin}",
- "mileageAtService": "Przebieg w chwili serwisu: {mileage} {unit}",
- "engineHoursAtService": "Godziny pracy przy serwisie: {mileage} {unit}",
- "sharedLink": {
- "title": "Udostępniony link",
- "sharedOn": "Udostępniono {date}",
- "notViewed": "Jeszcze nie wyświetlono",
- "viewedTimes": "Wyświetlono {count, plural, one {# raz} other {# razy}}",
- "lastViewed": "Ostatnio {date}",
- "copyLink": "Kopiuj link",
- "linkCopied": "Link skopiowany"
- }
- },
- "images": {
- "title": "Zdjęcia Serwisu",
- "dropzone": "Upuść zdjęcia tutaj lub kliknij, aby przeglądać",
- "uploading": "Przesyłanie...",
- "formats": "JPG, PNG, WebP — maks. 10 MB każde",
- "uploadingImages": "Przesyłanie zdjęć...",
- "limitReached": "Osiągnięto limit zdjęć ({count}/{max})",
- "upgradePrompt": "Ulepsz swój plan, aby przesłać więcej zdjęć.",
- "onlyAllowed": "Dozwolone są tylko obrazy JPG, PNG i WebP. {names} pominięto.",
- "onlyUploading": "Przesyłanie tylko {count} zdjęcia/zdjęć, aby nie przekroczyć limitu.",
- "uploadingCount": "Przesyłanie {count} zdjęcia/zdjęć...",
- "uploadedCount": "{count} zdjęcie/zdjęć przesłano",
- "uploadFailed": "Przesyłanie nie powiodło się",
- "deleted": "Zdjęcie usunięte",
- "failedDelete": "Nie udało się usunąć zdjęcia",
- "failedUpdate": "Nie udało się zaktualizować",
- "description": "Opis...",
- "invoice": "Faktura"
- },
- "videos": {
- "title": "Wideo Serwisu",
- "dropzone": "Upuść wideo tutaj lub kliknij, aby przeglądać",
- "uploading": "Przesyłanie...",
- "formats": "MP4, WebM, MOV — maks. 10 MB każde",
- "uploadingVideos": "Przesyłanie wideo...",
- "uploadingCount": "Przesyłanie {count} wideo...",
- "uploadedCount": "{count} wideo przesłano",
- "uploadFailed": "Przesyłanie nie powiodło się",
- "deleted": "Wideo usunięte",
- "failedDelete": "Nie udało się usunąć wideo",
- "failedUpdate": "Nie udało się zaktualizować",
- "invoice": "Faktura"
- },
- "documents": {
- "diagnosticTitle": "Raporty Diagnostyczne",
- "documentsTitle": "Dokumenty",
- "dropzone": "Upuść pliki tutaj lub kliknij, aby przeglądać",
- "uploading": "Przesyłanie...",
- "diagnosticFormats": "PDF, CSV, TXT — maks. 10 MB każdy",
- "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — maks. 10 MB każdy",
- "uploadingReports": "Przesyłanie raportów...",
- "uploadingDocuments": "Przesyłanie dokumentów...",
- "diagnosticLimitReached": "Osiągnięto limit raportów diagnostycznych ({count}/{max})",
- "documentLimitReached": "Osiągnięto limit dokumentów ({count}/{max})",
- "upgradePrompt": "Ulepsz swój plan, aby przesłać więcej.",
- "diagnosticLabel": "Raport diagnostyczny",
- "documentLabel": "Dokument",
- "limitReachedToast": "Osiągnięto limit {label} ({count}/{max}). Ulepsz swój plan, aby uzyskać więcej.",
- "onlyUploading": "Przesyłanie tylko {count} pliku/plików, aby nie przekroczyć limitu.",
- "uploadingCount": "Przesyłanie {count} pliku/plików...",
- "uploadedCount": "{count} plik(ów) przesłano",
- "uploadFailed": "Przesyłanie nie powiodło się",
- "deleted": "Plik usunięty",
- "failedDelete": "Nie udało się usunąć pliku",
- "failedUpdate": "Nie udało się zaktualizować",
- "invoice": "Faktura"
- },
- "schedule": {
- "title": "Harmonogram",
- "date": "Data",
- "startTime": "Czas rozpoczęcia",
- "endTime": "Czas zakończenia",
- "technician": "Technik",
- "selectTechnician": "Wybierz technika...",
- "searchOrCreate": "Szukaj lub utwórz technika...",
- "createTechnician": "Utwórz \"{name}\"",
- "creating": "Tworzenie...",
- "failedCreate": "Nie udało się utworzyć technika",
- "addNew": "+ Dodaj nowego",
- "add": "Dodaj",
- "newTechPlaceholder": "Nazwa technika...",
- "assign": "Przypisz do tablicy",
- "assigned": "Przypisano do tablicy roboczej",
- "failedAssign": "Przypisanie nie powiodło się",
- "endBeforeStart": "Czas zakończenia musi być po czasie rozpoczęcia",
- "failedUpdate": "Nie udało się zaktualizować harmonogramu",
- "splitCreated": "Zadanie obejmuje wiele dni — kontynuacja utworzona na następny dzień",
- "platformUsers": "Platform Users",
- "customTechnicians": "Custom",
- "readMore": "Czytaj więcej",
- "setDefaults": "Ustaw domyślne",
- "workBay": "Stanowisko",
- "selectWorkBay": "Wybierz stanowisko…",
- "noWorkBay": "Bez stanowiska",
- "noTechnician": "Bez mechanika",
- "technicians": "Technicy",
- "otherTeamMembers": "Pozostali członkowie zespołu",
- "makeTechnician": "Uczyni tę osobę technikiem",
- "addSomeoneNew": "Dodaj nową osobę",
- "notOnBoard": "Jeszcze nie na tablicy",
- "putOnBoard": "Dodaj do tablicy",
- "slotTaken": "{count, plural, one {Ten termin jest już zajęty} other {Ten termin ma # kolizji}}",
- "anotherJob": "inne zlecenie",
- "clashTechnician": "technik jest zajęty",
- "clashBay": "stanowisko jest zajęte",
- "clashBoth": "oba są zajęte",
- "bookedAnyway": "Zapisano mimo to. Zmień godzinę lub wybierz najbliższy wolny termin.",
- "pickNextAvailable": "Wybierz najbliższy wolny termin",
- "findingSlot": "Szukanie terminu…",
- "slotPicked": "Zaplanowano na najbliższy wolny termin",
- "noSlotFound": "Nie znaleziono wolnego terminu w najbliższych tygodniach"
- },
- "notifications": {
- "title": "Powiadomienia klienta",
- "viaSms": "przez SMS",
- "viaEmail": "przez e-mail",
- "justNow": "Właśnie teraz",
- "minutesAgo": "{count}m temu",
- "hoursAgo": "{count}g temu",
- "daysAgo": "{count}d temu"
- },
- "table": {
- "warranty": "Gwarancja"
- },
- "warranty": {
- "title": "Gwarancja",
- "months": "Czas trwania (miesiące)",
- "mileage": "Limit przebiegu",
- "notes": "Warunki gwarancji",
- "notesPlaceholder": "np. 12-miesięczna gwarancja na wszystkie części i robociznę...",
- "expiresAt": "Wygasa",
- "presets": {
- "3months": "3 m-ce",
- "6months": "6 m-cy",
- "12months": "12 m-cy",
- "24months": "24 m-ce"
- },
- "status": {
- "active": "Aktywna",
- "expiring": "Wygasa wkrótce",
- "expired": "Wygasła",
- "none": "Brak"
- },
- "defaults": {
- "title": "Domyślne ustawienia gwarancji",
- "description": "Ustaw domyślne warunki gwarancji dla nowych wpisów serwisowych"
- }
- },
- "concerns": {
- "title": "Zgłoszenia klienta",
- "addFirst": "Dodaj zgłoszenie klienta",
- "add": "Dodaj kolejne",
- "placeholder": "Przy hamowaniu słychać hałas z tyłu",
- "remove": "Usuń ten punkt",
- "notAnswered": "Nic jeszcze nie ustalono",
- "answered": "Ustalenia: {count}"
- },
- "videoCall": {
- "title": "Rozmowa wideo",
- "none": "To zlecenie nie ma rozmowy wideo.",
- "needsSchedule": "Najpierw ustaw godzinę rozpoczęcia. Spotkanie podąża za harmonogramem.",
- "add": "Dodaj spotkanie {provider}",
- "addedHere": "dodane z tego zlecenia",
- "fromCalendar": "z wydarzenia w kalendarzu",
- "join": "Dołącz",
- "copy": "Kopiuj link",
- "copied": "Link skopiowany",
- "remove": "Usuń",
- "removeTitle": "Usunąć rozmowę wideo?",
- "removeDescription": "Spotkanie zostanie usunięte u dostawcy. Osoby, które mają już link, nie będą mogły dołączyć.",
- "created": "Spotkanie utworzone. Link jest na zleceniu.",
- "removed": "Spotkanie usunięte",
- "failed": "Coś poszło nie tak",
- "shareHint": "Klient dostaje ten link tylko wtedy, gdy go wyślesz.",
- "shareHintNoChannel": "Klient dostaje ten link tylko wtedy, gdy go wyślesz. Żaden kanał wiadomości nie jest skonfigurowany, więc skopiuj go do wiadomości samodzielnie.",
- "send": {
- "button": "Wyślij do klienta",
- "title": "Wyślij link do rozmowy wideo",
- "description": "Wyślij link dołączenia do {name}.",
- "messageLabel": "Notatka (opcjonalnie)",
- "messagePlaceholder": "Co klient powinien wiedzieć przed rozmową...",
- "linkAlwaysIncluded": "Link dołączenia jest zawsze dodawany pod Twoją notatką.",
- "sms": "SMS",
- "email": "E-mail",
- "telegram": "Telegram",
- "noPhone": "(brak telefonu)",
- "noEmail": "(brak e-maila)",
- "noTelegram": "(brak powiązanego czatu)",
- "notAvailable": "(nie skonfigurowano)",
- "cancel": "Anuluj",
- "send": "Wyślij",
- "sent": "Link do rozmowy wideo wysłany",
- "partlySent": "Wysłano przez {sent}; nie przez {failed}",
- "failed": "Nie udało się wysłać linku"
- },
- "notify": {
- "invitation": "Cześć {name}, Twoja rozmowa wideo dotycząca {vehicle} odbędzie się {when}. Dołącz tutaj: {url}",
- "invitationNoTime": "Cześć {name}, oto link do rozmowy wideo dotyczącej {vehicle}: {url}",
- "joinLine": "Dołącz do rozmowy wideo tutaj: {url}",
- "emailSubject": "Rozmowa wideo dotycząca Twojego {vehicle}"
- }
- }
- }
|