diff --git a/src/locales/nl.json b/src/locales/nl.json
new file mode 100644
index 000000000..d6a426213
--- /dev/null
+++ b/src/locales/nl.json
@@ -0,0 +1,172 @@
+{
+ "consent.action-accept": "Toestaan",
+ "consent.action-reject": "Weigeren",
+ "consent.description": "Verleen alleen toestemming als u deze site of app vertrouwt. U hoeft niet alle toestemmingen te accepteren.",
+ "consent.privacy-policy-label": "Privacybeleid",
+ "consent.remember-label": "Onthoud deze beslissing voor de volgende keer. De toepassing kan geen aanvullende toestemming vragen zonder uw toestemming.",
+ "consent.remember-tooltip": "Onthoud mijn beslissing",
+ "consent.requested-permissions-label": "De toepassing vraagt toegang tot de volgende toestemmingen:",
+ "consent.terms-of-service-label": "Gebruiksvoorwaarden",
+ "error.back-button": "Ga terug",
+ "error.description": "Er is een fout opgetreden met de volgende melding:",
+ "error.support-email-link": "Als het probleem aanhoudt, neem dan contact op met {contactSupportEmail}",
+ "error.title": "Er is een fout opgetreden",
+ "error.title-internal-server-error": "Interne serverfout",
+ "error.title-not-found": "404 - Pagina niet gevonden",
+ "identities.messages.1010001": "Aanmelden",
+ "identities.messages.1010002": "Aanmelden met {provider}",
+ "identities.messages.1010003": "Bevestig deze actie door te verifiëren dat u het bent.",
+ "identities.messages.1010004": "Voltooi alstublieft de tweede authenticatie-uitdaging.",
+ "identities.messages.1010005": "Verifiëren",
+ "identities.messages.1010006": "Verificatiecode",
+ "identities.messages.1010007": "Back-up herstelcode",
+ "identities.messages.1010008": "Beveiligingssleutel gebruiken",
+ "identities.messages.1010009": "Authenticator gebruiken",
+ "identities.messages.1010010": "Back-up herstelcode gebruiken",
+ "identities.messages.1010011": "Doorgaan met beveiligingssleutel",
+ "identities.messages.1010012": "Bereid uw WebAuthn-apparaat voor (bijv. beveiligingssleutel, biometrische scanner, ...) en druk op doorgaan.",
+ "identities.messages.1010013": "Doorgaan",
+ "identities.messages.1010014": "Er is een e-mail met een code verzonden naar het opgegeven e-mailadres. Als u geen e-mail heeft ontvangen, controleer dan de spelling van het adres en probeer opnieuw in te loggen.",
+ "identities.messages.1010015": "Aanmelden met code",
+ "identities.messages.1040001": "Registreren",
+ "identities.messages.1040002": "Registreren met {provider}",
+ "identities.messages.1040003": "Doorgaan",
+ "identities.messages.1040004": "Registreren met beveiligingssleutel",
+ "identities.messages.1040005": "Er is een e-mail met een code verzonden naar het opgegeven e-mailadres. Als u geen e-mail heeft ontvangen, controleer dan de spelling van het adres en probeer opnieuw te registreren.",
+ "identities.messages.1040006": "Registreren met code",
+ "identities.messages.1050001": "Uw wijzigingen zijn opgeslagen!",
+ "identities.messages.1050002": "Koppelen aan {provider}",
+ "identities.messages.1050003": "Ontkoppelen van {provider}",
+ "identities.messages.1050004": "Ontkoppelen van TOTP Authenticator-app",
+ "identities.messages.1050005": "QR-code voor Authenticator-app",
+ "identities.messages.1050006": "{secret}",
+ "identities.messages.1050007": "Toon back-up herstelcodes",
+ "identities.messages.1050008": "Nieuwe back-up herstelcodes genereren",
+ "identities.messages.1050009": "{secret}",
+ "identities.messages.1050010": "Dit zijn uw back-up herstelcodes. Bewaar ze op een veilige plaats!",
+ "identities.messages.1050011": "Bevestig back-up herstelcodes",
+ "identities.messages.1050012": "Beveiligingssleutel toevoegen",
+ "identities.messages.1050013": "Naam van de beveiligingssleutel",
+ "identities.messages.1050014": "Gebruikt",
+ "identities.messages.1050015": "{secrets_list}",
+ "identities.messages.1050016": "Deze methode uitschakelen",
+ "identities.messages.1050017": "Dit is uw geheime Authenticator-app. Gebruik het als u de QR-code niet kunt scannen.",
+ "identities.messages.1050018": "Beveiligingssleutel verwijderen \"{display_name}\"",
+ "identities.messages.1060001": "U heeft met succes uw account hersteld. Wijzig alstublieft uw wachtwoord of stel een alternatieve aanmeldingsmethode in (bijv. sociale aanmelding) binnen de komende {privileged_session_expires_at_unix_until_minutes} minuten.",
+ "identities.messages.1060002": "Er is een e-mail met een herstelkoppeling verzonden naar het opgegeven e-mailadres. Als u geen e-mail heeft ontvangen, controleer dan de spelling van het e-mailadres en zorg ervoor dat u het e-mailadres gebruikt waarmee u zich heeft geregistreerd.",
+ "identities.messages.1060003": "Er is een e-mail met een herstelcode verzonden naar het opgegeven e-mailadres. Als u geen e-mail heeft ontvangen, controleer dan de spelling van het e-mailadres en zorg ervoor dat u het e-mailadres gebruikt waarmee u zich heeft geregistreerd.",
+ "identities.messages.1070001": "Wachtwoord",
+ "identities.messages.1070002": "{title}",
+ "identities.messages.1070003": "Opslaan",
+ "identities.messages.1070004": "ID",
+ "identities.messages.1070005": "Verzenden",
+ "identities.messages.1070006": "Verificatiecode controleren",
+ "identities.messages.1070007": "E-mail",
+ "identities.messages.1070008": "Code opnieuw verzenden",
+ "identities.messages.1070009": "Doorgaan",
+ "identities.messages.1070010": "Herstelcode",
+ "identities.messages.1070011": "Verificatiecode",
+ "identities.messages.1070012": "Registratiecode",
+ "identities.messages.1070013": "Aanmeldingscode",
+ "identities.messages.1080001": "Er is een e-mail met een verificatielink naar het opgegeven e-mailadres gestuurd. Als je geen e-mail hebt ontvangen, controleer dan de spelling van het e-mailadres en zorg ervoor dat je het e-mailadres hebt gebruikt waarmee je hebt geregistreerd.",
+ "identities.messages.1080002": "Je hebt succesvol je e-mailadres geverifieerd.",
+ "identities.messages.1080003": "Er is een e-mail met een verificatiecode naar het opgegeven e-mailadres gestuurd. Als je geen e-mail hebt ontvangen, controleer dan de spelling van het e-mailadres en zorg ervoor dat je het e-mailadres hebt gebruikt waarmee je hebt geregistreerd.",
+ "identities.messages.4000001": "{reden}",
+ "identities.messages.4000002": "Eigenschap {eigenschap} ontbreekt.",
+ "identities.messages.4000003": "lengte moet >= {min_lengte} zijn, maar is {werkelijke_lengte}",
+ "identities.messages.4000004": "komt niet overeen met patroon \"{patroon}\"",
+ "identities.messages.4000005": "Het wachtwoord kan niet worden gebruikt vanwege {reden}.",
+ "identities.messages.4000006": "De verstrekte referenties zijn ongeldig, controleer op typefouten in je wachtwoord of gebruikersnaam, e-mailadres of telefoonnummer.",
+ "identities.messages.4000007": "Er bestaat al een account met dezelfde identificatiegegevens (e-mail, telefoon, gebruikersnaam, ...).",
+ "identities.messages.4000008": "De verstrekte verificatiecode is ongeldig, probeer het opnieuw.",
+ "identities.messages.4000009": "Kon geen aanmeldingsidentificatoren vinden. Ben je ze vergeten in te stellen? Dit kan ook worden veroorzaakt door een servermisconfiguratie.",
+ "identities.messages.4000010": "Account nog niet actief. Ben je vergeten je e-mailadres te verifiëren?",
+ "identities.messages.4000011": "Je hebt geen TOTP-apparaat ingesteld.",
+ "identities.messages.4000012": "Deze herstelcode is al gebruikt.",
+ "identities.messages.4000013": "Je hebt geen WebAuthn-apparaat ingesteld.",
+ "identities.messages.4000014": "Je hebt geen herstelcodes ingesteld.",
+ "identities.messages.4000015": "Dit account bestaat niet of heeft geen beveiligingssleutel ingesteld.",
+ "identities.messages.4000016": "De herstelcode is niet geldig.",
+ "identities.messages.4000017": "lengte moet <= {max_lengte} zijn, maar is {werkelijke_lengte}",
+ "identities.messages.4000018": "moet >= {minimum} zijn, maar is {werkelijke}",
+ "identities.messages.4000019": "moet > {minimum} zijn, maar is {werkelijke}",
+ "identities.messages.4000020": "moet <= {maximum} zijn, maar is {werkelijke}",
+ "identities.messages.4000021": "moet < {maximum} zijn, maar is {werkelijke}",
+ "identities.messages.4000022": "{werkelijke} is geen veelvoud van {basis}",
+ "identities.messages.4000023": "maximaal {max_items} items toegestaan, maar er zijn {werkelijke_items} items gevonden",
+ "identities.messages.4000024": "minimaal {min_items} items toegestaan, maar er zijn {werkelijke_items} items gevonden",
+ "identities.messages.4000025": "items op index {index_a} en {index_b} zijn gelijk",
+ "identities.messages.4000026": "verwacht {toegestane_types_lijst}, maar kreeg {werkelijke_type}",
+ "identities.messages.4000027": "Er bestaat al een account met dezelfde identificatiegegevens (e-mail, telefoon, gebruikersnaam, ...). Meld je aan bij je bestaande account en koppel je sociale profiel in de instellingenpagina.",
+ "identities.messages.4000028": "Je hebt geprobeerd in te loggen met {aanmeldingsidentificatiehint}, dat al wordt gebruikt door een ander account. Je kunt inloggen met {beschikbare_aanmeldingstypes_lijst}. Je kunt inloggen met een van de volgende sociale aanmeldingsproviders: {Beschikbare_oidc_providers_lijst}.",
+ "identities.messages.4000029": "moet gelijk zijn aan constante {verwacht}",
+ "identities.messages.4000030": "constante mislukt",
+ "identities.messages.4000031": "Het wachtwoord kan niet worden gebruikt omdat het te veel lijkt op de identificatiegegevens.",
+ "identities.messages.4000032": "Het wachtwoord moet minstens {min_lengte} tekens lang zijn, maar is {werkelijke_lengte}.",
+ "identities.messages.4000033": "Het wachtwoord mag hoogstens {max_lengte} tekens lang zijn, maar is {werkelijke_lengte}.",
+ "identities.messages.4000034": "Het wachtwoord is gevonden in datalekken en mag niet langer worden gebruikt.",
+ "identities.messages.4000035": "Dit account bestaat niet of heeft geen aanmelding met code ingesteld.",
+ "identities.messages.4000036": "De verstrekte kenmerken komen niet overeen met de eerder geassocieerde kenmerken met deze stroom.",
+ "identities.messages.4010001": "De aanmeldingsstroom is verlopen {verlopen_op_unix_sinds_minuten} minuten geleden, probeer het opnieuw.",
+ "identities.messages.4010002": "Kon geen strategie vinden om mee in te loggen. Heb je het formulier correct ingevuld?",
+ "identities.messages.4010003": "Kon geen strategie vinden om je mee aan te melden. Heb je het formulier correct ingevuld?",
+ "identities.messages.4010004": "Kon geen strategie vinden om je instellingen bij te werken. Heb je het formulier correct ingevuld?",
+ "identities.messages.4010005": "Kon geen strategie vinden om je account mee te herstellen. Heb je het formulier correct ingevuld?",
+ "identities.messages.4010006": "Kon geen strategie vinden om je account mee te verifiëren. Heb je het formulier correct ingevuld?",
+ "identities.messages.4010007": "Het verzoek is al met succes voltooid en kan niet opnieuw worden geprobeerd.",
+ "identities.messages.4010008": "De aanmeldingscode is ongeldig of is al gebruikt. Probeer het opnieuw.",
+ "identities.messages.4040001": "De registratie flowis verlopen {verlopen_op_unix_sinds_minuten} minuten geleden, probeer het opnieuw.",
+ "identities.messages.4040002": "Het verzoek is al met succes voltooid en kan niet opnieuw worden geprobeerd.",
+ "identities.messages.4040003": "De registratiecode is ongeldig of is al gebruikt. Probeer het opnieuw.",
+ "identities.messages.4050001": "De instellingen flow is verlopen {verlopen_op_unix_sinds_minuten} minuten geleden, probeer het opnieuw.",
+ "identities.messages.4060001": "Het verzoek is al met succes voltooid en kan niet opnieuw worden geprobeerd.",
+ "identities.messages.4060002": "De herstel flow heeft een fout bereikt en moet opnieuw worden geprobeerd.",
+ "identities.messages.4060004": "De hersteltoken is ongeldig of is al gebruikt. Probeer de flow opnieuw.",
+ "identities.messages.4060005": "De herstel flow is verlopen {verlopen_op_unix_sinds_minuten} minuten geleden, probeer het opnieuw.",
+ "identities.messages.4060006": "De herstelcode is ongeldig of is al gebruikt. Probeer het opnieuw.",
+ "identities.messages.4070001": "De verificatietoken is ongeldig of is al gebruikt. Probeer de flow opnieuw.",
+ "identities.messages.4070002": "Het verzoek is al met succes voltooid en kan niet opnieuw worden geprobeerd.",
+ "identities.messages.4070003": "De verificatie flow heeft een fout bereikt en moet opnieuw worden geprobeerd.",
+ "identities.messages.4070005": "De verificatie flow is verlopen {verlopen_op_unix_sinds_minuten} minuten geleden, probeer het opnieuw.",
+ "identities.messages.4070006": "De verificatiecode is ongeldig of is al gebruikt. Probeer het opnieuw."
+ "identities.messages.5000001": "{reden}",
+ "login.forgot-password": "Wachtwoord vergeten?",
+ "login.logged-in-as-label": "Je bent ingelogd als:",
+ "login.logout-button": "Uitloggen",
+ "login.logout-label": "Er is iets mis?",
+ "login.registration-button": "Registreren",
+ "login.registration-label": "Heb je nog geen account?",
+ "login.subtitle-oauth2": "Om te authenticeren bij {clientName}",
+ "login.title": "Inloggen",
+ "login.title-aal2": "Twee-Factor Authenticatie",
+ "login.title-refresh": "Bevestig dat jij het bent",
+ "logout.accept-button": "Ja",
+ "logout.reject-button": "Nee",
+ "logout.title": "Wil je uitloggen?",
+ "recovery.login-button": "Inloggen",
+ "recovery.login-label": "Herinner je je inloggegevens?",
+ "recovery.title": "Herstel je account",
+ "registration.login-button": "Inloggen",
+ "registration.login-label": "Heb je al een account?",
+ "registration.subtitle-oauth2": "Om te authenticeren bij {clientName}",
+ "registration.title": "Registreer een account",
+ "settings.navigation-backup-codes": "2FA Backupcodes",
+ "settings.navigation-logout": "Uitloggen",
+ "settings.navigation-oidc": "Sociaal Inloggen",
+ "settings.navigation-password": "Wachtwoord",
+ "settings.navigation-profile": "Profiel",
+ "settings.navigation-totp": "Authenticator App",
+ "settings.navigation-webauthn": "Hardware Tokens",
+ "settings.subtitle-instructions": "Hier kun je instellingen beheren die verband houden met je account. Houd er rekening mee dat bepaalde acties vereisen dat je opnieuw wordt geauthenticeerd.",
+ "settings.title": "Accountinstellingen",
+ "settings.title-lookup-secret": "Beheer 2FA Backup Herstelcodes",
+ "settings.title-navigation": "Accountinstellingen",
+ "settings.title-oidc": "Sociaal Inloggen",
+ "settings.title-password": "Wachtwoord wijzigen",
+ "settings.title-profile": "Profielinstellingen",
+ "settings.title-totp": "Beheer 2FA TOTP Authenticator App",
+ "settings.title-webauthn": "Beheer Hardware Tokens",
+ "verification.registration-button": "Registreren",
+ "verification.registration-label": "Heb je nog geen account?",
+ "verification.title": "Verifieer je account"
+}
\ No newline at end of file