Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
2329 lines
118 KiB
JSON
2329 lines
118 KiB
JSON
{
|
||
"integrations": {
|
||
"accounting": {
|
||
"dialog": {
|
||
"cancel": "Anuluj",
|
||
"enterPlaceholder": "Wprowadź {{field}}...",
|
||
"errors": {
|
||
"enterExternal": "Wprowadź {{field}}.",
|
||
"invalidJson": "Nieprawidłowy format JSON dla metadanych.",
|
||
"saveFailed": "Nie można zapisać mapowania.",
|
||
"selectAlga": "Wybierz {{field}}.",
|
||
"selectExternal": "Wybierz {{field}}."
|
||
},
|
||
"manualEntryHelp": "Wprowadź identyfikator dokładnie tak, jak pojawia się w systemie księgowym.",
|
||
"metadataLabel": "Metadane (JSON)",
|
||
"metadataPlaceholder": "Opcjonalne metadane w formacie JSON",
|
||
"realmIdLabel": "Identyfikator Realm",
|
||
"saveMapping": "Zapisz mapowanie",
|
||
"saving": "Zapisywanie…",
|
||
"selectPlaceholder": "Wybierz {{field}}..."
|
||
},
|
||
"manager": {
|
||
"noModules": "Nie skonfigurowano żadnych modułów mapowania."
|
||
},
|
||
"moduleView": {
|
||
"actionsColumn": "Akcje",
|
||
"delete": "Usuń",
|
||
"edit": "Edytuj",
|
||
"errors": {
|
||
"deleteFailed": "Nie można usunąć mapowania.",
|
||
"loadFailed": "Nie można załadować mapowań."
|
||
},
|
||
"loading": "Ładowanie mapowań…",
|
||
"noMappings": "Nie znaleziono mapowań.",
|
||
"notAvailable": "Nd.",
|
||
"openMenu": "Otwórz menu"
|
||
},
|
||
"setup": {
|
||
"activeConfiguration": "Aktywna konfiguracja",
|
||
"badges": {
|
||
"enterprise": "Enterprise"
|
||
},
|
||
"comingSoon": "Wkrótce dostępne",
|
||
"configure": "Konfiguruj integrację",
|
||
"highlightValues": {
|
||
"csv": "CSV",
|
||
"instant": "Natychmiastowy",
|
||
"live": "Na żywo",
|
||
"manual": "Ręczny",
|
||
"twoWay": "Dwukierunkowy"
|
||
},
|
||
"highlights": {
|
||
"delivery": "Dostarczanie",
|
||
"export": "Eksport",
|
||
"format": "Format",
|
||
"sync": "Synchronizacja"
|
||
},
|
||
"options": {
|
||
"qbo": {
|
||
"description": "Połącz swój realm, aby synchronizować faktury i zarządzać mapowaniami."
|
||
},
|
||
"qboCsv": {
|
||
"description": "Eksportuj faktury do CSV w celu ręcznego importu do QuickBooks i importuj dane podatkowe z raportów."
|
||
},
|
||
"xero": {
|
||
"description": "Połącz swoją organizację za pomocą poświadczeń OAuth należących do tenanta, aby uzyskać eksporty księgowe na żywo i mapowania."
|
||
},
|
||
"xeroCsv": {
|
||
"description": "Eksportuj faktury do CSV w celu ręcznego importu do Xero i importuj dane podatkowe z raportów Xero."
|
||
}
|
||
},
|
||
"selected": "Wybrano {{title}}",
|
||
"unavailable": {
|
||
"description": "Ta integracja nie jest jeszcze dostępna. Wybierz QuickBooks CSV lub Xero CSV, aby skonfigurować ręczne eksporty.",
|
||
"title": "Konfiguracja niedostępna"
|
||
}
|
||
},
|
||
"modules": {
|
||
"tabs": {
|
||
"clients": "Klienci",
|
||
"itemsServices": "Pozycje / Usługi",
|
||
"taxCodes": "Kody podatkowe",
|
||
"paymentTerms": "Warunki płatności"
|
||
}
|
||
}
|
||
},
|
||
"calendar": {
|
||
"enterprise": {
|
||
"loading": "Ładowanie ustawień kalendarza..."
|
||
}
|
||
},
|
||
"csv": {
|
||
"export": {
|
||
"actions": {
|
||
"exportCsv": "Eksportuj CSV",
|
||
"generating": "Generowanie..."
|
||
},
|
||
"description": "Eksportuj faktury jako plik CSV do ręcznego importu w QuickBooks.",
|
||
"errors": {
|
||
"configureMissingMappings": "Skonfiguruj brakujące mapowania powyżej, a następnie ponów eksport.",
|
||
"failed": "Eksport nie powiódł się",
|
||
"missingItemMapping": "Brak mapowania pozycji",
|
||
"missingItemMappingId": "Brak mapowania pozycji ({{serviceId}})",
|
||
"missingItemMappingNamed": "Brak mapowania pozycji: {{serviceName}}"
|
||
},
|
||
"fields": {
|
||
"dateRange": "Zakres dat (opcjonalny)",
|
||
"invoiceStatuses": "Statusy faktur"
|
||
},
|
||
"lockReset": {
|
||
"actions": {
|
||
"reset": "Zresetuj blokadę eksportu"
|
||
},
|
||
"description": "Wyczyść blokady eksportu, aby umożliwić ponowny eksport faktur przez CSV.",
|
||
"dialog": {
|
||
"cancel": "Anuluj",
|
||
"confirm": "Zresetuj blokadę",
|
||
"confirmBatch": "To pozwoli Alga PSA ponownie eksportować faktury z partii {{batchId}}. Jeśli niektóre z tych faktur nadal istnieją w QuickBooks, import CSV może utworzyć duplikaty.",
|
||
"confirmInvoice": "To pozwoli Alga PSA ponownie eksportować fakturę {{invoiceNumber}}. Jeśli ta faktura nadal istnieje w QuickBooks, import CSV może utworzyć duplikaty.",
|
||
"resetting": "Resetowanie…",
|
||
"title": "Zresetować blokadę eksportu?",
|
||
"warning": "Kontynuuj tylko, jeśli masz pewność, że faktura nie została zaimportowana lub została przez Ciebie usunięta/anulowana w QuickBooks."
|
||
},
|
||
"errors": {
|
||
"unable": "Nie można zresetować blokady eksportu"
|
||
},
|
||
"fields": {
|
||
"batchId": "ID partii eksportu",
|
||
"batchIdPlaceholder": "np. e793a514-34bd-4d7b-b266-9bb15f7087c4",
|
||
"invoiceNumber": "Numer faktury",
|
||
"invoiceNumberPlaceholder": "np. INV-1001"
|
||
},
|
||
"modes": {
|
||
"ariaLabel": "Tryb resetowania blokady eksportu",
|
||
"batch": "Partia",
|
||
"invoice": "Faktura"
|
||
},
|
||
"success": {
|
||
"batchCleared": "Usunięto blokady eksportu dla tej partii. Można ponownie eksportować te faktury.",
|
||
"invoiceCleared": "Usunięto blokadę eksportu. Można ponownie eksportować tę fakturę.",
|
||
"noBatchLocks": "Nie znaleziono blokad eksportu dla tej partii.",
|
||
"noInvoiceLock": "Nie znaleziono blokady eksportu dla tej faktury."
|
||
},
|
||
"title": "Ponownie eksportuj fakturę",
|
||
"warnings": {
|
||
"duplicates": "Może to spowodować duplikaty w QuickBooks, jeśli faktura nadal tam istnieje."
|
||
}
|
||
},
|
||
"success": {
|
||
"one": "Wyeksportowano {{count}} fakturę do {{filename}}",
|
||
"other": "Wyeksportowano {{count}} faktur do {{filename}}"
|
||
},
|
||
"title": "Eksport CSV dla QuickBooks"
|
||
},
|
||
"preview": {
|
||
"duplicates": {
|
||
"description": "Poniższe faktury pojawiają się wielokrotnie. Ich kwoty podatku zostaną zsumowane:",
|
||
"title": "Duplikaty faktur ({{count}})"
|
||
},
|
||
"errors": {
|
||
"more": "... i {{count}} więcej błędów",
|
||
"title": "Błędy ({{count}})"
|
||
},
|
||
"importResults": "Wyniki importu",
|
||
"importSummary": {
|
||
"difference": "Różnica:",
|
||
"failedUpdates": "Nieudane aktualizacje:",
|
||
"importedTax": "Zaimportowany podatek:",
|
||
"originalTax": "Pierwotny podatek:",
|
||
"successfulUpdates": "Udane aktualizacje:",
|
||
"title": "Podsumowanie importu"
|
||
},
|
||
"rowLabel": "Wiersz {{row}}:",
|
||
"stats": {
|
||
"matchedInvoices": "Dopasowane faktury",
|
||
"totalRows": "Wiersze łącznie",
|
||
"uniqueInvoices": "Unikalne faktury",
|
||
"validRows": "Poprawne wiersze"
|
||
},
|
||
"status": {
|
||
"databaseMatch": "Dopasowanie w bazie",
|
||
"rowData": "Dane wiersza",
|
||
"structure": "Struktura"
|
||
},
|
||
"validationPassed": {
|
||
"one": "Walidacja zakończona. Gotowe do importu danych podatkowych dla {{count}} faktury.",
|
||
"other": "Walidacja zakończona. Gotowe do importu danych podatkowych dla {{count}} faktur."
|
||
},
|
||
"validationResults": "Wyniki walidacji",
|
||
"warnings": {
|
||
"more": "... i {{count}} więcej ostrzeżeń",
|
||
"title": "Ostrzeżenia ({{count}})"
|
||
}
|
||
},
|
||
"settings": {
|
||
"exports": {
|
||
"description": "Twórz partie eksportu, pobieraj pliki CSV, importuj raporty podatkowe i przeglądaj historię eksportu.",
|
||
"managedTitle": "Zarządzane z poziomu Rozliczeń",
|
||
"openButton": "Otwórz eksporty księgowe",
|
||
"path": "Rozliczenia → Eksporty księgowe",
|
||
"title": "Eksporty księgowe"
|
||
},
|
||
"qbo": {
|
||
"bullets": {
|
||
"exportLabel": "Eksport",
|
||
"exportText": "Generuj pliki CSV zgodne z funkcją importu faktur QuickBooks",
|
||
"taxImportLabel": "Import podatków",
|
||
"taxImportText": "Przy zewnętrznym obliczaniu podatku importuj kwoty podatku z raportów podatkowych QuickBooks"
|
||
},
|
||
"description": "Eksportuj faktury do CSV do ręcznego importu w QuickBooks i importuj dane podatkowe z raportów QuickBooks.",
|
||
"exports": {
|
||
"managedPrefix": "Przejdź do",
|
||
"managedSuffix": "aby wybrać faktury, wygenerować eksporty CSV QuickBooks, importować raporty podatkowe i zarządzać partiami."
|
||
},
|
||
"intro": "Ta integracja zapewnia alternatywę dla łączności QuickBooks opartej na OAuth:",
|
||
"mappings": {
|
||
"description": "Mapuj klientów Alga, usługi, kody podatkowe i warunki płatności na identyfikatory używane w Twojej firmie QuickBooks. Te wartości są używane podczas generowania eksportu CSV.",
|
||
"title": "Mapowania CSV QuickBooks"
|
||
},
|
||
"note": "Uwaga: Skonfiguruj mapowania poniżej przed eksportem. Eksporty CSV i import podatków są zarządzane z poziomu Rozliczenia → Eksporty księgowe.",
|
||
"title": "Integracja CSV QuickBooks"
|
||
}
|
||
},
|
||
"taxImport": {
|
||
"actions": {
|
||
"importTaxData": "Importuj dane podatkowe",
|
||
"importing": "Importowanie...",
|
||
"validate": "Waliduj",
|
||
"validating": "Walidowanie..."
|
||
},
|
||
"errors": {
|
||
"importFailed": "Import nie powiódł się",
|
||
"readFile": "Nie udało się odczytać pliku",
|
||
"selectFile": "Wybierz plik CSV",
|
||
"selectFileAndRange": "Wybierz plik i zakres dat",
|
||
"templateDownloadFailed": "Nie udało się pobrać szablonu",
|
||
"validationFailed": "Walidacja nie powiodła się"
|
||
},
|
||
"fields": {
|
||
"csvFile": "Plik CSV",
|
||
"dateRangeHelp": "Tylko faktury w tym zakresie dat zostaną przetworzone.",
|
||
"dateRangeRequired": "Zakres dat (wymagany)",
|
||
"dropZone": "Przeciągnij i upuść plik CSV tutaj lub kliknij, aby przeglądać",
|
||
"fileSize": "({{size}} KB)"
|
||
},
|
||
"preview": {
|
||
"alreadyImported": "{{count}} faktur(a) ma już zaimportowany podatek.",
|
||
"alreadyImportedSkip": "{{count}} faktur(a) ma już zaimportowany podatek i zostanie pominięte.",
|
||
"badges": {
|
||
"databaseMatch": "Dopasowanie w bazie",
|
||
"rowData": "Dane wiersza",
|
||
"structure": "Struktura"
|
||
},
|
||
"columns": {
|
||
"algaInvoice": "Faktura Alga",
|
||
"contact": "Kontakt",
|
||
"status": "Status",
|
||
"taxAmount": "Kwota podatku",
|
||
"xeroInvoice": "Faktura Xero"
|
||
},
|
||
"errorsTitle": "Błędy ({{count}})",
|
||
"matched": "Dopasowano",
|
||
"matchedInvoices": "Dopasowane faktury",
|
||
"notPendingDescription": "Te faktury zostały utworzone z wewnętrznym obliczaniem podatku. Aby importować podatki z Xero, faktury muszą być skonfigurowane ze źródłem podatku „Pending External” podczas eksportu.",
|
||
"notPendingSkip": "{{count}} faktur(a) nie ma oczekującego podatku zewnętrznego i zostanie pominięte.",
|
||
"notPendingTitle": "{{count}} faktur(a) nie używa zewnętrznego obliczania podatku.",
|
||
"showingFirst20": "Wyświetlanie pierwszych 20 z {{count}} wierszy",
|
||
"taxToImport": "Podatek do zaimportowania",
|
||
"title": "Wyniki walidacji",
|
||
"totalRows": "Wiersze łącznie",
|
||
"uniqueInvoices": "Unikalne faktury",
|
||
"unmatched": "Niedopasowane",
|
||
"validRows": "Poprawne wiersze",
|
||
"warningsTitle": "Ostrzeżenia ({{count}})"
|
||
},
|
||
"qbo": {
|
||
"description": "Importuj kwoty podatku z pliku CSV raportu podatkowego QuickBooks.",
|
||
"help": {
|
||
"csvRequirement": "Plik CSV musi zawierać kolumny Numer faktury, Data faktury i Kwota podatku.",
|
||
"downloadTemplate": "Pobierz szablon CSV",
|
||
"steps": {
|
||
"s1": "W QuickBooks przejdź do Reports > All Reports",
|
||
"s2": "Wybierz Sales Tax Liability lub Transaction Detail by Account",
|
||
"s3": "Ustaw zakres dat tak, aby pasował do Twoich wyeksportowanych faktur",
|
||
"s4": "Kliknij Export i wybierz Export to Excel lub Export to CSV",
|
||
"s5": "Zapisz plik i prześlij go tutaj"
|
||
},
|
||
"title": "Jak eksportować dane podatkowe z QuickBooks"
|
||
},
|
||
"success": {
|
||
"one": "Pomyślnie zaimportowano podatek dla {{count}} faktury. Łączny zaimportowany podatek: ${{amount}}",
|
||
"other": "Pomyślnie zaimportowano podatek dla {{count}} faktur. Łączny zaimportowany podatek: ${{amount}}"
|
||
},
|
||
"title": "Importuj podatki z CSV QuickBooks"
|
||
},
|
||
"result": {
|
||
"failed": "{{count}} nieudanych.",
|
||
"one": "Zaimportowano podatek dla {{count}} faktury. Łączny zaimportowany podatek: {{amount}}.",
|
||
"other": "Zaimportowano podatek dla {{count}} faktur. Łączny zaimportowany podatek: {{amount}}.",
|
||
"skipped": "{{count}} pominiętych."
|
||
},
|
||
"unified": {
|
||
"description": "Importuj kwoty podatku z eksportu CSV Twojego systemu księgowego.",
|
||
"qbResult": {
|
||
"one": "Pomyślnie zaimportowano podatek dla {{count}} faktury. Łączny zaimportowany podatek: {{amount}}",
|
||
"other": "Pomyślnie zaimportowano podatek dla {{count}} faktur. Łączny zaimportowany podatek: {{amount}}"
|
||
},
|
||
"source": {
|
||
"ariaLabel": "Źródło importu CSV",
|
||
"quickbooks": "QuickBooks",
|
||
"xero": "Xero"
|
||
},
|
||
"title": "Importuj podatki z CSV",
|
||
"xeroCsvDescription": "Wyeksportowany plik CSV zawiera Numer faktury, Nazwę kontaktu, Kwotę wiersza, Kwotę podatku i kategorie śledzenia.",
|
||
"xeroHelp": {
|
||
"note": "Uwaga: Dopasowane zostaną tylko faktury pierwotnie wyeksportowane z Alga PSA (z śledzeniem Source System = AlgaPSA).",
|
||
"s1": "W Xero przejdź do Sales > Invoices",
|
||
"s2": "Wybierz zakładkę faktury, z której chcesz eksportować (np. Paid, Awaiting Payment)",
|
||
"s3": "(Opcjonalnie) Kliknij Search, aby filtrować według daty początkowej, końcowej lub typu daty",
|
||
"s4": "Kliknij Export",
|
||
"s5": "Xero pobierze plik CSV na Twój komputer",
|
||
"s6": "Prześlij ten plik CSV tutaj"
|
||
},
|
||
"xeroResult": {
|
||
"one": "Zaimportowano podatek dla {{count}} faktury. Łącznie: {{amount}}.",
|
||
"other": "Zaimportowano podatek dla {{count}} faktur. Łącznie: {{amount}}."
|
||
}
|
||
},
|
||
"xero": {
|
||
"description": "Importuj kwoty podatku z pliku CSV raportu Xero Invoice Details.",
|
||
"dropZone": "Przeciągnij i upuść plik CSV raportu Xero Invoice Details tutaj lub kliknij, aby przeglądać",
|
||
"help": {
|
||
"csvRequirement": "Raport powinien zawierać kolumny Numer faktury, Nazwa kontaktu, Kwota wiersza i Kwota podatku. Faktury są dopasowywane przy użyciu pola Reference lub kategorii śledzenia ustawionych podczas eksportu.",
|
||
"steps": {
|
||
"s1": "W Xero przejdź do Reports > All Reports",
|
||
"s2": "Wybierz Sales (Invoices and Revenue)",
|
||
"s3": "Uruchom raport Invoice Details",
|
||
"s4": "Ustaw zakres dat tak, aby pasował do Twoich wyeksportowanych faktur",
|
||
"s5": "Kliknij Export i wybierz CSV",
|
||
"s6": "Prześlij wyeksportowany plik tutaj"
|
||
},
|
||
"title": "Jak eksportować dane podatkowe z Xero"
|
||
},
|
||
"title": "Importuj podatki z CSV Xero"
|
||
}
|
||
}
|
||
},
|
||
"entra": {
|
||
"settings": {
|
||
"actions": {
|
||
"disconnect": "Rozłącz",
|
||
"reconnect": "Połącz ponownie",
|
||
"reconnecting": "Ponowne łączenie…",
|
||
"refresh": "Odśwież",
|
||
"resetFieldSync": "Resetuj",
|
||
"reviewMappings": "Przejrzyj mapowania",
|
||
"reviewRemap": "Przejrzyj / Zmapuj ponownie",
|
||
"hideReviewRemap": "Ukryj Przejrzyj / Zmapuj ponownie",
|
||
"runDiscovery": "Uruchom wykrywanie",
|
||
"runDiscoveryAgain": "Uruchom wykrywanie ponownie",
|
||
"runDiscoveryRunning": "Uruchamianie wykrywania…",
|
||
"runInitialSync": "Uruchom początkową synchronizację",
|
||
"runInitialSyncRunning": "Uruchamianie początkowej synchronizacji…",
|
||
"saveFieldSync": "Zapisz ustawienia synchronizacji pól",
|
||
"savingFieldSync": "Zapisywanie…",
|
||
"syncAll": "Synchronizuj wszystkie tenanty teraz",
|
||
"syncAllStarting": "Uruchamianie…"
|
||
},
|
||
"badges": {
|
||
"enterprise": "Enterprise",
|
||
"reviewBeforeInitialSync": "Przejrzyj przed początkową synchronizacją"
|
||
},
|
||
"connection": {
|
||
"connectingSuffix": " (Łączenie...)",
|
||
"details": "Szczegóły połączenia",
|
||
"directCredentialSourceLabel": "Źródło poświadczeń:",
|
||
"directTenantDefault": "common (multi-tenant)",
|
||
"directTenantLabel": "Tenant Microsoft:",
|
||
"cippServerLabel": "Serwer CIPP:",
|
||
"notAvailable": "Niedostępne",
|
||
"notConfigured": "Nie skonfigurowano",
|
||
"notConnectedStatus": "not_connected",
|
||
"optionsTitle": "Opcje połączenia",
|
||
"promptDetails": "Połącz Entra, aby wypełnić szczegóły dostawcy."
|
||
},
|
||
"currentStep": {
|
||
"connect": {
|
||
"guidance": "Wybierz opcję połączenia, aby kontynuować wdrażanie.",
|
||
"title": "Krok 1: Połącz"
|
||
},
|
||
"connectionsBelow": "Opcje połączenia pojawiają się poniżej.",
|
||
"discover": {
|
||
"guidance": "Uruchom wykrywanie, aby załadować zarządzane tenanty Entra przed mapowaniem.",
|
||
"title": "Krok 2: Wykryj"
|
||
},
|
||
"label": "Bieżący krok",
|
||
"map": {
|
||
"guidance": "Potwierdź lub dostosuj mapowania tenantów, aby odblokować początkową synchronizację.",
|
||
"title": "Krok 3: Mapuj"
|
||
},
|
||
"sync": {
|
||
"guidance": "Rozpocznij pierwsze uruchomienie synchronizacji dla potwierdzonych mapowań.",
|
||
"title": "Krok 4: Początkowa synchronizacja"
|
||
}
|
||
},
|
||
"description": "Skonfiguruj dostęp Entra na poziomie partnera, wykryj zarządzane tenanty, zmapuj je do klientów i uruchamiaj przepływy synchronizacji.",
|
||
"disabled": {
|
||
"description": "Interfejs integracji Entra jest obecnie wyłączony dla tego tenanta.",
|
||
"title": "Integracja Microsoft Entra"
|
||
},
|
||
"discovery": {
|
||
"completed": "Wykrywanie ukończone. Wykryto {{count}} tenantów.",
|
||
"completedOne": "Wykrywanie ukończone. Wykryto {{count}} tenant.",
|
||
"failed": "Nie udało się uruchomić wykrywania tenantów."
|
||
},
|
||
"errors": {
|
||
"loadStatus": "Nie można załadować statusu połączenia Entra.",
|
||
"unknown": "Nieznany błąd"
|
||
},
|
||
"fieldSync": {
|
||
"description": "Wybierz, które pola profilu Entra mogą nadpisywać lokalne pola kontaktów podczas synchronizacji.",
|
||
"feedback": {
|
||
"saveFailed": "Nie udało się zapisać ustawień synchronizacji pól.",
|
||
"saved": "Zapisano ustawienia synchronizacji pól."
|
||
},
|
||
"options": {
|
||
"displayName": {
|
||
"description": "Zezwól, aby nazwa wyświetlana Entra nadpisywała pełne imię kontaktu w powiązanych kontaktach.",
|
||
"label": "Nazwa wyświetlana"
|
||
},
|
||
"email": {
|
||
"description": "Zezwól, aby e-mail/UPN Entra nadpisywał e-mail kontaktu w powiązanych kontaktach.",
|
||
"label": "E-mail"
|
||
},
|
||
"phone": {
|
||
"description": "Zezwól, aby wartości telefonu Entra nadpisywały numer telefonu kontaktu w powiązanych kontaktach.",
|
||
"label": "Telefon"
|
||
},
|
||
"role": {
|
||
"description": "Zezwól, aby tytuł stanowiska Entra nadpisywał rolę kontaktu w powiązanych kontaktach.",
|
||
"label": "Rola"
|
||
},
|
||
"upn": {
|
||
"description": "Zezwól, aby UPN Entra nadpisywał zapisaną nazwę principal Entra w powiązanych kontaktach.",
|
||
"label": "UPN"
|
||
}
|
||
},
|
||
"title": "Ustawienia synchronizacji pól"
|
||
},
|
||
"guidedStep": {
|
||
"current": "bieżący",
|
||
"complete": "ukończony",
|
||
"locked": "zablokowany",
|
||
"stepLabel": "Krok {{number}}",
|
||
"thisIsCurrent": "To jest Twój bieżący krok wdrażania."
|
||
},
|
||
"initialSync": {
|
||
"failed": "Nie udało się rozpocząć początkowej synchronizacji Entra.",
|
||
"started": "Rozpoczęto początkową synchronizację. ID uruchomienia: {{runId}}",
|
||
"startedNoId": "Żądanie rozpoczęcia początkowej synchronizacji zaakceptowane."
|
||
},
|
||
"maintenance": {
|
||
"description": "Początkowa konfiguracja została ukończona. Skoncentruj się tutaj na operacjach synchronizacji, kontrolach stanu i przeglądach utrzymania.",
|
||
"healthDescription": "Przejrzyj stan połączenia, uruchamiaj operacje utrzymania i monitoruj aktywność synchronizacji.",
|
||
"healthTitle": "Podsumowanie stanu",
|
||
"title": "Tryb bieżących operacji"
|
||
},
|
||
"mapping": {
|
||
"description": "Przejrzyj sugerowane dopasowania, wybierz właściwego klienta dla każdego tenanta i potwierdź mapowania przed początkową synchronizacją.",
|
||
"needsReviewLabel": "Wymaga przeglądu:",
|
||
"savedLabel": "Zapisano:",
|
||
"selectedLabel": "Wybrane:",
|
||
"skippedLabel": "Pominięto:",
|
||
"stepLabel": "Krok 3",
|
||
"title": "Mapuj tenanty do klientów"
|
||
},
|
||
"onboarding": {
|
||
"description": "Ukończ każdy krok wdrażania po kolei: połącz, wykryj, mapuj, a następnie uruchom pierwszą synchronizację.",
|
||
"title": "Tryb konfiguracji"
|
||
},
|
||
"ongoing": {
|
||
"description": "Użyj tych kontrolek do ręcznych operacji synchronizacji po ukończeniu kroków wdrażania.",
|
||
"title": "Bieżące operacje"
|
||
},
|
||
"overview": {
|
||
"connectionLabel": "Połączenie:",
|
||
"connectionTypeLabel": "Typ połączenia:",
|
||
"label": "Przegląd",
|
||
"mappedTenantsLabel": "Zmapowane tenanty:",
|
||
"nextSyncIntervalEvery": "Co {{minutes}} minut",
|
||
"nextSyncIntervalLabel": "Następny interwał synchronizacji:"
|
||
},
|
||
"skipped": {
|
||
"empty": "Obecnie żadne tenanty nie są oznaczone jako pominięte.",
|
||
"noPrimaryDomain": "Brak domeny podstawowej",
|
||
"remap": "Zmapuj ponownie",
|
||
"title": "Pominięte tenanty"
|
||
},
|
||
"status": {
|
||
"connectionHealth": "Stan połączenia",
|
||
"label": "Status"
|
||
},
|
||
"syncAll": {
|
||
"failed": "Nie udało się rozpocząć pełnej synchronizacji Entra.",
|
||
"started": "Rozpoczęto synchronizację. ID uruchomienia: {{runId}}",
|
||
"startedNoId": "Żądanie rozpoczęcia synchronizacji zaakceptowane."
|
||
},
|
||
"title": "Integracja Microsoft Entra",
|
||
"validation": {
|
||
"label": "Walidacja i wykrywanie",
|
||
"lastDiscoveryLabel": "Ostatnie wykrywanie:",
|
||
"lastValidatedLabel": "Ostatnio zwalidowano:",
|
||
"neverFormatted": "Nigdy",
|
||
"noneValidationError": "Brak",
|
||
"validationErrorLabel": "Błąd walidacji:"
|
||
},
|
||
"wizard": {
|
||
"connect": {
|
||
"description": "Autoryzuj bezpośrednie uwierzytelnianie partnera Microsoft, aby połączyć ten tenant Entra.",
|
||
"title": "Połącz"
|
||
},
|
||
"discover": {
|
||
"description": "Załaduj i zachowaj zarządzane tenanty Entra dla tego tenanta MSP.",
|
||
"title": "Wykryj tenanty"
|
||
},
|
||
"map": {
|
||
"description": "Przejrzyj sugestie automatycznego dopasowywania i potwierdź mapowania.",
|
||
"title": "Mapuj tenanty do klientów"
|
||
},
|
||
"sync": {
|
||
"description": "Rozpocznij pierwsze uruchomienie synchronizacji dla potwierdzonych mapowań.",
|
||
"title": "Początkowa synchronizacja"
|
||
}
|
||
}
|
||
},
|
||
"tenantMapping": {
|
||
"actions": {
|
||
"confirmSelected": "Potwierdź wybrane mapowania",
|
||
"confirming": "Potwierdzanie…",
|
||
"import": "Importuj jako nowego klienta",
|
||
"importing": "Importowanie…",
|
||
"preselectExact": "Wstępnie wybierz dokładne dopasowania",
|
||
"refresh": "Odśwież podgląd",
|
||
"skip": "Pomiń",
|
||
"skipped": "Pominięto"
|
||
},
|
||
"columns": {
|
||
"actions": "Akcje",
|
||
"confidence": "Pewność",
|
||
"entraTenant": "Tenant Entra",
|
||
"primaryDomain": "Domena podstawowa",
|
||
"selectClient": "Wybierz klienta",
|
||
"status": "Status",
|
||
"suggestedClient": "Sugerowany klient"
|
||
},
|
||
"empty": "Brak wykrytych tenantów dostępnych dla podglądu mapowania.",
|
||
"errors": {
|
||
"confirmFailed": "Nie udało się potwierdzić wybranych mapowań.",
|
||
"importFailed": "Nie udało się zaimportować tenanta jako klienta.",
|
||
"loadFailed": "Nie udało się załadować podglądu mapowania tenantów.",
|
||
"selectAtLeastOne": "Wybierz co najmniej jednego klienta, aby potwierdzić mapowanie.",
|
||
"skipFailed": "Nie udało się pominąć tego mapowania tenanta."
|
||
},
|
||
"feedback": {
|
||
"confirmed": "Potwierdzono {{count}} mapowań.",
|
||
"confirmedOne": "Potwierdzono {{count}} mapowanie."
|
||
},
|
||
"noSuggestion": "Brak sugestii",
|
||
"picker": {
|
||
"placeholder": "Wybierz klienta...",
|
||
"unknownClient": "Nieznany klient"
|
||
},
|
||
"reasons": {
|
||
"exactDomain": "Dokładna domena",
|
||
"fuzzyName": "Przybliżona nazwa",
|
||
"secondaryDomain": "Domena drugorzędna"
|
||
},
|
||
"states": {
|
||
"autoMatched": "Automatycznie dopasowane",
|
||
"imported": "Zaimportowane",
|
||
"needsReview": "Wymaga przeglądu",
|
||
"skipped": "Pominięte",
|
||
"unmatched": "Niedopasowane"
|
||
},
|
||
"title": "Podgląd mapowania tenantów"
|
||
},
|
||
"cippDialog": {
|
||
"actions": {
|
||
"cancel": "Anuluj",
|
||
"connect": "Połącz",
|
||
"connecting": "Łączenie..."
|
||
},
|
||
"description": "Wprowadź URL swojej instancji CIPP oraz token API, aby umożliwić Alga wykrywanie i synchronizację danych Entra.",
|
||
"errors": {
|
||
"missingFields": "Zarówno Base URL, jak i token API są wymagane.",
|
||
"unknown": "Wystąpił nieznany błąd."
|
||
},
|
||
"fields": {
|
||
"apiToken": "Token API",
|
||
"apiTokenPlaceholder": "Wprowadź token...",
|
||
"baseUrl": "Bazowy URL CIPP",
|
||
"baseUrlPlaceholder": "https://cipp.yourdomain.com"
|
||
},
|
||
"title": "Połącz CIPP"
|
||
},
|
||
"reconciliation": {
|
||
"actions": {
|
||
"refresh": "Odśwież",
|
||
"resolveExisting": "Rozwiąż do istniejącego",
|
||
"resolveNew": "Rozwiąż do nowego"
|
||
},
|
||
"candidate": {
|
||
"fallback": "kandydat",
|
||
"label": "Kontakty kandydujące: {{count}}"
|
||
},
|
||
"contactPicker": {
|
||
"label": "Istniejący kontakt",
|
||
"placeholder": "Wybierz istniejący kontakt..."
|
||
},
|
||
"errors": {
|
||
"enterContactId": "Wprowadź ID kontaktu, aby rozwiązać do istniejącego kontaktu.",
|
||
"loadQueue": "Nie udało się załadować kolejki uzgadniania.",
|
||
"resolveFailed": "Nie udało się rozwiązać elementu kolejki."
|
||
},
|
||
"empty": "Żadne niejednoznaczne dopasowania nie oczekują na przegląd.",
|
||
"loading": "Ładowanie kolejki…",
|
||
"noEmailIdentity": "Brak tożsamości e-mail",
|
||
"queuedAt": "{{identity}} · w kolejce {{time}}",
|
||
"scopedToMappedClient": "Opcje istniejących kontaktów są ograniczone do tego zmapowanego klienta.",
|
||
"success": {
|
||
"resolvedExisting": "Rozwiązano element kolejki {{queueItemId}} do istniejącego kontaktu {{contactNameId}}.",
|
||
"resolvedNew": "Rozwiązano element kolejki {{queueItemId}} przez utworzenie kontaktu {{contactNameId}}."
|
||
},
|
||
"title": "Kolejka niejednoznacznych dopasowań"
|
||
},
|
||
"syncHistory": {
|
||
"actions": {
|
||
"hideDetails": "Ukryj szczegóły",
|
||
"refresh": "Odśwież",
|
||
"viewDetails": "Zobacz szczegóły"
|
||
},
|
||
"details": {
|
||
"noResults": "Nie zarejestrowano wyników tenantów.",
|
||
"stats": "utworzone {{created}}, powiązane {{linked}}, zaktualizowane {{updated}}, niejednoznaczne {{ambiguous}}, dezaktywowane {{inactivated}}",
|
||
"tenantHeader": "Tenant {{tenant}} · {{status}}",
|
||
"unknownTenant": "nieznany"
|
||
},
|
||
"empty": "Nie znaleziono jeszcze uruchomień synchronizacji.",
|
||
"errors": {
|
||
"loadDetailFailed": "Nie udało się załadować szczegółów uruchomienia.",
|
||
"loadFailed": "Nie udało się załadować historii synchronizacji.",
|
||
"loadRunFailed": "Nie udało się załadować uruchomienia {{runId}}."
|
||
},
|
||
"loading": "Ładowanie historii synchronizacji…",
|
||
"run": {
|
||
"header": "{{runType}} · {{status}}",
|
||
"inProgress": "W toku",
|
||
"tenants": "Tenanty: {{processed}}/{{total}} · Sukces: {{success}} · Nieudane: {{failed}}",
|
||
"timing": "Rozpoczęto {{started}} · Ukończono {{completed}}"
|
||
},
|
||
"title": "Ostatnie uruchomienia synchronizacji"
|
||
}
|
||
},
|
||
"google": {
|
||
"settings": {
|
||
"actions": {
|
||
"refresh": "Odśwież",
|
||
"resetProviders": "Zresetuj dostawców Google",
|
||
"resetting": "Resetowanie…",
|
||
"save": "Zapisz",
|
||
"saving": "Zapisywanie…"
|
||
},
|
||
"afterSaveNotice": "Po zapisaniu przejdź do integracji poczty przychodzącej i kalendarza oraz ponownie autoryzuj dostawców. Istniejący dostawcy Google nie są migrowani.",
|
||
"consoleLink": "Google Cloud Console",
|
||
"description": "Skonfiguruj poświadczenia Google Cloud należące do tenanta dla poczty przychodzącej Gmail i Google Calendar.",
|
||
"errors": {
|
||
"loadFailed": "Nie można załadować ustawień Google",
|
||
"resetFailed": "Nie można zresetować dostawców Google",
|
||
"saveFailed": "Nie można zapisać ustawień Google"
|
||
},
|
||
"fields": {
|
||
"projectIdHelp": "Używane do provisioningu Gmail Pub/Sub (konto usługi należące do tenanta).",
|
||
"projectIdLabel": "Identyfikator projektu Google Cloud",
|
||
"projectIdPlaceholder": "my-project-id"
|
||
},
|
||
"loading": "Ładowanie…",
|
||
"oauth": {
|
||
"calendarClientId": "Calendar OAuth Client ID",
|
||
"calendarClientSecret": "Calendar OAuth Client Secret",
|
||
"enterSecret": "Wprowadź client secret",
|
||
"gmailClientId": "Gmail OAuth Client ID",
|
||
"gmailClientSecret": "Gmail OAuth Client Secret",
|
||
"sectionTitle": "Aplikacja OAuth",
|
||
"shareApp": "Użyj tej samej aplikacji OAuth dla Gmail i Calendar",
|
||
"shareAppHelp": "Zalecane. Nadal można autoryzować oddzielne konta Google dla poszczególnych integracji.",
|
||
"storedSecret": "Zapisany secret: {{secret}}"
|
||
},
|
||
"redirectUrisLabel": "Redirect URI (skopiuj do klienta OAuth Google)",
|
||
"scopes": "Zakresy",
|
||
"scopesCalendar": "Calendar: {{scopes}}",
|
||
"scopesGmail": "Gmail: {{scopes}}",
|
||
"serviceAccount": {
|
||
"alreadyStored": "Klucz konta usługi jest już zapisany (nie jest wyświetlany).",
|
||
"description": "Wklej klucz JSON konta usługi należącego do tenanta używanego do provisioningu Pub/Sub.",
|
||
"title": "Konto usługi Pub/Sub (wymagane dla Gmail)"
|
||
},
|
||
"setupGuide": "Przewodnik konfiguracji",
|
||
"title": "Google",
|
||
"toasts": {
|
||
"resetDescription": "Wszyscy dostawcy Google są teraz rozłączeni i wymagają ponownej autoryzacji.",
|
||
"resetFailedTitle": "Nie udało się zresetować",
|
||
"resetTitle": "Zresetowano dostawców Google",
|
||
"saveFailedTitle": "Nie można zapisać ustawień Google",
|
||
"savedDescription": "Konfiguracja Google tenanta została pomyślnie zaktualizowana.",
|
||
"savedTitle": "Zapisano ustawienia Google",
|
||
"unknownError": "Nieznany błąd"
|
||
}
|
||
}
|
||
},
|
||
"hudu": {
|
||
"clientTab": {
|
||
"source": "Źródło: Hudu",
|
||
"openInHudu": "Otwórz w Hudu",
|
||
"refresh": "Odśwież",
|
||
"loading": "Ładowanie danych Hudu...",
|
||
"notConnected": "Hudu nie jest połączone. Administrator może je połączyć w sekcji Ustawienia → Integracje.",
|
||
"unmapped": "Ten klient nie jest jeszcze zmapowany do firmy Hudu. Zmapuj go w sekcji Ustawienia → Integracje → Hudu.",
|
||
"unreachable": "Nie udało się połączyć z Hudu. Spróbuj ponownie później.",
|
||
"assetsTitle": "Zasoby",
|
||
"assetsEmpty": "Brak zasobów Hudu dla tej firmy.",
|
||
"articlesTitle": "Artykuły",
|
||
"articlesEmpty": "Brak artykułów Hudu dla tej firmy.",
|
||
"serial": "Numer seryjny",
|
||
"folder": "Folder"
|
||
},
|
||
"passwordsTab": {
|
||
"source": "Źródło: Hudu",
|
||
"openInHudu": "Otwórz w Hudu",
|
||
"refresh": "Odśwież",
|
||
"loading": "Ładowanie haseł Hudu...",
|
||
"notConnected": "Hudu nie jest połączone. Administrator może je połączyć w sekcji Ustawienia → Integracje.",
|
||
"unmapped": "Ten klient nie jest jeszcze zmapowany do firmy Hudu. Zmapuj go w sekcji Ustawienia → Integracje → Hudu.",
|
||
"unreachable": "Nie udało się połączyć z Hudu. Spróbuj ponownie później.",
|
||
"noPasswordAccess": "Klucz API Hudu nie ma włączonego dostępu do haseł, więc nie można wyświetlić listy haseł. Wygeneruj klucz z dostępem do haseł w panelu administracyjnym Hudu.",
|
||
"title": "Hasła",
|
||
"empty": "Brak haseł Hudu dla tej firmy.",
|
||
"reveal": "Pokaż",
|
||
"hide": "Ukryj",
|
||
"copy": "Kopiuj",
|
||
"revealNoAccess": "Klucz API Hudu nie ma włączonego dostępu do haseł.",
|
||
"revealNotFound": "Nie znaleziono tego hasła w Hudu.",
|
||
"revealFailed": "Nie udało się wyświetlić hasła. Spróbuj ponownie później."
|
||
},
|
||
"assets": {
|
||
"title": "Zasoby",
|
||
"description": "Mapuj zasoby Hudu do zasobów AlgaPSA, importuj niedopasowane i pobieraj aktualizacje z Hudu.",
|
||
"loading": "Ładowanie mapowań zasobów...",
|
||
"empty": "Brak zasobów Hudu dla tej firmy.",
|
||
"selectAsset": "Wybierz zasób",
|
||
"serial": "Numer seryjny",
|
||
"archivedLabel": "Zarchiwizowany",
|
||
"excludedHint": "Nie zaimportowano (układ wykluczony)",
|
||
"buttons": {
|
||
"importAll": "Importuj wszystkie niedopasowane",
|
||
"importingAll": "Importowanie...",
|
||
"sync": "Synchronizuj z Hudu",
|
||
"syncing": "Synchronizowanie...",
|
||
"import": "Importuj",
|
||
"importing": "Importowanie...",
|
||
"save": "Zapisz mapowania",
|
||
"saving": "Zapisywanie...",
|
||
"discard": "Odrzuć"
|
||
},
|
||
"counters": {
|
||
"mapped": "zmapowane",
|
||
"suggested": "sugerowane",
|
||
"unmapped": "niezmapowane",
|
||
"total": "łącznie"
|
||
},
|
||
"table": {
|
||
"huduAsset": "Zasób Hudu",
|
||
"algaAsset": "Zasób AlgaPSA",
|
||
"status": "Status",
|
||
"actions": "Akcje"
|
||
},
|
||
"status": {
|
||
"mapped": "Zmapowany",
|
||
"suggested": "Sugerowany",
|
||
"unmapped": "Niezmapowany",
|
||
"pending": "Oczekujący",
|
||
"stale": "Nieaktualny"
|
||
},
|
||
"suggestion": {
|
||
"label": "Sugerowane",
|
||
"source": {
|
||
"serial": "Zgodność numeru seryjnego",
|
||
"exactName": "Dokładna nazwa",
|
||
"fuzzyName": "Przybliżona nazwa"
|
||
}
|
||
},
|
||
"rowActions": {
|
||
"unmap": "Usuń mapowanie",
|
||
"revert": "Cofnij zmianę",
|
||
"dismiss": "Odrzuć sugestię"
|
||
},
|
||
"pendingSummary": "Niezapisane zmiany: {{total}}",
|
||
"sync": {
|
||
"summary": "Synchronizacja zakończona: {{updated}} zaktualizowane · {{unchanged}} bez zmian · {{stale}} nieaktualne.",
|
||
"rmmSkipped": "{{rmmSkipped}} zarządzane przez RMM pominięte.",
|
||
"lastSynced": "Ostatnia synchronizacja: {{timestamp}}"
|
||
},
|
||
"import": {
|
||
"summary": "Import zakończony: {{created}} utworzone · {{skipped}} pominięte · {{failed}} nieudane."
|
||
},
|
||
"success": {
|
||
"saved": "Zapisano mapowania zasobów: {{total}}",
|
||
"imported": "Zaimportowano „{{name}}” z Hudu."
|
||
},
|
||
"errors": {
|
||
"load": "Nie udało się załadować mapowań zasobów Hudu.",
|
||
"save": "Nie udało się zaktualizować mapowania zasobu.",
|
||
"import": "Nie udało się zaimportować zasobu Hudu.",
|
||
"importAll": "Import zbiorczy nie powiódł się.",
|
||
"serialConflict": "Numer seryjny jest już używany przez „{{name}}”.",
|
||
"sync": "Nie udało się zsynchronizować z Hudu.",
|
||
"rateLimited": "Osiągnięto limit żądań Hudu. Spróbuj ponownie później.",
|
||
"unmapped": "Ten klient nie jest zmapowany do firmy Hudu.",
|
||
"assetAlreadyMapped": "Ten zasób jest już zmapowany do innego zasobu Hudu. Najpierw usuń istniejące mapowanie.",
|
||
"huduAssetAlreadyMapped": "Ten zasób Hudu jest już zmapowany do zasobu. Najpierw usuń istniejące mapowanie.",
|
||
"mappingConflict": "To mapowanie koliduje z istniejącym. Odśwież i spróbuj ponownie.",
|
||
"notFound": "Nie znaleziono mapowania. Odśwież i spróbuj ponownie."
|
||
},
|
||
"toasts": {
|
||
"errorTitle": "Błąd mapowania zasobów Hudu"
|
||
}
|
||
},
|
||
"documents": {
|
||
"sectionTitle": "Dokumentacja Hudu",
|
||
"loading": "Ładowanie artykułów Hudu...",
|
||
"empty": "Brak artykułów Hudu",
|
||
"unreachable": "Nie udało się połączyć z Hudu. Spróbuj ponownie później."
|
||
},
|
||
"documentsTab": {
|
||
"title": "Artykuły Hudu",
|
||
"source": "Źródło: Hudu",
|
||
"searchPlaceholder": "Szukaj artykułów Hudu...",
|
||
"loading": "Ładowanie artykułów Hudu...",
|
||
"empty": "Nie znaleziono artykułów Hudu.",
|
||
"notConnected": "Hudu nie jest połączone. Administrator może je połączyć w sekcji Ustawienia → Integracje.",
|
||
"unreachable": "Nie udało się połączyć z Hudu. Spróbuj ponownie później.",
|
||
"articleColumn": "Artykuł",
|
||
"clientColumn": "Klient",
|
||
"companyColumn": "Firma Hudu",
|
||
"updatedColumn": "Zaktualizowano",
|
||
"unmapped": "Niezmapowany",
|
||
"previous": "Poprzednia",
|
||
"next": "Następna",
|
||
"pageLabel": "Strona"
|
||
},
|
||
"mapping": {
|
||
"title": "Mapowania firm",
|
||
"description": "Mapuj firmy Hudu do klientów AlgaPSA, aby wyświetlać ich dokumentację.",
|
||
"loading": "Ładowanie mapowań firm...",
|
||
"companyId": "ID",
|
||
"idInIntegration": "ID PSA",
|
||
"selectClient": "Wybierz klienta",
|
||
"buttons": {
|
||
"refresh": "Odśwież firmy",
|
||
"refreshing": "Odświeżanie...",
|
||
"save": "Zapisz mapowania",
|
||
"saving": "Zapisywanie...",
|
||
"discard": "Odrzuć"
|
||
},
|
||
"counters": {
|
||
"mapped": "zmapowane",
|
||
"suggested": "sugerowane",
|
||
"unmapped": "niezmapowane",
|
||
"total": "łącznie"
|
||
},
|
||
"table": {
|
||
"huduCompany": "Firma Hudu",
|
||
"algaClient": "Klient AlgaPSA",
|
||
"status": "Status"
|
||
},
|
||
"status": {
|
||
"mapped": "Zmapowane",
|
||
"suggested": "Sugerowane",
|
||
"unmapped": "Niezmapowane",
|
||
"pending": "Oczekujące"
|
||
},
|
||
"suggestion": {
|
||
"label": "Sugerowane",
|
||
"source": {
|
||
"integrationId": "ID integracji PSA",
|
||
"exactName": "Dokładna nazwa",
|
||
"fuzzyName": "Przybliżona nazwa"
|
||
}
|
||
},
|
||
"empty": {
|
||
"title": "Nie załadowano jeszcze żadnych firm Hudu.",
|
||
"hint": "Kliknij „Odśwież firmy”, aby pobrać firmy z Hudu."
|
||
},
|
||
"unmappedHint": "Dokumentacja jest wyświetlana tylko dla zmapowanych klientów. Zmapuj każdą firmę Hudu do klienta AlgaPSA, aby ją włączyć.",
|
||
"success": {
|
||
"refreshed": "Odświeżono firmy Hudu.",
|
||
"saved": "Zapisano mapowania: {{total}}"
|
||
},
|
||
"errors": {
|
||
"load": "Nie udało się załadować mapowań firm Hudu.",
|
||
"refresh": "Nie udało się odświeżyć firm Hudu.",
|
||
"save": "Nie udało się zaktualizować mapowania.",
|
||
"clientAlreadyMapped": "Ten klient jest już zmapowany do innej firmy Hudu. Najpierw usuń istniejące mapowanie.",
|
||
"companyAlreadyMapped": "Ta firma Hudu jest już zmapowana do innego klienta. Najpierw usuń istniejące mapowanie.",
|
||
"mappingConflict": "To mapowanie koliduje z istniejącym. Odśwież i spróbuj ponownie.",
|
||
"notFound": "Nie znaleziono mapowania. Odśwież i spróbuj ponownie."
|
||
},
|
||
"toasts": {
|
||
"errorTitle": "Błąd mapowania Hudu"
|
||
},
|
||
"pendingSummary": "Niezapisane zmiany: {{total}}",
|
||
"rowActions": {
|
||
"unmap": "Usuń mapowanie",
|
||
"revert": "Cofnij zmianę",
|
||
"dismiss": "Odrzuć sugestię"
|
||
}
|
||
},
|
||
"layoutMap": {
|
||
"title": "Układy zasobów",
|
||
"description": "Wybierz, jako jaki typ zasobu AlgaPSA importowany jest każdy układ zasobów Hudu. Nieskonfigurowane układy są importowane jako Nieznany.",
|
||
"loading": "Ładowanie układów zasobów...",
|
||
"empty": "Nie znaleziono układów zasobów w Hudu.",
|
||
"suggested": "Sugerowane",
|
||
"table": {
|
||
"huduLayout": "Układ Hudu",
|
||
"algaAssetType": "Typ zasobu AlgaPSA"
|
||
},
|
||
"types": {
|
||
"workstation": "Stacja robocza",
|
||
"networkDevice": "Urządzenie sieciowe",
|
||
"server": "Serwer",
|
||
"mobileDevice": "Urządzenie mobilne",
|
||
"printer": "Drukarka",
|
||
"unknown": "Nieznany"
|
||
},
|
||
"excludeOption": "Nie importuj",
|
||
"buttons": {
|
||
"save": "Zapisz mapowanie układów",
|
||
"saving": "Zapisywanie..."
|
||
},
|
||
"success": {
|
||
"saved": "Zapisano mapowanie układów zasobów."
|
||
},
|
||
"errors": {
|
||
"load": "Nie udało się załadować układów zasobów Hudu.",
|
||
"save": "Nie udało się zapisać mapowania układów zasobów."
|
||
},
|
||
"createType": {
|
||
"button": "Utwórz typ z układu",
|
||
"creating": "Tworzenie...",
|
||
"success": "Utworzono typ zasobu i przypisano go do tego układu.",
|
||
"errors": {
|
||
"create": "Nie udało się utworzyć typu zasobu z tego układu.",
|
||
"slugConflict": "Typ zasobu o tej nazwie już istnieje. Wybierz go z listy."
|
||
}
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Hudu",
|
||
"description": "Połącz swoją instancję Hudu, aby wyświetlać dokumentację i poświadczenia klientów w AlgaPSA.",
|
||
"loading": "Ładowanie statusu połączenia Hudu...",
|
||
"detectedInstance": "Instancja Hudu",
|
||
"status": {
|
||
"connected": "Połączono",
|
||
"notConnected": "Nie połączono",
|
||
"error": "Błąd"
|
||
},
|
||
"passwordAccess": {
|
||
"enabled": "Dostęp do haseł włączony",
|
||
"disabled": "Dostęp do haseł nie jest włączony dla tego klucza"
|
||
},
|
||
"fields": {
|
||
"baseUrl": {
|
||
"label": "Bazowy URL",
|
||
"placeholder": "https://your-instance.huducloud.com"
|
||
},
|
||
"apiKey": {
|
||
"label": "Klucz API",
|
||
"placeholder": "Wprowadź klucz API Hudu",
|
||
"keepExisting": "Pozostaw puste, aby zachować bieżący klucz API",
|
||
"writeOnlyHint": "Zapisany klucz API nigdy nie jest wyświetlany. Pozostaw to pole puste, aby nadal go używać."
|
||
}
|
||
},
|
||
"buttons": {
|
||
"test": "Testuj połączenie",
|
||
"testing": "Testowanie...",
|
||
"connect": "Połącz",
|
||
"connecting": "Łączenie...",
|
||
"disconnect": "Rozłącz",
|
||
"disconnecting": "Rozłączanie..."
|
||
},
|
||
"success": {
|
||
"connected": "Połączono z Hudu.",
|
||
"testPassedWithPasswords": "Test połączenia Hudu powiódł się. Dostęp do haseł jest włączony dla tego klucza.",
|
||
"testPassedNoPasswords": "Test połączenia Hudu powiódł się. Dostęp do haseł nie jest włączony dla tego klucza.",
|
||
"disconnected": "Rozłączono połączenie z Hudu."
|
||
},
|
||
"errors": {
|
||
"loadStatus": "Nie można załadować statusu połączenia Hudu.",
|
||
"baseUrlRequired": "Bazowy URL jest wymagany.",
|
||
"baseUrlFormat": "Wprowadź poprawny URL, np. https://your-instance.huducloud.com",
|
||
"invalidBaseUrl": "Pod tym bazowym URL nie znaleziono API Hudu (404). Sprawdź bazowy URL.",
|
||
"unreachable": "Nie udało się połączyć z Hudu pod tym bazowym URL. Sprawdź URL i połączenie sieciowe.",
|
||
"invalidKey": "Hudu odrzuciło klucz API (401). Wprowadź poprawny klucz API.",
|
||
"testFailed": "Test połączenia Hudu nie powiódł się.",
|
||
"connectFailed": "Nie udało się połączyć z Hudu.",
|
||
"disconnectFailed": "Nie udało się rozłączyć Hudu."
|
||
},
|
||
"toasts": {
|
||
"errorTitle": "Błąd połączenia Hudu"
|
||
}
|
||
}
|
||
},
|
||
"microsoft": {
|
||
"settings": {
|
||
"actions": {
|
||
"entraLink": "Microsoft Entra",
|
||
"newProfile": "Nowy profil",
|
||
"openTeamsSetup": "Otwórz konfigurację Teams",
|
||
"refresh": "Odśwież",
|
||
"resetProviders": "Zresetuj dostawców Microsoft",
|
||
"resetting": "Resetowanie…"
|
||
},
|
||
"archiveDialog": {
|
||
"archiving": "Archiwizowanie…",
|
||
"cancel": "Zachowaj profil",
|
||
"confirm": "Zarchiwizuj profil",
|
||
"message": "Zarchiwizować {{name}}? Istniejące odniesienia historyczne pozostaną nienaruszone, ale profil nie będzie już dostępny dla nowych powiązań.",
|
||
"title": "Zarchiwizować profil Microsoft?"
|
||
},
|
||
"binding": {
|
||
"bound": "Powiązany",
|
||
"boundProfileLabel": "Powiązany profil",
|
||
"createFirst": "Najpierw utwórz profil",
|
||
"needsAttention": "Wymaga uwagi",
|
||
"saving": "Zapisywanie…",
|
||
"selectProfile": "Wybierz profil",
|
||
"unbound": "Niepowiązany"
|
||
},
|
||
"bindings": {
|
||
"summaryBound": "{{consumer}} jest powiązany z {{profile}}.",
|
||
"summaryNone": "Żaden profil Microsoft nie jest obecnie powiązany z {{consumer}}.",
|
||
"summaryUnavailable": "{{consumer}} jest powiązany z niedostępnym profilem.",
|
||
"warningArchived": "{{consumer}} nadal jest powiązany z zarchiwizowanym profilem. Powiąż go ponownie z aktywnym profilem.",
|
||
"warningNoBinding": "Nie skonfigurowano jeszcze żadnego powiązania dla {{consumer}}.",
|
||
"warningNotReady": "{{consumer}} jest powiązany z {{profile}}, ale ten profil nadal wymaga konfiguracji.",
|
||
"warningProfileMissing": "{{consumer}} jest powiązany z profilem, który nie jest już dostępny. Powiąż go ponownie z aktywnym profilem."
|
||
},
|
||
"bindingsAlertCe": "Jawne powiązania są źródłem prawdy dla wyboru profilu MSP SSO. Skonfiguruj domeny logowania osobno po wybraniu powiązanego profilu.",
|
||
"bindingsAlertEe": "Jawne powiązania są źródłem prawdy dla wyboru profili MSP SSO, poczty, kalendarza i Teams.",
|
||
"consumerBindings": {
|
||
"descriptionCe": "Powiąż jeden profil Microsoft z MSP SSO na potrzeby logowania i używania domeny logowania.",
|
||
"descriptionEe": "Powiąż jeden profil Microsoft na każdego obsługiwanego konsumenta. Przypisanie jednego konsumenta nie zmienia pozostałych.",
|
||
"title": "Jawne powiązania konsumentów"
|
||
},
|
||
"consumers": {
|
||
"calendar": {
|
||
"description": "Wybierz, który profil Microsoft powinien być używany do synchronizacji kalendarza Outlook.",
|
||
"label": "Kalendarz",
|
||
"reconnect": "Istniejące połączenia kalendarza Microsoft mogą wymagać ponownej autoryzacji po zmianie powiązanego profilu."
|
||
},
|
||
"email": {
|
||
"description": "Wybierz, który profil Microsoft powinien być używany do poczty przychodzącej Outlook.",
|
||
"label": "E-mail",
|
||
"reconnect": "Istniejące połączenia e-mail Outlook mogą wymagać ponownej autoryzacji po zmianie powiązanego profilu."
|
||
},
|
||
"mspSso": {
|
||
"description": "Wybierz, który profil Microsoft obsługuje domeny logowania MSP SSO, logowanie Microsoft i wykrywanie tenanta.",
|
||
"label": "MSP SSO"
|
||
},
|
||
"teams": {
|
||
"description": "Wybierz, który profil Microsoft powinien być używany do instalacji Microsoft Teams i procesów uwierzytelniania.",
|
||
"label": "Teams"
|
||
}
|
||
},
|
||
"descriptionCe": "Zarządzaj profilami Microsoft należącymi do tenanta dla MSP SSO, logowania Microsoft i wykrywania domen logowania.",
|
||
"descriptionEe": "Zarządzaj profilami Microsoft należącymi do tenanta dla MSP SSO, poczty Outlook, synchronizacji kalendarza i Microsoft Teams.",
|
||
"dialog": {
|
||
"cancel": "Anuluj",
|
||
"clientId": "Client ID",
|
||
"clientSecret": "Client secret",
|
||
"clientSecretPlaceholder": "Wprowadź client secret",
|
||
"clientSecretPlaceholderEdit": "Pozostaw puste, aby zachować bieżący secret",
|
||
"createProfile": "Utwórz profil",
|
||
"createTitle": "Utwórz profil Microsoft",
|
||
"descriptionCreate": "Utwórz profil Microsoft należący do tenanta, a następnie jawnie powiąż go z konsumentami Microsoft, których chcesz używać.",
|
||
"descriptionEdit": "Zaktualizuj wybrany profil Microsoft. Pozostaw secret pusty, aby zachować istniejącą wartość.",
|
||
"displayName": "Nazwa wyświetlana",
|
||
"displayNamePlaceholder": "Tenant produkcyjny Acme",
|
||
"editTitle": "Edytuj profil Microsoft",
|
||
"saveChanges": "Zapisz zmiany",
|
||
"saving": "Zapisywanie…",
|
||
"setDefault": "Ustaw ten profil jako domyślny profil Microsoft",
|
||
"setDefaultHelp": "Domyślne profile pozostają dostępne dla procesów zarządzania profilem i metadanych bezpiecznych dla migracji, a nie dla routingu konsumentów.",
|
||
"storedSecretHint": "Zapisany secret: {{secret}}. Pozostaw to pole puste, aby zachować je bez zmian.",
|
||
"tenantId": "Tenant ID"
|
||
},
|
||
"empty": {
|
||
"createButton": "Utwórz profil Microsoft",
|
||
"descriptionCe": "Najpierw utwórz nazwany profil, a następnie jawnie powiąż go z procesami logowania MSP SSO i domen logowania.",
|
||
"descriptionEe": "Najpierw utwórz nazwany profil, a następnie jawnie powiąż go z MSP SSO, pocztą Outlook, synchronizacją kalendarza i Teams.",
|
||
"title": "Brak profili Microsoft"
|
||
},
|
||
"errors": {
|
||
"archive": "Nie można zarchiwizować profilu Microsoft",
|
||
"loadBindings": "Nie można załadować powiązań Microsoft",
|
||
"loadStatus": "Nie można załadować ustawień Microsoft",
|
||
"resetProviders": "Nie można zresetować dostawców Microsoft",
|
||
"saveProfile": "Nie można zapisać profilu Microsoft",
|
||
"setDefault": "Nie można ustawić domyślnego profilu Microsoft",
|
||
"updateBinding": "Nie można zaktualizować powiązania Microsoft"
|
||
},
|
||
"guidance": {
|
||
"applicationIdUri": "Application ID URI",
|
||
"calendarRedirect": "Redirect URI synchronizacji kalendarza",
|
||
"calendarTitle": "Wskazówki dotyczące kalendarza",
|
||
"clientId": "Client ID",
|
||
"currentProfileTitle": "Bieżące wartości profilu",
|
||
"emailRedirect": "Redirect URI poczty przychodzącej",
|
||
"emailTitle": "Wskazówki dotyczące poczty",
|
||
"mspSsoTitle": "Wskazówki dotyczące MSP SSO",
|
||
"notConfigured": "Nie skonfigurowano",
|
||
"redirectUri": "Redirect URI",
|
||
"requiresBaseUrl": "Wymaga bazowego URL i Client ID",
|
||
"scopes": "Zakresy",
|
||
"teamsBotRedirect": "Redirect URI bota osobistego",
|
||
"teamsMessageRedirect": "Redirect URI message extension",
|
||
"teamsScopes": "Zakresy Teams",
|
||
"teamsTabRedirect": "Redirect URI osobistego tabu",
|
||
"teamsTitle": "Wskazówki dotyczące Teams",
|
||
"tenantId": "Tenant ID",
|
||
"unavailable": "Niedostępne"
|
||
},
|
||
"profileCard": {
|
||
"activeBindings": "Aktywne powiązania",
|
||
"archive": "Archiwizuj",
|
||
"clientId": "Client ID",
|
||
"defaultBadge": "Domyślny",
|
||
"edit": "Edytuj",
|
||
"guidanceSummary": "Wskazówki dotyczące rejestracji aplikacji Microsoft",
|
||
"noVisibleBindings": "Brak widocznych powiązań konsumentów",
|
||
"readinessTitle": "Gotowość profilu",
|
||
"readyCe": "Ten profil jest gotowy do powiązania MSP SSO i procesów logowania domen.",
|
||
"readyEe": "Ten profil jest gotowy do powiązań MSP SSO, poczty Outlook i kalendarza.",
|
||
"readyEeTeams": "Ten profil jest gotowy do powiązań MSP SSO, poczty Outlook, synchronizacji kalendarza i Teams.",
|
||
"setDefault": "Ustaw jako domyślny",
|
||
"storedSecret": "Zapisany secret",
|
||
"teamsAppIdUri": "Teams Application ID URI",
|
||
"tenantIdLabel": "Tenant ID:",
|
||
"updating": "Aktualizowanie…"
|
||
},
|
||
"providerReconnect": {
|
||
"description": "Użyj tego, jeśli rotujesz poświadczenia lub celowo przepinasz pocztę Outlook lub kalendarz na inny profil Microsoft.",
|
||
"title": "Ponowne łączenie dostawcy"
|
||
},
|
||
"readiness": {
|
||
"archived": "Zarchiwizowane profile nie mogą być używane do nowych powiązań Microsoft.",
|
||
"clientIdMissing": "Brak Client ID.",
|
||
"clientSecretMissing": "Client secret nie został skonfigurowany.",
|
||
"tenantIdMissing": "Brak Tenant ID."
|
||
},
|
||
"statusBadges": {
|
||
"archived": "Zarchiwizowany",
|
||
"needsAttention": "Wymaga uwagi",
|
||
"ready": "Gotowy"
|
||
},
|
||
"title": "Microsoft",
|
||
"toasts": {
|
||
"archiveFailedTitle": "Nie można zarchiwizować profilu Microsoft",
|
||
"archivedDescription": "{{name}} został pomyślnie zarchiwizowany.",
|
||
"archivedTitle": "Zarchiwizowano profil Microsoft",
|
||
"bindingFailedTitle": "Nie można zaktualizować powiązania {{consumer}}",
|
||
"bindingUpdatedDescription": "{{consumer}} używa teraz {{profile}}.",
|
||
"bindingUpdatedTitle": "Zaktualizowano powiązanie {{consumer}}",
|
||
"defaultUpdatedDescription": "{{name}} jest teraz domyślnym rekordem profilu Microsoft.",
|
||
"defaultUpdatedTitle": "Zaktualizowano domyślny profil Microsoft",
|
||
"profileCreated": "Utworzono profil Microsoft",
|
||
"profileCreatedDescription": "Profil Microsoft jest gotowy do powiązania z widocznymi konsumentami Microsoft.",
|
||
"profileUpdated": "Zaktualizowano profil Microsoft",
|
||
"profileUpdatedDescription": "Zmiany profilu Microsoft zostały pomyślnie zapisane.",
|
||
"resetDescription": "Istniejące połączenia poczty Outlook i kalendarza wymagają teraz ponownej autoryzacji.",
|
||
"resetFailedTitle": "Nie udało się zresetować",
|
||
"resetTitle": "Zresetowano dostawców Microsoft",
|
||
"saveFailedTitle": "Nie można zapisać profilu Microsoft",
|
||
"selectedProfile": "wybrany profil",
|
||
"setDefaultFailedTitle": "Nie można ustawić domyślnego profilu"
|
||
},
|
||
"validation": {
|
||
"clientIdRequired": "Microsoft OAuth Client ID jest wymagany",
|
||
"clientSecretRequired": "Microsoft OAuth Client Secret jest wymagany",
|
||
"displayNameRequired": "Nazwa wyświetlana profilu Microsoft jest wymagana",
|
||
"tenantIdRequired": "Microsoft Tenant ID jest wymagany"
|
||
}
|
||
}
|
||
},
|
||
"qbo": {
|
||
"live": {
|
||
"defaultCompany": "Połączona firma QuickBooks"
|
||
},
|
||
"settings": {
|
||
"actions": {
|
||
"connect": "Połącz QuickBooks",
|
||
"disconnect": "Rozłącz QuickBooks",
|
||
"disconnecting": "Rozłączanie…",
|
||
"reconnect": "Połącz ponownie QuickBooks",
|
||
"refresh": "Odśwież",
|
||
"saveCredentials": "Zapisz poświadczenia QuickBooks",
|
||
"saving": "Zapisywanie…"
|
||
},
|
||
"badges": {
|
||
"connectionExpired": "Połączenie wymaga uwagi",
|
||
"credentialsReady": "Poświadczenia gotowe",
|
||
"credentialsRequired": "Wymagane poświadczenia",
|
||
"defaultConnected": "Połączono firmę",
|
||
"noCompany": "Nie połączono żadnej firmy"
|
||
},
|
||
"callback": {
|
||
"accessDenied": "Dostęp do QuickBooks został odmówiony przed ukończeniem połączenia.",
|
||
"configMissing": "Nie można uruchomić QuickBooks OAuth, ponieważ Client ID i Client Secret nie zostały w pełni skonfigurowane.",
|
||
"generic": "QuickBooks zwróciło błąd OAuth: {{code}}",
|
||
"invalidState": "Stan OAuth QuickBooks był nieprawidłowy lub wygasł. Rozpocznij przepływ łączenia ponownie.",
|
||
"missingParams": "W wywołaniu zwrotnym QuickBooks brakowało wymaganych parametrów. Rozpocznij przepływ łączenia ponownie.",
|
||
"oauthFailed": "Wywołanie zwrotne OAuth QuickBooks nie powiodło się. Spróbuj ponownie się połączyć. Jeśli problem nadal występuje, sprawdź swój redirect URI i zakresy.",
|
||
"tokenExchangeFailed": "Intuit nie zwróciło oczekiwanych tokenów. Spróbuj ponownie się połączyć."
|
||
},
|
||
"clientIdLabel": "QuickBooks Client ID",
|
||
"clientIdPlaceholder": "Wklej Client ID swojej aplikacji Intuit",
|
||
"clientSecretLabel": "QuickBooks Client Secret",
|
||
"clientSecretPlaceholder": "Wklej Client Secret swojej aplikacji Intuit",
|
||
"connectSuccess": "QuickBooks połączone pomyślnie. Połączona firma jest teraz domyślnym kontekstem QuickBooks na żywo.",
|
||
"connection": {
|
||
"defaultCompany": "Połączona firma",
|
||
"description": "Uruchom OAuth dopiero po skonfigurowaniu poświadczeń aplikacji QuickBooks. Rozłączenie usuwa zapisane tokeny dostępu QuickBooks, ale zachowuje poświadczenia aplikacji należącej do tenanta.",
|
||
"notConnected": "Nie połączono jeszcze żadnej firmy QuickBooks. Zapisz poświadczenia, a następnie kliknij Połącz QuickBooks.",
|
||
"realmId": "Realm ID: {{id}}",
|
||
"title": "Połączenie QuickBooks na żywo",
|
||
"unknown": "nieznany"
|
||
},
|
||
"credentialsSaved": "Zapisano poświadczenia QuickBooks. Można teraz rozpocząć przepływ OAuth QuickBooks.",
|
||
"csvAvailableMiddle": "w tej samej sekcji Księgowość i zarządzaj eksportami z",
|
||
"csvAvailablePrefix": "Jeśli wolisz ręczny przepływ, nadal używaj",
|
||
"csvAvailableTitle": "QuickBooks CSV pozostaje dostępne",
|
||
"description": "Skonfiguruj poświadczenia OAuth QuickBooks, połącz swoją firmę QuickBooks i zachowaj QuickBooks na żywo obok ręcznego przepływu QuickBooks CSV.",
|
||
"disconnectSuccess": "Zapisane połączenie QuickBooks zostało usunięte. Poświadczenia aplikacji QuickBooks należące do tenanta zostały zachowane.",
|
||
"environment": "Środowisko Intuit",
|
||
"environmentProduction": "Produkcja",
|
||
"environmentSandbox": "Sandbox",
|
||
"errors": {
|
||
"disconnect": "Nie udało się rozłączyć QuickBooks.",
|
||
"load": "Nie udało się załadować ustawień QuickBooks.",
|
||
"saveCredentials": "Nie udało się zapisać poświadczeń QuickBooks."
|
||
},
|
||
"howItWorksDescription": "Zapisz tutaj poświadczenia aplikacji QuickBooks, ukończ przepływ OAuth Intuit, a Alga PSA użyje połączonej firmy QuickBooks jako domyślnego kontekstu na żywo dla eksportów i mapowań.",
|
||
"howItWorksTitle": "Jak działa QuickBooks na żywo w tej wersji",
|
||
"loading": "Ładowanie ustawień QuickBooks…",
|
||
"mapping": {
|
||
"alert": "Pozycje QuickBooks, kody podatkowe i warunki są ładowane z połączonej firmy, aby eksporty na żywo mogły nadal używać pierwszego zapisanego połączenia QuickBooks w v1.",
|
||
"descriptionPrefix": "Skonfiguruj mapowania QuickBooks na żywo dla połączonej firmy. Te mapowania są ograniczone do",
|
||
"placeholderAlert": "Menedżer mapowań staje się dostępny po połączeniu pierwszej firmy QuickBooks i ustawieniu jej jako domyślnego kontekstu QuickBooks na żywo.",
|
||
"placeholderDescription": "Połącz firmę QuickBooks przed skonfigurowaniem mapowań pozycji i podatków QuickBooks na żywo.",
|
||
"title": "Mapowanie i konfiguracja QuickBooks na żywo"
|
||
},
|
||
"noClientId": "Dla tego tenanta nie zapisano jeszcze żadnego Client ID.",
|
||
"noClientSecret": "Dla tego tenanta nie zapisano jeszcze żadnego Client Secret.",
|
||
"quickbooksCsv": "QuickBooks CSV",
|
||
"redirectUri": "Redirect URI",
|
||
"requiredScopes": "Wymagane zakresy",
|
||
"storedClientId": "Zapisany Client ID: {{value}}",
|
||
"storedClientSecret": "Zapisany Client Secret: {{value}}",
|
||
"tenantOauthDescription": "Wklej poświadczenia aplikacji Intuit zarejestrowane dla tego tenanta lub pozostaw puste, aby użyć QuickBooks na poziomie aplikacji, jeśli jest skonfigurowane. Wartości secret nigdy nie są zwracane do przeglądarki po zapisaniu.",
|
||
"tenantOauthTitle": "Aplikacja OAuth należąca do tenanta",
|
||
"title": "QuickBooks Online"
|
||
},
|
||
"sync": {
|
||
"healthCardTitle": "Stan synchronizacji",
|
||
"healthCardDescription": "Stan i ustawienia synchronizacji księgowej QuickBooks. Uruchamiana co 15 minut.",
|
||
"lastCycleTitle": "Ostatni cykl synchronizacji",
|
||
"lastCycleStatus": "Status",
|
||
"lastCycleFinishedAt": "Zakończono",
|
||
"lastCycleStats": "Wyniki",
|
||
"statOpsProcessed": "Przetworzone operacje: {{count}}",
|
||
"statDriftFound": "Rozbieżności: {{count}}",
|
||
"statPaymentsApplied": "Zastosowane płatności: {{count}}",
|
||
"noLastCycle": "Nie uruchomiono jeszcze żadnego cyklu synchronizacji.",
|
||
"nextRunHint": "Uruchamiana automatycznie co 15 minut, gdy automatyczna synchronizacja jest włączona.",
|
||
"pendingOps": "Operacje oczekujące",
|
||
"erroredOps": "Operacje z błędami",
|
||
"driftCount": "Rozbieżności",
|
||
"openExceptions": "Otwarte wyjątki",
|
||
"refreshTokenExpiry": "Token QuickBooks wygasa {{date}}",
|
||
"refreshTokenExpired": "Token QuickBooks wygasł — połącz ponownie, aby wznowić synchronizację.",
|
||
"autoSyncLabel": "Automatyczna synchronizacja włączona",
|
||
"syncNowButton": "Synchronizuj teraz",
|
||
"syncNowRunning": "Synchronizowanie…",
|
||
"syncNowSuccess": "Synchronizacja zakończona pomyślnie.",
|
||
"syncNowSkipped": "Pominięto synchronizację: {{reason}}",
|
||
"syncNowError": "Synchronizacja nie powiodła się: {{error}}",
|
||
"viewExceptionsLink": "Zobacz wyjątki",
|
||
"autoApplyCreditsWarning": "QuickBooks jest ustawiony na automatyczne stosowanie kredytów, co koliduje z aplikowaniem kredytów sterowanym z Alga: QuickBooks może zastosować wyeksportowane noty kredytowe do innej faktury przed synchronizacją. W QuickBooks przejdź do „Account and Settings → Advanced → Automation” i wyłącz opcję „Automatically apply credits”.",
|
||
"configTitle": "Konfiguracja synchronizacji",
|
||
"connectedCompanies": "Połączone firmy",
|
||
"defaultClass": "Klasa domyślna",
|
||
"defaultDepartment": "Dział domyślny",
|
||
"defaultRealm": "Domyślny",
|
||
"depositAccount": "Konto wpłat",
|
||
"makeDefault": "Ustaw jako domyślne",
|
||
"noDefault": "Brak domyślnego",
|
||
"saving": "Zapisywanie…",
|
||
"undepositedFunds": "Środki niezdeponowane (domyślnie)"
|
||
}
|
||
},
|
||
"rmm": {
|
||
"ninjaOne": {
|
||
"loading": "Ładowanie ustawień integracji NinjaOne...",
|
||
"card": {
|
||
"title": "NinjaOne RMM Integration",
|
||
"description": "Connect your NinjaOne account to synchronize devices, receive alerts, and enable remote access capabilities.",
|
||
"skeletonDescription": "Loading NinjaOne integration..."
|
||
},
|
||
"status": {
|
||
"checking": "Checking NinjaOne connection...",
|
||
"notConnected": {
|
||
"title": "Not connected to NinjaOne",
|
||
"description": "Connect your NinjaOne account to sync devices, receive alerts, and enable remote access."
|
||
},
|
||
"connected": "Connected to NinjaOne",
|
||
"connectedWithErrors": "NinjaOne connected with sync errors",
|
||
"instanceLabel": "Instance:",
|
||
"organizations": "{{count}} organizations",
|
||
"devices": "{{count}} devices",
|
||
"activeAlerts": "{{count}} active alerts",
|
||
"lastSynced": "Ostatnia synchronizacja: {{time}}"
|
||
},
|
||
"setup": {
|
||
"title": "Setup Instructions",
|
||
"steps": {
|
||
"login": "Log into your NinjaOne dashboard",
|
||
"navigate": "Navigate to Administration → Apps → API",
|
||
"addClient": "Click \"+ Add client app\" to create a new API application",
|
||
"platform": "Set Application Platform to \"Web (PHP, Java, .Net Core, etc.)\"",
|
||
"name": "Enter a Name (e.g., \"Alga PSA\")",
|
||
"redirectUri": "Add the redirect URI:",
|
||
"scopes": "Under \"Scopes\", check \"Monitoring\" and \"Management\"",
|
||
"grantTypes": "Under \"Allowed grant types\", check \"Authorization code\", \"Client credentials\", and \"Refresh token\"",
|
||
"addAndCopy": "Click \"Add\" and copy the Client ID and Client Secret below"
|
||
},
|
||
"docsPrefix": "For detailed setup instructions, see",
|
||
"docsSection": "Section 10.15",
|
||
"docsSuffix": "in the documentation.",
|
||
"openApiSettings": "Open NinjaOne API Settings"
|
||
},
|
||
"credentials": {
|
||
"title": "API Credentials",
|
||
"saved": "Credentials saved",
|
||
"clientIdLabel": "Client ID",
|
||
"clientIdPlaceholder": "Enter your NinjaOne Client ID",
|
||
"clientSecretLabel": "Client Secret",
|
||
"clientSecretPlaceholder": "Enter your NinjaOne Client Secret",
|
||
"clientSecretUpdatePlaceholder": "Enter new secret to update",
|
||
"secretMaskedLabel": "Secret",
|
||
"saving": "Saving...",
|
||
"save": "Save Credentials"
|
||
},
|
||
"region": {
|
||
"hint": "Select your NinjaOne region, then click ‘Connect to NinjaOne’ to authorize access.",
|
||
"label": "Region:"
|
||
},
|
||
"actions": {
|
||
"refreshing": "Refreshing...",
|
||
"refreshStatus": "Refresh Status",
|
||
"syncing": "Syncing...",
|
||
"syncOrganizations": "Sync Organizations",
|
||
"syncingDevices": "Syncing Devices...",
|
||
"syncDevices": "Sync Devices",
|
||
"disconnecting": "Disconnecting...",
|
||
"disconnect": "Disconnect",
|
||
"connect": "Connect to NinjaOne"
|
||
},
|
||
"disconnectModal": {
|
||
"title": "Disconnect NinjaOne",
|
||
"description": "Are you sure you want to disconnect NinjaOne? This will stop device synchronization and alert notifications, and remove your stored API credentials. Organization mappings will be preserved.",
|
||
"cancel": "Cancel",
|
||
"confirm": "Disconnect"
|
||
},
|
||
"toasts": {
|
||
"connectSuccess": "Successfully connected to NinjaOne.",
|
||
"connectFailed": "NinjaOne connection failed.",
|
||
"connectFailedWithDetail": "NinjaOne connection failed: {{detail}}",
|
||
"disconnectSuccess": "NinjaOne connection successfully disconnected.",
|
||
"credentialsSaved": "NinjaOne API credentials saved successfully.",
|
||
"orgSyncSuccess": "Organization sync completed. Processed: {{processed}}, Created: {{created}}, Updated: {{updated}}",
|
||
"deviceSyncSuccess": "Device sync completed. Processed: {{processed}}, Created: {{created}}, Updated: {{updated}}"
|
||
},
|
||
"errors": {
|
||
"loadStatus": "Failed to load NinjaOne connection status.",
|
||
"saveCredentials": "Failed to save credentials.",
|
||
"connect": "Failed to initiate NinjaOne connection.",
|
||
"disconnect": "Failed to disconnect NinjaOne.",
|
||
"disconnectUnexpected": "An unexpected error occurred while disconnecting.",
|
||
"orgSyncFailed": "Organization sync failed.",
|
||
"deviceSyncFailed": "Device sync failed."
|
||
},
|
||
"compliance": {
|
||
"actions": {
|
||
"retry": "Ponów",
|
||
"syncing": "Synchronizacja...",
|
||
"syncPatches": "Synchronizuj poprawki",
|
||
"syncSoftware": "Synchronizuj oprogramowanie"
|
||
},
|
||
"description": "Przegląd stanu urządzeń zarządzanych przez RMM",
|
||
"loading": "Ładowanie danych zgodności...",
|
||
"metrics": {
|
||
"devicesOffline": "Urządzenia offline",
|
||
"devicesOnline": "Urządzenia online",
|
||
"devicesWithAlerts": "Urządzenia z alertami",
|
||
"patchesFailed": "Poprawki nieudane",
|
||
"patchesPending": "Poprawki oczekujące"
|
||
},
|
||
"noData": "Brak dostępnych danych zgodności",
|
||
"summaryError": "Nie udało się załadować podsumowania zgodności",
|
||
"title": "Zgodność floty"
|
||
}
|
||
},
|
||
"setup": {
|
||
"activeConfiguration": "Aktywna konfiguracja",
|
||
"comingSoon": "Integracja RMM wkrótce dostępna",
|
||
"configure": "Konfiguruj integrację",
|
||
"selected": "Wybrano {{title}}",
|
||
"title": "Integracje RMM",
|
||
"backToList": "Wszystkie integracje RMM",
|
||
"loadingProvider": "Ładowanie ustawień integracji {{title}}...",
|
||
"status": {
|
||
"connected": "Połączono",
|
||
"connectedOneDevice": "Połączono · 1 urządzenie",
|
||
"connectedWithDevices": "Połączono · {{count}} urządzeń",
|
||
"notConnected": "Nie połączono",
|
||
"syncError": "Błąd synchronizacji"
|
||
}
|
||
},
|
||
"tactical": {
|
||
"actions": {
|
||
"disconnect": "Rozłącz",
|
||
"disconnecting": "Rozłączanie...",
|
||
"ingestSoftware": "Pobierz oprogramowanie",
|
||
"ingesting": "Pobieranie...",
|
||
"refresh": "Odśwież",
|
||
"save": "Zapisz",
|
||
"saving": "Zapisywanie...",
|
||
"syncAlerts": "Synchronizuj alerty",
|
||
"syncClients": "Synchronizuj klientów",
|
||
"syncDevices": "Synchronizuj urządzenia",
|
||
"syncing": "Synchronizacja...",
|
||
"testConnection": "Testuj połączenie",
|
||
"testing": "Testowanie..."
|
||
},
|
||
"auth": {
|
||
"apiKey": "Klucz API",
|
||
"enterApiKey": "Wprowadź klucz API",
|
||
"enterPassword": "Wprowadź hasło",
|
||
"enterUsername": "Wprowadź nazwę użytkownika",
|
||
"knox": "Knox",
|
||
"knoxOption": "Nazwa użytkownika/hasło (token Knox)",
|
||
"knoxTokenSaved": "Zapisano token Knox: {{value}}",
|
||
"mode": "Uwierzytelnianie",
|
||
"password": "Hasło",
|
||
"saved": "Zapisano: {{value}}",
|
||
"savedEnterToUpdate": "Zapisano (wprowadź, aby zaktualizować)",
|
||
"totp": "Kod TOTP",
|
||
"username": "Nazwa użytkownika"
|
||
},
|
||
"autoSync": "Automatyczna synchronizacja",
|
||
"client": {
|
||
"loading": "Ładowanie klientów…",
|
||
"select": "Wybierz klienta"
|
||
},
|
||
"counts": {
|
||
"activeAlerts": "Aktywne alerty",
|
||
"lastSync": "Ostatnia synchronizacja",
|
||
"mappedOrgs": "Zmapowane organizacje",
|
||
"never": "Nigdy",
|
||
"syncedDevices": "Zsynchronizowane urządzenia"
|
||
},
|
||
"description": "Połącz Tactical RMM, aby synchronizować zasoby i pobierać alerty.",
|
||
"errors": {
|
||
"backfillAlerts": "Uzupełnianie alertów nie powiodło się",
|
||
"connectionTest": "Test połączenia nie powiódł się",
|
||
"disconnect": "Rozłączanie nie powiodło się",
|
||
"ingestSoftware": "Pobieranie oprogramowania nie powiodło się",
|
||
"loadOrgMappings": "Nie można załadować mapowań organizacji",
|
||
"loadSettings": "Nie można załadować ustawień Tactical RMM",
|
||
"saveConfig": "Nie można zapisać konfiguracji Tactical RMM",
|
||
"someAlertsFailed": "Niektórych alertów nie można było zaktualizować: {{errors}}",
|
||
"someDevicesFailed": "Niektórych urządzeń nie można było zsynchronizować: {{errors}}",
|
||
"someOrgsFailed": "Niektórych organizacji nie można było zsynchronizować: {{errors}}",
|
||
"someSoftwareFailed": "Niektórych wierszy oprogramowania nie można było pobrać: {{errors}}",
|
||
"syncDevices": "Synchronizacja urządzeń nie powiodła się",
|
||
"syncOrgs": "Synchronizacja organizacji nie powiodła się",
|
||
"totpRequired": "Wymagany TOTP. Wprowadź bieżący kod i przetestuj ponownie.",
|
||
"updateMapping": "Nie można zaktualizować mapowania"
|
||
},
|
||
"fields": {
|
||
"instanceUrl": "URL instancji",
|
||
"instanceUrlHelp": "Użyj hosta API Tactical — subdomeny api., np. https://api.example.com. Nie adresu URL panelu (rmm.) i bez końcowego /api.",
|
||
"betaApiNote": "Wymaga włączenia interfejsu API Beta w Tactical na serwerze: ustaw BETA_API_ENABLED = True w Tactical, a następnie uruchom ponownie. Bez API Beta test połączenia i synchronizacja nie powiodą się."
|
||
},
|
||
"lastError": "Ostatni błąd: {{error}}",
|
||
"loadingSettings": "Ładowanie ustawień Tactical RMM...",
|
||
"sections": {
|
||
"alerts": "Alerty",
|
||
"alertsDescription": "Opcjonalnie: uzupełnij historyczne lub aktywne alerty z Tactical do Alga.",
|
||
"devices": "Urządzenia",
|
||
"devicesDescription": "Synchronizuj agentów Tactical jako zasoby Alga dla zmapowanych organizacji.",
|
||
"orgMapping": "Mapowanie organizacji",
|
||
"orgMappingDescription": "Przypisz każdego klienta Tactical do klienta Alga i kontroluj automatyczną synchronizację dla każdej organizacji.",
|
||
"orgMappingEmpty": "Nie znaleziono organizacji. Najpierw uruchom „Synchronizuj klientów”.",
|
||
"organizations": "Organizacje",
|
||
"organizationsDescription": "Synchronizuj klientów Tactical jako mapowania organizacji Alga, a następnie mapuj ich do klientów Alga.",
|
||
"softwareInventory": "Inwentarz oprogramowania",
|
||
"softwareInventoryDescription": "Opcjonalnie: pobierz zbuforowany inwentarz oprogramowania przez Tactical /api/software/ (bez wywołań odświeżania dla poszczególnych agentów).",
|
||
"webhooks": "Webhooki (alerty)",
|
||
"webhooksDescription": "Skonfiguruj webhook akcji alertu Tactical, używając wspólnego nagłówka secret poniżej."
|
||
},
|
||
"status": {
|
||
"authPrefix": "Uwierzytelnianie:",
|
||
"connected": "Połączono",
|
||
"disconnected": "Rozłączono",
|
||
"instanceUrlNotSet": "URL instancji nie jest ustawiony"
|
||
},
|
||
"statusLine": {
|
||
"configured": "Status: Skonfigurowano",
|
||
"notConfigured": "Status: Nie skonfigurowano"
|
||
},
|
||
"success": {
|
||
"alertBackfillCompleted": "Uzupełnianie alertów zakończone. Przetworzone: {{processed}}, Utworzone: {{created}}, Zaktualizowane: {{updated}}, Nieudane: {{failed}}",
|
||
"connection": "Połączenie pomyślne.",
|
||
"deviceSyncCompleted": "Synchronizacja urządzeń zakończona. Przetworzone: {{processed}}, Utworzone: {{created}}, Zaktualizowane: {{updated}}, Usunięte: {{deleted}}, Nieudane: {{failed}}",
|
||
"disconnected": "Rozłączono.",
|
||
"orgSyncCompleted": "Synchronizacja organizacji zakończona. Przetworzone: {{processed}}, Utworzone: {{created}}, Zaktualizowane: {{updated}}, Nieudane: {{failed}}",
|
||
"saved": "Konfiguracja Tactical RMM zapisana.",
|
||
"softwareIngestionCompleted": "Pobieranie oprogramowania zakończone. Przetworzone: {{processed}}, Zainstalowane/Zaktualizowane: {{created}}, Zaktualizowane zasoby: {{updated}}, Nieudane: {{failed}}"
|
||
},
|
||
"tacticalIdLabel": "ID Tactical: {{id}}",
|
||
"title": "Tactical RMM",
|
||
"toasts": {
|
||
"alertsSyncedDescription": "Alerty Tactical zostały uzupełnione.",
|
||
"alertsSyncedTitle": "Zsynchronizowano alerty",
|
||
"backfillFailedTitle": "Uzupełnianie nie powiodło się",
|
||
"connectedDescription": "Zweryfikowano połączenie Tactical RMM.",
|
||
"connectedTitle": "Połączono",
|
||
"connectionFailedTitle": "Połączenie nie powiodło się",
|
||
"devicesSyncedDescription": "Agenci Tactical zostali zsynchronizowani jako zasoby.",
|
||
"devicesSyncedTitle": "Zsynchronizowano urządzenia",
|
||
"disconnectFailedTitle": "Rozłączanie nie powiodło się",
|
||
"disconnectedDescription": "Usunięto poświadczenia Tactical RMM.",
|
||
"disconnectedTitle": "Rozłączono",
|
||
"ingestionFailedTitle": "Pobieranie nie powiodło się",
|
||
"orgsSyncedDescription": "Klienci Tactical zostali zsynchronizowani jako mapowania organizacji.",
|
||
"orgsSyncedTitle": "Zsynchronizowano organizacje",
|
||
"saveFailedTitle": "Zapisywanie nie powiodło się",
|
||
"savedDescription": "Zaktualizowano konfigurację Tactical RMM.",
|
||
"savedTitle": "Zapisano",
|
||
"softwareIngestedDescription": "Zbuforowany inwentarz oprogramowania Tactical został pobrany.",
|
||
"softwareIngestedTitle": "Pobrano oprogramowanie",
|
||
"syncFailedTitle": "Synchronizacja nie powiodła się",
|
||
"unknownError": "Nieznany błąd",
|
||
"updateFailedTitle": "Aktualizacja nie powiodła się"
|
||
},
|
||
"webhook": {
|
||
"copiedTitle": "Skopiowano",
|
||
"copy": "Kopiuj",
|
||
"headerName": "Nazwa nagłówka",
|
||
"payloadTemplate": "Szablon payloadu",
|
||
"secret": "Secret nagłówka",
|
||
"secretCopied": "Skopiowano secret webhooka do schowka.",
|
||
"unavailable": "Informacje o webhooku niedostępne. (Wymaga uprawnień do odczytu ustawień.)",
|
||
"url": "URL webhooka",
|
||
"urlCopied": "Skopiowano URL webhooka do schowka."
|
||
}
|
||
},
|
||
"tanium": {
|
||
"loading": "Ładowanie ustawień integracji Tanium...",
|
||
"actions": {
|
||
"discoverScopes": "Wykryj zakresy",
|
||
"disconnect": "Rozłącz",
|
||
"runInventorySync": "Uruchom synchronizację inwentarza",
|
||
"saveConfiguration": "Zapisz konfigurację",
|
||
"testConnection": "Testuj połączenie"
|
||
},
|
||
"connection": {
|
||
"connectedAt": "Połączono o: {{time}}",
|
||
"description": "Skonfiguruj poświadczenia Tanium Gateway i zweryfikuj dostęp z zakresem tenanta.",
|
||
"never": "Nigdy",
|
||
"syncLabel": "Synchronizacja: {{status}}",
|
||
"syncLabelWithError": "Synchronizacja: {{status}} ({{error}})",
|
||
"title": "Połączenie Tanium"
|
||
},
|
||
"errors": {
|
||
"loadMappings": "Nie udało się załadować mapowań Tanium.",
|
||
"loadSettings": "Nie udało się załadować ustawień Tanium.",
|
||
"loadState": "Nie udało się załadować stanu integracji Tanium.",
|
||
"saveConfiguration": "Nie udało się zapisać konfiguracji Tanium.",
|
||
"testConnectionFailed": "Test połączenia Tanium nie powiódł się.",
|
||
"disconnectFailed": "Nie udało się rozłączyć integracji Tanium.",
|
||
"scopeDiscoveryFailed": "Wykrywanie zakresu nie powiodło się.",
|
||
"inventorySyncFailed": "Synchronizacja inwentarza nie powiodła się.",
|
||
"updateMappingFailed": "Nie udało się zaktualizować mapowania."
|
||
},
|
||
"fields": {
|
||
"apiToken": "Token API {{state}}",
|
||
"apiTokenPlaceholderExisting": "Pozostaw puste, aby zachować istniejący token",
|
||
"apiTokenPlaceholderNew": "Wklej token API Tanium",
|
||
"apiTokenStateRequired": "(wymagany)",
|
||
"apiTokenStateSaved": "(zapisany)",
|
||
"assetApiUrl": "URL Asset API (opcjonalny)",
|
||
"assetApiUrlPlaceholder": "https://example.cloud.tanium.com/plugin/products/asset",
|
||
"assetFallbackLabel": "Włącz fallback Asset API dla pokrycia wygasłych punktów końcowych",
|
||
"gatewayUrl": "URL Gateway",
|
||
"gatewayUrlPlaceholder": "https://example.cloud.tanium.com"
|
||
},
|
||
"mappings": {
|
||
"autoSync": "Automatyczna synchronizacja",
|
||
"autoSyncDisabled": "Wyłączona",
|
||
"autoSyncEnabled": "Włączona",
|
||
"externalScope": "Zakres zewnętrzny",
|
||
"loading": "Ładowanie mapowań...",
|
||
"mappedClient": "Zmapowany klient",
|
||
"noScopes": "Nie wykryto jeszcze żadnych zakresów Tanium.",
|
||
"scopeIdLabel": "ID: {{id}}",
|
||
"unmapped": "Niezmapowane"
|
||
},
|
||
"status": {
|
||
"connected": "Połączono",
|
||
"disconnected": "Rozłączono",
|
||
"label": "Status: "
|
||
},
|
||
"success": {
|
||
"configurationSaved": "Zapisano konfigurację Tanium.",
|
||
"connectionTestSucceeded": "Test połączenia Tanium powiódł się.",
|
||
"disconnected": "Rozłączono integrację Tanium.",
|
||
"inventorySyncCompleted": "Synchronizacja inwentarza zakończona. Przetworzone: {{processed}}, Utworzone: {{created}}, Zaktualizowane: {{updated}}",
|
||
"scopeDiscoveryCompleted": "Wykrywanie zakresu zakończone. Przetworzone: {{processed}}, Utworzone: {{created}}, Zaktualizowane: {{updated}}"
|
||
},
|
||
"sync": {
|
||
"description": "Wykryj zakresy z grup komputerów Tanium, zmapuj je do klientów, a następnie uruchom synchronizację inwentarza.",
|
||
"title": "Synchronizacja Tanium"
|
||
}
|
||
},
|
||
"levelio": {
|
||
"actions": {
|
||
"backfillAlerts": "Uzupełnij alerty",
|
||
"disconnect": "Rozłącz",
|
||
"discoverGroups": "Wykryj grupy",
|
||
"runDeviceSync": "Uruchom synchronizację urządzeń",
|
||
"saveConfiguration": "Zapisz konfigurację",
|
||
"testConnection": "Testuj połączenie"
|
||
},
|
||
"connection": {
|
||
"connectedAt": "Połączono: {{time}}",
|
||
"description": "Połącz się z Level (level.io) za pomocą klucza API. Klucze tworzy się w Level w sekcji Settings > API.",
|
||
"never": "nigdy",
|
||
"syncLabel": "Synchronizacja: {{status}}",
|
||
"syncLabelWithError": "Synchronizacja: {{status}} ({{error}})",
|
||
"title": "Połączenie z Level"
|
||
},
|
||
"errors": {
|
||
"alertBackfillFailed": "Uzupełnianie alertów nie powiodło się",
|
||
"deviceSyncFailed": "Synchronizacja urządzeń nie powiodła się",
|
||
"disconnectFailed": "Nie udało się rozłączyć integracji Level",
|
||
"groupSyncFailed": "Wykrywanie grup nie powiodło się",
|
||
"loadMappings": "Nie udało się załadować mapowań grup Level",
|
||
"loadSettings": "Nie udało się załadować ustawień Level",
|
||
"loadState": "Nie udało się załadować stanu integracji Level",
|
||
"loadSummary": "Nie udało się załadować podsumowania połączenia Level",
|
||
"loadWebhook": "Nie udało się załadować szczegółów webhooka Level",
|
||
"saveConfiguration": "Nie udało się zapisać konfiguracji Level",
|
||
"testConnectionFailed": "Test połączenia nie powiódł się",
|
||
"updateMappingFailed": "Nie udało się zaktualizować mapowania"
|
||
},
|
||
"fields": {
|
||
"apiKey": "Klucz API ({{state}})",
|
||
"apiKeyPlaceholderExisting": "Wprowadź nowy klucz, aby zastąpić zapisany",
|
||
"apiKeyPlaceholderNew": "Wklej swój klucz API Level",
|
||
"apiKeyStateRequired": "wymagany",
|
||
"apiKeyStateSaved": "zapisany"
|
||
},
|
||
"mappings": {
|
||
"autoSync": "Automatyczna synchronizacja",
|
||
"autoSyncDisabled": "Wyłączona",
|
||
"autoSyncEnabled": "Włączona",
|
||
"group": "Grupa Level",
|
||
"groupIdLabel": "ID: {{id}}",
|
||
"loading": "Ładowanie…",
|
||
"mappedClient": "Zmapowany klient",
|
||
"noGroups": "Nie wykryto jeszcze grup. Najpierw uruchom Wykryj grupy.",
|
||
"unmapped": "Niezmapowana"
|
||
},
|
||
"status": {
|
||
"connected": "Połączono",
|
||
"disconnected": "Nie połączono",
|
||
"label": "Status: "
|
||
},
|
||
"success": {
|
||
"alertBackfillCompleted": "Uzupełnianie alertów zakończone: przetworzono {{processed}} alertów",
|
||
"configurationSaved": "Zapisano konfigurację Level",
|
||
"connectionTestSucceeded": "Połączenie z Level powiodło się",
|
||
"deviceSyncCompleted": "Synchronizacja urządzeń zakończona: przetworzono {{processed}}, utworzono {{created}}, zaktualizowano {{updated}}",
|
||
"disconnected": "Integracja Level została rozłączona",
|
||
"groupSyncCompleted": "Wykrywanie grup zakończone: przetworzono {{processed}}, utworzono {{created}}, zaktualizowano {{updated}}"
|
||
},
|
||
"sync": {
|
||
"description": "Wykrywaj grupy Level, mapuj je na klientów i synchronizuj urządzenia. Urządzenia w niezmapowanych grupach są pomijane; podgrupy dziedziczą najbliższego zmapowanego przodka.",
|
||
"summary": "{{mappedGroups}} zmapowanych grup · {{devices}} urządzeń · {{activeAlerts}} aktywnych alertów",
|
||
"title": "Synchronizacja i mapowania grup"
|
||
},
|
||
"webhook": {
|
||
"copied": "Skopiowano",
|
||
"copy": "Kopiuj",
|
||
"description": "Level nie umożliwia rejestrowania webhooków przez swoje API. W Level utwórz automatyzację z akcją HTTP POST, używając poniższego adresu URL, nagłówka i ładunku, aby przesyłać alerty do Alga w czasie rzeczywistym.",
|
||
"header": "Nagłówek: {{name}}",
|
||
"hideSecret": "Ukryj sekret",
|
||
"loading": "Szczegóły webhooka załadują się po skonfigurowaniu integracji.",
|
||
"payload": "Szablon ładunku",
|
||
"showSecret": "Pokaż sekret",
|
||
"title": "Webhook alertów",
|
||
"url": "Adres URL webhooka"
|
||
}
|
||
}
|
||
},
|
||
"sso": {
|
||
"msp": {
|
||
"actions": {
|
||
"add": "Dodaj",
|
||
"refresh": "Odśwież",
|
||
"request": "Zgłoś",
|
||
"resetChallenge": "Zresetuj wyzwanie",
|
||
"revoke": "Unieważnij",
|
||
"saveDomains": "Zapisz domeny",
|
||
"saving": "Zapisywanie…",
|
||
"verify": "Zweryfikuj"
|
||
},
|
||
"addDomainLabel": "Dodaj domenę logowania",
|
||
"advisoryNotice": "Tryb doradczy: rejestracja domeny wspomaga routing wykrywania MSP SSO, ale nie wymaga weryfikacji własności w edycji Community.",
|
||
"claimStatus": {
|
||
"advisory": "Doradczy",
|
||
"pending": "Oczekujący",
|
||
"rejected": "Odrzucony",
|
||
"revoked": "Unieważniony",
|
||
"verified": "Zweryfikowany",
|
||
"verifiedLegacy": "Zweryfikowany (Legacy)"
|
||
},
|
||
"descriptionCe": "Zarejestruj domeny doradcze dla wykrywania SSO logowania MSP. Weryfikacja własności nie jest wymuszana w edycji Community, a niezarządzane domeny korzystają z dostawców Nine Minds na poziomie aplikacji.",
|
||
"descriptionEe": "Zarządzaj cyklem życia zgłoszeń domen dla wykrywania dostawców SSO logowania MSP. Niezgłoszone lub niekwalifikujące się domeny korzystają z dostawców Nine Minds na poziomie aplikacji.",
|
||
"dnsHost": "Host:",
|
||
"dnsInstructions": "Dodaj rekord DNS TXT, a następnie kliknij Zweryfikuj:",
|
||
"dnsValue": "Wartość:",
|
||
"emptyClaims": "Nie skonfigurowano jeszcze żadnych zgłoszeń domen.",
|
||
"emptyDomains": "Nie skonfigurowano żadnych domen. Nieznane domeny będą korzystać z fallbacku dostawcy na poziomie aplikacji.",
|
||
"errors": {
|
||
"conflicts": "Konflikty: {{conflicts}}.",
|
||
"loadClaims": "Nie można załadować zgłoszeń domen MSP SSO.",
|
||
"loadDomains": "Nie można załadować domen logowania MSP SSO.",
|
||
"refreshChallenge": "Nie można odświeżyć wyzwania.",
|
||
"requestClaim": "Nie można zgłosić roszczenia domeny.",
|
||
"revokeClaim": "Nie można unieważnić zgłoszenia domeny.",
|
||
"saveDomains": "Nie można zapisać domen logowania MSP SSO.",
|
||
"verifyClaim": "Nie można zweryfikować zgłoszenia domeny."
|
||
},
|
||
"fallbackInfo": "Domeny bez kwalifikującego się zgłoszenia tenanta korzystają z konfiguracji dostawcy SSO Nine Minds na poziomie aplikacji.",
|
||
"loading": "Ładowanie…",
|
||
"removeDomainAria": "Usuń domenę {{number}}",
|
||
"requestClaim": "Zgłoś roszczenie",
|
||
"requestClaimLabel": "Zgłoś roszczenie domeny",
|
||
"title": "Domeny logowania MSP SSO",
|
||
"toasts": {
|
||
"claimRequestedDescription": "Utworzono oczekujące zgłoszenie domeny i wygenerowano wyzwanie weryfikacji.",
|
||
"claimRequestedTitle": "Zgłoszono roszczenie domeny",
|
||
"claimUnchangedDescription": "Istniejące oczekujące zgłoszenie i wyzwanie są już aktywne.",
|
||
"claimUnchangedTitle": "Zgłoszenie domeny bez zmian",
|
||
"refreshFailedTitle": "Nie można odświeżyć wyzwania",
|
||
"refreshedDescription": "Dla tego zgłoszenia aktywne jest nowe wyzwanie weryfikacji.",
|
||
"refreshedTitle": "Odświeżono wyzwanie",
|
||
"requestClaimFailedTitle": "Nie można zgłosić roszczenia domeny",
|
||
"revokeFailedTitle": "Nie można unieważnić zgłoszenia",
|
||
"revokedDescription": "Przejęcie tenanta dla tej domeny jest wyłączone.",
|
||
"revokedTitle": "Unieważniono zgłoszenie domeny",
|
||
"saveDomainsFailedTitle": "Nie można zapisać domen logowania MSP SSO",
|
||
"savedDescription": "Zaktualizowano ustawienia wykrywania SSO opartego na domenach.",
|
||
"savedTitle": "Zapisano domeny logowania MSP SSO",
|
||
"verifiedDescription": "Przejęcie domeny kwalifikuje się teraz do routingu dostawcy w zakresie tenanta.",
|
||
"verifiedTitle": "Zweryfikowano zgłoszenie domeny",
|
||
"verifyFailedTitle": "Weryfikacja domeny nie powiodła się"
|
||
}
|
||
}
|
||
},
|
||
"teams": {
|
||
"settings": {
|
||
"actions": {
|
||
"activate": "Aktywuj Teams",
|
||
"addNote": {
|
||
"description": "Zezwalaj na szybkie akcje notatek wewnętrznych.",
|
||
"label": "Dodaj notatkę"
|
||
},
|
||
"approvalResponse": {
|
||
"description": "Zezwalaj na szybkie akcje zatwierdzania i odrzucania.",
|
||
"label": "Odpowiedź zatwierdzenia"
|
||
},
|
||
"assignTicket": {
|
||
"description": "Zezwalaj na szybkie akcje przypisywania zgłoszeń.",
|
||
"label": "Przypisz zgłoszenie"
|
||
},
|
||
"deactivate": "Dezaktywuj",
|
||
"logTime": {
|
||
"description": "Zezwalaj na szybkie akcje rejestrowania czasu.",
|
||
"label": "Zarejestruj czas"
|
||
},
|
||
"reload": "Przeładuj",
|
||
"replyToContact": {
|
||
"description": "Zezwalaj na szybkie akcje odpowiedzi widoczne dla klienta.",
|
||
"label": "Odpowiedz do kontaktu"
|
||
},
|
||
"saveChanges": "Zapisz zmiany",
|
||
"saveDraft": "Zapisz wersję roboczą",
|
||
"saving": "Zapisywanie...",
|
||
"teamsActive": "Teams aktywne"
|
||
},
|
||
"capabilities": {
|
||
"activityNotifications": {
|
||
"description": "Dostarczaj osobiste powiadomienia do kanału aktywności Teams.",
|
||
"label": "Powiadomienia o aktywności"
|
||
},
|
||
"groupChatBot": {
|
||
"description": "Zezwalaj botowi na odpowiadanie w czatach grupowych Teams. Odpowiedzi bota (w tym szczegóły zgłoszenia) są widoczne dla wszystkich członków czatu.",
|
||
"label": "Bot w czacie grupowym"
|
||
},
|
||
"messageExtension": {
|
||
"description": "Włącz wyszukiwanie i akcje PSA oparte na wiadomościach.",
|
||
"label": "Message extension"
|
||
},
|
||
"personalBot": {
|
||
"description": "Włącz polecenia bota w zakresie osobistym dla techników.",
|
||
"label": "Bot osobisty"
|
||
},
|
||
"personalTab": {
|
||
"description": "Uruchom punkt wejścia osobistego tabu PSA.",
|
||
"label": "Osobisty tab"
|
||
}
|
||
},
|
||
"checklist": {
|
||
"installState": {
|
||
"active": "Teams jest aktywne dla tego tenanta.",
|
||
"error": "Konfiguracja Teams zawiera błąd, który wymaga naprawienia.",
|
||
"label": "Stan instalacji Teams",
|
||
"notConfigured": "Zapisz wersję roboczą lub aktywuj Teams, gdy konfiguracja jest gotowa.",
|
||
"pending": "Wersja robocza konfiguracji jest zapisana i gotowa do instalacji lub zgody."
|
||
},
|
||
"needsAction": "Wymaga działania",
|
||
"profileReady": {
|
||
"completed": "Wybrany profil posiada Client ID, Tenant ID i zapisany materiał secret.",
|
||
"label": "Profil gotowy do instalacji Teams",
|
||
"pending": "Żaden wybrany profil Teams nie jest jeszcze gotowy."
|
||
},
|
||
"profileSelected": {
|
||
"completed": "{{name}} jest powiązany z Teams.",
|
||
"label": "Wybrany profil Microsoft",
|
||
"pending": "Wybierz jeden kwalifikujący się profil Microsoft przed zapisaniem lub aktywowaniem Teams."
|
||
},
|
||
"ready": "Gotowy"
|
||
},
|
||
"description": "Powiąż Teams z profilem Microsoft, włącz funkcje i wygeneruj pakiet tenanta.",
|
||
"errors": {
|
||
"downloadPackage": "Nie udało się pobrać pakietu aplikacji Teams",
|
||
"generatePackage": "Nie udało się wygenerować pakietu aplikacji Teams",
|
||
"loadGuidance": "Nie udało się załadować wskazówek konfiguracji Teams",
|
||
"saveSettings": "Nie udało się zapisać ustawień Teams"
|
||
},
|
||
"guidance": {
|
||
"applicationIdUri": "Application ID URI",
|
||
"messageExtension": "Message extension",
|
||
"personalBot": "Bot osobisty",
|
||
"personalTab": "Osobisty tab",
|
||
"redirectUris": "Redirect URI",
|
||
"requiredScopes": "Wymagane zakresy",
|
||
"teamsAppIdUri": "Teams App ID URI",
|
||
"unavailable": "Niedostępne"
|
||
},
|
||
"installStatus": {
|
||
"active": "Aktywny",
|
||
"error": "Błąd",
|
||
"installPending": "Instalacja oczekująca",
|
||
"notConfigured": "Nie skonfigurowano"
|
||
},
|
||
"noEligibleProfiles": "Żaden profil Microsoft nie jest gotowy dla Teams. Najpierw ukończ konfigurację Microsoft.",
|
||
"notifications": {
|
||
"approvalRequest": {
|
||
"description": "Powiadamiaj osoby zatwierdzające o oczekujących decyzjach.",
|
||
"label": "Prośby o zatwierdzenie"
|
||
},
|
||
"assignment": {
|
||
"description": "Powiadamiaj techników, gdy przypisywana jest praca.",
|
||
"label": "Zdarzenia przypisania"
|
||
},
|
||
"customerReply": {
|
||
"description": "Powiadamiaj techników, gdy klienci odpowiadają.",
|
||
"label": "Odpowiedzi klientów"
|
||
},
|
||
"escalation": {
|
||
"description": "Powiadamiaj właścicieli, gdy praca jest eskalowana.",
|
||
"label": "Eskalacje"
|
||
},
|
||
"slaRisk": {
|
||
"description": "Powiadamiaj techników, gdy osiągane są progi ryzyka SLA.",
|
||
"label": "Ryzyko SLA"
|
||
}
|
||
},
|
||
"package": {
|
||
"appId": "App ID",
|
||
"appIds": "App IDs",
|
||
"botId": "Bot ID",
|
||
"deepLinks": "Deep linki",
|
||
"description": "Wygeneruj manifest aplikacji i linki instalacyjne dla wybranego profilu Microsoft.",
|
||
"downloadManifest": "Pobierz manifest JSON",
|
||
"downloadZip": "Pobierz pakiet aplikacji (.zip)",
|
||
"downloading": "Pobieranie...",
|
||
"fileName": "Nazwa pliku",
|
||
"generate": "Wygeneruj pakiet",
|
||
"generating": "Generowanie...",
|
||
"manifestVersion": "Wersja manifestu",
|
||
"myWork": "Moja praca",
|
||
"openBaseUrl": "Otwórz bazowy URL PSA",
|
||
"openDeeplink": "Otwórz deep link Teams",
|
||
"packageVersion": "Wersja pakietu",
|
||
"projectTaskTemplate": "Szablon zadania projektu",
|
||
"section": "Pakiet",
|
||
"ticketTemplate": "Szablon zgłoszenia",
|
||
"title": "Pakiet Teams",
|
||
"validDomains": "Poprawne domeny",
|
||
"webResource": "Zasób aplikacji webowej"
|
||
},
|
||
"profileLabel": "Profil Microsoft",
|
||
"profileSummary": {
|
||
"needsRepair": "Wybrany profil wymaga naprawy",
|
||
"none": "Nie wybrano profilu"
|
||
},
|
||
"section": {
|
||
"allowedActions": "Dozwolone akcje",
|
||
"capabilities": "Funkcje",
|
||
"notifications": "Powiadomienia"
|
||
},
|
||
"selectProfile": "Wybierz profil",
|
||
"statusMessage": {
|
||
"activated": "Konfiguracja Teams aktywowana.",
|
||
"deactivated": "Konfiguracja Teams dezaktywowana.",
|
||
"packageDownloaded": "Pobrano pakiet aplikacji Teams.",
|
||
"packageGenerated": "Wygenerowano pakiet aplikacji Teams.",
|
||
"saved": "Zapisano konfigurację Teams."
|
||
},
|
||
"title": "Microsoft Teams",
|
||
"diagnostics": {
|
||
"title": "Diagnostyka i wiadomość testowa",
|
||
"description": "Zweryfikuj konfigurację Teams i wyślij proaktywną wiadomość testową do swojej konwersacji z botem Teams.",
|
||
"run": "Uruchom diagnostykę",
|
||
"running": "Trwa uruchamianie...",
|
||
"sendTest": "Wyślij wiadomość testową",
|
||
"sending": "Trwa wysyłanie...",
|
||
"disabled": "Diagnostyka i wiadomości testowe są dostępne po aktywacji integracji Teams.",
|
||
"completedAt": "Ukończono {{time}}",
|
||
"lastSuccess": "Ostatni sukces",
|
||
"lastFailure": "Ostatni błąd",
|
||
"noneRecorded": "Brak zarejestrowanych",
|
||
"recommendations": "Zalecenia",
|
||
"status": {
|
||
"pass": "Powodzenie",
|
||
"warn": "Ostrzeżenie",
|
||
"fail": "Niepowodzenie",
|
||
"skip": "Pominięto"
|
||
},
|
||
"errors": {
|
||
"run": "Nie udało się uruchomić diagnostyki Teams",
|
||
"testMessage": "Nie udało się wysłać wiadomości testowej Teams"
|
||
},
|
||
"test": {
|
||
"sent": "Wiadomość testowa Teams wysłana.",
|
||
"failed": "Wiadomość testowa Teams nie powiodła się.",
|
||
"addonInactive": "Dodatek Teams nie jest aktywny dla tego dzierżawcy.",
|
||
"integrationInactive": "Aktywuj integrację Teams przed wysłaniem wiadomości testowej.",
|
||
"capabilityDisabled": "Włącz funkcję bota osobistego przed wysłaniem wiadomości testowej.",
|
||
"botNotConfigured": "Skonfiguruj poświadczenia bota Teams przed wysłaniem wiadomości testowej.",
|
||
"missingUserLinkage": "Połącz swoje konto Microsoft przed wysłaniem wiadomości testowej Teams.",
|
||
"missingConversationReference": "Otwórz bota Alga PSA w Teams i wyślij mu najpierw dowolną wiadomość, a następnie spróbuj ponownie.",
|
||
"skipped": "Wiadomość testowa Teams została pominięta."
|
||
},
|
||
"steps": {
|
||
"addonEntitlement": "Uprawnienie do dodatku Teams",
|
||
"integrationStatus": "Stan integracji Teams",
|
||
"capabilities": "Możliwości Teams",
|
||
"microsoftProfile": "Gotowość profilu Microsoft",
|
||
"recordingPermissions": "Uprawnienia Teams do nagrywania i transkrypcji",
|
||
"packageMetadata": "Metadane pakietu Teams",
|
||
"botConnector": "Poświadczenia łącznika bota",
|
||
"userLinkage": "Powiązanie konta Microsoft administratora",
|
||
"conversationReference": "Odwołanie do konwersacji Teams administratora",
|
||
"recentDeliveryHealth": "Ostatni stan dostarczania Teams"
|
||
},
|
||
"recommendation": {
|
||
"addon": "Włącz dodatek Microsoft Teams dla tego dzierżawcy.",
|
||
"activate": "Aktywuj integrację Teams w ustawieniach.",
|
||
"capabilities": "Włącz bota osobistego i powiadomienia o aktywności dla Teams.",
|
||
"profile": "Wybierz gotowy profil Microsoft dla Teams.",
|
||
"activeProfile": "Wybierz aktywny profil Microsoft dla Teams.",
|
||
"profileCredentials": "Uzupełnij poświadczenia profilu Microsoft przed aktywacją Teams.",
|
||
"meetingOrganizer": "Skonfiguruj domyślnego organizatora spotkań Teams w ustawieniach Teams.",
|
||
"meetingOrganizerObjectId": "Zapisz ponownie domyślnego organizatora spotkań Teams, aby Alga PSA mogła rozpoznać jego identyfikator obiektu Microsoft Entra.",
|
||
"package": "Wygeneruj pakiet aplikacji Teams przed uruchomieniem walidacji kompleksowej.",
|
||
"baseUrl": "Wygeneruj ponownie pakiet Teams z osiągalnym adresem URL bazowym.",
|
||
"botEnv": "Skonfiguruj TEAMS_BOT_APP_ID, TEAMS_BOT_APP_TENANT_ID i TEAMS_BOT_APP_PASSWORD.",
|
||
"userLinkage": "Połącz swoje konto Microsoft w ustawieniach profilu.",
|
||
"conversationReference": "Otwórz bota Alga PSA w Teams i wyślij mu najpierw dowolną wiadomość, a następnie spróbuj ponownie.",
|
||
"deliveryFailure": "Przejrzyj najnowszy błąd dostarczania Teams i spróbuj ponownie po usunięciu przyczyny."
|
||
}
|
||
},
|
||
"meetings": {
|
||
"title": "Spotkania online i nagrania",
|
||
"description": "Użyj jednego konta usługi Microsoft do organizowania spotkań Teams i kontrolowania sposobu przechowywania nagrań.",
|
||
"organizer": {
|
||
"label": "Domyślny UPN organizatora spotkania",
|
||
"placeholder": "scheduler@acme.com",
|
||
"help": "Zapisanie rozwiązuje i przechowuje identyfikator obiektu Microsoft Entra używany do wywołań spotkań Graph.",
|
||
"resolved": "Rozwiązany identyfikator obiektu: {{objectId}}"
|
||
},
|
||
"downloadRecordings": {
|
||
"label": "Pobieraj nagrania do magazynu wewnętrznego",
|
||
"description": "Gdy włączone, obiekty blob nagrań są kopiowane do magazynu dzierżawcy oprócz uwierzytelnionego serwera proxy Graph."
|
||
},
|
||
"exposeRecordingsInPortal": {
|
||
"label": "Pokaż nagrania i transkrypcje w portalu klienta",
|
||
"description": "Domyślnie wyłączone; użytkownicy MSP nadal mogą przeglądać artefakty ze szczegółów interakcji i spotkań."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"xero": {
|
||
"csv": {
|
||
"clientSync": {
|
||
"cancel": "Anuluj",
|
||
"createNew": "Utwórz nowych klientów",
|
||
"description": "Eksportuj klientów do CSV Xero Contacts lub importuj kontakty z Xero.",
|
||
"errorRow": "Wiersz {{row}}: {{name}} - {{error}}",
|
||
"errors": {
|
||
"export": "Nie udało się wyeksportować klientów",
|
||
"import": "Nie udało się zaimportować klientów",
|
||
"processCsv": "Nie udało się przetworzyć pliku CSV"
|
||
},
|
||
"errorsTitle": "Błędy ({{count}})",
|
||
"exportButton": "Eksportuj klientów do CSV",
|
||
"exportClients": "Eksportuj klientów",
|
||
"exportDescription": "Eksportuj swoich klientów Alga do pliku CSV, który można zaimportować do Xero jako Contacts.",
|
||
"exportSuccess": "Wyeksportowano {{count}} klientów do {{filename}}",
|
||
"importCompleteDescription": "Pomyślnie przetworzono {{count}} kontaktów.",
|
||
"importCompleteTitle": "Import zakończony",
|
||
"importContacts": "Importuj kontakty",
|
||
"importContactsButton": "Importuj {{count}} kontaktów",
|
||
"importDescription": "Importuj kontakty z eksportu CSV Xero Contacts. Istniejący klienci mogą być dopasowani i zaktualizowani.",
|
||
"importing": "Importowanie kontaktów...",
|
||
"matchBy": {
|
||
"algaClientId": "ID klienta Alga (z kategorii śledzenia)",
|
||
"contactName": "Nazwa kontaktu",
|
||
"emailAddress": "Adres e-mail"
|
||
},
|
||
"matchByLabel": "Dopasuj kontakty według:",
|
||
"moreErrors": "...i {{count}} więcej błędów",
|
||
"preview": {
|
||
"columns": {
|
||
"action": "Akcja",
|
||
"contactName": "Nazwa kontaktu",
|
||
"email": "E-mail",
|
||
"matchedClient": "Dopasowany klient"
|
||
},
|
||
"moreWarnings": "...i {{count}} więcej",
|
||
"showing20of": "Wyświetlanie 20 z {{count}} wierszy",
|
||
"toCreate": "Do utworzenia",
|
||
"toSkip": "Do pominięcia",
|
||
"toUpdate": "Do zaktualizowania",
|
||
"warnings": "Ostrzeżenia"
|
||
},
|
||
"processing": "Przetwarzanie {{filename}}...",
|
||
"result": {
|
||
"created": "Utworzono",
|
||
"mappings": "Mapowania",
|
||
"skipped": "Pominięto",
|
||
"updated": "Zaktualizowano"
|
||
},
|
||
"selectCsvFile": "Wybierz plik CSV",
|
||
"startNewImport": "Rozpocznij nowy import",
|
||
"title": "Synchronizacja klientów",
|
||
"updateExisting": "Aktualizuj istniejących klientów",
|
||
"workflow": {
|
||
"s1": "Eksportuj klientów z Alga do CSV Xero Contacts",
|
||
"s2": "Importuj CSV do Xero (Contacts → Import)",
|
||
"s3": "Po zmianach w Xero wyeksportuj kontakty z Xero",
|
||
"s4": "Importuj CSV kontaktów Xero z powrotem do Alga, aby zsynchronizować aktualizacje"
|
||
},
|
||
"workflowTitle": "Przepływ synchronizacji klientów"
|
||
},
|
||
"settings": {
|
||
"dateFormat": "Format daty",
|
||
"dateFormatHelp": "Dopasuj to do ustawień regionalnych Xero.",
|
||
"dateFormatOptions": {
|
||
"dmy": "DD/MM/RRRR (Dzień/Miesiąc/Rok)",
|
||
"mdy": "MM/DD/RRRR (Miesiąc/Dzień/Rok)"
|
||
},
|
||
"defaultCurrency": "Waluta domyślna",
|
||
"defaultCurrencyHelp": "Pozostaw puste, aby użyć waluty faktury.",
|
||
"errors": {
|
||
"load": "Nie udało się załadować ustawień",
|
||
"save": "Nie udało się zapisać ustawień"
|
||
},
|
||
"exportSettings": {
|
||
"description": "Skonfiguruj sposób eksportowania faktur w formacie CSV dla Xero.",
|
||
"title": "Ustawienia eksportu CSV"
|
||
},
|
||
"loading": "Ładowanie ustawień CSV Xero...",
|
||
"managedPrefix": "Przejdź do",
|
||
"managedSuffix": "aby wybrać faktury, wygenerować eksporty CSV Xero, importować raporty podatkowe i zarządzać partiami.",
|
||
"mappings": {
|
||
"description": "Mapuj klientów Alga, usługi i kody podatkowe na identyfikatory używane w Twojej organizacji Xero. Te wartości są używane podczas generowania eksportu CSV.",
|
||
"title": "Mapowania CSV Xero"
|
||
},
|
||
"overview": {
|
||
"description": "Eksportuj faktury do CSV w celu ręcznego importu w Xero i importuj dane podatkowe z raportów Xero.",
|
||
"exportLabel": "Eksport",
|
||
"exportText": "Generuj pliki CSV zgodne z funkcją importu faktur Xero",
|
||
"intro": "Ta integracja zapewnia alternatywę dla łączności Xero opartej na OAuth:",
|
||
"note": "Uwaga: Skonfiguruj mapowania poniżej przed eksportem. Eksporty CSV i import podatków są zarządzane z poziomu Rozliczenia → Eksporty księgowe.",
|
||
"taxImportLabel": "Import podatków",
|
||
"taxImportText": "Przy zewnętrznym obliczaniu podatku importuj kwoty podatku z raportu Xero Invoice Details",
|
||
"title": "Integracja CSV Xero"
|
||
},
|
||
"savedMessage": "Ustawienia zapisane pomyślnie",
|
||
"selectCurrency": "Wybierz walutę",
|
||
"setup": {
|
||
"acknowledge": "Ukończyłem konfigurację",
|
||
"description": "Wykonaj te kroki w Xero przed użyciem importu/eksportu CSV.",
|
||
"externalInvoiceId": "Zewnętrzny ID faktury",
|
||
"externalInvoiceIdHelp": "Opcje zostaną utworzone automatycznie podczas importu",
|
||
"sourceSystem": "System źródłowy",
|
||
"sourceSystemHelp": "Dodaj opcję o nazwie",
|
||
"step1Description": "W Xero przejdź do Settings → Tracking Categories i utwórz te dwie kategorie:",
|
||
"step1Title": "Krok 1: Utwórz kategorie śledzenia",
|
||
"step2Description": "Upewnij się, że Twoja organizacja Xero ma potrzebne stawki podatku skonfigurowane w Settings → Tax Rates.",
|
||
"step2Title": "Krok 2: Skonfiguruj stawki podatku",
|
||
"step3Description": "Użyj sekcji mapowania poniżej, aby powiązać swoje usługi Alga z kodami pozycji Xero oraz swoje regiony podatkowe ze stawkami podatku Xero.",
|
||
"step3Title": "Krok 3: Mapuj usługi i regiony podatkowe",
|
||
"title": "Wymagana konfiguracja Xero"
|
||
},
|
||
"useInvoiceCurrency": "Użyj waluty faktury",
|
||
"workflow": {
|
||
"description": "Jak eksportować faktury i importować obliczenia podatkowe.",
|
||
"export": {
|
||
"s1": "Przejdź do Rozliczenia → Eksporty księgowe",
|
||
"s2": "Wybierz faktury i wybierz „Xero CSV” jako adapter",
|
||
"s3": "Pobierz wygenerowany plik CSV",
|
||
"s4": "W Xero: Business → Invoices → Import",
|
||
"s5": "Prześlij CSV i zaimportuj jako faktury robocze",
|
||
"s6": "Xero obliczy podatek na podstawie Twoich ustawień podatkowych"
|
||
},
|
||
"exportInvoices": "Eksportuj faktury",
|
||
"import": {
|
||
"s1": "W Xero: Reports → All Reports → Invoice Details",
|
||
"s2": "Ustaw zakres dat i wyeksportuj jako CSV",
|
||
"s3": "W Alga: Rozliczenia → Eksporty księgowe → Importuj podatki",
|
||
"s4": "Prześlij CSV raportu Xero",
|
||
"s5": "Przejrzyj dopasowane faktury i potwierdź import"
|
||
},
|
||
"importTax": "Importuj obliczenia podatkowe",
|
||
"title": "Przepływ CSV",
|
||
"trackingDescription": "Eksport CSV zawiera kolumny kategorii śledzenia, które łączą każdą fakturę Xero z jej źródłem Alga. Gdy importujesz podatek z Xero, te kategorie śledzenia są używane do automatycznego dopasowywania faktur – bez ręcznego uzgadniania.",
|
||
"trackingTitle": "Kategorie śledzenia do uzgadniania"
|
||
}
|
||
}
|
||
},
|
||
"live": {
|
||
"defaultOrganisation": "Domyślna organizacja Xero"
|
||
},
|
||
"settings": {
|
||
"actions": {
|
||
"connect": "Połącz Xero",
|
||
"disconnect": "Rozłącz Xero",
|
||
"disconnecting": "Rozłączanie…",
|
||
"reconnect": "Połącz ponownie Xero",
|
||
"refresh": "Odśwież",
|
||
"saveCredentials": "Zapisz poświadczenia Xero",
|
||
"saving": "Zapisywanie…"
|
||
},
|
||
"badges": {
|
||
"connectionExpired": "Połączenie wygasło",
|
||
"credentialsReady": "Poświadczenia gotowe",
|
||
"credentialsRequired": "Wymagane poświadczenia",
|
||
"defaultConnected": "Połączono domyślną organizację",
|
||
"noOrganisation": "Nie połączono żadnej organizacji"
|
||
},
|
||
"callback": {
|
||
"accessDenied": "Dostęp do Xero został odmówiony przed ukończeniem połączenia.",
|
||
"configMissing": "Nie można uruchomić Xero OAuth, ponieważ Client ID i Client Secret tenanta nie zostały w pełni skonfigurowane.",
|
||
"connectionsUnmapped": "Xero zwróciło organizacje, ale żadna nie zawierała identyfikatorów wymaganych do zapisania połączenia.",
|
||
"generic": "Xero zwróciło błąd OAuth: {{code}}",
|
||
"invalidState": "Stan OAuth Xero był nieprawidłowy lub wygasł. Rozpocznij przepływ łączenia ponownie.",
|
||
"missingParams": "W wywołaniu zwrotnym Xero brakowało wymaganych parametrów. Rozpocznij przepływ łączenia ponownie.",
|
||
"noConnections": "Xero nie zwróciło żadnych organizacji dla tego logowania. Sprawdź swoją aplikację Xero i dostęp do organizacji, a następnie spróbuj ponownie.",
|
||
"oauthFailed": "Wywołanie zwrotne OAuth Xero nie powiodło się. Spróbuj ponownie się połączyć. Jeśli problem nadal występuje, sprawdź swój redirect URI i zakresy."
|
||
},
|
||
"clientIdLabel": "Xero Client ID",
|
||
"clientIdPlaceholder": "Wklej swój Xero Client ID należący do tenanta",
|
||
"clientSecretLabel": "Xero Client Secret",
|
||
"clientSecretPlaceholder": "Wklej swój Xero Client Secret należący do tenanta",
|
||
"connectSuccess": "Xero połączone pomyślnie. Pierwsza połączona organizacja jest teraz domyślnym kontekstem Xero na żywo.",
|
||
"connection": {
|
||
"connectionId": "ID połączenia: {{id}}",
|
||
"defaultOrganisation": "Domyślna organizacja",
|
||
"description": "Uruchom OAuth dopiero po skonfigurowaniu aplikacji Xero należącej do tenanta. Rozłączenie usuwa zapisane tokeny dostępu Xero, ale zachowuje poświadczenia aplikacji należącej do tenanta.",
|
||
"notConnected": "Nie połączono jeszcze żadnej organizacji Xero na żywo. Zapisz poświadczenia, a następnie kliknij Połącz Xero.",
|
||
"title": "Połączenie Xero na żywo",
|
||
"unknown": "nieznany"
|
||
},
|
||
"credentialsSaved": "Zapisano poświadczenia Xero. Można teraz rozpocząć przepływ OAuth Xero na żywo.",
|
||
"csvAvailableMiddle": "w tej samej sekcji Księgowość i zarządzaj eksportami z",
|
||
"csvAvailablePrefix": "Jeśli wolisz ręczny przepływ, nadal używaj",
|
||
"csvAvailableTitle": "Xero CSV pozostaje dostępne",
|
||
"description": "Skonfiguruj poświadczenia OAuth Xero należące do tenanta, połącz swoją domyślną organizację i zachowaj Xero na żywo obok ręcznego przepływu Xero CSV.",
|
||
"disconnectSuccess": "Zapisane połączenie Xero zostało usunięte. Poświadczenia aplikacji Xero należące do tenanta zostały zachowane.",
|
||
"errors": {
|
||
"disconnect": "Nie udało się rozłączyć Xero.",
|
||
"load": "Nie udało się załadować ustawień Xero.",
|
||
"saveCredentials": "Nie udało się zapisać poświadczeń Xero."
|
||
},
|
||
"howItWorksDescription": "Zapisz tutaj Xero Client ID i Client Secret należące do tenanta, ukończ przepływ OAuth Xero, a Alga PSA użyje pierwszej połączonej organizacji Xero jako domyślnego kontekstu na żywo.",
|
||
"howItWorksTitle": "Jak działa Xero na żywo w tej wersji",
|
||
"loading": "Ładowanie ustawień Xero…",
|
||
"mapping": {
|
||
"alert": "Pozycje Xero, konta przychodów, stawki podatkowe i kategorie śledzenia są ładowane z domyślnej połączonej organizacji, aby eksporty na żywo mogły nadal używać pierwszego zapisanego połączenia Xero w v1.",
|
||
"descriptionPrefix": "Skonfiguruj mapowania Xero na żywo dla domyślnej połączonej organizacji. Te mapowania są ograniczone do",
|
||
"placeholderAlert": "Menedżer mapowań staje się dostępny po połączeniu pierwszej organizacji Xero i ustawieniu jej jako domyślnego kontekstu Xero na żywo.",
|
||
"placeholderDescription": "Połącz organizację Xero na żywo przed skonfigurowaniem mapowań pozycji i podatków Xero na żywo.",
|
||
"title": "Mapowanie i konfiguracja Xero na żywo"
|
||
},
|
||
"noClientId": "Dla tego tenanta nie zapisano jeszcze żadnego Client ID.",
|
||
"noClientSecret": "Dla tego tenanta nie zapisano jeszcze żadnego Client Secret.",
|
||
"redirectUri": "Redirect URI",
|
||
"requiredScopes": "Wymagane zakresy",
|
||
"storedClientId": "Zapisany Client ID: {{value}}",
|
||
"storedClientSecret": "Zapisany Client Secret: {{value}}",
|
||
"tenantOauthDescription": "Wklej poświadczenia aplikacji Xero zarejestrowane dla tego tenanta. Wartości secret nigdy nie są zwracane do przeglądarki po zapisaniu.",
|
||
"tenantOauthTitle": "Aplikacja OAuth należąca do tenanta",
|
||
"title": "Xero",
|
||
"xeroCsv": "Xero CSV"
|
||
}
|
||
},
|
||
"stripe": {
|
||
"title": "Stripe Payments",
|
||
"description": "Accept credit card payments for your invoices",
|
||
"connected": {
|
||
"title": "Stripe Connected",
|
||
"publishableKey": "Publishable key: {{key}}..."
|
||
},
|
||
"empty": {
|
||
"description": "Connect your Stripe account to accept online payments for invoices"
|
||
},
|
||
"actions": {
|
||
"testConnection": "Test Connection",
|
||
"disconnect": "Disconnect",
|
||
"connect": "Connect Stripe",
|
||
"connecting": "Connecting...",
|
||
"cancel": "Cancel"
|
||
},
|
||
"form": {
|
||
"secretKeyLabel": "Secret Key",
|
||
"secretKeyPlaceholder": "sk_live_... or sk_test_...",
|
||
"publishableKeyLabel": "Publishable Key",
|
||
"publishableKeyPlaceholder": "pk_live_... or pk_test_...",
|
||
"findKeyPrefix": "Find this in your",
|
||
"dashboardLink": "Stripe Dashboard → API Keys"
|
||
},
|
||
"webhook": {
|
||
"heading": "Webhook Configuration",
|
||
"configuredAutomatically": "Webhooks configured automatically",
|
||
"receiveNotifications": "Alga PSA will receive payment notifications for:",
|
||
"failedTitle": "Webhook configuration failed",
|
||
"failedBody": "Automatic webhook configuration failed. Click retry to attempt configuration again.",
|
||
"configuring": "Configuring...",
|
||
"retry": "Retry Configuration"
|
||
},
|
||
"disconnectDialog": {
|
||
"title": "Disconnect Stripe",
|
||
"message": "Are you sure you want to disconnect Stripe? Payment links will no longer work.",
|
||
"confirm": "Disconnect",
|
||
"cancel": "Cancel"
|
||
},
|
||
"toasts": {
|
||
"connectedWithWebhook": "Stripe connected and webhooks configured automatically!",
|
||
"connectedWebhookFailed": "Stripe connected! Note: Webhook auto-configuration failed - you may need to configure webhooks manually in Stripe Dashboard.",
|
||
"disconnected": "Stripe disconnected",
|
||
"connectionSuccess": "Connection successful!",
|
||
"webhookConfigured": "Webhook configured successfully!"
|
||
},
|
||
"errors": {
|
||
"loadConfig": "Failed to load Stripe configuration",
|
||
"connect": "Failed to connect Stripe",
|
||
"disconnect": "Failed to disconnect Stripe",
|
||
"testConnection": "Connection test failed",
|
||
"configureWebhook": "Failed to configure webhook",
|
||
"bothKeysRequired": "Please enter both secret key and publishable key",
|
||
"secretKeyFormat": "Secret key should start with sk_",
|
||
"publishableKeyFormat": "Publishable key should start with pk_"
|
||
}
|
||
}
|
||
},
|
||
"ninjaone": {
|
||
"selectCompany": "Wybierz firmę"
|
||
}
|
||
}
|