{
  "_meta": {
    "locale": "pl",
    "status": "machine-draft",
    "note": "Pełne tłumaczenie polskie (wersja robocza SI, forma nieformalna 'ty'). Przed kampaniami marketingowymi zaleca się weryfikację przez native speakera, zgodnie z wytyczną jakości tłumaczeń. Bez myślników (em dash), zgodnie z wytycznymi CONCORD. Zmienne i nazwy własne pozostają bez zmian. Jeśli preferowana jest forma grzecznościowa Pan/Pani, to prosta i spójna zmiana."
  },
  "site": {
    "name": "ronutz",
    "tagline": "Narzędzia sieciowe i bezpieczeństwa, które działają na twojej maszynie, a nie w cudzej chmurze."
  },
  "nav": {
    "tools": "Narzędzia",
    "about": "O mnie",
    "certifications": "Certyfikaty",
    "training": "Szkolenia",
    "contact": "Kontakt",
    "skipToContent": "Przejdź do treści",
    "openMenu": "Otwórz menu",
    "closeMenu": "Zamknij menu",
    "learn": "Naucz się",
    "endorsements": "Opinie",
    "certs": "Certyfikaty"
  },
  "languageSwitcher": {
    "label": "Język",
    "stubNotice": "Ten język nie jest jeszcze przetłumaczony. Wyświetlanie po angielsku."
  },
  "home": {
    "hero": {
      "eyebrow": "Stworzone przez praktyka, z prywatnością na pierwszym miejscu",
      "title": "Zestaw narzędzi sieciowych i bezpieczeństwa, który trzyma twoje dane na twojej maszynie.",
      "subtitle": "Obliczenia podsieci, diagnostyka DNS i poczty, inspekcja certyfikatów i wiele więcej, przetwarzane lokalnie w twojej przeglądarce. Bez wysyłania, bez rejestrowania, bez konieczności zakładania konta do codziennych narzędzi.",
      "ctaPrimary": "Otwórz zestaw narzędzi",
      "ctaSecondary": "Kto to tworzy"
    },
    "credibility": {
      "title": "Stworzone przez kogoś, kto robi tę robotę od 1996 roku.",
      "body": "Trzydzieści lat w sieciach i bezpieczeństwie korporacyjnym, dostarczone przez aktywnego instruktora, a nie przez stronę marketingową. Certyfikowany na czterech platformach, więc porównania tutaj są robione uczciwie, a nie po to, żeby sprzedać.",
      "aboutCta": "Więcej o twórcy"
    },
    "pillars": {
      "title": "Cztery platformy, nauczane i utrzymywane na bieżąco.",
      "f5": "F5",
      "fortinet": "Fortinet",
      "extreme": "Extreme Networks",
      "netskope": "Netskope"
    },
    "privacy": {
      "title": "Dlaczego lokalne przetwarzanie ma znaczenie w pracy nad bezpieczeństwem.",
      "body": "Gdy wklejasz konfigurację, przechwycone pakiety albo certyfikat do narzędzia, te dane często zawierają sekrety. Tutaj codzienne narzędzia działają w całości w twojej przeglądarce. Dane nigdy nie opuszczają twojego urządzenia, więc nie ma czego rejestrować, wyciekać ani udostępniać na żądanie sądu."
    },
    "toolPreview": {
      "title": "Wypróbuj narzędzie teraz.",
      "body": "Kalkulator CIDR poniżej działa lokalnie. Wpisz sieć i prefiks, aby zobaczyć zakres adresów, liczbę hostów i maskę. Nic nie jest nigdzie wysyłane.",
      "learnHeading": "Poznaj koncepcje",
      "toolboxCta": "Otwórz pełny zestaw narzędzi",
      "seeAllArticles": "Zobacz wszystkie artykuły"
    },
    "provenance": {
      "title": "Podziękowania i źródła",
      "show": "Pokaż",
      "hide": "Ukryj",
      "basisLabel": "Jak to działa",
      "sourcesLabel": "Standardy i źródła"
    },
    "funding": {
      "title": "Wesprzyj to narzędzie",
      "pitch": "To narzędzie jest darmowe i takie ma pozostać. Jeśli zasłuży na miejsce w twoim przepływie pracy, możesz pomóc sfinansować jego utrzymanie i to, co przyjdzie potem.",
      "purposeLabel": "Obecnie finansowane"
    },
    "stats": {
      "tools": "Narzędzia",
      "articles": "Artykuły",
      "sectionLabel": "Zestaw narzędzi w skrócie"
    }
  },
  "tools": {
    "cidr": {
      "title": "Kalkulator CIDR",
      "description": "Oblicz adresy sieci i rozgłoszeniowy, zakres używalnych hostów, liczbę hostów i maskę sieci dla bloku CIDR IPv4. Działa lokalnie w twojej przeglądarce.",
      "inputLabel": "Blok CIDR",
      "inputPlaceholder": "192.168.1.0/24",
      "compute": "Oblicz",
      "runsLocally": "Działa lokalnie, nic nie jest wysyłane na żaden serwer.",
      "prefixSlider": "Długość prefiksu",
      "bitsHeading": "Bity adresu",
      "bitsNetwork": "Sieć",
      "bitsHost": "Host",
      "bitsNote": "Wyróżnione bity wskazują sieć — pozostałe adresują hosty w jej obrębie.",
      "results": {
        "network": "Adres sieci",
        "broadcast": "Adres rozgłoszeniowy",
        "netmask": "Maska sieci",
        "wildcard": "Maska wildcard",
        "firstHost": "Pierwszy używalny host",
        "lastHost": "Ostatni używalny host",
        "totalAddresses": "Łączna liczba adresów",
        "usableHosts": "Używalne hosty"
      },
      "errors": {
        "empty": "Wpisz blok CIDR, aby obliczyć.",
        "invalid": "To nie wygląda na prawidłowy blok CIDR. Spróbuj formatu takiego jak 192.168.1.0/24."
      },
      "name": "Kalkulator CIDR / podsieci",
      "blurb": "Rozłóż dowolny blok CIDR IPv4 na adresy sieci i rozgłoszeniowy, użyteczny zakres hostów, liczbę hostów i maskę sieci. Działa w całości w twojej przeglądarce.",
      "modes": {
        "subnet": "Podsieć",
        "vlsm": "VLSM",
        "supernet": "Supersieć",
        "overlap": "Nakładanie / luka"
      },
      "modeDesc": {
        "subnet": "Analizuje pojedynczy blok CIDR IPv4: sieć, rozgłoszenie, maskę i zakres hostów.",
        "vlsm": "Dzieli blok nadrzędny na podsieci o zmiennej długości według listy liczby hostów.",
        "supernet": "Łączy listę prefiksów w najmniejszy zestaw bloków, które je pokrywają.",
        "overlap": "Wykrywa nakładanie i zawieranie między prefiksami oraz luki w opcjonalnym zakresie."
      },
      "vlsm": {
        "parentLabel": "Blok nadrzędny",
        "reqsLabel": "Wymagania podsieci",
        "namePlaceholder": "Nazwa (opcjonalnie)",
        "hostsPlaceholder": "Hosty",
        "addRow": "Dodaj podsieć",
        "remove": "Usuń",
        "run": "Przydziel",
        "th": {
          "name": "Nazwa",
          "hosts": "Hosty",
          "network": "Sieć",
          "prefix": "Prefiks",
          "netmask": "Maska sieci",
          "range": "Zakres używalny",
          "broadcast": "Rozgłoszenie",
          "usable": "Używalne hosty"
        },
        "stat": {
          "parent": "Nadrzędny",
          "used": "Użyte",
          "free": "Wolne",
          "utilization": "Wykorzystanie"
        },
        "unfit": "Nie zmieściły się",
        "parentPlaceholder": "10.0.0.0/24"
      },
      "supernet": {
        "label": "Prefiksy do agregacji",
        "run": "Agreguj",
        "minimal": "Minimalny zestaw pokrywający",
        "single": "Pojedyncza supersieć",
        "singleExtra": "Dodaje {extra} dodatkowych adresów poza danymi wejściowymi.",
        "stat": {
          "inputs": "Prefiksy wejściowe",
          "addresses": "Adresy",
          "blocks": "Zagregowane bloki"
        },
        "placeholder": "192.168.0.0/24\n192.168.1.0/24"
      },
      "overlap": {
        "label": "Prefiksy do sprawdzenia",
        "scopeLabel": "Zakres (opcjonalnie, włącza wykrywanie luk)",
        "run": "Sprawdź",
        "overlapsTitle": "Nakładania",
        "noOverlaps": "Nie znaleziono nakładań.",
        "gapsTitle": "Luki w zakresie",
        "noGaps": "Brak luk w podanym zakresie.",
        "kind": {
          "identical": "identyczny z",
          "contains": "zawiera",
          "contained": "zawiera się w",
          "partial": "częściowo nakłada się na"
        },
        "addresses": "adresów",
        "stat": {
          "covered": "Pokryte",
          "scope": "Zakres"
        },
        "placeholder": "10.0.0.0/24\n10.0.0.128/25",
        "scopePlaceholder": "10.0.0.0/16"
      },
      "err": {
        "ipv4": "Nieprawidłowy adres IPv4. Użyj czterech oktetów od 0 do 255, np. 192.168.1.0.",
        "octet": "Oktet jest poza zakresem (każdy musi być od 0 do 255).",
        "format": "Oczekiwano formatu A.B.C.D/prefiks, np. 192.168.1.0/24.",
        "prefix": "Długość prefiksu musi mieścić się w zakresie od 0 do 32.",
        "tooMany": "Zbyt wiele pozycji. Skróć listę i spróbuj ponownie.",
        "noReqs": "Dodaj co najmniej jedno wymaganie podsieci z liczbą hostów.",
        "noPrefixes": "Wprowadź co najmniej jeden prefiks, po jednym w wierszu."
      },
      "rangeHeading": "Układ adresów",
      "usableShort": "użytecznych",
      "rfcNote": "/31 i /32 niczego nie rezerwują: każdy adres jest użyteczny (RFC 3021).",
      "reservedNote": "Pierwszy adres to sieć, a ostatni to broadcast; oba są zarezerwowane, więc użyteczne = łącznie − 2."
    },
    "title": "Narzędzia",
    "lede": "Małe, szybkie i dbające o prywatność narzędzia, które działają w całości w twojej przeglądarce. Nic z tego, co wpisujesz, nie jest nigdzie wysyłane. Kolejne są w drodze.",
    "open": "Otwórz",
    "comingSoon": "Wkrótce",
    "note": "Ten zestaw narzędzi się rozrasta. Nowe narzędzia są dodawane tutaj, gdy są gotowe, każde z lokalnym przetwarzaniem i darmowe w użyciu.",
    "learnHeading": "Poznaj koncepcje",
    "backToTools": "Narzędzia",
    "references": "Źródła",
    "jumpTo": "Przejdź do",
    "categories": {
      "identity": "Tożsamość i tokeny",
      "encoding": "Kodowanie i dane",
      "hashing": "Hashowanie i krypto",
      "identifiers": "Identyfikatory",
      "pki": "Certyfikaty i PKI",
      "networking": "Sieci",
      "transport": "TLS i transport"
    },
    "hash": {
      "name": "Generator skrótów (SHA-1/256/384/512)",
      "blurb": "Oblicz skróty SHA-1, SHA-256, SHA-384 i SHA-512 dowolnego tekstu, pokazane jako hex i Base64, przy użyciu natywnego Web Crypto przeglądarki. Działa w całości w twojej przeglądarce.",
      "algorithmLabel": "Algorytm skrótu",
      "inputLabel": "Tekst do zahashowania",
      "inputPlaceholder": "The quick brown fox jumps over the lazy dog",
      "runsLocally": "Hashowanie działa lokalnie przez Web Crypto. Nic z tego, co wpisujesz, nie opuszcza twojej przeglądarki.",
      "bits": "{bits} bitów ({bytes} bajtów)",
      "sha1Note": "SHA-1 jest złamany pod względem odporności na kolizje i nieodpowiedni do zabezpieczeń (podpisy, certyfikaty). Nadaje się tylko do sum kontrolnych bez znaczenia dla bezpieczeństwa i do zgodności ze starszymi systemami.",
      "hex": "Hex",
      "base64": "Base64",
      "copy": "Kopiuj",
      "copied": "Skopiowano"
    },
    "hmac": {
      "name": "Generator HMAC (SHA-256/384/512)",
      "blurb": "Oblicz HMAC z kluczem nad wiadomością przy użyciu twojego tajnego klucza, pokazany jako hex i Base64, przez natywne Web Crypto przeglądarki. Ta sama konstrukcja, której weryfikator JWT używa dla HS256. Twój klucz nigdy nie opuszcza twojej przeglądarki.",
      "algorithmLabel": "Algorytm HMAC",
      "messageLabel": "Wiadomość",
      "messagePlaceholder": "Wiadomość do uwierzytelnienia",
      "keyLabel": "Tajny klucz",
      "keyPlaceholder": "Twój współdzielony sekret",
      "runsLocally": "HMAC działa lokalnie przez Web Crypto. Twoja wiadomość i klucz nigdy nie opuszczają twojej przeglądarki.",
      "hex": "Hex",
      "base64": "Base64",
      "copy": "Kopiuj",
      "copied": "Skopiowano",
      "struct": {
        "heading": "Jak zbudowany jest HMAC",
        "innerHash": "hash wewnętrzny",
        "note": "HMAC haszuje wiadomość dwukrotnie. Klucz jest łączony operacją XOR ze stałym wewnętrznym padem przed pierwszym haszowaniem i z zewnętrznym padem przed drugim, a ta konstrukcja z dwoma padami zapobiega atakom przez rozszerzenie długości. Klucz jest najpierw redukowany do rozmiaru bloku funkcji skrótu."
      }
    },
    "base64": {
      "name": "Kodek Base64, Base32, Hex i procent",
      "blurb": "Koduj tekst do Base64, Base64 bezpiecznego dla URL, Base32, szesnastkowego lub kodowania procentowego, i dekoduj każdy z nich z powrotem. Toleruje brakujące dopełnienie i białe znaki oraz oznacza wyniki binarne (nie-UTF-8). Działa w całości w Twojej przeglądarce.",
      "directionLabel": "Kierunek",
      "direction": {
        "encode": "Koduj",
        "decode": "Dekoduj"
      },
      "inputLabelEncode": "Tekst do zakodowania",
      "inputLabelDecode": "Zakodowany tekst do dekodowania",
      "placeholderEncode": "Hello, World!",
      "placeholderDecode": "SGVsbG8sIFdvcmxkIQ==",
      "runsLocally": "Kodowanie i dekodowanie działają lokalnie. Nic z tego, co wklejasz, nie opuszcza twojej przeglądarki.",
      "decodeErrors": {
        "invalid-characters": "Te dane wejściowe zawierają znaki spoza alfabetu wybranego kodeka.",
        "invalid-length": "Te dane wejściowe nie mają prawidłowej długości dla wybranego kodeka.",
        "invalid-escape": "Te dane wejściowe mają nieprawidłową sekwencję ucieczki procentowej (% bez dwóch następujących cyfr szesnastkowych)."
      },
      "outputEncode": "Zakodowane",
      "outputDecode": "Zdekodowany tekst",
      "copy": "Kopiuj",
      "copied": "Skopiowano",
      "emptyOutput": "(puste)",
      "decodedBytes": "{bytes, plural, one {Zdekodowano # bajt} few {Zdekodowano # bajty} many {Zdekodowano # bajtów} other {Zdekodowano # bajta}}.",
      "notUtf8": "{bytes, plural, one {Zdekodowano # bajt} few {Zdekodowano # bajty} many {Zdekodowano # bajtów} other {Zdekodowano # bajta}}, ale wynik nie jest prawidłowym tekstem UTF-8 (prawdopodobnie binarny).",
      "codecLabel": "Kodek",
      "codec": {
        "base64": "Base64",
        "base64url": "Base64URL",
        "base32": "Base32",
        "base16": "Hex",
        "percent": "Percent"
      }
    },
    "pkce": {
      "name": "Weryfikator i challenge OAuth PKCE",
      "blurb": "Wygeneruj code_verifier OAuth 2.0 i wyprowadź jego code_challenge S256, albo wklej własny i sprawdź go względem reguł długości i zestawu znaków z RFC 7636. To samo wyprowadzenie SHA-256 w base64url, którego oczekuje twój serwer autoryzacji. Działa w całości w twojej przeglądarce.",
      "verifierLabel": "Weryfikator kodu",
      "verifierPlaceholder": "Wklej code_verifier albo wygeneruj go",
      "generate": "Generuj",
      "runsLocally": "Generowanie i wyprowadzanie działają lokalnie. Twój weryfikator nigdy nie opuszcza twojej przeglądarki.",
      "lengthBadge": "Długość {length} (43-128)",
      "charsetOk": "Zestaw znaków niezarezerwowanych",
      "charsetBad": "Nieprawidłowe znaki",
      "s256Title": "Code challenge · S256",
      "plainTitle": "Code challenge · plain",
      "plainNote": "Metoda plain jest odradzana. Używaj S256 wszędzie tam, gdzie klient może obliczyć SHA-256.",
      "encodingLabel": "base64url",
      "plainValueLabel": "= code_verifier",
      "copy": "Kopiuj",
      "copied": "Skopiowano",
      "flowHeading": "Jak działa PKCE",
      "laneClient": "Aplikacja / Klient",
      "laneServer": "Serwer autoryzacji",
      "s1": "Wygeneruj losowy code_verifier",
      "s2": "Wyprowadź code_challenge",
      "s3": "Żądanie autoryzacji niesie challenge",
      "s4": "Serwer zapisuje challenge",
      "s5": "Zwrócono kod autoryzacji",
      "s6": "Żądanie tokenu niesie verifier",
      "s7": "Serwer ponownie wyprowadza i porównuje",
      "s8": "Wydano tokeny dostępu i odświeżania"
    },
    "uuid": {
      "name": "Generator i inspektor UUID (v4 / v7)",
      "blurb": "Wygeneruj losowe UUID v4 lub uporządkowane czasowo v7, albo wklej dowolny UUID, aby odczytać jego wersję, wariant i (dla v7) wbudowany znacznik czasu utworzenia. Generowanie używa bezpiecznego źródła losowości przeglądarki. Działa w całości w twojej przeglądarce.",
      "versionLabel": "Wersja UUID",
      "generate": "Generuj",
      "clear": "Wyczyść",
      "emptyHint": "Wybierz wersję i wygeneruj.",
      "runsLocally": "Generowanie i inspekcja działają lokalnie. Nic nie jest nigdzie wysyłane.",
      "copy": "Kopiuj",
      "copied": "Skopiowano",
      "inspectLabel": "Zbadaj UUID",
      "inspectPlaceholder": "Wklej dowolny UUID, aby go zdekodować",
      "valid": "Prawidłowy UUID",
      "invalid": "Nieprawidłowy UUID",
      "versionField": "Wersja",
      "variantField": "Wariant",
      "timestampField": "Znacznik czasu (v7)",
      "versionValue": "Wersja {version}"
    },
    "jwt": {
      "name": "Dekoder i weryfikator JWT",
      "blurb": "Zdekoduj nagłówek i claims tokena JSON Web Token, odczytaj jego wygaśnięcie i czasy zwykłym językiem oraz zweryfikuj podpis HS256/384/512 za pomocą wklejonego sekretu. Działa w całości w twojej przeglądarce.",
      "inputLabel": "JSON Web Token",
      "inputPlaceholder": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "runsLocally": "Dekodowanie i sprawdzanie podpisu działają lokalnie. Token i sekret nigdy nie opuszczają twojej przeglądarki.",
      "errors": {
        "empty": "Wklej JSON Web Token do zdekodowania.",
        "format": "To nie wygląda na JWT. Token ma trzy części base64url oddzielone kropkami: header.payload.signature.",
        "header": "Nagłówek nie jest prawidłowy. Powinien być JSON-em zakodowanym w base64url.",
        "payload": "Ładunek nie jest prawidłowy. Powinien być JSON-em zakodowanym w base64url."
      },
      "panels": {
        "header": "Nagłówek",
        "payload": "Ładunek",
        "signature": "Podpis",
        "noSignature": "Brak segmentu podpisu (token niezabezpieczony)."
      },
      "claims": {
        "iss": "Wystawca (iss)",
        "sub": "Podmiot (sub)",
        "aud": "Odbiorca (aud)",
        "jti": "Identyfikator JWT (jti)",
        "iat": "Wystawiono (iat)",
        "nbf": "Nie przed (nbf)",
        "exp": "Wygasa (exp)"
      },
      "status": {
        "expired": "Wygasł {rel}",
        "expiresIn": "Ważny, wygasa {rel}",
        "notYetValid": "Jeszcze nieważny, zaczyna się {rel}",
        "noExpiry": "Brak claimu wygaśnięcia (exp)"
      },
      "verify": {
        "label": "Zweryfikuj podpis HMAC (HS256/384/512)",
        "placeholder": "współdzielony sekret",
        "button": "Zweryfikuj",
        "valid": "Podpis prawidłowy dla tego sekretu.",
        "invalid": "Podpis nie pasuje do tego sekretu.",
        "algNone": "Ten token jest niezabezpieczony (alg: none), więc nie ma podpisu do zweryfikowania.",
        "unsupportedAlg": "Weryfikacja w przeglądarce obejmuje tylko HS256/384/512. {alg} jest asymetryczny i wymaga klucza publicznego.",
        "hint": "Sekret służy wyłącznie do obliczenia HMAC w twojej przeglądarce. Nigdy nie jest nigdzie wysyłany."
      },
      "struct": {
        "heading": "Budowa tokenu JWT",
        "signingInput": "Dane do podpisu",
        "note": "Nagłówek i ładunek są tylko zakodowane w base64url, nie zaszyfrowane, więc każdy może je odczytać. Podpis jest obliczany na podstawie nagłówka i ładunku połączonych kropką i jest tym, co sprawdza weryfikator."
      }
    },
    "x509": {
      "name": "Dekoder certyfikatów X.509",
      "blurb": "Wklej certyfikat w formacie PEM, base64 lub hex, aby odczytać jego podmiot, wystawcę, okno ważności, klucz publiczny i rozszerzenia v3, z odciskami SHA-256 i SHA-1. Działa w całości w twojej przeglądarce.",
      "inputLabel": "Certyfikat X.509",
      "inputPlaceholder": "-----BEGIN CERTIFICATE-----\nMIIB...\n-----END CERTIFICATE-----",
      "runsLocally": "Dekodowanie i odciski działają lokalnie. Certyfikat nigdy nie opuszcza twojej przeglądarki.",
      "errors": {
        "empty": "Wklej certyfikat X.509 do zdekodowania.",
        "format": "To nie wygląda na certyfikat. Wklej PEM (-----BEGIN CERTIFICATE-----), base64 lub hex.",
        "der": "Bajty nie są prawidłowym DER. Sprawdź, czy wklejono cały certyfikat, łącznie z linią END.",
        "structure": "To dekoduje się jako ASN.1, ale nie jest certyfikatem X.509. Certyfikat to SEQUENCE złożona z TBSCertificate, signatureAlgorithm i signatureValue."
      },
      "status": {
        "valid": "Ważny, wygasa {rel}",
        "expired": "Wygasł {rel}",
        "notYetValid": "Jeszcze nieważny, zaczyna się {rel}"
      },
      "panels": {
        "subject": "Podmiot",
        "issuer": "Wystawca",
        "details": "Szczegóły",
        "publicKey": "Klucz publiczny",
        "extensions": "Rozszerzenia",
        "fingerprints": "Odciski",
        "sct": "Certificate Transparency"
      },
      "fields": {
        "version": "Wersja",
        "serial": "Numer seryjny",
        "notBefore": "Nie przed",
        "notAfter": "Nie po",
        "signatureAlgorithm": "Algorytm podpisu",
        "algorithm": "Algorytm",
        "keySize": "Rozmiar klucza",
        "exponent": "Wykładnik",
        "curve": "Krzywa",
        "bits": "{n} bitów",
        "selfSigned": "Samowystawiony"
      },
      "ext": {
        "san": "Alternatywne nazwy podmiotu",
        "keyUsage": "Użycie klucza",
        "extKeyUsage": "Rozszerzone użycie klucza",
        "basicConstraints": "Podstawowe ograniczenia",
        "subjectKeyId": "Identyfikator klucza podmiotu",
        "authorityKeyId": "Identyfikator klucza urzędu",
        "caTrue": "Urząd certyfikacji (CA: true)",
        "caFalse": "Nie jest urzędem CA (CA: false)",
        "pathLen": "długość ścieżki {n}",
        "critical": "krytyczne"
      },
      "fp": {
        "sha256": "SHA-256",
        "sha1": "SHA-1",
        "computing": "Obliczanie odcisków..."
      },
      "chainHeading": "Łańcuch zaufania",
      "tierRoot": "Główny CA",
      "tierIntermediate": "Pośredni CA",
      "tierLeaf": "Certyfikat podmiotu końcowego",
      "roleRoot": "Samopodpisana kotwica zaufania",
      "roleIntermediate": "Podpisany przez główny; podpisuje certyfikaty końcowe",
      "roleLeaf": "Identyfikuje serwer lub klienta",
      "thisCert": "ten certyfikat",
      "issuedBy": "Wystawiony przez",
      "signs": "podpisuje",
      "trustNote": "Zaufanie płynie w dół: każdy certyfikat jest podpisany przez ten powyżej, aż do głównego, któremu Twój system już ufa.",
      "sct": {
        "intro": "Osadzone SCT: {n}. Każdy to podpisany dowód dziennika CT, że zarejestrował ten certyfikat; przeglądarki wymagają minimalnej liczby, aby certyfikat był zaufany.",
        "entry": "SCT {i}",
        "logId": "ID dziennika",
        "timestamp": "Zarejestrowano",
        "signature": "Podpis",
        "note": "Podpisy są wyświetlane, ale nie są tu weryfikowane; weryfikacja SCT wymaga klucza publicznego dziennika i precertyfikatu."
      }
    },
    "ipv6": {
      "name": "Zestaw narzędzi IPv6",
      "blurb": "Sparsuj adres lub prefiks IPv6, aby zobaczyć jego postać kanoniczną (RFC 5952) i w pełni rozwiniętą, klasyfikację specjalnego przeznaczenia, arytmetykę prefiksu, adres MAC EUI-64 (jeśli występuje) oraz jego nazwę odwrotnego DNS ip6.arpa. Działa w całości w twojej przeglądarce.",
      "inputLabel": "Adres lub prefiks IPv6",
      "inputPlaceholder": "2001:db8::1/64",
      "runsLocally": "Parsowanie działa lokalnie. Adres nigdy nie opuszcza twojej przeglądarki.",
      "errors": {
        "empty": "Wprowadź adres lub prefiks IPv6 do zdekodowania.",
        "format": "To nie jest prawidłowy adres IPv6. Użyj ośmiu grup hex, opcjonalnie skompresowanych raz za pomocą :: (na przykład 2001:db8::1).",
        "prefix": "Długość prefiksu nie jest prawidłowa. Dla IPv6 musi mieścić się w zakresie od 0 do 128."
      },
      "panels": {
        "forms": "Postacie kanoniczne",
        "classification": "Klasyfikacja",
        "prefix": "Prefiks",
        "identifiers": "Identyfikatory"
      },
      "fields": {
        "compressed": "Skompresowany (RFC 5952)",
        "expanded": "Rozwinięty",
        "type": "Typ",
        "scope": "Zasięg",
        "embeddedIpv4": "Osadzony IPv4",
        "network": "Sieć",
        "firstAddress": "Pierwszy adres",
        "lastAddress": "Ostatni adres",
        "count": "Adresy",
        "hostBits": "Bity hosta",
        "eui64": "MAC EUI-64",
        "reverseDns": "Odwrotny DNS (ip6.arpa)"
      },
      "badges": {
        "multicast": "multicast"
      },
      "segHeading": "Struktura adresu",
      "networkSeg": "Prefiks sieci",
      "ifaceId": "ID interfejsu",
      "hostBits": "Bity hosta",
      "prefixNote": "Bity na lewo od granicy są ustalone przez prefiks; bity po prawej identyfikują hosta w jego obrębie.",
      "conventionNote": "Nie podano prefiksu, więc linia przerywana oznacza umowny podział /64: prefiks routingu i podsieć po lewej, 64-bitowy identyfikator interfejsu po prawej."
    },
    "cipher": {
      "name": "Dekoder zestawów szyfrów",
      "blurb": "Wpisz zestaw szyfrów TLS, jako nazwę IANA, nazwę OpenSSL lub GnuTLS albo szesnastkowy punkt kodowy, aby rozłożyć go na wymianę kluczy, uwierzytelnianie, szyfr, tryb i MAC, wraz z czytelną oceną bezpieczeństwa i oficjalną rekomendacją IANA. Działa w całości w przeglądarce, na wbudowanej kopii rejestru IANA.",
      "inputLabel": "Zestaw szyfrów",
      "inputPlaceholder": "TLS_AES_128_GCM_SHA256, ECDHE-RSA-AES128-GCM-SHA256 lub 0x1301",
      "runsLocally": "Dekodowanie działa lokalnie, na wbudowanej kopii rejestru zestawów szyfrów TLS organizacji IANA. Nic nie jest nigdzie wysyłane.",
      "notInRegistryNote": "Ta nazwa została przeanalizowana strukturalnie, ale nie znaleziono jej w wbudowanej migawce rejestru IANA — dlatego jej punkt kodowy i nazwy równoważne nie są pokazywane.",
      "errors": {
        "empty": "Wpisz zestaw szyfrów do zdekodowania.",
        "format": "To nie jest zestaw szyfrów. Wpisz nazwę IANA (TLS_...), nazwę OpenSSL lub szesnastkowy punkt kodowy, np. 0x1301.",
        "unknown": "To poprawny format punktu kodowego, ale nie jest to zestaw szyfrów przypisany w rejestrze IANA."
      },
      "ratings": {
        "recommended": "Zalecany",
        "secure": "Bezpieczny",
        "weak": "Słaby",
        "insecure": "Niebezpieczny",
        "unknown": "Nieznany"
      },
      "iana": {
        "Y": "IANA: zalecany",
        "N": "IANA: niezalecany",
        "D": "IANA: odradzany"
      },
      "badges": {
        "tls13": "TLS 1.3",
        "notInRegistry": "Poza migawką IANA"
      },
      "panels": {
        "identity": "Tożsamość",
        "components": "Składniki",
        "security": "Bezpieczeństwo"
      },
      "fields": {
        "codePoint": "Punkt kodowy",
        "name": "Nazwa IANA",
        "openssl": "Nazwa OpenSSL",
        "gnutls": "Nazwa GnuTLS",
        "protocol": "Protokół",
        "dtls": "DTLS-OK",
        "references": "Odniesienia"
      },
      "protocol": {
        "tls13": "TLS 1.3",
        "legacy": "TLS 1.2 i wcześniejsze"
      },
      "comp": {
        "keyExchange": "Wymiana kluczy",
        "authentication": "Uwierzytelnianie",
        "forwardSecrecy": "Utajnianie z wyprzedzeniem",
        "cipher": "Szyfr",
        "mode": "Tryb",
        "aead": "AEAD",
        "prf": "Skrót PRF/KDF",
        "mac": "MAC",
        "yes": "Tak",
        "no": "Nie",
        "bits": "{n} bitów",
        "negotiatedSeparately": "Negocjowane osobno (TLS 1.3)"
      },
      "reasons": {
        "nullCipher": "Szyfr NULL: ruch nie jest w ogóle szyfrowany.",
        "anon": "Anonimowa wymiana kluczy: druga strona nie jest uwierzytelniana, więc nie daje to żadnej ochrony przed aktywnym atakiem typu man-in-the-middle.",
        "export40": "Klucz klasy eksportowej (40-bitowy): trywialny do złamania metodą brute force, relikt reguł eksportowych z lat 90.",
        "rc4": "Szyfr strumieniowy RC4: tendencyjny strumień klucza czyni go złamanym, a RFC 7465 zakazuje go dla TLS.",
        "singleDes": "Pojedynczy DES z kluczem 56-bitowym: możliwy do złamania metodą brute force w ciągu godzin.",
        "rc2": "RC2: przestarzały szyfr 40/64-bitowy, niebezpieczny do nowoczesnego użytku.",
        "tripleDes": "3DES ma blok 64-bitowy, co naraża go na atak urodzinowy Sweet32 (CVE-2016-2183). RFC 8429 uznaje go za przestarzały.",
        "md5Mac": "MAC z MD5: MD5 jest kryptograficznie złamany.",
        "cbcMac": "CBC z MAC HMAC-SHA1 lub MD5 stosuje MAC-then-encrypt i jest narażony na ataki padding oracle, takie jak BEAST i Lucky13.",
        "ccm8": "CCM_8 skraca znacznik uwierzytelniający do 8 bajtów, osłabiając integralność. IANA nie oznacza go jako zalecanego.",
        "noFs": "Brak utajniania z wyprzedzeniem: przy statycznej wymianie kluczy jeden skompromitowany klucz długoterminowy może odszyfrować wcześniejsze sesje. Nowoczesne wytyczne wymagają ECDHE lub DHE.",
        "legacyCipher": "{value} to przestarzały szyfr, nieaktualny dla TLS.",
        "aead": "Szyfr AEAD (szyfrowanie uwierzytelnione): poufność i integralność w jednej prymitywie, bez osobnego MAC, którego można użyć niewłaściwie.",
        "fs": "Utajnianie z wyprzedzeniem: efemeryczna wymiana kluczy utrzymuje wcześniejszy ruch w bezpieczeństwie, nawet jeśli klucz długoterminowy zostanie później skompromitowany.",
        "tls13": "Zestaw TLS 1.3: wyłącznie nowoczesne szyfry AEAD, z wymianą kluczy negocjowaną osobno i zawsze efemeryczną.",
        "ianaD": "IANA oznacza ten zestaw jako \"D\" (odradzany): NIE POWINIEN lub NIE MOŻE być używany, zależnie od sytuacji.",
        "ianaN": "IANA nie oznacza tego zestawu jako \"Zalecany\": ma ograniczone zastosowanie lub nie przeszedł procesu konsensusu IETF.",
        "signalling": "Zestaw sygnalizacyjny (SCSV): nie jest prawdziwym szyfrem, lecz przenosi sygnał protokołu, taki jak ochrona przed degradacją lub informacja o renegocjacji."
      },
      "groups": {
        "title": "Grupy wymiany kluczy",
        "intro": "TLS negocjuje właściwą grupę uzgadniania kluczy oddzielnie od zestawu szyfrów, w rozszerzeniu supported_groups. Ponieważ \"harvest now, decrypt later\" napędza przejście na postkwantową wymianę kluczy, poniższe grupy hybrydowe łączą klasyczną krzywą z ML-KEM.",
        "kind": {
          "ecdhe": "Krzywa ECDHE",
          "ffdhe": "DH ciała skończonego",
          "pq-hybrid": "Hybryda PQ"
        },
        "pq": {
          "classical": "Klasyczny",
          "hybrid-pq": "Hybrydowy PQ"
        },
        "recommended": "Zalecany",
        "obsolete": "Przestarzały",
        "legacy": "Starszy",
        "combines": "Łączy {classical} z {pq}",
        "foot": "X25519MLKEM768 to grupa hybrydowa, którą większość przeglądarek wysyła teraz domyślnie."
      }
    },
    "f5-ssl-profile-explainer": {
      "name": "Objaśniacz profilu SSL F5",
      "blurb": "Wklej profil client-ssl lub server-ssl z tmsh i poznaj jego rolę, macierz protokołów TLS oraz ocenę bezpieczeństwa obejmującą łańcuch, renegocjację, SNI, OCSP i wzajemne TLS — wszystko w przeglądarce.",
      "inputLabel": "Profil SSL (tmsh)",
      "inputPlaceholder": "ltm profile client-ssl /Common/name ...",
      "runsLocally": "Przetwarzane w przeglądarce. Nic nie jest nigdzie wysyłane.",
      "scopeNote": "Dekoduje wklejony blok profilu. Nigdy nie łączy się z BIG-IP.",
      "errorTitle": "Nie udało się odczytać profilu",
      "err_empty": "Wklej profil SSL, aby zacząć.",
      "err_noHeader": "Oczekiwano wiersza w postaci: ltm profile client-ssl /Common/name ...",
      "err_noBody": "Nie znaleziono nawiasu otwierającego w profilu.",
      "err_tooLong": "Te dane są zbyt duże do przetworzenia.",
      "err_invalid": "To nie wygląda na profil client-ssl ani server-ssl.",
      "protocolsHeading": "Wersje protokołu TLS",
      "permitted": "dozwolony",
      "disabled": "wyłączony",
      "findingsHeading": "Ocena bezpieczeństwa",
      "settingsHeading": "Objaśnienie ustawień",
      "topoHeading": "Na ścieżce danych",
      "nodeClient": "Klient",
      "nodeBigip": "BIG-IP",
      "nodePool": "Członek puli",
      "clientLeg": "TLS po stronie klienta",
      "serverLeg": "Strona serwera",
      "thisProfile": "ten profil",
      "clientNote": "Profil client-ssl kończy TLS klienta na BIG-IP. Połączenie do członka puli jest ponownie szyfrowane tylko wtedy, gdy zastosowano profil server-ssl; bez niego ten odcinek jest jawnym tekstem (SSL offload).",
      "serverNote": "Profil server-ssl pozwala BIG-IP otworzyć nowe połączenie TLS do członka puli (ponowne szyfrowanie). Stroną klienta zajmuje się osobny profil client-ssl."
    },
    "epoch": {
      "name": "Konwerter czasu Unix",
      "blurb": "Wpisz znacznik czasu Unix — sekundy, milisekundy, mikrosekundy lub nanosekundy, wykrywane automatycznie — albo datę ISO-8601 i odczytaj ją we wszystkich popularnych formatach. Wszystko w przeglądarce.",
      "inputLabel": "Znacznik czasu lub data",
      "inputPlaceholder": "1700000000  lub  2023-11-14T22:13:20Z",
      "runsLocally": "Przekonwertowane w przeglądarce. Nic nie jest nigdzie wysyłane.",
      "scopeNote": "Czysta matematyka dat. Jednostka jest wnioskowana z wielkości liczby; popraw w razie potrzeby.",
      "nowButton": "Teraz",
      "errorTitle": "Nie udało się tego odczytać",
      "err_empty": "Wprowadź znacznik czasu lub datę, aby zacząć.",
      "err_invalid": "To nie jest znacznik czasu Unix ani data ISO-8601.",
      "err_tooLong": "To wejście jest za długie.",
      "err_outOfRange": "Ten znacznik czasu jest poza reprezentowalnym zakresem dat.",
      "utcHeading": "Data i godzina UTC",
      "formatsHeading": "Wszystkie formaty",
      "dayOfYearLabel": "dzień roku",
      "relativeNote": "względem zegara Twojego urządzenia"
    },
    "irules-event-order": {
      "name": "Kolejność zdarzeń iRule",
      "blurb": "Wybierz stos profili wirtualnego serwera BIG-IP — Client-SSL, HTTP, Server-SSL, pula — i zobacz kolejność, w jakiej wyzwalają się typowe zdarzenia iRule, od CLIENT_ACCEPTED do CLIENT_CLOSED, jako oś czasu i listę. Wszystko w przeglądarce.",
      "stackLabel": "Stos profili wirtualnego serwera",
      "tog_clientssl": "Profil Client-SSL",
      "tog_http": "Profil HTTP",
      "tog_serverssl": "Profil Server-SSL",
      "tog_pool": "Pula (równoważenie obciążenia)",
      "tog_fastl4": "FastL4 (szybka ścieżka pakietów)",
      "presetsLabel": "Ustawienia wstępne:",
      "preset_https": "HTTPS z ponownym szyfrowaniem",
      "preset_offload": "Odciążanie SSL",
      "preset_http": "HTTP",
      "preset_tcp": "Czyste TCP",
      "runsLocally": "Obliczone w przeglądarce. Nic nie jest nigdzie wysyłane.",
      "scopeNote": "Model udokumentowanego zachowania F5 dla wirtualnego serwera Standard. Nigdy nie kontaktuje się z BIG-IP.",
      "diagramHeading": "Sekwencja zdarzeń",
      "listHeading": "Zdarzenia w kolejności",
      "conditionalHeading": "Zdarzenia warunkowe",
      "conditionalNote": "Wyzwalają się tylko w określonych warunkach: TCP::collect lub HTTP::collect, niepowodzenie równoważenia, albo odpowiedź 100 Continue.",
      "sideClient": "strona klienta",
      "sideServer": "strona serwera",
      "sideGlobal": "globalne"
    },
    "cert-renewal-planner": {
      "name": "Planer odnawiania certyfikatów",
      "blurb": "Oblicz ważność certyfikatu TLS, czy mieści się w 47-dniowym harmonogramie CA/Browser Forum, oraz wynikającą z tego częstotliwość odnawiania; wszystko offline.",
      "notBeforeLabel": "Wydany (notBefore)",
      "notAfterLabel": "Wygasa (notAfter)",
      "runsLocally": "Wszystko działa w Twojej przeglądarce; nic nie jest wysyłane.",
      "exampleLabel": "Wypróbuj przykład 90-dniowy",
      "summaryHeading": "Ten certyfikat",
      "validity": "Ważność {days} dni",
      "compliantBadge": "W granicach limitu",
      "overCapBadge": "Powyżej limitu",
      "maxForPhase": "Maksimum dla daty wydania: {max} dni.",
      "overByText": "{days} dni powyżej maksimum {max} dni dla daty wydania; publiczny urząd CA by go nie wydał.",
      "renewalsValue": "Około {n} odnowień rocznie przy tej ważności.",
      "remainingHeading": "Według zegara Twojego urządzenia",
      "daysRemaining": "{days} dni do wygaśnięcia.",
      "expiredText": "Wygasł {days} dni temu.",
      "renewByText": "Odnów do {date} (około {lead} dni przed wygaśnięciem)",
      "renewByDue": "za {days} dni",
      "reuseHeading": "Ponowne użycie walidacji (era wydania)",
      "dcvText": "Dane walidacji domeny (DCV) można ponownie wykorzystać przez {days} dni.",
      "siiText": "Tożsamość organizacji (SII OV/EV) można ponownie wykorzystać przez {days} dni.",
      "scheduleHeading": "Harmonogram SC-081v3",
      "scheduleIntro": "Publiczne maksima TLS zależą od daty wydania certyfikatu:",
      "colPeriod": "Wydany od",
      "colValidity": "Maks. ważność (dni)",
      "colDcv": "Ponowne użycie DCV (dni)",
      "colSii": "Ponowne użycie SII (dni)",
      "phaseP0": "Przed 15 mar 2026",
      "phaseP1": "15 mar 2026",
      "phaseP2": "15 mar 2027",
      "phaseP3": "15 mar 2029",
      "yourPhase": "← ten certyfikat",
      "projectionHeading": "Obciążenie odnawianiem przy każdym limicie",
      "projectionIntro": "Odnowienia na certyfikat rocznie, w miarę zaostrzania limitów:",
      "perYearShort": "rok",
      "note_overCap": "Ta ważność przekracza maksimum {max} dni dla daty wydania.",
      "note_future47": "Zgodny dziś, ale dłuższy niż przyszły limit 47 dni; spodziewaj się częstszych odnowień w miarę postępu harmonogramu.",
      "note_publicOnly": "Te limity dotyczą wyłącznie publicznie zaufanych certyfikatów TLS. Prywatna lub wewnętrzna PKI nie podlega SC-081v3.",
      "note_automate": "Przy tych częstotliwościach zautomatyzuj wydawanie i odnawianie za pomocą ACME (RFC 8555) i ARI (RFC 9773); ręczne odnawianie się nie skaluje.",
      "err_empty": "Podaj obie daty, wydania i wygaśnięcia.",
      "err_invalidDate": "Użyj prawidłowej daty (RRRR-MM-DD).",
      "err_order": "Data wygaśnięcia musi być późniejsza niż data wydania.",
      "err_tooLong": "Te dane wejściowe są zbyt długie.",
      "err_invalid": "Nie udało się odczytać tych dat."
    },
    "csr-decoder": {
      "name": "Dekoder CSR",
      "blurb": "Zdekoduj żądanie podpisania certyfikatu PKCS#10, aby odczytać jego podmiot, klucz publiczny, żądane nazwy SAN i rozszerzenia oraz atrybuty; wszystko w przeglądarce.",
      "inputLabel": "Żądanie podpisania certyfikatu (PEM, base64 lub hex)",
      "inputPlaceholder": "-----BEGIN CERTIFICATE REQUEST-----\n...",
      "exampleLabel": "Wczytaj przykładowy CSR",
      "runsLocally": "Wszystko działa w Twojej przeglądarce; CSR nigdy nie jest wysyłany.",
      "notCertNote": "CSR to żądanie, a nie certyfikat. Nie ma numeru seryjnego, wystawcy ani dat ważności; tylko to, o co wnioskujący prosi urząd CA, aby poświadczył.",
      "subjectHeading": "Podmiot",
      "colAttr": "Atrybut",
      "colValue": "Wartość",
      "noSubject": "Brak nazwy podmiotu (ten CSR opiera się na żądanych nazwach SAN).",
      "keyHeading": "Klucz publiczny",
      "keyAlgorithmLabel": "Algorytm",
      "keySizeLabel": "Rozmiar",
      "keySizeValue": "{bits} bitów",
      "keyCurveLabel": "Krzywa",
      "keyExponentLabel": "Wykładnik",
      "keyExponentValue": "{exp}",
      "requestedHeading": "Żądane rozszerzenia",
      "sanLabel": "Subject Alternative Names",
      "keyUsageLabel": "Użycie klucza",
      "ekuLabel": "Rozszerzone użycie klucza",
      "basicConstraintsLabel": "Podstawowe ograniczenia",
      "caYes": "CA: tak",
      "caNo": "CA: nie",
      "pathLenValue": "długość ścieżki {n}",
      "noRequested": "Nie zażądano żadnych rozszerzeń.",
      "attributesHeading": "Atrybuty",
      "challengePasswordLabel": "Hasło challenge",
      "unstructuredNameLabel": "Nazwa niestrukturalna",
      "signatureHeading": "Podpis własny",
      "signatureAlgLabel": "Algorytm",
      "signatureBitsLabel": "Długość",
      "signatureBitsValue": "{bits} bitów",
      "versionValue": "Wersja: v1 ({v})",
      "derLengthValue": "DER: {bytes} bajtów",
      "err_empty": "Wklej żądanie podpisania certyfikatu do zdekodowania.",
      "err_format": "To nie wygląda na CSR w formacie PEM, base64 ani hex.",
      "err_der": "Nie udało się przeanalizować struktury DER.",
      "err_structure": "To analizuje się jako DER, ale nie jest żądaniem certyfikacji PKCS#10."
    },
    "oidc": {
      "name": "Dekoder OIDC",
      "blurb": "Wklej token tożsamości OpenID Connect lub dokument .well-known/openid-configuration i zdekoduj go: główne claims, claims profilu, endpointy i możliwości, z kontrolą wymaganych claims, algorytmu podpisu, nonce i PKCE.",
      "inputLabel": "Token tożsamości (JWT) lub JSON openid-configuration",
      "inputPlaceholder": "Wklej token tożsamości lub dokument JSON discovery OIDC",
      "runsLocally": "Dekodowanie odbywa się lokalnie w Twojej przeglądarce. Nigdy nie wywołuje jwks_uri ani żadnego endpointu, i nic nie jest nigdzie wysyłane.",
      "notVerifiedNote": "To narzędzie dekoduje i wyjaśnia. Nie weryfikuje podpisu tokenu, nie pobiera kluczy podpisu i nie sprawdza wygaśnięcia względem zegara.",
      "errors": {
        "empty": "Wklej token tożsamości lub dokument openid-configuration do zdekodowania.",
        "malformed-json": "To zaczyna się jak JSON, ale nie udało się go sparsować. Sprawdź, czy nie brakuje nawiasu klamrowego, przecinka lub cudzysłowu.",
        "json-not-oidc": "To jest JSON, ale nie dokument discovery OpenID Connect. Wklej token tożsamości lub dokument .well-known/openid-configuration.",
        "not-jwt": "To nie wygląda na JWT ani dokument OIDC. Wklej token tożsamości lub dokument discovery.",
        "jwt-header": "Nie udało się zdekodować nagłówka tokenu. JWT składa się z trzech części base64url oddzielonych kropkami.",
        "jwt-payload": "Nie udało się zdekodować ładunku tokenu jako JSON."
      },
      "badges": {
        "idToken": "ID Token",
        "discovery": "Discovery",
        "signed": "Podpisany",
        "unsigned": "Niepodpisany",
        "algNone": "alg: none",
        "algUnknown": "alg: ?"
      },
      "panels": {
        "header": "Nagłówek",
        "coreClaims": "Główne claims tokenu ID",
        "metadata": "Dostawca",
        "endpoints": "Endpointy",
        "capabilities": "Możliwości"
      },
      "categories": {
        "binding": "Powiązanie tokenu",
        "profile": "Claims profilu",
        "email": "E-mail",
        "address": "Adres",
        "phone": "Telefon",
        "oauth": "OAuth / sesja",
        "other": "Inne claims"
      },
      "fields": {
        "alg": "Algorytm",
        "typ": "Typ",
        "kid": "ID klucza",
        "iss": "Wystawca (iss)",
        "sub": "Podmiot (sub)",
        "aud": "Odbiorca (aud)",
        "azp": "Strona autoryzowana (azp)",
        "nonce": "Nonce",
        "acr": "Kontekst auth (acr)",
        "amr": "Metody auth (amr)",
        "authTime": "Czas auth",
        "iat": "Wystawiono (iat)",
        "nbf": "Nie przed (nbf)",
        "exp": "Wygasa (exp)",
        "issuer": "Wystawca"
      },
      "reasons": {
        "MISSING_REQUIRED_CLAIM": "Brak wymaganego claim {value}. Token ID musi zawierać iss, sub, aud, exp i iat.",
        "ALG_NONE": "Token używa alg none, co oznacza, że jest niepodpisany. Niepodpisany token ID niczego nie dowodzi i musi zostać odrzucony.",
        "ALG_SYMMETRIC": "Podpisany za pomocą {value}, algorytmu symetrycznego (HMAC). Tokeny ID od publicznego dostawcy zwykle używają algorytmu asymetrycznego, takiego jak RS256 lub ES256, aby strona ufająca mogła zweryfikować kluczem publicznym.",
        "ALG_UNKNOWN": "Podpisany za pomocą {value}, algorytmu, którego to narzędzie nie rozpoznaje. Potwierdź, że jest to oczekiwany, silny algorytm.",
        "SIGNED_ASYMMETRIC": "Podpisany za pomocą {value}, algorytmu asymetrycznego. Strona ufająca weryfikuje go względem klucza publicznego dostawcy z JWKS.",
        "NO_NONCE": "Brak claim nonce. Nonce wiąże token z żądaniem uwierzytelnienia i chroni przed atakiem powtórzeniowym. Powinien być obecny, gdy żądanie go wysłało.",
        "MULTI_AUD_NO_AZP": "Token ma wielu odbiorców, ale brak azp (strony autoryzowanej). Przy więcej niż jednym odbiorcy azp powinno wskazywać klienta, dla którego jest token.",
        "DISCOVERY_MISSING_FIELD": "Brak wymaganego pola discovery {value}.",
        "DISCOVERY_ALG_NONE": "Dostawca ogłasza algorytm podpisu none dla tokenów ID, co pozwalałoby na niepodpisane tokeny. Nie powinno to być oferowane.",
        "DISCOVERY_NO_PKCE": "Brak code_challenge_methods_supported. Dostawca nie ogłasza PKCE, który jest zalecany dla przepływu authorization code.",
        "DISCOVERY_NO_PKCE_S256": "PKCE jest ogłaszane, ale bez metody S256. S256 to zalecana metoda code challenge."
      },
      "flow": {
        "heading": "Przepływ authorization code",
        "laneRp": "Strona ufająca",
        "laneOp": "Dostawca OpenID",
        "s1": "Przekieruj użytkownika do dostawcy z scope=openid",
        "s2": "Dostawca uwierzytelnia użytkownika i uzyskuje zgodę",
        "s3": "Dostawca przekierowuje z powrotem z authorization code",
        "s4": "Strona ufająca wymienia kod w endpoincie tokenu",
        "s5": "Dostawca zwraca token ID oraz token dostępu",
        "s6": "Strona ufająca weryfikuje podpis tokenu ID względem JWKS",
        "s7": "Strona ufająca może wywołać UserInfo z tokenem dostępu",
        "s8": "Dostawca zwraca claims użytkownika"
      }
    }
  },
  "privacy_page": {
    "eyebrow": "Prywatność",
    "title": "Twoje dane i co ta witryna z nimi robi",
    "lede": "Wyjaśnienie prostym językiem, co dokładnie ta witryna robi i czego nie robi z Twoimi informacjami. Zostało napisane tak, by było dokładne, a nie tylko uspokajające, ponieważ pod regulacjami takimi jak GDPR i brazylijska LGPD liczy się dokładne ujawnienie.",
    "shortTitle": "Wersja krótka",
    "short1": "Ta witryna nie ustawia plików cookie, nie uruchamia analityki, nie używa reklam i nie zawiera śledzących skryptów stron trzecich ani fingerprintingu. Nic nie podąża za Tobą po sieci.",
    "short2": "Nie sprzedaje, nie udostępnia ani nie tworzy profili swoich odwiedzających i nie prosi Cię o nic, byś mógł ją czytać.",
    "short3": "Interaktywne narzędzia działają w całości w Twojej przeglądarce. To, co w nie wklejasz lub wpisujesz, pozostaje na Twoim urządzeniu i nie jest nigdzie przesyłane.",
    "short4": "Tylko trzy rzeczy w ogóle dotyczą danych, a każda jest wyjaśniona poniżej: pojedyncze ustawienie motywu zapisane w Twojej własnej przeglądarce, standardowe dzienniki połączeń, które każda wizyta na witrynie tworzy w warstwie hostingu, oraz każda wiadomość, którą zdecydujesz się wysłać e-mailem.",
    "controllerTitle": "Kto jest odpowiedzialny",
    "controllerBody": "To jest osobista witryna Rodolfo Nützmann (ronutz.com). W każdej kwestii prywatności lub aby skorzystać z któregokolwiek z praw opisanych poniżej, napisz na {email}. Zapytania są obsługiwane bezpośrednio przez Rodolfo Nützmann, jako administratora danych.",
    "noTrackTitle": "Bez plików cookie, bez śledzenia, bez analityki",
    "noTrackBody": "Ta witryna nie ustawia żadnych plików cookie. Nie używa żadnej usługi analitycznej (takiej jak Google Analytics czy Plausible), żadnej sieci reklamowej, żadnych pikseli śledzących mediów społecznościowych ani fingerprintingu urządzenia. Twoja wizyta nie jest mierzona, profilowana ani udostępniana komukolwiek w tych celach.",
    "browserTitle": "Co jest przechowywane w Twojej przeglądarce",
    "browserBody": "Jedna mała rzecz: wybrany przez Ciebie motyw wizualny, zapisany w pamięci lokalnej (local storage) Twojej przeglądarki, aby witryna mogła go zapamiętać przy następnej wizycie. To ustawienie dla wygody, które pozostaje na Twoim własnym urządzeniu, nigdy nie jest wysyłane do tej witryny ani do nikogo innego i może zostać wyczyszczone w dowolnym momencie przez Twoją przeglądarkę. Żadne inne dane o Tobie nie są przechowywane na Twoim urządzeniu.",
    "hostingTitle": "Hosting i dzienniki serwera",
    "hostingBody": "Witryna jest dostarczana za pośrednictwem Cloudflare, który zapewnia jej hosting i dostarczanie treści. Jak w przypadku każdej witryny, załadowanie strony oznacza, że Twoje urządzenie łączy się z serwerem, a Cloudflare, działając jako dostawca hostingu, przetwarza podstawowe dane połączenia — w tym Twój adres IP i standardowe szczegóły żądania — aby dostarczyć Ci strony i chronić witrynę przed nadużyciami i atakami. To przetwarzanie jest niezbędne do obsługi i zabezpieczenia witryny (prawnie uzasadniony interes na podstawie Artykułu 6(1)(f) GDPR oraz odpowiadających podstaw Artykułów 7 i 10 LGPD). Jest przechowywane jedynie krótko przez dostawcę i nie jest tu używane do identyfikowania ani śledzenia Ciebie.",
    "toolsTitle": "Narzędzia działają w Twojej przeglądarce",
    "toolsBody": "Dekodery i kalkulatory w tej witrynie — dla JWT, adresów IP, certyfikatów i reszty — obliczają w całości wewnątrz Twojej przeglądarki. Wartości, które wprowadzasz, są przetwarzane na Twoim własnym urządzeniu i nigdy nie są wysyłane do serwera. Oddzielny interfejs programowy (API) jest oferowany do automatyzacji i integracji; z założenia jest bezstanowy i nie rejestruje żadnych zapytań ani treści żądań do niego wysyłanych.",
    "contactTitle": "Jeśli się ze mną skontaktujesz",
    "contactBody": "Formularz kontaktowy niczego nie wysyła do serwera. Zamiast tego otwiera wstępnie wypełnioną wiadomość w Twojej własnej aplikacji pocztowej, którą następnie sam wysyłasz ze swojego własnego konta, więc nic nie przechodzi przez stronę trzecią. Jeśli napiszesz, czy to przez formularz, czy bezpośrednio, otrzymuję informacje, które zamieścisz, takie jak Twoje imię, adres e-mail i wiadomość, i używam ich wyłącznie, by Ci odpowiedzieć. Przechowuję je tylko tak długo, jak potrzeba do obsługi Twojego zapytania, nie używam ich do marketingu i nie udostępniam ich.",
    "intlTitle": "Przetwarzanie poza Twoim krajem",
    "intlBody": "Ponieważ Cloudflare obsługuje globalną sieć, opisane powyżej przetwarzanie na poziomie połączenia może odbywać się na serwerach znajdujących się poza Twoim własnym krajem, w tym poza Brazylią i Europejskim Obszarem Gospodarczym. Tam, gdzie dane osobowe są w ten sposób przetwarzane międzynarodowo, odbywa się to pod zabezpieczeniami oferowanymi przez danego dostawcę.",
    "childrenTitle": "Dzieci",
    "childrenBody": "Ta witryna jest przeznaczona dla profesjonalnej, ogólnej publiczności. Nie jest skierowana do dzieci i nie zbiera świadomie ich danych osobowych.",
    "rightsTitle": "Twoje prawa",
    "rightsBody": "W zależności od tego, gdzie mieszkasz, masz prawa do swoich danych osobowych, w tym dostępu do nich, ich sprostowania lub usunięcia, sprzeciwu wobec ich przetwarzania lub jego ograniczenia, żądania kopii w formacie przenośnym oraz uzyskania informacji o tym, jak są przetwarzane. Aby skorzystać z któregokolwiek z nich, po prostu napisz na {email}. Ponieważ przetwarza się tu tak niewiele danych osobowych, w praktyce zwykle jest bardzo niewiele do zrobienia, ale kanał jest zawsze otwarty.",
    "rightsGdpr": "Jeśli przebywasz w Europejskim Obszarze Gospodarczym lub Wielkiej Brytanii, masz również prawo wniesienia skargi do swojego lokalnego organu nadzorczego ds. ochrony danych.",
    "rightsLgpd": "Jeśli przebywasz w Brazylii, przysługują Ci prawa określone w Artykule 18 LGPD, a także możesz skontaktować się z krajowym organem ochrony danych (ANPD).",
    "changesTitle": "Zmiany w niniejszej informacji",
    "changesBody": "Jeśli niniejsza informacja ulegnie zmianie, zmieniona wersja zostanie opublikowana na tej stronie, a data poniżej zostanie zaktualizowana. Istotne zmiany nie będą stosowane wstecz.",
    "updated": "Ostatnia aktualizacja: 30 czerwca 2026",
    "backHome": "Powrót do strony głównej"
  },
  "footer": {
    "redEducation": "Zarezerwuj oficjalne szkolenie w <b>Red Education</b>",
    "privacy": "Prywatność",
    "builtWith": "Stworzone przez Rodolfo Nützmanna z CONCORD",
    "colophon": "Jak to zostało zbudowane",
    "contribute": "Pomóż ulepszyć tłumaczenia",
    "feedback": "Prześlij opinię",
    "api": "Dokumentacja API",
    "contributeTools": "Podziel się pomysłem",
    "license": "Licencja",
    "coffee": "Postaw mi kawę"
  },
  "search": {
    "kindTool": "Narzędzie",
    "kindArticle": "Artykuł",
    "kindPage": "Strona",
    "label": "Szukaj",
    "placeholder": "Szukaj w witrynie…",
    "close": "Zamknij",
    "searching": "Szukam…",
    "noResults": "Brak wyników dla „{query}”.",
    "unavailable": "Wyszukiwanie działa w opublikowanej witrynie. Nie jest dostępne w podglądzie lokalnym.",
    "hint": "Pisz, aby przeszukać artykuły, narzędzia i strony."
  },
  "theme": {
    "label": "Motyw",
    "dark": "Ciemny",
    "light": "Jasny"
  },
  "about": {
    "eyebrow": "Instruktor",
    "role": "Starszy instruktor techniczny",
    "lede": "Szkolenia z sieci i bezpieczeństwa prowadzone przez praktyka, który spędził karierę po stronie wdrożeń, a nie tylko przy slajdach. Z siedzibą w São Paulo, ucząc na całym świecie, po portugalsku i angielsku.",
    "now": {
      "title": "Czym się teraz zajmuję",
      "body": "Prowadzę oficjalne, certyfikowane szkolenia z instruktorem na czterech platformach z zakresu bezpieczeństwa i sieci. Praca jest praktyczna i oparta na laboratoriach: celem zawsze jest to, żeby uczestnicy wyszli zdolni wykonać zadanie, a nie tylko je opisać. Jestem autoryzowanym instruktorem od 1996 roku, a szkolenia i wsparcie techniczne są częścią mojej pracy od końca lat 90.",
      "basedLabel": "Siedziba",
      "basedValue": "São Paulo, Brazylia",
      "teachesLabel": "Uczy",
      "teachesValue": "Szkolenia z instruktorem, zdalne i stacjonarne, na całym świecie",
      "languagesLabel": "Języki",
      "languagesValue": "Portugalski (ojczysty), angielski (biegle)"
    },
    "platforms": {
      "title": "Cztery platformy, nauczane dogłębnie",
      "body": "Bycie certyfikowanym u czterech producentów oznacza, że potrafię uczyć każdego z nich jak należy i porównywać je uczciwie. Oto platformy, na których jestem obecnie autoryzowany do prowadzenia oficjalnych szkoleń.",
      "f5": "BIG-IP w ramach całego programu z instruktorem: LTM, DNS, Advanced WAF (ASM), APM, AFM, SSL Orchestrator, automatyzacja i rozwiązywanie problemów.",
      "fortinet": "Certyfikowane szkolenia Fortinet, w tym ścieżka FCP.",
      "extreme": "Ścieżki switchingu, SD-WAN oraz API i automatyzacji Extreme Networks, obejmujące instalację, konfigurację, zarządzanie i rozwiązywanie problemów.",
      "netskope": "Szkolenia z instruktorem na temat Netskope Security Cloud."
    },
    "path": {
      "title": "Droga aż tutaj",
      "intro": "Moja kariera zaczęła się po stronie producenta i wdrożeń w 1996 roku i pozostała tam przez dwie dekady, zanim poświęciłem się w całości szkoleniom. To zaplecze wdrożeniowe jest powodem, dla którego szkolenia trafiają w sedno: budowałem, psułem i naprawiałem te systemy na produkcji.",
      "present": "obecnie",
      "cabletron": "Inżynier sieci i certyfikowany instruktor. Sieci nie-Ethernet i Ethernet, sieci kampusowe, routing IP.",
      "riverstone": "Inżynier wsparcia produktu i koordynator bazy wiedzy w Kalifornii. Gigabit Ethernet, sieci miejskie, routing IP, BGP. Eskalacja trzeciego poziomu, odtwarzanie scenariuszy klientów i testy regresji.",
      "cisco": "Inżynier doradczy ds. sieci, jako pojedynczy punkt kontaktu dla kluczowych klientów, takich jak SERPRO i Correios. Zarządzanie eskalacjami i satysfakcją klienta.",
      "enterasys": "Inżynier sieci i instruktor. Sieci korporacyjne, routing IP, kontrola dostępu użytkowników i NAC, IDS i IPS.",
      "juniper": "Inżynier wsparcia kanału i instruktor dla korporacyjnych przełączników i zapór sieciowych. Wsparcie techniczne sprzedaży i szkolenia operacyjne z Junos-SRX.",
      "f5channel": "Inżynieria sprzedaży i przedsprzedaży ukierunkowana na kanał dla F5, ze wsparciem technicznym, realizacją proof of concept i szkoleniami partnerów w ramach dystrybucji.",
      "rededucation": "Autoryzowany instruktor szkoleń prowadzący oficjalne, certyfikowane kursy z F5, Fortinet, Extreme Networks i Netskope dla organizacji na całym świecie.",
      "fullHistory": "Przeczytaj całą historię",
      "vendorsLink": "Producenci, z którymi pracowałem"
    },
    "origins": {
      "title": "Gdzie się to zaczęło",
      "body": "Przed formalną karierą była ciekawość. Na początku lat 90. importowałem i składałem komputery, prowadziłem i używałem systemów BBS oraz pracowałem z DOS-em, Uniksem, Linuksem, Netware, wczesnym Ethernetem, X.25 i internetem przez modem. Do 1995 roku ta praktyczna praca stała się pierwszym formalnym zajęciem: budową systemu elektronicznej wymiany danych. Nić przewodnia od tamtej pory do dziś jest ta sama: wziąć coś naprawdę złożonego i sprawić, żeby działało, a potem uczynić to zrozumiałym dla kogoś innego."
    },
    "approach": {
      "title": "Jak uczę",
      "body": "Wybrałem specjalizację w szkoleniach, ponieważ łączą one głęboką wiedzę techniczną z tą częścią pracy, którą lubię najbardziej: wyjaśnianiem złożonych pojęć w prosty sposób. Najlepsze sesje łączą każde pojęcie z zadaniem, które uczestnik faktycznie musi wykonać, żeby treść miała gdzie wylądować. Przykłady z prawdziwego świata, prawdziwe laboratoria i nacisk na zrozumienie ponad zapamiętywanie."
    },
    "cta": {
      "title": "Zacznij od koncepcji",
      "body": "Sekcja Naucz się wyjaśnia idee stojące za narzędziami, a narzędzia pozwalają ci pracować z nimi bezpośrednio, wszystko w twojej przeglądarce.",
      "learnButton": "Przeczytaj sekcję Naucz się",
      "toolsButton": "Otwórz narzędzia"
    },
    "recognition": {
      "title": "Wyróżnienia",
      "body": "Wyróżniony jako F5 DevCentral MVP przez trzy kolejne lata, w 2022, 2023 i 2024, za wkład w techniczną społeczność F5."
    }
  },
  "endorsements": {
    "eyebrow": "Opinie",
    "title": "Co mówią ludzie, własnymi słowami.",
    "intro": "{count} rekomendacji i recenzji w całości, na przestrzeni dwóch dekad nauczania i doradztwa. Nic tutaj nie jest sparafrazowane ani zredagowane.",
    "provenance": "Pochodzące z rekomendacji LinkedIn, recenzji Google i zweryfikowanych opinii uczestników szkoleń Red Education. Oryginalne sformułowania i pisownia są zachowane dokładnie tak, jak je napisano."
  },
  "testimonials": {
    "filterLabel": "Filtruj opinie",
    "sourceFilter": "Źródło",
    "languageFilter": "Język",
    "all": "Wszystkie",
    "showing": "Wyświetlanie {count} z {total}",
    "reply": "Odpowiedź Red Education",
    "translateLabel": "Tłumaczenie",
    "translateOff": "Przetłumacz na angielski",
    "translateOn": "Wyświetlanie po angielsku",
    "machineDisclaimer": "Tłumaczenie maszynowe. Może nie oddawać dokładnie oryginalnego sformułowania.",
    "showOriginal": "Pokaż oryginał",
    "hideOriginal": "Ukryj oryginał"
  },
  "history": {
    "indexTitle": "Historia",
    "indexLede": "Trzy epoki, jedna nić przewodnia: wziąć coś naprawdę złożonego, sprawić, żeby działało, a potem uczynić to zrozumiałym dla kogoś innego.",
    "eraLabel": "Epoka",
    "backToHistory": "Wszystkie epoki",
    "backToAbout": "O mnie",
    "readNext": "Czytaj dalej",
    "pre1996": {
      "years": "Przed 1996",
      "title": "Ciekawość",
      "subtitle": "Importowanie części, składanie maszyn i łączenie się z wczesnym internetem, zanim cokolwiek z tego było pracą.",
      "intro": "Każda kariera techniczna ma swoje wcześniej. Przed odznakami producentów i certyfikatami był nastolatek, który rozbierał maszyny, żeby zrozumieć, jak działają, i młody przedsiębiorca, który zamieniał to zrozumienie w źródło utrzymania. To tutaj ukształtował się instynkt, który napędza całą resztę.",
      "s1Title": "Praktyka ze sprzętem, od 1991 do 1995",
      "s1Body": "Od 1991 roku praca była samodzielna i praktyczna: importowanie podzespołów komputerowych ze Stanów Zjednoczonych, składanie i sprzedaż komputerów osobistych na zamówienie oraz instalowanie ich, konfigurowanie i naprawianie dla każdego, kto potrzebował pomocy. Była to epoka, w której budowało się maszynę z podzespołów i sprawiało, żeby działała, zamiast kupować gotową. Systemy tamtych czasów przeszły wprost przez te ręce: DOS i CP/M, BASIC, Turbo Pascal, wczesny Windows i aplikacje biurowe oraz narzędzia bazodanowe, na których działały wtedy małe firmy, Clipper i dBase.",
      "s2Title": "Sieci sprzed internetu",
      "s2Body": "Sieci nie zaczęły się od sieci WWW. Na długo przed łączami szerokopasmowymi tkanka, która wszystko łączyła, była inna i trudniejsza w obsłudze: Novell NetWare dla serwerów lokalnych, systemy BBS dla społeczności i wymiany plików, wczesne sieci Ethernet oraz ówczesne technologie rozległe, X.25 (w Brazylii znane jako RENPAC) i Frame Relay. Gdy internet w końcu nadszedł, nadszedł przez modem, osiągany przez konto powłoki, SLIP albo PPP. Praca z tym wszystkim oznaczała rozumienie sieci od kabla, zrozumienie, które później sprawiło, że sieci korporacyjne wydawały się znajomym terenem.",
      "s3Title": "BBS, phreaking i internet akademicki",
      "s3Body": "Prawdziwa ciekawość tamtej epoki sięgała poza pracę za pieniądze. Eksploracje tamtych lat obejmowały prowadzenie i używanie systemów BBS, majsterkowanie przy sieci telefonicznej w środowisku phreakingu, praktyczny UNIX i wczesny dostęp do internetu akademickiego. Było to uczenie się przez działanie, w społeczności, która dzieliła się wiedzą, bo nie było jej skąd inąd wziąć. Ten nawyk, drążenia, aż coś zostanie naprawdę zrozumiane, a potem przekazywania tego dalej, nigdy nie zniknął.",
      "s4Title": "1995: pierwsze formalne zajęcie",
      "s4Body": "W 1995 roku samodzielna praca przerodziła się w pierwsze formalne zajęcie. W INTELECTA, firmie inkubowanej przez SEBRAE-SP, projektem był system elektronicznej wymiany danych do handlu artykułami medycznymi i szpitalnymi, zbudowany na serwerach Novell NetWare i systemie BBS PCBoard. Był to prawdziwy system, rozwiązujący prawdziwy problem biznesowy, i wyznaczył moment, w którym hobby i rzemiosło stały się zawodem.",
      "closer": "Pod koniec 1995 roku fundamenty były położone: osoba, która rozumiała maszyny i sieci od podstaw, która uczyła się przez budowanie i która miała już instynkt wyjaśniania. Wszystko, co nastąpiło później, producenci, certyfikaty, sale wykładowe na całym świecie, zostało zbudowane na tym."
    },
    "era19962020": {
      "years": "1996 – 2020",
      "title": "Człowiek z branży",
      "subtitle": "Dwie dekady wewnątrz branży sieci i bezpieczeństwa, budując, psując i naprawiając systemy, które później stały się materiałem kursowym.",
      "intro": "To jest długi środek tej historii i powód, dla którego szkolenia, które przyszły później, mają wagę. Przez około dwie dekady praca polegała na wdrożeniach: projektowaniu sieci, uruchamianiu ich, rozwiązywaniu ich problemów pod presją i byciu osobą, do której się dzwoni, gdy coś krytycznego się psuło. Podróż wiodła przez niektóre z nazw, które definiowały sieci, na dwóch kontynentach.",
      "s1Title": "Cabletron i Enterasys, od 1996 do 2000",
      "s1Body": "Formalna kariera zaczęła się w 1996 roku w Cabletron Systems, wówczas wiodącym dostawcy sprzętu sieciowego z siedzibą w Rochester w stanie New Hampshire. Przez cztery i pół roku rola obejmowała inżynierię terenową i wsparcie posprzedażowe, inżynierię systemów i przedsprzedaż oraz, od 1997 roku, certyfikowane szkolenia. Tematem była ówczesna korporacyjna sieć LAN i WAN: przełączniki, routery, Wi-Fi i WLAN, zarządzanie siecią, NAC i UAC oraz zapory ze stanową inspekcją. W 2000 roku Cabletron zreorganizował się w cztery firmy, a część dotycząca tej kariery stała się Enterasys Networks.",
      "s2Title": "Riverstone Networks, Santa Clara, od 2000 do 2002",
      "s2Body": "Następny rozdział rozegrał się w Kalifornii. Riverstone Networks, wydzielona z Cabletron firma budująca sprzęt do sieci miejskich, oznaczała przeprowadzkę do Santa Clara z wizą pracowniczą H1-B1. Rolą był inżynier wsparcia produktu poziomu III i koordynator zarządzania wiedzą: techniczna eskalacja trzeciego poziomu, odtwarzanie scenariuszy klientów w laboratorium, testy regresji i weryfikacja błędów oraz budowa bazy wiedzy, na której opierało się reszta wsparcia. Technologie były kręgosłupem świata operatorów i sieci miejskich początku lat 2000: Gigabit Ethernet, MPLS, switching i routing miejski oraz BGP. Ten okres przyniósł też formalny kamień milowy: w ramach procedury wizowej ocena w Stanach Zjednoczonych w 2001 roku uznała wykształcenie równoważne z licencjatem z informatyki i licencjatem z zarządzania.",
      "s3Title": "Cisco Systems, Brasília, od 2003 do 2004",
      "s3Body": "Po powrocie do Brazylii i zatrudniony przez Cisco Professional Services, rola przesunęła się ku relacji z klientem w jej najbardziej wymagającej formie. Jako high-touch operations manager i pojedynczy punkt kontaktu, praca polegała na zarządzaniu satysfakcją klienta w okresie posprzedażowym dla dwóch z największych podmiotów federalnych Brazylii, SERPRO, rządowej agencji przetwarzania danych, i ECT-Correios, poczty narodowej. Powierzchnię techniczną stanowiły przełączniki i routery Catalyst, zapory PIX oraz równoważniki obciążenia CSS, CSM i ACE, ale prawdziwą pracą było zarządzanie eskalacjami i utrzymywanie krytycznej infrastruktury narodowej w nieprzerwanym działaniu.",
      "s4Title": "Znów Enterasys, potem Juniper, od 2005 do 2010",
      "s4Body": "Druga połowa dekady wróciła na stronę producenta jako ekspert od korporacyjnej sieci LAN. W Enterasys od 2005 roku nacisk kładziono na przełączniki i routery, Wi-Fi i WLAN, zarządzanie siecią, NAC i UAC oraz wykrywanie i zapobieganie włamaniom, obejmując projektowanie rozwiązań, wdrożenia, audyty i szkolenia. Od 2009 roku, w Juniper Networks poprzez Professional Services dla Ameryki Łacińskiej, rolą było promowanie nowych produktów dla strategicznego partnera Telefónica Empresas w Brazylii, z naciskiem na przełączniki EX i zapory SRX, ze szkoleniami operacyjnymi z Junos-SRX prowadzonymi w Level 3 i Impsat, dziś Lumen.",
      "s5Title": "Lata kanału i doradztwa, od 2010 do 2020",
      "s5Body": "Ostatnia dekada tej epoki płynnie przechodziła między rolami, a wszystkie prowadziły ku instruktorowi, do którego dochodzi ta historia. Były okresy jako inżynier sieci i bezpieczeństwa poprzez resellerów i dystrybutorów, z pogłębianiem wiedzy w switchingu i routingu korporacyjnym, zaporach i zaporach nowej generacji, SSL-VPN, kontroli dostępu użytkowników, akceleracji WAN i równoważeniu obciążenia internetu w rozwiązaniach Juniper i Cisco. Co kluczowe, okres ten obejmował zwrot ku F5, z początkową pracą nad F5 BIG-IP, która zdefiniowała nadchodzące lata. Przez to wszystko szkolenia techniczne były stałą nicią, nigdy nieobecną w żadnej roli.",
      "closer": "Do 2020 roku obraz był kompletny: ktoś, kto nie tylko studiował te systemy, ale żył wewnątrz nich przez dwadzieścia lat, po stronie producenta i po stronie klienta, w projektowaniu i w kryzysie. To różnica, którą wdrożeniowiec wnosi do sali wykładowej. Gdy ta osoba wyjaśnia, dlaczego konfiguracja zachowuje się w określony sposób, to dlatego, że widziała, jak się tak zachowuje, o trzeciej nad ranem, z czekającą pocztą narodową."
    },
    "era2020present": {
      "years": "2020 – obecnie",
      "title": "Instruktor",
      "subtitle": "Szkolenia techniczne na pełen etat, prowadzone na całym świecie, rozszerzające się platforma po platformie.",
      "intro": "W 2020 roku nić obecna przez całą karierę stała się całą tkaniną. Po dwóch dekadach, w których nauczanie towarzyszyło każdej roli, szkolenia stały się samą pracą: na pełen etat, oficjalne, certyfikowane nauczanie prowadzone dla profesjonalistów i zespołów na całym świecie. To, co wyróżnia tę epokę, to nie tylko skupienie, ale świadoma, datowana ekspansja przez platformy, z których każda została dodana na bazie głębokiego doświadczenia w terenie, a nie zamiast niego.",
      "s1Title": "Pełen etat, z powołania",
      "s1Body": "Od 2020 roku praca polega na prowadzeniu oficjalnych szkoleń z instruktorem, zdalnie i stacjonarnie, po portugalsku i angielsku, dla odbiorców na całym świecie. Świadczenie usług sięga Australii, Singapuru, Indii, Europy Środkowej, Stanów Zjednoczonych i Brazylii. Obywatelstwo brazylijskie i niemieckie, wraz z autoryzacją podróży do Stanów Zjednoczonych i Wielkiej Brytanii, czynią ten globalny zasięg praktycznym: nieograniczone prawo do pracy w Unii Europejskiej i Mercosur oraz wolność udania się tam, gdzie jest sala wykładowa.",
      "s2Title": "F5, od samego początku",
      "s2Body": "F5 jest kotwicą od początku tej epoki, opartą na pracy z BIG-IP sięgającej ponad dekadę wstecz. Autoryzowany program obejmuje cały katalog BIG-IP z instruktorem: Local Traffic Manager, DNS, Advanced WAF, Access Policy Manager, Advanced Firewall Manager, SSL Orchestrator, BIG-IQ, tworzenie iRules, automatyzację i rozwiązywanie problemów, od kursów jednodniowych po czterodniowe. Obok nauczania biegnie praktyczne uzupełnienie: zarządzane środowiska laboratoryjne F5 BIG-IP, żeby ćwiczenia zawsze miały prawdziwe miejsce, w którym mogą się odbywać.",
      "s3Title": "Ekspansja, platforma po platformie",
      "s3Body": "To, co wyróżnia ostatnie lata, to wyraźna, datowana progresja. Szkolenia Extreme Networks zostały dodane od 2021 roku, obejmując switching EXOS, SD-WAN i automatyzację. Fortinet nastąpił od 2024 roku, z naciskiem na ścieżkę FCP FortiGate Administrator. Netskope dołączył od 2025 roku, obejmując działanie, administrację, wdrażanie i integrację Netskope Security Cloud. Cztery platformy, każda dodana świadomie, każda oparta na tych samych dwóch dekadach wdrożeń sieci i bezpieczeństwa poniżej.",
      "s4Title": "Przez Red Education, w świat",
      "s4Body": "Głównym pojazdem tego globalnego świadczenia usług jest Red Education, autoryzowane centrum szkoleniowe, za którego pośrednictwem oficjalne, certyfikowane kursy docierają do organizacji w różnych regionach. Rolą jest global technical training instructor, ze świadczeniem usług dla rodzaju międzynarodowych odbiorców, których umożliwiają baza w São Paulo, dwa paszporty i szczera miłość do podróży. To trwałe relacje przekształcają indywidualną wiedzę w coś, co organizacje na całym świecie mogą zamówić i na czym mogą polegać.",
      "closer": "To tutaj nić przewodnia całej historii się opłaca. Ciekawość pierwszych lat stała się wdrożeniową głębią lat w terenie, a ta głębia jest teraz tym, co otrzymuje każdy uczestnik: nie prezenterem czytającym slajdy, ale kimś, kto zbudował te systemy i wyjaśnia, jak naprawdę działają, i dlaczego."
    }
  },
  "vendors": {
    "indexTitle": "Producenci",
    "indexLede": "Firmy sieciowe i bezpieczeństwa, których technologia ukształtowała tę karierę, od kabla. To relacje z przeszłości; platformy nauczane dziś znajdują się w sekcji Szkolenia.",
    "backToVendors": "Wszyscy producenci",
    "backToAbout": "O mnie",
    "technologies": "Technologie",
    "role": "Rola",
    "years": "Lata",
    "readNext": "Następny producent",
    "cabletron": {
      "name": "Cabletron i Enterasys",
      "years": "1996 – 2007",
      "tagline": "Gdzie zaczęła się kariera i gdzie korporacyjna sieć LAN była nauczona od podstaw.",
      "intro": "Najdłuższa pojedyncza nić tej historii biegnie przez jedną firmę i jej następcę. Cabletron Systems, wiodący dostawca sprzętu sieciowego z siedzibą w Rochester w stanie New Hampshire, był pierwszym pracodawcą, od 1996 roku. Gdy Cabletron zreorganizował się w cztery firmy w 2000 roku, linia była kontynuowana jako Enterasys Networks, a relacja została tam wznowiona od 2005 roku. Razem obejmują formacyjną dekadę wiedzy o sieciach korporacyjnych.",
      "s1Title": "Cabletron, od 1996 do 2000",
      "s1Body": "Przez cztery i pół roku rola przeszła przez cały łuk inżynierii producenta: inżynierię terenową i wsparcie posprzedażowe, inżynierię systemów i przedsprzedaż oraz, od 1997 roku, certyfikowane szkolenia. Tematem była ówczesna korporacyjna sieć LAN i WAN: przełączniki i routery, Wi-Fi i WLAN, zarządzanie siecią, NAC i UAC oraz zapory ze stanową inspekcją. To tutaj dyscyplina projektowania rozwiązań, wdrożeń, audytu, rozwiązywania problemów i zarządzania eskalacjami była ćwiczona po raz pierwszy, i to tutaj nauczanie po raz pierwszy weszło w pracę.",
      "s2Title": "Enterasys, od 2005 do 2007",
      "s2Body": "Wracając do linii jako menedżer usług i wsparcia, nacisk kładziono na linię produktów Secure Routing, z Enterasys jako regionalnym punktem skupienia dla Brazylii. Praca łączyła wsparcie klienta na wysokim poziomie, złożone rozwiązywanie problemów i zarządzanie eskalacjami z lokalnym zarządzaniem produktem. Powierzchnia techniczna urosła i obejmowała teraz zarządzanie siecią, NAC i UAC, wykrywanie i zapobieganie włamaniom oraz SIEM, obejmując switching i routing korporacyjny. Enterasys został później przejęty przez Extreme Networks w 2013 roku, zamykając krąg, który łączy tę wczesną pracę z platformą nauczaną do dziś.",
      "certs": "Cabletron Systems Engineer (CSE), 1999. Enterasys Systems Engineer (ESE), 2000 i 2007. Enterasys Certified Internetworking Engineer (ECIE), 2007.",
      "lineageTitle": "Linia korporacyjna",
      "lineageDesc": "Cabletron Systems, z siedzibą w Rochester w stanie New Hampshire, podzielił się na cztery firmy w 2000 roku: Enterasys, Riverstone, Aprisma i GNTS. Enterasys został przejęty przez Extreme Networks w 2013 roku. Riverstone został przejęty przez Alcatel-Lucent w 2006 roku."
    },
    "juniper": {
      "name": "NetScreen i Juniper",
      "years": "2009 – 2014",
      "tagline": "Switching korporacyjny i bramy bezpieczeństwa, które wyrosły z NetScreen aż po linię SRX firmy Juniper.",
      "intro": "Juniper Networks przejął NetScreen, firmę produkującą zapory, w 2004 roku, a technologia bezpieczeństwa NetScreen stała się podstawą linii bezpiecznych bram firmy Juniper. Praca z obiema odzwierciedla ciągłą linię: zapory SSG firmy NetScreen i bramy SRX, które po nich nastąpiły. Relacja biegła bezpośrednio przez Juniper od 2009 roku, a potem była kontynuowana przez kanał dystrybucji.",
      "s1Title": "Juniper Networks, od 2009 do 2010",
      "s1Body": "Zatrudniony przez Juniper Professional Services dla Brazylii, rolą było promowanie nowych produktów dla świeżo wprowadzonych linii korporacyjnych: bezpiecznych bram serii SRX i przełączników serii EX. Główna współpraca była ze strategicznym partnerem Telefónica Empresas w Brazylii. Poza promocją przedsprzedażową ten okres przyniósł prawdziwe nauczanie: szkolenia na temat sieciowego systemu operacyjnego JUNOS i działania bezpiecznych bram SRX dla partnerów kanału i klientów, w tym szkolenia operacyjne dla personelu centrum operacji sieciowych Level 3 Communications w Brazylii i Argentynie.",
      "s2Title": "Przez kanał, od 2010 do 2014",
      "s2Body": "Relacja z Juniper i NetScreen była kontynuowana przez integratorów systemów i resellerów. W CYLK praca obejmowała tworzenie konfiguracji, testy proof of concept i interoperacyjności oraz wdrażanie i rozwiązywanie problemów na produkcji w Juniper, NetScreen i F5. W TDec Juniper dołączył do wieloproducenckiej praktyki doradczej i szkoleniowej. Praktyczny asortyment produktów w tych latach był szeroki: przełączniki EX, zapory SRX i NetScreen SSG, SSL-VPN SA, routery serii J i zarządzane Wi-Fi AX.",
      "certs": "Juniper Networks Sales Specialist, Enterprise Networking (JNSS-EN), 2010. Juniper Networks Sales Associate, Enterprise Networking (JNSA-EN), 2010.",
      "lineageTitle": "Linia bezpieczeństwa",
      "lineageDesc": "NetScreen, producent zapór SSG, został przejęty przez Juniper Networks w 2004 roku i stał się podstawą linii bezpiecznych bram SRX firmy Juniper."
    },
    "riverstone": {
      "name": "Riverstone Networks",
      "years": "2000 – 2002",
      "tagline": "Dwa lata w Santa Clara, na obrzeżach sieci operatorskich i miejskich.",
      "intro": "Jedyny rozdział tej kariery rozgrywający się w całości poza Brazylią. Riverstone Networks, producent sprzętu do sieci miejskich z siedzibą w Santa Clara w Kalifornii, oznaczał przeprowadzkę do Stanów Zjednoczonych z wizą pracowniczą H1-B1. Riverstone miał własną nietypową linię: pierwotnie firma o nazwie Yago, przejęta przez Cabletron około 1998 roku i ponownie pojawiła się jako niezależna firma poprzez wydzielenie w 2001 roku. Później została przejęta przez Alcatel-Lucent w 2006 roku.",
      "s1Title": "Wsparcie poziomu III i zarządzanie wiedzą",
      "s1Body": "Rola nosiła dwa tytuły przez dwa lata: inżynier wsparcia produktu i koordynator zarządzania wiedzą. Jako specjalista wsparcia technicznego poziomu III, praca polegała na eskalacji trzeciego poziomu, odtwarzaniu scenariuszy klientów w laboratorium, testach regresji i weryfikacji błędów. Jako koordynator zarządzania wiedzą polegała na budowaniu i organizowaniu bazy wiedzy, na której opierało się reszta wsparcia, obok wsparcia marketingu produktu i szkoleń wewnętrznych. Była to najgłębsza praca wsparcia technicznego w karierze, na poziomie, na którym eskalują najtrudniejsze problemy.",
      "s2Title": "Świat sieci miejskich",
      "s2Body": "Technologie były kręgosłupem ery operatorów i sieci miejskich początku lat 2000: Gigabit Ethernet, MPLS, switching i routing miejski oraz rozległy routing IP, w tym BGP. Praca w producenckim wsparciu trzeciego poziomu oznaczała obserwowanie, jak te systemy zachowują się na granicach, w warunkach, które ujawniają się dopiero na produkcji w dużej skali. Przyniosła też formalne nauczanie: szkolenia na temat koncepcji, funkcji i konfiguracji Riverstone oraz szkolenia na temat identyfikacji problemów w obsłudze klienta i procedur eskalacji.",
      "certs": "Riverstone Certified Networking Professional (RCNP), 2001. Ocena równoważności wykształcenia w Stanach Zjednoczonych uznająca wykształcenie równoważne z licencjatem z informatyki i licencjatem z zarządzania, ukończona w 2001 roku w ramach procedury wizowej H1-B1.",
      "lineageTitle": "Linia korporacyjna",
      "lineageDesc": "Riverstone Networks zaczął jako firma o nazwie Yago, został przejęty przez Cabletron Systems około 1998 roku, ponownie pojawił się jako niezależna firma poprzez wydzielenie w 2001 roku i został przejęty przez Alcatel-Lucent w 2006 roku."
    },
    "cisco": {
      "name": "Cisco Systems",
      "years": "2003 – 2008",
      "tagline": "Utrzymywanie krytycznej infrastruktury narodowej w działaniu, jako pojedynczy punkt kontaktu dla klientów federalnych Brazylii.",
      "intro": "Zatrudniony przez Cisco Professional Services w Brazylii, była to kariera w jej operacyjnie najbardziej wymagającej formie, w której praca mniej dotyczyła pojedynczej technologii, a bardziej utrzymywania krytycznych systemów w działaniu dla klientów, których nie było stać na przestoje.",
      "s1Title": "Operacje high-touch, od 2003 do 2004",
      "s1Body": "Jako high-touch operations manager i pojedynczy punkt kontaktu, rolą było zarządzanie satysfakcją klienta w okresie posprzedażowym dla dwóch z największych podmiotów federalnych Brazylii: SERPRO, rządowej agencji przetwarzania danych, i ECT-Correios, poczty narodowej, między Brasílią a São Paulo. Powierzchnia techniczna obejmowała przełączniki i routery Catalyst, zapory PIX oraz urządzenia do obsługi treści i równoważenia obciążenia CSS, CSM i ACE. Prawdziwą dyscypliną było jednak zarządzanie eskalacjami i zarządzanie kryzysowe, utrzymywanie wysokiej satysfakcji dla kont, w których stawka była narodowa.",
      "s2Title": "Nauczanie Cisco, od 2007 do 2008",
      "s2Body": "Relacja z Cisco przyniosła też formalne świadczenie szkoleń: koncepcje i działanie IOS i CatOS oraz koncepcje, działanie i rozwiązywanie problemów sieci warstwy 2 i warstwy 3, w kursach wielodniowych. Uzupełniło to głębokie doświadczenie operacyjne ustrukturyzowanym nauczaniem, które później stało się pełnym skupieniem kariery.",
      "ironportTitle": "Osobna uwaga: IronPort, 2004",
      "ironportBody": "Warto odnotować z dokładnością i odróżnić od pracy w Cisco: krótką, trzymiesięczną współpracę pod koniec 2004 roku z IronPort Systems, wówczas niezależnym startupem produkującym urządzenia do bezpieczeństwa poczty z siedzibą w San Bruno w Kalifornii. Praca polegała na rozwoju kanału i doradztwie technicznym przedsprzedażowym dla ich urządzeń do bezpieczeństwa poczty serii C. To w całości poprzedza przejęcie IronPort przez Cisco w 2007 roku, więc była to osobna relacja z niezależną firmą, nie technologia Cisco, i jest tu wspomniana tylko dlatego, że firma później stała się częścią Cisco.",
      "certs": "Cisco Certified Network Associate (CCNA), 2000 i 2005. Cisco Internetwork Troubleshooting (CIT), 2003."
    },
    "paloalto": {
      "name": "Palo Alto Networks",
      "years": "2013 – 2015",
      "tagline": "Zapory nowej generacji, przez kanał dystrybucji i salę wykładową.",
      "intro": "Skoncentrowana relacja wokół technologii zapór nowej generacji, prowadzona przez kanał resellerów i integratorów. To współpraca z przeszłości; Palo Alto nie należy do platform nauczanych dziś, ale praca była prawdziwa i certyfikowana.",
      "s1Title": "Doradztwo i szkolenia kanałowe, od 2013 do 2015",
      "s1Body": "W TDec Network Group Palo Alto dołączył do wieloproducenckiej praktyki doradczej i szkoleniowej, która obejmowała inżynierię systemów, architekturę rozwiązań, wsparcie aplikacji, wdrożenia, audyty i rozwiązywanie problemów. Relacja była kontynuowana przez Cipher Security w 2015 roku dla pracy przedsprzedażowej i posprzedażowej. Nacisk techniczny kładziono na zapory nowej generacji i platformę zarządzania Panorama, rdzeń oferty bezpieczeństwa korporacyjnego Palo Alto w tamtym czasie.",
      "s2Title": "Nauczanie PAN-OS",
      "s2Body": "Ten okres obejmował formalne świadczenie szkoleń: bootcamp PAN-OS 6.0, który budował to samo praktyczne, oparte na laboratoriach nauczanie, które definiuje dzisiejszą praktykę nauczania. W połączeniu z certyfikatami zdobytymi w 2014 roku ustanowiło to prawdziwą głębię w platformie, nawet jeśli skupienie kariery później skoncentrowało się na innych technologiach.",
      "certs": "Palo Alto Certified Network Security Engineer (CNSE 5.1), 2014. Palo Alto Networks Accredited Configuration Engineer (ACE), 2014. Palo Alto Networks Accredited Sales Expert (ASE), 2014. Uwaga: te certyfikaty są historyczne i nie są utrzymywane jako aktualne."
    }
  },
  "training": {
    "eyebrow": "Szkolenia, które prowadzę",
    "title": "Cztery platformy, nauczane przez kogoś, kto je obsługiwał.",
    "intro": "Oficjalne, certyfikowane szkolenia z instruktorem w {courses} kursach na czterech platformach w sercu nowoczesnych sieci i bezpieczeństwa. Każdy kurs jest prowadzony przez autoryzowanego instruktora, z dekadami praktycznych wdrożeń za nauczaniem.",
    "courseCount": "{count} kursów",
    "since": "od",
    "representativeNote": "Ten katalog jest reprezentatywny, nie wyczerpujący. Nazwy kursów, czasy trwania i treści odzwierciedlają aktualne informacje publiczne i są dopracowane na podstawie oficjalnych kart danych.",
    "allPlatforms": "Wszystkie platformy",
    "authorizedSince": "Autoryzowany instruktor od {year}",
    "workingSince": "Pracuje z {platform} od {year}",
    "tech": {
      "switchesRouters": "przełącznikami i routerami dla firm",
      "firewalls": "zaporami sieciowymi",
      "webCloudSecurity": "bezpieczeństwem web i chmury"
    },
    "coursesHeading": "{count} kursów",
    "duration": "Czas trwania",
    "delivery": "Forma",
    "deliveryValue": "Wirtualnie lub stacjonarnie",
    "modules": "Moduły",
    "aboutCourse": "O tym kursie",
    "tableOfContents": "Program",
    "agendaPending": "Szczegółowy program, dzień po dniu, zostanie dodany na podstawie oficjalnej karty danych kursu.",
    "moreFrom": "Więcej kursów {platform}",
    "requestTraining": "Zapytaj o to szkolenie",
    "requestVia": "Świadczone przez {destination}"
  },
  "teach": {
    "eyebrow": "Jak uczę",
    "title": "Instruktor, który zbudował te systemy, zanim zaczął ich uczyć.",
    "lede": "Większość szkoleń technicznych prowadzą osoby, które nauczyły się tematu, żeby go uczyć. Tutaj jest odwrotnie: trzy dekady budowania, psucia i naprawiania prawdziwych sieci i systemów bezpieczeństwa, zdestylowane w szkolenie, które łączy każde pojęcie z tym, jak naprawdę zachowuje się na produkcji.",
    "s1Title": "Dlaczego to ma znaczenie w sali wykładowej",
    "s1Body": "Jest różnica między wyjaśnianiem, jak funkcja ma działać, a wyjaśnianiem, dlaczego zachowuje się tak, jak się zachowuje, o trzeciej nad ranem, gdy coś krytycznego nie działa. Pierwsze pochodzi z instrukcji. Drugie pochodzi z bycia tam. Od 1996 roku praca polegała na wdrożeniach: projektowaniu sieci, uruchamianiu ich i byciu osobą, do której się dzwoni, gdy się psuły, dla producentów i dla niektórych z największych organizacji Brazylii. Ta głębia jest tym, co otrzymuje każdy uczestnik, nie prezenterem czytającym slajdy, ale inżynierem, który żył wewnątrz tych systemów i wyjaśnia, jak naprawdę działają.",
    "s2Title": "Złożoność uczyniona jasną",
    "s2Body": "Głęboka wiedza techniczna jest konieczna, ale niewystarczająca. Rzadszą umiejętnością jest jej przekładanie: wziąć coś naprawdę złożonego, zapory aplikacji webowych, federację tożsamości, zarządzanie ruchem, SD-WAN, i sprawić, żeby zaskoczyło u kogoś, kto styka się z tym po raz pierwszy. Uczestnicy konsekwentnie wskazują przykłady z prawdziwego świata i jasną, ustrukturyzowaną dydaktykę, zdolność umieszczania każdego pojęcia w kontekście pracy, którą faktycznie wykonują. Nauczanie było nicią przez całą tę karierę, obecną w niemal każdej roli od 1997 roku, a pełnoetatowym skupieniem od 2020 roku.",
    "s3Title": "Praktycznie, nie mgliście",
    "s3Body": "Umiejętność techniczną buduje się przez działanie, nie przez patrzenie. Każdy kurs jest zbudowany wokół praktycznych laboratoriów na prawdziwych systemach, wzmocnionych zarządzanymi środowiskami laboratoryjnymi, żeby ćwiczenia zawsze miały prawdziwe miejsce, w którym mogą się odbywać. Forma dostosowuje się do odbiorców: wirtualne szkolenia z instruktorem na całym świecie, stacjonarne, gdy to lepiej pasuje, po angielsku lub portugalsku. Cel każdej sesji jest ten sam, żeby uczestnicy wyszli zdolni wykonać zadanie, a nie tylko je opisać.",
    "s4Title": "Uznany, certyfikowany i aktualny",
    "s4Body": "Nauczanie opiera się na fundamencie formalnego uznania. F5 DevCentral MVP przez trzy kolejne lata, w 2022, 2023 i 2024. Certyfikaty F5 utrzymywane od 2015 roku oraz autoryzacja instruktora na czterech platformach: F5, Extreme Networks, Fortinet i Netskope. Świadczenie usług sięga Australii, Singapuru, Indii, Europy Środkowej, Stanów Zjednoczonych i Brazylii, przez Red Education, autoryzowane centrum szkoleniowe. Kwalifikacje mają znaczenie, ale są skrótem do tego, co jest pod spodem: prawdziwego, aktualnego opanowania technologii.",
    "platformsTitle": "Czego uczę",
    "platformsBody": "Oficjalne, certyfikowane szkolenia z instruktorem na czterech platformach w sercu nowoczesnych sieci i bezpieczeństwa. Każda prowadzi do swojego pełnego katalogu kursów.",
    "s5Title": "Poza salą wykładową",
    "s5Body": "Ta sama głębia, która daje dobre nauczanie, daje dobre doradztwo. Trzydzieści lat przez dostarczanie aplikacji, bezpieczeństwo sieci, tożsamość i infrastrukturę, zarówno po stronie producenta, jak i klienta, to perspektywa, która sięga daleko poza salę szkoleniową, aż po decyzje architektoniczne, dobór technologii i trudne problemy, które nie mieszczą się w programie. Nauczanie jest skupieniem; doświadczenie za nim jest dostępne dla zespołów, które potrzebują czegoś więcej niż kursu.",
    "toolsTitle": "Narzędzia, które liczą, nigdy nie zgadują",
    "toolsBody": "Obok szkoleń znajduje się rosnący zestaw darmowych, dbających o prywatność narzędzi sieciowych i bezpieczeństwa, deterministycznych narzędzi, które działają w całości w twojej przeglądarce i nigdy nie wysyłają twoich danych nigdzie. Obliczenia podsieci i CIDR, IPv6, inspekcja certyfikatów i tokenów i więcej, rodzaj codziennych narzędzi, po które sięga inżynier w pracy. Są zrobione w tym samym duchu co nauczanie: precyzyjne, praktyczne i naprawdę użyteczne. Wypróbuj je, bez rejestracji, bez śledzenia.",
    "toolsCta": "Odkryj narzędzia",
    "historyTitle": "Trzy dekady, jedna nić przewodnia",
    "historyBody": "Od budowania komputerów jako nastolatek w 1991 roku, przez dwie dekady wewnątrz branży sieci i bezpieczeństwa, aż po globalne nauczanie na pełen etat od 2020 roku. Warto przeczytać całą historię, jeśli chcesz zrozumieć doświadczenie stojące za nauczaniem.",
    "historyCta": "Przeczytaj całą historię",
    "ctaTitle": "Pracujmy razem",
    "ctaBody": "Czy chodzi o zamówienie oficjalnego szkolenia, zbudowanie programu na miarę dla twojego zespołu, czy wniesienie doświadczonego doradztwa do trudnego problemu, drzwi są otwarte.",
    "ctaButton": "Skontaktuj się",
    "coursesButton": "Przeglądaj wszystkie kursy"
  },
  "contact": {
    "title": "Skontaktuj się",
    "lede": "Czy chodzi o zamówienie oficjalnego szkolenia, zbudowanie programu na miarę dla twojego zespołu, czy wniesienie doświadczonego doradztwa do trudnego problemu, chętnie się z tobą skontaktuję.",
    "formHeading": "Wyślij wiadomość",
    "directHeading": "Albo skontaktuj się bezpośrednio",
    "formName": "Twoje imię",
    "formEmail": "Twój e-mail",
    "formTopic": "Czego dotyczy?",
    "topicTraining": "Oficjalne szkolenie",
    "topicCustom": "Program na miarę dla zespołu",
    "topicAdvisory": "Doradztwo i konsultacje",
    "topicOther": "Coś innego",
    "formMessage": "Twoja wiadomość",
    "formSend": "Wyślij wiadomość",
    "formSending": "Wysyłanie…",
    "formRequired": "Wypełnij swoje imię, e-mail i wiadomość.",
    "successTitle": "Dziękuję.",
    "successBody": "Twoja wiadomość jest w drodze. Odpowiem najszybciej, jak to możliwe.",
    "errorBody": "Coś poszło nie tak przy wysyłaniu. Spróbuj ponownie albo napisz bezpośrednio e-mailem.",
    "emailLabel": "E-mail",
    "channels": {
      "linkedin": {
        "description": "Nawiąż kontakt zawodowy",
        "label": "LinkedIn"
      },
      "youtube": {
        "description": "Filmy i poradniki",
        "label": "YouTube"
      },
      "instagram": {
        "description": "Za kulisami",
        "label": "Instagram"
      },
      "training": {
        "label": "Oficjalne szkolenie",
        "description": "Zarezerwuj kurs przez Red Education"
      }
    },
    "feedbackNote": "Znalazłeś błąd, pomyłkę lub nieścisłość na stronie?",
    "feedbackLink": "Podziel się tym na stronie pomysłów"
  },
  "certs": {
    "title": "Certyfikaty i kwalifikacje",
    "lede": "Trzy dekady formalnych kwalifikacji w sieciach i bezpieczeństwie. Autoryzacje instruktora i certyfikaty poniżej są aktualne; pełny rejestr zdobytych kwalifikacji, w większości już historycznych, następuje dla tych, którzy chcą głębi.",
    "jumpToHistorical": "Przejdź do pełnego rejestru",
    "credlyVerify": "Zweryfikuj w Credly",
    "current": "Aktualny",
    "historical": "Historyczny",
    "instructorTitle": "Autoryzacje instruktora",
    "instructorIntro": "Autoryzowany do prowadzenia dziś oficjalnych, certyfikowanych szkoleń na każdej z tych platform.",
    "currentCertsTitle": "Aktualne certyfikaty",
    "recognitionTitle": "Wyróżnienia",
    "historicalTitle": "Pełny rejestr",
    "historicalIntro": "Kwalifikacje zdobyte w trakcie kariery rozpoczętej w 1996 roku. Większość jest historyczna lub wygasła, zachowana tutaj ze względu na głębię, którą reprezentuje.",
    "verify": "Zweryfikuj",
    "credly": "Credly",
    "certificate": "Certyfikat",
    "verifyCode": "Kod",
    "candidateId": "ID"
  },
  "colophon_page": {
    "eyebrow": "Kolofon",
    "title": "Jak to zostało zbudowane",
    "lede": "Większość witryn się nie wyjaśnia. Ta to robi, bo to, jak została zrobiona, jest częścią tego, czym jest: świadomym eksperymentem w dobrym budowaniu, z nietypowymi współpracownikami, i rejestrem wartym zachowania.",
    "concordTitle": "CONCORD",
    "concordBody1": "Ta witryna została zaprojektowana i zbudowana za pomocą protokołu o nazwie CONCORD: ustrukturyzowanej współpracy między jedną osobą a trzema różnymi systemami SI, każdym w odrębnej roli. To nie sztuczka. To działająca metoda, z własnym ładem, własnym rejestrem decyzji i jedną osobą odpowiedzialną za każdy wybór, który został opublikowany.",
    "concordBody2": "Założenie jest proste. Różne modele SI mają różne mocne strony, a trudny problem zyskuje na więcej niż jednej perspektywie utrzymywanej w napięciu. Dlatego praca została podzielona według ról, a jedna osoba siedziała w środku, będąc pomostem między nimi, ratyfikując to, co solidne, i odrzucając to, co nie.",
    "concordBody3": "CONCORD nie został skądś zapożyczony. Został zaprojektowany przez Rodolfo Nützmann na potrzeby tego projektu, z praktycznej potrzeby: jak korzystać z kilku systemów AI naraz, z których każdy jest naprawdę dobry w czymś innym, nie rezygnując z jednej nici ludzkiej odpowiedzialności, której wymaga prawdziwa praca. Odpowiedzią było nadanie każdemu systemowi określonego stanowiska, niedopuszczenie, by negocjowały między sobą, i kierowanie każdej wymiany przez jedną osobę, która ogarniała całość. Ten układ ma starszą nazwę. Systemy AI są agentami: działają na polecenie i w czyimś imieniu. PRIME jest zleceniodawcą: tym, kto faktycznie decyduje, kto wydaje osąd i kto ponosi zarówno konsekwencje, jak i odpowiada nazwiskiem.",
    "concordBody4": "Zaczęło się nieformalnie — jako sposób podziału pracy — i utrwaliło się w trakcie budowy w nazwaną metodę: stałe stanowiska, jedna nadrzędna zasada, że nic nie zostaje opublikowane bez zatwierdzenia przez PRIME, oraz pisemny zapis powodów każdej decyzji. Nazwa wyraża cel: zgoda, porozumienie osiągnięte celowo w drodze procesu, a nie to, co przypadkiem wytworzy nienadzorowane narzędzie.",
    "concordPrincipal": "Siła jest po stronie agentów. Odpowiedzialność spoczywa na zleceniodawcy i nie podlega przeniesieniu.",
    "concordMechTitle": "Mechanika, w prostych słowach",
    "mech1Label": "Proponować",
    "mech1Gloss": "Każde stanowisko przedstawia opcje w swoim własnym zakresie.",
    "mech2Label": "Przekazywać",
    "mech2Gloss": "PRIME przenosi propozycje między stanowiskami; nigdy nie negocjują one bezpośrednio.",
    "mech3Label": "Zatwierdzać",
    "mech3Gloss": "PRIME przyjmuje to, co solidne, i odrzuca to, co nie. Bez tego nic nie zostaje opublikowane.",
    "mech4Label": "Ograniczać",
    "mech4Gloss": "Stały zestaw reguł wewnętrznych ogranicza każdy wynik, na każdym stanowisku.",
    "mech5Label": "Zapisywać",
    "mech5Gloss": "Pisemny rejestr decyzji zachowuje uzasadnienie każdego wyboru.",
    "mech6Label": "Pamiętać",
    "mech6Gloss": "Kontekst, reguły wewnętrzne i ten rejestr trwają jako pliki, przenoszone z jednej sesji do następnej, tak że metoda przetrwa każdą pojedynczą rozmowę.",
    "rolesTitle": "Miejsca",
    "rolePrime": "PRIME",
    "rolePrimeWho": "Rodolfo Nützmann",
    "rolePrimeBody": "Jedyny ratyfikujący. Każda decyzja, każda opublikowana linijka przeszła przez człowieka, który miał pełny obraz i ponosił ostateczną odpowiedzialność. SI proponowały; PRIME decydował.",
    "rolePrimeModel": "Człowiek",
    "roleAnvil": "ANVIL",
    "roleAnvilWho": "Inżynieria",
    "roleAnvilBody": "Miejsce głównego inżyniera. Architektura, kod, struktura treści i sama build, przekształcone z intencji w działającą, przetestowaną i gotową do wdrożenia witrynę.",
    "roleAnvilModel": "Anthropic · Claude Opus 4.8",
    "roleScout": "SCOUT",
    "roleScoutWho": "Strategia i marka",
    "roleScoutBody": "Miejsce strategii i pozycjonowania. Pytania o to, czym to jest, dla kogo jest i jak ma się prezentować światu.",
    "roleScoutModel": "OpenAI · ChatGPT 5.5",
    "rolePrism": "PRISM",
    "rolePrismWho": "Design",
    "rolePrismBody": "Miejsce designu. Język wizualny, typografia, kolor i odczucie całości, ukształtowane w spójny system.",
    "rolePrismModel": "Google · Gemini 3.1 Pro",
    "seatsModelNote": "Wersje modeli AI według stanu na czerwiec 2026.",
    "principlesTitle": "Jak to zostało zrobione",
    "principlesBody": "Kilka zasad obowiązywało od początku do końca i są widoczne, jeśli wiesz, gdzie patrzeć.",
    "p1Title": "Liczyć, nigdy nie zgadywać",
    "p1Body": "Narzędzia w tej witrynie obliczają odpowiedzi lokalnie i deterministycznie. Nie wywołują serwera z twoimi danymi i nie przybliżają. To, co działa w twojej przeglądarce, zostaje w twojej przeglądarce.",
    "p2Title": "Otwarte w rdzeniu",
    "p3Title": "Udokumentowane przez konstrukcję",
    "p3Body": "Każda część kodu jest skomentowana i udokumentowana, nie jako coś dorzuconego później, ale jako stała zasada. Build jest pomyślana tak, żeby była czytelna, dla tego, kto ją utrzymuje, i dla każdego, kto ją odziedziczy.",
    "p4Title": "Zbudowane, by przetrwać i podróżować",
    "p4Body": "Witryna to statyczny eksport: szybki, możliwy do zbuforowania i niezależny od czegokolwiek w czasie działania. Jest zbudowana od podstaw dla wielu języków, żeby mogła zwracać się do globalnych odbiorców bez przebudowy.",
    "stackTitle": "Stos",
    "stackBody": "Dla tych, którym zależy na takich rzeczach, techniczny fundament, jasno przedstawiony.",
    "stackFramework": "Framework",
    "stackFrameworkV": "Next.js 15 i React 19, wyeksportowane jako w pełni statyczna witryna",
    "stackI18n": "Internacjonalizacja",
    "stackI18nV": "next-intl, z {count} językami i obsługą pisma od prawej do lewej",
    "stackDesign": "System projektowy",
    "stackDesignV": "Konfigurowalny silnik motywów oparty na tokenach; domyślny motyw to Obsidian",
    "stackType": "Typografia",
    "stackTypeV": "Inter dla tekstu, JetBrains Mono dla danych i kodów",
    "stackEngine": "Silnik narzędzi",
    "stackEngineV": "Deterministyczna warstwa obliczeniowa działająca w całości w przeglądarce",
    "stackSearch": "Wyszukiwanie",
    "stackSearchV": "Statyczne wyszukiwanie pełnotekstowe po stronie klienta; bez serwera wyszukiwania",
    "vibeTitle": "Czy to vibe coding?",
    "vibeBody1": "To uczciwe pytanie i warto odpowiedzieć na nie wprost. Vibe coding to termin, który badacz AI Andrej Karpathy ukuł na początku 2025 roku na określenie sposobu tworzenia oprogramowania, w którym opisujesz modelowi językowemu, czego chcesz, przyjmujesz to, co napisze, bez uważnego czytania, i kierujesz się wynikami, a nie samym kodem. Ujął to jako poddanie się klimatowi i zapomnienie, że kod w ogóle istnieje, i jasno zaznaczył, że nadaje się to bardziej do szybkich, jednorazowych projektów niż do systemów, na których ludzie polegają.",
    "vibeBody2": "Według tej definicji część tej witryny powstała właśnie tak, i lepiej się do tego przyznać, niż to ukrywać. Powierzchnia aplikacji, okablowanie frameworka, komponenty, stylowanie, instalacja, która spaja strony, powstały szybko z inżynierem AI i były kierowane wynikiem oraz stałym zestawem reguł wewnętrznych, a nie pisane ręcznie wiersz po wierszu. Dla tej warstwy, gdzie błąd jest widoczny i łatwy do poprawienia, chodziło właśnie o szybkość.",
    "vibeBody3": "Części, które liczą się najbardziej, podlegają innemu standardowi. Wszystko, co przetwarza twoje dane, jest weryfikowane, a nie robione na wyczucie: rdzeń każdego narzędzia jest porównywany z opublikowanym standardem, który wdraża, z odpowiednimi RFC i specyfikacjami, a jego wynik jest potwierdzany względem niezależnych źródeł, zanim trafi do publikacji. Jak głosi często cytowane zdanie programisty Simona Willisona, kod, który przejrzałeś, przetestowałeś i zrozumiałeś, to wcale nie vibe coding. Sam Karpathy nazywa teraz zdyscyplinowaną wersję agentic engineering: zachować dźwignię AI bez rezygnacji z jakości wyniku. To jest linia, którą wyznacza ten projekt. Szybko tam, gdzie szybkość jest darmowa, rygorystycznie tam, gdzie się liczy, i jeden człowiek odpowiedzialny za całość.",
    "closingTitle": "Uwaga o metodzie",
    "closingBody": "Budowanie oprogramowania ze współpracownikami SI jest na tyle nowe, że uczciwie jest być wobec tego przejrzystym. Nic tutaj nie zostało opublikowane bez tego, żeby człowiek zdecydował, że tak ma być. SI były narzędziami, zdolnymi narzędziami, ale narzędziami. Osąd, odpowiedzialność i nazwisko na pracy są ludzkie.",
    "backHome": "Powrót do narzędzi",
    "standardsTitle": "Standardy i frameworki",
    "standardsLede": "Każde narzędzie tutaj implementuje opublikowaną specyfikację, a nie domysł. Dekodery i kalkulatory są budowane na dokumentach, które definiują ich formaty, i przypięte do wektorów testowych, które te dokumenty publikują, tak aby każda odpowiedź była sprawdzana względem źródła prawdy, a nie względem siebie samej.",
    "specsLabel": "Specyfikacje",
    "specsBody": "JSON Web Tokens są zgodne z RFC 7519, z podpisami i algorytmami w RFC 7515 i 7518; PKCE to RFC 7636; Base64 i jego warianty to RFC 4648; UUID to RFC 9562 (która w 2024 r. zastąpiła RFC 4122 i zawiera własne wektory testowe); HMAC to RFC 2104, nad rodziną SHA wystandaryzowaną w FIPS 180-4 i FIPS 202; certyfikaty X.509 to RFC 5280; IPv4 i notacja CIDR to RFC 4632; adresacja IPv6 i jej kanoniczna postać tekstowa to RFC 4291 i RFC 5952; a dekoder cipher suite opiera się na oficjalnym rejestrze IANA TLS Cipher Suites, zestawionym ze specyfikacjami TLS 1.3 i 1.2 (RFC 8446 i 5246), regułami aktualizacji rejestru ustalającymi kolumnę „Recommended” (RFC 8447) oraz zakazem RC4 (RFC 7465). Tam, gdzie autorytetem jest rejestr, jego dane są wbudowywane bezpośrednio, a nie przepisywane.",
    "vectorsLabel": "Wektory referencyjne",
    "vectorsBody": "Każde narzędzie zawiera zestaw wektorów referencyjnych: znane wejścia powiązane ze znanymi poprawnymi wyjściami, zaczerpnięte z odpowiednich RFC i organów normalizacyjnych. Uruchamiają się przy każdym buildzie, więc refaktoryzacja, która po cichu zmienia odpowiedź, powoduje błąd builda zamiast trafić na produkcję.",
    "owaspLabel": "OWASP",
    "owaspBody": "Narzędzia bezpieczeństwa są definiowane w oparciu o frameworki OWASP, a nie składane doraźnie. Narzędzia kryptograficzne i TLS odpowiadają obszarom Cryptographic Failures oraz Security Misconfiguration z OWASP Top 10 i powiązanym kontrolom z Application Security Verification Standard; narzędzie do tokenów stosuje wytyczne OWASP dotyczące inspekcji i walidacji JWT. Prevention cheat sheets OWASP wyznaczają też twarde reguły dla tego, co powstaje dalej: każda obsługa XML lub SAML dodana tutaj musi zostać utwardzona przeciw XXE, zanim trafi na produkcję.",
    "redblueLabel": "Czerwoni i niebiescy",
    "redblueBody": "To samo dekodowanie-i-wyjaśnianie, które pozwala red-teamerowi odczytać przechwycony token, pozwala blue-teamerowi zrozumieć, co wysyła jego własny stos. Platforma celowo stoi po analitycznej stronie tej linii: identyfikuje, dekoduje, konwertuje i wyjaśnia, a nie posuwa się do podrabiania, wstrzykiwania ani obchodzenia kontroli. Ta granica to decyzja projektowa, a nie przeoczenie; te narzędzia istnieją, by uczyć i diagnozować, a nie by stać się bronią.",
    "localLabel": "Lokalnie i deterministycznie",
    "localBody": "Wszystko działa w przeglądarce. Narzędzie wywołuje funkcję czystą: dla tych samych danych zwraca ten sam wynik, nie przechowuje stanu i nie wysyła niczego na serwer. Bez ciasteczek, bez analityki, jak w pełni opisuje strona Prywatności.",
    "thanksTitle": "Specjalne podziękowania",
    "p2Body": "Deterministyczna logika, którą wykonuje każde narzędzie, jest całym narzędziem: nie ma ukrytego kroku na serwerze, konta ani telemetrii. Wszystko działa w Twojej przeglądarce.",
    "changelogLink": "Dziennik zmian"
  },
  "support": {
    "title": "Wesprzyj projekt",
    "lede": "Te narzędzia są darmowe i takie mają pozostać. Jeśli oszczędzają twój czas, możesz wnieść wkład w ich utrzymanie. Całkowicie opcjonalnie, zawsze.",
    "tipHeading": "Zostaw napiwek",
    "tipBlurb": "Każdy wkład idzie bezpośrednio na wsparcie narzędzi i czasu w nie włożonego.",
    "zeroCommission": "0% prowizji. Linki prowadzą bezpośrednio do dostawcy; ta witryna nigdy nie jest w przepływie płatności.",
    "placeholder": "Opcje wsparcia są konfigurowane i pojawią się tutaj wkrótce."
  },
  "admin": {
    "eyebrow": "Admin",
    "title": "Sterowanie witryną",
    "lede": "Powierzchnia sterowania opcjonalnymi funkcjami i ustawieniami tej witryny.",
    "previewBanner": "Rusztowanie podglądu. W statycznej witrynie te elementy sterujące pokazują podgląd interfejsu administracyjnego; sterowanie na żywo jest aktywowane warstwą usług. Zmiany tutaj nie są zapisywane.",
    "featuresTitle": "Funkcje",
    "flagRequestTraining": "Zapytaj o to szkolenie",
    "flagRequestTrainingDesc": "CTA generowania leadów na stronach kursów i platform.",
    "flagTipJar": "TipJar",
    "flagTipJarDesc": "Linki wsparcia twórcy na stronie wsparcia.",
    "flagToolFunding": "Finansowanie narzędzia",
    "flagToolFundingDesc": "Interfejs wsparcia dla pojedynczego narzędzia.",
    "flagToolProvenance": "Pochodzenie narzędzia",
    "flagToolProvenanceDesc": "Panel podziękowań i źródeł dla pojedynczego narzędzia.",
    "routingTitle": "Kierowanie leadów",
    "routingDefaultLabel": "Globalne domyślne",
    "routingNoOverrides": "Nie skonfigurowano nadpisań dla platformy ani kursu.",
    "contactTitle": "Kontakt",
    "contactEmailLabel": "E-mail",
    "contactFormLabel": "Wysyłka formularza",
    "formMailto": "Rezerwowe mailto (bez backendu)",
    "formEndpoint": "Wysyłanie do punktu końcowego",
    "tipJarTitle": "Dostawcy TipJar",
    "tipConfigured": "Skonfigurowano",
    "tipNotConfigured": "Nie skonfigurowano",
    "on": "Wł.",
    "off": "Wył.",
    "accessTitle": "Kontrola dostępu",
    "accessNote": "Tylko te tożsamości federacyjne mogą mieć dostęp administracyjny. Egzekwowane po stronie serwera przez warstwę usług; statyczna witryna nie uwierzytelnia.",
    "accessFederatedOnly": "Tylko logowanie federacyjne. Bez rezerwowego konta lokalnego.",
    "accessRoleLabel": "Rola",
    "accessPermsLabel": "Uprawnienia właściciela"
  },
  "machineTranslation": {
    "notice": "Ta strona została przetłumaczona maszynowo i może zawierać błędy.",
    "cta": "Pomóż ulepszyć"
  },
  "contribute": {
    "eyebrow": "Tłumaczenia",
    "title": "Pomóż ulepszyć tłumaczenia",
    "lede": "Wszystkie języki tutaj poza angielskim to pierwsza wersja robocza wykonana maszynowo. Jeśli mówisz jednym z nich i zauważysz coś błędnego lub niezgrabnego, twoje poprawki są mile widziane. Oto jak je przesłać.",
    "howTitle": "Jak współtworzyć",
    "howBody": "Angielski jest źródłem prawdy, a wszystkie inne języki są z niego tłumaczone, więc błędy są możliwe. Każdy pakiet językowy to pojedynczy plik tekstowy z oznaczonymi frazami. Pobierz ten, który chcesz ulepszyć, zmieniaj tylko tekst po każdej etykiecie i pozostaw etykiety oraz wszystko w nawiasach klamrowych dokładnie tak, jak jest. Następnie wyślij edytowany plik e-mailem i podaj język. Każde zgłoszenie jest sprawdzane ręcznie.",
    "downloadHeading": "Pakiety językowe",
    "referenceTag": "wzorzec",
    "emailHeading": "Wyślij swój wkład",
    "backHome": "Powrót do narzędzi"
  },
  "api": {
    "title": "API",
    "lede": "Narzędzia na tej witrynie działają w twojej przeglądarce i trzymają twoje dane na twoim urządzeniu. Na potrzeby automatyzacji — skrypty, pipeline'y i integracje — te same deterministyczne obliczenia są dostępne jako niewielkie API HTTP. To programistyczny odpowiednik narzędzi przeglądarkowych, a nie ich zamiennik.",
    "privacyTitle": "Co to oznacza dla twoich danych",
    "privacyBody": "API otrzymuje wyłącznie wejście, które mu wyślesz, oblicza wynik i go zwraca. Jest bezstanowe i nie zapisuje żadnych wartości zapytań ani treści żądań. Jeśli potrzebujesz gwarantowanego zera wycieku danych, użyj narzędzi przeglądarkowych albo uruchom otwarty silnik samodzielnie.",
    "engineTitle": "Ten sam silnik co przeglądarka",
    "specTitle": "Specyfikacja",
    "specBody": "Pełny kontrakt jest opublikowany jako OpenAPI 3.1. Pobierz go, skieruj na niego własne narzędzia albo przeczytaj dokumentację poniżej.",
    "downloadSpec": "Pobierz openapi.yaml",
    "baseUrlLabel": "Bazowy URL",
    "authLabel": "Uwierzytelnianie",
    "authValue": "Brak. To publiczne API tylko do odczytu.",
    "referenceTitle": "Dokumentacja",
    "loading": "Ładowanie specyfikacji.",
    "loadError": "Nie udało się załadować specyfikacji.",
    "tryItTitle": "Wypróbuj",
    "tryItSend": "Wyślij",
    "tryItRunning": "Wykonywanie.",
    "tryItHint": "Działa na aktywnym API w tym origin. Twoje wejście jest wysyłane do endpointu.",
    "paramsTitle": "Parametry",
    "responsesTitle": "Odpowiedzi",
    "schemasTitle": "Schematy",
    "exampleLabel": "Przykład",
    "requiredLabel": "wymagane",
    "fieldLabel": "Pole",
    "typeLabel": "Typ",
    "descriptionLabel": "Opis",
    "viewReference": "Dokumentacja",
    "viewSwagger": "Swagger UI",
    "swaggerLoadError": "Nie udało się załadować Swagger UI.",
    "engineBody": "Każdy endpoint wykonuje tę samą czystą funkcję co narzędzie w przeglądarce, więc API i przeglądarka zwracają wyniki identyczne co do bajta."
  },
  "license_page": {
    "eyebrow": "Warunki",
    "title": "Licencja",
    "closedHeading": "Zamknięty kod — ta witryna",
    "closedBody": "Sama witryna ma zamknięty kod. Jej projekt, interfejs, treści pisane (w tym każdy artykuł Learn), marka oraz szczególny sposób, w jaki te narzędzia są tu zestawione i przedstawione, są własnością zastrzeżoną, wszelkie prawa zastrzeżone. Nie udziela się zgody na kopiowanie, powielanie, modyfikowanie, redystrybucję ani tworzenie dzieł pochodnych witryny lub jej treści bez uprzedniej pisemnej zgody.",
    "contact": "Pytania o licencję? <a>Skontaktuj się.</a>",
    "backHome": "Powrót do narzędzi",
    "thirdHeading": "Komponenty open source",
    "lede": "ronutz.com to dzieło zastrzeżone, wszelkie prawa zastrzeżone. Niniejsze warunki obejmują witrynę i jej zawartość. Witryna jest zbudowana na oprogramowaniu open source, które jest używane i rozpowszechniane na własnych warunkach licencyjnych, wymienionych poniżej.",
    "thirdBody": "Ta witryna opiera się na pracy open source. Sama witryna jest zbudowana z użyciem Next.js i React oraz dostarczana jako eksport statyczny; internacjonalizacja korzysta z next-intl; treści Learn są renderowane za pomocą next-mdx-remote, gray-matter, remark-gfm i js-yaml; a wyszukiwanie zapewnia Pagefind. Komponenty te są udostępniane na licencji MIT License, z wyjątkiem next-mdx-remote (Mozilla Public License 2.0). Dokumentacja API osadza Swagger UI na licencji Apache License 2.0. Każdy komponent pozostaje na własnej licencji, a pełne noty są dostarczane wraz z kodem źródłowym."
  },
  "contributeIdeas": {
    "eyebrow": "Pomysły mile widziane",
    "title": "Podziel się pomysłem",
    "lede": "Ten zestaw narzędzi został stworzony, by rosnąć, a najwyraźniejszy sygnał, dokąd powinien zmierzać, pochodzi od osób, które go używają. Znalazłeś błąd, pomyłkę lub nieścisłość? Brakuje narzędzia, którego jeszcze tu nie ma? Widzisz lepszy sposób na zrobienie czegoś albo wynik, który ująłbyś inaczej? Wyślij to; każdy rodzaj uwag jest mile widziany.",
    "sendTitle": "Co możesz wysłać",
    "sendBody": "Błędy, pomyłki i nieścisłości wszelkiego rodzaju: narzędzie, które źle działa, błędny wynik, pomyłka w artykule Learn lub po prostu coś, co wygląda nie tak. Prośby o funkcje dla narzędzi, które już istnieją. Pomysły na nowe narzędzia, które zestaw powinien mieć. Poprawki i uzupełnienia artykułów Learn, na przykład jaśniejsze wyjaśnienie, lepsze źródło lub brakujący temat. Albo po prostu inne spojrzenie na problem. Może być zgrubnie; jedno zdanie wystarczy, by rozpocząć rozmowę.",
    "toolTitle": "Jeśli proponujesz nowe narzędzie",
    "toolBody": "Narzędzia są tu małymi, samoopisującymi się modułami: manifestem, który mówi, czym jest narzędzie i skąd bierze się jego poprawność, jedną czystą funkcją, która wykonuje pracę, oraz zestawem golden vectors, czyli stałych par wejścia i wyjścia, które to potwierdzają. Dobry kandydat liczy lokalnie i deterministycznie (to samo wejście zawsze daje to samo wyjście, bez zegara, sieci czy losowości w wyniku), trzyma wszystko wrażliwe na urządzeniu i opiera swoją poprawność na cytowanym źródle, takim jak RFC, a nie na opinii. Nie musisz tego wszystkiego budować, by coś zaproponować: po prostu opisz, co ma obliczać, przykład oraz źródło, na którym się opiera.",
    "fitRule": "Decyduje jeden prosty test. Każde narzędzie tutaj działa w całości w Twojej przeglądarce i niczego nigdzie nie wysyła, więc nowe narzędzie musi być czymś, co komputer potrafi ustalić wyłącznie na podstawie tego, co wpiszesz, kierując się stałą, opublikowaną regułą. Jeśli musi łączyć się z internetem, sprawdzać coś na żywo, logować Cię albo Cię zapamiętywać, nie ma tu dla niego miejsca.",
    "fitYes": "Pasuje:",
    "fitYesBody": "dekodowanie lub wyjaśnianie czegoś, co wkleisz (token, certyfikat, konfiguracja, wynik polecenia), konwertowanie między formatami, obliczanie na podstawie standardu lub wzoru, albo generowanie według reguły, jak UUID, skrót czy wiersz polecenia.",
    "fitNo": "Nie pasuje:",
    "fitNoBody": "wszystko, co musi łączyć się z internetem albo sprawdzać coś na żywo (testowanie prawdziwej strony, odpytywanie działającego serwera DNS, skanowanie adresu), wszystko, co wymaga konta, logowania lub zapisanych danych, albo wszystko, czego odpowiedź nie jest ustalona przez opublikowany standard.",
    "fitUnsure": "Nie wiesz, po której stronie jest Twój pomysł? Wyślij go mimo to i napisz, co miałby robić. Powiem Ci szczerze, czy pasuje, i dlaczego.",
    "emailTitle": "Jak się ze mną skontaktować",
    "emailBody": "E-mail to kanał. Napisz, co znalazłeś lub czego byś chciał, z wystarczającą ilością szczegółów, by można było działać: przykład, link, dokładne sformułowanie, co pasuje. Jeśli to ulepszy zestaw narzędzi, zostanie zbudowane.",
    "emailLabel": "E-mail",
    "backToTools": "Powrót do zestawu narzędzi"
  },
  "languageStatus": {
    "title": "Status tłumaczenia",
    "reviewed": "Sprawdzone przez człowieka",
    "complete": "Maszynowe, kompletne",
    "partial": "Maszynowe, w toku",
    "explainTitle": "Jak oznaczane są tłumaczenia",
    "explainBody": "Angielski i brazylijski portugalski są pisane i sprawdzane przez człowieka. Większość pozostałych języków jest tłumaczona maszynowo i oznaczana według stopnia zaawansowania: bursztynowy, gdy język obejmuje całą witrynę, żółty, gdy nowsze treści są jeszcze po angielsku i nadrabiają zaległości. Języki oznaczone na czerwono nie mają jeszcze tłumaczenia i na razie są wyświetlane po angielsku. Strony tłumaczone maszynowo zawierają też krótką informację, a Ty możesz pomóc je ulepszyć.",
    "stub": "Jeszcze nieprzetłumaczone"
  },
  "changelog": {
    "eyebrow": "Dziennik zmian",
    "title": "Co nowego",
    "lede": "Bieżący zapis nowych narzędzi, nowych artykułów Learn i istotnych zmian w tej witrynie. Dziś dostępnych jest {count} narzędzi.",
    "kindLaunch": "Premiera",
    "kindTool": "Nowe narzędzie",
    "kindFeature": "Funkcja",
    "kindI18n": "Lokalizacja",
    "kindContent": "Treść",
    "kindInfra": "Infrastruktura"
  }
}
