Browse Source

Translate all the error messages into French and remove the duplicate .resx entries

pull/1044/head
Kévin Chalet 6 years ago
parent
commit
8085ca176b
  1. 2
      Directory.Build.props
  2. 7
      samples/Mvc.Server/Startup.cs
  3. 4
      src/OpenIddict.Abstractions/OpenIddict.Abstractions.csproj
  4. 513
      src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx
  5. 592
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf
  6. 2
      src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs
  7. 2
      src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs
  8. 8
      src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs
  9. 4
      src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs
  10. 4
      src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs
  11. 2
      src/OpenIddict.Server/OpenIddictServerHandlers.cs
  12. 2
      src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs
  13. 8
      src/OpenIddict.Validation/OpenIddictValidationHandlers.cs
  14. 2
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Authentication.cs
  15. 2
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Discovery.cs
  16. 8
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Exchange.cs
  17. 4
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Introspection.cs
  18. 4
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Revocation.cs

2
Directory.Build.props

@ -9,7 +9,7 @@
<DebugSymbols>true</DebugSymbols>
<CodeAnalysisRuleset>$(MSBuildThisFileDirectory)eng\CodeAnalysis.ruleset</CodeAnalysisRuleset>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<EnableXlfLocalization>false</EnableXlfLocalization>
<XlfLanguages>fr</XlfLanguages>
</PropertyGroup>
<PropertyGroup>

7
samples/Mvc.Server/Startup.cs

@ -161,6 +161,13 @@ namespace Mvc.Server
app.UseRouting();
app.UseRequestLocalization(options =>
{
options.AddSupportedCultures("en-US", "fr-FR");
options.AddSupportedUICultures("en-US", "fr-FR");
options.SetDefaultCulture("en-US");
});
app.UseAuthentication();
app.UseAuthorization();

4
src/OpenIddict.Abstractions/OpenIddict.Abstractions.csproj

@ -32,8 +32,8 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="**\*.resx" Namespace="OpenIddict.Abstractions" />
<EmbeddedResource Update="**\*Resources.resx" GenerateSource="true" GenerateResourcesCodeAsConstants="true" />
<EmbeddedResource Update="**\*.resx" Namespace="OpenIddict.Abstractions"
GenerateSource="true" GenerateResourcesCodeAsConstants="true" />
</ItemGroup>
</Project>

513
src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx

File diff suppressed because it is too large

592
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf

@ -0,0 +1,592 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="fr" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID3000">
<source>The security token is missing.</source>
<target state="translated">Le jeton de sécurité est manquant.</target>
<note/>
</trans-unit>
<trans-unit id="ID3001">
<source>The specified authorization code is invalid.</source>
<target state="translated">Le code d'autorisation spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3002">
<source>The specified device code is invalid.</source>
<target state="translated">Le code d'appareil spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3003">
<source>The specified refresh token is invalid.</source>
<target state="translated">Le jeton de rafraîchissement spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3004">
<source>The specified token is invalid.</source>
<target state="translated">Le jeton spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3005">
<source>The specified token is not an authorization code.</source>
<target state="translated">Le jeton spécifié n'est pas un code d'autorisation.</target>
<note/>
</trans-unit>
<trans-unit id="ID3006">
<source>The specified token is not an device code.</source>
<target state="translated">Le jeton spécifié n'est pas un code d'appareil.</target>
<note/>
</trans-unit>
<trans-unit id="ID3007">
<source>The specified token is not a refresh token.</source>
<target state="translated">Le jeton spécifié n'est pas un jeton d'actualisation.</target>
<note/>
</trans-unit>
<trans-unit id="ID3008">
<source>The specified token is not an access token.</source>
<target state="translated">Le jeton spécifié n'est pas un jeton d'accès.</target>
<note/>
</trans-unit>
<trans-unit id="ID3009">
<source>The specified identity token is invalid.</source>
<target state="translated">Le jeton d'identité spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">Le jeton d'autorisation spécifié a déjà été échangé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">Le jeton d'appareil spécifié a déjà été échangé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">Le jeton de rafraîchissement spécifié a déjà été échangé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3013">
<source>The specified token has already been redeemed.</source>
<target state="translated">Le jeton spécifié a déjà été échangé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">L'autorisation n'a pas encore été accordée par l'utilisateur final.</target>
<note/>
</trans-unit>
<trans-unit id="ID3015">
<source>The authorization was denied by the end user.</source>
<target state="translated">L'autorisation a été refusée par l'utilisateur final.</target>
<note/>
</trans-unit>
<trans-unit id="ID3016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">Le code d'autorisation spécifié n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3017">
<source>The specified device code is no longer valid.</source>
<target state="translated">Le code d'appareil spécifié n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">Le jeton d'actualisation spécifié n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3019">
<source>The specified token is no longer valid.</source>
<target state="translated">Le jeton spécifié n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">L'autorisation associée au code d'autorisation n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">L'autorisation associée au code d'appareil n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">L'autorisation associée au jeton d'actualisation n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">L'autorisation associée au jeton n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">La demande de jeton a été rejetée par le serveur d'authentification.</target>
<note/>
</trans-unit>
<trans-unit id="ID3025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">La demande d'information utilisateur a été rejetée par le serveur d'authentification.</target>
<note/>
</trans-unit>
<trans-unit id="ID3026">
<source>The specified user code is no longer valid.</source>
<target state="translated">Le code utilisateur spécifié n'est plus valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">Le paramètre '{0}' n'est pas supporté.</target>
<note/>
</trans-unit>
<trans-unit id="ID3029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">Le paramètre '{0}' obligatoire est manquant.</target>
<note/>
</trans-unit>
<trans-unit id="ID3030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">Le paramètre '{0}' doit être une URL valide et absolue.</target>
<note/>
</trans-unit>
<trans-unit id="ID3031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">Le paramètre '{0}' ne doit pas comporter de fragment.</target>
<note/>
</trans-unit>
<trans-unit id="ID3032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">Le '{0}' spécifié n'est pas supporté.</target>
<note/>
</trans-unit>
<trans-unit id="ID3033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">La combinaison '{0}'/'{1}' spécifiée n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">La portée '{0}' obligatoire est manquante.</target>
<note/>
</trans-unit>
<trans-unit id="ID3035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">La portée '{0}' n'est pas autorisée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">L'identifiant client ne peut pas être null ou vide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">Le paramètre '{0}' ne peut pas être utilisé sans '{1}'.</target>
<note/>
</trans-unit>
<trans-unit id="ID3038">
<source>The status cannot be null or empty.</source>
<target state="translated">Le statut ne peut pas être null ou vide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Les portées ne peuvent pas être null ou vides.</target>
<note/>
</trans-unit>
<trans-unit id="ID3040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">Les paramètres '{0}' et '{1}' ne peuvent être utilisés qu'avec un type de réponse contenant '{2}'.</target>
<note/>
</trans-unit>
<trans-unit id="ID3041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">Le '{0}' spécifié n'est pas autorisé lorsque PKCE est utilisé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Les portées ne peuvent pas contenir d'espace.</target>
<note/>
</trans-unit>
<trans-unit id="ID3043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">Le '{0}' spécifié n'est pas valide pour cette application cliente.</target>
<note/>
</trans-unit>
<trans-unit id="ID3044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">Le nom de la portée ne peut pas être null ou vide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">Le nom de la portée ne peut pas contenir d'espace.</target>
<note/>
</trans-unit>
<trans-unit id="ID3046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'autorisation.</target>
<note/>
</trans-unit>
<trans-unit id="ID3047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le flux d'autorisation par code.</target>
<note/>
</trans-unit>
<trans-unit id="ID3048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le flux implicite.</target>
<note/>
</trans-unit>
<trans-unit id="ID3049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le flux hybride.</target>
<note/>
</trans-unit>
<trans-unit id="ID3051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser la portée spécifiée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">Le '{0}' spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">Le paramètre '{0}' n'est pas valide pour cette application cliente.</target>
<note/>
</trans-unit>
<trans-unit id="ID3054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">Le paramètre '{0}' obligatoire pour cette application cliente est manquant.</target>
<note/>
</trans-unit>
<trans-unit id="ID3055">
<source>The specified client credentials are invalid.</source>
<target state="translated">Les identifiants client spécifiés ne sont pas valides.</target>
<note/>
</trans-unit>
<trans-unit id="ID3056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'appareil.</target>
<note/>
</trans-unit>
<trans-unit id="ID3057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">Les paramètres '{0}' et '{1}' sont requis lors que l'accès par identifiants client est utilisé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">Le paramètre '{0}' obligatoire est requis en utilisant l'accès par code d'appareil.</target>
<note/>
</trans-unit>
<trans-unit id="ID3059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">Les paramètres obligatoires '{0}' et/ou '{1}' sont manquants.</target>
<note/>
</trans-unit>
<trans-unit id="ID3060">
<source>A scope with the same name already exists.</source>
<target state="translated">Une portée avec le même nom existe déjà.</target>
<note/>
</trans-unit>
<trans-unit id="ID3063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'obtention de jeton.</target>
<note/>
</trans-unit>
<trans-unit id="ID3064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le type d'accès spécifié.</target>
<note/>
</trans-unit>
<trans-unit id="ID3065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser la portée '{0}'.</target>
<note/>
</trans-unit>
<trans-unit id="ID3066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">Le code d'autorisation spécifié ne peut pas être utilisé sans envoyer d'identifiant client.</target>
<note/>
</trans-unit>
<trans-unit id="ID3067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">Le code d'appareil spécifié ne peut pas être utilisé sans envoyer d'identifiant client.</target>
<note/>
</trans-unit>
<trans-unit id="ID3068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">Le jeton de rafraîchissement spécifié ne peut pas être utilisé sans envoyer d'identifiant client.</target>
<note/>
</trans-unit>
<trans-unit id="ID3069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">Le code d'autorisation spécifié ne peut pas être utilisé par cette application cliente.</target>
<note/>
</trans-unit>
<trans-unit id="ID3070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">Le code d'appareil spécifié ne peut pas être utilisé par cette application cliente.</target>
<note/>
</trans-unit>
<trans-unit id="ID3071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">Le jeton de rafraîchissement spécifié ne peut pas être utilisé par cette application cliente.</target>
<note/>
</trans-unit>
<trans-unit id="ID3072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">Le paramètre '{0}' spécifié ne correspond pas à l'adresse de redirection client à laquelle le code d'autorisation a été initialement envoyé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">Le paramètre '{0}' ne peut pas être utilisé lorsqu'aucun '{1}' n'a été spécifié dans la demande d'autorisation.</target>
<note/>
</trans-unit>
<trans-unit id="ID3074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">Le paramètre '{0}' n'est pas valide dans ce contexte.</target>
<note/>
</trans-unit>
<trans-unit id="ID3075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'introspection.</target>
<note/>
</trans-unit>
<trans-unit id="ID3076">
<source>The specified token cannot be introspected.</source>
<target state="translated">Le jeton spécifié ne peut pas être introspecté.</target>
<note/>
</trans-unit>
<trans-unit id="ID3077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">L'application cliente n'est pas autorisée à introspecter le jeton spécifié.</target>
<note/>
</trans-unit>
<trans-unit id="ID3078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">Cette application cliente n'est pas autorisée à utiliser le point de terminaison de révocation.</target>
<note/>
</trans-unit>
<trans-unit id="ID3079">
<source>This token cannot be revoked.</source>
<target state="translated">Ce jeton ne peut pas être révoqué.</target>
<note/>
</trans-unit>
<trans-unit id="ID3080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">Cette application cliente n'est pas autorisée à révoquer le jeton spécifié.</target>
<note/>
</trans-unit>
<trans-unit id="ID3081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">L'en-tête '{0}' obligatoire est manquant.</target>
<note/>
</trans-unit>
<trans-unit id="ID3082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">L'en-tête '{0}' spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">Ce serveur n'accepte que des requêtes HTTPS.</target>
<note/>
</trans-unit>
<trans-unit id="ID3084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">La méthode HTTP spécifiée n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">Un jeton avec le même identifiant par référence existe déjà.</target>
<note/>
</trans-unit>
<trans-unit id="ID3086">
<source>The token type cannot be null or empty.</source>
<target state="translated">Le type de jeton ne peut pas être null ou vide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">Plusieurs identifiants client ne peuvent pas être spécifiés.</target>
<note/>
</trans-unit>
<trans-unit id="ID3088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">L'émetteur associé au jeton spécifié n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3089">
<source>The specified token is not of the expected type.</source>
<target state="translated">Le jeton spécifié n'est pas du type attendu.</target>
<note/>
</trans-unit>
<trans-unit id="ID3090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">La clé de signature associée au jeton spécifié n'a pas été trouvée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">La signature associée au jeton spécifiée n'est pas valid.</target>
<note/>
</trans-unit>
<trans-unit id="ID3092">
<source>This resource server is currently unavailable.</source>
<target state="translated">Ce serveur de ressource est actuellement indisponible.</target>
<note/>
</trans-unit>
<trans-unit id="ID3093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">Le jeton spécifié ne contient aucune audience.</target>
<note/>
</trans-unit>
<trans-unit id="ID3094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">Le jeton spécifié ne peut pas être utilisé par ce serveur de ressource.</target>
<note/>
</trans-unit>
<trans-unit id="ID3095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">L'utilisateur représenté par le jeton n'est pas autorisé à exécuter l'action demandée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">Aucun émetteur n'a pu être trouvé dans la configuration du serveur.</target>
<note/>
</trans-unit>
<trans-unit id="ID3097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">Une configuration serveur contenant un émetteur non valide a été retournée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3098">
<source>The issuer returned in the server configuration is not valid.</source>
<target state="translated">L'émetteur retourné dans la configuration du serveur n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">Aucun point de terminaison JWKS n'a pu être trouvé dans la configuration du serveur.</target>
<note/>
</trans-unit>
<trans-unit id="ID3100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">Une configuration serveur contenant une URL invalide pour le point de terminaison JWKS a été retournée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">Une configuration serveur contenant une URL invalide pour le point de terminaison d'introspection a été retournée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">Le document JWKS ne contenait pas de nœud '{0}' valide comportant au moins une clé.</target>
<note/>
</trans-unit>
<trans-unit id="ID3103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">Une réponse JWKS contenant une clé non supportée a été retournée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">Une réponse JWKS contenant une clé non valide a été retournée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">Le paramètre '{0}' obligatoire n'a pu être trouvé dans la réponse d'introspection.</target>
<note/>
</trans-unit>
<trans-unit id="ID3106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">Le jeton a été rejeté par le serveur d'authentification distant.</target>
<note/>
</trans-unit>
<trans-unit id="ID3107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">La revendication '{0}' est malformée ou n'est pas du type attendu.</target>
<note/>
</trans-unit>
<trans-unit id="ID3108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">Une réponse d'introspection contenant un émetteur malformé a été retournée.</target>
<note/>
</trans-unit>
<trans-unit id="ID3109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">L'émetteur retourné dans la réponse d'introspection n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">Le type du jeton introspecté ne correspond pas au type attendu.</target>
<note/>
</trans-unit>
<trans-unit id="ID3111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">Une application avec le même identifiant client existe déjà.</target>
<note/>
</trans-unit>
<trans-unit id="ID3112">
<source>Only confidential, hybrid or public applications are supported by the default application manager.</source>
<target state="translated">Seules les applications confidentielles, hybrides ou publiques sont supportées par le gestionnaire d'application par défaut.</target>
<note/>
</trans-unit>
<trans-unit id="ID3113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">Le secret client ne peut pas être null ou vide pour une application confidentielle.</target>
<note/>
</trans-unit>
<trans-unit id="ID3114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">Un secret client ne peut pas être associé à une application publique.</target>
<note/>
</trans-unit>
<trans-unit id="ID3115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">Les URLs de rappel ne peuvent pas contenir de fragment.</target>
<note/>
</trans-unit>
<trans-unit id="ID3116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">Le type d'autorisation ne peut pas être null ou vide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">Le type d'autorisation spécifié n'est pas supporté par le gestionnaire de jeton par défaut.</target>
<note/>
</trans-unit>
<trans-unit id="ID3118">
<source>The client type cannot be null or empty.</source>
<target state="translated">Le type de client ne peut pas être null ou vide.</target>
<note/>
</trans-unit>
<trans-unit id="ID3119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">Les URLs de rappel ne peuvent pas être null ou vides.</target>
<note/>
</trans-unit>
<trans-unit id="ID3120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">Les URLs de rappel doit être des URLs valides et absolues.</target>
<note/>
</trans-unit>
</body>
</file>
</xliff>

2
src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs

@ -102,7 +102,7 @@ namespace OpenIddict.Server.DataProtection
OpenIddictServerEndpointType.Token => Errors.InvalidGrant,
_ => Errors.InvalidToken
},
description: context.Localizer[SR.ID3027]);
description: context.Localizer[SR.ID3004]);
return default;
}

2
src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs

@ -1412,7 +1412,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidRequest,
description: context.Localizer[SR.ID3029, Parameters.CodeChallenge]);
description: context.Localizer[SR.ID3054, Parameters.CodeChallenge]);
return;
}

8
src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs

@ -820,7 +820,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidClient,
description: context.Localizer[SR.ID3061, Parameters.ClientSecret]);
description: context.Localizer[SR.ID3053, Parameters.ClientSecret]);
return;
}
@ -835,7 +835,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidClient,
description: context.Localizer[SR.ID3062, Parameters.ClientSecret]);
description: context.Localizer[SR.ID3054, Parameters.ClientSecret]);
return;
}
@ -1159,7 +1159,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidRequest,
description: context.Localizer[SR.ID3029, Parameters.CodeVerifier]);
description: context.Localizer[SR.ID3054, Parameters.CodeVerifier]);
return;
}
@ -1438,7 +1438,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidRequest,
description: context.Localizer[SR.ID3073, Parameters.CodeVerifier]);
description: context.Localizer[SR.ID3073, Parameters.CodeVerifier, Parameters.CodeChallenge]);
return default;
}

4
src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs

@ -517,7 +517,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidClient,
description: context.Localizer[SR.ID3061, Parameters.ClientSecret]);
description: context.Localizer[SR.ID3053, Parameters.ClientSecret]);
return;
}
@ -532,7 +532,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidClient,
description: context.Localizer[SR.ID3062, Parameters.ClientSecret]);
description: context.Localizer[SR.ID3054, Parameters.ClientSecret]);
return;
}

4
src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs

@ -463,7 +463,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidClient,
description: context.Localizer[SR.ID3061, Parameters.ClientSecret]);
description: context.Localizer[SR.ID3053, Parameters.ClientSecret]);
return;
}
@ -478,7 +478,7 @@ namespace OpenIddict.Server
context.Reject(
error: Errors.InvalidClient,
description: context.Localizer[SR.ID3062, Parameters.ClientSecret]);
description: context.Localizer[SR.ID3054, Parameters.ClientSecret]);
return;
}

2
src/OpenIddict.Server/OpenIddictServerHandlers.cs

@ -465,7 +465,7 @@ namespace OpenIddict.Server
(SecurityTokenInvalidTypeException _, OpenIddictServerEndpointType.Userinfo) => context.Localizer[SR.ID3008],
_ => context.Localizer[SR.ID3027]
_ => context.Localizer[SR.ID3004]
});
return default;

2
src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs

@ -106,7 +106,7 @@ namespace OpenIddict.Validation.DataProtection
{
context.Reject(
error: Errors.InvalidToken,
description: context.Localizer[SR.ID3027]);
description: context.Localizer[SR.ID3004]);
return default;
}

8
src/OpenIddict.Validation/OpenIddictValidationHandlers.cs

@ -146,7 +146,7 @@ namespace OpenIddict.Validation
{
context.Reject(
error: Errors.InvalidToken,
description: context.Localizer[SR.ID3027]);
description: context.Localizer[SR.ID3004]);
return;
}
@ -253,7 +253,7 @@ namespace OpenIddict.Validation
SecurityTokenSignatureKeyNotFoundException _ => context.Localizer[SR.ID3090],
SecurityTokenInvalidSignatureException _ => context.Localizer[SR.ID3091],
_ => context.Localizer[SR.ID3027]
_ => context.Localizer[SR.ID3004]
});
return;
@ -348,7 +348,7 @@ namespace OpenIddict.Validation
context.Reject(
error: Errors.InvalidToken,
description: context.Localizer[SR.ID3027]);
description: context.Localizer[SR.ID3004]);
return;
}
@ -590,7 +590,7 @@ namespace OpenIddict.Validation
{
context.Reject(
error: Errors.InvalidToken,
description: context.Localizer[SR.ID3027]);
description: context.Localizer[SR.ID3004]);
return default;
}

2
test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Authentication.cs

@ -1385,7 +1385,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidRequest, response.Error);
Assert.Equal(SR.FormatID3029(Parameters.CodeChallenge), response.ErrorDescription);
Assert.Equal(SR.FormatID3054(Parameters.CodeChallenge), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasRequirementAsync(application,

2
test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Discovery.cs

@ -1015,7 +1015,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidRequest, response.Error);
Assert.Equal("The specified HTTP method is not valid.", response.ErrorDescription);
Assert.Equal(SR.GetResourceString(SR.ID3084), response.ErrorDescription);
}
[Theory]

8
test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Exchange.cs

@ -637,7 +637,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidRequest, response.Error);
Assert.Equal(SR.FormatID3073(Parameters.CodeVerifier), response.ErrorDescription);
Assert.Equal(SR.FormatID3073(Parameters.CodeVerifier, Parameters.CodeChallenge), response.ErrorDescription);
}
[Fact]
@ -1385,7 +1385,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidClient, response.Error);
Assert.Equal(SR.FormatID3061(Parameters.ClientSecret), response.ErrorDescription);
Assert.Equal(SR.FormatID3053(Parameters.ClientSecret), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasClientTypeAsync(application, ClientTypes.Public, It.IsAny<CancellationToken>()), Times.Once());
@ -1425,7 +1425,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidClient, response.Error);
Assert.Equal(SR.FormatID3062(Parameters.ClientSecret), response.ErrorDescription);
Assert.Equal(SR.FormatID3054(Parameters.ClientSecret), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasClientTypeAsync(application, ClientTypes.Public, It.IsAny<CancellationToken>()), Times.Once());
@ -1712,7 +1712,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidRequest, response.Error);
Assert.Equal(SR.FormatID3029(Parameters.CodeVerifier), response.ErrorDescription);
Assert.Equal(SR.FormatID3054(Parameters.CodeVerifier), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.HasRequirementAsync(application,
Requirements.Features.ProofKeyForCodeExchange, It.IsAny<CancellationToken>()), Times.Once());

4
test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Introspection.cs

@ -561,7 +561,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidClient, response.Error);
Assert.Equal(SR.FormatID3061(Parameters.ClientSecret), response.ErrorDescription);
Assert.Equal(SR.FormatID3053(Parameters.ClientSecret), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasClientTypeAsync(application, ClientTypes.Public, It.IsAny<CancellationToken>()), Times.Once());
@ -599,7 +599,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidClient, response.Error);
Assert.Equal(SR.FormatID3062(Parameters.ClientSecret), response.ErrorDescription);
Assert.Equal(SR.FormatID3054(Parameters.ClientSecret), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasClientTypeAsync(application, ClientTypes.Public, It.IsAny<CancellationToken>()), Times.Once());

4
test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.Revocation.cs

@ -455,7 +455,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidClient, response.Error);
Assert.Equal(SR.FormatID3061(Parameters.ClientSecret), response.ErrorDescription);
Assert.Equal(SR.FormatID3053(Parameters.ClientSecret), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasClientTypeAsync(application, ClientTypes.Public, It.IsAny<CancellationToken>()), Times.Once());
@ -494,7 +494,7 @@ namespace OpenIddict.Server.IntegrationTests
// Assert
Assert.Equal(Errors.InvalidClient, response.Error);
Assert.Equal(SR.FormatID3062(Parameters.ClientSecret), response.ErrorDescription);
Assert.Equal(SR.FormatID3054(Parameters.ClientSecret), response.ErrorDescription);
Mock.Get(manager).Verify(manager => manager.FindByClientIdAsync("Fabrikam", It.IsAny<CancellationToken>()), Times.AtLeastOnce());
Mock.Get(manager).Verify(manager => manager.HasClientTypeAsync(application, ClientTypes.Public, It.IsAny<CancellationToken>()), Times.Once());

Loading…
Cancel
Save