mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-25 00:32:15 +00:00
# Which Problems Are Solved - The previous monorepo in monorepo structure for the login app and its related packages was fragmented, complicated and buggy. - The process for building and testing the login container was inconsistent between local development and CI. - Lack of clear documentation as well as easy and reliable ways for non-frontend developers to reproduce and fix failing PR checks locally. # How the Problems Are Solved - Consolidated the login app and its related npm packages by moving the main package to `apps/login/apps/login` and merging `apps/login/packages/integration` and `apps/login/packages/acceptance` into the main `apps/login` package. - Migrated from Docker Compose-based test setups to dev container-based setups, adding support for multiple dev container configurations: - `.devcontainer/base` - `.devcontainer/turbo-lint-unit` - `.devcontainer/turbo-lint-unit-debug` - `.devcontainer/login-integration` - `.devcontainer/login-integration-debug` - Added npm scripts to run the new dev container setups, enabling exact reproduction of GitHub PR checks locally, and updated the pipeline to use these containers. - Cleaned up Dockerfiles and docker-bake.hcl files to only build the production image for the login app. - Cleaned up compose files to focus on dev environments in dev containers. - Updated `CONTRIBUTING.md` with guidance on running and debugging PR checks locally using the new dev container approach. - Introduced separate Dockerfiles for the login app to distinguish between using published client packages and building clients from local protos. - Ensured the login container is always built in the pipeline for use in integration and acceptance tests. - Updated Makefile and GitHub Actions workflows to use `--frozen-lockfile` for installing pnpm packages, ensuring reproducible installs. - Disabled GitHub release creation by the changeset action. - Refactored the `/build` directory structure for clarity and maintainability. - Added a `clean` command to `docks/package.json`. - Experimentally added `knip` to the `zitadel-client` package for improved linting of dependencies and exports. # Additional Changes - Fixed Makefile commands for consistency and reliability. - Improved the structure and clarity of the `/build` directory to support seamless integration of the login build. - Enhanced documentation and developer experience for running and debugging CI checks locally. # Additional Context - See updated `CONTRIBUTING.md` for new local development and debugging instructions. - These changes are a prerequisite for further improvements to the CI pipeline and local development workflow. - Closes #10276
293 lines
11 KiB
JSON
293 lines
11 KiB
JSON
{
|
|
"common": {
|
|
"back": "Zurück"
|
|
},
|
|
"accounts": {
|
|
"title": "Konten",
|
|
"description": "Wählen Sie das Konto aus, das Sie verwenden möchten.",
|
|
"addAnother": "Ein weiteres Konto hinzufügen",
|
|
"noResults": "Keine Konten gefunden",
|
|
"verified": "verifiziert",
|
|
"expired": "abgelaufen"
|
|
},
|
|
"logout": {
|
|
"title": "Logout",
|
|
"description": "Wählen Sie den Account aus, das Sie entfernen möchten",
|
|
"noResults": "Keine Konten gefunden",
|
|
"clear": "Session beenden",
|
|
"verifiedAt": "Zuletzt aktiv: {time}",
|
|
"success": {
|
|
"title": "Logout erfolgreich",
|
|
"description": "Sie haben sich erfolgreich abgemeldet."
|
|
}
|
|
},
|
|
"loginname": {
|
|
"title": "Willkommen zurück!",
|
|
"description": "Geben Sie Ihre Anmeldedaten ein.",
|
|
"register": "Neuen Benutzer registrieren",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"loginName": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"password": {
|
|
"verify": {
|
|
"title": "Passwort",
|
|
"description": "Geben Sie Ihr Passwort ein.",
|
|
"resetPassword": "Passwort zurücksetzen",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"password": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"set": {
|
|
"title": "Passwort festlegen",
|
|
"description": "Legen Sie das Passwort für Ihr Konto fest",
|
|
"codeSent": "Ein Code wurde an Ihre E-Mail-Adresse gesendet.",
|
|
"noCodeReceived": "Keinen Code erhalten?",
|
|
"resend": "Erneut senden",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"code": "Dieses Feld ist erforderlich",
|
|
"newPassword": "Bitte geben Sie ein Passwort ein!",
|
|
"confirmPassword": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"change": {
|
|
"title": "Passwort ändern",
|
|
"description": "Legen Sie das Passwort für Ihr Konto fest",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"newPassword": "Bitte geben Sie ein neues Passwort ein!",
|
|
"confirmPassword": "Dieses Feld ist erforderlich"
|
|
}
|
|
}
|
|
},
|
|
"idp": {
|
|
"title": "Mit SSO anmelden",
|
|
"description": "Wählen Sie einen der folgenden Anbieter, um sich anzumelden",
|
|
"orSignInWith": "oder melden Sie sich an mit",
|
|
"signInWithApple": "Mit Apple anmelden",
|
|
"signInWithGoogle": "Mit Google anmelden",
|
|
"signInWithAzureAD": "Mit AzureAD anmelden",
|
|
"signInWithGithub": "Mit GitHub anmelden",
|
|
"signInWithGitlab": "Mit GitLab anmelden",
|
|
"loginSuccess": {
|
|
"title": "Anmeldung erfolgreich",
|
|
"description": "Sie haben sich erfolgreich angemeldet!"
|
|
},
|
|
"linkingSuccess": {
|
|
"title": "Konto verknüpft",
|
|
"description": "Sie haben Ihr Konto erfolgreich verknüpft!"
|
|
},
|
|
"registerSuccess": {
|
|
"title": "Registrierung erfolgreich",
|
|
"description": "Sie haben sich erfolgreich registriert!"
|
|
},
|
|
"loginError": {
|
|
"title": "Anmeldung fehlgeschlagen",
|
|
"description": "Beim Anmelden ist ein Fehler aufgetreten."
|
|
},
|
|
"linkingError": {
|
|
"title": "Konto-Verknüpfung fehlgeschlagen",
|
|
"description": "Beim Verknüpfen Ihres Kontos ist ein Fehler aufgetreten."
|
|
},
|
|
"completeRegister": {
|
|
"title": "Registrierung abschließen",
|
|
"description": "Bitte vervollständige die Registrierung, um dein Konto zu erstellen."
|
|
}
|
|
},
|
|
"ldap": {
|
|
"title": "LDAP Login",
|
|
"description": "Geben Sie Ihre LDAP-Anmeldedaten ein.",
|
|
"username": "Benutzername",
|
|
"password": "Passwort",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"username": "Dieses Feld ist erforderlich",
|
|
"password": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"mfa": {
|
|
"verify": {
|
|
"title": "Bestätigen Sie Ihre Identität",
|
|
"description": "Wählen Sie einen der folgenden Faktoren.",
|
|
"noResults": "Keine zweiten Faktoren verfügbar, um sie einzurichten."
|
|
},
|
|
"set": {
|
|
"title": "2-Faktor einrichten",
|
|
"description": "Wählen Sie einen der folgenden zweiten Faktoren.",
|
|
"skip": "Überspringen"
|
|
}
|
|
},
|
|
"otp": {
|
|
"verify": {
|
|
"title": "2-Faktor bestätigen",
|
|
"totpDescription": "Geben Sie den Code aus Ihrer Authentifizierungs-App ein.",
|
|
"smsDescription": "Geben Sie den Code ein, den Sie per SMS erhalten haben.",
|
|
"emailDescription": "Geben Sie den Code ein, den Sie per E-Mail erhalten haben.",
|
|
"noCodeReceived": "Keinen Code erhalten?",
|
|
"resendCode": "Code erneut senden",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"code": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"set": {
|
|
"title": "2-Faktor einrichten",
|
|
"totpDescription": "Scannen Sie den QR-Code mit Ihrer Authentifizierungs-App.",
|
|
"smsDescription": "Geben Sie Ihre Telefonnummer ein, um einen Code per SMS zu erhalten.",
|
|
"emailDescription": "Geben Sie Ihre E-Mail-Adresse ein, um einen Code per E-Mail zu erhalten.",
|
|
"totpRegisterDescription": "Scannen Sie den QR-Code oder navigieren Sie manuell zur URL.",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"code": "Dieses Feld ist erforderlich"
|
|
}
|
|
}
|
|
},
|
|
"passkey": {
|
|
"verify": {
|
|
"title": "Mit einem Passkey authentifizieren",
|
|
"description": "Ihr Gerät wird nach Ihrem Fingerabdruck, Gesicht oder Bildschirmsperre fragen",
|
|
"usePassword": "Passwort verwenden",
|
|
"submit": "Weiter"
|
|
},
|
|
"set": {
|
|
"title": "Passkey einrichten",
|
|
"description": "Ihr Gerät wird nach Ihrem Fingerabdruck, Gesicht oder Bildschirmsperre fragen",
|
|
"info": {
|
|
"description": "Ein Passkey ist eine Authentifizierungsmethode auf einem Gerät wie Ihr Fingerabdruck, Apple FaceID oder ähnliches.",
|
|
"link": "Passwortlose Authentifizierung"
|
|
},
|
|
"skip": "Überspringen",
|
|
"submit": "Weiter"
|
|
}
|
|
},
|
|
"u2f": {
|
|
"verify": {
|
|
"title": "2-Faktor bestätigen",
|
|
"description": "Bestätigen Sie Ihr Konto mit Ihrem Gerät."
|
|
},
|
|
"set": {
|
|
"title": "2-Faktor einrichten",
|
|
"description": "Richten Sie ein Gerät als zweiten Faktor ein.",
|
|
"submit": "Weiter"
|
|
}
|
|
},
|
|
"register": {
|
|
"methods": {
|
|
"passkey": "Passkey",
|
|
"password": "Password"
|
|
},
|
|
"disabled": {
|
|
"title": "Registrierung deaktiviert",
|
|
"description": "Die Registrierung ist deaktiviert. Bitte wenden Sie sich an den Administrator."
|
|
},
|
|
"missingdata": {
|
|
"title": "Registrierung fehlgeschlagen",
|
|
"description": "Einige Daten fehlen. Bitte überprüfen Sie Ihre Eingaben."
|
|
},
|
|
"title": "Registrieren",
|
|
"description": "Erstellen Sie Ihr ZITADEL-Konto.",
|
|
"noMethodAvailableWarning": "Keine Authentifizierungsmethode verfügbar. Bitte wenden Sie sich an den Administrator.",
|
|
"selectMethod": "Wählen Sie die Methode, mit der Sie sich authentifizieren möchten",
|
|
"agreeTo": "Um sich zu registrieren, müssen Sie den Nutzungsbedingungen zustimmen",
|
|
"termsOfService": "Nutzungsbedingungen",
|
|
"privacyPolicy": "Datenschutzrichtlinie",
|
|
"submit": "Weiter",
|
|
"orUseIDP": "oder verwenden Sie einen Identitätsanbieter",
|
|
"password": {
|
|
"title": "Passwort festlegen",
|
|
"description": "Legen Sie das Passwort für Ihr Konto fest",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"password": "Bitte geben Sie ein Passwort ein!",
|
|
"confirmPassword": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"required": {
|
|
"firstname": "Dieses Feld ist erforderlich",
|
|
"lastname": "Dieses Feld ist erforderlich",
|
|
"email": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"invite": {
|
|
"title": "Benutzer einladen",
|
|
"description": "Geben Sie die E-Mail-Adresse des Benutzers ein, den Sie einladen möchten.",
|
|
"info": "Der Benutzer erhält eine E-Mail mit einem Link, um sich zu registrieren.",
|
|
"notAllowed": "Sie haben keine Berechtigung, Benutzer einzuladen.",
|
|
"submit": "Einladen",
|
|
"success": {
|
|
"title": "Einladung erfolgreich",
|
|
"description": "Der Benutzer wurde erfolgreich eingeladen.",
|
|
"verified": "Der Benutzer wurde eingeladen und hat seine E-Mail bereits verifiziert.",
|
|
"notVerifiedYet": "Der Benutzer wurde eingeladen. Er erhält eine E-Mail mit weiteren Anweisungen.",
|
|
"submit": "Weiteren Benutzer einladen"
|
|
}
|
|
},
|
|
"signedin": {
|
|
"title": "Willkommen {user}!",
|
|
"description": "Sie sind angemeldet.",
|
|
"continue": "Weiter",
|
|
"error": {
|
|
"title": "Fehler",
|
|
"description": "Ein Fehler ist aufgetreten."
|
|
}
|
|
},
|
|
"verify": {
|
|
"userIdMissing": "Keine Benutzer-ID angegeben!",
|
|
"successTitle": "Benutzer verifiziert",
|
|
"successDescription": "Der Benutzer wurde erfolgreich verifiziert.",
|
|
"setupAuthenticator": "Authentifikator einrichten",
|
|
"verify": {
|
|
"title": "Benutzer verifizieren",
|
|
"description": "Geben Sie den Code ein, der in der Bestätigungs-E-Mail angegeben ist.",
|
|
"noCodeReceived": "Keinen Code erhalten?",
|
|
"resendCode": "Code erneut senden",
|
|
"codeSent": "Ein Code wurde gerade an Ihre E-Mail-Adresse gesendet.",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"code": "Dieses Feld ist erforderlich"
|
|
}
|
|
}
|
|
},
|
|
"authenticator": {
|
|
"title": "Authentifizierungsmethode auswählen",
|
|
"description": "Wählen Sie die Methode, mit der Sie sich authentifizieren möchten.",
|
|
"noMethodsAvailable": "Keine Authentifizierungsmethoden verfügbar",
|
|
"allSetup": "Sie haben bereits einen Authentifikator eingerichtet!",
|
|
"linkWithIDP": "oder verknüpfe mit einem Identitätsanbieter"
|
|
},
|
|
"device": {
|
|
"usercode": {
|
|
"title": "Gerätecode",
|
|
"description": "Geben Sie den Code ein.",
|
|
"submit": "Weiter",
|
|
"required": {
|
|
"code": "Dieses Feld ist erforderlich"
|
|
}
|
|
},
|
|
"request": {
|
|
"title": "{appName} möchte eine Verbindung herstellen:",
|
|
"disclaimer": "{appName} hat Zugriff auf:",
|
|
"description": "Durch Klicken auf Zulassen erlauben Sie {appName} und Zitadel, Ihre Informationen gemäß ihren jeweiligen Nutzungsbedingungen und Datenschutzrichtlinien zu verwenden. Sie können diesen Zugriff jederzeit widerrufen.",
|
|
"submit": "Zulassen",
|
|
"deny": "Ablehnen"
|
|
},
|
|
"scope": {
|
|
"openid": "Überprüfen Ihrer Identität.",
|
|
"email": "Zugriff auf Ihre E-Mail-Adresse.",
|
|
"profile": "Zugriff auf Ihre vollständigen Profilinformationen.",
|
|
"offline_access": "Erlauben Sie den Offline-Zugriff auf Ihr Konto."
|
|
}
|
|
},
|
|
"error": {
|
|
"noUserCode": "Kein Benutzercode angegeben!",
|
|
"noDeviceRequest": " Es wurde keine Geräteanforderung gefunden. Bitte überprüfen Sie die URL.",
|
|
"unknownContext": "Der Kontext des Benutzers konnte nicht ermittelt werden. Stellen Sie sicher, dass Sie zuerst den Benutzernamen eingeben oder einen loginName als Suchparameter angeben.",
|
|
"sessionExpired": "Ihre aktuelle Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.",
|
|
"failedLoading": "Daten konnten nicht geladen werden. Bitte versuchen Sie es erneut.",
|
|
"tryagain": "Erneut versuchen"
|
|
}
|
|
}
|