@eifi1/ui-kit 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +23 -12
  2. package/dist/admin/admin-area-labels.d.ts +9 -0
  3. package/dist/admin/admin-area-labels.js +5 -1
  4. package/dist/admin/admin-area-labels.js.map +1 -1
  5. package/dist/admin/admin-overview.d.ts +16 -1
  6. package/dist/admin/admin-overview.js +12 -1
  7. package/dist/admin/admin-overview.js.map +1 -1
  8. package/dist/admin/mail-test-card.d.ts +3 -2
  9. package/dist/admin/mail-test-card.js +3 -1
  10. package/dist/admin/mail-test-card.js.map +1 -1
  11. package/dist/components/appearance-labels.d.ts +10 -0
  12. package/dist/components/appearance-labels.js +6 -1
  13. package/dist/components/appearance-labels.js.map +1 -1
  14. package/dist/components/data-table-column-settings.js +2 -2
  15. package/dist/components/data-table-column-settings.js.map +1 -1
  16. package/dist/components/data-table-head.js +2 -2
  17. package/dist/components/data-table-head.js.map +1 -1
  18. package/dist/components/data-table-row-actions.d.ts +18 -2
  19. package/dist/components/data-table-row-actions.js +86 -2
  20. package/dist/components/data-table-row-actions.js.map +1 -1
  21. package/dist/components/data-table-shared.js +9 -2
  22. package/dist/components/data-table-shared.js.map +1 -1
  23. package/dist/components/data-table.d.ts +43 -2
  24. package/dist/components/data-table.js +9 -4
  25. package/dist/components/data-table.js.map +1 -1
  26. package/dist/components/date-format-setting.d.ts +29 -0
  27. package/dist/components/date-format-setting.js +36 -0
  28. package/dist/components/date-format-setting.js.map +1 -0
  29. package/dist/components/swipeable-row.d.ts +8 -0
  30. package/dist/components/swipeable-row.js.map +1 -1
  31. package/dist/components/tabs.d.ts +3 -2
  32. package/dist/components/tabs.js +1 -1
  33. package/dist/components/tabs.js.map +1 -1
  34. package/dist/components/translation-review-editor.js +1 -0
  35. package/dist/components/translation-review-editor.js.map +1 -1
  36. package/dist/components/translation-review-labels.d.ts +5 -0
  37. package/dist/components/translation-review-labels.js +2 -0
  38. package/dist/components/translation-review-labels.js.map +1 -1
  39. package/dist/components/translation-review.d.ts +18 -8
  40. package/dist/components/translation-review.js +64 -7
  41. package/dist/components/translation-review.js.map +1 -1
  42. package/dist/components/write-lock-labels.js +2 -1
  43. package/dist/components/write-lock-labels.js.map +1 -1
  44. package/dist/components/write-lock.d.ts +33 -3
  45. package/dist/components/write-lock.js +9 -0
  46. package/dist/components/write-lock.js.map +1 -1
  47. package/dist/data-table.d.ts +1 -1
  48. package/dist/data-table.js.map +1 -1
  49. package/dist/eslint/index.js +1 -1
  50. package/dist/feedback/feedback-row-detail.d.ts +4 -2
  51. package/dist/feedback/feedback-row-detail.js +17 -26
  52. package/dist/feedback/feedback-row-detail.js.map +1 -1
  53. package/dist/feedback/feedback-swipe.d.ts +18 -0
  54. package/dist/feedback/feedback-swipe.js +10 -1
  55. package/dist/feedback/feedback-swipe.js.map +1 -1
  56. package/dist/i18n/german.js +41 -5
  57. package/dist/i18n/german.js.map +1 -1
  58. package/dist/i18n/kit-labels.d.ts +12 -1
  59. package/dist/i18n/kit-labels.js +8 -2
  60. package/dist/i18n/kit-labels.js.map +1 -1
  61. package/dist/i18n/locales/en.js +40 -6
  62. package/dist/i18n/locales/en.js.map +2 -2
  63. package/dist/i18n/locales/es.js +41 -5
  64. package/dist/i18n/locales/es.js.map +1 -1
  65. package/dist/i18n/locales/fr.js +41 -5
  66. package/dist/i18n/locales/fr.js.map +1 -1
  67. package/dist/i18n/locales/hu.js +41 -5
  68. package/dist/i18n/locales/hu.js.map +1 -1
  69. package/dist/i18n/locales/it.js +41 -5
  70. package/dist/i18n/locales/it.js.map +1 -1
  71. package/dist/i18n/locales/zh.js +41 -5
  72. package/dist/i18n/locales/zh.js.map +1 -1
  73. package/dist/i18n/review.js +3 -1
  74. package/dist/i18n/review.js.map +1 -1
  75. package/dist/index.d.ts +15 -2
  76. package/dist/index.js +35 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/lib/date-format.d.ts +81 -0
  79. package/dist/lib/date-format.js +56 -0
  80. package/dist/lib/date-format.js.map +1 -0
  81. package/dist/lib/format.d.ts +3 -0
  82. package/dist/lib/format.js +5 -4
  83. package/dist/lib/format.js.map +1 -1
  84. package/dist/notifications/device-zone-report.d.ts +27 -0
  85. package/dist/notifications/device-zone-report.js +24 -0
  86. package/dist/notifications/device-zone-report.js.map +1 -0
  87. package/dist/notifications/feedback-notification-types-labels.d.ts +7 -1
  88. package/dist/notifications/feedback-notification-types-labels.js +4 -1
  89. package/dist/notifications/feedback-notification-types-labels.js.map +1 -1
  90. package/dist/notifications/feedback-notification-types.d.ts +11 -5
  91. package/dist/notifications/feedback-notification-types.js +2 -1
  92. package/dist/notifications/feedback-notification-types.js.map +1 -1
  93. package/dist/notifications/notification-bell.d.ts +33 -0
  94. package/dist/notifications/notification-bell.js +74 -0
  95. package/dist/notifications/notification-bell.js.map +1 -0
  96. package/dist/notifications/notification-inbox.d.ts +77 -0
  97. package/dist/notifications/notification-inbox.js +206 -0
  98. package/dist/notifications/notification-inbox.js.map +1 -0
  99. package/dist/notifications/notification-types-setting.d.ts +6 -4
  100. package/dist/notifications/notification-types-setting.js +103 -45
  101. package/dist/notifications/notification-types-setting.js.map +1 -1
  102. package/dist/notifications/notification-types.d.ts +19 -7
  103. package/dist/notifications/notifications-labels.d.ts +41 -7
  104. package/dist/notifications/notifications-labels.js +18 -1
  105. package/dist/notifications/notifications-labels.js.map +1 -1
  106. package/dist/notifications/push-devices-setting.d.ts +20 -3
  107. package/dist/notifications/push-devices-setting.js +93 -33
  108. package/dist/notifications/push-devices-setting.js.map +1 -1
  109. package/dist/notifications/push-worker.d.ts +108 -0
  110. package/dist/notifications/push-worker.js +62 -0
  111. package/dist/notifications/push-worker.js.map +1 -0
  112. package/dist/notifications/quiet-hours-setting.d.ts +29 -17
  113. package/dist/notifications/quiet-hours-setting.js +9 -41
  114. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  115. package/dist/notifications/time-zone-select.d.ts +5 -2
  116. package/dist/notifications/time-zone-select.js.map +1 -1
  117. package/dist/notifications/use-push-device.d.ts +4 -17
  118. package/dist/notifications/use-push-device.js +7 -15
  119. package/dist/notifications/use-push-device.js.map +1 -1
  120. package/dist/offline/local-first.d.ts +33 -0
  121. package/dist/offline/local-first.js +39 -0
  122. package/dist/offline/local-first.js.map +1 -0
  123. package/dist/offline/query-persistence.d.ts +26 -1
  124. package/dist/offline/query-persistence.js +27 -23
  125. package/dist/offline/query-persistence.js.map +1 -1
  126. package/dist/offline/service-worker-updates.d.ts +46 -0
  127. package/dist/offline/service-worker-updates.js +39 -0
  128. package/dist/offline/service-worker-updates.js.map +1 -0
  129. package/dist/offline.d.ts +5 -2
  130. package/dist/offline.js +11 -2
  131. package/dist/offline.js.map +1 -1
  132. package/dist/push-worker.d.ts +2 -0
  133. package/dist/push-worker.js +14 -0
  134. package/dist/push-worker.js.map +1 -0
  135. package/dist/shell/account-menu-text-size.d.ts +33 -0
  136. package/dist/shell/account-menu-text-size.js +51 -0
  137. package/dist/shell/account-menu-text-size.js.map +1 -0
  138. package/dist/shell/top-bar-actions.d.ts +6 -2
  139. package/dist/shell/top-bar-actions.js +1 -0
  140. package/dist/shell/top-bar-actions.js.map +1 -1
  141. package/dist/shell.d.ts +2 -0
  142. package/dist/shell.js +2 -0
  143. package/dist/shell.js.map +1 -1
  144. package/dist/sync/db.d.ts +76 -0
  145. package/dist/sync/db.js +24 -0
  146. package/dist/sync/db.js.map +1 -0
  147. package/dist/sync/engine.d.ts +124 -0
  148. package/dist/sync/engine.js +474 -0
  149. package/dist/sync/engine.js.map +1 -0
  150. package/dist/sync/hooks.d.ts +30 -0
  151. package/dist/sync/hooks.js +67 -0
  152. package/dist/sync/hooks.js.map +1 -0
  153. package/dist/sync/testing.d.ts +28 -0
  154. package/dist/sync/testing.js +41 -0
  155. package/dist/sync/testing.js.map +1 -0
  156. package/dist/sync/wire.d.ts +50 -0
  157. package/dist/sync/wire.js +2 -0
  158. package/dist/sync/wire.js.map +1 -0
  159. package/dist/sync.d.ts +7 -0
  160. package/dist/sync.js +22 -0
  161. package/dist/sync.js.map +1 -0
  162. package/dist/tour/tour-labels.js +1 -0
  163. package/dist/tour/tour-labels.js.map +1 -1
  164. package/dist/tour/tour.d.ts +30 -0
  165. package/dist/tour/tour.js +50 -6
  166. package/dist/tour/tour.js.map +1 -1
  167. package/package.json +19 -1
  168. package/src/admin/admin-area-labels.ts +13 -0
  169. package/src/admin/admin-overview.tsx +37 -2
  170. package/src/admin/mail-test-card.tsx +7 -3
  171. package/src/components/appearance-labels.ts +16 -0
  172. package/src/components/data-table-column-settings.tsx +2 -2
  173. package/src/components/data-table-head.tsx +2 -2
  174. package/src/components/data-table-row-actions.tsx +118 -2
  175. package/src/components/data-table-shared.tsx +21 -2
  176. package/src/components/data-table.tsx +51 -6
  177. package/src/components/date-format-setting.tsx +64 -0
  178. package/src/components/swipeable-row.tsx +8 -0
  179. package/src/components/tabs.tsx +4 -3
  180. package/src/components/translation-review-editor.tsx +2 -0
  181. package/src/components/translation-review-labels.ts +7 -0
  182. package/src/components/translation-review.tsx +102 -14
  183. package/src/components/write-lock-labels.ts +1 -0
  184. package/src/components/write-lock.tsx +36 -3
  185. package/src/data-table.ts +1 -0
  186. package/src/feedback/feedback-row-detail.tsx +18 -23
  187. package/src/feedback/feedback-swipe.tsx +28 -1
  188. package/src/i18n/german.ts +44 -4
  189. package/src/i18n/kit-labels.tsx +18 -1
  190. package/src/i18n/locales/en.ts +1 -0
  191. package/src/i18n/locales/es.ts +44 -4
  192. package/src/i18n/locales/fr.ts +44 -4
  193. package/src/i18n/locales/hu.ts +44 -4
  194. package/src/i18n/locales/it.ts +44 -4
  195. package/src/i18n/locales/zh.ts +44 -2
  196. package/src/i18n/review.ts +3 -1
  197. package/src/index.ts +42 -0
  198. package/src/lib/date-format.ts +151 -0
  199. package/src/lib/format.ts +10 -4
  200. package/src/notifications/device-zone-report.ts +54 -0
  201. package/src/notifications/feedback-notification-types-labels.ts +10 -1
  202. package/src/notifications/feedback-notification-types.ts +12 -5
  203. package/src/notifications/notification-bell.tsx +116 -0
  204. package/src/notifications/notification-inbox.tsx +304 -0
  205. package/src/notifications/notification-types-setting.tsx +151 -55
  206. package/src/notifications/notification-types.ts +20 -8
  207. package/src/notifications/notifications-labels.ts +69 -11
  208. package/src/notifications/push-devices-setting.tsx +123 -34
  209. package/src/notifications/push-worker.ts +160 -0
  210. package/src/notifications/quiet-hours-setting.tsx +41 -58
  211. package/src/notifications/time-zone-select.tsx +5 -2
  212. package/src/notifications/use-push-device.ts +20 -33
  213. package/src/offline/local-first.ts +76 -0
  214. package/src/offline/query-persistence.ts +57 -24
  215. package/src/offline/service-worker-updates.ts +81 -0
  216. package/src/offline.ts +7 -1
  217. package/src/push-worker.ts +25 -0
  218. package/src/shell/account-menu-text-size.tsx +77 -0
  219. package/src/shell/top-bar-actions.tsx +6 -1
  220. package/src/shell.ts +3 -0
  221. package/src/sync/db.ts +103 -0
  222. package/src/sync/engine.ts +699 -0
  223. package/src/sync/hooks.ts +93 -0
  224. package/src/sync/testing.ts +73 -0
  225. package/src/sync/wire.ts +61 -0
  226. package/src/sync.ts +29 -0
  227. package/src/tour/tour-labels.ts +1 -0
  228. package/src/tour/tour.tsx +100 -7
@@ -144,6 +144,9 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
144
144
  answeredDescription: "Cuando un informe que usted escribió o comentó recibe una respuesta.",
145
145
  comment: "Comentarios en informes que sigue",
146
146
  commentDescription: "Cuando alguien comenta un informe que usted escribió o comentó.",
147
+ received: "Nuevos informes y revisiones",
148
+ receivedDescription: "Cuando alguien envía un informe o devuelve uno.",
149
+ adminGroup: "Admin",
147
150
  },
148
151
  feedbackContext: {
149
152
  user: "Usuario",
@@ -607,6 +610,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
607
610
  skip: "Omitir",
608
611
  done: "Listo",
609
612
  awaitClickHint: "Haga clic en el elemento resaltado para continuar",
613
+ awaitInputHint: "Introduzca un valor en el campo resaltado para continuar", // 0.46: TourStep.awaitInput (keksdose live #436).
610
614
  step: (current, total) => `${n(current)} / ${n(total)}`,
611
615
  },
612
616
  // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page.
@@ -816,6 +820,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
816
820
  },
817
821
  writeLock: {
818
822
  reason: "Puede verlo, pero no modificarlo.",
823
+ offline: "Requiere conexión.",
819
824
  },
820
825
  accountState: {
821
826
  // Agreeing with "cuenta" (feminine): the chip is the state of an account.
@@ -1154,6 +1159,9 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1154
1159
  typesTitle: "Avisarme de",
1155
1160
  typesDescription: "Elija de qué se entera y cómo.",
1156
1161
  byEmail: "Por correo electrónico",
1162
+ channelApp: "En la app",
1163
+ channelPush: "Push",
1164
+ channelEmail: "Correo",
1157
1165
  emailUnverified: "Confirme su dirección para recibirlos.",
1158
1166
  digestCadence: "Frecuencia",
1159
1167
  digestWeekly: "Semanal",
@@ -1161,10 +1169,15 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1161
1169
  typesLoading: "Cargando los ajustes de notificaciones…",
1162
1170
  typesEmpty: "No hay notificaciones para esta cuenta.",
1163
1171
  quietTitle: "Horas de silencio",
1164
- quietDescription: (inbox) =>
1165
- inbox
1166
- ? "Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada."
1167
- : "Sin notificaciones push durante este intervalo.",
1172
+ quietDescription: (inbox, held) =>
1173
+ held
1174
+ ? inbox
1175
+ ? "Las notificaciones push esperan durante este intervalo y llegan cuando termina. A su bandeja de entrada llegan enseguida."
1176
+ : "Las notificaciones push esperan durante este intervalo y llegan cuando termina."
1177
+ : inbox
1178
+ ? "Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada."
1179
+ : "Sin notificaciones push durante este intervalo.",
1180
+ quietZone: (zone) => `En su zona horaria (${zone}), que sigue al último dispositivo que usó.`,
1168
1181
  quietFrom: "Desde",
1169
1182
  quietUntil: "Hasta",
1170
1183
  quietIncomplete:
@@ -1226,6 +1239,19 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1226
1239
  // Starts with `remove`, the button's visible text, for voice control.
1227
1240
  removeItem: (device) => `Quitar ${device}`,
1228
1241
  removePrompt: "¿Dejar de enviar notificaciones a este dispositivo?",
1242
+ deviceTypes: "Tipos en este dispositivo",
1243
+ deviceTypesDescription: "Desactive un tipo para silenciarlo solo en este dispositivo.",
1244
+ deviceTypesEmpty: "Ningún tipo tiene las notificaciones push activadas.",
1245
+ inboxTitle: "Bandeja de entrada",
1246
+ inboxLoading: "Cargando notificaciones…",
1247
+ inboxEmpty: "Está al día.",
1248
+ markAllRead: "Marcar todo como leído",
1249
+ clearAll: "Borrar todo",
1250
+ clearPrompt: "¿Eliminar todas las notificaciones de su bandeja de entrada?",
1251
+ showMore: "Mostrar más",
1252
+ bellLabel: "Notificaciones",
1253
+ bellUnread: (count) => `${n(count)} sin leer`,
1254
+ allNotifications: "Todas las notificaciones",
1229
1255
  unsubscribeTitle: "Notificaciones por correo electrónico",
1230
1256
  unsubscribeAbout: (type) => `Recibe correos sobre: ${type}.`,
1231
1257
  unsubscribeGeneric: "Recibe correos de notificación.",
@@ -1562,6 +1588,8 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1562
1588
  approve: "Aprobar",
1563
1589
  flag: "Requiere cambios",
1564
1590
  suggest: "Proponer traducción",
1591
+ flagRow: "Marcar para cambiar…",
1592
+ suggestRow: "Añadir una traducción…",
1565
1593
  reset: "Marcar como sin revisar",
1566
1594
  cancel: "Cancelar",
1567
1595
  approveSelected: "Aprobar la selección",
@@ -1815,6 +1843,14 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1815
1843
  "El contraste aumentado oscurece los textos tenues y las líneas, y engrosa los marcos de foco. «Sistema» sigue el ajuste de este dispositivo.",
1816
1844
  contrastModes: { system: "Sistema", standard: "Estándar", more: "Aumentado" },
1817
1845
  saveFailed: "No se ha podido guardar en su cuenta. En este dispositivo se aplica igualmente.",
1846
+ // 0.46: DateFormatSetting (keksdose's words where it has them).
1847
+ dateFormat: "Formato de fecha",
1848
+ dateFormatHelp:
1849
+ "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.",
1850
+ dateFormatAuto: "Seguir el idioma",
1851
+ // 0.46: AccountMenuTextSize (keksdose live #426).
1852
+ textSmaller: "Texto más pequeño",
1853
+ textLarger: "Texto más grande",
1818
1854
  },
1819
1855
  // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1820
1856
  // last card of "Apariencia". "Restablecer", as a phone's own settings say it.
@@ -1873,6 +1909,10 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1873
1909
  invitationsPending: "Invitaciones pendientes",
1874
1910
  users: "Usuarios",
1875
1911
  usersNew: (count) => `${n(count)} ${plural(count, "nuevo", "nuevos")} en 7 días`,
1912
+ awaitingVerdict: "Pendientes de veredicto",
1913
+ awaitingVerdictHint: "Respondidos, a la espera de que usted o quien lo informó confirme la solución",
1914
+ releasedForWork: "Listos para trabajar",
1915
+ releasedForWorkHint: "Listos, con revisión solicitada o en curso",
1876
1916
  },
1877
1917
  overviewError: "No se pudo cargar el resumen.",
1878
1918
  retry: "Reintentar",
@@ -142,6 +142,9 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
142
142
  answeredDescription: "Quand un retour que vous avez écrit ou commenté reçoit une réponse.",
143
143
  comment: "Commentaires sur les retours que vous suivez",
144
144
  commentDescription: "Quand quelqu’un commente un retour que vous avez écrit ou commenté.",
145
+ received: "Nouveaux retours et reprises",
146
+ receivedDescription: "Quand quelqu’un dépose un retour ou en renvoie un.",
147
+ adminGroup: "Admin",
145
148
  },
146
149
  feedbackContext: {
147
150
  user: "Utilisateur",
@@ -622,6 +625,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
622
625
  skip: "Passer",
623
626
  done: "Terminé",
624
627
  awaitClickHint: "Cliquez sur l’élément mis en évidence pour continuer",
628
+ awaitInputHint: "Saisissez une valeur dans le champ mis en évidence pour continuer", // 0.46: TourStep.awaitInput (keksdose live #436).
625
629
  step: (current, total) => `${n(current)} / ${n(total)}`,
626
630
  },
627
631
  // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page. keksdose's reviewed words.
@@ -832,6 +836,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
832
836
  },
833
837
  writeLock: {
834
838
  reason: "Vous pouvez consulter ceci, mais pas le modifier.",
839
+ offline: "Nécessite une connexion.",
835
840
  },
836
841
  accountState: {
837
842
  // Agreeing with "compte" (masculine): the chip is the state of an account.
@@ -1182,6 +1187,9 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1182
1187
  typesTitle: "Me notifier pour",
1183
1188
  typesDescription: "Choisissez ce dont vous êtes averti, et comment.",
1184
1189
  byEmail: "Par e-mail",
1190
+ channelApp: "Dans l’app",
1191
+ channelPush: "Push",
1192
+ channelEmail: "E-mail",
1185
1193
  emailUnverified: "Confirmez votre adresse pour les recevoir.",
1186
1194
  digestCadence: "Fréquence",
1187
1195
  digestWeekly: "Hebdomadaire",
@@ -1189,10 +1197,15 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1189
1197
  typesLoading: "Chargement des paramètres de notification…",
1190
1198
  typesEmpty: "Il n’y a aucune notification pour ce compte.",
1191
1199
  quietTitle: "Heures calmes",
1192
- quietDescription: (inbox) =>
1193
- inbox
1194
- ? "Aucune notification push pendant cette plage. Elles arrivent quand même dans votre boîte de réception."
1195
- : "Aucune notification push pendant cette plage.",
1200
+ quietDescription: (inbox, held) =>
1201
+ held
1202
+ ? inbox
1203
+ ? "Les notifications push attendent pendant cette plage et arrivent à sa fin. Elles arrivent tout de suite dans votre boîte de réception."
1204
+ : "Les notifications push attendent pendant cette plage et arrivent à sa fin."
1205
+ : inbox
1206
+ ? "Aucune notification push pendant cette plage. Elles arrivent quand même dans votre boîte de réception."
1207
+ : "Aucune notification push pendant cette plage.",
1208
+ quietZone: (zone) => `Dans votre fuseau horaire (${zone}), qui suit le dernier appareil utilisé.`,
1196
1209
  quietFrom: "De",
1197
1210
  quietUntil: "Jusqu’à",
1198
1211
  quietIncomplete:
@@ -1253,6 +1266,19 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1253
1266
  // Starts with `remove`, the button's visible text, for voice control.
1254
1267
  removeItem: (device) => `Retirer ${device}`,
1255
1268
  removePrompt: "Ne plus envoyer de notifications à cet appareil\u202f?",
1269
+ deviceTypes: "Types sur cet appareil",
1270
+ deviceTypesDescription: "Désactivez un type pour le mettre en sourdine sur cet appareil seulement.",
1271
+ deviceTypesEmpty: "Aucun type n’a les notifications push activées.",
1272
+ inboxTitle: "Boîte de réception",
1273
+ inboxLoading: "Chargement des notifications…",
1274
+ inboxEmpty: "Vous êtes à jour.",
1275
+ markAllRead: "Tout marquer comme lu",
1276
+ clearAll: "Tout effacer",
1277
+ clearPrompt: "Supprimer toutes les notifications de votre boîte de réception\u202f?",
1278
+ showMore: "Afficher plus",
1279
+ bellLabel: "Notifications",
1280
+ bellUnread: (count) => (count === 1 ? `${n(count)} non lue` : `${n(count)} non lues`),
1281
+ allNotifications: "Toutes les notifications",
1256
1282
  unsubscribeTitle: "Notifications par e-mail",
1257
1283
  unsubscribeAbout: (type) => `Vous recevez des e-mails concernant\u00a0: ${type}.`,
1258
1284
  unsubscribeGeneric: "Vous recevez des e-mails de notification.",
@@ -1591,6 +1617,8 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1591
1617
  approve: "Approuver",
1592
1618
  flag: "À modifier",
1593
1619
  suggest: "Proposer une traduction",
1620
+ flagRow: "Signaler une modification…",
1621
+ suggestRow: "Ajouter une traduction…",
1594
1622
  reset: "Marquer comme non relu",
1595
1623
  cancel: "Annuler",
1596
1624
  approveSelected: "Approuver la sélection",
@@ -1855,6 +1883,14 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1855
1883
  "Le contraste renforcé assombrit les textes discrets et les lignes, et épaissit les contours de focus. «\u202fSystème\u202f» suit le réglage de cet appareil.",
1856
1884
  contrastModes: { system: "Système", standard: "Standard", more: "Renforcé" },
1857
1885
  saveFailed: "Impossible de l’enregistrer dans votre compte. Le réglage s’applique tout de même sur cet appareil.",
1886
+ // 0.46: DateFormatSetting (keksdose's words where it has them).
1887
+ dateFormat: "Format de date",
1888
+ dateFormatHelp:
1889
+ "Comment les dates sont écrites dans toute l’app. Indépendant de la langue de l’interface, vous pouvez donc lire l’app en anglais et voir quand même des dates à la française.",
1890
+ dateFormatAuto: "Suivre la langue",
1891
+ // 0.46: AccountMenuTextSize (keksdose live #426).
1892
+ textSmaller: "Texte plus petit",
1893
+ textLarger: "Texte plus grand",
1858
1894
  },
1859
1895
  // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1860
1896
  // last card of "Apparence". "Réglages", as `contrastHelp` says "réglage".
@@ -1912,6 +1948,10 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1912
1948
  invitationsPending: "Invitations en attente",
1913
1949
  users: "Utilisateurs",
1914
1950
  usersNew: (count) => `${n(count)} ${plural(count, "nouveau", "nouveaux")} en 7 jours`,
1951
+ awaitingVerdict: "En attente d’un verdict",
1952
+ awaitingVerdictHint: "Traités, en attente de votre confirmation ou de celle de la personne qui les a signalés",
1953
+ releasedForWork: "Prêts à traiter",
1954
+ releasedForWorkHint: "Prêts, reprise demandée ou en cours",
1915
1955
  },
1916
1956
  overviewError: "La vue d’ensemble n’a pas pu être chargée.",
1917
1957
  retry: "Réessayer",
@@ -141,6 +141,9 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
141
141
  answeredDescription: "Amikor egy Ön által írt vagy hozzászólt bejelentés választ kap.",
142
142
  comment: "Hozzászólások a követett bejelentésekhez",
143
143
  commentDescription: "Amikor valaki hozzászól egy Ön által írt vagy hozzászólt bejelentéshez.",
144
+ received: "Új bejelentések és átdolgozások",
145
+ receivedDescription: "Amikor valaki bejelentést tesz vagy visszaküld egyet.",
146
+ adminGroup: "Admin",
144
147
  },
145
148
  feedbackContext: {
146
149
  user: "Felhasználó",
@@ -609,6 +612,7 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
609
612
  skip: "Kihagyás",
610
613
  done: "Kész",
611
614
  awaitClickHint: "A folytatáshoz kattintson a kiemelt elemre",
615
+ awaitInputHint: "A folytatáshoz adjon meg egy értéket a kiemelt mezőben", // 0.46: TourStep.awaitInput (keksdose live #436).
612
616
  step: (current, total) => `${n(current)} / ${n(total)}`,
613
617
  },
614
618
  // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page.
@@ -817,6 +821,7 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
817
821
  },
818
822
  writeLock: {
819
823
  reason: "Ezt megtekintheti, de nem módosíthatja.",
824
+ offline: "Internetkapcsolat szükséges.",
820
825
  },
821
826
  accountState: {
822
827
  active: "Aktív",
@@ -1165,6 +1170,9 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1165
1170
  typesTitle: "Értesítést kérek ezekről",
1166
1171
  typesDescription: "Válassza ki, miről és hogyan kapjon értesítést.",
1167
1172
  byEmail: "E-mailben",
1173
+ channelApp: "Az appban",
1174
+ channelPush: "Push",
1175
+ channelEmail: "E-mail",
1168
1176
  emailUnverified: "Erősítse meg a címét, hogy megkapja ezeket.",
1169
1177
  digestCadence: "Gyakoriság",
1170
1178
  digestWeekly: "Hetente",
@@ -1172,10 +1180,15 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1172
1180
  typesLoading: "Értesítési beállítások betöltése…",
1173
1181
  typesEmpty: "Ehhez a fiókhoz nincsenek értesítések.",
1174
1182
  quietTitle: "Csendes órák",
1175
- quietDescription: (inbox) =>
1176
- inbox
1177
- ? "Ebben az idősávban nem érkeznek push-értesítések. A beérkezett értesítések közé így is bekerülnek."
1178
- : "Ebben az idősávban nem érkeznek push-értesítések.",
1183
+ quietDescription: (inbox, held) =>
1184
+ held
1185
+ ? inbox
1186
+ ? "Ebben az idősávban a push-értesítések várnak, és a végén érkeznek meg. A beérkezett értesítések közé azonnal bekerülnek."
1187
+ : "Ebben az idősávban a push-értesítések várnak, és a végén érkeznek meg."
1188
+ : inbox
1189
+ ? "Ebben az idősávban nem érkeznek push-értesítések. A beérkezett értesítések közé így is bekerülnek."
1190
+ : "Ebben az idősávban nem érkeznek push-értesítések.",
1191
+ quietZone: (zone) => `Az Ön időzónájában (${zone}), amely a legutóbb használt eszközét követi.`,
1179
1192
  quietFrom: "Ettől",
1180
1193
  quietUntil: "Eddig",
1181
1194
  quietIncomplete:
@@ -1235,6 +1248,19 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1235
1248
  // Starts with `remove`, the button's visible text, for voice control.
1236
1249
  removeItem: (device) => `Eltávolítás: ${device}`,
1237
1250
  removePrompt: "Leállítja az értesítések küldését erre az eszközre?",
1251
+ deviceTypes: "Típusok ezen az eszközön",
1252
+ deviceTypesDescription: "Kapcsoljon ki egy típust, hogy csak ezen az eszközön némítsa.",
1253
+ deviceTypesEmpty: "Egyik típusnál sincsenek bekapcsolva a push-értesítések.",
1254
+ inboxTitle: "Beérkezett értesítések",
1255
+ inboxLoading: "Értesítések betöltése…",
1256
+ inboxEmpty: "Mindent elolvasott.",
1257
+ markAllRead: "Összes megjelölése olvasottként",
1258
+ clearAll: "Összes törlése",
1259
+ clearPrompt: "Törli az összes értesítést?",
1260
+ showMore: "Több megjelenítése",
1261
+ bellLabel: "Értesítések",
1262
+ bellUnread: (count) => `${n(count)} olvasatlan`,
1263
+ allNotifications: "Összes értesítés",
1238
1264
  unsubscribeTitle: "E-mail-értesítések",
1239
1265
  unsubscribeAbout: (type) => `E-maileket kap erről: ${type}.`,
1240
1266
  unsubscribeGeneric: "Értesítő e-maileket kap.",
@@ -1557,6 +1583,8 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1557
1583
  approve: "Jóváhagyás",
1558
1584
  flag: "Módosítandó",
1559
1585
  suggest: "Fordítás javaslata",
1586
+ flagRow: "Módosításra jelölés…",
1587
+ suggestRow: "Fordítás hozzáadása…",
1560
1588
  reset: "Megjelölés ellenőrizetlenként",
1561
1589
  cancel: "Mégse",
1562
1590
  approveSelected: "Kijelöltek jóváhagyása",
@@ -1821,6 +1849,14 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1821
1849
  "A fokozott kontraszt sötétebbé teszi a halvány szövegeket és vonalakat, a fókuszkereteket pedig vastagabbá. A „Rendszer” ennek az eszköznek a beállítását követi.",
1822
1850
  contrastModes: { system: "Rendszer", standard: "Normál", more: "Fokozott" },
1823
1851
  saveFailed: "Nem sikerült menteni a fiókjába. Ezen az eszközön ettől még érvényes.",
1852
+ // 0.46: DateFormatSetting (keksdose's words where it has them).
1853
+ dateFormat: "Dátumformátum",
1854
+ dateFormatHelp:
1855
+ "Hogyan jelennek meg a dátumok az egész alkalmazásban. Független a felület nyelvétől, így az alkalmazást olvashatja angolul, a dátumokat mégis német formában láthatja.",
1856
+ dateFormatAuto: "A nyelvet követi",
1857
+ // 0.46: AccountMenuTextSize (keksdose live #426).
1858
+ textSmaller: "Kisebb szöveg",
1859
+ textLarger: "Nagyobb szöveg",
1824
1860
  },
1825
1861
  // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1826
1862
  // last card of "Megjelenés". "Ön", as the rest of the catalogue.
@@ -1879,6 +1915,10 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1879
1915
  invitationsPending: "Függő meghívások",
1880
1916
  users: "Felhasználók",
1881
1917
  usersNew: (count) => `${n(count)} új az elmúlt 7 napban`,
1918
+ awaitingVerdict: "Ítéletre vár",
1919
+ awaitingVerdictHint: "Megválaszolva, az Ön vagy a bejelentő megerősítésére vár",
1920
+ releasedForWork: "Munkára kész",
1921
+ releasedForWorkHint: "Kész, átdolgozás kérve vagy folyamatban",
1882
1922
  },
1883
1923
  overviewError: "Az áttekintést nem sikerült betölteni.",
1884
1924
  retry: "Próbálja újra",
@@ -144,6 +144,9 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
144
144
  answeredDescription: "Quando una segnalazione che ha scritto o commentato riceve una risposta.",
145
145
  comment: "Commenti sulle segnalazioni che segue",
146
146
  commentDescription: "Quando qualcuno commenta una segnalazione che ha scritto o commentato.",
147
+ received: "Nuove segnalazioni e revisioni",
148
+ receivedDescription: "Quando qualcuno invia una segnalazione o ne rimanda una.",
149
+ adminGroup: "Admin",
147
150
  },
148
151
  feedbackContext: {
149
152
  user: "Utente",
@@ -611,6 +614,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
611
614
  skip: "Salta",
612
615
  done: "Fine",
613
616
  awaitClickHint: "Faccia clic sull’elemento evidenziato per continuare",
617
+ awaitInputHint: "Inserisca un valore nel campo evidenziato per continuare", // 0.46: TourStep.awaitInput (keksdose live #436).
614
618
  step: (current, total) => `${n(current)} / ${n(total)}`,
615
619
  },
616
620
  // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page. keksdose's reviewed words.
@@ -820,6 +824,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
820
824
  },
821
825
  writeLock: {
822
826
  reason: "Può visualizzarlo, ma non modificarlo.",
827
+ offline: "Richiede una connessione.",
823
828
  },
824
829
  accountState: {
825
830
  // Agreeing with "account" (masculine): the chip is the state of an account.
@@ -1166,6 +1171,9 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1166
1171
  typesTitle: "Avvisami per",
1167
1172
  typesDescription: "Scelga di cosa essere avvisato, e come.",
1168
1173
  byEmail: "Per e-mail",
1174
+ channelApp: "Nell’app",
1175
+ channelPush: "Push",
1176
+ channelEmail: "E-mail",
1169
1177
  emailUnverified: "Confermi il Suo indirizzo per riceverle.",
1170
1178
  digestCadence: "Frequenza",
1171
1179
  digestWeekly: "Settimanale",
@@ -1173,10 +1181,15 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1173
1181
  typesLoading: "Caricamento delle impostazioni di notifica…",
1174
1182
  typesEmpty: "Non ci sono notifiche per questo account.",
1175
1183
  quietTitle: "Ore di silenzio",
1176
- quietDescription: (inbox) =>
1177
- inbox
1178
- ? "Nessuna notifica push in questa fascia oraria. Arrivano comunque nella Sua casella."
1179
- : "Nessuna notifica push in questa fascia oraria.",
1184
+ quietDescription: (inbox, held) =>
1185
+ held
1186
+ ? inbox
1187
+ ? "Le notifiche push attendono in questa fascia oraria e arrivano quando finisce. Nella Sua casella arrivano subito."
1188
+ : "Le notifiche push attendono in questa fascia oraria e arrivano quando finisce."
1189
+ : inbox
1190
+ ? "Nessuna notifica push in questa fascia oraria. Arrivano comunque nella Sua casella."
1191
+ : "Nessuna notifica push in questa fascia oraria.",
1192
+ quietZone: (zone) => `Nel Suo fuso orario (${zone}), che segue l’ultimo dispositivo che ha usato.`,
1180
1193
  quietFrom: "Dalle",
1181
1194
  quietUntil: "Alle",
1182
1195
  quietIncomplete:
@@ -1236,6 +1249,19 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1236
1249
  // Starts with `remove`, the button's visible text, for voice control.
1237
1250
  removeItem: (device) => `Rimuovi ${device}`,
1238
1251
  removePrompt: "Smettere di inviare notifiche a questo dispositivo?",
1252
+ deviceTypes: "Tipi su questo dispositivo",
1253
+ deviceTypesDescription: "Disattivi un tipo per silenziarlo solo su questo dispositivo.",
1254
+ deviceTypesEmpty: "Nessun tipo ha le notifiche push attive.",
1255
+ inboxTitle: "Casella",
1256
+ inboxLoading: "Caricamento delle notifiche…",
1257
+ inboxEmpty: "È in pari: niente di nuovo.",
1258
+ markAllRead: "Segna tutte come lette",
1259
+ clearAll: "Elimina tutte",
1260
+ clearPrompt: "Eliminare tutte le notifiche dalla casella?",
1261
+ showMore: "Mostra altre",
1262
+ bellLabel: "Notifiche",
1263
+ bellUnread: (count) => (count === 1 ? `${n(count)} non letta` : `${n(count)} non lette`),
1264
+ allNotifications: "Tutte le notifiche",
1239
1265
  unsubscribeTitle: "Notifiche via e-mail",
1240
1266
  unsubscribeAbout: (type) => `Riceve e-mail su: ${type}.`,
1241
1267
  unsubscribeGeneric: "Riceve e-mail di notifica.",
@@ -1574,6 +1600,8 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1574
1600
  approve: "Approva",
1575
1601
  flag: "Da modificare",
1576
1602
  suggest: "Proponi una traduzione",
1603
+ flagRow: "Segnala una modifica…",
1604
+ suggestRow: "Aggiungi una traduzione…",
1577
1605
  reset: "Segna come non rivisto",
1578
1606
  cancel: "Annulla",
1579
1607
  approveSelected: "Approva i selezionati",
@@ -1834,6 +1862,14 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1834
1862
  "Il contrasto aumentato scurisce i testi tenui e le linee e ispessisce i riquadri di focus. «Sistema» segue l’impostazione di questo dispositivo.",
1835
1863
  contrastModes: { system: "Sistema", standard: "Standard", more: "Aumentato" },
1836
1864
  saveFailed: "Non è stato possibile salvarlo nel Suo account. Su questo dispositivo vale comunque.",
1865
+ // 0.46: DateFormatSetting (keksdose's words where it has them).
1866
+ dateFormat: "Formato data",
1867
+ dateFormatHelp:
1868
+ "Come vengono scritte le date in tutta l’app. Indipendente dalla lingua dell’interfaccia, così può leggere l’app in inglese e vedere comunque le date in formato tedesco.",
1869
+ dateFormatAuto: "Segui la lingua",
1870
+ // 0.46: AccountMenuTextSize (keksdose live #426).
1871
+ textSmaller: "Testo più piccolo",
1872
+ textLarger: "Testo più grande",
1837
1873
  },
1838
1874
  // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1839
1875
  // last card of "Aspetto". "Lei", capitalised as the rest of the catalogue.
@@ -1892,6 +1928,10 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1892
1928
  invitationsPending: "Inviti in sospeso",
1893
1929
  users: "Utenti",
1894
1930
  usersNew: (count) => `${n(count)} ${plural(count, "nuovo", "nuovi")} in 7 giorni`,
1931
+ awaitingVerdict: "In attesa di un verdetto",
1932
+ awaitingVerdictHint: "Con risposta, in attesa che Lei o chi l’ha segnalato confermi la soluzione",
1933
+ releasedForWork: "Pronti per la lavorazione",
1934
+ releasedForWorkHint: "Pronti, rielaborazione richiesta o in corso",
1895
1935
  },
1896
1936
  overviewError: "Non è stato possibile caricare la panoramica.",
1897
1937
  retry: "Riprova",
@@ -134,6 +134,9 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
134
134
  answeredDescription: "当您提交或评论过的反馈收到回复时。",
135
135
  comment: "您关注的反馈中的评论",
136
136
  commentDescription: "当有人评论您提交或评论过的反馈时。",
137
+ received: "新反馈和返工",
138
+ receivedDescription: "当有人提交反馈或退回反馈时。",
139
+ adminGroup: "管理员",
137
140
  },
138
141
  feedbackContext: {
139
142
  user: "用户",
@@ -590,6 +593,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
590
593
  skip: "跳过",
591
594
  done: "完成",
592
595
  awaitClickHint: "点击高亮的元素以继续",
596
+ awaitInputHint: "在高亮的字段中输入一个值以继续", // 0.46: TourStep.awaitInput (keksdose live #436).
593
597
  step: (current, total) => `${n(current)} / ${n(total)}`,
594
598
  },
595
599
  // 0.43.0 — docs/tours-harmonization.md §3, §8: the tours page.
@@ -797,6 +801,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
797
801
  },
798
802
  writeLock: {
799
803
  reason: "仅可查看,无法修改。",
804
+ offline: "需要网络连接。",
800
805
  },
801
806
  accountState: {
802
807
  active: "已启用",
@@ -1125,6 +1130,9 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1125
1130
  typesTitle: "通知我以下内容",
1126
1131
  typesDescription: "选择要接收哪些通知,以及接收方式。",
1127
1132
  byEmail: "通过电子邮件",
1133
+ channelApp: "应用内",
1134
+ channelPush: "推送",
1135
+ channelEmail: "电子邮件",
1128
1136
  emailUnverified: "请先确认您的邮箱地址,才能收到这些邮件。",
1129
1137
  digestCadence: "频率",
1130
1138
  digestWeekly: "每周",
@@ -1132,8 +1140,15 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1132
1140
  typesLoading: "正在加载通知设置…",
1133
1141
  typesEmpty: "此账户没有可用的通知。",
1134
1142
  quietTitle: "免打扰时段",
1135
- quietDescription: (inbox) =>
1136
- inbox ? "此时段内不发送推送通知。通知仍会进入您的收件箱。" : "此时段内不发送推送通知。",
1143
+ quietDescription: (inbox, held) =>
1144
+ held
1145
+ ? inbox
1146
+ ? "此时段内推送通知会等待,并在时段结束时送达。通知会立即进入您的收件箱。"
1147
+ : "此时段内推送通知会等待,并在时段结束时送达。"
1148
+ : inbox
1149
+ ? "此时段内不发送推送通知。通知仍会进入您的收件箱。"
1150
+ : "此时段内不发送推送通知。",
1151
+ quietZone: (zone) => `按您的时区(${zone}),随您最近使用的设备而定。`,
1137
1152
  quietFrom: "从",
1138
1153
  quietUntil: "到",
1139
1154
  quietIncomplete: "请同时设置开始和结束时间。两者都设置后,免打扰时段才会生效。",
@@ -1188,6 +1203,19 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1188
1203
  // Starts with `remove`, the button's visible text, for voice control.
1189
1204
  removeItem: (device) => `移除:${device}`,
1190
1205
  removePrompt: "停止向此设备发送通知?",
1206
+ deviceTypes: "此设备上的类型",
1207
+ deviceTypesDescription: "关闭某个类型,即可仅在此设备上将其静音。",
1208
+ deviceTypesEmpty: "没有开启推送通知的类型。",
1209
+ inboxTitle: "收件箱",
1210
+ inboxLoading: "正在加载通知…",
1211
+ inboxEmpty: "没有新通知。",
1212
+ markAllRead: "全部标为已读",
1213
+ clearAll: "全部清除",
1214
+ clearPrompt: "删除收件箱中的所有通知?",
1215
+ showMore: "显示更多",
1216
+ bellLabel: "通知",
1217
+ bellUnread: (count) => `${n(count)} 条未读`,
1218
+ allNotifications: "所有通知",
1191
1219
  unsubscribeTitle: "电子邮件通知",
1192
1220
  unsubscribeAbout: (type) => `您会收到有关以下内容的邮件:${type}。`,
1193
1221
  unsubscribeGeneric: "您会收到通知邮件。",
@@ -1496,6 +1524,8 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1496
1524
  approve: "通过",
1497
1525
  flag: "需要修改",
1498
1526
  suggest: "建议译文",
1527
+ flagRow: "标记为需修改…",
1528
+ suggestRow: "添加译文…",
1499
1529
  reset: "标记为未审校",
1500
1530
  cancel: "取消",
1501
1531
  approveSelected: "通过所选项",
@@ -1740,6 +1770,14 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1740
1770
  contrastHelp: "增强对比度会加深浅色文字和线条,并加粗焦点框。“跟随系统”沿用此设备的设置。",
1741
1771
  contrastModes: { system: "跟随系统", standard: "标准", more: "增强" },
1742
1772
  saveFailed: "无法保存到您的账户。此设备上仍然生效。",
1773
+ // 0.46: DateFormatSetting (keksdose's words where it has them).
1774
+ dateFormat: "日期格式",
1775
+ dateFormatHelp:
1776
+ "整个应用中日期的书写方式。与界面语言无关,因此您可以用英文阅读应用,同时仍看到德式日期。",
1777
+ dateFormatAuto: "跟随语言",
1778
+ // 0.46: AccountMenuTextSize (keksdose live #426).
1779
+ textSmaller: "缩小文字",
1780
+ textLarger: "放大文字",
1743
1781
  },
1744
1782
  // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1745
1783
  // last card of "外观".
@@ -1795,6 +1833,10 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1795
1833
  invitationsPending: "待接受的邀请",
1796
1834
  users: "用户",
1797
1835
  usersNew: (count) => `近 7 天新增 ${n(count)} 人`,
1836
+ awaitingVerdict: "待确认",
1837
+ awaitingVerdictHint: "已答复,等待您或报告人确认已解决",
1838
+ releasedForWork: "待处理",
1839
+ releasedForWorkHint: "已就绪、已要求返工或进行中",
1798
1840
  },
1799
1841
  overviewError: "无法加载概览。",
1800
1842
  retry: "重试",
@@ -330,7 +330,9 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
330
330
  "sessions.lastActive": [["{{when}}"]],
331
331
  "sessions.ip": [["{{address}}"]],
332
332
  "sessions.revokeItem": [["{{device}}"]],
333
- "notifications.quietDescription": [[false], [true]],
333
+ "notifications.quietDescription": [[false], [true], [false, true], [true, true]],
334
+ "notifications.quietZone": [["{{zone}}"]],
335
+ "notifications.bellUnread": one,
334
336
  "notifications.deviceZone": [["{{zone}}"]],
335
337
  "notifications.iosInstall": [["{{app}}"]],
336
338
  "notifications.testSent": one,
package/src/index.ts CHANGED
@@ -408,6 +408,8 @@ export * from "./components/form-actions";
408
408
  // (docs/billing-harmonization.md §12.36): the kinds, the holds, `CommitScope`,
409
409
  // `COMMIT_EXCEPT_BILLING` and the pure `writeLockFor`.
410
410
  export { WriteLockProvider, useWriteLock, writeLockFor, COMMIT_EXCEPT_BILLING, DEFAULT_WRITE_LOCK_LABELS } from "./components/write-lock";
411
+ // 0.46 (kastlan K4): the offline lock kind, its scope and its source.
412
+ export { OFFLINE_LOCK, COMMIT_EXCEPT_OFFLINE, useOfflineWriteLock } from "./components/write-lock";
411
413
  export type { WriteLock, WriteLockLabels, WriteLockProviderProps, WriteLockKind, WriteLockHold, CommitScope } from "./components/write-lock";
412
414
  // 0.18: the parts both apps' admin rosters repeat (Kurvenschmiede 6).
413
415
  export { RoleChip, AccountStateChip, DateMark, dateColumn, DEFAULT_ACCOUNT_STATE_LABELS, ACCOUNT_STATE_TONES } from "./components/account-chips";
@@ -552,6 +554,19 @@ export type {
552
554
  // actions, one of the behaviours at Large (§4, §10.7–10.9).
553
555
  export { DEFAULT_APPEARANCE_LABELS, useAppearanceLabels } from "./components/appearance-labels";
554
556
  export type { AppearanceLabels } from "./components/appearance-labels";
557
+ // 0.46 (keksdose's date format, lifted): the preference, its resolver and renderer, the
558
+ // provider's formatter for it, and the settings field.
559
+ export {
560
+ DATE_FORMAT_PREFERENCES,
561
+ isDateFormatPreference,
562
+ resolveDateFormat,
563
+ formatDateWithPreference,
564
+ dateFormatSample,
565
+ dateFormatterFor,
566
+ } from "./lib/date-format";
567
+ export type { DateFormatPreference, DateFormatOptions, ResolvedDateFormat } from "./lib/date-format";
568
+ export { DateFormatSetting } from "./components/date-format-setting";
569
+ export type { DateFormatSettingProps } from "./components/date-format-setting";
555
570
  export { RowActions, rowActionsColumn, DEFAULT_ROW_ACTIONS_LABELS } from "./components/row-actions";
556
571
  export type {
557
572
  RowAction,
@@ -808,6 +823,10 @@ export type {
808
823
  AdminExtraTile,
809
824
  AdminOverviewProps,
810
825
  AttentionTileProps,
826
+ // 0.46 (Kurvenschmiede 1): the feedback tiles with the kit's words.
827
+ AdminFeedbackTile,
828
+ AdminFeedbackTileKey,
829
+ AdminOwnTile,
811
830
  } from "./admin/admin-overview";
812
831
  export { AdminToolLinks } from "./admin/admin-tool-links";
813
832
  export type { AdminToolLink, AdminToolLinksProps } from "./admin/admin-tool-links";
@@ -946,6 +965,7 @@ export type {
946
965
  NotificationTypeGroup,
947
966
  NotificationSettingsPatch,
948
967
  PushDeviceItem,
968
+ NotificationChannel,
949
969
  } from "./notifications/notification-types";
950
970
  export { NotificationTypesSetting } from "./notifications/notification-types-setting";
951
971
  export type { NotificationTypesSettingProps } from "./notifications/notification-types-setting";
@@ -953,6 +973,14 @@ export { QuietHoursSetting } from "./notifications/quiet-hours-setting";
953
973
  export type { QuietHoursSettingProps } from "./notifications/quiet-hours-setting";
954
974
  export { TimeZoneSelect, timeZoneOptions, deviceTimeZone } from "./notifications/time-zone-select";
955
975
  export type { TimeZoneSelectProps } from "./notifications/time-zone-select";
976
+ // 0.46 (docs/notifications-harmonization.md §10.1, §10.3): the inbox list, the bell and
977
+ // the device-zone report (the account's zone is automatic only, amended 2026-10-20).
978
+ export { NotificationInbox, INBOX_BADGE_INTERVAL } from "./notifications/notification-inbox";
979
+ export type { NotificationInboxItem, NotificationInboxProps } from "./notifications/notification-inbox";
980
+ export { NotificationBell } from "./notifications/notification-bell";
981
+ export type { NotificationBellProps } from "./notifications/notification-bell";
982
+ export { useDeviceZoneReport } from "./notifications/device-zone-report";
983
+ export type { DeviceZoneReportOptions } from "./notifications/device-zone-report";
956
984
  export {
957
985
  usePushDevice,
958
986
  PUSH_SUBSCRIPTION_CHANGED,
@@ -967,6 +995,20 @@ export type {
967
995
  PushPermission,
968
996
  PushDeviceErrorCode,
969
997
  } from "./notifications/use-push-device";
998
+ // 0.46 (NT:1028): the service worker re-registers a rotated subscription. A worker imports
999
+ // them from `@eifi1/ui-kit/push-worker` (§10.6 rule 5); the barrel keeps them too.
1000
+ export {
1001
+ handlePushSubscriptionChange,
1002
+ resubscribeAfterChange,
1003
+ pushSubscriptionInput,
1004
+ } from "./notifications/push-worker";
1005
+ export type {
1006
+ PushReplaceInput,
1007
+ PushSubscriptionChangeOptions,
1008
+ PushSubscriptionChangeEventLike,
1009
+ PushResubscribeOutcome,
1010
+ PushWorkerScope,
1011
+ } from "./notifications/push-worker";
970
1012
  export { PushDeviceSetting } from "./notifications/push-device-setting";
971
1013
  export type { PushDeviceSettingProps, PushDeviceAction } from "./notifications/push-device-setting";
972
1014
  export { PushDevicesSetting, describeUserAgent } from "./notifications/push-devices-setting";