Browse Source

Remove localized error descriptions support

pull/1048/head
Kévin Chalet 6 years ago
parent
commit
de1b3b4477
  1. 2
      Directory.Build.props
  2. 3
      Packages.props
  3. 8
      samples/Mvc.Server/Controllers/AuthorizationController.cs
  4. 469
      src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx
  5. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.ar.xlf
  6. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.de.xlf
  7. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.es.xlf
  8. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf
  9. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.gu.xlf
  10. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.hi.xlf
  11. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.it.xlf
  12. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf
  13. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.tr.xlf
  14. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hans.xlf
  15. 602
      src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hant.xlf
  16. 26
      src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs
  17. 18
      src/OpenIddict.Core/Managers/OpenIddictAuthorizationManager.cs
  18. 14
      src/OpenIddict.Core/Managers/OpenIddictScopeManager.cs
  19. 14
      src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs
  20. 1
      src/OpenIddict.Core/OpenIddict.Core.csproj
  21. 15
      src/OpenIddict.Core/OpenIddictCoreExtensions.cs
  22. 4
      src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs
  23. 4
      src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs
  24. 26
      src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.cs
  25. 2
      src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs
  26. 11
      src/OpenIddict.Server.Owin/OpenIddictServerOwinConstants.cs
  27. 4
      src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Authentication.cs
  28. 4
      src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Session.cs
  29. 49
      src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.cs
  30. 1
      src/OpenIddict.Server/OpenIddict.Server.csproj
  31. 39
      src/OpenIddict.Server/OpenIddictServerEvents.cs
  32. 16
      src/OpenIddict.Server/OpenIddictServerExtensions.cs
  33. 6
      src/OpenIddict.Server/OpenIddictServerFactory.cs
  34. 73
      src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs
  35. 16
      src/OpenIddict.Server/OpenIddictServerHandlers.Device.cs
  36. 68
      src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs
  37. 20
      src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs
  38. 26
      src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs
  39. 6
      src/OpenIddict.Server/OpenIddictServerHandlers.Session.cs
  40. 2
      src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs
  41. 80
      src/OpenIddict.Server/OpenIddictServerHandlers.cs
  42. 6
      src/OpenIddict.Server/OpenIddictServerTransaction.cs
  43. 4
      src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlers.cs
  44. 2
      src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs
  45. 11
      src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConstants.cs
  46. 17
      src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlers.cs
  47. 1
      src/OpenIddict.Validation/OpenIddict.Validation.csproj
  48. 39
      src/OpenIddict.Validation/OpenIddictValidationEvents.cs
  49. 15
      src/OpenIddict.Validation/OpenIddictValidationExtensions.cs
  50. 6
      src/OpenIddict.Validation/OpenIddictValidationFactory.cs
  51. 20
      src/OpenIddict.Validation/OpenIddictValidationHandlers.Discovery.cs
  52. 12
      src/OpenIddict.Validation/OpenIddictValidationHandlers.Introspection.cs
  53. 32
      src/OpenIddict.Validation/OpenIddictValidationHandlers.cs
  54. 6
      src/OpenIddict.Validation/OpenIddictValidationTransaction.cs
  55. 25
      test/OpenIddict.Core.Tests/OpenIddictCoreBuilderTests.cs
  56. 8
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.cs

2
Directory.Build.props

@ -12,7 +12,7 @@
<DebugType>portable</DebugType> <DebugType>portable</DebugType>
<SymbolPackageFormat>snupkg</SymbolPackageFormat> <SymbolPackageFormat>snupkg</SymbolPackageFormat>
<CodeAnalysisRuleset>$(MSBuildThisFileDirectory)eng\CodeAnalysis.ruleset</CodeAnalysisRuleset> <CodeAnalysisRuleset>$(MSBuildThisFileDirectory)eng\CodeAnalysis.ruleset</CodeAnalysisRuleset>
<XlfLanguages>ar;de;es;fr;gu;hi;it;nl;tr;zh-Hans;zh-Hant</XlfLanguages> <EnableXlfLocalization>false</EnableXlfLocalization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
Packages.props

@ -38,7 +38,6 @@
<PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="2.1.23" /> <PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="2.1.23" />
<PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="2.1.23" /> <PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="2.1.23" />
<PackageReference Update="Microsoft.Extensions.Http.Polly" Version="2.1.1" /> <PackageReference Update="Microsoft.Extensions.Http.Polly" Version="2.1.1" />
<PackageReference Update="Microsoft.Extensions.Localization" Version="2.1.1" />
<PackageReference Update="Microsoft.Extensions.Logging" Version="2.1.1" /> <PackageReference Update="Microsoft.Extensions.Logging" Version="2.1.1" />
<PackageReference Update="Microsoft.Extensions.Options" Version="2.1.1" /> <PackageReference Update="Microsoft.Extensions.Options" Version="2.1.1" />
<PackageReference Update="Microsoft.Extensions.Primitives" Version="2.1.6" /> <PackageReference Update="Microsoft.Extensions.Primitives" Version="2.1.6" />
@ -63,7 +62,6 @@
<PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="3.1.10" /> <PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="3.1.10" />
<PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="3.1.10" /> <PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="3.1.10" />
<PackageReference Update="Microsoft.Extensions.Http.Polly" Version="3.1.10" /> <PackageReference Update="Microsoft.Extensions.Http.Polly" Version="3.1.10" />
<PackageReference Update="Microsoft.Extensions.Localization" Version="3.1.10" />
<PackageReference Update="Microsoft.Extensions.Logging" Version="3.1.10" /> <PackageReference Update="Microsoft.Extensions.Logging" Version="3.1.10" />
<PackageReference Update="Microsoft.Extensions.Options" Version="3.1.10" /> <PackageReference Update="Microsoft.Extensions.Options" Version="3.1.10" />
<PackageReference Update="Microsoft.Extensions.Primitives" Version="3.1.10" /> <PackageReference Update="Microsoft.Extensions.Primitives" Version="3.1.10" />
@ -87,7 +85,6 @@
<PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0" /> <PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="5.0.0" /> <PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Http.Polly" Version="5.0.0" /> <PackageReference Update="Microsoft.Extensions.Http.Polly" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Localization" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Logging" Version="5.0.0" /> <PackageReference Update="Microsoft.Extensions.Logging" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Options" Version="5.0.0" /> <PackageReference Update="Microsoft.Extensions.Options" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Primitives" Version="5.0.0" /> <PackageReference Update="Microsoft.Extensions.Primitives" Version="5.0.0" />

8
samples/Mvc.Server/Controllers/AuthorizationController.cs

@ -332,8 +332,8 @@ namespace Mvc.Server
// Redisplay the form when the user code is not valid. // Redisplay the form when the user code is not valid.
return View(new VerifyViewModel return View(new VerifyViewModel
{ {
Error = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.Error), Error = Errors.InvalidToken,
ErrorDescription = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription) ErrorDescription = "The specified user code is not valid. Please make sure you typed it correctly."
}); });
} }
@ -375,8 +375,8 @@ namespace Mvc.Server
// Redisplay the form when the user code is not valid. // Redisplay the form when the user code is not valid.
return View(new VerifyViewModel return View(new VerifyViewModel
{ {
Error = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.Error), Error = Errors.InvalidToken,
ErrorDescription = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription) ErrorDescription = "The specified user code is not valid. Please make sure you typed it correctly."
}); });
} }

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

File diff suppressed because it is too large

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.ar.xlf

@ -1,602 +0,0 @@
<?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="ar" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">رمز الأمان مفقود.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">رمز التفويض المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">رمز الجهاز المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">رمز التحديث المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">الرمز المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">الرمز المحدد ليس رمز تفويض.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">الرمز المحدد ليس رمز جهاز.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">الرمز المحدد ليس رمز تحديث.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">الرمز المحدد ليس رمز وصول.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">رمز الهوية المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">تم بالفعل استرداد رمز التفويض المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">تم بالفعل استرداد رمز الجهاز المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">تم بالفعل استرداد رمز التحديث المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">تم بالفعل استرداد الرمز المميز المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">لم يتم منح التفويض بعد من قبل المستخدم النهائي.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">تم رفض الإذن من قبل المستخدم.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">رمز التفويض المحدد لم يعد صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">رمز الجهاز المحدد لم يعد صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">لم يعد رمز التحديث المحدد صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">لم يعد الرمز المحدد صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">لم يعد التفويض المرتبط برمز التفويض صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">لم يعد التفويض المرتبط برمز الجهاز صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">لم يعد التفويض المرتبط برمز التحديث صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">التفويض المرتبط بالرمز لم يعد صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">تم رفض طلب الرمز المميز من قبل خادم المصادقة.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">تم رفض طلب الوصول إلى معلومات المستخدم من قبل خادم المصادقة.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">رمز المستخدم المحدد لم يعد صالحًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">المعلمة '{0}' غير مدعومة.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">المعلمة الإلزامية '{0}' مفقودة.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">يجب أن تكون المعلمة '{0}' رابط مطلق صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">يجب ألا تتضمن المعلمة '{0}' جزءًا.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">'{0}' المحدد غير مدعوم.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">مجموعة '{0}' / "{1}" المحددة غير صالحة.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">النطاق الإلزامي '{0}' مفقود.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">النطاق '{0}' غير مسموح به.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">لا يمكن أن يكون معرف العميل خالياً أو فارغاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">لا يمكن استخدام المعلمة '{0}' بدون "{1}".</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">لا يمكن أن تكون الحالة فارغة أو فارغة.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">لا يمكن أن تكون النطاقات فارغة أو فارغة.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">لا يمكن استخدام المعلمات '{0}' و "{1}" إلا مع نوع استجابة يحتوي على "{2}".</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">'{0}' المحدد غير مسموح به عند استخدام PKCE.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">لا يمكن أن تحتوي النطاقات على مسافات.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">'{0}' المحدد غير صالح لتطبيق العميل هذا.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">لا يمكن أن يكون اسم النطاق فارغاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">لا يمكن أن يحتوي اسم النطاق على مسافات.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">تطبيق العميل هذا غير مسموح له باستخدام نقطة نهاية التفويض.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">لا يُسمح لتطبيق العميل باستخدام تدفق رمز التفويض.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">لا يُسمح لتطبيق العميل باستخدام التدفق الضمني.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">لا يُسمح لتطبيق العميل باستخدام التدفق المختلط.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">تطبيق العميل هذا غير مسموح له باستخدام النطاق المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">'{0}' المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">المعلمة '{0}' غير صالحة لتطبيق العميل هذا.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">المعلمة '{0}' المطلوبة لتطبيق العميل هذا مفقودة.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">بيانات اعتماد العميل المحددة غير صالحة.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الجهاز.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">معلمات '{0}' و "{1}" مطلوبة عند استخدام منح بيانات اعتماد العميل.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">المعلمة '{0}' مطلوبة عند استخدام منحة رمز الجهاز.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">معلمات '{0}' و / أو "{1}" الإلزامية مفقودة.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">يوجد نطاق بنفس الإسم.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الرمز المميز.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">لا يُسمح لتطبيق العميل هذا باستخدام نوع المنحة المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">غير مسموح لتطبيق العميل باستخدام النطاق '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">لا يمكن استخدام رمز التفويض المحدد بدون إرسال معرف العميل.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">لا يمكن استخدام رمز الجهاز المحدد بدون إرسال معرف العميل.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">لا يمكن استخدام رمز التحديث المحدد بدون إرسال معرف العميل.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">لا يمكن استخدام رمز التفويض المحدد بواسطة تطبيق العميل هذا.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">لا يمكن استخدام رمز الجهاز المحدد بواسطة تطبيق العميل هذا.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">لا يمكن استخدام رمز التحديث المحدد بواسطة تطبيق العميل هذا.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">المعلمة '{0}' المحددة لا تطابق عنوان إعادة توجيه العميل الذي تم إرسال رمز التفويض إليه في البداية.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">لا يمكن استخدام المعلمة '{0}' في حالة عدم تحديد "{1}" في طلب التفويض.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">المعلمة '{0}' غير صالحة في هذا السياق.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الاستبطان.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">لا يمكن استبطان الرمز المميز المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">لا يُسمح لتطبيق العميل بفحص الرمز المميز المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الإبطال.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">لا يمكن إبطال هذا الرمز المميز.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">لا يُسمح لتطبيق العميل بإلغاء الرمز المميز المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">header '{0}' الإلزامي مفقود.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">header '{0}' المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">لا يقبل هذا الخادم سوى طلبات HTTPS.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">طريقة HTTP المحددة غير صالحة.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">الرمز بنفس مرجع المعرف موجود مسبقاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">لا يمكن أن يكون نوع الرمز المميز خالياً أو فارغاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">لا يمكن تحديد بيانات اعتماد متعددة للعملاء.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">المُصدر المرتبط بالرمز المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">الرمز المميز المحدد ليس من النوع المتوقع.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">لم يتم العثور على مفتاح التوقيع المرتبط بالرمز المميز المحدد.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">التوقيع المرتبط بالرمز المحدد غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">خادم الموارد غير متوفر حالياّ.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">لا يحتوي الرمز المميز المحدد على أي جمهور.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">لا يمكن استخدام الرمز المميز مع خادم المورد هذا.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">لا يُسمح للمستخدم الذي يمثله الرمز المميز بتنفيذ الإجراء المطلوب.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">تعذر العثور على أي مُصدر في إعدادات الخادم.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">تم إرجاع إعدادات خادم يحتوي على مُصدر غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">المُصدر الذي تم إرجاعه في إعدادات الخادم غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">تعذر العثور على نقطة نهاية JWKS في إعدادات الخادم.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">تم إرجاع إعدادات خادم يحتوي على رابط غير صالح لنقطة نهاية JWKS.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">تم إرجاع إعدادات خادم يحتوي على رابط غير صالح لنقطة نهاية الاستبطان.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">لا يحتوي مستند JWKS على عقدة '{0}' صالحة بمفتاح واحد على الأقل.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">تم إرجاع استجابة JWKS تحتوي على مفتاح غير مدعوم.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">تم إرجاع استجابة JWKS تحتوي على مفتاح غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">لا يمكن العثور على المعلمة '{0}' الإلزامية في استجابة التأمل.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">تم رفض الرمز المميز بواسطة خادم المصادقة عن بُعد.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">المطالبة '{0}' مكتوبة بشكل غير صحيح أو أنها ليست من النوع المتوقع.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">تم إرجاع استجابة استبطان تحتوي على مُصدر تالف.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">المُصدر الذي تم إرجاعه في استجابة التأمل غير صالح.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">لا يتطابق نوع الرمز المميز الذي تم استبطانه مع النوع المتوقع.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">التطبيق بنفس معرف العميل موجود مسبقاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">يتم دعم التطبيقات السرية أو الهجينة أو العامة فقط من قبل مدير التطبيق الافتراضي.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">لا يمكن أن يكون سر العميل خالياً أو فارغاً لتطبيق سري.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">لا يمكن ربط سر العميل بتطبيق عام.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">لا يمكن أن تحتوي روابط معاودة الاتصال على جزء.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">لا يمكن أن يكون نوع التفويض خالياً أو فارغاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">نوع التفويض المحدد غير مدعوم من قبل مدير الرمز المميز الافتراضي.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">لا يمكن أن يكون نوع العميل خالياً أو فارغاً.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">لا يمكن أن تكون روابط معاودة الاتصال خالية أو فارغة.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">روابط معاودة الاتصال لابد أن تكون روابط مطلقة صالحة.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">إزالة الرموز المميزة والتراخيص المعزولة من قاعدة البيانات.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">تبدأ المهمة المجدولة على فترات منتظمة.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.de.xlf

@ -1,602 +0,0 @@
<?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="de" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">Der Security-Token fehlt.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">Der angegebene Authorisierungscode ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">Der angegebene Gerätecode ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">Der angegebene Refresh-Token ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">Der angegebene Token ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">Der angegebene Token ist kein Authorisierungscode.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">Der angegebene Token ist kein Gerätecode.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">Der angegebene Token ist kein Refresh-Token.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">Der angegebene Token ist kein Authorisierungscode.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">Der angegebene Token ist kein Identity Token.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">Der angegebene Autorisierungscode wurde bereits eingelöst.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">Der angegebene Gerätecode wurde bereits eingelöst.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">Der angegebene Refresh-Token wurde bereits eingelöst.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">Der angegebene Token wurde bereits eingelöst.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">Die Freigabe wurde vom Endbenutzer noch nicht erteilt.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">Die Berechtigung wurde vom Endbenutzer verweigert.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">Der angegebene Autorisierungscode ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">Der angegebene Gerätecode ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">Der angegebene Refresh-Token ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">Der angegebene Token ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">Die mit dem Autorisierungscode verbundene Autorisierung ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">Die mit dem Gerätecode verbundene Autorisierung ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">Die mit dem Refresh-Token verbundene Autorisierung ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">Die mit dem Token verbundene Autorisierung ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">TDie Token-Anfrage wurde vom Authentifizierungsserver zurückgewiesen.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">Die Anforderung für den Zugriff auf Benutzerinformationen wurde vom Authentifizierungsserver abgelehnt.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">Der angegebene Benutzercode ist nicht mehr gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">Der Parameter '{0}' wird nicht unterstützt.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">Der verpflichtende Parameter '{0}' fehlt.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">Der Parameter '{0}' muss eine gültige, absolute URL sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">Der Parameter '{0}' darf kein Fragment enthalten.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">Der Parameter '{0}' wird nicht unterstützt.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">Die angegebene Kombination '{0}'/'{1}' ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">Der verpflichtende Scope '{0}' fehlt.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">Der Scope '{0}' ist nicht erlaubt.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">Der Client-Identifier darf nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">Der Parameter '{0}' darf nicht ohne '{1}' benutzt werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">Der Statuscode darf nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Scopes dürfen darf nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">Die Parameter '{0}' und '{1}' können nur mit einem Response-Typ benutzt werden, der '{2}' enthält.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">Der Parameter '{0}' ist bei der Verwendung von PKCE nicht erlaubt.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Scopes dürfen keine Leerzeichen enthalten.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">Der angegebene Parameter '{0}' ist für diese Client-Anwendung nicht gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">Der Scope-Name darf nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">Der Scope-Name darf keine Leerzeichen enthalten.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">Die Client-Anwendung darf den Autorisierungsendpunkt nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">Die Client-Anwendung darf den Authorization Code Flow nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">Die Client-Anwendung darf den Implicit Flow nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">Die Client-Anwendung darf den Hybrid Flow nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">Die Client-Anwendung darf den angegebenen Scope nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">Der angegebene Paramter '{0}' ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">Der Parameter '{0}' ist für diese Client-Anwendung nicht gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">Der für diese Client-Anwendung erforderliche Parameter '{0}' fehlt.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">Die angegebenen Client Credentials sind ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">Diese Client-Anwendung darf den Device Endpoint nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">Die Parameter '{0}' und '{1}' sind erforderlich, wenn der Client Credentials Grant verwendet wird.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">Der Parameter '{0}' ist erforderlich, wenn der Device Code Grant verwendet wird.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">Die verpflichtenden Parameter '{0}' und/oder '{1}' fehlen.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">Ein Scope mit dem gleichen Namen existiert bereits.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">Die Client-Anwendung darf den Token-Endpoint nicht verwenden..</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">Diese Client-Anwendung darf den angegebenen Grant Type nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">Diese Client-Anwendung darf den '{0}' Scope nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">Der angegebene Autorisierungscode kann nicht verwendet werden, ohne eine Client-Kennung zu senden.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">Der angegebene Gerätecode kann nicht verwendet werden, ohne eine Client-Kennung zu senden.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">Das angegebene Refresh-Token kann nicht verwendet werden, ohne eine Client-Kennung zu senden.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">Der angegebene Autorisierungscode kann von dieser Client-Anwendung nicht verwendet werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">Der angegebene Gerätecode kann von dieser Client-Anwendung nicht verwendet werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">Der angegebene Refresh-Token kann von dieser Client-Anwendung nicht verwendet werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">Der angegebene '{0}'-Parameter stimmt nicht mit der Redirect-URL des Clients überein, an die der Autorisierungscode ursprünglich gesendet wurde.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">Der Parameter '{0}' kann nicht verwendet werden, wenn im Authorization Request kein '{1}' angegeben wurde.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">Der Parameter '{0}' ist in diesem Kontext ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">Diese Client-Anwendung darf den Introspection-Endpoint nicht verwenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">Auf dem angegebenen Token kann kann keine Selbstprüfung durchgeführt werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">Die Client-Anwendung ist nicht zur Selbstprüfung des angegebenen Tokens berechtigt.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">Die Client-Anwendung ist zur Benutzung des Revocation-Endpoints nicht berechtigt.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">Dieser Token kann nicht widerrufen werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">Die Client-Anwendung darf den angegebenen Token nicht widerrufen.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">The mandatory '{0}' header is missing.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">Der verpflichtende '{0}'-Header fehlt.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">Der Server akzeptiert nur Anfragen über HTTPS.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">Die angegebene HTTP-Methode ist ungültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">Ein Token mit dem gleichen Referenzbezeichner existiert bereits.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">Der Tokentyp kann nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">Mehrere Client Credentials können nicht angegeben werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">Der Issuer, der dem angegebenen Token zugeordnet ist, ist nicht gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">Der angegebene Token hat nicht den erwarteten Typ.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">Der mit dem angegebenen Token verknüpfte Signierschlüssel wurde nicht gefunden.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">Die mit dem angegebenen Token verbundene Signatur ist nicht gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">Der Resource Server ist derzeit nicht verfügbar.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">Das angegebene Token enthält keine Audience.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">Das angegebene Token kann mit diesem Resource Server nicht verwendet werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">Der Benutzer, der durch das Token repräsentiert wird, darf die angeforderte Aktion nicht ausführen.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">In der Serverkonfiguration konnte kein Issuer gefunden werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">Es wurde eine Serverkonfiguration mit einem ungültigen Aussteller zurückgegeben.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">Der in der Serverkonfiguration zurückgegebene Issuer ist nicht gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">In der Serverkonfiguration konnte kein JWKS-Endpoint gefunden werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">Es wurde eine Serverkonfiguration mit einer ungültigen JWKS-Endpoint-URL zurückgegeben.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">Es wurde eine Serverkonfiguration mit einer ungültigen Introspection-Endpoint-URL zurückgegeben.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">Das JWKS-Dokument enthielt keinen gültigen '{0}'-Knoten mit mindestens einem Schlüssel.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">Es wurde eine JWKS-Response mit einem nicht unterstützten Schlüssel zurückgegeben.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">Es wurde eine JWKS-Response mit einem ungültigen Schlüssel zurückgegeben.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">Der verpflichtende Parameter '{0}' konnte in der Introspektionsantwort nicht gefunden werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">Der Token wurde vom Remote-Authentifizierungsserver zurückgewiesen.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">Der '{0}'-Claim ist fehlerhaft oder entspricht nicht dem erwarteten Typ.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">Eine Introspektionsantwort mit einem fehlerhaften Issuer wurde zurückgeschickt.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">The issuer returned in the introspection response is not valid.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">Der in der Selbstprüfungsantwort zurückgegebene Issuer ist nicht gültig.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">Eine Anwendung mit dem gleichen Client-Identifier existiert bereits.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">Nur Confidential, Hybrid oder Public Anwendungen werden vom Standardanwendungsmanager unterstützt.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">Das Client-Secret darf bei Confidential-Anwendungenkann nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">Ein Client-Secret kann nicht mit einer Public-Anwendung assoziert werden.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">Callback URLs dürfen kein Fragment enthalten.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">Der Authorization Code kann nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">Der angegebene Authorization-Type wird vom Standard-Token-Manager nicht unterstützt.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">Der Client-Type darf nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">Callback URLs dürfen nicht null oder leer sein.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">Callback URLs müssen valide, absolute URLs sein.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">Entfernt verwaiste Token und Berechtigungen aus der Datenbank.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">Startet die geplante Aufgabe in regelmäßigen Abständen.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.es.xlf

@ -1,602 +0,0 @@
<?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="es" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">Falta el token de seguridad.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">El código de autorización provisto no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">El código de dispositivo provisto no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">El token de actualización provisto no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">El token provisto no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">El token provisto no es un código de autorización.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">El token provisto no es un código de dispositivo.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">El token provisto no es un token de actualización.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">El token provisto no es un token de acceso.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">El token provisto de identidad provisto no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">El código de autorización provisto ya ha sido canjeado.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">El código de dispositivo provisto ya ha sido canjeado.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">El token de actualización provisto ya ha sido canjeado.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">El token provisto ya ha sido canjeado.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">El usuario final aún no ha concedido la autorización.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">La autorización fue denegada por el usuario final.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">El codigo de autorización provisto ya no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">El código de dispositivo provisto ya no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">El token de actualización provisto ya no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">El token provisto ya no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">La autorización asociada con el codigo de autorización ya no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">La autorización asociada con el código de dispositivo ya no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">La autorización asociada con el token de actualización ya no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">La autorización asociada con el token ya no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">La petición del token ha sido rechazada por el servidor de autenticación.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">La demanda de acceso a la información del usuario ha sido rechazada por el servidor de autenticación.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">El código de usuario provisto ya no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">El parámetro '{0}' no esta soportado.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">Falta el parámetro obligatorio '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">El parámetro '{0}' debe ser una URL absoluta válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">El parámetro '{0}' no debe incluir un fragmento.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">El '{0}' provisto no esta soportado.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">La combinación '{0}'/'{1}' no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">Falta el scope obligatorio '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">El scope '{0}' no esta permitido.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">El identificador de cliente no puede ser nulo ni vacío.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">El parámetro '{0}' debe ser utilizado en conjunto con '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">El estado no puede ser nulo ni vacío.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Los scopes no pueden ser nulos ni vacíos.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">Los parámetros '{0}' y '{1}' pueden ser usados únicamente con un tipo de respuesta que contenga '{2}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">El '{0}' provisto no esta permitido cuando se utiliza PKCE.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Los scopes no pueden tener espacios.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">El '{0}' provisto no es válido para esta aplicación de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">El nombre del scope no puede ser nulo ni vacío.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<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="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el destino de autorización.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el flujo de código de autorización.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el flujo implícito.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el flujo híbrido.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el scope provisto.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">El '{0}' provisto no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">El parámetro '{0}' no es válido para esta aplicación de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">Flata el parámetro obligatorio '{0}' para esta aplicación de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">Las credenciales del cliente provista no son válidas.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el destino de dispositivo.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">Los parámetros '{0}' y '{1}' son obligatorios cuando la concesión de credenciales de cliente es utilizada.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">El parámetro '{0}' es obligatorios cuando la concesion de código de dispositivo es utlizada.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">Faltan los paramétros obligatorios '{0}' y/o '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">Un scope con el mismo nombre ya existe.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el destino de token.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el tipo de concesion especificada.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar la concesion '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">El código de autorización provisto no puede ser utilizado sin enviar un identificador de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">El código de dispositivo provisto no puede ser utilizado sin enviar un identificador de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">El token de actualización provisto no puede ser utilizado sin enviar un identificador de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">El código de autorización provisto no puede ser utilizado por ésta aplicación de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">El código de dispositivo provisto no puede ser utilizado por ésta aplicación de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">El código de actualización provisto no puede ser utilizado por ésta aplicación de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">El parámetro '{0}' no concuerda con la dirección de redireccionamiento de cliente inicialmente provista en el código de autorización.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">El parámetro '{0}' no puede ser utilizado cuando '{1}' fue especificado en la petición de autorizacion..</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">El parámetro '{0}' no es válido en este contexto.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">La aplicación de cliente no esta permitida a utilizar el destino de introspección</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">El token provisto no se puede introspectar.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">La aplicación de cliente no está permitida a introspectar el token provisto.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">La aplicación de cliente no está permitida a utilizar el destino de revocación.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">Este token no puede ser revocado.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">La aplicación de cliente no esta permitida a revocar el token provisto.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">Falta el encabezamiento obligatorio '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">El encabezamiento '{0}' no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">Este servidor solo soporta peticiones HTTPS.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">El método HTTP provisto no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">Un token con la misma referencia identificatoria ya existe.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">El tipo de token no puede ser ni null ni vacío.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">No se pueden especificar multiples credenciales de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">El emisor asociado al token especificado no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">El token especificado no es del tipo esperado.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">No se encontró la clave de firma asociada al token especificado.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">La firma asociada al token especificado no es válida.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">Este servidor de recursos no está disponible actualmente.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">El token especificado no contiene ninguna audiencia.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">El token especificado no se puede utilizar con este servidor de recursos.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">El usuario representado por el token no puede realizar la acción solicitada.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">No se pudo encontrar ningún emisor en la configuración del servidor.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">La respuesta de la configuración de servidor contiene un emisor inválido.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">El emisor devuelto en la configuración del servidor no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">No se pudo encontrar ningún destino JWKS en la configuración del servidor.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">La respuesta de la configuración de servidor contiene una URL de destino JWKS inválida.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">La respuesta de la configuración de servidor contiene una URL de destino de introspección inválida.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">El documento JWKS no contenía un nodo '{0}' válido con al menos una clave.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">La clave contenida en la respuesta JWKS no está soportada.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">La clave contenida en la respuesta JWKS es inválida.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">No se pudo encontrar el parámetro obligatorio '{0}' en la respuesta de introspección.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">El token fue rechazado por el servidor de autenticación remoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">La afirmación "{0}" tiene un formato incorrecto o no es del tipo esperado.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">La respuesta de introspección contiene un emisor con un formato incorrecto.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">El emisor devuelto en la respuesta de introspección no es válido.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">El tipo de token introspectado no coincide con el tipo esperado.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">Ya existe una aplicación con el mismo identificador de cliente.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">El administrador de aplicaciones predeterminado solo admite aplicaciones confidenciales, híbridas o públicas.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">El secreto del cliente no puede ser nulo ni vacío para una aplicación confidencial.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">Un secreto de cliente no se puede asociar a una aplicación pública.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">Las URL de retorno no pueden contener un fragmento.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">El tipo de autorización no puede ser nulo ni vacío.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">El tipo de autorización provisto no es compatible con el administrador de tokens predeterminado.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">El tipo de cliente no puede ser nulo ni vacío.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">Las URL de retorno no pueden ser nulas ni vacías.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">Las URL de retorno deben ser URL absolutas válidas.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">Elimina tokens y autorizaciones huérfanos de la base de datos.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">Inicia la tarea programada en intervalos regulares.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

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

@ -1,602 +0,0 @@
<?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="ID2000">
<source>The security token is missing.</source>
<target state="translated">Le jeton de sécurité est manquant.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<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="ID2002">
<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="ID2003">
<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="ID2004">
<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="ID2005">
<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="ID2006">
<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="ID2007">
<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="ID2008">
<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="ID2009">
<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="ID2010">
<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="ID2011">
<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="ID2012">
<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="ID2013">
<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="ID2014">
<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="ID2015">
<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="ID2016">
<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="ID2017">
<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="ID2018">
<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="ID2019">
<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="ID2020">
<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="ID2021">
<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="ID2022">
<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="ID2023">
<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="ID2024">
<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="ID2025">
<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="ID2026">
<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="ID2028">
<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="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">Le paramètre obligatoire '{0}' est manquant.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<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="ID2031">
<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="ID2032">
<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="ID2033">
<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="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">La portée obligatoire '{0}' est manquante.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<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="ID2036">
<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="ID2037">
<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="ID2038">
<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="ID2039">
<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="ID2040">
<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="ID2041">
<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="ID2042">
<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="ID2043">
<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="ID2044">
<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="ID2045">
<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="ID2046">
<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="ID2047">
<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="ID2048">
<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="ID2049">
<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="ID2051">
<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="ID2052">
<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="ID2053">
<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="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">Le paramètre '{0}' requis pour cette application cliente est manquant.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<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="ID2056">
<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="ID2057">
<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="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">Le paramètre '{0}' est requis lorsque l'accès par code d'appareil est utilisé.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<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="ID2060">
<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="ID2063">
<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="ID2064">
<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="ID2065">
<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="ID2066">
<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="ID2067">
<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="ID2068">
<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="ID2069">
<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="ID2070">
<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="ID2071">
<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="ID2072">
<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="ID2073">
<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="ID2074">
<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="ID2075">
<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="ID2076">
<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="ID2077">
<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="ID2078">
<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="ID2079">
<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="ID2080">
<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="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">L'en-tête obligatoire '{0}' est manquant.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<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="ID2083">
<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="ID2084">
<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="ID2085">
<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="ID2086">
<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="ID2087">
<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="ID2088">
<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="ID2089">
<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="ID2090">
<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="ID2091">
<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="ID2092">
<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="ID2093">
<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="ID2094">
<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="ID2095">
<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="ID2096">
<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="ID2097">
<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="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="translated">L'émetteur retourné dans la configuration du serveur ne correspond pas à la valeur définie dans les options de validation.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<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="ID2100">
<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="ID2101">
<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="ID2102">
<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="ID2103">
<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="ID2104">
<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="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">Le paramètre obligatoire '{0}' n'a pu être trouvé dans la réponse d'introspection.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<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="ID2107">
<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="ID2108">
<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="ID2109">
<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="ID2110">
<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="ID2111">
<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="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="translated">Seules les applications confidentielles ou publiques sont supportées par le gestionnaire d'application par défaut.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<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="ID2114">
<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="ID2115">
<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="ID2116">
<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="ID2117">
<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="ID2118">
<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="ID2119">
<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="ID2120">
<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>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">Supprime les jetons et autorisations orphelines de la base de données.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">Démarre la tâche planifiée à intervalles réguliers.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.gu.xlf

@ -1,602 +0,0 @@
<?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="gu" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">સુરક્ષા ટોકન ખૂટે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">ઉલ્લેખિત અધિકૃતતા કોડ અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">ઉલ્લેખિત ઉપકરણ કોડ અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">ઉલ્લેખિત રીફ્રેશ ટોકન અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">ઉલ્લેખિત ટોકન અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">ઉલ્લેખિત ટોકન એ અધિકૃતતા કોડ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">ઉલ્લેખિત ટોકન એ કોઈ ડિવાઇસ કોડ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">ઉલ્લેખિત ટોકન રીફ્રેશ ટોકન નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">ઉલ્લેખિત ટોકન એ પ્રવેશ ટોકન નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">ઉલ્લેખિત ઓળખ ટોકન અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">ઉલ્લેખિત અધિકૃતતા કોડ પહેલાથી જ રિડિમ થઈ ગયો છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">ઉલ્લેખિત ડિવાઇસ કોડ પહેલાથી રિડિમ થઈ ગયો છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">ઉલ્લેખિત રીફ્રેશ ટોકન પહેલાથી જ રિડિમ કરવામાં આવ્યું છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">ઉલ્લેખિત ટોકન પહેલાથી જ રિડીમ કરવામાં આવ્યું છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">અંતિમ વપરાશકર્તા દ્વારા હજી સુધી અધિકૃતતા આપવામાં આવી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">અંતિમ વપરાશકર્તા દ્વારા અધિકૃતતા નકારી હતી.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">ઉલ્લેખિત અધિકૃતતા કોડ હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">ઉલ્લેખિત ઉપકરણ કોડ હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">ઉલ્લેખિત રીફ્રેશ ટોકન હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">ઉલ્લેખિત ટોકન હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">અધિકૃતતા કોડ સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">ડિવાઇસ કોડ સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">રીફ્રેશ ટોકન સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">ટોકન સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">પ્રમાણીકરણ સર્વર દ્વારા ટોકન વિનંતીને નકારી કા .ી હતી.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">વપરાશકર્તા માહિતી પ્રવેશ માંગને પ્રમાણીકરણ સર્વર દ્વારા નકારી હતી.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">ઉલ્લેખિત વપરાશકર્તા કોડ હવે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">'{0}' પેરામીટર સપોર્ટેડ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">ફરજિયાત '{0}' પરિમાણ ખૂટે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">'{0}' પરિમાણ એક માન્ય સંપૂર્ણ URL હોવું આવશ્યક છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">'{0}' પરિમાણમાં કોઈ ટુકડો શામેલ હોવો જોઈએ નહીં.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">ઉલ્લેખિત '{0}' સપોર્ટેડ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">ઉલ્લેખિત '{0}' / '{1}' સંયોજન અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">ફરજિયાત '{0}' અવકાશ ખૂટે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">'{0}' અવકાશની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">ક્લાયંટ ઓળખકર્તા નલ અથવા ખાલી હોઈ શકતા નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">'{0}' પરિમાણનો ઉપયોગ '{1}' વગર કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">સ્થિતિ નલ અથવા ખાલી હોઈ શકતી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">અવકાશ શૂન્ય અથવા ખાલી ન હોઈ શકે.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">'{0}' અને '{1}' પરિમાણો ફક્ત '{2}' ધરાવતા પ્રતિભાવ પ્રકાર સાથે જ વાપરી શકાય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">ઉલ્લેખિત '{0}' ને પીકેસીઇનો ઉપયોગ કરતી વખતે મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">અવકાશમાં જગ્યાઓ શામેલ હોઈ શકતી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">ઉલ્લેખિત '{0}' આ ક્લાયંટ એપ્લિકેશન માટે માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">અવકાશનું નામ નલ અથવા ખાલી હોઈ શકતું નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">અવકાશ નામમાં જગ્યાઓ શામેલ હોઈ શકતી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને અધિકૃતતા એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">ક્લાયંટ એપ્લિકેશનને અધિકૃતતા કોડ ફ્લોનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">ક્લાયંટ એપ્લિકેશનને ગર્ભિત પ્રવાહનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">ક્લાયંટ એપ્લિકેશનને હાઇબ્રિડ ફ્લોનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત અવકાશનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">ઉલ્લેખિત '{0}' અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશન માટે '{0}' પરિમાણ માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશન માટે જરૂરી '{0}' પરિમાણ ખૂટે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">ઉલ્લેખિત ગ્રાહકના ઓળખપત્રો અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને ડિવાઇસ એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">ક્લાયંટ ઓળખાણપત્ર અનુદાનનો ઉપયોગ કરતી વખતે '{0}' અને '{1}' પરિમાણો આવશ્યક છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">ડિવાઇસ કોડ ગ્રાન્ટનો ઉપયોગ કરતી વખતે '{0}' પેરામીટર આવશ્યક છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">ફરજિયાત '{0}' અને/અથવા '{1}' પરિમાણો ખૂટે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">સમાન નામનો અવકાશ પહેલેથી અસ્તિત્વમાં છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને ટોકન એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત અનુદાન પ્રકારનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">ક્લાયંટ એપ્લિકેશનને '{0}' અવકાશનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">ઉલ્લેખિત અધિકૃતતા કોડનો ઉપયોગ ક્લાયંટ ઓળખકર્તાને મોકલ્યા વગર કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">ઉલ્લેખિત ડિવાઇસ કોડનો ઉપયોગ ક્લાયંટ ઓળખકર્તાને મોકલ્યા વગર કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">ઉલ્લેખિત રિફ્રેશ ટોકનનો ઉપયોગ ક્લાયંટ ઓળખકર્તાને મોકલ્યા વગર કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">ઉલ્લેખિત અધિકૃતતા કોડનો ઉપયોગ આ ક્લાયંટ એપ્લિકેશન દ્વારા કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">ઉલ્લેખિત ડિવાઇસ કોડનો ઉપયોગ આ ક્લાયંટ એપ્લિકેશન દ્વારા કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">ઉલ્લેખિત રીફ્રેશ ટોકનનો ઉપયોગ આ ક્લાયંટ એપ્લિકેશન દ્વારા કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">ઉલ્લેખિત '{0}' પરિમાણ ક્લાયંટ રીડાયરેક્શન સરનામાં સાથે મેળ ખાતું નથી જે શરૂઆતમાં અધિકૃતિ કોડને મોકલવામાં આવ્યું હતું.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">જ્યારે '{0}' પરિમાણનો ઉપયોગ સત્તાધિકરણ વિનંતીમાં કોઈ '{1}' ઉલ્લેખિત ન થાય ત્યારે કરી શકાશે નહીં.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">'{0}' પરિમાણ આ સંદર્ભમાં માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને આત્મનિરીક્ષણ અંતિમ બિંદુનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">ઉલ્લેખિત ટોકન આત્મનિરીક્ષણ કરી શકાતું નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત ટોકનને આત્મનિરીક્ષણ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">આ ક્લાયંટ એપ્લિકેશનને રિવોલ્યુશન એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">આ ટોકન રદ કરી શકાતું નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત ટોકન રદ કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">ફરજિયાત '{0}' હેડર ખૂટે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">ઉલ્લેખિત '{0}' મથાળું અમાન્ય છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">આ સર્વર ફક્ત HTTPS વિનંતીઓ સ્વીકારે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">ઉલ્લેખિત એચટીટીપી પદ્ધતિ માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">સમાન સંદર્ભ ઓળખકર્તા સાથેનું એક ટોકન પહેલાથી અસ્તિત્વમાં છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">ટોકન પ્રકાર નલ અથવા ખાલી હોઈ શકતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">મલ્ટીપલ ક્લાયંટ ઓળખપત્રોનો ઉલ્લેખ કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">ઉલ્લેખિત ટોકન સાથે સંકળાયેલ ઇશ્યુઅર માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">ઉલ્લેખિત ટોકન અપેક્ષિત પ્રકારનું નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">ઉલ્લેખિત ટોકન સાથે સંકળાયેલ સાઇનિંગ કી મળી ન હતી.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">ઉલ્લેખિત ટોકન સાથે સંકળાયેલ સહી માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">આ સંસાધન સર્વર હાલમાં અનુપલબ્ધ છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">ઉલ્લેખિત ટોકનમાં કોઈ પ્રેક્ષક શામેલ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">ઉલ્લેખિત ટોકનનો ઉપયોગ આ સાધન સર્વર સાથે કરી શકાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">ટોકન દ્વારા રજૂ કરાયેલ વપરાશકર્તાને વિનંતી કરેલી ક્રિયા કરવાની મંજૂરી નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">સર્વર ગોઠવણીમાં કોઈ જારી કરનાર મળી શક્યો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">અમાન્ય અદા કરનારનો સર્વર ગોઠવણી પાછો ફર્યો હતો.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">સર્વર ગોઠવણીમાં પાછો આપનાર માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">સર્વર ગોઠવણીમાં કોઈ જેડબ્લ્યુકેએસ સમાપ્ત બિંદુ મળી શક્યું નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">અમાન્ય જેડબ્લ્યુકેએસ અંતિમ બિંદુ URL ધરાવતો સર્વર ગોઠવણી પાછો ફર્યો હતો.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">અમાન્ય આત્મનિરીક્ષણ અંતિમ બિંદુ URL ધરાવતો સર્વર ગોઠવણી પાછો ફર્યો હતો.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">જેડબ્લ્યુકેએસ દસ્તાવેજમાં ઓછામાં ઓછી એક કી સાથે માન્ય '{0}' નોડ શામેલ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">અસમર્થિત કી ધરાવતા જેડબ્લ્યુકેએસ નો જવાબ પાછો ફર્યો.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">અમાન્ય કી ધરાવતા જેડબ્લ્યુકેએસ પ્રતિસાદ પાછો ફર્યો.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">ફરજિયાત '{0}' પરિમાણ આત્મનિરીક્ષણ પ્રતિસાદમાં શોધી શકાયું નહીં.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">દૂરસ્થ પ્રમાણીકરણ સર્વર દ્વારા ટોકન નામંજૂર કરવામાં આવ્યું હતું.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">'{0}' દાવો દૂષિત છે અથવા અપેક્ષિત પ્રકારનો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">દૂષિત અદા કરનારનો આત્મનિરીક્ષણ પ્રતિસાદ પાછો ફર્યો.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">આ રજૂઆત કરનાર આત્મનિરીક્ષણ પ્રતિસાદમાં પરત માન્ય નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">આત્મનિરીક્ષણવાળા ટોકનનો પ્રકાર અપેક્ષિત પ્રકાર સાથે મેળ ખાતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">સમાન ક્લાયંટ ઓળખકર્તા સાથેની એક એપ્લિકેશન પહેલેથી અસ્તિત્વમાં છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">મૂળભૂત એપ્લિકેશન મેનેજર દ્વારા ફક્ત ગોપનીય, વર્ણસંકર અથવા સાર્વજનિક એપ્લિકેશનોને ટેકો આપવામાં આવે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">ગુપ્ત એપ્લિકેશન માટે ક્લાયંટ ક્લાયંટ નલ અથવા ખાલી હોઈ શકતું નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">ક્લાયંટ સિક્રેટ જાહેર એપ્લિકેશન સાથે સંકળાયેલ હોઈ શકે નહીં.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">કોલબેક URL માં કોઈ ટુકડો હોઈ શકતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">અધિકૃતતાનો પ્રકાર નલ અથવા ખાલી હોઈ શકતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">ઉલ્લેખિત અધિકૃતતાનો પ્રકાર મૂળભૂત ટોકન મેનેજર દ્વારા સપોર્ટેડ નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">ક્લાયંટનો પ્રકાર નલ અથવા ખાલી હોઈ શકતો નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">ક કોલબેક URL ને નલ અથવા ખાલી હોઈ શકતા નથી.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">ક કોલબેક URL માન્ય પૂર્ણ URL હોવા આવશ્યક છે.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">ડેટાબેઝમાંથી અનાથ ટોકન્સ અને અધિકૃતિઓ દૂર કરે છે.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">નિયમિત અંતરાલે સુનિશ્ચિત કાર્ય શરૂ કરે છે.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.hi.xlf

@ -1,602 +0,0 @@
<?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="hi" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">सुरक्षा टोकन गायब है.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">निर्दिष्ट प्राधिकरण कोड अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">निर्दिष्ट डिवाइस कोड अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">निर्दिष्ट ताज़ा टोकन अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">निर्दिष्ट टोकन अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">निर्दिष्ट टोकन एक प्राधिकरण कोड नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">निर्दिष्ट टोकन डिवाइस कोड नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">निर्दिष्ट टोकन एक ताज़ा टोकन नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">निर्दिष्ट टोकन एक्सेस टोकन नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">निर्दिष्ट पहचान टोकन अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">निर्दिष्ट प्राधिकरण कोड पहले ही भुनाया जा चुका है.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">निर्दिष्ट डिवाइस कोड पहले ही भुनाया जा चुका है.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">निर्दिष्ट ताज़ा टोकन पहले ही भुनाया जा चुका है.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">निर्दिष्ट टोकन को पहले ही भुनाया जा चुका है.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">अंतिम उपयोगकर्ता द्वारा प्राधिकरण अभी तक प्रदान नहीं किया गया है.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">प्राधिकरण को अंतिम उपयोगकर्ता द्वारा अस्वीकार कर दिया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">निर्दिष्ट प्राधिकरण कोड अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">निर्दिष्ट डिवाइस कोड अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">निर्दिष्ट ताज़ा टोकन अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">निर्दिष्ट टोकन अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">प्राधिकरण कोड से संबद्ध प्राधिकरण अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">डिवाइस कोड से संबद्ध प्राधिकरण अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">ताज़ा टोकन से संबद्ध प्राधिकरण अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">टोकन से जुड़ा प्राधिकरण अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">टोकन अनुरोध प्रमाणीकरण सर्वर द्वारा अस्वीकार कर दिया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">प्रमाणीकरण सर्वर द्वारा उपयोगकर्ता सूचना पहुंच मांग को अस्वीकार कर दिया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">निर्दिष्ट उपयोगकर्ता कोड अब मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">'{0}' पैरामीटर समर्थित नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">अनिवार्य '{0}' पैरामीटर गायब है.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">'{0}' पैरामीटर एक मान्य पूर्ण URL होना चाहिए.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">'{0}' पैरामीटर में एक टुकड़ा शामिल नहीं होना चाहिए.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">निर्दिष्ट '{0}' समर्थित नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">निर्दिष्ट '{0}' / '{1}' संयोजन अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">अनिवार्य '{0}' स्कोप गायब है.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">'{0}' स्कोप की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">क्लाइंट पहचानकर्ता रिक्त या रिक्त नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">'{0}' पैरामीटर का उपयोग '{1}' के बिना नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">स्थिति शून्य या रिक्त नहीं हो सकती.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">स्कोप्स शून्य या रिक्त नहीं हो सकते.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">'{0}' और '{1}' मापदंडों का उपयोग केवल '{2}' वाले प्रतिक्रिया प्रकार के साथ किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">PKCE का उपयोग करते समय निर्दिष्ट '{0}' की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">स्कोप में स्थान नहीं हो सकते.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">निर्दिष्ट '{0}' इस क्लाइंट एप्लिकेशन के लिए मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">स्कोप नाम शून्य या रिक्त नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">स्कोप नाम में रिक्त स्थान नहीं हो सकते.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन को प्राधिकरण समापन बिंदु का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">क्लाइंट एप्लिकेशन को प्राधिकरण कोड प्रवाह का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">क्लाइंट एप्लिकेशन को निहित प्रवाह का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">हाइब्रिड प्रवाह का उपयोग करने के लिए क्लाइंट एप्लिकेशन को अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन को निर्दिष्ट दायरे का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">निर्दिष्ट '{0}' अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन के लिए '{0}' पैरामीटर मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन के लिए आवश्यक '{0}' पैरामीटर गायब है.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">निर्दिष्ट क्लाइंट क्रेडेंशियल अमान्य हैं.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन को डिवाइस एंडपॉइंट का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">क्लाइंट क्रेडेंशियल्स अनुदान का उपयोग करते समय '{0}' और '{1}' मापदंडों की आवश्यकता होती है.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">डिवाइस कोड अनुदान का उपयोग करते समय '{0}' पैरामीटर की आवश्यकता होती है.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">अनिवार्य '{0}' और / या '{1}' पैरामीटर गायब हैं.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">समान नाम वाला स्कोप पहले से मौजूद है.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन को टोकन समापन बिंदु का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">इस ग्राहक एप्लिकेशन को निर्दिष्ट अनुदान प्रकार का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">क्लाइंट एप्लिकेशन को '{0}' स्कोप का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">क्लाइंट पहचानकर्ता को भेजे बिना निर्दिष्ट प्राधिकरण कोड का उपयोग नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">क्लाइंट पहचानकर्ता को भेजे बिना निर्दिष्ट डिवाइस कोड का उपयोग नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">निर्दिष्ट ताज़ा टोकन का उपयोग ग्राहक पहचानकर्ता को भेजे बिना नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन द्वारा निर्दिष्ट प्राधिकरण कोड का उपयोग नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन द्वारा निर्दिष्ट डिवाइस कोड का उपयोग नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">निर्दिष्ट ताज़ा टोकन का उपयोग इस क्लाइंट एप्लिकेशन द्वारा नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">निर्दिष्ट '{0}' पैरामीटर ग्राहक पुनर्निर्देशन पते से मेल नहीं खाता है जो प्राधिकरण कोड शुरू में भेजा गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">प्राधिकरण अनुरोध में कोई {{1} 'पैरामीटर का उपयोग नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">इस संदर्भ में '{0}' पैरामीटर मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">इस ग्राहक एप्लिकेशन को आत्मनिरीक्षण समापन बिंदु का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">निर्दिष्ट टोकन आत्मनिरीक्षण नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">क्लाइंट एप्लिकेशन को निर्दिष्ट टोकन का आत्मनिरीक्षण करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">इस क्लाइंट एप्लिकेशन को प्रत्यावर्तन समापन बिंदु का उपयोग करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">इस टोकन को निरस्त नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">क्लाइंट एप्लिकेशन को निर्दिष्ट टोकन को रद्द करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">अनिवार्य '{0}' शीर्षक गायब है.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">निर्दिष्ट '{0}' शीर्षक अमान्य है.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">यह सर्वर केवल HTTPS अनुरोध स्वीकार करता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">निर्दिष्ट HTTP विधि मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">समान संदर्भ पहचानकर्ता के साथ एक टोकन पहले से मौजूद है.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">टोकन प्रकार शून्य या रिक्त नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">एकाधिक क्लाइंट क्रेडेंशियल निर्दिष्ट नहीं किए जा सकते हैं.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">निर्दिष्ट टोकन से संबंधित जारीकर्ता मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">निर्दिष्ट टोकन अपेक्षित प्रकार का नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">निर्दिष्ट टोकन से संबंधित हस्ताक्षरित कुंजी नहीं मिली.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">निर्दिष्ट टोकन से संबंधित हस्ताक्षर मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">वर्तमान में यह संसाधन सर्वर अनुपलब्ध है.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">निर्दिष्ट टोकन में कोई भी श्रोता नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">निर्दिष्ट टोकन का उपयोग इस संसाधन सर्वर के साथ नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">टोकन द्वारा प्रस्तुत उपयोगकर्ता को अनुरोधित कार्रवाई करने की अनुमति नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">सर्वर कॉन्फ़िगरेशन में कोई जारीकर्ता नहीं मिला.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">अमान्य जारीकर्ता वाला सर्वर कॉन्फ़िगरेशन वापस कर दिया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">सर्वर कॉन्फ़िगरेशन में जारीकर्ता मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">सर्वर कॉन्फ़िगरेशन में कोई JWKS समापन बिंदु नहीं मिला.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">अमान्य JWKS समापन बिंदु URL वाला सर्वर कॉन्फ़िगरेशन लौटाया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">अमान्य इंट्रॉस्पेशन एंडपॉइंट URL वाले सर्वर कॉन्फ़िगरेशन को लौटा दिया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">JWKS दस्तावेज़ में कम से कम एक कुंजी के साथ एक वैध '{0}' नोड नहीं था.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">एक असमर्थित कुंजी वाली JWKS प्रतिक्रिया लौटा दी गई थी.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">अमान्य कुंजी वाली JWKS प्रतिक्रिया लौटा दी गई थी।</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">आत्मनिरीक्षण प्रतिक्रिया में अनिवार्य '{0}' पैरामीटर नहीं मिला.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">रिमोट प्रमाणीकरण सर्वर द्वारा टोकन को अस्वीकार कर दिया गया था.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">'{0}' दावा विकृत है या अपेक्षित प्रकार का नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">एक विकृत जारीकर्ता युक्त आत्मनिरीक्षण प्रतिक्रिया लौटा दी गई.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">जारीकर्ता आत्मनिरीक्षण प्रतिक्रिया में लौटाया गया मान्य नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">अंतर्मुखी टोकन का प्रकार अपेक्षित प्रकार से मेल नहीं खाता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">समान क्लाइंट पहचानकर्ता के साथ एक एप्लिकेशन पहले से मौजूद है.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">केवल गोपनीय, हाइब्रिड या सार्वजनिक एप्लिकेशन डिफ़ॉल्ट एप्लिकेशन मैनेजर द्वारा समर्थित हैं.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">गोपनीय के लिए क्लाइंट रहस्य शून्य या रिक्त नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">एक ग्राहक रहस्य एक सार्वजनिक आवेदन के साथ संबद्ध नहीं किया जा सकता है.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">कॉलबैक URL में एक टुकड़ा नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">प्राधिकरण प्रकार शून्य या रिक्त नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">निर्दिष्ट प्राधिकरण प्रकार डिफ़ॉल्ट टोकन प्रबंधक द्वारा समर्थित नहीं है.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">क्लाइंट प्रकार रिक्त या रिक्त नहीं हो सकता.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">कॉलबैक URL शून्य या रिक्त नहीं हो सकते.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">कॉलबैक URL मान्य निरपेक्ष URL होने चाहिए.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">डेटाबेस से अनाथ टोकन और प्राधिकरणों को निकालता है.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">नियमित अंतराल पर निर्धारित कार्य शुरू करता है.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.it.xlf

@ -1,602 +0,0 @@
<?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="it" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">Il token di sicurezza è mancante.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">Il codice di autorizzazione specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">Il codice del dispositivo specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">Il token di aggiornamento specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">Il token specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">Il token specificato non è un codice di autorizzazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">Il token specificato non è un codice del dispositivo.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">Il token specificato non è un token di aggiornamento.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">Il token specificato non è un token di accesso.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">Il token di identità specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">Il codice di autorizzazione specificato è già stato utilizzato.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">Il codice di dispositivo specificato è già stato utilizzato.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">Il token di aggiornamento specificato è già stato utilizzato.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">Il codice specificato è già stato utilizzato.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">L'autorizzazione non è ancora stata concessa dall'utente finale.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">L'autorizzazione è stata negata dall'utente finale.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">Il codice di autorizzazione specificato non è più valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">Il codice del dispositivo specificato non è più valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">Il token di aggiornamento specificato non è più valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">Il token specificato non è più valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">L'autorizzazione associata con il codice di autorizzazione non è più valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">L'autorizzazione associata con il codice del dispositivo non è più valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">L'autorizzazione associata con il token di aggiornamento non è più valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">L'autorizzazione associata con il token non è più valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">La richiesta del token è stata respinta dal server di autenticazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">La richiesta di accesso alle informazioni dell'utente è stata rifiutata dal server di autenticazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">Il codice utente specificato non è più valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">Il parametro '{0}' non è supportato.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">Manca il parametro obbligatorio '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">Il parametro '{0}' deve essere un URL assoluto valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">Il parametro '{0}' non deve includere un frammento di URL.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">Il '{0}' specificato non è supportato.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">La combinazione '{0}' / '{1}' specificata non è valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">Manca l'ambito obbligatorio '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">L'ambito '{0}' non è consentito.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">L'identificatore del client non può essere nullo o vuoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">Il parametro '{0}' non può essere utilizzato senza '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">Lo stato non può essere nullo o vuoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Gli ambiti non possono essere nulli o vuoti.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">I parametri '{0}' e '{1}' possono essere utilizzati solo con un tipo di risposta contenente '{2}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">Il '{0}' specificato non è consentito quando si utilizza PKCE.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Gli ambiti non possono contenere spazi.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">Il '{0}' specificato non è valido per questa applicazione client.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">Il nome dell'ambito non può essere nullo o vuoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">Il nome dell'ambito non può contenere spazi.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare l'endpoint di autorizzazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare il flusso del codice di autorizzazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare il flusso implicito.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare il flusso ibrido.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare l'ambito specificato.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">Il '{0}' specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">Il parametro '{0}' non è valido per questa applicazione client.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">Manca il parametro '{0}' richiesto per questa applicazione client.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">Le credenziali client specificate non sono valide.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare l'endpoint del dispositivo.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">I parametri '{0}' e '{1}' sono obbligatori quando si utilizza la concessione delle credenziali del client.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">Il parametro '{0}' è obbligatorio quando si utilizza la concessione del codice del dispositivo.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">Mancano i parametri obbligatori '{0}' e / o '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">Esiste già un ambito con lo stesso nome.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare l'endpoint del token.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare il tipo di concessione specificato.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">L'applicazione client non può utilizzare l'ambito '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">Il codice di autorizzazione specificato non può essere utilizzato senza inviare un identificativo client.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">Il codice dispositivo specificato non può essere utilizzato senza inviare un identificativo client.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">Il token di aggiornamento specificato non può essere utilizzato senza inviare un identificatore client.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">Il codice di autorizzazione specificato non può essere utilizzato da questa applicazione client.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">Il codice del dispositivo specificato non può essere utilizzato da questa applicazione client.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">Il token di aggiornamento specificato non può essere utilizzato da questa applicazione client.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">Il parametro '{0}' specificato non corrisponde all'indirizzo di reindirizzamento del client a cui è stato inizialmente inviato il codice di autorizzazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">Il parametro '{0}' non può essere utilizzato se non è stato specificato alcun '{1}' nella richiesta di autorizzazione.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">Il parametro '{0}' non è valido in questo contesto.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">L'applicazione client non può utilizzare l'endpoint di introspezione.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">Il token specificato non può essere esaminato.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">L'applicazione client non è autorizzata a esaminare il token specificato.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">L'applicazione client non è autorizzata a utilizzare l'endpoint di revoca.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">Questo token non può essere revocato.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">L'applicazione client non è autorizzata a revocare il token specificato.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">Manca l'intestazione '{0}' obbligatoria.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">L'intestazione '{0}' specificata non è valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">Questo server accetta solo richieste HTTPS.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">Il metodo HTTP specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">Esiste già un token con lo stesso identificatore di riferimento.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">Il tipo di token non può essere nullo o vuoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">Non è possibile specificare più credenziali client.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">L'emittente associato al token specificato non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">Il token specificato non è del tipo previsto.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">La chiave di firma associata al token specificato non è stata trovata.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">La firma associata al token specificato non è valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">Questo server di risorse non è attualmente disponibile.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="needs-l10n">Il token specificato non contiene alcun pubblico.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">Il token specificato non può essere utilizzato con questo server di risorse.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">L'utente rappresentato dal token non è autorizzato a eseguire l'azione richiesta.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">Nessun emittente è stato trovato nella configurazione del server.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">È stata restituita una configurazione del server contenente un emittente non valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">L'emittente restituito nella configurazione del server non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">Nessun endpoint JWKS è stato trovato nella configurazione del server.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">È stata restituita una configurazione server contenente un URL dell'endpoint JWKS non valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">È stata restituita una configurazione del server contenente un URL dell'endpoint di introspezione non valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">Il documento JWKS non conteneva un nodo '{0}' valido con almeno una chiave.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">È stata restituita una risposta JWKS contenente una chiave non supportata.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">È stata restituita una risposta JWKS contenente una chiave non valida.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">Impossibile trovare il parametro obbligatorio '{0}' nella risposta di introspezione.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">Il token è stato rifiutato dal server di autenticazione remoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">La rivendicazione '{0}' non è valida o non è del tipo previsto.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">È stata restituita una risposta di introspezione contenente un emittente non valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">L'emittente restituito nella risposta di introspezione non è valido.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">Il tipo di token analizzato non corrisponde al tipo previsto.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">Esiste già un'applicazione con lo stesso identificatore client.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">Solo le applicazioni riservate, ibride o pubbliche sono supportate dal gestore applicazioni predefinito.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">Il segreto client non può essere nullo o vuoto per un'applicazione riservata.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">Un segreto client non può essere associato a un'applicazione pubblica.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">Gli URL di richiamata non possono contenere un frammento.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">Il tipo di autorizzazione non può essere nullo o vuoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">Il tipo di autorizzazione specificato non è supportato dal gestore di token predefinito.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">Il tipo di client non può essere nullo o vuoto.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">Gli URL di richiamata non possono essere nulli o vuoti.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">Gli URL di richiamata devono essere URL assoluti validi.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">Rimuove i token e le autorizzazioni orfani dal database.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">Avvia l'attività pianificata a intervalli regolari.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf

@ -1,602 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file datatype="xml" source-language="en" target-language="nl" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">Het beveiligingstoken ontbreekt.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">De opgegeven autorisatiecode is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">De opgegeven toestelcode is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">Het opgegeven vernieuwingstoken is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">Het opgegeven token is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">Het opgegeven token is geen autorisatiecode.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">Het opgegeven token is geen toestelcode.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">Het opgegeven token is geen vernieuwingstoken.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">Het opgegeven token is geen toegangstoken.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">Het opgegeven identiteitstoken is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">De opgegeven autorisatiecode werd al ingewisseld.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">De opgegeven toestelcode werd al ingewisseld.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">Het opgegeven vernieuwingstoken werd al ingewisseld.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">Het opgegeven token werd al ingewisseld.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">De autorisatie is nog niet verleend door de eindgebruiker.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">De autorisatie is geweigerd door de eindgebruiker.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">De opgegeven autorisatiecode is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">De opgegeven toestelcode is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">Het opgegeven vernieuwingstoken is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">Het opgegeven token is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">De autorisatie die aan de autorisatiecode is gekoppeld, is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">De autorisatie die aan de toestelcode is gekoppeld, is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">De autorisatie die aan het vernieuwingstoken is gekoppeld, is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">De autorisatie die aan het token is gekoppeld, is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">Het tokenverzoek is afgewezen door de authenticatieserver.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">Het verzoek om toegang tot gebruikersinformatie is afgewezen door de authenticatieserver.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">De opgegeven gebruikerscode is niet langer geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">De parameter '{0}' wordt niet ondersteund.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">De verplichte parameter '{0}' ontbreekt.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">De parameter '{0}' moet een geldige absolute URL zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">De parameter '{0}' mag geen fragment bevatten.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">De opgegeven '{0}' wordt niet ondersteund.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">De opgegeven combinatie '{0}'/'{1}' is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">De verplichte scope '{0}' ontbreekt.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">De scope '{0}' is niet toegestaan.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">Het client-ID mag niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">De parameter '{0}' kan niet worden gebruikt zonder '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">De status mag niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Scopes mogen niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">De parameters '{0}' en '{1}' kunnen alleen worden gebruikt met een reactietype dat '{2}' bevat.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">De opgegeven '{0}' is niet toegestaan bij gebruik van PKCE.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Scopes mogen geen spaties bevatten.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">De opgegeven '{0}' is niet geldig voor deze clienttoepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">De naam van de scope mag niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">De naam van de scope mag geen spaties bevatten.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">Deze clienttoepassing mag het autorisatie-eindpunt niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">De clienttoepassing mag de autorisatiecodestroom niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">De clienttoepassing mag de impliciete stroom niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">De clienttoepassing mag de hybride stroom niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">Deze clienttoepassing mag de opgegeven scope niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">De opgegeven '{0}' is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">De parameter '{0}' is niet geldig voor deze clienttoepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">De parameter '{0}' die vereist is voor deze clienttoepassing, ontbreekt.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">De opgegeven clientreferenties zijn ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">Deze clienttoepassing mag het toesteleindpunt niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">De parameters '{0}' en '{1}' zijn vereist bij het gebruik van de toekenning van clientreferenties.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">De parameter '{0}' is vereist bij gebruik van de toestelcodetoekenning.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">De verplichte '{0}' en / of '{1}' parameters ontbreken.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">Er bestaat al een scope met dezelfde naam.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">Deze clienttoepassing mag het tokeneindpunt niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">Deze clienttoepassing mag het opgegeven toekenningstype niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">De clienttoepassing mag de scope '{0}' niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">De opgegeven autorisatiecode kan niet worden gebruikt zonder een client-ID te verzenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">De opgegeven toestelcode kan niet worden gebruikt zonder een client-ID te verzenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">Het opgegeven vernieuwingstoken kan niet worden gebruikt zonder een client-ID te verzenden.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">De opgegeven autorisatiecode kan niet worden gebruikt door deze clienttoepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">De opgegeven toestelcode kan niet worden gebruikt door deze clienttoepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">Het opgegeven vernieuwingstoken kan niet worden gebruikt door deze clienttoepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">De opgegeven parameter '{0}' komt niet overeen met het omleidingsadres van de client waarnaar de autorisatiecode oorspronkelijk was verzonden.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">De parameter '{0}' kan niet worden gebruikt als er geen '{1}' is opgegeven in het autorisatieverzoek.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">De parameter '{0}' is in deze context niet geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">Deze clienttoepassing mag het introspectie-eindpunt niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">Er kan geen introspectie worden uitgevoerd met het opgegeven token.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">De clienttoepassing mag geen introspectie uitvoeren met het opgegeven token.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">Deze clienttoepassing mag het intrekkings-eindpunt niet gebruiken.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">Dit token kan niet worden ingetrokken.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">De clienttoepassing mag het opgegeven token niet intrekken.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">De verplichte '{0}' header ontbreekt.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">De opgegeven '{0}' header is ongeldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">Deze server accepteert alleen HTTPS-verzoeken.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">De opgegeven HTTP-methode is niet geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">Er bestaat al een token met dezelfde referentie-ID.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">Het token type mag niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">Er kunnen niet meerdere clientreferenties worden opgegeven.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">De uitgever die aan het opgegeven token is gekoppeld, is niet geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">Het opgegeven token is niet van het verwachte type.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">De ondertekeningssleutel die aan het opgegeven token is gekoppeld, is niet gevonden.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">De handtekening die aan het opgegeven token is gekoppeld, is niet geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">Deze bronserver is momenteel niet beschikbaar.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">Het opgegeven token bevat geen doelgroep.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">Het opgegeven token kan niet worden gebruikt met deze bronserver.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">De gebruiker die wordt vertegenwoordigd door het token, mag de gevraagde actie niet uitvoeren.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">Er is geen uitgever gevonden in de serverconfiguratie.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">Er is een serverconfiguratie met een ongeldige uitgever geretourneerd.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">De uitgever die in de serverconfiguratie is geretourneerd, is niet geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">Er is geen JWKS-eindpunt gevonden in de serverconfiguratie.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">Er is een serverconfiguratie met een ongeldige JWKS-eindpunt URL geretourneerd.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">Er is een serverconfiguratie met een ongeldige introspectie-eindpunt URL geretourneerd.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">Het JWKS-document bevat geen geldig '{0}' element met ten minste één sleutel.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">Er is een JWKS-antwoord geretourneerd met een niet-ondersteunde sleutel.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">Er is een JWKS-antwoord met een ongeldige sleutel geretourneerd.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">De verplichte parameter '{0}' is niet gevonden in het introspectie-antwoord.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">Het token werd geweigerd door de externe authenticatieserver.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">De claim '{0}' heeft een onjuiste indeling of is niet van het verwachte type.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">Het introspectie-antwoord bevat een onjuiste uitgever.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">De uitgever die is geretourneerd in het introspectie-antwoord is niet geldig.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">Het type van het geïntrospecteerde token komt niet overeen met het verwachte type.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">Er bestaat al een applicatie met dezelfde client-ID.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">Alleen vertrouwelijke, hybride of openbare applicaties worden ondersteund door de standaard applicatiebeheerder.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">Het clientgeheim mag niet leeg of leeg zijn voor een vertrouwelijke toepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">Een clientgeheim kan niet worden gekoppeld aan een openbare toepassing.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">Callback URL's mogen geen fragment bevatten.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">Het autorisatietype mag niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">Het opgegeven autorisatietype wordt niet ondersteund door de standaard tokenmanager.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">Het client type mag niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">Callback URL's mogen niet null of leeg zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">Callback URL's moeten geldige absolute URL's zijn.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">Verwijdert ongebruikte tokens en autorisaties uit de database.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">Start de geplande taak op regelmatige tijdstippen.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.tr.xlf

@ -1,602 +0,0 @@
<?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="tr" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">Güvenlik belirteci eksik.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">Belirtilen yetkilendirme kodu geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">Belirtilen cihaz kodu geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">Belirtilen yenileme belirteci geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">Geçersiz belirteç.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">Belirteç Yetkilendirme belirteci değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">Belirteç cihaz kodu değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">Belirteç yenileme belirteci değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">Belirteç erişim belirteci değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">Kimlik belirteci geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">Yetkilendirme belirteci daha önce kullanılmış.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">Cihaz kodu daha önce kullanılmış.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">Yenileme belirteci daha önce kullanılmış.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">Belirteç daha önce kullanılmış.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">Yetkilendirme son kullanıcı tarafından henüz verilmedi.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">Yetkilendirme son kullanıcı tarafından reddedildi.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">Yetkilendirme kodu artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">Cihaz kodu artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">Yenileme belirteci artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">Belirteç artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">Yetkilendirme ile ilişkili yetkilendirme kodu artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">Yetkilendirme ile ilişkili cihaz kodu artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">Yenileme belirteci ile ilişkili cihaz kodu artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">Yetkilendirme ile ilişkili belirteç artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">Belirteç isteği erişim sunucusu tarafından reddedildi.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">Kullanıcı bilgisi isteği erişim sunucusu tarafından reddedildi.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">Kullanıcı kodu artık geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">'{0}' parametresi desteklenmiyor.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">Zorunlu '{0}' parametresi eksik.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">'{0}' parametresi geçerli bir mutlak link olmalıdır.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">'{0}' parametresi parçe içermemelidir.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">Belirtilen '{0}' desteklenmemektedir..</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">Belirtilen '{0}'/'{1}' kombinasyonu geçersizdir.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">Zorunlu '{0}' kapsamı eksik.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">'{0}' kapsamına izin verilmemektedir.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">İstemci tanımlayıcısı boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">'{0}' parametresi '{1}' olmadan kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">Durum boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Kapsamlar boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">'{0}' ve '{1}' parametreleri ancak '{2}' içeren yanıt tipleri ile kullanılabilir.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">Belirtilen '{0}' PKCE ile birlikte kullanılamaz..</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Kapsamlar boşluk içeremez.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">Belirtilen '{0}' istemci uygulaması için geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">Kapsam ismi boş veya tanımmsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">Kapsam ismi boşluk içeremez.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">Bu istemci uygulamasının yetkilendirme uç birimini kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">Bu istemci uygulamasının yetkilendirme kodu akışını kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">Bu istemci uygulamasının implicit akış kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">Bu istemci uygulamasının hibrit akış kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">Bu istemci uygulamasının belirtilen kapsamları kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">Belirtilen '{0}' geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">'{0}' parametresi bu istemci uygulaması ile geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">Eksik '{0}' parametresi bu istemci uygulaması için zorunludur.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">İstemci kimlik bilgileri geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">İstemci uygulamasının cihaz uçbirimini kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">'{0}' ve '{1}' parametreleri istemci kimlik bilgileri hakkı kullanıldığında zorunludur.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">'{0}' parametresi cihaz kodu hakkı kullanıldığında zorunludur.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">Zorunlu '{0}' ve/veya '{1}' parametreleri eksik.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">Aynı isimde bir kapsam bulunmaktadır..</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">İstemci uygulamasının belirteç uçbirimini kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">İstemci uygulamasının belirtilen hak tipini kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">İstemci uygulamasının '{0}' kapsamını kullanmaya izni bulunmamaktadır..</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">Belirtilen yetkilendirme kodu istemci tanımlayıcı yollanmadan kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">Belirtilen cihaz kodu istemci tanımlayıcı yollanmadan kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">Belirtilen yenileme belirteci istemci tanımlayıcı yollanmadan kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">Belirtilen yetkilendirme kodu istemci uygulaması tarafından kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">Belirtilen cihaz kodu istemci uygulaması tarafından kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">Belirtilen yenileme belirteci istemci uygulaması tarafından kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">'{0}' parametresi yetkilendirme kodunun ilk yollandığı istemci yönlendirme adresi ile eşleşmiyor.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">'{0}' parametresi yetkilendirme isteğinde '{1}' tanımlanmadığında kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">'{0}' parametresi bu bağlamda geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">İstemci uygulamasının içgözlem uçbirimini kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">Belirteç içgözlenemez.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">İstemci uygulamasının belirteci içgözlemlemeye izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">İstemci uygulamasının yürürlükten kaldırma uçbirimini kullanmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">Belirteç yürürlükten kaldırılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">İstemci uygulamasının belirteci yürürlükten kaldırmaya izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">Zorunlu '{0}' başlığı eksik.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">'{0}' başlığı geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">Bu sunucu sadece HTTPS isteklerini kabul etmektedir.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">Belirtilen HTTP metodu geçersiz.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">Aynı referans tanımlayıcı ile bir belirteç bulunmaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">Belirteç tipi boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">Birden çok istemci kimlik bilgisi belirtilemez.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">Belirteç ile ilişkilendirilen kuruluş geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">Belirteç beklenen tipte değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">Belirteç ile ilişkilendirilen imzalama anahtarı bulunamadı.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">Belirteç ile ilişkilendirilen imza geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">Kaynak sunucusu ulaşılabilir değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">Belirteç izleyici içermemektedir.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">Belirteç bu kaynak sunucusu ile kullanılamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">Belirteç ile ilişkilendirilen kullanıcının talep edilen işlemi gerçekleştirmeye izni bulunmamaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">Sunucu yapılandırmasında kuruluş bulunamadı.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">Geçersiz bir kuruluş içeren sunucu yapılandırması yanıtı döndü.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">Sunucu yapılandırmasında döndürülen kuruluş yanıtı geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">Sunucu yapılandırmasında JWKS uçbirimi bulunamadı.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">Geçersiz JWKS uçbirimi adresi içeren sunucu yapılandırması yanıtı döndü.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">Geçersiz içgözlem uçbirimi adresi adresi içeren sunucu yapılandırması yanıtı döndü.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">JWKS dokümanı en az bir anahtarı olan geçerli bir '{0}' ucu içermemektedir.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">Desteklenmeyen bir anahtar içeren bir JWKS yanıtı döndü.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">Geçersiz anahtar içeren bir JWKS yanıtı döndü.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">Zorunlu '{0}' parametresi içgözlem yanıtında bulunamadı.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">Belirteç uzak erişim sunucusu tarafından reddedildi.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">'{0}' hakkı kusurlu veya beklenen tipte değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">Kusurlu kuruluş içeren bir içgözlem yanıtı döndü.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">İçgözlem yanıtında dönen kuruluş geçerli değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">İçgözlenen belirteç tipi beklenen tipte değil.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">Aynı istemci belirteci ile başka bir uygulama bulunmaktadır.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">Varsayılan uygulama yöneticisi tarafından sadece gizli, hibrit ve umumi uygulamalar desteklenmektedir.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">Gizli uygulama için istemci gizli anahtarı boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">Umumi uygulama gizli anahtar ile ilişkilendirilemez.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">Geri çağırma adresi parça içeremez.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">Yetkilendirme tipi boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">Yetkilendirme tipi varsayılan belirteç yöneticisi tarafından desteklenmemektedir.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">İstemci tipi boş veya tanımsız olamaz.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">Geri çağırma adresi boş veya tanımsız olamaz..</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">Geri çağırma adresi mutlak ve geçerli bir adres olmalıdır.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">Yetim belirteç ve yetkilendirmeleri veritabanından kaldırır.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">Zamanlanmış görevi düzenli aralıklarda başlatır.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hans.xlf

@ -1,602 +0,0 @@
<?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="zh-Hans" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">缺少安全令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">指定的授权码无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">指定的设备码无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">指定的刷新令牌无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">指定的令牌无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">指定的令牌不是授权码.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">指定的令牌不是设备码.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">指定的令牌不是刷新令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">指定的令牌不是访问令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">指定的身份令牌无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">指定的授权码已兑换.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">指定的设备码已兑换.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">指定的刷新令牌已兑换.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">指定的令牌已兑换.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">最终用户尚未授权.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">最终用户拒绝授权.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">指定的授权码不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">指定的设备码不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">指定的刷新令牌不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">指定的令牌不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">与授权码关联的授权不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">与设备码关联的授权不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">与刷新令牌关联的授权不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">与令牌关联的授权不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">身份验证服务器拒绝了令牌请求.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">身份验证服务器拒绝了用户信息访问请求.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">指定的用户码不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">不支持参数 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">缺少必需参数 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">参数 ’{0}’ 必须是有效的绝对路径网址.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">参数 ‘{0}’ 不能包含 fragment.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">不支持指定的 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">指定的 ‘{0}’ / ‘{1}’ 组合无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">缺少必需 Scope ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">不允许 Scope ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">客户端 ID 不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">参数 ‘{0}’ 要求 ‘{1}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">状态不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Scope 不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">参数 ‘{0}’ 和 ‘{1}’ 只能在响应类型包含 ‘{2}’ 时使用.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">使用 PKCE 时不允许指定的 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Scope 不能包含空格.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">指定的 ‘{0}’ 对此客户端无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">Scope 不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">Scope 不能包含空格.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">不允许此客户端使用授权端点.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">不允许此客户端使用授权代码流程.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">不允许此客户端使用隐式流程.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">不允许此客户端使用混合流程.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">不允许此客户端使用指定的 Scope.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">指定的 ‘{0}’ 无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">参数 ‘{0}’ 对此客户端无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">未提供此客户端必需参数 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">指定的客户端凭据无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">不允许此客户端使用设备端点.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">使用客户端凭据授权时, 必须提供参数 ‘{0}’ 和 ‘{1}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">使用设备码授权时, 必须提供参数 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">未提供必需参数 ‘{0}’ 和/或 ‘{1}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">已存在具有相同名称的 Scope.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">不允许此客户端使用令牌端点.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">不允许此客户端使用指定的授予类型.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">不允许此客户端使用 Scope ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">若不发送客户端 ID, 则不能使用指定的授权码.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">若不发送客户端 ID, 则不能使用指定的设备码.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">若不发送客户端 ID, 则不能使用指定的刷新令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">此客户端不能使用指定的授权码.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">此客户端不能使用指定的设备码.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">此客户端不能使用指定的刷新令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">指定的参数 ‘{0}’ 与最初发送的客户端重定向地址不匹配.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">若授权请求中未指定 ‘{1}’, 则不能使用指定的参数 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">参数 ‘{0}’ 在此上下文中无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">不允许此客户端使用自省端点.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">指定的令牌不能自省.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">不允许此客户端自省指定的令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">此客户端不允许使用吊销端点.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">无法吊销此令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">不允许此客户端吊销指定的令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">缺少必需标头 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">指定的标头 ’{0}’ 无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">此服务器仅接受 HTTPS 请求.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">指定的 HTTP 方法无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">已存在具有相同引用 ID 的令牌.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">令牌类型不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">无法指定多个客户端凭据.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">与指定令牌关联的颁发者无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">指定的令牌不是预期类型.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">未找到与指定令牌关联的签名密钥.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">与指定令牌关联的签名无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">此资源服务器当前不可用.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">指定的令牌不包含任何目标受众.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">指定的令牌不能用于此资源服务器.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">不允许此令牌代表的用户执行请求的操作.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">在服务器配置中找不到颁发者.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">返回了包含无效颁发者的服务器配置.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">服务器配置中返回的颁发者无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">在服务器配置中找不到 JWKS 端点.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">返回了包含无效 JWKS 端点的服务器配置.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">返回了包含无效自省端点的服务器配置.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">JWKS 文档中没有 ‘{0}’ 节点.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">返回了包含不受支持的密钥的 JWKS 响应.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">返回了包含无效密钥的 JWKS 响应.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">自省响应中找不到必需参数 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">令牌被远程身份验证服务器拒绝.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">Claim ‘{0}’ 格式错误或不是预期类型.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">返回了包含错误格式颁发者的自省响应.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">自省响应返回的颁发者无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">自省令牌的类型与预期类型不匹配.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">已存在具有相同客户端 ID 的应用程序.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">默认应用程序管理器仅支持机密、混合或公共应用程序.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">对于机密应用程序, 客户端密钥不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">客户端密钥不能与公共应用程序关联.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">回调网址不能包含 fragment.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">授权类型不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">默认令牌管理器不支持指定的授权类型.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">客户端类型不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">回调网址不能为空.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">回调网址必须是有效的绝对路径网址.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">从数据库中删除孤立的令牌和授权.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">定期启动计划的任务.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

602
src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hant.xlf

@ -1,602 +0,0 @@
<?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="zh-Hant" original="../OpenIddictResources.resx">
<body>
<trans-unit id="ID2000">
<source>The security token is missing.</source>
<target state="translated">缺少安全權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2001">
<source>The specified authorization code is invalid.</source>
<target state="translated">指定的授權代碼無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2002">
<source>The specified device code is invalid.</source>
<target state="translated">指定的裝置代碼無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2003">
<source>The specified refresh token is invalid.</source>
<target state="translated">指定的重新整理權杖無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2004">
<source>The specified token is invalid.</source>
<target state="translated">指定的權杖无效.</target>
<note />
</trans-unit>
<trans-unit id="ID2005">
<source>The specified token is not an authorization code.</source>
<target state="translated">指定的權杖不是授權代碼.</target>
<note />
</trans-unit>
<trans-unit id="ID2006">
<source>The specified token is not an device code.</source>
<target state="translated">指定的權杖不是裝置代碼.</target>
<note />
</trans-unit>
<trans-unit id="ID2007">
<source>The specified token is not a refresh token.</source>
<target state="translated">指定的權杖不是重新整理權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2008">
<source>The specified token is not an access token.</source>
<target state="translated">指定的權杖不是存取權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2009">
<source>The specified identity token is invalid.</source>
<target state="translated">指定的識別碼權杖無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2010">
<source>The specified authorization code has already been redeemed.</source>
<target state="translated">指定的授權代碼已兌換.</target>
<note />
</trans-unit>
<trans-unit id="ID2011">
<source>The specified device code has already been redeemed.</source>
<target state="translated">指定的设备代碼已兌換.</target>
<note />
</trans-unit>
<trans-unit id="ID2012">
<source>The specified refresh token has already been redeemed.</source>
<target state="translated">指定的重新整理權杖已兌換.</target>
<note />
</trans-unit>
<trans-unit id="ID2013">
<source>The specified token has already been redeemed.</source>
<target state="translated">指定的權杖已兌換.</target>
<note />
</trans-unit>
<trans-unit id="ID2014">
<source>The authorization has not been granted yet by the end user.</source>
<target state="translated">使用者尚未批准授權.</target>
<note />
</trans-unit>
<trans-unit id="ID2015">
<source>The authorization was denied by the end user.</source>
<target state="translated">使用者拒絕授權.</target>
<note />
</trans-unit>
<trans-unit id="ID2016">
<source>The specified authorization code is no longer valid.</source>
<target state="translated">指定的授權代碼不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2017">
<source>The specified device code is no longer valid.</source>
<target state="translated">指定的裝置代碼不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2018">
<source>The specified refresh token is no longer valid.</source>
<target state="translated">指定的重新整理權杖不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2019">
<source>The specified token is no longer valid.</source>
<target state="translated">指定的權杖不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2020">
<source>The authorization associated with the authorization code is no longer valid.</source>
<target state="translated">與授權代碼關聯的授權不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2021">
<source>The authorization associated with the device code is no longer valid.</source>
<target state="translated">與裝置代碼關聯的授權不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2022">
<source>The authorization associated with the refresh token is no longer valid.</source>
<target state="translated">與重新整理權杖關聯的授權不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2023">
<source>The authorization associated with the token is no longer valid.</source>
<target state="translated">與權杖關聯的授權不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2024">
<source>The token request was rejected by the authentication server.</source>
<target state="translated">身份驗證伺服器拒絕了權杖請求.</target>
<note />
</trans-unit>
<trans-unit id="ID2025">
<source>The user information access demand was rejected by the authentication server.</source>
<target state="translated">身份驗證伺服器拒絕了使用者資訊存取請求.</target>
<note />
</trans-unit>
<trans-unit id="ID2026">
<source>The specified user code is no longer valid.</source>
<target state="translated">指定的使用者代碼不再有效.</target>
<note />
</trans-unit>
<trans-unit id="ID2028">
<source>The '{0}' parameter is not supported.</source>
<target state="translated">不支援引數 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2029">
<source>The mandatory '{0}' parameter is missing.</source>
<target state="translated">缺少必要引數 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2030">
<source>The '{0}' parameter must be a valid absolute URL.</source>
<target state="translated">引數 ’{0}’ 必須是有效的絕對路徑網址.</target>
<note />
</trans-unit>
<trans-unit id="ID2031">
<source>The '{0}' parameter must not include a fragment.</source>
<target state="translated">引數 ‘{0}’ 不能包含 fragment.</target>
<note />
</trans-unit>
<trans-unit id="ID2032">
<source>The specified '{0}' is not supported.</source>
<target state="translated">不支援指定的 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2033">
<source>The specified '{0}'/'{1}' combination is invalid.</source>
<target state="translated">指定的 ‘{0}’ / ‘{1}’ 組合無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2034">
<source>The mandatory '{0}' scope is missing.</source>
<target state="translated">缺少必要 Scope ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2035">
<source>The '{0}' scope is not allowed.</source>
<target state="translated">不允許 Scope ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2036">
<source>The client identifier cannot be null or empty.</source>
<target state="translated">消費者金鑰不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2037">
<source>The '{0}' parameter cannot be used without '{1}'.</source>
<target state="translated">引數 ‘{0}’ 要求 ‘{1}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2038">
<source>The status cannot be null or empty.</source>
<target state="translated">狀態不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2039">
<source>Scopes cannot be null or empty.</source>
<target state="translated">Scope 不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2040">
<source>The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'.</source>
<target state="translated">引數 ‘{0}’ 和 ‘{1}’ 只能在響應型別包含 ‘{2}’ 時使用.</target>
<note />
</trans-unit>
<trans-unit id="ID2041">
<source>The specified '{0}' is not allowed when using PKCE.</source>
<target state="translated">使用 PKCE 時不允許指定的 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2042">
<source>Scopes cannot contain spaces.</source>
<target state="translated">Scope 不能包含空格.</target>
<note />
</trans-unit>
<trans-unit id="ID2043">
<source>The specified '{0}' is not valid for this client application.</source>
<target state="translated">指定的 ‘{0}’ 對此連線應用程式無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2044">
<source>The scope name cannot be null or empty.</source>
<target state="translated">Scope 不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2045">
<source>The scope name cannot contain spaces.</source>
<target state="translated">Scope 不能包含空格.</target>
<note />
</trans-unit>
<trans-unit id="ID2046">
<source>This client application is not allowed to use the authorization endpoint.</source>
<target state="translated">不允許此連線應用程式使用授權端點.</target>
<note />
</trans-unit>
<trans-unit id="ID2047">
<source>The client application is not allowed to use the authorization code flow.</source>
<target state="translated">不允許此連線應用程式使用授權代碼流程.</target>
<note />
</trans-unit>
<trans-unit id="ID2048">
<source>The client application is not allowed to use the implicit flow.</source>
<target state="translated">不允許此連線應用程式使用隱式流程.</target>
<note />
</trans-unit>
<trans-unit id="ID2049">
<source>The client application is not allowed to use the hybrid flow.</source>
<target state="translated">不允許此連線應用程式使用混合流程.</target>
<note />
</trans-unit>
<trans-unit id="ID2051">
<source>This client application is not allowed to use the specified scope.</source>
<target state="translated">不允許此連線應用程式使用指定的 Scope.</target>
<note />
</trans-unit>
<trans-unit id="ID2052">
<source>The specified '{0}' is invalid.</source>
<target state="translated">指定的 ‘{0}’ 無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2053">
<source>The '{0}' parameter is not valid for this client application.</source>
<target state="translated">引數 ‘{0}’ 對此連線應用程式無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2054">
<source>The '{0}' parameter required for this client application is missing.</source>
<target state="translated">未提供此連線應用程式必要引數 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2055">
<source>The specified client credentials are invalid.</source>
<target state="translated">指定的連線應用程式機密無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2056">
<source>This client application is not allowed to use the device endpoint.</source>
<target state="translated">不允許此連線應用程式使用裝置端點.</target>
<note />
</trans-unit>
<trans-unit id="ID2057">
<source>The '{0}' and '{1}' parameters are required when using the client credentials grant.</source>
<target state="translated">使用連線應用程式機密授權時, 必須提供引數 ‘{0}’ 和 ‘{1}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2058">
<source>The '{0}' parameter is required when using the device code grant.</source>
<target state="translated">使用裝置代碼授權時, 必須提供引數 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2059">
<source>The mandatory '{0}' and/or '{1}' parameters are missing.</source>
<target state="translated">未提供必要引數 ‘{0}’ 和/或 ‘{1}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2060">
<source>A scope with the same name already exists.</source>
<target state="translated">已存在具有相同名稱的 Scope.</target>
<note />
</trans-unit>
<trans-unit id="ID2063">
<source>This client application is not allowed to use the token endpoint.</source>
<target state="translated">不允許此連線應用程式使用權杖端點.</target>
<note />
</trans-unit>
<trans-unit id="ID2064">
<source>This client application is not allowed to use the specified grant type.</source>
<target state="translated">不允許此連線應用程式使用指定的驗證類型.</target>
<note />
</trans-unit>
<trans-unit id="ID2065">
<source>The client application is not allowed to use the '{0}' scope.</source>
<target state="translated">不允許此連線應用程式使用 Scope ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2066">
<source>The specified authorization code cannot be used without sending a client identifier.</source>
<target state="translated">若不傳送連線應用程式 ID, 則不能使用指定的授權代碼.</target>
<note />
</trans-unit>
<trans-unit id="ID2067">
<source>The specified device code cannot be used without sending a client identifier.</source>
<target state="translated">若不傳送連線應用程式 ID, 則不能使用指定的裝置代碼.</target>
<note />
</trans-unit>
<trans-unit id="ID2068">
<source>The specified refresh token cannot be used without sending a client identifier.</source>
<target state="translated">若不傳送連線應用程式 ID, 則不能使用指定的重新整理權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2069">
<source>The specified authorization code cannot be used by this client application.</source>
<target state="translated">此連線應用程式不能使用指定的授權代碼.</target>
<note />
</trans-unit>
<trans-unit id="ID2070">
<source>The specified device code cannot be used by this client application.</source>
<target state="translated">此連線應用程式不能使用指定的裝置代碼.</target>
<note />
</trans-unit>
<trans-unit id="ID2071">
<source>The specified refresh token cannot be used by this client application.</source>
<target state="translated">此連線應用程式不能使用指定的重新整理權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2072">
<source>The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to.</source>
<target state="translated">指定的引數 ‘{0}’ 與最初發送的連線應用程式重新導向位址不匹配.</target>
<note />
</trans-unit>
<trans-unit id="ID2073">
<source>The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request.</source>
<target state="translated">若授權請求中未指定 ‘{1}’, 則不能使用指定的引數 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2074">
<source>The '{0}' parameter is not valid in this context.</source>
<target state="translated">引數 ‘{0}’ 在此語境中無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2075">
<source>This client application is not allowed to use the introspection endpoint.</source>
<target state="translated">不允許此連線應用程式使用自省端點.</target>
<note />
</trans-unit>
<trans-unit id="ID2076">
<source>The specified token cannot be introspected.</source>
<target state="translated">指定的權杖不能自省.</target>
<note />
</trans-unit>
<trans-unit id="ID2077">
<source>The client application is not allowed to introspect the specified token.</source>
<target state="translated">不允許此連線應用程式自省指定的權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2078">
<source>This client application is not allowed to use the revocation endpoint.</source>
<target state="translated">此連線應用程式不允許使用吊銷端點.</target>
<note />
</trans-unit>
<trans-unit id="ID2079">
<source>This token cannot be revoked.</source>
<target state="translated">無法吊銷此權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2080">
<source>The client application is not allowed to revoke the specified token.</source>
<target state="translated">不允許此連線應用程式吊銷指定的權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2081">
<source>The mandatory '{0}' header is missing.</source>
<target state="translated">缺少必要標頭 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2082">
<source>The specified '{0}' header is invalid.</source>
<target state="translated">指定的標頭 ’{0}’ 無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2083">
<source>This server only accepts HTTPS requests.</source>
<target state="translated">此伺服器僅接受 HTTPS 請求.</target>
<note />
</trans-unit>
<trans-unit id="ID2084">
<source>The specified HTTP method is not valid.</source>
<target state="translated">指定的 HTTP 方法無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2085">
<source>A token with the same reference identifier already exists.</source>
<target state="translated">已存在具有相同引用 ID 的權杖.</target>
<note />
</trans-unit>
<trans-unit id="ID2086">
<source>The token type cannot be null or empty.</source>
<target state="translated">權杖型別不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2087">
<source>Multiple client credentials cannot be specified.</source>
<target state="translated">無法指定多個連線應用程式機密.</target>
<note />
</trans-unit>
<trans-unit id="ID2088">
<source>The issuer associated to the specified token is not valid.</source>
<target state="translated">與指定權杖關聯的頒發者無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2089">
<source>The specified token is not of the expected type.</source>
<target state="translated">指定的權杖不是預期型別.</target>
<note />
</trans-unit>
<trans-unit id="ID2090">
<source>The signing key associated to the specified token was not found.</source>
<target state="translated">未找到與指定權杖關聯的簽名金鑰.</target>
<note />
</trans-unit>
<trans-unit id="ID2091">
<source>The signature associated to the specified token is not valid.</source>
<target state="translated">與指定權杖關聯的簽名無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2092">
<source>This resource server is currently unavailable.</source>
<target state="translated">此資源伺服器當前不可用.</target>
<note />
</trans-unit>
<trans-unit id="ID2093">
<source>The specified token doesn't contain any audience.</source>
<target state="translated">指定的權杖不包含任何目標受眾.</target>
<note />
</trans-unit>
<trans-unit id="ID2094">
<source>The specified token cannot be used with this resource server.</source>
<target state="translated">指定的權杖不能用於此資源伺服器.</target>
<note />
</trans-unit>
<trans-unit id="ID2095">
<source>The user represented by the token is not allowed to perform the requested action.</source>
<target state="translated">不允許此權杖代表的使用者執行請求的操作.</target>
<note />
</trans-unit>
<trans-unit id="ID2096">
<source>No issuer could be found in the server configuration.</source>
<target state="translated">在伺服器配置中找不到頒發者.</target>
<note />
</trans-unit>
<trans-unit id="ID2097">
<source>A server configuration containing an invalid issuer was returned.</source>
<target state="translated">返回了包含無效頒發者的伺服器配置.</target>
<note />
</trans-unit>
<trans-unit id="ID2098">
<source>The issuer returned in the server configuration doesn't match the value set in the validation options.</source>
<target state="needs-review-translation">伺服器配置中返回的頒發者無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2099">
<source>No JWKS endpoint could be found in the server configuration.</source>
<target state="translated">在伺服器配置中找不到 JWKS 端點.</target>
<note />
</trans-unit>
<trans-unit id="ID2100">
<source>A server configuration containing an invalid JWKS endpoint URL was returned.</source>
<target state="translated">返回了包含無效 JWKS 端點的伺服器配置.</target>
<note />
</trans-unit>
<trans-unit id="ID2101">
<source>A server configuration containing an invalid introspection endpoint URL was returned.</source>
<target state="translated">返回了包含無效自省端點的伺服器配置.</target>
<note />
</trans-unit>
<trans-unit id="ID2102">
<source>The JWKS document didn't contain a valid '{0}' node with at least one key.</source>
<target state="translated">JWKS 文件中沒有 ‘{0}’ 節點.</target>
<note />
</trans-unit>
<trans-unit id="ID2103">
<source>A JWKS response containing an unsupported key was returned.</source>
<target state="translated">返回了包含不受支援的金鑰的 JWKS 響應.</target>
<note />
</trans-unit>
<trans-unit id="ID2104">
<source>A JWKS response containing an invalid key was returned.</source>
<target state="translated">返回了包含無效金鑰的 JWKS 響應.</target>
<note />
</trans-unit>
<trans-unit id="ID2105">
<source>The mandatory '{0}' parameter couldn't be found in the introspection response.</source>
<target state="translated">自省響應中找不到必要引數 ‘{0}’.</target>
<note />
</trans-unit>
<trans-unit id="ID2106">
<source>The token was rejected by the remote authentication server.</source>
<target state="translated">權杖被遠端身份驗證伺服器拒絕.</target>
<note />
</trans-unit>
<trans-unit id="ID2107">
<source>The '{0}' claim is malformed or isn't of the expected type.</source>
<target state="translated">Claim ‘{0}’ 格式錯誤或不是預期型別.</target>
<note />
</trans-unit>
<trans-unit id="ID2108">
<source>An introspection response containing a malformed issuer was returned.</source>
<target state="translated">返回了包含錯誤格式頒發者的自省響應.</target>
<note />
</trans-unit>
<trans-unit id="ID2109">
<source>The issuer returned in the introspection response is not valid.</source>
<target state="translated">自省響應返回的頒發者無效.</target>
<note />
</trans-unit>
<trans-unit id="ID2110">
<source>The type of the introspected token doesn't match the expected type.</source>
<target state="translated">自省權杖的型別與預期型別不匹配.</target>
<note />
</trans-unit>
<trans-unit id="ID2111">
<source>An application with the same client identifier already exists.</source>
<target state="translated">已存在具有相同消費者金鑰的應用程式.</target>
<note />
</trans-unit>
<trans-unit id="ID2112">
<source>Only confidential or public applications are supported by the default application manager.</source>
<target state="needs-review-translation">預設應用程式管理器僅支援機密、混合或公共應用程式.</target>
<note />
</trans-unit>
<trans-unit id="ID2113">
<source>The client secret cannot be null or empty for a confidential application.</source>
<target state="translated">對於機密應用程式, 連線應用程式金鑰不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2114">
<source>A client secret cannot be associated with a public application.</source>
<target state="translated">連線應用程式金鑰不能與公共應用程式關聯.</target>
<note />
</trans-unit>
<trans-unit id="ID2115">
<source>Callback URLs cannot contain a fragment.</source>
<target state="translated">重新導向位址不能包含 fragment.</target>
<note />
</trans-unit>
<trans-unit id="ID2116">
<source>The authorization type cannot be null or empty.</source>
<target state="translated">授權型別不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2117">
<source>The specified authorization type is not supported by the default token manager.</source>
<target state="translated">預設權杖管理器不支援指定的授權型別.</target>
<note />
</trans-unit>
<trans-unit id="ID2118">
<source>The client type cannot be null or empty.</source>
<target state="translated">連線應用程式型別不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2119">
<source>Callback URLs cannot be null or empty.</source>
<target state="translated">重新導向位址不能為空.</target>
<note />
</trans-unit>
<trans-unit id="ID2120">
<source>Callback URLs must be valid absolute URLs.</source>
<target state="translated">重新導向位址必須是有效的絕對路徑網址.</target>
<note />
</trans-unit>
<trans-unit id="ID8000">
<source>Removes orphaned tokens and authorizations from the database.</source>
<target state="translated">從資料庫中刪除孤立的權杖和授權.</target>
<note />
</trans-unit>
<trans-unit id="ID8001">
<source>Starts the scheduled task at regular intervals.</source>
<target state="translated">定期啟動計劃的任務.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

26
src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs

@ -17,7 +17,6 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -50,13 +49,11 @@ namespace OpenIddict.Core
{ {
public OpenIddictApplicationManager( public OpenIddictApplicationManager(
IOpenIddictApplicationCache<TApplication> cache, IOpenIddictApplicationCache<TApplication> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictApplicationManager<TApplication>> logger, ILogger<OpenIddictApplicationManager<TApplication>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictApplicationStoreResolver resolver) IOpenIddictApplicationStoreResolver resolver)
{ {
Cache = cache; Cache = cache;
Localizer = localizer;
Logger = logger; Logger = logger;
Options = options; Options = options;
Store = resolver.Get<TApplication>(); Store = resolver.Get<TApplication>();
@ -67,11 +64,6 @@ namespace OpenIddict.Core
/// </summary> /// </summary>
protected IOpenIddictApplicationCache<TApplication> Cache { get; } protected IOpenIddictApplicationCache<TApplication> Cache { get; }
/// <summary>
/// Gets the string localizer associated with the current manager.
/// </summary>
protected IStringLocalizer Localizer { get; }
/// <summary> /// <summary>
/// Gets the logger associated with the current manager. /// Gets the logger associated with the current manager.
/// </summary> /// </summary>
@ -1138,7 +1130,7 @@ namespace OpenIddict.Core
var identifier = await Store.GetClientIdAsync(application, cancellationToken); var identifier = await Store.GetClientIdAsync(application, cancellationToken);
if (string.IsNullOrEmpty(identifier)) if (string.IsNullOrEmpty(identifier))
{ {
yield return new ValidationResult(Localizer[SR.ID2036]); yield return new ValidationResult(SR.GetResourceString(SR.ID2036));
} }
else else
@ -1152,14 +1144,14 @@ namespace OpenIddict.Core
await Store.GetIdAsync(other, cancellationToken), await Store.GetIdAsync(other, cancellationToken),
await Store.GetIdAsync(application, cancellationToken), StringComparison.Ordinal)) await Store.GetIdAsync(application, cancellationToken), StringComparison.Ordinal))
{ {
yield return new ValidationResult(Localizer[SR.ID2111]); yield return new ValidationResult(SR.GetResourceString(SR.ID2111));
} }
} }
var type = await Store.GetClientTypeAsync(application, cancellationToken); var type = await Store.GetClientTypeAsync(application, cancellationToken);
if (string.IsNullOrEmpty(type)) if (string.IsNullOrEmpty(type))
{ {
yield return new ValidationResult(Localizer[SR.ID2118]); yield return new ValidationResult(SR.GetResourceString(SR.ID2118));
} }
else else
@ -1168,20 +1160,20 @@ namespace OpenIddict.Core
if (!string.Equals(type, ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase) && if (!string.Equals(type, ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase) &&
!string.Equals(type, ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) !string.Equals(type, ClientTypes.Public, StringComparison.OrdinalIgnoreCase))
{ {
yield return new ValidationResult(Localizer[SR.ID2112]); yield return new ValidationResult(SR.GetResourceString(SR.ID2112));
} }
// Ensure a client secret was specified if the client is a confidential application. // Ensure a client secret was specified if the client is a confidential application.
var secret = await Store.GetClientSecretAsync(application, cancellationToken); var secret = await Store.GetClientSecretAsync(application, cancellationToken);
if (string.IsNullOrEmpty(secret) && string.Equals(type, ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) if (string.IsNullOrEmpty(secret) && string.Equals(type, ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase))
{ {
yield return new ValidationResult(Localizer[SR.ID2113]); yield return new ValidationResult(SR.GetResourceString(SR.ID2113));
} }
// Ensure no client secret was specified if the client is a public application. // Ensure no client secret was specified if the client is a public application.
else if (!string.IsNullOrEmpty(secret) && string.Equals(type, ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) else if (!string.IsNullOrEmpty(secret) && string.Equals(type, ClientTypes.Public, StringComparison.OrdinalIgnoreCase))
{ {
yield return new ValidationResult(Localizer[SR.ID2114]); yield return new ValidationResult(SR.GetResourceString(SR.ID2114));
} }
} }
@ -1194,7 +1186,7 @@ namespace OpenIddict.Core
// Ensure the address is not null or empty. // Ensure the address is not null or empty.
if (string.IsNullOrEmpty(address)) if (string.IsNullOrEmpty(address))
{ {
yield return new ValidationResult(Localizer[SR.ID2119]); yield return new ValidationResult(SR.GetResourceString(SR.ID2119));
break; break;
} }
@ -1202,7 +1194,7 @@ namespace OpenIddict.Core
// Ensure the address is a valid absolute URL. // Ensure the address is a valid absolute URL.
if (!Uri.TryCreate(address, UriKind.Absolute, out Uri? uri) || !uri.IsWellFormedOriginalString()) if (!Uri.TryCreate(address, UriKind.Absolute, out Uri? uri) || !uri.IsWellFormedOriginalString())
{ {
yield return new ValidationResult(Localizer[SR.ID2120]); yield return new ValidationResult(SR.GetResourceString(SR.ID2120));
break; break;
} }
@ -1210,7 +1202,7 @@ namespace OpenIddict.Core
// Ensure the address doesn't contain a fragment. // Ensure the address doesn't contain a fragment.
if (!string.IsNullOrEmpty(uri.Fragment)) if (!string.IsNullOrEmpty(uri.Fragment))
{ {
yield return new ValidationResult(Localizer[SR.ID2115]); yield return new ValidationResult(SR.GetResourceString(SR.ID2115));
break; break;
} }

18
src/OpenIddict.Core/Managers/OpenIddictAuthorizationManager.cs

@ -14,7 +14,6 @@ using System.Security.Claims;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -37,13 +36,11 @@ namespace OpenIddict.Core
{ {
public OpenIddictAuthorizationManager( public OpenIddictAuthorizationManager(
IOpenIddictAuthorizationCache<TAuthorization> cache, IOpenIddictAuthorizationCache<TAuthorization> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictAuthorizationManager<TAuthorization>> logger, ILogger<OpenIddictAuthorizationManager<TAuthorization>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictAuthorizationStoreResolver resolver) IOpenIddictAuthorizationStoreResolver resolver)
{ {
Cache = cache; Cache = cache;
Localizer = localizer;
Logger = logger; Logger = logger;
Options = options; Options = options;
Store = resolver.Get<TAuthorization>(); Store = resolver.Get<TAuthorization>();
@ -54,11 +51,6 @@ namespace OpenIddict.Core
/// </summary> /// </summary>
protected IOpenIddictAuthorizationCache<TAuthorization> Cache { get; } protected IOpenIddictAuthorizationCache<TAuthorization> Cache { get; }
/// <summary>
/// Gets the string localizer associated with the current manager.
/// </summary>
protected IStringLocalizer Localizer { get; }
/// <summary> /// <summary>
/// Gets the logger associated with the current manager. /// Gets the logger associated with the current manager.
/// </summary> /// </summary>
@ -1135,18 +1127,18 @@ namespace OpenIddict.Core
var type = await Store.GetTypeAsync(authorization, cancellationToken); var type = await Store.GetTypeAsync(authorization, cancellationToken);
if (string.IsNullOrEmpty(type)) if (string.IsNullOrEmpty(type))
{ {
yield return new ValidationResult(Localizer[SR.ID2116]); yield return new ValidationResult(SR.GetResourceString(SR.ID2116));
} }
else if (!string.Equals(type, AuthorizationTypes.AdHoc, StringComparison.OrdinalIgnoreCase) && else if (!string.Equals(type, AuthorizationTypes.AdHoc, StringComparison.OrdinalIgnoreCase) &&
!string.Equals(type, AuthorizationTypes.Permanent, StringComparison.OrdinalIgnoreCase)) !string.Equals(type, AuthorizationTypes.Permanent, StringComparison.OrdinalIgnoreCase))
{ {
yield return new ValidationResult(Localizer[SR.ID2117]); yield return new ValidationResult(SR.GetResourceString(SR.ID2117));
} }
if (string.IsNullOrEmpty(await Store.GetStatusAsync(authorization, cancellationToken))) if (string.IsNullOrEmpty(await Store.GetStatusAsync(authorization, cancellationToken)))
{ {
yield return new ValidationResult(Localizer[SR.ID2038]); yield return new ValidationResult(SR.GetResourceString(SR.ID2038));
} }
// Ensure that the scopes are not null or empty and do not contain spaces. // Ensure that the scopes are not null or empty and do not contain spaces.
@ -1154,14 +1146,14 @@ namespace OpenIddict.Core
{ {
if (string.IsNullOrEmpty(scope)) if (string.IsNullOrEmpty(scope))
{ {
yield return new ValidationResult(Localizer[SR.ID2039]); yield return new ValidationResult(SR.GetResourceString(SR.ID2039));
break; break;
} }
if (scope.Contains(Separators.Space[0])) if (scope.Contains(Separators.Space[0]))
{ {
yield return new ValidationResult(Localizer[SR.ID2042]); yield return new ValidationResult(SR.GetResourceString(SR.ID2042));
break; break;
} }

14
src/OpenIddict.Core/Managers/OpenIddictScopeManager.cs

@ -14,7 +14,6 @@ using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -36,13 +35,11 @@ namespace OpenIddict.Core
{ {
public OpenIddictScopeManager( public OpenIddictScopeManager(
IOpenIddictScopeCache<TScope> cache, IOpenIddictScopeCache<TScope> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictScopeManager<TScope>> logger, ILogger<OpenIddictScopeManager<TScope>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictScopeStoreResolver resolver) IOpenIddictScopeStoreResolver resolver)
{ {
Cache = cache; Cache = cache;
Localizer = localizer;
Logger = logger; Logger = logger;
Options = options; Options = options;
Store = resolver.Get<TScope>(); Store = resolver.Get<TScope>();
@ -53,11 +50,6 @@ namespace OpenIddict.Core
/// </summary> /// </summary>
protected IOpenIddictScopeCache<TScope> Cache { get; } protected IOpenIddictScopeCache<TScope> Cache { get; }
/// <summary>
/// Gets the string localizer associated with the current manager.
/// </summary>
protected IStringLocalizer Localizer { get; }
/// <summary> /// <summary>
/// Gets the logger associated with the current manager. /// Gets the logger associated with the current manager.
/// </summary> /// </summary>
@ -919,12 +911,12 @@ namespace OpenIddict.Core
var name = await Store.GetNameAsync(scope, cancellationToken); var name = await Store.GetNameAsync(scope, cancellationToken);
if (string.IsNullOrEmpty(name)) if (string.IsNullOrEmpty(name))
{ {
yield return new ValidationResult(Localizer[SR.ID2044]); yield return new ValidationResult(SR.GetResourceString(SR.ID2044));
} }
else if (name!.Contains(Separators.Space[0])) else if (name!.Contains(Separators.Space[0]))
{ {
yield return new ValidationResult(Localizer[SR.ID2045]); yield return new ValidationResult(SR.GetResourceString(SR.ID2045));
} }
else else
@ -938,7 +930,7 @@ namespace OpenIddict.Core
await Store.GetIdAsync(other, cancellationToken), await Store.GetIdAsync(other, cancellationToken),
await Store.GetIdAsync(scope, cancellationToken), StringComparison.Ordinal)) await Store.GetIdAsync(scope, cancellationToken), StringComparison.Ordinal))
{ {
yield return new ValidationResult(Localizer[SR.ID2060]); yield return new ValidationResult(SR.GetResourceString(SR.ID2060));
} }
} }
} }

14
src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs

@ -14,7 +14,6 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -37,13 +36,11 @@ namespace OpenIddict.Core
{ {
public OpenIddictTokenManager( public OpenIddictTokenManager(
IOpenIddictTokenCache<TToken> cache, IOpenIddictTokenCache<TToken> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictTokenManager<TToken>> logger, ILogger<OpenIddictTokenManager<TToken>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictTokenStoreResolver resolver) IOpenIddictTokenStoreResolver resolver)
{ {
Cache = cache; Cache = cache;
Localizer = localizer;
Logger = logger; Logger = logger;
Options = options; Options = options;
Store = resolver.Get<TToken>(); Store = resolver.Get<TToken>();
@ -54,11 +51,6 @@ namespace OpenIddict.Core
/// </summary> /// </summary>
protected IOpenIddictTokenCache<TToken> Cache { get; } protected IOpenIddictTokenCache<TToken> Cache { get; }
/// <summary>
/// Gets the string localizer associated with the current manager.
/// </summary>
protected IStringLocalizer Localizer { get; }
/// <summary> /// <summary>
/// Gets the logger associated with the current manager. /// Gets the logger associated with the current manager.
/// </summary> /// </summary>
@ -1256,19 +1248,19 @@ namespace OpenIddict.Core
await Store.GetIdAsync(other, cancellationToken), await Store.GetIdAsync(other, cancellationToken),
await Store.GetIdAsync(token, cancellationToken), StringComparison.Ordinal)) await Store.GetIdAsync(token, cancellationToken), StringComparison.Ordinal))
{ {
yield return new ValidationResult(Localizer[SR.ID2085]); yield return new ValidationResult(SR.GetResourceString(SR.ID2085));
} }
} }
var type = await Store.GetTypeAsync(token, cancellationToken); var type = await Store.GetTypeAsync(token, cancellationToken);
if (string.IsNullOrEmpty(type)) if (string.IsNullOrEmpty(type))
{ {
yield return new ValidationResult(Localizer[SR.ID2086]); yield return new ValidationResult(SR.GetResourceString(SR.ID2086));
} }
if (string.IsNullOrEmpty(await Store.GetStatusAsync(token, cancellationToken))) if (string.IsNullOrEmpty(await Store.GetStatusAsync(token, cancellationToken)))
{ {
yield return new ValidationResult(Localizer[SR.ID2038]); yield return new ValidationResult(SR.GetResourceString(SR.ID2038));
} }
} }

1
src/OpenIddict.Core/OpenIddict.Core.csproj

@ -15,7 +15,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Caching.Memory" /> <PackageReference Include="Microsoft.Extensions.Caching.Memory" />
<PackageReference Include="Microsoft.Extensions.Localization" />
<PackageReference Include="Microsoft.Extensions.Logging" /> <PackageReference Include="Microsoft.Extensions.Logging" />
<PackageReference Include="Microsoft.Extensions.Options" /> <PackageReference Include="Microsoft.Extensions.Options" />
</ItemGroup> </ItemGroup>

15
src/OpenIddict.Core/OpenIddictCoreExtensions.cs

@ -6,8 +6,6 @@
using System; using System;
using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging.Abstractions;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
using OpenIddict.Core; using OpenIddict.Core;
using SR = OpenIddict.Abstractions.OpenIddictResources; using SR = OpenIddict.Abstractions.OpenIddictResources;
@ -34,7 +32,6 @@ namespace Microsoft.Extensions.DependencyInjection
throw new ArgumentNullException(nameof(builder)); throw new ArgumentNullException(nameof(builder));
} }
builder.Services.AddLocalization();
builder.Services.AddLogging(); builder.Services.AddLogging();
builder.Services.AddMemoryCache(); builder.Services.AddMemoryCache();
builder.Services.AddOptions(); builder.Services.AddOptions();
@ -102,18 +99,6 @@ namespace Microsoft.Extensions.DependencyInjection
typeof(OpenIddictTokenManager<>).MakeGenericType(options.DefaultTokenType)); typeof(OpenIddictTokenManager<>).MakeGenericType(options.DefaultTokenType));
}); });
builder.Services.TryAddSingleton<IStringLocalizer<OpenIddictResources>>(provider =>
{
// Note: the string localizer factory is deliberately not resolved from
// the DI container to ensure the built-in .resx files are always used
// even if the factory was replaced by a different implementation in DI.
var factory = new ResourceManagerStringLocalizerFactory(
localizationOptions: Options.Create(new LocalizationOptions()),
loggerFactory: NullLoggerFactory.Instance);
return new StringLocalizer<OpenIddictResources>(factory);
});
return new OpenIddictCoreBuilder(builder.Services); return new OpenIddictCoreBuilder(builder.Services);
} }

4
src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs

@ -114,7 +114,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }
@ -131,7 +131,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }

4
src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs

@ -112,7 +112,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }
@ -129,7 +129,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }

26
src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.cs

@ -213,7 +213,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, HeaderNames.Host]); description: SR.FormatID2081(HeaderNames.Host));
return default; return default;
} }
@ -223,7 +223,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, HeaderNames.Host]); description: SR.FormatID2082(HeaderNames.Host));
return default; return default;
} }
@ -279,7 +279,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2083]); description: SR.GetResourceString(SR.ID2083));
return default; return default;
} }
@ -424,7 +424,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2084]); description: SR.GetResourceString(SR.ID2084));
return default; return default;
} }
@ -480,7 +480,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, HeaderNames.ContentType]); description: SR.FormatID2081(HeaderNames.ContentType));
return; return;
} }
@ -492,7 +492,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, HeaderNames.ContentType]); description: SR.FormatID2082(HeaderNames.ContentType));
return; return;
} }
@ -506,7 +506,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2084]); description: SR.GetResourceString(SR.ID2084));
return; return;
} }
@ -555,7 +555,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, HeaderNames.ContentType]); description: SR.FormatID2081(HeaderNames.ContentType));
return; return;
} }
@ -567,7 +567,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, HeaderNames.ContentType]); description: SR.FormatID2082(HeaderNames.ContentType));
return; return;
} }
@ -581,7 +581,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2084]); description: SR.GetResourceString(SR.ID2084));
return; return;
} }
@ -639,7 +639,7 @@ namespace OpenIddict.Server.AspNetCore
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2087]); description: SR.GetResourceString(SR.ID2087));
return default; return default;
} }
@ -654,7 +654,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return default; return default;
} }
@ -670,7 +670,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return default; return default;
} }

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

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

11
src/OpenIddict.Server.Owin/OpenIddictServerOwinConstants.cs

@ -17,6 +17,17 @@ namespace OpenIddict.Server.Owin
public const string LogoutRequest = "openiddict-logout-request:"; public const string LogoutRequest = "openiddict-logout-request:";
} }
public static class Headers
{
public const string Authorization = "Authorization";
public const string CacheControl = "Cache-Control";
public const string ContentType = "Content-Type";
public const string Expires = "Expires";
public const string Host = "Host";
public const string Pragma = "Pragma";
public const string WwwAuthenticate = "WWW-Authenticate";
}
public static class JsonWebTokenTypes public static class JsonWebTokenTypes
{ {
public static class Private public static class Private

4
src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Authentication.cs

@ -113,7 +113,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }
@ -130,7 +130,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }

4
src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Session.cs

@ -111,7 +111,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }
@ -128,7 +128,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.RequestId]); description: SR.FormatID2052(Parameters.RequestId));
return; return;
} }

49
src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.cs

@ -23,6 +23,7 @@ using Owin;
using static OpenIddict.Abstractions.OpenIddictConstants; using static OpenIddict.Abstractions.OpenIddictConstants;
using static OpenIddict.Server.OpenIddictServerEvents; using static OpenIddict.Server.OpenIddictServerEvents;
using static OpenIddict.Server.OpenIddictServerHandlers; using static OpenIddict.Server.OpenIddictServerHandlers;
using static OpenIddict.Server.Owin.OpenIddictServerOwinConstants;
using static OpenIddict.Server.Owin.OpenIddictServerOwinHandlerFilters; using static OpenIddict.Server.Owin.OpenIddictServerOwinHandlerFilters;
using Properties = OpenIddict.Server.Owin.OpenIddictServerOwinConstants.Properties; using Properties = OpenIddict.Server.Owin.OpenIddictServerOwinConstants.Properties;
using SR = OpenIddict.Abstractions.OpenIddictResources; using SR = OpenIddict.Abstractions.OpenIddictResources;
@ -201,7 +202,7 @@ namespace OpenIddict.Server.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, "Host"]); description: SR.FormatID2081(Headers.Host));
return default; return default;
} }
@ -211,7 +212,7 @@ namespace OpenIddict.Server.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, "Host"]); description: SR.FormatID2082(Headers.Host));
return default; return default;
} }
@ -267,7 +268,7 @@ namespace OpenIddict.Server.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2083]); description: SR.GetResourceString(SR.ID2083));
return default; return default;
} }
@ -361,7 +362,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2084]); description: SR.GetResourceString(SR.ID2084));
return default; return default;
} }
@ -413,11 +414,11 @@ namespace OpenIddict.Server.Owin
// See http://openid.net/specs/openid-connect-core-1_0.html#FormSerialization // See http://openid.net/specs/openid-connect-core-1_0.html#FormSerialization
if (string.IsNullOrEmpty(request.ContentType)) if (string.IsNullOrEmpty(request.ContentType))
{ {
context.Logger.LogError(SR.GetResourceString(SR.ID6138), "Content-Type"); context.Logger.LogError(SR.GetResourceString(SR.ID6138), Headers.ContentType);
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, "Content-Type"]); description: SR.FormatID2081(Headers.ContentType));
return; return;
} }
@ -425,11 +426,11 @@ namespace OpenIddict.Server.Owin
// May have media/type; charset=utf-8, allow partial match. // May have media/type; charset=utf-8, allow partial match.
if (!request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase)) if (!request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase))
{ {
context.Logger.LogError(SR.GetResourceString(SR.ID6139), "Content-Type", request.ContentType); context.Logger.LogError(SR.GetResourceString(SR.ID6139), Headers.ContentType, request.ContentType);
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, "Content-Type"]); description: SR.FormatID2082(Headers.ContentType));
return; return;
} }
@ -443,7 +444,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2084]); description: SR.GetResourceString(SR.ID2084));
return; return;
} }
@ -488,11 +489,11 @@ namespace OpenIddict.Server.Owin
// See http://openid.net/specs/openid-connect-core-1_0.html#FormSerialization // See http://openid.net/specs/openid-connect-core-1_0.html#FormSerialization
if (string.IsNullOrEmpty(request.ContentType)) if (string.IsNullOrEmpty(request.ContentType))
{ {
context.Logger.LogError(SR.GetResourceString(SR.ID6138), "Content-Type"); context.Logger.LogError(SR.GetResourceString(SR.ID6138), Headers.ContentType);
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, "Content-Type"]); description: SR.FormatID2081(Headers.ContentType));
return; return;
} }
@ -500,11 +501,11 @@ namespace OpenIddict.Server.Owin
// May have media/type; charset=utf-8, allow partial match. // May have media/type; charset=utf-8, allow partial match.
if (!request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase)) if (!request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase))
{ {
context.Logger.LogError(SR.GetResourceString(SR.ID6139), "Content-Type", request.ContentType); context.Logger.LogError(SR.GetResourceString(SR.ID6139), Headers.ContentType, request.ContentType);
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, "Content-Type"]); description: SR.FormatID2082(Headers.ContentType));
return; return;
} }
@ -518,7 +519,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2084]); description: SR.GetResourceString(SR.ID2084));
return; return;
} }
@ -561,7 +562,7 @@ namespace OpenIddict.Server.Owin
throw new InvalidOperationException(SR.GetResourceString(SR.ID0120)); throw new InvalidOperationException(SR.GetResourceString(SR.ID0120));
} }
var header = request.Headers["Authorization"]; var header = request.Headers[Headers.Authorization];
if (string.IsNullOrEmpty(header) || !header.StartsWith("Basic ", StringComparison.OrdinalIgnoreCase)) if (string.IsNullOrEmpty(header) || !header.StartsWith("Basic ", StringComparison.OrdinalIgnoreCase))
{ {
return default; return default;
@ -576,7 +577,7 @@ namespace OpenIddict.Server.Owin
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2087]); description: SR.GetResourceString(SR.ID2087));
return default; return default;
} }
@ -591,7 +592,7 @@ namespace OpenIddict.Server.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return default; return default;
} }
@ -607,7 +608,7 @@ namespace OpenIddict.Server.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return default; return default;
} }
@ -660,7 +661,7 @@ namespace OpenIddict.Server.Owin
throw new InvalidOperationException(SR.GetResourceString(SR.ID0120)); throw new InvalidOperationException(SR.GetResourceString(SR.ID0120));
} }
var header = request.Headers["Authorization"]; var header = request.Headers[Headers.Authorization];
if (string.IsNullOrEmpty(header) || !header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) if (string.IsNullOrEmpty(header) || !header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase))
{ {
return default; return default;
@ -798,9 +799,9 @@ namespace OpenIddict.Server.Owin
} }
// Prevent the response from being cached. // Prevent the response from being cached.
response.Headers["Cache-Control"] = "no-store"; response.Headers[Headers.CacheControl] = "no-store";
response.Headers["Pragma"] = "no-cache"; response.Headers[Headers.Pragma] = "no-cache";
response.Headers["Expires"] = "Thu, 01 Jan 1970 00:00:00 GMT"; response.Headers[Headers.Expires] = "Thu, 01 Jan 1970 00:00:00 GMT";
return default; return default;
} }
@ -919,7 +920,7 @@ namespace OpenIddict.Server.Owin
builder.Remove(builder.Length - 1, 1); builder.Remove(builder.Length - 1, 1);
} }
response.Headers.Append("WWW-Authenticate", builder.ToString()); response.Headers.Append(Headers.WwwAuthenticate, builder.ToString());
return default; return default;
} }
@ -959,7 +960,7 @@ namespace OpenIddict.Server.Owin
} }
// If the response doesn't contain a WWW-Authenticate header, don't return an empty response. // If the response doesn't contain a WWW-Authenticate header, don't return an empty response.
if (!response.Headers.ContainsKey("WWW-Authenticate")) if (!response.Headers.ContainsKey(Headers.WwwAuthenticate))
{ {
return default; return default;
} }

1
src/OpenIddict.Server/OpenIddict.Server.csproj

@ -17,7 +17,6 @@ To use the server feature on ASP.NET Core or OWIN/Katana, reference the OpenIddi
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Localization" />
<PackageReference Include="Microsoft.Extensions.Logging" /> <PackageReference Include="Microsoft.Extensions.Logging" />
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" /> <PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" />
</ItemGroup> </ItemGroup>

39
src/OpenIddict.Server/OpenIddictServerEvents.cs

@ -7,7 +7,6 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Security.Claims; using System.Security.Claims;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -50,11 +49,6 @@ namespace OpenIddict.Server
set => Transaction.EndpointType = value; set => Transaction.EndpointType = value;
} }
/// <summary>
/// Gets the localizer used to localize the messages generated by OpenIddict.
/// </summary>
public IStringLocalizer Localizer => Transaction.Localizer;
/// <summary> /// <summary>
/// Gets the logger responsible of logging processed operations. /// Gets the logger responsible of logging processed operations.
/// </summary> /// </summary>
@ -168,48 +162,19 @@ namespace OpenIddict.Server
/// </summary> /// </summary>
public string? ErrorUri { get; private set; } public string? ErrorUri { get; private set; }
/// <summary>
/// Rejects the request.
/// </summary>
public virtual void Reject() => IsRejected = true;
/// <summary>
/// Rejects the request.
/// </summary>
/// <param name="error">The "error" parameter returned to the client application.</param>
public virtual void Reject(string? error)
{
Error = error;
Reject();
}
/// <summary>
/// Rejects the request.
/// </summary>
/// <param name="error">The "error" parameter returned to the client application.</param>
/// <param name="description">The "error_description" parameter returned to the client application.</param>
public virtual void Reject(string? error, string? description)
{
Error = error;
ErrorDescription = description;
Reject();
}
/// <summary> /// <summary>
/// Rejects the request. /// Rejects the request.
/// </summary> /// </summary>
/// <param name="error">The "error" parameter returned to the client application.</param> /// <param name="error">The "error" parameter returned to the client application.</param>
/// <param name="description">The "error_description" parameter returned to the client application.</param> /// <param name="description">The "error_description" parameter returned to the client application.</param>
/// <param name="uri">The "error_uri" parameter returned to the client application.</param> /// <param name="uri">The "error_uri" parameter returned to the client application.</param>
public virtual void Reject(string? error, string? description, string? uri) public virtual void Reject(string? error = null, string? description = null, string? uri = null)
{ {
Error = error; Error = error;
ErrorDescription = description; ErrorDescription = description;
ErrorUri = uri; ErrorUri = uri;
Reject(); IsRejected = true;
} }
} }

16
src/OpenIddict.Server/OpenIddictServerExtensions.cs

@ -7,9 +7,6 @@
using System; using System;
using System.Linq; using System.Linq;
using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging.Abstractions;
using OpenIddict.Abstractions;
using OpenIddict.Server; using OpenIddict.Server;
using static OpenIddict.Server.OpenIddictServerHandlerFilters; using static OpenIddict.Server.OpenIddictServerHandlerFilters;
using static OpenIddict.Server.OpenIddictServerHandlers; using static OpenIddict.Server.OpenIddictServerHandlers;
@ -36,7 +33,6 @@ namespace Microsoft.Extensions.DependencyInjection
throw new ArgumentNullException(nameof(builder)); throw new ArgumentNullException(nameof(builder));
} }
builder.Services.AddLocalization();
builder.Services.AddLogging(); builder.Services.AddLogging();
builder.Services.AddOptions(); builder.Services.AddOptions();
@ -78,18 +74,6 @@ namespace Microsoft.Extensions.DependencyInjection
builder.Services.TryAddSingleton<RequireUserinfoRequest>(); builder.Services.TryAddSingleton<RequireUserinfoRequest>();
builder.Services.TryAddSingleton<RequireVerificationRequest>(); builder.Services.TryAddSingleton<RequireVerificationRequest>();
builder.Services.TryAddSingleton<IStringLocalizer<OpenIddictResources>>(provider =>
{
// Note: the string localizer factory is deliberately not resolved from
// the DI container to ensure the built-in .resx files are always used
// even if the factory was replaced by a different implementation in DI.
var factory = new ResourceManagerStringLocalizerFactory(
localizationOptions: Options.Create(new LocalizationOptions()),
loggerFactory: NullLoggerFactory.Instance);
return new StringLocalizer<OpenIddictResources>(factory);
});
// Note: TryAddEnumerable() is used here to ensure the initializer is registered only once. // Note: TryAddEnumerable() is used here to ensure the initializer is registered only once.
builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton< builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<
IPostConfigureOptions<OpenIddictServerOptions>, OpenIddictServerConfiguration>()); IPostConfigureOptions<OpenIddictServerOptions>, OpenIddictServerConfiguration>());

6
src/OpenIddict.Server/OpenIddictServerFactory.cs

@ -5,16 +5,13 @@
*/ */
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OpenIddict.Abstractions;
namespace OpenIddict.Server namespace OpenIddict.Server
{ {
public class OpenIddictServerFactory : IOpenIddictServerFactory public class OpenIddictServerFactory : IOpenIddictServerFactory
{ {
private readonly IStringLocalizer _localizer;
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IOptionsMonitor<OpenIddictServerOptions> _options; private readonly IOptionsMonitor<OpenIddictServerOptions> _options;
@ -22,11 +19,9 @@ namespace OpenIddict.Server
/// Creates a new instance of the <see cref="OpenIddictServerDispatcher"/> class. /// Creates a new instance of the <see cref="OpenIddictServerDispatcher"/> class.
/// </summary> /// </summary>
public OpenIddictServerFactory( public OpenIddictServerFactory(
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictServerDispatcher> logger, ILogger<OpenIddictServerDispatcher> logger,
IOptionsMonitor<OpenIddictServerOptions> options) IOptionsMonitor<OpenIddictServerOptions> options)
{ {
_localizer = localizer;
_logger = logger; _logger = logger;
_options = options; _options = options;
} }
@ -35,7 +30,6 @@ namespace OpenIddict.Server
=> new ValueTask<OpenIddictServerTransaction>(new OpenIddictServerTransaction => new ValueTask<OpenIddictServerTransaction>(new OpenIddictServerTransaction
{ {
Issuer = _options.CurrentValue.Issuer, Issuer = _options.CurrentValue.Issuer,
Localizer = _localizer,
Logger = _logger, Logger = _logger,
Options = _options.CurrentValue Options = _options.CurrentValue
}); });

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

@ -362,7 +362,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.RequestNotSupported, error: Errors.RequestNotSupported,
description: context.Localizer[SR.ID2028, Parameters.Request]); description: SR.FormatID2028(Parameters.Request));
return default; return default;
} }
@ -401,7 +401,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.RequestUriNotSupported, error: Errors.RequestUriNotSupported,
description: context.Localizer[SR.ID2028, Parameters.RequestUri]); description: SR.FormatID2028(Parameters.RequestUri));
return default; return default;
} }
@ -441,7 +441,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.ClientId]); description: SR.FormatID2029(Parameters.ClientId));
return default; return default;
} }
@ -486,7 +486,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.RedirectUri]); description: SR.FormatID2029(Parameters.RedirectUri));
return default; return default;
} }
@ -508,7 +508,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2030, Parameters.RedirectUri]); description: SR.FormatID2030(Parameters.RedirectUri));
return default; return default;
} }
@ -522,7 +522,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2031, Parameters.RedirectUri]); description: SR.FormatID2031(Parameters.RedirectUri));
return default; return default;
} }
@ -561,7 +561,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.ResponseType]); description: SR.FormatID2029(Parameters.ResponseType));
return default; return default;
} }
@ -573,7 +573,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedResponseType, error: Errors.UnsupportedResponseType,
description: context.Localizer[SR.ID2032, Parameters.ResponseType]); description: SR.FormatID2032(Parameters.ResponseType));
return default; return default;
} }
@ -585,7 +585,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedResponseType, error: Errors.UnsupportedResponseType,
description: context.Localizer[SR.ID2032, Parameters.ResponseType]); description: SR.FormatID2032(Parameters.ResponseType));
return default; return default;
} }
@ -598,7 +598,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedResponseType, error: Errors.UnsupportedResponseType,
description: context.Localizer[SR.ID2032, Parameters.ResponseType]); description: SR.FormatID2032(Parameters.ResponseType));
return default; return default;
} }
@ -612,7 +612,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedResponseType, error: Errors.UnsupportedResponseType,
description: context.Localizer[SR.ID2032, Parameters.ResponseType]); description: SR.FormatID2032(Parameters.ResponseType));
return default; return default;
} }
@ -654,7 +654,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2033, Parameters.ResponseType, Parameters.ResponseMode]); description: SR.FormatID2033(Parameters.ResponseType, Parameters.ResponseMode));
return default; return default;
} }
@ -667,7 +667,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2032, Parameters.ResponseMode]); description: SR.FormatID2032(Parameters.ResponseMode));
return default; return default;
} }
@ -731,7 +731,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2034, Scopes.OpenId]); description: SR.FormatID2034(Scopes.OpenId));
return default; return default;
} }
@ -741,7 +741,7 @@ namespace OpenIddict.Server
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2035, Scopes.OfflineAccess]); description: SR.FormatID2035(Scopes.OfflineAccess));
return default; return default;
} }
@ -789,7 +789,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.Nonce]); description: SR.FormatID2029(Parameters.Nonce));
return default; return default;
} }
@ -830,7 +830,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.Prompt]); description: SR.FormatID2052(Parameters.Prompt));
return default; return default;
} }
@ -872,7 +872,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.CodeChallenge]); description: SR.FormatID2029(Parameters.CodeChallenge));
return default; return default;
} }
@ -892,7 +892,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2037, Parameters.CodeChallengeMethod, Parameters.CodeChallenge]); description: SR.FormatID2037(Parameters.CodeChallengeMethod, Parameters.CodeChallenge));
return default; return default;
} }
@ -906,7 +906,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.CodeChallengeMethod]); description: SR.FormatID2029(Parameters.CodeChallengeMethod));
return default; return default;
} }
@ -919,7 +919,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2032, Parameters.CodeChallengeMethod]); description: SR.FormatID2032(Parameters.CodeChallengeMethod));
return default; return default;
} }
@ -931,8 +931,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2040, Parameters.CodeChallenge, description: SR.FormatID2040(Parameters.CodeChallenge, Parameters.CodeChallengeMethod, ResponseTypes.Code));
Parameters.CodeChallengeMethod, ResponseTypes.Code]);
return default; return default;
} }
@ -944,7 +943,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2041, Parameters.ResponseType]); description: SR.FormatID2041(Parameters.ResponseType));
return default; return default;
} }
@ -994,7 +993,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.ClientId]); description: SR.FormatID2052(Parameters.ClientId));
return; return;
} }
@ -1060,7 +1059,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2043, Parameters.ResponseType]); description: SR.FormatID2043(Parameters.ResponseType));
return; return;
} }
@ -1118,7 +1117,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.RedirectUri]); description: SR.FormatID2029(Parameters.RedirectUri));
return; return;
} }
@ -1135,7 +1134,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2043, Parameters.RedirectUri]); description: SR.FormatID2043(Parameters.RedirectUri));
return; return;
} }
@ -1213,7 +1212,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidScope, error: Errors.InvalidScope,
description: context.Localizer[SR.ID2052, Parameters.Scope]); description: SR.FormatID2052(Parameters.Scope));
return; return;
} }
@ -1268,7 +1267,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2046]); description: SR.GetResourceString(SR.ID2046));
return; return;
} }
@ -1324,7 +1323,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2047]); description: SR.GetResourceString(SR.ID2047));
return; return;
} }
@ -1337,7 +1336,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2048]); description: SR.GetResourceString(SR.ID2048));
return; return;
} }
@ -1351,7 +1350,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2049]); description: SR.GetResourceString(SR.ID2049));
return; return;
} }
@ -1365,7 +1364,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2065, Scopes.OfflineAccess]); description: SR.FormatID2065(Scopes.OfflineAccess));
return; return;
} }
@ -1420,7 +1419,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2043, Parameters.ResponseType]); description: SR.FormatID2043(Parameters.ResponseType));
return; return;
} }
@ -1511,7 +1510,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2051]); description: SR.GetResourceString(SR.ID2051));
return; return;
} }
@ -1573,7 +1572,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2054, Parameters.CodeChallenge]); description: SR.FormatID2054(Parameters.CodeChallenge));
return; return;
} }

16
src/OpenIddict.Server/OpenIddictServerHandlers.Device.cs

@ -355,7 +355,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2029, Parameters.ClientId]); description: SR.FormatID2029(Parameters.ClientId));
return default; return default;
} }
@ -435,7 +435,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidScope, error: Errors.InvalidScope,
description: context.Localizer[SR.ID2052, Parameters.Scope]); description: SR.FormatID2052(Parameters.Scope));
return; return;
} }
@ -486,7 +486,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2052]); description: SR.GetResourceString(SR.ID2052));
return; return;
} }
@ -544,7 +544,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); description: SR.FormatID2053(Parameters.ClientSecret));
return; return;
} }
@ -559,7 +559,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); description: SR.FormatID2054(Parameters.ClientSecret));
return; return;
} }
@ -621,7 +621,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return; return;
} }
@ -678,7 +678,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2056]); description: SR.GetResourceString(SR.ID2056));
return; return;
} }
@ -744,7 +744,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2051]); description: SR.GetResourceString(SR.ID2051));
return; return;
} }

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

@ -363,7 +363,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.GrantType]); description: SR.FormatID2029(Parameters.GrantType));
return default; return default;
} }
@ -375,7 +375,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedGrantType, error: Errors.UnsupportedGrantType,
description: context.Localizer[SR.ID2032, Parameters.GrantType]); description: SR.FormatID2032(Parameters.GrantType));
return default; return default;
} }
@ -386,7 +386,7 @@ namespace OpenIddict.Server
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2035, Scopes.OfflineAccess]); description: SR.FormatID2035(Scopes.OfflineAccess));
return default; return default;
} }
@ -434,7 +434,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2029, Parameters.ClientId]); description: SR.FormatID2029(Parameters.ClientId));
return default; return default;
} }
@ -475,7 +475,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.Code]); description: SR.FormatID2029(Parameters.Code));
return default; return default;
} }
@ -515,7 +515,7 @@ namespace OpenIddict.Server
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2057, Parameters.ClientId, Parameters.ClientSecret]); description: SR.FormatID2057(Parameters.ClientId, Parameters.ClientSecret));
return default; return default;
} }
@ -554,7 +554,7 @@ namespace OpenIddict.Server
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2058, Parameters.DeviceCode]); description: SR.FormatID2058(Parameters.DeviceCode));
return default; return default;
} }
@ -595,7 +595,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.RefreshToken]); description: SR.FormatID2029(Parameters.RefreshToken));
return default; return default;
} }
@ -637,7 +637,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2059, Parameters.Username, Parameters.Password]); description: SR.FormatID2059(Parameters.Username, Parameters.Password));
return default; return default;
} }
@ -684,7 +684,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.CodeVerifier]); description: SR.FormatID2029(Parameters.CodeVerifier));
return default; return default;
} }
@ -764,7 +764,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidScope, error: Errors.InvalidScope,
description: context.Localizer[SR.ID2052, Parameters.Scope]); description: SR.FormatID2052(Parameters.Scope));
return; return;
} }
@ -815,7 +815,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2052, Parameters.ClientId]); description: SR.FormatID2052(Parameters.ClientId));
return; return;
} }
@ -873,7 +873,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2043, Parameters.GrantType]); description: SR.FormatID2043(Parameters.GrantType));
return; return;
} }
@ -885,7 +885,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); description: SR.FormatID2053(Parameters.ClientSecret));
return; return;
} }
@ -900,7 +900,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); description: SR.FormatID2054(Parameters.ClientSecret));
return; return;
} }
@ -962,7 +962,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return; return;
} }
@ -1019,7 +1019,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2063]); description: SR.GetResourceString(SR.ID2063));
return; return;
} }
@ -1076,7 +1076,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2064]); description: SR.GetResourceString(SR.ID2064));
return; return;
} }
@ -1090,7 +1090,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2065, Scopes.OfflineAccess]); description: SR.FormatID2065(Scopes.OfflineAccess));
return; return;
} }
@ -1156,7 +1156,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2051]); description: SR.GetResourceString(SR.ID2051));
return; return;
} }
@ -1224,7 +1224,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2054, Parameters.CodeVerifier]); description: SR.FormatID2054(Parameters.CodeVerifier));
return; return;
} }
@ -1359,9 +1359,9 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidGrant, error: Errors.InvalidGrant,
description: context.Request.IsAuthorizationCodeGrantType() ? context.Localizer[SR.ID2066] : description: context.Request.IsAuthorizationCodeGrantType() ? SR.GetResourceString(SR.ID2066) :
context.Request.IsDeviceCodeGrantType() ? context.Localizer[SR.ID2067] : context.Request.IsDeviceCodeGrantType() ? SR.GetResourceString(SR.ID2067) :
context.Localizer[SR.ID2068]); SR.GetResourceString(SR.ID2068));
return default; return default;
} }
@ -1376,9 +1376,9 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidGrant, error: Errors.InvalidGrant,
description: context.Request.IsAuthorizationCodeGrantType() ? context.Localizer[SR.ID2069] : description: context.Request.IsAuthorizationCodeGrantType() ? SR.GetResourceString(SR.ID2069) :
context.Request.IsDeviceCodeGrantType() ? context.Localizer[SR.ID2070] : context.Request.IsDeviceCodeGrantType() ? SR.GetResourceString(SR.ID2070) :
context.Localizer[SR.ID2071]); SR.GetResourceString(SR.ID2071));
return default; return default;
} }
@ -1436,7 +1436,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.RedirectUri]); description: SR.FormatID2029(Parameters.RedirectUri));
return default; return default;
} }
@ -1447,7 +1447,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidGrant, error: Errors.InvalidGrant,
description: context.Localizer[SR.ID2072, Parameters.RedirectUri]); description: SR.FormatID2072(Parameters.RedirectUri));
return default; return default;
} }
@ -1503,7 +1503,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2073, Parameters.CodeVerifier, Parameters.CodeChallenge]); description: SR.FormatID2073(Parameters.CodeVerifier, Parameters.CodeChallenge));
return default; return default;
} }
@ -1518,7 +1518,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.CodeVerifier]); description: SR.FormatID2029(Parameters.CodeVerifier));
return default; return default;
} }
@ -1562,7 +1562,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidGrant, error: Errors.InvalidGrant,
description: context.Localizer[SR.ID2052, Parameters.CodeVerifier]); description: SR.FormatID2052(Parameters.CodeVerifier));
return default; return default;
} }
@ -1617,7 +1617,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidGrant, error: Errors.InvalidGrant,
description: context.Localizer[SR.ID2074, Parameters.Scope]); description: SR.FormatID2074(Parameters.Scope));
return default; return default;
} }
@ -1632,7 +1632,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidGrant, error: Errors.InvalidGrant,
description: context.Localizer[SR.ID2052, Parameters.Scope]); description: SR.FormatID2052(Parameters.Scope));
return default; return default;
} }

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

@ -371,7 +371,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.Token]); description: SR.FormatID2029(Parameters.Token));
return default; return default;
} }
@ -410,7 +410,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2029, Parameters.ClientId]); description: SR.FormatID2029(Parameters.ClientId));
return default; return default;
} }
@ -463,7 +463,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2052, Parameters.ClientId]); description: SR.FormatID2052(Parameters.ClientId));
return; return;
} }
@ -521,7 +521,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); description: SR.FormatID2053(Parameters.ClientSecret));
return; return;
} }
@ -536,7 +536,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); description: SR.FormatID2054(Parameters.ClientSecret));
return; return;
} }
@ -598,7 +598,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return; return;
} }
@ -655,7 +655,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2075]); description: SR.GetResourceString(SR.ID2075));
return; return;
} }
@ -751,7 +751,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedTokenType, error: Errors.UnsupportedTokenType,
description: context.Localizer[SR.ID2076]); description: SR.GetResourceString(SR.ID2076));
return default; return default;
} }
@ -803,7 +803,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2077]); description: SR.GetResourceString(SR.ID2077));
return default; return default;
} }
@ -819,7 +819,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2077]); description: SR.GetResourceString(SR.ID2077));
return default; return default;
} }

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

@ -313,7 +313,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2029, Parameters.Token]); description: SR.FormatID2029(Parameters.Token));
return default; return default;
} }
@ -352,7 +352,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2029, Parameters.ClientId]); description: SR.FormatID2029(Parameters.ClientId));
return default; return default;
} }
@ -405,7 +405,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2052, Parameters.ClientId]); description: SR.FormatID2052(Parameters.ClientId));
return; return;
} }
@ -463,7 +463,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); description: SR.FormatID2053(Parameters.ClientSecret));
return; return;
} }
@ -478,7 +478,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); description: SR.FormatID2054(Parameters.ClientSecret));
return; return;
} }
@ -540,7 +540,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidClient, error: Errors.InvalidClient,
description: context.Localizer[SR.ID2055]); description: SR.GetResourceString(SR.ID2055));
return; return;
} }
@ -597,7 +597,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnauthorizedClient, error: Errors.UnauthorizedClient,
description: context.Localizer[SR.ID2078]); description: SR.GetResourceString(SR.ID2078));
return; return;
} }
@ -693,7 +693,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedTokenType, error: Errors.UnsupportedTokenType,
description: context.Localizer[SR.ID2079]); description: SR.GetResourceString(SR.ID2079));
return default; return default;
} }
@ -745,7 +745,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2080]); description: SR.GetResourceString(SR.ID2080));
return default; return default;
} }
@ -761,7 +761,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2080]); description: SR.GetResourceString(SR.ID2080));
return default; return default;
} }
@ -846,7 +846,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.UnsupportedTokenType, error: Errors.UnsupportedTokenType,
description: context.Localizer[SR.ID2079]); description: SR.GetResourceString(SR.ID2079));
return; return;
} }
@ -858,7 +858,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2004]); description: SR.GetResourceString(SR.ID2004));
return; return;
} }
@ -868,7 +868,7 @@ namespace OpenIddict.Server
{ {
context.Reject( context.Reject(
error: Errors.UnsupportedTokenType, error: Errors.UnsupportedTokenType,
description: context.Localizer[SR.ID2079]); description: SR.GetResourceString(SR.ID2079));
return; return;
} }

6
src/OpenIddict.Server/OpenIddictServerHandlers.Session.cs

@ -338,7 +338,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2030, Parameters.PostLogoutRedirectUri]); description: SR.FormatID2030(Parameters.PostLogoutRedirectUri));
return default; return default;
} }
@ -349,7 +349,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2031, Parameters.PostLogoutRedirectUri]); description: SR.FormatID2031(Parameters.PostLogoutRedirectUri));
return default; return default;
} }
@ -399,7 +399,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2052, Parameters.PostLogoutRedirectUri]); description: SR.FormatID2052(Parameters.PostLogoutRedirectUri));
return; return;
} }

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

@ -338,7 +338,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.MissingToken, error: Errors.MissingToken,
description: context.Localizer[SR.ID2029, Parameters.AccessToken]); description: SR.FormatID2029(Parameters.AccessToken));
return default; return default;
} }

80
src/OpenIddict.Server/OpenIddictServerHandlers.cs

@ -213,7 +213,7 @@ namespace OpenIddict.Server
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2000]); description: SR.GetResourceString(SR.ID2000));
return default; return default;
} }
@ -338,13 +338,13 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2001], => SR.GetResourceString(SR.ID2001),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2002], => SR.GetResourceString(SR.ID2002),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2003], => SR.GetResourceString(SR.ID2003),
_ => context.Localizer[SR.ID2004] _ => SR.GetResourceString(SR.ID2004)
}); });
return; return;
@ -452,17 +452,17 @@ namespace OpenIddict.Server
description: (result.Exception, context.EndpointType) switch description: (result.Exception, context.EndpointType) switch
{ {
(SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token) (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token)
when context.Request.IsAuthorizationCodeGrantType() => context.Localizer[SR.ID2005], when context.Request.IsAuthorizationCodeGrantType() => SR.GetResourceString(SR.ID2005),
(SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token) (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token)
when context.Request.IsDeviceCodeGrantType() => context.Localizer[SR.ID2006], when context.Request.IsDeviceCodeGrantType() => SR.GetResourceString(SR.ID2006),
(SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token) (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token)
when context.Request.IsRefreshTokenGrantType() => context.Localizer[SR.ID2007], when context.Request.IsRefreshTokenGrantType() => SR.GetResourceString(SR.ID2007),
(SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Userinfo) => context.Localizer[SR.ID2008], (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Userinfo) => SR.GetResourceString(SR.ID2008),
_ => context.Localizer[SR.ID2004] _ => SR.GetResourceString(SR.ID2004)
}); });
return default; return default;
@ -752,16 +752,16 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Authorization or OpenIddictServerEndpointType.Logout OpenIddictServerEndpointType.Authorization or OpenIddictServerEndpointType.Logout
=> context.Localizer[SR.ID2009], => SR.GetResourceString(SR.ID2009),
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2001], => SR.GetResourceString(SR.ID2001),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2002], => SR.GetResourceString(SR.ID2002),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2003], => SR.GetResourceString(SR.ID2003),
_ => context.Localizer[SR.ID2004] _ => SR.GetResourceString(SR.ID2004)
}); });
@ -847,13 +847,13 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2001], => SR.GetResourceString(SR.ID2001),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2002], => SR.GetResourceString(SR.ID2002),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2003], => SR.GetResourceString(SR.ID2003),
_ => context.Localizer[SR.ID2004] _ => SR.GetResourceString(SR.ID2004)
}); });
return; return;
@ -884,13 +884,13 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2010], => SR.GetResourceString(SR.ID2010),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2011], => SR.GetResourceString(SR.ID2011),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2012], => SR.GetResourceString(SR.ID2012),
_ => context.Localizer[SR.ID2013] _ => SR.GetResourceString(SR.ID2013)
}); });
// Revoke all the token entries associated with the authorization. // Revoke all the token entries associated with the authorization.
@ -911,7 +911,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.AuthorizationPending, error: Errors.AuthorizationPending,
description: context.Localizer[SR.ID2014]); description: SR.GetResourceString(SR.ID2014));
return; return;
} }
@ -923,7 +923,7 @@ namespace OpenIddict.Server
context.Reject( context.Reject(
error: Errors.AccessDenied, error: Errors.AccessDenied,
description: context.Localizer[SR.ID2015]); description: SR.GetResourceString(SR.ID2015));
return; return;
} }
@ -943,13 +943,13 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2016], => SR.GetResourceString(SR.ID2016),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2017], => SR.GetResourceString(SR.ID2017),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2018], => SR.GetResourceString(SR.ID2018),
_ => context.Localizer[SR.ID2019] _ => SR.GetResourceString(SR.ID2019)
}); });
return; return;
@ -1052,13 +1052,13 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2020], => SR.GetResourceString(SR.ID2020),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2021], => SR.GetResourceString(SR.ID2021),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2022], => SR.GetResourceString(SR.ID2022),
_ => context.Localizer[SR.ID2023] _ => SR.GetResourceString(SR.ID2023)
}); });
return; return;
@ -1113,13 +1113,13 @@ namespace OpenIddict.Server
description: context.EndpointType switch description: context.EndpointType switch
{ {
OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType()
=> context.Localizer[SR.ID2016], => SR.GetResourceString(SR.ID2016),
OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType()
=> context.Localizer[SR.ID2017], => SR.GetResourceString(SR.ID2017),
OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType()
=> context.Localizer[SR.ID2018], => SR.GetResourceString(SR.ID2018),
_ => context.Localizer[SR.ID2019] _ => SR.GetResourceString(SR.ID2019)
}); });
return default; return default;
@ -1201,10 +1201,10 @@ namespace OpenIddict.Server
context.Response.ErrorDescription ??= context.EndpointType switch context.Response.ErrorDescription ??= context.EndpointType switch
{ {
OpenIddictServerEndpointType.Authorization or OpenIddictServerEndpointType.Verification OpenIddictServerEndpointType.Authorization or OpenIddictServerEndpointType.Verification
=> context.Localizer[SR.ID2015], => SR.GetResourceString(SR.ID2015),
OpenIddictServerEndpointType.Token => context.Localizer[SR.ID2024], OpenIddictServerEndpointType.Token => SR.GetResourceString(SR.ID2024),
OpenIddictServerEndpointType.Userinfo => context.Localizer[SR.ID2025], OpenIddictServerEndpointType.Userinfo => SR.GetResourceString(SR.ID2025),
_ => throw new InvalidOperationException(SR.GetResourceString(SR.ID0006)) _ => throw new InvalidOperationException(SR.GetResourceString(SR.ID0006))
}; };

6
src/OpenIddict.Server/OpenIddictServerTransaction.cs

@ -6,7 +6,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -27,11 +26,6 @@ namespace OpenIddict.Server
/// </summary> /// </summary>
public Uri? Issuer { get; set; } public Uri? Issuer { get; set; }
/// <summary>
/// Gets or sets the localizer associated with the current request.
/// </summary>
public IStringLocalizer Localizer { get; set; } = default!;
/// <summary> /// <summary>
/// Gets or sets the logger associated with the current request. /// Gets or sets the logger associated with the current request.
/// </summary> /// </summary>

4
src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlers.cs

@ -109,7 +109,7 @@ namespace OpenIddict.Validation.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, HeaderNames.Host]); description: SR.FormatID2081(HeaderNames.Host));
return default; return default;
} }
@ -119,7 +119,7 @@ namespace OpenIddict.Validation.AspNetCore
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, HeaderNames.Host]); description: SR.FormatID2082(HeaderNames.Host));
return default; return default;
} }

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

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

11
src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConstants.cs

@ -17,6 +17,17 @@ namespace OpenIddict.Validation.Owin
public const string LogoutRequest = "openiddict-logout-request:"; public const string LogoutRequest = "openiddict-logout-request:";
} }
public static class Headers
{
public const string Authorization = "Authorization";
public const string CacheControl = "Cache-Control";
public const string ContentType = "Content-Type";
public const string Expires = "Expires";
public const string Host = "Host";
public const string Pragma = "Pragma";
public const string WwwAuthenticate = "WWW-Authenticate";
}
public static class Properties public static class Properties
{ {
public const string Error = ".error"; public const string Error = ".error";

17
src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlers.cs

@ -20,6 +20,7 @@ using Microsoft.Owin.Security;
using Owin; using Owin;
using static OpenIddict.Abstractions.OpenIddictConstants; using static OpenIddict.Abstractions.OpenIddictConstants;
using static OpenIddict.Validation.OpenIddictValidationEvents; using static OpenIddict.Validation.OpenIddictValidationEvents;
using static OpenIddict.Validation.Owin.OpenIddictValidationOwinConstants;
using static OpenIddict.Validation.Owin.OpenIddictValidationOwinHandlerFilters; using static OpenIddict.Validation.Owin.OpenIddictValidationOwinHandlerFilters;
using Properties = OpenIddict.Validation.Owin.OpenIddictValidationOwinConstants.Properties; using Properties = OpenIddict.Validation.Owin.OpenIddictValidationOwinConstants.Properties;
using SR = OpenIddict.Abstractions.OpenIddictResources; using SR = OpenIddict.Abstractions.OpenIddictResources;
@ -106,7 +107,7 @@ namespace OpenIddict.Validation.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2081, "Host"]); description: SR.FormatID2081(Headers.Host));
return default; return default;
} }
@ -116,7 +117,7 @@ namespace OpenIddict.Validation.Owin
{ {
context.Reject( context.Reject(
error: Errors.InvalidRequest, error: Errors.InvalidRequest,
description: context.Localizer[SR.ID2082, "Host"]); description: SR.FormatID2082(Headers.Host));
return default; return default;
} }
@ -168,7 +169,7 @@ namespace OpenIddict.Validation.Owin
// Resolve the access token from the standard Authorization header. // Resolve the access token from the standard Authorization header.
// See https://tools.ietf.org/html/rfc6750#section-2.1 for more information. // See https://tools.ietf.org/html/rfc6750#section-2.1 for more information.
string header = request.Headers["Authorization"]; string header = request.Headers[Headers.Authorization];
if (!string.IsNullOrEmpty(header) && header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) if (!string.IsNullOrEmpty(header) && header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase))
{ {
context.Token = header.Substring("Bearer ".Length); context.Token = header.Substring("Bearer ".Length);
@ -419,9 +420,9 @@ namespace OpenIddict.Validation.Owin
} }
// Prevent the response from being cached. // Prevent the response from being cached.
response.Headers["Cache-Control"] = "no-store"; response.Headers[Headers.CacheControl] = "no-store";
response.Headers["Pragma"] = "no-cache"; response.Headers[Headers.Pragma] = "no-cache";
response.Headers["Expires"] = "Thu, 01 Jan 1970 00:00:00 GMT"; response.Headers[Headers.Expires] = "Thu, 01 Jan 1970 00:00:00 GMT";
return default; return default;
} }
@ -536,7 +537,7 @@ namespace OpenIddict.Validation.Owin
builder.Remove(builder.Length - 1, 1); builder.Remove(builder.Length - 1, 1);
} }
response.Headers.Append("WWW-Authenticate", builder.ToString()); response.Headers.Append(Headers.WwwAuthenticate, builder.ToString());
return default; return default;
} }
@ -576,7 +577,7 @@ namespace OpenIddict.Validation.Owin
} }
// If the response doesn't contain a WWW-Authenticate header, don't return an empty response. // If the response doesn't contain a WWW-Authenticate header, don't return an empty response.
if (!response.Headers.ContainsKey("WWW-Authenticate")) if (!response.Headers.ContainsKey(Headers.WwwAuthenticate))
{ {
return default; return default;
} }

1
src/OpenIddict.Validation/OpenIddict.Validation.csproj

@ -17,7 +17,6 @@ To use the validation feature on ASP.NET Core or OWIN/Katana, reference the Open
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Localization" />
<PackageReference Include="Microsoft.Extensions.Logging" /> <PackageReference Include="Microsoft.Extensions.Logging" />
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" /> <PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" />
</ItemGroup> </ItemGroup>

39
src/OpenIddict.Validation/OpenIddictValidationEvents.cs

@ -7,7 +7,6 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Security.Claims; using System.Security.Claims;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -50,11 +49,6 @@ namespace OpenIddict.Validation
set => Transaction.Issuer = value; set => Transaction.Issuer = value;
} }
/// <summary>
/// Gets the localizer used to localize the messages generated by OpenIddict.
/// </summary>
public IStringLocalizer Localizer => Transaction.Localizer;
/// <summary> /// <summary>
/// Gets the logger responsible of logging processed operations. /// Gets the logger responsible of logging processed operations.
/// </summary> /// </summary>
@ -159,48 +153,19 @@ namespace OpenIddict.Validation
/// </summary> /// </summary>
public string? ErrorUri { get; private set; } public string? ErrorUri { get; private set; }
/// <summary>
/// Rejects the request.
/// </summary>
public virtual void Reject() => IsRejected = true;
/// <summary>
/// Rejects the request.
/// </summary>
/// <param name="error">The "error" parameter returned to the client application.</param>
public virtual void Reject(string? error)
{
Error = error;
Reject();
}
/// <summary>
/// Rejects the request.
/// </summary>
/// <param name="error">The "error" parameter returned to the client application.</param>
/// <param name="description">The "error_description" parameter returned to the client application.</param>
public virtual void Reject(string? error, string? description)
{
Error = error;
ErrorDescription = description;
Reject();
}
/// <summary> /// <summary>
/// Rejects the request. /// Rejects the request.
/// </summary> /// </summary>
/// <param name="error">The "error" parameter returned to the client application.</param> /// <param name="error">The "error" parameter returned to the client application.</param>
/// <param name="description">The "error_description" parameter returned to the client application.</param> /// <param name="description">The "error_description" parameter returned to the client application.</param>
/// <param name="uri">The "error_uri" parameter returned to the client application.</param> /// <param name="uri">The "error_uri" parameter returned to the client application.</param>
public virtual void Reject(string? error, string? description, string? uri) public virtual void Reject(string? error = null, string? description = null, string? uri = null)
{ {
Error = error; Error = error;
ErrorDescription = description; ErrorDescription = description;
ErrorUri = uri; ErrorUri = uri;
Reject(); IsRejected = true;
} }
} }

15
src/OpenIddict.Validation/OpenIddictValidationExtensions.cs

@ -7,9 +7,6 @@
using System; using System;
using System.Linq; using System.Linq;
using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging.Abstractions;
using OpenIddict.Abstractions;
using OpenIddict.Validation; using OpenIddict.Validation;
using static OpenIddict.Validation.OpenIddictValidationHandlerFilters; using static OpenIddict.Validation.OpenIddictValidationHandlerFilters;
using static OpenIddict.Validation.OpenIddictValidationHandlers; using static OpenIddict.Validation.OpenIddictValidationHandlers;
@ -53,18 +50,6 @@ namespace Microsoft.Extensions.DependencyInjection
builder.Services.TryAddSingleton<RequireTokenEntryValidationEnabled>(); builder.Services.TryAddSingleton<RequireTokenEntryValidationEnabled>();
builder.Services.TryAddSingleton<RequireIntrospectionValidation>(); builder.Services.TryAddSingleton<RequireIntrospectionValidation>();
builder.Services.TryAddSingleton<IStringLocalizer<OpenIddictResources>>(provider =>
{
// Note: the string localizer factory is deliberately not resolved from
// the DI container to ensure the built-in .resx files are always used
// even if the factory was replaced by a different implementation in DI.
var factory = new ResourceManagerStringLocalizerFactory(
localizationOptions: Options.Create(new LocalizationOptions()),
loggerFactory: NullLoggerFactory.Instance);
return new StringLocalizer<OpenIddictResources>(factory);
});
// Note: TryAddEnumerable() is used here to ensure the initializer is registered only once. // Note: TryAddEnumerable() is used here to ensure the initializer is registered only once.
builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton< builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<
IPostConfigureOptions<OpenIddictValidationOptions>, OpenIddictValidationConfiguration>()); IPostConfigureOptions<OpenIddictValidationOptions>, OpenIddictValidationConfiguration>());

6
src/OpenIddict.Validation/OpenIddictValidationFactory.cs

@ -5,16 +5,13 @@
*/ */
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OpenIddict.Abstractions;
namespace OpenIddict.Validation namespace OpenIddict.Validation
{ {
public class OpenIddictValidationFactory : IOpenIddictValidationFactory public class OpenIddictValidationFactory : IOpenIddictValidationFactory
{ {
private readonly IStringLocalizer<OpenIddictResources> _localizer;
private readonly ILogger<OpenIddictValidationDispatcher> _logger; private readonly ILogger<OpenIddictValidationDispatcher> _logger;
private readonly IOptionsMonitor<OpenIddictValidationOptions> _options; private readonly IOptionsMonitor<OpenIddictValidationOptions> _options;
@ -22,11 +19,9 @@ namespace OpenIddict.Validation
/// Creates a new instance of the <see cref="OpenIddictValidationFactory"/> class. /// Creates a new instance of the <see cref="OpenIddictValidationFactory"/> class.
/// </summary> /// </summary>
public OpenIddictValidationFactory( public OpenIddictValidationFactory(
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictValidationDispatcher> logger, ILogger<OpenIddictValidationDispatcher> logger,
IOptionsMonitor<OpenIddictValidationOptions> options) IOptionsMonitor<OpenIddictValidationOptions> options)
{ {
_localizer = localizer;
_logger = logger; _logger = logger;
_options = options; _options = options;
} }
@ -35,7 +30,6 @@ namespace OpenIddict.Validation
=> new ValueTask<OpenIddictValidationTransaction>(new OpenIddictValidationTransaction => new ValueTask<OpenIddictValidationTransaction>(new OpenIddictValidationTransaction
{ {
Issuer = _options.CurrentValue.Issuer, Issuer = _options.CurrentValue.Issuer,
Localizer = _localizer,
Logger = _logger, Logger = _logger,
Options = _options.CurrentValue Options = _options.CurrentValue
}); });

20
src/OpenIddict.Validation/OpenIddictValidationHandlers.Discovery.cs

@ -63,7 +63,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2096]); description: SR.GetResourceString(SR.ID2096));
return default; return default;
} }
@ -72,7 +72,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2097]); description: SR.GetResourceString(SR.ID2097));
return default; return default;
} }
@ -81,7 +81,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2098]); description: SR.GetResourceString(SR.ID2098));
return default; return default;
} }
@ -122,7 +122,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2099]); description: SR.GetResourceString(SR.ID2099));
return default; return default;
} }
@ -131,7 +131,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2100]); description: SR.GetResourceString(SR.ID2100));
return default; return default;
} }
@ -170,7 +170,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2101]); description: SR.GetResourceString(SR.ID2101));
return default; return default;
} }
@ -224,7 +224,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2102, JsonWebKeySetParameterNames.Keys]); description: SR.FormatID2102(JsonWebKeySetParameterNames.Keys));
return default; return default;
} }
@ -270,7 +270,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2103]); description: SR.GetResourceString(SR.ID2103));
return default; return default;
} }
@ -281,7 +281,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2104]); description: SR.GetResourceString(SR.ID2104));
return default; return default;
} }
@ -292,7 +292,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2104]); description: SR.GetResourceString(SR.ID2104));
return default; return default;
} }

12
src/OpenIddict.Validation/OpenIddictValidationHandlers.Introspection.cs

@ -131,7 +131,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2105, Parameters.Active]); description: SR.FormatID2105(Parameters.Active));
return default; return default;
} }
@ -142,7 +142,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2106]); description: SR.GetResourceString(SR.ID2106));
return default; return default;
} }
@ -183,7 +183,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2107, parameter.Key]); description: SR.FormatID2107(parameter.Key));
return default; return default;
} }
@ -258,7 +258,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2108]); description: SR.GetResourceString(SR.ID2108));
return default; return default;
} }
@ -267,7 +267,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2109]); description: SR.GetResourceString(SR.ID2109));
return default; return default;
} }
@ -311,7 +311,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2110]); description: SR.GetResourceString(SR.ID2110));
return default; return default;
} }

32
src/OpenIddict.Validation/OpenIddictValidationHandlers.cs

@ -85,7 +85,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.MissingToken, error: Errors.MissingToken,
description: context.Localizer[SR.ID2000]); description: SR.GetResourceString(SR.ID2000));
return default; return default;
} }
@ -146,7 +146,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2004]); description: SR.GetResourceString(SR.ID2004));
return; return;
} }
@ -248,12 +248,12 @@ namespace OpenIddict.Validation
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: result.Exception switch description: result.Exception switch
{ {
SecurityTokenInvalidIssuerException => context.Localizer[SR.ID2088], SecurityTokenInvalidIssuerException => SR.GetResourceString(SR.ID2088),
SecurityTokenInvalidTypeException => context.Localizer[SR.ID2089], SecurityTokenInvalidTypeException => SR.GetResourceString(SR.ID2089),
SecurityTokenSignatureKeyNotFoundException => context.Localizer[SR.ID2090], SecurityTokenSignatureKeyNotFoundException => SR.GetResourceString(SR.ID2090),
SecurityTokenInvalidSignatureException => context.Localizer[SR.ID2091], SecurityTokenInvalidSignatureException => SR.GetResourceString(SR.ID2091),
_ => context.Localizer[SR.ID2004] _ => SR.GetResourceString(SR.ID2004)
}); });
return; return;
@ -324,7 +324,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.ServerError, error: Errors.ServerError,
description: context.Localizer[SR.ID2092]); description: SR.GetResourceString(SR.ID2092));
return; return;
} }
@ -349,7 +349,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2004]); description: SR.GetResourceString(SR.ID2004));
return; return;
} }
@ -591,7 +591,7 @@ namespace OpenIddict.Validation
{ {
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2004]); description: SR.GetResourceString(SR.ID2004));
return default; return default;
} }
@ -650,7 +650,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2019]); description: SR.GetResourceString(SR.ID2019));
return default; return default;
} }
@ -700,7 +700,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2093]); description: SR.GetResourceString(SR.ID2093));
return default; return default;
} }
@ -712,7 +712,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2094]); description: SR.GetResourceString(SR.ID2094));
return default; return default;
} }
@ -770,7 +770,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2019]); description: SR.GetResourceString(SR.ID2019));
return; return;
} }
@ -833,7 +833,7 @@ namespace OpenIddict.Validation
context.Reject( context.Reject(
error: Errors.InvalidToken, error: Errors.InvalidToken,
description: context.Localizer[SR.ID2023]); description: SR.GetResourceString(SR.ID2023));
return; return;
} }
@ -891,7 +891,7 @@ namespace OpenIddict.Validation
else else
{ {
context.Response.Error = Errors.InsufficientAccess; context.Response.Error = Errors.InsufficientAccess;
context.Response.ErrorDescription = context.Localizer[SR.ID2095]; context.Response.ErrorDescription = SR.GetResourceString(SR.ID2095);
} }
return default; return default;

6
src/OpenIddict.Validation/OpenIddictValidationTransaction.cs

@ -6,7 +6,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -27,11 +26,6 @@ namespace OpenIddict.Validation
/// </summary> /// </summary>
public Uri? Issuer { get; set; } public Uri? Issuer { get; set; }
/// <summary>
/// Gets or sets the localizer associated with the current request.
/// </summary>
public IStringLocalizer Localizer { get; set; } = default!;
/// <summary> /// <summary>
/// Gets or sets the logger associated with the current request. /// Gets or sets the logger associated with the current request.
/// </summary> /// </summary>

25
test/OpenIddict.Core.Tests/OpenIddictCoreBuilderTests.cs

@ -6,7 +6,6 @@
using System; using System;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Moq; using Moq;
@ -681,11 +680,10 @@ namespace OpenIddict.Core.Tests
{ {
public ClosedGenericApplicationManager( public ClosedGenericApplicationManager(
IOpenIddictApplicationCache<CustomApplication> cache, IOpenIddictApplicationCache<CustomApplication> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictApplicationManager<CustomApplication>> logger, ILogger<OpenIddictApplicationManager<CustomApplication>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictApplicationStoreResolver resolver) IOpenIddictApplicationStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -695,11 +693,10 @@ namespace OpenIddict.Core.Tests
{ {
public OpenGenericApplicationManager( public OpenGenericApplicationManager(
IOpenIddictApplicationCache<TApplication> cache, IOpenIddictApplicationCache<TApplication> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictApplicationManager<TApplication>> logger, ILogger<OpenIddictApplicationManager<TApplication>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictApplicationStoreResolver resolver) IOpenIddictApplicationStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -708,11 +705,10 @@ namespace OpenIddict.Core.Tests
{ {
public ClosedGenericAuthorizationManager( public ClosedGenericAuthorizationManager(
IOpenIddictAuthorizationCache<CustomAuthorization> cache, IOpenIddictAuthorizationCache<CustomAuthorization> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictAuthorizationManager<CustomAuthorization>> logger, ILogger<OpenIddictAuthorizationManager<CustomAuthorization>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictAuthorizationStoreResolver resolver) IOpenIddictAuthorizationStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -722,11 +718,10 @@ namespace OpenIddict.Core.Tests
{ {
public OpenGenericAuthorizationManager( public OpenGenericAuthorizationManager(
IOpenIddictAuthorizationCache<TAuthorization> cache, IOpenIddictAuthorizationCache<TAuthorization> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictAuthorizationManager<TAuthorization>> logger, ILogger<OpenIddictAuthorizationManager<TAuthorization>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictAuthorizationStoreResolver resolver) IOpenIddictAuthorizationStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -735,11 +730,10 @@ namespace OpenIddict.Core.Tests
{ {
public ClosedGenericScopeManager( public ClosedGenericScopeManager(
IOpenIddictScopeCache<CustomScope> cache, IOpenIddictScopeCache<CustomScope> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictScopeManager<CustomScope>> logger, ILogger<OpenIddictScopeManager<CustomScope>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictScopeStoreResolver resolver) IOpenIddictScopeStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -749,11 +743,10 @@ namespace OpenIddict.Core.Tests
{ {
public OpenGenericScopeManager( public OpenGenericScopeManager(
IOpenIddictScopeCache<TScope> cache, IOpenIddictScopeCache<TScope> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictScopeManager<TScope>> logger, ILogger<OpenIddictScopeManager<TScope>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictScopeStoreResolver resolver) IOpenIddictScopeStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -762,11 +755,10 @@ namespace OpenIddict.Core.Tests
{ {
public ClosedGenericTokenManager( public ClosedGenericTokenManager(
IOpenIddictTokenCache<CustomToken> cache, IOpenIddictTokenCache<CustomToken> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictTokenManager<CustomToken>> logger, ILogger<OpenIddictTokenManager<CustomToken>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictTokenStoreResolver resolver) IOpenIddictTokenStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }
@ -776,11 +768,10 @@ namespace OpenIddict.Core.Tests
{ {
public OpenGenericTokenManager( public OpenGenericTokenManager(
IOpenIddictTokenCache<TToken> cache, IOpenIddictTokenCache<TToken> cache,
IStringLocalizer<OpenIddictResources> localizer,
ILogger<OpenIddictTokenManager<TToken>> logger, ILogger<OpenIddictTokenManager<TToken>> logger,
IOptionsMonitor<OpenIddictCoreOptions> options, IOptionsMonitor<OpenIddictCoreOptions> options,
IOpenIddictTokenStoreResolver resolver) IOpenIddictTokenStoreResolver resolver)
: base(cache, localizer, logger, options, resolver) : base(cache, logger, options, resolver)
{ {
} }
} }

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

@ -12,7 +12,6 @@ using System.Security.Claims;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Moq; using Moq;
using OpenIddict.Abstractions; using OpenIddict.Abstractions;
@ -3578,14 +3577,14 @@ namespace OpenIddict.Server.IntegrationTests
}); });
} }
protected abstract ValueTask<OpenIddictServerIntegrationTestServer> CreateServerAsync(Action<OpenIddictServerBuilder>? configuration = null); protected abstract ValueTask<OpenIddictServerIntegrationTestServer> CreateServerAsync(
Action<OpenIddictServerBuilder>? configuration = null);
protected OpenIddictApplicationManager<OpenIddictApplication> CreateApplicationManager( protected OpenIddictApplicationManager<OpenIddictApplication> CreateApplicationManager(
Action<Mock<OpenIddictApplicationManager<OpenIddictApplication>>>? configuration = null) Action<Mock<OpenIddictApplicationManager<OpenIddictApplication>>>? configuration = null)
{ {
var manager = new Mock<OpenIddictApplicationManager<OpenIddictApplication>>( var manager = new Mock<OpenIddictApplicationManager<OpenIddictApplication>>(
Mock.Of<IOpenIddictApplicationCache<OpenIddictApplication>>(), Mock.Of<IOpenIddictApplicationCache<OpenIddictApplication>>(),
Mock.Of<IStringLocalizer<OpenIddictResources>>(),
OutputHelper.ToLogger<OpenIddictApplicationManager<OpenIddictApplication>>(), OutputHelper.ToLogger<OpenIddictApplicationManager<OpenIddictApplication>>(),
Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(), Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(),
Mock.Of<IOpenIddictApplicationStoreResolver>()); Mock.Of<IOpenIddictApplicationStoreResolver>());
@ -3600,7 +3599,6 @@ namespace OpenIddict.Server.IntegrationTests
{ {
var manager = new Mock<OpenIddictAuthorizationManager<OpenIddictAuthorization>>( var manager = new Mock<OpenIddictAuthorizationManager<OpenIddictAuthorization>>(
Mock.Of<IOpenIddictAuthorizationCache<OpenIddictAuthorization>>(), Mock.Of<IOpenIddictAuthorizationCache<OpenIddictAuthorization>>(),
Mock.Of<IStringLocalizer<OpenIddictResources>>(),
OutputHelper.ToLogger<OpenIddictAuthorizationManager<OpenIddictAuthorization>>(), OutputHelper.ToLogger<OpenIddictAuthorizationManager<OpenIddictAuthorization>>(),
Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(), Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(),
Mock.Of<IOpenIddictAuthorizationStoreResolver>()); Mock.Of<IOpenIddictAuthorizationStoreResolver>());
@ -3615,7 +3613,6 @@ namespace OpenIddict.Server.IntegrationTests
{ {
var manager = new Mock<OpenIddictScopeManager<OpenIddictScope>>( var manager = new Mock<OpenIddictScopeManager<OpenIddictScope>>(
Mock.Of<IOpenIddictScopeCache<OpenIddictScope>>(), Mock.Of<IOpenIddictScopeCache<OpenIddictScope>>(),
Mock.Of<IStringLocalizer<OpenIddictResources>>(),
OutputHelper.ToLogger<OpenIddictScopeManager<OpenIddictScope>>(), OutputHelper.ToLogger<OpenIddictScopeManager<OpenIddictScope>>(),
Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(), Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(),
Mock.Of<IOpenIddictScopeStoreResolver>()); Mock.Of<IOpenIddictScopeStoreResolver>());
@ -3630,7 +3627,6 @@ namespace OpenIddict.Server.IntegrationTests
{ {
var manager = new Mock<OpenIddictTokenManager<OpenIddictToken>>( var manager = new Mock<OpenIddictTokenManager<OpenIddictToken>>(
Mock.Of<IOpenIddictTokenCache<OpenIddictToken>>(), Mock.Of<IOpenIddictTokenCache<OpenIddictToken>>(),
Mock.Of<IStringLocalizer<OpenIddictResources>>(),
OutputHelper.ToLogger<OpenIddictTokenManager<OpenIddictToken>>(), OutputHelper.ToLogger<OpenIddictTokenManager<OpenIddictToken>>(),
Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(), Mock.Of<IOptionsMonitor<OpenIddictCoreOptions>>(),
Mock.Of<IOpenIddictTokenStoreResolver>()); Mock.Of<IOpenIddictTokenStoreResolver>());

Loading…
Cancel
Save