@eifi1/ui-kit 0.28.0 → 0.29.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 (166) hide show
  1. package/README.md +22 -4
  2. package/dist/auth/accept-invitation.d.ts +90 -0
  3. package/dist/auth/accept-invitation.js +117 -0
  4. package/dist/auth/accept-invitation.js.map +1 -0
  5. package/dist/auth/auth-errors.d.ts +60 -0
  6. package/dist/auth/auth-errors.js +32 -0
  7. package/dist/auth/auth-errors.js.map +1 -0
  8. package/dist/auth/complete-name-dialog.d.ts +71 -0
  9. package/dist/auth/complete-name-dialog.js +168 -0
  10. package/dist/auth/complete-name-dialog.js.map +1 -0
  11. package/dist/auth/email-tag.d.ts +60 -0
  12. package/dist/auth/email-tag.js +23 -0
  13. package/dist/auth/email-tag.js.map +1 -0
  14. package/dist/auth/forgot-password-form.d.ts +79 -0
  15. package/dist/auth/forgot-password-form.js +120 -0
  16. package/dist/auth/forgot-password-form.js.map +1 -0
  17. package/dist/auth/form-rules.d.ts +27 -0
  18. package/dist/auth/form-rules.js +23 -0
  19. package/dist/auth/form-rules.js.map +1 -0
  20. package/dist/auth/new-password-fields.d.ts +38 -0
  21. package/dist/auth/new-password-fields.js +54 -0
  22. package/dist/auth/new-password-fields.js.map +1 -0
  23. package/dist/auth/not-found-page.d.ts +57 -0
  24. package/dist/auth/not-found-page.js +40 -0
  25. package/dist/auth/not-found-page.js.map +1 -0
  26. package/dist/auth/register-form.d.ts +86 -0
  27. package/dist/auth/register-form.js +268 -0
  28. package/dist/auth/register-form.js.map +1 -0
  29. package/dist/auth/reset-password-form.d.ts +124 -0
  30. package/dist/auth/reset-password-form.js +164 -0
  31. package/dist/auth/reset-password-form.js.map +1 -0
  32. package/dist/auth/sign-in-form.d.ts +243 -0
  33. package/dist/auth/sign-in-form.js +345 -0
  34. package/dist/auth/sign-in-form.js.map +1 -0
  35. package/dist/auth/status-parts.d.ts +78 -0
  36. package/dist/auth/status-parts.js +83 -0
  37. package/dist/auth/status-parts.js.map +1 -0
  38. package/dist/auth/verify-email.d.ts +121 -0
  39. package/dist/auth/verify-email.js +207 -0
  40. package/dist/auth/verify-email.js.map +1 -0
  41. package/dist/chart.d.ts +17 -2
  42. package/dist/components/amount-input.d.ts +18 -2
  43. package/dist/components/button-group.d.ts +18 -2
  44. package/dist/components/calculator.d.ts +18 -2
  45. package/dist/components/confirm-dialog.d.ts +18 -2
  46. package/dist/components/copy-button.d.ts +18 -2
  47. package/dist/components/danger-confirm.d.ts +18 -2
  48. package/dist/components/facing-pair.d.ts +18 -2
  49. package/dist/components/file-button.d.ts +18 -2
  50. package/dist/components/file-dropzone.d.ts +18 -2
  51. package/dist/components/form-actions.d.ts +18 -2
  52. package/dist/components/iban-input.d.ts +18 -2
  53. package/dist/components/language-select.d.ts +18 -9
  54. package/dist/components/legal-page.d.ts +26 -4
  55. package/dist/components/legal-page.js +24 -5
  56. package/dist/components/legal-page.js.map +1 -1
  57. package/dist/components/legal.d.ts +18 -2
  58. package/dist/components/legal.js +49 -5
  59. package/dist/components/legal.js.map +1 -1
  60. package/dist/components/money-field.d.ts +18 -2
  61. package/dist/components/number-field.d.ts +18 -2
  62. package/dist/components/number-input.d.ts +18 -2
  63. package/dist/components/numpad-sheet.d.ts +18 -2
  64. package/dist/components/phone-input.d.ts +18 -2
  65. package/dist/components/series-chart.d.ts +18 -2
  66. package/dist/components/settings-fields.d.ts +15 -2
  67. package/dist/components/share-card.d.ts +18 -2
  68. package/dist/components/text-link.d.ts +18 -2
  69. package/dist/components/time-input.d.ts +18 -2
  70. package/dist/components/ui.d.ts +17 -1
  71. package/dist/components/user-avatar.d.ts +16 -2
  72. package/dist/components/user-avatar.js +7 -3
  73. package/dist/components/user-avatar.js.map +1 -1
  74. package/dist/feedback/feedback-attachment.d.ts +18 -2
  75. package/dist/feedback/feedback-context.d.ts +18 -2
  76. package/dist/feedback/feedback-crash.d.ts +18 -2
  77. package/dist/feedback/feedback-dialog.d.ts +18 -2
  78. package/dist/feedback/feedback-inbox.d.ts +18 -2
  79. package/dist/feedback/feedback-labels.d.ts +18 -2
  80. package/dist/feedback/feedback-menu.d.ts +18 -2
  81. package/dist/feedback/feedback-record.d.ts +18 -2
  82. package/dist/feedback/feedback-row-detail.d.ts +18 -2
  83. package/dist/feedback/feedback-status-undo.d.ts +18 -2
  84. package/dist/feedback/feedback-submit.d.ts +18 -2
  85. package/dist/feedback/feedback-swipe.d.ts +18 -2
  86. package/dist/feedback/feedback-table.d.ts +18 -2
  87. package/dist/feedback/feedback-thread.d.ts +18 -2
  88. package/dist/feedback.d.ts +18 -2
  89. package/dist/hooks/use-file-drop.d.ts +18 -2
  90. package/dist/i18n/defaults.d.ts +18 -2
  91. package/dist/i18n/defaults.js +18 -0
  92. package/dist/i18n/defaults.js.map +1 -1
  93. package/dist/i18n/german.d.ts +18 -2
  94. package/dist/i18n/german.js +145 -0
  95. package/dist/i18n/german.js.map +1 -1
  96. package/dist/i18n/kit-labels.d.ts +18 -2
  97. package/dist/i18n/kit-labels.js.map +1 -1
  98. package/dist/i18n/languages.d.ts +13 -201
  99. package/dist/i18n/locales/de-CH.d.ts +18 -2
  100. package/dist/i18n/locales/en.d.ts +18 -2
  101. package/dist/i18n/locales/es.d.ts +18 -2
  102. package/dist/i18n/locales/es.js +147 -3
  103. package/dist/i18n/locales/es.js.map +1 -1
  104. package/dist/i18n/locales/fr.d.ts +18 -2
  105. package/dist/i18n/locales/fr.js +147 -0
  106. package/dist/i18n/locales/fr.js.map +1 -1
  107. package/dist/i18n/locales/hu.d.ts +18 -2
  108. package/dist/i18n/locales/hu.js +149 -3
  109. package/dist/i18n/locales/hu.js.map +1 -1
  110. package/dist/i18n/locales/it.d.ts +18 -2
  111. package/dist/i18n/locales/it.js +146 -1
  112. package/dist/i18n/locales/it.js.map +1 -1
  113. package/dist/i18n/locales/zh.d.ts +18 -2
  114. package/dist/i18n/locales/zh.js +146 -1
  115. package/dist/i18n/locales/zh.js.map +1 -1
  116. package/dist/i18n/review.d.ts +18 -2
  117. package/dist/i18n/review.js +17 -7
  118. package/dist/i18n/review.js.map +1 -1
  119. package/dist/index.d.ts +13 -2
  120. package/dist/index.js +49 -1
  121. package/dist/index.js.map +1 -1
  122. package/dist/lib/person-name.d.ts +69 -0
  123. package/dist/lib/person-name.js +65 -0
  124. package/dist/lib/person-name.js.map +1 -0
  125. package/dist/{kit-labels-SBN0biPl.d.ts → register-form-V1OeNlMr.d.ts} +423 -6
  126. package/dist/rhf/fields.d.ts +18 -2
  127. package/dist/rhf/form.d.ts +18 -2
  128. package/dist/rhf.d.ts +18 -2
  129. package/dist/shell/app-shell.d.ts +18 -2
  130. package/dist/shell/company-switcher.d.ts +59 -0
  131. package/dist/shell/company-switcher.js +85 -0
  132. package/dist/shell/company-switcher.js.map +1 -0
  133. package/dist/shell/top-bar-brand.d.ts +18 -2
  134. package/dist/shell/topbar-action-menu.d.ts +1 -0
  135. package/dist/shell.d.ts +12 -2
  136. package/dist/wizard/stepper-nav.d.ts +18 -2
  137. package/dist/wizard.d.ts +18 -2
  138. package/package.json +1 -1
  139. package/src/auth/accept-invitation.tsx +227 -0
  140. package/src/auth/auth-errors.ts +105 -0
  141. package/src/auth/complete-name-dialog.tsx +253 -0
  142. package/src/auth/email-tag.ts +75 -0
  143. package/src/auth/forgot-password-form.tsx +213 -0
  144. package/src/auth/form-rules.ts +40 -0
  145. package/src/auth/new-password-fields.tsx +85 -0
  146. package/src/auth/not-found-page.tsx +98 -0
  147. package/src/auth/register-form.tsx +459 -0
  148. package/src/auth/reset-password-form.tsx +337 -0
  149. package/src/auth/sign-in-form.tsx +687 -0
  150. package/src/auth/status-parts.tsx +138 -0
  151. package/src/auth/verify-email.tsx +358 -0
  152. package/src/components/legal-page.tsx +35 -0
  153. package/src/components/legal.tsx +93 -7
  154. package/src/components/user-avatar.tsx +22 -4
  155. package/src/i18n/defaults.ts +18 -0
  156. package/src/i18n/german.ts +153 -0
  157. package/src/i18n/kit-labels.tsx +27 -0
  158. package/src/i18n/locales/es.ts +156 -3
  159. package/src/i18n/locales/fr.ts +157 -0
  160. package/src/i18n/locales/hu.ts +159 -3
  161. package/src/i18n/locales/it.ts +154 -1
  162. package/src/i18n/locales/zh.ts +149 -1
  163. package/src/i18n/review.ts +15 -6
  164. package/src/index.ts +63 -1
  165. package/src/lib/person-name.ts +157 -0
  166. package/src/shell/company-switcher.tsx +140 -0
@@ -757,7 +757,12 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
757
757
  notice: {
758
758
  beta: "Beta cerrada. Estos textos aún no han sido revisados por un abogado y lo serán antes de un lanzamiento público.",
759
759
  privacy:
760
- "Beta cerrada. La redacción jurídica que sigue aún no ha sido revisada por un abogado y lo será antes de un lanzamiento público. Las descripciones técnicas —qué se guarda, dónde y quién puede leerlo— describen lo que el software hace realmente hoy y están pensadas para que se contrasten con él.",
760
+ "Beta cerrada. La redacción jurídica que sigue aún no ha sido revisada por un abogado y lo será antes de un lanzamiento público. Las descripciones técnicas —qué se guarda, dónde y quién puede leerlo— describen lo que el software hace realmente hoy y deben poder contrastarse con él.",
761
+ },
762
+ translation: {
763
+ note: (o) =>
764
+ `Esta es una traducción ofrecida para su comodidad; solo la versión en ${o.bindingLanguage} es vinculante.`,
765
+ show: (o) => `Ver la versión en ${o.bindingLanguage}`,
761
766
  },
762
767
  sections: {
763
768
  impressum: {
@@ -783,12 +788,12 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
783
788
  },
784
789
  legal_basis: {
785
790
  title: "Base jurídica",
786
- body: "Como el responsable tiene su sede en Suiza, el tratamiento se rige por la Ley Federal suiza de Protección de Datos (LPD). Cuando le sea aplicable el Reglamento General de Protección de Datos de la UE (RGPD), nos basamos en la ejecución de un contrato para prestar el servicio (art. 6.1.b RGPD) y en nuestro interés legítimo en operarlo y protegerlo (art. 6.1.f RGPD).",
791
+ body: "Como el responsable reside en Suiza, el tratamiento se rige por la Ley Federal suiza de Protección de Datos (LPD). Cuando le sea aplicable el Reglamento General de Protección de Datos de la UE (RGPD), nos basamos en la ejecución de un contrato para prestar el servicio (art. 6.1.b RGPD) y en nuestro interés legítimo en operarlo y protegerlo (art. 6.1.f RGPD).",
787
792
  },
788
793
  browser: {
789
794
  title: "Qué guarda su navegador",
790
795
  lead: "Ninguna cookie. La aplicación guarda lo siguiente en el almacenamiento de su navegador:",
791
- tail: "Nada de ello se usa para seguirle. Las entradas pendientes de envío se nos envían en cuanto es posible; todo lo demás permanece en su dispositivo. Todo ello desaparece cuando borra los datos del sitio, y al cerrar sesión se eliminan los tokens de inicio de sesión.",
796
+ tail: "Nada de ello se usa para rastrearle. Las entradas pendientes de envío se nos envían en cuanto sea posible; todo lo demás permanece en su dispositivo. Todo ello desaparece cuando borra los datos del sitio, y al cerrar sesión se eliminan los tokens de inicio de sesión.",
792
797
  },
793
798
  rights: {
794
799
  title: "Sus derechos",
@@ -813,6 +818,11 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
813
818
  title: "Cambios en estas condiciones",
814
819
  body: "Estas condiciones pueden actualizarse a medida que evolucione el servicio. Los cambios importantes se anunciarán por correo electrónico o en la aplicación; si sigue usando el servicio después de un cambio, lo acepta.",
815
820
  },
821
+ language: {
822
+ title: "Idioma",
823
+ body: (o) =>
824
+ `Estas condiciones están redactadas en ${o.bindingLanguage}. Las traducciones a otros idiomas se ofrecen solo por comodidad; en caso de discrepancia, prevalece la versión en ${o.bindingLanguage}.`,
825
+ },
816
826
  law: {
817
827
  title: "Legislación aplicable",
818
828
  body: (o) =>
@@ -821,6 +831,149 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
821
831
  },
822
832
  },
823
833
  },
834
+ // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Spanish (auth.*,
835
+ // notfound) where it says the same, brought into line with the kit's English and this
836
+ // catalogue's words ("Nueva contraseña", "verificación en dos pasos"); written fresh
837
+ // where Kurvenschmiede has no such text yet. Formal "usted". It goes back to
838
+ // Kurvenschmiede for review.
839
+ signIn: {
840
+ email: "Correo electrónico",
841
+ password: "Contraseña",
842
+ submit: "Iniciar sesión",
843
+ passkey: "Iniciar sesión con una llave de acceso",
844
+ forgotPassword: "¿Ha olvidado su contraseña?",
845
+ noAccount: "¿Aún no tiene cuenta?",
846
+ register: "Crear cuenta",
847
+ invalidCredentials: "El correo electrónico o la contraseña no son correctos.",
848
+ failed: "No se pudo iniciar sesión. Inténtelo de nuevo.",
849
+ passkeyFailed: "No se pudo iniciar sesión con la llave de acceso.",
850
+ deactivatedHint: "¿Cuenta desactivada? Escriba a {contact}.",
851
+ tagHint: (taggedAddress) => `¿Se registró con ${taggedAddress}? Use esa dirección.`,
852
+ twoFactorTitle: "Verificación en dos pasos",
853
+ twoFactorIntro: "Introduzca el código que muestra su app de autenticación.",
854
+ code: "Código de verificación",
855
+ verify: "Verificar",
856
+ codeInvalid: "El código de verificación no es válido.",
857
+ setPasswordTitle: "Elija una nueva contraseña",
858
+ setPasswordIntro:
859
+ "Se ha solicitado una nueva contraseña para esta cuenta. Elija una y podrá continuar enseguida.",
860
+ newPassword: "Nueva contraseña",
861
+ confirmPassword: "Repita la nueva contraseña",
862
+ passwordMismatch: "Las contraseñas no coinciden.",
863
+ setPasswordSubmit: "Establecer la contraseña e iniciar sesión",
864
+ setPasswordFailed: "No se pudo establecer la contraseña.",
865
+ expired: "Este inicio de sesión ha caducado. Inicie sesión de nuevo.",
866
+ backToSignIn: "Volver a iniciar sesión",
867
+ },
868
+ register: {
869
+ firstName: "Nombre",
870
+ lastName: "Apellidos",
871
+ email: "Correo electrónico",
872
+ emailTagUse: (address) => `Usar ${address}`,
873
+ emailTagHint:
874
+ "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: iniciaría sesión con la dirección etiquetada.",
875
+ invitedEmailHint: "La dirección a la que se envió su invitación.",
876
+ invitedTagNote: "La dirección etiquetada recibe su propio correo de confirmación.",
877
+ password: "Contraseña",
878
+ confirmPassword: "Repita la contraseña",
879
+ passwordMismatch: "Las contraseñas no coinciden.",
880
+ language: "Idioma",
881
+ submit: "Crear cuenta",
882
+ haveAccount: "¿Ya tiene una cuenta?",
883
+ signIn: "Iniciar sesión",
884
+ emailTaken: "Ya existe una cuenta con esta dirección de correo electrónico.",
885
+ registrationClosed:
886
+ "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.",
887
+ invitationInvalid: "Este enlace de invitación no es válido.",
888
+ invitationExpired: "Esta invitación ha caducado. Pida una nueva.",
889
+ failed: "No se pudo completar el registro. Inténtelo de nuevo.",
890
+ },
891
+ completeName: {
892
+ title: "Complete su nombre",
893
+ description:
894
+ "El nombre y los apellidos ahora se piden por separado. Compruebe lo que ya está rellenado y añada lo que falte.",
895
+ firstName: "Nombre",
896
+ lastName: "Apellidos",
897
+ save: "Guardar",
898
+ later: "Más tarde",
899
+ failed: "No se pudo guardar su nombre. Inténtelo de nuevo.",
900
+ },
901
+ forgotPassword: {
902
+ title: "Restablecer la contraseña",
903
+ intro:
904
+ "Introduzca la dirección de correo electrónico de su cuenta. Le enviaremos un enlace para elegir una nueva contraseña.",
905
+ email: "Correo electrónico",
906
+ submit: "Enviar el enlace",
907
+ sent: (email) => `Si existe una cuenta para ${email}, el enlace está en camino.`,
908
+ sentHint:
909
+ "El enlace es válido durante una hora y funciona una sola vez. Mire también en la carpeta de correo no deseado.",
910
+ backToSignIn: "Volver a iniciar sesión",
911
+ error: "La solicitud ha fallado. Inténtelo de nuevo más tarde.",
912
+ },
913
+ resetPassword: {
914
+ title: "Elija una nueva contraseña",
915
+ checking: "Comprobando el enlace…",
916
+ intro: (email) => `Está estableciendo una nueva contraseña para ${email}.`,
917
+ newPassword: "Nueva contraseña",
918
+ confirmPassword: "Repita la nueva contraseña",
919
+ mismatch: "Las contraseñas no coinciden.",
920
+ submit: "Guardar la contraseña",
921
+ failed: "No se pudo cambiar la contraseña.",
922
+ noToken: "Este enlace está incompleto.",
923
+ invalid: "Este enlace no es válido o ha caducado.",
924
+ invalidHint: "Los enlaces son válidos durante una hora y funcionan una sola vez. Solicite uno nuevo.",
925
+ requestNew: "Solicitar un enlace nuevo",
926
+ success: "Su contraseña se ha cambiado. Ya puede iniciar sesión con ella.",
927
+ sessionsEnded:
928
+ "Se ha cerrado la sesión en los dispositivos conectados; tendrá que volver a iniciarla en ellos.",
929
+ signIn: "Ir a iniciar sesión",
930
+ },
931
+ verifyEmail: {
932
+ title: "Confirme su dirección de correo electrónico",
933
+ verifying: "Confirmando…",
934
+ verified: "Su dirección de correo electrónico está confirmada.",
935
+ continue: "Continuar",
936
+ invalid: "Este enlace de confirmación no es válido",
937
+ expired: "Este enlace de confirmación ha caducado",
938
+ noToken: "A este enlace le falta el token de confirmación.",
939
+ invalidHint: "Es posible que el enlace haya caducado o que ya se haya usado.",
940
+ requestInApp: "Puede solicitar uno nuevo desde la aplicación.",
941
+ requestHere: "Puede solicitar uno nuevo aquí.",
942
+ resend: "Enviar de nuevo",
943
+ resendIn: (seconds) => `Enviar de nuevo en ${n(seconds)} s`,
944
+ resent: "Correo de confirmación enviado",
945
+ resendError: "No se pudo enviar el correo de confirmación",
946
+ banner: "Confirme su dirección de correo electrónico.",
947
+ dismiss: "Ahora no",
948
+ },
949
+ notFound: {
950
+ title: "Página no encontrada",
951
+ body: "Esta dirección no existe (o ya no existe). Quizá sea una errata, o la página se ha movido.",
952
+ home: "Ir a la página de inicio",
953
+ app: "Volver a la aplicación",
954
+ },
955
+ acceptInvitation: {
956
+ title: "Aceptar la invitación",
957
+ accepting: "Aceptando la invitación…",
958
+ accepted: "Invitación aceptada.",
959
+ joined: (name) => `Se ha unido a ${name}.`,
960
+ continue: "Continuar",
961
+ invalid: "No es posible unirse con este enlace",
962
+ expired: "Esta invitación ha caducado",
963
+ noToken: "A este enlace le falta el token de invitación.",
964
+ askAgain: "Pida a quien le invitó que le envíe una nueva invitación.",
965
+ signInFirst: "Inicie sesión para aceptar esta invitación",
966
+ signInHint: "Use la cuenta a la que se envió la invitación.",
967
+ signIn: "Iniciar sesión",
968
+ register: "Crear cuenta",
969
+ },
970
+ companySwitcher: {
971
+ switchCompany: "Cambiar de empresa",
972
+ heading: "Empresas",
973
+ current: (name) => `Empresa: ${name}`,
974
+ currentMark: "(actual)",
975
+ switching: "Cambiando de empresa…",
976
+ },
824
977
  characterCount: {
825
978
  count: (used, max) => `${n(used)} de ${n(max)} ${plural(max, "carácter", "caracteres")}`,
826
979
  remaining: (left) =>
@@ -777,6 +777,11 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
777
777
  privacy:
778
778
  "Bêta fermée. Les formulations juridiques ci-dessous n’ont pas encore été relues par un avocat\u202f; cela sera fait avant un lancement public. Les descriptions techniques — ce qui est stocké, où, et qui peut le lire — décrivent ce que fait réellement le logiciel aujourd’hui et sont faites pour être vérifiées par rapport à lui.",
779
779
  },
780
+ translation: {
781
+ note: (o) =>
782
+ `Ceci est une traduction fournie pour votre commodité. Seule la version en ${o.bindingLanguage} fait foi.`,
783
+ show: (o) => `Afficher la version en ${o.bindingLanguage}`,
784
+ },
780
785
  sections: {
781
786
  impressum: {
782
787
  operator: {
@@ -831,6 +836,11 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
831
836
  title: "Modifications des présentes conditions",
832
837
  body: "Ces conditions peuvent être mises à jour au fil de l’évolution du service. Les modifications importantes seront annoncées par e-mail ou dans l’app\u202f; continuer à utiliser le service après une modification vaut acceptation.",
833
838
  },
839
+ language: {
840
+ title: "Langue",
841
+ body: (o) =>
842
+ `Les présentes conditions sont rédigées en ${o.bindingLanguage}. Les traductions dans d’autres langues sont fournies à titre indicatif uniquement\u202f; en cas de divergence, la version en ${o.bindingLanguage} prévaut.`,
843
+ },
834
844
  law: {
835
845
  title: "Droit applicable",
836
846
  body: (o) =>
@@ -839,6 +849,153 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
839
849
  },
840
850
  },
841
851
  },
852
+ // 0.29.0 — docs/auth-harmonization.md: keksdose's reviewed French (auth.*,
853
+ // verify_email, error.not_found_*, budget_share.join_*), kastlan's for the names and
854
+ // the 2FA prompt; written fresh where neither app had the sentence. Spaced as this
855
+ // catalogue writes it (\u00a0 before ":", \u202f before "?" and ";"), "l’application"
856
+ // where keksdose writes "l’app".
857
+ signIn: {
858
+ email: "E-mail",
859
+ password: "Mot de passe",
860
+ submit: "Se connecter",
861
+ passkey: "Se connecter avec une clé d’accès",
862
+ forgotPassword: "Mot de passe oublié\u202f?",
863
+ noAccount: "Pas encore de compte\u202f?",
864
+ register: "Créer un compte",
865
+ invalidCredentials: "L’adresse e-mail ou le mot de passe est incorrect.",
866
+ failed: "Échec de la connexion. Veuillez réessayer.",
867
+ passkeyFailed: "Échec de la connexion par clé d’accès.",
868
+ deactivatedHint: "Compte désactivé\u202f? Écrivez à {contact}.",
869
+ // "Compte créé avec…" rather than "Inscrit avec…", which would need a gender.
870
+ tagHint: (taggedAddress) =>
871
+ `Compte créé avec ${taggedAddress}\u202f? Utilisez cette adresse.`,
872
+ twoFactorTitle: "Authentification à deux facteurs",
873
+ twoFactorIntro: "Saisissez le code affiché par votre application d’authentification.",
874
+ code: "Code 2FA",
875
+ verify: "Vérifier",
876
+ codeInvalid: "Code 2FA invalide.",
877
+ setPasswordTitle: "Choisir un nouveau mot de passe",
878
+ setPasswordIntro:
879
+ "Un nouveau mot de passe a été demandé pour ce compte. Choisissez-en un et vous êtes aussitôt de retour.",
880
+ newPassword: "Nouveau mot de passe",
881
+ confirmPassword: "Répéter le nouveau mot de passe",
882
+ passwordMismatch: "Les mots de passe ne correspondent pas.",
883
+ setPasswordSubmit: "Définir le mot de passe et se connecter",
884
+ setPasswordFailed: "Le mot de passe n’a pas pu être défini.",
885
+ expired: "Cette connexion a expiré. Veuillez vous reconnecter.",
886
+ backToSignIn: "Retour à la connexion",
887
+ },
888
+ register: {
889
+ firstName: "Prénom",
890
+ lastName: "Nom",
891
+ email: "E-mail",
892
+ emailTagUse: (address) => `Utiliser ${address}`,
893
+ emailTagHint:
894
+ "Beaucoup de fournisseurs livrent nom+tag@… dans la même boîte, ce qui rend le courrier de cette application filtrable et traçable. Vérifiez que le vôtre le fait avant de vous y fier\u00a0: vous vous connecteriez avec l’adresse marquée.",
895
+ invitedEmailHint: "L’adresse à laquelle votre invitation a été envoyée.",
896
+ invitedTagNote: "L’adresse marquée reçoit son propre e-mail de confirmation.",
897
+ password: "Mot de passe",
898
+ confirmPassword: "Répéter le mot de passe",
899
+ passwordMismatch: "Les mots de passe ne correspondent pas.",
900
+ language: "Langue",
901
+ submit: "Créer un compte",
902
+ haveAccount: "Déjà un compte\u202f?",
903
+ signIn: "Se connecter",
904
+ emailTaken: "Un compte existe déjà avec cette adresse e-mail.",
905
+ registrationClosed:
906
+ "Les nouveaux comptes ne sont créés que sur invitation. Demandez à l’exploitant d’inviter votre adresse e-mail.",
907
+ invitationInvalid: "Ce lien d’invitation n’est pas valide.",
908
+ invitationExpired: "Cette invitation a expiré. Demandez-en une nouvelle.",
909
+ failed: "Échec de l’inscription. Veuillez réessayer.",
910
+ },
911
+ completeName: {
912
+ title: "Complétez votre nom",
913
+ description:
914
+ "Le prénom et le nom sont désormais demandés séparément. Vérifiez ce qui est déjà rempli et ajoutez ce qui manque.",
915
+ firstName: "Prénom",
916
+ lastName: "Nom",
917
+ save: "Enregistrer",
918
+ later: "Plus tard",
919
+ failed: "Votre nom n’a pas pu être enregistré. Veuillez réessayer.",
920
+ },
921
+ forgotPassword: {
922
+ title: "Mot de passe oublié",
923
+ intro:
924
+ "Saisissez l’adresse e-mail de votre compte. Nous vous enverrons un lien pour choisir un nouveau mot de passe.",
925
+ email: "E-mail",
926
+ submit: "Envoyer le lien",
927
+ sent: (email) => `S’il existe un compte pour ${email}, le lien est en route.`,
928
+ sentHint:
929
+ "Le lien est valable une heure et ne fonctionne qu’une seule fois. Vérifiez aussi votre dossier de courrier indésirable.",
930
+ backToSignIn: "Retour à la connexion",
931
+ error: "La demande a échoué. Veuillez réessayer plus tard.",
932
+ },
933
+ resetPassword: {
934
+ title: "Choisir un nouveau mot de passe",
935
+ checking: "Vérification du lien…",
936
+ intro: (email) => `Vous définissez un nouveau mot de passe pour ${email}.`,
937
+ newPassword: "Nouveau mot de passe",
938
+ confirmPassword: "Répéter le nouveau mot de passe",
939
+ mismatch: "Les mots de passe ne correspondent pas.",
940
+ submit: "Enregistrer le mot de passe",
941
+ failed: "Le mot de passe n’a pas pu être changé.",
942
+ noToken: "Ce lien est incomplet.",
943
+ invalid: "Ce lien est invalide ou a expiré.",
944
+ invalidHint:
945
+ "Les liens sont valables une heure et ne fonctionnent qu’une fois. Demandez simplement un nouveau lien.",
946
+ requestNew: "Demander un nouveau lien",
947
+ success: "Votre mot de passe a été changé. Vous pouvez vous connecter avec dès maintenant.",
948
+ sessionsEnded: "Les appareils connectés ont été déconnectés — vous devrez vous y reconnecter.",
949
+ signIn: "Aller à la connexion",
950
+ },
951
+ verifyEmail: {
952
+ title: "Confirmez votre adresse e-mail",
953
+ verifying: "Confirmation…",
954
+ verified: "Votre adresse e-mail est confirmée.",
955
+ continue: "Continuer",
956
+ invalid: "Ce lien de confirmation n’est pas valide",
957
+ expired: "Ce lien de confirmation a expiré",
958
+ noToken: "Ce lien n’a pas de jeton de confirmation.",
959
+ invalidHint: "Le lien a peut-être expiré ou déjà été utilisé.",
960
+ requestInApp: "Vous pouvez en demander un nouveau depuis l’application.",
961
+ requestHere: "Vous pouvez en demander un nouveau ici.",
962
+ resend: "Envoyer à nouveau",
963
+ resendIn: (seconds) => `Envoyer à nouveau dans ${n(seconds)}\u00a0s`,
964
+ resent: "E-mail de confirmation envoyé",
965
+ resendError: "Impossible d’envoyer l’e-mail de confirmation",
966
+ banner: "Veuillez confirmer votre adresse e-mail.",
967
+ dismiss: "Pas maintenant",
968
+ },
969
+ notFound: {
970
+ title: "Page introuvable",
971
+ body: "Cette adresse n’existe pas (ou plus). Peut-être une faute de frappe, ou la page a été déplacée.",
972
+ home: "Aller à la page d’accueil",
973
+ app: "Retour à l’application",
974
+ },
975
+ acceptInvitation: {
976
+ title: "Accepter l’invitation",
977
+ accepting: "Acceptation de l’invitation…",
978
+ accepted: "Invitation acceptée.",
979
+ joined: (name) => `Vous avez rejoint ${name}.`,
980
+ continue: "Continuer",
981
+ invalid: "Impossible de rejoindre avec ce lien",
982
+ expired: "Cette invitation a expiré",
983
+ noToken: "Ce lien n’a pas de jeton d’invitation.",
984
+ // Without "qui vous a invité(e)", which would need a gender.
985
+ askAgain: "Demandez une nouvelle invitation à la personne qui vous l’a envoyée.",
986
+ signInFirst: "Connectez-vous pour accepter cette invitation",
987
+ signInHint: "Utilisez le compte auquel l’invitation a été envoyée.",
988
+ signIn: "Se connecter",
989
+ register: "Créer un compte",
990
+ },
991
+ companySwitcher: {
992
+ switchCompany: "Changer d’entreprise",
993
+ heading: "Entreprises",
994
+ current: (name) => `Entreprise\u00a0: ${name}`,
995
+ // Agreeing with "entreprise" (feminine).
996
+ currentMark: "(actuelle)",
997
+ switching: "Changement d’entreprise…",
998
+ },
842
999
  characterCount: {
843
1000
  count: (used, max) => `${n(used)} sur ${n(max)} ${plural(max, "caractère", "caractères")}`,
844
1001
  remaining: (left) => `${n(left)} ${plural(left, "caractère restant", "caractères restants")}`,
@@ -761,12 +761,17 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
761
761
  // The accusative ending is glued to the link, as Italian glues its article: "a
762
762
  // Felhasználási feltételeket és az Adatvédelmi tájékoztatót". Nothing is added around
763
763
  // a placeholder, and the articles fit these two titles (a F…, az A…).
764
- accept: "Elfogadom a {terms}et és az {privacy}t",
764
+ accept: "Elfogadom a következőket: {terms} és {privacy}",
765
765
  notice: {
766
766
  beta: "Zárt béta. Ezeket a szövegeket ügyvéd még nem ellenőrizte; erre a nyilvános indulás előtt sor kerül.",
767
767
  privacy:
768
768
  "Zárt béta. Az alábbi jogi szövegezést ügyvéd még nem ellenőrizte; erre a nyilvános indulás előtt sor kerül. A műszaki leírások – mit tárolunk, hol és ki olvashatja – azt írják le, amit a szoftver ma ténylegesen tesz, és arra valók, hogy a szoftverrel össze lehessen vetni őket.",
769
769
  },
770
+ translation: {
771
+ note: (o) =>
772
+ `Ez a szöveg tájékoztató jellegű fordítás; az irányadó változat nyelve: ${o.bindingLanguage}.`,
773
+ show: (o) => `Az irányadó változat megjelenítése (${o.bindingLanguage})`,
774
+ },
770
775
  sections: {
771
776
  impressum: {
772
777
  operator: {
@@ -791,11 +796,11 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
791
796
  },
792
797
  legal_basis: {
793
798
  title: "Jogalap",
794
- body: "Mivel az üzemeltető székhelye Svájcban van, az adatkezelésre a svájci szövetségi adatvédelmi törvény (DSG/FADP) az irányadó. Ha Önre az EU általános adatvédelmi rendelete (GDPR) vonatkozik, a szolgáltatás nyújtására irányuló szerződés teljesítésére (GDPR 6. cikk (1) b) pont) és a szolgáltatás működtetéséhez és védelméhez fűződő jogos érdekünkre (GDPR 6. cikk (1) f) pont) támaszkodunk.",
799
+ body: "Mivel az üzemeltető lakóhelye Svájcban van, az adatkezelésre a svájci szövetségi adatvédelmi törvény (DSG/FADP) az irányadó. Ha Önre az EU általános adatvédelmi rendelete (GDPR) vonatkozik, a szolgáltatás nyújtására irányuló szerződés teljesítésére (GDPR 6. cikk (1) b) pont) és a szolgáltatás működtetéséhez és védelméhez fűződő jogos érdekünkre (GDPR 6. cikk (1) f) pont) támaszkodunk.",
795
800
  },
796
801
  browser: {
797
802
  title: "Mit tárol az Ön böngészője",
798
- lead: "Nincsenek sütik. Az alkalmazás a következőket tárolja a böngészője tárhelyén:",
803
+ lead: "Nincsenek sütik. Az alkalmazás a következőket tárolja az Ön böngészőjének tárhelyén:",
799
804
  tail: "Egyiket sem használjuk az Ön követésére. A küldésre váró bejegyzéseket a böngésző elküldi nekünk, amint lehetséges; minden más az Ön eszközén marad. Mindez eltűnik, amikor törli a webhely adatait, kijelentkezéskor pedig a bejelentkezési tokenek törlődnek.",
800
805
  },
801
806
  rights: {
@@ -821,6 +826,11 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
821
826
  title: "A feltételek módosítása",
822
827
  body: "Ezek a feltételek a szolgáltatás fejlődésével módosulhatnak. A lényeges változásokat e-mailben vagy az alkalmazásban jelentjük be; aki a változás után tovább használja a szolgáltatást, elfogadja azt.",
823
828
  },
829
+ language: {
830
+ title: "Nyelv",
831
+ body: (o) =>
832
+ `Ezek a feltételek ${o.bindingLanguage} nyelven készültek. A más nyelvű fordítások csak tájékoztató jellegűek; eltérés esetén az eredeti, ${o.bindingLanguage} nyelvű változat az irányadó.`,
833
+ },
824
834
  law: {
825
835
  title: "Irányadó jog",
826
836
  body: (o) =>
@@ -829,6 +839,152 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
829
839
  },
830
840
  },
831
841
  },
842
+ // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Hungarian (auth.*,
843
+ // notfound) where it says the same, brought into line with the kit's English and this
844
+ // catalogue's words ("hozzáférési kulcs", "kétlépcsős azonosítás"); written fresh
845
+ // where Kurvenschmiede has no such text yet. Formal "Ön". An address or a name stays
846
+ // after a colon, never inflected, as in `shareCard`. It goes back to Kurvenschmiede
847
+ // for review.
848
+ signIn: {
849
+ email: "E-mail",
850
+ password: "Jelszó",
851
+ submit: "Bejelentkezés",
852
+ passkey: "Bejelentkezés hozzáférési kulccsal",
853
+ forgotPassword: "Elfelejtette a jelszavát?",
854
+ noAccount: "Még nincs fiókja?",
855
+ register: "Fiók létrehozása",
856
+ invalidCredentials: "Az e-mail-cím vagy a jelszó helytelen.",
857
+ failed: "A bejelentkezés sikertelen. Kérjük, próbálja újra.",
858
+ passkeyFailed: "A bejelentkezés hozzáférési kulccsal sikertelen.",
859
+ deactivatedHint: "Inaktív a fiókja? Írjon ide: {contact}.",
860
+ tagHint: (taggedAddress) =>
861
+ `Ezzel a címmel regisztrált: ${taggedAddress}? Akkor ezt a címet használja.`,
862
+ twoFactorTitle: "Kétlépcsős azonosítás",
863
+ twoFactorIntro: "Adja meg a hitelesítő alkalmazásban megjelenő kódot.",
864
+ code: "Ellenőrző kód",
865
+ verify: "Ellenőrzés",
866
+ codeInvalid: "Érvénytelen ellenőrző kód.",
867
+ setPasswordTitle: "Új jelszó választása",
868
+ setPasswordIntro:
869
+ "Ehhez a fiókhoz új jelszót kértek. Válasszon egyet, és máris folytathatja.",
870
+ newPassword: "Új jelszó",
871
+ confirmPassword: "Új jelszó ismét",
872
+ passwordMismatch: "A jelszavak nem egyeznek.",
873
+ setPasswordSubmit: "Jelszó beállítása és bejelentkezés",
874
+ setPasswordFailed: "A jelszót nem sikerült beállítani.",
875
+ expired: "Ez a bejelentkezés lejárt. Kérjük, jelentkezzen be újra.",
876
+ backToSignIn: "Vissza a bejelentkezéshez",
877
+ },
878
+ register: {
879
+ firstName: "Keresztnév",
880
+ lastName: "Vezetéknév",
881
+ email: "E-mail",
882
+ // The address before a noun, uninflected, as `${name} törlése` in `passkeys`.
883
+ emailTagUse: (address) => `${address} használata`,
884
+ emailTagHint:
885
+ "Sok szolgáltató a név+címke@… alakú címekre érkező leveleket ugyanabba a postafiókba kézbesíti, így az alkalmazás levelei könnyen szűrhetők és visszakövethetők. Mielőtt erre hagyatkozna, ellenőrizze, hogy az Öné is így működik-e: a címkés címmel kell majd bejelentkeznie.",
886
+ invitedEmailHint: "Ez az a cím, amelyre a meghívót küldték.",
887
+ invitedTagNote: "A címkés cím saját megerősítő e-mailt kap.",
888
+ password: "Jelszó",
889
+ confirmPassword: "Jelszó ismét",
890
+ passwordMismatch: "A jelszavak nem egyeznek.",
891
+ language: "Nyelv",
892
+ submit: "Fiók létrehozása",
893
+ haveAccount: "Már van fiókja?",
894
+ signIn: "Bejelentkezés",
895
+ emailTaken: "Ezzel az e-mail-címmel már létezik fiók.",
896
+ registrationClosed:
897
+ "Új fiókot csak meghívással lehet létrehozni. Kérje meg az üzemeltetőt, hogy küldjön meghívót az e-mail-címére.",
898
+ invitationInvalid: "Ez a meghívó hivatkozás érvénytelen.",
899
+ invitationExpired: "Ez a meghívó lejárt. Kérjen újat.",
900
+ failed: "A regisztráció sikertelen. Kérjük, próbálja újra.",
901
+ },
902
+ completeName: {
903
+ title: "Név kiegészítése",
904
+ description:
905
+ "A keresztnevet és a vezetéknevet mostantól külön kérjük. Ellenőrizze, mi van kitöltve, és pótolja, ami hiányzik.",
906
+ firstName: "Keresztnév",
907
+ lastName: "Vezetéknév",
908
+ save: "Mentés",
909
+ later: "Később",
910
+ failed: "A nevét nem sikerült menteni. Kérjük, próbálja újra.",
911
+ },
912
+ forgotPassword: {
913
+ title: "Jelszó visszaállítása",
914
+ intro:
915
+ "Adja meg a fiókjához tartozó e-mail-címet. Küldünk egy hivatkozást, amellyel új jelszót választhat.",
916
+ email: "E-mail",
917
+ submit: "Hivatkozás küldése",
918
+ sent: (email) => `Ha létezik fiók ehhez a címhez: ${email}, a hivatkozás úton van.`,
919
+ sentHint:
920
+ "A hivatkozás egy órán át érvényes, és pontosan egyszer használható. Nézze meg a levélszemét mappát is.",
921
+ backToSignIn: "Vissza a bejelentkezéshez",
922
+ error: "A kérés sikertelen. Kérjük, próbálja újra később.",
923
+ },
924
+ resetPassword: {
925
+ title: "Új jelszó választása",
926
+ checking: "A hivatkozás ellenőrzése…",
927
+ intro: (email) => `Új jelszót állít be ehhez a fiókhoz: ${email}.`,
928
+ newPassword: "Új jelszó",
929
+ confirmPassword: "Új jelszó ismét",
930
+ mismatch: "A jelszavak nem egyeznek.",
931
+ submit: "Jelszó mentése",
932
+ failed: "A jelszót nem sikerült módosítani.",
933
+ noToken: "Ez a hivatkozás hiányos.",
934
+ invalid: "Ez a hivatkozás érvénytelen vagy lejárt.",
935
+ invalidHint:
936
+ "A hivatkozások egy órán át érvényesek, és csak egyszer használhatók. Egyszerűen kérjen újat.",
937
+ requestNew: "Új hivatkozás kérése",
938
+ success: "A jelszava megváltozott. Most már bejelentkezhet vele.",
939
+ sessionsEnded: "A bejelentkezett eszközök ki lettek jelentkeztetve – ott újra be kell jelentkeznie.",
940
+ signIn: "Tovább a bejelentkezéshez",
941
+ },
942
+ verifyEmail: {
943
+ title: "E-mail-cím megerősítése",
944
+ verifying: "Megerősítés…",
945
+ verified: "Az e-mail-címét megerősítettük.",
946
+ continue: "Tovább",
947
+ invalid: "Ez a megerősítő hivatkozás érvénytelen",
948
+ expired: "Ez a megerősítő hivatkozás lejárt",
949
+ noToken: "Ebből a hivatkozásból hiányzik a megerősítő token.",
950
+ invalidHint: "Lehet, hogy a hivatkozás lejárt, vagy már felhasználták.",
951
+ requestInApp: "Újat az alkalmazásban kérhet.",
952
+ requestHere: "Újat itt kérhet.",
953
+ resend: "Újraküldés",
954
+ resendIn: (seconds) => `Újraküldés ${n(seconds)} mp múlva`,
955
+ resent: "Megerősítő e-mail elküldve",
956
+ resendError: "Nem sikerült elküldeni a megerősítő e-mailt",
957
+ banner: "Kérjük, erősítse meg az e-mail-címét.",
958
+ dismiss: "Most nem",
959
+ },
960
+ notFound: {
961
+ title: "Az oldal nem található",
962
+ body: "Ez a cím nem létezik (vagy már nem). Talán elírás, vagy az oldal máshová került.",
963
+ home: "Ugrás a kezdőlapra",
964
+ app: "Vissza az alkalmazáshoz",
965
+ },
966
+ acceptInvitation: {
967
+ title: "Meghívás elfogadása",
968
+ accepting: "Csatlakozás…",
969
+ accepted: "Meghívás elfogadva.",
970
+ joined: (name) => `Csatlakozott: ${name}.`,
971
+ continue: "Tovább",
972
+ invalid: "Ezzel a hivatkozással nem sikerült csatlakozni",
973
+ expired: "Ez a meghívó lejárt",
974
+ noToken: "Ebből a hivatkozásból hiányzik a meghívótoken.",
975
+ askAgain: "Kérjen új meghívót attól, aki meghívta.",
976
+ signInFirst: "A meghívás elfogadásához jelentkezzen be",
977
+ signInHint: "Azzal a fiókkal jelentkezzen be, amelynek a címére a meghívó érkezett.",
978
+ signIn: "Bejelentkezés",
979
+ register: "Fiók létrehozása",
980
+ },
981
+ companySwitcher: {
982
+ switchCompany: "Cég váltása",
983
+ heading: "Cégek",
984
+ current: (name) => `Cég: ${name}`,
985
+ currentMark: "(jelenlegi)",
986
+ switching: "Cég váltása folyamatban…",
987
+ },
832
988
  characterCount: {
833
989
  // A noun after a numeral stays singular: "80 karakter".
834
990
  count: (used, max) => `${n(used)} / ${n(max)} karakter`,