@eifi1/ui-kit 0.54.0 → 0.55.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 (847) hide show
  1. package/README.md +90 -76
  2. package/dist/admin/plan-change.js +2 -2
  3. package/dist/admin/plan-change.js.map +1 -1
  4. package/dist/admin/user-roster.d.ts +6 -0
  5. package/dist/admin/user-roster.js +4 -0
  6. package/dist/admin/user-roster.js.map +1 -1
  7. package/dist/billing/billing-labels.d.ts +26 -0
  8. package/dist/billing/billing-labels.js +9 -0
  9. package/dist/billing/billing-labels.js.map +1 -1
  10. package/dist/billing/subscription-standing.d.ts +61 -0
  11. package/dist/billing/subscription-standing.js +51 -0
  12. package/dist/billing/subscription-standing.js.map +1 -0
  13. package/dist/billing/usage-meter.d.ts +52 -0
  14. package/dist/billing/usage-meter.js +52 -0
  15. package/dist/billing/usage-meter.js.map +1 -0
  16. package/dist/chart.d.ts +1 -0
  17. package/dist/chart.js +4 -0
  18. package/dist/chart.js.map +1 -1
  19. package/dist/components/alert-banner.js +2 -3
  20. package/dist/components/alert-banner.js.map +1 -1
  21. package/dist/components/amount-input.js +3 -15
  22. package/dist/components/amount-input.js.map +1 -1
  23. package/dist/components/autocomplete.js +2 -2
  24. package/dist/components/autocomplete.js.map +1 -1
  25. package/dist/components/bulk-action-bar.js +2 -1
  26. package/dist/components/bulk-action-bar.js.map +1 -1
  27. package/dist/components/button.d.ts +35 -1
  28. package/dist/components/button.js +5 -9
  29. package/dist/components/button.js.map +1 -1
  30. package/dist/components/calendar-heatmap.js +2 -2
  31. package/dist/components/calendar-heatmap.js.map +1 -1
  32. package/dist/components/camera-button.d.ts +89 -0
  33. package/dist/components/camera-button.js +122 -0
  34. package/dist/components/camera-button.js.map +1 -0
  35. package/dist/components/camera-capture.d.ts +66 -0
  36. package/dist/components/camera-capture.js +190 -0
  37. package/dist/components/camera-capture.js.map +1 -0
  38. package/dist/components/camera-labels.d.ts +20 -0
  39. package/dist/components/camera-labels.js +15 -0
  40. package/dist/components/camera-labels.js.map +1 -0
  41. package/dist/components/chart-edge.d.ts +9 -0
  42. package/dist/components/chart-edge.js +14 -3
  43. package/dist/components/chart-edge.js.map +1 -1
  44. package/dist/components/chart-zoom-core.js +34 -29
  45. package/dist/components/chart-zoom-core.js.map +1 -1
  46. package/dist/components/checkbox-group.js +1 -1
  47. package/dist/components/checkbox-group.js.map +1 -1
  48. package/dist/components/combobox-core.js +3 -2
  49. package/dist/components/combobox-core.js.map +1 -1
  50. package/dist/components/combobox.js +2 -2
  51. package/dist/components/combobox.js.map +1 -1
  52. package/dist/components/consent-again-notice-labels.d.ts +25 -0
  53. package/dist/components/consent-again-notice-labels.js +15 -0
  54. package/dist/components/consent-again-notice-labels.js.map +1 -0
  55. package/dist/components/consent-again-notice.d.ts +85 -0
  56. package/dist/components/consent-again-notice.js +94 -0
  57. package/dist/components/consent-again-notice.js.map +1 -0
  58. package/dist/components/country-select.js +2 -7
  59. package/dist/components/country-select.js.map +1 -1
  60. package/dist/components/currency-select.js +2 -2
  61. package/dist/components/currency-select.js.map +1 -1
  62. package/dist/components/danger-confirm.js +2 -2
  63. package/dist/components/danger-confirm.js.map +1 -1
  64. package/dist/components/data-table-column-settings.js +2 -2
  65. package/dist/components/data-table-column-settings.js.map +1 -1
  66. package/dist/components/data-table-fit.js.map +1 -1
  67. package/dist/components/data-table-virtual.js +13 -3
  68. package/dist/components/data-table-virtual.js.map +1 -1
  69. package/dist/components/date-field.js +2 -2
  70. package/dist/components/date-field.js.map +1 -1
  71. package/dist/components/date-picker.js +2 -2
  72. package/dist/components/date-picker.js.map +1 -1
  73. package/dist/components/date-range-picker.js +2 -6
  74. package/dist/components/date-range-picker.js.map +1 -1
  75. package/dist/components/dialog-frame.d.ts +3 -1
  76. package/dist/components/dialog-frame.js.map +1 -1
  77. package/dist/components/dropdown.js +7 -3
  78. package/dist/components/dropdown.js.map +1 -1
  79. package/dist/components/entity-combobox.js +2 -2
  80. package/dist/components/entity-combobox.js.map +1 -1
  81. package/dist/components/field-parts.d.ts +108 -6
  82. package/dist/components/field-parts.js +59 -6
  83. package/dist/components/field-parts.js.map +1 -1
  84. package/dist/components/field-suggestion-labels.d.ts +2 -0
  85. package/dist/components/field-suggestion-labels.js +10 -0
  86. package/dist/components/field-suggestion-labels.js.map +1 -0
  87. package/dist/components/field.js +1 -1
  88. package/dist/components/field.js.map +1 -1
  89. package/dist/components/file-button.d.ts +1 -1
  90. package/dist/components/file-button.js.map +1 -1
  91. package/dist/components/floating-panel.d.ts +7 -6
  92. package/dist/components/floating-panel.js +3 -17
  93. package/dist/components/floating-panel.js.map +1 -1
  94. package/dist/components/form-actions.d.ts +3 -2
  95. package/dist/components/form-actions.js.map +1 -1
  96. package/dist/components/hover-menu.js +3 -2
  97. package/dist/components/hover-menu.js.map +1 -1
  98. package/dist/components/icon-button.d.ts +23 -5
  99. package/dist/components/icon-button.js +6 -8
  100. package/dist/components/icon-button.js.map +1 -1
  101. package/dist/components/inline-confirm.js +2 -1
  102. package/dist/components/inline-confirm.js.map +1 -1
  103. package/dist/components/inline-entity-combobox.js +2 -2
  104. package/dist/components/inline-entity-combobox.js.map +1 -1
  105. package/dist/components/input.js +2 -2
  106. package/dist/components/input.js.map +1 -1
  107. package/dist/components/jump-calendar.js +3 -3
  108. package/dist/components/jump-calendar.js.map +1 -1
  109. package/dist/components/legal.d.ts +13 -1
  110. package/dist/components/legal.js +12 -0
  111. package/dist/components/legal.js.map +1 -1
  112. package/dist/components/legended-series-chart.d.ts +80 -0
  113. package/dist/components/legended-series-chart.js +70 -0
  114. package/dist/components/legended-series-chart.js.map +1 -0
  115. package/dist/components/lightbox.js +2 -1
  116. package/dist/components/lightbox.js.map +1 -1
  117. package/dist/components/mini-calendar.js +13 -5
  118. package/dist/components/mini-calendar.js.map +1 -1
  119. package/dist/components/modal.d.ts +23 -2
  120. package/dist/components/modal.js +24 -6
  121. package/dist/components/modal.js.map +1 -1
  122. package/dist/components/month-picker.d.ts +1 -1
  123. package/dist/components/month-picker.js +6 -6
  124. package/dist/components/month-picker.js.map +1 -1
  125. package/dist/components/multi-entity-combobox.js +2 -2
  126. package/dist/components/multi-entity-combobox.js.map +1 -1
  127. package/dist/components/multi-select.js +2 -6
  128. package/dist/components/multi-select.js.map +1 -1
  129. package/dist/components/number-input.js +2 -2
  130. package/dist/components/number-input.js.map +1 -1
  131. package/dist/components/page-header-layout.d.ts +18 -0
  132. package/dist/components/page-header-layout.js +23 -0
  133. package/dist/components/page-header-layout.js.map +1 -0
  134. package/dist/components/page-header-skeleton.d.ts +41 -0
  135. package/dist/components/page-header-skeleton.js +52 -0
  136. package/dist/components/page-header-skeleton.js.map +1 -0
  137. package/dist/components/page-header.js +4 -17
  138. package/dist/components/page-header.js.map +1 -1
  139. package/dist/components/popover.js +7 -2
  140. package/dist/components/popover.js.map +1 -1
  141. package/dist/components/release-notes-labels.d.ts +16 -0
  142. package/dist/components/release-notes-labels.js +18 -0
  143. package/dist/components/release-notes-labels.js.map +1 -0
  144. package/dist/components/release-notes.d.ts +65 -0
  145. package/dist/components/release-notes.js +65 -0
  146. package/dist/components/release-notes.js.map +1 -0
  147. package/dist/components/select.js +2 -2
  148. package/dist/components/select.js.map +1 -1
  149. package/dist/components/series-chart-labels.d.ts +9 -0
  150. package/dist/components/series-chart-labels.js +3 -1
  151. package/dist/components/series-chart-labels.js.map +1 -1
  152. package/dist/components/series-chart.d.ts +5 -0
  153. package/dist/components/series-chart.js +89 -36
  154. package/dist/components/series-chart.js.map +1 -1
  155. package/dist/components/toggle-group.js +3 -2
  156. package/dist/components/toggle-group.js.map +1 -1
  157. package/dist/components/treemap-layout.js.map +1 -1
  158. package/dist/components/treemap.d.ts +17 -15
  159. package/dist/components/treemap.js +167 -85
  160. package/dist/components/treemap.js.map +1 -1
  161. package/dist/eslint/index.js +1 -1
  162. package/dist/eslint/role-utilities.d.ts +2 -2
  163. package/dist/eslint/role-utilities.js.map +1 -1
  164. package/dist/feedback/feedback-inbox-page.d.ts +260 -0
  165. package/dist/feedback/feedback-inbox-page.js +207 -0
  166. package/dist/feedback/feedback-inbox-page.js.map +1 -0
  167. package/dist/feedback/feedback-vocabulary.js +2 -2
  168. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  169. package/dist/feedback.d.ts +1 -0
  170. package/dist/feedback.js +6 -0
  171. package/dist/feedback.js.map +1 -1
  172. package/dist/hooks/use-debounce.d.ts +32 -5
  173. package/dist/hooks/use-debounce.js +6 -5
  174. package/dist/hooks/use-debounce.js.map +1 -1
  175. package/dist/hooks/use-file-picker.d.ts +3 -1
  176. package/dist/hooks/use-file-picker.js.map +1 -1
  177. package/dist/hooks/use-focus-trap.d.ts +19 -3
  178. package/dist/hooks/use-focus-trap.js +15 -5
  179. package/dist/hooks/use-focus-trap.js.map +1 -1
  180. package/dist/hooks/use-has-camera.d.ts +36 -0
  181. package/dist/hooks/use-has-camera.js +53 -0
  182. package/dist/hooks/use-has-camera.js.map +1 -0
  183. package/dist/hooks/use-hotkey.js +1 -10
  184. package/dist/hooks/use-hotkey.js.map +1 -1
  185. package/dist/hooks/use-overlay-history.d.ts +6 -1
  186. package/dist/hooks/use-overlay-history.js +10 -2
  187. package/dist/hooks/use-overlay-history.js.map +1 -1
  188. package/dist/i18n/defaults.js +11 -1
  189. package/dist/i18n/defaults.js.map +1 -1
  190. package/dist/i18n/german.js +75 -3
  191. package/dist/i18n/german.js.map +1 -1
  192. package/dist/i18n/kit-labels.d.ts +20 -0
  193. package/dist/i18n/kit-labels.js.map +1 -1
  194. package/dist/i18n/locales/en.js +92 -4
  195. package/dist/i18n/locales/en.js.map +3 -3
  196. package/dist/i18n/locales/es.js +71 -3
  197. package/dist/i18n/locales/es.js.map +1 -1
  198. package/dist/i18n/locales/fr.js +72 -2
  199. package/dist/i18n/locales/fr.js.map +1 -1
  200. package/dist/i18n/locales/hu.js +74 -3
  201. package/dist/i18n/locales/hu.js.map +1 -1
  202. package/dist/i18n/locales/it.js +74 -3
  203. package/dist/i18n/locales/it.js.map +1 -1
  204. package/dist/i18n/locales/zh.js +71 -3
  205. package/dist/i18n/locales/zh.js.map +1 -1
  206. package/dist/i18n/review.js +22 -1
  207. package/dist/i18n/review.js.map +1 -1
  208. package/dist/index.d.ts +24 -5
  209. package/dist/index.js +35 -1
  210. package/dist/index.js.map +1 -1
  211. package/dist/landing/landing-labels.d.ts +8 -0
  212. package/dist/landing/landing-labels.js +2 -1
  213. package/dist/landing/landing-labels.js.map +1 -1
  214. package/dist/lib/changelog.d.ts +130 -0
  215. package/dist/lib/changelog.js +137 -0
  216. package/dist/lib/changelog.js.map +1 -0
  217. package/dist/lib/clipboard-minus.js +2 -2
  218. package/dist/lib/clipboard-minus.js.map +1 -1
  219. package/dist/lib/dates.d.ts +29 -3
  220. package/dist/lib/dates.js +41 -12
  221. package/dist/lib/dates.js.map +1 -1
  222. package/dist/lib/editable-content.d.ts +33 -0
  223. package/dist/lib/editable-content.js +15 -0
  224. package/dist/lib/editable-content.js.map +1 -0
  225. package/dist/lib/focus-left.d.ts +47 -1
  226. package/dist/lib/focus-left.js +11 -2
  227. package/dist/lib/focus-left.js.map +1 -1
  228. package/dist/lib/server-wake.d.ts +49 -9
  229. package/dist/lib/server-wake.js +25 -14
  230. package/dist/lib/server-wake.js.map +1 -1
  231. package/dist/lib/session-refresh.d.ts +53 -0
  232. package/dist/lib/session-refresh.js +27 -1
  233. package/dist/lib/session-refresh.js.map +1 -1
  234. package/dist/rhf/fields.js +3 -3
  235. package/dist/rhf/fields.js.map +1 -1
  236. package/dist/shell/app-shell.d.ts +25 -1
  237. package/dist/shell/app-shell.js +3 -1
  238. package/dist/shell/app-shell.js.map +1 -1
  239. package/dist/shell/dev-menu.d.ts +3 -0
  240. package/dist/shell/dev-menu.js +4 -2
  241. package/dist/shell/dev-menu.js.map +1 -1
  242. package/dist/shell/held-changes-banner-labels.d.ts +23 -0
  243. package/dist/shell/held-changes-banner-labels.js +14 -0
  244. package/dist/shell/held-changes-banner-labels.js.map +1 -0
  245. package/dist/shell/held-changes-banner.d.ts +75 -0
  246. package/dist/shell/held-changes-banner.js +106 -0
  247. package/dist/shell/held-changes-banner.js.map +1 -0
  248. package/dist/shell/sync-status-indicator.d.ts +27 -12
  249. package/dist/shell/sync-status-indicator.js +13 -4
  250. package/dist/shell/sync-status-indicator.js.map +1 -1
  251. package/dist/shell/top-bar-parts-labels.d.ts +5 -0
  252. package/dist/shell/top-bar-parts-labels.js +3 -1
  253. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  254. package/dist/shell.d.ts +2 -0
  255. package/dist/shell.js +3 -0
  256. package/dist/shell.js.map +1 -1
  257. package/dist/sync/engine.d.ts +11 -2
  258. package/dist/sync/engine.js +13 -5
  259. package/dist/sync/engine.js.map +1 -1
  260. package/dist/sync/hooks.d.ts +3 -2
  261. package/dist/sync/hooks.js +4 -2
  262. package/dist/sync/hooks.js.map +1 -1
  263. package/dist/testing/css-variables.generated.d.ts +2 -2
  264. package/dist/testing/css-variables.generated.js +1 -1
  265. package/dist/testing/css-variables.generated.js.map +1 -1
  266. package/dist/theme/chart-palette.d.ts +18 -0
  267. package/dist/theme/chart-palette.js +17 -1
  268. package/dist/theme/chart-palette.js.map +1 -1
  269. package/dist/theme/contrast-tokens.d.ts +3 -3
  270. package/dist/theme/contrast-tokens.js.map +1 -1
  271. package/dist/theme/contrast.d.ts +4 -4
  272. package/dist/theme/contrast.js.map +1 -1
  273. package/dist/tour/tour-overlay.js +2 -1
  274. package/dist/tour/tour-overlay.js.map +1 -1
  275. package/package.json +5 -9
  276. package/tokens.css +19 -54
  277. package/src/account/account-parts.ts +0 -47
  278. package/src/account/account-settings-labels.ts +0 -240
  279. package/src/account/account-settings.tsx +0 -698
  280. package/src/account/data-export-setting-labels.ts +0 -20
  281. package/src/account/data-export-setting.tsx +0 -200
  282. package/src/account/delete-account-setting-labels.ts +0 -33
  283. package/src/account/delete-account-setting.tsx +0 -342
  284. package/src/account/email-change-setting-labels.ts +0 -31
  285. package/src/account/email-change-setting.tsx +0 -443
  286. package/src/account/passkeys-setting.tsx +0 -445
  287. package/src/account/sessions-setting-labels.ts +0 -24
  288. package/src/account/sessions-setting.tsx +0 -283
  289. package/src/admin/admin-action-confirm-labels.ts +0 -19
  290. package/src/admin/admin-action-confirm.tsx +0 -509
  291. package/src/admin/admin-action-log-labels.ts +0 -83
  292. package/src/admin/admin-action-log.tsx +0 -464
  293. package/src/admin/admin-area-labels.ts +0 -114
  294. package/src/admin/admin-forbidden.tsx +0 -75
  295. package/src/admin/admin-overview.tsx +0 -258
  296. package/src/admin/admin-parts.ts +0 -68
  297. package/src/admin/admin-sections.tsx +0 -208
  298. package/src/admin/admin-tool-links.tsx +0 -90
  299. package/src/admin/invitations-panel-labels.ts +0 -31
  300. package/src/admin/invitations-panel.tsx +0 -516
  301. package/src/admin/mail-test-card-labels.ts +0 -19
  302. package/src/admin/mail-test-card.tsx +0 -189
  303. package/src/admin/plan-change-labels.ts +0 -5
  304. package/src/admin/plan-change.tsx +0 -474
  305. package/src/admin/reviewer-scope-editor-labels.ts +0 -16
  306. package/src/admin/reviewer-scope-editor.tsx +0 -224
  307. package/src/admin/role-select-labels.ts +0 -16
  308. package/src/admin/role-select.tsx +0 -282
  309. package/src/admin/transfer-ownership-dialog-labels.ts +0 -20
  310. package/src/admin/transfer-ownership-dialog.tsx +0 -162
  311. package/src/admin/user-roster-labels.ts +0 -17
  312. package/src/admin/user-roster.tsx +0 -559
  313. package/src/auth/accept-invitation-labels.ts +0 -21
  314. package/src/auth/accept-invitation.tsx +0 -210
  315. package/src/auth/auth-errors-labels.ts +0 -23
  316. package/src/auth/auth-errors.ts +0 -439
  317. package/src/auth/complete-name-dialog-labels.ts +0 -16
  318. package/src/auth/complete-name-dialog.tsx +0 -253
  319. package/src/auth/email-tag.ts +0 -75
  320. package/src/auth/forgot-password-form-labels.ts +0 -20
  321. package/src/auth/forgot-password-form.tsx +0 -221
  322. package/src/auth/form-rules.ts +0 -40
  323. package/src/auth/new-password-fields.tsx +0 -85
  324. package/src/auth/not-found-page-labels.ts +0 -12
  325. package/src/auth/not-found-page.tsx +0 -95
  326. package/src/auth/register-form-labels.ts +0 -31
  327. package/src/auth/register-form.tsx +0 -456
  328. package/src/auth/reset-password-form-labels.ts +0 -27
  329. package/src/auth/reset-password-form.tsx +0 -341
  330. package/src/auth/sign-in-form-labels.ts +0 -44
  331. package/src/auth/sign-in-form.tsx +0 -858
  332. package/src/auth/status-parts.tsx +0 -132
  333. package/src/auth/verify-email-labels.ts +0 -26
  334. package/src/auth/verify-email.tsx +0 -445
  335. package/src/billing/billing-banner.tsx +0 -258
  336. package/src/billing/billing-labels.ts +0 -381
  337. package/src/billing/billing-lock.ts +0 -108
  338. package/src/billing/billing-overview.ts +0 -157
  339. package/src/billing/billing-standing.ts +0 -80
  340. package/src/billing/cancel-request.ts +0 -97
  341. package/src/billing/cancel-subscription.tsx +0 -98
  342. package/src/billing/checkout-processing.ts +0 -394
  343. package/src/billing/checkout-return.ts +0 -90
  344. package/src/billing/pay-page.ts +0 -330
  345. package/src/billing/plan-card.tsx +0 -562
  346. package/src/billing/plan-change-labels.ts +0 -66
  347. package/src/billing/plan-limit-notice.tsx +0 -148
  348. package/src/billing/plan-limit-toast.tsx +0 -90
  349. package/src/billing/plan-limit.ts +0 -52
  350. package/src/billing/plan-price.ts +0 -98
  351. package/src/billing/plan-switch.tsx +0 -216
  352. package/src/billing/provider-page.ts +0 -84
  353. package/src/billing/subscription-actions.tsx +0 -247
  354. package/src/billing/subscription-status-chip.tsx +0 -95
  355. package/src/chart.ts +0 -103
  356. package/src/components/account-chips-labels.ts +0 -16
  357. package/src/components/account-chips.tsx +0 -474
  358. package/src/components/alert-banner.tsx +0 -670
  359. package/src/components/amount-input.tsx +0 -816
  360. package/src/components/appearance-labels.ts +0 -63
  361. package/src/components/authed-image-labels.ts +0 -11
  362. package/src/components/authed-image.tsx +0 -209
  363. package/src/components/autocomplete.tsx +0 -645
  364. package/src/components/breadcrumbs-labels.ts +0 -10
  365. package/src/components/breadcrumbs.tsx +0 -205
  366. package/src/components/bulk-action-bar-labels.ts +0 -11
  367. package/src/components/bulk-action-bar.tsx +0 -443
  368. package/src/components/button-group.tsx +0 -223
  369. package/src/components/button-look.ts +0 -256
  370. package/src/components/button.tsx +0 -339
  371. package/src/components/calculator.tsx +0 -341
  372. package/src/components/calendar-heatmap-labels.ts +0 -15
  373. package/src/components/calendar-heatmap.tsx +0 -600
  374. package/src/components/card.tsx +0 -377
  375. package/src/components/chart-edge.ts +0 -106
  376. package/src/components/chart-figure.tsx +0 -35
  377. package/src/components/chart-height.ts +0 -30
  378. package/src/components/chart-zoom-core.tsx +0 -627
  379. package/src/components/chart-zoom.tsx +0 -22
  380. package/src/components/chart.tsx +0 -554
  381. package/src/components/checkbox-group.tsx +0 -247
  382. package/src/components/checkbox.tsx +0 -346
  383. package/src/components/chip-input.tsx +0 -370
  384. package/src/components/chip-labels.ts +0 -13
  385. package/src/components/chip.tsx +0 -843
  386. package/src/components/choice-card.tsx +0 -544
  387. package/src/components/column-mapper-labels.ts +0 -38
  388. package/src/components/column-mapper.tsx +0 -655
  389. package/src/components/combobox-core.tsx +0 -1321
  390. package/src/components/combobox-suggestions.tsx +0 -131
  391. package/src/components/combobox.tsx +0 -716
  392. package/src/components/confirm-context.ts +0 -7
  393. package/src/components/confirm-dialog-labels.ts +0 -13
  394. package/src/components/confirm-dialog.tsx +0 -341
  395. package/src/components/copy-button-labels.ts +0 -13
  396. package/src/components/copy-button.tsx +0 -192
  397. package/src/components/country-select-labels.ts +0 -11
  398. package/src/components/country-select.tsx +0 -539
  399. package/src/components/currency-option-list.tsx +0 -188
  400. package/src/components/currency-select.tsx +0 -343
  401. package/src/components/danger-confirm-labels.ts +0 -20
  402. package/src/components/danger-confirm.tsx +0 -987
  403. package/src/components/data-table-cells.tsx +0 -118
  404. package/src/components/data-table-column-settings.tsx +0 -198
  405. package/src/components/data-table-filter-popover.tsx +0 -289
  406. package/src/components/data-table-filters.ts +0 -315
  407. package/src/components/data-table-fit.ts +0 -301
  408. package/src/components/data-table-groups.tsx +0 -288
  409. package/src/components/data-table-head.tsx +0 -280
  410. package/src/components/data-table-labels.ts +0 -198
  411. package/src/components/data-table-leading-row.tsx +0 -58
  412. package/src/components/data-table-mobile.tsx +0 -1117
  413. package/src/components/data-table-pagination.tsx +0 -202
  414. package/src/components/data-table-resize.ts +0 -188
  415. package/src/components/data-table-row-actions.tsx +0 -302
  416. package/src/components/data-table-row.tsx +0 -496
  417. package/src/components/data-table-selection.ts +0 -71
  418. package/src/components/data-table-shared.tsx +0 -287
  419. package/src/components/data-table-sort.ts +0 -163
  420. package/src/components/data-table-virtual.ts +0 -576
  421. package/src/components/data-table.tsx +0 -2598
  422. package/src/components/date-field.tsx +0 -684
  423. package/src/components/date-format-setting.tsx +0 -64
  424. package/src/components/date-picker.tsx +0 -404
  425. package/src/components/date-range-picker.tsx +0 -518
  426. package/src/components/description-list-labels.ts +0 -9
  427. package/src/components/description-list.tsx +0 -386
  428. package/src/components/dialog-frame-labels.ts +0 -7
  429. package/src/components/dialog-frame.tsx +0 -284
  430. package/src/components/disclosure.tsx +0 -476
  431. package/src/components/dropdown.tsx +0 -461
  432. package/src/components/empty-state.tsx +0 -136
  433. package/src/components/entity-combobox.tsx +0 -422
  434. package/src/components/error-boundary-labels.ts +0 -20
  435. package/src/components/error-boundary.tsx +0 -675
  436. package/src/components/facing-pair.ts +0 -93
  437. package/src/components/field-base-labels.ts +0 -20
  438. package/src/components/field-base.tsx +0 -656
  439. package/src/components/field-parts.tsx +0 -825
  440. package/src/components/field-strip.tsx +0 -129
  441. package/src/components/field.tsx +0 -206
  442. package/src/components/file-button.tsx +0 -295
  443. package/src/components/file-dropzone.tsx +0 -559
  444. package/src/components/floating-panel-labels.ts +0 -10
  445. package/src/components/floating-panel.tsx +0 -828
  446. package/src/components/focus-ring.ts +0 -16
  447. package/src/components/form-actions-labels.ts +0 -11
  448. package/src/components/form-actions.tsx +0 -578
  449. package/src/components/full-bleed-dialog.tsx +0 -294
  450. package/src/components/grouped-picker.tsx +0 -184
  451. package/src/components/help-popover.tsx +0 -117
  452. package/src/components/hover-menu.tsx +0 -343
  453. package/src/components/iban-input-labels.ts +0 -14
  454. package/src/components/iban-input.tsx +0 -236
  455. package/src/components/icon-button.tsx +0 -959
  456. package/src/components/icon-picker-labels.ts +0 -13
  457. package/src/components/icon-picker.tsx +0 -232
  458. package/src/components/image-grid-labels.ts +0 -11
  459. package/src/components/image-grid.tsx +0 -202
  460. package/src/components/inline-confirm.tsx +0 -116
  461. package/src/components/inline-edit-field-labels.ts +0 -11
  462. package/src/components/inline-edit-field.tsx +0 -552
  463. package/src/components/inline-entity-combobox.tsx +0 -849
  464. package/src/components/input.tsx +0 -394
  465. package/src/components/jump-calendar.tsx +0 -265
  466. package/src/components/language-select.tsx +0 -93
  467. package/src/components/legal-labels.ts +0 -105
  468. package/src/components/legal-page.tsx +0 -711
  469. package/src/components/legal.tsx +0 -668
  470. package/src/components/lightbox-labels.ts +0 -18
  471. package/src/components/lightbox.tsx +0 -399
  472. package/src/components/line-items-labels.ts +0 -14
  473. package/src/components/line-items.tsx +0 -602
  474. package/src/components/list-labels.ts +0 -12
  475. package/src/components/list.tsx +0 -870
  476. package/src/components/loading-state.tsx +0 -78
  477. package/src/components/measured-grid-labels.ts +0 -25
  478. package/src/components/measured-grid.tsx +0 -837
  479. package/src/components/menu-item.tsx +0 -241
  480. package/src/components/mini-calendar-labels.ts +0 -17
  481. package/src/components/mini-calendar.tsx +0 -792
  482. package/src/components/modal.tsx +0 -534
  483. package/src/components/money-draft.ts +0 -83
  484. package/src/components/money-field.tsx +0 -76
  485. package/src/components/month-grid.tsx +0 -229
  486. package/src/components/month-picker-labels.ts +0 -22
  487. package/src/components/month-picker.tsx +0 -1087
  488. package/src/components/multi-entity-combobox.tsx +0 -369
  489. package/src/components/multi-select.tsx +0 -376
  490. package/src/components/nav-pills.tsx +0 -198
  491. package/src/components/number-field.tsx +0 -327
  492. package/src/components/number-input.tsx +0 -559
  493. package/src/components/numeric-field.ts +0 -169
  494. package/src/components/numpad-sheet.tsx +0 -285
  495. package/src/components/one-time-code-input.tsx +0 -270
  496. package/src/components/page-contents-labels.ts +0 -9
  497. package/src/components/page-contents.tsx +0 -282
  498. package/src/components/page-header-context.ts +0 -8
  499. package/src/components/page-header.tsx +0 -298
  500. package/src/components/password-strength-labels.ts +0 -22
  501. package/src/components/password-strength.tsx +0 -241
  502. package/src/components/phone-input-labels.ts +0 -10
  503. package/src/components/phone-input.tsx +0 -282
  504. package/src/components/picker-sheet.tsx +0 -330
  505. package/src/components/pie-chart-labels.ts +0 -40
  506. package/src/components/pie-chart.tsx +0 -480
  507. package/src/components/popover-labels.ts +0 -14
  508. package/src/components/popover.tsx +0 -268
  509. package/src/components/progress-bar-labels.ts +0 -10
  510. package/src/components/progress-bar.tsx +0 -479
  511. package/src/components/qr-code.tsx +0 -76
  512. package/src/components/reauth-dialog-labels.ts +0 -13
  513. package/src/components/reauth-dialog.tsx +0 -265
  514. package/src/components/row-actions-labels.ts +0 -12
  515. package/src/components/row-actions.tsx +0 -795
  516. package/src/components/scroll-area.tsx +0 -123
  517. package/src/components/search-field.tsx +0 -192
  518. package/src/components/select.tsx +0 -294
  519. package/src/components/separator.tsx +0 -33
  520. package/src/components/series-chart-axes.ts +0 -342
  521. package/src/components/series-chart-budget.ts +0 -150
  522. package/src/components/series-chart-labels.ts +0 -33
  523. package/src/components/series-chart-thin.ts +0 -180
  524. package/src/components/series-chart-ticks.ts +0 -194
  525. package/src/components/series-chart.tsx +0 -1906
  526. package/src/components/server-wake-labels.ts +0 -11
  527. package/src/components/server-wake.tsx +0 -129
  528. package/src/components/settings-fields.tsx +0 -237
  529. package/src/components/share-card-labels.ts +0 -30
  530. package/src/components/share-card.tsx +0 -675
  531. package/src/components/signature-pad-labels.ts +0 -24
  532. package/src/components/signature-pad.tsx +0 -747
  533. package/src/components/signed-amount-labels.ts +0 -10
  534. package/src/components/signed-amount.tsx +0 -336
  535. package/src/components/skeleton.tsx +0 -80
  536. package/src/components/slider.tsx +0 -338
  537. package/src/components/sparkline-labels.ts +0 -14
  538. package/src/components/sparkline.tsx +0 -322
  539. package/src/components/spinner.tsx +0 -81
  540. package/src/components/stat-tile-labels.ts +0 -15
  541. package/src/components/stat-tile.tsx +0 -754
  542. package/src/components/status-dot.tsx +0 -170
  543. package/src/components/swatch-picker-labels.ts +0 -10
  544. package/src/components/swatch-picker.tsx +0 -283
  545. package/src/components/swipeable-row.tsx +0 -386
  546. package/src/components/switch.tsx +0 -273
  547. package/src/components/table-skeleton.tsx +0 -136
  548. package/src/components/table.tsx +0 -647
  549. package/src/components/tabs-labels.ts +0 -13
  550. package/src/components/tabs.tsx +0 -693
  551. package/src/components/text-link.tsx +0 -359
  552. package/src/components/text.tsx +0 -150
  553. package/src/components/textarea.tsx +0 -330
  554. package/src/components/tile-radio.tsx +0 -332
  555. package/src/components/time-input.tsx +0 -121
  556. package/src/components/toast-labels.ts +0 -12
  557. package/src/components/toast.tsx +0 -519
  558. package/src/components/toggle-group.tsx +0 -752
  559. package/src/components/toggle-legend.tsx +0 -394
  560. package/src/components/tooltip.tsx +0 -1149
  561. package/src/components/translation-review-editor.tsx +0 -290
  562. package/src/components/translation-review-labels.ts +0 -181
  563. package/src/components/translation-review-parts.tsx +0 -272
  564. package/src/components/translation-review.tsx +0 -1240
  565. package/src/components/tree-view.tsx +0 -589
  566. package/src/components/treemap-labels.ts +0 -47
  567. package/src/components/treemap-layout.ts +0 -210
  568. package/src/components/treemap.tsx +0 -1184
  569. package/src/components/trigger-aria.ts +0 -44
  570. package/src/components/use-anchor-dir.ts +0 -20
  571. package/src/components/use-mobile-reveal.ts +0 -62
  572. package/src/components/use-table-state.ts +0 -753
  573. package/src/components/user-avatar.tsx +0 -116
  574. package/src/components/wizard-stepper.tsx +0 -42
  575. package/src/components/write-lock-labels.ts +0 -10
  576. package/src/components/write-lock.tsx +0 -253
  577. package/src/currencies.ts +0 -90
  578. package/src/data-table.ts +0 -42
  579. package/src/demo/demo-banner.tsx +0 -153
  580. package/src/demo/demo-countdown.ts +0 -136
  581. package/src/demo/demo-ended.tsx +0 -90
  582. package/src/demo/demo-labels.ts +0 -78
  583. package/src/demo/demo-session.ts +0 -32
  584. package/src/demo/demo-start.tsx +0 -156
  585. package/src/eslint/index.ts +0 -161
  586. package/src/eslint/role-utilities.generated.ts +0 -146
  587. package/src/eslint/role-utilities.ts +0 -233
  588. package/src/feedback/feedback-attachment-download.tsx +0 -77
  589. package/src/feedback/feedback-attachment-labels.ts +0 -37
  590. package/src/feedback/feedback-attachment.tsx +0 -1239
  591. package/src/feedback/feedback-capture.ts +0 -287
  592. package/src/feedback/feedback-comment-thread.tsx +0 -353
  593. package/src/feedback/feedback-context-labels.ts +0 -11
  594. package/src/feedback/feedback-context.tsx +0 -245
  595. package/src/feedback/feedback-crash.ts +0 -547
  596. package/src/feedback/feedback-diagnostics.tsx +0 -41
  597. package/src/feedback/feedback-dialog-labels.ts +0 -29
  598. package/src/feedback/feedback-dialog.tsx +0 -452
  599. package/src/feedback/feedback-entry-file.tsx +0 -150
  600. package/src/feedback/feedback-inbox.tsx +0 -552
  601. package/src/feedback/feedback-labels.ts +0 -144
  602. package/src/feedback/feedback-menu-labels.ts +0 -12
  603. package/src/feedback/feedback-menu.tsx +0 -177
  604. package/src/feedback/feedback-mutation.ts +0 -20
  605. package/src/feedback/feedback-page-link.ts +0 -90
  606. package/src/feedback/feedback-public-labels.ts +0 -81
  607. package/src/feedback/feedback-public-list.tsx +0 -524
  608. package/src/feedback/feedback-public-switch.tsx +0 -102
  609. package/src/feedback/feedback-public-types.ts +0 -101
  610. package/src/feedback/feedback-record.ts +0 -428
  611. package/src/feedback/feedback-replies-context.ts +0 -9
  612. package/src/feedback/feedback-replies.tsx +0 -343
  613. package/src/feedback/feedback-rework-entry-chip.tsx +0 -18
  614. package/src/feedback/feedback-row-detail-labels.ts +0 -31
  615. package/src/feedback/feedback-row-detail.tsx +0 -871
  616. package/src/feedback/feedback-status-undo.ts +0 -109
  617. package/src/feedback/feedback-submit-dialog.tsx +0 -131
  618. package/src/feedback/feedback-submit.tsx +0 -270
  619. package/src/feedback/feedback-swipe.tsx +0 -192
  620. package/src/feedback/feedback-table-labels.ts +0 -27
  621. package/src/feedback/feedback-table.tsx +0 -912
  622. package/src/feedback/feedback-thread-labels.ts +0 -22
  623. package/src/feedback/feedback-thread-parts-labels.ts +0 -41
  624. package/src/feedback/feedback-thread.tsx +0 -905
  625. package/src/feedback/feedback-vocabulary.ts +0 -263
  626. package/src/feedback/feedback-vote-button.tsx +0 -124
  627. package/src/feedback.ts +0 -116
  628. package/src/hooks/use-anchored-panel.ts +0 -396
  629. package/src/hooks/use-anchored-rect.ts +0 -77
  630. package/src/hooks/use-announce.ts +0 -85
  631. package/src/hooks/use-authed-src.ts +0 -167
  632. package/src/hooks/use-body-scroll-lock.ts +0 -119
  633. package/src/hooks/use-breakpoint.ts +0 -133
  634. package/src/hooks/use-close-transition.ts +0 -107
  635. package/src/hooks/use-copy-to-clipboard.ts +0 -122
  636. package/src/hooks/use-debounce.ts +0 -114
  637. package/src/hooks/use-dismiss.ts +0 -371
  638. package/src/hooks/use-document-title.ts +0 -33
  639. package/src/hooks/use-file-drop.ts +0 -121
  640. package/src/hooks/use-file-picker-labels.ts +0 -28
  641. package/src/hooks/use-file-picker.tsx +0 -359
  642. package/src/hooks/use-focus-trap.ts +0 -199
  643. package/src/hooks/use-hotkey.ts +0 -212
  644. package/src/hooks/use-large-text.ts +0 -41
  645. package/src/hooks/use-long-press.ts +0 -140
  646. package/src/hooks/use-media-query.ts +0 -39
  647. package/src/hooks/use-mounted.ts +0 -39
  648. package/src/hooks/use-noindex.ts +0 -37
  649. package/src/hooks/use-overlay-history.ts +0 -714
  650. package/src/hooks/use-row-swipe.ts +0 -207
  651. package/src/hooks/use-search-param-state.ts +0 -434
  652. package/src/hooks/use-windowed-rows.ts +0 -225
  653. package/src/i18n/defaults.ts +0 -267
  654. package/src/i18n/german.ts +0 -2059
  655. package/src/i18n/kit-labels.tsx +0 -1003
  656. package/src/i18n/languages.ts +0 -349
  657. package/src/i18n/locales/de-CH.ts +0 -24
  658. package/src/i18n/locales/en.ts +0 -267
  659. package/src/i18n/locales/es.ts +0 -1999
  660. package/src/i18n/locales/fr.ts +0 -2037
  661. package/src/i18n/locales/hu.ts +0 -2004
  662. package/src/i18n/locales/it.ts +0 -2014
  663. package/src/i18n/locales/zh.ts +0 -1912
  664. package/src/i18n/plurals.ts +0 -86
  665. package/src/i18n/review.ts +0 -475
  666. package/src/i18n/shared-labels.ts +0 -138
  667. package/src/i18n/swiss.ts +0 -29
  668. package/src/index.ts +0 -1191
  669. package/src/landing/access.ts +0 -93
  670. package/src/landing/landing-actions.tsx +0 -97
  671. package/src/landing/landing-labels.ts +0 -59
  672. package/src/landing/landing-sections.tsx +0 -341
  673. package/src/landing/page-seo.ts +0 -261
  674. package/src/landing/public-header.tsx +0 -121
  675. package/src/landing/public-page.tsx +0 -106
  676. package/src/landing/routing.tsx +0 -225
  677. package/src/lib/broadcast.ts +0 -52
  678. package/src/lib/calc.ts +0 -323
  679. package/src/lib/chip-edge-snap.ts +0 -212
  680. package/src/lib/clipboard-minus.ts +0 -107
  681. package/src/lib/clipping.ts +0 -34
  682. package/src/lib/cn.ts +0 -28
  683. package/src/lib/column-mapping.ts +0 -234
  684. package/src/lib/countries.ts +0 -91
  685. package/src/lib/data-attributes.ts +0 -14
  686. package/src/lib/date-format.ts +0 -227
  687. package/src/lib/dates.ts +0 -288
  688. package/src/lib/day-format.ts +0 -96
  689. package/src/lib/decimal-marks.ts +0 -108
  690. package/src/lib/describe-failure.ts +0 -18
  691. package/src/lib/device-settings.ts +0 -147
  692. package/src/lib/direction.ts +0 -74
  693. package/src/lib/document-navigation.ts +0 -17
  694. package/src/lib/document-title.ts +0 -41
  695. package/src/lib/download.ts +0 -172
  696. package/src/lib/float-clearance.ts +0 -70
  697. package/src/lib/floating-stack.ts +0 -70
  698. package/src/lib/focus-left.ts +0 -156
  699. package/src/lib/format.ts +0 -585
  700. package/src/lib/http-status.ts +0 -38
  701. package/src/lib/iban.ts +0 -251
  702. package/src/lib/ime.ts +0 -24
  703. package/src/lib/intl-cache.ts +0 -27
  704. package/src/lib/iso-day.ts +0 -13
  705. package/src/lib/lazy-with-fallback.ts +0 -82
  706. package/src/lib/logger.ts +0 -69
  707. package/src/lib/minus.ts +0 -50
  708. package/src/lib/path-pattern.ts +0 -55
  709. package/src/lib/person-name.ts +0 -155
  710. package/src/lib/phone.ts +0 -208
  711. package/src/lib/plain-text.ts +0 -22
  712. package/src/lib/presence.ts +0 -18
  713. package/src/lib/qr-encode.ts +0 -444
  714. package/src/lib/quiet-focus.ts +0 -32
  715. package/src/lib/reduced-motion.ts +0 -22
  716. package/src/lib/refs.ts +0 -22
  717. package/src/lib/round.ts +0 -43
  718. package/src/lib/safe-storage.ts +0 -119
  719. package/src/lib/server-wake.ts +0 -315
  720. package/src/lib/session-refresh.ts +0 -472
  721. package/src/lib/share-format.ts +0 -18
  722. package/src/lib/status-tone.ts +0 -43
  723. package/src/lib/strip-fade.ts +0 -287
  724. package/src/lib/table-text.ts +0 -554
  725. package/src/lib/text-case.ts +0 -19
  726. package/src/lib/text-match.ts +0 -169
  727. package/src/lib/thenable.ts +0 -19
  728. package/src/lib/translation-review.ts +0 -769
  729. package/src/notifications/device-zone-report.ts +0 -67
  730. package/src/notifications/feedback-notification-types-labels.ts +0 -33
  731. package/src/notifications/feedback-notification-types.ts +0 -71
  732. package/src/notifications/notification-bell.tsx +0 -119
  733. package/src/notifications/notification-inbox.tsx +0 -309
  734. package/src/notifications/notification-parts.tsx +0 -81
  735. package/src/notifications/notification-types-setting.tsx +0 -406
  736. package/src/notifications/notification-types.ts +0 -89
  737. package/src/notifications/notifications-labels.ts +0 -287
  738. package/src/notifications/push-device-setting.tsx +0 -230
  739. package/src/notifications/push-devices-setting.tsx +0 -374
  740. package/src/notifications/push-worker.ts +0 -168
  741. package/src/notifications/quiet-hours-setting.tsx +0 -238
  742. package/src/notifications/unsubscribe-panel.tsx +0 -200
  743. package/src/notifications/use-push-device.ts +0 -448
  744. package/src/offline/local-first.ts +0 -100
  745. package/src/offline/pwa-update-prompt-labels.ts +0 -9
  746. package/src/offline/pwa-update-prompt.tsx +0 -78
  747. package/src/offline/query-persistence.ts +0 -391
  748. package/src/offline/service-worker-updates.ts +0 -81
  749. package/src/offline/shared-computer-labels.ts +0 -8
  750. package/src/offline/shared-computer.tsx +0 -87
  751. package/src/offline/sign-out-pending-dialog-labels.ts +0 -21
  752. package/src/offline/sign-out-pending-dialog.tsx +0 -135
  753. package/src/offline.ts +0 -37
  754. package/src/push-worker.ts +0 -25
  755. package/src/rhf/fields.tsx +0 -2187
  756. package/src/rhf/form-core.tsx +0 -324
  757. package/src/rhf/form.tsx +0 -12
  758. package/src/rhf/line-items.tsx +0 -135
  759. package/src/rhf/use-rhf-wizard-step.ts +0 -104
  760. package/src/rhf.ts +0 -21
  761. package/src/search/command-palette-labels.ts +0 -16
  762. package/src/search/command-palette.tsx +0 -624
  763. package/src/search/global-search-labels.ts +0 -13
  764. package/src/search/global-search.tsx +0 -660
  765. package/src/search/search-index.ts +0 -283
  766. package/src/search/use-command-key.ts +0 -23
  767. package/src/search.ts +0 -14
  768. package/src/settings/device-reset-setting-labels.ts +0 -20
  769. package/src/settings/device-reset-setting.tsx +0 -116
  770. package/src/settings/settings-card-classes.ts +0 -11
  771. package/src/settings/settings-catalogue.ts +0 -150
  772. package/src/settings/settings-context.ts +0 -33
  773. package/src/settings/settings-heading.tsx +0 -67
  774. package/src/settings/settings-labels.ts +0 -87
  775. package/src/settings/settings-layout.tsx +0 -471
  776. package/src/settings/settings-section.tsx +0 -108
  777. package/src/settings/use-account-appearance.ts +0 -148
  778. package/src/settings/use-account-language.ts +0 -146
  779. package/src/settings/use-settings-focus.ts +0 -128
  780. package/src/settings/use-settings-route.ts +0 -258
  781. package/src/shell/account-menu-language.tsx +0 -130
  782. package/src/shell/account-menu-text-size.tsx +0 -80
  783. package/src/shell/admin-menu.tsx +0 -183
  784. package/src/shell/app-shell-labels.ts +0 -11
  785. package/src/shell/app-shell.tsx +0 -1560
  786. package/src/shell/auth-layout.tsx +0 -186
  787. package/src/shell/company-switcher-labels.ts +0 -13
  788. package/src/shell/company-switcher.tsx +0 -136
  789. package/src/shell/dev-menu.tsx +0 -257
  790. package/src/shell/fill-height.tsx +0 -45
  791. package/src/shell/language-code.ts +0 -5
  792. package/src/shell/option-switcher-menu.tsx +0 -84
  793. package/src/shell/sync-status-indicator.tsx +0 -303
  794. package/src/shell/top-bar-actions.tsx +0 -87
  795. package/src/shell/top-bar-brand.tsx +0 -78
  796. package/src/shell/top-bar-parts-labels.ts +0 -148
  797. package/src/shell/top-bar.tsx +0 -40
  798. package/src/shell/topbar-action-menu.tsx +0 -567
  799. package/src/shell/topbar-controls.tsx +0 -269
  800. package/src/shell/tour-menu.tsx +0 -187
  801. package/src/shell.ts +0 -108
  802. package/src/sync/db.ts +0 -129
  803. package/src/sync/engine.ts +0 -1011
  804. package/src/sync/hooks.ts +0 -98
  805. package/src/sync/testing.ts +0 -73
  806. package/src/sync/wire.ts +0 -61
  807. package/src/sync.ts +0 -37
  808. package/src/table-text.ts +0 -8
  809. package/src/testing/css-variables.generated.ts +0 -112
  810. package/src/testing/css-variables.ts +0 -189
  811. package/src/testing/index.ts +0 -29
  812. package/src/testing/react.ts +0 -58
  813. package/src/testing/tour.ts +0 -41
  814. package/src/testing/viewport.ts +0 -357
  815. package/src/theme/chart-palette.ts +0 -232
  816. package/src/theme/color.ts +0 -272
  817. package/src/theme/contrast-tokens.ts +0 -268
  818. package/src/theme/contrast.ts +0 -250
  819. package/src/theme/palette-derive.ts +0 -825
  820. package/src/theme/palette-presets.ts +0 -544
  821. package/src/theme/palette-store.ts +0 -108
  822. package/src/theme/text-size.ts +0 -289
  823. package/src/theme/theme-store.ts +0 -157
  824. package/src/tour/tour-catalogue-labels.ts +0 -75
  825. package/src/tour/tour-catalogue.tsx +0 -335
  826. package/src/tour/tour-dock.ts +0 -134
  827. package/src/tour/tour-engine.ts +0 -37
  828. package/src/tour/tour-gates.ts +0 -218
  829. package/src/tour/tour-guide-button.tsx +0 -64
  830. package/src/tour/tour-guide-labels.ts +0 -15
  831. package/src/tour/tour-info.ts +0 -144
  832. package/src/tour/tour-labels.ts +0 -23
  833. package/src/tour/tour-overlay.tsx +0 -1170
  834. package/src/tour/tour.tsx +0 -750
  835. package/src/tour/use-tour-progress.ts +0 -671
  836. package/src/tour/use-tour-url-sync.ts +0 -266
  837. package/src/tour.ts +0 -21
  838. package/src/vite-env.d.ts +0 -23
  839. package/src/wizard/stepper-nav.tsx +0 -360
  840. package/src/wizard/types.ts +0 -275
  841. package/src/wizard/use-wizard.ts +0 -560
  842. package/src/wizard/validation.ts +0 -39
  843. package/src/wizard/wizard-context.tsx +0 -74
  844. package/src/wizard/wizard-labels.ts +0 -29
  845. package/src/wizard/wizard-step.tsx +0 -76
  846. package/src/wizard/wizard-summary.tsx +0 -84
  847. package/src/wizard.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/i18n/locales/es.ts"],"sourcesContent":["import { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's words in Spanish: every namespace of {@link UiKitLabels}, for\n * `<UiKitProvider labels={UI_KIT_LABELS_ES}>`.\n *\n * Self-contained on purpose — nothing but the kit's own `formatFileSize` — so it works\n * as a starting point to copy and adjust. Counts and sizes are formatted with\n * `es-ES` digits; {@link uiKitLabelsEs} takes another number locale\n * (e.g. `\"de-CH\"` for 1’234) without touching the words.\n */\nexport function uiKitLabelsEs(numberLocale = \"es-ES\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);\n // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in\n // src/auth/auth-errors-labels.ts: no wait → \"un momento\", under a minute → seconds, else\n // minutes rounded up.\n const wait = (seconds: number) => (seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`);\n const rateLimited = (seconds?: number) =>\n !seconds || seconds <= 0\n ? \"Demasiados intentos. Espere un momento e inténtelo de nuevo.\"\n : `Demasiados intentos. Inténtelo de nuevo en ${wait(seconds)}.`;\n // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:\n // 0 (or less) is today, 1 tomorrow.\n const inDays = (days: number) =>\n days <= 0 ? \"hoy\" : days === 1 ? \"mañana\" : `dentro de ${n(days)} ${plural(days, \"día\", \"días\")}`;\n\n return {\n feedbackAttachment: {\n attachmentAdd: \"Añadir adjunto\",\n attachmentCapture: \"Capturar pantalla\",\n attachmentPaste:\n \"…o pegue una captura de pantalla directamente desde el portapapeles, para mostrar solo un detalle en lugar de toda la página.\",\n attachmentRemove: \"Quitar adjunto\",\n attachmentList: \"Adjuntos\",\n attachmentScreenshot: \"Captura de pantalla\",\n attachmentRemoveFile: (name) => `Quitar ${name}`,\n attachmentLimit: (max) =>\n max === 1\n ? `Máximo ${n(max)} adjunto: quítelo para añadir otro.`\n : `Máximo ${n(max)} adjuntos: quite uno para añadir otro.`,\n attachmentUploading: \"Subiendo…\",\n attachmentUploadFailed: (name) => `No se ha podido subir «${name}»`,\n },\n feedbackDialog: {\n title: \"Enviar comentarios\",\n category: \"Categoría\",\n subject: \"Asunto\",\n body: \"¿Qué ha pasado?\",\n bodyOptional: \"¿Qué ha pasado? (opcional)\",\n attachment: \"Adjunto\",\n submitHint: (apple) => (apple ? \"⌘ Intro para enviar\" : \"Ctrl+Intro para enviar\"),\n cancel: \"Cancelar\",\n save: \"Enviar\",\n publicNotice: \"Otras personas verán el título y el texto (nunca sus capturas ni sus archivos).\",\n },\n feedbackThread: {\n thread: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n loading: \"Cargando comentarios…\",\n you: \"Usted\",\n staff: \"Equipo\",\n attachments: \"Adjuntos\",\n },\n feedbackComposer: {\n field: \"Escriba un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Enviar\",\n sendHint: (modifier) => `${modifier} + Intro para enviar`,\n sendHintEnter: \"Intro para enviar, Mayús + Intro para una nueva línea\",\n },\n // 0.27.0. \"Comentarios\" for feedback, as `feedbackDialog`; \"corrección\" for rework.\n feedbackStatus: {\n OPEN: \"Abierto\",\n READY: \"Listo para implementar\",\n REWORK: \"Corrección solicitada\",\n IN_PROGRESS: \"En curso\",\n IN_EVALUATION: \"En evaluación\",\n NEEDS_LIVE_TEST: \"Probar en producción\",\n POSTPONED: \"Pospuesto\",\n DONE: \"Hecho\",\n WONT_DO: \"No se hará\",\n },\n feedbackCategory: {\n CRASH: \"Bloqueo\",\n BUG: \"Error\",\n IDEA: \"Idea\",\n QUESTION: \"Pregunta\",\n OTHER: \"Otro\",\n },\n feedbackToast: {\n submitted: \"¡Gracias por sus comentarios!\",\n submitFailed: \"No se han podido enviar los comentarios\",\n attachmentUnsupported: \"Solo se admiten imágenes, PDF o archivos de texto\",\n attachmentTooLarge: \"El archivo supera los 10 MB\",\n attachmentTooMany: (count) =>\n count === 1\n ? \"Solo cabe 1 adjunto: el resto se ha omitido.\"\n : `Solo caben ${n(count)} adjuntos: el resto se ha omitido.`,\n captureFailed: \"No se ha podido capturar la pantalla\",\n updateFailed: \"No se ha podido guardar el cambio.\",\n statusChanged: (status, title) => `Cambiado a «${status}»: ${title}`,\n statusUndo: \"Deshacer\",\n statusRestored: (status, title) => `De vuelta a «${status}»: ${title}`,\n commentFailed: \"No se ha podido publicar el comentario.\",\n voteFailed: \"No se ha podido guardar su voto.\",\n replyFailed: \"No se ha podido enviar la respuesta.\",\n },\n feedbackMenu: {\n trigger: \"Enviar comentarios\",\n myFeedback: \"Mis comentarios\",\n discussion: \"Debate de comentarios\",\n inbox: \"Comentarios recibidos\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9: the public pages and the two feedback\n // notification types. \"Informe\" for one report, so it never reads as \"comentario\".\n feedbackPublic: {\n title: \"Debate de comentarios\",\n sort: \"Ordenar\",\n sortNewest: \"Más recientes\",\n sortVotes: \"Más deseados\",\n sortUpdated: \"Actualizados recientemente\",\n search: \"Buscar en los títulos\",\n columnVotes: \"Votos\",\n total: (count) => `${n(count)} ${plural(count, \"informe\", \"informes\")}`,\n comments: (count) => `${n(count)} ${plural(count, \"comentario\", \"comentarios\")}`,\n votes: (count) => `${n(count)} ${plural(count, \"voto\", \"votos\")}`,\n anonymous: \"Una persona\",\n filedBy: (name) => `De ${name}`,\n body: \"Descripción\",\n conversation: \"Respuestas y comentarios\",\n loading: \"Cargando…\",\n empty: \"Todavía no hay informes\",\n visibleToOthers: \"Visible para otras personas\",\n visibleHint: \"Otras personas ven el título y el texto, nunca sus capturas ni sus archivos.\",\n visibleLocked: \"Solo mientras el informe siga abierto.\",\n page: (page) => `Página ${n(page)}`,\n },\n feedbackNotificationTypes: {\n answered: \"Respuestas a sus informes\",\n answeredDescription: \"Cuando un informe que usted escribió o comentó recibe una respuesta.\",\n comment: \"Comentarios en informes que sigue\",\n commentDescription: \"Cuando alguien comenta un informe que usted escribió o comentó.\",\n received: \"Nuevos informes y revisiones\",\n receivedDescription: \"Cuando alguien envía un informe o devuelve uno.\",\n adminGroup: \"Admin\",\n },\n feedbackContext: {\n user: \"Usuario\",\n attachUrl: \"Adjuntar la URL de la página actual\",\n diagnostics: \"Diagnóstico enviado con el informe\",\n },\n feedbackPage: {\n title: \"Comentarios recibidos\",\n myTitle: \"Mis comentarios\",\n columnId: \"#\",\n columnDate: \"Fecha\",\n columnCategory: \"Categoría\",\n columnSubject: \"Asunto\",\n columnUser: \"Usuario\",\n columnEmail: \"Correo electrónico\",\n columnUrl: \"URL\",\n columnStatus: \"Estado\",\n columnResolved: \"Resuelto el\",\n openPage: \"Abrir página\",\n empty: \"Ninguno\",\n deletedUser: \"<usuario eliminado>\",\n // An id, not a count: printed as it is, like the \"#\" column.\n userFallback: (id) => `usuario #${id}`,\n environment: (environment) => String(environment ?? \"\").toUpperCase(),\n reworkChip: (count) => (count === 1 ? \"Corrección\" : `Corrección ×${n(count)}`),\n awaitingFilter: \"Solo lo que está pendiente de usted\",\n phoneActions: \"Acciones de comentarios\",\n },\n feedbackDetail: {\n subject: \"Asunto\",\n body: \"Descripción\",\n edit: \"Editar\",\n editDescription: \"Editar descripción\",\n save: \"Guardar\",\n cancel: \"Cancelar\",\n url: \"URL\",\n copyUrl: \"Copiar URL\",\n diagnostics: \"Diagnóstico\",\n attachment: \"Adjunto\",\n download: (name) => `Descargar ${name}`,\n downloadFailed: \"No se ha podido descargar el adjunto.\",\n outcome: \"Resultado\",\n replies: \"Respuestas\",\n resolvedAt: (date) => `Resuelto el ${date}`,\n rework: \"Corrección\",\n reworkTitle: \"Devolver para corrección\",\n reworkSend: \"Solicitar corrección\",\n reworkPlaceholder: \"¿Qué falta por pulir? Nuevos requisitos o cambios de rumbo.\",\n reworkUploadFailed: \"No se ha podido subir el archivo. La solicitud de corrección no se ha enviado.\",\n status: \"Estado\",\n note: \"Nota\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9.15: the vote, the comment thread, the replies.\n feedbackVote: {\n vote: \"Yo también lo quiero\",\n own: \"Su informe\",\n },\n feedbackComments: {\n comments: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n hidden: \"Ocultado por un administrador\",\n hide: \"Ocultar\",\n unhide: \"Mostrar\",\n delete: \"Eliminar\",\n deleteTitle: \"¿Eliminar este comentario?\",\n deleteBody: \"Se eliminará para todos. No se puede deshacer.\",\n field: \"Escribir un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Comentar\",\n },\n feedbackReplies: {\n replies: \"Respuestas\",\n empty: \"Aún no hay respuesta\",\n admin: \"Admin\",\n statusChanged: \"Estado cambiado a\",\n field: \"Escribir una respuesta\",\n placeholder: \"Escriba una respuesta…\",\n reply: \"Responder\",\n status: \"Estado con la respuesta\",\n noChange: \"Sin cambios\",\n nudge: \"No se ha avisado a quien lo informó. Añada una respuesta.\",\n },\n accountSettings: {\n profile: {\n title: \"Perfil\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n memberSince: \"Miembro desde\",\n displayName: \"Nombre visible\",\n save: \"Guardar\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n nameRequired: \"Introduzca el nombre y los apellidos.\",\n },\n password: {\n title: \"Cambiar contraseña\",\n current: \"Contraseña actual\",\n next: \"Nueva contraseña\",\n confirm: \"Confirmar nueva contraseña\",\n submit: \"Cambiar contraseña\",\n tooShort: \"La nueva contraseña es demasiado corta.\",\n mismatch: \"Las contraseñas no coinciden.\",\n wrongPassword: \"La contraseña no es correcta.\",\n },\n twoFactor: {\n status: \"Verificación en dos pasos\",\n enabledText: \"Activada\",\n disabledText: \"Desactivada\",\n enable: \"Configurar la verificación en dos pasos\",\n scanHint: \"Escanee este código con su app de autenticación e introduzca el código que muestra.\",\n codeLabel: \"Código de verificación\",\n verify: \"Verificar y activar\",\n disableSection: \"Desactivar la verificación en dos pasos\",\n password: \"Contraseña actual\",\n disable: \"Desactivar\",\n qrAlt: \"Código QR para su app de autenticación\",\n secretHint: \"¿No puede escanearlo? Introduzca esta clave en la app:\",\n copySecret: \"Copiar clave\",\n // 0.31.0: the card's title; the state (\"Activada\") stands beside it.\n title: \"Verificación en dos pasos\",\n },\n passkeys: {\n title: \"Llaves de acceso\",\n description: \"Inicie sesión con su huella, su cara o el PIN del dispositivo en lugar de una contraseña.\",\n descriptionAlongside:\n \"Inicie sesión con su huella, su cara o el PIN del dispositivo. Su contraseña sigue funcionando.\",\n empty: \"Aún no hay llaves de acceso\",\n loading: \"Cargando llaves de acceso…\",\n list: \"Sus llaves de acceso\",\n nameLabel: \"Nombre (opcional)\",\n namePlaceholder: \"p. ej. Portátil, Móvil\",\n add: \"Añadir llave de acceso\",\n adding: \"Esperando al dispositivo…\",\n rename: \"Cambiar nombre\",\n renameItem: (name) => `Cambiar nombre de ${name}`,\n renameField: (name) => `Nuevo nombre para ${name}`,\n save: \"Guardar\",\n cancel: \"Cancelar\",\n delete: \"Eliminar\",\n deleteItem: (name) => `Eliminar ${name}`,\n deleteConfirm: (name) => `¿Eliminar «${name}»? Ya no podrá iniciar sesión con ella.`,\n confirmDelete: \"Eliminar llave de acceso\",\n created: (date) => `Añadida el ${date}`,\n lastUsed: (date) => `Último uso: ${date}`,\n neverUsed: \"Nunca usada\",\n },\n },\n measuredGrid: {\n view: \"Vista de tabla\",\n cellsView: \"Celdas\",\n textView: \"Texto\",\n addRow: \"Añadir fila\",\n removeRow: (row) => `Quitar la fila ${row}`,\n clear: \"Vaciar tabla\",\n pasteHint: \"Pegue un bloque de una hoja de cálculo en cualquier celda\",\n cell: (column, row) => `${column}, fila ${row}`,\n rowNumber: \"Fila\",\n rowActions: \"Acciones de fila\",\n keyboardHint:\n \"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.\",\n lineError: (line) => `No se pudo leer la línea ${line}`,\n points: (count) => (count === 1 ? \"1 punto\" : `${n(count)} puntos`),\n problems: (count) => (count === 1 ? \"1 celda no es un número\" : `${n(count)} celdas no son números`),\n },\n pageContents: { title: \"En esta página\" },\n common: {\n dismiss: \"Cerrar\",\n close: \"Cerrar\",\n clear: \"Borrar\",\n search: \"Buscar\",\n done: \"Listo\",\n cancel: \"Cancelar\",\n save: \"Guardar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n remove: \"Quitar\",\n loading: \"Cargando…\",\n noResults: \"Sin resultados\",\n fieldValue: (field, value) => `${field}: ${value}`,\n opensInNewTab: \"se abre en una pestaña nueva\",\n aboutField: (field) => `Acerca de «${field}»`,\n help: \"Ayuda\",\n showMore: \"Más\",\n showLess: \"Menos\",\n },\n dataTable: {\n columns: \"Columnas\",\n selectAllRows: \"Seleccionar todas las filas\",\n sortHint: \"Haga clic para ordenar · Mayús+clic para añadir un criterio\",\n filter: \"Filtrar\",\n close: \"Cerrar\",\n selectRow: \"Seleccionar fila\",\n selectRows: \"Seleccionar filas\",\n cancelSelection: \"Cancelar\",\n rowDetails: \"Detalles\",\n autoSize: \"Ajustar ancho de columnas\",\n hiddenForWidth: \"oculta por falta de espacio\",\n loading: \"Cargando…\",\n filters: \"Filtros\",\n clearAll: \"Borrar todo\",\n done: \"Listo\",\n pageSize: \"Filas por página\",\n pageSizeAll: \"Todas\",\n prevPage: \"Página anterior\",\n nextPage: \"Página siguiente\",\n clearFilter: \"Borrar filtro\",\n filterPlaceholder: \"Filtrar…\",\n selectFilter: \"Seleccionar\",\n selectAll: \"Todos\",\n selectNone: \"Ninguno\",\n dateFrom: \"Desde\",\n dateTo: \"Hasta\",\n numberMin: \"Mín.\",\n numberMax: \"Máx.\",\n numberAbs: \"Valor absoluto\",\n presets: {\n today: \"Hoy\",\n yesterday: \"Ayer\",\n this_week: \"Esta semana\",\n last_week: \"Semana pasada\",\n last_7_days: \"Últimos 7 días\",\n last_30_days: \"Últimos 30 días\",\n this_month: \"Este mes\",\n last_month: \"Mes pasado\",\n last_3_months: \"Últimos 3 meses\",\n ytd: \"En lo que va de año\",\n last_year: \"Año pasado\",\n },\n table: \"Tabla de datos\",\n filterResults: (shown, total) => `${n(shown)} de ${n(total)} ${plural(total, \"fila\", \"filas\")}`,\n sortedAscending: (column) => `Ordenado por ${column}, ascendente`,\n sortedDescending: (column) => `Ordenado por ${column}, descendente`,\n sortCleared: (column) => `Orden por ${column} eliminado`,\n pageChanged: (page, totalPages) => `Página ${n(page)} de ${n(totalPages)}`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `Columnas (${n(visible)}/${n(total)})`,\n filterColumn: (column, active) => (active ? `Filtrar ${column} (activo)` : `Filtrar ${column}`),\n empty: \"No hay entradas\",\n actions: \"Acciones\",\n edit: \"Editar\",\n delete: \"Eliminar\",\n booleanTrue: \"Sí\",\n booleanFalse: \"No\",\n booleanUnset: \"Sin definir\",\n loadMore: \"Cargar más\",\n allLoaded: \"Todas las filas cargadas\",\n sortBy: \"Ordenar por\",\n sortDefault: \"Orden predeterminado\",\n sortAscending: \"Ascendente\",\n sortDescending: \"Descendente\",\n },\n miniCalendar: {\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n // Already formatted in the provider's locale (\"lunes, 14 de septiembre de 2026\").\n day: (date) => date,\n chooseStart: \"Elija una fecha de inicio\",\n chooseEnd: \"Elija una fecha de fin\",\n // \"Fecha\" is feminine; the date follows a label rather than being the subject of\n // a participle it cannot agree with.\n startSelected: (date) => `Fecha de inicio: ${date}. Elija una fecha de fin.`,\n rangeSelected: (from, to) =>\n `Periodo seleccionado: del ${from} al ${to}. Elija una fecha de inicio para empezar de nuevo.`,\n },\n monthPicker: {\n previousYear: \"Año anterior\",\n nextYear: \"Año siguiente\",\n panel: \"Elegir un mes\",\n month: (monthYear) => monthYear,\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n today: \"Hoy\",\n yearPanel: \"Elegir un año\",\n earlierYears: \"Años anteriores\",\n laterYears: \"Años posteriores\",\n thisYear: \"Este año\",\n },\n calendarHeatmap: {\n grid: \"Valores diarios\",\n day: (date, value) => `${date}: ${value}`,\n less: \"Menos\",\n more: \"Más\",\n truncated: (count) =>\n `Se muestran los días más recientes; ${count === 1 ? \"no se muestra 1 día anterior\" : `no se muestran ${n(count)} días anteriores`}.`,\n },\n datePicker: {\n apply: \"Aplicar\",\n cancel: \"Cancelar\",\n presets: \"Rangos rápidos\",\n panel: \"Elegir una fecha\",\n rangePanel: \"Elegir un intervalo de fechas\",\n clear: \"Borrar\",\n previousDay: \"Día anterior\",\n nextDay: \"Día siguiente\",\n today: \"Hoy\",\n },\n popover: {\n panel: \"Ventana emergente\",\n },\n combobox: {\n search: \"Buscar\",\n noResults: \"Sin resultados\",\n clear: \"Borrar\",\n loading: \"Cargando…\",\n create: (query) => `Crear «${query}»`,\n selectedCount: (count) => `${n(count)} ${plural(count, \"seleccionado\", \"seleccionados\")}`,\n loadError: \"No se han podido cargar los resultados\",\n resultCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n minChars: (count) => `Escriba al menos ${n(count)} ${plural(count, \"carácter\", \"caracteres\")}`,\n },\n multiSelect: {\n search: \"Buscar\",\n selectAll: \"Seleccionar todo\",\n clear: \"Borrar\",\n all: \"Todos\",\n // The bare count, as in English: the trigger has always shown just the number.\n selectedCount: (count) => n(count),\n },\n calculator: {\n open: \"Abrir calculadora\",\n panel: \"Calculadora\",\n calculation: \"Cálculo\",\n backspace: \"Retroceso\",\n clear: \"Borrar\",\n equals: \"Igual\",\n done: \"Listo\",\n plus: \"Más\",\n minus: \"Menos\",\n times: \"Por\",\n divide: \"Entre\",\n decimal: \"Separador decimal\",\n },\n currency: {\n currency: \"Moneda\",\n search: \"Buscar moneda\",\n },\n chipInput: {\n added: (value) => `«${value}» añadido`,\n removed: (value) => `«${value}» quitado`,\n remove: \"Quitar\",\n atLimit: (max) => `Límite de ${n(max)} ${plural(max, \"elemento\", \"elementos\")} alcanzado`,\n duplicate: (value) => `«${value}» ya está en la lista`,\n },\n swatchPicker: {\n none: \"Sin color\",\n mixed: \"Mixto: los elementos seleccionados tienen colores distintos\",\n },\n iconPicker: {\n none: \"Sin icono\",\n mixed: \"Mixto: los elementos seleccionados tienen iconos distintos\",\n search: \"Buscar iconos\",\n noResults: \"Ningún icono coincide\",\n resultCount: (count) => `${n(count)} ${plural(count, \"icono\", \"iconos\")}`,\n },\n passwordReveal: {\n show: \"Mostrar contraseña\",\n hide: \"Ocultar contraseña\",\n },\n dangerConfirm: {\n arm: \"Eliminar…\",\n confirm: \"Eliminar\",\n cancel: \"Cancelar\",\n prompt: \"Esta acción no se puede deshacer.\",\n password: \"Contraseña\",\n phrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n acknowledge: \"He leído lo que hace esta acción y deseo continuar.\",\n needsPhrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n needsAcknowledge: \"Marque la casilla para confirmar\",\n needsPassword: \"Introduzca su contraseña para confirmar\",\n },\n tabs: {\n add: \"Añadir pestaña\",\n remove: (tab) => `Quitar ${tab}`,\n more: \"Más pestañas\",\n previous: \"Pestañas anteriores\",\n },\n appShell: {\n collapse: \"Contraer barra lateral\",\n expand: \"Expandir barra lateral\",\n toggleGroup: (groupLabel) => `${groupLabel}: páginas`,\n },\n topBar: {\n theme: \"Cambiar de tema\",\n palette: \"Ajuste de apariencia\",\n language: \"Idioma\",\n languageCurrent: (name) => `Elegir idioma, actual: ${name}`,\n role: (value) => `Rol: ${value}`,\n },\n pickerSheet: {\n close: \"Cerrar\",\n done: \"Listo\",\n },\n dialogFrame: {\n close: \"Cerrar\",\n },\n bulkActionBar: {\n selected: (count) => `${n(count)} ${count === 1 ? \"seleccionado\" : \"seleccionados\"}`,\n clear: \"Borrar selección\",\n cleared: \"Selección borrada\",\n },\n swipeableRow: {\n actions: \"Acciones de la fila\",\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale (\"3,4 MB\").\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n dropzone: \"Carga de archivos\",\n browse: \"Examinar\",\n empty: \"Suelte un archivo aquí\",\n emptyMultiple: \"Suelte archivos aquí\",\n hint: (accept) => (accept ? `Aceptados: ${accept}` : \"Cualquier tipo de archivo\"),\n busy: \"Subiendo…\",\n rejectedPick: (count) =>\n count === 1 ? \"El archivo no se añadió\" : `No se añadió ninguno de los ${n(count)} archivos`,\n rejectedType: (name) => `El tipo de archivo de «${name}» no es compatible`,\n rejectedTypeOnly: (accept) => `Solo archivos ${accept}`,\n rejectedSize: (name, maxSize) => `«${name}» supera ${maxSize}`,\n rejectedCount: (name, maxFiles) =>\n `«${name}» no se ha añadido: como máximo ${n(maxFiles)} ${plural(maxFiles, \"archivo\", \"archivos\")}`,\n rejectedInvalid: (name) => `«${name}» no se puede usar aquí`,\n rejectedMany: (count) => (count === 1 ? \"1 archivo no se ha añadido\" : `${n(count)} archivos no se han añadido`),\n selected: (count, firstName) =>\n count === 1 ? `«${firstName}» seleccionado` : `${n(count)} archivos seleccionados`,\n remove: (name) => `Quitar «${name}»`,\n clearAll: \"Quitar todos los archivos\",\n removed: (name) => `«${name}» quitado`,\n cleared: \"Se han quitado todos los archivos\",\n },\n wizard: {\n done: \"Listo\",\n cancel: \"Cancelar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n skip: \"Omitir\",\n finish: \"Finalizar\",\n submitting: \"Creando…\",\n steps: \"Pasos\",\n step: (current, total) => `Paso ${n(current)} de ${n(total)}`,\n cancelTitle: \"¿Descartar este formulario?\",\n confirmCancel: \"Se perderán los datos introducidos.\",\n cancelConfirmLabel: \"Descartar\",\n cancelDismissLabel: \"Seguir editando\",\n reviewTitle: \"Revisión\",\n edit: \"Editar\",\n missingRequired: \"Rellene todos los campos obligatorios.\",\n genericError: \"Se ha producido un error\",\n },\n tour: {\n next: \"Siguiente\",\n back: \"Atrás\",\n skip: \"Omitir\",\n done: \"Listo\",\n awaitClickHint: \"Haga clic en el elemento resaltado para continuar\",\n awaitInputHint: \"Introduzca un valor en el campo resaltado para continuar\", // 0.46: TourStep.awaitInput (keksdose live #436).\n step: (current, total) => `${n(current)} / ${n(total)}`,\n // 0.50: guided form tours (docs/tours-harmonization.md §11).\n leaveEmpty: \"Dejar vacío\",\n optional: \"Opcional\",\n gateHint: \"Rellene el campo resaltado para continuar\",\n gateReady: \"Listo. Pulse Siguiente o Intro para continuar.\",\n awaitGateHint: \"Guarde para continuar\",\n awaitGateRefused: \"Todavía no se ha guardado. Revise el formulario e inténtelo de nuevo.\",\n backToStep: (title) => `Volver a «${title}»`,\n },\n // 0.50: the form's \"Guide me\" (TourGuideButton, docs/tours-harmonization.md §11).\n tourGuide: {\n label: \"Guíeme\",\n description: \"Le guía por este formulario, campo a campo\",\n },\n // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page.\n tourCatalogue: {\n searchLabel: \"Buscar visitas\",\n searchPlaceholder: \"Buscar visitas…\",\n groupLabel: \"Tema\",\n groupAll: (count) => `Todos los temas (${n(count)})`,\n groupOption: (group, count) => `${group} (${n(count)})`,\n stateLabel: \"Filtrar visitas\",\n stateAll: (count) => `Todas (${n(count)})`,\n stateTodo: (count) => `Pendientes (${n(count)})`,\n stateDone: (count) => `Completadas (${n(count)})`,\n showing: (shown, total) => `Mostrando ${n(shown)} de ${n(total)} visitas`,\n noMatches: \"Ninguna visita coincide\",\n noMatchesHint: \"Pruebe con otra palabra o borre los filtros.\",\n clearFilters: \"Borrar filtros\",\n badgeNew: \"Nuevo\",\n badgeUpdated: \"Actualizado\",\n resetOn: (date, reason) => (reason ? `Restablecida el ${date}: ${reason}` : `Restablecida el ${date}`),\n points: (count) => `+${n(count)} pts`,\n steps: (count) => (count === 1 ? `${n(count)} paso` : `${n(count)} pasos`),\n duration: (minutes) => `Unos ${n(minutes)} min`,\n completedOn: (date) => `Completada el ${date}`,\n completed: \"Completada\",\n notCompleted: \"No completada\",\n markUndone: \"Marcar como no completada\",\n start: \"Empezar\",\n replay: \"Repetir\",\n },\n commandPalette: {\n clear: \"Borrar búsqueda\",\n submit: \"Buscar\",\n close: \"Cerrar\",\n placeholder: \"Buscar…\",\n empty: \"Sin resultados\",\n loading: \"Buscando…\",\n dialog: \"Búsqueda\",\n error: \"La búsqueda ha fallado. Inténtelo de nuevo.\",\n },\n globalSearch: {\n trigger: \"Buscar\",\n placeholder: \"Buscar o ir a…\",\n shortcut: (keys) => `Buscar (${keys})`,\n suggestions: \"Pruebe\",\n results: \"Resultados\",\n },\n sparkline: {\n rising: (first, last) => `Sube de ${first} a ${last}`,\n falling: (first, last) => `Baja de ${first} a ${last}`,\n flat: (value) => `Estable en ${value}`,\n single: (value) => `Un único valor: ${value}`,\n noData: \"Sin datos\",\n named: (name, summary) => `${name}: ${summary}`,\n },\n statTile: {\n increase: (amount) => `Sube ${amount}`,\n decrease: (amount) => `Baja ${amount}`,\n unchanged: \"Sin cambios\",\n better: (change) => `${change} (favorable)`,\n worse: (change) => `${change} (desfavorable)`,\n noValue: \"Sin datos\",\n loading: \"Cargando…\",\n },\n signaturePad: {\n label: \"Firma\",\n instructions: \"Firme en el recuadro con el ratón, el dedo o un lápiz.\",\n typedFallbackHint: \"Si no puede dibujar, escriba su nombre.\",\n empty: \"Aún no hay nada dibujado\",\n signed: \"Firma dibujada\",\n undo: \"Deshacer el último trazo\",\n clear: \"Borrar\",\n save: \"Guardar firma\",\n useTyped: \"Escribir el nombre\",\n useDrawn: \"Dibujar la firma\",\n typedName: \"Nombre completo\",\n cleared: \"Firma borrada\",\n undone: \"Último trazo eliminado\",\n viewEmpty: \"Sin firmar\",\n viewDrawn: \"Firma manuscrita\",\n viewTyped: (name) => `Firmado con el nombre escrito ${name}`,\n },\n passwordStrength: {\n // Agrees with \"contraseña\" (feminine).\n tooShort: \"Demasiado corta\",\n weak: \"Débil\",\n fair: \"Aceptable\",\n good: \"Buena\",\n strong: \"Fuerte\",\n announcement: (level) => `Seguridad de la contraseña: ${level}`,\n // Unformatted, as in the English default.\n ruleLength: (minLength) => `Al menos ${n(minLength)} ${plural(minLength, \"carácter\", \"caracteres\")}`,\n ruleCase: \"Mayúsculas y minúsculas\",\n ruleDigit: \"Un número\",\n ruleSymbol: \"Un símbolo\",\n optional: (rule) => `${rule} (opcional)`,\n met: \"Cumplido:\",\n notMet: \"No cumplido:\",\n tooLong: (maxBytes) =>\n `Como máximo ${n(maxBytes)} ${plural(maxBytes, \"carácter\", \"caracteres\")} (las letras con tilde y los emojis cuentan como más de uno).`,\n },\n seriesChart: {\n resetZoom: \"Restablecer zoom\",\n zoomHint:\n \"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.\",\n empty: \"Sin datos\",\n legend: \"Series\",\n points: \"Valores del gráfico\",\n },\n pieChart: {\n slices: \"Sectores del gráfico\",\n slice: (label, value, percent) => `${label}: ${value} (${percent})`,\n sliceShare: (label, percent) => `${label}: ${percent}`,\n total: \"Total\",\n empty: \"Sin datos\",\n legend: \"Categorías\",\n },\n treemap: {\n tile: (name, value, share) => `${name}: ${value}${share ? ` (${share})` : \"\"}`,\n group: (name, value, share) => `${name}, grupo: ${value}${share ? ` (${share})` : \"\"}`,\n inGroup: (name, group) => `${name}, en ${group}`,\n },\n confirmDialog: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n typed: (text) => `Escriba «${text}» para confirmar`,\n },\n floatingPanel: {\n close: \"Cerrar\",\n badge: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")}`,\n },\n copyButton: {\n copy: \"Copiar\",\n copied: \"Copiado\",\n failed: \"No se pudo copiar\",\n copiedAnnouncement: \"Copiado al portapapeles\",\n failedAnnouncement: \"No se pudo copiar al portapapeles\",\n },\n list: {\n unread: \"No leído\",\n opensInNewTab: \"se abre en una pestaña nueva\",\n showAll: (count) => `Mostrar todo (${n(count)})`,\n showFewer: \"Mostrar menos\",\n },\n breadcrumbs: {\n label: \"Ruta de navegación\",\n showAll: \"Mostrar la ruta completa\",\n },\n toast: {\n close: \"Cerrar notificación\",\n notifications: \"Notificaciones\",\n undo: \"Deshacer\",\n redo: \"Rehacer\",\n },\n form: {\n save: \"Guardar\",\n cancel: \"Cancelar\",\n submitShortcut: (apple) => (apple ? \"⌘ Intro\" : \"Ctrl+Intro\"),\n },\n descriptionList: {\n empty: \"—\",\n },\n lineItems: {\n add: \"Añadir fila\",\n remove: (row) => `Eliminar fila ${row}`,\n confirmRemove: (row) => `¿Eliminar fila ${row}? Pulse de nuevo para confirmar`,\n row: (row) => `Fila ${row}`,\n cell: (column, row) => `${column}, fila ${row}`,\n totals: \"Total\",\n },\n progressBar: {\n unlimited: \"Ilimitado\",\n overLimit: (amount) => `${amount} por encima del límite`,\n },\n signedAmount: {\n positive: (amount) => `más ${amount}`,\n negative: (amount) => `menos ${amount}`,\n },\n errorBoundary: {\n title: \"Algo salió mal\",\n message: \"No se pudo mostrar esta parte de la página. Inténtelo de nuevo o recargue la página.\",\n retry: \"Reintentar\",\n details: \"Detalles del error\",\n reload: \"Recargar\",\n updateTitle: \"Hay una nueva versión disponible\",\n updateMessage:\n \"Una parte de la aplicación ha cambiado desde que se cargó esta página. Recárguela para obtener la nueva versión.\",\n offlineTitle: \"Sin conexión\",\n offlineMessage: \"No se pudo cargar esta página sin conexión. Vuelva a conectarse y recargue la página.\",\n copyReport: \"Copiar informe de error\",\n reported: \"El error se ha notificado automáticamente.\",\n reportedAs: (reference) => `Notificado con la referencia ${reference}`,\n },\n authedImage: {\n loading: \"Cargando imagen…\",\n loadError: \"No se pudo cargar la imagen\",\n failedImage: (alt) => `${alt}: no se pudo cargar la imagen`,\n },\n imageGrid: {\n list: \"Imágenes\",\n item: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n actions: (name) => `Acciones para ${name}`,\n },\n lightbox: {\n dialog: \"Visor de imágenes\",\n close: \"Cerrar\",\n previous: \"Imagen anterior\",\n next: \"Imagen siguiente\",\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n download: \"Descargar\",\n zoom: \"Ampliar\",\n noPreview: \"No hay vista previa disponible para este archivo\",\n openInNewTab: \"Abrir en una pestaña nueva\",\n },\n writeLock: {\n reason: \"Puede verlo, pero no modificarlo.\",\n offline: \"Requiere conexión.\",\n },\n accountState: {\n // Agreeing with \"cuenta\" (feminine): the chip is the state of an account.\n active: \"Activa\",\n inactive: \"Inactiva\",\n invited: \"Invitación enviada\",\n registered: \"Registrada\",\n unverified: \"Sin verificar\",\n passwordChange: \"Debe cambiar la contraseña\",\n deletion: \"Eliminación solicitada\",\n deletionOn: (date) => `Eliminación el ${date}`,\n },\n shareCard: {\n dialogTitle: \"Compartir\",\n close: \"Cerrar\",\n email: \"Correo electrónico\",\n emailOptional: \"Correo electrónico (opcional)\",\n // example.com is reserved for examples (RFC 2606); a localised domain is real.\n emailPlaceholder: \"nombre@example.com\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n roleOf: (name) => `Rol de ${name}`,\n add: \"Compartir\",\n whoHasAccess: \"Quién tiene acceso\",\n nobodyYet: \"Nadie más tiene acceso todavía.\",\n pending: \"Pendiente\",\n openInvite: \"Enlace de invitación abierto\",\n copyLink: \"Copiar enlace\",\n team: \"Equipo\",\n teamHint: (name) => `Todos los miembros de ${name} tendrán acceso.`,\n remove: \"Quitar acceso\",\n removeConfirm: (name) => `¿Quitar el acceso a ${name}?`,\n revokePending: \"Retirar invitación\",\n revokePendingConfirm: (name) => `¿Retirar la invitación para ${name}?`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n loading: \"Cargando…\",\n },\n reauthDialog: {\n title: \"Confirme que es usted\",\n description: \"Introduzca su contraseña actual para continuar.\",\n password: \"Contraseña actual\",\n submit: \"Continuar\",\n cancel: \"Cancelar\",\n },\n serverWake: {\n slow: \"Sigue cargando: está tardando más de lo habitual.\",\n waking: (appName) =>\n `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.`,\n },\n // 0.28.0 — docs/legal-harmonization.md §4.3/§4.4: Kurvenschmiede's reviewed Spanish\n // (formal \"usted\"), brought into line with the kit's English; it goes back to\n // Kurvenschmiede for review.\n legal: {\n navLabel: \"Información legal\",\n links: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n security: \"Seguridad\",\n accessibility: \"Accesibilidad\",\n },\n titles: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n },\n backHome: \"Volver al inicio\",\n accept: \"Acepto las {terms} y la {privacy}\",\n notice: {\n beta: \"Beta cerrada. Estos textos aún no han sido revisados por un abogado y lo serán antes de un lanzamiento público.\",\n privacy:\n \"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.\",\n },\n translation: {\n note: (o) =>\n `Esta es una traducción ofrecida para su comodidad; solo la versión en ${o.bindingLanguage} es vinculante.`,\n show: (o) => `Ver la versión en ${o.bindingLanguage}`,\n },\n updated: (date) => `Última actualización: ${date}`,\n summary: {\n title: \"En resumen\",\n note: \"Este resumen es solo orientativo; únicamente el texto completo es vinculante.\",\n },\n sections: {\n impressum: {\n operator: {\n title: \"Responsable del sitio\",\n body: (o) =>\n `${o.name}\\n${o.postalCode} ${o.city}\\n${o.country}\\n\\nLa dirección postal completa se facilita, previa solicitud, a quien tenga un interés jurídico legítimo; escriba a la dirección de contacto indicada abajo.`,\n },\n contact: {\n title: \"Contacto\",\n body: (o) => `Correo electrónico: ${o.email}`,\n },\n disclaimer: {\n title: \"Responsabilidad por contenidos y enlaces\",\n body: \"Este es un proyecto privado y sin fines comerciales, que se ofrece sin garantía durante una beta cerrada. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). \"Plan\"\n // and \"suscripción\" as the `billing` namespace.\n commercial:\n \"Este es un servicio comercial. Los planes de pago los vende nuestro revendedor, que actúa como Merchant of Record: vende la suscripción en su propio nombre, cobra el pago, emite la factura y gestiona el IVA, y sus condiciones de venta se aplican a la compra. Procuramos que el contenido de este servicio sea correcto, pero no podemos garantizar que esté completo ni actualizado. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n },\n },\n privacy: {\n controller: {\n title: \"Responsable del tratamiento\",\n body: (o) =>\n `El responsable del tratamiento de los datos personales en este servicio es:\\n${o.name}\\n${o.postalCode} ${o.city}, ${o.country}\\nCorreo electrónico: ${o.email}\\n\\nLa dirección postal completa se facilita, previa solicitud, a los interesados y a las autoridades de control.`,\n },\n legal_basis: {\n title: \"Base jurídica\",\n 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).\",\n },\n browser: {\n title: \"Qué guarda su navegador\",\n lead: \"Ninguna cookie. La aplicación guarda lo siguiente en el almacenamiento de su navegador:\",\n 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.\",\n },\n rights: {\n title: \"Sus derechos\",\n lead: \"Tiene derecho de acceso, rectificación, supresión, limitación, portabilidad y oposición.\",\n tail: \"Si se encuentra en Suiza, puede dirigirse al Comisionado Federal de Protección de Datos e Información (FDPIC); si se encuentra en la UE, puede presentar una reclamación ante su autoridad de control local.\",\n },\n contact: {\n title: \"Contacto para la protección de datos\",\n body: (o) => `Para cualquier solicitud sobre privacidad, escriba a: ${o.email}`,\n },\n },\n terms: {\n warranty: {\n title: \"Sin garantía\",\n body: \"El servicio se ofrece «tal cual» y «según disponibilidad», sin garantías de ningún tipo, en la medida en que lo permita la ley. Al ser una beta, puede contener errores, cambiar o interrumpirse en cualquier momento; conserve usted mismo copias de seguridad de los datos importantes.\",\n },\n liability: {\n title: \"Limitación de responsabilidad\",\n body: \"En la medida en que lo permita la legislación aplicable, el operador no responde de los daños indirectos o consecuentes derivados del uso o de la imposibilidad de uso del servicio. Nada de lo aquí dispuesto limita la responsabilidad que la ley no permite limitar.\",\n },\n changes: {\n title: \"Cambios en estas condiciones\",\n body: \"Podemos actualizar estas condiciones a medida que evolucione el servicio. Anunciamos cualquier cambio importante al menos 30 días antes de que entre en vigor, por correo electrónico y en la aplicación, junto con el nuevo texto. Si no está de acuerdo, puede oponerse o eliminar su cuenta antes de esa fecha, y puede exportar sus datos hasta entonces. Si sigue usando el servicio después de esa fecha, se aplican las condiciones modificadas. Los cambios que solo le benefician, o que exige la ley, se aplican sin este preaviso y no admiten oposición. Si se opone a un cambio, podemos cerrar su cuenta en la fecha en que entre en vigor. Si ha pagado un periodo que va más allá de esa fecha, le reembolsamos la parte no utilizada.\",\n },\n language: {\n title: \"Idioma\",\n body: (o) =>\n `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}.`,\n },\n law: {\n title: \"Legislación aplicable\",\n body: (o) =>\n `Estas condiciones se rigen por el derecho suizo, con exclusión de sus normas de conflicto de leyes. En la medida en que lo permita la ley, el fuero competente es ${o.city} (${o.region}), ${o.country}.`,\n },\n },\n },\n },\n // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Spanish (auth.*,\n // notfound) where it says the same, brought into line with the kit's English and this\n // catalogue's words (\"Nueva contraseña\", \"verificación en dos pasos\"); written fresh\n // where Kurvenschmiede has no such text yet. Formal \"usted\". It goes back to\n // Kurvenschmiede for review.\n signIn: {\n email: \"Correo electrónico\",\n password: \"Contraseña\",\n submit: \"Iniciar sesión\",\n passkey: \"Iniciar sesión con una llave de acceso\",\n forgotPassword: \"¿Ha olvidado su contraseña?\",\n noAccount: \"¿Aún no tiene cuenta?\",\n register: \"Crear cuenta\",\n invalidCredentials: \"El correo electrónico o la contraseña no son correctos.\",\n failed: \"No se pudo iniciar sesión. Inténtelo de nuevo.\",\n passkeyFailed: \"No se pudo iniciar sesión con la llave de acceso.\",\n deactivatedHint: \"¿Cuenta desactivada? Escriba a {contact}.\",\n tagHint: (taggedAddress) => `¿Se registró con ${taggedAddress}? Use esa dirección.`,\n twoFactorTitle: \"Verificación en dos pasos\",\n twoFactorIntro: \"Introduzca el código que muestra su app de autenticación.\",\n code: \"Código de verificación\",\n verify: \"Verificar\",\n codeInvalid: \"El código de verificación no es válido.\",\n setPasswordTitle: \"Elija una nueva contraseña\",\n setPasswordIntro:\n \"Se ha solicitado una nueva contraseña para esta cuenta. Elija una y podrá continuar enseguida.\",\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n setPasswordSubmit: \"Establecer la contraseña e iniciar sesión\",\n setPasswordFailed: \"No se pudo establecer la contraseña.\",\n expired: \"Este inicio de sesión ha caducado. Inicie sesión de nuevo.\",\n backToSignIn: \"Volver a iniciar sesión\",\n useRecoveryCode: \"Usar un código de respaldo\",\n useAuthenticatorCode: \"Usar su app de autenticación\",\n recoveryCode: \"Código de respaldo\",\n recoveryIntro: \"Introduzca uno de los códigos de respaldo que guardó al activar la verificación en dos pasos.\",\n recoveryCodeHint: (length) => `${n(length)} letras y dígitos. Los guiones y los espacios no importan.`,\n recoveryCodeInvalid: \"Este código de respaldo no es válido o ya se ha usado.\",\n rateLimited,\n // 0.31.0: the same words as `landing.requestAccess`.\n requestAccess: \"Solicitar acceso\",\n },\n register: {\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n email: \"Correo electrónico\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"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.\",\n invitedEmailHint: \"La dirección a la que se envió su invitación.\",\n invitedTagNote: \"La dirección etiquetada recibe su propio correo de confirmación.\",\n password: \"Contraseña\",\n confirmPassword: \"Repita la contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n language: \"Idioma\",\n submit: \"Crear cuenta\",\n haveAccount: \"¿Ya tiene una cuenta?\",\n signIn: \"Iniciar sesión\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n registrationClosed:\n \"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.\",\n invitationInvalid: \"Este enlace de invitación no es válido.\",\n invitationExpired: \"Esta invitación ha caducado. Pida una nueva.\",\n failed: \"No se pudo completar el registro. Inténtelo de nuevo.\",\n rateLimited,\n },\n completeName: {\n title: \"Complete su nombre\",\n description:\n \"El nombre y los apellidos ahora se piden por separado. Compruebe lo que ya está rellenado y añada lo que falte.\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n save: \"Guardar\",\n later: \"Más tarde\",\n failed: \"No se pudo guardar su nombre. Inténtelo de nuevo.\",\n },\n forgotPassword: {\n title: \"Restablecer la contraseña\",\n intro:\n \"Introduzca la dirección de correo electrónico de su cuenta. Le enviaremos un enlace para elegir una nueva contraseña.\",\n email: \"Correo electrónico\",\n submit: \"Enviar el enlace\",\n sent: (email) => `Si existe una cuenta para ${email}, el enlace está en camino.`,\n sentHint:\n \"El enlace es válido durante una hora y funciona una sola vez. Revise también la carpeta de correo no deseado.\",\n backToSignIn: \"Volver a iniciar sesión\",\n error: \"La solicitud ha fallado. Inténtelo de nuevo más tarde.\",\n rateLimited,\n },\n resetPassword: {\n title: \"Elija una nueva contraseña\",\n checking: \"Comprobando el enlace…\",\n intro: (email) => `Está estableciendo una nueva contraseña para ${email}.`,\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n mismatch: \"Las contraseñas no coinciden.\",\n submit: \"Guardar la contraseña\",\n failed: \"No se pudo cambiar la contraseña.\",\n noToken: \"Este enlace está incompleto.\",\n invalid: \"Este enlace no es válido o ha caducado.\",\n invalidHint: \"Los enlaces son válidos durante una hora y funcionan una sola vez. Solicite uno nuevo.\",\n requestNew: \"Solicitar un enlace nuevo\",\n success: \"Su contraseña se ha cambiado. Ya puede iniciar sesión con ella.\",\n sessionsEnded: \"Se ha cerrado la sesión en los dispositivos conectados; tendrá que volver a iniciarla en ellos.\",\n signIn: \"Ir a iniciar sesión\",\n rateLimited,\n },\n verifyEmail: {\n title: \"Confirme su dirección de correo electrónico\",\n verifying: \"Confirmando…\",\n verified: \"Su dirección de correo electrónico está confirmada.\",\n continue: \"Continuar\",\n invalid: \"Este enlace de confirmación no es válido\",\n expired: \"Este enlace de confirmación ha caducado\",\n noToken: \"A este enlace le falta el token de confirmación.\",\n invalidHint: \"Es posible que el enlace haya caducado o que ya se haya usado.\",\n requestInApp: \"Puede solicitar uno nuevo desde la aplicación.\",\n requestHere: \"Puede solicitar uno nuevo aquí.\",\n resend: \"Enviar de nuevo\",\n resendIn: (seconds) => `Enviar de nuevo en ${n(seconds)} s`,\n resent: \"Correo de confirmación enviado\",\n resendError: \"No se pudo enviar el correo de confirmación\",\n rateLimited,\n banner: \"Confirme su dirección de correo electrónico.\",\n dismiss: \"Ahora no\",\n },\n notFound: {\n title: \"Página no encontrada\",\n body: \"Esta dirección no existe (o ya no existe). Quizá sea una errata o la página se haya movido.\",\n home: \"Ir a la página de inicio\",\n app: \"Volver a la aplicación\",\n },\n acceptInvitation: {\n title: \"Aceptar la invitación\",\n accepting: \"Aceptando la invitación…\",\n accepted: \"Invitación aceptada.\",\n joined: (name) => `Se ha unido a ${name}.`,\n continue: \"Continuar\",\n invalid: \"No es posible unirse con este enlace\",\n expired: \"Esta invitación ha caducado\",\n noToken: \"A este enlace le falta el token de invitación.\",\n askAgain: \"Pida a quien le invitó que le envíe una nueva invitación.\",\n signInFirst: \"Inicie sesión para aceptar esta invitación\",\n signInHint: \"Use la cuenta a la que se envió la invitación.\",\n signIn: \"Iniciar sesión\",\n register: \"Crear cuenta\",\n },\n companySwitcher: {\n switchCompany: \"Cambiar de empresa\",\n heading: \"Empresas\",\n current: (name) => `Empresa: ${name}`,\n currentMark: \"(actual)\",\n switching: \"Cambiando de empresa…\",\n },\n // 0.30.0 — docs/user-admin-harmonization.md: Kurvenschmiede's reviewed Spanish for the\n // admin words, transfer, invitations and sessions; written fresh where it had no\n // sentence. \"Usted\", as the rest of this catalogue.\n emailChange: {\n title: \"Dirección de correo electrónico\",\n current: \"Dirección actual\",\n newEmail: \"Nueva dirección de correo electrónico\",\n password: \"Contraseña actual\",\n passwordHint: \"Inicia sesión con su dirección, así que cambiarla requiere su contraseña.\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"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.\",\n submit: \"Cambiar la dirección de correo electrónico\",\n sameAsCurrent: \"Esta ya es su dirección.\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n wrongPassword: \"La contraseña no es correcta.\",\n pending: (newEmail) => `Confirme el enlace que hemos enviado a ${newEmail}.`,\n pendingHint: (currentEmail) =>\n `Hasta entonces, seguirá iniciando sesión con ${currentEmail}. Revise también la carpeta de correo no deseado.`,\n resend: \"Enviar el enlace de nuevo\",\n resent: \"Hemos vuelto a enviar el enlace.\",\n cancel: \"Cancelar el cambio\",\n confirmed: (email) => `Su dirección de correo electrónico es ahora ${email}.`,\n passkeyNote:\n \"Sus llaves de acceso siguen funcionando. Puede que su dispositivo aún las muestre con su dirección anterior.\",\n rateLimited,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.\n notifications: {\n typesTitle: \"Avisarme de\",\n typesDescription: \"Elija de qué se entera y cómo.\",\n channelApp: \"En la app\",\n channelPush: \"Push\",\n channelEmail: \"Correo\",\n emailUnverified: \"Confirme su dirección para recibirlos.\",\n digestCadence: \"Frecuencia\",\n digestWeekly: \"Semanal\",\n digestMonthly: \"Mensual\",\n typesLoading: \"Cargando los ajustes de notificaciones…\",\n typesEmpty: \"No hay notificaciones para esta cuenta.\",\n quietTitle: \"Horas de silencio\",\n quietDescription: (inbox, held) =>\n held\n ? inbox\n ? \"Las notificaciones push esperan durante este intervalo y llegan cuando termina. A su bandeja de entrada llegan enseguida.\"\n : \"Las notificaciones push esperan durante este intervalo y llegan cuando termina.\"\n : inbox\n ? \"Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada.\"\n : \"Sin notificaciones push durante este intervalo.\",\n quietZone: (zone) => `En su zona horaria (${zone}), que sigue al último dispositivo que usó.`,\n quietFrom: \"Desde\",\n quietUntil: \"Hasta\",\n quietIncomplete:\n \"Indique una hora de inicio y una de fin. Las horas de silencio se aplican cuando ambas están definidas.\",\n regions: {\n Africa: \"África\",\n America: \"América\",\n Antarctica: \"Antártida\",\n Arctic: \"Ártico\",\n Asia: \"Asia\",\n Atlantic: \"Atlántico\",\n Australia: \"Australia\",\n Europe: \"Europa\",\n Indian: \"Océano Índico\",\n Pacific: \"Pacífico\",\n },\n pushTitle: \"Notificaciones push\",\n pushDescription: \"Notificaciones en este dispositivo, también con la app cerrada.\",\n unsupported: \"Este navegador no admite notificaciones push.\",\n iosInstall: (app) =>\n `En iPhone o iPad, añada primero ${app} a la pantalla de inicio: iOS solo entrega notificaciones a la app instalada.`,\n notConfigured: \"Las notificaciones push no están configuradas en este servidor.\",\n blocked: \"Las notificaciones están bloqueadas en los ajustes de este navegador.\",\n on: \"Las notificaciones están activadas en este dispositivo.\",\n off: \"Las notificaciones están desactivadas en este dispositivo.\",\n otherAccount:\n \"Este navegador recibe notificaciones de otra cuenta. Actívelas aquí para recibirlas en la cuenta con la que ha iniciado sesión.\",\n enable: \"Activar notificaciones\",\n disable: \"Desactivar\",\n sendTest: \"Enviar una prueba\",\n enableFailed: \"No se pudieron activar las notificaciones.\",\n noServiceWorker: \"No se pudo contactar con el service worker de la app. Recargue la página e inténtelo de nuevo.\",\n pushTimeout: \"El servicio push del navegador no respondió. Compruebe su conexión e inténtelo de nuevo.\",\n testSent: (count) => `Prueba enviada a ${n(count)} ${plural(count, \"dispositivo\", \"dispositivos\")}`,\n testNone: \"Ningún dispositivo aceptó la prueba. Active primero las notificaciones en este dispositivo.\",\n testFailed: \"No se pudo enviar la notificación de prueba.\",\n explainerTitle: \"¿Activar las notificaciones?\",\n explainerBody: (app) =>\n `${app} solo envía notificaciones de lo que usted elija, y puede desactivarlas en cualquier momento.`,\n explainerHint: \"A continuación, su navegador le pedirá permiso.\",\n explainerContinue: \"Continuar\",\n devicesTitle: \"Dispositivos de notificación\",\n devicesDescription:\n \"Todos los dispositivos que reciben notificaciones push de su cuenta. Quite los que ya no use.\",\n devicesLoading: \"Cargando dispositivos…\",\n devicesEmpty: \"Aún no hay ningún dispositivo que reciba notificaciones.\",\n unknownDevice: \"Dispositivo desconocido\",\n thisDevice: \"Este dispositivo\",\n added: (date) => `Añadido el ${date}`,\n lastDelivery: (date) => `Última entrega el ${date}`,\n noDelivery: \"Aún sin entregas\",\n failures: (count) =>\n `${n(count)} ${plural(count, \"entrega fallida consecutiva\", \"entregas fallidas consecutivas\")}`,\n remove: \"Quitar\",\n // Starts with `remove`, the button's visible text, for voice control.\n removeItem: (device) => `Quitar ${device}`,\n removePrompt: \"¿Dejar de enviar notificaciones a este dispositivo?\",\n deviceTypes: \"Tipos en este dispositivo\",\n deviceTypesDescription: \"Desactive un tipo para silenciarlo solo en este dispositivo.\",\n deviceTypesEmpty: \"Ningún tipo tiene las notificaciones push activadas.\",\n inboxTitle: \"Bandeja de entrada\",\n inboxLoading: \"Cargando notificaciones…\",\n inboxEmpty: \"Está al día.\",\n markAllRead: \"Marcar todo como leído\",\n clearAll: \"Borrar todo\",\n clearPrompt: \"¿Eliminar todas las notificaciones de su bandeja de entrada?\",\n showMore: \"Mostrar más\",\n bellLabel: \"Notificaciones\",\n bellUnread: (count) => `${n(count)} sin leer`,\n allNotifications: \"Todas las notificaciones\",\n unsubscribeTitle: \"Notificaciones por correo electrónico\",\n unsubscribeAbout: (type) => `Recibe correos sobre: ${type}.`,\n unsubscribeGeneric: \"Recibe correos de notificación.\",\n stopThese: \"Dejar de recibir estos correos\",\n stopAll: (app) => `Dejar de recibir todos los correos de notificación de ${app}`,\n stoppedThese: \"Hecho. Ya no recibirá estos correos.\",\n stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,\n accountMail: \"Los correos sobre su cuenta seguirán llegando.\",\n turnBackOn: \"Puede volver a activarlos en cualquier momento en los ajustes.\",\n stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,\n openSettings: \"Abrir los ajustes\",\n invalidLink: \"Este enlace ya no funciona. Puede desactivar los correos en los ajustes.\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n sessions: {\n title: \"Sesiones\",\n description:\n \"¿Ha iniciado sesión en un dispositivo que ya no usa o en el que no confía? Cierre sesión en todas partes.\",\n signOutEverywhere: \"Cerrar sesión en todas partes…\",\n signOutEverywherePrompt:\n \"Esto termina todas las sesiones, también esta: se cerrará la sesión en este dispositivo y tendrá que volver a iniciarla aquí.\",\n confirmSignOutEverywhere: \"Cerrar sesión en todas partes\",\n list: \"Dónde ha iniciado sesión\",\n loading: \"Cargando sesiones…\",\n empty: \"No hay sesiones que mostrar.\",\n current: \"Este dispositivo\",\n unknownDevice: \"Dispositivo desconocido\",\n // A colon: `when` is either \"hace 3 horas\" or a date.\n lastActive: (when) => `Última actividad: ${when}`,\n ip: (address) => `IP ${address}`,\n revoke: \"Cerrar sesión\",\n // Starts with `revoke`, the button's visible text, for voice control.\n revokeItem: (device) => `Cerrar sesión en ${device}`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n deleteAccount: {\n title: \"Eliminar la cuenta\",\n afterDays: (days) =>\n `Su cuenta se desactiva de inmediato y se borra definitivamente ${n(days)} ${plural(days, \"día\", \"días\")} después.`,\n operator: \"Su cuenta se desactiva de inmediato, y el operador la borrará definitivamente.\",\n arm: \"Eliminar la cuenta…\",\n prompt: \"Se cerrará su sesión en todos los dispositivos y ya no podrá usar su cuenta.\",\n handOver: (count) =>\n count === 1\n ? \"1 elemento que otros pueden ver pasará a un administrador.\"\n : `${n(count)} elementos que otros pueden ver pasarán a un administrador.`,\n confirm: \"Eliminar mi cuenta\",\n done: \"Su cuenta está desactivada. Se está cerrando su sesión.\",\n wrongPassword: \"La contraseña no es correcta.\",\n confirmationMismatch: \"Esta no es la dirección de su cuenta.\",\n lastAdmin: \"Su cuenta es la última con rol de administrador. Primero haga administrador a otra persona.\",\n lastAdminOf: (companies) =>\n `Su cuenta es la última con rol de administrador en ${companies}. Primero haga administrador allí a otra persona.`,\n householdHasMembers:\n \"Su hogar tiene otros miembros, así que la cuenta no se puede eliminar aquí. Escriba al operador.\",\n rateLimited,\n failed: \"No se pudo eliminar su cuenta. Inténtelo de nuevo.\",\n },\n dataExport: {\n title: \"Exportar sus datos\",\n description: \"Descargue una copia de los datos de su cuenta como archivo JSON.\",\n download: \"Descargar mis datos\",\n started: \"La descarga ha comenzado.\",\n saveAgain: \"¿No ha empezado? Guardar el archivo\",\n rateLimited: (seconds) =>\n seconds && seconds > 0\n ? `Acaba de exportar sus datos. Inténtelo de nuevo en ${wait(seconds)}.`\n : \"Acaba de exportar sus datos. Inténtelo de nuevo dentro de un minuto.\",\n failed: \"La exportación ha fallado. Inténtelo de nuevo.\",\n },\n userRoster: {\n name: \"Nombre\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n state: \"Estado\",\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n created: \"Creada\",\n lastLogin: \"Último inicio de sesión\",\n never: \"Nunca\",\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones para ${name}`,\n },\n roleSelect: {\n label: \"Rol\",\n rolesLegend: \"Roles\",\n roleOf: (name) => `Rol de ${name}`,\n lockedLastAdmin: \"La última cuenta de administrador activa conserva este rol.\",\n lockedSelf: \"No puede cambiar su propio rol.\",\n notForLastAdmin: \"no para el último administrador\",\n notForSelf: \"no para su propia cuenta\",\n unavailable: (role, reason) => `${role} (${reason})`,\n },\n reviewerScope: {\n languages: \"Idiomas\",\n hint: \"Marque los idiomas que revisa esta persona.\",\n none: \"Ningún idioma: al guardar se retira el rol de revisor.\",\n areas: \"Limitar a\",\n legalOnly: \"Solo las páginas legales\",\n legalOnlyHint:\n \"Aviso legal, política de privacidad y condiciones de uso: para un abogado más que para un hablante nativo.\",\n failed: \"No se pudo guardar el ámbito de revisión. Inténtelo de nuevo.\",\n },\n adminAction: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n close: \"Cerrar\",\n lastAdmin: \"Esta es la última cuenta de administrador activa. Primero haga administrador a otra persona.\",\n self: \"No puede hacer esto con su propia cuenta.\",\n confirmationMismatch: \"La dirección no coincide con esta cuenta. Compruebe en qué cuenta está.\",\n otherCompanies:\n \"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.\",\n removeFromCompany: \"Quitar de la empresa\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n adminActionLog: {\n title: \"Acciones de administración\",\n empty: \"Aún no hay acciones de administración.\",\n loading: \"Cargando…\",\n by: (actor) => `por ${actor}`,\n bySelf: \"por la propia persona\",\n automatic: \"automáticamente\",\n erased: \"una cuenta borrada\",\n filteredTo: (target) => `Solo ${target}`,\n showAll: \"Mostrar todas las acciones\",\n filterBy: (target) => `Mostrar solo las acciones sobre ${target}`,\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n actions: {\n deactivate: \"Desactivada\",\n reactivate: \"Reactivada\",\n role: \"Rol cambiado\",\n password_change_require: \"Nueva contraseña exigida\",\n password_change_withdraw: \"Exigencia de contraseña retirada\",\n mail_verification: \"Correo de confirmación enviado\",\n mail_reset: \"Correo de restablecimiento de contraseña enviado\",\n reviewer: \"Ámbito de revisión cambiado\",\n invite: \"Invitación enviada\",\n invite_resend: \"Invitación reenviada\",\n invite_revoke: \"Invitación retirada\",\n transfer: \"Trabajo traspasado\",\n deletion_request: \"Eliminación solicitada\",\n deletion_cancel: \"Eliminación cancelada\",\n erase: \"Cuenta borrada\",\n plan: \"Plan cambiado\",\n },\n // 0.34 (§11.5): whole phrases per noun. The group's own agree with the noun\n // (\"Empresa creada\"), a member's with \"cuenta\", as `actions` do. `team` is\n // Kurvenschmiede's \"equipo\"; `company` keeps `actions.membership_remove`'s string.\n renamedFromTo: (from, to) => `de ${from} a ${to}`,\n groupActions: {\n group: {\n group_create: \"Grupo creado\",\n group_rename: \"Grupo renombrado\",\n group_delete: \"Grupo eliminado\",\n group_deactivate: \"Grupo desactivado\",\n group_reactivate: \"Grupo reactivado\",\n membership_add: \"Añadida al grupo\",\n membership_role: \"Rol en el grupo cambiado\",\n membership_remove: \"Quitada del grupo\",\n deleted: \"un grupo eliminado\",\n },\n team: {\n group_create: \"Equipo creado\",\n group_rename: \"Equipo renombrado\",\n group_delete: \"Equipo eliminado\",\n group_deactivate: \"Equipo desactivado\",\n group_reactivate: \"Equipo reactivado\",\n membership_add: \"Añadida al equipo\",\n membership_role: \"Rol en el equipo cambiado\",\n membership_remove: \"Quitada del equipo\",\n deleted: \"un equipo eliminado\",\n },\n company: {\n group_create: \"Empresa creada\",\n group_rename: \"Empresa renombrada\",\n group_delete: \"Empresa eliminada\",\n group_deactivate: \"Empresa desactivada\",\n group_reactivate: \"Empresa reactivada\",\n membership_add: \"Añadida a la empresa\",\n membership_role: \"Rol en la empresa cambiado\",\n membership_remove: \"Quitada de la empresa\",\n deleted: \"una empresa eliminada\",\n },\n budget: {\n group_create: \"Presupuesto creado\",\n group_rename: \"Presupuesto renombrado\",\n group_delete: \"Presupuesto eliminado\",\n group_deactivate: \"Presupuesto desactivado\",\n group_reactivate: \"Presupuesto reactivado\",\n membership_add: \"Añadida al presupuesto\",\n membership_role: \"Rol en el presupuesto cambiado\",\n membership_remove: \"Quitada del presupuesto\",\n deleted: \"un presupuesto eliminado\",\n },\n },\n },\n transferOwnership: {\n title: (name) => `Traspasar el trabajo de ${name}`,\n body: \"Todo lo que posee esta cuenta pasa a la cuenta elegida, en un solo paso.\",\n recipient: \"Traspasar a\",\n choose: \"Elija una cuenta…\",\n chooseFirst: \"Elija quién recibe el trabajo\",\n confirm: \"Traspasar\",\n customer: \"cliente\",\n deactivated: \"desactivada\",\n self: \"la misma cuenta\",\n unavailable: (account, reason) => `${account} (${reason})`,\n noCandidates: \"Ninguna otra cuenta puede recibirlo.\",\n },\n invitations: {\n email: \"Dirección de correo electrónico\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n scope: \"Ámbito\",\n scopeNone: \"Ninguno\",\n language: \"Idioma de la invitación\",\n note: \"Nota\",\n invite: \"Invitar\",\n listTitle: \"Invitaciones\",\n empty: \"Todavía no se ha invitado a nadie.\",\n loading: \"Cargando…\",\n // Agreeing with \"invitación\" (feminine).\n status: { open: \"Pendiente\", accepted: \"Aceptada\", expired: \"Caducada\", revoked: \"Retirada\" },\n sent: (date) => `Enviada el ${date}`,\n expires: (date) => `Válida hasta el ${date}`,\n invitedBy: (name) => `por ${name}`,\n resend: (email) => `Enviar a ${email} un enlace nuevo`,\n copyLink: \"Copiar enlace de invitación\",\n revoke: (email) => `Retirar la invitación de ${email}`,\n consoleHint:\n \"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.\",\n linkReady: (email) => `El enlace de invitación para ${email}, que solo se muestra esta vez:`,\n notSent: (email) => `${email} está invitado, pero no se pudo enviar el correo. Reenvíelo.`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n characterCount: {\n count: (used, max) => `${n(used)} de ${n(max)} ${plural(max, \"carácter\", \"caracteres\")}`,\n remaining: (left) => (left === 1 ? \"Queda 1 carácter\" : `Quedan ${n(left)} caracteres`),\n limitReached: \"Límite de caracteres alcanzado\",\n },\n countrySelect: {\n country: \"País\",\n search: \"Buscar país\",\n others: \"Otros países\",\n },\n inlineEdit: {\n edit: (label) => `Editar ${label}`,\n failed: \"No se ha podido guardar el cambio.\",\n empty: \"Vacío\",\n },\n ibanInput: {\n format: \"Un IBAN empieza por un código de país de dos letras y dos dígitos de control.\",\n country: (code) => `«${code}» no es el código de país de un IBAN.`,\n length: (actual, expected) => `Un IBAN de este país tiene ${n(expected)} caracteres; este tiene ${n(actual)}.`,\n checksum: \"Los dígitos de control no coinciden: probablemente hay un carácter mal escrito.\",\n qrRequired: \"Este es un IBAN normal. Una factura QR requiere el QR-IBAN de la cuenta.\",\n qrNotAllowed: \"Este es un QR-IBAN, que solo recibe pagos de facturas QR. Introduzca el IBAN normal de la cuenta.\",\n },\n phoneInput: {\n countryCode: \"Prefijo del país\",\n other: \"Otro\",\n },\n columnMapper: {\n paste: \"Pegar una tabla\",\n pasteHint: \"Copie las filas de una hoja de cálculo y péguelas aquí, o suelte un archivo CSV o de texto.\",\n chooseFile: \"Elegir un archivo\",\n readError: (name) => `No se ha podido leer «${name}»`,\n headerRow: \"La primera línea contiene los nombres de las columnas\",\n summary: (columns, rows) =>\n `${n(columns)} ${plural(columns, \"columna\", \"columnas\")}, ${n(rows)} ${plural(rows, \"fila\", \"filas\")}`,\n // Fragments of the summary line. \"Separado por…\" would have to agree with a noun the\n // line does not name, so the separator is stated as a value.\n separatorSemicolon: \"separador: punto y coma\",\n separatorComma: \"separador: coma\",\n separatorTab: \"separador: tabulación\",\n separatorSpace: \"separador: espacio\",\n // The examples stay as written: they show the convention, not the reader's locale.\n decimalComma: \"coma decimal (1,5)\",\n decimalPoint: \"punto decimal (1.5)\",\n unreadCount: (count) =>\n count === 1 ? \"No se ha podido leer 1 línea\" : `No se han podido leer ${n(count)} líneas`,\n unreadLine: (line) => `No se pudo leer la línea ${line}`,\n unreadMore: (count) => `…y ${n(count)} más`,\n noRows: \"Ninguna línea de este texto se puede leer como una fila de la tabla.\",\n table: \"Columnas y sus funciones\",\n columnN: (column) => `Columna ${column}`,\n roleOf: (column) => `¿Qué contiene la columna «${column}»?`,\n ignore: \"Ignorar\",\n requiredRole: (role) => `${role} (obligatorio)`,\n requiredRoleShort: (role) => `${role} *`,\n previewOf: (shown, total) =>\n shown === 1 ? `La primera de ${n(total)} filas` : `Las primeras ${n(shown)} de ${n(total)} filas`,\n // `roles` arrives joined with \"o\" (\"Debe o Haber\").\n oneOf: (roles) => `${roles} (a elegir)`,\n // \"Falta\" + infinitive: no verb to agree with however many roles follow.\n missing: (roles) => `Falta asignar: ${roles}.`,\n },\n translationReview: {\n statusMissing: \"Falta\",\n statusUnreviewed: \"Sin revisar\",\n statusChanged: \"Cambiado desde la revisión\",\n statusNeedsChange: \"Requiere cambios\",\n statusApproved: \"Aprobado\",\n statusFilter: \"Estado\",\n all: \"Todos\",\n filterCount: (label, count) => `${label} · ${n(count)}`,\n source: \"Textos\",\n allSources: \"Todos los textos\",\n namespace: \"Área\",\n allNamespaces: \"Todas las áreas\",\n search: \"Buscar en claves y textos\",\n placeholdersOnly: (count) => `Solo problemas de marcadores (${n(count)})`,\n placeholderChip: \"Marcadores\",\n key: \"Clave\",\n statusColumn: \"Estado\",\n empty: \"Ningún texto coincide con estos filtros.\",\n missingText: \"Falta en este idioma\",\n progress: (approved, total) => `${n(approved)} de ${n(total)} ${plural(approved, \"aprobado\", \"aprobados\")}`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n locales: \"Idiomas\",\n approve: \"Aprobar\",\n flag: \"Requiere cambios\",\n suggest: \"Proponer traducción\",\n flagRow: \"Marcar para cambiar…\",\n suggestRow: \"Añadir una traducción…\",\n reset: \"Marcar como sin revisar\",\n cancel: \"Cancelar\",\n approveSelected: \"Aprobar la selección\",\n resetSelected: \"Marcar la selección como sin revisar\",\n selectShown: \"Seleccionar todo lo mostrado\",\n changedSince: \"Este texto cambió después de revisarse. Vuelva a leerlo, por favor.\",\n reviewedWording: \"Redacción al revisarse\",\n reviewedReference: \"Referencia al revisarse\",\n placeholderMismatch: (reference, text) =>\n `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.`,\n lastApproved: (name, date) => `Aprobado por ${name} el ${date}`,\n lastFlagged: (name, date) => `Marcado para cambiar por ${name} el ${date}`,\n erasedReviewer: \"una cuenta eliminada\",\n suggestion: \"Mejor redacción\",\n translation: \"Traducción\",\n note: \"Nota (opcional)\",\n notePlaceholder: \"Qué está mal o qué hay que tener en cuenta\",\n readOnly: \"Puede leer este idioma, pero no revisarlo.\",\n scope: (areas) => `Su revisión se limita a: ${areas}.`,\n exportCorrections: (count) => `Exportar correcciones (${n(count)})`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n approvedToast: (count) => (count === 1 ? \"Texto aprobado\" : `${n(count)} textos aprobados`),\n clearedToast: (count) =>\n count === 1 ? \"Texto marcado como sin revisar\" : `${n(count)} textos marcados como sin revisar`,\n // \"sin revisar\" does not agree with the count, so one form serves both.\n groupCount: (unreviewed, total) => `${n(unreviewed)} sin revisar / ${n(total)}`,\n approveGroup: (count) => `Aprobar los sin revisar (${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `¿Aprobar el texto sin revisar de «${group}»?`\n : `¿Aprobar los ${n(count)} textos sin revisar de «${group}», incluidos los que no están en pantalla?`,\n },\n // 0.31.0 — docs/settings-harmonization.md §4.3 and docs/landing-demo-harmonization.md\n // §4–§5: the settings shell, the landing page's generic words and the demo. The help\n // lines name things as `accountSettings`, `sessions` and `dataExport` do. \"Usted\".\n // \"Ajustes\" (es-ES), a countable noun: \"Ningún ajuste coincide…\".\n settings: {\n title: \"Ajustes\",\n search: \"Buscar en los ajustes\",\n searchPlaceholder: \"Buscar en los ajustes…\",\n results: \"Ajustes coincidentes\",\n noMatches: (query) => `Ningún ajuste coincide con «${query}».`,\n // As `commandPalette.clear`.\n clearSearch: \"Borrar búsqueda\",\n back: \"Volver a los ajustes\",\n sections: \"Secciones de los ajustes\",\n matchCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n groups: {\n appearance: {\n title: \"Apariencia\",\n help: \"Idioma, tema y aspecto de la aplicación en este dispositivo.\",\n },\n account: {\n title: \"Cuenta\",\n help: \"Su perfil y su dirección de correo electrónico.\",\n },\n security: {\n title: \"Seguridad\",\n help: \"Cómo inicia sesión, y en qué dispositivos tiene la sesión abierta.\",\n },\n notifications: {\n title: \"Notificaciones\",\n help: \"Qué notificaciones recibe, cuándo y en qué dispositivos.\",\n },\n data: {\n title: \"Datos\",\n help: \"Exporte lo que es suyo o elimínelo junto con su cuenta.\",\n },\n },\n },\n landing: {\n signIn: \"Iniciar sesión\",\n requestAccess: \"Solicitar acceso\",\n getStarted: \"Empezar\",\n tryDemo: \"Probar la demo\",\n openApp: \"Abrir la aplicación\",\n continueDemo: \"Continuar la demo\",\n beta: \"Beta\",\n // Plain text: a mail's subject and body lines, never HTML.\n accessSubject: (app) => (app ? `Acceso a ${app}` : \"Solicitud de acceso\"),\n accessName: \"Nombre:\",\n accessCompany: \"Empresa:\",\n accessUse: \"Uso previsto:\",\n },\n demo: {\n starting: \"Iniciando la demo…\",\n rateLimited: (minutes) =>\n minutes\n ? `Demasiadas demos desde esta red. Inténtelo de nuevo en ${n(minutes)} min.`\n : \"Demasiadas demos desde esta red. Inténtelo de nuevo más tarde.\",\n capacity: \"La demo está completa en este momento. Inténtelo de nuevo más tarde.\",\n unavailable: \"La demo no está disponible en este momento.\",\n failed: \"No se pudo iniciar la demo. Inténtelo de nuevo.\",\n // As `legal.backHome`.\n backToStart: \"Volver al inicio\",\n // Hours and minutes together are plural; minutes alone agree with the count.\n hoursLeft: (hours, minutes) => `Demo · quedan ${n(hours)} h ${n(minutes)} min`,\n minutesLeft: (minutes) => `Demo · ${plural(minutes, \"queda\", \"quedan\")} ${n(minutes)} min`,\n badge: \"Demo\",\n readOnly: \"Está viendo datos de ejemplo. No es posible hacer cambios.\",\n sandbox: \"Su propio trabajo se elimina cuando termina la demo.\",\n details: \"Detalles de la demo\",\n writeLocked: \"No es posible en la demo.\",\n endedTitle: \"La demo ha terminado\",\n endedReadOnly: \"Los datos de ejemplo se restablecen con regularidad.\",\n endedSandbox: \"Los datos de ejemplo se restablecen con regularidad; su propio trabajo en la demo se elimina.\",\n restart: \"Iniciar una nueva demo\",\n },\n // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: \"plan\" is what is bought\n // (Free, Pro), \"suscripción\" the standing arrangement and the settings group. \"Usted\".\n billing: {\n group: \"Suscripción\",\n plans: \"Planes\",\n interval: \"Periodo de facturación\",\n yearly: \"Anual\",\n monthly: \"Mensual\",\n // As `currency.currency`.\n currency: \"Moneda\",\n perYear: \"al año\",\n perMonth: \"al mes\",\n vatIncluded: \"IVA incluido\",\n free: \"Gratis\",\n notOffered: \"No disponible para este periodo de facturación\",\n // As `progressBar.unlimited`.\n unlimited: \"Ilimitado\",\n limits: \"Límites\",\n features: \"Incluido\",\n current: \"Plan actual\",\n choose: (plan) => `Elegir ${plan}`,\n upgrade: (plan) => `Mejorar a ${plan}`,\n downgrade: (plan) => `Cambiar a ${plan}`,\n isCurrent: \"Este es su plan actual.\",\n pickFirst: \"Elija primero un plan.\",\n // Agreeing with \"suscripción\"; \"caducada\", as `invitations.status.expired`.\n status: {\n trialing: \"Prueba\",\n active: \"Activa\",\n past_due: \"Pago vencido\",\n canceled: \"Cancelada\",\n expired: \"Caducada\",\n comped: \"De cortesía\",\n },\n trialEnding: (days) =>\n `Su periodo de prueba termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n grantEnding: (days) =>\n `Su acceso gratuito termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n paymentFailed: \"Su último pago no se ha completado. Actualice su método de pago para conservar su plan.\",\n planEnded:\n \"Su plan ha terminado. Puede seguir viendo y exportando todo; elija un plan para volver a hacer cambios.\",\n // Never why: the owner's payment status is the owner's personal data (§12.6).\n guestReadOnly: (item) =>\n item\n ? `«${item}» es de solo lectura por ahora; su propietario puede levantar esa restricción.`\n : \"Esto es de solo lectura por ahora; su propietario puede levantar esa restricción.\",\n processing: \"Su pago se está procesando. Su plan empieza en cuanto se confirme; esta página se actualiza sola.\",\n choosePlan: \"Elegir un plan\",\n updatePayment: \"Actualizar el método de pago\",\n // 0.42 (§16.7 A): for an admin who isn't the buyer.\n paymentFailedAskBuyer: (buyer) =>\n buyer\n ? `El pago no se ha completado. ${buyer} puede actualizar el método de pago.`\n : \"El pago no se ha completado. El administrador que contrató la suscripción puede actualizar el método de pago.\",\n checkAgain: \"Volver a comprobar\",\n lockReason: \"Su plan ha terminado. Elija un plan para volver a hacer cambios.\",\n // As `characterCount.limitReached` (\"Límite de caracteres alcanzado\").\n limitReached: \"Límite del plan alcanzado\",\n limitUpgrade: \"Para añadir más, elija un plan con un límite mayor.\",\n limitContact: \"Para añadir más, pídanos un límite mayor.\",\n askForMore: \"Pedir más\",\n // Both figures arrive formatted; \"de\", as `characterCount.count`.\n usage: (used, limit) => `${used} de ${limit}`,\n contactSubject: (dimension) => `Límite del plan: ${dimension}`,\n // The toast's figure line (§14.11) and the plan change's over-limit lines (§14.12).\n limitUsageLine: (dimension, used, limit) => `${dimension}: ${used} de ${limit}`,\n manage: \"Pagos y facturas\",\n cancel: \"Cancelar la suscripción\",\n // §14.5: no customer at the provider yet, so no portal to open.\n notAtProvider:\n \"Todavía no hay nada que gestionar. Los pagos y las facturas aparecerán aquí cuando tenga un plan de pago.\",\n // §14.4: the pay page's lines, built into its bundle. \"Usted\".\n payOpening: \"Abriendo el pago seguro…\",\n payNothing: \"Aquí no hay nada que pagar. Para elegir un plan, vuelva a la aplicación.\",\n payFailed: \"No se ha podido abrir el pago. Vuelva atrás e inténtelo de nuevo en un momento.\",\n payBack: \"El pago se ha cerrado. Puede volver atrás o recargar esta página para abrirlo de nuevo.\",\n payDone: \"Pago completado. Puede cerrar esta página.\",\n // 0.39 (§15.2.10): PlanSwitchConfirm.\n switchTitle: \"Cambiar de plan\",\n switchFromTo: (from, to) => `De ${from} a ${to}`,\n switchChargedNow: \"Cargo ahora\",\n switchCredited: \"Abonado a sus próximos cargos\",\n switchNextCharge: (date) => `Próximo cargo el ${date}`,\n switchConfirm: \"Cambiar de plan\",\n // 0.42 (§16): the portal for the buyer only, the in-app cancel, the grant warning.\n buyerHolds: (buyer) =>\n buyer\n ? `El método de pago y las facturas los gestiona ${buyer}, que contrató la suscripción.`\n : \"El método de pago y las facturas los gestiona el administrador que contrató la suscripción.\",\n cancelConfirmTitle: \"Cancelar la suscripción\",\n cancelConfirmBody: (date) => `Su suscripción termina el ${date}. Hasta entonces, todo funciona como antes.`,\n cancelConfirmAction: \"Cancelar ahora la suscripción\",\n keepSubscription: \"Mantener la suscripción\",\n portalOpensNewTab: (provider, app) =>\n `Los pagos y las facturas se abren en ${provider} en una pestaña nueva; ${app ? `${app} sigue abierto aquí` : \"esta página sigue abierta\"}.`,\n grantWarningTitle: \"Su acceso gratuito continúa\",\n grantWarningBody:\n \"Su acceso gratuito no tiene fecha de fin. Mientras dure, una compra no cambia su plan: pagaría por un plan que no se aplica.\",\n grantWarningAction: \"Comprar de todos modos\",\n waitingChanges: (count) => `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de un plan`,\n // \"Descartar\", as `wizard.cancelConfirmLabel`.\n discardWaiting: \"Descartar los cambios en espera\",\n notConfigured: \"Los pagos aún no están configurados. Inténtelo de nuevo más tarde.\",\n disabled: \"Las suscripciones no están disponibles aquí.\",\n // §14.2: server-kit 0.7's refusals. \"Pagos y facturas\", as `manage`. \"Usted\".\n providerUnavailable:\n \"El proveedor de pagos no está disponible en este momento. Inténtelo de nuevo en un momento.\",\n alreadySubscribed: \"Ya tiene una suscripción. Cambie de plan más arriba.\",\n planNotSold: \"Este plan no está disponible para ese periodo de facturación o esa moneda. Elija otro.\",\n // 0.39 (§15.2.10): the plan switch's refusals.\n notSubscribed: \"No hay ninguna suscripción activa que cambiar. Elija un plan para suscribirse.\",\n planUnchanged: \"Ese ya es su plan. Elija otro plan u otro periodo de facturación.\",\n },\n // 0.33.0 — docs/billing-harmonization.md §14.12: the operator's plan parts, \"plan\" as\n // in `billing`. \"Usted\".\n planChange: {\n column: \"Plan\",\n title: \"Cambiar de plan\",\n confirm: \"Cambiar de plan\",\n plan: \"Plan\",\n current: (plan) => `Plan actual: ${plan}`,\n keepsItems: \"Un plan más pequeño solo impide crear más; no se elimina nada.\",\n until: \"Gratis hasta el\",\n untilHint: \"Déjelo vacío para que no tenga fin. Una beta en curso conserva su propio fin.\",\n needsChange: \"Elija otro plan o una fecha de fin.\",\n changed: (from, to) => `Plan cambiado de ${from} a ${to}.`,\n set: (to) => `Plan establecido en ${to}.`,\n keptBeta: \"La beta conserva su fin; solo ha cambiado el plan.\",\n untilDone: (date) => `Gratis hasta el ${date}.`,\n overLimit: \"Por encima del límite del nuevo plan: no se elimina nada, los elementos nuevos quedan bloqueados.\",\n // Figures formatted; \"de\", as `billing.usage`. The app's word follows the limit,\n // in its form (0.33.1): \"1 de 1 presupuesto\", \"1 de 5 presupuestos\".\n usageOf: (used, limit, dimension) => `${used} de ${limit} ${dimension}`,\n },\n // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in\n // the \"Apariencia\" group.\n appearance: {\n textSize: \"Tamaño del texto\",\n textSizeHelp: \"Letras más grandes y un diseño que les hace sitio.\",\n textSizes: { normal: \"Normal\", large: \"Grande\", xlarge: \"Muy grande\" },\n contrast: \"Contraste\",\n contrastHelp:\n \"El contraste aumentado oscurece los textos tenues y las líneas, y engrosa los marcos de foco. «Sistema» sigue el ajuste de este dispositivo.\",\n contrastModes: { system: \"Sistema\", standard: \"Estándar\", more: \"Aumentado\" },\n saveFailed: \"No se ha podido guardar en su cuenta. En este dispositivo se aplica igualmente.\",\n // 0.46: DateFormatSetting (keksdose's words where it has them).\n dateFormat: \"Formato de fecha\",\n dateFormatHelp:\n \"Cómo se escriben las fechas en toda la app. Independiente del idioma de la interfaz: puede leer la app en inglés y ver igualmente las fechas en formato alemán.\",\n dateFormatAuto: \"Seguir el idioma\",\n // 0.46: AccountMenuTextSize (keksdose live #426).\n textSmaller: \"Texto más pequeño\",\n textLarger: \"Texto más grande\",\n },\n // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the\n // last card of \"Apariencia\". \"Restablecer\", as a phone's own settings say it.\n deviceReset: {\n title: \"Restablecer este dispositivo\",\n description:\n \"Devuelve a sus valores predeterminados el aspecto de este dispositivo y la vista en que quedaron sus tablas y paneles. Su cuenta, sus datos y su inicio de sesión no se tocan.\",\n action: \"Restablecer los ajustes de este dispositivo\",\n confirmTitle: \"¿Restablecer los ajustes de este dispositivo?\",\n confirmBody:\n \"El tema, los colores, el tamaño del texto, el contraste y el idioma vuelven aquí a sus valores predeterminados, y las tablas y los paneles se abren como la primera vez. Si su cuenta tiene un idioma, un tamaño de texto o un contraste, este dispositivo vuelve a seguirlo. Su cuenta y sus otros dispositivos quedan como están.\",\n confirmAction: \"Restablecer\",\n done: \"Los ajustes de este dispositivo han vuelto a sus valores predeterminados.\",\n keywords: \"restablecer predeterminado valores dispositivo restaurar apariencia tablas diseño\",\n },\n rowActions: {\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones de ${name}`,\n confirmTitle: (action, name) => (name ? `¿${action} «${name}»?` : `¿${action}?`),\n confirmBody: \"Esta acción no se puede deshacer.\",\n },\n appShellMore: {\n more: \"Más\",\n moreTitle: \"Más páginas\",\n overview: \"Resumen\",\n },\n // 0.42.0 — docs/admin-harmonization.md §3.1: the admin area's shared words. \"Usted\",\n // as the rest of the catalogue.\n mailTestCard: {\n title: \"Correo de prueba\",\n description:\n \"Envía un correo a su propia dirección, por el mismo transporte con el que esta instalación envía todo su correo.\",\n transport: (backend) => `Transporte: ${backend}`,\n action: \"Enviarme un correo de prueba\",\n sent: (address) => `Enviado a ${address}. Revise la bandeja de entrada.`,\n console: \"El transporte de consola solo registra el correo; no se ha enviado nada.\",\n failed: \"No se pudo enviar. El registro del servidor tiene la respuesta del proveedor.\",\n rateLimited,\n keywords: \"correo prueba email e-mail transporte smtp resend consola enviar entrega\",\n },\n adminArea: {\n title: \"Administración\",\n waiting: (count) => `${n(count)} ${plural(count, \"pendiente\", \"pendientes\")}`,\n waitingLabel: (label, count) => `${label}, ${n(count)} ${plural(count, \"pendiente\", \"pendientes\")}`,\n forbiddenTitle: \"Solo para administradores\",\n forbiddenBody: (appName) =>\n `Aquí es donde los administradores gestionan ${appName}. Su cuenta no puede abrir esta página.`,\n forbiddenHome: \"Ir a la página de inicio\",\n forbiddenReviewer: \"Revisar traducciones\",\n sections: {\n overview: { title: \"Resumen\", help: \"Lo que está pendiente, de un vistazo.\" },\n users: { title: \"Usuarios\", help: \"Quién tiene una cuenta y qué puede hacer cada uno.\" },\n invitations: {\n title: \"Invitaciones\",\n help: \"Invite a personas por correo electrónico en su idioma; reenvíe o revoque las invitaciones aún pendientes.\",\n },\n billing: { title: \"Facturación\", help: \"El plan, el pago y las facturas.\" },\n activity: { title: \"Actividad\", help: \"Lo que hicieron los administradores, lo más reciente primero.\" },\n },\n tiles: {\n feedbackWaiting: \"Por clasificar\",\n deletionRequests: \"Solicitudes de eliminación\",\n invitationsPending: \"Invitaciones pendientes\",\n users: \"Usuarios\",\n usersNew: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")} en 7 días`,\n awaitingVerdict: \"Pendientes de veredicto\",\n awaitingVerdictHint: \"Respondidos, a la espera de que usted o quien lo informó confirme la solución\",\n releasedForWork: \"Listos para trabajar\",\n releasedForWorkHint: \"Listos, con revisión solicitada o en curso\",\n },\n overviewError: \"No se pudo cargar el resumen.\",\n retry: \"Reintentar\",\n tools: \"Herramientas\",\n },\n // 0.42.0 — docs/top-bar-harmonization.md §3.1: the top bar's shared parts; \"plan\" as\n // `billing`, \"usted\" as the rest of the catalogue.\n topBarParts: {\n tours: {\n menu: \"Visitas guiadas\",\n newDot: \"Visitas nuevas\",\n thisPage: \"En esta página\",\n newTours: \"Visitas nuevas\",\n allTours: \"Todas las visitas…\",\n badgeNew: \"Nuevo\",\n completed: \"Completada\",\n badgeUpdated: \"Actualizado\",\n updatedDot: \"Visitas actualizadas\",\n newAndUpdated: \"Nuevas y actualizadas\",\n },\n sync: {\n blocked: (count) =>\n `${n(count)} ${plural(count, \"cambio no se puede enviar\", \"cambios no se pueden enviar\")} desde este dispositivo`,\n offline: \"Sin conexión: los cambios se guardan en este dispositivo y se sincronizarán al volver a conectarse\",\n refused: \"El servidor rechazó la última sincronización\",\n syncing: \"Sincronizando…\",\n pending: (count) => `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de sincronizarse`,\n syncedAt: (time) => `Sincronizado a las ${time}`,\n idle: \"Al día\",\n syncHint: \"Toque para sincronizar ahora\",\n offlineHint: \"no hay nada que sincronizar sin conexión\",\n withHint: (state, hint) => `${state} — ${hint}`,\n scoped: (scope, state) => `${scope}: ${state}`,\n offlineShort: \"Sin conexión\",\n syncingShort: \"Sincronizando…\",\n waitingShort: (count) => `${n(count)} en espera`,\n refusedShort: \"Sin sincronizar\",\n offlineUnsaved: \"Sin conexión: los cambios no se pueden guardar hasta que vuelva a conectarse\",\n saving: \"Guardando…\",\n },\n dev: {\n menu: \"Herramientas de desarrollo\",\n overridesOn: \"Anulaciones activas\",\n roleHeading: \"Dev · rol\",\n plan: (value) => `Plan: ${value}`,\n planHeading: \"Dev · plan\",\n backTo: (role) => `Volver a ${role}`,\n billingOff: \"La facturación está desactivada en local: los planes no cambian nada\",\n },\n },\n // 0.45.0 — docs/local-first-harmonization.md §1.6 (`@eifi1/ui-kit/offline`): keksdose's\n // reviewed words (nav.logout_queued_*, pwa.*) where it has the language.\n signOutPending: {\n title: \"Algunos cambios aún no se han guardado en el servidor\",\n lost: (count) =>\n count === 1\n ? `${n(count)} cambio sigue pendiente de sincronizar. Al cerrar sesión se borra la copia de este dispositivo, y es la única.`\n : `${n(count)} cambios siguen pendientes de sincronizar. Al cerrar sesión se borra la copia de este dispositivo, y es la única.`,\n kept: (count) =>\n count === 1\n ? `${n(count)} cambio sigue pendiente de sincronizar. Se queda en este dispositivo para usted y se sincronizará la próxima vez que inicie sesión aquí.`\n : `${n(count)} cambios siguen pendientes de sincronizar. Se quedan en este dispositivo para usted y se sincronizarán la próxima vez que inicie sesión aquí.`,\n syncNow: \"Sincronizar ahora\",\n signOutAnyway: \"Cerrar sesión de todos modos\",\n discardWaiting: \"Descartar los cambios en espera\",\n cancel: \"Cancelar\",\n },\n pwaUpdate: {\n updateAvailable: \"Hay una nueva versión disponible.\",\n reload: \"Recargar\",\n },\n sharedComputer: {\n label: \"Este es un ordenador compartido\",\n hint: \"No queda ninguna copia de sus datos en este dispositivo. Las páginas solo se abren entonces con conexión.\",\n },\n };\n}\n\nexport const UI_KIT_LABELS_ES: UiKitLabels = uiKitLabelsEs();\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/i18n/locales/es.ts"],"sourcesContent":["import { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's words in Spanish: every namespace of {@link UiKitLabels}, for\n * `<UiKitProvider labels={UI_KIT_LABELS_ES}>`.\n *\n * Self-contained on purpose — nothing but the kit's own `formatFileSize` — so it works\n * as a starting point to copy and adjust. Counts and sizes are formatted with\n * `es-ES` digits; {@link uiKitLabelsEs} takes another number locale\n * (e.g. `\"de-CH\"` for 1’234) without touching the words.\n */\nexport function uiKitLabelsEs(numberLocale = \"es-ES\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);\n // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in\n // src/auth/auth-errors-labels.ts: no wait → \"un momento\", under a minute → seconds, else\n // minutes rounded up.\n const wait = (seconds: number) => (seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`);\n const rateLimited = (seconds?: number) =>\n !seconds || seconds <= 0\n ? \"Demasiados intentos. Espere un momento e inténtelo de nuevo.\"\n : `Demasiados intentos. Inténtelo de nuevo en ${wait(seconds)}.`;\n // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:\n // 0 (or less) is today, 1 tomorrow.\n const inDays = (days: number) =>\n days <= 0 ? \"hoy\" : days === 1 ? \"mañana\" : `dentro de ${n(days)} ${plural(days, \"día\", \"días\")}`;\n\n return {\n feedbackAttachment: {\n attachmentAdd: \"Añadir adjunto\",\n attachmentCapture: \"Capturar pantalla\",\n attachmentPaste:\n \"…o pegue una captura de pantalla directamente desde el portapapeles, para mostrar solo un detalle en lugar de toda la página.\",\n attachmentRemove: \"Quitar adjunto\",\n attachmentList: \"Adjuntos\",\n attachmentScreenshot: \"Captura de pantalla\",\n attachmentRemoveFile: (name) => `Quitar ${name}`,\n attachmentLimit: (max) =>\n max === 1\n ? `Máximo ${n(max)} adjunto: quítelo para añadir otro.`\n : `Máximo ${n(max)} adjuntos: quite uno para añadir otro.`,\n attachmentUploading: \"Subiendo…\",\n attachmentUploadFailed: (name) => `No se ha podido subir «${name}»`,\n },\n feedbackDialog: {\n title: \"Enviar comentarios\",\n category: \"Categoría\",\n subject: \"Asunto\",\n body: \"¿Qué ha pasado?\",\n bodyOptional: \"¿Qué ha pasado? (opcional)\",\n attachment: \"Adjunto\",\n submitHint: (apple) => (apple ? \"⌘ Intro para enviar\" : \"Ctrl+Intro para enviar\"),\n cancel: \"Cancelar\",\n save: \"Enviar\",\n publicNotice: \"Otras personas verán el título y el texto (nunca sus capturas ni sus archivos).\",\n },\n feedbackThread: {\n thread: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n loading: \"Cargando comentarios…\",\n you: \"Usted\",\n staff: \"Equipo\",\n attachments: \"Adjuntos\",\n },\n feedbackComposer: {\n field: \"Escriba un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Enviar\",\n sendHint: (modifier) => `${modifier} + Intro para enviar`,\n sendHintEnter: \"Intro para enviar, Mayús + Intro para una nueva línea\",\n },\n // 0.27.0. \"Comentarios\" for feedback, as `feedbackDialog`; \"corrección\" for rework.\n feedbackStatus: {\n OPEN: \"Abierto\",\n READY: \"Listo para implementar\",\n REWORK: \"Corrección solicitada\",\n IN_PROGRESS: \"En curso\",\n IN_EVALUATION: \"En evaluación\",\n NEEDS_LIVE_TEST: \"Probar en producción\",\n POSTPONED: \"Pospuesto\",\n DONE: \"Hecho\",\n WONT_DO: \"No se hará\",\n },\n feedbackCategory: {\n CRASH: \"Bloqueo\",\n BUG: \"Error\",\n IDEA: \"Idea\",\n QUESTION: \"Pregunta\",\n OTHER: \"Otro\",\n },\n feedbackToast: {\n submitted: \"¡Gracias por sus comentarios!\",\n submitFailed: \"No se han podido enviar los comentarios\",\n attachmentUnsupported: \"Solo se admiten imágenes, PDF o archivos de texto\",\n attachmentTooLarge: \"El archivo supera los 10 MB\",\n attachmentTooMany: (count) =>\n count === 1\n ? \"Solo cabe 1 adjunto: el resto se ha omitido.\"\n : `Solo caben ${n(count)} adjuntos: el resto se ha omitido.`,\n captureFailed: \"No se ha podido capturar la pantalla\",\n updateFailed: \"No se ha podido guardar el cambio.\",\n statusChanged: (status, title) => `Cambiado a «${status}»: ${title}`,\n statusUndo: \"Deshacer\",\n statusRestored: (status, title) => `De vuelta a «${status}»: ${title}`,\n commentFailed: \"No se ha podido publicar el comentario.\",\n voteFailed: \"No se ha podido guardar su voto.\",\n replyFailed: \"No se ha podido enviar la respuesta.\",\n },\n feedbackMenu: {\n trigger: \"Enviar comentarios\",\n myFeedback: \"Mis comentarios\",\n discussion: \"Debate de comentarios\",\n inbox: \"Comentarios recibidos\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9: the public pages and the two feedback\n // notification types. \"Informe\" for one report, so it never reads as \"comentario\".\n feedbackPublic: {\n title: \"Debate de comentarios\",\n sort: \"Ordenar\",\n sortNewest: \"Más recientes\",\n sortVotes: \"Más deseados\",\n sortUpdated: \"Actualizados recientemente\",\n search: \"Buscar en los títulos\",\n columnVotes: \"Votos\",\n total: (count) => `${n(count)} ${plural(count, \"informe\", \"informes\")}`,\n comments: (count) => `${n(count)} ${plural(count, \"comentario\", \"comentarios\")}`,\n votes: (count) => `${n(count)} ${plural(count, \"voto\", \"votos\")}`,\n anonymous: \"Una persona\",\n filedBy: (name) => `De ${name}`,\n body: \"Descripción\",\n conversation: \"Respuestas y comentarios\",\n loading: \"Cargando…\",\n empty: \"Todavía no hay informes\",\n visibleToOthers: \"Visible para otras personas\",\n visibleHint: \"Otras personas ven el título y el texto, nunca sus capturas ni sus archivos.\",\n visibleLocked: \"Solo mientras el informe siga abierto.\",\n page: (page) => `Página ${n(page)}`,\n },\n feedbackNotificationTypes: {\n answered: \"Respuestas a sus informes\",\n answeredDescription: \"Cuando un informe que usted escribió o comentó recibe una respuesta.\",\n comment: \"Comentarios en informes que sigue\",\n commentDescription: \"Cuando alguien comenta un informe que usted escribió o comentó.\",\n received: \"Nuevos informes y revisiones\",\n receivedDescription: \"Cuando alguien envía un informe o devuelve uno.\",\n adminGroup: \"Admin\",\n },\n feedbackContext: {\n user: \"Usuario\",\n attachUrl: \"Adjuntar la URL de la página actual\",\n diagnostics: \"Diagnóstico enviado con el informe\",\n },\n feedbackPage: {\n title: \"Comentarios recibidos\",\n myTitle: \"Mis comentarios\",\n columnId: \"#\",\n columnDate: \"Fecha\",\n columnCategory: \"Categoría\",\n columnSubject: \"Asunto\",\n columnUser: \"Usuario\",\n columnEmail: \"Correo electrónico\",\n columnUrl: \"URL\",\n columnStatus: \"Estado\",\n columnResolved: \"Resuelto el\",\n openPage: \"Abrir página\",\n empty: \"Ninguno\",\n deletedUser: \"<usuario eliminado>\",\n // An id, not a count: printed as it is, like the \"#\" column.\n userFallback: (id) => `usuario #${id}`,\n environment: (environment) => String(environment ?? \"\").toUpperCase(),\n reworkChip: (count) => (count === 1 ? \"Corrección\" : `Corrección ×${n(count)}`),\n awaitingFilter: \"Solo lo que está pendiente de usted\",\n phoneActions: \"Acciones de comentarios\",\n },\n feedbackDetail: {\n subject: \"Asunto\",\n body: \"Descripción\",\n edit: \"Editar\",\n editDescription: \"Editar descripción\",\n save: \"Guardar\",\n cancel: \"Cancelar\",\n url: \"URL\",\n copyUrl: \"Copiar URL\",\n diagnostics: \"Diagnóstico\",\n attachment: \"Adjunto\",\n download: (name) => `Descargar ${name}`,\n downloadFailed: \"No se ha podido descargar el adjunto.\",\n outcome: \"Resultado\",\n replies: \"Respuestas\",\n resolvedAt: (date) => `Resuelto el ${date}`,\n rework: \"Corrección\",\n reworkTitle: \"Devolver para corrección\",\n reworkSend: \"Solicitar corrección\",\n reworkPlaceholder: \"¿Qué falta por pulir? Nuevos requisitos o cambios de rumbo.\",\n reworkUploadFailed: \"No se ha podido subir el archivo. La solicitud de corrección no se ha enviado.\",\n status: \"Estado\",\n note: \"Nota\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9.15: the vote, the comment thread, the replies.\n feedbackVote: {\n vote: \"Yo también lo quiero\",\n own: \"Su informe\",\n },\n feedbackComments: {\n comments: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n hidden: \"Ocultado por un administrador\",\n hide: \"Ocultar\",\n unhide: \"Mostrar\",\n delete: \"Eliminar\",\n deleteTitle: \"¿Eliminar este comentario?\",\n deleteBody: \"Se eliminará para todos. No se puede deshacer.\",\n field: \"Escribir un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Comentar\",\n },\n feedbackReplies: {\n replies: \"Respuestas\",\n empty: \"Aún no hay respuesta\",\n admin: \"Admin\",\n statusChanged: \"Estado cambiado a\",\n field: \"Escribir una respuesta\",\n placeholder: \"Escriba una respuesta…\",\n reply: \"Responder\",\n status: \"Estado con la respuesta\",\n noChange: \"Sin cambios\",\n nudge: \"No se ha avisado a quien lo informó. Añada una respuesta.\",\n },\n accountSettings: {\n profile: {\n title: \"Perfil\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n memberSince: \"Miembro desde\",\n displayName: \"Nombre visible\",\n save: \"Guardar\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n nameRequired: \"Introduzca el nombre y los apellidos.\",\n },\n password: {\n title: \"Cambiar contraseña\",\n current: \"Contraseña actual\",\n next: \"Nueva contraseña\",\n confirm: \"Confirmar nueva contraseña\",\n submit: \"Cambiar contraseña\",\n tooShort: \"La nueva contraseña es demasiado corta.\",\n mismatch: \"Las contraseñas no coinciden.\",\n wrongPassword: \"La contraseña no es correcta.\",\n },\n twoFactor: {\n status: \"Verificación en dos pasos\",\n enabledText: \"Activada\",\n disabledText: \"Desactivada\",\n enable: \"Configurar la verificación en dos pasos\",\n scanHint: \"Escanee este código con su app de autenticación e introduzca el código que muestra.\",\n codeLabel: \"Código de verificación\",\n verify: \"Verificar y activar\",\n disableSection: \"Desactivar la verificación en dos pasos\",\n password: \"Contraseña actual\",\n disable: \"Desactivar\",\n qrAlt: \"Código QR para su app de autenticación\",\n secretHint: \"¿No puede escanearlo? Introduzca esta clave en la app:\",\n copySecret: \"Copiar clave\",\n // 0.31.0: the card's title; the state (\"Activada\") stands beside it.\n title: \"Verificación en dos pasos\",\n },\n passkeys: {\n title: \"Llaves de acceso\",\n description: \"Inicie sesión con su huella, su cara o el PIN del dispositivo en lugar de una contraseña.\",\n descriptionAlongside:\n \"Inicie sesión con su huella, su cara o el PIN del dispositivo. Su contraseña sigue funcionando.\",\n empty: \"Aún no hay llaves de acceso\",\n loading: \"Cargando llaves de acceso…\",\n list: \"Sus llaves de acceso\",\n nameLabel: \"Nombre (opcional)\",\n namePlaceholder: \"p. ej. Portátil, Móvil\",\n add: \"Añadir llave de acceso\",\n adding: \"Esperando al dispositivo…\",\n rename: \"Cambiar nombre\",\n renameItem: (name) => `Cambiar nombre de ${name}`,\n renameField: (name) => `Nuevo nombre para ${name}`,\n save: \"Guardar\",\n cancel: \"Cancelar\",\n delete: \"Eliminar\",\n deleteItem: (name) => `Eliminar ${name}`,\n deleteConfirm: (name) => `¿Eliminar «${name}»? Ya no podrá iniciar sesión con ella.`,\n confirmDelete: \"Eliminar llave de acceso\",\n created: (date) => `Añadida el ${date}`,\n lastUsed: (date) => `Último uso: ${date}`,\n neverUsed: \"Nunca usada\",\n },\n },\n measuredGrid: {\n view: \"Vista de tabla\",\n cellsView: \"Celdas\",\n textView: \"Texto\",\n addRow: \"Añadir fila\",\n removeRow: (row) => `Quitar la fila ${row}`,\n clear: \"Vaciar tabla\",\n pasteHint: \"Pegue un bloque de una hoja de cálculo en cualquier celda\",\n cell: (column, row) => `${column}, fila ${row}`,\n rowNumber: \"Fila\",\n rowActions: \"Acciones de fila\",\n keyboardHint:\n \"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.\",\n lineError: (line) => `No se pudo leer la línea ${line}`,\n points: (count) => (count === 1 ? \"1 punto\" : `${n(count)} puntos`),\n problems: (count) => (count === 1 ? \"1 celda no es un número\" : `${n(count)} celdas no son números`),\n },\n pageContents: { title: \"En esta página\" },\n common: {\n dismiss: \"Cerrar\",\n close: \"Cerrar\",\n clear: \"Borrar\",\n search: \"Buscar\",\n done: \"Listo\",\n cancel: \"Cancelar\",\n save: \"Guardar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n remove: \"Quitar\",\n loading: \"Cargando…\",\n noResults: \"Sin resultados\",\n fieldValue: (field, value) => `${field}: ${value}`,\n opensInNewTab: \"se abre en una pestaña nueva\",\n aboutField: (field) => `Acerca de «${field}»`,\n help: \"Ayuda\",\n showMore: \"Más\",\n showLess: \"Menos\",\n },\n dataTable: {\n columns: \"Columnas\",\n selectAllRows: \"Seleccionar todas las filas\",\n sortHint: \"Haga clic para ordenar · Mayús+clic para añadir un criterio\",\n filter: \"Filtrar\",\n close: \"Cerrar\",\n selectRow: \"Seleccionar fila\",\n selectRows: \"Seleccionar filas\",\n cancelSelection: \"Cancelar\",\n rowDetails: \"Detalles\",\n autoSize: \"Ajustar ancho de columnas\",\n hiddenForWidth: \"oculta por falta de espacio\",\n loading: \"Cargando…\",\n filters: \"Filtros\",\n clearAll: \"Borrar todo\",\n done: \"Listo\",\n pageSize: \"Filas por página\",\n pageSizeAll: \"Todas\",\n prevPage: \"Página anterior\",\n nextPage: \"Página siguiente\",\n clearFilter: \"Borrar filtro\",\n filterPlaceholder: \"Filtrar…\",\n selectFilter: \"Seleccionar\",\n selectAll: \"Todos\",\n selectNone: \"Ninguno\",\n dateFrom: \"Desde\",\n dateTo: \"Hasta\",\n numberMin: \"Mín.\",\n numberMax: \"Máx.\",\n numberAbs: \"Valor absoluto\",\n presets: {\n today: \"Hoy\",\n yesterday: \"Ayer\",\n this_week: \"Esta semana\",\n last_week: \"Semana pasada\",\n last_7_days: \"Últimos 7 días\",\n last_30_days: \"Últimos 30 días\",\n this_month: \"Este mes\",\n last_month: \"Mes pasado\",\n last_3_months: \"Últimos 3 meses\",\n ytd: \"En lo que va de año\",\n last_year: \"Año pasado\",\n },\n table: \"Tabla de datos\",\n filterResults: (shown, total) => `${n(shown)} de ${n(total)} ${plural(total, \"fila\", \"filas\")}`,\n sortedAscending: (column) => `Ordenado por ${column}, ascendente`,\n sortedDescending: (column) => `Ordenado por ${column}, descendente`,\n sortCleared: (column) => `Orden por ${column} eliminado`,\n pageChanged: (page, totalPages) => `Página ${n(page)} de ${n(totalPages)}`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `Columnas (${n(visible)}/${n(total)})`,\n filterColumn: (column, active) => (active ? `Filtrar ${column} (activo)` : `Filtrar ${column}`),\n empty: \"No hay entradas\",\n actions: \"Acciones\",\n edit: \"Editar\",\n delete: \"Eliminar\",\n booleanTrue: \"Sí\",\n booleanFalse: \"No\",\n booleanUnset: \"Sin definir\",\n loadMore: \"Cargar más\",\n allLoaded: \"Todas las filas cargadas\",\n sortBy: \"Ordenar por\",\n sortDefault: \"Orden predeterminado\",\n sortAscending: \"Ascendente\",\n sortDescending: \"Descendente\",\n },\n miniCalendar: {\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n // Already formatted in the provider's locale (\"lunes, 14 de septiembre de 2026\").\n day: (date) => date,\n chooseStart: \"Elija una fecha de inicio\",\n chooseEnd: \"Elija una fecha de fin\",\n // \"Fecha\" is feminine; the date follows a label rather than being the subject of\n // a participle it cannot agree with.\n startSelected: (date) => `Fecha de inicio: ${date}. Elija una fecha de fin.`,\n rangeSelected: (from, to) =>\n `Periodo seleccionado: del ${from} al ${to}. Elija una fecha de inicio para empezar de nuevo.`,\n },\n monthPicker: {\n previousYear: \"Año anterior\",\n nextYear: \"Año siguiente\",\n panel: \"Elegir un mes\",\n month: (monthYear) => monthYear,\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n today: \"Hoy\",\n yearPanel: \"Elegir un año\",\n earlierYears: \"Años anteriores\",\n laterYears: \"Años posteriores\",\n thisYear: \"Este año\",\n },\n calendarHeatmap: {\n grid: \"Valores diarios\",\n day: (date, value) => `${date}: ${value}`,\n less: \"Menos\",\n more: \"Más\",\n truncated: (count) =>\n `Se muestran los días más recientes; ${count === 1 ? \"no se muestra 1 día anterior\" : `no se muestran ${n(count)} días anteriores`}.`,\n },\n datePicker: {\n apply: \"Aplicar\",\n cancel: \"Cancelar\",\n presets: \"Rangos rápidos\",\n panel: \"Elegir una fecha\",\n rangePanel: \"Elegir un intervalo de fechas\",\n clear: \"Borrar\",\n previousDay: \"Día anterior\",\n nextDay: \"Día siguiente\",\n today: \"Hoy\",\n },\n popover: {\n panel: \"Ventana emergente\",\n },\n combobox: {\n search: \"Buscar\",\n noResults: \"Sin resultados\",\n clear: \"Borrar\",\n loading: \"Cargando…\",\n create: (query) => `Crear «${query}»`,\n selectedCount: (count) => `${n(count)} ${plural(count, \"seleccionado\", \"seleccionados\")}`,\n loadError: \"No se han podido cargar los resultados\",\n resultCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n minChars: (count) => `Escriba al menos ${n(count)} ${plural(count, \"carácter\", \"caracteres\")}`,\n },\n multiSelect: {\n search: \"Buscar\",\n selectAll: \"Seleccionar todo\",\n clear: \"Borrar\",\n all: \"Todos\",\n // The bare count, as in English: the trigger has always shown just the number.\n selectedCount: (count) => n(count),\n },\n calculator: {\n open: \"Abrir calculadora\",\n panel: \"Calculadora\",\n calculation: \"Cálculo\",\n backspace: \"Retroceso\",\n clear: \"Borrar\",\n equals: \"Igual\",\n done: \"Listo\",\n plus: \"Más\",\n minus: \"Menos\",\n times: \"Por\",\n divide: \"Entre\",\n decimal: \"Separador decimal\",\n },\n currency: {\n currency: \"Moneda\",\n search: \"Buscar moneda\",\n },\n chipInput: {\n added: (value) => `«${value}» añadido`,\n removed: (value) => `«${value}» quitado`,\n remove: \"Quitar\",\n atLimit: (max) => `Límite de ${n(max)} ${plural(max, \"elemento\", \"elementos\")} alcanzado`,\n duplicate: (value) => `«${value}» ya está en la lista`,\n },\n swatchPicker: {\n none: \"Sin color\",\n mixed: \"Mixto: los elementos seleccionados tienen colores distintos\",\n },\n iconPicker: {\n none: \"Sin icono\",\n mixed: \"Mixto: los elementos seleccionados tienen iconos distintos\",\n search: \"Buscar iconos\",\n noResults: \"Ningún icono coincide\",\n resultCount: (count) => `${n(count)} ${plural(count, \"icono\", \"iconos\")}`,\n },\n passwordReveal: {\n show: \"Mostrar contraseña\",\n hide: \"Ocultar contraseña\",\n },\n dangerConfirm: {\n arm: \"Eliminar…\",\n confirm: \"Eliminar\",\n cancel: \"Cancelar\",\n prompt: \"Esta acción no se puede deshacer.\",\n password: \"Contraseña\",\n phrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n acknowledge: \"He leído lo que hace esta acción y deseo continuar.\",\n needsPhrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n needsAcknowledge: \"Marque la casilla para confirmar\",\n needsPassword: \"Introduzca su contraseña para confirmar\",\n },\n tabs: {\n add: \"Añadir pestaña\",\n remove: (tab) => `Quitar ${tab}`,\n more: \"Más pestañas\",\n previous: \"Pestañas anteriores\",\n },\n appShell: {\n collapse: \"Contraer barra lateral\",\n expand: \"Expandir barra lateral\",\n toggleGroup: (groupLabel) => `${groupLabel}: páginas`,\n },\n topBar: {\n theme: \"Cambiar de tema\",\n palette: \"Ajuste de apariencia\",\n language: \"Idioma\",\n languageCurrent: (name) => `Elegir idioma, actual: ${name}`,\n role: (value) => `Rol: ${value}`,\n },\n pickerSheet: {\n close: \"Cerrar\",\n done: \"Listo\",\n },\n dialogFrame: {\n close: \"Cerrar\",\n },\n bulkActionBar: {\n selected: (count) => `${n(count)} ${count === 1 ? \"seleccionado\" : \"seleccionados\"}`,\n clear: \"Borrar selección\",\n cleared: \"Selección borrada\",\n },\n swipeableRow: {\n actions: \"Acciones de la fila\",\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale (\"3,4 MB\").\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n dropzone: \"Carga de archivos\",\n browse: \"Examinar\",\n empty: \"Suelte un archivo aquí\",\n emptyMultiple: \"Suelte archivos aquí\",\n hint: (accept) => (accept ? `Aceptados: ${accept}` : \"Cualquier tipo de archivo\"),\n busy: \"Subiendo…\",\n rejectedPick: (count) =>\n count === 1 ? \"El archivo no se añadió\" : `No se añadió ninguno de los ${n(count)} archivos`,\n rejectedType: (name) => `El tipo de archivo de «${name}» no es compatible`,\n rejectedTypeOnly: (accept) => `Solo archivos ${accept}`,\n rejectedSize: (name, maxSize) => `«${name}» supera ${maxSize}`,\n rejectedCount: (name, maxFiles) =>\n `«${name}» no se ha añadido: como máximo ${n(maxFiles)} ${plural(maxFiles, \"archivo\", \"archivos\")}`,\n rejectedInvalid: (name) => `«${name}» no se puede usar aquí`,\n rejectedMany: (count) => (count === 1 ? \"1 archivo no se ha añadido\" : `${n(count)} archivos no se han añadido`),\n selected: (count, firstName) =>\n count === 1 ? `«${firstName}» seleccionado` : `${n(count)} archivos seleccionados`,\n remove: (name) => `Quitar «${name}»`,\n clearAll: \"Quitar todos los archivos\",\n removed: (name) => `«${name}» quitado`,\n cleared: \"Se han quitado todos los archivos\",\n },\n camera: {\n takePhoto: \"Hacer foto\",\n choosePhoto: \"Añadir foto\",\n title: \"Cámara\",\n hint: \"Encuadre el motivo y pulse el disparador.\",\n starting: \"Iniciando la cámara…\",\n shutter: \"Hacer la foto\",\n taken: (count) => `${n(count)} ${plural(count, \"foto hecha\", \"fotos hechas\")}.`,\n done: (count) => `Usar ${n(count)} ${plural(count, \"foto\", \"fotos\")}`,\n },\n wizard: {\n done: \"Listo\",\n cancel: \"Cancelar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n skip: \"Omitir\",\n finish: \"Finalizar\",\n submitting: \"Creando…\",\n steps: \"Pasos\",\n step: (current, total) => `Paso ${n(current)} de ${n(total)}`,\n cancelTitle: \"¿Descartar este formulario?\",\n confirmCancel: \"Se perderán los datos introducidos.\",\n cancelConfirmLabel: \"Descartar\",\n cancelDismissLabel: \"Seguir editando\",\n reviewTitle: \"Revisión\",\n edit: \"Editar\",\n missingRequired: \"Rellene todos los campos obligatorios.\",\n genericError: \"Se ha producido un error\",\n },\n tour: {\n next: \"Siguiente\",\n back: \"Atrás\",\n skip: \"Omitir\",\n done: \"Listo\",\n awaitClickHint: \"Haga clic en el elemento resaltado para continuar\",\n awaitInputHint: \"Introduzca un valor en el campo resaltado para continuar\", // 0.46: TourStep.awaitInput (keksdose live #436).\n step: (current, total) => `${n(current)} / ${n(total)}`,\n // 0.50: guided form tours (docs/tours-harmonization.md §11).\n leaveEmpty: \"Dejar vacío\",\n optional: \"Opcional\",\n gateHint: \"Rellene el campo resaltado para continuar\",\n gateReady: \"Listo. Pulse Siguiente o Intro para continuar.\",\n awaitGateHint: \"Guarde para continuar\",\n awaitGateRefused: \"Todavía no se ha guardado. Revise el formulario e inténtelo de nuevo.\",\n backToStep: (title) => `Volver a «${title}»`,\n },\n // 0.50: the form's \"Guide me\" (TourGuideButton, docs/tours-harmonization.md §11).\n tourGuide: {\n label: \"Guíeme\",\n description: \"Le guía por este formulario, campo a campo\",\n },\n // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page.\n tourCatalogue: {\n searchLabel: \"Buscar visitas\",\n searchPlaceholder: \"Buscar visitas…\",\n groupLabel: \"Tema\",\n groupAll: (count) => `Todos los temas (${n(count)})`,\n groupOption: (group, count) => `${group} (${n(count)})`,\n stateLabel: \"Filtrar visitas\",\n stateAll: (count) => `Todas (${n(count)})`,\n stateTodo: (count) => `Pendientes (${n(count)})`,\n stateDone: (count) => `Completadas (${n(count)})`,\n showing: (shown, total) => `Mostrando ${n(shown)} de ${n(total)} visitas`,\n noMatches: \"Ninguna visita coincide\",\n noMatchesHint: \"Pruebe con otra palabra o borre los filtros.\",\n clearFilters: \"Borrar filtros\",\n badgeNew: \"Nuevo\",\n badgeUpdated: \"Actualizado\",\n resetOn: (date, reason) => (reason ? `Restablecida el ${date}: ${reason}` : `Restablecida el ${date}`),\n points: (count) => `+${n(count)} pts`,\n steps: (count) => (count === 1 ? `${n(count)} paso` : `${n(count)} pasos`),\n duration: (minutes) => `Unos ${n(minutes)} min`,\n completedOn: (date) => `Completada el ${date}`,\n completed: \"Completada\",\n notCompleted: \"No completada\",\n markUndone: \"Marcar como no completada\",\n start: \"Empezar\",\n replay: \"Repetir\",\n },\n commandPalette: {\n clear: \"Borrar búsqueda\",\n submit: \"Buscar\",\n close: \"Cerrar\",\n placeholder: \"Buscar…\",\n empty: \"Sin resultados\",\n loading: \"Buscando…\",\n dialog: \"Búsqueda\",\n error: \"La búsqueda ha fallado. Inténtelo de nuevo.\",\n },\n globalSearch: {\n trigger: \"Buscar\",\n placeholder: \"Buscar o ir a…\",\n shortcut: (keys) => `Buscar (${keys})`,\n suggestions: \"Pruebe\",\n results: \"Resultados\",\n },\n sparkline: {\n rising: (first, last) => `Sube de ${first} a ${last}`,\n falling: (first, last) => `Baja de ${first} a ${last}`,\n flat: (value) => `Estable en ${value}`,\n single: (value) => `Un único valor: ${value}`,\n noData: \"Sin datos\",\n named: (name, summary) => `${name}: ${summary}`,\n },\n statTile: {\n increase: (amount) => `Sube ${amount}`,\n decrease: (amount) => `Baja ${amount}`,\n unchanged: \"Sin cambios\",\n better: (change) => `${change} (favorable)`,\n worse: (change) => `${change} (desfavorable)`,\n noValue: \"Sin datos\",\n loading: \"Cargando…\",\n },\n signaturePad: {\n label: \"Firma\",\n instructions: \"Firme en el recuadro con el ratón, el dedo o un lápiz.\",\n typedFallbackHint: \"Si no puede dibujar, escriba su nombre.\",\n empty: \"Aún no hay nada dibujado\",\n signed: \"Firma dibujada\",\n undo: \"Deshacer el último trazo\",\n clear: \"Borrar\",\n save: \"Guardar firma\",\n useTyped: \"Escribir el nombre\",\n useDrawn: \"Dibujar la firma\",\n typedName: \"Nombre completo\",\n cleared: \"Firma borrada\",\n undone: \"Último trazo eliminado\",\n viewEmpty: \"Sin firmar\",\n viewDrawn: \"Firma manuscrita\",\n viewTyped: (name) => `Firmado con el nombre escrito ${name}`,\n },\n passwordStrength: {\n // Agrees with \"contraseña\" (feminine).\n tooShort: \"Demasiado corta\",\n weak: \"Débil\",\n fair: \"Aceptable\",\n good: \"Buena\",\n strong: \"Fuerte\",\n announcement: (level) => `Seguridad de la contraseña: ${level}`,\n // Unformatted, as in the English default.\n ruleLength: (minLength) => `Al menos ${n(minLength)} ${plural(minLength, \"carácter\", \"caracteres\")}`,\n ruleCase: \"Mayúsculas y minúsculas\",\n ruleDigit: \"Un número\",\n ruleSymbol: \"Un símbolo\",\n optional: (rule) => `${rule} (opcional)`,\n met: \"Cumplido:\",\n notMet: \"No cumplido:\",\n tooLong: (maxBytes) =>\n `Como máximo ${n(maxBytes)} ${plural(maxBytes, \"carácter\", \"caracteres\")} (las letras con tilde y los emojis cuentan como más de uno).`,\n },\n seriesChart: {\n resetZoom: \"Restablecer zoom\",\n zoomHint:\n \"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.\",\n empty: \"Sin datos\",\n legend: \"Series\",\n points: \"Valores del gráfico\",\n nameFromAxes: (ordinates, abscissa) => (abscissa ? `${ordinates} frente a ${abscissa}` : ordinates),\n },\n pieChart: {\n slices: \"Sectores del gráfico\",\n slice: (label, value, percent) => `${label}: ${value} (${percent})`,\n sliceShare: (label, percent) => `${label}: ${percent}`,\n total: \"Total\",\n empty: \"Sin datos\",\n legend: \"Categorías\",\n },\n treemap: {\n tile: (name, value, share) => `${name}: ${value}${share ? ` (${share})` : \"\"}`,\n group: (name, value, share) => `${name}, grupo: ${value}${share ? ` (${share})` : \"\"}`,\n inGroup: (name, group) => `${name}, en ${group}`,\n },\n confirmDialog: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n typed: (text) => `Escriba «${text}» para confirmar`,\n },\n floatingPanel: {\n close: \"Cerrar\",\n badge: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")}`,\n },\n copyButton: {\n copy: \"Copiar\",\n copied: \"Copiado\",\n failed: \"No se pudo copiar\",\n copiedAnnouncement: \"Copiado al portapapeles\",\n failedAnnouncement: \"No se pudo copiar al portapapeles\",\n },\n list: {\n unread: \"No leído\",\n opensInNewTab: \"se abre en una pestaña nueva\",\n showAll: (count) => `Mostrar todo (${n(count)})`,\n showFewer: \"Mostrar menos\",\n },\n breadcrumbs: {\n label: \"Ruta de navegación\",\n showAll: \"Mostrar la ruta completa\",\n },\n toast: {\n close: \"Cerrar notificación\",\n notifications: \"Notificaciones\",\n undo: \"Deshacer\",\n redo: \"Rehacer\",\n },\n form: {\n save: \"Guardar\",\n cancel: \"Cancelar\",\n submitShortcut: (apple) => (apple ? \"⌘ Intro\" : \"Ctrl+Intro\"),\n },\n descriptionList: {\n empty: \"—\",\n },\n lineItems: {\n add: \"Añadir fila\",\n remove: (row) => `Eliminar fila ${row}`,\n confirmRemove: (row) => `¿Eliminar fila ${row}? Pulse de nuevo para confirmar`,\n row: (row) => `Fila ${row}`,\n cell: (column, row) => `${column}, fila ${row}`,\n totals: \"Total\",\n },\n progressBar: {\n unlimited: \"Ilimitado\",\n overLimit: (amount) => `${amount} por encima del límite`,\n },\n signedAmount: {\n positive: (amount) => `más ${amount}`,\n negative: (amount) => `menos ${amount}`,\n },\n errorBoundary: {\n title: \"Algo salió mal\",\n message: \"No se pudo mostrar esta parte de la página. Inténtelo de nuevo o recargue la página.\",\n retry: \"Reintentar\",\n details: \"Detalles del error\",\n reload: \"Recargar\",\n updateTitle: \"Hay una nueva versión disponible\",\n updateMessage:\n \"Una parte de la aplicación ha cambiado desde que se cargó esta página. Recárguela para obtener la nueva versión.\",\n offlineTitle: \"Sin conexión\",\n offlineMessage: \"No se pudo cargar esta página sin conexión. Vuelva a conectarse y recargue la página.\",\n copyReport: \"Copiar informe de error\",\n reported: \"El error se ha notificado automáticamente.\",\n reportedAs: (reference) => `Notificado con la referencia ${reference}`,\n },\n authedImage: {\n loading: \"Cargando imagen…\",\n loadError: \"No se pudo cargar la imagen\",\n failedImage: (alt) => `${alt}: no se pudo cargar la imagen`,\n },\n imageGrid: {\n list: \"Imágenes\",\n item: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n actions: (name) => `Acciones para ${name}`,\n },\n lightbox: {\n dialog: \"Visor de imágenes\",\n close: \"Cerrar\",\n previous: \"Imagen anterior\",\n next: \"Imagen siguiente\",\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n download: \"Descargar\",\n zoom: \"Ampliar\",\n noPreview: \"No hay vista previa disponible para este archivo\",\n openInNewTab: \"Abrir en una pestaña nueva\",\n },\n writeLock: {\n reason: \"Puede verlo, pero no modificarlo.\",\n offline: \"Requiere conexión.\",\n },\n accountState: {\n // Agreeing with \"cuenta\" (feminine): the chip is the state of an account.\n active: \"Activa\",\n inactive: \"Inactiva\",\n invited: \"Invitación enviada\",\n registered: \"Registrada\",\n unverified: \"Sin verificar\",\n passwordChange: \"Debe cambiar la contraseña\",\n deletion: \"Eliminación solicitada\",\n deletionOn: (date) => `Eliminación el ${date}`,\n },\n shareCard: {\n dialogTitle: \"Compartir\",\n close: \"Cerrar\",\n email: \"Correo electrónico\",\n emailOptional: \"Correo electrónico (opcional)\",\n // example.com is reserved for examples (RFC 2606); a localised domain is real.\n emailPlaceholder: \"nombre@example.com\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n roleOf: (name) => `Rol de ${name}`,\n add: \"Compartir\",\n whoHasAccess: \"Quién tiene acceso\",\n nobodyYet: \"Nadie más tiene acceso todavía.\",\n pending: \"Pendiente\",\n openInvite: \"Enlace de invitación abierto\",\n copyLink: \"Copiar enlace\",\n team: \"Equipo\",\n teamHint: (name) => `Todos los miembros de ${name} tendrán acceso.`,\n remove: \"Quitar acceso\",\n removeConfirm: (name) => `¿Quitar el acceso a ${name}?`,\n revokePending: \"Retirar invitación\",\n revokePendingConfirm: (name) => `¿Retirar la invitación para ${name}?`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n loading: \"Cargando…\",\n },\n reauthDialog: {\n title: \"Confirme que es usted\",\n description: \"Introduzca su contraseña actual para continuar.\",\n password: \"Contraseña actual\",\n submit: \"Continuar\",\n cancel: \"Cancelar\",\n },\n serverWake: {\n slow: \"Sigue cargando: está tardando más de lo habitual.\",\n waking: (appName) =>\n `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.`,\n },\n // 0.28.0 — docs/legal-harmonization.md §4.3/§4.4: Kurvenschmiede's reviewed Spanish\n // (formal \"usted\"), brought into line with the kit's English; it goes back to\n // Kurvenschmiede for review.\n legal: {\n navLabel: \"Información legal\",\n links: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n security: \"Seguridad\",\n accessibility: \"Accesibilidad\",\n },\n titles: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n },\n backHome: \"Volver al inicio\",\n accept: \"Acepto las {terms} y la {privacy}\",\n notice: {\n beta: \"Beta cerrada. Estos textos aún no han sido revisados por un abogado y lo serán antes de un lanzamiento público.\",\n privacy:\n \"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.\",\n },\n translation: {\n note: (o) =>\n `Esta es una traducción ofrecida para su comodidad; solo la versión en ${o.bindingLanguage} es vinculante.`,\n show: (o) => `Ver la versión en ${o.bindingLanguage}`,\n },\n updated: (date) => `Última actualización: ${date}`,\n summary: {\n title: \"En resumen\",\n note: \"Este resumen es solo orientativo; únicamente el texto completo es vinculante.\",\n },\n sections: {\n impressum: {\n operator: {\n title: \"Responsable del sitio\",\n body: (o) =>\n `${o.name}\\n${o.postalCode} ${o.city}\\n${o.country}\\n\\nLa dirección postal completa se facilita, previa solicitud, a quien tenga un interés jurídico legítimo; escriba a la dirección de contacto indicada abajo.`,\n },\n contact: {\n title: \"Contacto\",\n body: (o) => `Correo electrónico: ${o.email}`,\n },\n disclaimer: {\n title: \"Responsabilidad por contenidos y enlaces\",\n body: \"Este es un proyecto privado y sin fines comerciales, que se ofrece sin garantía durante una beta cerrada. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). \"Plan\"\n // and \"suscripción\" as the `billing` namespace.\n commercial:\n \"Este es un servicio comercial. Los planes de pago los vende nuestro revendedor, que actúa como Merchant of Record: vende la suscripción en su propio nombre, cobra el pago, emite la factura y gestiona el IVA, y sus condiciones de venta se aplican a la compra. Procuramos que el contenido de este servicio sea correcto, pero no podemos garantizar que esté completo ni actualizado. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n },\n },\n privacy: {\n controller: {\n title: \"Responsable del tratamiento\",\n body: (o) =>\n `El responsable del tratamiento de los datos personales en este servicio es:\\n${o.name}\\n${o.postalCode} ${o.city}, ${o.country}\\nCorreo electrónico: ${o.email}\\n\\nLa dirección postal completa se facilita, previa solicitud, a los interesados y a las autoridades de control.`,\n },\n legal_basis: {\n title: \"Base jurídica\",\n 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).\",\n },\n browser: {\n title: \"Qué guarda su navegador\",\n lead: \"Ninguna cookie. La aplicación guarda lo siguiente en el almacenamiento de su navegador:\",\n 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.\",\n },\n rights: {\n title: \"Sus derechos\",\n lead: \"Tiene derecho de acceso, rectificación, supresión, limitación, portabilidad y oposición.\",\n tail: \"Si se encuentra en Suiza, puede dirigirse al Comisionado Federal de Protección de Datos e Información (FDPIC); si se encuentra en la UE, puede presentar una reclamación ante su autoridad de control local.\",\n },\n contact: {\n title: \"Contacto para la protección de datos\",\n body: (o) => `Para cualquier solicitud sobre privacidad, escriba a: ${o.email}`,\n },\n },\n terms: {\n warranty: {\n title: \"Sin garantía\",\n body: \"El servicio se ofrece «tal cual» y «según disponibilidad», sin garantías de ningún tipo, en la medida en que lo permita la ley. Al ser una beta, puede contener errores, cambiar o interrumpirse en cualquier momento; conserve usted mismo copias de seguridad de los datos importantes.\",\n },\n liability: {\n title: \"Limitación de responsabilidad\",\n body: \"En la medida en que lo permita la legislación aplicable, el operador no responde de los daños indirectos o consecuentes derivados del uso o de la imposibilidad de uso del servicio. Nada de lo aquí dispuesto limita la responsabilidad que la ley no permite limitar.\",\n },\n changes: {\n title: \"Cambios en estas condiciones\",\n body: \"Podemos actualizar estas condiciones a medida que evolucione el servicio. Anunciamos cualquier cambio importante al menos 30 días antes de que entre en vigor, por correo electrónico y en la aplicación, junto con el nuevo texto. Si no está de acuerdo, puede oponerse o eliminar su cuenta antes de esa fecha, y puede exportar sus datos hasta entonces. Si sigue usando el servicio después de esa fecha, se aplican las condiciones modificadas. Los cambios que solo le benefician, o que exige la ley, se aplican sin este preaviso y no admiten oposición. Si se opone a un cambio, podemos cerrar su cuenta en la fecha en que entre en vigor. Si ha pagado un periodo que va más allá de esa fecha, le reembolsamos la parte no utilizada.\",\n },\n language: {\n title: \"Idioma\",\n body: (o) =>\n `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}.`,\n },\n law: {\n title: \"Legislación aplicable\",\n body: (o) =>\n `Estas condiciones se rigen por el derecho suizo, con exclusión de sus normas de conflicto de leyes. En la medida en que lo permita la ley, el fuero competente es ${o.city} (${o.region}), ${o.country}.`,\n },\n },\n },\n },\n // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Spanish (auth.*,\n // notfound) where it says the same, brought into line with the kit's English and this\n // catalogue's words (\"Nueva contraseña\", \"verificación en dos pasos\"); written fresh\n // where Kurvenschmiede has no such text yet. Formal \"usted\". It goes back to\n // Kurvenschmiede for review.\n signIn: {\n email: \"Correo electrónico\",\n password: \"Contraseña\",\n submit: \"Iniciar sesión\",\n passkey: \"Iniciar sesión con una llave de acceso\",\n forgotPassword: \"¿Ha olvidado su contraseña?\",\n noAccount: \"¿Aún no tiene cuenta?\",\n register: \"Crear cuenta\",\n invalidCredentials: \"El correo electrónico o la contraseña no son correctos.\",\n failed: \"No se pudo iniciar sesión. Inténtelo de nuevo.\",\n passkeyFailed: \"No se pudo iniciar sesión con la llave de acceso.\",\n deactivatedHint: \"¿Cuenta desactivada? Escriba a {contact}.\",\n tagHint: (taggedAddress) => `¿Se registró con ${taggedAddress}? Use esa dirección.`,\n twoFactorTitle: \"Verificación en dos pasos\",\n twoFactorIntro: \"Introduzca el código que muestra su app de autenticación.\",\n code: \"Código de verificación\",\n verify: \"Verificar\",\n codeInvalid: \"El código de verificación no es válido.\",\n setPasswordTitle: \"Elija una nueva contraseña\",\n setPasswordIntro:\n \"Se ha solicitado una nueva contraseña para esta cuenta. Elija una y podrá continuar enseguida.\",\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n setPasswordSubmit: \"Establecer la contraseña e iniciar sesión\",\n setPasswordFailed: \"No se pudo establecer la contraseña.\",\n expired: \"Este inicio de sesión ha caducado. Inicie sesión de nuevo.\",\n backToSignIn: \"Volver a iniciar sesión\",\n useRecoveryCode: \"Usar un código de respaldo\",\n useAuthenticatorCode: \"Usar su app de autenticación\",\n recoveryCode: \"Código de respaldo\",\n recoveryIntro: \"Introduzca uno de los códigos de respaldo que guardó al activar la verificación en dos pasos.\",\n recoveryCodeHint: (length) => `${n(length)} letras y dígitos. Los guiones y los espacios no importan.`,\n recoveryCodeInvalid: \"Este código de respaldo no es válido o ya se ha usado.\",\n rateLimited,\n // 0.31.0: the same words as `landing.requestAccess`.\n requestAccess: \"Solicitar acceso\",\n },\n register: {\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n email: \"Correo electrónico\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"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.\",\n invitedEmailHint: \"La dirección a la que se envió su invitación.\",\n invitedTagNote: \"La dirección etiquetada recibe su propio correo de confirmación.\",\n password: \"Contraseña\",\n confirmPassword: \"Repita la contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n language: \"Idioma\",\n submit: \"Crear cuenta\",\n haveAccount: \"¿Ya tiene una cuenta?\",\n signIn: \"Iniciar sesión\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n registrationClosed:\n \"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.\",\n invitationInvalid: \"Este enlace de invitación no es válido.\",\n invitationExpired: \"Esta invitación ha caducado. Pida una nueva.\",\n failed: \"No se pudo completar el registro. Inténtelo de nuevo.\",\n rateLimited,\n },\n completeName: {\n title: \"Complete su nombre\",\n description:\n \"El nombre y los apellidos ahora se piden por separado. Compruebe lo que ya está rellenado y añada lo que falte.\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n save: \"Guardar\",\n later: \"Más tarde\",\n failed: \"No se pudo guardar su nombre. Inténtelo de nuevo.\",\n },\n forgotPassword: {\n title: \"Restablecer la contraseña\",\n intro:\n \"Introduzca la dirección de correo electrónico de su cuenta. Le enviaremos un enlace para elegir una nueva contraseña.\",\n email: \"Correo electrónico\",\n submit: \"Enviar el enlace\",\n sent: (email) => `Si existe una cuenta para ${email}, el enlace está en camino.`,\n sentHint:\n \"El enlace es válido durante una hora y funciona una sola vez. Revise también la carpeta de correo no deseado.\",\n backToSignIn: \"Volver a iniciar sesión\",\n error: \"La solicitud ha fallado. Inténtelo de nuevo más tarde.\",\n rateLimited,\n },\n resetPassword: {\n title: \"Elija una nueva contraseña\",\n checking: \"Comprobando el enlace…\",\n intro: (email) => `Está estableciendo una nueva contraseña para ${email}.`,\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n mismatch: \"Las contraseñas no coinciden.\",\n submit: \"Guardar la contraseña\",\n failed: \"No se pudo cambiar la contraseña.\",\n noToken: \"Este enlace está incompleto.\",\n invalid: \"Este enlace no es válido o ha caducado.\",\n invalidHint: \"Los enlaces son válidos durante una hora y funcionan una sola vez. Solicite uno nuevo.\",\n requestNew: \"Solicitar un enlace nuevo\",\n success: \"Su contraseña se ha cambiado. Ya puede iniciar sesión con ella.\",\n sessionsEnded: \"Se ha cerrado la sesión en los dispositivos conectados; tendrá que volver a iniciarla en ellos.\",\n signIn: \"Ir a iniciar sesión\",\n rateLimited,\n },\n verifyEmail: {\n title: \"Confirme su dirección de correo electrónico\",\n verifying: \"Confirmando…\",\n verified: \"Su dirección de correo electrónico está confirmada.\",\n continue: \"Continuar\",\n invalid: \"Este enlace de confirmación no es válido\",\n expired: \"Este enlace de confirmación ha caducado\",\n noToken: \"A este enlace le falta el token de confirmación.\",\n invalidHint: \"Es posible que el enlace haya caducado o que ya se haya usado.\",\n requestInApp: \"Puede solicitar uno nuevo desde la aplicación.\",\n requestHere: \"Puede solicitar uno nuevo aquí.\",\n resend: \"Enviar de nuevo\",\n resendIn: (seconds) => `Enviar de nuevo en ${n(seconds)} s`,\n resent: \"Correo de confirmación enviado\",\n resendError: \"No se pudo enviar el correo de confirmación\",\n rateLimited,\n banner: \"Confirme su dirección de correo electrónico.\",\n dismiss: \"Ahora no\",\n },\n notFound: {\n title: \"Página no encontrada\",\n body: \"Esta dirección no existe (o ya no existe). Quizá sea una errata o la página se haya movido.\",\n home: \"Ir a la página de inicio\",\n app: \"Volver a la aplicación\",\n },\n acceptInvitation: {\n title: \"Aceptar la invitación\",\n accepting: \"Aceptando la invitación…\",\n accepted: \"Invitación aceptada.\",\n joined: (name) => `Se ha unido a ${name}.`,\n continue: \"Continuar\",\n invalid: \"No es posible unirse con este enlace\",\n expired: \"Esta invitación ha caducado\",\n noToken: \"A este enlace le falta el token de invitación.\",\n askAgain: \"Pida a quien le invitó que le envíe una nueva invitación.\",\n signInFirst: \"Inicie sesión para aceptar esta invitación\",\n signInHint: \"Use la cuenta a la que se envió la invitación.\",\n signIn: \"Iniciar sesión\",\n register: \"Crear cuenta\",\n },\n companySwitcher: {\n switchCompany: \"Cambiar de empresa\",\n heading: \"Empresas\",\n current: (name) => `Empresa: ${name}`,\n currentMark: \"(actual)\",\n switching: \"Cambiando de empresa…\",\n },\n // 0.30.0 — docs/user-admin-harmonization.md: Kurvenschmiede's reviewed Spanish for the\n // admin words, transfer, invitations and sessions; written fresh where it had no\n // sentence. \"Usted\", as the rest of this catalogue.\n emailChange: {\n title: \"Dirección de correo electrónico\",\n current: \"Dirección actual\",\n newEmail: \"Nueva dirección de correo electrónico\",\n password: \"Contraseña actual\",\n passwordHint: \"Inicia sesión con su dirección, así que cambiarla requiere su contraseña.\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"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.\",\n submit: \"Cambiar la dirección de correo electrónico\",\n sameAsCurrent: \"Esta ya es su dirección.\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n wrongPassword: \"La contraseña no es correcta.\",\n pending: (newEmail) => `Confirme el enlace que hemos enviado a ${newEmail}.`,\n pendingHint: (currentEmail) =>\n `Hasta entonces, seguirá iniciando sesión con ${currentEmail}. Revise también la carpeta de correo no deseado.`,\n resend: \"Enviar el enlace de nuevo\",\n resent: \"Hemos vuelto a enviar el enlace.\",\n cancel: \"Cancelar el cambio\",\n confirmed: (email) => `Su dirección de correo electrónico es ahora ${email}.`,\n passkeyNote:\n \"Sus llaves de acceso siguen funcionando. Puede que su dispositivo aún las muestre con su dirección anterior.\",\n rateLimited,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.\n notifications: {\n typesTitle: \"Avisarme de\",\n typesDescription: \"Elija de qué se entera y cómo.\",\n channelApp: \"En la app\",\n channelPush: \"Push\",\n channelEmail: \"Correo\",\n emailUnverified: \"Confirme su dirección para recibirlos.\",\n digestCadence: \"Frecuencia\",\n digestWeekly: \"Semanal\",\n digestMonthly: \"Mensual\",\n typesLoading: \"Cargando los ajustes de notificaciones…\",\n typesEmpty: \"No hay notificaciones para esta cuenta.\",\n quietTitle: \"Horas de silencio\",\n quietDescription: (inbox, held) =>\n held\n ? inbox\n ? \"Las notificaciones push esperan durante este intervalo y llegan cuando termina. A su bandeja de entrada llegan enseguida.\"\n : \"Las notificaciones push esperan durante este intervalo y llegan cuando termina.\"\n : inbox\n ? \"Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada.\"\n : \"Sin notificaciones push durante este intervalo.\",\n quietZone: (zone) => `En su zona horaria (${zone}), que sigue al último dispositivo que usó.`,\n quietFrom: \"Desde\",\n quietUntil: \"Hasta\",\n quietIncomplete:\n \"Indique una hora de inicio y una de fin. Las horas de silencio se aplican cuando ambas están definidas.\",\n regions: {\n Africa: \"África\",\n America: \"América\",\n Antarctica: \"Antártida\",\n Arctic: \"Ártico\",\n Asia: \"Asia\",\n Atlantic: \"Atlántico\",\n Australia: \"Australia\",\n Europe: \"Europa\",\n Indian: \"Océano Índico\",\n Pacific: \"Pacífico\",\n },\n pushTitle: \"Notificaciones push\",\n pushDescription: \"Notificaciones en este dispositivo, también con la app cerrada.\",\n unsupported: \"Este navegador no admite notificaciones push.\",\n iosInstall: (app) =>\n `En iPhone o iPad, añada primero ${app} a la pantalla de inicio: iOS solo entrega notificaciones a la app instalada.`,\n notConfigured: \"Las notificaciones push no están configuradas en este servidor.\",\n blocked: \"Las notificaciones están bloqueadas en los ajustes de este navegador.\",\n on: \"Las notificaciones están activadas en este dispositivo.\",\n off: \"Las notificaciones están desactivadas en este dispositivo.\",\n otherAccount:\n \"Este navegador recibe notificaciones de otra cuenta. Actívelas aquí para recibirlas en la cuenta con la que ha iniciado sesión.\",\n enable: \"Activar notificaciones\",\n disable: \"Desactivar\",\n sendTest: \"Enviar una prueba\",\n enableFailed: \"No se pudieron activar las notificaciones.\",\n noServiceWorker: \"No se pudo contactar con el service worker de la app. Recargue la página e inténtelo de nuevo.\",\n pushTimeout: \"El servicio push del navegador no respondió. Compruebe su conexión e inténtelo de nuevo.\",\n testSent: (count) => `Prueba enviada a ${n(count)} ${plural(count, \"dispositivo\", \"dispositivos\")}`,\n testNone: \"Ningún dispositivo aceptó la prueba. Active primero las notificaciones en este dispositivo.\",\n testFailed: \"No se pudo enviar la notificación de prueba.\",\n explainerTitle: \"¿Activar las notificaciones?\",\n explainerBody: (app) =>\n `${app} solo envía notificaciones de lo que usted elija, y puede desactivarlas en cualquier momento.`,\n explainerHint: \"A continuación, su navegador le pedirá permiso.\",\n explainerContinue: \"Continuar\",\n devicesTitle: \"Dispositivos de notificación\",\n devicesDescription:\n \"Todos los dispositivos que reciben notificaciones push de su cuenta. Quite los que ya no use.\",\n devicesLoading: \"Cargando dispositivos…\",\n devicesEmpty: \"Aún no hay ningún dispositivo que reciba notificaciones.\",\n unknownDevice: \"Dispositivo desconocido\",\n thisDevice: \"Este dispositivo\",\n added: (date) => `Añadido el ${date}`,\n lastDelivery: (date) => `Última entrega el ${date}`,\n noDelivery: \"Aún sin entregas\",\n failures: (count) =>\n `${n(count)} ${plural(count, \"entrega fallida consecutiva\", \"entregas fallidas consecutivas\")}`,\n remove: \"Quitar\",\n // Starts with `remove`, the button's visible text, for voice control.\n removeItem: (device) => `Quitar ${device}`,\n removePrompt: \"¿Dejar de enviar notificaciones a este dispositivo?\",\n deviceTypes: \"Tipos en este dispositivo\",\n deviceTypesDescription: \"Desactive un tipo para silenciarlo solo en este dispositivo.\",\n deviceTypesEmpty: \"Ningún tipo tiene las notificaciones push activadas.\",\n inboxTitle: \"Bandeja de entrada\",\n inboxLoading: \"Cargando notificaciones…\",\n inboxEmpty: \"Está al día.\",\n markAllRead: \"Marcar todo como leído\",\n clearAll: \"Borrar todo\",\n clearPrompt: \"¿Eliminar todas las notificaciones de su bandeja de entrada?\",\n showMore: \"Mostrar más\",\n bellLabel: \"Notificaciones\",\n bellUnread: (count) => `${n(count)} sin leer`,\n allNotifications: \"Todas las notificaciones\",\n unsubscribeTitle: \"Notificaciones por correo electrónico\",\n unsubscribeAbout: (type) => `Recibe correos sobre: ${type}.`,\n unsubscribeGeneric: \"Recibe correos de notificación.\",\n stopThese: \"Dejar de recibir estos correos\",\n stopAll: (app) => `Dejar de recibir todos los correos de notificación de ${app}`,\n stoppedThese: \"Hecho. Ya no recibirá estos correos.\",\n stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,\n accountMail: \"Los correos sobre su cuenta seguirán llegando.\",\n turnBackOn: \"Puede volver a activarlos en cualquier momento en los ajustes.\",\n stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,\n openSettings: \"Abrir los ajustes\",\n invalidLink: \"Este enlace ya no funciona. Puede desactivar los correos en los ajustes.\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n sessions: {\n title: \"Sesiones\",\n description:\n \"¿Ha iniciado sesión en un dispositivo que ya no usa o en el que no confía? Cierre sesión en todas partes.\",\n signOutEverywhere: \"Cerrar sesión en todas partes…\",\n signOutEverywherePrompt:\n \"Esto termina todas las sesiones, también esta: se cerrará la sesión en este dispositivo y tendrá que volver a iniciarla aquí.\",\n confirmSignOutEverywhere: \"Cerrar sesión en todas partes\",\n list: \"Dónde ha iniciado sesión\",\n loading: \"Cargando sesiones…\",\n empty: \"No hay sesiones que mostrar.\",\n current: \"Este dispositivo\",\n unknownDevice: \"Dispositivo desconocido\",\n // A colon: `when` is either \"hace 3 horas\" or a date.\n lastActive: (when) => `Última actividad: ${when}`,\n ip: (address) => `IP ${address}`,\n revoke: \"Cerrar sesión\",\n // Starts with `revoke`, the button's visible text, for voice control.\n revokeItem: (device) => `Cerrar sesión en ${device}`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n deleteAccount: {\n title: \"Eliminar la cuenta\",\n afterDays: (days) =>\n `Su cuenta se desactiva de inmediato y se borra definitivamente ${n(days)} ${plural(days, \"día\", \"días\")} después.`,\n operator: \"Su cuenta se desactiva de inmediato, y el operador la borrará definitivamente.\",\n arm: \"Eliminar la cuenta…\",\n prompt: \"Se cerrará su sesión en todos los dispositivos y ya no podrá usar su cuenta.\",\n handOver: (count) =>\n count === 1\n ? \"1 elemento que otros pueden ver pasará a un administrador.\"\n : `${n(count)} elementos que otros pueden ver pasarán a un administrador.`,\n confirm: \"Eliminar mi cuenta\",\n done: \"Su cuenta está desactivada. Se está cerrando su sesión.\",\n wrongPassword: \"La contraseña no es correcta.\",\n confirmationMismatch: \"Esta no es la dirección de su cuenta.\",\n lastAdmin: \"Su cuenta es la última con rol de administrador. Primero haga administrador a otra persona.\",\n lastAdminOf: (companies) =>\n `Su cuenta es la última con rol de administrador en ${companies}. Primero haga administrador allí a otra persona.`,\n householdHasMembers:\n \"Su hogar tiene otros miembros, así que la cuenta no se puede eliminar aquí. Escriba al operador.\",\n rateLimited,\n failed: \"No se pudo eliminar su cuenta. Inténtelo de nuevo.\",\n },\n dataExport: {\n title: \"Exportar sus datos\",\n description: \"Descargue una copia de los datos de su cuenta como archivo JSON.\",\n download: \"Descargar mis datos\",\n started: \"La descarga ha comenzado.\",\n saveAgain: \"¿No ha empezado? Guardar el archivo\",\n rateLimited: (seconds) =>\n seconds && seconds > 0\n ? `Acaba de exportar sus datos. Inténtelo de nuevo en ${wait(seconds)}.`\n : \"Acaba de exportar sus datos. Inténtelo de nuevo dentro de un minuto.\",\n failed: \"La exportación ha fallado. Inténtelo de nuevo.\",\n },\n userRoster: {\n name: \"Nombre\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n state: \"Estado\",\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n created: \"Creada\",\n lastLogin: \"Último inicio de sesión\",\n never: \"Nunca\",\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones para ${name}`,\n },\n roleSelect: {\n label: \"Rol\",\n rolesLegend: \"Roles\",\n roleOf: (name) => `Rol de ${name}`,\n lockedLastAdmin: \"La última cuenta de administrador activa conserva este rol.\",\n lockedSelf: \"No puede cambiar su propio rol.\",\n notForLastAdmin: \"no para el último administrador\",\n notForSelf: \"no para su propia cuenta\",\n unavailable: (role, reason) => `${role} (${reason})`,\n },\n reviewerScope: {\n languages: \"Idiomas\",\n hint: \"Marque los idiomas que revisa esta persona.\",\n none: \"Ningún idioma: al guardar se retira el rol de revisor.\",\n areas: \"Limitar a\",\n legalOnly: \"Solo las páginas legales\",\n legalOnlyHint:\n \"Aviso legal, política de privacidad y condiciones de uso: para un abogado más que para un hablante nativo.\",\n failed: \"No se pudo guardar el ámbito de revisión. Inténtelo de nuevo.\",\n },\n adminAction: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n close: \"Cerrar\",\n lastAdmin: \"Esta es la última cuenta de administrador activa. Primero haga administrador a otra persona.\",\n self: \"No puede hacer esto con su propia cuenta.\",\n confirmationMismatch: \"La dirección no coincide con esta cuenta. Compruebe en qué cuenta está.\",\n otherCompanies:\n \"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.\",\n removeFromCompany: \"Quitar de la empresa\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n adminActionLog: {\n title: \"Acciones de administración\",\n empty: \"Aún no hay acciones de administración.\",\n loading: \"Cargando…\",\n by: (actor) => `por ${actor}`,\n bySelf: \"por la propia persona\",\n automatic: \"automáticamente\",\n erased: \"una cuenta borrada\",\n filteredTo: (target) => `Solo ${target}`,\n showAll: \"Mostrar todas las acciones\",\n filterBy: (target) => `Mostrar solo las acciones sobre ${target}`,\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n actions: {\n deactivate: \"Desactivada\",\n reactivate: \"Reactivada\",\n role: \"Rol cambiado\",\n password_change_require: \"Nueva contraseña exigida\",\n password_change_withdraw: \"Exigencia de contraseña retirada\",\n mail_verification: \"Correo de confirmación enviado\",\n mail_reset: \"Correo de restablecimiento de contraseña enviado\",\n reviewer: \"Ámbito de revisión cambiado\",\n invite: \"Invitación enviada\",\n invite_resend: \"Invitación reenviada\",\n invite_revoke: \"Invitación retirada\",\n transfer: \"Trabajo traspasado\",\n deletion_request: \"Eliminación solicitada\",\n deletion_cancel: \"Eliminación cancelada\",\n erase: \"Cuenta borrada\",\n plan: \"Plan cambiado\",\n },\n // 0.34 (§11.5): whole phrases per noun. The group's own agree with the noun\n // (\"Empresa creada\"), a member's with \"cuenta\", as `actions` do. `team` is\n // Kurvenschmiede's \"equipo\"; `company` keeps `actions.membership_remove`'s string.\n renamedFromTo: (from, to) => `de ${from} a ${to}`,\n groupActions: {\n group: {\n group_create: \"Grupo creado\",\n group_rename: \"Grupo renombrado\",\n group_delete: \"Grupo eliminado\",\n group_deactivate: \"Grupo desactivado\",\n group_reactivate: \"Grupo reactivado\",\n membership_add: \"Añadida al grupo\",\n membership_role: \"Rol en el grupo cambiado\",\n membership_remove: \"Quitada del grupo\",\n deleted: \"un grupo eliminado\",\n },\n team: {\n group_create: \"Equipo creado\",\n group_rename: \"Equipo renombrado\",\n group_delete: \"Equipo eliminado\",\n group_deactivate: \"Equipo desactivado\",\n group_reactivate: \"Equipo reactivado\",\n membership_add: \"Añadida al equipo\",\n membership_role: \"Rol en el equipo cambiado\",\n membership_remove: \"Quitada del equipo\",\n deleted: \"un equipo eliminado\",\n },\n company: {\n group_create: \"Empresa creada\",\n group_rename: \"Empresa renombrada\",\n group_delete: \"Empresa eliminada\",\n group_deactivate: \"Empresa desactivada\",\n group_reactivate: \"Empresa reactivada\",\n membership_add: \"Añadida a la empresa\",\n membership_role: \"Rol en la empresa cambiado\",\n membership_remove: \"Quitada de la empresa\",\n deleted: \"una empresa eliminada\",\n },\n budget: {\n group_create: \"Presupuesto creado\",\n group_rename: \"Presupuesto renombrado\",\n group_delete: \"Presupuesto eliminado\",\n group_deactivate: \"Presupuesto desactivado\",\n group_reactivate: \"Presupuesto reactivado\",\n membership_add: \"Añadida al presupuesto\",\n membership_role: \"Rol en el presupuesto cambiado\",\n membership_remove: \"Quitada del presupuesto\",\n deleted: \"un presupuesto eliminado\",\n },\n },\n },\n transferOwnership: {\n title: (name) => `Traspasar el trabajo de ${name}`,\n body: \"Todo lo que posee esta cuenta pasa a la cuenta elegida, en un solo paso.\",\n recipient: \"Traspasar a\",\n choose: \"Elija una cuenta…\",\n chooseFirst: \"Elija quién recibe el trabajo\",\n confirm: \"Traspasar\",\n customer: \"cliente\",\n deactivated: \"desactivada\",\n self: \"la misma cuenta\",\n unavailable: (account, reason) => `${account} (${reason})`,\n noCandidates: \"Ninguna otra cuenta puede recibirlo.\",\n },\n invitations: {\n email: \"Dirección de correo electrónico\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n scope: \"Ámbito\",\n scopeNone: \"Ninguno\",\n language: \"Idioma de la invitación\",\n note: \"Nota\",\n invite: \"Invitar\",\n listTitle: \"Invitaciones\",\n empty: \"Todavía no se ha invitado a nadie.\",\n loading: \"Cargando…\",\n // Agreeing with \"invitación\" (feminine).\n status: { open: \"Pendiente\", accepted: \"Aceptada\", expired: \"Caducada\", revoked: \"Retirada\" },\n sent: (date) => `Enviada el ${date}`,\n expires: (date) => `Válida hasta el ${date}`,\n invitedBy: (name) => `por ${name}`,\n resend: (email) => `Enviar a ${email} un enlace nuevo`,\n copyLink: \"Copiar enlace de invitación\",\n revoke: (email) => `Retirar la invitación de ${email}`,\n consoleHint:\n \"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.\",\n linkReady: (email) => `El enlace de invitación para ${email}, que solo se muestra esta vez:`,\n notSent: (email) => `${email} está invitado, pero no se pudo enviar el correo. Reenvíelo.`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n characterCount: {\n count: (used, max) => `${n(used)} de ${n(max)} ${plural(max, \"carácter\", \"caracteres\")}`,\n remaining: (left) => (left === 1 ? \"Queda 1 carácter\" : `Quedan ${n(left)} caracteres`),\n limitReached: \"Límite de caracteres alcanzado\",\n },\n countrySelect: {\n country: \"País\",\n search: \"Buscar país\",\n others: \"Otros países\",\n },\n inlineEdit: {\n edit: (label) => `Editar ${label}`,\n failed: \"No se ha podido guardar el cambio.\",\n empty: \"Vacío\",\n },\n ibanInput: {\n format: \"Un IBAN empieza por un código de país de dos letras y dos dígitos de control.\",\n country: (code) => `«${code}» no es el código de país de un IBAN.`,\n length: (actual, expected) => `Un IBAN de este país tiene ${n(expected)} caracteres; este tiene ${n(actual)}.`,\n checksum: \"Los dígitos de control no coinciden: probablemente hay un carácter mal escrito.\",\n qrRequired: \"Este es un IBAN normal. Una factura QR requiere el QR-IBAN de la cuenta.\",\n qrNotAllowed: \"Este es un QR-IBAN, que solo recibe pagos de facturas QR. Introduzca el IBAN normal de la cuenta.\",\n },\n phoneInput: {\n countryCode: \"Prefijo del país\",\n other: \"Otro\",\n },\n columnMapper: {\n paste: \"Pegar una tabla\",\n pasteHint: \"Copie las filas de una hoja de cálculo y péguelas aquí, o suelte un archivo CSV o de texto.\",\n chooseFile: \"Elegir un archivo\",\n readError: (name) => `No se ha podido leer «${name}»`,\n headerRow: \"La primera línea contiene los nombres de las columnas\",\n summary: (columns, rows) =>\n `${n(columns)} ${plural(columns, \"columna\", \"columnas\")}, ${n(rows)} ${plural(rows, \"fila\", \"filas\")}`,\n // Fragments of the summary line. \"Separado por…\" would have to agree with a noun the\n // line does not name, so the separator is stated as a value.\n separatorSemicolon: \"separador: punto y coma\",\n separatorComma: \"separador: coma\",\n separatorTab: \"separador: tabulación\",\n separatorSpace: \"separador: espacio\",\n // The examples stay as written: they show the convention, not the reader's locale.\n decimalComma: \"coma decimal (1,5)\",\n decimalPoint: \"punto decimal (1.5)\",\n unreadCount: (count) =>\n count === 1 ? \"No se ha podido leer 1 línea\" : `No se han podido leer ${n(count)} líneas`,\n unreadLine: (line) => `No se pudo leer la línea ${line}`,\n unreadMore: (count) => `…y ${n(count)} más`,\n noRows: \"Ninguna línea de este texto se puede leer como una fila de la tabla.\",\n table: \"Columnas y sus funciones\",\n columnN: (column) => `Columna ${column}`,\n roleOf: (column) => `¿Qué contiene la columna «${column}»?`,\n ignore: \"Ignorar\",\n requiredRole: (role) => `${role} (obligatorio)`,\n requiredRoleShort: (role) => `${role} *`,\n previewOf: (shown, total) =>\n shown === 1 ? `La primera de ${n(total)} filas` : `Las primeras ${n(shown)} de ${n(total)} filas`,\n // `roles` arrives joined with \"o\" (\"Debe o Haber\").\n oneOf: (roles) => `${roles} (a elegir)`,\n // \"Falta\" + infinitive: no verb to agree with however many roles follow.\n missing: (roles) => `Falta asignar: ${roles}.`,\n },\n translationReview: {\n statusMissing: \"Falta\",\n statusUnreviewed: \"Sin revisar\",\n statusChanged: \"Cambiado desde la revisión\",\n statusNeedsChange: \"Requiere cambios\",\n statusApproved: \"Aprobado\",\n statusFilter: \"Estado\",\n all: \"Todos\",\n filterCount: (label, count) => `${label} · ${n(count)}`,\n source: \"Textos\",\n allSources: \"Todos los textos\",\n namespace: \"Área\",\n allNamespaces: \"Todas las áreas\",\n search: \"Buscar en claves y textos\",\n placeholdersOnly: (count) => `Solo problemas de marcadores (${n(count)})`,\n placeholderChip: \"Marcadores\",\n key: \"Clave\",\n statusColumn: \"Estado\",\n empty: \"Ningún texto coincide con estos filtros.\",\n missingText: \"Falta en este idioma\",\n progress: (approved, total) => `${n(approved)} de ${n(total)} ${plural(approved, \"aprobado\", \"aprobados\")}`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n locales: \"Idiomas\",\n approve: \"Aprobar\",\n flag: \"Requiere cambios\",\n suggest: \"Proponer traducción\",\n flagRow: \"Marcar para cambiar…\",\n suggestRow: \"Añadir una traducción…\",\n reset: \"Marcar como sin revisar\",\n cancel: \"Cancelar\",\n approveSelected: \"Aprobar la selección\",\n resetSelected: \"Marcar la selección como sin revisar\",\n selectShown: \"Seleccionar todo lo mostrado\",\n changedSince: \"Este texto cambió después de revisarse. Vuelva a leerlo, por favor.\",\n reviewedWording: \"Redacción al revisarse\",\n reviewedReference: \"Referencia al revisarse\",\n placeholderMismatch: (reference, text) =>\n `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.`,\n lastApproved: (name, date) => `Aprobado por ${name} el ${date}`,\n lastFlagged: (name, date) => `Marcado para cambiar por ${name} el ${date}`,\n erasedReviewer: \"una cuenta eliminada\",\n suggestion: \"Mejor redacción\",\n translation: \"Traducción\",\n note: \"Nota (opcional)\",\n notePlaceholder: \"Qué está mal o qué hay que tener en cuenta\",\n readOnly: \"Puede leer este idioma, pero no revisarlo.\",\n scope: (areas) => `Su revisión se limita a: ${areas}.`,\n exportCorrections: (count) => `Exportar correcciones (${n(count)})`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n approvedToast: (count) => (count === 1 ? \"Texto aprobado\" : `${n(count)} textos aprobados`),\n clearedToast: (count) =>\n count === 1 ? \"Texto marcado como sin revisar\" : `${n(count)} textos marcados como sin revisar`,\n // \"sin revisar\" does not agree with the count, so one form serves both.\n groupCount: (unreviewed, total) => `${n(unreviewed)} sin revisar / ${n(total)}`,\n approveGroup: (count) => `Aprobar los sin revisar (${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `¿Aprobar el texto sin revisar de «${group}»?`\n : `¿Aprobar los ${n(count)} textos sin revisar de «${group}», incluidos los que no están en pantalla?`,\n },\n // 0.31.0 — docs/settings-harmonization.md §4.3 and docs/landing-demo-harmonization.md\n // §4–§5: the settings shell, the landing page's generic words and the demo. The help\n // lines name things as `accountSettings`, `sessions` and `dataExport` do. \"Usted\".\n // \"Ajustes\" (es-ES), a countable noun: \"Ningún ajuste coincide…\".\n settings: {\n title: \"Ajustes\",\n search: \"Buscar en los ajustes\",\n searchPlaceholder: \"Buscar en los ajustes…\",\n results: \"Ajustes coincidentes\",\n noMatches: (query) => `Ningún ajuste coincide con «${query}».`,\n // As `commandPalette.clear`.\n clearSearch: \"Borrar búsqueda\",\n back: \"Volver a los ajustes\",\n sections: \"Secciones de los ajustes\",\n matchCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n groups: {\n appearance: {\n title: \"Apariencia\",\n help: \"Idioma, tema y aspecto de la aplicación en este dispositivo.\",\n },\n account: {\n title: \"Cuenta\",\n help: \"Su perfil y su dirección de correo electrónico.\",\n },\n security: {\n title: \"Seguridad\",\n help: \"Cómo inicia sesión, y en qué dispositivos tiene la sesión abierta.\",\n },\n notifications: {\n title: \"Notificaciones\",\n help: \"Qué notificaciones recibe, cuándo y en qué dispositivos.\",\n },\n data: {\n title: \"Datos\",\n help: \"Exporte lo que es suyo o elimínelo junto con su cuenta.\",\n },\n },\n },\n landing: {\n signIn: \"Iniciar sesión\",\n requestAccess: \"Solicitar acceso\",\n getStarted: \"Empezar\",\n tryDemo: \"Probar la demo\",\n openApp: \"Abrir la aplicación\",\n continueDemo: \"Continuar la demo\",\n beta: \"Beta\",\n // Plain text: a mail's subject and body lines, never HTML.\n accessSubject: (app) => (app ? `Acceso a ${app}` : \"Solicitud de acceso\"),\n accessName: \"Nombre:\",\n accessCompany: \"Empresa:\",\n accessUse: \"Uso previsto:\",\n siteNavLabel: \"Más páginas\",\n },\n demo: {\n starting: \"Iniciando la demo…\",\n rateLimited: (minutes) =>\n minutes\n ? `Demasiadas demos desde esta red. Inténtelo de nuevo en ${n(minutes)} min.`\n : \"Demasiadas demos desde esta red. Inténtelo de nuevo más tarde.\",\n capacity: \"La demo está completa en este momento. Inténtelo de nuevo más tarde.\",\n unavailable: \"La demo no está disponible en este momento.\",\n failed: \"No se pudo iniciar la demo. Inténtelo de nuevo.\",\n // As `legal.backHome`.\n backToStart: \"Volver al inicio\",\n // Hours and minutes together are plural; minutes alone agree with the count.\n hoursLeft: (hours, minutes) => `Demo · quedan ${n(hours)} h ${n(minutes)} min`,\n minutesLeft: (minutes) => `Demo · ${plural(minutes, \"queda\", \"quedan\")} ${n(minutes)} min`,\n badge: \"Demo\",\n readOnly: \"Está viendo datos de ejemplo. No es posible hacer cambios.\",\n sandbox: \"Su propio trabajo se elimina cuando termina la demo.\",\n details: \"Detalles de la demo\",\n writeLocked: \"No es posible en la demo.\",\n endedTitle: \"La demo ha terminado\",\n endedReadOnly: \"Los datos de ejemplo se restablecen con regularidad.\",\n endedSandbox: \"Los datos de ejemplo se restablecen con regularidad; su propio trabajo en la demo se elimina.\",\n restart: \"Iniciar una nueva demo\",\n },\n // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: \"plan\" is what is bought\n // (Free, Pro), \"suscripción\" the standing arrangement and the settings group. \"Usted\".\n billing: {\n group: \"Suscripción\",\n plans: \"Planes\",\n interval: \"Periodo de facturación\",\n yearly: \"Anual\",\n monthly: \"Mensual\",\n // As `currency.currency`.\n currency: \"Moneda\",\n perYear: \"al año\",\n perMonth: \"al mes\",\n vatIncluded: \"IVA incluido\",\n free: \"Gratis\",\n notOffered: \"No disponible para este periodo de facturación\",\n // As `progressBar.unlimited`.\n unlimited: \"Ilimitado\",\n limits: \"Límites\",\n features: \"Incluido\",\n current: \"Plan actual\",\n choose: (plan) => `Elegir ${plan}`,\n upgrade: (plan) => `Mejorar a ${plan}`,\n downgrade: (plan) => `Cambiar a ${plan}`,\n isCurrent: \"Este es su plan actual.\",\n pickFirst: \"Elija primero un plan.\",\n // Agreeing with \"suscripción\"; \"caducada\", as `invitations.status.expired`.\n status: {\n trialing: \"Prueba\",\n active: \"Activa\",\n past_due: \"Pago vencido\",\n canceled: \"Cancelada\",\n expired: \"Caducada\",\n comped: \"De cortesía\",\n },\n // 0.55 (§7, Marcel 2026-11-04): the standing line; `ended` is the first sentence of\n // `planEnded`, \"no se ha completado\" as `paymentFailedAskBuyer`.\n standing: {\n ended: \"Su plan ha terminado.\",\n pastDue: \"El pago no se ha completado y lo estamos reintentando. Mientras tanto, su plan sigue activo.\",\n trialUntil: (date) => `Prueba hasta el ${date}`,\n freeUntil: (date) => `Gratis hasta el ${date}`,\n free: \"Gratis, sin fecha de finalización\",\n endsOn: (date) => `Termina el ${date}`,\n renewsOn: (date) => `Se renueva el ${date}`,\n },\n trialEnding: (days) =>\n `Su periodo de prueba termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n grantEnding: (days) =>\n `Su acceso gratuito termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n paymentFailed: \"Su último pago no se ha completado. Actualice su método de pago para conservar su plan.\",\n planEnded:\n \"Su plan ha terminado. Puede seguir viendo y exportando todo; elija un plan para volver a hacer cambios.\",\n // Never why: the owner's payment status is the owner's personal data (§12.6).\n guestReadOnly: (item) =>\n item\n ? `«${item}» es de solo lectura por ahora; su propietario puede levantar esa restricción.`\n : \"Esto es de solo lectura por ahora; su propietario puede levantar esa restricción.\",\n processing: \"Su pago se está procesando. Su plan empieza en cuanto se confirme; esta página se actualiza sola.\",\n choosePlan: \"Elegir un plan\",\n updatePayment: \"Actualizar el método de pago\",\n // 0.42 (§16.7 A): for an admin who isn't the buyer.\n paymentFailedAskBuyer: (buyer) =>\n buyer\n ? `El pago no se ha completado. ${buyer} puede actualizar el método de pago.`\n : \"El pago no se ha completado. El administrador que contrató la suscripción puede actualizar el método de pago.\",\n checkAgain: \"Volver a comprobar\",\n lockReason: \"Su plan ha terminado. Elija un plan para volver a hacer cambios.\",\n // As `characterCount.limitReached` (\"Límite de caracteres alcanzado\").\n limitReached: \"Límite del plan alcanzado\",\n limitUpgrade: \"Para añadir más, elija un plan con un límite mayor.\",\n limitContact: \"Para añadir más, pídanos un límite mayor.\",\n askForMore: \"Pedir más\",\n // Both figures arrive formatted; \"de\", as `characterCount.count`.\n usage: (used, limit) => `${used} de ${limit}`,\n contactSubject: (dimension) => `Límite del plan: ${dimension}`,\n // The toast's figure line (§14.11) and the plan change's over-limit lines (§14.12).\n limitUsageLine: (dimension, used, limit) => `${dimension}: ${used} de ${limit}`,\n manage: \"Pagos y facturas\",\n cancel: \"Cancelar la suscripción\",\n // §14.5: no customer at the provider yet, so no portal to open.\n notAtProvider:\n \"Todavía no hay nada que gestionar. Los pagos y las facturas aparecerán aquí cuando tenga un plan de pago.\",\n // §14.4: the pay page's lines, built into its bundle. \"Usted\".\n payOpening: \"Abriendo el pago seguro…\",\n payNothing: \"Aquí no hay nada que pagar. Para elegir un plan, vuelva a la aplicación.\",\n payFailed: \"No se ha podido abrir el pago. Vuelva atrás e inténtelo de nuevo en un momento.\",\n payBack: \"El pago se ha cerrado. Puede volver atrás o recargar esta página para abrirlo de nuevo.\",\n payDone: \"Pago completado. Puede cerrar esta página.\",\n // 0.39 (§15.2.10): PlanSwitchConfirm.\n switchTitle: \"Cambiar de plan\",\n switchFromTo: (from, to) => `De ${from} a ${to}`,\n switchChargedNow: \"Cargo ahora\",\n switchCredited: \"Abonado a sus próximos cargos\",\n switchNextCharge: (date) => `Próximo cargo el ${date}`,\n switchConfirm: \"Cambiar de plan\",\n // 0.42 (§16): the portal for the buyer only, the in-app cancel, the grant warning.\n buyerHolds: (buyer) =>\n buyer\n ? `El método de pago y las facturas los gestiona ${buyer}, que contrató la suscripción.`\n : \"El método de pago y las facturas los gestiona el administrador que contrató la suscripción.\",\n cancelConfirmTitle: \"Cancelar la suscripción\",\n cancelConfirmBody: (date) => `Su suscripción termina el ${date}. Hasta entonces, todo funciona como antes.`,\n cancelConfirmAction: \"Cancelar ahora la suscripción\",\n keepSubscription: \"Mantener la suscripción\",\n portalOpensNewTab: (provider, app) =>\n `Los pagos y las facturas se abren en ${provider} en una pestaña nueva; ${app ? `${app} sigue abierto aquí` : \"esta página sigue abierta\"}.`,\n grantWarningTitle: \"Su acceso gratuito continúa\",\n grantWarningBody:\n \"Su acceso gratuito no tiene fecha de fin. Mientras dure, una compra no cambia su plan: pagaría por un plan que no se aplica.\",\n grantWarningAction: \"Comprar de todos modos\",\n waitingChanges: (count) => `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de un plan`,\n // \"Descartar\", as `wizard.cancelConfirmLabel`.\n discardWaiting: \"Descartar los cambios en espera\",\n notConfigured: \"Los pagos aún no están configurados. Inténtelo de nuevo más tarde.\",\n disabled: \"Las suscripciones no están disponibles aquí.\",\n // §14.2: server-kit 0.7's refusals. \"Pagos y facturas\", as `manage`. \"Usted\".\n providerUnavailable:\n \"El proveedor de pagos no está disponible en este momento. Inténtelo de nuevo en un momento.\",\n alreadySubscribed: \"Ya tiene una suscripción. Cambie de plan más arriba.\",\n planNotSold: \"Este plan no está disponible para ese periodo de facturación o esa moneda. Elija otro.\",\n // 0.39 (§15.2.10): the plan switch's refusals.\n notSubscribed: \"No hay ninguna suscripción activa que cambiar. Elija un plan para suscribirse.\",\n planUnchanged: \"Ese ya es su plan. Elija otro plan u otro periodo de facturación.\",\n },\n // 0.33.0 — docs/billing-harmonization.md §14.12: the operator's plan parts, \"plan\" as\n // in `billing`. \"Usted\".\n planChange: {\n column: \"Plan\",\n title: \"Cambiar de plan\",\n confirm: \"Cambiar de plan\",\n plan: \"Plan\",\n current: (plan) => `Plan actual: ${plan}`,\n keepsItems: \"Un plan más pequeño solo impide crear más; no se elimina nada.\",\n until: \"Gratis hasta el\",\n untilHint: \"Déjelo vacío para que no tenga fin. Una beta en curso conserva su propio fin.\",\n needsChange: \"Elija otro plan o una fecha de fin.\",\n changed: (from, to) => `Plan cambiado de ${from} a ${to}.`,\n set: (to) => `Plan establecido en ${to}.`,\n keptBeta: \"La beta conserva su fin; solo ha cambiado el plan.\",\n untilDone: (date) => `Gratis hasta el ${date}.`,\n overLimit: \"Por encima del límite del nuevo plan: no se elimina nada, los elementos nuevos quedan bloqueados.\",\n // Figures formatted; \"de\", as `billing.usage`. The app's word follows the limit,\n // in its form (0.33.1): \"1 de 1 presupuesto\", \"1 de 5 presupuestos\".\n usageOf: (used, limit, dimension) => `${used} de ${limit} ${dimension}`,\n },\n // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in\n // the \"Apariencia\" group.\n appearance: {\n textSize: \"Tamaño del texto\",\n textSizeHelp: \"Letras más grandes y un diseño que les hace sitio.\",\n textSizes: { normal: \"Normal\", large: \"Grande\", xlarge: \"Muy grande\" },\n contrast: \"Contraste\",\n contrastHelp:\n \"El contraste aumentado oscurece los textos tenues y las líneas, y engrosa los marcos de foco. «Sistema» sigue el ajuste de este dispositivo.\",\n contrastModes: { system: \"Sistema\", standard: \"Estándar\", more: \"Aumentado\" },\n saveFailed: \"No se ha podido guardar en su cuenta. En este dispositivo se aplica igualmente.\",\n // 0.46: DateFormatSetting (keksdose's words where it has them).\n dateFormat: \"Formato de fecha\",\n dateFormatHelp:\n \"Cómo se escriben las fechas en toda la app. Independiente del idioma de la interfaz: puede leer la app en inglés y ver igualmente las fechas en formato alemán.\",\n dateFormatAuto: \"Seguir el idioma\",\n // 0.46: AccountMenuTextSize (keksdose live #426).\n textSmaller: \"Texto más pequeño\",\n textLarger: \"Texto más grande\",\n },\n // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the\n // last card of \"Apariencia\". \"Restablecer\", as a phone's own settings say it.\n deviceReset: {\n title: \"Restablecer este dispositivo\",\n description:\n \"Devuelve a sus valores predeterminados el aspecto de este dispositivo y la vista en que quedaron sus tablas y paneles. Su cuenta, sus datos y su inicio de sesión no se tocan.\",\n action: \"Restablecer los ajustes de este dispositivo\",\n confirmTitle: \"¿Restablecer los ajustes de este dispositivo?\",\n confirmBody:\n \"El tema, los colores, el tamaño del texto, el contraste y el idioma vuelven aquí a sus valores predeterminados, y las tablas y los paneles se abren como la primera vez. Si su cuenta tiene un idioma, un tamaño de texto o un contraste, este dispositivo vuelve a seguirlo. Su cuenta y sus otros dispositivos quedan como están.\",\n confirmAction: \"Restablecer\",\n done: \"Los ajustes de este dispositivo han vuelto a sus valores predeterminados.\",\n keywords: \"restablecer predeterminado valores dispositivo restaurar apariencia tablas diseño\",\n },\n rowActions: {\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones de ${name}`,\n confirmTitle: (action, name) => (name ? `¿${action} «${name}»?` : `¿${action}?`),\n confirmBody: \"Esta acción no se puede deshacer.\",\n },\n appShellMore: {\n more: \"Más\",\n moreTitle: \"Más páginas\",\n overview: \"Resumen\",\n },\n // 0.42.0 — docs/admin-harmonization.md §3.1: the admin area's shared words. \"Usted\",\n // as the rest of the catalogue.\n mailTestCard: {\n title: \"Correo de prueba\",\n description:\n \"Envía un correo a su propia dirección, por el mismo transporte con el que esta instalación envía todo su correo.\",\n transport: (backend) => `Transporte: ${backend}`,\n action: \"Enviarme un correo de prueba\",\n sent: (address) => `Enviado a ${address}. Revise la bandeja de entrada.`,\n console: \"El transporte de consola solo registra el correo; no se ha enviado nada.\",\n failed: \"No se pudo enviar. El registro del servidor tiene la respuesta del proveedor.\",\n rateLimited,\n keywords: \"correo prueba email e-mail transporte smtp resend consola enviar entrega\",\n },\n adminArea: {\n title: \"Administración\",\n waiting: (count) => `${n(count)} ${plural(count, \"pendiente\", \"pendientes\")}`,\n waitingLabel: (label, count) => `${label}, ${n(count)} ${plural(count, \"pendiente\", \"pendientes\")}`,\n forbiddenTitle: \"Solo para administradores\",\n forbiddenBody: (appName) =>\n `Aquí es donde los administradores gestionan ${appName}. Su cuenta no puede abrir esta página.`,\n forbiddenHome: \"Ir a la página de inicio\",\n forbiddenReviewer: \"Revisar traducciones\",\n sections: {\n overview: { title: \"Resumen\", help: \"Lo que está pendiente, de un vistazo.\" },\n users: { title: \"Usuarios\", help: \"Quién tiene una cuenta y qué puede hacer cada uno.\" },\n invitations: {\n title: \"Invitaciones\",\n help: \"Invite a personas por correo electrónico en su idioma; reenvíe o revoque las invitaciones aún pendientes.\",\n },\n billing: { title: \"Facturación\", help: \"El plan, el pago y las facturas.\" },\n activity: { title: \"Actividad\", help: \"Lo que hicieron los administradores, lo más reciente primero.\" },\n },\n tiles: {\n feedbackWaiting: \"Por clasificar\",\n deletionRequests: \"Solicitudes de eliminación\",\n invitationsPending: \"Invitaciones pendientes\",\n users: \"Usuarios\",\n usersNew: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")} en 7 días`,\n awaitingVerdict: \"Pendientes de veredicto\",\n awaitingVerdictHint: \"Respondidos, a la espera de que usted o quien lo informó confirme la solución\",\n releasedForWork: \"Listos para trabajar\",\n releasedForWorkHint: \"Listos, con revisión solicitada o en curso\",\n },\n overviewError: \"No se pudo cargar el resumen.\",\n retry: \"Reintentar\",\n tools: \"Herramientas\",\n },\n // 0.42.0 — docs/top-bar-harmonization.md §3.1: the top bar's shared parts; \"plan\" as\n // `billing`, \"usted\" as the rest of the catalogue.\n topBarParts: {\n tours: {\n menu: \"Visitas guiadas\",\n newDot: \"Visitas nuevas\",\n thisPage: \"En esta página\",\n newTours: \"Visitas nuevas\",\n allTours: \"Todas las visitas…\",\n badgeNew: \"Nuevo\",\n completed: \"Completada\",\n badgeUpdated: \"Actualizado\",\n updatedDot: \"Visitas actualizadas\",\n newAndUpdated: \"Nuevas y actualizadas\",\n },\n sync: {\n blocked: (count) =>\n `${n(count)} ${plural(count, \"cambio no se puede enviar\", \"cambios no se pueden enviar\")} desde este dispositivo`,\n offline: \"Sin conexión: los cambios se guardan en este dispositivo y se sincronizarán al volver a conectarse\",\n refused: \"El servidor rechazó la última sincronización\",\n syncing: \"Sincronizando…\",\n pending: (count) => `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de sincronizarse`,\n syncedAt: (time) => `Sincronizado a las ${time}`,\n idle: \"Al día\",\n syncHint: \"Toque para sincronizar ahora\",\n offlineHint: \"no hay nada que sincronizar sin conexión\",\n withHint: (state, hint) => `${state} — ${hint}`,\n scoped: (scope, state) => `${scope}: ${state}`,\n offlineShort: \"Sin conexión\",\n syncingShort: \"Sincronizando…\",\n waitingShort: (count) => `${n(count)} en espera`,\n refusedShort: \"Sin sincronizar\",\n offlineUnsaved: \"Sin conexión: los cambios no se pueden guardar hasta que vuelva a conectarse\",\n saving: \"Guardando…\",\n waitingForTab: \"Esperando a que otra pestaña termine de sincronizar\",\n waitingForTabShort: \"Esperando pestaña\",\n },\n dev: {\n menu: \"Herramientas de desarrollo\",\n overridesOn: \"Anulaciones activas\",\n roleHeading: \"Dev · rol\",\n plan: (value) => `Plan: ${value}`,\n planHeading: \"Dev · plan\",\n backTo: (role) => `Volver a ${role}`,\n billingOff: \"La facturación está desactivada en local: los planes no cambian nada\",\n },\n },\n // 0.45.0 — docs/local-first-harmonization.md §1.6 (`@eifi1/ui-kit/offline`): keksdose's\n // reviewed words (nav.logout_queued_*, pwa.*) where it has the language.\n signOutPending: {\n title: \"Algunos cambios aún no se han guardado en el servidor\",\n lost: (count) =>\n count === 1\n ? `${n(count)} cambio sigue pendiente de sincronizar. Al cerrar sesión se borra la copia de este dispositivo, y es la única.`\n : `${n(count)} cambios siguen pendientes de sincronizar. Al cerrar sesión se borra la copia de este dispositivo, y es la única.`,\n kept: (count) =>\n count === 1\n ? `${n(count)} cambio sigue pendiente de sincronizar. Se queda en este dispositivo para usted y se sincronizará la próxima vez que inicie sesión aquí.`\n : `${n(count)} cambios siguen pendientes de sincronizar. Se quedan en este dispositivo para usted y se sincronizarán la próxima vez que inicie sesión aquí.`,\n syncNow: \"Sincronizar ahora\",\n signOutAnyway: \"Cerrar sesión de todos modos\",\n discardWaiting: \"Descartar los cambios en espera\",\n cancel: \"Cancelar\",\n },\n pwaUpdate: {\n updateAvailable: \"Hay una nueva versión disponible.\",\n reload: \"Recargar\",\n },\n sharedComputer: {\n label: \"Este es un ordenador compartido\",\n hint: \"No queda ninguna copia de sus datos en este dispositivo. Las páginas solo se abren entonces con conexión.\",\n },\n // 0.55 — docs/top-bar-harmonization.md §2.6.1: keksdose's words (sync.held_*,\n // sync.discard_held_*, sync.switch_back_held) without its budgets.\n heldChanges: {\n message: (count) =>\n count === 1\n ? `${n(count)} cambio no se puede enviar desde aquí. Se queda en este dispositivo hasta que se pueda enviar o hasta que lo descarte.`\n : `${n(count)} cambios no se pueden enviar desde aquí. Se quedan en este dispositivo hasta que se puedan enviar o hasta que los descarte.`,\n switchBack: \"Volver\",\n discard: \"Descartar…\",\n confirmTitle: (count) =>\n `¿Descartar ${n(count)} ${plural(count, \"cambio que no se puede enviar\", \"cambios que no se pueden enviar\")} desde aquí?`,\n confirmBody: (count) =>\n count === 1\n ? \"No se podrá recuperar. Después, este dispositivo se sincroniza con los datos del servidor.\"\n : \"No se podrán recuperar. Después, este dispositivo se sincroniza con los datos del servidor.\",\n confirmAction: \"Descartar\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n // 0.55 (keksdose dev #638): the \"suggested from\" caption under a field — the kit's\n // default when the app names no source, and the button that takes the value back out.\n fieldSuggestion: {\n suggested: \"Sugerido\",\n clear: \"Borrar\",\n clearName: (field) => (field ? `Borrar la sugerencia para «${field}»` : \"Borrar la sugerencia\"),\n },\n // 0.55: keksdose's words (price_pool.reconsent.*), translated; it ships no Spanish.\n consentAgain: {\n agree: \"Aceptar\",\n notNow: \"Ahora no\",\n changesToggle: \"Ver qué ha cambiado\",\n wordingToggle: \"Mostrar el texto completo, antes y ahora\",\n beforeHeading: \"Hasta ahora\",\n nowHeading: \"A partir de ahora\",\n removed: \"Eliminado:\",\n added: \"Añadido:\",\n },\n // 0.55: keksdose's headings (changelog.section_*), translated; it ships no Spanish.\n releaseNotes: {\n version: (version) => `v${version}`,\n sections: {\n breaking: \"Cambios incompatibles\",\n added: \"Novedades\",\n changed: \"Cambios\",\n fixed: \"Corregido\",\n deprecated: \"Obsoleto\",\n removed: \"Eliminado\",\n security: \"Seguridad\",\n reverted: \"Revertido\",\n },\n },\n };\n}\n\nexport const UI_KIT_LABELS_ES: UiKitLabels = uiKitLabelsEs();\n"],"mappings":"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","names":[]}