@authup/i18n 1.0.0-beta.64 → 1.0.0-beta.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -46,6 +46,17 @@ let TranslatorTranslationClientKey = /* @__PURE__ */ function(TranslatorTranslat
46
46
  TranslatorTranslationClientKey["CLIENT_CERTIFICATE_URI_HINT"] = "clientCertificateUriHint";
47
47
  TranslatorTranslationClientKey["IS_ACTIVE"] = "isActive";
48
48
  TranslatorTranslationClientKey["HASH_SECRET"] = "hashSecret";
49
+ TranslatorTranslationClientKey["SECRET_ROTATE"] = "secretRotate";
50
+ TranslatorTranslationClientKey["SECRET_ROTATE_HINT"] = "secretRotateHint";
51
+ TranslatorTranslationClientKey["SECRET_HASHED_HINT"] = "secretHashedHint";
52
+ TranslatorTranslationClientKey["SECRET_MODE"] = "secretMode";
53
+ TranslatorTranslationClientKey["SECRET_MODE_PLAIN"] = "secretModePlain";
54
+ TranslatorTranslationClientKey["SECRET_MODE_HASHED"] = "secretModeHashed";
55
+ TranslatorTranslationClientKey["SECRET_MODE_ENCRYPTED"] = "secretModeEncrypted";
56
+ TranslatorTranslationClientKey["SECRET_MODE_ENCRYPTED_HINT"] = "secretModeEncryptedHint";
57
+ TranslatorTranslationClientKey["SECRET_SHOW_ONCE"] = "secretShowOnce";
58
+ TranslatorTranslationClientKey["SECRET_COPY"] = "secretCopy";
59
+ TranslatorTranslationClientKey["SECRET_COPIED"] = "secretCopied";
49
60
  TranslatorTranslationClientKey["LOGIN_FAILED"] = "loginFailed";
50
61
  TranslatorTranslationClientKey["SCOPE_GRANT_INTRO"] = "scopeGrantIntro";
51
62
  TranslatorTranslationClientKey["ONCE_AUTHORIZED_REDIRECT"] = "onceAuthorizedRedirect";
@@ -114,6 +125,15 @@ let TranslatorTranslationClientKey = /* @__PURE__ */ function(TranslatorTranslat
114
125
  TranslatorTranslationClientKey["ACCESS_DENIED_TEXT"] = "accessDeniedText";
115
126
  TranslatorTranslationClientKey["CLIENT_ACCESS_POLICY_HINT"] = "clientAccessPolicyHint";
116
127
  TranslatorTranslationClientKey["CONSENT_STATUS_LOADING"] = "consentStatusLoading";
128
+ TranslatorTranslationClientKey["DEVICE_VERIFY_TITLE"] = "deviceVerifyTitle";
129
+ TranslatorTranslationClientKey["DEVICE_CODE_LABEL"] = "deviceCodeLabel";
130
+ TranslatorTranslationClientKey["DEVICE_CODE_HINT"] = "deviceCodeHint";
131
+ TranslatorTranslationClientKey["DEVICE_CODE_INVALID"] = "deviceCodeInvalid";
132
+ TranslatorTranslationClientKey["DEVICE_VERIFY_CONFIRM_TEXT"] = "deviceVerifyConfirmText";
133
+ TranslatorTranslationClientKey["DEVICE_VERIFY_SCOPES"] = "deviceVerifyScopes";
134
+ TranslatorTranslationClientKey["DEVICE_VERIFY_APPROVED"] = "deviceVerifyApproved";
135
+ TranslatorTranslationClientKey["DEVICE_VERIFY_DENIED"] = "deviceVerifyDenied";
136
+ TranslatorTranslationClientKey["DEVICE_VERIFY_THROTTLED"] = "deviceVerifyThrottled";
117
137
  TranslatorTranslationClientKey["LOGOUT_CONFIRM_TITLE"] = "logoutConfirmTitle";
118
138
  TranslatorTranslationClientKey["LOGOUT_CONFIRM_TEXT"] = "logoutConfirmText";
119
139
  TranslatorTranslationClientKey["LOGOUT_DONE"] = "logoutDone";
@@ -206,6 +226,9 @@ let TranslatorTranslationAppKey = /* @__PURE__ */ function(TranslatorTranslation
206
226
  TranslatorTranslationAppKey["URL_GENERATOR_HINT"] = "urlGeneratorHint";
207
227
  TranslatorTranslationAppKey["REDIRECT_URL"] = "redirectUrl";
208
228
  TranslatorTranslationAppKey["GENERATED_URL"] = "generatedUrl";
229
+ TranslatorTranslationAppKey["ISSUER"] = "issuer";
230
+ TranslatorTranslationAppKey["OPENID_CONFIGURATION_URL"] = "openidConfigurationUrl";
231
+ TranslatorTranslationAppKey["JWKS_URL"] = "jwksUrl";
209
232
  TranslatorTranslationAppKey["TOGGLE_NAVIGATION"] = "toggleNavigation";
210
233
  TranslatorTranslationAppKey["SESSION_RENEW"] = "sessionRenew";
211
234
  TranslatorTranslationAppKey["MINUTES"] = "minutes";
@@ -413,6 +436,8 @@ let TranslatorTranslationActionKey = /* @__PURE__ */ function(TranslatorTranslat
413
436
  TranslatorTranslationActionKey["HIDE"] = "hide";
414
437
  TranslatorTranslationActionKey["REMOVE"] = "remove";
415
438
  TranslatorTranslationActionKey["RETRY"] = "retry";
439
+ TranslatorTranslationActionKey["COPY"] = "copy";
440
+ TranslatorTranslationActionKey["COPIED"] = "copied";
416
441
  return TranslatorTranslationActionKey;
417
442
  }({});
418
443
  /**
@@ -476,7 +501,9 @@ const TranslatorTranslationActionEnglish = {
476
501
  ["show"]: "Show",
477
502
  ["hide"]: "Hide",
478
503
  ["remove"]: "Remove",
479
- ["retry"]: "Retry"
504
+ ["retry"]: "Retry",
505
+ ["copy"]: "Copy",
506
+ ["copied"]: "Copied"
480
507
  };
481
508
  //#endregion
482
509
  //#region src/catalogs/en/app.ts
@@ -513,6 +540,9 @@ const TranslatorTranslationAppEnglish = {
513
540
  ["urlGeneratorHint"]: "Generate an authorize url by picking the scopes it needs to function.",
514
541
  ["redirectUrl"]: "Redirect URL",
515
542
  ["generatedUrl"]: "Generated URL",
543
+ ["issuer"]: "Issuer",
544
+ ["openidConfigurationUrl"]: "OpenID configuration URL",
545
+ ["jwksUrl"]: "JWKS URL",
516
546
  ["toggleNavigation"]: "Toggle navigation",
517
547
  ["sessionRenew"]: "The session will be renewed in {countdown}.",
518
548
  ["minutes"]: "minute(s)",
@@ -571,7 +601,7 @@ const TranslatorTranslationClientEnglish = {
571
601
  ["postLogoutRedirectURIHint"]: "URI pattern an RP-initiated logout may redirect back to. Kept separate from the login redirect URIs. Leave empty to always end on the sign-out confirmation page.",
572
602
  ["baseUrlHint"]: "Where the application lives. Shown as a link on the account console. Leave empty to show the name only.",
573
603
  ["backchannelLogoutURIHint"]: "Endpoint that receives a logout token when a session ends (OIDC Back-Channel Logout). One http(s) URL, no patterns. Leave empty to send nothing.",
574
- ["grantTypesHint"]: "Restrict which OAuth2 grants this client may use. Select none to allow every grant.",
604
+ ["grantTypesHint"]: "Restrict which OAuth2 grants this client may use. Select none to allow every grant. The device grant must be listed explicitly; an empty list does not enable it.",
575
605
  ["authMethod"]: "Authentication method",
576
606
  ["authMethodNone"]: "None",
577
607
  ["authMethodSecret"]: "Shared secret",
@@ -583,6 +613,17 @@ const TranslatorTranslationClientEnglish = {
583
613
  ["clientCertificateUriHint"]: "The certificate must contain this exact URI SAN once.",
584
614
  ["isActive"]: "Is active?",
585
615
  ["hashSecret"]: "Hash secret?",
616
+ ["secretRotate"]: "Rotate secret",
617
+ ["secretRotateHint"]: "Leave the secret empty to let the server generate one.",
618
+ ["secretHashedHint"]: "The secret is stored hashed and cannot be shown. Rotate it to set a new one.",
619
+ ["secretMode"]: "Storage",
620
+ ["secretModePlain"]: "Plain (can be shown again)",
621
+ ["secretModeHashed"]: "Hashed (shown once)",
622
+ ["secretModeEncrypted"]: "Encrypted (can be shown again)",
623
+ ["secretModeEncryptedHint"]: "The secret is stored encrypted under the realm's encryption key and can be shown again to a permitted reader. Disabling or deleting that key stops such clients from authenticating.",
624
+ ["secretShowOnce"]: "Copy the secret now. It will not be shown again.",
625
+ ["secretCopy"]: "Copy",
626
+ ["secretCopied"]: "Copied",
586
627
  ["loginFailed"]: "The login operation failed",
587
628
  ["scopeGrantIntro"]: "This will allow the {client} application to",
588
629
  ["onceAuthorizedRedirect"]: "Once authorized, you will be redirected to {target}.",
@@ -651,6 +692,15 @@ const TranslatorTranslationClientEnglish = {
651
692
  ["accessDeniedText"]: "You are not permitted to access this application.",
652
693
  ["clientAccessPolicyHint"]: "Without a policy, every identity in the realm may sign in.",
653
694
  ["consentStatusLoading"]: "Checking granted permissions…",
695
+ ["deviceVerifyTitle"]: "Connect a device",
696
+ ["deviceCodeLabel"]: "Code shown on your device",
697
+ ["deviceCodeHint"]: "Enter the code exactly as displayed. Dashes and case do not matter.",
698
+ ["deviceCodeInvalid"]: "The code is invalid or has expired. Check your device and try again.",
699
+ ["deviceVerifyConfirmText"]: "{{client}} on another device is asking for access to your account.",
700
+ ["deviceVerifyScopes"]: "It will be able to:",
701
+ ["deviceVerifyApproved"]: "Device connected. You can close this page and return to your device.",
702
+ ["deviceVerifyDenied"]: "Access denied. Nothing was connected; you can close this page.",
703
+ ["deviceVerifyThrottled"]: "Too many attempts. Wait a few minutes and try again.",
654
704
  ["logoutConfirmTitle"]: "Sign out",
655
705
  ["logoutConfirmText"]: "Do you want to sign out?",
656
706
  ["logoutDone"]: "You have been signed out.",
@@ -841,6 +891,10 @@ const TranslatorTranslationErrorEnglish = {
841
891
  [ErrorCode.OAUTH_RESPONSE_TYPE_UNSUPPORTED]: "The response type is not supported.",
842
892
  [ErrorCode.OAUTH_SCOPE_INVALID]: "The requested scope is invalid.",
843
893
  [ErrorCode.OAUTH_SCOPE_INSUFFICIENT]: "The granted scope is insufficient for this action.",
894
+ [ErrorCode.OAUTH_AUTHORIZATION_PENDING]: "The device has not been approved yet.",
895
+ [ErrorCode.OAUTH_SLOW_DOWN]: "The device is polling too frequently.",
896
+ [ErrorCode.OAUTH_DEVICE_CODE_EXPIRED]: "The device code has expired. Start again on your device.",
897
+ [ErrorCode.OAUTH_DEVICE_VERIFICATION_THROTTLED]: "Too many verification attempts. Please try again later.",
844
898
  [ErrorCode.PERMISSION_NOT_FOUND]: "The permission could not be found.",
845
899
  [ErrorCode.PERMISSION_DENIED]: "You do not have permission to perform this action.",
846
900
  [ErrorCode.PERMISSION_EVALUATION_FAILED]: "The permission could not be evaluated.",
@@ -972,7 +1026,9 @@ const TranslatorTranslationActionGerman = {
972
1026
  ["show"]: "Anzeigen",
973
1027
  ["hide"]: "Verbergen",
974
1028
  ["remove"]: "Entfernen",
975
- ["retry"]: "Erneut versuchen"
1029
+ ["retry"]: "Erneut versuchen",
1030
+ ["copy"]: "Kopieren",
1031
+ ["copied"]: "Kopiert"
976
1032
  };
977
1033
  //#endregion
978
1034
  //#region src/catalogs/de/app.ts
@@ -1009,6 +1065,9 @@ const TranslatorTranslationAppGerman = {
1009
1065
  ["urlGeneratorHint"]: "Erzeuge eine Autorisierungs-URL, indem du die benötigten Bereiche auswählst.",
1010
1066
  ["redirectUrl"]: "Weiterleitungs-URL",
1011
1067
  ["generatedUrl"]: "Generierte URL",
1068
+ ["issuer"]: "Issuer",
1069
+ ["openidConfigurationUrl"]: "OpenID-Konfigurations-URL",
1070
+ ["jwksUrl"]: "JWKS-URL",
1012
1071
  ["toggleNavigation"]: "Navigation umschalten",
1013
1072
  ["sessionRenew"]: "Die Sitzung wird erneuert in {countdown}.",
1014
1073
  ["minutes"]: "Minute(n)",
@@ -1067,7 +1126,7 @@ const TranslatorTranslationClientGerman = {
1067
1126
  ["postLogoutRedirectURIHint"]: "URI-Muster, zu dem ein RP-initiierter Logout zurückleiten darf. Getrennt von den Login-Weiterleitungs-URIs. Ohne Eintrag endet der Logout immer auf der Bestätigungsseite.",
1068
1127
  ["baseUrlHint"]: "Adresse der Anwendung. Wird in der Kontokonsole als Link angezeigt. Ohne Eintrag erscheint nur der Name.",
1069
1128
  ["backchannelLogoutURIHint"]: "Endpunkt, der beim Ende einer Sitzung ein Logout-Token erhält (OIDC Back-Channel Logout). Eine http(s)-URL, keine Muster. Ohne Eintrag wird nichts gesendet.",
1070
- ["grantTypesHint"]: "Schränkt ein, welche OAuth2-Grants dieser Client verwenden darf. Ohne Auswahl sind alle Grants erlaubt.",
1129
+ ["grantTypesHint"]: "Schränkt ein, welche OAuth2-Grants dieser Client verwenden darf. Ohne Auswahl sind alle Grants erlaubt. Der Device-Grant muss ausdrücklich aufgeführt sein; eine leere Liste aktiviert ihn nicht.",
1071
1130
  ["authMethod"]: "Authentifizierungsmethode",
1072
1131
  ["authMethodNone"]: "Keine",
1073
1132
  ["authMethodSecret"]: "Gemeinsames Geheimnis",
@@ -1079,6 +1138,17 @@ const TranslatorTranslationClientGerman = {
1079
1138
  ["clientCertificateUriHint"]: "Das Zertifikat muss genau einmal diese exakte URI-SAN enthalten.",
1080
1139
  ["isActive"]: "Ist aktiv?",
1081
1140
  ["hashSecret"]: "Geheimnis hashen?",
1141
+ ["secretRotate"]: "Geheimnis rotieren",
1142
+ ["secretRotateHint"]: "Leer lassen, damit der Server ein Geheimnis erzeugt.",
1143
+ ["secretHashedHint"]: "Das Geheimnis ist gehasht gespeichert und kann nicht angezeigt werden. Rotiere es, um ein neues zu setzen.",
1144
+ ["secretMode"]: "Speicherung",
1145
+ ["secretModePlain"]: "Klartext (kann erneut angezeigt werden)",
1146
+ ["secretModeHashed"]: "Gehasht (wird einmal angezeigt)",
1147
+ ["secretModeEncrypted"]: "Verschlüsselt (kann erneut angezeigt werden)",
1148
+ ["secretModeEncryptedHint"]: "Das Geheimnis wird mit dem Verschlüsselungsschlüssel des Realms verschlüsselt gespeichert und kann berechtigten Lesern erneut angezeigt werden. Wird dieser Schlüssel deaktiviert oder gelöscht, können sich solche Clients nicht mehr authentifizieren.",
1149
+ ["secretShowOnce"]: "Kopiere das Geheimnis jetzt. Es wird nicht erneut angezeigt.",
1150
+ ["secretCopy"]: "Kopieren",
1151
+ ["secretCopied"]: "Kopiert",
1082
1152
  ["loginFailed"]: "Der Anmeldevorgang ist fehlgeschlagen",
1083
1153
  ["scopeGrantIntro"]: "Dies erlaubt der Anwendung {client},",
1084
1154
  ["onceAuthorizedRedirect"]: "Nach der Autorisierung werden Sie weitergeleitet zu {target}.",
@@ -1147,6 +1217,15 @@ const TranslatorTranslationClientGerman = {
1147
1217
  ["accessDeniedText"]: "Sie sind nicht berechtigt, auf diese Anwendung zuzugreifen.",
1148
1218
  ["clientAccessPolicyHint"]: "Ohne Richtlinie darf sich jede Identität des Realms anmelden.",
1149
1219
  ["consentStatusLoading"]: "Gewährte Berechtigungen werden geprüft…",
1220
+ ["deviceVerifyTitle"]: "Gerät verbinden",
1221
+ ["deviceCodeLabel"]: "Auf deinem Gerät angezeigter Code",
1222
+ ["deviceCodeHint"]: "Gib den Code genau so ein, wie er angezeigt wird. Bindestriche und Groß- oder Kleinschreibung spielen keine Rolle.",
1223
+ ["deviceCodeInvalid"]: "Der Code ist ungültig oder abgelaufen. Prüfe dein Gerät und versuche es erneut.",
1224
+ ["deviceVerifyConfirmText"]: "{{client}} auf einem anderen Gerät bittet um Zugriff auf dein Konto.",
1225
+ ["deviceVerifyScopes"]: "Es erhält folgende Berechtigungen:",
1226
+ ["deviceVerifyApproved"]: "Gerät verbunden. Du kannst diese Seite schließen und zu deinem Gerät zurückkehren.",
1227
+ ["deviceVerifyDenied"]: "Zugriff verweigert. Es wurde nichts verbunden; du kannst diese Seite schließen.",
1228
+ ["deviceVerifyThrottled"]: "Zu viele Versuche. Warte ein paar Minuten und versuche es erneut.",
1150
1229
  ["logoutConfirmTitle"]: "Abmelden",
1151
1230
  ["logoutConfirmText"]: "Möchten Sie sich abmelden?",
1152
1231
  ["logoutDone"]: "Sie wurden abgemeldet.",
@@ -1337,6 +1416,10 @@ const TranslatorTranslationErrorGerman = {
1337
1416
  [ErrorCode.OAUTH_RESPONSE_TYPE_UNSUPPORTED]: "Der Response-Typ wird nicht unterstützt.",
1338
1417
  [ErrorCode.OAUTH_SCOPE_INVALID]: "Der angeforderte Bereich ist ungültig.",
1339
1418
  [ErrorCode.OAUTH_SCOPE_INSUFFICIENT]: "Der gewährte Bereich reicht für diese Aktion nicht aus.",
1419
+ [ErrorCode.OAUTH_AUTHORIZATION_PENDING]: "Das Gerät wurde noch nicht freigegeben.",
1420
+ [ErrorCode.OAUTH_SLOW_DOWN]: "Das Gerät fragt zu häufig an.",
1421
+ [ErrorCode.OAUTH_DEVICE_CODE_EXPIRED]: "Der Gerätecode ist abgelaufen. Starte den Vorgang auf deinem Gerät erneut.",
1422
+ [ErrorCode.OAUTH_DEVICE_VERIFICATION_THROTTLED]: "Zu viele Bestätigungsversuche. Bitte versuche es später erneut.",
1340
1423
  [ErrorCode.PERMISSION_NOT_FOUND]: "Die Berechtigung konnte nicht gefunden werden.",
1341
1424
  [ErrorCode.PERMISSION_DENIED]: "Du hast keine Berechtigung, diese Aktion auszuführen.",
1342
1425
  [ErrorCode.PERMISSION_EVALUATION_FAILED]: "Die Berechtigung konnte nicht ausgewertet werden.",
@@ -1468,7 +1551,9 @@ const TranslatorTranslationActionFrench = {
1468
1551
  ["show"]: "Afficher",
1469
1552
  ["hide"]: "Masquer",
1470
1553
  ["remove"]: "Retirer",
1471
- ["retry"]: "Réessayer"
1554
+ ["retry"]: "Réessayer",
1555
+ ["copy"]: "Copier",
1556
+ ["copied"]: "Copié"
1472
1557
  };
1473
1558
  //#endregion
1474
1559
  //#region src/catalogs/fr/app.ts
@@ -1505,6 +1590,9 @@ const TranslatorTranslationAppFrench = {
1505
1590
  ["urlGeneratorHint"]: "Générez une URL d'autorisation en choisissant les portées dont elle a besoin pour fonctionner.",
1506
1591
  ["redirectUrl"]: "URL de redirection",
1507
1592
  ["generatedUrl"]: "URL générée",
1593
+ ["issuer"]: "Émetteur",
1594
+ ["openidConfigurationUrl"]: "URL de configuration OpenID",
1595
+ ["jwksUrl"]: "URL JWKS",
1508
1596
  ["toggleNavigation"]: "Basculer la navigation",
1509
1597
  ["sessionRenew"]: "La session sera renouvelée dans {countdown}.",
1510
1598
  ["minutes"]: "minute(s)",
@@ -1563,7 +1651,7 @@ const TranslatorTranslationClientFrench = {
1563
1651
  ["postLogoutRedirectURIHint"]: "Modèle d’URI vers lequel une déconnexion initiée par le RP peut rediriger. Distinct des URI de redirection de connexion. Sans entrée, la déconnexion se termine toujours sur la page de confirmation.",
1564
1652
  ["baseUrlHint"]: "Adresse de l'application. Affichée comme lien dans la console de compte. Sans entrée, seul le nom apparaît.",
1565
1653
  ["backchannelLogoutURIHint"]: "Point de terminaison qui reçoit un jeton de déconnexion à la fin d'une session (OIDC Back-Channel Logout). Une URL http(s), sans modèle. Sans entrée, rien n'est envoyé.",
1566
- ["grantTypesHint"]: "Restreint les types d’autorisation OAuth2 que ce client peut utiliser. Sans sélection, tous sont autorisés.",
1654
+ ["grantTypesHint"]: "Restreint les types d’autorisation OAuth2 que ce client peut utiliser. Sans sélection, tous sont autorisés. Le type d’autorisation pour appareils doit être listé explicitement ; une liste vide ne l’active pas.",
1567
1655
  ["authMethod"]: "Méthode d’authentification",
1568
1656
  ["authMethodNone"]: "Aucune",
1569
1657
  ["authMethodSecret"]: "Secret partagé",
@@ -1575,6 +1663,17 @@ const TranslatorTranslationClientFrench = {
1575
1663
  ["clientCertificateUriHint"]: "Le certificat doit contenir exactement une fois ce SAN URI.",
1576
1664
  ["isActive"]: "Est actif ?",
1577
1665
  ["hashSecret"]: "Hacher le secret ?",
1666
+ ["secretRotate"]: "Renouveler le secret",
1667
+ ["secretRotateHint"]: "Laissez le secret vide pour que le serveur en génère un.",
1668
+ ["secretHashedHint"]: "Le secret est stocké haché et ne peut pas être affiché. Renouvelez-le pour en définir un nouveau.",
1669
+ ["secretMode"]: "Stockage",
1670
+ ["secretModePlain"]: "En clair (peut être affiché à nouveau)",
1671
+ ["secretModeHashed"]: "Haché (affiché une seule fois)",
1672
+ ["secretModeEncrypted"]: "Chiffré (peut être affiché à nouveau)",
1673
+ ["secretModeEncryptedHint"]: "Le secret est stocké chiffré avec la clé de chiffrement du realm et peut être affiché à nouveau à un lecteur autorisé. Désactiver ou supprimer cette clé empêche ces clients de s'authentifier.",
1674
+ ["secretShowOnce"]: "Copiez le secret maintenant. Il ne sera plus affiché.",
1675
+ ["secretCopy"]: "Copier",
1676
+ ["secretCopied"]: "Copié",
1578
1677
  ["loginFailed"]: "L'opération de connexion a échoué",
1579
1678
  ["scopeGrantIntro"]: "Cela permettra à l'application {client} de",
1580
1679
  ["onceAuthorizedRedirect"]: "Une fois autorisé, vous serez redirigé vers {target}.",
@@ -1643,6 +1742,15 @@ const TranslatorTranslationClientFrench = {
1643
1742
  ["accessDeniedText"]: "Vous n'êtes pas autorisé à accéder à cette application.",
1644
1743
  ["clientAccessPolicyHint"]: "Sans politique, toute identité du domaine peut se connecter.",
1645
1744
  ["consentStatusLoading"]: "Vérification des permissions accordées…",
1745
+ ["deviceVerifyTitle"]: "Connecter un appareil",
1746
+ ["deviceCodeLabel"]: "Code affiché sur votre appareil",
1747
+ ["deviceCodeHint"]: "Saisissez le code exactement tel qu'il est affiché. Les tirets et la casse n'ont pas d'importance.",
1748
+ ["deviceCodeInvalid"]: "Le code est invalide ou a expiré. Vérifiez votre appareil et réessayez.",
1749
+ ["deviceVerifyConfirmText"]: "{{client}} sur un autre appareil demande l'accès à votre compte.",
1750
+ ["deviceVerifyScopes"]: "Il pourra :",
1751
+ ["deviceVerifyApproved"]: "Appareil connecté. Vous pouvez fermer cette page et retourner à votre appareil.",
1752
+ ["deviceVerifyDenied"]: "Accès refusé. Rien n'a été connecté ; vous pouvez fermer cette page.",
1753
+ ["deviceVerifyThrottled"]: "Trop de tentatives. Attendez quelques minutes et réessayez.",
1646
1754
  ["logoutConfirmTitle"]: "Se déconnecter",
1647
1755
  ["logoutConfirmText"]: "Voulez-vous vous déconnecter ?",
1648
1756
  ["logoutDone"]: "Vous avez été déconnecté.",
@@ -1833,6 +1941,10 @@ const TranslatorTranslationErrorFrench = {
1833
1941
  [ErrorCode.OAUTH_RESPONSE_TYPE_UNSUPPORTED]: "Le type de réponse n'est pas pris en charge.",
1834
1942
  [ErrorCode.OAUTH_SCOPE_INVALID]: "La portée demandée est invalide.",
1835
1943
  [ErrorCode.OAUTH_SCOPE_INSUFFICIENT]: "La portée accordée est insuffisante pour cette action.",
1944
+ [ErrorCode.OAUTH_AUTHORIZATION_PENDING]: "L'appareil n'a pas encore été approuvé.",
1945
+ [ErrorCode.OAUTH_SLOW_DOWN]: "L'appareil interroge le serveur trop fréquemment.",
1946
+ [ErrorCode.OAUTH_DEVICE_CODE_EXPIRED]: "Le code de l'appareil a expiré. Recommencez sur votre appareil.",
1947
+ [ErrorCode.OAUTH_DEVICE_VERIFICATION_THROTTLED]: "Trop de tentatives de vérification. Veuillez réessayer plus tard.",
1836
1948
  [ErrorCode.PERMISSION_NOT_FOUND]: "La permission est introuvable.",
1837
1949
  [ErrorCode.PERMISSION_DENIED]: "Vous n'avez pas la permission d'effectuer cette action.",
1838
1950
  [ErrorCode.PERMISSION_EVALUATION_FAILED]: "La permission n'a pas pu être évaluée.",
@@ -1964,7 +2076,9 @@ const TranslatorTranslationActionSpanish = {
1964
2076
  ["show"]: "Mostrar",
1965
2077
  ["hide"]: "Ocultar",
1966
2078
  ["remove"]: "Quitar",
1967
- ["retry"]: "Reintentar"
2079
+ ["retry"]: "Reintentar",
2080
+ ["copy"]: "Copiar",
2081
+ ["copied"]: "Copiado"
1968
2082
  };
1969
2083
  //#endregion
1970
2084
  //#region src/catalogs/es/app.ts
@@ -2001,6 +2115,9 @@ const TranslatorTranslationAppSpanish = {
2001
2115
  ["urlGeneratorHint"]: "Genere una URL de autorización eligiendo los ámbitos que necesita para funcionar.",
2002
2116
  ["redirectUrl"]: "URL de redirección",
2003
2117
  ["generatedUrl"]: "URL generada",
2118
+ ["issuer"]: "Emisor",
2119
+ ["openidConfigurationUrl"]: "URL de configuración OpenID",
2120
+ ["jwksUrl"]: "URL de JWKS",
2004
2121
  ["toggleNavigation"]: "Alternar navegación",
2005
2122
  ["sessionRenew"]: "La sesión se renovará en {countdown}.",
2006
2123
  ["minutes"]: "minuto(s)",
@@ -2059,7 +2176,7 @@ const TranslatorTranslationClientSpanish = {
2059
2176
  ["postLogoutRedirectURIHint"]: "Patrón de URI al que puede redirigir un cierre de sesión iniciado por el RP. Independiente de las URI de redirección de inicio de sesión. Sin entradas, el cierre de sesión termina siempre en la página de confirmación.",
2060
2177
  ["baseUrlHint"]: "Dirección de la aplicación. Se muestra como enlace en la consola de cuenta. Sin entrada, solo aparece el nombre.",
2061
2178
  ["backchannelLogoutURIHint"]: "Punto final que recibe un token de cierre de sesión cuando termina una sesión (OIDC Back-Channel Logout). Una URL http(s), sin patrones. Sin entrada, no se envía nada.",
2062
- ["grantTypesHint"]: "Restringe qué concesiones OAuth2 puede usar este cliente. Sin selección, se permiten todas.",
2179
+ ["grantTypesHint"]: "Restringe qué concesiones OAuth2 puede usar este cliente. Sin selección, se permiten todas. La concesión para dispositivos debe indicarse explícitamente; una lista vacía no la habilita.",
2063
2180
  ["authMethod"]: "Método de autenticación",
2064
2181
  ["authMethodNone"]: "Ninguno",
2065
2182
  ["authMethodSecret"]: "Secreto compartido",
@@ -2071,6 +2188,17 @@ const TranslatorTranslationClientSpanish = {
2071
2188
  ["clientCertificateUriHint"]: "El certificado debe contener exactamente una vez este SAN de URI.",
2072
2189
  ["isActive"]: "¿Está activo?",
2073
2190
  ["hashSecret"]: "¿Aplicar hash al secreto?",
2191
+ ["secretRotate"]: "Rotar el secreto",
2192
+ ["secretRotateHint"]: "Deja el secreto vacío para que el servidor genere uno.",
2193
+ ["secretHashedHint"]: "El secreto se almacena con hash y no se puede mostrar. Rótalo para establecer uno nuevo.",
2194
+ ["secretMode"]: "Almacenamiento",
2195
+ ["secretModePlain"]: "Texto plano (se puede volver a mostrar)",
2196
+ ["secretModeHashed"]: "Con hash (se muestra una vez)",
2197
+ ["secretModeEncrypted"]: "Cifrado (se puede volver a mostrar)",
2198
+ ["secretModeEncryptedHint"]: "El secreto se guarda cifrado con la clave de cifrado del realm y se puede volver a mostrar a un lector autorizado. Desactivar o eliminar esa clave impide que esos clientes se autentiquen.",
2199
+ ["secretShowOnce"]: "Copia el secreto ahora. No se volverá a mostrar.",
2200
+ ["secretCopy"]: "Copiar",
2201
+ ["secretCopied"]: "Copiado",
2074
2202
  ["loginFailed"]: "La operación de inicio de sesión falló",
2075
2203
  ["scopeGrantIntro"]: "Esto permitirá que la aplicación {client}",
2076
2204
  ["onceAuthorizedRedirect"]: "Una vez autorizado, será redirigido a {target}.",
@@ -2139,6 +2267,15 @@ const TranslatorTranslationClientSpanish = {
2139
2267
  ["accessDeniedText"]: "No tienes permiso para acceder a esta aplicación.",
2140
2268
  ["clientAccessPolicyHint"]: "Sin política, cualquier identidad del realm puede iniciar sesión.",
2141
2269
  ["consentStatusLoading"]: "Comprobando los permisos concedidos…",
2270
+ ["deviceVerifyTitle"]: "Conectar un dispositivo",
2271
+ ["deviceCodeLabel"]: "Código mostrado en tu dispositivo",
2272
+ ["deviceCodeHint"]: "Introduce el código exactamente como se muestra. Los guiones y las mayúsculas no importan.",
2273
+ ["deviceCodeInvalid"]: "El código no es válido o ha caducado. Revisa tu dispositivo e inténtalo de nuevo.",
2274
+ ["deviceVerifyConfirmText"]: "{{client}} en otro dispositivo solicita acceso a tu cuenta.",
2275
+ ["deviceVerifyScopes"]: "Podrá:",
2276
+ ["deviceVerifyApproved"]: "Dispositivo conectado. Puedes cerrar esta página y volver a tu dispositivo.",
2277
+ ["deviceVerifyDenied"]: "Acceso denegado. No se conectó nada; puedes cerrar esta página.",
2278
+ ["deviceVerifyThrottled"]: "Demasiados intentos. Espera unos minutos e inténtalo de nuevo.",
2142
2279
  ["logoutConfirmTitle"]: "Cerrar sesión",
2143
2280
  ["logoutConfirmText"]: "¿Quieres cerrar sesión?",
2144
2281
  ["logoutDone"]: "Has cerrado sesión.",
@@ -2329,6 +2466,10 @@ const TranslatorTranslationErrorSpanish = {
2329
2466
  [ErrorCode.OAUTH_RESPONSE_TYPE_UNSUPPORTED]: "El tipo de respuesta no es compatible.",
2330
2467
  [ErrorCode.OAUTH_SCOPE_INVALID]: "El ámbito solicitado no es válido.",
2331
2468
  [ErrorCode.OAUTH_SCOPE_INSUFFICIENT]: "El ámbito concedido es insuficiente para esta acción.",
2469
+ [ErrorCode.OAUTH_AUTHORIZATION_PENDING]: "El dispositivo aún no ha sido aprobado.",
2470
+ [ErrorCode.OAUTH_SLOW_DOWN]: "El dispositivo consulta con demasiada frecuencia.",
2471
+ [ErrorCode.OAUTH_DEVICE_CODE_EXPIRED]: "El código del dispositivo ha caducado. Vuelva a empezar en su dispositivo.",
2472
+ [ErrorCode.OAUTH_DEVICE_VERIFICATION_THROTTLED]: "Demasiados intentos de verificación. Inténtelo de nuevo más tarde.",
2332
2473
  [ErrorCode.PERMISSION_NOT_FOUND]: "No se pudo encontrar el permiso.",
2333
2474
  [ErrorCode.PERMISSION_DENIED]: "No tiene permiso para realizar esta acción.",
2334
2475
  [ErrorCode.PERMISSION_EVALUATION_FAILED]: "No se pudo evaluar el permiso.",