Files
zitadel/apps/login/locales/tr.json
T
3c746281f1 fix(login): show account selection after RP-initiated logout (#12638)
**Supersedes #12471** by @conblem — same fix, rebased onto current
`main` with conflicts resolved and review feedback applied. Original
commits are preserved, all credit to @conblem.

Closes #12252

### Problem

After an RP-initiated logout (`end_session` with `id_token_hint`), Login
V2 redirected straight to `/loginname` instead of showing the account
picker like Login V1. The `sessions` cookie still referenced the
previous accounts, but their server-side sessions had been terminated,
so `listSessions` returned nothing and the flow treated the browser as
having no accounts at all.

### Solution

- `handleOIDCFlowInitiation` now checks the `sessions` cookie
(`hasCookieAccount`) when no live session is eligible for the request's
organization. If the cookie still knows an account and the RP passed no
`login_hint`, the user is sent to `/accounts` instead of `/loginname`.
`prompt=none` is excluded since it must never render UI.
- `/accounts` synthesizes an (invalid) `Session` for each cookie entry
that has no live counterpart, so the account is still listed and a click
re-authenticates via `/loginname` → password in one step.
- `clearSession` prunes the cookie entry when the server reports the
session as already gone (`NotFound` / `PermissionDenied`), so stale
cards can be dismissed. Any other error is rethrown so a still-valid
server session is never silently orphaned.
- `getAllSessionCookieIds` is now a thin wrapper over `getAllSessions`;
`FlowInitiationParams.sessionCookies` is typed as `Cookie[]`.
- Tests: new `describe` block covering the cookie fallback, `login_hint`
precedence, `prompt=none`, org-scope matching/mismatch, and
`SELECT_ACCOUNT` / default prompt with live sessions filtered out by
org.
- Also adds `.claude/`, `.cursor/`, `.codex/`, `.windsurf/`,
`.copilot/`, `.aider*` to `.gitignore`.

---------

Co-authored-by: conblem <[email protected]>
2026-08-27 11:07:30 +00:00

464 lines
18 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"back": "Geri",
"title": "Zitadel ile Giriş"
},
"accounts": {
"title": "Hesaplar",
"description": "Kullanmak istediğiniz hesabı seçin.",
"addAnother": "Başka hesap ekle",
"noResults": "Hesap bulunamadı",
"verified": "doğrulandı",
"expired": "süresi doldu"
},
"logout": {
"title": "Çıkış",
"description": "Oturumu sonlandırmak için bir hesaba tıklayın",
"noResults": "Hesap bulunamadı",
"clear": "Oturumu Sonlandır",
"verifiedAt": "Son aktif: {time}",
"success": {
"title": "Çıkış başarılı",
"description": "Başarıyla çıkış yaptınız."
}
},
"loginname": {
"title": "Tekrar hoş geldiniz!",
"description": "Giriş bilgilerinizi girin.",
"register": "Yeni kullanıcı kaydet",
"submit": "Devam",
"labels": {
"loginname": "Kullanıcı adı",
"username": "Kullanıcı adı",
"usernameOrPhoneNumber": "Kullanıcı adı veya telefon numarası",
"usernameOrEmail": "Kullanıcı adı veya e-posta"
},
"required": {
"loginName": "Bu alan zorunludur"
},
"errors": {
"internalError": "Bir iç hata oluştu",
"couldNotGetLoginSettings": "Giriş ayarları alınamadı",
"couldNotSearchUsers": "Kullanıcılar aranamadı",
"couldNotGetDomain": "Alan adı alınamadı",
"couldNotGetHost": "Host alınamadı",
"couldNotStartIDPFlow": "IDP akışı başlatılamadı",
"moreThanOneUserFound": "Birden fazla kullanıcı bulundu. Benzersiz bir tanımlayıcı sağlayın.",
"userNotFound": "Kullanıcı sistemde bulunamadı",
"couldNotCreateSession": "Kullanıcı için oturum oluşturulamadı",
"initialUserNotSupported": "İlk kullanıcı desteklenmiyor",
"localAuthenticationNotAllowed": "Yerel kimlik doğrulamasına izin verilmiyor! Daha fazla bilgi için yöneticinize başvurun.",
"passkeysNotAllowed": "Passkey'ler izin verilmiyor! Daha fazla bilgi için yöneticinizle iletişime geçin.",
"couldNotFindIdentityProvider": "Kimlik sağlayıcı bulunamadı.",
"userNotActive": "Kullanıcı aktif değil. Daha fazla bilgi için yöneticinizle iletişime geçin."
}
},
"zitadel": {
"errors": {
"errorOccured": "Bir hata oluştu",
"multipleUsersFound": "Birden fazla kullanıcı bulundu",
"userNotFound": "Kullanıcı sistemde bulunamadı"
}
},
"password": {
"verify": {
"title": "Şifre",
"description": "Şifrenizi girin.",
"resetPassword": "Şifreyi Sıfırla",
"submit": "Devam",
"labels": {
"password": "Şifre"
},
"required": {
"password": "Bu alan zorunludur"
},
"errors": {
"couldNotVerifyPassword": "Şifre doğrulanamadı",
"couldNotResetPassword": "Şifre sıfırlanamadı"
},
"info": {
"passwordResetSent": "Şifre sıfırlandı. Lütfen e-postanızı kontrol edin"
}
},
"set": {
"title": "Şifre Belirle",
"description": "Hesabınız için şifre belirleyin",
"codeSent": "E-posta adresinize yeni bir kod gönderildi.",
"noCodeReceived": "Kod almadınız mı?",
"resend": "Kodu tekrar gönder",
"submit": "Devam",
"labels": {
"code": "Kod",
"newPassword": "Yeni Şifre",
"confirmPassword": "Şifreyi Onayla"
},
"required": {
"code": "Bu alan zorunludur",
"newPassword": "Bir şifre sağlamalısınız!",
"confirmPassword": "Bu alan zorunludur"
},
"errors": {
"couldNotSetPassword": "Şifre belirlenemedi",
"couldNotResetPassword": "Şifre sıfırlanamadı",
"couldNotVerifyPassword": "Şifre doğrulanamadı"
}
},
"change": {
"title": "Şifre Değiştir",
"description": "Hesabınız için şifre belirleyin",
"submit": "Devam",
"labels": {
"currentPassword": "Mevcut Şifre",
"newPassword": "Yeni Şifre",
"confirmPassword": "Şifreyi Onayla"
},
"required": {
"currentPassword": "Mevcut şifrenizi girmelisiniz!",
"newPassword": "Yeni bir şifre sağlamalısınız!",
"confirmPassword": "Bu alan zorunludur"
},
"errors": {
"currentPasswordInvalid": "Mevcut şifre yanlış.",
"couldNotChangePassword": "Şifre değiştirilemedi",
"couldNotVerifyPassword": "Şifre doğrulanamadı",
"unknownError": "Bilinmeyen hata"
}
},
"complexity": {
"length": "En az {minLength} karakter uzunluğunda olmalıdır.",
"hasSymbol": "Bir sembol içermelidir.",
"hasNumber": "Bir sayı içermelidir.",
"hasUppercase": "Bir büyük harf içermelidir.",
"hasLowercase": "Bir küçük harf içermelidir.",
"equals": "Şifre onayı eşleşti.",
"matches": "Eşleşiyor",
"doesNotMatch": "Eşleşmiyor"
},
"errors": {
"noHostFound": "Host bulunamadı",
"couldNotSendResetLink": "Şifre Sıfırlama Bağlantısı gönderilemedi",
"couldNotCreateSessionForUser": "Kullanıcı için oturum oluşturulamadı",
"couldNotVerifyPassword": "Şifre doğrulanamadı",
"failedToAuthenticate": "Kimlik doğrulama başarısız. {maxPasswordAttempts} denemeden {failedAttempts} tanesini kullandınız.{lockoutMessage}",
"failedToAuthenticateNoLimit": "Kimlik doğrulama başarısız.",
"accountLockedContactAdmin": " Hesabınızın kilidini açmak için yöneticinizle iletişime geçin",
"userNotFound": "Kullanıcı sistemde bulunamadı",
"initialUserNotSupported": "İlk kullanıcı desteklenmiyor",
"userInitialStateNotSupported": "Kullanıcı İlk Durumu desteklenmiyor",
"codeOrVerificationRequired": "Bir kod sağlamalı veya geçerli bir Kullanıcı Doğrulama Kontrolüne sahip olmalısınız",
"verificationRequired": "Kullanıcı Doğrulama Kontrolü yapılmalıdır",
"couldNotLoadSession": "Oturum yüklenemedi",
"couldNotLoadAuthMethods": "Kimlik doğrulama yöntemleri yüklenemedi",
"failedPrecondition": "Ön koşul başarısız",
"sessionNotValid": "Oturum geçerli değil",
"passwordVerificationMissing": "Şifre doğrulaması eksik.",
"passwordVerificationTooOld": "Şifre doğrulaması çok eski. Lütfen şifrenizi tekrar doğrulayın."
}
},
"idp": {
"title": "SSO ile Giriş",
"description": "Giriş yapmak için aşağıdaki sağlayıcılardan birini seçin",
"orSignInWith": "veya şununla giriş yapın",
"signInWithApple": "Apple ile Giriş",
"signInWithGoogle": "Google ile Giriş",
"signInWithAzureAD": "AzureAD ile Giriş",
"signInWithGithub": "GitHub ile Giriş",
"signInWithGitlab": "GitLab ile Giriş",
"signInWithZitadel": "Zitadel ile Giriş",
"loginError": {
"title": "Giriş başarısız",
"description": "Giriş yapılmaya çalışılırken bir hata oluştu."
},
"linkingError": {
"title": "Hesap bağlama başarısız",
"description": "Hesabınız bağlanmaya çalışılırken bir hata oluştu."
},
"completeRegister": {
"title": "Bilgilerinizi tamamlayın",
"description": "E-posta adresinizi ve adınızı sağlayarak kaydınızı tamamlamalısınız."
},
"accountNotFound": {
"title": "Hesap Bulunamadı",
"description": "Kimlik sağlayıcı bilgilerinizle ilişkili bir hesap bulamadık.",
"info": "Mevcut bir hesap bulunamadı. Lütfen mevcut bir hesapla giriş yapın veya yardım için yöneticinizle iletişime geçin.",
"backToLogin": "Girişe Dön"
},
"registrationFailed": {
"title": "Kayıt Kullanılamıyor",
"description": "Kayıt işlemini tamamlayamadık.",
"info": "Kayıt için organizasyon belirlenemedi. Lütfen yardım için yöneticinizle iletişime geçin.",
"backToLogin": "Girişe Dön"
},
"processing": {
"message": "Kimlik doğrulama işleniyor...",
"noRedirect": "Sunucudan yönlendirme veya hata dönmedi",
"unexpectedError": "Beklenmeyen bir hata oluştu"
},
"errors": {
"missingParameters": "Eksik gerekli parametreler",
"missingIdpInfo": "IDP bilgisi eksik",
"idpNotFound": "Kimlik sağlayıcı bulunamadı",
"linkingNotAllowed": "Bu kimlik sağlayıcı için bağlantıya izin verilmiyor",
"linkingFailed": "Kimlik sağlayıcı hesaba bağlanamadı",
"autoLinkingFailed": "Hesap otomatik olarak bağlanamadı",
"userCreationFailed": "Kullanıcı hesabı oluşturulamadı",
"orgResolutionFailed": "Kayıt için organizasyon belirlenemedi",
"sessionCreationFailed": "Oturum oluşturulamadı veya yönlendirme belirlenemedi",
"unknownError": "Bilinmeyen bir hata oluştu"
}
},
"ldap": {
"title": "LDAP Girişi",
"description": "LDAP bilgilerinizi girin.",
"submit": "Devam",
"labels": {
"username": "Kullanıcı adı",
"password": "Şifre"
},
"required": {
"username": "Bu alan zorunludur",
"password": "Bu alan zorunludur"
}
},
"mfa": {
"verify": {
"title": "Kimliğinizi doğrulayın",
"description": "Aşağıdaki faktörlerden birini seçin.",
"noResults": "Kurulum için ikinci faktör mevcut değil."
},
"set": {
"title": "2 Faktörlü Doğrulama Kur",
"description": "Aşağıdaki ikinci faktörlerden birini seçin.",
"skip": "Atla"
}
},
"otp": {
"verify": {
"title": "2 Faktörlü Doğrulama",
"totpDescription": "Kimlik doğrulama uygulamanızdaki kodu girin.",
"smsDescription": "SMS ile aldığınız kodu girin.",
"emailDescription": "E-posta ile aldığınız kodu girin.",
"noCodeReceived": "Kod almadınız mı?",
"resendCode": "Kodu tekrar gönder",
"submit": "Devam",
"labels": {
"code": "Kod"
},
"required": {
"code": "Bu alan zorunludur"
}
},
"set": {
"title": "2 Faktörlü Doğrulama Kur",
"totpDescription": "QR kodunu kimlik doğrulama uygulamanızla tarayın.",
"smsDescription": "SMS ile kod almak için telefon numaranızı girin.",
"emailDescription": "E-posta ile kod almak için e-posta adresinizi girin.",
"totpRegisterDescription": "QR Kodunu tarayın veya URL'ye manuel olarak gidin.",
"submit": "Devam",
"labels": {
"code": "Kod"
},
"required": {
"code": "Bu alan zorunludur"
}
}
},
"passkey": {
"verify": {
"title": "Passkey ile kimlik doğrulama",
"description": "Cihazınız parmak izinizi, yüzünüzü veya ekran kilidinizi isteyecektir",
"usePassword": "Şifre kullan",
"submit": "Devam",
"errors": {
"couldNotRequestChallenge": "Passkey meydan okuması istenemedi",
"couldNotVerifyPasskey": "Passkey doğrulanamadı",
"noResponseReceived": "Passkey doğrulaması başarısız - yanıt alınamadı",
"noRedirectProvided": "Passkey doğrulaması tamamlandı ancak yönlendirme sağlanmadı",
"couldNotRetrievePasskey": "Passkey alınırken bir hata oluştu",
"verificationCancelled": "Passkey doğrulaması iptal edildi",
"verificationFailed": "Passkey doğrulaması sırasında bir hata oluştu",
"couldNotFindSession": "Oturum bulunamadı",
"couldNotUpdateSession": "Oturum güncellenemedi",
"userNotFound": "Kullanıcı sistemde bulunamadı",
"couldNotDetermineRedirect": "Passkey doğrulamasından sonra yönlendirme URL'si belirlenemedi"
}
},
"set": {
"title": "Passkey kur",
"description": "Cihazınız parmak izinizi, yüzünüzü veya ekran kilidinizi isteyecektir",
"info": {
"description": "Passkey, parmak izi, Apple FaceID veya benzeri gibi bir cihazdaki kimlik doğrulama yöntemidir. ",
"link": "Passkey ile Kimlik Doğrulama"
},
"skip": "Atla",
"submit": "Devam"
}
},
"u2f": {
"verify": {
"title": "2 Faktörlü Doğrulama",
"description": "Hesabınızı cihazınızla doğrulayın."
},
"set": {
"title": "2 Faktörlü Doğrulama Kur",
"description": "İkinci faktör olarak bir cihaz kurun.",
"submit": "Devam"
}
},
"register": {
"methods": {
"passkey": "Passkey",
"password": "Şifre"
},
"disabled": {
"title": "Kayıt devre dışı",
"description": "Kayıt devre dışı. Lütfen yöneticinizle iletişime geçin."
},
"missingdata": {
"title": "Eksik veri",
"description": "Kayıt olmak için e-posta, ad ve soyadı sağlayın."
},
"title": "Kayıt",
"description": "Zitadel hesabınızı oluşturun.",
"noMethodAvailableWarning": "Kullanılabilir kimlik doğrulama yöntemi yok. Lütfen yöneticinizle iletişime geçin.",
"selectMethod": "Kimlik doğrulaması yapmak istediğiniz yöntemi seçin",
"agreeTo": "Kayıt olmak için şartları ve koşulları kabul etmelisiniz",
"termsOfService": "Hizmet Şartları",
"privacyPolicy": "Gizlilik Politikası",
"submit": "Devam",
"password": {
"title": "Şifre Belirle",
"description": "Hesabınız için şifre belirleyin",
"submit": "Devam",
"labels": {
"password": "Şifre",
"confirmPassword": "Şifreyi Onayla"
},
"required": {
"password": "Bir şifre sağlamalısınız!",
"confirmPassword": "Bu alan zorunludur"
}
},
"labels": {
"firstname": "Ad",
"lastname": "Soyad",
"email": "E-posta"
},
"required": {
"firstname": "Bu alan zorunludur",
"lastname": "Bu alan zorunludur",
"email": "Bu alan zorunludur"
},
"errors": {
"couldNotCreateUser": "Kullanıcı oluşturulamadı",
"couldNotCreateSession": "Oturum oluşturulamadı",
"userNotFound": "Kullanıcı sistemde bulunamadı",
"couldNotLinkIDP": "IDP kullanıcıya bağlanamadı",
"couldNotRegisterUser": "Kullanıcı kayıt edilemedi"
}
},
"invite": {
"title": "Kullanıcı Davet Et",
"description": "Davet etmek istediğiniz kullanıcının e-posta adresini ve adını sağlayın.",
"info": "Kullanıcı, daha fazla talimat içeren bir e-posta alacaktır.",
"notAllowed": "Ayarlarınız kullanıcı davet etmenize izin vermiyor.",
"submit": "Devam",
"success": {
"title": "Kullanıcı davet edildi",
"description": "E-posta başarıyla gönderildi.",
"verified": "Kullanıcı davet edildi ve e-postasını zaten doğruladı.",
"notVerifiedYet": "Kullanıcı davet edildi. Daha fazla talimat içeren bir e-posta alacaktır.",
"submit": "Başka kullanıcı davet et"
}
},
"signedin": {
"title": "Hoş geldin {user}!",
"description": "Giriş yaptınız.",
"continue": "Devam",
"error": {
"title": "Hata",
"description": "Giriş yapılmaya çalışılırken bir hata oluştu."
}
},
"verify": {
"userIdMissing": "userId sağlanmadı!",
"successTitle": "Kullanıcı doğrulandı",
"successDescription": "Kullanıcı başarıyla doğrulandı.",
"successContinue": "Devam",
"setupAuthenticator": "Kimlik doğrulayıcı kur",
"verify": {
"title": "Kullanıcıyı doğrula",
"description": "Doğrulama e-postasında sağlanan Kodu girin.",
"noCodeReceived": "Kod almadınız mı?",
"resendCode": "Kodu tekrar gönder",
"codeSent": "E-posta adresinize bir kod gönderildi.",
"submit": "Devam",
"labels": {
"code": "Kod"
},
"required": {
"code": "Bu alan zorunludur"
}
},
"errors": {
"couldNotResendEmail": "E-posta yeniden gönderilemedi",
"couldNotVerifyUser": "Kullanıcı doğrulanamadı",
"couldNotVerifyInvite": "Davet doğrulanamadı",
"couldNotVerifyEmail": "E-posta doğrulanamadı",
"couldNotVerify": "Doğrulanamadı",
"couldNotLoadUser": "Kullanıcı yüklenemedi",
"couldNotLoadAuthenticators": "Olası kimlik doğrulayıcılar yüklenemedi",
"couldNotCreateSession": "Oturum oluşturulamadı",
"noHostFound": "Host bulunamadı",
"userAlreadyVerified": "Kullanıcı zaten doğrulanmış!",
"couldNotResendInvite": "Davet yeniden gönderilemedi",
"contextMissing": "Bir hata oluştu. Lütfen tekrar deneyin.",
"inviteSendFailed": "Davet e-postası gönderilemedi",
"emailSendFailed": "Doğrulama e-postası gönderilemedi"
}
},
"authenticator": {
"title": "Kimlik doğrulama yöntemi seçin",
"description": "Kimlik doğrulaması yapmak istediğiniz yöntemi seçin",
"noMethodsAvailable": "Kullanılabilir kimlik doğrulama yöntemi yok",
"allSetup": "Zaten bir kimlik doğrulayıcı kurdunuz!",
"linkWithIDP": "veya bir Kimlik Sağlayıcı ile bağlantı kurun"
},
"device": {
"usercode": {
"title": "Cihaz kodu",
"description": "Uygulamanızda veya cihazınızda görüntülenen kodu girin.",
"submit": "Devam",
"labels": {
"code": "Kod"
},
"required": {
"code": "Bu alan zorunludur"
}
},
"request": {
"title": "{appName} bağlanmak istiyor",
"description": "{appName} şunlara erişim sahibi olacak:",
"disclaimer": "İzin Ver'e tıklayarak, {appName} ve Zitadel'in bilgilerinizi kendi hizmet şartları ve gizlilik politikalarına uygun olarak kullanmasına izin vermiş olursunuz. Bu erişimi istediğiniz zaman iptal edebilirsiniz.",
"submit": "İzin Ver",
"deny": "Reddet"
},
"scope": {
"openid": "Kimliğinizi doğrulayın.",
"email": "E-posta adresinizi görüntüleyin.",
"profile": "Tam profil bilgilerinizi görüntüleyin.",
"offline_access": "Hesabınıza çevrimdışı erişime izin verin."
}
},
"error": {
"noUserCode": "Kullanıcı kodu sağlanmadı!",
"noDeviceRequest": "Cihaz isteği bulunamadı.",
"unknownContext": "Kullanıcının bağlamı alınamadı. Önce kullanıcı adını girdiğinizden emin olun veya searchParam olarak bir loginName sağlayın.",
"sessionExpired": "Mevcut oturumunuzun süresi doldu. Lütfen tekrar giriş yapın.",
"failedLoading": "Veri yüklenemedi. Lütfen tekrar deneyin.",
"tryagain": "Tekrar Dene",
"couldNotContinueSession": "Oturuma devam edilemedi - kullanıcı bilgileri eksik",
"couldNotClearSession": "Oturum sonlandırılamadı. Lütfen tekrar deneyin."
}
}