@eifi1/ui-kit 0.17.0 → 0.19.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 (210) hide show
  1. package/README.md +83 -4
  2. package/dist/chart.d.ts +13 -1
  3. package/dist/components/account-chips.d.ts +153 -0
  4. package/dist/components/account-chips.js +135 -0
  5. package/dist/components/account-chips.js.map +1 -0
  6. package/dist/components/account-settings-labels.d.ts +10 -2
  7. package/dist/components/account-settings-labels.js +3 -0
  8. package/dist/components/account-settings-labels.js.map +1 -1
  9. package/dist/components/amount-input.d.ts +13 -1
  10. package/dist/components/button-group.d.ts +13 -1
  11. package/dist/components/calculator.d.ts +13 -1
  12. package/dist/components/chip.d.ts +25 -1
  13. package/dist/components/chip.js +143 -6
  14. package/dist/components/chip.js.map +1 -1
  15. package/dist/components/confirm-dialog.d.ts +42 -1
  16. package/dist/components/confirm-dialog.js +36 -5
  17. package/dist/components/confirm-dialog.js.map +1 -1
  18. package/dist/components/copy-button.d.ts +13 -1
  19. package/dist/components/danger-confirm.d.ts +55 -4
  20. package/dist/components/danger-confirm.js +67 -30
  21. package/dist/components/danger-confirm.js.map +1 -1
  22. package/dist/components/data-table-cells.d.ts +1 -1
  23. package/dist/components/data-table-filter-popover.d.ts +1 -1
  24. package/dist/components/data-table-filters.d.ts +1 -1
  25. package/dist/components/data-table.d.ts +1 -1
  26. package/dist/components/data-table.js +2 -0
  27. package/dist/components/data-table.js.map +1 -1
  28. package/dist/components/facing-pair.d.ts +13 -1
  29. package/dist/components/file-button.d.ts +13 -1
  30. package/dist/components/file-dropzone.d.ts +13 -1
  31. package/dist/components/floating-panel.d.ts +4 -1
  32. package/dist/components/floating-panel.js +15 -1
  33. package/dist/components/floating-panel.js.map +1 -1
  34. package/dist/components/form-actions.d.ts +13 -1
  35. package/dist/components/form-actions.js +3 -0
  36. package/dist/components/form-actions.js.map +1 -1
  37. package/dist/components/legal.d.ts +84 -0
  38. package/dist/components/legal.js +55 -0
  39. package/dist/components/legal.js.map +1 -0
  40. package/dist/components/money-field.d.ts +13 -1
  41. package/dist/components/number-field.d.ts +14 -2
  42. package/dist/components/number-field.js +23 -22
  43. package/dist/components/number-field.js.map +1 -1
  44. package/dist/components/number-input.d.ts +13 -1
  45. package/dist/components/numpad-sheet.d.ts +13 -1
  46. package/dist/components/passkeys-setting.d.ts +27 -1
  47. package/dist/components/passkeys-setting.js +31 -5
  48. package/dist/components/passkeys-setting.js.map +1 -1
  49. package/dist/components/progress-bar.d.ts +15 -1
  50. package/dist/components/progress-bar.js +8 -1
  51. package/dist/components/progress-bar.js.map +1 -1
  52. package/dist/components/reauth-dialog.d.ts +90 -0
  53. package/dist/components/reauth-dialog.js +158 -0
  54. package/dist/components/reauth-dialog.js.map +1 -0
  55. package/dist/components/series-chart.d.ts +13 -1
  56. package/dist/components/server-wake.d.ts +60 -0
  57. package/dist/components/server-wake.js +79 -0
  58. package/dist/components/server-wake.js.map +1 -0
  59. package/dist/components/settings-fields.d.ts +13 -1
  60. package/dist/components/share-card.d.ts +64 -0
  61. package/dist/components/share-card.js +350 -0
  62. package/dist/components/share-card.js.map +1 -0
  63. package/dist/components/status-dot.d.ts +2 -0
  64. package/dist/components/text-link.d.ts +13 -1
  65. package/dist/components/time-input.d.ts +13 -1
  66. package/dist/components/toast.d.ts +10 -1
  67. package/dist/components/toast.js +42 -2
  68. package/dist/components/toast.js.map +1 -1
  69. package/dist/components/toggle-group.js +5 -2
  70. package/dist/components/toggle-group.js.map +1 -1
  71. package/dist/components/translation-review-editor.d.ts +56 -0
  72. package/dist/components/translation-review-editor.js +159 -0
  73. package/dist/components/translation-review-editor.js.map +1 -0
  74. package/dist/components/translation-review-labels.d.ts +92 -0
  75. package/dist/components/translation-review-labels.js +67 -0
  76. package/dist/components/translation-review-labels.js.map +1 -0
  77. package/dist/components/translation-review-parts.d.ts +97 -0
  78. package/dist/components/translation-review-parts.js +163 -0
  79. package/dist/components/translation-review-parts.js.map +1 -0
  80. package/dist/components/translation-review.d.ts +94 -0
  81. package/dist/components/translation-review.js +344 -0
  82. package/dist/components/translation-review.js.map +1 -0
  83. package/dist/components/ui.d.ts +13 -1
  84. package/dist/components/ui.js +43 -28
  85. package/dist/components/ui.js.map +1 -1
  86. package/dist/components/use-table-state.d.ts +1 -1
  87. package/dist/components/user-avatar.d.ts +2 -0
  88. package/dist/components/write-lock.d.ts +68 -0
  89. package/dist/components/write-lock.js +33 -0
  90. package/dist/components/write-lock.js.map +1 -0
  91. package/dist/{data-table-CpkWUJBY.d.ts → data-table-3mi2R3so.d.ts} +19 -1
  92. package/dist/data-table.d.ts +1 -1
  93. package/dist/hooks/use-file-drop.d.ts +13 -1
  94. package/dist/hooks/use-overlay-history.js +16 -0
  95. package/dist/hooks/use-overlay-history.js.map +1 -1
  96. package/dist/i18n/defaults.d.ts +13 -1
  97. package/dist/i18n/defaults.js +15 -1
  98. package/dist/i18n/defaults.js.map +1 -1
  99. package/dist/i18n/german.d.ts +81 -0
  100. package/dist/i18n/{locales/de.js → german.js} +110 -9
  101. package/dist/i18n/german.js.map +1 -0
  102. package/dist/i18n/kit-labels.d.ts +13 -1
  103. package/dist/i18n/kit-labels.js +5 -0
  104. package/dist/i18n/kit-labels.js.map +1 -1
  105. package/dist/i18n/languages.d.ts +243 -0
  106. package/dist/i18n/languages.js +70 -0
  107. package/dist/i18n/languages.js.map +1 -0
  108. package/dist/i18n/locales/de-CH.d.ts +26 -8
  109. package/dist/i18n/locales/de-CH.js +7 -3
  110. package/dist/i18n/locales/de-CH.js.map +1 -1
  111. package/dist/i18n/locales/en.d.ts +13 -1
  112. package/dist/i18n/locales/en.js +8 -0
  113. package/dist/i18n/locales/en.js.map +1 -1
  114. package/dist/i18n/locales/es.d.ts +13 -1
  115. package/dist/i18n/locales/es.js +127 -27
  116. package/dist/i18n/locales/es.js.map +1 -1
  117. package/dist/i18n/locales/fr.d.ts +13 -1
  118. package/dist/i18n/locales/fr.js +101 -1
  119. package/dist/i18n/locales/fr.js.map +1 -1
  120. package/dist/i18n/locales/hu.d.ts +13 -1
  121. package/dist/i18n/locales/hu.js +105 -1
  122. package/dist/i18n/locales/hu.js.map +1 -1
  123. package/dist/i18n/locales/it.d.ts +13 -1
  124. package/dist/i18n/locales/it.js +134 -34
  125. package/dist/i18n/locales/it.js.map +1 -1
  126. package/dist/i18n/locales/zh.d.ts +13 -1
  127. package/dist/i18n/locales/zh.js +101 -1
  128. package/dist/i18n/locales/zh.js.map +1 -1
  129. package/dist/i18n/review.d.ts +102 -0
  130. package/dist/i18n/review.js +158 -0
  131. package/dist/i18n/review.js.map +1 -0
  132. package/dist/i18n/swiss.d.ts +3 -3
  133. package/dist/i18n/swiss.js.map +1 -1
  134. package/dist/index.d.ts +17 -4
  135. package/dist/index.js +97 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/{kit-labels-C4uB_zmg.d.ts → kit-labels-D1J2_jyD.d.ts} +236 -9
  138. package/dist/lib/floating-stack.d.ts +31 -0
  139. package/dist/lib/floating-stack.js +42 -0
  140. package/dist/lib/floating-stack.js.map +1 -0
  141. package/dist/lib/server-wake.d.ts +146 -0
  142. package/dist/lib/server-wake.js +122 -0
  143. package/dist/lib/server-wake.js.map +1 -0
  144. package/dist/lib/translation-review.d.ts +232 -0
  145. package/dist/lib/translation-review.js +194 -0
  146. package/dist/lib/translation-review.js.map +1 -0
  147. package/dist/rhf/fields.d.ts +13 -1
  148. package/dist/rhf/form.d.ts +13 -1
  149. package/dist/rhf.d.ts +13 -1
  150. package/dist/search/global-search.d.ts +3 -1
  151. package/dist/search/global-search.js.map +1 -1
  152. package/dist/shell/app-shell.d.ts +13 -1
  153. package/dist/shell/top-bar-brand.d.ts +13 -1
  154. package/dist/shell/topbar-action-menu.d.ts +2 -0
  155. package/dist/shell.d.ts +13 -1
  156. package/dist/wizard/stepper-nav.d.ts +13 -1
  157. package/dist/wizard.d.ts +13 -1
  158. package/package.json +1 -1
  159. package/src/components/account-chips.tsx +302 -0
  160. package/src/components/account-settings-labels.ts +16 -2
  161. package/src/components/chip.tsx +239 -6
  162. package/src/components/confirm-dialog.tsx +82 -7
  163. package/src/components/danger-confirm.tsx +118 -33
  164. package/src/components/data-table.tsx +20 -0
  165. package/src/components/floating-panel.tsx +19 -1
  166. package/src/components/form-actions.tsx +22 -3
  167. package/src/components/legal.tsx +159 -0
  168. package/src/components/number-field.tsx +32 -26
  169. package/src/components/passkeys-setting.tsx +68 -7
  170. package/src/components/progress-bar.tsx +21 -1
  171. package/src/components/reauth-dialog.tsx +273 -0
  172. package/src/components/server-wake.tsx +156 -0
  173. package/src/components/share-card.tsx +615 -0
  174. package/src/components/toast.tsx +72 -2
  175. package/src/components/toggle-group.tsx +5 -2
  176. package/src/components/translation-review-editor.tsx +261 -0
  177. package/src/components/translation-review-labels.ts +152 -0
  178. package/src/components/translation-review-parts.tsx +269 -0
  179. package/src/components/translation-review.tsx +502 -0
  180. package/src/components/ui.tsx +89 -32
  181. package/src/components/write-lock.tsx +96 -0
  182. package/src/hooks/use-overlay-history.ts +51 -0
  183. package/src/i18n/defaults.ts +14 -0
  184. package/src/i18n/{locales/de.ts → german.ts} +120 -13
  185. package/src/i18n/kit-labels.tsx +29 -2
  186. package/src/i18n/languages.ts +285 -0
  187. package/src/i18n/locales/de-CH.ts +17 -8
  188. package/src/i18n/locales/en.ts +8 -0
  189. package/src/i18n/locales/es.ts +128 -26
  190. package/src/i18n/locales/fr.ts +103 -0
  191. package/src/i18n/locales/hu.ts +107 -0
  192. package/src/i18n/locales/it.ts +135 -33
  193. package/src/i18n/locales/zh.ts +102 -0
  194. package/src/i18n/review.ts +193 -0
  195. package/src/i18n/swiss.ts +3 -3
  196. package/src/index.ts +86 -1
  197. package/src/lib/floating-stack.ts +66 -0
  198. package/src/lib/server-wake.ts +291 -0
  199. package/src/lib/translation-review.ts +465 -0
  200. package/src/search/global-search.tsx +3 -1
  201. package/dist/i18n/locales/de-CH-informal.d.ts +0 -61
  202. package/dist/i18n/locales/de-CH-informal.js +0 -8
  203. package/dist/i18n/locales/de-CH-informal.js.map +0 -1
  204. package/dist/i18n/locales/de-informal.d.ts +0 -82
  205. package/dist/i18n/locales/de-informal.js +0 -37
  206. package/dist/i18n/locales/de-informal.js.map +0 -1
  207. package/dist/i18n/locales/de.d.ts +0 -66
  208. package/dist/i18n/locales/de.js.map +0 -1
  209. package/src/i18n/locales/de-CH-informal.ts +0 -10
  210. package/src/i18n/locales/de-informal.ts +0 -61
@@ -19,12 +19,12 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
19
19
  feedbackAttachment: {
20
20
  attachmentAdd: "Adjuntar imagen",
21
21
  attachmentCapture: "Capturar pantalla",
22
- attachmentPaste: "…o pega una captura de pantalla desde el portapapeles.",
22
+ attachmentPaste: "…o pegue una captura de pantalla desde el portapapeles.",
23
23
  attachmentRemove: "Quitar adjunto",
24
24
  attachmentList: "Adjuntos",
25
25
  attachmentScreenshot: "Captura de pantalla",
26
26
  attachmentRemoveFile: (name) => `Quitar ${name}`,
27
- attachmentLimit: (max) => `Máximo ${n(max)} ${max === 1 ? "adjunto" : "adjuntos"}: quita uno para añadir otro.`,
27
+ attachmentLimit: (max) => `Máximo ${n(max)} ${max === 1 ? "adjunto" : "adjuntos"}: quite uno para añadir otro.`,
28
28
  },
29
29
  feedbackDialog: {
30
30
  title: "Enviar comentarios",
@@ -41,13 +41,13 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
41
41
  thread: "Comentarios",
42
42
  empty: "Aún no hay comentarios",
43
43
  loading: "Cargando comentarios…",
44
- you: "Tú",
44
+ you: "Usted",
45
45
  staff: "Equipo",
46
46
  attachments: "Adjuntos",
47
47
  },
48
48
  feedbackComposer: {
49
- field: "Escribe un comentario",
50
- placeholder: "Escribe un comentario…",
49
+ field: "Escriba un comentario",
50
+ placeholder: "Escriba un comentario…",
51
51
  send: "Enviar",
52
52
  sendHint: (modifier) => `${modifier} + Intro para enviar`,
53
53
  sendHintEnter: "Intro para enviar, Mayús + Intro para una nueva línea",
@@ -75,22 +75,23 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
75
75
  enabledText: "Activada",
76
76
  disabledText: "Desactivada",
77
77
  enable: "Configurar la verificación en dos pasos",
78
- scanHint: "Escanea este código con tu app de autenticación e introduce el código que muestra.",
78
+ scanHint: "Escanee este código con su app de autenticación e introduzca el código que muestra.",
79
79
  codeLabel: "Código de verificación",
80
80
  verify: "Verificar y activar",
81
81
  disableSection: "Desactivar la verificación en dos pasos",
82
82
  password: "Contraseña actual",
83
83
  disable: "Desactivar",
84
- qrAlt: "Código QR para tu app de autenticación",
85
- secretHint: "¿No puedes escanearlo? Introduce esta clave en la app:",
84
+ qrAlt: "Código QR para su app de autenticación",
85
+ secretHint: "¿No puede escanearlo? Introduzca esta clave en la app:",
86
86
  copySecret: "Copiar clave",
87
87
  },
88
88
  passkeys: {
89
89
  title: "Llaves de acceso",
90
- description: "Inicia sesión con tu huella, tu cara o el PIN del dispositivo en lugar de una contraseña.",
90
+ description: "Inicie sesión con su huella, su cara o el PIN del dispositivo en lugar de una contraseña.",
91
+ descriptionAlongside: "Inicie sesión con su huella, su cara o el PIN del dispositivo. Su contraseña sigue funcionando.",
91
92
  empty: "Aún no hay llaves de acceso",
92
93
  loading: "Cargando llaves de acceso…",
93
- list: "Tus llaves de acceso",
94
+ list: "Sus llaves de acceso",
94
95
  nameLabel: "Nombre (opcional)",
95
96
  namePlaceholder: "p. ej. Portátil, Móvil",
96
97
  add: "Añadir llave de acceso",
@@ -102,7 +103,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
102
103
  cancel: "Cancelar",
103
104
  delete: "Eliminar",
104
105
  deleteItem: (name) => `Eliminar ${name}`,
105
- deleteConfirm: (name) => `¿Eliminar «${name}»? Ya no podrás iniciar sesión con ella.`,
106
+ deleteConfirm: (name) => `¿Eliminar «${name}»? Ya no podrá iniciar sesión con ella.`,
106
107
  confirmDelete: "Eliminar llave de acceso",
107
108
  created: (date) => `Añadida el ${date}`,
108
109
  lastUsed: (date) => `Último uso: ${date}`,
@@ -116,12 +117,12 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
116
117
  addRow: "Añadir fila",
117
118
  removeRow: (row) => `Quitar la fila ${row}`,
118
119
  clear: "Vaciar tabla",
119
- pasteHint: "Pega un bloque de una hoja de cálculo en cualquier celda",
120
+ pasteHint: "Pegue un bloque de una hoja de cálculo en cualquier celda",
120
121
  cell: (column, row) => `${column}, fila ${row}`,
121
122
  rowNumber: "Fila",
122
123
  rowActions: "Acciones de fila",
123
124
  keyboardHint:
124
- "Las flechas mueven entre celdas. Escribe para reemplazar una celda, F2 para editarla, Escape para deshacer la edición. Intro baja y añade una fila al final.",
125
+ "Las flechas mueven entre celdas. Escriba para reemplazar una celda, F2 para editarla, Escape para deshacer la edición. Intro baja y añade una fila al final.",
125
126
  lineError: (line) => `No se pudo leer la línea ${line}`,
126
127
  points: (count) => (count === 1 ? "1 punto" : `${count} puntos`),
127
128
  problems: (count) =>
@@ -147,7 +148,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
147
148
  dataTable: {
148
149
  columns: "Columnas",
149
150
  selectAllRows: "Seleccionar todas las filas",
150
- sortHint: "Haz clic para ordenar · Mayús+clic para añadir un criterio",
151
+ sortHint: "Haga clic para ordenar · Mayús+clic para añadir un criterio",
151
152
  filter: "Filtrar",
152
153
  close: "Cerrar",
153
154
  selectRow: "Seleccionar fila",
@@ -206,13 +207,13 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
206
207
  nextMonth: "Mes siguiente",
207
208
  // Already formatted in the provider's locale ("lunes, 14 de septiembre de 2026").
208
209
  day: (date) => date,
209
- chooseStart: "Elige una fecha de inicio",
210
- chooseEnd: "Elige una fecha de fin",
210
+ chooseStart: "Elija una fecha de inicio",
211
+ chooseEnd: "Elija una fecha de fin",
211
212
  // "Fecha" is feminine; the date follows a label rather than being the subject of
212
213
  // a participle it cannot agree with.
213
- startSelected: (date) => `Fecha de inicio: ${date}. Elige una fecha de fin.`,
214
+ startSelected: (date) => `Fecha de inicio: ${date}. Elija una fecha de fin.`,
214
215
  rangeSelected: (from, to) =>
215
- `Periodo seleccionado: del ${from} al ${to}. Elige una fecha de inicio para empezar de nuevo.`,
216
+ `Periodo seleccionado: del ${from} al ${to}. Elija una fecha de inicio para empezar de nuevo.`,
216
217
  },
217
218
  monthPicker: {
218
219
  previousYear: "Año anterior",
@@ -255,7 +256,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
255
256
  loadError: "No se han podido cargar los resultados",
256
257
  resultCount: (count) => `${n(count)} ${plural(count, "resultado", "resultados")}`,
257
258
  minChars: (count) =>
258
- `Escribe al menos ${n(count)} ${plural(count, "carácter", "caracteres")}`,
259
+ `Escriba al menos ${n(count)} ${plural(count, "carácter", "caracteres")}`,
259
260
  },
260
261
  multiSelect: {
261
262
  search: "Buscar",
@@ -318,7 +319,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
318
319
  cancel: "Cancelar",
319
320
  prompt: "Esta acción no se puede deshacer.",
320
321
  password: "Contraseña",
321
- phrase: (phrase) => `Escribe «${phrase}» para confirmar`,
322
+ phrase: (phrase) => `Escriba «${phrase}» para confirmar`,
322
323
  },
323
324
  tabs: {
324
325
  add: "Añadir pestaña",
@@ -394,7 +395,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
394
395
  cancelDismissLabel: "Seguir editando",
395
396
  reviewTitle: "Revisión",
396
397
  edit: "Editar",
397
- missingRequired: "Rellena todos los campos obligatorios.",
398
+ missingRequired: "Rellene todos los campos obligatorios.",
398
399
  genericError: "Se ha producido un error",
399
400
  },
400
401
  tour: {
@@ -402,7 +403,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
402
403
  back: "Atrás",
403
404
  skip: "Omitir",
404
405
  done: "Listo",
405
- awaitClickHint: "Haz clic en el elemento resaltado para continuar",
406
+ awaitClickHint: "Haga clic en el elemento resaltado para continuar",
406
407
  step: (current, total) => `${n(current)} / ${n(total)}`,
407
408
  },
408
409
  commandPalette: {
@@ -441,8 +442,8 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
441
442
  },
442
443
  signaturePad: {
443
444
  label: "Firma",
444
- instructions: "Firma en el recuadro con el ratón, el dedo o un lápiz.",
445
- typedFallbackHint: "Si no puedes dibujar, escribe tu nombre.",
445
+ instructions: "Firme en el recuadro con el ratón, el dedo o un lápiz.",
446
+ typedFallbackHint: "Si no puede dibujar, escriba su nombre.",
446
447
  empty: "Aún no hay nada dibujado",
447
448
  signed: "Firma dibujada",
448
449
  undo: "Deshacer el último trazo",
@@ -480,7 +481,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
480
481
  seriesChart: {
481
482
  resetZoom: "Restablecer zoom",
482
483
  zoomHint:
483
- "Arrastra para ampliar: una selección más o menos cuadrada amplía ambos ejes; una larga y estrecha, solo el suyo. Haz doble clic para restablecer.",
484
+ "Arrastre para ampliar: una selección más o menos cuadrada amplía ambos ejes; una larga y estrecha, solo el suyo. Haga doble clic para restablecer.",
484
485
  empty: "Sin datos",
485
486
  legend: "Series",
486
487
  points: "Valores del gráfico",
@@ -495,6 +496,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
495
496
  confirmDialog: {
496
497
  confirm: "Confirmar",
497
498
  cancel: "Cancelar",
499
+ typed: (text) => `Escriba «${text}» para confirmar`,
498
500
  },
499
501
  floatingPanel: {
500
502
  close: "Cerrar",
@@ -531,7 +533,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
531
533
  lineItems: {
532
534
  add: "Añadir fila",
533
535
  remove: (row) => `Eliminar fila ${row}`,
534
- confirmRemove: (row) => `¿Eliminar fila ${row}? Pulsa de nuevo para confirmar`,
536
+ confirmRemove: (row) => `¿Eliminar fila ${row}? Pulse de nuevo para confirmar`,
535
537
  row: (row) => `Fila ${row}`,
536
538
  cell: (column, row) => `${column}, fila ${row}`,
537
539
  totals: "Total",
@@ -580,6 +582,106 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
580
582
  noPreview: "No hay vista previa disponible para este archivo",
581
583
  openInNewTab: "Abrir en una pestaña nueva",
582
584
  },
585
+ writeLock: {
586
+ reason: "Puede verlo, pero no modificarlo.",
587
+ },
588
+ accountState: {
589
+ // Agreeing with "cuenta" (feminine): the chip is the state of an account.
590
+ active: "Activa",
591
+ inactive: "Inactiva",
592
+ invited: "Invitación enviada",
593
+ registered: "Registrada",
594
+ unverified: "Sin verificar",
595
+ passwordChange: "Debe cambiar la contraseña",
596
+ },
597
+ shareCard: {
598
+ dialogTitle: "Compartir",
599
+ close: "Cerrar",
600
+ email: "Correo electrónico",
601
+ emailOptional: "Correo electrónico (opcional)",
602
+ // example.com is reserved for examples (RFC 2606); a localised domain is real.
603
+ emailPlaceholder: "nombre@example.com",
604
+ invalidEmail: "Introduzca una dirección de correo completa.",
605
+ role: "Rol",
606
+ roleOf: (name) => `Rol de ${name}`,
607
+ add: "Compartir",
608
+ whoHasAccess: "Quién tiene acceso",
609
+ nobodyYet: "Nadie más tiene acceso todavía.",
610
+ pending: "Pendiente",
611
+ openInvite: "Enlace de invitación abierto",
612
+ copyLink: "Copiar enlace",
613
+ team: "Equipo",
614
+ teamHint: (name) => `Todos los miembros de ${name} tendrán acceso.`,
615
+ remove: "Quitar acceso",
616
+ removeConfirm: (name) => `¿Quitar el acceso a ${name}?`,
617
+ revokePending: "Retirar invitación",
618
+ revokePendingConfirm: (name) => `¿Retirar la invitación para ${name}?`,
619
+ failed: "No ha funcionado. Inténtelo de nuevo.",
620
+ loading: "Cargando…",
621
+ },
622
+ reauthDialog: {
623
+ title: "Confirme que es usted",
624
+ description: "Introduzca su contraseña actual para continuar.",
625
+ password: "Contraseña actual",
626
+ submit: "Continuar",
627
+ cancel: "Cancelar",
628
+ },
629
+ serverWake: {
630
+ slow: "Sigue cargando: está tardando más de lo habitual.",
631
+ waking: (appName) =>
632
+ `El servidor se duerme cuando nadie usa ${appName ?? "la aplicación"}, así que la primera solicitud tras una pausa tiene que volver a arrancarlo. Puede tardar un momento; no se pierde nada y la página se completará sola.`,
633
+ },
634
+ legal: {
635
+ navLabel: "Información legal",
636
+ },
637
+ translationReview: {
638
+ statusMissing: "Falta",
639
+ statusUnreviewed: "Sin revisar",
640
+ statusChanged: "Cambiado desde la revisión",
641
+ statusNeedsChange: "Requiere cambios",
642
+ statusApproved: "Aprobado",
643
+ statusFilter: "Estado",
644
+ all: "Todos",
645
+ filterCount: (label, count) => `${label} · ${n(count)}`,
646
+ source: "Textos",
647
+ allSources: "Todos los textos",
648
+ namespace: "Área",
649
+ allNamespaces: "Todas las áreas",
650
+ search: "Buscar en claves y textos",
651
+ placeholdersOnly: (count) => `Solo problemas de marcadores (${n(count)})`,
652
+ placeholderChip: "Marcadores",
653
+ key: "Clave",
654
+ statusColumn: "Estado",
655
+ empty: "Ningún texto coincide con estos filtros.",
656
+ missingText: "Falta en este idioma",
657
+ progress: (approved, total) => `${n(approved)} de ${n(total)} ${plural(approved, "aprobado", "aprobados")}`,
658
+ localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,
659
+ locales: "Idiomas",
660
+ approve: "Aprobar",
661
+ flag: "Requiere cambios",
662
+ suggest: "Proponer traducción",
663
+ reset: "Marcar como sin revisar",
664
+ cancel: "Cancelar",
665
+ approveSelected: "Aprobar la selección",
666
+ resetSelected: "Marcar la selección como sin revisar",
667
+ selectShown: "Seleccionar todo lo mostrado",
668
+ changedSince: "Este texto cambió después de revisarse. Vuelva a leerlo, por favor.",
669
+ reviewedWording: "Redacción al revisarse",
670
+ reviewedReference: "Referencia al revisarse",
671
+ placeholderMismatch: (reference, text) =>
672
+ `Los marcadores no coinciden con la referencia — referencia: ${reference}; este texto: ${text}. La aplicación los rellena, así que deben quedar exactamente como están.`,
673
+ lastApproved: (name, date) => `Aprobado por ${name} el ${date}`,
674
+ lastFlagged: (name, date) => `Marcado para cambiar por ${name} el ${date}`,
675
+ erasedReviewer: "una cuenta eliminada",
676
+ suggestion: "Mejor redacción",
677
+ translation: "Traducción",
678
+ note: "Nota (opcional)",
679
+ notePlaceholder: "Qué está mal o qué hay que tener en cuenta",
680
+ readOnly: "Puede leer este idioma, pero no revisarlo.",
681
+ scope: (areas) => `Su revisión se limita a: ${areas}.`,
682
+ exportCorrections: (count) => `Exportar correcciones (${n(count)})`,
683
+ failed: "No ha funcionado. Inténtelo de nuevo.",
684
+ },
583
685
  };
584
686
  }
585
687
 
@@ -90,6 +90,8 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
90
90
  title: "Clés d’accès",
91
91
  description:
92
92
  "Connectez-vous avec votre empreinte, votre visage ou le code PIN de l’appareil plutôt qu’avec un mot de passe.",
93
+ descriptionAlongside:
94
+ "Connectez-vous avec votre empreinte, votre visage ou le code PIN de l’appareil. Votre mot de passe reste valable.",
93
95
  empty: "Aucune clé d’accès pour l’instant",
94
96
  loading: "Chargement des clés d’accès…",
95
97
  list: "Vos clés d’accès",
@@ -511,6 +513,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
511
513
  confirmDialog: {
512
514
  confirm: "Confirmer",
513
515
  cancel: "Annuler",
516
+ typed: (text) => `Saisissez «\u202f${text}\u202f» pour confirmer`,
514
517
  },
515
518
  floatingPanel: {
516
519
  close: "Fermer",
@@ -596,6 +599,106 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
596
599
  noPreview: "Aucun aperçu disponible pour ce fichier",
597
600
  openInNewTab: "Ouvrir dans un nouvel onglet",
598
601
  },
602
+ writeLock: {
603
+ reason: "Vous pouvez consulter ceci, mais pas le modifier.",
604
+ },
605
+ accountState: {
606
+ // Agreeing with "compte" (masculine): the chip is the state of an account.
607
+ active: "Actif",
608
+ inactive: "Inactif",
609
+ invited: "Invité",
610
+ registered: "Inscrit",
611
+ unverified: "Non vérifié",
612
+ passwordChange: "Doit changer de mot de passe",
613
+ },
614
+ shareCard: {
615
+ dialogTitle: "Partager",
616
+ close: "Fermer",
617
+ email: "Adresse e-mail",
618
+ emailOptional: "Adresse e-mail (facultatif)",
619
+ // example.com is reserved for examples (RFC 2606); a localised domain is real.
620
+ emailPlaceholder: "nom@example.com",
621
+ invalidEmail: "Saisissez une adresse e-mail complète.",
622
+ role: "Rôle",
623
+ roleOf: (name) => `Rôle de ${name}`,
624
+ add: "Partager",
625
+ whoHasAccess: "Qui a accès",
626
+ nobodyYet: "Personne d’autre n’y a encore accès.",
627
+ pending: "En attente",
628
+ openInvite: "Lien d’invitation ouvert",
629
+ copyLink: "Copier le lien",
630
+ team: "Équipe",
631
+ teamHint: (name) => `Tous les membres de ${name} y auront accès.`,
632
+ remove: "Retirer l’accès",
633
+ removeConfirm: (name) => `Retirer l’accès de ${name}\u202f?`,
634
+ revokePending: "Révoquer l’invitation",
635
+ revokePendingConfirm: (name) => `Révoquer l’invitation de ${name}\u202f?`,
636
+ failed: "Cela n’a pas fonctionné. Veuillez réessayer.",
637
+ loading: "Chargement…",
638
+ },
639
+ reauthDialog: {
640
+ title: "Confirmez votre identité",
641
+ description: "Saisissez votre mot de passe actuel pour continuer.",
642
+ password: "Mot de passe actuel",
643
+ submit: "Continuer",
644
+ cancel: "Annuler",
645
+ },
646
+ serverWake: {
647
+ slow: "Chargement en cours — cela prend plus de temps que d’habitude.",
648
+ waking: (appName) =>
649
+ `Le serveur se met en veille quand personne n’utilise ${appName ?? "l’application"}, donc la première requête après une pause doit le redémarrer. Cela peut prendre un moment — rien n’est perdu, la page se remplira d’elle-même.`,
650
+ },
651
+ legal: {
652
+ navLabel: "Informations légales",
653
+ },
654
+ translationReview: {
655
+ statusMissing: "Manquant",
656
+ statusUnreviewed: "Non relu",
657
+ statusChanged: "Modifié depuis la relecture",
658
+ statusNeedsChange: "À modifier",
659
+ statusApproved: "Approuvé",
660
+ statusFilter: "Statut",
661
+ all: "Tous",
662
+ filterCount: (label, count) => `${label} · ${n(count)}`,
663
+ source: "Textes",
664
+ allSources: "Tous les textes",
665
+ namespace: "Domaine",
666
+ allNamespaces: "Tous les domaines",
667
+ search: "Rechercher dans les clés et les textes",
668
+ placeholdersOnly: (count) => `Seulement les problèmes d’espaces réservés (${n(count)})`,
669
+ placeholderChip: "Espaces réservés",
670
+ key: "Clé",
671
+ statusColumn: "Statut",
672
+ empty: "Aucun texte ne correspond à ces filtres.",
673
+ missingText: "Manquant dans cette langue",
674
+ progress: (approved, total) => `${n(approved)} sur ${n(total)} ${plural(approved, "approuvé", "approuvés")}`,
675
+ localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,
676
+ locales: "Langues",
677
+ approve: "Approuver",
678
+ flag: "À modifier",
679
+ suggest: "Proposer une traduction",
680
+ reset: "Marquer comme non relu",
681
+ cancel: "Annuler",
682
+ approveSelected: "Approuver la sélection",
683
+ resetSelected: "Marquer la sélection comme non relue",
684
+ selectShown: "Sélectionner tout ce qui est affiché",
685
+ changedSince: "Ce texte a été modifié après la relecture. Veuillez le relire.",
686
+ reviewedWording: "Formulation lors de la relecture",
687
+ reviewedReference: "Référence lors de la relecture",
688
+ placeholderMismatch: (reference, text) =>
689
+ `Les espaces réservés diffèrent de la référence — référence\u00a0: ${reference}\u202f; ce texte\u00a0: ${text}. L’application y insère des valeurs, ils doivent donc rester exactement tels quels.`,
690
+ lastApproved: (name, date) => `Approuvé par ${name} le ${date}`,
691
+ lastFlagged: (name, date) => `Signalé à modifier par ${name} le ${date}`,
692
+ erasedReviewer: "un compte supprimé",
693
+ suggestion: "Meilleure formulation",
694
+ translation: "Traduction",
695
+ note: "Remarque (facultatif)",
696
+ notePlaceholder: "Ce qui ne va pas, ou ce qu’il faut garder en tête",
697
+ readOnly: "Vous pouvez consulter cette langue, mais pas la relire.",
698
+ scope: (areas) => `Votre relecture se limite à\u00a0: ${areas}.`,
699
+ exportCorrections: (count) => `Exporter les corrections (${n(count)})`,
700
+ failed: "Cela n’a pas fonctionné. Veuillez réessayer.",
701
+ },
599
702
  };
600
703
  }
601
704
 
@@ -88,6 +88,8 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
88
88
  title: "Hozzáférési kulcsok",
89
89
  description:
90
90
  "Jelentkezzen be ujjlenyomattal, arcfelismeréssel vagy az eszköz PIN-kódjával jelszó helyett.",
91
+ descriptionAlongside:
92
+ "Jelentkezzen be ujjlenyomattal, arcfelismeréssel vagy az eszköz PIN-kódjával. A jelszava továbbra is működik.",
91
93
  empty: "Még nincs hozzáférési kulcs",
92
94
  loading: "Hozzáférési kulcsok betöltése…",
93
95
  list: "Az Ön hozzáférési kulcsai",
@@ -497,6 +499,7 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
497
499
  confirmDialog: {
498
500
  confirm: "Megerősítés",
499
501
  cancel: "Mégse",
502
+ typed: (text) => `A megerősítéshez írja be: „${text}”`,
500
503
  },
501
504
  floatingPanel: {
502
505
  close: "Bezárás",
@@ -582,6 +585,110 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
582
585
  noPreview: "Ehhez a fájlhoz nincs előnézet",
583
586
  openInNewTab: "Megnyitás új lapon",
584
587
  },
588
+ writeLock: {
589
+ reason: "Ezt megtekintheti, de nem módosíthatja.",
590
+ },
591
+ accountState: {
592
+ active: "Aktív",
593
+ inactive: "Inaktív",
594
+ invited: "Meghívva",
595
+ registered: "Regisztrált",
596
+ unverified: "Nincs megerősítve",
597
+ passwordChange: "Jelszócsere szükséges",
598
+ },
599
+ shareCard: {
600
+ dialogTitle: "Megosztás",
601
+ close: "Bezárás",
602
+ email: "E-mail-cím",
603
+ emailOptional: "E-mail-cím (nem kötelező)",
604
+ // example.com is reserved for examples (RFC 2606); a localised domain is real.
605
+ emailPlaceholder: "nev@example.com",
606
+ invalidEmail: "Adjon meg egy teljes e-mail-címet.",
607
+ role: "Szerepkör",
608
+ // The name after a colon, never inflected: the article before it (a/az) and a
609
+ // possessive suffix on it both depend on how the name sounds. As `deleteConfirm`.
610
+ roleOf: (name) => `Szerepkör (${name})`,
611
+ add: "Megosztás",
612
+ whoHasAccess: "Hozzáféréssel rendelkezők",
613
+ nobodyYet: "Még senki más nem fér hozzá.",
614
+ pending: "Függőben",
615
+ openInvite: "Nyitott meghívólink",
616
+ copyLink: "Link másolása",
617
+ team: "Csapat",
618
+ teamHint: (name) => `A(z) ${name} minden tagja hozzáférést kap.`,
619
+ remove: "Hozzáférés megvonása",
620
+ removeConfirm: (name) => `Megvonja a hozzáférést: ${name}?`,
621
+ revokePending: "Meghívás visszavonása",
622
+ revokePendingConfirm: (name) => `Visszavonja a meghívást: ${name}?`,
623
+ failed: "Ez nem sikerült. Kérjük, próbálja újra.",
624
+ loading: "Betöltés…",
625
+ },
626
+ reauthDialog: {
627
+ title: "Személyazonosság megerősítése",
628
+ description: "A folytatáshoz adja meg jelenlegi jelszavát.",
629
+ password: "Jelenlegi jelszó",
630
+ submit: "Folytatás",
631
+ cancel: "Mégse",
632
+ },
633
+ serverWake: {
634
+ slow: "Még tölt – ez a szokásosnál tovább tart.",
635
+ // The name stays in the nominative behind "a(z) … alkalmazást", as in
636
+ // `confirmRemove`: a Hungarian case ending on an arbitrary product name is a guess.
637
+ waking: (appName) =>
638
+ `A szerver elalszik, ha senki sem használja ${appName ? `a(z) ${appName} alkalmazást` : "az alkalmazást"}, ezért egy szünet utáni első kérésnek újra el kell indítania. Ez eltarthat egy ideig – semmi sem vész el, az oldal magától betöltődik.`,
639
+ },
640
+ legal: {
641
+ navLabel: "Jogi információk",
642
+ },
643
+ translationReview: {
644
+ statusMissing: "Hiányzik",
645
+ statusUnreviewed: "Nincs ellenőrizve",
646
+ statusChanged: "Ellenőrzés óta módosult",
647
+ statusNeedsChange: "Módosítandó",
648
+ statusApproved: "Jóváhagyva",
649
+ statusFilter: "Állapot",
650
+ all: "Mind",
651
+ filterCount: (label, count) => `${label} · ${n(count)}`,
652
+ source: "Szövegek",
653
+ allSources: "Minden szöveg",
654
+ namespace: "Terület",
655
+ allNamespaces: "Minden terület",
656
+ search: "Keresés kulcsokban és szövegekben",
657
+ placeholdersOnly: (count) => `Csak a helyőrző-problémák (${n(count)})`,
658
+ placeholderChip: "Helyőrzők",
659
+ key: "Kulcs",
660
+ statusColumn: "Állapot",
661
+ empty: "Egy szöveg sem felel meg ezeknek a szűrőknek.",
662
+ missingText: "Ezen a nyelven hiányzik",
663
+ progress: (approved, total) => `${n(approved)} / ${n(total)} jóváhagyva`,
664
+ localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,
665
+ locales: "Nyelvek",
666
+ approve: "Jóváhagyás",
667
+ flag: "Módosítandó",
668
+ suggest: "Fordítás javaslata",
669
+ reset: "Megjelölés ellenőrizetlenként",
670
+ cancel: "Mégse",
671
+ approveSelected: "Kijelöltek jóváhagyása",
672
+ resetSelected: "Kijelöltek megjelölése ellenőrizetlenként",
673
+ selectShown: "Az összes megjelenített kijelölése",
674
+ changedSince: "Ez a szöveg az ellenőrzés után megváltozott. Kérjük, olvassa el újra.",
675
+ reviewedWording: "Megfogalmazás az ellenőrzéskor",
676
+ reviewedReference: "Referencia az ellenőrzéskor",
677
+ placeholderMismatch: (reference, text) =>
678
+ `A helyőrzők eltérnek a referenciától – referencia: ${reference}; ez a szöveg: ${text}. Ezekbe az alkalmazás értékeket illeszt be, ezért pontosan így kell maradniuk.`,
679
+ // The name after a colon, never inflected — as `shareCard.removeConfirm`.
680
+ lastApproved: (name, date) => `Jóváhagyta: ${name}, ${date}`,
681
+ lastFlagged: (name, date) => `Módosításra jelölte: ${name}, ${date}`,
682
+ erasedReviewer: "egy törölt fiók",
683
+ suggestion: "Jobb megfogalmazás",
684
+ translation: "Fordítás",
685
+ note: "Megjegyzés (nem kötelező)",
686
+ notePlaceholder: "Mi a hiba, vagy mire kell figyelni",
687
+ readOnly: "Ezt a nyelvet olvashatja, de nem ellenőrizheti.",
688
+ scope: (areas) => `Az Ön ellenőrzése a következőkre korlátozódik: ${areas}.`,
689
+ exportCorrections: (count) => `Javítások exportálása (${n(count)})`,
690
+ failed: "Ez nem sikerült. Kérjük, próbálja újra.",
691
+ },
585
692
  };
586
693
  }
587
694