This commit is contained in:
2026-08-17 21:20:45 +02:00
parent 321f11e817
commit 6fcdc74843
157 changed files with 2895 additions and 7544 deletions
+28 -19
View File
@@ -78,7 +78,7 @@ export const pl: MessageDict = {
"auth.login.failed": "Logowanie nie powiodło się",
"auth.login.passwordNotSet": "To konto nadal wymaga hasła. Otwórz link zaproszenia lub poproś administratora o wystawienie nowego.",
"auth.login.setPasswordFirstTitle": "Najpierw ustaw hasło:",
"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.setPasswordFirstBody": "użyj linku zaproszenia z e-maila. Jeśli potrzebujesz nowego linku, poproś administratora firmy o ponowne wystawienie linku do ustawienia hasła na {email}.",
"auth.login.yourEmail": "twój e-mail",
"auth.login.platformAdminsReissue": "Administratorzy platformy mogą ponownie wystawić z",
"auth.login.adminUsersLink": "Admin → Użytkownicy",
@@ -144,9 +144,9 @@ export const pl: MessageDict = {
"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.setPasswordExpired": "Ten link do ustawienia hasła jest nieprawidłowy lub wygasł. Poproś administratora firmy o ponowne wystawienie linku do ustawienia hasła na ten e-mail, 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.expiredFooter": "Wygasły link? Poproś administratora firmy o ponowne wystawienie nie ma API samodzielnego ponownego wysyłania.",
"auth.invite.adminUsersLink": "Admin → Użytkownicy",
"auth.invite.doneTitle": "JesteÅ› w zespole",
"auth.invite.doneSetPasswordTitle": "Hasło zapisane",
@@ -163,7 +163,7 @@ export const pl: MessageDict = {
"auth.invite.switchAccountTitle": "Zmień konto:",
"auth.invite.switchAccountBody": "wyloguj się, a następnie dokończ ten formularz zaproszonym e-mailem{emailSuffix}.",
"auth.invite.reissueTitle": "Ścieżka ponownego wystawienia:",
"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.",
"auth.invite.reissueBody": "poproś administratora firmy o ponowne wystawienie linku do ustawienia hasła na ten e-mail albo o unieważnienie tego zaproszenia i wysłanie nowego na e-mail używany do logowania.",
"locale.switcher": "Język interfejsu",
"locale.menu": "Wybierz język interfejsu",
"locale.label": "Język panelu",
@@ -276,7 +276,7 @@ export const pl: MessageDict = {
"settings.table.lastUsed": "Ostatnio użyty",
"dashboard.demoSandbox": "Piaskownica demo",
"dashboard.demoEmptyTitle": "Piaskownica demo jest pusta",
"dashboard.demoEmptyHint": "Piaskownica demo jest pusta — przełącz na A1 lub podłącz feed, aby zobaczyć realne statystyki katalogu.",
"dashboard.demoEmptyHint": "Piaskownica demo jest pusta — podłącz feed, aby zobaczyć realne statystyki katalogu.",
"dashboard.overviewTitle": "PrzeglÄ…d",
"dashboard.quickLinks": "Szybkie linki",
"dashboard.whatsNew": "Co nowego",
@@ -319,7 +319,7 @@ export const pl: MessageDict = {
"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.demoEmptyMessage": "Podłącz tu feed, aby wypełnić tę piaskownicę, albo przełącz na inną firmę w nagłówku.",
"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",
@@ -367,29 +367,29 @@ export const pl: MessageDict = {
"activation.focus.sync": "Dalej: zsynchronizuj próbkę po zapisaniu mapowania. Użyj Sync na zmapowanym feedzie — unikaj niezmapowanych źródeł.",
"activation.focus.dismiss": "Zamknij podpowiedź",
"activation.dismiss": "Ukryj listÄ™",
"hypercare.report.title": "Hypercare cutover",
"hypercare.report.title": "Potrzebujesz pomocy po przeniesieniu?",
"hypercare.report.message": "Brakujące lub błędne dane po migracji? Zgłoś to, abyśmy mogli naprawić Twój workspace.",
"hypercare.report.cta": "Zgłoś brakujące lub błędne dane",
"hypercare.report.dismiss": "Odrzuć",
"hypercare.report.adminTriage": "Otwórz kolejkę hypercare",
"etl.gaps.title": "What did not migrate",
"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.title": "What still needs setup",
"etl.gaps.message": "Some items weren't copied when we moved your workspace. 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.body": "Previous API keys weren't copied. 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.title": "Uploaded files",
"etl.gaps.blobs.body": "File names may appear even when the file itself wasn't copied. Re-upload CSVs if you need the originals.",
"etl.gaps.blobs.countHint": "{count} files are listed without their contents (they weren't copied).",
"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.body": "Earlier job history wasn't imported. New jobs you start here will appear normally.",
"etl.gaps.jobs.emptyHint": "Processing history wasn't imported — an empty list is expected.",
"etl.gaps.jobs.migratedHint": "{count} jobs were imported from the previous workspace.",
"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.body": "WooCommerce and Shopify passwords may need to be re-entered after the move — reconnect your store; sync is not broken.",
"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.",
@@ -3690,6 +3690,7 @@ export const pl: MessageDict = {
"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.useEmailLink": "Uzyj linku wypisania w e-mailu, ktory wyslalismy. Otwarcie tej strony bez tego linku nie zmieni preferencji e-mail.",
"unsubscribe.me": "Wypisz mnie",
"unsubscribe.invalidLink": "Nieprawidłowy link",
"unsubscribe.failedShort": "Wypisanie nie powiodło się",
@@ -4727,6 +4728,10 @@ export const pl: MessageDict = {
"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.",
"seo.contactSales.title": "Kontakt ze sprzedaza | Descrybe",
"seo.contactSales.description": "Opowiedz nam o katalogu i potrzebach pojemnosci: przygotujemy plan niestandardowy, ktory oplacisz online.",
"seo.unsubscribe.title": "Wypisz sie | Descrybe",
"seo.unsubscribe.description": "Zatrzymaj e-maile marketingowe Descrybe, uzywajac linku wypisania w wiadomosci, ktora wyslalismy.",
"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.",
@@ -4734,6 +4739,8 @@ export const pl: MessageDict = {
"pricing.page.subscribedMid": "lub porównaj plany w",
"pricing.page.plansLink": "Plany",
"pricing.page.subscribedAfter": ".",
"pricing.page.guestSubscribedBefore": "Masz juz subskrypcje?",
"pricing.page.guestSubscribedAfter": "aby zarzadzac platnosciami i porownac plany.",
"legal.lastUpdated": "Ostatnia aktualizacja: {date}",
"legal.backHome": "← Powrót do strony głównej",
"legal.emailLabel": "E-mail:",
@@ -5065,7 +5072,7 @@ export const pl: MessageDict = {
"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.placeholder.logoUrl": "https://",
"brand.logoAlt": "PodglÄ…d logo marki",
"brand.tipsTitle": "Wskazówki formuły / podglądu",
"brand.saving": "Zapisywanie…",
@@ -5226,6 +5233,8 @@ export const pl: MessageDict = {
"pricing.section.publicBefore": "Plany publiczne: Free, Starter, Growth, Business i Enterprise. Utwórz konto Free, a potem przejdź wyżej w",
"pricing.section.publicOr": "lub",
"pricing.section.publicAfter": "przez Stripe Checkout. Enterprise pozostaje obsługiwany przez sprzedaż.",
"pricing.section.guestPublicBefore": "Plany publiczne: Free, Starter, Plus, Growth, Business, Scale i Enterprise. Utworz konto Free, a potem",
"pricing.section.guestPublicAfter": "aby przejsc wyzej przez Stripe Checkout. Enterprise pozostaje obslugiwany przez sprzedaz.",
"pricing.section.plansLink": "Plany",
"pricing.section.billingLink": "Płatności",
"pricing.section.capabilitiesTitle": "Do czego jest stworzony każdy plan",
@@ -5291,7 +5300,7 @@ export const pl: MessageDict = {
"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.calc.disclaimer": "Estimates use list prices and ~2 credits per AI product enhance. Checkout prices come from Stripe. Custom client deals stay admin-only.",
"pricing.card.mostPopular": "Najpopularniejszy",
"pricing.card.custom": "Indywidualny",
"pricing.card.forever": "na zawsze",