@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
@@ -228,7 +228,9 @@ function uiKitLabelsZh(numberLocale = "zh-CN") {
228
228
  noResults: "\u65E0\u7ED3\u679C",
229
229
  // Full-width colon, no space after it.
230
230
  fieldValue: (field, value) => `${field}\uFF1A${value}`,
231
- opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00"
231
+ opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00",
232
+ aboutField: (field) => `\u5173\u4E8E\u201C${field}\u201D`,
233
+ help: "\u5E2E\u52A9"
232
234
  },
233
235
  dataTable: {
234
236
  columns: "\u5217",
@@ -994,6 +996,86 @@ ${o.postalCode} ${o.city}\uFF0C${o.country}
994
996
  rateLimited,
995
997
  failed: "\u64CD\u4F5C\u672A\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5\u3002"
996
998
  },
999
+ // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.
1000
+ notifications: {
1001
+ typesTitle: "\u901A\u77E5\u6211\u4EE5\u4E0B\u5185\u5BB9",
1002
+ typesDescription: "\u9009\u62E9\u8981\u63A5\u6536\u54EA\u4E9B\u901A\u77E5\uFF0C\u4EE5\u53CA\u63A5\u6536\u65B9\u5F0F\u3002",
1003
+ byEmail: "\u901A\u8FC7\u7535\u5B50\u90AE\u4EF6",
1004
+ emailUnverified: "\u8BF7\u5148\u786E\u8BA4\u60A8\u7684\u90AE\u7BB1\u5730\u5740\uFF0C\u624D\u80FD\u6536\u5230\u8FD9\u4E9B\u90AE\u4EF6\u3002",
1005
+ digestCadence: "\u9891\u7387",
1006
+ digestWeekly: "\u6BCF\u5468",
1007
+ digestMonthly: "\u6BCF\u6708",
1008
+ typesLoading: "\u6B63\u5728\u52A0\u8F7D\u901A\u77E5\u8BBE\u7F6E\u2026",
1009
+ typesEmpty: "\u6B64\u8D26\u6237\u6CA1\u6709\u53EF\u7528\u7684\u901A\u77E5\u3002",
1010
+ quietTitle: "\u514D\u6253\u6270\u65F6\u6BB5",
1011
+ quietDescription: (inbox) => inbox ? "\u6B64\u65F6\u6BB5\u5185\u4E0D\u53D1\u9001\u63A8\u9001\u901A\u77E5\u3002\u901A\u77E5\u4ECD\u4F1A\u8FDB\u5165\u60A8\u7684\u6536\u4EF6\u7BB1\u3002" : "\u6B64\u65F6\u6BB5\u5185\u4E0D\u53D1\u9001\u63A8\u9001\u901A\u77E5\u3002",
1012
+ quietFrom: "\u4ECE",
1013
+ quietUntil: "\u5230",
1014
+ quietIncomplete: "\u8BF7\u540C\u65F6\u8BBE\u7F6E\u5F00\u59CB\u548C\u7ED3\u675F\u65F6\u95F4\u3002\u4E24\u8005\u90FD\u8BBE\u7F6E\u540E\uFF0C\u514D\u6253\u6270\u65F6\u6BB5\u624D\u4F1A\u751F\u6548\u3002",
1015
+ timeZone: "\u65F6\u533A",
1016
+ deviceZone: (zone) => `\u6B64\u8BBE\u5907\u4F4D\u4E8E ${zone} \u65F6\u533A\u3002`,
1017
+ useDeviceZone: "\u4F7F\u7528\u6B64\u65F6\u533A",
1018
+ regions: {
1019
+ Africa: "\u975E\u6D32",
1020
+ America: "\u7F8E\u6D32",
1021
+ Antarctica: "\u5357\u6781\u6D32",
1022
+ Arctic: "\u5317\u6781",
1023
+ Asia: "\u4E9A\u6D32",
1024
+ Atlantic: "\u5927\u897F\u6D0B",
1025
+ Australia: "\u6FB3\u5927\u5229\u4E9A",
1026
+ Europe: "\u6B27\u6D32",
1027
+ Indian: "\u5370\u5EA6\u6D0B",
1028
+ Pacific: "\u592A\u5E73\u6D0B"
1029
+ },
1030
+ pushTitle: "\u63A8\u9001\u901A\u77E5",
1031
+ pushDescription: "\u5728\u6B64\u8BBE\u5907\u4E0A\u63A5\u6536\u901A\u77E5\uFF0C\u5373\u4F7F\u5E94\u7528\u5DF2\u5173\u95ED\u3002",
1032
+ unsupported: "\u6B64\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u63A8\u9001\u901A\u77E5\u3002",
1033
+ iosInstall: (app) => `\u5728 iPhone \u6216 iPad \u4E0A\uFF0C\u8BF7\u5148\u5C06 ${app} \u6DFB\u52A0\u5230\u4E3B\u5C4F\u5E55\uFF1AiOS \u53EA\u5411\u5DF2\u5B89\u88C5\u7684\u5E94\u7528\u53D1\u9001\u901A\u77E5\u3002`,
1034
+ notConfigured: "\u6B64\u670D\u52A1\u5668\u5C1A\u672A\u8BBE\u7F6E\u63A8\u9001\u901A\u77E5\u3002",
1035
+ blocked: "\u6B64\u6D4F\u89C8\u5668\u7684\u8BBE\u7F6E\u5DF2\u963B\u6B62\u901A\u77E5\u3002",
1036
+ on: "\u6B64\u8BBE\u5907\u7684\u901A\u77E5\u5DF2\u5F00\u542F\u3002",
1037
+ off: "\u6B64\u8BBE\u5907\u7684\u901A\u77E5\u5DF2\u5173\u95ED\u3002",
1038
+ otherAccount: "\u6B64\u6D4F\u89C8\u5668\u6B63\u5728\u63A5\u6536\u53E6\u4E00\u4E2A\u8D26\u6237\u7684\u901A\u77E5\u3002\u5728\u6B64\u5F00\u542F\uFF0C\u5373\u53EF\u63A5\u6536\u60A8\u5F53\u524D\u767B\u5F55\u8D26\u6237\u7684\u901A\u77E5\u3002",
1039
+ enable: "\u5F00\u542F\u901A\u77E5",
1040
+ disable: "\u5173\u95ED",
1041
+ sendTest: "\u53D1\u9001\u6D4B\u8BD5",
1042
+ enableFailed: "\u65E0\u6CD5\u5F00\u542F\u901A\u77E5\u3002",
1043
+ noServiceWorker: "\u65E0\u6CD5\u8FDE\u63A5\u5E94\u7528\u7684 Service Worker\u3002\u8BF7\u91CD\u65B0\u52A0\u8F7D\u9875\u9762\u540E\u91CD\u8BD5\u3002",
1044
+ pushTimeout: "\u6D4F\u89C8\u5668\u7684\u63A8\u9001\u670D\u52A1\u6CA1\u6709\u54CD\u5E94\u3002\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002",
1045
+ testSent: (count) => `\u6D4B\u8BD5\u5DF2\u53D1\u9001\u5230 ${n(count)} \u53F0\u8BBE\u5907`,
1046
+ testNone: "\u6CA1\u6709\u8BBE\u5907\u63A5\u6536\u6B64\u6D4B\u8BD5\u3002\u8BF7\u5148\u4E3A\u6B64\u8BBE\u5907\u5F00\u542F\u901A\u77E5\u3002",
1047
+ testFailed: "\u65E0\u6CD5\u53D1\u9001\u6D4B\u8BD5\u901A\u77E5\u3002",
1048
+ explainerTitle: "\u5F00\u542F\u901A\u77E5\uFF1F",
1049
+ explainerBody: (app) => `${app} \u53EA\u4F1A\u5C31\u60A8\u9009\u62E9\u7684\u5185\u5BB9\u53D1\u9001\u901A\u77E5\uFF0C\u60A8\u53EF\u4EE5\u968F\u65F6\u5173\u95ED\u3002`,
1050
+ explainerHint: "\u63A5\u4E0B\u6765\u6D4F\u89C8\u5668\u4F1A\u8BF7\u6C42\u60A8\u7684\u8BB8\u53EF\u3002",
1051
+ explainerContinue: "\u7EE7\u7EED",
1052
+ devicesTitle: "\u901A\u77E5\u8BBE\u5907",
1053
+ devicesDescription: "\u4E3A\u60A8\u7684\u8D26\u6237\u63A5\u6536\u63A8\u9001\u901A\u77E5\u7684\u6240\u6709\u8BBE\u5907\u3002\u8BF7\u79FB\u9664\u4E0D\u518D\u4F7F\u7528\u7684\u8BBE\u5907\u3002",
1054
+ devicesLoading: "\u6B63\u5728\u52A0\u8F7D\u8BBE\u5907\u2026",
1055
+ devicesEmpty: "\u8FD8\u6CA1\u6709\u8BBE\u5907\u63A5\u6536\u901A\u77E5\u3002",
1056
+ unknownDevice: "\u672A\u77E5\u8BBE\u5907",
1057
+ thisDevice: "\u6B64\u8BBE\u5907",
1058
+ added: (date) => `\u6DFB\u52A0\u4E8E ${date}`,
1059
+ lastDelivery: (date) => `\u4E0A\u6B21\u9001\u8FBE\uFF1A${date}`,
1060
+ noDelivery: "\u5C1A\u672A\u9001\u8FBE",
1061
+ failures: (count) => `\u8FDE\u7EED ${n(count)} \u6B21\u9001\u8FBE\u5931\u8D25`,
1062
+ remove: "\u79FB\u9664",
1063
+ // Starts with `remove`, the button's visible text, for voice control.
1064
+ removeItem: (device) => `\u79FB\u9664\uFF1A${device}`,
1065
+ removePrompt: "\u505C\u6B62\u5411\u6B64\u8BBE\u5907\u53D1\u9001\u901A\u77E5\uFF1F",
1066
+ unsubscribeTitle: "\u7535\u5B50\u90AE\u4EF6\u901A\u77E5",
1067
+ unsubscribeAbout: (type) => `\u60A8\u4F1A\u6536\u5230\u6709\u5173\u4EE5\u4E0B\u5185\u5BB9\u7684\u90AE\u4EF6\uFF1A${type}\u3002`,
1068
+ unsubscribeGeneric: "\u60A8\u4F1A\u6536\u5230\u901A\u77E5\u90AE\u4EF6\u3002",
1069
+ stopThese: "\u505C\u6B62\u63A5\u6536\u8FD9\u4E9B\u90AE\u4EF6",
1070
+ stopAll: (app) => `\u505C\u6B62\u63A5\u6536\u6765\u81EA ${app} \u7684\u6240\u6709\u901A\u77E5\u90AE\u4EF6`,
1071
+ stoppedThese: "\u5DF2\u5B8C\u6210\u3002\u60A8\u5C06\u4E0D\u518D\u6536\u5230\u8FD9\u4E9B\u90AE\u4EF6\u3002",
1072
+ stoppedAll: (app) => `\u5DF2\u5B8C\u6210\u3002\u60A8\u5C06\u4E0D\u518D\u6536\u5230\u6765\u81EA ${app} \u7684\u901A\u77E5\u90AE\u4EF6\u3002`,
1073
+ accountMail: "\u6709\u5173\u60A8\u8D26\u6237\u7684\u90AE\u4EF6\u4ECD\u4F1A\u7167\u5E38\u53D1\u9001\u3002",
1074
+ turnBackOn: "\u60A8\u53EF\u4EE5\u968F\u65F6\u5728\u201C\u8BBE\u7F6E\u201D\u4E2D\u91CD\u65B0\u5F00\u542F\u3002",
1075
+ openSettings: "\u6253\u5F00\u8BBE\u7F6E",
1076
+ invalidLink: "\u6B64\u94FE\u63A5\u5DF2\u5931\u6548\u3002\u60A8\u53EF\u4EE5\u6539\u4E3A\u5728\u201C\u8BBE\u7F6E\u201D\u4E2D\u5173\u95ED\u8FD9\u4E9B\u90AE\u4EF6\u3002",
1077
+ failed: "\u64CD\u4F5C\u672A\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5\u3002"
1078
+ },
997
1079
  sessions: {
998
1080
  title: "\u4F1A\u8BDD",
999
1081
  description: "\u5728\u4E0D\u518D\u4F7F\u7528\u6216\u4E0D\u4FE1\u4EFB\u7684\u8BBE\u5907\u4E0A\u767B\u5F55\u8FC7\uFF1F\u8BF7\u5728\u6240\u6709\u8BBE\u5907\u4E0A\u9000\u51FA\u767B\u5F55\u3002",
@@ -1479,6 +1561,18 @@ ${o.postalCode} ${o.city}\uFF0C${o.country}
1479
1561
  contrastModes: { system: "\u8DDF\u968F\u7CFB\u7EDF", standard: "\u6807\u51C6", more: "\u589E\u5F3A" },
1480
1562
  saveFailed: "\u65E0\u6CD5\u4FDD\u5B58\u5230\u60A8\u7684\u8D26\u6237\u3002\u6B64\u8BBE\u5907\u4E0A\u4ECD\u7136\u751F\u6548\u3002"
1481
1563
  },
1564
+ // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the
1565
+ // last card of "外观".
1566
+ deviceReset: {
1567
+ title: "\u91CD\u7F6E\u6B64\u8BBE\u5907",
1568
+ description: "\u5C06\u6B64\u8BBE\u5907\u7684\u5916\u89C2\uFF0C\u4EE5\u53CA\u8868\u683C\u548C\u9762\u677F\u4E0A\u6B21\u7559\u4E0B\u7684\u72B6\u6001\uFF0C\u6062\u590D\u4E3A\u9ED8\u8BA4\u503C\u3002\u60A8\u7684\u8D26\u6237\u3001\u6570\u636E\u548C\u767B\u5F55\u72B6\u6001\u4E0D\u53D7\u5F71\u54CD\u3002",
1569
+ action: "\u91CD\u7F6E\u6B64\u8BBE\u5907\u7684\u8BBE\u7F6E",
1570
+ confirmTitle: "\u8981\u91CD\u7F6E\u6B64\u8BBE\u5907\u7684\u8BBE\u7F6E\u5417\uFF1F",
1571
+ confirmBody: "\u4E3B\u9898\u3001\u989C\u8272\u3001\u6587\u5B57\u5927\u5C0F\u3001\u5BF9\u6BD4\u5EA6\u548C\u8BED\u8A00\u5C06\u5728\u6B64\u8BBE\u5907\u4E0A\u6062\u590D\u4E3A\u9ED8\u8BA4\u503C\uFF0C\u8868\u683C\u548C\u9762\u677F\u4F1A\u50CF\u7B2C\u4E00\u6B21\u6253\u5F00\u65F6\u90A3\u6837\u663E\u793A\u3002\u5982\u679C\u60A8\u7684\u8D26\u6237\u8BBE\u7F6E\u4E86\u8BED\u8A00\u3001\u6587\u5B57\u5927\u5C0F\u6216\u5BF9\u6BD4\u5EA6\uFF0C\u6B64\u8BBE\u5907\u4F1A\u91CD\u65B0\u6CBF\u7528\u8FD9\u4E9B\u8BBE\u7F6E\u3002\u60A8\u7684\u8D26\u6237\u548C\u5176\u4ED6\u8BBE\u5907\u4FDD\u6301\u4E0D\u53D8\u3002",
1572
+ confirmAction: "\u91CD\u7F6E",
1573
+ done: "\u6B64\u8BBE\u5907\u7684\u8BBE\u7F6E\u5DF2\u6062\u590D\u4E3A\u9ED8\u8BA4\u503C\u3002",
1574
+ keywords: "\u91CD\u7F6E \u9ED8\u8BA4 \u8BBE\u5907 \u6062\u590D \u5916\u89C2 \u8868\u683C \u5E03\u5C40"
1575
+ },
1482
1576
  rowActions: {
1483
1577
  actions: "\u64CD\u4F5C",
1484
1578
  actionsFor: (name) => `${name} \u7684\u64CD\u4F5C`