"auth.login.setPasswordFirstBody":"użyj linku zaproszenia z e-maila. Jeśli link poszedł na stary adres (dryf e-mail), poproś administratora firmy o ponowne wystawienie zaproszenia do ustawienia hasła na {email}.",
"auth.login.yourEmail":"twój e-mail",
"auth.login.platformAdminsReissue":"Administratorzy platformy mogą ponownie wystawić z",
"auth.login.forgotPasswordHelp":"Podaj e-mail na stronie resetu. Jeśli nigdy nie ustawiłeś hasła, użyj linku zaproszenia / ustawienia hasła.",
"auth.forgot.title":"Nie pamiętam hasła",
"auth.forgot.description":"Podaj e-mail konta. Jeśli pasuje do aktywnego konta, wyślemy link resetujący.",
"auth.forgot.submit":"Wyślij link resetujący",
"auth.forgot.submitting":"Wysyłanie…",
"auth.forgot.failed":"Nie udało się poprosić o reset",
"auth.forgot.sentTitle":"Sprawdź e-mail",
"auth.forgot.sentBody":"Jeśli konto dla tego adresu istnieje, link resetujący jest w drodze. Link wygasa po godzinie.",
"auth.forgot.backToSignIn":"Wróć do logowania",
"auth.reset.title":"Zresetuj hasło",
"auth.reset.description":"Wybierz nowe hasło do konta Descrybe (co najmniej 8 znaków).",
"auth.reset.submit":"Zapisz nowe hasło",
"auth.reset.submitting":"Zapisywanie…",
"auth.reset.failed":"Nie udało się zresetować hasła",
"auth.reset.doneTitle":"Hasło zaktualizowane",
"auth.reset.doneDescription":"Zaloguj się e-mailem i nowym hasłem.",
"auth.reset.goToSignIn":"Przejdź do logowania",
"auth.reset.passwordConfirm":"Potwierdź hasło",
"auth.reset.passwordMismatch":"Hasła nie są zgodne",
"auth.reset.missingTitle":"Brak linku resetu",
"auth.reset.missingDescription":"Otwórz link z e-maila, aby wybrać nowe hasło.",
"auth.reset.requestNewLink":"Poproś o nowy link resetu",
"auth.reset.tokenMissing":"Nie podano linku resetu. Użyj linku z e-maila albo poproś o nowy.",
"auth.reset.tokenInvalid":"Ten link resetu jest nieprawidłowy lub wygasł. Poproś o nowy na stronie nie pamiętam hasła.",
"auth.reset.linkRecognized":"Rozpoznano link resetowania. Wprowadź nowe hasło poniżej — sekret nie jest wyświetlany na tej stronie.",
"auth.reset.tokenLabel":"Token resetu",
"auth.reset.passwordHint":"Co najmniej 8 znaków. Bez innych reguł złożoności.",
"auth.register.title":"Utwórz firmę",
"auth.register.description":"Rejestruje firmę i jej użytkownika administratora.",
"auth.register.companyName":"Nazwa firmy",
"auth.register.submit":"Utwórz konto",
"auth.register.submitting":"Tworzenie…",
"auth.register.failed":"Rejestracja nie powiodła się",
"auth.register.haveAccount":"Masz już konto?",
"auth.register.signIn":"Zaloguj się",
"auth.invite.title":"Zaakceptuj zaproszenie",
"auth.invite.setPasswordTitle":"Ustaw hasło",
"auth.invite.description":"Ustaw hasło, aby dołączyć do firmy. Administrator przypisał rolę Członek (codzienna praca) lub Admin (zespół i rozliczenia).",
"auth.invite.setPasswordDescription":"Wybierz hasło do zmigrowanego konta Descrybe (co najmniej 8 znaków).",
"auth.invite.forEmail":"Zaproszenie dla {email}.",
"auth.invite.linkRecognized":"Rozpoznano link zaproszenia. Wprowadź hasło poniżej, aby kontynuować — sekret nie jest wyświetlany na tej stronie.",
"auth.invite.resetLinkRecognized":"Rozpoznano link resetowania. Wprowadź hasło poniżej, aby kontynuować — sekret nie jest wyświetlany na tej stronie.",
"auth.invite.tokenHelp":"Wklej token z e-maila z zaproszeniem. Jest maskowany w tym polu.",
"auth.invite.passwordHint":"Co najmniej 8 znaków. Brak innych reguł złożoności.",
"auth.invite.submit":"Zaakceptuj zaproszenie",
"auth.invite.setPasswordSubmit":"Ustaw hasło",
"auth.invite.accepting":"Akceptowanie…",
"auth.invite.saving":"Zapisywanie…",
"auth.invite.verifyFailed":"Nie można zweryfikować zaproszenia",
"auth.invite.verifySetPasswordFailed":"Nie można zweryfikować linku ustawienia hasła",
"auth.invite.acceptFailed":"Nie można zaakceptować zaproszenia",
"auth.invite.setPasswordFailed":"Nie można ustawić hasła",
"auth.invite.expired":"To zaproszenie jest nieprawidłowe lub wygasło. Poproś administratora firmy o nowe zaproszenie, a następnie otwórz nowy link (lub wklej nowy token poniżej).",
"auth.invite.setPasswordExpired":"Ten link do ustawienia hasła jest nieprawidłowy lub wygasł. Poproś administratora firmy lub platformy o ponowne wystawienie, a następnie otwórz nowy link (lub wklej nowy token poniżej).",
"auth.invite.emailMismatchDefault":"Jesteś zalogowany na inny e-mail niż w tym zaproszeniu.",
"auth.invite.expiredFooter":"Wygasły link? Poproś administratora o ponowne wystawienie — nie ma API samodzielnego ponownego wysyłania. Administratorzy platformy:",
"auth.invite.doneDescription":"Twoje konto jest gotowe. Następnie otwórz panel, aby pracować z feedami i produktami, lub przejrzyj ustawienia firmy.",
"auth.invite.doneSetPasswordDescription":"Zaloguj się e-mailem i nowym hasłem, aby otworzyć przestrzeń roboczą.",
"auth.invite.openDashboard":"Otwórz panel",
"auth.invite.companySettings":"Ustawienia firmy",
"auth.invite.goToSignIn":"Przejdź do logowania",
"auth.invite.afterSignInNote":"Po zalogowaniu trafiasz do przestrzeni roboczej — pomijana jest wycieczka po konfiguracji początkowej.",
"auth.invite.mismatchTitle":"Złe konto dla tego zaproszenia",
"auth.invite.mismatchDescription":"Ten link jest dla innego e-maila niż ten, na który jesteś zalogowany. Wyloguj się, aby kontynuować jako zaproszony użytkownik, albo pozostań zalogowany i poproś administratora o ponowne wystawienie zaproszenia.",
"auth.invite.mismatchDetail":"Zalogowano jako {session}, ale to zaproszenie jest dla {invite}.",
"auth.invite.mismatchFallback":"E-mail sesji nie pasuje do tego zaproszenia.",
"auth.invite.switchAccountTitle":"Zmień konto:",
"auth.invite.switchAccountBody":"wyloguj się, a następnie dokończ ten formularz zaproszonym e-mailem{emailSuffix}.",
"auth.invite.reissueBody":"jeśli zmienił się Twój prawdziwy e-mail logowania (dryf e-mail), poproś administratora firmy o unieważnienie tego zaproszenia i wysłanie nowego na e-mail używany do logowania. Administratorzy platformy mogą też ponownie wystawiać linki ustawienia hasła w Admin → Użytkownicy.",
"locale.switcher":"Język interfejsu",
"locale.menu":"Wybierz język interfejsu",
"locale.label":"Język panelu",
"locale.help":"Zmienia etykiety w nawigacji i ustawieniach. Język generowanych treści ustawia się osobno w Firmie.",
"settings.contentLanguage":"Język treści",
"settings.contentLanguageHelp":"Język używany do tytułów, opisów i innych generowanych treści",
"settings.tab.profile":"Profil",
"settings.tab.company":"Firma",
"settings.tab.alerts":"Alerty",
"settings.tab.apiKeys":"Klucze API",
"settings.tab.team":"Zespół",
"settings.title":"Ustawienia",
"settings.description":"Konto, firma, klucze API i zespół.",
"settings.accessDenied":"Nie masz uprawnień do otwarcia ustawień firmy. Poproś administratora firmy o pomoc.",
"settings.loadFailed":"Nie udało się wczytać ustawień",
"settings.profileHeading":"Profil",
"settings.personalInfo":"Dane osobowe",
"settings.personalInfoHelp":"Zaktualizuj swoje dane osobowe",
"settings.profileUpdateFailed":"Nie można zaktualizować profilu",
"settings.role.member":"Członek",
"settings.role.admin":"Admin",
"settings.teamHeading":"Członkowie zespołu",
"settings.inviteUser":"Zaproś użytkownika",
"settings.teamAdminOnly":"Tylko administratorzy firmy mogą zapraszać, awansować, degradować lub usuwać członków zespołu.",
"settings.shareAcceptLink":"Udostępnij link akceptacji",
"settings.shareAcceptLinkHelp":"Wychodzący e-mail nie jest skonfigurowany. Skopiuj ten jednorazowy link i wyślij go zaproszonemu. Ustawi hasło (co najmniej 8 znaków) i dołączy z wybraną przez Ciebie rolą.",
"settings.acceptLinkLabel":"Jednorazowy link akceptacji zaproszenia",
"settings.copyLink":"Kopiuj link",
"settings.linkCopied":"Skopiowano link akceptacji.",
"settings.table.email":"E-mail",
"settings.table.role":"Rola",
"settings.table.status":"Stan",
"settings.table.joined":"Dołączył / wygasa",
"settings.table.actions":"Akcje",
"settings.teamForbidden":"Nie masz uprawnień do przeglądania listy zespołu. Poproś administratora firmy o pomoc.",
"settings.noTeammates":"Brak jeszcze członków zespołu",
"settings.noTeammatesHelp":"Zapraszaj współpracowników jako Członek (produkty i feedy) lub Admin (zespół i ustawienia firmy). Oczekujące zaproszenia są tu widoczne do akceptacji.",
"settings.noTeammatesMemberHelp":"Brak jeszcze członków zespołu na liście. Poproś administratora firmy o wysłanie zaproszeń.",
"settings.memberActions":"Akcje członka",
"settings.makeAdmin":"Uczyń adminem",
"settings.makeMember":"Uczyń członkiem",
"settings.removeMember":"Usuń",
"settings.revokeInvite":"Unieważnij zaproszenie",
"settings.needOneAdmin":"Firmy potrzebują co najmniej jednego administratora",
"settings.inviteCreatedNoMail":"Utworzono zaproszenie dla {email} jako {role}. Skopiuj link akceptacji poniżej i udostępnij go — wychodzący e-mail nie jest skonfigurowany.",
"settings.inviteSent":"Wysłano zaproszenie do {email} jako {role}. Osoba powinna otworzyć e-mail i zaakceptować przed wygaśnięciem.",
"settings.inviteFailed":"Nie można wysłać zaproszenia",
"settings.revokeConfirm":"Unieważnić to zaproszenie?",
"settings.revoked":"Zaproszenie unieważnione.",
"settings.revokeFailed":"Nie można unieważnić zaproszenia",
"settings.removeConfirm":"Usunąć {email} z tej firmy?",
"settings.memberRemoved":"Usunięto {email}.",
"settings.removeFailed":"Nie można usunąć użytkownika",
"settings.roleChangeConfirm":"{action} {email} do {role}?",
"settings.roleChanged":"{email} jest teraz {role}.",
"settings.roleChangeFailed":"Nie można zaktualizować roli",
"settings.promote":"Awansuj",
"settings.demote":"Degraduj",
"settings.inviteTitle":"Zaproś członka zespołu",
"settings.inviteDescription":"Otrzymają link do ustawienia hasła (co najmniej 8 znaków) i dołączenia do tej firmy.",
"settings.inviteRoleHint":"Członkowie zarządzają produktami i feedami. Administratorzy mogą też zapraszać współpracowników i zmieniać ustawienia firmy.",
"settings.sendInvite":"Wyślij zaproszenie",
"settings.companyHeading":"Ustawienia firmy",
"settings.activeCompany":"Aktywna firma",
"settings.creditsOverview":"Przegląd kredytów",
"settings.plan":"Plan taryfowy",
"settings.used":"Użyte",
"settings.companyInfo":"Informacje o firmie",
"settings.companyInfoHelp":"Zaktualizuj dane firmy",
"settings.mergeProducts":"Scal produkty z tym samym GTIN",
"settings.emailIntegration":"Integracja e-mail",
"settings.aiIntegrations":"Integracje AI",
"settings.alertsHeading":"Alerty operatora",
"settings.inAppToasts":"Powiadomienia w aplikacji",
"settings.emailAlerts":"Alerty e-mail",
"settings.apiKeysHeading":"Klucze API",
"settings.createApiKey":"Utwórz klucz API",
"settings.createApiKeyShort":"Utwórz klucz API",
"settings.createApiKeyTitle":"Utwórz klucz API",
"settings.apiKeyLabel":"Klucz API",
"settings.keyName":"Nazwa klucza",
"settings.storeKeySafe":"Przechowuj go w bezpiecznym miejscu — nie zobaczysz już pełnego sekretu.",
"settings.apiKeysIntro":"Utwórz firmowy klucz API, aby wywoływać publiczne endpointy /api/v1. Pełny sekret jest pokazywany tylko raz przy tworzeniu — skopiuj go od razu.",
"settings.apiKeysUseWhere":"Wysyłaj go jako Authorization: Bearer <key> (zalecane) lub X-API-Key.",
"dashboard.emptyPaygHint":"Descrybe wciąga katalog, wzbogaca i przetwarza, a potem eksportuje lub wypycha do sklepów. Użyj Pierwsze kroki poniżej.",
"dashboard.emptyCreditsHint":"Descrybe wciąga katalog, wzbogaca i przetwarza, a potem eksportuje lub wypycha do sklepów. Masz {credits} — zacznij od Pierwsze kroki poniżej.",
"dashboard.workflowTitle":"Przepływ katalogu",
"dashboard.recentActivity":"Ostatnia aktywność",
"dashboard.loadFailed":"Nie udało się wczytać panelu",
"dashboard.workflow.processRun":"Uruchom zadania AI",
"dashboard.workflow.export":"Eksportuj",
"dashboard.workflow.exportReady":"Szablony i pobieranie",
"dashboard.workflow.exportMap":"Mapuj, potem eksportuj",
"dashboard.workflowHint":"Katalog wejściowy → wzbogacenie / przetwarzanie → eksport lub wypchnięcie do sklepów. Przejdź do następnego kroku dla {name}.",
"dashboard.overviewHint":"Bieżące sumy dla {name}",
"dashboard.demoEmptyMessage":"Przełącz na A1 (lub inną firmę z danymi) w nagłówku albo podłącz tu feed, aby wypełnić tę piaskownicę.",
"dashboard.emptyTitle":"Wciągnij katalog",
"dashboard.emptyMessage":"Katalog wejściowy → wzbogacenie / przetwarzanie → eksport lub wypchnięcie do sklepów. Zacznij od Pierwsze kroki poniżej (lub podłącz feed / prześlij CSV).",
"dashboard.connectFeedAnyway":"Podłącz feed mimo to",
"dashboard.connectFeedShort":"Podłącz feed",
"dashboard.uploadCsv":"Prześlij CSV",
"dashboard.goToBilling":"Przejdź do rozliczeń",
"dashboard.freePlanTitle":"Korzystasz z planu Free",
"dashboard.freePlanMessageWithLimit":"Użyto {used} z {max} produktów. Mapowanie feedów, podstawowe czyszczenie i etykiety energetyczne UE (EPREL) są wliczone; ulepsz plan o tytuły i opisy AI oraz większą pojemność.",
"dashboard.freePlanMessage":"Mapowanie feedów, podstawowe czyszczenie i etykiety energetyczne UE (EPREL) są wliczone; ulepsz plan o tytuły i opisy AI oraz większą pojemność.",
"dashboard.outOfCreditsTitle":"Skończyły Ci się kredyty AI",
"dashboard.outOfCreditsMessage":"Kup więcej kredytów lub ulepsz plan, aby kontynuować przetwarzanie.",
"dashboard.productLimitMessage":"Twój plan {plan} pozwala na {max} produktów ({count} w katalogu). Ulepsz, aby przetwarzać więcej.",
"dashboard.productLimitMessageFull":"Osiągnięto limit produktów planu {plan}. Ulepsz, aby przetwarzać więcej.",
"dashboard.comparePlans":"Porównaj plany",
"dashboard.viewPlans":"Zobacz plany",
"dashboard.trialTitle":"Okres próbny · {plan}",
"dashboard.trialMessageDated":"Okres próbny kończy się {date}. Pozostało {credits} kredytów.",
"dashboard.trialMessage":"Pozostało {credits} kredytów w okresie próbnym.",
"dashboard.lowCreditsTitle":"Kończą się kredyty",
"dashboard.lowCreditsMessage":"Pozostało {remaining} z {total} kredytów. Doładuj lub ulepsz, zanim zadania się zatrzymają.",
"dashboard.latestJobs":"Najnowsze zadania przetwarzania",
"dashboard.noJobsEmpty":"Brak jeszcze zadań — najpierw zaimportuj produkty.",
"dashboard.noJobsReady":"Brak ostatnich zadań. Uruchom jedno w Produktach, gdy będziesz gotowy.",
"dashboard.startJob":"Uruchom zadanie z Produktów",
"dashboard.quickLinksHint":"Feedy, produkty, zadania i eksport.",
"dashboard.feedsImportMap":"Importuj i mapuj",
"dashboard.productsBrowse":"Przeglądaj i przetwarzaj",
"dashboard.jobsMonitor":"Monitoruj zadania",
"dashboard.exportsTemplates":"Szablony i pobieranie",
"activation.title":"Pierwsze kroki",
"activation.description":"Descrybe wciąga katalog, wzbogaca i przetwarza, a potem eksportuje lub wypycha do sklepów. Dokończ bieżący krok i kontynuuj — tour demo wyjaśnia ekrany bez zmiany postępu listy.",
"activation.descriptionShort":"Zacznij od podświetlonego kroku poniżej — jedna akcja naraz. Połączenie sklepu jest opcjonalne.",
"activation.nextCta":"Wykonaj ten krok",
"activation.valueProp":"Descrybe wciąga katalog, wzbogaca i przetwarza, a potem eksportuje lub wypycha do Twoich sklepów.",
"activation.alreadyDone":"Już zrobione",
"activation.skipForNow":"Pomiń na razie",
"activation.showAllSteps":"Pokaż wszystkie {total} kroki",
"activation.showFewerSteps":"Pokaż mniej kroków",
"activation.corePathLabel":"W skrócie",
"activation.corePath":"Katalog wejściowy → Wzbogacenie / przetwarzanie → Eksport lub wypchnięcie do sklepów",
"activation.storeWizardHint":"Nie jest wymagane do feedów ani eksportów — pomiń, chyba że chcesz wysyłać produkty do żywego sklepu.",
"etl.gaps.message":"These areas were intentionally left empty or partial after the Descrybe platform cutover. Nothing is “broken” — recreate or reconnect as needed.",
"etl.gaps.dismiss":"Dismiss",
"etl.gaps.apiKeys.title":"API keys",
"etl.gaps.apiKeys.body":"Legacy API key secrets were not migrated. Create a new key to restore API access — the secret is shown only once.",
"etl.gaps.apiKeys.cta":"Open API keys",
"etl.gaps.blobs.title":"File contents (blobs)",
"etl.gaps.blobs.body":"Upload records may exist as metadata only. File bytes were not copied — re-upload CSVs or resync object storage if you need the originals.",
"etl.gaps.blobs.countHint":"{count} file records are metadata-only (bytes were not migrated).",
"etl.gaps.blobs.cta":"Open Files",
"etl.gaps.jobs.title":"Processing history",
"etl.gaps.jobs.body":"Legacy job and task history was not backfilled for cutover. New jobs you start here will appear normally.",
"etl.gaps.jobs.emptyHint":"Optional jobs domain was not run — empty history is expected.",
"etl.gaps.jobs.migratedHint":"{count} jobs were tagged migrated from an optional backfill.",
"etl.gaps.jobs.cta":"Open Processing",
"etl.gaps.woo.title":"Store credentials",
"etl.gaps.woo.body":"WooCommerce and Shopify secrets may need to be re-entered after cutover — that is a reconnect step, not a broken sync.",
"etl.gaps.woo.cta":"Open Stores",
"etl.gaps.settings.title":"Company settings",
"etl.gaps.settings.body":"Only language and merge-products settings were imported. Re-check other company preferences in Settings.",
"etl.gaps.settings.cta":"Open company settings",
"activation.progress":"{done} z {total} ukończonych",
"activation.step.connect-source.body":"Dodaj katalogowy feed CSV lub XML, aby produkty trafiały do Descrybe. Podłączenie żywego sklepu to późniejszy opcjonalny krok.",
"activation.step.store-connect.body":"Opcjonalne. Połącz WooCommerce lub Shopify, aby wysyłać produkty do sklepu. Pomiń, jeśli używasz tylko feedów i eksportów.",
"activation.step.export.title":"Utwórz eksport",
"activation.step.export.body":"Utwórz feed eksportu, aby pobierać lub publikować oczyszczone produkty jako XML lub CSV.",
"docs.tryIt.memberCannotCreate":"Tylko admini firmy mogą tworzyć klucze API. Starsze nie zostały zmigrowane — wklej klucz poniżej lub poproś admina o nowy.",
"docs.tryIt.noKeysLegacyAdmin":"Starsze klucze API nie zostały zmigrowane. Utwórz nowy przez Use my API key lub Ustawienia → Klucze API — sekret pokazywany jest tylko raz.",
"docs.tryIt.noKeysLegacyMember":"Brak kluczy API. Starsze nie zostały zmigrowane — poproś admina o utworzenie lub wklej klucz dk_.",
"errors.couldNotUpdateLanguage":"Nie można zaktualizować języka",
"toast.support.replyTitle":"Odpowiedź wsparcia",
"toast.support.replyBody":"Zespół odpowiedział na Twoje zgłoszenie wsparcia.",
"toast.support.replyRe":"Re: {subject}",
"toast.support.statusTitle":"Zaktualizowano status zgłoszenia",
"toast.support.statusBody":"Status Twojego zgłoszenia wsparcia się zmienił.",
"tutorial.whereNeedHelp":"W czym potrzebujesz pomocy?",
"tutorial.skipTour":"Pomiń wycieczkę",
"tutorial.skipAria":"Pomiń samouczek",
"tutorial.pickerBody":"Wybierz sekcję, aby ponownie otworzyć tę część demo. Przeglądanie wycieczki nie zmienia danych konta.",
"tutorial.sectionsAria":"Sekcje samouczka",
"tutorial.open":"Otwórz",
"tutorial.close":"Zamknij",
"tutorial.resumeLastStep":"Wznów ostatni krok",
"tutorial.startFromBeginning":"Zacznij od początku",
"tutorial.stepOf":"Krok {current} z {total}",
"tutorial.jumpTo":"Przejdź do…",
"tutorial.jumpToSectionAria":"Przejdź do sekcji",
"tutorial.back":"Wstecz",
"tutorial.pause":"Wstrzymaj",
"tutorial.continue":"Kontynuuj",
"tutorial.finishTour":"Zakończ wycieczkę",
"tutorial.missingTargetHint":"Ten element sterujący nie jest jeszcze na tym ekranie. Możesz mimo to Kontynuować — wycieczka nigdy nie wymaga zapisu ani synchronizacji.",
"tutorial.section.welcome":"Welcome",
"tutorial.section.catalog":"Catalog setup",
"tutorial.section.sources":"Feeds",
"tutorial.section.mapping":"Map & sync",
"tutorial.section.products":"Process",
"tutorial.section.export":"Export & stores",
"tutorial.section.grow":"Grow",
"tutorial.section.done":"Done",
"tutorial.step.welcome.title":"Witamy w Descrybe",
"tutorial.step.welcome.body":"Główna pętla Descrybe to Feeds → Process → Export / Stores. Ta prowadzona demo podświetla te ekrany na prawdziwym panelu — bez zapisywania, synchronizacji, włączania pól ani tworzenia feedów. Wstrzymaj w dowolnym momencie; wznów z nagłówka. Przejdź do sekcji, gdy potrzebujesz pomocy tylko w jednym temacie.",
"tutorial.step.welcome.tip":"Demo tour — your data stays unchanged until you choose to act outside the tour.",
"tutorial.step.welcome.nextLabel":"Start tour",
"tutorial.step.welcome.missingHint":"You’re on the dashboard — continue when ready.",
"tutorial.step.dashboard-overview.title":"Twoje centrum dowodzenia",
"tutorial.step.dashboard-overview.body":"Pas workflow katalogu pokazuje codzienną ścieżkę: Feeds → Map → Sync → Process. Getting started śledzi prawdziwy postęp workspace (osobno od tej demo). Gdy jesteś gotowy, użyj Manage feeds lub Start processing — potem eksportuj lub podłącz sklep.",
"tutorial.step.dashboard-overview.tip":"Completing this tour does not mark checklist steps done — only real workspace progress does.",
"tutorial.step.dashboard-overview.missingHint":"The workflow strip and checklist appear after the dashboard loads.",
"tutorial.step.enable-fields.body":"Standard Fields to kolumny produktów, które Descrybe mapuje, przetwarza i eksportuje — tytuł, opis, GTIN, obrazy i więcej. Enable recommended włącza rozsądny zestaw domyślny dla większości katalogów. Listę możesz później dopracować bez psucia istniejących mapowań.",
"tutorial.step.enable-fields.tip":"In the demo you don’t need to click Enable recommended — Continue when you understand the idea.",
"tutorial.step.enable-fields.warning":"Enabling or disabling fields affects mapping and processing for this company. Prefer Enable recommended once, then tweak carefully.",
"tutorial.step.enable-fields.missingHint":"Wait for the Fields page to load, or open Fields from the Catalog section in the sidebar.",
"tutorial.step.catalog-depth.title":"Kategorie i atrybuty",
"tutorial.step.catalog-depth.body":"W sekcji Catalog paska bocznego znajdziesz też Categories i Attributes. Categories organizują katalog; atrybuty napędzają filtry i strukturalne opisy. Nie musisz ich konfigurować, by dokończyć ten tour.",
"tutorial.step.catalog-depth.tip":"Return to this section anytime from Jump to… if you revisit taxonomy later.",
"tutorial.step.catalog-depth.missingHint":"Expand Catalog in the sidebar to open Categories or Attributes after the tour.",
"tutorial.step.connect-source.title":"Dodaj źródło produktów",
"tutorial.step.connect-source.body":"Feedy to sposób, w jaki katalogi dostawców trafiają do Descrybe — pliki CSV, XML lub URL. Add Feed tworzy nowe źródło; każdy wiersz pokazuje status (gotowy do mapowania, zmapowany, aktywny). Map otwiera ekran dopasowania pól dla tego feedu.",
"tutorial.step.connect-source.tip":"You don’t need to add a feed for the demo. When ready for real setup, add one sample file first.",
"tutorial.step.connect-source.warning":"Avoid deleting live feeds unless you intend to remove that source and its sync history.",
"tutorial.step.connect-source.missingHint":"Open Feeds from the sidebar if this screen hasn’t loaded.",
"tutorial.step.map.title":"Mapuj pola źródła",
"tutorial.step.map.body":"Na ekranie Map feedu dopasowujesz kolumny dostawcy do standard fields Descrybe. Auto-map sugeruje dopasowania z nazw kolumn; potwierdź rozmyte, potem popraw resztę. Save Mappings zapisuje mapę, by sync i przetwarzanie wiedziały, jak czytać każdy wiersz.",
"tutorial.step.map.tip":"Demo tip: open Map on a feed when you have one — you are not required to save.",
"tutorial.step.map.warning":"Don’t Save Mappings until Auto-map looks right — a bad map makes bad products.",
"tutorial.step.map.missingHint":"Add a feed and click Map to see the mapping UI; or Continue to keep learning.",
"tutorial.step.sync-sample.body":"Po zapisaniu mapowań Sync + Process sample pobiera małą partię i uruchamia przetwarzanie, by sprawdzić tytuły, obrazy i atrybuty przed pełnym uruchomieniem. Full Sync now na liście feedów służy większym importom, gdy próbka wygląda dobrze.",
"tutorial.step.sync-sample.tip":"Skip Sync during the demo — use it only after Save Mappings on a real feed.",
"tutorial.step.sync-sample.warning":"Syncing writes products into this company. Prefer a sample first; avoid Sync now on unmapped feeds.",
"tutorial.step.sync-sample.missingHint":"Sync controls appear on feed rows and on the mapping screen footer.",
"tutorial.step.process.body":"Products listuje zsynchronizowane i przetworzone pozycje. Filtruj według statusu, otwórz wiersz po szczegóły i używaj odznak EPREL, gdy są dane etykiety energetycznej. Tu wychwytujesz błędy mapowania przed eksportem lub sync sklepu.",
"tutorial.step.process.tip":"Browsing products is read-only for exploration — editing a row changes live catalog data.",
"tutorial.step.process.missingHint":"Wait for the products table, or Continue if the catalog is still empty.",
"tutorial.step.processing-hub.title":"Przetwarzanie w tle",
"tutorial.step.processing-hub.body":"Joby w Processing pokazują postęp AI i pipeline: ukończone uruchomienia i błędy. Uruchamiaj joby z panelu lub produktów, gdy świadomie chcesz wydać kredyty na partię.",
"tutorial.step.processing-hub.tip":"Jobs consume credits — watch Billing before large runs.",
"tutorial.step.processing-hub.missingHint":"Open Jobs from the Processing section in the sidebar if the page is empty.",
"tutorial.step.stores-hub.title":"Sklepy i platformy",
"tutorial.step.stores-hub.body":"Po przetworzeniu Stores łączy WooCommerce lub Shopify, by wypchnąć oczyszczony katalog do sklepu. Używaj, gdy marketplace/CMS jest celem — albo przejdź do Export feeds, gdy partnerzy potrzebują tylko pliku/URL.",
"tutorial.step.stores-hub.tip":"Reconnect banners appear if a token expires — fix those before relying on sync.",
"tutorial.step.stores-hub.missingHint":"Open Stores from the sidebar to see connection cards.",
"tutorial.step.export.body":"Export feeds publikują oczyszczone produkty jako XML lub CSV dla kanałów, partnerów lub sklepu. Utwórz eksport, wybierz format i filtry, potem udostępnij URL feedu lub pobierz. Eksporty czytają przetworzone dane katalogu — najpierw mapuj i przetwarzaj dla najlepszych wyników.",
"tutorial.step.export.tip":"You don’t need to create an export during the demo.",
"tutorial.step.export.warning":"Creating or deleting export feeds affects what partners can download — avoid deleting production feeds casually.",
"tutorial.step.export.missingHint":"Wait for Export feeds to load, or open Exports from the Feeds section in the sidebar.",
"tutorial.step.billing-hub.title":"Kredyty i rozliczenia",
"tutorial.step.billing-hub.body":"Billing pokazuje plan, portfel i pozostałe kredyty. Przetwarzanie i niektóre funkcje AI czerpią z tego salda. Pilnuj użycia przed dużymi uruchomieniami katalogu.",
"tutorial.step.billing-hub.tip":"Demo accounts may show unlimited or large balances — treat production credits carefully.",
"tutorial.step.billing-hub.missingHint":"Open Billing from the Account section in the sidebar.",
"tutorial.step.grow-hub.title":"Kampanie, SEO i recenzje",
"tutorial.step.grow-hub.body":"W Marketing: Campaigns generuje treści, Content calendar planuje posty, SEO sprawdza listingi, a Reviews łączy się z WooCommerce. Opierają się na zdrowym zmapowanym katalogu — dokończ Feeds → Process → Export / Stores, zanim na nich polegasz.",
"tutorial.step.grow-hub.tip":"Jump back here when you’re ready to market, not during first mapping.",
"tutorial.step.grow-hub.missingHint":"Open Campaigns from Marketing in the sidebar, or Continue.",
"tutorial.step.tour-done.title":"Gotowy do eksploracji",
"tutorial.step.tour-done.body":"To mapa produktu: Feeds → Map → Sync → Process → Export / Stores. Użyj Getting started na panelu do prawdziwej konfiguracji. Wznów lub uruchom ponownie tour z nagłówka, albo Jump to… sekcję. Skip tour kończy demo bez zmiany checklisty.",
"tutorial.step.tour-done.tip":"Demo complete — no cleanup needed. Your account was not modified by Continue alone.",
"admin.users.description":"Katalog użytkowników platformy, role personelu i przypisania planów firm.",
"admin.users.staffRoleUnavailable":"Aktualizacje ról personelu nie są jeszcze dostępne w tym wdrożeniu. Skontaktuj się z administratorem platformy, jeśli ich potrzebujesz.",
"admin.users.cloneCatalogDesc":"Pozostajesz na koncie admina. Dane źródłowe nie są zmieniane.",
"admin.users.cloneCatalogFrom":"Źródło: {name}",
"admin.users.cloneCatalogInto":"Cel: {name}",
"admin.users.cloneCatalogWarning":"Zastępuje kategorie, feedy, produkty, atrybuty, mapowania i branding w celu. Plan, rozliczenia, członkowie, klucze API i konektory sklepu nie są kopiowane.",
"admin.users.noUsers":"Żaden użytkownik nie pasuje do tego filtra.",
"admin.users.noCompanies":"Żadna firma nie pasuje do tego filtra.",
"admin.users.assignRoleTitle":"Przypisz rolę personelu",
"admin.users.assignRoleDesc":"Role platformy sterują panelem admina (Admin i Developer) oraz biurkiem wsparcia (personel wsparcia).",
"admin.users.staffRole":"Rola personelu",
"admin.users.saveRole":"Zapisz rolę",
"admin.users.assignPlanTitle":"Przypisz plan",
"admin.users.assignPlanDesc":"Dołącz publiczny, legacy lub niestandardowy plan do tej firmy.",
"admin.users.selectPlan":"Wybierz plan",
"admin.users.assign":"Przypisz",
"admin.settings.title":"Ustawienia platformy",
"admin.settings.description":"Poświadczenia platformy, role AI, poczta i integracje dla tego wdrożenia",
"admin.settings.intro":"Skonfiguruj tu role AI platformy, SMTP, OAuth, EPREL, Pinecone i Stripe. Puste pola sekretów zachowują zapisaną wartość. Klucze firm pozostają w Integracjach najemcy.",
"admin.settings.aiRolesUnavailable":"Pełne role AI nie są jeszcze dostępne w tym wdrożeniu. Przetwarzanie nadal zapisuje się przez ustawienia OpenAI platformy; inne role będą utrwalane po wsparciu.",
"admin.settings.tab.integrations":"Przegląd",
"admin.settings.tab.ai":"Role AI",
"admin.settings.tab.mail":"Poczta",
"admin.settings.tab.other":"Inne",
"admin.settings.tab.admins":"Użytkownicy admin",
"admin.settings.mailCardDesc":"Zaproszenia do ustawienia hasła i wychodzącą pocztę platformy",
"admin.settings.creditPackPricesHint":"Create one-time Prices in Stripe (mode=payment products). Paste Price IDs here — same sync path as plan subscriptions.",
"admin.settings.syncCreditPacksModeHint":"Stripe mode for this sync: {mode}. Switch the secret key (sk_test_ vs sk_live_) to sync the other environment.",
"admin.settings.syncCreditPacksFailed":"Could not sync credit packs to Stripe.",
"admin.diagnostics.description":"Konsola ops zdrowia aplikacji, głębokości kolejki, niedawnych zadań i flag konfiguracji. Sekrety i DSN nigdy nie są pokazywane; błędy zadań są oczyszczane.",
"admin.diagnostics.filterAria":"Filtr statusu zadania",
"admin.diagnostics.queue":"Kolejka",
"admin.diagnostics.noJobsInQueue":"Brak zadań w kolejce.",
"admin.orphan.confirmDesc":"This permanently deletes {total} processed_products row(s) whose raw is missing or unprocessed. Job product links use ON DELETE SET NULL.",
"admin.orphan.confirmDelete":"Delete orphans",
"admin.billing.title":"Admin rozliczeń",
"admin.billing.description":"Zarządzaj planami, kredytami, uprawnieniami funkcji w pakietach i przełącznikami funkcji całej platformy.",
"admin.billing.noCompanies":"Nie znaleziono firm.",
"admin.billing.noCompaniesFilter":"Żadna firma nie pasuje do tego filtra.",
"admin.billing.assignPlanTitle":"Przypisz plan",
"admin.billing.assignPlanDesc":"Dołącz plan rozliczeniowy do firmy. Opcjonalne kredyty próbne resetują saldo firmy na okres próbny.",
"admin.plans.description":"Publiczny ladder, A1 / Legacy, Platforma Demo, and custom deals. Ephemeral test and obsolete ladder rows stay under Ukryty.",
"admin.plans.searchPlaceholder":"Szukaj nazwy lub opisu…",
"admin.plans.searchAria":"Szukaj planów",
"admin.plans.filterAria":"Filtruj plany według widoczności",
"admin.permissions.noteBody":"These toggles set what this package may include. Platforma-wide on/wył. masters are on the {global} tab — a plan can enable a feature that still stays wył. when the platform switch is wyłączone.",
"admin.permissions.profilesHint":"One-click matrices for public ladder packages and migrated legacy navigation. Zapiszs overrides for the wybrane package only.",
"admin.permissions.noMatch":"Żadne funkcje nie pasują do bieżących filtrów.",
"admin.permissions.differs":"Różni się",
"admin.permissions.platformOffHint":"Wył. w całej platformie even if this plan enables it.",
"admin.permissions.sectionToggled":"{label} {state} dla tego planu.",
"admin.permissions.state.enabled":"włączone",
"admin.permissions.state.disabled":"wyłączone",
"admin.permissions.loadFailed":"Nie udało się załadować uprawnienia planu",
"admin.permissions.saveFailed":"Nie udało się zapisać feature",
"admin.permissions.enableAllFailed":"Włącz wszystko nie powiodło się",
"admin.permissions.disableAllFailed":"Wyłącz wszystko nie powiodło się",
"admin.permissions.profileFailed":"Nie udało się apply profile",
"admin.permissions.resetFailed":"Nie udało się reset defaults",
"admin.permissions.sectionFailed":"Sekcja update nie powiodło się",
"admin.profile.legacy.label":"Legacy",
"admin.profile.legacy.description":"Migrated legacy navigation: catalog, feedy, rozliczenia, and ustawienia; no Wsteczground Tasks, sklepy, or marketing.",
"admin.profile.free.label":"Bezpłatny",
"admin.profile.free.description":"Publiczny Free ladder — AI, klucz APIs, live email, and own-key AI wył..",
"admin.profile.starter.label":"Starter",
"admin.profile.starter.description":"Publiczny Starter — AI on; own-key AI wył..",
"admin.profile.growth.label":"Growth",
"admin.profile.growth.description":"Wszystkie funkcje katalogu włączone.",
"admin.profile.business.label":"Business",
"admin.profile.business.description":"Wszystkie funkcje katalogu włączone.",
"admin.profile.enterprise.label":"Enterprise / wszystko włączone",
"admin.profile.enterprise.description":"Full macierz funkcji (custom and Enterprise default).",
"admin.gates.noteBody":"Te przełączniki dotyczą każdego pakietu. Efektywny dostęp to {combo}. Uprawnienia per pakiet pozostają na karcie {permissions}.",
"admin.gates.combo":"uprawnienie planu ORAZ sekcja globalna ORAZ funkcja globalna",
"admin.gates.sectionsDesc":"Turn an entire produkt area on or wył. for all packages. “Sekcja + features” also updates every feature master in that section.",
"admin.knowledge.publishedEligible":"Opublikowano (kwalifikuje się do dopasowania)",
"admin.knowledge.field.name":"Nazwa",
"admin.knowledge.field.templateBody":"Treść",
"admin.knowledge.active":"Aktywny",
"admin.settings.card.aiRolesTitle":"Platforma AI roles",
"admin.settings.card.aiRolesDesc":"Przetwarzanie, vectorization, docs/API, and wsparcie — separate keys/models",
"admin.settings.roleOff":" (wył.)",
"admin.settings.roleNotSet":"· not set",
"admin.settings.someRolesUnavailable":"Some AI roles are not dostępne on this deployment yet. Przetwarzanie still uses the platform OtwórzAI ustawienia until all roles are wsparcieed.",
"admin.support.reenableAuto":"Włącz ponownie auto",
"admin.support.disableAuto":"Wyłącz auto dla tego zgłoszenia",
"admin.support.aiDraftTitle":"Szkic IA (zatwierdź lub edytuj)",
"admin.support.aiDraftDesc":"Tryb tylko-szkic zostawił notatkę wewnętrzną. Edytuj w razie potrzeby, wyślij do klienta — albo odrzuć i przejmij ręcznie.",
"admin.support.confidence":"Pewność {value}",
"admin.support.statusAfterSend":"Status po wysłaniu",
"admin.support.replyDesc":"Publiczne odpowiedzi powiadamiają klienta. Notatki wewnętrzne zostają tylko dla personelu. Domyślny status po publicznej odpowiedzi to oczekujące.",
"admin.support.internalNote":"Notatka wewnętrzna (niewidoczna dla klienta)",
"admin.support.setStatus":"Ustaw status",
"admin.support.statusDefault":"Domyślny",
"admin.support.saveNote":"Zapisz notatkę",
"admin.support.sendReply":"Wyślij odpowiedź",
"admin.support.replyAndResolve":"Odpowiedz i rozwiąż",
"admin.support.closedBanner":"To zgłoszenie jest zamknięte. Otwórz je ponownie, aby kontynuować.",
"admin.settings.tenantDesc":"Klucze IA i e-mail marketingowy firmy pozostają w Integracjach. Sekrety sesji i szyfrowania zostają w środowisku serwera i nie są tu edytowane.",
"admin.settings.perCompanyAiEmail":"IA/e-mail per firmę —",
"admin.settings.plansCredits":"Plany i kredyty —",
"admin.settings.apiKeyKeepPlaceholder":"•••• zostaw puste, by zachować",
"admin.settings.apiKeyNewPlaceholder":"sk-… lub lokalny",
"admin.settings.smtpCardTitle":"Platforma SMTP",
"admin.settings.smtpCardDesc":"Używane do zaproszeń set-password i wychodzącej poczty platformy. Marketing Resend/SMTP pozostaje per firmę w Integracje → E-mail.",
"admin.settings.eprelDesc":"Bezpłatne publiczne dane etykiet energetycznych UE podczas przetwarzania. Domyślnie włączone dla wszystkich planów — bez aktywacji ani płatnego upgrade’u. Użyj kontrolek tylko do wyłączenia lub dostrojenia klienta.",
"admin.settings.optionalKeySaved":"Opcjonalny klucz API zapisany",
"admin.settings.noApiKeyNeeded":"Klucz API nie jest wymagany",
"admin.settings.optionalApiKeySavedHint":"(zapisano — leave blank to keep)",
"admin.settings.optionalApiKeyPublicHint":"(publiczne API działa bez niej)",
"admin.settings.clearEprelKey":"Wyczyść zapisany klucz API EPREL",
"admin.settings.pineconeDesc":"Opcjonalne sugestie kategorii wektorowych podczas przetwarzania. Wartości środowiska hosta są używane, gdy te pola pozostaną puste.",
"admin.settings.apiKeyConfigured":"Klucz API skonfigurowany",
"admin.settings.noApiKey":"Brak klucza API",
"admin.settings.apiKeyLabel":"Klucz API",
"admin.settings.clearPineconeKey":"Wyczyść zapisany klucz API Pinecone",
"admin.settings.stripeDesc":"Opcjonalne nadpisania konfiguracji Stripe serwera. Preferuj pola hasła; wartości nie są ponownie pokazywane po zapisie.",
"admin.settings.stripeMock":"Wymuś tryb mock Stripe (tylko poza produkcją — wyłącza prawdziwe obciążenia)",
"admin.settings.aiRole.docs_api.desc":"Przyszły slot asystenta docs/API — /docs Ask pozostaje regułowy i nigdy nie powinien wywoływać tej roli.",
"admin.settings.aiRole.support.label":"Wsparcie",
"admin.settings.aiRole.support.desc":"IA zapasowa do auto-odpowiedzi na zgłoszenia — skonfiguruj tu dostawcę/klucz/model; włącz wysyłkę w Wiedza wsparcia → Auto-odpowiedź.",
"admin.knowledge.articleDesc":"Treść Markdown obsługuje obrazy przez bezpieczne przesyłanie. Nie wymyślaj faktów o produktach — zostaw placeholdery dla agentów treści.",
"admin.bootstrap.notAdminMsg":"Twoje konto jest zalogowane, ale nie jest oznaczone jako admin platformy. Poproś istniejącego admina o dostęp, wyloguj się i zaloguj ponownie.",
"admin.bootstrap.goToPanel":"Przejdź do panelu admina",
"admin.bootstrap.loadFailed":"Nie udało się wczytać profilu",
"admin.migrate.title":"Migracja organizacji",
"admin.migrate.description":"To narzędzie migracji jest wycofane i nie zmienia żadnych danych.",
"admin.migrate.notAvailable":"Niedostępne",
"admin.migrate.body":"Migracja organizacji z poprzedniego dostawcy tożsamości nie jest już potrzebna. Firmy i lokalne auth są zarządzane w Użytkownicy i organizacje.",
"admin.migrate.hint":"Jeśli otworzyłeś to ze starej zakładki, kontynuuj w Użytkownicy i organizacje, Rozliczenia platformy lub Zablokowane produkty.",
"admin.migrate.adminHome":"Start admina",
"admin.migrate.users":"Użytkownicy",
"admin.redirect.diagnostics":"Przekierowanie do Diagnostyki…",
"admin.redirect.stuck":"Przekierowanie do Zablokowanych produktów…",
"common.refresh":"Odśwież",
"common.delete":"Usuń",
"common.clearSearch":"Wyczyść wyszukiwanie",
"common.loading":"Ładowanie…",
"common.never":"Nigdy",
"common.back":"Wstecz",
"common.startOver":"Zacznij od nowa",
"common.create":"Utwórz",
"common.required":"Wymagane",
"common.actions":"Akcje",
"common.status":"Stan",
"common.nameCol":"Nazwa",
"common.products":"Produkty",
"common.more":"+{count} więcej",
"feeds.title":"Twoje feedy",
"feeds.loadingDesc":"Ładowanie feedów dostawcy…",
"feeds.desc":"{page} na tej stronie · {total} feedów łącznie — URL CSV/XML dostawcy i przesłania. Połącz ze Sklepów, aby uzyskać opcje z przewodnikiem.",
"feeds.storesHub":"Hub sklepów",
"feeds.addFeed":"Dodaj Feed",
"feeds.searchPlaceholder":"Szukaj feedów...",
"feeds.emptyTitle":"Brak feedów produktów",
"feeds.emptyMessage":"Połącz URL CSV/XML dostawcy lub prześlij plik, aby zsynchronizować produkty do katalogu.",
"feeds.connectFeed":"Podłącz feed",
"feeds.uploadCsvCta":"Prześlij CSV",
"feeds.noMatchTitle":"Brak pasujących feedów",
"feeds.noMatchMessage":"Spróbuj innej frazy wyszukiwania albo wyczyść wyszukiwanie, aby zobaczyć wszystkie feedy.",
"feeds.col.source":"Źródło",
"feeds.col.mapping":"Mapowanie",
"feeds.col.lastData":"Ostatnia sync",
"feeds.copyUrl":"Kopiuj URL",
"feeds.fieldsMapped":"{count} pól",
"feeds.fieldsMappedTitle":"{count} pole zamapowane",
"feeds.field.intervalHint":"Jak często Descrybe ma automatycznie pobierać ten feed, gdy jest aktywny. Sync na liście uruchamia jednorazowe pobranie — nie zmienia tego harmonogramu.",
"feeds.createFeed":"Utwórz feed",
"feeds.editTitle":"Edytuj Feed",
"feeds.editDesc":"Zaktualizuj nazwę, typ, harmonogram auto-sync lub URL źródła. Sync na liście feedów uruchamia jednorazowe pobranie.",
"feeds.csvSource":"Źródło CSV",
"feeds.uploadedCsv":"Przesłany CSV",
"feeds.replaceFileHint":"Aby zastąpić plik, utwórz nowy feed. Sync ponownie odczytuje zapisany upload.",
"feeds.csvTypeLocked":"Przesłane feedy CSV pozostają typu CSV.",
"feeds.saveChanges":"Zapisz zmiany",
"feeds.historyTitle":"Historia sync",
"feeds.historyDesc":"Niedawne zadania sync dla „{name}”.",
"feeds.historyLoading":"Ładowanie historii sync…",
"feeds.historyEmpty":"Brak zadań sync.",
"feeds.history.started":"Uruchomiono",
"feeds.history.completed":"Ukończone",
"feeds.loadFailed":"Nie udało się wczytać feedów",
"feeds.copyFailed":"Nie można skopiować URL",
"feeds.created":"Utworzono feed",
"feeds.updated":"Feed zaktualizowany.",
"feeds.mapBeforeSync":"Zmapuj pola przed synchronizacją tego feedu.",
"feeds.activateBeforeSync":"Aktywuj feed przed synchronizacją.",
"feeds.syncFinished":"Synchronizacja zakończona",
"feeds.viewProducts":"Zobacz produkty",
"feeds.processing":"Przetwarzanie",
"feeds.syncFailed":"Synchronizacja nie powiodła się",
"feeds.statusUpdateFailed":"Nie udało się zaktualizować statusu",
"feeds.deleteConfirm":"Usunąć feed „{name}”? Tego nie można cofnąć.",
"feeds.deleted":"Feed usunięty.",
"feeds.deleteFailed":"Nie udało się usunąć feedu",
"feeds.historyLoadFailed":"Nie udało się wczytać historii sync",
"feeds.ftpUnsupported":"Sync FTP/FTPS nie jest obsługiwana. Poproś dostawcę o publiczny HTTPS URL feedu, prześlij tu feed CSV lub zaimportuj plik z Uploads.",
"feeds.ftpMigrateBanner":"Niektóre feedy nadal używają FTP/FTPS. Descrybe nie może ich pobrać. Przełącz na publiczny HTTPS URL, dodaj feed CSV lub prześlij z Uploads.",
"feeds.stats.acrossFeeds":"Surowe wiersze (nie katalog + kolejka)",
"feeds.stats.processed":"W katalogu",
"feeds.stats.readyCatalog":"Wiersze katalogu — nie część zaimportowanych",
"feeds.stats.unprocessed":"Oczekuje na przetwarzanie",
"feeds.stats.waiting":"Surowa kolejka — nie część zaimportowanych",
"feeds.format.howTo":"Jak ustrukturyzować feed",
"feeds.format.required":"Wymagane:",
"feeds.preview.title":"Podgląd źródła feedu",
"feeds.preview.truncated":"Skrócone",
"feeds.preview.refresh":"Odśwież podgląd",
"feeds.preview.copy":"Kopiuj podgląd",
"feeds.preview.loading":"Ładowanie podglądu…",
"feeds.preview.empty":"Wyodrębnij schemat, aby podejrzeć źródło feedu.",
"feeds.schema.search":"Szukaj pól…",
"feeds.schema.fieldName":"Nazwa pola",
"feeds.schema.sourcePath":"Ścieżka źródła",
"feeds.schema.confirm":"Potwierdź",
"feeds.schema.apply":"Zastosuj",
"feeds.preflight.missingItemPath":"Wybierz ścieżkę elementu produktu przed synchronizacją.",
"feeds.preflight.emptyMappings":"Zmapuj co najmniej jedno pole źródłowe przed synchronizacją.",
"feeds.preflight.missingRequired":"Zmapuj wymagane pola przed synchronizacją: {fields}.",
"feeds.preflight.unknownSource":"Niektóre zmapowane źródła nie znaleziono w wyodrębnionym schemacie: {fields}{more}. Wyodrębnij ponownie lub popraw ścieżki przed poleganiem na wartościach próbnych.",
"feeds.preflight.emptySample":"Wymagane pola mają puste wartości próbne: {fields}. Sprawdź kolumny źródłowe przed pełną sync.",
"feeds.preflight.fix":"Popraw mapowania pól przed synchronizacją.",
"mapping.title":"Mapowanie feedu",
"mapping.titleNamed":"Mapuj: {name}",
"mapping.description":"Wybierz powtarzający się element produktu, wyodrębnij pola źródłowe, a następnie zmapuj je na pola produktu Descrybe.",
"mapping.autoMap":"Mapuj automatycznie",
"mapping.fuzzy":"{count} przybliżonych",
"mapping.extractSchema":"Wyodrębnij schemat",
"mapping.backToFeeds":"Wróć do Feedów",
"mapping.ftpStillEdit":"{message} Nadal możesz edytować mapowania. Aby odświeżyć produkty, przejdź na HTTPS lub prześlij plik.",
"mapping.ftpUploadCta":"Przejdź do Uploads",
"mapping.ftpHttpsCta":"Dodaj feed HTTPS",
"mapping.ftpCsvCta":"Prześlij feed CSV",
"mapping.loading":"Ładowanie szczegółów feedu…",
"mapping.step1":"Wybierz element produktu",
"mapping.step2":"Mapuj pola",
"mapping.step1Heading":"Krok 1: Wybierz element produktu",
"mapping.csvHint":"Feedy CSV używają nagłówków kolumn jako pól źródłowych. Wyodrębnij schemat, aby wczytać kolumny, a następnie przejdź do mapowania.",
"mapping.howToSelect":"Jak wybrać element produktu:",
"mapping.howToHint":"Opcjonalny przewodnik",
"mapping.howTo.1":"Wyodrębnij schemat lub kliknij powtarzający się tag w podglądzie",
"mapping.howTo.2":"Każdy element powinien zawierać dane pojedynczego produktu",
"mapping.howTo.3":"Potwierdź ścieżkę (na przykład",
"mapping.howTo.4":"Przejdź do mapowania pól źródłowych na pola produktu",
"mapping.productElementPath":"Ścieżka elementu produktu",
"mapping.pathPlaceholder":"np. rss/channel/item lub products/product",
"mapping.continue":"Kontynuuj →",
"mapping.continueFields":"Przejdź do mapowania pól →",
"mapping.discovered":"Wykryto {fields} pól źródłowych z {rows} wiersza(-y) próbki.",
"mapping.step2Help":"Mapuj kolumny źródłowe lub węzły XPath na pola produktu. Wymagane pola są oznaczone *. Najedź na ikonę pomocy, aby zobaczyć krótką wskazówkę ze słownika.",
"mapping.formatHelp.requiredBody":"{gtin} (EAN/UPC), {title} (lub {name}), {brand}",
"mapping.formatHelp.https":"Używaj publicznych adresów URL HTTPS dla zdalnych feedów (nie FTP ani localhost). Przesyłanie CSV działa dla plików lokalnych.",
"mapping.formatHelp.specs":"Specyfikacje jako pary Etykieta: wartość (np. {ram}). Wymiary: {height}, {width}, {depth}, {mass}",
"mapping.formatHelp.also":"Obsługiwane także: ceny, stany magazynowe, obrazy, kategoria, gwarancja, ID EPREL, opisy HTML, dodatkowe obrazy, URL wideo i więcej — pobierz pełną próbkę.",
"mapping.preview.emptyHint":"Mapuj kolumny źródłowe lub węzły XPath na pola produktu. Tutaj pojawi się podgląd przykładowego produktu.",
"mapping.preview.rawSample":"Surowy fragment próbki",
"imports.title":"Przesyłania",
"imports.description":"Importy CSV zapisane dla tego obszaru roboczego — produkty, kategorie i atrybuty.",
"imports.importProducts":"Importuj produkty",
"imports.emptyTitle":"Brak jeszcze przesłań",
"imports.emptyMessage":"Importy CSV produktów, kategorii i atrybutów pojawią się tutaj po przesłaniu.",
"imports.goProducts":"Przejdź do produktów",
"imports.categories":"Kategorie",
"imports.recent":"Ostatnie przesyłania",
"imports.fileCount":"{count} plik",
"imports.fileCountPlural":"{count} plików",
"imports.col.fileName":"Nazwa pliku",
"imports.col.kind":"Rodzaj",
"imports.col.uploaded":"Przesłano",
"imports.col.size":"Rozmiar",
"imports.actions":"Akcje przesyłania",
"imports.loadFailed":"Nie udało się wczytać przesłań",
"imports.metadataOnlyNotice":"{count} upload records are metadata-only — file bytes were not migrated. Re-upload or resync storage if you need the originals.",
"imports.metadataOnlyBadge":"Metadata only (blob not migrated)",
"imports.deleteConfirm":"Usunąć „{name}”? Usuwa rekord przesłania (oraz lokalny blob, jeśli istnieje).",
"imports.deleted":"Usunięto przesłanie.",
"imports.deleteFailed":"Nie udało się usunąć przesłania",
"reviews.syncTitle":"Import opinii (sklep → Descrybe)",
"reviews.syncDesc":"Import przychodzący — pobierz recenzje produktów WooCommerce do Descrybe na potrzeby kampanii i reputacji",
"reviews.syncQueued":"Sync recenzji w kolejce",
"reviews.statusBadge":"Recenzje: {status}",
"reviews.syncedCount":"Zsynchronizowano {count}",
"reviews.lastSync":"Ostatnia sync: {date}",
"reviews.noSyncYet":"Żadna sync recenzji nie została jeszcze ukończona.",
"reviews.needsReconnect":"Import recenzji nie może działać, dopóki dane logowania nie zostaną ponownie połączone po migracji. W zakładce Połączenie: Zapisz, potem Przetestuj połączenie.",
"reviews.queueImport":"Dodaj import opinii do kolejki (sklep → Descrybe)",
"reviews.queueing":"Kolejkowanie...",
"reviews.saveTestFirst":"Zapisz dane logowania i przetestuj połączenie przed sync",
"reviews.refreshList":"Odśwież listę",
"reviews.loading":"Ładowanie recenzji…",
"reviews.emptyTitle":"Brak jeszcze recenzji",
"reviews.emptyMessage":"Dodaj synchronizację recenzji do kolejki po połączeniu sklepu. Ta karta działa także z pustą listą.",
"reviews.col.product":"Produkt",
"reviews.col.reviewer":"Recenzent",
"reviews.col.rating":"Ocena",
"reviews.col.review":"Przejrzyj",
"reviews.queuedSuccess":"Synchronizacja recenzji w kolejce. Uruchomi się wkrótce.",
"reviews.queueFailed":"Nie można dodać synchronizacji recenzji do kolejki",
"campaigns.title":"Kampanie",
"campaigns.description":"Twórz sezonowe kampanie e-mail z katalogu — wybierz sezon, produkty, odbiorców i wygeneruj treść.",
"campaigns.new":"Nowa kampania",
"campaigns.loading":"Ładowanie kampanie…",
"campaigns.loadFailed":"Nie udało się załadować kampanie",
"campaigns.deleteConfirm":"Usunąć kampanię „{name}”? Tej operacji nie można cofnąć.",
"campaigns.deleted":"Kampania usunięta",
"campaigns.deleteFailed":"Nie udało się usunąć kampanii",
"campaigns.partialUnavailable":"Kampanie nie są teraz w pełni dostępne. Generowanie i wysyłka mogą się nie udać, dopóki usługa nie wróci.",
"campaignWizard.apiMissing":"API kampanii jest tymczasowo niedostępne. Możesz przeglądać kreator; zapis / generowanie / wysyłka wymagają dostępnego /api/campaigns.",
"campaignWizard.upgradeTitle":"Kampanie AI to funkcja płatna",
"campaignWizard.upgradeMessage":"Plany Free mogą przygotować sezony i odbiorców, ale Generuj AI wymaga Starter lub wyżej. Ulepsz, aby odblokować szkice e-mail AI.",
"campaignWizard.comparePlans":"Porównaj plany",
"campaignWizard.step.season":"Sezon",
"campaignWizard.step.catalog":"Produkty",
"campaignWizard.step.audience":"Odbiorcy",
"campaignWizard.step.prompt":"Prompt",
"campaignWizard.step.preview":"Podgląd",
"campaignWizard.step.send":"Wyślij",
"campaignWizard.pickSeason":"Wybierz sezon",
"campaignWizard.pickSeasonHelp":"Zacznij od szablonu — wszystko edytujesz później.",
"campaignWizard.advancedHelp":"Generowanie AI używa zestawu marki (jeśli ustawiony) i wybranych produktów. Podgląd tylko szablonu pomija AI i działa jako szkielet layoutu.",
"campaignWizard.planFree":"Bezpłatny",
"campaignWizard.planPaid":"Płatne",
"campaignWizard.planLine":"Plan:",
"campaignWizard.aiLocked":"— Generuj AI jest zablokowane.",
"marketing.footer":"Kampanie e-mail pozostają pod {link} — ta strona tylko przygotowuje feedy eksportu katalogu.",
"common.done":"Gotowe",
"common.copied":"Skopiowano do schowka.",
"common.copyFailed":"Nie można skopiować. Zaznacz tekst i skopiuj ręcznie.",
"common.submitting":"Wysyłanie…",
"common.sending":"Wysyłanie…",
"settings.companyAdminOnlyView":"Tylko admini firmy mogą zmieniać ustawienia firmy. Możesz zobaczyć szczegóły bieżącego obszaru roboczego.",
"settings.activeCompanyHelp":"Obszar roboczy katalogu, feedów, rozliczeń i kluczy API. Przełączaj w dowolnej chwili stąd lub z nagłówka.",
"settings.noCompanySelected":"Nie wybrano firmy",
"settings.creditsOverviewHelp":"Saldo kredytów AI aktywnej firmy. Szczegółowe użycie jest w Rozliczeniach.",
"settings.billingLabel":"Rozliczenia",
"settings.remainingLabel":"Pozostało",
"settings.creditsUnavailable":"Saldo kredytów nie jest jeszcze dostępne dla tego obszaru roboczego.",
"settings.openBilling":"Otwórz użycie i rozliczenia",
"settings.companyNameHelp":"Ta nazwa pojawia się w zaproszeniach i ustawieniach organizacji",
"settings.contentSettingsHelp":"Skonfiguruj język i dopasowanie produktów dla generowanych treści",
"settings.mergeProductsHelp":"Gdy włączone, importy CSV łączą wiersze z tym samym GTIN w jeden produkt. Wyłącz, aby każdy wiersz był osobny.",
"settings.emailIntegrationHelp":"Skonfiguruj Resend lub SMTP do zaproszeń, kampanii i poczty transakcyjnej.",
"settings.configureEmail":"Skonfiguruj e-mail",
"settings.aiIntegrationsHelp":"Kredyty platformy lub własny klucz oraz edytowalne prompty do tytułów, opisów, SEO i kampanii. Klucze szyfrowane w spoczynku.",
"settings.companyUpdateFailed":"Nie udało się zaktualizować firmy",
"settings.mergeOn":"Produkty z tym samym GTIN zostaną scalone między feedami.",
"settings.mergeOff":"Produkty z tym samym GTIN pozostają osobne.",
"settings.mergeUpdateFailed":"Nie udało się zaktualizować ustawienia scalania",
"settings.inAppToastsHelp":"Tylko w tej przeglądarce. Błędy domyślnie włączone; ukończenia wyciszone, by zmniejszyć szum. Feedback formularzy i Cofnij nigdy nie są wyciszane.",
"settings.emailAlertsHelp":"Preferencje alertów e-mail wkrótce. Alerty błędów domyślnie włączone (jak w aplikacji); maile o ukończeniu wyłączone, chyba że się zapiszesz.",
"settings.emailAlertsBody":"Na razie skonfiguruj mail transakcyjny w Firma → Integracja e-mail. Alerty in-app powyżej nadal obowiązują.",
"settings.apiKeysLegacyNotice":"Starsze klucze API nie zostały zmigrowane. Utwórz nowy — sekret pokazywany jest tylko raz.",
"settings.apiKeysAdminOnly":"Tylko administratorzy firmy mogą tworzyć lub unieważniać klucze API. Możesz przeglądać istniejące prefiksy.",
"settings.apiKeysCopyUnavailableNotice":"Kopiowanie niedostępne dla istniejących kluczy — przechowywany jest tylko prefiks. Utwórz nowy, skopiuj sekret raz, potem unieważnij stary w razie potrzeby.",
"settings.apiKeysForbidden":"Nie masz uprawnień do przeglądania kluczy API. Poproś administratora firmy o pomoc.",
"settings.noApiKeys":"Brak kluczy API",
"settings.noApiKeysHelpAdmin":"Starsze klucze API nie zostały zmigrowane. Utwórz nowy do uwierzytelniania żądań Descrybe (X-API-Key). Pełny sekret pokazywany jest tylko raz.",
"settings.noApiKeysHelpMember":"Brak jeszcze kluczy API dla tej firmy. Starsze nie zostały zmigrowane — poproś administratora o utworzenie.",
"flash.admin.featuresAllOn":"Włączono wszystkie funkcje dla tego planu.",
"flash.admin.featuresAllOff":"Wyłączono wszystkie funkcje dla tego planu.",
"flash.admin.profileApplied":"Zastosowano profil {label} do {name}.",
"flash.admin.overridesCleared":"Wyczyszczono nadpisania — używane są domyślne nazwy planu.",
"empty.plans.none":"Nie znaleziono planów.",
"empty.plans.noMatch":"Żaden plan nie pasuje do tego filtra.",
"empty.plans.selectPackage":"Wybierz pakiet, aby edytować funkcje.",
"empty.products.processingTitle":"Brak produktów w przetwarzaniu",
"empty.products.processingMessageCan":"Postęp na żywo jest na stronie Przetwarzanie. Otwórz tam uruchomione zadanie, by zobaczyć status kroków; ta karta wylistuje produkty w toku, gdy filtr pozycji będzie dostępny.",
"empty.products.processingMessageCannot":"Produkty w zadaniu pojawiają się tutaj po uruchomieniu przetwarzania z katalogu.",
"empty.products.reviewTitle":"Brak produktów do przeglądu",
"empty.products.reviewMessage":"Po zadaniu wzbogacone produkty trafiają tutaj. Otwórz wiersz, porównaj oryginał ze wzbogaceniem, potem Zaakceptuj, edytuj lub Odrzuć.",
"empty.products.errorTitle":"Brak produktów z błędami",
"empty.products.errorMessage":"Gdy zadanie nie powiedzie się dla produktu, pojawi się tutaj, aby można było ponowić.",
"empty.feeds.noMatchMessage":"Spróbuj innej frazy wyszukiwania albo wyczyść wyszukiwanie, aby zobaczyć wszystkie feedy.",
"empty.export.loadFailedTitle":"Nie można wczytać feedów eksportu",
"empty.export.loadFailedMessage":"Coś poszło nie tak podczas wczytywania eksportów. Spróbuj ponownie lub sprawdź błąd powyżej, aby uzyskać szczegóły.",
"empty.export.noneTitle":"Brak feedów eksportu",
"empty.export.noneMessage":"Utwórz feed Google Shopping, Meta lub własny CSV/XML, aby wybrać produkty i pola. Wygeneruj publiczny URL do Merchant Center lub partnera — albo wyeksportuj podzbiór z Produktów.",
"empty.export.noMatchMessage":"Spróbuj innego hasła wyszukiwania.",
"empty.files.noneTitle":"Brak jeszcze przesłań",
"empty.files.noneMessage":"Importy CSV produktów, kategorii i atrybutów pojawiają się tu po przesłaniu. Po migracji platformy zawartość plików (blob) nie została skopiowana — prześlij ponownie, jeśli jej potrzebujesz.",
"empty.files.uploadCta":"Prześlij CSV",
"empty.export.fromProductsCta":"Eksportuj z Produktów",
"empty.dashboard.noJobsTitle":"Brak ostatnich zadań",
"empty.dashboard.noJobsMessage":"Zadania pojawiają się tutaj po starcie przetwarzania w Produktach. Wzbogać tytuły i opisy przed eksportem.",
"empty.stores.noneMessage":"Połącz WooCommerce lub Shopify, by synchronizować katalog i zamówienia. Plik dostawcy? Użyj URL feedu lub przesyłania CSV.",
"empty.stores.noneMessageMember":"Tylko admini firmy mogą podłączyć WooCommerce lub Shopify. Poproś admina o pomoc albo użyj Feed URL/CSV, jeśli Twoja rola na to pozwala.",
"empty.campaigns.unavailableMessage":"Usługa kampanii jest niedostępna. Możesz otworzyć kreator, ale generowanie i wysyłka poczekają na powrót usługi.",
"empty.structured.unavailableMessage":"To API nie jest jeszcze na tym backendzie. Nie możesz zarządzać polami Export ID, dopóki /api/structured-descriptions nie będzie podłączone.",
"empty.structured.noneTitle":"Brak jeszcze pól strukturalnego opisu",
"empty.structured.noneMessage":"Dodaj pole tutaj lub utwórz Export ID w formule opisu kategorii — pojawią się do użycia w feedach eksportu.",
"empty.shopify.noOrdersMessage":"Zamówienia pojawiają się po połączeniu Shopify i uruchomieniu importu. Puste listy są normalne do pierwszego sync.",
"empty.woo.noOrdersTitle":"Brak zamówień",
"empty.woo.noOrdersMessage":"Zamówienia pojawiają się po połączeniu WooCommerce i uruchomieniu synchronizacji. Puste listy są normalne do pierwszego sync.",
"empty.woo.noReviewsTitle":"Brak jeszcze recenzji",
"empty.woo.noReviewsMessage":"Opinie pojawiają się po kolejkowaniu importu z podłączonego sklepu. Ta karta działa także przy pustej liście.",
"empty.admin.notPlatformMessage":"Twoje konto jest zalogowane, ale nie jest oznaczone jako admin platformy. Poproś istniejącego admina o dostęp, wyloguj się i zaloguj ponownie.",
"empty.admin.noJobsFilter":"Brak zadań dla tego filtra.",
"empty.admin.noAdminUsers":"Nie znaleziono użytkowników admin",
"empty.admin.noJobs":"Nie znaleziono zadań.",
"empty.admin.queueUnavailable":"Kolejka wsparcia jest niedostępna. Skontaktuj się z administratorem platformy, jeśli to trwa.",
"empty.admin.noTicketsQueue":"Brak zgłoszeń w tej kolejce.",
"empty.admin.knowledgeTitle":"Baza wiedzy wsparcia",
"empty.admin.knowledgeNotReadyTitle":"Wiedza wsparcia nie jest gotowa",
"empty.admin.knowledgeNotReadyMessage":"Artykuły i auto-odpowiedź nie są jeszcze skonfigurowane w tej instalacji.",
"support.new.description":"Powiedz, z czym potrzebujesz pomocy. Dołącz kroki, komunikaty błędów lub dane faktury, jeśli pasują.",
"support.new.back":"Wstecz to zgłoszenia",
"support.new.details":"Zgłoszenie details",
"support.new.detailsHelp":"Status zaczyna się jako otwarty. Najpierw możesz dostać automatyczną odpowiedź; człowiek z zespołu może przejąć w dowolnym momencie w tym samym wątku.",
"products.processing.freePlanTitle":"Plan Free — przetwarzanie bez AI",
"products.processing.freePlanBody":"Normalnyize, specs, fill, and EPREL run at no credit cost. AI titles/descriptions require a paid plan or credits.",
"products.enrichment.rejectBody":"Odrzucić wzbogacenie i przywrócić ten produkt do nieprzetworzonych? Później możesz ponownie uruchomić przetwarzanie.",
"categories.searchPlaceholder":"Szukaj po nazwie lub ID...",
"categories.created":"Utworzono {name}.",
"categories.updated":"Kategoria została pomyślnie zaktualizowana.",
"categories.deleted":"Kategoria została pomyślnie usunięta.",
"categories.notFound":"Nie znaleziono kategorii.",
"categories.loadCategoryFailed":"Nie udało się wczytać kategorii",
"categories.noCategoriesYet":"Brak kategorii",
"categories.noMatch":"Żadna kategoria nie pasuje do „{query}”. Wyczyść wyszukiwanie lub spróbuj innego hasła.",
"categories.emptyHint":"Dodaj kategorię lub zaimportuj CSV, aby zbudować drzewo.",
"categories.promptCountOne":"{count} kategoria ma prompt generowania AI. Otwórz menu ⋮ → Edytuj prompt AI lub edytuj kategorię i wybierz Edytuj prompt AI.",
"categories.promptCountMany":"{count} kategorie ma prompt generowania AI. Otwórz menu ⋮ → Edytuj prompt AI lub edytuj kategorię i wybierz Edytuj prompt AI.",
"categories.actions":"Akcje kategorii",
"categories.chooseCsv":"Wybierz CSV",
"categories.createSingleOrImport":"Utwórz jedną kategorię lub zaimportuj wiele z CSV.",
"categories.createSingle":"Utwórz jedną kategorię.",
"attributes.type.multiselect.hint":"Wybierz jedną lub więcej opcji z listy",
"standardFields.title":"Pola standardowe",
"standardFields.description":"Zdefiniuj standardowe pola produktu i pogrupuj je",
"standardFields.apiUnavailable":"API pól standardowych jest niedostępna. Zmian nie można zapisać.",
"standardFields.apiUnreachable":"API pól standardowych jest teraz niedostępne. Tworzenie/edycja pozostaje wyłączone, dopóki /api/standard-fields i /api/field-groups nie odpowiedzą.",
"export.dialog.description":"Eksportuj {count} zaznaczonych produktów. Wybierz feed eksportu określający format i pola — jak wybór tego, co synchronizować, ale do pobrania lub partnera.",
"export.dialog.loadFailed":"Nie udało się wczytać opcji feedu eksportu. Spróbuj ponownie.",
"billing.checkoutUnavailable":"Zakupy samoobslugowe sa niedostepne, dopoki Stripe nie zostanie skonfigurowany. Skontaktuj sie ze sprzedaza, aby uzyskac plan.",
"billing.recovery.pastDueAdmin":"Płatność za subskrypcję nie powiodła się. Zaktualizuj płatność w Customer Portal — dostęp pozostaje otwarty w tym okresie karencji.",
"billing.recovery.pastDueMember":"Rozliczenia wymagają uwagi. Poproś administratora firmy o aktualizację płatności w Customer Portal. Dostęp pozostaje otwarty w tym okresie karencji.",
"billing.recovery.missingPlanMessage":"Ta firma nie ma aktywnego planu (często po pominiętej migracji). Przypisz plan przez Checkout lub skontaktuj się z pomocą — nie zakładaj pojemności Unlimited.",
"exports.neverGenerated":"Nigdy nie wygenerowano",
"exports.searchPlaceholder":"Szukaj feedów...",
"exports.searchAria":"Szukaj feedów",
"exports.clearSearch":"Wyczyść wyszukiwanie",
"exports.loading":"Ładowanie feedów…",
"exports.loadErrorTitle":"Nie można wczytać feedów eksportu",
"exports.loadErrorBody":"Coś poszło nie tak podczas wczytywania eksportów. Spróbuj ponownie lub sprawdź błąd powyżej, aby uzyskać szczegóły.",
"exports.tryAgain":"Spróbuj ponownie",
"exports.emptyTitle":"Brak feedów eksportu",
"exports.emptyBody":"Utwórz feed Google Shopping, Meta lub własny CSV/XML, aby wybrać produkty i pola. Wygeneruj publiczny URL do Merchant Center lub partnera — albo wyeksportuj podzbiór z Produktów.",
"exports.emptyCta":"Utwórz feed Google Shopping",
"exports.noMatchTitle":"Brak pasujących feedów",
"exports.noMatchBody":"Spróbuj innego hasła wyszukiwania.",
"exports.sourceFeedHelp":"Ogranicz ten feed do produktów z jednego feedu wejściowego albo zostaw Wszystkie produkty — tak wybierasz, co zawiera publiczny URL.",
"exports.fieldHelp":"Eksporty odczytują przetworzone produkty (z surowym mapped_data jako zapasem). Użyj eprel_* / energy_* dla pól EPREL, spec.* dla jednej specyfikacji lub specifications.*, aby rozwinąć wszystkie specs jako węzły XML.",
"exports.preset.google_shopping_xml.description":"Te same kolumny Google co elementy XML (g:id, g:title, …) dla feedów XML Merchant Center.",
"exports.preset.google_shopping_xml.hint":"Wklej publiczny URL XML do Merchant Center jako scheduled fetch. W razie potrzeby zmapuj brakujące pola sklepu (link, price) w Field mappings.",
"exports.preset.custom_xml.description":"Zbuduj niestandardowy kształt XML z własnymi nazwami root/item i mapowaniami pól.",
"exports.preset.custom_xml.hint":"Ustaw nazwy elementów root i item, a następnie zmapuj każdy klucz wyjściowy na źródło produktu.",
"exports.preset.custom_xml.defaultName":"Niestandardowy eksport XML",
"processing.title":"Przetwarzanie",
"processing.description":"Na żywo postęp pipeline dla zadań przetwarzania produktów. Automatyczne odświeżanie, gdy ta karta jest widoczna. Ukończone zadania prowadzą do Needs Review w celu akceptacji / edycji / odrzucenia.",
"processing.refresh":"Odśwież",
"processing.loadFailed":"Nie udało się wczytać zadań przetwarzania",
"processing.tooManyRequests":"Zbyt wiele żądań — poczekaj chwilę i spróbuj ponownie.",
"processing.serverError":"{fallback} (błąd serwera {status}). Spróbuj ponownie wkrótce.",
"processing.actions.confirmBody":"Przetwórz {count} produkt(ów) na tej stronie za {credits} kredytów. Kredyty są zużywane przy starcie zadania i nie można ich cofnąć z tej akcji.",
"processing.receipt.cancelledMany":"Anulowano zadania przetwarzania",
"processing.receipt.cancelledDesc":"Właśnie uruchomione zadanie zostało anulowane.",
"processing.receipt.cancelFailed":"Nie można anulować zadania przetwarzania",
"unsubscribe.title":"Wypisz się",
"unsubscribe.me":"Wypisz mnie",
"unsubscribe.invalidLink":"Nieprawidłowy link",
"unsubscribe.failedShort":"Wypisanie nie powiodło się",
"unsubscribe.already":"Jesteś już wypisany.",
"unsubscribe.confirmPrompt":"Potwierdź poniżej, aby wypisać się z e-maili marketingowych.",
"unsubscribe.done":"Zostałeś wypisany.",
"stores.title":"Sklepy i źródła",
"stores.description":"Połącz dowolny sklep lub dostawcę w jednym miejscu — Woo, Shopify, URL feedu lub CSV. Sklepy live: produkty Descrybe → sklep; zamówienia/opinie sklep → Descrybe. Eksportuj, gdy katalog jest gotowy.",
"stores.migrationNote":"Po migracji platformy Descrybe dane logowania WooCommerce i Shopify mogą wymagać ponownego wprowadzenia — to ponowne połączenie, nie uszkodzona synchronizacja.",
"stores.docsPrefix":"Docs:",
"stores.docsApiOverview":"Przegląd API",
"stores.docsSuffix":"dla publicznego dostępu do produktów; użyj WooCommerce lub Shopify poniżej do live-synchronizacji sklepu.",
"stores.connectorsHeading":"Konektory sklepu i katalogu",
"stores.statusAria":"Status: {label}",
"stores.ctaAria":"{cta}: {title}",
"stores.startTitle":"Od czego zacząć?",
"stores.startBody":"Sklep Woo → WooCommerce. Shopify lub inna platforma → URL feedu lub upload CSV. Gotowe do Merchant Center lub partnerów → Feedy eksportu (preset Google Shopping lub własne pola). Po migracji połącz ponownie Woo/Shopify, zanim oczekujesz działania sync.",
"stores.startBodyMember":"Poproś admina firmy o podłączenie WooCommerce lub Shopify. Nadal możesz otwierać podłączone sklepy (sync/przegląd) oraz używać Feed URL, CSV lub feedów eksportu według planu.",
"stores.wizard.adminOnly":"Tylko admini firmy mogą uruchomić prowadzoną konfigurację sklepu (zapis poświadczeń i pierwszy sync). Nadal możesz otwierać podłączone sklepy.",
"stores.shopify.description":"Wypychaj produkty Descrybe → Shopify. Pobieraj zamówienia Shopify → Descrybe. Opinie nie są dostępne przez Admin API Shopify.",
"stores.feedUrl.description":"Pull any supplier or sklep catalog from a public CSV or XML URL on a schedule. Map fields, then sync.",
"stores.feedUrl.cta":"Dodaj URL feedu",
"stores.csv.title":"Przesyłanie CSV",
"stores.csv.description":"Prześlij CSV produktów jako feed wejściowy. Najlepsze do jednorazowych plików dostawcy lub eksportów z admina Shopify.",
"stores.csv.cta":"Prześlij CSV",
"stores.export.title":"Eksport / REST",
"stores.export.description":"Opublikuj Google Shopping lub własny CSV/XML z publicznym URL. Albo pobieraj produkty kluczem API (/api/v1).",
"stores.export.cta":"Otwórz eksporty",
"stores.apiKeys.title":"Klucze API",
"stores.apiKeys.description":"Stare klucze API nie zostały zmigrowane. Utwórz nowy klucz w Ustawieniach, aby przywrócić dostęp do /api/v1 — sekret jest pokazany tylko raz.",
"stores.apiKeys.descriptionMember":"Firmowe klucze API dla /api/v1. Starsze nie zostały zmigrowane — tylko admini mogą tworzyć lub unieważniać; prefiksy zobaczysz w Ustawieniach.",
"store.connectionFailed":"Połączenie nie powiodło się",
"store.connectionFailedDot":"Połączenie nie powiodło się.",
"store.connectionTestFailed":"Test połączenia nie powiódł się",
"store.testFailed":"Test nie powiódł się",
"store.setupSteps":"Kroki konfiguracji",
"store.col.order":"Zamówienie",
"store.col.customer":"Klient",
"store.col.status":"Stan",
"store.col.total":"Razem",
"store.col.date":"Data",
"store.loadingOrders":"Ładowanie zamówień…",
"store.loadingOrdersDot":"Ładowanie zamówień.",
"flash.store.saveFailed":"Nie można zapisać ustawień",
"flash.store.queueSyncFailed":"Nie można dodać synchronizacji do kolejki",
"flash.store.queueOrdersFailed":"Nie można dodać synchronizacji zamówień do kolejki",
"flash.store.connectedTo":"Połączono z {name}.",
"flash.shopify.loadFailed":"Nie udało się wczytać konfiguracji Shopify",
"flash.shopify.productSyncQueued":"Synchronizacja produktów w kolejce. Worker uruchomi ją wkrótce.",
"flash.shopify.ordersSyncQueued":"Synchronizacja zamówień w kolejce. Worker uruchomi ją wkrótce.",
"flash.woo.loadFailed":"Nie udało się wczytać konfiguracji WooCommerce",
"flash.woo.productSyncQueued":"Synchronizacja produktów w kolejce. Uruchomi się wkrótce.",
"flash.woo.ordersSyncQueued":"Synchronizacja zamówień w kolejce. Uruchomi się wkrótce.",
"flash.woo.reviewsSyncQueued":"Synchronizacja recenzji w kolejce. Uruchomi się wkrótce.",
"flash.woo.queueReviewsFailed":"Nie można dodać synchronizacji recenzji do kolejki",
"flash.woo.remoteMapsFailed":"Nie udało się wczytać zdalnych mapowań",
"flash.woo.syncSettingsFailed":"Nie można zapisać ustawień synchronizacji",
"flash.woo.categoryAutoMapFailed":"Automatyczne mapowanie kategorii nie powiodło się",
"flash.woo.attributeAutoMapFailed":"Automatyczne mapowanie atrybutów nie powiodło się",
"shopify.title":"Integracja Shopify",
"shopify.description":"Connect a Shopify store with Dev Dashboard client credentials (recommended) or a legacy Admin API token. Products: Descrybe → Shopify. Orders: Shopify → Descrybe.",
"shopify.adminOnly":"Only firma admins can change Shopify connection ustawienia. Synchronizuj and browse stay dostępne.",
"shopify.noCredentialsMember":"Brak danych Shopify. Poproś administratora firmy o podłączenie sklepu. Sync i przeglądanie zamówień będą dostępne po zapisaniu i teście połączenia.",
"shopify.enterToken":"Wprowadź poświadczenia",
"shopify.noCredentials":"Brak danych Shopify. Podaj domenę *.myshopify.com oraz Client ID + secret z Dev Dashboard (lub starszy token Admin API), potem Zapisz i Przetestuj połączenie. Po migracji platformy stare sekrety nie są przenoszone — połącz ponownie świeżym tokenem.",
"shopify.setupDesc":"New Shopify apps are created in the Dev Dashboard (not Develop apps in Admin). Paste Client ID + secret below — Descrybe exchanges them for Admin API tokens and refreshes before they expire.",
"shopify.setup.oauthNote":"Still manual: create/install the app in Shopify and paste Client ID + secret here. Descrybe does not host a one-click App Store install. Legacy permanent shpat_ tokens from older Admin custom apps still work.",
"shopify.setup.openDevelopAppsNeedDomain":"Enter your shop domain below to unlock a direct Admin link for this store.",
"shopify.setup.openDevelopAppsHint":"Opens Shopify Admin → Develop apps for this shop (legacy apps / install approvals). New apps start in the Dev Dashboard.",
"shopify.field.shopDomainHelp":"Admin API host only — use the *.myshopify.com name, not a custom storefront domain.",
"shopify.field.clientId":"Client ID",
"shopify.field.clientSecret":"Client secret",
"shopify.field.clientSecretHelp":"From Dev Dashboard → your app → Settings. Descrybe exchanges these for a short-lived Admin API token and refreshes it automatically.",
"shopify.field.accessTokenHelp":"Only for custom apps created in Shopify Admin before January 2026. New apps should use Client ID + secret instead.",
"shopify.placeholder.clientId":"Client ID from Dev Dashboard",
"shopify.placeholder.clientIdKeep":"Client ID on file — enter a new one to replace",
"shopify.setup.scope.read_productsWhy":"Znajdowanie istniejących produktów po SKU przed aktualizacją",
"shopify.setup.scope.read_orders":"read_orders",
"shopify.setup.scope.read_ordersWhy":"Import zamówień do Descrybe (przychodzący)",
"shopify.setup.step1":"Jeśli łączyłeś Shopify przed migracją platformy: utwórz nową aplikację Dev Dashboard (lub połącz ponownie świeżym tokenem legacy) — stare zapisane sekrety nie są przenoszone.",
"shopify.setup.step2.before":"Open the",
"shopify.setup.step2.path":"Shopify Dev Dashboard",
"shopify.setup.step2.after":"→ Apps → Create app → Start from Dev Dashboard (or use the deep link below).",
"shopify.setup.step3.before":"Create a version: set App URL (default home is fine for API-only), add scopes",
"shopify.setup.step3.after":".",
"shopify.setup.step4.before":"From the app Home tab,",
"shopify.setup.step4.after":"on your store (merchant must approve scopes).",
"shopify.testHint":"Najpierw zapisz domenę sklepu i token, potem uruchom Testuj połączenie. Udany test potwierdza token i zakresy przed kolejkowaniem sync.",
"shopify.overwriteBodyCount":"To ustawia w kolejce wychodzący push produktów. {count} wcześniej powiązany(ch) produkt(ów) Shopify może zostać zaktualizowany treścią Descrybe.",
"shopify.overwriteBody":"To ustawia w kolejce wychodzący push produktów. Pasujące produkty Shopify mogą zostać zaktualizowane treścią Descrybe.",
"shopify.ordersDesc":"Shopify → Descrybe — pobiera zamówienia i pozycje do Descrybe (nie zapisuje z powrotem do Shopify).",
"shopify.ordersNeedsReconnect":"Import zamówień nie może działać, dopóki dane logowania nie zostaną ponownie połączone po migracji. W zakładce Połączenie: Zapisz, potem Przetestuj połączenie.",
"shopify.notes.productsBody":"— przetworzone produkty Descrybe są tworzone lub aktualizowane w Shopify (dopasowanie SKU przez GraphQL, gdy brak cache’owanego id produktu Shopify). Re-sync może nadpisać pasujące pola zdalne.",
"shopify.notes.ordersBody":"— pobrane do raportów i przyszłych procesów audience.",
"shopify.notes.reviewsLabel":"Recenzje",
"shopify.notes.reviewsBody":"-- not wsparcieed. Shopify has no first-party produkt reviews Admin API (third-party review apps are out of scope here).",
"shopify.notes.encryption.before":"Tokeny are encrypted at rest with",
"woo.title":"Integracja WooCommerce",
"woo.description":"Create a WordPress REST API key, connect your store, then push products (Descrybe → WooCommerce) and pull orders/reviews (WooCommerce → Descrybe).",
"woo.allStores":"Wszystkie sklepy",
"woo.adminOnly":"Tylko administratorzy firmy mogą zmieniać połączenie i mapowanie WooCommerce. Synchronizacja i przeglądanie pozostają dostępne.",
"woo.enterCredentials":"Wprowadź poświadczenia",
"woo.noCredentials":"Brak danych WooCommerce. Podaj URL sklepu, utwórz w WordPress klucz REST API Read/Write, wklej Consumer Key i Secret, potem Zapisz i Przetestuj połączenie. Po migracji platformy stare sekrety nie są przenoszone — połącz ponownie świeżym kluczem.",
"woo.noCredentialsMember":"Brak danych WooCommerce. Poproś administratora firmy o podłączenie sklepu. Sync, zamówienia i recenzje będą dostępne po zapisaniu i teście połączenia.",
"woo.setupDesc":"Follow these steps to create a WooCommerce REST API key in WordPress and connect it here. Descrybe never creates keys on your store for you.",
"woo.setup.step1":"Jeśli łączyłeś WooCommerce przed migracją platformy: utwórz nowy klucz REST API — stare zapisane dane nie są użyteczne.",
"woo.setup.step2.before":"Enter your store",
"woo.setup.step2.path":"HTTPS URL",
"woo.setup.step2.after":"in the form below (example: https://yourstore.com).",
"woo.overwriteBodyCount":"To ustawia w kolejce wychodzący push produktów. {count} wcześniej powiązany(ch) produkt(ów) WooCommerce może zostać zaktualizowany treścią Descrybe.",
"woo.overwriteBody":"To ustawia w kolejce wychodzący push produktów. Pasujące produkty WooCommerce mogą zostać zaktualizowane treścią Descrybe.",
"woo.connectionTitle":"Store connection",
"woo.connectionDesc":"Paste your store URL and a Read/Write REST API key pair. Save, then Test Connection before queuing syncs.",
"woo.ordersDesc":"WooCommerce → Descrybe — pobiera zamówienia i pozycje do Descrybe (nie zapisuje z powrotem do sklepu).",
"woo.ordersNeedsReconnect":"Import zamówień nie może działać, dopóki dane logowania nie zostaną ponownie połączone po migracji. W zakładce Połączenie: Zapisz, potem Przetestuj połączenie.",
"woo.syncSettingsTitle":"Ustawienia sync",
"woo.syncSettingsDesc":"Skonfiguruj, jak produkty są wypychane Descrybe → WooCommerce",
"woo.matchStrategy":"Produkt Matching Strategy",
"woo.matchStrategyHelp":"Wypychanie produktów (Descrybe → WooCommerce) dopasowuje produkty zdalne po SKU lub EAN/GTIN. Kolejkuj sync z karty Połączenie (ręcznie).",
"products.edit.coverageTitle":"Ile spośród Nazwa, Opis, Atrybuty i Kategoria jest obecnych (feed lub przetworzone).",
"products.edit.coverageReady":"{count}/4 gotowe",
"products.edit.eprelPresentTitle":"Id European Product Registry for Energy Labelling (EPREL) jest obecne na tym produkcie.",
"products.edit.noEprelBadge":"Brak EPREL",
"products.edit.specsBadge":"Specyfikacje",
"products.edit.reviewBannerTitle":"Przejrzyj wzbogacone pola przed akceptacją",
"products.edit.reviewBannerHelp":"Użyj karty Przegląd, aby porównać oryginały z AI. Skróty: A akceptuj · R odrzuć · Alt+1/2 pole · ⌘/Ctrl+Enter zaakceptuj wszystko.",
"products.edit.noAttrsYet":"No atrybut or specification data on this produkt yet.",
"products.edit.fromFeed":"Z feedu",
"products.edit.feedAttrsHelp":"Wartości sparsowane z feedu (specyfikacje HTML, gwarancja, wymiary, EPREL). Klucze są łączone z attribute_key, gdy to możliwe.",
"products.edit.editableAttributesHelp":"Zmiany zapisują się w mapie atrybutów produktu. Wiersze feedu i AI poniżej pozostają jako odniesienie, gdy się różnią.",
"categories.aiInstructionsBody":"Napisz jedno jasne zadanie na sekcję (co uwzględnić, ton, długość). Niejasne prompt’y dają niejasny tekst.",
"categories.exportIdsHeading":"ID eksportu",
"categories.exportIdsBody":"Opcjonalne ID mapują sekcję do feedów eksportu (na przykład short_description).",
"categories.assignDescCopyHelp":"Użyj Przypisz, aby skopiować ten szablon do innych kategorii o tej samej strukturze.",
"categories.descriptionFormulaInvalid":"Ta strona formuły opisu wymaga prawidłowej kategorii. Wróć do kategorii i ponownie otwórz Edytuj formułę opisu.",
"categories.aiPromptOverrides":"Zastępuje firmowy prompt użytkownika ulepszania produktu dla {name}",
"categories.promptTemplate":"Szablon promptu",
"categories.promptTemplateHelp":"Używaj placeholderów jak {{name}} i {{description}}. Zostaw puste, aby użyć domyślnego firmowego z Integracje → AI.",
"categories.clear":"Wyczyść",
"categories.promptLabel":"Prompt",
"categories.charactersCount":"{count} znaków",
"categories.activeOverride":"· aktywne nadpisanie dla tej kategorii",
"categories.usingCompanyDefault":"· używane domyślne firmowe / wbudowane",
"categories.usingCompanyDefaultForLang":"· puste dla tego języka — obowiązuje domyślny firmy / wbudowany",
"categories.aiPromptSavedLang":"Zapisano prompt AI dla {lang}.",
"categories.aiPromptClearedLang":"Wyczyszczono prompt AI dla {lang} (zastosuje się domyślny firmy).",
"contentLang.switcherLabel":"Język treści",
"contentLang.primary":"główny",
"contentLang.hasOverride":"własny",
"contentLang.addLanguage":"Dodaj język…",
"contentLang.add":"Dodaj",
"contentLang.removeLanguage":"Usuń {lang}",
"contentLang.resultsHint":"Przełącz język, aby sprawdzić tytuły i opisy AI dla każdego języka treści.",
"contentLang.settingsTitle":"Języki treści",
"contentLang.settingsHelp":"Język główny jest używany domyślnie. Dodatkowe języki mają własne prompty i wyniki AI (każde uruchomienie zużywa kredyty).",
"ai.prompts.languageHelp":"Edytuj prompty firmowe według języka treści. Pusty język używa wbudowanej wartości domyślnej dla tego języka.",
"header.accountSettingsAria":"Ustawienia konta dla {email}",
"products.enrichment.resetTitle":"Zresetować do nieprzetworzonego?",
"products.selectedOnPage":"Wybrano {count} na tej stronie",
"products.selectionPageOnly":"Pokazano {shown} z {total} — wybór tylko na tej stronie",
"products.edit.coverageHint":"Ile spośród Nazwa, Opis, Atrybuty i Kategoria jest obecnych (feed lub przetworzone).",
"products.edit.noEprelShort":"Brak EPREL",
"products.edit.specs":"Specyfikacje",
"products.edit.reviewBannerBody":"Użyj karty Przegląd, aby porównać oryginały z AI. Skróty: A akceptuj · R odrzuć · Alt+1/2 pole · ⌘/Ctrl+Enter zaakceptuj wszystko.",
"products.edit.whatsFilled":"Co jest wypełnione",
"products.edit.legend":"Szary = brak · Pomarańczowy = z feedu · Zielony = przetworzone",
"products.edit.noMappedFields":"No mapped feed fields on this produkt.",
"products.edit.emptyBadge":"Puste",
"products.edit.coreBadge":"Rdzeń",
"products.edit.feedAttrsHint":"Wartości sparsowane z feedu (specyfikacje HTML, gwarancja, wymiary, EPREL). Klucze są łączone z attribute_key, gdy to możliwe.",
"products.edit.aiAttrs":"Atrybuty AI / wzbogacone",
"mapping.confidence.exact":"Dokładne",
"mapping.confidence.alias":"Alias",
"mapping.confidence.fuzzy":"Przybliżone",
"field.group.basic":"Informacje podstawowe",
"field.group.pricing":"Ceny",
"field.group.media":"Media",
"field.group.taxonomy":"Taksonomia",
"field.group.inventory":"Magazyn",
"field.group.attributes":"Atrybuty",
"field.group.shipping":"Wysyłka",
"field.group.compliance":"Zgodność",
"field.group.other":"Inne",
"common.yes":"Tak",
"common.no":"Nie",
"status.running":"Uruchomione",
"flash.admin.analyticsLoadFailed":"Nie udało się wczytać analityki",
"flash.admin.diagnosticsLoadFailed":"Nie udało się wczytać diagnostyki",
"flash.admin.diagnosticsUnavailable":"Diagnostyka nie jest dostępna w tym wdrożeniu. Skontaktuj się z administratorem platformy.",
"flash.admin.diagnosticsUnreachable":"Nie można połączyć się z API diagnostyki. Sprawdź, czy API działa i czy PUBLIC_API_URL / proxy Vite na nie wskazują.",
"admin.charts.statusEmpty":"Brak wierszy w tym podziale.",
"admin.charts.seriesEmpty":"Brak danych w tym okresie.",
"admin.diagnostics.etlInventoryTitle":"ETL gap inventory",
"admin.diagnostics.etlInventoryHint":"Read-only COUNTs — no fake import. Blob bytes and default job history stay unmigrated unless ops ran optional domain jobs.",
"categories.aiPromptSavedForCategory":"Dla tej kategorii zapisano prompt generowania AI.",
"categories.titleAndDescriptionFormulasSaved":"Formuły tytułu i opisu są zapisane dla tej kategorii.",
"categories.titleFormulaSavedForCategory":"Dla tej kategorii zapisano formułę tytułu.",
"categories.descriptionFormulaSavedForCategory":"Dla tej kategorii zapisano formułę opisu.",
"site.account":"Konto",
"site.goToApp":"Przejdź do aplikacji",
"site.logIn":"Zaloguj się",
"site.getStarted":"Zacznij",
"site.nav.primary":"Główna",
"site.nav.mobile":"Mobilna",
"site.nav.home":"Strona główna",
"site.nav.pricing":"Cennik",
"site.nav.apiDocs":"Dokumentacja API",
"seo.home.title":"Descrybe — Przekształć feedy dostawców w gotowe karty produktów",
"seo.home.description":"Podłącz feedy CSV lub XML dostawców, przypisz je do swoich kategorii i atrybutów, generuj tytuły i opisy według swoich reguł oraz eksportuj lub synchronizuj z WooCommerce.",
"seo.pricing.title":"Cennik — Free, Starter, Growth, Business | Descrybe",
"seo.pricing.description":"Zacznij za darmo z 100 produktami i mapowaniem feedów. Plany płatne dodają tytuły i opisy AI, więcej SKU, feedy eksportowe i sync WooCommerce — od 49 $/mies. Enterprise dla nieograniczonych katalogów.",
"seo.privacy.description":"Jak Descrybe zbiera, wykorzystuje i chroni dane konta, katalogi produktów oraz feedy dostawców podczas korzystania z naszej platformy danych produktowych.",
"seo.terms.description":"Warunki korzystania z Descrybe: import feedów, wzbogacanie katalogu, treści wspierane przez AI, eksporty oraz synchronizacja z WooCommerce dla Twojej firmy.",
"seo.features.title":"Funkcje — Feedy, wzbogacanie i eksport | Descrybe",
"seo.features.description":"Dowiedz się, jak Descrybe importuje feedy dostawców, mapuje pola na Twoją taksonomię, wzbogaca dane produktów i dostarcza katalogi przez feedy eksportowe, WooCommerce lub API.",
"pricing.page.eyebrow":"Cennik",
"pricing.page.title":"Proste plany dla rosnących katalogów",
"pricing.page.lead":"Zacznij za darmo od mapowania feedów i podstawowego czyszczenia. Ulepsz, gdy potrzebujesz tytułów i opisów AI, większej liczby produktów, feedów eksportu lub synchronizacji WooCommerce — od Starter do Enterprise.",
"legal.privacy.intro.p1":"W Descrybe (\"my\", \"nasz\" lub \"nas\") szanujemy Twoją prywatność i zobowiązujemy się chronić Twoje dane osobowe. Niniejsza Polityka prywatności wyjaśnia, w jaki sposób zbieramy, wykorzystujemy, ujawniamy i chronimy Twoje informacje, gdy korzystasz z platformy danych produktowych Descrybe oraz powiązanych usług (łącznie: \"Usługi\").",
"legal.privacy.intro.p2":"Uzyskując dostęp do naszych Usług lub korzystając z nich, akceptujesz praktyki opisane w niniejszej Polityce prywatności. Jeśli nie zgadzasz się z politykami i praktykami tutaj opisanymi, nie korzystaj z naszych Usług.",
"legal.privacy.collect.h":"Informacje, które zbieramy",
"legal.privacy.collect.lead":"Zbieramy różne rodzaje informacji od użytkowników i o użytkownikach naszych Usług, w tym:",
"legal.privacy.collect.personal.p":"Podczas rejestracji konta zbieramy informacje, które mogą służyć do Twojej identyfikacji, takie jak imię i nazwisko, adres e-mail, numer telefonu, nazwa firmy oraz dane rozliczeniowe. Zbieramy te informacje bezpośrednio od Ciebie, gdy nam je przekazujesz.",
"legal.privacy.collect.userData.p":"W celu świadczenia naszych Usług zbieramy i przetwarzamy dane produktów, feedy dostawców, opisy produktów oraz inne treści, które ładujesz, wprowadzasz lub w inny sposób przesyłasz na naszą platformę. Może to obejmować atrybuty produktów, struktury taksonomii, szablony oraz inne dane niezbędne do działania naszych Usług.",
"legal.privacy.collect.usage.h":"Informacje o użytkowaniu",
"legal.privacy.collect.usage.p":"Automatycznie zbieramy pewne informacje o Twoim urządzeniu oraz o tym, jak korzystasz z naszych Usług, w tym adres IP, typ urządzenia, typ przeglądarki, system operacyjny, godziny dostępu, wyświetlone strony, używane funkcje oraz inną aktywność systemu. Wykorzystujemy te informacje do ulepszania naszych Usług i doświadczenia użytkownika.",
"legal.privacy.collect.cookies.h":"Pliki cookie i technologie śledzące",
"legal.privacy.collect.cookies.p":"Używamy plików cookie, web beaconów oraz podobnych technologii śledzących do zbierania informacji o Twojej aktywności przeglądania na naszej stronie. Możesz kontrolować pliki cookie za pomocą ustawień przeglądarki i innych narzędzi. Należy jednak pamiętać, że zablokowanie niektórych plików cookie może uniemożliwić korzystanie ze wszystkich funkcji naszych Usług.",
"legal.privacy.use.lead":"Wykorzystujemy zbierane informacje do różnych celów, w tym:",
"legal.privacy.use.li1":"Świadczenia, utrzymania i ulepszania naszych Usług",
"legal.privacy.use.li2":"Przetwarzania transakcji oraz wysyłania powiązanych informacji, w tym potwierdzeń, faktur i powiadomień serwisowych",
"legal.privacy.use.li3":"Opracowywania nowych produktów, usług, funkcji i funkcjonalności",
"legal.privacy.use.li4":"Personalizacji Twojego doświadczenia oraz dostarczania treści i funkcji odpowiadających Twoim zainteresowaniom",
"legal.privacy.use.li5":"Odpowiadania na Twoje prośby, uwagi i pytania",
"legal.privacy.use.li6":"Wysyłania Ci powiadomień technicznych, aktualizacji, alertów bezpieczeństwa oraz komunikatów wsparcia i administracyjnych",
"legal.privacy.use.li7":"Monitorowania i analizy trendów, użytkowania oraz aktywności w związku z naszymi Usługami",
"legal.privacy.use.li8":"Wykrywania, badania i zapobiegania transakcjom oszukańczym oraz innym nielegalnym działaniom",
"legal.privacy.use.li9":"Ochrony naszych praw, własności i bezpieczeństwa, a także praw, własności i bezpieczeństwa naszych użytkowników lub innych osób",
"legal.privacy.use.li10":"Wypełniania obowiązków prawnych oraz egzekwowania naszego regulaminu świadczenia usług",
"legal.privacy.ai.h":"AI i uczenie maszynowe",
"legal.privacy.ai.p1":"Nasze Usługi wykorzystują technologie sztucznej inteligencji i uczenia maszynowego do przetwarzania danych produktów, generowania treści oraz oferowania innych funkcji automatycznych. Dane, które przekazujesz naszym Usługom, mogą być wykorzystywane do trenowania i ulepszania naszych modeli AI. Stosujemy jednak odpowiednie zabezpieczenia w celu ochrony Twoich danych i zachowania ich poufności.",
"legal.privacy.ai.p2":"Nie wykorzystujemy informacji umożliwiających identyfikację osoby do trenowania naszych ogólnych modeli AI bez Twojej wyraźnej zgody. Dane produktów wykorzystywane do trenowania AI są anonimizowane i agregowane, o ile jest to możliwe.",
"legal.privacy.share.providers.p":"Możemy udostępniać Twoje informacje zewnętrznym dostawcom, usługodawcom, wykonawcom lub agentom, którzy świadczą usługi w naszym imieniu, takie jak przetwarzanie płatności, analiza danych, wysyłka e-maili, hosting, obsługa klienta oraz wsparcie marketingowe.",
"legal.privacy.share.transfers.p":"Jeśli uczestniczymy w fuzji, przejęciu, finansowaniu, reorganizacji, upadłości lub sprzedaży aktywów przedsiębiorstwa, Twoje informacje mogą zostać przekazane w ramach takiej transakcji. Poinformujemy Cię o wszelkich takich zmianach własności lub kontroli nad Twoimi danymi osobowymi.",
"legal.privacy.share.legal.h":"Wymogi prawne",
"legal.privacy.share.legal.p":"Możemy ujawnić Twoje informacje, jeśli wymaga tego prawo lub w odpowiedzi na ważne wnioski organów publicznych (np. sądu lub organu rządowego). Możemy również ujawnić Twoje informacje w celu egzekwowania naszego regulaminu świadczenia usług, ochrony naszych praw, prywatności, bezpieczeństwa lub własności i/lub praw, prywatności, bezpieczeństwa lub własności naszych podmiotów powiązanych, użytkowników lub innych osób.",
"legal.privacy.share.consent.h":"Za Twoją zgodą",
"legal.privacy.share.consent.p":"Możemy udostępniać Twoje informacje stronom trzecim, gdy wyraziłeś na to zgodę.",
"legal.privacy.security.p1":"Wdrożyliśmy odpowiednie środki techniczne i organizacyjne zaprojektowane w celu ochrony Twoich danych osobowych przed przypadkową utratą oraz przed nieuprawnionym dostępem, wykorzystaniem, zmianą i ujawnieniem. Wszystkie informacje, które nam przekazujesz, są przechowywane na bezpiecznych serwerach za zaporami sieciowymi.",
"legal.privacy.security.p2":"Bezpieczeństwo Twoich informacji zależy również od Ciebie. Gdy udostępniliśmy Ci (lub gdy wybrałeś) hasło umożliwiające dostęp do określonych części naszych Usług, jesteś odpowiedzialny za zachowanie poufności tego hasła. Prosimy, abyś nie udostępniał swojego hasła nikomu.",
"legal.privacy.security.p3":"Niestety, przesyłanie informacji przez Internet nie jest całkowicie bezpieczne. Chociaż dokładamy wszelkich starań, aby chronić Twoje dane osobowe, nie możemy zagwarantować bezpieczeństwa danych osobowych przesyłanych do naszych Usług. Wszelkie przesyłanie danych osobowych odbywa się na Twoje własne ryzyko.",
"legal.privacy.rights.h":"Twoje prawa i opcje",
"legal.privacy.rights.lead":"Staramy się zapewniać Ci wybór w zakresie danych osobowych, które nam przekazujesz. W zależności od Twojej lokalizacji możesz mieć określone prawa dotyczące swoich danych osobowych, w tym:",
"legal.privacy.rights.li1":"Dostęp do swoich danych osobowych i ich aktualizacja",
"legal.privacy.rights.li2":"Żądanie usunięcia swoich danych osobowych",
"legal.privacy.rights.li3":"Sprzeciw lub ograniczenie przetwarzania swoich danych osobowych",
"legal.privacy.rights.li4":"Przenoszenie danych",
"legal.privacy.rights.li5":"Wycofanie zgody (gdy ma zastosowanie)",
"legal.privacy.rights.footer":"Aby skorzystać ze swoich praw, skontaktuj się z nami, korzystając z danych kontaktowych podanych na końcu niniejszej Polityki prywatności. Należy pamiętać, że niektóre z tych praw mogą być ograniczone lub nie mieć zastosowania w zależności od Twojej lokalizacji i konkretnych okoliczności.",
"legal.privacy.retention.p1":"Będziemy przechowywać Twoje dane osobowe przez okres niezbędny do realizacji celów opisanych w niniejszej Polityce prywatności, chyba że prawo wymaga lub zezwala na dłuższy okres przechowywania. Przy ustalaniu czasu przechowywania Twoich informacji bierzemy pod uwagę ilość, charakter i wrażliwość informacji, potencjalne ryzyko szkody wynikające z nieuprawnionego wykorzystania lub ujawnienia, cele przetwarzania oraz obowiązujące wymogi prawne.",
"legal.privacy.retention.p2":"Możemy przechowywać pewne informacje po zamknięciu Twojego konta, między innymi w celu wypełnienia naszych obowiązków prawnych, rozstrzygania sporów oraz egzekwowania naszych umów.",
"legal.privacy.intl.p1":"Twoje dane osobowe mogą być przekazywane i przetwarzane w krajach innych niż kraj, w którym mieszkasz. Takie kraje mogą mieć inne przepisy o ochronie danych niż Twój kraj.",
"legal.privacy.intl.p2":"Jeśli przekazujemy Twoje dane osobowe do krajów poza Europejskim Obszarem Gospodarczym lub innych regionów z kompleksowymi przepisami o ochronie danych, zapewnimy odpowiednie zabezpieczenia chroniące Twoje dane osobowe oraz zgodność transferu z obowiązującymi przepisami o ochronie danych.",
"legal.privacy.children.h":"Prywatność osób niepełnoletnich",
"legal.privacy.children.p":"Nasze Usługi nie są przeznaczone dla osób poniżej 16. roku życia i nie zbieramy świadomie danych osobowych od osób poniżej 16. roku życia. Jeśli odkryjemy, że zebraliśmy lub otrzymaliśmy dane osobowe od osoby poniżej 16. roku życia bez weryfikacji zgody rodzicielskiej, usuniemy te informacje. Jeśli uważasz, że możemy posiadać informacje od lub o osobie poniżej 16. roku życia, skontaktuj się z nami.",
"legal.privacy.changes.h":"Zmiany w naszej Polityce prywatności",
"legal.privacy.changes.p1":"Możemy od czasu do czasu aktualizować naszą Politykę prywatności. Jeśli wprowadzimy istotne zmiany w sposobie przetwarzania danych osobowych użytkowników, powiadomimy Cię e-mailem na adres wskazany na Twoim koncie i/lub poprzez powiadomienie na naszej stronie internetowej.",
"legal.privacy.changes.p2":"Data ostatniej aktualizacji Polityki prywatności jest wskazana w górnej części strony. Jesteś odpowiedzialny za zapewnienie, że dysponujemy aktualnym, aktywnym i możliwym do doręczenia adresem e-mail, oraz za okresowe odwiedzanie naszej strony internetowej i niniejszej Polityki prywatności w celu sprawdzenia zmian.",
"legal.privacy.contact.h":"Kontakt",
"legal.privacy.contact.lead":"Jeśli masz pytania lub wątpliwości dotyczące naszej Polityki prywatności lub naszych praktyk w zakresie danych, skontaktuj się z nami pod adresem:",
"legal.terms.s1.p":"Uzyskując dostęp do platformy danych produktowych Descrybe oraz powiązanych usług (łącznie: \"Usługi\") lub korzystając z nich, zgadzasz się na związanie niniejszym Regulaminem świadczenia usług oraz wszystkimi obowiązującymi przepisami prawa. Jeśli nie zgadzasz się z którymkolwiek z tych warunków, korzystanie z Usług lub dostęp do nich jest zabroniony.",
"legal.terms.s2.h":"2. Licencja na korzystanie",
"legal.terms.s2.p1":"Z zastrzeżeniem przestrzegania niniejszego Regulaminu świadczenia usług, Descrybe udziela Ci ograniczonej, niewyłącznej, niezbywalnej i odwołalnej licencji na dostęp do Usług i korzystanie z nich w celach biznesowych.",
"legal.terms.s2.lead":"Niniejsza licencja nie obejmuje:",
"legal.terms.s2.li1":"Modyfikowania lub kopiowania Usług ani jakichkolwiek ich treści",
"legal.terms.s2.li2":"Korzystania z Usług w jakimkolwiek celu komercyjnym innym niż autoryzowane korzystanie biznesowe",
"legal.terms.s2.li3":"Próby dekompilacji lub inżynierii wstecznej jakiegokolwiek oprogramowania zawartego w Usługach",
"legal.terms.s2.li4":"Usuwania jakichkolwiek informacji o prawach autorskich lub własności z materiałów",
"legal.terms.s2.li5":"Przekazywania materiałów innej osobie lub \"odzwierciedlania\" materiałów na jakimkolwiek innym serwerze",
"legal.terms.s2.p2":"Niniejsza licencja wygaśnie automatycznie w przypadku naruszenia któregokolwiek z tych ograniczeń i może zostać wypowiedziana przez Descrybe w dowolnym momencie.",
"legal.terms.s3.h":"3. Subskrypcja i płatność",
"legal.terms.s3.p1":"Dostęp do Usług może wymagać płatnej subskrypcji. Warunki płatności zostaną określone w trakcie procesu subskrypcji. Wszystkie płatności są bezzwrotne, chyba że Descrybe określi inaczej na piśmie.",
"legal.terms.s3.p2":"Descrybe zastrzega sobie prawo do zmiany opłat abonamentowych z rozsądnym wyprzedzeniem. Dalsze korzystanie z Usług po zmianie opłaty stanowi akceptację nowych opłat.",
"legal.terms.s4.h":"4. Treści użytkownika",
"legal.terms.s4.p1":"Zachowujesz wszystkie prawa do wszelkich treści, które przesyłasz, publikujesz lub wyświetlasz w Usługach lub za ich pośrednictwem (\"Treści użytkownika\"). Przekazując Treści użytkownika do Descrybe, udzielasz Descrybe światowej, niewyłącznej i nieodpłatnej licencji na używanie, reprodukowanie, modyfikowanie, adaptowanie, publikowanie, tłumaczenie i dystrybucję takich treści w związku ze świadczeniem Usług.",
"legal.terms.s4.lead":"Oświadczasz i gwarantujesz, że:",
"legal.terms.s4.li1":"Posiadasz lub kontrolujesz wszystkie prawa do Treści użytkownika, które przekazujesz",
"legal.terms.s4.li2":"Treści użytkownika nie naruszają niniejszego Regulaminu świadczenia usług",
"legal.terms.s4.li3":"Treści użytkownika nie spowodują szkody żadnej osobie ani podmiotowi",
"legal.terms.s5.h":"5. Sztuczna inteligencja",
"legal.terms.s5.p1":"Usługi wykorzystują technologie sztucznej inteligencji i uczenia maszynowego. Przyjmujesz do wiadomości, że treści generowane przez AI mogą nie być doskonałe, i zgadzasz się przeglądać wszystkie treści generowane przez AI przed ich wykorzystaniem w swojej działalności.",
"legal.terms.s5.p2":"Descrybe może wykorzystywać zanonimizowane i zagregowane Treści użytkownika do trenowania i ulepszania naszych modeli AI, z zastrzeżeniem naszej Polityki prywatności. Możesz zrezygnować z wykorzystywania swoich danych do trenowania AI, kontaktując się z nami.",
"legal.terms.s6.h":"6. Własność intelektualna",
"legal.terms.s6.p":"Usługi oraz ich oryginalna treść, funkcje i funkcjonalność są własnością Descrybe i są chronione międzynarodowymi przepisami o prawie autorskim, znakach towarowych, patentach, tajemnicach handlowych oraz innymi prawami własności intelektualnej lub prawami własności.",
"legal.terms.s7.h":"7. Wyłączenie gwarancji",
"legal.terms.s7.p1":"Usługi są świadczone \"tak jak są\" i \"w miarę dostępności\". Descrybe nie składa żadnych gwarancji, wyraźnych ani dorozumianych, i niniejszym zrzeka się wszelkich gwarancji, w tym — bez ograniczeń — dorozumianych gwarancji przydatności handlowej, przydatności do określonego celu, braku naruszeń lub przebiegu realizacji.",
"legal.terms.s7.p2":"Descrybe nie gwarantuje, że Usługi będą działać w sposób nieprzerwany, bezpieczny lub dostępny w określonym czasie lub miejscu, ani że błędy lub wady zostaną naprawione.",
"legal.terms.s8.lead":"W żadnym wypadku Descrybe nie ponosi odpowiedzialności za szkody pośrednie, przypadkowe, szczególne, wtórne lub karne, w tym — bez ograniczeń — utratę zysków, danych, użytkowania, wartości firmy lub inne straty niematerialne, wynikające z:",
"legal.terms.s8.li1":"Twojego dostępu do Usług lub korzystania z nich albo niemożności uzyskania dostępu lub korzystania z Usług",
"legal.terms.s8.li2":"Jakiegokolwiek postępowania lub treści osób trzecich w Usługach",
"legal.terms.s8.li3":"Jakichkolwiek treści uzyskanych z Usług",
"legal.terms.s8.li4":"Nieuprawnionego dostępu, wykorzystania lub zmiany Twoich transmisji lub treści",
"legal.terms.s9.h":"9. Rozwiązanie",
"legal.terms.s9.p1":"Descrybe może natychmiast zakończyć lub zawiesić Twój dostęp do Usług, bez wcześniejszego powiadomienia i bez odpowiedzialności, z dowolnego powodu, w tym — bez ograniczeń — w przypadku naruszenia niniejszego Regulaminu świadczenia usług.",
"legal.terms.s9.p2":"Po rozwiązaniu Twoje prawo do korzystania z Usług ustaje natychmiast. Jeśli chcesz zakończyć swoje konto, możesz po prostu zaprzestać korzystania z Usług lub skontaktować się z nami w celu żądania usunięcia konta.",
"legal.terms.s10.h":"10. Prawo właściwe",
"legal.terms.s10.p":"Niniejsze Warunki podlegają prawu Słowenii i będą interpretowane zgodnie z nim, bez względu na zasady kolizji praw.",
"legal.terms.s11.h":"11. Zmiany warunków",
"legal.terms.s11.p":"Descrybe zastrzega sobie prawo do zmiany lub zastąpienia niniejszego Regulaminu świadczenia usług w dowolnym momencie. Twoim obowiązkiem jest okresowe sprawdzanie niniejszych Warunków pod kątem zmian. Dalsze korzystanie z Usług po opublikowaniu jakichkolwiek zmian stanowi akceptację tych zmian.",
"legal.terms.s12.h":"12. Kontakt",
"legal.terms.s12.lead":"Jeśli masz pytania dotyczące niniejszego Regulaminu świadczenia usług, skontaktuj się z nami pod adresem:",
"plans.loadFailed":"Nie udało się załadować planów",
"plans.loading":"Ładowanie planów…",
"plans.apiUnavailable":"API planów nie jest jeszcze dostępne w tym backendzie. Wyświetlamy publiczne porównanie cen.",
"plans.title":"Wybierz swój plan",
"plans.sub.onPrefix":"Jesteś na planie",
"plans.sub.enterpriseSuffix":"— nieograniczone produkty i AI. Nie jest potrzebny upgrade w trybie samoobsługowym.",
"plans.sub.paygSuffix":"— płatność według użycia. Porównaj publiczne plany poniżej lub skontaktuj się z działem sprzedaży w sprawie Enterprise.",
"plans.sub.creditsSuffix":"Ulepsz Starter → Growth → Business przez Checkout lub skontaktuj się z działem sprzedaży w sprawie Enterprise.",
"plans.sub.none":"Nie przypisano jeszcze planu (np. po pominiętej migracji). Wybierz plan poniżej — pojemność nie jest Nieograniczona, dopóki Checkout lub administrator nie przypisze planu.",
"plans.stripeHint":"Upgrade'y samoobsługowe korzystają ze Stripe Checkout.",
"plans.checkoutUnavailable":"Checkout samoobslugowy jest niedostepny, dopoki Stripe nie zostanie skonfigurowany. Skontaktuj sie ze sprzedaza, aby uzyskac plan.",
"plans.planApplied":"Plan {plan} zastosowany. Twoje kredyty są gotowe.",
"plans.faq.title":"Często zadawane pytania",
"plans.faq.limit.q":"Co się stanie, gdy osiągnę limit?",
"plans.faq.limit.a":"Najpierw zobaczysz łagodne ostrzeżenia. Gdy skończą Ci się kredyty AI lub osiągniesz limit SKU, zadania wymagające tej pojemności są blokowane, dopóki nie zwolnisz miejsca, nie poczekasz na kolejny cykl lub nie ulepszysz planu.",
"plans.faq.selfServe.a":"Administratorzy firmy mogą samodzielnie wykupić Starter, Growth i Business przez Checkout na karcie planu. Członkowie muszą poprosić administratora — Checkout wymaga roli administratora. Enterprise zawsze idzie przez sprzedaż. Administratorzy platformy nadal mogą przypisywać plany w Billing Admin.",
"plans.faq.enterprise.q":"Enterprise i miliony SKU",
"plans.faq.enterprise.a":"Indywidualna pojemność, własny klucz AI (BYOK), SLA i zarządzanie kontem idą przez sprzedaż. Zarezerwuj termin w Calendly — Enterprise nie jest samoobsługowe przy skali milionów SKU. Aplikacja pokazuje Nieograniczone dla pojemności SKU i AI.",
"plans.faq.pricing.q":"Gdzie jest publiczny cennik?",
"ai.providerMode.desc":"Platforma używa kredytów Descrybe i naszego klucza. Popularny lub Niestandardowy używa Twojego klucza zgodnego z OpenAI (samo wywołanie dostawcy nie zużywa kredytów platformy; reguły kredytów funkcji nadal obowiązują).",
"seo.description":"Wyniki checklisty dla meta katalogu, tytułów, obrazów i słów kluczowych. Wypełnianie szablonem jest darmowe; przepisanie AI jest płatne.",
"seo.upgradeTitle":"Przepisanie AI to funkcja płatna",
"seo.upgradeMessage":"Plany Free nadal mogą uzupełniać brakujące meta szablonami opartymi na regułach. Ulepsz plan lub dodaj kredyty, aby używać przepisań AI.",
"seo.comparePlans":"Porównaj plany",
"seo.openProducts":"Otwórz produkty",
"seo.overallScore":"Ogólny wynik SEO",
"seo.overallScoreHint":"Średnia z elementów checklisty",
"seo.productsScanned":"Przeskanowane produkty",
"seo.productsScannedHint":"Przetworzone produkty w firmie",
"seo.noFindings":"Brak ustaleń dla tego filtra — dobra robota.",
"seo.col.issue":"Problem",
"seo.col.entity":"Encja",
"seo.col.severity":"Ważność",
"seo.col.actions":"Akcje",
"seo.filling":"Wypełnianie…",
"seo.templateFill":"Wypełnianie szablonem",
"seo.aiTitleAllowed":"Przepisz z AI (zużywa kredyty)",
"seo.aiTitleGated":"Wymaga płatnego planu lub kredytów",
"seo.rewriting":"Przepisywanie…",
"seo.aiRewriteBtn":"Przepisanie AI",
"seo.viewProduct":"Zobacz produkt",
"seo.flash.loadFailed":"Nie udało się wczytać rekomendacji SEO",
"seo.flash.aiPaid":"Przepisanie AI wymaga płatnego planu lub kredytów.",
"seo.flash.applyFailed":"Nie udało się zastosować poprawki",
"brand.title":"Zestaw marki",
"brand.description":"Zdefiniuj głos, wytyczne i kolory, aby tytuły i opisy produktów pozostały zgodne z marką.",
"brand.loading":"Wczytywanie brand kitu…",
"brand.adminOnly":"Tylko administratorzy firmy mogą edytować brand kit. Możesz przeglądać bieżący głos, kolory i logo.",
"brand.aiApplyFreeAdmin":"Możesz edytować brand kit w planie Free. Zastosowanie AI (wstrzykiwanie głosu marki do promptów enhance) odblokowuje się od Starter wzwyż.",
"brand.aiApplyGated":"Zastosowanie AI (wstrzykiwanie głosu marki do promptów enhance) odblokowuje się od Starter wzwyż.",
"brand.aiEnhanceUses":"Enhance AI użyje tego głosu marki podczas przetwarzania produktów.",
"brand.comparePlans":"Porównaj plany",
"brand.voice.title":"Głos i wytyczne",
"brand.voice.desc":"Ton, reguły do/don’t oraz preferowane sformułowania",
"brand.field.voiceTone":"Głos / ton",
"brand.placeholder.voiceTone":"np. Pewny, zwięzły, techniczny, ale przystępny",
"brand.field.dos":"Do (po jednym w wierszu)",
"brand.placeholder.dos":"Zacznij od głównej korzyści\nUtrzymuj tytuły poniżej 80 znaków",
"brand.field.donts":"Don’t (po jednym w wierszu)",
"brand.placeholder.donts":"Bez WIELKICH LITER\nUnikaj superlatywów bez dowodu",
"brand.field.preferredTerms":"Preferowane terminy (po jednym w wierszu lub rozdzielone przecinkami)",
"brand.placeholder.preferredTerms":"bezprzewodowy, premium, klasa energetyczna",
"brand.visual.title":"Identyfikacja wizualna",
"brand.visual.desc":"Kolory i logo używane w wskazówkach i kampaniach uwzględniających markę",
"brand.field.primaryColor":"Kolor podstawowy",
"brand.field.secondaryColor":"Kolor dodatkowy",
"brand.field.logoImage":"Obraz logo",
"brand.logoHint":"PNG, JPEG lub WebP do 2 MiB. Przechowywane w przesyłanych plikach firmy.",
"brand.uploading":"Przesyłanie…",
"brand.uploadLogo":"Prześlij logo",
"brand.clear":"Wyczyść",
"brand.field.logoUrl":"URL logo",
"brand.placeholder.logoUrl":"https://… lub przesłane /api/brand/logo/files/…",
"brand.logoAlt":"Podgląd logo marki",
"brand.tipsTitle":"Wskazówki formuły / podglądu",
"brand.saving":"Zapisywanie…",
"brand.save":"Zapisz brand kit",
"brand.flash.loadFailed":"Nie udało się wczytać brand kitu",
"structured.intro":"Te pola są tworzone automatycznie, gdy dodasz Export IDs do sekcji formuły opisu. Można ich używać w feedach eksportu, aby uwzględnić konkretne części opisów produktów.",
"structured.addField":"Dodaj pole",
"structured.openCategories":"Otwórz kategorie",
"structured.tableCaption":"Te pola służą do strukturyzowania części opisów produktów na potrzeby eksportu.",
"structured.col.fieldKey":"Klucz pola",
"structured.col.type":"Typ",
"structured.col.created":"Utworzono",
"structured.col.actions":"Akcje",
"structured.dialogTitle":"Dodaj pole opisu strukturalnego",
"structured.fieldKeyLabel":"Klucz pola (wymagany)",
"site.allRightsReserved":"Wszelkie prawa zastrzeżone.",
"site.cookiePolicy":"Polityka cookies",
"site.cookieSettings":"Ustawienia cookies",
"consent.title":"Cookies i analityka",
"consent.description":"Używamy niezbędnych plików cookie, aby Descrybe działał. Opcjonalne cookie analityczne i marketingowe pomagają nam rozumieć użycie i mierzyć kampanie. Możesz zmienić wybór w każdej chwili.",
"consent.acceptAll":"Zaakceptuj wszystkie",
"consent.rejectNonEssential":"Odrzuć nieistotne",
"consent.customize":"Dostosuj",
"consent.save":"Zapisz preferencje",
"consent.necessary":"Niezbędne",
"consent.necessaryDesc":"Wymagane do logowania, bezpieczeństwa (CSRF), motywu, języka i zapamiętania tego wyboru.",
"consent.alwaysOn":"Zawsze włączone",
"consent.analytics":"Analityka",
"consent.analyticsDesc":"Pomaga zrozumieć, jak używany jest produkt (Google Analytics przez GTM).",
"consent.marketing":"Marketing",
"consent.marketingDesc":"Do pomiaru reklam i personalizacji, gdy w GTM skonfigurowano tagi reklamowe.",
"consent.policyLink":"Przeczytaj Politykę cookies",
"seo.cookies.title":"Polityka cookies | Descrybe",
"seo.cookies.description":"Jak Descrybe używa niezbędnych, analitycznych i marketingowych cookies, w tym GTM i GA4, oraz jak zmienić zgodę.",
"legal.cookies.title":"Polityka cookies",
"legal.cookies.intro.h":"Przegląd",
"legal.cookies.intro.p1":"Ta Polityka cookies wyjaśnia, jak Descrybe używa cookies i podobnych technologii w witrynie i aplikacji. Czytaj razem z Polityką prywatności.",
"legal.cookies.intro.p2":"Gdzie to wymagane, prosimy o zgodę przed włączeniem cookies analitycznych lub marketingowych. Niezbędne cookies zapewniają bezpieczną usługę i nie wymagają zgody.",
"legal.cookies.types.h":"Kategorie cookies",
"legal.cookies.necessary.h":"Niezbędne",
"legal.cookies.necessary.p":"Utrzymują sesję, chronią formularze CSRF, zapisują motyw i język oraz zapamiętują wybór cookies. Bez nich produkt nie działa poprawnie.",
"legal.cookies.analytics.h":"Analityka",
"legal.cookies.analytics.p":"Jeśli zezwolisz na analitykę, ładujemy tagi GTM, które mogą ustawiać cookies GA4 do pomiaru stron i zdarzeń. Zdarzenia są blokowane do przyznania analytics_storage.",
"legal.cookies.marketing.h":"Marketing",
"legal.cookies.marketing.p":"Jeśli zezwolisz na marketing, tagi reklamowe w GTM mogą używać pamięci reklam i powiązanych sygnałów do pomiaru i personalizacji.",
"legal.cookies.gtm.h":"Google Tag Manager i GA4",
"legal.cookies.gtm.p":"Gdy skonfigurowano, Descrybe ładuje kontener GTM. GA4 jest konfigurowane w tym kontenerze. Consent Mode v2 domyślnie odmawia magazynowania analytics i ads do akceptacji kategorii.",
"legal.cookies.third.h":"Podmioty trzecie",
"legal.cookies.third.p":"Google (Tag Manager / Analytics) może przy zgodzie przetwarzać dane techniczne (URL, urządzenie/przeglądarka, nazwy zdarzeń). Świadomie nie wysyłamy haseł, kluczy API ani danych kontaktowych w zdarzeniach.",
"legal.cookies.manage.h":"Jak zmienić zgodę",
"legal.cookies.manage.p":"Użyj Ustawień cookies w stopce (lub przycisku poniżej), aby ponownie otworzyć baner. Możesz też wyczyścić dane witryny w przeglądarce.",
"site.privacyPolicy":"Polityka prywatności",
"site.termsOfService":"Warunki korzystania",
"site.legalNav":"Prawne",
"site.footer.aria":"Witryna",
"site.footer.description":"Descrybe zamienia feedy dostawców w czyste katalogi produktów gotowe na kanały — mapuj pola, wzbogacaj atrybuty i teksty ofert, a potem eksportuj lub synchronizuj z WooCommerce.",
"home.hero.tagline":"Dane produktowe dla zespołów ecommerce",
"home.hero.title":"Od feedów dostawców do stron produktów",
"home.hero.lead":"Podłącz feedy dostawców, zmapuj je do swoich kategorii, uzupełnij wymagane atrybuty i pisz tytuły oraz opisy według swoich reguł — potem eksportuj lub synchronizuj ze sklepem.",
"home.hero.learnMore":"Dowiedz się więcej",
"home.hero.apply":"Poproś o dostęp",
"home.hero.supportedBy":"Wspierane przez",
"home.hero.msAlt":"Microsoft for Startups",
"home.image.previewAlt":"Podgląd platformy Descrybe: od feedu do karty produktu",
"home.how.title":"Tak Descrybe oszczędza czas przy wprowadzaniu produktów na rynek",
"home.how.lead":"Zaimportuj bałagan w danych dostawców raz. Descrybe pomaga je kategoryzować, uzupełniać atrybuty, pisać teksty ofert i wysyłać gotowe produkty do Twoich kanałów.",
"home.how.apply":"Poproś o dostęp",
"home.how.step1.title":"Zaimportuj taksonomię",
"home.how.step1.desc":"Skonfiguruj kategorie i atrybuty, których Twój sklep już używa",
"home.how.step1.f1":"Zdefiniuj wymagane atrybuty dla każdej kategorii",
"home.how.step1.f2":"Ustaw formuły tytułów per kategoria",
"home.how.step1.f3":"Ustaw szablony opisu i snippeta wyszukiwania",
"home.how.step2.title":"Zaimportuj dane dostawców",
"home.how.step2.desc":"Podłącz URL feedu lub prześlij plik produktów",
"home.how.step2.f1":"Import z źródeł CSV, XML lub API",
"home.how.step2.f2":"Zaplanuj automatyczne importy od dostawców",
"home.how.step2.f3":"Mapuj pola źródłowe prostym interfejsem przeciągnij i upuść",
"home.how.step3.title":"Przekształć i wzbogać",
"home.how.step3.desc":"Wybierz produkty do przetworzenia i pozwól Descrybe:",
"home.benefits.chart.desc":"Tytuły i opisy, które podkreślają to, na czym zależy kupującym — korzyści, specyfikacje i terminy wyszukiwania z Twojego katalogu.",
"home.benefits.database.title":"Jedna spójna struktura produktu",
"home.benefits.database.desc":"Utrzymuj to samo drzewo kategorii i kształt atrybutów w eksportach i kanałach, by klienci znajdowali produkty tak samo wszędzie.",
"home.benefits.cost.desc":"Automatyzuj mapowanie, uzupełnianie atrybutów i teksty ofert, by zespół zajmował się merchandisingiem — a nie czyszczeniem arkuszy.",
"home.benefits.scale.title":"Gotowe na każdy kanał sprzedaży",
"home.benefits.scale.desc":"Dopasuj feedy eksportu i sync WooCommerce do formatów oczekiwanych przez każdy kanał, bez ręcznego przebudowywania katalogu.",
"home.cta.titleLead":"Wprowadzaj produkty na rynek ",
"home.cta.titleHighlight":"szybciej",
"home.cta.description":"Przestań przebudowywać dane produktów z każdego pliku dostawcy. Zmapuj raz, wzbogać według swoich reguł i publikuj oferty gotowe do sprzedaży.",
"home.cta.f1":"Spersonalizowane demo",
"home.cta.f2":"Konsultacja z ekspertami",
"home.cta.f3":"Jasne kolejne kroki",
"home.cta.apply":"Poproś o dostęp",
"home.cta.imageAlt":"Strony produktów Descrybe",
"home.product.eyebrow":"Co robi Descrybe",
"home.product.title":"Feedy dostawców na wejściu. Gotowe oferty na wyjściu — eksport, WooCommerce lub API.",
"home.product.description":"Descrybe pomaga zespołom ecommerce zamieniać feedy CSV i XML dostawców w czyste katalogi produktów. Mapuj pola do swoich kategorii, wzbogacaj atrybuty i teksty ofert, a potem wysyłaj dane przez feedy eksportu, sync WooCommerce lub publiczne API.",
"home.product.pipelineAria":"Pipeline produktu",
"home.product.p1.label":"Feedy wejściowe",
"home.product.p1.detail":"CSV / XML z URL-i dostawców",
"home.product.p2.label":"Mapuj",
"home.product.p2.detail":"Dopasuj kolumny do swoich pól",
"pricing.section.title":"Zacznij za darmo. Skaluj, gdy katalog rośnie.",
"pricing.section.lead":"Free obejmuje mapowanie feedów, podstawowe czyszczenie produktów i etykiety energetyczne UE (EPREL) do 100 SKU (bez kredytów AI). Plany płatne dodają tytuły i opisy AI, większą pojemność oraz opcje eksportu — Starter, Growth, Business, albo porozmawiaj ze sprzedażą o Enterprise.",
"pricing.cap.limits.f3":"Role zespołu i zaproszenia",
"pricing.cap.limits.f4":"Opcje SLA Enterprise",
"pricing.faq.credits.q":"Czym są kredyty AI?",
"pricing.faq.credits.a":"Kredyty AI opłacają kroki takie jak generowanie tytułów i opisów. Free obejmuje 0 kredytów AI — nadal możesz mapować feedy i czyścić dane produktów. Płatne pakiety miesięczne: Starter 150, Plus 500, Growth 1 200, Business 4 000, Scale 8 000. Enterprise obejmuje duży zarządzany pakiet (oraz własny klucz AI). Od Growth w górę możesz opcjonalnie uruchamiać AI na własnym kluczu zamiast zarządzanych kredytów.",
"pricing.faq.packs.q":"Can I buy extra AI credits?",
"pricing.faq.packs.a":"Yes. One-time packs: Starter $19 / 500 credits, Growth $59 / 2,000, Catalog $199 / 10,000, Scale $599 / 40,000. Buy from Billing after you have a paid plan (or Free with leftover trial credits). Packs do not change your SKU or feed limits.",
"pricing.faq.limits.q":"Co się stanie, gdy osiągnę limit produktów lub kredytów?",
"pricing.faq.limits.a":"Ostrzegamy, gdy się zbliżasz. Po osiągnięciu limitu produktów lub wyczerpaniu kredytów AI zadania wymagające tej pojemności wstrzymują się, aż zwolnisz miejsce, poczekasz na kolejny cykl rozliczeniowy lub przejdziesz wyżej.",
"pricing.faq.change.q":"Czy mogę przejść wyżej lub niżej?",
"pricing.faq.change.a":"Tak. Zacznij od Free, potem przejdź na Starter, Plus, Growth, Business lub Scale w Planach lub Płatnościach (Stripe Checkout). Enterprise zawsze obsługuje sprzedaż.",
"pricing.faq.free.q":"Co obejmuje Free?",
"pricing.faq.free.a":"Free na zawsze: 50 produktów, jeden feed, czyszczenie danych i uzupełnianie atrybutów, etykiety energetyczne UE (EPREL — dane publiczne, bez kredytów) oraz jeden ręczny eksport — z 0 kredytami AI. Bez karty kredytowej. Przejdź wyżej, gdy potrzebujesz tytułów i opisów AI lub większej pojemności.",
"pricing.faq.why.q":"Dlaczego nie płacić za produkt jak w narzędziach tylko do treści?",
"pricing.faq.why.a":"Descrybe obejmuje całą ścieżkę od feedu dostawcy przez katalog do WooCommerce lub eksportu — nie tylko teksty AI. Płacisz za pojemność platformy (produkty i feedy); AI to warstwa użycia na wierzchu.",
"pricing.faq.annual.q":"Jak działa rozliczenie roczne?",
"pricing.faq.annual.a":"Rozliczenie roczne to ok. 20% mniej niż cena miesięczna. Zacznij za darmo, a potem wybierz rozliczenie roczne w Checkout przy upgrade (lub skontaktuj się ze sprzedażą).",
"pricing.calc.badge":"Plan calculator",
"pricing.calc.title":"Find the right plan",
"pricing.calc.lead":"Enter feeds, catalog size, and how many products you want to enhance with AI (count each language pass).",
"pricing.calc.feeds":"Feed sources",
"pricing.calc.feedsHint":"Supplier / import feeds you need to connect",
"pricing.calc.skus":"Catalog products (SKUs)",
"pricing.calc.skusHint":"Total products you will store and process",
"pricing.calc.aiVolume":"AI process volume",
"pricing.calc.aiHint":"Roughly products × languages you want to enhance per month",
"pricing.calc.recommendedLabel":"Recommended",
"pricing.calc.budgetLabel":"Budget option",
"pricing.calc.coversCredits":"Needs about {count} AI credits / month",
"pricing.calc.aiIncluded":"Included monthly credits cover this AI volume",
"pricing.calc.aiNeedsPacks":"Add {count}× {pack} (~{usd}) for the AI shortfall",
"pricing.calc.orYearly":"or ~{amount}/mo yearly",
"pricing.calc.budgetNote":"Lower list price with yearly discount and/or credit packs when that still fits.",
"pricing.calc.noBudget":"The recommended plan is already the leanest fit for these inputs.",
"pricing.calc.enterpriseTitle":"Sounds like Enterprise",
"pricing.calc.enterpriseBody":"Your feeds or catalog size exceed self-serve caps. Talk to sales for unlimited capacity and a managed AI grant or BYOK.",
"pricing.calc.ctaPlan":"Choose {name}",
"pricing.calc.disclaimer":"Estimates use list prices and ~2 credits per AI product enhance. Checkout prices come from Stripe. A1 and other client deals stay admin-only.",
"pricing.pack.xxl.desc":"Large multi-language buffer (3,000 credits ≈ 1,500 AI products)",
"pricing.pack.mega.name":"Scale pack",
"pricing.pack.mega.desc":"Distributor / agency burst (8,000 credits ≈ 4,000 AI products)",
"pricing.section.faqDescription":"Proste odpowiedzi o planach, kredytach i tym, co obejmuje Free.",
"billing.buyCreditPacks":"Buy AI credit packs",
"billing.buyCreditPacksHint":"Plans cover ~75% of your SKU cap with AI. Top up anytime for the rest, fixes, and tests — without changing your plan.",
"billing.packCredits":"{credits} kredytów",
"billing.packApproxProducts":"~{count} AI products",
"billing.buyPack":"Buy",
"billing.checkoutCompletePack":"Credit pack purchased — {credits} AI credits added.",
"billing.packCheckoutFailed":"Could not start credit pack checkout.",
"empty.default.noItems":"Nie znaleziono elementów.",
"settings.tabLockedHint":"Not on your plan",
"stores.connectorLocked":"Not on your plan",
"stores.connectorUpgrade":"Upgrade to unlock",
"plan.upgrade.title":"Ta funkcja nie jest w Twoim planie",
"plan.upgrade.message":"Ulepsz plan, aby odblokować tę część Descrybe.",
"plan.upgrade.defaultMessage":"Twój obecny plan nie obejmuje tej części Descrybe. Ulepsz plan, aby ją odblokować, albo poproś administratora firmy, jeśli nie możesz zmienić rozliczeń.",
"plan.upgrade.sectionOff.title":"Ta funkcja jest tymczasowo niedostępna",
"plan.upgrade.sectionOff.message":"Ta część Descrybe jest teraz wyłączona na platformie. To nie problem z upgrade’em — spróbuj później lub skontaktuj się z pomocą.",
"plan.upgrade.sectionOff.cta":"Wróć do pulpitu",
"plan.upgrade.stores.message":"Konektory WooCommerce i Shopify wymagają planu ze Sklepami. Ulepsz plan, aby je połączyć — albo korzystaj z feedów i API w obecnym planie.",
"plan.upgrade.stillWorks.title":"Co nadal działa w Twoim planie",
"plan.upgrade.stillWorks.export.description":"Generuj wychodzące feedy dla kanałów zakupowych i partnerów.",
"plan.upgrade.stillWorks.processing.label":"Zadania w tle",
"plan.upgrade.stillWorks.processing.description":"Monitoruj zadania AI i katalogu w Przetwarzaniu — dostępne w Twoim planie nawet bez konektorów sklepu.",
"plan.upgrade.stillWorks.api.label":"Klucze API",
"plan.upgrade.stillWorks.api.description":"Utwórz klucz w Ustawieniach, aby używać /api/v1 — sekret jest pokazany tylko raz.",
"vector.description":"Przeszukuj indeks kategorii wektorowych, gdy Pinecone jest skonfigurowany. Tworzenie indeksu i inicjalizacja nie są jeszcze dostępne w v2.",
"vector.probing":"Sprawdzanie API kategorii wektorowych…",
"vector.unavailable":"Kategorie wektorowe nie są jeszcze na tym backendzie. Nie ma tu nic do uruchomienia, dopóki /api/vector-categories/* nie zostanie podłączone.",
"vector.initComingSoon":"Utwórz indeks i Inicjalizuj DB wektorową nie są jeszcze dostępne w v2 (wkrótce). Wyszukiwanie nadal działa, gdy Pinecone jest skonfigurowany.",
"vector.createIndex":"Utwórz indeks",
"vector.initDb":"Inicjalizuj DB wektorową",
"vector.searchHeading":"Szukaj kategorii",
"vector.searchPlaceholder":"Wpisz opis produktu…",
"storeReconnect.titlePlural":"Połącz sklepy ponownie po migracji",
"storeReconnect.titleChannel":"Połącz {channel} ponownie po migracji",
"storeReconnect.titleSingular":"Połącz sklep ponownie po migracji",
"storeReconnect.messageWithItems":"Dane logowania API sklepu nie zostały przeniesione (lub nie można ich użyć) po migracji platformy. To nie jest uszkodzona synchronizacja — połącz ponownie każdy sklep, a potem Przetestuj połączenie przed kolejką synchronizacji.",
"storeReconnect.messageSingle":"Dane logowania API {channel} nie zostały przeniesione (lub nie można ich użyć) po migracji platformy. To nie jest uszkodzona synchronizacja — wklej świeże dane, Zapisz, a potem Przetestuj połączenie przed kolejką synchronizacji.",
"storeReconnect.channelFallback":"Sklep",
"storeReconnect.askAdmin":"Poproś administratora firmy o ponowne połączenie — tylko administratorzy mogą zapisywać dane logowania sklepu.",
"storeReconnect.reconnectItem":"Połącz ponownie {label}",
"admin.storeReconnect.cutoverHint":"Read-only inventory. Merchants reconnect via /stores/wizard or the channel Connection tab — this page does not mutate credentials.",
"admin.storeReconnect.loadFailed":"Could not load store reconnect inventory.",
"admin.storeReconnect.refresh":"Refresh",
"admin.storeReconnect.description":"Companies with a connected store identity but missing or unusable API credentials (cutover credential gaps).",
"storeReconnect.wizardHint":"Prefer a step-by-step flow? Open Guided setup (/stores/wizard), or reconnect the channel below and Test Connection before syncing.",
"storeReconnect.wizardLabel":"Guided setup",
"storeReconnect.reviewsHint":"Import recenzji nie może działać, dopóki dane logowania nie zostaną ponownie połączone po migracji. W zakładce Połączenie: Zapisz, potem Przetestuj połączenie.",
"storeReconnect.ordersHint":"Import zamówień nie może działać, dopóki dane logowania nie zostaną ponownie połączone po migracji. W zakładce Połączenie: Zapisz, potem Przetestuj połączenie.",
"productSync.outboundBody":"— wysyła przetworzone produkty Descrybe do sklepu (tworzy lub aktualizuje dopasowane produkty zdalne). Nie importuje katalogu sklepu do Descrybe.",
"productSync.firstSyncBody":"— niedopasowane produkty są tworzone w {channel}. Kolejne synchronizacje aktualizują produkty już powiązane po id lub strategii dopasowania.",
"productSync.reSync":"Ponowna synchronizacja",
"productSync.reSyncBody":"— dopasowane produkty zdalne mogą zostać nadpisane treścią Descrybe ({count} powiązanych do tej pory).",
"productSync.queued":"Synchronizacja produktów w kolejce",
"productSync.live.queued":"W kolejce — oczekiwanie na workera",
"productSync.live.running":"Synchronizacja w toku",
"productSync.live.watching":"Śledzenie statusu… liczniki pojawią się po zakończeniu.",
"productSync.needsReconnect":"Synchronizacja produktów nie może działać, dopóki dane logowania nie zostaną ponownie połączone po migracji. W zakładce Połączenie: Zapisz, potem Przetestuj połączenie.",
"productSync.scheduleHelp":"Jak interwały feedów: ustaw, jak często Descrybe wypycha produkty do sklepu, albo wstrzymaj harmonogram. Ręczna kolejka działa mimo pauzy. Webhooki sklepu nie są używane — tylko odpytywanie/kolejka.",
"productSync.delivery.title":"Aktualizacje przez odpytywanie, nie webhooki sklepu",
"productSync.delivery.body":"Descrybe nie odbiera webhooków Shopify ani WooCommerce. Wypychanie produktów działa po dodaniu do kolejki lub według harmonogramu. Ta strona śledzi postęp, odpytując status połączenia — nie przez live push ze sklepu.",
"productSync.delivery.inboundNote":"Zamówienia i recenzje też używają kolejek (harmonogram lub ręcznie), nie live webhooków.",
"productSync.delivery.hubNote":"Konektory sklepów synchronizują według harmonogramu lub po dodaniu zadania do kolejki — nie przez live webhooki sklepu.",