mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-02 13:03:08 +00:00
Closes #10828 # Which Problems Are Solved The IDP callback flow was calling retrieveIDPIntent() twice, causing single-use token failures with error: "Intent Token is invalid". This occurred due to Next.js 15's dynamicIO feature triggering double renders # How the Problems Are Solved Completely refactored the IDP callback architecture to ensure single-use tokens are consumed exactly once: - Centralized Business Logic: Moved all IDP callback logic into a single server action (processIDPCallback) that: - Consumes the token once - Handles all 6 business scenarios (login, linking, auto-linking, auto-creation, manual registration, account not found) - Integrates session creation in the same action - Returns `{ redirect?: string; error?: string }` for client-side navigation - Client Component Invocation: Created `IdpProcessHandler` client component that: - Calls the server action from browser context (enables cookie modification) - Prevents double execution with useRef - Handles loading states and error display - Clean Architecture: - Removed 403-line success page with complex logic - Removed component files from `/components/idps/pages/` folder - Moved all UI directly into server pages - Created dedicated result pages with minimal params # Additional Changes - Added translations to all 8 supported languages --------- Co-authored-by: Ramon <mail@conblem.me>
441 lines
18 KiB
JSON
441 lines
18 KiB
JSON
{
|
|
"common": {
|
|
"back": "Powrót",
|
|
"title": "Zaloguj się za pomocą Zitadel"
|
|
},
|
|
"accounts": {
|
|
"title": "Konta",
|
|
"description": "Wybierz konto, którego chcesz użyć.",
|
|
"addAnother": "Dodaj kolejne konto",
|
|
"noResults": "Nie znaleziono kont",
|
|
"verified": "zweryfikowany",
|
|
"expired": "wygasł"
|
|
},
|
|
"logout": {
|
|
"title": "Wyloguj się",
|
|
"description": "Wybierz konto, które chcesz usunąć",
|
|
"noResults": "Nie znaleziono kont",
|
|
"clear": "Usuń sesję",
|
|
"verifiedAt": "Ostatnia aktywność: {time}",
|
|
"success": {
|
|
"title": "Wylogowanie udane",
|
|
"description": "Pomyślnie się wylogowałeś."
|
|
}
|
|
},
|
|
"loginname": {
|
|
"title": "Witamy ponownie!",
|
|
"description": "Wprowadź dane logowania.",
|
|
"register": "Zarejestruj nowego użytkownika",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"loginname": "Login",
|
|
"username": "Nazwa użytkownika",
|
|
"usernameOrPhoneNumber": "Nazwa użytkownika lub numer telefonu",
|
|
"usernameOrEmail": "Nazwa użytkownika lub e-mail"
|
|
},
|
|
"required": {
|
|
"loginName": "To pole jest wymagane"
|
|
},
|
|
"errors": {
|
|
"internalError": "Wystąpił błąd wewnętrzny",
|
|
"couldNotGetLoginSettings": "Nie udało się pobrać ustawień logowania",
|
|
"couldNotSearchUsers": "Nie udało się wyszukać użytkowników",
|
|
"couldNotGetDomain": "Nie udało się pobrać domeny",
|
|
"couldNotGetHost": "Nie udało się pobrać hosta",
|
|
"couldNotStartIDPFlow": "Nie udało się rozpocząć procesu IDP",
|
|
"moreThanOneUserFound": "Znaleziono więcej niż jednego użytkownika. Podaj unikalny identyfikator.",
|
|
"userNotFound": "Użytkownik nie został znaleziony w systemie",
|
|
"couldNotCreateSession": "Nie udało się utworzyć sesji dla użytkownika",
|
|
"initialUserNotSupported": "Użytkownik inicjalny nie jest obsługiwany",
|
|
"usernamePasswordNotAllowed": "Logowanie przy użyciu nazwy użytkownika i hasła jest niedozwolone! Skontaktuj się z administratorem, aby uzyskać więcej informacji.",
|
|
"passkeysNotAllowed": "Klucze dostępu są niedozwolone! Skontaktuj się z administratorem, aby uzyskać więcej informacji.",
|
|
"couldNotFindIdentityProvider": "Nie udało się znaleźć dostawcy tożsamości.",
|
|
"userNotActive": "Użytkownik jest nieaktywny. Skontaktuj się z administratorem, aby uzyskać więcej informacji."
|
|
}
|
|
},
|
|
"zitadel": {
|
|
"errors": {
|
|
"errorOccured": "Wystąpił błąd",
|
|
"multipleUsersFound": "Znaleziono wielu użytkowników",
|
|
"userNotFound": "Użytkownik nie został znaleziony w systemie"
|
|
}
|
|
},
|
|
"password": {
|
|
"verify": {
|
|
"title": "Hasło",
|
|
"description": "Wprowadź swoje hasło.",
|
|
"resetPassword": "Zresetuj hasło",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"password": "Hasło"
|
|
},
|
|
"required": {
|
|
"password": "To pole jest wymagane"
|
|
},
|
|
"errors": {
|
|
"couldNotVerifyPassword": "Nie można zweryfikować hasła",
|
|
"couldNotResetPassword": "Nie można zresetować hasła"
|
|
},
|
|
"info": {
|
|
"passwordResetSent": "Hasło zostało zresetowane. Sprawdź swoją pocztę e-mail"
|
|
}
|
|
},
|
|
"set": {
|
|
"title": "Ustaw hasło",
|
|
"description": "Ustaw hasło dla swojego konta",
|
|
"codeSent": "Kod został wysłany na twój adres e-mail.",
|
|
"noCodeReceived": "Nie otrzymałeś kodu?",
|
|
"resend": "Wyślij kod ponownie",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"code": "Kod",
|
|
"newPassword": "Nowe hasło",
|
|
"confirmPassword": "Potwierdź nowe hasło"
|
|
},
|
|
"required": {
|
|
"code": "To pole jest wymagane",
|
|
"newPassword": "Musisz podać hasło!",
|
|
"confirmPassword": "To pole jest wymagane"
|
|
},
|
|
"errors": {
|
|
"couldNotSetPassword": "Nie można ustawić hasła",
|
|
"couldNotResetPassword": "Nie można zresetować hasła",
|
|
"couldNotVerifyPassword": "Nie można zweryfikować hasła"
|
|
}
|
|
},
|
|
"change": {
|
|
"title": "Zmień hasło",
|
|
"description": "Ustaw nowe hasło dla swojego konta",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"newPassword": "Nowe hasło",
|
|
"confirmPassword": "Potwierdź nowe hasło"
|
|
},
|
|
"required": {
|
|
"newPassword": "Musisz podać nowe hasło!",
|
|
"confirmPassword": "To pole jest wymagane"
|
|
},
|
|
"errors": {
|
|
"couldNotChangePassword": "Nie można zmienić hasła",
|
|
"couldNotVerifyPassword": "Nie można zweryfikować hasła",
|
|
"unknownError": "Nieznany błąd"
|
|
}
|
|
},
|
|
"complexity": {
|
|
"length": "Musi zawierać co najmniej {minLength} znaków.",
|
|
"hasSymbol": "Musi zawierać symbol.",
|
|
"hasNumber": "Musi zawierać numer.",
|
|
"hasUppercase": "Musi zawierać dużą literę.",
|
|
"hasLowercase": "Musi zawierać małą literę.",
|
|
"equals": "Potwierdzenie hasła pasuje.",
|
|
"matches": "Pasuje",
|
|
"doesNotMatch": "Nie pasuje"
|
|
},
|
|
"errors": {
|
|
"noHostFound": "Nie znaleziono hosta",
|
|
"couldNotSendResetLink": "Nie można wysłać linku do resetowania hasła",
|
|
"couldNotCreateSessionForUser": "Nie można utworzyć sesji dla użytkownika",
|
|
"couldNotVerifyPassword": "Nie można zweryfikować hasła",
|
|
"failedToAuthenticate": "Uwierzytelnianie nie powiodło się. Wykorzystałeś {failedAttempts} z {maxPasswordAttempts} prób wprowadzenia hasła.{lockoutMessage}",
|
|
"failedToAuthenticateNoLimit": "Uwierzytelnianie nie powiodło się.",
|
|
"accountLockedContactAdmin": " Skontaktuj się z administratorem, aby odblokować konto",
|
|
"userNotFound": "Użytkownik nie został znaleziony w systemie",
|
|
"initialUserNotSupported": "Użytkownik początkowy nie jest obsługiwany",
|
|
"userInitialStateNotSupported": "Początkowy stan użytkownika nie jest obsługiwany",
|
|
"codeOrVerificationRequired": "Musisz podać kod lub mieć ważną weryfikację użytkownika",
|
|
"verificationRequired": "Wymagana jest weryfikacja użytkownika",
|
|
"couldNotLoadSession": "Nie można załadować sesji",
|
|
"couldNotLoadAuthMethods": "Nie można załadować metod uwierzytelniania",
|
|
"failedPrecondition": "Nie spełniono warunków wstępnych",
|
|
"sessionNotValid": "Sesja jest nieważna"
|
|
}
|
|
},
|
|
"idp": {
|
|
"title": "Zaloguj się za pomocą SSO",
|
|
"description": "Wybierz jednego z poniższych dostawców, aby się zalogować",
|
|
"orSignInWith": "lub zaloguj się przez",
|
|
"signInWithApple": "Zaloguj się przez Apple",
|
|
"signInWithGoogle": "Zaloguj się przez Google",
|
|
"signInWithAzureAD": "Zaloguj się przez AzureAD",
|
|
"signInWithGithub": "Zaloguj się przez GitHub",
|
|
"signInWithGitlab": "Zaloguj się przez GitLab",
|
|
"loginError": {
|
|
"title": "Logowanie nieudane",
|
|
"description": "Wystąpił błąd podczas próby logowania."
|
|
},
|
|
"linkingError": {
|
|
"title": "Powiązanie konta nie powiodło się",
|
|
"description": "Wystąpił błąd podczas próby powiązania konta."
|
|
},
|
|
"completeRegister": {
|
|
"title": "Ukończ rejestrację",
|
|
"description": "Ukończ rejestrację swojego konta."
|
|
},
|
|
"accountNotFound": {
|
|
"title": "Nie znaleziono konta",
|
|
"description": "Nie mogliśmy znaleźć konta powiązanego z danymi logowania Twojego dostawcy tożsamości.",
|
|
"info": "Nie znaleziono istniejącego konta. Zaloguj się przy użyciu istniejącego konta lub skontaktuj się z administratorem w celu uzyskania pomocy.",
|
|
"backToLogin": "Powrót do logowania"
|
|
},
|
|
"registrationFailed": {
|
|
"title": "Rejestracja niedostępna",
|
|
"description": "Nie mogliśmy ukończyć procesu rejestracji.",
|
|
"info": "Nie można określić organizacji do rejestracji. Skontaktuj się z administratorem w celu uzyskania pomocy.",
|
|
"backToLogin": "Powrót do logowania"
|
|
},
|
|
"processing": {
|
|
"message": "Przetwarzanie uwierzytelniania...",
|
|
"noRedirect": "Nie otrzymano przekierowania ani błędu z serwera",
|
|
"unexpectedError": "Wystąpił nieoczekiwany błąd"
|
|
},
|
|
"errors": {
|
|
"missingParameters": "Brakuje wymaganych parametrów",
|
|
"missingIdpInfo": "Brak informacji IDP",
|
|
"idpNotFound": "Dostawca tożsamości nie znaleziony",
|
|
"linkingNotAllowed": "Łączenie nie jest dozwolone dla tego dostawcy tożsamości",
|
|
"linkingFailed": "Nie udało się połączyć dostawcy tożsamości z kontem",
|
|
"autoLinkingFailed": "Nie udało się automatycznie połączyć konta",
|
|
"userCreationFailed": "Nie udało się utworzyć konta użytkownika",
|
|
"orgResolutionFailed": "Nie można określić organizacji do rejestracji",
|
|
"sessionCreationFailed": "Nie można utworzyć sesji lub określić przekierowania",
|
|
"unknownError": "Wystąpił nieznany błąd"
|
|
}
|
|
},
|
|
"ldap": {
|
|
"title": "Zaloguj się przez LDAP",
|
|
"description": "Wprowadź swoje dane logowania LDAP.",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"username": "Nazwa użytkownika",
|
|
"password": "Hasło"
|
|
},
|
|
"required": {
|
|
"username": "To pole jest wymagane",
|
|
"password": "To pole jest wymagane"
|
|
}
|
|
},
|
|
"mfa": {
|
|
"verify": {
|
|
"title": "Zweryfikuj swoją tożsamość",
|
|
"description": "Wybierz jeden z poniższych sposobów weryfikacji.",
|
|
"noResults": "Nie znaleziono dostępnych metod uwierzytelniania dwuskładnikowego."
|
|
},
|
|
"set": {
|
|
"title": "Skonfiguruj uwierzytelnianie dwuskładnikowe",
|
|
"description": "Wybierz jedną z poniższych metod drugiego czynnika.",
|
|
"skip": "Pomiń"
|
|
}
|
|
},
|
|
"otp": {
|
|
"verify": {
|
|
"title": "Zweryfikuj uwierzytelnianie dwuskładnikowe",
|
|
"totpDescription": "Wprowadź kod z aplikacji uwierzytelniającej.",
|
|
"smsDescription": "Wprowadź kod otrzymany SMS-em.",
|
|
"emailDescription": "Wprowadź kod otrzymany e-mailem.",
|
|
"noCodeReceived": "Nie otrzymałeś kodu?",
|
|
"resendCode": "Wyślij kod ponownie",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"code": "Kod"
|
|
},
|
|
"required": {
|
|
"code": "To pole jest wymagane"
|
|
}
|
|
},
|
|
"set": {
|
|
"title": "Skonfiguruj uwierzytelnianie dwuskładnikowe",
|
|
"totpDescription": "Zeskanuj kod QR za pomocą aplikacji uwierzytelniającej.",
|
|
"smsDescription": "Wprowadź swój numer telefonu, aby otrzymać kod SMS-em.",
|
|
"emailDescription": "Wprowadź swój adres e-mail, aby otrzymać kod e-mailem.",
|
|
"totpRegisterDescription": "Zeskanuj kod QR lub otwórz adres URL ręcznie.",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"code": "Kod"
|
|
},
|
|
"required": {
|
|
"code": "To pole jest wymagane"
|
|
}
|
|
}
|
|
},
|
|
"passkey": {
|
|
"verify": {
|
|
"title": "Uwierzytelnij się za pomocą klucza dostępu",
|
|
"description": "Twoje urządzenie poprosi o użycie odcisku palca, rozpoznawania twarzy lub blokady ekranu.",
|
|
"usePassword": "Użyj hasła",
|
|
"submit": "Kontynuuj"
|
|
},
|
|
"set": {
|
|
"title": "Skonfiguruj klucz dostępu",
|
|
"description": "Twoje urządzenie poprosi o użycie odcisku palca, rozpoznawania twarzy lub blokady ekranu.",
|
|
"info": {
|
|
"description": "Klucz dostępu to metoda uwierzytelniania na urządzeniu, wykorzystująca np. odcisk palca, Apple FaceID lub podobne rozwiązania.",
|
|
"link": "Uwierzytelnianie bez hasła"
|
|
},
|
|
"skip": "Pomiń",
|
|
"submit": "Kontynuuj"
|
|
}
|
|
},
|
|
"u2f": {
|
|
"verify": {
|
|
"title": "Zweryfikuj uwierzytelnianie dwuskładnikowe",
|
|
"description": "Zweryfikuj swoje konto za pomocą urządzenia."
|
|
},
|
|
"set": {
|
|
"title": "Skonfiguruj uwierzytelnianie dwuskładnikowe",
|
|
"description": "Skonfiguruj urządzenie jako dodatkowy czynnik uwierzytelniania.",
|
|
"submit": "Kontynuuj"
|
|
}
|
|
},
|
|
"register": {
|
|
"methods": {
|
|
"passkey": "Klucz dostępu",
|
|
"password": "Hasło"
|
|
},
|
|
"disabled": {
|
|
"title": "Rejestracja wyłączona",
|
|
"description": "Rejestracja jest wyłączona. Skontaktuj się z administratorem."
|
|
},
|
|
"missingdata": {
|
|
"title": "Brak danych",
|
|
"description": "Podaj e-mail, imię i nazwisko, aby się zarejestrować."
|
|
},
|
|
"title": "Rejestracja",
|
|
"description": "Utwórz konto ZITADEL.",
|
|
"noMethodAvailableWarning": "Brak dostępnych metod uwierzytelniania. Skontaktuj się z administratorem.",
|
|
"selectMethod": "Wybierz metodę uwierzytelniania, której chcesz użyć",
|
|
"agreeTo": "Aby się zarejestrować, musisz zaakceptować warunki korzystania",
|
|
"termsOfService": "Regulamin",
|
|
"privacyPolicy": "Polityka prywatności",
|
|
"submit": "Kontynuuj",
|
|
"password": {
|
|
"title": "Ustaw hasło",
|
|
"description": "Ustaw hasło dla swojego konta",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"password": "Hasło",
|
|
"confirmPassword": "Potwierdź hasło"
|
|
},
|
|
"required": {
|
|
"password": "Musisz podać hasło!",
|
|
"confirmPassword": "To pole jest wymagane"
|
|
}
|
|
},
|
|
"labels": {
|
|
"firstname": "Imię",
|
|
"lastname": "Nazwisko",
|
|
"email": "E-mail"
|
|
},
|
|
"required": {
|
|
"firstname": "To pole jest wymagane",
|
|
"lastname": "To pole jest wymagane",
|
|
"email": "To pole jest wymagane"
|
|
},
|
|
"errors": {
|
|
"couldNotCreateUser": "Nie udało się utworzyć użytkownika",
|
|
"couldNotCreateSession": "Nie udało się utworzyć sesji",
|
|
"userNotFound": "Nie znaleziono użytkownika w systemie",
|
|
"couldNotLinkIDP": "Nie udało się powiązać IDP z użytkownikiem",
|
|
"couldNotRegisterUser": "Nie udało się zarejestrować użytkownika"
|
|
}
|
|
},
|
|
"invite": {
|
|
"title": "Zaproś użytkownika",
|
|
"description": "Podaj adres e-mail oraz imię i nazwisko użytkownika, którego chcesz zaprosić.",
|
|
"info": "Użytkownik otrzyma e-mail z dalszymi instrukcjami.",
|
|
"notAllowed": "Twoje ustawienia nie pozwalają na zapraszanie użytkowników.",
|
|
"submit": "Kontynuuj",
|
|
"success": {
|
|
"title": "Użytkownik zaproszony",
|
|
"description": "E-mail został pomyślnie wysłany.",
|
|
"verified": "Użytkownik został zaproszony i już zweryfikował swój e-mail.",
|
|
"notVerifiedYet": "Użytkownik został zaproszony. Otrzyma e-mail z dalszymi instrukcjami.",
|
|
"submit": "Zaproś kolejnego użytkownika"
|
|
}
|
|
},
|
|
"signedin": {
|
|
"title": "Witaj {user}!",
|
|
"description": "Jesteś zalogowany.",
|
|
"continue": "Kontynuuj",
|
|
"error": {
|
|
"title": "Błąd",
|
|
"description": "Nie można załadować danych. Sprawdź połączenie z internetem lub spróbuj ponownie później."
|
|
}
|
|
},
|
|
"verify": {
|
|
"userIdMissing": "Nie podano identyfikatora użytkownika!",
|
|
"successTitle": "Weryfikacja zakończona",
|
|
"successDescription": "Użytkownik został pomyślnie zweryfikowany.",
|
|
"setupAuthenticator": "Skonfiguruj uwierzytelnianie",
|
|
"verify": {
|
|
"title": "Zweryfikuj użytkownika",
|
|
"description": "Wprowadź kod z wiadomości weryfikacyjnej.",
|
|
"noCodeReceived": "Nie otrzymałeś kodu?",
|
|
"resendCode": "Wyślij kod ponownie",
|
|
"codeSent": "Kod został właśnie wysłany na twój adres e-mail.",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"code": "Kod"
|
|
},
|
|
"required": {
|
|
"code": "To pole jest wymagane"
|
|
}
|
|
},
|
|
"errors": {
|
|
"couldNotResendEmail": "Nie udało się ponownie wysłać wiadomości e-mail",
|
|
"couldNotVerifyUser": "Nie udało się zweryfikować użytkownika",
|
|
"couldNotVerifyInvite": "Nie udało się zweryfikować zaproszenia",
|
|
"couldNotVerifyEmail": "Nie udało się zweryfikować adresu e-mail",
|
|
"couldNotVerify": "Nie udało się zweryfikować",
|
|
"couldNotLoadUser": "Nie udało się załadować użytkownika",
|
|
"couldNotLoadAuthenticators": "Nie udało się wczytać dostępnych metod uwierzytelniania",
|
|
"couldNotCreateSession": "Nie udało się utworzyć sesji",
|
|
"noHostFound": "Nie znaleziono hosta",
|
|
"userAlreadyVerified": "Użytkownik jest już zweryfikowany!",
|
|
"couldNotResendInvite": "Nie udało się ponownie wysłać zaproszenia",
|
|
"inviteSendFailed": "Nie udało się wysłać wiadomości e-mail z zaproszeniem",
|
|
"emailSendFailed": "Nie udało się wysłać wiadomości e-mail weryfikacyjnej"
|
|
}
|
|
},
|
|
"authenticator": {
|
|
"title": "Wybierz metodę uwierzytelniania",
|
|
"description": "Wybierz metodę, której chcesz użyć do uwierzytelnienia.",
|
|
"noMethodsAvailable": "Brak dostępnych metod uwierzytelniania",
|
|
"allSetup": "Już skonfigurowałeś metodę uwierzytelniania!",
|
|
"linkWithIDP": "lub połącz z dostawcą tożsamości"
|
|
},
|
|
"device": {
|
|
"usercode": {
|
|
"title": "Kod urządzenia",
|
|
"description": "Wprowadź kod.",
|
|
"submit": "Kontynuuj",
|
|
"labels": {
|
|
"code": "Kod"
|
|
},
|
|
"required": {
|
|
"code": "To pole jest wymagane"
|
|
}
|
|
},
|
|
"request": {
|
|
"title": "{appName} chce się połączyć:",
|
|
"description": "{appName} będzie miało dostęp do:",
|
|
"disclaimer": "Klikając Zezwól, pozwalasz tej aplikacji i Zitadel na korzystanie z Twoich informacji zgodnie z ich odpowiednimi warunkami użytkowania i politykami prywatności. Możesz cofnąć ten dostęp w dowolnym momencie.",
|
|
"submit": "Zezwól",
|
|
"deny": "Odmów"
|
|
},
|
|
"scope": {
|
|
"openid": "Zweryfikuj swoją tożsamość.",
|
|
"email": "Uzyskaj dostęp do swojego adresu e-mail.",
|
|
"profile": "Uzyskaj dostęp do pełnych informacji o swoim profilu.",
|
|
"offline_access": "Zezwól na dostęp offline do swojego konta."
|
|
}
|
|
},
|
|
"error": {
|
|
"noUserCode": "Nie podano kodu użytkownika!",
|
|
"noDeviceRequest": "Nie znaleziono żądania urządzenia.",
|
|
"unknownContext": "Nie udało się pobrać kontekstu użytkownika. Upewnij się, że najpierw wprowadziłeś nazwę użytkownika lub podałeś login jako parametr wyszukiwania.",
|
|
"sessionExpired": "Twoja sesja wygasła. Zaloguj się ponownie.",
|
|
"failedLoading": "Nie udało się załadować danych. Spróbuj ponownie.",
|
|
"tryagain": "Spróbuj ponownie"
|
|
}
|
|
}
|