diff --git a/Directory.Build.props b/Directory.Build.props
index 7adba2a1..ffcb67c1 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -12,7 +12,7 @@
snupkg$(MSBuildThisFileDirectory)eng\CodeAnalysis.rulesettrue
- ar;de;es;fr;gu;hi;it;tr;zh-Hans;zh-Hant
+ ar;de;es;fr;gu;hi;it;nl;tr;zh-Hans;zh-Hant
diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf
new file mode 100644
index 00000000..233548ce
--- /dev/null
+++ b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf
@@ -0,0 +1,602 @@
+
+
+
+
+
+ The security token is missing.
+ Het beveiligingstoken ontbreekt.
+
+
+
+ The specified authorization code is invalid.
+ De opgegeven autorisatiecode is ongeldig.
+
+
+
+ The specified device code is invalid.
+ De opgegeven toestelcode is ongeldig.
+
+
+
+ The specified refresh token is invalid.
+ Het opgegeven vernieuwingstoken is ongeldig.
+
+
+
+ The specified token is invalid.
+ Het opgegeven token is ongeldig.
+
+
+
+ The specified token is not an authorization code.
+ Het opgegeven token is geen autorisatiecode.
+
+
+
+ The specified token is not an device code.
+ Het opgegeven token is geen toestelcode.
+
+
+
+ The specified token is not a refresh token.
+ Het opgegeven token is geen vernieuwingstoken.
+
+
+
+ The specified token is not an access token.
+ Het opgegeven token is geen toegangstoken.
+
+
+
+ The specified identity token is invalid.
+ Het opgegeven identiteitstoken is ongeldig.
+
+
+
+ The specified authorization code has already been redeemed.
+ De opgegeven autorisatiecode werd al ingewisseld.
+
+
+
+ The specified device code has already been redeemed.
+ De opgegeven toestelcode werd al ingewisseld.
+
+
+
+ The specified refresh token has already been redeemed.
+ Het opgegeven vernieuwingstoken werd al ingewisseld.
+
+
+
+ The specified token has already been redeemed.
+ Het opgegeven token werd al ingewisseld.
+
+
+
+ The authorization has not been granted yet by the end user.
+ De autorisatie is nog niet verleend door de eindgebruiker.
+
+
+
+ The authorization was denied by the end user.
+ De autorisatie is geweigerd door de eindgebruiker.
+
+
+
+ The specified authorization code is no longer valid.
+ De opgegeven autorisatiecode is niet langer geldig.
+
+
+
+ The specified device code is no longer valid.
+ De opgegeven toestelcode is niet langer geldig.
+
+
+
+ The specified refresh token is no longer valid.
+ Het opgegeven vernieuwingstoken is niet langer geldig.
+
+
+
+ The specified token is no longer valid.
+ Het opgegeven token is niet langer geldig.
+
+
+
+ The authorization associated with the authorization code is no longer valid.
+ De autorisatie die aan de autorisatiecode is gekoppeld, is niet langer geldig.
+
+
+
+ The authorization associated with the device code is no longer valid.
+ De autorisatie die aan de toestelcode is gekoppeld, is niet langer geldig.
+
+
+
+ The authorization associated with the refresh token is no longer valid.
+ De autorisatie die aan het vernieuwingstoken is gekoppeld, is niet langer geldig.
+
+
+
+ The authorization associated with the token is no longer valid.
+ De autorisatie die aan het token is gekoppeld, is niet langer geldig.
+
+
+
+ The token request was rejected by the authentication server.
+ Het tokenverzoek is afgewezen door de authenticatieserver.
+
+
+
+ The user information access demand was rejected by the authentication server.
+ Het verzoek om toegang tot gebruikersinformatie is afgewezen door de authenticatieserver.
+
+
+
+ The specified user code is no longer valid.
+ De opgegeven gebruikerscode is niet langer geldig.
+
+
+
+ The '{0}' parameter is not supported.
+ De parameter '{0}' wordt niet ondersteund.
+
+
+
+ The mandatory '{0}' parameter is missing.
+ De verplichte parameter '{0}' ontbreekt.
+
+
+
+ The '{0}' parameter must be a valid absolute URL.
+ De parameter '{0}' moet een geldige absolute URL zijn.
+
+
+
+ The '{0}' parameter must not include a fragment.
+ De parameter '{0}' mag geen fragment bevatten.
+
+
+
+ The specified '{0}' is not supported.
+ De opgegeven '{0}' wordt niet ondersteund.
+
+
+
+ The specified '{0}'/'{1}' combination is invalid.
+ De opgegeven combinatie '{0}'/'{1}' is ongeldig.
+
+
+
+ The mandatory '{0}' scope is missing.
+ De verplichte scope '{0}' ontbreekt.
+
+
+
+ The '{0}' scope is not allowed.
+ De scope '{0}' is niet toegestaan.
+
+
+
+ The client identifier cannot be null or empty.
+ Het client-ID mag niet null of leeg zijn.
+
+
+
+ The '{0}' parameter cannot be used without '{1}'.
+ De parameter '{0}' kan niet worden gebruikt zonder '{1}'.
+
+
+
+ The status cannot be null or empty.
+ De status mag niet null of leeg zijn.
+
+
+
+ Scopes cannot be null or empty.
+ Scopes mogen niet null of leeg zijn.
+
+
+
+ The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.
+ De parameters '{0}' en '{1}' kunnen alleen worden gebruikt met een reactietype dat '{2}' bevat.
+
+
+
+ The specified '{0}' is not allowed when using PKCE.
+ De opgegeven '{0}' is niet toegestaan bij gebruik van PKCE.
+
+
+
+ Scopes cannot contain spaces.
+ Scopes mogen geen spaties bevatten.
+
+
+
+ The specified '{0}' is not valid for this client application.
+ De opgegeven '{0}' is niet geldig voor deze clienttoepassing.
+
+
+
+ The scope name cannot be null or empty.
+ De naam van de scope mag niet null of leeg zijn.
+
+
+
+ The scope name cannot contain spaces.
+ De naam van de scope mag geen spaties bevatten.
+
+
+
+ This client application is not allowed to use the authorization endpoint.
+ Deze clienttoepassing mag het autorisatie-eindpunt niet gebruiken.
+
+
+
+ The client application is not allowed to use the authorization code flow.
+ De clienttoepassing mag de autorisatiecodestroom niet gebruiken.
+
+
+
+ The client application is not allowed to use the implicit flow.
+ De clienttoepassing mag de impliciete stroom niet gebruiken.
+
+
+
+ The client application is not allowed to use the hybrid flow.
+ De clienttoepassing mag de hybride stroom niet gebruiken.
+
+
+
+ This client application is not allowed to use the specified scope.
+ Deze clienttoepassing mag de opgegeven scope niet gebruiken.
+
+
+
+ The specified '{0}' is invalid.
+ De opgegeven '{0}' is ongeldig.
+
+
+
+ The '{0}' parameter is not valid for this client application.
+ De parameter '{0}' is niet geldig voor deze clienttoepassing.
+
+
+
+ The '{0}' parameter required for this client application is missing.
+ De parameter '{0}' die vereist is voor deze clienttoepassing, ontbreekt.
+
+
+
+ The specified client credentials are invalid.
+ De opgegeven clientreferenties zijn ongeldig.
+
+
+
+ This client application is not allowed to use the device endpoint.
+ Deze clienttoepassing mag het toesteleindpunt niet gebruiken.
+
+
+
+ The '{0}' and '{1}' parameters are required when using the client credentials grant.
+ De parameters '{0}' en '{1}' zijn vereist bij het gebruik van de toekenning van clientreferenties.
+
+
+
+ The '{0}' parameter is required when using the device code grant.
+ De parameter '{0}' is vereist bij gebruik van de toestelcodetoekenning.
+
+
+
+ The mandatory '{0}' and/or '{1}' parameters are missing.
+ De verplichte '{0}' en / of '{1}' parameters ontbreken.
+
+
+
+ A scope with the same name already exists.
+ Er bestaat al een scope met dezelfde naam.
+
+
+
+ This client application is not allowed to use the token endpoint.
+ Deze clienttoepassing mag het tokeneindpunt niet gebruiken.
+
+
+
+ This client application is not allowed to use the specified grant type.
+ Deze clienttoepassing mag het opgegeven toekenningstype niet gebruiken.
+
+
+
+ The client application is not allowed to use the '{0}' scope.
+ De clienttoepassing mag de scope '{0}' niet gebruiken.
+
+
+
+ The specified authorization code cannot be used without sending a client identifier.
+ De opgegeven autorisatiecode kan niet worden gebruikt zonder een client-ID te verzenden.
+
+
+
+ The specified device code cannot be used without sending a client identifier.
+ De opgegeven toestelcode kan niet worden gebruikt zonder een client-ID te verzenden.
+
+
+
+ The specified refresh token cannot be used without sending a client identifier.
+ Het opgegeven vernieuwingstoken kan niet worden gebruikt zonder een client-ID te verzenden.
+
+
+
+ The specified authorization code cannot be used by this client application.
+ De opgegeven autorisatiecode kan niet worden gebruikt door deze clienttoepassing.
+
+
+
+ The specified device code cannot be used by this client application.
+ De opgegeven toestelcode kan niet worden gebruikt door deze clienttoepassing.
+
+
+
+ The specified refresh token cannot be used by this client application.
+ Het opgegeven vernieuwingstoken kan niet worden gebruikt door deze clienttoepassing.
+
+
+
+ The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.
+ De opgegeven parameter '{0}' komt niet overeen met het omleidingsadres van de client waarnaar de autorisatiecode oorspronkelijk was verzonden.
+
+
+
+ The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.
+ De parameter '{0}' kan niet worden gebruikt als er geen '{1}' is opgegeven in het autorisatieverzoek.
+
+
+
+ The '{0}' parameter is not valid in this context.
+ De parameter '{0}' is in deze context niet geldig.
+
+
+
+ This client application is not allowed to use the introspection endpoint.
+ Deze clienttoepassing mag het introspectie-eindpunt niet gebruiken.
+
+
+
+ The specified token cannot be introspected.
+ Er kan geen introspectie worden uitgevoerd met het opgegeven token.
+
+
+
+ The client application is not allowed to introspect the specified token.
+ De clienttoepassing mag geen introspectie uitvoeren met het opgegeven token.
+
+
+
+ This client application is not allowed to use the revocation endpoint.
+ Deze clienttoepassing mag het intrekkings-eindpunt niet gebruiken.
+
+
+
+ This token cannot be revoked.
+ Dit token kan niet worden ingetrokken.
+
+
+
+ The client application is not allowed to revoke the specified token.
+ De clienttoepassing mag het opgegeven token niet intrekken.
+
+
+
+ The mandatory '{0}' header is missing.
+ De verplichte '{0}' header ontbreekt.
+
+
+
+ The specified '{0}' header is invalid.
+ De opgegeven '{0}' header is ongeldig.
+
+
+
+ This server only accepts HTTPS requests.
+ Deze server accepteert alleen HTTPS-verzoeken.
+
+
+
+ The specified HTTP method is not valid.
+ De opgegeven HTTP-methode is niet geldig.
+
+
+
+ A token with the same reference identifier already exists.
+ Er bestaat al een token met dezelfde referentie-ID.
+
+
+
+ The token type cannot be null or empty.
+ Het token type mag niet null of leeg zijn.
+
+
+
+ Multiple client credentials cannot be specified.
+ Er kunnen niet meerdere clientreferenties worden opgegeven.
+
+
+
+ The issuer associated to the specified token is not valid.
+ De uitgever die aan het opgegeven token is gekoppeld, is niet geldig.
+
+
+
+ The specified token is not of the expected type.
+ Het opgegeven token is niet van het verwachte type.
+
+
+
+ The signing key associated to the specified token was not found.
+ De ondertekeningssleutel die aan het opgegeven token is gekoppeld, is niet gevonden.
+
+
+
+ The signature associated to the specified token is not valid.
+ De handtekening die aan het opgegeven token is gekoppeld, is niet geldig.
+
+
+
+ This resource server is currently unavailable.
+ Deze bronserver is momenteel niet beschikbaar.
+
+
+
+ The specified token doesn't contain any audience.
+ Het opgegeven token bevat geen doelgroep.
+
+
+
+ The specified token cannot be used with this resource server.
+ Het opgegeven token kan niet worden gebruikt met deze bronserver.
+
+
+
+ The user represented by the token is not allowed to perform the requested action.
+ De gebruiker die wordt vertegenwoordigd door het token, mag de gevraagde actie niet uitvoeren.
+
+
+
+ No issuer could be found in the server configuration.
+ Er is geen uitgever gevonden in de serverconfiguratie.
+
+
+
+ A server configuration containing an invalid issuer was returned.
+ Er is een serverconfiguratie met een ongeldige uitgever geretourneerd.
+
+
+
+ The issuer returned in the server configuration is not valid.
+ De uitgever die in de serverconfiguratie is geretourneerd, is niet geldig.
+
+
+
+ No JWKS endpoint could be found in the server configuration.
+ Er is geen JWKS-eindpunt gevonden in de serverconfiguratie.
+
+
+
+ A server configuration containing an invalid JWKS endpoint URL was returned.
+ Er is een serverconfiguratie met een ongeldige JWKS-eindpunt URL geretourneerd.
+
+
+
+ A server configuration containing an invalid introspection endpoint URL was returned.
+ Er is een serverconfiguratie met een ongeldige introspectie-eindpunt URL geretourneerd.
+
+
+
+ The JWKS document didn't contain a valid '{0}' node with at least one key.
+ Het JWKS-document bevat geen geldig '{0}' element met ten minste één sleutel.
+
+
+
+ A JWKS response containing an unsupported key was returned.
+ Er is een JWKS-antwoord geretourneerd met een niet-ondersteunde sleutel.
+
+
+
+ A JWKS response containing an invalid key was returned.
+ Er is een JWKS-antwoord met een ongeldige sleutel geretourneerd.
+
+
+
+ The mandatory '{0}' parameter couldn't be found in the introspection response.
+ De verplichte parameter '{0}' is niet gevonden in het introspectie-antwoord.
+
+
+
+ The token was rejected by the remote authentication server.
+ Het token werd geweigerd door de externe authenticatieserver.
+
+
+
+ The '{0}' claim is malformed or isn't of the expected type.
+ De claim '{0}' heeft een onjuiste indeling of is niet van het verwachte type.
+
+
+
+ An introspection response containing a malformed issuer was returned.
+ Het introspectie-antwoord bevat een onjuiste uitgever.
+
+
+
+ The issuer returned in the introspection response is not valid.
+ De uitgever die is geretourneerd in het introspectie-antwoord is niet geldig.
+
+
+
+ The type of the introspected token doesn't match the expected type.
+ Het type van het geïntrospecteerde token komt niet overeen met het verwachte type.
+
+
+
+ An application with the same client identifier already exists.
+ Er bestaat al een applicatie met dezelfde client-ID.
+
+
+
+ Only confidential, hybrid or public applications are supported by the default application manager.
+ Alleen vertrouwelijke, hybride of openbare applicaties worden ondersteund door de standaard applicatiebeheerder.
+
+
+
+ The client secret cannot be null or empty for a confidential application.
+ Het clientgeheim mag niet leeg of leeg zijn voor een vertrouwelijke toepassing.
+
+
+
+ A client secret cannot be associated with a public application.
+ Een clientgeheim kan niet worden gekoppeld aan een openbare toepassing.
+
+
+
+ Callback URLs cannot contain a fragment.
+ Callback URL's mogen geen fragment bevatten.
+
+
+
+ The authorization type cannot be null or empty.
+ Het autorisatietype mag niet null of leeg zijn.
+
+
+
+ The specified authorization type is not supported by the default token manager.
+ Het opgegeven autorisatietype wordt niet ondersteund door de standaard tokenmanager.
+
+
+
+ The client type cannot be null or empty.
+ Het client type mag niet null of leeg zijn.
+
+
+
+ Callback URLs cannot be null or empty.
+ Callback URL's mogen niet null of leeg zijn.
+
+
+
+ Callback URLs must be valid absolute URLs.
+ Callback URL's moeten geldige absolute URL's zijn.
+
+
+
+ Removes orphaned tokens and authorizations from the database.
+ Verwijdert ongebruikte tokens en autorisaties uit de database.
+
+
+
+ Starts the scheduled task at regular intervals.
+ Start de geplande taak op regelmatige tijdstippen.
+
+
+
+
+
\ No newline at end of file