@eifi1/ui-kit 0.35.0 → 0.37.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 (269) hide show
  1. package/README.md +35 -5
  2. package/dist/admin/role-select.d.ts +3 -2
  3. package/dist/admin/role-select.js +2 -0
  4. package/dist/admin/role-select.js.map +1 -1
  5. package/dist/components/amount-input.d.ts +2 -2
  6. package/dist/components/amount-input.js.map +1 -1
  7. package/dist/components/autocomplete.d.ts +2 -2
  8. package/dist/components/autocomplete.js +2 -1
  9. package/dist/components/autocomplete.js.map +1 -1
  10. package/dist/components/button-look.d.ts +1 -1
  11. package/dist/components/button-look.js +9 -4
  12. package/dist/components/button-look.js.map +1 -1
  13. package/dist/components/checkbox-group.d.ts +5 -2
  14. package/dist/components/checkbox-group.js +15 -4
  15. package/dist/components/checkbox-group.js.map +1 -1
  16. package/dist/components/column-mapper.d.ts +5 -3
  17. package/dist/components/column-mapper.js +2 -0
  18. package/dist/components/column-mapper.js.map +1 -1
  19. package/dist/components/combobox.d.ts +2 -2
  20. package/dist/components/combobox.js +2 -1
  21. package/dist/components/combobox.js.map +1 -1
  22. package/dist/components/country-select.d.ts +3 -3
  23. package/dist/components/country-select.js +3 -0
  24. package/dist/components/country-select.js.map +1 -1
  25. package/dist/components/currency-select.d.ts +3 -2
  26. package/dist/components/currency-select.js +10 -1
  27. package/dist/components/currency-select.js.map +1 -1
  28. package/dist/components/date-field.d.ts +2 -1
  29. package/dist/components/date-field.js.map +1 -1
  30. package/dist/components/date-picker.js +3 -0
  31. package/dist/components/date-picker.js.map +1 -1
  32. package/dist/components/date-range-picker.js +3 -0
  33. package/dist/components/date-range-picker.js.map +1 -1
  34. package/dist/components/entity-combobox.d.ts +2 -2
  35. package/dist/components/entity-combobox.js +2 -1
  36. package/dist/components/entity-combobox.js.map +1 -1
  37. package/dist/components/field-parts.d.ts +66 -11
  38. package/dist/components/field-parts.js +32 -10
  39. package/dist/components/field-parts.js.map +1 -1
  40. package/dist/components/field-strip.d.ts +3 -2
  41. package/dist/components/field-strip.js +2 -1
  42. package/dist/components/field-strip.js.map +1 -1
  43. package/dist/components/field.d.ts +3 -2
  44. package/dist/components/field.js +24 -15
  45. package/dist/components/field.js.map +1 -1
  46. package/dist/components/help-popover.d.ts +9 -7
  47. package/dist/components/help-popover.js.map +1 -1
  48. package/dist/components/icon-picker.d.ts +3 -2
  49. package/dist/components/icon-picker.js +3 -0
  50. package/dist/components/icon-picker.js.map +1 -1
  51. package/dist/components/inline-entity-combobox.d.ts +2 -2
  52. package/dist/components/inline-entity-combobox.js +2 -1
  53. package/dist/components/inline-entity-combobox.js.map +1 -1
  54. package/dist/components/input.d.ts +2 -2
  55. package/dist/components/input.js +2 -1
  56. package/dist/components/input.js.map +1 -1
  57. package/dist/components/month-picker.d.ts +2 -1
  58. package/dist/components/month-picker.js +8 -1
  59. package/dist/components/month-picker.js.map +1 -1
  60. package/dist/components/multi-entity-combobox.d.ts +2 -2
  61. package/dist/components/multi-entity-combobox.js +2 -1
  62. package/dist/components/multi-entity-combobox.js.map +1 -1
  63. package/dist/components/multi-select.d.ts +2 -2
  64. package/dist/components/multi-select.js +3 -0
  65. package/dist/components/multi-select.js.map +1 -1
  66. package/dist/components/number-input.d.ts +2 -2
  67. package/dist/components/number-input.js.map +1 -1
  68. package/dist/components/numeric-field.d.ts +5 -2
  69. package/dist/components/numeric-field.js +4 -1
  70. package/dist/components/numeric-field.js.map +1 -1
  71. package/dist/components/one-time-code-input.d.ts +2 -1
  72. package/dist/components/one-time-code-input.js +2 -1
  73. package/dist/components/one-time-code-input.js.map +1 -1
  74. package/dist/components/phone-input.d.ts +1 -1
  75. package/dist/components/phone-input.js +4 -0
  76. package/dist/components/phone-input.js.map +1 -1
  77. package/dist/components/popover.js +1 -1
  78. package/dist/components/popover.js.map +1 -1
  79. package/dist/components/select.d.ts +4 -3
  80. package/dist/components/select.js +2 -1
  81. package/dist/components/select.js.map +1 -1
  82. package/dist/components/slider.d.ts +3 -2
  83. package/dist/components/slider.js +7 -1
  84. package/dist/components/slider.js.map +1 -1
  85. package/dist/components/stat-tile.js +2 -11
  86. package/dist/components/stat-tile.js.map +1 -1
  87. package/dist/components/swatch-picker.d.ts +3 -2
  88. package/dist/components/swatch-picker.js +3 -0
  89. package/dist/components/swatch-picker.js.map +1 -1
  90. package/dist/components/text-link.js +3 -1
  91. package/dist/components/text-link.js.map +1 -1
  92. package/dist/components/textarea.d.ts +2 -1
  93. package/dist/components/textarea.js +9 -3
  94. package/dist/components/textarea.js.map +1 -1
  95. package/dist/components/toggle-group.d.ts +2 -2
  96. package/dist/components/toggle-group.js +7 -3
  97. package/dist/components/toggle-group.js.map +1 -1
  98. package/dist/eslint/index.js +1 -1
  99. package/dist/eslint/role-utilities.d.ts +34 -2
  100. package/dist/eslint/role-utilities.js +30 -9
  101. package/dist/eslint/role-utilities.js.map +1 -1
  102. package/dist/i18n/defaults.js +5 -1
  103. package/dist/i18n/defaults.js.map +1 -1
  104. package/dist/i18n/german.js +97 -1
  105. package/dist/i18n/german.js.map +1 -1
  106. package/dist/i18n/kit-labels.d.ts +16 -0
  107. package/dist/i18n/kit-labels.js +21 -1
  108. package/dist/i18n/kit-labels.js.map +1 -1
  109. package/dist/i18n/locales/en.js +103 -2
  110. package/dist/i18n/locales/en.js.map +3 -3
  111. package/dist/i18n/locales/es.js +95 -1
  112. package/dist/i18n/locales/es.js.map +1 -1
  113. package/dist/i18n/locales/fr.js +96 -1
  114. package/dist/i18n/locales/fr.js.map +1 -1
  115. package/dist/i18n/locales/hu.js +95 -1
  116. package/dist/i18n/locales/hu.js.map +1 -1
  117. package/dist/i18n/locales/it.js +96 -1
  118. package/dist/i18n/locales/it.js.map +1 -1
  119. package/dist/i18n/locales/zh.js +95 -1
  120. package/dist/i18n/locales/zh.js.map +1 -1
  121. package/dist/i18n/review.js +13 -0
  122. package/dist/i18n/review.js.map +1 -1
  123. package/dist/i18n/shared-labels.js +3 -1
  124. package/dist/i18n/shared-labels.js.map +1 -1
  125. package/dist/index.d.ts +21 -0
  126. package/dist/index.js +38 -0
  127. package/dist/index.js.map +1 -1
  128. package/dist/lib/device-settings.d.ts +72 -0
  129. package/dist/lib/device-settings.js +64 -0
  130. package/dist/lib/device-settings.js.map +1 -0
  131. package/dist/lib/plain-text.d.ts +11 -0
  132. package/dist/lib/plain-text.js +16 -0
  133. package/dist/lib/plain-text.js.map +1 -0
  134. package/dist/lib/safe-storage.d.ts +6 -0
  135. package/dist/lib/safe-storage.js +11 -0
  136. package/dist/lib/safe-storage.js.map +1 -1
  137. package/dist/notifications/notification-parts.d.ts +39 -0
  138. package/dist/notifications/notification-parts.js +47 -0
  139. package/dist/notifications/notification-parts.js.map +1 -0
  140. package/dist/notifications/notification-types-setting.d.ts +62 -0
  141. package/dist/notifications/notification-types-setting.js +192 -0
  142. package/dist/notifications/notification-types-setting.js.map +1 -0
  143. package/dist/notifications/notification-types.d.ts +75 -0
  144. package/dist/notifications/notification-types.js +2 -0
  145. package/dist/notifications/notification-types.js.map +1 -0
  146. package/dist/notifications/notifications-labels.d.ts +131 -0
  147. package/dist/notifications/notifications-labels.js +83 -0
  148. package/dist/notifications/notifications-labels.js.map +1 -0
  149. package/dist/notifications/push-device-setting.d.ts +37 -0
  150. package/dist/notifications/push-device-setting.js +164 -0
  151. package/dist/notifications/push-device-setting.js.map +1 -0
  152. package/dist/notifications/push-devices-setting.d.ts +44 -0
  153. package/dist/notifications/push-devices-setting.js +203 -0
  154. package/dist/notifications/push-devices-setting.js.map +1 -0
  155. package/dist/notifications/quiet-hours-setting.d.ts +47 -0
  156. package/dist/notifications/quiet-hours-setting.js +131 -0
  157. package/dist/notifications/quiet-hours-setting.js.map +1 -0
  158. package/dist/notifications/time-zone-select.d.ts +50 -0
  159. package/dist/notifications/time-zone-select.js +76 -0
  160. package/dist/notifications/time-zone-select.js.map +1 -0
  161. package/dist/notifications/unsubscribe-panel.d.ts +53 -0
  162. package/dist/notifications/unsubscribe-panel.js +139 -0
  163. package/dist/notifications/unsubscribe-panel.js.map +1 -0
  164. package/dist/notifications/use-push-device.d.ts +122 -0
  165. package/dist/notifications/use-push-device.js +230 -0
  166. package/dist/notifications/use-push-device.js.map +1 -0
  167. package/dist/rhf/fields.d.ts +26 -19
  168. package/dist/rhf/fields.js +51 -22
  169. package/dist/rhf/fields.js.map +1 -1
  170. package/dist/settings/device-reset-setting-labels.d.ts +3 -0
  171. package/dist/settings/device-reset-setting-labels.js +15 -0
  172. package/dist/settings/device-reset-setting-labels.js.map +1 -0
  173. package/dist/settings/device-reset-setting.d.ts +58 -0
  174. package/dist/settings/device-reset-setting.js +51 -0
  175. package/dist/settings/device-reset-setting.js.map +1 -0
  176. package/dist/shell/app-shell.js +5 -0
  177. package/dist/shell/app-shell.js.map +1 -1
  178. package/dist/theme/contrast-tokens.d.ts +42 -4
  179. package/dist/theme/contrast-tokens.js +56 -9
  180. package/dist/theme/contrast-tokens.js.map +1 -1
  181. package/dist/theme/contrast.d.ts +4 -2
  182. package/dist/theme/contrast.js +13 -0
  183. package/dist/theme/contrast.js.map +1 -1
  184. package/dist/theme/palette-derive.d.ts +15 -1
  185. package/dist/theme/palette-derive.js +37 -8
  186. package/dist/theme/palette-derive.js.map +1 -1
  187. package/dist/theme/palette-presets.d.ts +2 -1
  188. package/dist/theme/palette-presets.js +5 -5
  189. package/dist/theme/palette-presets.js.map +1 -1
  190. package/dist/theme/palette-store.js +6 -0
  191. package/dist/theme/palette-store.js.map +1 -1
  192. package/dist/theme/text-size.js +6 -0
  193. package/dist/theme/text-size.js.map +1 -1
  194. package/dist/theme/theme-store.js +6 -0
  195. package/dist/theme/theme-store.js.map +1 -1
  196. package/package.json +1 -1
  197. package/src/admin/role-select.tsx +4 -1
  198. package/src/components/amount-input.tsx +2 -1
  199. package/src/components/autocomplete.tsx +5 -2
  200. package/src/components/button-look.ts +15 -5
  201. package/src/components/checkbox-group.tsx +22 -4
  202. package/src/components/column-mapper.tsx +6 -2
  203. package/src/components/combobox.tsx +5 -2
  204. package/src/components/country-select.tsx +6 -1
  205. package/src/components/currency-select.tsx +12 -3
  206. package/src/components/date-field.tsx +2 -2
  207. package/src/components/date-picker.tsx +3 -0
  208. package/src/components/date-range-picker.tsx +3 -0
  209. package/src/components/entity-combobox.tsx +5 -2
  210. package/src/components/field-parts.tsx +107 -19
  211. package/src/components/field-strip.tsx +4 -3
  212. package/src/components/field.tsx +28 -15
  213. package/src/components/help-popover.tsx +9 -7
  214. package/src/components/icon-picker.tsx +8 -3
  215. package/src/components/inline-entity-combobox.tsx +5 -2
  216. package/src/components/input.tsx +4 -2
  217. package/src/components/month-picker.tsx +10 -3
  218. package/src/components/multi-entity-combobox.tsx +5 -2
  219. package/src/components/multi-select.tsx +6 -1
  220. package/src/components/number-input.tsx +2 -2
  221. package/src/components/numeric-field.ts +10 -2
  222. package/src/components/one-time-code-input.tsx +5 -3
  223. package/src/components/phone-input.tsx +4 -0
  224. package/src/components/popover.tsx +3 -1
  225. package/src/components/select.tsx +6 -3
  226. package/src/components/slider.tsx +10 -3
  227. package/src/components/stat-tile.tsx +3 -18
  228. package/src/components/swatch-picker.tsx +9 -4
  229. package/src/components/text-link.tsx +3 -1
  230. package/src/components/textarea.tsx +11 -4
  231. package/src/components/toggle-group.tsx +21 -5
  232. package/src/eslint/role-utilities.ts +67 -11
  233. package/src/i18n/defaults.ts +4 -0
  234. package/src/i18n/german.ts +113 -0
  235. package/src/i18n/kit-labels.tsx +52 -1
  236. package/src/i18n/locales/en.ts +6 -0
  237. package/src/i18n/locales/es.ts +106 -0
  238. package/src/i18n/locales/fr.ts +106 -0
  239. package/src/i18n/locales/hu.ts +104 -0
  240. package/src/i18n/locales/it.ts +105 -0
  241. package/src/i18n/locales/zh.ts +96 -0
  242. package/src/i18n/review.ts +13 -0
  243. package/src/i18n/shared-labels.ts +2 -0
  244. package/src/index.ts +50 -0
  245. package/src/lib/device-settings.ts +146 -0
  246. package/src/lib/plain-text.ts +22 -0
  247. package/src/lib/safe-storage.ts +16 -0
  248. package/src/notifications/notification-parts.tsx +83 -0
  249. package/src/notifications/notification-types-setting.tsx +309 -0
  250. package/src/notifications/notification-types.ts +80 -0
  251. package/src/notifications/notifications-labels.ts +238 -0
  252. package/src/notifications/push-device-setting.tsx +224 -0
  253. package/src/notifications/push-devices-setting.tsx +306 -0
  254. package/src/notifications/quiet-hours-setting.tsx +185 -0
  255. package/src/notifications/time-zone-select.tsx +126 -0
  256. package/src/notifications/unsubscribe-panel.tsx +203 -0
  257. package/src/notifications/use-push-device.ts +392 -0
  258. package/src/rhf/fields.tsx +77 -29
  259. package/src/settings/device-reset-setting-labels.ts +20 -0
  260. package/src/settings/device-reset-setting.tsx +119 -0
  261. package/src/shell/app-shell.tsx +8 -0
  262. package/src/theme/contrast-tokens.ts +106 -12
  263. package/src/theme/contrast.ts +30 -4
  264. package/src/theme/palette-derive.ts +68 -7
  265. package/src/theme/palette-presets.ts +9 -6
  266. package/src/theme/palette-store.ts +12 -0
  267. package/src/theme/text-size.ts +8 -0
  268. package/src/theme/theme-store.ts +10 -0
  269. package/tokens.css +38 -4
@@ -1,4 +1,4 @@
1
- import { createContext, useContext, useMemo } from "react";
1
+ import { createContext, useContext, useEffect, useMemo } from "react";
2
2
  import {
3
3
  DEFAULT_APP_SHELL_LABELS,
4
4
  DEFAULT_CALCULATOR_LABELS,
@@ -98,6 +98,7 @@ import type { DemoLabels } from "../demo/demo-labels";
98
98
  import type { BillingLabels } from "../billing/billing-labels";
99
99
  import type { PlanChangeLabels } from "../admin/plan-change";
100
100
  import type { AppearanceLabels } from "../components/appearance-labels";
101
+ import type { DeviceResetLabels } from "../settings/device-reset-setting";
101
102
  import type { RowActionsLabels } from "../components/row-actions";
102
103
  import type { AppShellMoreLabels } from "../shell/app-shell";
103
104
  import type { AccountStateLabels } from "../components/account-chips";
@@ -111,6 +112,7 @@ import type { IbanInputLabels } from "../components/iban-input";
111
112
  import type { PhoneInputLabels } from "../components/phone-input";
112
113
  import type { SignChipLabels } from "../components/sign-chip";
113
114
  import type { ColumnMapperLabels } from "../components/column-mapper";
115
+ import type { NotificationsLabels } from "../notifications/notifications-labels";
114
116
 
115
117
  /**
116
118
  * EVERY string the kit renders, as one typed tree — and an optional provider that
@@ -168,6 +170,13 @@ export interface CommonLabels {
168
170
  /** Read after a link that opens a new tab (`<Button href external>`, TextLink):
169
171
  * nothing else tells a screen reader the page is about to change tabs. */
170
172
  opensInNewTab: string;
173
+ /** The name of a field's `help` "?" and its panel (round 0.36): "About “<field>”", the
174
+ * field's label as the argument, quoted so a capitalised label reads as a name — "About
175
+ * “Jerk shape”" (round 0.37; the other locales quoted it already). A `HelpPopover`
176
+ * passed as `help` keeps its own name. */
177
+ aboutField: (field: string) => string;
178
+ /** …and of a `help` "?" on a field with no label and no `aria-label` to name it by. */
179
+ help: string;
171
180
  }
172
181
 
173
182
  /** `DatePicker` / `DateRangePicker` chrome. The calendar inside has its own
@@ -421,6 +430,9 @@ export interface UiKitLabels {
421
430
  planChange: PlanChangeLabels;
422
431
  /** 0.32.0: the text-size and contrast settings (docs/text-size-harmonization.md §6). */
423
432
  appearance: AppearanceLabels;
433
+ /** 0.36.0: resetting this device's settings, the appearance group's last card
434
+ * (docs/settings-harmonization.md §11.3). */
435
+ deviceReset: DeviceResetLabels;
424
436
  /** 0.32.0: a row's actions folded into a "⋯" menu at Large (text size §10.8). */
425
437
  rowActions: RowActionsLabels;
426
438
  /** 0.32.0: the phone bar's "More" cell and sheet (text size §10.7). */
@@ -440,6 +452,10 @@ export interface UiKitLabels {
440
452
  /** 0.23.0: `ColumnMapper` / `ColumnRoleTable` — a pasted or dropped table, a role per
441
453
  * column. */
442
454
  columnMapper: ColumnMapperLabels;
455
+ /** 0.36.0: the notification cards — the types, quiet hours and the zone picker, this
456
+ * device's push, the device list, and the unsubscribe page
457
+ * (docs/notifications-harmonization.md §4.2). */
458
+ notifications: NotificationsLabels;
443
459
  }
444
460
 
445
461
  /**
@@ -660,9 +676,44 @@ export function UiKitProvider({
660
676
  }),
661
677
  [outer, labels, locale, weekStartsOn, linkComponent, chartTooltipPlacement, formatDate, tableStorageKeyPrefix],
662
678
  );
679
+ useTableViewsJoin(value.tableStorageKeyPrefix ?? DEFAULT_TABLE_STORAGE_KEY_PREFIX);
663
680
  return <KitI18nContext.Provider value={value}>{children}</KitI18nContext.Provider>;
664
681
  }
665
682
 
683
+ /** The kit's own table prefix: `DEFAULT_PERSIST_PREFIX` of components/use-table-state,
684
+ * restated because that module imports the router (a test pins the two equal). */
685
+ const DEFAULT_TABLE_STORAGE_KEY_PREFIX = "hbui-table:";
686
+
687
+ /**
688
+ * Reset this device's settings (docs/settings-harmonization.md §11.4): the tables below a
689
+ * provider keep their views under its prefix, so the provider joins the registry with
690
+ * that prefix — a view, no `reset`, since a table reads its view when it next mounts —
691
+ * while it is mounted. Nested providers with one prefix hold one entry.
692
+ *
693
+ * Through a literal `import()`, not a static import: every catalogue reaches this module,
694
+ * and a catalogue may reach nothing outside i18n/ (scripts/check-module-graph.mjs,
695
+ * english-catalogue-graph.test.ts). The theme stores and the shell import the registry
696
+ * statically, so it is loaded already and the join lands a microtask after the mount.
697
+ */
698
+ function useTableViewsJoin(prefix: string): void {
699
+ useEffect(() => {
700
+ let leave: (() => void) | undefined;
701
+ let gone = false;
702
+ import("../lib/device-settings").then(
703
+ ({ registerDeviceSetting }) => {
704
+ if (!gone) leave = registerDeviceSetting({ key: prefix, prefix: true, kind: "view" });
705
+ },
706
+ // A module of the kit's own that fails to load has nothing to join; the provider
707
+ // and its tables work as before.
708
+ () => undefined,
709
+ );
710
+ return () => {
711
+ gone = true;
712
+ leave?.();
713
+ };
714
+ }, [prefix]);
715
+ }
716
+
666
717
  function isRecord(v: unknown): v is Record<string, unknown> {
667
718
  return typeof v === "object" && v !== null && !Array.isArray(v);
668
719
  }
@@ -198,6 +198,12 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
198
198
  ? "1 item others can see will pass to an administrator."
199
199
  : `${n(count)} items others can see will pass to an administrator.`,
200
200
  },
201
+ notifications: {
202
+ ...d.notifications,
203
+ testSent: (count) => (count === 1 ? "Test sent to 1 device" : `Test sent to ${n(count)} devices`),
204
+ failures: (count) =>
205
+ count === 1 ? "1 failed delivery in a row" : `${n(count)} failed deliveries in a row`,
206
+ },
201
207
  settings: {
202
208
  ...d.settings,
203
209
  matchCount: (count) => (count === 1 ? "1 match" : `${n(count)} matches`),
@@ -259,6 +259,8 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
259
259
  noResults: "Sin resultados",
260
260
  fieldValue: (field, value) => `${field}: ${value}`,
261
261
  opensInNewTab: "se abre en una pestaña nueva",
262
+ aboutField: (field) => `Acerca de «${field}»`,
263
+ help: "Ayuda",
262
264
  },
263
265
  dataTable: {
264
266
  columns: "Columnas",
@@ -1047,6 +1049,96 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1047
1049
  rateLimited,
1048
1050
  failed: "No ha funcionado. Inténtelo de nuevo.",
1049
1051
  },
1052
+ // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.
1053
+ notifications: {
1054
+ typesTitle: "Avisarme de",
1055
+ typesDescription: "Elija de qué se entera y cómo.",
1056
+ byEmail: "Por correo electrónico",
1057
+ emailUnverified: "Confirme su dirección para recibirlos.",
1058
+ digestCadence: "Frecuencia",
1059
+ digestWeekly: "Semanal",
1060
+ digestMonthly: "Mensual",
1061
+ typesLoading: "Cargando los ajustes de notificaciones…",
1062
+ typesEmpty: "No hay notificaciones para esta cuenta.",
1063
+ quietTitle: "Horas de silencio",
1064
+ quietDescription: (inbox) =>
1065
+ inbox
1066
+ ? "Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada."
1067
+ : "Sin notificaciones push durante este intervalo.",
1068
+ quietFrom: "Desde",
1069
+ quietUntil: "Hasta",
1070
+ quietIncomplete:
1071
+ "Indique una hora de inicio y una de fin. Las horas de silencio se aplican cuando ambas están definidas.",
1072
+ timeZone: "Zona horaria",
1073
+ deviceZone: (zone) => `Este dispositivo está en ${zone}.`,
1074
+ useDeviceZone: "Usarla",
1075
+ regions: {
1076
+ Africa: "África",
1077
+ America: "América",
1078
+ Antarctica: "Antártida",
1079
+ Arctic: "Ártico",
1080
+ Asia: "Asia",
1081
+ Atlantic: "Atlántico",
1082
+ Australia: "Australia",
1083
+ Europe: "Europa",
1084
+ Indian: "Océano Índico",
1085
+ Pacific: "Pacífico",
1086
+ },
1087
+ pushTitle: "Notificaciones push",
1088
+ pushDescription: "Notificaciones en este dispositivo, también con la app cerrada.",
1089
+ unsupported: "Este navegador no admite notificaciones push.",
1090
+ iosInstall: (app) =>
1091
+ `En iPhone o iPad, añada primero ${app} a la pantalla de inicio: iOS solo entrega notificaciones a la app instalada.`,
1092
+ notConfigured: "Las notificaciones push no están configuradas en este servidor.",
1093
+ blocked: "Las notificaciones están bloqueadas en los ajustes de este navegador.",
1094
+ on: "Las notificaciones están activadas en este dispositivo.",
1095
+ off: "Las notificaciones están desactivadas en este dispositivo.",
1096
+ otherAccount:
1097
+ "Este navegador recibe notificaciones de otra cuenta. Actívelas aquí para recibirlas en la cuenta con la que ha iniciado sesión.",
1098
+ enable: "Activar notificaciones",
1099
+ disable: "Desactivar",
1100
+ sendTest: "Enviar una prueba",
1101
+ enableFailed: "No se pudieron activar las notificaciones.",
1102
+ noServiceWorker:
1103
+ "No se pudo contactar con el service worker de la app. Recargue la página e inténtelo de nuevo.",
1104
+ pushTimeout: "El servicio push del navegador no respondió. Compruebe su conexión e inténtelo de nuevo.",
1105
+ testSent: (count) => `Prueba enviada a ${n(count)} ${plural(count, "dispositivo", "dispositivos")}`,
1106
+ testNone: "Ningún dispositivo aceptó la prueba. Active primero las notificaciones en este dispositivo.",
1107
+ testFailed: "No se pudo enviar la notificación de prueba.",
1108
+ explainerTitle: "¿Activar las notificaciones?",
1109
+ explainerBody: (app) =>
1110
+ `${app} solo envía notificaciones de lo que usted elija, y puede desactivarlas en cualquier momento.`,
1111
+ explainerHint: "A continuación, su navegador le pedirá permiso.",
1112
+ explainerContinue: "Continuar",
1113
+ devicesTitle: "Dispositivos de notificación",
1114
+ devicesDescription:
1115
+ "Todos los dispositivos que reciben notificaciones push de su cuenta. Quite los que ya no use.",
1116
+ devicesLoading: "Cargando dispositivos…",
1117
+ devicesEmpty: "Aún no hay ningún dispositivo que reciba notificaciones.",
1118
+ unknownDevice: "Dispositivo desconocido",
1119
+ thisDevice: "Este dispositivo",
1120
+ added: (date) => `Añadido el ${date}`,
1121
+ lastDelivery: (date) => `Última entrega el ${date}`,
1122
+ noDelivery: "Aún sin entregas",
1123
+ failures: (count) =>
1124
+ `${n(count)} ${plural(count, "entrega fallida consecutiva", "entregas fallidas consecutivas")}`,
1125
+ remove: "Quitar",
1126
+ // Starts with `remove`, the button's visible text, for voice control.
1127
+ removeItem: (device) => `Quitar ${device}`,
1128
+ removePrompt: "¿Dejar de enviar notificaciones a este dispositivo?",
1129
+ unsubscribeTitle: "Notificaciones por correo electrónico",
1130
+ unsubscribeAbout: (type) => `Recibe correos sobre: ${type}.`,
1131
+ unsubscribeGeneric: "Recibe correos de notificación.",
1132
+ stopThese: "Dejar de recibir estos correos",
1133
+ stopAll: (app) => `Dejar de recibir todos los correos de notificación de ${app}`,
1134
+ stoppedThese: "Hecho. Ya no recibirá estos correos.",
1135
+ stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,
1136
+ accountMail: "Los correos sobre su cuenta seguirán llegando.",
1137
+ turnBackOn: "Puede volver a activarlos en cualquier momento en los ajustes.",
1138
+ openSettings: "Abrir los ajustes",
1139
+ invalidLink: "Este enlace ya no funciona. Puede desactivar los correos en los ajustes.",
1140
+ failed: "No ha funcionado. Inténtelo de nuevo.",
1141
+ },
1050
1142
  sessions: {
1051
1143
  title: "Sesiones",
1052
1144
  description:
@@ -1584,6 +1676,20 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1584
1676
  contrastModes: { system: "Sistema", standard: "Estándar", more: "Aumentado" },
1585
1677
  saveFailed: "No se ha podido guardar en su cuenta. En este dispositivo se aplica igualmente.",
1586
1678
  },
1679
+ // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1680
+ // last card of "Apariencia". "Restablecer", as a phone's own settings say it.
1681
+ deviceReset: {
1682
+ title: "Restablecer este dispositivo",
1683
+ description:
1684
+ "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.",
1685
+ action: "Restablecer los ajustes de este dispositivo",
1686
+ confirmTitle: "¿Restablecer los ajustes de este dispositivo?",
1687
+ confirmBody:
1688
+ "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.",
1689
+ confirmAction: "Restablecer",
1690
+ done: "Los ajustes de este dispositivo han vuelto a sus valores predeterminados.",
1691
+ keywords: "restablecer predeterminado valores dispositivo restaurar apariencia tablas diseño",
1692
+ },
1587
1693
  rowActions: {
1588
1694
  actions: "Acciones",
1589
1695
  actionsFor: (name) => `Acciones de ${name}`,
@@ -265,6 +265,8 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
265
265
  // No-break space before the colon, per French typography.
266
266
  fieldValue: (field, value) => `${field}\u00a0: ${value}`,
267
267
  opensInNewTab: "s’ouvre dans un nouvel onglet",
268
+ aboutField: (field) => `À propos de «\u202f${field}\u202f»`,
269
+ help: "Aide",
268
270
  },
269
271
  dataTable: {
270
272
  columns: "Colonnes",
@@ -1074,6 +1076,96 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1074
1076
  rateLimited,
1075
1077
  failed: "Cela n’a pas fonctionné. Veuillez réessayer.",
1076
1078
  },
1079
+ // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards. The push
1080
+ // and device words follow keksdose's reviewed French.
1081
+ notifications: {
1082
+ typesTitle: "Me notifier pour",
1083
+ typesDescription: "Choisissez ce dont vous êtes averti, et comment.",
1084
+ byEmail: "Par e-mail",
1085
+ emailUnverified: "Confirmez votre adresse pour les recevoir.",
1086
+ digestCadence: "Fréquence",
1087
+ digestWeekly: "Hebdomadaire",
1088
+ digestMonthly: "Mensuelle",
1089
+ typesLoading: "Chargement des paramètres de notification…",
1090
+ typesEmpty: "Il n’y a aucune notification pour ce compte.",
1091
+ quietTitle: "Heures calmes",
1092
+ quietDescription: (inbox) =>
1093
+ inbox
1094
+ ? "Aucune notification push pendant cette plage. Elles arrivent quand même dans votre boîte de réception."
1095
+ : "Aucune notification push pendant cette plage.",
1096
+ quietFrom: "De",
1097
+ quietUntil: "Jusqu’à",
1098
+ quietIncomplete:
1099
+ "Définissez une heure de début et une heure de fin. Les heures calmes s’appliquent une fois les deux renseignées.",
1100
+ timeZone: "Fuseau horaire",
1101
+ deviceZone: (zone) => `Cet appareil est dans le fuseau ${zone}.`,
1102
+ useDeviceZone: "L’utiliser",
1103
+ regions: {
1104
+ Africa: "Afrique",
1105
+ America: "Amériques",
1106
+ Antarctica: "Antarctique",
1107
+ Arctic: "Arctique",
1108
+ Asia: "Asie",
1109
+ Atlantic: "Atlantique",
1110
+ Australia: "Australie",
1111
+ Europe: "Europe",
1112
+ Indian: "Océan Indien",
1113
+ Pacific: "Pacifique",
1114
+ },
1115
+ pushTitle: "Notifications push",
1116
+ pushDescription: "Les notifications sur cet appareil, même quand l’app est fermée.",
1117
+ unsupported: "Ce navigateur ne prend pas en charge les notifications push.",
1118
+ iosInstall: (app) =>
1119
+ `Sur iPhone ou iPad, ajoutez d’abord ${app} à votre écran d’accueil\u00a0: iOS ne délivre les notifications qu’à l’app installée.`,
1120
+ notConfigured: "Les notifications push ne sont pas configurées sur ce serveur.",
1121
+ blocked: "Les notifications sont bloquées dans les réglages de ce navigateur.",
1122
+ on: "Les notifications sont activées pour cet appareil.",
1123
+ off: "Les notifications sont désactivées pour cet appareil.",
1124
+ otherAccount:
1125
+ "Ce navigateur reçoit les notifications d’un autre compte. Activez-les ici pour les recevoir sur le compte avec lequel vous êtes connecté.",
1126
+ enable: "Activer les notifications",
1127
+ disable: "Désactiver",
1128
+ sendTest: "Envoyer un test",
1129
+ enableFailed: "Impossible d’activer les notifications.",
1130
+ noServiceWorker: "Impossible de joindre le service worker de l’app. Rechargez la page et réessayez.",
1131
+ pushTimeout: "Le service push du navigateur n’a pas répondu. Vérifiez votre connexion et réessayez.",
1132
+ testSent: (count) => `Test envoyé à ${n(count)} ${plural(count, "appareil", "appareils")}`,
1133
+ testNone: "Aucun appareil n’a accepté le test. Activez d’abord les notifications pour cet appareil.",
1134
+ testFailed: "Impossible d’envoyer la notification de test.",
1135
+ explainerTitle: "Activer les notifications\u202f?",
1136
+ explainerBody: (app) =>
1137
+ `${app} n’envoie de notifications que pour ce que vous choisissez, et vous pouvez les désactiver à tout moment.`,
1138
+ explainerHint: "Votre navigateur va ensuite demander l’autorisation.",
1139
+ explainerContinue: "Continuer",
1140
+ devicesTitle: "Appareils de notification",
1141
+ devicesDescription:
1142
+ "Tous les appareils qui reçoivent des notifications push pour votre compte. Retirez ceux que vous n’utilisez plus.",
1143
+ devicesLoading: "Chargement des appareils…",
1144
+ devicesEmpty: "Aucun appareil ne reçoit encore de notifications.",
1145
+ unknownDevice: "Appareil inconnu",
1146
+ thisDevice: "Cet appareil",
1147
+ added: (date) => `Ajouté le ${date}`,
1148
+ lastDelivery: (date) => `Dernière remise le ${date}`,
1149
+ noDelivery: "Aucune remise pour l’instant",
1150
+ failures: (count) =>
1151
+ `${n(count)} ${plural(count, "remise échouée", "remises échouées")} d’affilée`,
1152
+ remove: "Retirer",
1153
+ // Starts with `remove`, the button's visible text, for voice control.
1154
+ removeItem: (device) => `Retirer ${device}`,
1155
+ removePrompt: "Ne plus envoyer de notifications à cet appareil\u202f?",
1156
+ unsubscribeTitle: "Notifications par e-mail",
1157
+ unsubscribeAbout: (type) => `Vous recevez des e-mails concernant\u00a0: ${type}.`,
1158
+ unsubscribeGeneric: "Vous recevez des e-mails de notification.",
1159
+ stopThese: "Ne plus recevoir ces e-mails",
1160
+ stopAll: (app) => `Ne plus recevoir aucun e-mail de notification de ${app}`,
1161
+ stoppedThese: "C’est fait. Vous ne recevrez plus ces e-mails.",
1162
+ stoppedAll: (app) => `C’est fait. Vous ne recevrez plus d’e-mails de notification de ${app}.`,
1163
+ accountMail: "Les e-mails concernant votre compte continuent d’arriver.",
1164
+ turnBackOn: "Vous pouvez les réactiver à tout moment dans les paramètres.",
1165
+ openSettings: "Ouvrir les paramètres",
1166
+ invalidLink: "Ce lien ne fonctionne plus. Vous pouvez désactiver les e-mails dans les paramètres.",
1167
+ failed: "Cela n’a pas fonctionné. Veuillez réessayer.",
1168
+ },
1077
1169
  sessions: {
1078
1170
  title: "Sessions",
1079
1171
  description:
@@ -1624,6 +1716,20 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1624
1716
  contrastModes: { system: "Système", standard: "Standard", more: "Renforcé" },
1625
1717
  saveFailed: "Impossible de l’enregistrer dans votre compte. Le réglage s’applique tout de même sur cet appareil.",
1626
1718
  },
1719
+ // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1720
+ // last card of "Apparence". "Réglages", as `contrastHelp` says "réglage".
1721
+ deviceReset: {
1722
+ title: "Réinitialiser cet appareil",
1723
+ description:
1724
+ "Rétablit les valeurs par défaut de l’apparence de cet appareil et de l’état dans lequel ses tableaux et ses panneaux ont été laissés. Votre compte, vos données et votre connexion ne sont pas touchés.",
1725
+ action: "Réinitialiser les réglages de cet appareil",
1726
+ confirmTitle: "Réinitialiser les réglages de cet appareil ?",
1727
+ confirmBody:
1728
+ "Le thème, les couleurs, la taille du texte, le contraste et la langue reprennent ici leurs valeurs par défaut, et les tableaux et les panneaux s’ouvrent comme la première fois. Si votre compte définit une langue, une taille de texte ou un contraste, cet appareil s’y conforme de nouveau. Votre compte et vos autres appareils restent tels quels.",
1729
+ confirmAction: "Réinitialiser",
1730
+ done: "Les réglages de cet appareil ont retrouvé leurs valeurs par défaut.",
1731
+ keywords: "réinitialiser défaut appareil restaurer rétablir apparence tableaux disposition",
1732
+ },
1627
1733
  rowActions: {
1628
1734
  actions: "Actions",
1629
1735
  actionsFor: (name) => `Actions pour ${name}`,
@@ -257,6 +257,8 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
257
257
  noResults: "Nincs találat",
258
258
  fieldValue: (field, value) => `${field}: ${value}`,
259
259
  opensInNewTab: "új lapon nyílik meg",
260
+ aboutField: (field) => `Súgó: ${field}`,
261
+ help: "Súgó",
260
262
  },
261
263
  dataTable: {
262
264
  columns: "Oszlopok",
@@ -1058,6 +1060,94 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1058
1060
  rateLimited,
1059
1061
  failed: "Ez nem sikerült. Kérjük, próbálja újra.",
1060
1062
  },
1063
+ // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.
1064
+ notifications: {
1065
+ typesTitle: "Értesítést kérek ezekről",
1066
+ typesDescription: "Válassza ki, miről és hogyan kapjon értesítést.",
1067
+ byEmail: "E-mailben",
1068
+ emailUnverified: "Erősítse meg a címét, hogy megkapja ezeket.",
1069
+ digestCadence: "Gyakoriság",
1070
+ digestWeekly: "Hetente",
1071
+ digestMonthly: "Havonta",
1072
+ typesLoading: "Értesítési beállítások betöltése…",
1073
+ typesEmpty: "Ehhez a fiókhoz nincsenek értesítések.",
1074
+ quietTitle: "Csendes órák",
1075
+ quietDescription: (inbox) =>
1076
+ inbox
1077
+ ? "Ebben az idősávban nem érkeznek push-értesítések. A beérkezett értesítések közé így is bekerülnek."
1078
+ : "Ebben az idősávban nem érkeznek push-értesítések.",
1079
+ quietFrom: "Ettől",
1080
+ quietUntil: "Eddig",
1081
+ quietIncomplete:
1082
+ "Adjon meg kezdő és záró időpontot is. A csendes órák csak akkor lépnek életbe, ha mindkettő be van állítva.",
1083
+ timeZone: "Időzóna",
1084
+ deviceZone: (zone) => `Ez az eszköz ebben az időzónában van: ${zone}.`,
1085
+ useDeviceZone: "Ezt használom",
1086
+ regions: {
1087
+ Africa: "Afrika",
1088
+ America: "Amerika",
1089
+ Antarctica: "Antarktisz",
1090
+ Arctic: "Északi-sarkvidék",
1091
+ Asia: "Ázsia",
1092
+ Atlantic: "Atlanti-óceán",
1093
+ Australia: "Ausztrália",
1094
+ Europe: "Európa",
1095
+ Indian: "Indiai-óceán",
1096
+ Pacific: "Csendes-óceán",
1097
+ },
1098
+ pushTitle: "Push-értesítések",
1099
+ pushDescription: "Értesítések ezen az eszközön, akkor is, ha az alkalmazás be van zárva.",
1100
+ unsupported: "Ez a böngésző nem támogatja a push-értesítéseket.",
1101
+ iosInstall: (app) =>
1102
+ `iPhone-on vagy iPaden előbb adja hozzá a(z) ${app} alkalmazást a kezdőképernyőhöz: az iOS csak a telepített alkalmazásnak kézbesít értesítéseket.`,
1103
+ notConfigured: "A push-értesítések nincsenek beállítva ezen a szerveren.",
1104
+ blocked: "Az értesítések le vannak tiltva ennek a böngészőnek a beállításaiban.",
1105
+ on: "Az értesítések be vannak kapcsolva ezen az eszközön.",
1106
+ off: "Az értesítések ki vannak kapcsolva ezen az eszközön.",
1107
+ otherAccount:
1108
+ "Ez a böngésző egy másik fiók értesítéseit kapja. Kapcsolja be itt, hogy a bejelentkezett fiók értesítéseit kapja.",
1109
+ enable: "Értesítések bekapcsolása",
1110
+ disable: "Kikapcsolás",
1111
+ sendTest: "Teszt küldése",
1112
+ enableFailed: "Az értesítéseket nem sikerült bekapcsolni.",
1113
+ noServiceWorker: "Az alkalmazás service workere nem érhető el. Töltse újra az oldalt, és próbálja újra.",
1114
+ pushTimeout: "A böngésző push-szolgáltatása nem válaszolt. Ellenőrizze a kapcsolatot, és próbálja újra.",
1115
+ testSent: (count) => `Teszt elküldve ${n(count)} eszközre`,
1116
+ testNone: "Egyik eszköz sem fogadta a tesztet. Előbb kapcsolja be az értesítéseket ezen az eszközön.",
1117
+ testFailed: "A tesztértesítést nem sikerült elküldeni.",
1118
+ explainerTitle: "Bekapcsolja az értesítéseket?",
1119
+ explainerBody: (app) =>
1120
+ `A(z) ${app} csak arról küld értesítést, amit Ön kiválaszt, és bármikor kikapcsolhatja őket.`,
1121
+ explainerHint: "Ezután a böngésző engedélyt kér.",
1122
+ explainerContinue: "Tovább",
1123
+ devicesTitle: "Értesítési eszközök",
1124
+ devicesDescription:
1125
+ "Minden eszköz, amely push-értesítéseket kap a fiókjához. Távolítsa el azokat, amelyeket már nem használ.",
1126
+ devicesLoading: "Eszközök betöltése…",
1127
+ devicesEmpty: "Még egy eszköz sem kap értesítéseket.",
1128
+ unknownDevice: "Ismeretlen eszköz",
1129
+ thisDevice: "Ez az eszköz",
1130
+ added: (date) => `Hozzáadva: ${date}`,
1131
+ lastDelivery: (date) => `Utolsó kézbesítés: ${date}`,
1132
+ noDelivery: "Még nem volt kézbesítés",
1133
+ failures: (count) => `${n(count)} sikertelen kézbesítés egymás után`,
1134
+ remove: "Eltávolítás",
1135
+ // Starts with `remove`, the button's visible text, for voice control.
1136
+ removeItem: (device) => `Eltávolítás: ${device}`,
1137
+ removePrompt: "Leállítja az értesítések küldését erre az eszközre?",
1138
+ unsubscribeTitle: "E-mail-értesítések",
1139
+ unsubscribeAbout: (type) => `E-maileket kap erről: ${type}.`,
1140
+ unsubscribeGeneric: "Értesítő e-maileket kap.",
1141
+ stopThese: "Leiratkozás ezekről az e-mailekről",
1142
+ stopAll: (app) => `Leiratkozás a(z) ${app} összes értesítő e-mailjéről`,
1143
+ stoppedThese: "Kész. Ezeket az e-maileket többé nem kapja meg.",
1144
+ stoppedAll: (app) => `Kész. A(z) ${app} értesítő e-mailjeit többé nem kapja meg.`,
1145
+ accountMail: "A fiókjával kapcsolatos e-maileket továbbra is megkapja.",
1146
+ turnBackOn: "A beállításokban bármikor újra bekapcsolhatja őket.",
1147
+ openSettings: "Beállítások megnyitása",
1148
+ invalidLink: "Ez a link már nem működik. Az e-maileket a beállításokban is kikapcsolhatja.",
1149
+ failed: "Ez nem sikerült. Kérjük, próbálja újra.",
1150
+ },
1061
1151
  sessions: {
1062
1152
  title: "Munkamenetek",
1063
1153
  description:
@@ -1592,6 +1682,20 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1592
1682
  contrastModes: { system: "Rendszer", standard: "Normál", more: "Fokozott" },
1593
1683
  saveFailed: "Nem sikerült menteni a fiókjába. Ezen az eszközön ettől még érvényes.",
1594
1684
  },
1685
+ // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1686
+ // last card of "Megjelenés". "Ön", as the rest of the catalogue.
1687
+ deviceReset: {
1688
+ title: "Az eszköz visszaállítása",
1689
+ description:
1690
+ "Visszaállítja az alapértékekre ennek az eszköznek a megjelenését, és azt, ahogyan a táblázatai és panelei maradtak. Fiókját, adatait és bejelentkezését ez nem érinti.",
1691
+ action: "Az eszköz beállításainak visszaállítása",
1692
+ confirmTitle: "Visszaállítja ennek az eszköznek a beállításait?",
1693
+ confirmBody:
1694
+ "A téma, a színek, a szövegméret, a kontraszt és a nyelv itt visszaáll az alapértékre, a táblázatok és a panelek pedig úgy nyílnak meg, mint először. Ha a fiókjában van beállított nyelv, szövegméret vagy kontraszt, ez az eszköz ismét azt követi. Fiókja és többi eszköze változatlan marad.",
1695
+ confirmAction: "Visszaállítás",
1696
+ done: "Az eszköz beállításai visszaálltak az alapértékekre.",
1697
+ keywords: "visszaállítás alapértelmezett alapérték eszköz helyreállítás megjelenés táblázatok elrendezés",
1698
+ },
1595
1699
  rowActions: {
1596
1700
  actions: "Műveletek",
1597
1701
  actionsFor: (name) => `${name} – műveletek`,
@@ -261,6 +261,8 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
261
261
  noResults: "Nessun risultato",
262
262
  fieldValue: (field, value) => `${field}: ${value}`,
263
263
  opensInNewTab: "si apre in una nuova scheda",
264
+ aboutField: (field) => `Informazioni su «${field}»`,
265
+ help: "Aiuto",
264
266
  },
265
267
  dataTable: {
266
268
  columns: "Colonne",
@@ -1058,6 +1060,95 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1058
1060
  rateLimited,
1059
1061
  failed: "Non ha funzionato. Riprovi.",
1060
1062
  },
1063
+ // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards. The push
1064
+ // and device words follow keksdose's reviewed Italian.
1065
+ notifications: {
1066
+ typesTitle: "Avvisami per",
1067
+ typesDescription: "Scelga di cosa essere avvisato, e come.",
1068
+ byEmail: "Per e-mail",
1069
+ emailUnverified: "Confermi il Suo indirizzo per riceverle.",
1070
+ digestCadence: "Frequenza",
1071
+ digestWeekly: "Settimanale",
1072
+ digestMonthly: "Mensile",
1073
+ typesLoading: "Caricamento delle impostazioni di notifica…",
1074
+ typesEmpty: "Non ci sono notifiche per questo account.",
1075
+ quietTitle: "Ore di silenzio",
1076
+ quietDescription: (inbox) =>
1077
+ inbox
1078
+ ? "Nessuna notifica push in questa fascia oraria. Arrivano comunque nella Sua casella."
1079
+ : "Nessuna notifica push in questa fascia oraria.",
1080
+ quietFrom: "Dalle",
1081
+ quietUntil: "Alle",
1082
+ quietIncomplete:
1083
+ "Imposti sia l’ora di inizio sia quella di fine. Le ore di silenzio valgono solo quando sono impostate entrambe.",
1084
+ timeZone: "Fuso orario",
1085
+ deviceZone: (zone) => `Questo dispositivo è nel fuso ${zone}.`,
1086
+ useDeviceZone: "Usa questo",
1087
+ regions: {
1088
+ Africa: "Africa",
1089
+ America: "Americhe",
1090
+ Antarctica: "Antartide",
1091
+ Arctic: "Artide",
1092
+ Asia: "Asia",
1093
+ Atlantic: "Atlantico",
1094
+ Australia: "Australia",
1095
+ Europe: "Europa",
1096
+ Indian: "Oceano Indiano",
1097
+ Pacific: "Pacifico",
1098
+ },
1099
+ pushTitle: "Notifiche push",
1100
+ pushDescription: "Notifiche su questo dispositivo, anche quando l’app è chiusa.",
1101
+ unsupported: "Questo browser non supporta le notifiche push.",
1102
+ iosInstall: (app) =>
1103
+ `Su iPhone o iPad aggiunga prima ${app} alla schermata Home: iOS recapita le notifiche solo all’app installata.`,
1104
+ notConfigured: "Le notifiche push non sono configurate su questo server.",
1105
+ blocked: "Le notifiche sono bloccate nelle impostazioni di questo browser.",
1106
+ on: "Le notifiche sono attive per questo dispositivo.",
1107
+ off: "Le notifiche sono disattivate per questo dispositivo.",
1108
+ otherAccount:
1109
+ "Questo browser riceve le notifiche di un altro account. Le attivi qui per riceverle sull’account con cui ha effettuato l’accesso.",
1110
+ enable: "Attiva notifiche",
1111
+ disable: "Disattiva",
1112
+ sendTest: "Invia un test",
1113
+ enableFailed: "Impossibile attivare le notifiche.",
1114
+ noServiceWorker: "Impossibile raggiungere il service worker dell’app. Ricarichi la pagina e riprovi.",
1115
+ pushTimeout: "Il servizio push del browser non ha risposto. Controlli la connessione e riprovi.",
1116
+ testSent: (count) => `Test inviato a ${n(count)} ${plural(count, "dispositivo", "dispositivi")}`,
1117
+ testNone: "Nessun dispositivo ha accettato il test. Attivi prima le notifiche per questo dispositivo.",
1118
+ testFailed: "Impossibile inviare la notifica di prova.",
1119
+ explainerTitle: "Attivare le notifiche?",
1120
+ explainerBody: (app) =>
1121
+ `${app} invia notifiche solo per ciò che sceglie Lei, e può disattivarle in qualsiasi momento.`,
1122
+ explainerHint: "Il browser Le chiederà poi il permesso.",
1123
+ explainerContinue: "Continua",
1124
+ devicesTitle: "Dispositivi di notifica",
1125
+ devicesDescription:
1126
+ "Tutti i dispositivi che ricevono notifiche push per il Suo account. Rimuova quelli che non usa più.",
1127
+ devicesLoading: "Caricamento dei dispositivi…",
1128
+ devicesEmpty: "Nessun dispositivo riceve ancora notifiche.",
1129
+ unknownDevice: "Dispositivo sconosciuto",
1130
+ thisDevice: "Questo dispositivo",
1131
+ added: (date) => `Aggiunto il ${date}`,
1132
+ lastDelivery: (date) => `Ultimo recapito il ${date}`,
1133
+ noDelivery: "Ancora nessun recapito",
1134
+ failures: (count) => `${n(count)} ${plural(count, "recapito fallito", "recapiti falliti")} di fila`,
1135
+ remove: "Rimuovi",
1136
+ // Starts with `remove`, the button's visible text, for voice control.
1137
+ removeItem: (device) => `Rimuovi ${device}`,
1138
+ removePrompt: "Smettere di inviare notifiche a questo dispositivo?",
1139
+ unsubscribeTitle: "Notifiche via e-mail",
1140
+ unsubscribeAbout: (type) => `Riceve e-mail su: ${type}.`,
1141
+ unsubscribeGeneric: "Riceve e-mail di notifica.",
1142
+ stopThese: "Non ricevere più queste e-mail",
1143
+ stopAll: (app) => `Non ricevere più e-mail di notifica da ${app}`,
1144
+ stoppedThese: "Fatto. Non riceverà più queste e-mail.",
1145
+ stoppedAll: (app) => `Fatto. Non riceverà più e-mail di notifica da ${app}.`,
1146
+ accountMail: "Le e-mail sul Suo account continuano ad arrivare.",
1147
+ turnBackOn: "Può riattivarle in qualsiasi momento nelle impostazioni.",
1148
+ openSettings: "Apri le impostazioni",
1149
+ invalidLink: "Questo link non funziona più. Può disattivare le e-mail nelle impostazioni.",
1150
+ failed: "Non ha funzionato. Riprovi.",
1151
+ },
1061
1152
  sessions: {
1062
1153
  title: "Sessioni",
1063
1154
  description:
@@ -1603,6 +1694,20 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1603
1694
  contrastModes: { system: "Sistema", standard: "Standard", more: "Aumentato" },
1604
1695
  saveFailed: "Non è stato possibile salvarlo nel Suo account. Su questo dispositivo vale comunque.",
1605
1696
  },
1697
+ // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1698
+ // last card of "Aspetto". "Lei", capitalised as the rest of the catalogue.
1699
+ deviceReset: {
1700
+ title: "Ripristina questo dispositivo",
1701
+ description:
1702
+ "Riporta ai valori predefiniti l’aspetto di questo dispositivo e il modo in cui sono state lasciate le sue tabelle e i suoi pannelli. Il Suo account, i Suoi dati e il Suo accesso restano invariati.",
1703
+ action: "Ripristina le impostazioni di questo dispositivo",
1704
+ confirmTitle: "Ripristinare le impostazioni di questo dispositivo?",
1705
+ confirmBody:
1706
+ "Tema, colori, dimensione del testo, contrasto e lingua tornano qui ai valori predefiniti, e tabelle e pannelli si aprono come la prima volta. Se il Suo account ha una lingua, una dimensione del testo o un contrasto, questo dispositivo torna a seguirli. Il Suo account e i Suoi altri dispositivi restano come sono.",
1707
+ confirmAction: "Ripristina",
1708
+ done: "Le impostazioni di questo dispositivo sono tornate ai valori predefiniti.",
1709
+ keywords: "ripristina predefiniti dispositivo reimposta aspetto tabelle layout",
1710
+ },
1606
1711
  rowActions: {
1607
1712
  actions: "Azioni",
1608
1713
  actionsFor: (name) => `Azioni per ${name}`,