@eifi1/ui-kit 0.28.1 → 0.30.0

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.
Files changed (228) hide show
  1. package/README.md +44 -4
  2. package/dist/account/account-parts.d.ts +21 -0
  3. package/dist/account/account-parts.js +40 -0
  4. package/dist/account/account-parts.js.map +1 -0
  5. package/dist/account/data-export-setting.d.ts +73 -0
  6. package/dist/account/data-export-setting.js +113 -0
  7. package/dist/account/data-export-setting.js.map +1 -0
  8. package/dist/account/delete-account-setting.d.ts +91 -0
  9. package/dist/account/delete-account-setting.js +199 -0
  10. package/dist/account/delete-account-setting.js.map +1 -0
  11. package/dist/account/email-change-setting.d.ts +136 -0
  12. package/dist/account/email-change-setting.js +277 -0
  13. package/dist/account/email-change-setting.js.map +1 -0
  14. package/dist/account/sessions-setting.d.ts +110 -0
  15. package/dist/account/sessions-setting.js +146 -0
  16. package/dist/account/sessions-setting.js.map +1 -0
  17. package/dist/admin/admin-action-confirm.d.ts +91 -0
  18. package/dist/admin/admin-action-confirm.js +276 -0
  19. package/dist/admin/admin-action-confirm.js.map +1 -0
  20. package/dist/admin/admin-action-log.d.ts +105 -0
  21. package/dist/admin/admin-action-log.js +153 -0
  22. package/dist/admin/admin-action-log.js.map +1 -0
  23. package/dist/admin/admin-parts.d.ts +40 -0
  24. package/dist/admin/admin-parts.js +45 -0
  25. package/dist/admin/admin-parts.js.map +1 -0
  26. package/dist/admin/invitations-panel.d.ts +91 -0
  27. package/dist/admin/invitations-panel.js +289 -0
  28. package/dist/admin/invitations-panel.js.map +1 -0
  29. package/dist/admin/reviewer-scope-editor.d.ts +91 -0
  30. package/dist/admin/reviewer-scope-editor.js +134 -0
  31. package/dist/admin/reviewer-scope-editor.js.map +1 -0
  32. package/dist/admin/role-select.d.ts +91 -0
  33. package/dist/admin/role-select.js +128 -0
  34. package/dist/admin/role-select.js.map +1 -0
  35. package/dist/admin/transfer-ownership-dialog.d.ts +91 -0
  36. package/dist/admin/transfer-ownership-dialog.js +83 -0
  37. package/dist/admin/transfer-ownership-dialog.js.map +1 -0
  38. package/dist/admin/user-roster.d.ts +91 -0
  39. package/dist/admin/user-roster.js +285 -0
  40. package/dist/admin/user-roster.js.map +1 -0
  41. package/dist/auth/accept-invitation.d.ts +90 -0
  42. package/dist/auth/accept-invitation.js +117 -0
  43. package/dist/auth/accept-invitation.js.map +1 -0
  44. package/dist/auth/auth-errors.d.ts +139 -0
  45. package/dist/auth/auth-errors.js +92 -0
  46. package/dist/auth/auth-errors.js.map +1 -0
  47. package/dist/auth/complete-name-dialog.d.ts +71 -0
  48. package/dist/auth/complete-name-dialog.js +168 -0
  49. package/dist/auth/complete-name-dialog.js.map +1 -0
  50. package/dist/auth/email-tag.d.ts +60 -0
  51. package/dist/auth/email-tag.js +23 -0
  52. package/dist/auth/email-tag.js.map +1 -0
  53. package/dist/auth/forgot-password-form.d.ts +86 -0
  54. package/dist/auth/forgot-password-form.js +123 -0
  55. package/dist/auth/forgot-password-form.js.map +1 -0
  56. package/dist/auth/form-rules.d.ts +27 -0
  57. package/dist/auth/form-rules.js +23 -0
  58. package/dist/auth/form-rules.js.map +1 -0
  59. package/dist/auth/new-password-fields.d.ts +38 -0
  60. package/dist/auth/new-password-fields.js +54 -0
  61. package/dist/auth/new-password-fields.js.map +1 -0
  62. package/dist/auth/not-found-page.d.ts +57 -0
  63. package/dist/auth/not-found-page.js +40 -0
  64. package/dist/auth/not-found-page.js.map +1 -0
  65. package/dist/auth/register-form.d.ts +91 -0
  66. package/dist/auth/register-form.js +270 -0
  67. package/dist/auth/register-form.js.map +1 -0
  68. package/dist/auth/reset-password-form.d.ts +131 -0
  69. package/dist/auth/reset-password-form.js +167 -0
  70. package/dist/auth/reset-password-form.js.map +1 -0
  71. package/dist/auth/sign-in-form.d.ts +295 -0
  72. package/dist/auth/sign-in-form.js +426 -0
  73. package/dist/auth/sign-in-form.js.map +1 -0
  74. package/dist/auth/status-parts.d.ts +78 -0
  75. package/dist/auth/status-parts.js +83 -0
  76. package/dist/auth/status-parts.js.map +1 -0
  77. package/dist/auth/verify-email.d.ts +126 -0
  78. package/dist/auth/verify-email.js +243 -0
  79. package/dist/auth/verify-email.js.map +1 -0
  80. package/dist/chart.d.ts +25 -5
  81. package/dist/components/account-chips.d.ts +47 -7
  82. package/dist/components/account-chips.js +19 -3
  83. package/dist/components/account-chips.js.map +1 -1
  84. package/dist/components/account-settings-labels.d.ts +12 -1
  85. package/dist/components/account-settings-labels.js +4 -1
  86. package/dist/components/account-settings-labels.js.map +1 -1
  87. package/dist/components/account-settings.d.ts +61 -6
  88. package/dist/components/account-settings.js +115 -15
  89. package/dist/components/account-settings.js.map +1 -1
  90. package/dist/components/amount-input.d.ts +26 -5
  91. package/dist/components/button-group.d.ts +26 -5
  92. package/dist/components/calculator.d.ts +26 -5
  93. package/dist/components/confirm-dialog.d.ts +26 -5
  94. package/dist/components/copy-button.d.ts +23 -2
  95. package/dist/components/danger-confirm.d.ts +26 -5
  96. package/dist/components/facing-pair.d.ts +26 -5
  97. package/dist/components/file-button.d.ts +26 -5
  98. package/dist/components/file-dropzone.d.ts +26 -5
  99. package/dist/components/form-actions.d.ts +26 -5
  100. package/dist/components/iban-input.d.ts +26 -5
  101. package/dist/components/language-select.d.ts +26 -12
  102. package/dist/components/legal-page.d.ts +26 -5
  103. package/dist/components/legal.d.ts +26 -5
  104. package/dist/components/money-field.d.ts +26 -5
  105. package/dist/components/number-field.d.ts +26 -5
  106. package/dist/components/number-input.d.ts +26 -5
  107. package/dist/components/numpad-sheet.d.ts +26 -5
  108. package/dist/components/phone-input.d.ts +26 -5
  109. package/dist/components/series-chart.d.ts +26 -5
  110. package/dist/components/settings-fields.d.ts +25 -7
  111. package/dist/components/share-card.d.ts +25 -4
  112. package/dist/components/text-link.d.ts +26 -5
  113. package/dist/components/time-input.d.ts +26 -5
  114. package/dist/components/ui.d.ts +23 -2
  115. package/dist/components/user-avatar.d.ts +16 -2
  116. package/dist/components/user-avatar.js +7 -3
  117. package/dist/components/user-avatar.js.map +1 -1
  118. package/dist/{kit-labels-Du0uHBq4.d.ts → delete-account-setting-CGVMckMw.d.ts} +6654 -5302
  119. package/dist/feedback/feedback-attachment.d.ts +26 -5
  120. package/dist/feedback/feedback-context.d.ts +26 -5
  121. package/dist/feedback/feedback-crash.d.ts +26 -5
  122. package/dist/feedback/feedback-dialog.d.ts +26 -5
  123. package/dist/feedback/feedback-inbox.d.ts +26 -5
  124. package/dist/feedback/feedback-labels.d.ts +26 -5
  125. package/dist/feedback/feedback-menu.d.ts +26 -5
  126. package/dist/feedback/feedback-record.d.ts +26 -5
  127. package/dist/feedback/feedback-row-detail.d.ts +26 -5
  128. package/dist/feedback/feedback-status-undo.d.ts +26 -5
  129. package/dist/feedback/feedback-submit.d.ts +26 -5
  130. package/dist/feedback/feedback-swipe.d.ts +26 -5
  131. package/dist/feedback/feedback-table.d.ts +23 -2
  132. package/dist/feedback/feedback-thread.d.ts +26 -5
  133. package/dist/feedback.d.ts +26 -5
  134. package/dist/hooks/use-anchored-panel.d.ts +6 -2
  135. package/dist/hooks/use-anchored-panel.js +2 -1
  136. package/dist/hooks/use-anchored-panel.js.map +1 -1
  137. package/dist/hooks/use-file-drop.d.ts +26 -5
  138. package/dist/i18n/defaults.d.ts +26 -5
  139. package/dist/i18n/defaults.js +40 -0
  140. package/dist/i18n/defaults.js.map +1 -1
  141. package/dist/i18n/german.d.ts +26 -5
  142. package/dist/i18n/german.js +343 -2
  143. package/dist/i18n/german.js.map +1 -1
  144. package/dist/i18n/kit-labels.d.ts +23 -2
  145. package/dist/i18n/kit-labels.js.map +1 -1
  146. package/dist/i18n/languages.d.ts +21 -204
  147. package/dist/i18n/locales/de-CH.d.ts +26 -5
  148. package/dist/i18n/locales/en.d.ts +26 -5
  149. package/dist/i18n/locales/es.d.ts +26 -5
  150. package/dist/i18n/locales/es.js +337 -3
  151. package/dist/i18n/locales/es.js.map +1 -1
  152. package/dist/i18n/locales/fr.d.ts +26 -5
  153. package/dist/i18n/locales/fr.js +344 -2
  154. package/dist/i18n/locales/fr.js.map +1 -1
  155. package/dist/i18n/locales/hu.d.ts +26 -5
  156. package/dist/i18n/locales/hu.js +337 -3
  157. package/dist/i18n/locales/hu.js.map +1 -1
  158. package/dist/i18n/locales/it.d.ts +26 -5
  159. package/dist/i18n/locales/it.js +342 -2
  160. package/dist/i18n/locales/it.js.map +1 -1
  161. package/dist/i18n/locales/zh.d.ts +26 -5
  162. package/dist/i18n/locales/zh.js +333 -2
  163. package/dist/i18n/locales/zh.js.map +1 -1
  164. package/dist/i18n/review.d.ts +26 -5
  165. package/dist/i18n/review.js +45 -1
  166. package/dist/i18n/review.js.map +1 -1
  167. package/dist/index.d.ts +19 -3
  168. package/dist/index.js +89 -0
  169. package/dist/index.js.map +1 -1
  170. package/dist/lib/person-name.d.ts +69 -0
  171. package/dist/lib/person-name.js +65 -0
  172. package/dist/lib/person-name.js.map +1 -0
  173. package/dist/rhf/fields.d.ts +26 -5
  174. package/dist/rhf/form.d.ts +26 -5
  175. package/dist/rhf.d.ts +26 -5
  176. package/dist/shell/app-shell.d.ts +26 -5
  177. package/dist/shell/company-switcher.d.ts +59 -0
  178. package/dist/shell/company-switcher.js +85 -0
  179. package/dist/shell/company-switcher.js.map +1 -0
  180. package/dist/shell/top-bar-brand.d.ts +26 -5
  181. package/dist/shell/topbar-action-menu.d.ts +1 -0
  182. package/dist/shell.d.ts +20 -5
  183. package/dist/wizard/stepper-nav.d.ts +26 -5
  184. package/dist/wizard.d.ts +26 -5
  185. package/package.json +1 -1
  186. package/src/account/account-parts.ts +67 -0
  187. package/src/account/data-export-setting.tsx +218 -0
  188. package/src/account/delete-account-setting.tsx +362 -0
  189. package/src/account/email-change-setting.tsx +457 -0
  190. package/src/account/sessions-setting.tsx +283 -0
  191. package/src/admin/admin-action-confirm.tsx +495 -0
  192. package/src/admin/admin-action-log.tsx +297 -0
  193. package/src/admin/admin-parts.ts +82 -0
  194. package/src/admin/invitations-panel.tsx +516 -0
  195. package/src/admin/reviewer-scope-editor.tsx +234 -0
  196. package/src/admin/role-select.tsx +286 -0
  197. package/src/admin/transfer-ownership-dialog.tsx +172 -0
  198. package/src/admin/user-roster.tsx +573 -0
  199. package/src/auth/accept-invitation.tsx +227 -0
  200. package/src/auth/auth-errors.ts +262 -0
  201. package/src/auth/complete-name-dialog.tsx +253 -0
  202. package/src/auth/email-tag.ts +75 -0
  203. package/src/auth/forgot-password-form.tsx +229 -0
  204. package/src/auth/form-rules.ts +40 -0
  205. package/src/auth/new-password-fields.tsx +85 -0
  206. package/src/auth/not-found-page.tsx +98 -0
  207. package/src/auth/register-form.tsx +477 -0
  208. package/src/auth/reset-password-form.tsx +351 -0
  209. package/src/auth/sign-in-form.tsx +859 -0
  210. package/src/auth/status-parts.tsx +138 -0
  211. package/src/auth/verify-email.tsx +409 -0
  212. package/src/components/account-chips.tsx +64 -7
  213. package/src/components/account-settings-labels.ts +15 -1
  214. package/src/components/account-settings.tsx +199 -23
  215. package/src/components/user-avatar.tsx +22 -4
  216. package/src/hooks/use-anchored-panel.ts +14 -3
  217. package/src/i18n/defaults.ts +40 -0
  218. package/src/i18n/german.ts +379 -0
  219. package/src/i18n/kit-labels.tsx +60 -0
  220. package/src/i18n/locales/es.ts +371 -1
  221. package/src/i18n/locales/fr.ts +379 -0
  222. package/src/i18n/locales/hu.ts +366 -1
  223. package/src/i18n/locales/it.ts +373 -0
  224. package/src/i18n/locales/zh.ts +343 -0
  225. package/src/i18n/review.ts +44 -0
  226. package/src/index.ts +146 -0
  227. package/src/lib/person-name.ts +157 -0
  228. package/src/shell/company-switcher.tsx +140 -0
@@ -14,6 +14,15 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
14
14
  const num = new Intl.NumberFormat(numberLocale);
15
15
  const n = (value: number) => num.format(value);
16
16
  const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);
17
+ // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
18
+ // src/auth/auth-errors.ts: no wait → "un momento", under a minute → seconds, else
19
+ // minutes rounded up.
20
+ const wait = (seconds: number) =>
21
+ seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`;
22
+ const rateLimited = (seconds?: number) =>
23
+ !seconds || seconds <= 0
24
+ ? "Demasiados intentos. Espere un momento e inténtelo de nuevo."
25
+ : `Demasiados intentos. Inténtelo de nuevo en ${wait(seconds)}.`;
17
26
 
18
27
  return {
19
28
  feedbackAttachment: {
@@ -153,6 +162,9 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
153
162
  memberSince: "Miembro desde",
154
163
  displayName: "Nombre visible",
155
164
  save: "Guardar",
165
+ firstName: "Nombre",
166
+ lastName: "Apellidos",
167
+ nameRequired: "Introduzca el nombre y los apellidos.",
156
168
  },
157
169
  password: {
158
170
  title: "Cambiar contraseña",
@@ -699,6 +711,8 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
699
711
  registered: "Registrada",
700
712
  unverified: "Sin verificar",
701
713
  passwordChange: "Debe cambiar la contraseña",
714
+ deletion: "Eliminación solicitada",
715
+ deletionOn: (date) => `Eliminación el ${date}`,
702
716
  },
703
717
  shareCard: {
704
718
  dialogTitle: "Compartir",
@@ -761,7 +775,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
761
775
  },
762
776
  translation: {
763
777
  note: (o) =>
764
- `Esta es una traducción ofrecida para su comodidad. La versión vinculante es la versión en ${o.bindingLanguage}.`,
778
+ `Esta es una traducción ofrecida para su comodidad; solo la versión en ${o.bindingLanguage} es vinculante.`,
765
779
  show: (o) => `Ver la versión en ${o.bindingLanguage}`,
766
780
  },
767
781
  sections: {
@@ -831,6 +845,362 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
831
845
  },
832
846
  },
833
847
  },
848
+ // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Spanish (auth.*,
849
+ // notfound) where it says the same, brought into line with the kit's English and this
850
+ // catalogue's words ("Nueva contraseña", "verificación en dos pasos"); written fresh
851
+ // where Kurvenschmiede has no such text yet. Formal "usted". It goes back to
852
+ // Kurvenschmiede for review.
853
+ signIn: {
854
+ email: "Correo electrónico",
855
+ password: "Contraseña",
856
+ submit: "Iniciar sesión",
857
+ passkey: "Iniciar sesión con una llave de acceso",
858
+ forgotPassword: "¿Ha olvidado su contraseña?",
859
+ noAccount: "¿Aún no tiene cuenta?",
860
+ register: "Crear cuenta",
861
+ invalidCredentials: "El correo electrónico o la contraseña no son correctos.",
862
+ failed: "No se pudo iniciar sesión. Inténtelo de nuevo.",
863
+ passkeyFailed: "No se pudo iniciar sesión con la llave de acceso.",
864
+ deactivatedHint: "¿Cuenta desactivada? Escriba a {contact}.",
865
+ tagHint: (taggedAddress) => `¿Se registró con ${taggedAddress}? Use esa dirección.`,
866
+ twoFactorTitle: "Verificación en dos pasos",
867
+ twoFactorIntro: "Introduzca el código que muestra su app de autenticación.",
868
+ code: "Código de verificación",
869
+ verify: "Verificar",
870
+ codeInvalid: "El código de verificación no es válido.",
871
+ setPasswordTitle: "Elija una nueva contraseña",
872
+ setPasswordIntro:
873
+ "Se ha solicitado una nueva contraseña para esta cuenta. Elija una y podrá continuar enseguida.",
874
+ newPassword: "Nueva contraseña",
875
+ confirmPassword: "Repita la nueva contraseña",
876
+ passwordMismatch: "Las contraseñas no coinciden.",
877
+ setPasswordSubmit: "Establecer la contraseña e iniciar sesión",
878
+ setPasswordFailed: "No se pudo establecer la contraseña.",
879
+ expired: "Este inicio de sesión ha caducado. Inicie sesión de nuevo.",
880
+ backToSignIn: "Volver a iniciar sesión",
881
+ useRecoveryCode: "Usar un código de respaldo",
882
+ useAuthenticatorCode: "Usar su app de autenticación",
883
+ recoveryCode: "Código de respaldo",
884
+ recoveryIntro:
885
+ "Introduzca uno de los códigos de respaldo que guardó al activar la verificación en dos pasos.",
886
+ recoveryCodeHint: (length) =>
887
+ `${n(length)} letras y dígitos. Los guiones y los espacios no importan.`,
888
+ recoveryCodeInvalid: "Este código de respaldo no es válido o ya se ha usado.",
889
+ rateLimited,
890
+ },
891
+ register: {
892
+ firstName: "Nombre",
893
+ lastName: "Apellidos",
894
+ email: "Correo electrónico",
895
+ emailTagUse: (address) => `Usar ${address}`,
896
+ emailTagHint:
897
+ "Muchos proveedores entregan nombre+etiqueta@… en el mismo buzón, así que el correo de esta aplicación es fácil de filtrar y rastrear. Compruebe que el suyo lo hace antes de confiar en ello: tendría que iniciar sesión con la dirección etiquetada.",
898
+ invitedEmailHint: "La dirección a la que se envió su invitación.",
899
+ invitedTagNote: "La dirección etiquetada recibe su propio correo de confirmación.",
900
+ password: "Contraseña",
901
+ confirmPassword: "Repita la contraseña",
902
+ passwordMismatch: "Las contraseñas no coinciden.",
903
+ language: "Idioma",
904
+ submit: "Crear cuenta",
905
+ haveAccount: "¿Ya tiene una cuenta?",
906
+ signIn: "Iniciar sesión",
907
+ emailTaken: "Ya existe una cuenta con esta dirección de correo electrónico.",
908
+ registrationClosed:
909
+ "Solo se pueden crear cuentas nuevas por invitación. Pida al operador que envíe una invitación a su dirección de correo electrónico.",
910
+ invitationInvalid: "Este enlace de invitación no es válido.",
911
+ invitationExpired: "Esta invitación ha caducado. Pida una nueva.",
912
+ failed: "No se pudo completar el registro. Inténtelo de nuevo.",
913
+ rateLimited,
914
+ },
915
+ completeName: {
916
+ title: "Complete su nombre",
917
+ description:
918
+ "El nombre y los apellidos ahora se piden por separado. Compruebe lo que ya está rellenado y añada lo que falte.",
919
+ firstName: "Nombre",
920
+ lastName: "Apellidos",
921
+ save: "Guardar",
922
+ later: "Más tarde",
923
+ failed: "No se pudo guardar su nombre. Inténtelo de nuevo.",
924
+ },
925
+ forgotPassword: {
926
+ title: "Restablecer la contraseña",
927
+ intro:
928
+ "Introduzca la dirección de correo electrónico de su cuenta. Le enviaremos un enlace para elegir una nueva contraseña.",
929
+ email: "Correo electrónico",
930
+ submit: "Enviar el enlace",
931
+ sent: (email) => `Si existe una cuenta para ${email}, el enlace está en camino.`,
932
+ sentHint:
933
+ "El enlace es válido durante una hora y funciona una sola vez. Revise también la carpeta de correo no deseado.",
934
+ backToSignIn: "Volver a iniciar sesión",
935
+ error: "La solicitud ha fallado. Inténtelo de nuevo más tarde.",
936
+ rateLimited,
937
+ },
938
+ resetPassword: {
939
+ title: "Elija una nueva contraseña",
940
+ checking: "Comprobando el enlace…",
941
+ intro: (email) => `Está estableciendo una nueva contraseña para ${email}.`,
942
+ newPassword: "Nueva contraseña",
943
+ confirmPassword: "Repita la nueva contraseña",
944
+ mismatch: "Las contraseñas no coinciden.",
945
+ submit: "Guardar la contraseña",
946
+ failed: "No se pudo cambiar la contraseña.",
947
+ noToken: "Este enlace está incompleto.",
948
+ invalid: "Este enlace no es válido o ha caducado.",
949
+ invalidHint: "Los enlaces son válidos durante una hora y funcionan una sola vez. Solicite uno nuevo.",
950
+ requestNew: "Solicitar un enlace nuevo",
951
+ success: "Su contraseña se ha cambiado. Ya puede iniciar sesión con ella.",
952
+ sessionsEnded:
953
+ "Se ha cerrado la sesión en los dispositivos conectados; tendrá que volver a iniciarla en ellos.",
954
+ signIn: "Ir a iniciar sesión",
955
+ rateLimited,
956
+ },
957
+ verifyEmail: {
958
+ title: "Confirme su dirección de correo electrónico",
959
+ verifying: "Confirmando…",
960
+ verified: "Su dirección de correo electrónico está confirmada.",
961
+ continue: "Continuar",
962
+ invalid: "Este enlace de confirmación no es válido",
963
+ expired: "Este enlace de confirmación ha caducado",
964
+ noToken: "A este enlace le falta el token de confirmación.",
965
+ invalidHint: "Es posible que el enlace haya caducado o que ya se haya usado.",
966
+ requestInApp: "Puede solicitar uno nuevo desde la aplicación.",
967
+ requestHere: "Puede solicitar uno nuevo aquí.",
968
+ resend: "Enviar de nuevo",
969
+ resendIn: (seconds) => `Enviar de nuevo en ${n(seconds)} s`,
970
+ resent: "Correo de confirmación enviado",
971
+ resendError: "No se pudo enviar el correo de confirmación",
972
+ banner: "Confirme su dirección de correo electrónico.",
973
+ dismiss: "Ahora no",
974
+ },
975
+ notFound: {
976
+ title: "Página no encontrada",
977
+ body: "Esta dirección no existe (o ya no existe). Quizá sea una errata o la página se haya movido.",
978
+ home: "Ir a la página de inicio",
979
+ app: "Volver a la aplicación",
980
+ },
981
+ acceptInvitation: {
982
+ title: "Aceptar la invitación",
983
+ accepting: "Aceptando la invitación…",
984
+ accepted: "Invitación aceptada.",
985
+ joined: (name) => `Se ha unido a ${name}.`,
986
+ continue: "Continuar",
987
+ invalid: "No es posible unirse con este enlace",
988
+ expired: "Esta invitación ha caducado",
989
+ noToken: "A este enlace le falta el token de invitación.",
990
+ askAgain: "Pida a quien le invitó que le envíe una nueva invitación.",
991
+ signInFirst: "Inicie sesión para aceptar esta invitación",
992
+ signInHint: "Use la cuenta a la que se envió la invitación.",
993
+ signIn: "Iniciar sesión",
994
+ register: "Crear cuenta",
995
+ },
996
+ companySwitcher: {
997
+ switchCompany: "Cambiar de empresa",
998
+ heading: "Empresas",
999
+ current: (name) => `Empresa: ${name}`,
1000
+ currentMark: "(actual)",
1001
+ switching: "Cambiando de empresa…",
1002
+ },
1003
+ // 0.30.0 — docs/user-admin-harmonization.md: Kurvenschmiede's reviewed Spanish for the
1004
+ // admin words, transfer, invitations and sessions; written fresh where it had no
1005
+ // sentence. "Usted", as the rest of this catalogue.
1006
+ emailChange: {
1007
+ title: "Dirección de correo electrónico",
1008
+ current: "Dirección actual",
1009
+ newEmail: "Nueva dirección de correo electrónico",
1010
+ password: "Contraseña actual",
1011
+ passwordHint: "Inicia sesión con su dirección, así que cambiarla requiere su contraseña.",
1012
+ emailTagUse: (address) => `Usar ${address}`,
1013
+ emailTagHint:
1014
+ "Muchos proveedores entregan nombre+etiqueta@… en el mismo buzón, así que el correo de esta aplicación es fácil de filtrar y rastrear. Compruebe que el suyo lo hace antes de confiar en ello: tendría que iniciar sesión con la dirección etiquetada.",
1015
+ submit: "Cambiar la dirección de correo electrónico",
1016
+ sameAsCurrent: "Esta ya es su dirección.",
1017
+ emailTaken: "Ya existe una cuenta con esta dirección de correo electrónico.",
1018
+ wrongPassword: "La contraseña no es correcta.",
1019
+ pending: (newEmail) => `Confirme el enlace que hemos enviado a ${newEmail}.`,
1020
+ pendingHint: (currentEmail) =>
1021
+ `Hasta entonces, seguirá iniciando sesión con ${currentEmail}. Revise también la carpeta de correo no deseado.`,
1022
+ resend: "Enviar el enlace de nuevo",
1023
+ resent: "Hemos vuelto a enviar el enlace.",
1024
+ cancel: "Cancelar el cambio",
1025
+ confirmed: (email) => `Su dirección de correo electrónico es ahora ${email}.`,
1026
+ passkeyNote:
1027
+ "Sus llaves de acceso siguen funcionando. Puede que su dispositivo aún las muestre con su dirección anterior.",
1028
+ rateLimited,
1029
+ failed: "No ha funcionado. Inténtelo de nuevo.",
1030
+ },
1031
+ sessions: {
1032
+ title: "Sesiones",
1033
+ description:
1034
+ "¿Ha iniciado sesión en un dispositivo que ya no usa o en el que no confía? Cierre sesión en todas partes.",
1035
+ signOutEverywhere: "Cerrar sesión en todas partes…",
1036
+ signOutEverywherePrompt:
1037
+ "Esto termina todas las sesiones, también esta: se cerrará la sesión en este dispositivo y tendrá que volver a iniciarla aquí.",
1038
+ confirmSignOutEverywhere: "Cerrar sesión en todas partes",
1039
+ list: "Dónde ha iniciado sesión",
1040
+ loading: "Cargando sesiones…",
1041
+ empty: "No hay sesiones que mostrar.",
1042
+ current: "Este dispositivo",
1043
+ unknownDevice: "Dispositivo desconocido",
1044
+ // A colon: `when` is either "hace 3 horas" or a date.
1045
+ lastActive: (when) => `Última actividad: ${when}`,
1046
+ ip: (address) => `IP ${address}`,
1047
+ revoke: "Cerrar sesión",
1048
+ // Starts with `revoke`, the button's visible text, for voice control.
1049
+ revokeItem: (device) => `Cerrar sesión en ${device}`,
1050
+ failed: "No ha funcionado. Inténtelo de nuevo.",
1051
+ },
1052
+ deleteAccount: {
1053
+ title: "Eliminar la cuenta",
1054
+ afterDays: (days) =>
1055
+ `Su cuenta se desactiva de inmediato y se borra definitivamente ${n(days)} ${plural(days, "día", "días")} después.`,
1056
+ operator: "Su cuenta se desactiva de inmediato, y el operador la borrará definitivamente.",
1057
+ arm: "Eliminar la cuenta…",
1058
+ prompt: "Se cerrará su sesión en todos los dispositivos y ya no podrá usar su cuenta.",
1059
+ handOver: (count) =>
1060
+ count === 1
1061
+ ? "1 elemento que otros pueden ver pasará a un administrador."
1062
+ : `${n(count)} elementos que otros pueden ver pasarán a un administrador.`,
1063
+ confirm: "Eliminar mi cuenta",
1064
+ done: "Su cuenta está desactivada. Se está cerrando su sesión.",
1065
+ wrongPassword: "La contraseña no es correcta.",
1066
+ confirmationMismatch: "Esta no es la dirección de su cuenta.",
1067
+ lastAdmin:
1068
+ "Su cuenta es la última con rol de administrador. Primero haga administrador a otra persona.",
1069
+ lastAdminOf: (companies) =>
1070
+ `Su cuenta es la última con rol de administrador en ${companies}. Primero haga administrador allí a otra persona.`,
1071
+ householdHasMembers:
1072
+ "Su hogar tiene otros miembros, así que la cuenta no se puede eliminar aquí. Escriba al operador.",
1073
+ rateLimited,
1074
+ failed: "No se pudo eliminar su cuenta. Inténtelo de nuevo.",
1075
+ },
1076
+ dataExport: {
1077
+ title: "Exportar sus datos",
1078
+ description: "Descargue una copia de los datos de su cuenta como archivo JSON.",
1079
+ download: "Descargar mis datos",
1080
+ started: "La descarga ha comenzado.",
1081
+ saveAgain: "¿No ha empezado? Guardar el archivo",
1082
+ rateLimited: (seconds) =>
1083
+ seconds && seconds > 0
1084
+ ? `Acaba de exportar sus datos. Inténtelo de nuevo en ${wait(seconds)}.`
1085
+ : "Acaba de exportar sus datos. Inténtelo de nuevo dentro de un minuto.",
1086
+ failed: "La exportación ha fallado. Inténtelo de nuevo.",
1087
+ },
1088
+ userRoster: {
1089
+ name: "Nombre",
1090
+ email: "Correo electrónico",
1091
+ role: "Rol",
1092
+ state: "Estado",
1093
+ // Agreeing with "cuenta" (feminine), like `accountState`.
1094
+ created: "Creada",
1095
+ lastLogin: "Último inicio de sesión",
1096
+ never: "Nunca",
1097
+ actions: "Acciones",
1098
+ actionsFor: (name) => `Acciones para ${name}`,
1099
+ },
1100
+ roleSelect: {
1101
+ label: "Rol",
1102
+ rolesLegend: "Roles",
1103
+ roleOf: (name) => `Rol de ${name}`,
1104
+ lockedLastAdmin: "La última cuenta de administrador activa conserva este rol.",
1105
+ lockedSelf: "No puede cambiar su propio rol.",
1106
+ notForLastAdmin: "no para el último administrador",
1107
+ notForSelf: "no para su propia cuenta",
1108
+ unavailable: (role, reason) => `${role} (${reason})`,
1109
+ },
1110
+ reviewerScope: {
1111
+ languages: "Idiomas",
1112
+ hint: "Marque los idiomas que revisa esta persona.",
1113
+ none: "Ningún idioma: al guardar se retira el rol de revisor.",
1114
+ areas: "Limitar a",
1115
+ legalOnly: "Solo las páginas legales",
1116
+ legalOnlyHint:
1117
+ "Aviso legal, política de privacidad y condiciones de uso: para un abogado más que para un hablante nativo.",
1118
+ failed: "No se pudo guardar el ámbito de revisión. Inténtelo de nuevo.",
1119
+ },
1120
+ adminAction: {
1121
+ confirm: "Confirmar",
1122
+ cancel: "Cancelar",
1123
+ close: "Cerrar",
1124
+ lastAdmin:
1125
+ "Esta es la última cuenta de administrador activa. Primero haga administrador a otra persona.",
1126
+ self: "No puede hacer esto con su propia cuenta.",
1127
+ confirmationMismatch:
1128
+ "La dirección no coincide con esta cuenta. Compruebe en qué cuenta está.",
1129
+ otherCompanies:
1130
+ "Esta cuenta también pertenece a otras empresas, así que solo el operador de la plataforma puede hacer esto. En su lugar, puede quitarla de esta empresa.",
1131
+ removeFromCompany: "Quitar de la empresa",
1132
+ failed: "No ha funcionado. Inténtelo de nuevo.",
1133
+ },
1134
+ adminActionLog: {
1135
+ title: "Acciones de administración",
1136
+ empty: "Aún no hay acciones de administración.",
1137
+ loading: "Cargando…",
1138
+ by: (actor) => `por ${actor}`,
1139
+ bySelf: "por la propia persona",
1140
+ automatic: "automáticamente",
1141
+ erased: "una cuenta borrada",
1142
+ filteredTo: (target) => `Solo ${target}`,
1143
+ showAll: "Mostrar todas las acciones",
1144
+ filterBy: (target) => `Mostrar solo las acciones sobre ${target}`,
1145
+ // Agreeing with "cuenta" (feminine), like `accountState`.
1146
+ actions: {
1147
+ deactivate: "Desactivada",
1148
+ reactivate: "Reactivada",
1149
+ role: "Rol cambiado",
1150
+ membership_remove: "Quitada de la empresa",
1151
+ password_change_require: "Nueva contraseña exigida",
1152
+ password_change_withdraw: "Exigencia de contraseña retirada",
1153
+ mail_verification: "Correo de confirmación enviado",
1154
+ mail_reset: "Correo de restablecimiento de contraseña enviado",
1155
+ reviewer: "Ámbito de revisión cambiado",
1156
+ invite: "Invitación enviada",
1157
+ invite_resend: "Invitación reenviada",
1158
+ invite_revoke: "Invitación retirada",
1159
+ transfer: "Trabajo traspasado",
1160
+ deletion_request: "Eliminación solicitada",
1161
+ deletion_cancel: "Eliminación cancelada",
1162
+ erase: "Cuenta borrada",
1163
+ },
1164
+ },
1165
+ transferOwnership: {
1166
+ title: (name) => `Traspasar el trabajo de ${name}`,
1167
+ body: "Todo lo que posee esta cuenta pasa a la cuenta elegida, en un solo paso.",
1168
+ recipient: "Traspasar a",
1169
+ choose: "Elija una cuenta…",
1170
+ chooseFirst: "Elija quién recibe el trabajo",
1171
+ confirm: "Traspasar",
1172
+ customer: "cliente",
1173
+ deactivated: "desactivada",
1174
+ self: "la misma cuenta",
1175
+ unavailable: (account, reason) => `${account} (${reason})`,
1176
+ noCandidates: "Ninguna otra cuenta puede recibirlo.",
1177
+ },
1178
+ invitations: {
1179
+ email: "Dirección de correo electrónico",
1180
+ invalidEmail: "Introduzca una dirección de correo completa.",
1181
+ role: "Rol",
1182
+ scope: "Ámbito",
1183
+ scopeNone: "Ninguno",
1184
+ language: "Idioma de la invitación",
1185
+ note: "Nota",
1186
+ invite: "Invitar",
1187
+ listTitle: "Invitaciones",
1188
+ empty: "Todavía no se ha invitado a nadie.",
1189
+ loading: "Cargando…",
1190
+ // Agreeing with "invitación" (feminine).
1191
+ status: { open: "Pendiente", accepted: "Aceptada", expired: "Caducada", revoked: "Retirada" },
1192
+ sent: (date) => `Enviada el ${date}`,
1193
+ expires: (date) => `Válida hasta el ${date}`,
1194
+ invitedBy: (name) => `por ${name}`,
1195
+ resend: (email) => `Enviar a ${email} un enlace nuevo`,
1196
+ copyLink: "Copiar enlace de invitación",
1197
+ revoke: (email) => `Retirar la invitación de ${email}`,
1198
+ consoleHint:
1199
+ "Este servidor no envía correos: se escriben en el registro del servidor. Copie aquí cada enlace de invitación y transmítalo usted mismo: solo se muestra una vez.",
1200
+ linkReady: (email) => `El enlace de invitación para ${email}, que solo se muestra esta vez:`,
1201
+ notSent: (email) => `${email} está invitado, pero no se pudo enviar el correo. Reenvíelo.`,
1202
+ failed: "No ha funcionado. Inténtelo de nuevo.",
1203
+ },
834
1204
  characterCount: {
835
1205
  count: (used, max) => `${n(used)} de ${n(max)} ${plural(max, "carácter", "caracteres")}`,
836
1206
  remaining: (left) =>