@icen.ai/ui 0.9.0 → 0.10.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 (281) hide show
  1. package/AGENTS.md +138 -80
  2. package/README.md +66 -91
  3. package/dist/base.css +208 -179
  4. package/dist/behaviors/accordion.mjs +8 -8
  5. package/dist/behaviors/ai-branch.d.mts +1 -1
  6. package/dist/behaviors/ai-branch.mjs +1010 -94
  7. package/dist/behaviors/ai-chat.d.mts +7 -7
  8. package/dist/behaviors/ai-chat.mjs +1071 -161
  9. package/dist/behaviors/ai-composer.d.mts +44 -12
  10. package/dist/behaviors/ai-composer.mjs +1997 -524
  11. package/dist/behaviors/ai-core.d.mts +1 -1
  12. package/dist/behaviors/ai-core.mjs +1016 -107
  13. package/dist/behaviors/ai-diff.mjs +1019 -127
  14. package/dist/behaviors/ai-feedback.d.mts +1 -1
  15. package/dist/behaviors/ai-feedback.mjs +1035 -126
  16. package/dist/behaviors/ai-panel.d.mts +8 -8
  17. package/dist/behaviors/ai-panel.mjs +1284 -266
  18. package/dist/behaviors/ai-provider.mjs +1003 -101
  19. package/dist/behaviors/ai-threads.d.mts +1 -1
  20. package/dist/behaviors/ai-threads.mjs +1068 -154
  21. package/dist/behaviors/ai-tool.d.mts +2 -2
  22. package/dist/behaviors/ai-tool.mjs +2037 -396
  23. package/dist/behaviors/ai-tools.d.mts +89 -16
  24. package/dist/behaviors/ai-tools.mjs +4448 -372
  25. package/dist/behaviors/autocomplete.d.mts +53 -0
  26. package/dist/behaviors/autocomplete.mjs +1600 -0
  27. package/dist/behaviors/back-top.d.mts +1 -1
  28. package/dist/behaviors/back-top.mjs +951 -14
  29. package/dist/behaviors/carousel.d.mts +1 -1
  30. package/dist/behaviors/carousel.mjs +906 -11
  31. package/dist/behaviors/cascader.d.mts +48 -0
  32. package/dist/behaviors/cascader.mjs +1853 -0
  33. package/dist/behaviors/charts.d.mts +72 -8
  34. package/dist/behaviors/charts.mjs +1901 -256
  35. package/dist/behaviors/code-block.d.mts +36 -0
  36. package/dist/behaviors/code-block.mjs +1611 -0
  37. package/dist/behaviors/command-palette.d.mts +9 -6
  38. package/dist/behaviors/command-palette.mjs +161 -59
  39. package/dist/behaviors/context-menu.d.mts +9 -8
  40. package/dist/behaviors/context-menu.mjs +1112 -44
  41. package/dist/behaviors/controls.d.mts +13 -13
  42. package/dist/behaviors/controls.mjs +989 -130
  43. package/dist/behaviors/copy.d.mts +21 -2
  44. package/dist/behaviors/copy.mjs +1206 -42
  45. package/dist/behaviors/datatable.d.mts +53 -3
  46. package/dist/behaviors/datatable.mjs +1963 -207
  47. package/dist/behaviors/date-picker.d.mts +0 -1
  48. package/dist/behaviors/date-picker.mjs +1340 -293
  49. package/dist/behaviors/design.d.mts +54 -0
  50. package/dist/behaviors/design.mjs +109 -0
  51. package/dist/behaviors/dropdown.d.mts +5 -6
  52. package/dist/behaviors/dropdown.mjs +262 -110
  53. package/dist/behaviors/events.d.mts +120 -3
  54. package/dist/behaviors/events.mjs +47 -2
  55. package/dist/behaviors/feedback.d.mts +30 -0
  56. package/dist/behaviors/feedback.mjs +296 -0
  57. package/dist/behaviors/focus.d.mts +8 -0
  58. package/dist/behaviors/focus.mjs +24 -0
  59. package/dist/behaviors/form-validate.d.mts +102 -0
  60. package/dist/behaviors/form-validate.mjs +6091 -0
  61. package/dist/behaviors/i18n.d.mts +789 -0
  62. package/dist/behaviors/i18n.mjs +1711 -0
  63. package/dist/behaviors/icons.d.mts +93 -0
  64. package/dist/behaviors/icons.mjs +113 -0
  65. package/dist/behaviors/input.d.mts +9 -1
  66. package/dist/behaviors/input.mjs +1056 -60
  67. package/dist/behaviors/kb-access.d.mts +1 -1
  68. package/dist/behaviors/kb-access.mjs +2129 -239
  69. package/dist/behaviors/kb-acl.d.mts +6 -6
  70. package/dist/behaviors/kb-acl.mjs +1119 -179
  71. package/dist/behaviors/kb-answer.mjs +2070 -418
  72. package/dist/behaviors/kb-audit.d.mts +1 -1
  73. package/dist/behaviors/kb-audit.mjs +1076 -154
  74. package/dist/behaviors/kb-canvas.mjs +1100 -177
  75. package/dist/behaviors/kb-chain.mjs +1022 -100
  76. package/dist/behaviors/kb-checkpoint.d.mts +1 -1
  77. package/dist/behaviors/kb-checkpoint.mjs +1319 -169
  78. package/dist/behaviors/kb-chunks.mjs +1152 -213
  79. package/dist/behaviors/kb-citation.d.mts +1 -1
  80. package/dist/behaviors/kb-citation.mjs +1201 -179
  81. package/dist/behaviors/kb-clarify.mjs +1058 -130
  82. package/dist/behaviors/kb-conflict.mjs +1041 -119
  83. package/dist/behaviors/kb-connector.mjs +1104 -176
  84. package/dist/behaviors/kb-core.d.mts +6 -1
  85. package/dist/behaviors/kb-core.mjs +1077 -162
  86. package/dist/behaviors/kb-eval.mjs +1971 -144
  87. package/dist/behaviors/kb-explain.d.mts +1 -1
  88. package/dist/behaviors/kb-explain.mjs +1024 -102
  89. package/dist/behaviors/kb-filter.mjs +2008 -178
  90. package/dist/behaviors/kb-gap.d.mts +1 -1
  91. package/dist/behaviors/kb-gap.mjs +1043 -121
  92. package/dist/behaviors/kb-hittest.d.mts +1 -1
  93. package/dist/behaviors/kb-hittest.mjs +1093 -150
  94. package/dist/behaviors/kb-metadata.mjs +1052 -130
  95. package/dist/behaviors/kb-passage.d.mts +2 -2
  96. package/dist/behaviors/kb-passage.mjs +1101 -161
  97. package/dist/behaviors/kb-pipeline.d.mts +2 -2
  98. package/dist/behaviors/kb-pipeline.mjs +1082 -162
  99. package/dist/behaviors/kb-qa.mjs +1088 -160
  100. package/dist/behaviors/kb-rerank.mjs +1047 -114
  101. package/dist/behaviors/kb-retrieval.mjs +2063 -224
  102. package/dist/behaviors/kb-review.mjs +1990 -159
  103. package/dist/behaviors/kb-sandbox.d.mts +1 -1
  104. package/dist/behaviors/kb-sandbox.mjs +1026 -104
  105. package/dist/behaviors/kb-segment.mjs +1111 -179
  106. package/dist/behaviors/kb-select.d.mts +24 -0
  107. package/dist/behaviors/kb-select.mjs +1989 -0
  108. package/dist/behaviors/kb-sources.d.mts +1 -1
  109. package/dist/behaviors/kb-sources.mjs +1084 -170
  110. package/dist/behaviors/kb-sql.d.mts +1 -1
  111. package/dist/behaviors/kb-sql.mjs +1143 -226
  112. package/dist/behaviors/kb-trace.d.mts +1 -1
  113. package/dist/behaviors/kb-trace.mjs +1042 -128
  114. package/dist/behaviors/kb-visibility.mjs +1086 -158
  115. package/dist/behaviors/kb-who-can.mjs +1974 -137
  116. package/dist/behaviors/mentions.d.mts +93 -0
  117. package/dist/behaviors/mentions.mjs +2152 -0
  118. package/dist/behaviors/modal.d.mts +4 -3
  119. package/dist/behaviors/modal.mjs +1055 -33
  120. package/dist/behaviors/nav.d.mts +1 -1
  121. package/dist/behaviors/nav.mjs +6 -6
  122. package/dist/behaviors/notification.d.mts +16 -8
  123. package/dist/behaviors/notification.mjs +1615 -265
  124. package/dist/behaviors/panel.d.mts +4 -0
  125. package/dist/behaviors/panel.mjs +994 -0
  126. package/dist/behaviors/popover.d.mts +28 -5
  127. package/dist/behaviors/popover.mjs +225 -24
  128. package/dist/behaviors/select.d.mts +5 -2
  129. package/dist/behaviors/select.mjs +1410 -117
  130. package/dist/behaviors/sidebar.d.mts +1 -1
  131. package/dist/behaviors/sidebar.mjs +13 -13
  132. package/dist/behaviors/slider.d.mts +1 -1
  133. package/dist/behaviors/slider.mjs +9 -9
  134. package/dist/behaviors/split-pane.d.mts +1 -1
  135. package/dist/behaviors/split-pane.mjs +7 -7
  136. package/dist/behaviors/suggestions.d.mts +27 -0
  137. package/dist/behaviors/suggestions.mjs +1089 -0
  138. package/dist/behaviors/svg-parse.d.mts +14 -0
  139. package/dist/behaviors/svg-parse.mjs +37 -0
  140. package/dist/behaviors/tabs.d.mts +2 -2
  141. package/dist/behaviors/tabs.mjs +25 -25
  142. package/dist/behaviors/tag-input.d.mts +23 -5
  143. package/dist/behaviors/tag-input.mjs +1359 -104
  144. package/dist/behaviors/theme-switcher.d.mts +24 -0
  145. package/dist/behaviors/theme-switcher.mjs +1981 -0
  146. package/dist/behaviors/theme.d.mts +15 -8
  147. package/dist/behaviors/theme.mjs +390 -28
  148. package/dist/behaviors/toast.d.mts +24 -25
  149. package/dist/behaviors/toast.mjs +1266 -88
  150. package/dist/behaviors/tooltip.d.mts +4 -0
  151. package/dist/behaviors/tooltip.mjs +378 -0
  152. package/dist/behaviors/tree-select.d.mts +69 -0
  153. package/dist/behaviors/tree-select.mjs +1907 -0
  154. package/dist/behaviors/tree.d.mts +1 -1
  155. package/dist/behaviors/tree.mjs +15 -15
  156. package/dist/behaviors/upload.d.mts +3 -2
  157. package/dist/behaviors/upload.mjs +1076 -66
  158. package/dist/cli.mjs +5 -6
  159. package/dist/components/ai-chat.css +666 -573
  160. package/dist/components/ai-diff.css +153 -132
  161. package/dist/components/ai-panel.css +351 -343
  162. package/dist/components/ai-tool.css +393 -238
  163. package/dist/components/autocomplete.css +61 -0
  164. package/dist/components/autocomplete.mjs +3 -0
  165. package/dist/components/back-top.css +34 -31
  166. package/dist/components/badge.css +44 -41
  167. package/dist/components/breadcrumb.css +67 -46
  168. package/dist/components/btn.css +80 -74
  169. package/dist/components/card.css +117 -106
  170. package/dist/components/cascader.css +311 -0
  171. package/dist/components/cascader.mjs +3 -0
  172. package/dist/components/chart-area.css +8 -2
  173. package/dist/components/chart-bar.css +95 -33
  174. package/dist/components/chart-gauge.css +14 -11
  175. package/dist/components/chart-graph.css +20 -17
  176. package/dist/components/chart-heatmap.css +96 -90
  177. package/dist/components/chart-line.css +8 -3
  178. package/dist/components/chart-pie.css +9 -6
  179. package/dist/components/chart-radar.css +8 -5
  180. package/dist/components/chart-scatter.css +9 -6
  181. package/dist/components/chart-sparkline.css +5 -2
  182. package/dist/components/chart-stack.css +14 -11
  183. package/dist/components/charts.css +164 -73
  184. package/dist/components/code-block.css +418 -0
  185. package/dist/components/code-block.mjs +4 -0
  186. package/dist/components/command-palette.css +138 -117
  187. package/dist/components/content.css +257 -251
  188. package/dist/components/copy.css +72 -44
  189. package/dist/components/datatable.css +423 -181
  190. package/dist/components/date-picker.css +135 -104
  191. package/dist/components/empty.css +68 -65
  192. package/dist/components/feedback.css +201 -183
  193. package/dist/components/form-validate.css +120 -0
  194. package/dist/components/form-validate.mjs +3 -0
  195. package/dist/components/form.css +150 -127
  196. package/dist/components/icon.css +102 -0
  197. package/dist/components/icon.mjs +3 -0
  198. package/dist/components/input.css +159 -104
  199. package/dist/components/kb-agent.css +188 -173
  200. package/dist/components/kb-data.css +257 -253
  201. package/dist/components/kb-ground.css +197 -185
  202. package/dist/components/kb-ingest.css +334 -350
  203. package/dist/components/kb-ops.css +265 -259
  204. package/dist/components/kb-perm.css +260 -271
  205. package/dist/components/kb-search.css +317 -360
  206. package/dist/components/kb.css +120 -109
  207. package/dist/components/layout.css +85 -82
  208. package/dist/components/material-chinese.css +73 -0
  209. package/dist/components/material-soviet.css +76 -0
  210. package/dist/components/material.css +275 -0
  211. package/dist/components/media.css +220 -166
  212. package/dist/components/mentions.css +189 -0
  213. package/dist/components/mentions.mjs +3 -0
  214. package/dist/components/menu.css +113 -105
  215. package/dist/components/modal.css +107 -112
  216. package/dist/components/nav.css +118 -115
  217. package/dist/components/notification.css +238 -174
  218. package/dist/components/pagination.css +56 -53
  219. package/dist/components/panel.css +66 -63
  220. package/dist/components/panel.mjs +1 -0
  221. package/dist/components/pill.css +81 -71
  222. package/dist/components/popover.css +67 -53
  223. package/dist/components/scroll-area.css +113 -110
  224. package/dist/components/segmented.css +146 -143
  225. package/dist/components/select.css +206 -186
  226. package/dist/components/sidebar.css +137 -127
  227. package/dist/components/slider.css +117 -114
  228. package/dist/components/split-pane.css +112 -109
  229. package/dist/components/stat.css +112 -106
  230. package/dist/components/steps.css +109 -103
  231. package/dist/components/switch.css +138 -134
  232. package/dist/components/table.css +131 -107
  233. package/dist/components/tabs.css +114 -108
  234. package/dist/components/tag-input.css +48 -133
  235. package/dist/components/tag.css +81 -71
  236. package/dist/components/theme-switcher.css +105 -0
  237. package/dist/components/theme-switcher.mjs +3 -0
  238. package/dist/components/toast.css +100 -86
  239. package/dist/components/toolbar.css +45 -42
  240. package/dist/components/tooltip.css +102 -43
  241. package/dist/components/tooltip.mjs +1 -0
  242. package/dist/components/tree-select.css +416 -0
  243. package/dist/components/tree-select.mjs +3 -0
  244. package/dist/components/upload.css +135 -92
  245. package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
  246. package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
  247. package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
  248. package/dist/fonts/OFL.txt +96 -0
  249. package/dist/fonts/README.md +14 -0
  250. package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
  251. package/dist/index.d.mts +28 -14
  252. package/dist/index.mjs +20705 -9601
  253. package/dist/react.d.mts +91 -0
  254. package/dist/react.mjs +8208 -0
  255. package/dist/registry.json +130 -13
  256. package/dist/tokens/chinese.css +44 -0
  257. package/dist/tokens/colors.css +365 -1222
  258. package/dist/tokens/design.css +109 -0
  259. package/dist/tokens/dtcg.json +11198 -0
  260. package/dist/tokens/figma.variables.json +7017 -0
  261. package/dist/tokens/icon-masks.css +78 -0
  262. package/dist/tokens/pixel.css +50 -0
  263. package/dist/tokens/soviet.css +44 -0
  264. package/dist/tokens/style-profiles.css +36 -547
  265. package/dist/tokens/themes.json +308 -0
  266. package/dist/tokens/tokens-studio.json +6728 -0
  267. package/dist/tokens/typography.css +21 -18
  268. package/dist/tokens.css +1555 -1801
  269. package/dist/ui.css +11975 -9831
  270. package/dist/vue.d.mts +344 -0
  271. package/dist/vue.mjs +7781 -0
  272. package/docs/spec/ai-input-experience.md +75 -0
  273. package/docs/spec/ai-native.md +238 -147
  274. package/docs/spec/design-philosophy.md +189 -0
  275. package/docs/spec/design-primitives.md +196 -0
  276. package/docs/spec/kb-family.md +147 -115
  277. package/package.json +43 -8
  278. package/dist/retro-effects.css +0 -255
  279. package/dist/tokens/retro-effects.css +0 -255
  280. package/docs/research/2026-10-03-ai-kb-components.md +0 -392
  281. package/docs/research/2026-10-03-kb-permissions.md +0 -992
@@ -0,0 +1,1711 @@
1
+ // src/behaviors/events.ts
2
+ function emitIcen(source, type, detail) {
3
+ return source.dispatchEvent(
4
+ new CustomEvent(type, { detail, bubbles: true, composed: true, cancelable: true })
5
+ );
6
+ }
7
+
8
+ // src/behaviors/i18n.ts
9
+ var ICEN_LOCALE_ZH_CN = {
10
+ /* ── aiBranch ── */
11
+ "aiBranch.nextVersion": "\u4E0B\u4E00\u7248\u672C",
12
+ "aiBranch.prevVersion": "\u4E0A\u4E00\u7248\u672C",
13
+ "aiBranch.version": "\u5206\u652F\u7248\u672C",
14
+ /* ── aiChat ── */
15
+ "aiChat.backToBottom": "\u56DE\u5230\u5E95\u90E8",
16
+ "aiChat.backToBottomCount": "\u56DE\u5230\u5E95\u90E8 \xB7 {p0} \u6761\u65B0\u6D88\u606F",
17
+ "aiChat.continue": "\u7EE7\u7EED\u751F\u6210",
18
+ "aiChat.download": "\u4E0B\u8F7D",
19
+ "aiChat.file": "\u6587\u4EF6",
20
+ "aiChat.roleSystem": "\u7CFB",
21
+ "aiChat.roleTool": "\u5DE5",
22
+ "aiChat.roleUser": "\u6211",
23
+ "aiChat.thinking": "\u601D\u8003 {p0}",
24
+ /* ── aiComposer ── */
25
+ "aiComposer.attachAgent": "\u4EE3\u7406",
26
+ "aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
27
+ "aiComposer.searchLibrary": "\u641C\u7D22\u6280\u80FD\u3001\u5DE5\u5177\u3001\u6587\u4EF6\u4E0E\u547D\u4EE4",
28
+ "aiComposer.all": "\u5168\u90E8",
29
+ "aiComposer.skills": "\u6280\u80FD",
30
+ "aiComposer.tools": "\u5DE5\u5177",
31
+ "aiComposer.libraryHint": "\u4E0A\u4E0B\u6587\u968F\u6D88\u606F\u53D1\u9001 \xB7 \u547D\u4EE4\u5148\u586B\u5165\u8F93\u5165\u6846",
32
+ "aiComposer.commandHint": "\u2191 \u2193 \u6D4F\u89C8 \xB7 Enter \u6267\u884C \xB7 Esc \u8FD4\u56DE",
33
+ "aiComposer.refHint": "\u2191 \u2193 \u6D4F\u89C8 \xB7 Enter \u5F15\u7528 \xB7 Esc \u8FD4\u56DE",
34
+ "aiComposer.noLibraryMatch": "\u6CA1\u6709\u5339\u914D\u7684\u9879\u76EE\uFF0C\u8BD5\u8BD5\u5176\u4ED6\u5173\u952E\u8BCD",
35
+ "aiComposer.filesNeedAdapter": "\u9644\u4EF6\u5C1A\u672A\u63A5\u901A\u4E0A\u4F20\u3002\u8BF7\u914D\u7F6E prepareMessage \u540E\u91CD\u8BD5\uFF0C\u6587\u4EF6\u4ECD\u4FDD\u7559\u5728\u6B64\u8BF7\u6C42\u4E2D\u3002",
36
+ "aiComposer.attachDoc": "\u6587\u6863",
37
+ "aiComposer.attachFile": "\u6587\u4EF6",
38
+ "aiComposer.attachFolder": "\u6587\u4EF6\u5939",
39
+ "aiComposer.cacheInvalidHint": "\u5207\u6362\u6A21\u578B\u4F1A\u4F7F prompt \u7F13\u5B58\u5931\u6548",
40
+ "aiComposer.commands": "\u547D\u4EE4",
41
+ "aiComposer.currentTodos": "\u5F53\u524D\u5F85\u529E",
42
+ "aiComposer.done": "\u5B8C\u6210",
43
+ "aiComposer.justNow": "\u521A\u521A \xB7 {p0}",
44
+ "aiComposer.modelAria": "\u6A21\u578B {p0}\uFF08{p1}\uFF09",
45
+ "aiComposer.noCommandMatch": "\u65E0\u5339\u914D\u547D\u4EE4",
46
+ "aiComposer.noModelMatch": "\u65E0\u5339\u914D\u6A21\u578B",
47
+ "aiComposer.noRefMatch": "\u65E0\u5339\u914D\u5F15\u7528",
48
+ "aiComposer.placeholder": "\u8F93\u5165\u6D88\u606F\uFF0C/ \u547D\u4EE4 \xB7 @ \u5F15\u7528 \xB7 Enter \u53D1\u9001",
49
+ "aiComposer.refs": "\u5F15\u7528",
50
+ "aiComposer.removeAttachment": "\u79FB\u9664\u9644\u4EF6 {p0}",
51
+ "aiComposer.removeQueued": "\u79FB\u9664\u6392\u961F\u6D88\u606F {p0}",
52
+ "aiComposer.removeRef": "\u79FB\u9664\u5F15\u7528 {p0}",
53
+ "aiComposer.searchModels": "\u641C\u7D22\u6A21\u578B",
54
+ "aiComposer.selectModel": "\u9009\u62E9\u6A21\u578B",
55
+ "aiComposer.send": "\u53D1\u9001",
56
+ "aiComposer.stop": "\u505C\u6B62\u751F\u6210",
57
+ "aiComposer.stopped": "\u5DF2\u505C\u6B62",
58
+ "aiComposer.todoChip": "\u5F53\u524D\u5F85\u529E {p0}/{p1}{p2}",
59
+ "aiComposer.todoHasError": "\uFF08\u6709\u5931\u8D25\u9879\uFF09",
60
+ /* ── aiCore ── */
61
+ "aiCore.kindBrowser": "\u6D4F\u89C8",
62
+ "aiCore.kindChart": "\u56FE\u8868",
63
+ "aiCore.kindDelete": "\u5220\u9664",
64
+ "aiCore.kindEdit": "\u7F16\u8F91",
65
+ "aiCore.kindFetch": "\u8BF7\u6C42",
66
+ "aiCore.kindGlob": "\u5339\u914D",
67
+ "aiCore.kindGrep": "\u641C\u7D22",
68
+ "aiCore.kindNote": "\u7B14\u8BB0",
69
+ "aiCore.kindPlan": "\u8BA1\u5212",
70
+ "aiCore.kindRead": "\u8BFB\u53D6",
71
+ "aiCore.kindSearch": "\u68C0\u7D22",
72
+ "aiCore.kindShell": "\u547D\u4EE4",
73
+ "aiCore.kindSkill": "\u6280\u80FD",
74
+ "aiCore.kindSubagent": "\u5B50\u4EE3\u7406",
75
+ "aiCore.kindTodo": "\u5F85\u529E",
76
+ "aiCore.kindWrite": "\u5199\u5165",
77
+ "aiCore.statusApproval": "\u5F85\u786E\u8BA4",
78
+ "aiCore.statusCancelled": "\u5DF2\u53D6\u6D88",
79
+ "aiCore.statusDone": "\u5B8C\u6210",
80
+ "aiCore.statusError": "\u5931\u8D25",
81
+ "aiCore.statusPending": "\u7B49\u5F85",
82
+ "aiCore.statusRunning": "\u6267\u884C\u4E2D",
83
+ "aiCore.statusStreaming": "\u6D41\u5F0F\u4E2D",
84
+ "aiCore.todoProgress": "{p0}/{p1} \u5B8C\u6210",
85
+ /* ── aiDiff ── */
86
+ "aiDiff.accepted": "\u5DF2\u63A5\u53D7",
87
+ "aiDiff.binary": "\u4E8C\u8FDB\u5236\u6587\u4EF6\uFF0C\u65E0\u6CD5\u663E\u793A\u6587\u672C\u5DEE\u5F02",
88
+ "aiDiff.empty": "\u65E0\u5DEE\u5F02\u5185\u5BB9",
89
+ "aiDiff.rejected": "\u5DF2\u62D2\u7EDD",
90
+ /* ── aiFeedback ── */
91
+ "aiFeedback.helpful": "\u6709\u5E2E\u52A9",
92
+ "aiFeedback.notHelpful": "\u65E0\u5E2E\u52A9",
93
+ "aiFeedback.reasonCitationMismatch": "\u5F15\u7528\u4E0D\u7B26",
94
+ "aiFeedback.reasonOutdated": "\u5185\u5BB9\u8FC7\u65F6",
95
+ "aiFeedback.reasonUnauthorized": "\u8D8A\u6743\u4FE1\u606F",
96
+ "aiFeedback.reasonUnsourced": "\u65E0\u5F15\u7528\u4F9D\u636E",
97
+ "aiFeedback.reasonWrong": "\u7B54\u6848\u6709\u8BEF",
98
+ "aiFeedback.thanks": "\u611F\u8C22\u53CD\u9988\uFF0C\u5DF2\u5173\u8054\u5230\u8BE5\u6761\u56DE\u7B54\u7684\u8FFD\u8E2A\u8BB0\u5F55",
99
+ /* ── aiPanel ── */
100
+ "aiPanel.audit": "\u5BA1\u8BA1",
101
+ "aiPanel.cacheRead": "\u7F13\u5B58\u8BFB",
102
+ "aiPanel.cacheWrite": "\u7F13\u5B58\u5199",
103
+ "aiPanel.callsTokens": "{p0} \u6B21 \xB7 {p1} tok{p2}",
104
+ "aiPanel.clearAudit": "\u6E05\u9664\u5BA1\u8BA1",
105
+ "aiPanel.context": "\u4E0A\u4E0B\u6587",
106
+ "aiPanel.contextWindow": "\u4E0A\u4E0B\u6587\u7A97\u53E3",
107
+ "aiPanel.errorsCount": "{p0} \u5931\u8D25",
108
+ "aiPanel.files": "\u6587\u4EF6 ({p0})",
109
+ "aiPanel.itemStatus": "{p0}\uFF0C\u72B6\u6001\uFF1A{p1}",
110
+ "aiPanel.noAudit": "\u6682\u65E0\u5BA1\u8BA1\u8BB0\u5F55",
111
+ "aiPanel.noUsage": "\u6682\u65E0\u7528\u91CF",
112
+ "aiPanel.reasoning": "\u63A8\u7406",
113
+ "aiPanel.requestsCount": "{p0} \u6B21\u8BF7\u6C42",
114
+ "aiPanel.ringPercent": "\u4E0A\u4E0B\u6587\u7A97\u53E3\u5360\u7528 {p0}%\uFF0C\u70B9\u51FB\u67E5\u770B\u8BE6\u60C5",
115
+ "aiPanel.ringUsed": "\u5DF2\u7528 {p0}\uFF0C\u70B9\u51FB\u67E5\u770B\u8BE6\u60C5",
116
+ "aiPanel.taskProgress": "\u4EFB\u52A1\u8FDB\u5EA6",
117
+ "aiPanel.toolsCount": "{p0} \u5DE5\u5177",
118
+ "aiPanel.usage": "\u7528\u91CF",
119
+ "aiPanel.usageAria": "\u7528\u91CF\uFF1A{p0}",
120
+ /* ── aiProvider ── */
121
+ "aiProvider.audioUrlOnly": "\u4EC5 URL \u7684\u97F3\u9891\uFF08input_audio \u9700 base64\uFF0C\u8BF7\u5148\u53D6\u56DE\u5185\u8054\uFF09",
122
+ "aiProvider.audioUrlOnlyAnthropic": "\u4EC5 URL \u7684\u97F3\u9891\uFF08audio \u5757\u9700 base64 source\uFF09",
123
+ "aiProvider.base64File": "base64 \u6587\u4EF6\uFF08file \u90E8\u4EF6\u9700 Files API file_id\uFF0C\u8BF7\u7F6E\u4E8E url \u69FD\uFF09",
124
+ "aiProvider.corsHint": "\uFF1B\u6D4F\u89C8\u5668\u76F4\u8FDE {p0}\uFF08{p1}\uFF09\u5F88\u53EF\u80FD\u88AB CORS \u62E6\u622A\uFF0C\u5EFA\u8BAE\u7ECF\u4EE3\u7406/\u81EA\u5EFA\u7F51\u5173\u8F6C\u53D1",
125
+ "aiProvider.emptyResponse": "\u54CD\u5E94\u4E3A\u7A7A",
126
+ "aiProvider.glmLabel": "GLM\uFF08\u667A\u8C31\uFF09",
127
+ "aiProvider.invalidJson": "\u54CD\u5E94\u4E0D\u662F\u5408\u6CD5 JSON",
128
+ "aiProvider.kimiLabel": "Kimi\uFF08\u6708\u4E4B\u6697\u9762\uFF09",
129
+ "aiProvider.networkFailed": "\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25\uFF1A{p0}{p1}",
130
+ "aiProvider.nonPdfDocument": "\u975E PDF \u6587\u4EF6\u5757\uFF08document \u5757\u4E3A application/pdf\uFF0C\u6536\u5230 {p0}\uFF09",
131
+ "aiProvider.requestCancelled": "\u8BF7\u6C42\u5DF2\u53D6\u6D88",
132
+ "aiProvider.resourceRef": "[\u8D44\u6E90] {p0} ({p1})",
133
+ "aiProvider.streamError": "\u6D41\u5F0F\u54CD\u5E94\u9519\u8BEF",
134
+ "aiProvider.toolRoleNoCallId": "role 'tool' \u4E14\u7F3A toolCallId\uFF08openai \u65CF\u9700 tool_call_id\uFF09",
135
+ "aiProvider.toolRoleNoUseId": "role 'tool' \u4E14\u7F3A toolCallId\uFF08anthropic \u65CF\u6620\u5C04 tool_result \u9700 tool_use_id\uFF09",
136
+ "aiProvider.unsupported": "{p0} \u7EBF\u534F\u8BAE\u4E0D\u652F\u6301 {p1}",
137
+ "aiProvider.videoUnsupported": "video \u8F93\u5165\uFF08\u65E0\u4E3B\u6D41 chat API \u652F\u6301\uFF09",
138
+ "aiProvider.videoUnsupportedAnthropic": "video \u8F93\u5165",
139
+ /* ── aiThreads ── */
140
+ "aiThreads.actionsAria": "\u4F1A\u8BDD\u64CD\u4F5C",
141
+ "aiThreads.archived": "\u5DF2\u5F52\u6863",
142
+ /* ── aiTool ── */
143
+ "aiTool.allow": "\u5141\u8BB8",
144
+ "aiTool.reject": "\u62D2\u7EDD",
145
+ /* ── aiTools ── */
146
+ "aiTools.chart.area": "line \u591A\u7CFB\u5217\u586B\u5145\u9762\u79EF",
147
+ "aiTools.chart.data": "\u4EFB\u610F\u7EF4\u5EA6\u539F\u59CB\u8BB0\u5F55 + dims \u5B57\u6BB5\u6620\u5C04\uFF08\u81EA\u52A8\u900F\u89C6\u6210 \u7C7B\u76EE \xD7 \u7CFB\u5217\uFF09",
148
+ "aiTools.chart.dates": "\u8D21\u732E\u65E5\u5386 ISO \u65E5\u671F\uFF08\u4E0E values \u914D\u5BF9\uFF09",
149
+ "aiTools.chart.description": "\u5728\u7528\u6237\u754C\u9762\u6E32\u67D3\u4E00\u5F20\u56FE\u8868\u53EF\u89C6\u5316\u3002\u8F93\u5165\u4E00\u4EFD\u56FE\u8868\u89C4\u683C\uFF08\u7EAF JSON\uFF09\uFF1Alabels+values\uFF08\u7C7B\u76EE\u6570\u503C\uFF09\u3001series\uFF08\u591A\u7CFB\u5217\uFF09\u3001segments\uFF08\u5360\u6BD4\uFF09\u3001points\uFF08\u6563\u70B9\u6C14\u6CE1\uFF09\u3001dates\uFF08\u8D21\u732E\u65E5\u5386\uFF09\u4EFB\u7ED9\u5176\u4E00\uFF1Btype \u7F3A\u7701\u65F6\u6309\u6570\u636E\u5F62\u6001\u81EA\u52A8\u9009\u578B\uFF08\u65F6\u95F4\u5E8F\u5217\u2192\u6298\u7EBF\u3001\u5360\u6BD4\u2192\u73AF\u5F62\u3001\u65E5\u671F\u2192\u8D21\u732E\u65E5\u5386\u3001\u5750\u6807\u70B9\u2192\u6563\u70B9\uFF09\u3002\u56FE\u8868\u5E26\u4EA4\u4E92\uFF08\u60AC\u505C\u63D0\u793A/\u70B9\u51FB/\u53F3\u952E\uFF09\u4E0E\u53EF\u9690\u85CF\u56FE\u4F8B\u3002",
150
+ "aiTools.chart.dims": "data[] \u7684\u5B57\u6BB5\u6620\u5C04\uFF1A{label?, series?, value?, x?, y?}",
151
+ "aiTools.chart.format": "\u6570\u503C\u683C\u5F0F\u5316\uFF1A{notation?: compact|percent|ms, unit?}",
152
+ "aiTools.chart.labels": "\u7C7B\u76EE\u8F74\uFF08line/vbar/hbar\uFF09",
153
+ "aiTools.chart.legend": "false = \u521D\u59CB\u9690\u85CF\u56FE\u4F8B",
154
+ "aiTools.chart.lttb": "\u5927\u6570\u636E\u91CF\u964D\u91C7\u6837\uFF1Atrue=\u81EA\u52A8\u4E0A\u9650\uFF0C\u6570\u5B57=\u6700\u5927\u4FDD\u7559\u70B9\u6570\uFF08\u6E32\u67D3\u5C42\u5951\u7EA6\uFF0C\u968F\u56FE\u8868\u91CD\u5EA6\u573A\u666F\u843D\u5730\uFF09",
155
+ "aiTools.chart.marks": "\u6807\u8BB0\u5C42\uFF08\u9608\u503C\u7EBF/\u53C2\u8003\u533A\u95F4/\u5F3A\u8C03\u70B9\uFF09\uFF0C\u5143\u7D20\u4E3A\u7EAF JSON \u63CF\u8FF0\u5B50\uFF08\u6E32\u67D3\u5C42\u5951\u7EA6\uFF0C\u968F\u56FE\u8868\u91CD\u5EA6\u573A\u666F\u843D\u5730\uFF09",
156
+ "aiTools.chart.points": "\u6563\u70B9/\u6C14\u6CE1\uFF1A[{x,y,size?,label?}]",
157
+ "aiTools.chart.radarAxes": "\u96F7\u8FBE\u8F74\u540D",
158
+ "aiTools.chart.segments": "\u5360\u6BD4\u578B\uFF08donut/stack\uFF09\uFF1A[{label,value}]",
159
+ "aiTools.chart.series": "\u591A\u7CFB\u5217\uFF08line/vbar/radar\uFF09",
160
+ "aiTools.chart.stacked": "vbar \u591A\u7CFB\u5217\u5806\u53E0\uFF08\u9ED8\u8BA4\u5206\u7EC4\uFF09",
161
+ "aiTools.chart.title": "\u56FE\u8868\u6807\u9898\uFF08\u6E32\u67D3\u5728\u5934\u90E8\u884C\u5DE6\u4FA7\uFF09",
162
+ "aiTools.chart.tooltip": "false = \u5173\u95ED\u5185\u7F6E\u63D0\u793A",
163
+ "aiTools.chart.type": "\u56FE\u8868\u7C7B\u578B\uFF0C\u7F3A\u7701\u81EA\u52A8\u63A8\u65AD",
164
+ "aiTools.chart.values": "\u5355\u7CFB\u5217\u6570\u503C\uFF08\u4E0E labels \u914D\u5BF9\uFF09",
165
+ "aiTools.chart.zoom": "\u7F29\u653E\u4EA4\u4E92\uFF1A'x'=\u7C7B\u76EE\u8F74\u533A\u95F4\u7F29\u653E\uFF0C'brush'=\u5237\u9009\u7F29\u653E",
166
+ "aiTools.datatable.columns": "\u5217\u5B9A\u4E49\u6570\u7EC4\uFF1A\u6BCF\u9879 { key, title, sortable?, filterable? }\uFF08key \u5BF9\u5E94 rows \u5143\u7D20\u5B57\u6BB5\u540D\uFF09",
167
+ "aiTools.datatable.description": "\u5728\u7528\u6237\u754C\u9762\u6E32\u67D3\u4E00\u4E2A\u53EF\u641C\u7D22\u3001\u5206\u9875\u3001\u53EF\u5BFC\u51FA CSV \u7684\u6570\u636E\u8868\u683C\u3002\u8F93\u5165\u7EAF JSON\uFF1Acolumns \u4E3A\u5217\u5B9A\u4E49\uFF08key/title \u5FC5\u586B\uFF09\uFF0Crows \u4E3A\u884C\u5BF9\u8C61\u6570\u7EC4\uFF08\u5B57\u6BB5\u540D\u5BF9\u9F50\u5217 key\uFF09\u3002\u8FD4\u56DE { title, rows: \u884C\u6570 } \u6458\u8981\u3002",
168
+ "aiTools.datatable.rows": "\u884C\u6570\u636E\u6570\u7EC4\uFF1A\u6BCF\u9879\u4E3A\u4E00\u4E2A\u5BF9\u8C61\uFF0C\u5B57\u6BB5\u540D\u5BF9\u9F50 columns[].key",
169
+ "aiTools.datatable.title": "\u8868\u683C\u6807\u9898\uFF08\u6E32\u67D3\u5728\u5DE5\u5177\u680F\u5DE6\u4FA7\uFF09",
170
+ "aiTools.execFailed": "\u5DE5\u5177\u6267\u884C\u5931\u8D25\uFF1A{p0}",
171
+ "aiTools.execTimeout": "\u6267\u884C\u8D85\u65F6\uFF08{p0}ms\uFF09",
172
+ "aiTools.manifestHeader": "\u53EF\u7528 UI \u5DE5\u5177\uFF08\u8C03\u7528\u540E\u5728\u7528\u6237\u754C\u9762\u6302\u8F7D\u53EF\u89C6\u5316\u7ED3\u679C\uFF09\uFF1A",
173
+ "aiTools.missingRequired": "\u7F3A\u5C11\u5FC5\u586B\u5B57\u6BB5",
174
+ "aiTools.none": "\uFF08\u65E0\u5DF2\u6CE8\u518C\u7684 UI \u5DE5\u5177\uFF09",
175
+ "aiTools.notInEnum": "\u4E0D\u5728\u5141\u8BB8\u53D6\u503C\u5185\uFF08{p0}\uFF09",
176
+ "aiTools.numMax": "\u6570\u503C {p0} \u5927\u4E8E\u6700\u5927\u503C {p1}",
177
+ "aiTools.numMin": "\u6570\u503C {p0} \u5C0F\u4E8E\u6700\u5C0F\u503C {p1}",
178
+ "aiTools.removeMount": "\u79FB\u9664 {p0} \u6302\u8F7D",
179
+ "aiTools.strMax": "\u957F\u5EA6 {p0} \u8D85\u8FC7\u4E0A\u9650 {p1}",
180
+ "aiTools.strMin": "\u957F\u5EA6 {p0} \u5C0F\u4E8E\u4E0B\u9650 {p1}",
181
+ "aiTools.typeMismatch": "\u671F\u671B {p0}\uFF0C\u5B9E\u5F97 {p1}",
182
+ "aiTools.validationFailed": "\u53C2\u6570\u6821\u9A8C\u5931\u8D25\uFF08{p0} \u9879\uFF09",
183
+ /* ── autocomplete ── */
184
+ "suggestions.loading": "\u6B63\u5728\u67E5\u627E\u5EFA\u8BAE\u2026",
185
+ "suggestions.error": "\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D\u5EFA\u8BAE\uFF0C\u8BF7\u91CD\u8BD5\u3002",
186
+ "suggestions.options": "\u5EFA\u8BAE",
187
+ "suggestions.empty": "\u6CA1\u6709\u5339\u914D\u7684\u5EFA\u8BAE",
188
+ "autocomplete.empty": "\u65E0\u5339\u914D\u7ED3\u679C",
189
+ /* ── backTop ── */
190
+ "backTop.label": "\u56DE\u5230\u9876\u90E8",
191
+ /* ── carousel ── */
192
+ "carousel.item": "\u7B2C {p0} \u5F20",
193
+ "carousel.region": "\u8F6E\u64AD",
194
+ "carousel.slide": "\u5E7B\u706F\u7247",
195
+ "carousel.status": "\u7B2C {p0} / {p1} \u5F20",
196
+ /* ── charts ── */
197
+ "charts.calendarWeekdays": ["\u4E00", "", "\u4E09", "", "\u4E94", "", "\u65E5"],
198
+ "charts.few": "\u5C11",
199
+ "charts.hideLegend": "\u9690\u85CF\u56FE\u4F8B",
200
+ "charts.loading": "\u52A0\u8F7D\u4E2D",
201
+ "charts.many": "\u591A",
202
+ "charts.monthLabel": "{p0}\u6708",
203
+ "charts.noData": "\u6682\u65E0\u6570\u636E",
204
+ "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
205
+ "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
206
+ "charts.type.area": "\u9762\u79EF\u56FE",
207
+ "charts.type.donut": "\u73AF\u5F62\u56FE",
208
+ "charts.type.gauge": "\u4EEA\u8868\u76D8",
209
+ "charts.type.graph": "\u77E5\u8BC6\u56FE\u8C31",
210
+ "charts.type.heatmap": "\u70ED\u529B\u56FE",
211
+ "charts.type.line": "\u6298\u7EBF\u56FE",
212
+ "charts.type.map": "\u5730\u56FE",
213
+ "charts.type.radar": "\u96F7\u8FBE\u56FE",
214
+ "charts.type.scatter": "\u6563\u70B9\u56FE",
215
+ "charts.type.sparkline": "\u8FF7\u4F60\u8D8B\u52BF",
216
+ "charts.seriesName": "\u7CFB\u5217{p0}",
217
+ "charts.showLegend": "\u663E\u793A\u56FE\u4F8B",
218
+ "charts.value": "\u6570\u503C",
219
+ /* ── themeSwitcher ── */
220
+ "themeSwitcher.appearance": "\u5916\u89C2",
221
+ "themeSwitcher.theme": "\u4E3B\u9898",
222
+ "themeSwitcher.primitive": "\u539F\u8BED",
223
+ "themeSwitcher.mode": "\u660E\u6697",
224
+ "themeSwitcher.light": "\u6D45\u8272",
225
+ "themeSwitcher.dark": "\u6DF1\u8272",
226
+ "themeSwitcher.modern": "\u73B0\u4EE3",
227
+ "themeSwitcher.dongyun": "\u4E1C\u97F5",
228
+ "themeSwitcher.jugou": "\u5DE8\u6784",
229
+ "themeSwitcher.piano": "\u94A2\u7434",
230
+ "themeSwitcher.monet": "\u83AB\u5948",
231
+ "themeSwitcher.vangogh": "\u68B5\u9AD8",
232
+ "themeSwitcher.chinese": "\u4E2D\u5F0F",
233
+ "themeSwitcher.soviet": "\u82CF\u5F0F",
234
+ "themeSwitcher.pixel": "\u50CF\u7D20",
235
+ /* ── codeBlock ── */
236
+ "codeBlock.collapse": "\u6536\u8D77",
237
+ "codeBlock.region": "\u4EE3\u7801\u5185\u5BB9",
238
+ "codeBlock.copyFailed": "\u672A\u80FD\u590D\u5236\uFF0C\u8BF7\u91CD\u8BD5\u3002",
239
+ "codeBlock.copyRetry": "\u91CD\u8BD5\u590D\u5236",
240
+ "codeBlock.copy": "\u590D\u5236",
241
+ "codeBlock.foldCollapse": "\u6298\u53E0\u4EE3\u7801",
242
+ "codeBlock.foldExpand": "\u5C55\u5F00\u4EE3\u7801",
243
+ "codeBlock.linesTotal": "\u5171 {p0} \u884C",
244
+ "codeBlock.numHide": "\u9690\u85CF\u884C\u53F7",
245
+ "codeBlock.numShow": "\u663E\u793A\u884C\u53F7",
246
+ "codeBlock.tailAria": "\u5C55\u5F00\u6216\u6536\u8D77\u4EE3\u7801",
247
+ "codeBlock.wrapOff": "\u5173\u95ED\u6362\u884C",
248
+ "codeBlock.wrapOn": "\u81EA\u52A8\u6362\u884C",
249
+ /* ── common ── */
250
+ "common.accept": "\u63A5\u53D7",
251
+ "common.add": "\u65B0\u589E",
252
+ "common.all": "\u5168\u90E8",
253
+ "common.approve": "\u6279\u51C6",
254
+ "common.cancel": "\u53D6\u6D88",
255
+ "common.actionFailed": "\u64CD\u4F5C\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u8BD5\u3002",
256
+ "common.close": "\u5173\u95ED",
257
+ "common.confirm": "\u786E\u8BA4",
258
+ "common.copied": "\u5DF2\u590D\u5236",
259
+ "common.copy": "\u590D\u5236",
260
+ "common.delete": "\u5220\u9664",
261
+ "common.enable": "\u542F\u7528",
262
+ "common.exportCsv": "\u5BFC\u51FA CSV",
263
+ "common.healthy": "\u6B63\u5E38",
264
+ "common.input": "\u8F93\u5165",
265
+ "common.loadingEllipsis": "\u52A0\u8F7D\u4E2D\u2026",
266
+ "common.official": "\u5B98\u65B9",
267
+ "common.output": "\u8F93\u51FA",
268
+ "common.page": "\u7B2C {p0} \u9875",
269
+ "common.reject": "\u62D2\u7EDD",
270
+ "common.remove": "\u79FB\u9664",
271
+ "common.requestAccess": "\u7533\u8BF7\u8BBF\u95EE",
272
+ "common.requestAccessFor": "\u7533\u8BF7\u8BBF\u95EE {p0}",
273
+ "common.restricted": "\u53D7\u9650",
274
+ "common.retry": "\u91CD\u8BD5",
275
+ "common.rows": "{p0} \u884C",
276
+ "common.run": "\u8FD0\u884C",
277
+ "common.steps": "{p0} \u6B65",
278
+ "common.submit": "\u63D0\u4EA4",
279
+ "common.unknown": "\u672A\u77E5",
280
+ /* ── contextMenu ── */
281
+ "contextMenu.back": "\u540E\u9000",
282
+ "contextMenu.copyPageLink": "\u590D\u5236\u9875\u9762\u94FE\u63A5",
283
+ "contextMenu.forward": "\u524D\u8FDB",
284
+ "contextMenu.refresh": "\u5237\u65B0",
285
+ /* ── copy ── */
286
+ "copy.copied": "\u5DF2\u590D\u5236",
287
+ "copy.failed": "\u672A\u80FD\u590D\u5236\uFF0C\u8BF7\u91CD\u8BD5\u3002",
288
+ "copy.denied": "clipboard API \u88AB\u62D2\uFF08{p0}\uFF09\u4E14\u56DE\u9000 execCommand \u5931\u8D25",
289
+ "copy.unavailable": "\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF08\u65E0 clipboard API \u4E14 execCommand \u56DE\u9000\u5931\u8D25\uFF09",
290
+ "copy.unknown": "\u672A\u77E5\u9519\u8BEF",
291
+ /* ── datatable ── */
292
+ "datatable.clear": "\u6E05\u7A7A",
293
+ "datatable.collapseGroup": "\u6298\u53E0\u5206\u7EC4 {p0}",
294
+ "datatable.columnSettingsAria": "\u5217\u8BBE\u7F6E",
295
+ "datatable.countUnit": "{p0} \u6761",
296
+ "datatable.editHint": "\u7F16\u8F91\u300C{p0}\u300D\uFF1A\u53CC\u51FB\u6216\u6309 Enter",
297
+ "datatable.editHintWithValue": "{p0}\uFF08\u53CC\u51FB\u6216\u6309 Enter \u7F16\u8F91\u300C{p1}\u300D\uFF09",
298
+ "datatable.empty": "\u6682\u65E0\u6570\u636E",
299
+ "datatable.emptyValue": "\uFF08\u7A7A\uFF09",
300
+ "datatable.expandGroup": "\u5C55\u5F00\u5206\u7EC4 {p0}",
301
+ "datatable.expandRow": "\u5C55\u5F00\u884C",
302
+ "datatable.filterChipAria": "\u7B5B\u9009\u300C{p0}\u300D",
303
+ "datatable.pageSizeAria": "\u6BCF\u9875\u6761\u6570",
304
+ "datatable.paginationAria": "\u5206\u9875",
305
+ "datatable.reset": "\u91CD\u7F6E",
306
+ "datatable.resizeAria": "\u8C03\u6574\u300C{p0}\u300D\u5217\u5BBD",
307
+ "datatable.searchAria": "\u641C\u7D22\u8868\u683C",
308
+ "datatable.searchPlaceholder": "\u641C\u7D22\u2026",
309
+ "datatable.selectAll": "\u5168\u9009",
310
+ "datatable.selectRow": "\u9009\u62E9\u8BE5\u884C",
311
+ "datatable.selectedCount": "\u5DF2\u9009 {p0} \u9879",
312
+ "datatable.totalCount": "\u5171 {p0} \u6761",
313
+ "datatable.totalLabel": "\u5408\u8BA1",
314
+ /* ── datePicker ── */
315
+ "datePicker.noDates": "\u6CA1\u6709\u53EF\u9009\u65E5\u671F",
316
+ "datePicker.clear": "\u6E05\u9664",
317
+ "datePicker.nextMonth": "\u4E0B\u4E00\u6708",
318
+ "datePicker.prevMonth": "\u4E0A\u4E00\u6708",
319
+ "datePicker.selectDate": "\u9009\u62E9\u65E5\u671F",
320
+ "datePicker.today": "\u4ECA\u5929",
321
+ "datePicker.weekdays": ["\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u65E5"],
322
+ "datePicker.weekdaysSunFirst": ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"],
323
+ "datePicker.yearMonth": "{p0} \u5E74 {p1} \u6708",
324
+ /* ── formValidate ── */
325
+ "formValidate.email": "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u90AE\u7BB1\u5730\u5740",
326
+ "formValidate.invalid": "\u8F93\u5165\u4E0D\u5408\u6CD5",
327
+ "formValidate.matches": "\u4E24\u6B21\u8F93\u5165\u4E0D\u4E00\u81F4",
328
+ "formValidate.max": "\u4E0D\u80FD\u5927\u4E8E {max}",
329
+ "formValidate.maxlength": "\u6700\u591A\u8F93\u5165 {max} \u4E2A\u5B57\u7B26",
330
+ "formValidate.min": "\u4E0D\u80FD\u5C0F\u4E8E {min}",
331
+ "formValidate.minlength": "\u81F3\u5C11\u8F93\u5165 {min} \u4E2A\u5B57\u7B26",
332
+ "formValidate.number": "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u6570\u5B57",
333
+ "formValidate.pattern": "\u8F93\u5165\u683C\u5F0F\u4E0D\u6B63\u786E",
334
+ "formValidate.required": "\u6B64\u9879\u4E3A\u5FC5\u586B\u9879",
335
+ "formValidate.selectPlaceholder": "\u8BF7\u9009\u62E9",
336
+ "formValidate.step": "\u6570\u503C\u5FC5\u987B\u662F {step} \u7684\u500D\u6570",
337
+ "formValidate.summary": "\u8868\u5355\u6709 {p0} \u9879\u5185\u5BB9\u9700\u8981\u4FEE\u6B63\uFF0C\u8BF7\u4FEE\u6539\u540E\u91CD\u65B0\u63D0\u4EA4",
338
+ "formValidate.tool.description": "\u5411\u7528\u6237\u6E32\u67D3\u4E00\u4E2A\u7ED3\u6784\u5316\u8868\u5355\u6536\u96C6\u8F93\u5165",
339
+ "formValidate.tool.fields": "\u5B57\u6BB5\u5217\u8868",
340
+ "formValidate.tool.help": "\u5B57\u6BB5\u4E0B\u65B9\u7684\u5E2E\u52A9\u6587\u6848",
341
+ "formValidate.tool.label": "\u5B57\u6BB5\u6807\u7B7E",
342
+ "formValidate.tool.max": "\u6700\u5927\u503C\uFF08number \u7528\uFF09",
343
+ "formValidate.tool.min": "\u6700\u5C0F\u503C\uFF08number \u7528\uFF09",
344
+ "formValidate.tool.name": "\u5B57\u6BB5\u540D\uFF08\u63D0\u4EA4\u503C\u7684 key\uFF09",
345
+ "formValidate.tool.options": "select \u9009\u9879\uFF08\u5B57\u7B26\u4E32\u6216 {label,value}\uFF09",
346
+ "formValidate.tool.pattern": "\u6B63\u5219\u7EA6\u675F\uFF08HTML pattern \u8BED\u6CD5\uFF0C\u6574\u4E32\u5339\u914D\uFF09",
347
+ "formValidate.tool.required": "\u662F\u5426\u5FC5\u586B",
348
+ "formValidate.tool.submitText": "\u63D0\u4EA4\u6309\u94AE\u6587\u6848\uFF0C\u9ED8\u8BA4\u300C\u63D0\u4EA4\u300D",
349
+ "formValidate.tool.title": "\u8868\u5355\u6807\u9898\uFF08\u53EF\u9009\uFF09",
350
+ "formValidate.tool.type": "\u63A7\u4EF6\u7C7B\u578B\uFF0C\u9ED8\u8BA4 text",
351
+ "formValidate.url": "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u94FE\u63A5\u5730\u5740",
352
+ /* ── input ── */
353
+ "input.clearSearch": "\u6E05\u7A7A\u641C\u7D22",
354
+ "input.hidePassword": "\u9690\u85CF\u5BC6\u7801",
355
+ "input.otpPosition": "\u7B2C {p0} \u4F4D\uFF0C\u5171 {p1} \u4F4D",
356
+ "panel.expand": "\u5C55\u5F00",
357
+ "panel.collapse": "\u6298\u53E0",
358
+ "input.showPassword": "\u663E\u793A\u5BC6\u7801",
359
+ /* ── kbAccess ── */
360
+ "kbAccess.approveTip": "\u6279\u51C6\u8BE5\u8BBF\u95EE\u7533\u8BF7",
361
+ "kbAccess.approvedBadge": "\u5DF2\u6279\u51C6 \xB7 {p0}",
362
+ "kbAccess.approverNotePlaceholder": "\u7ED9\u8BF7\u6C42\u4EBA\u7684\u7559\u8A00\uFF08\u53EF\u9009\uFF09",
363
+ "kbAccess.daysLeft": "{p0} \u5929\u540E",
364
+ "kbAccess.defaultSubject": "\u8BE5\u5185\u5BB9",
365
+ "kbAccess.deniedHint": "\u672A\u901A\u8FC7\u2014\u2014\u53EF\u8C03\u6574\u7406\u7531\u540E\u91CD\u65B0\u7533\u8BF7",
366
+ "kbAccess.denyNoteLabel": "\u62D2\u7EDD\u7559\u8A00\uFF08\u53EF\u9009\uFF09",
367
+ "kbAccess.duration30d": "30 \u5929",
368
+ "kbAccess.duration7d": "7 \u5929",
369
+ "kbAccess.durationForever": "\u6C38\u4E45",
370
+ "kbAccess.durationLabel": "\u8BBF\u95EE\u65F6\u957F",
371
+ "kbAccess.expired": "\u5DF2\u5230\u671F",
372
+ "kbAccess.expiresAt": "{p0}\u5230\u671F",
373
+ "kbAccess.grantAsPrefix": "\u6279\u51C6\u4E3A{p0}",
374
+ "kbAccess.grantRoleLabel": "\u6279\u51C6\u89D2\u8272",
375
+ "kbAccess.hoursLeft": "{p0} \u5C0F\u65F6\u540E",
376
+ "kbAccess.minutesLeft": "{p0} \u5206\u949F\u540E",
377
+ "kbAccess.ownerLabel": "\u5185\u5BB9\u8D1F\u8D23\u4EBA",
378
+ "kbAccess.ownerPrefix": "\u8D1F\u8D23\u4EBA\uFF1A{p0}",
379
+ "kbAccess.reapply": "\u91CD\u65B0\u7533\u8BF7",
380
+ "kbAccess.reasonLabel": "\u7533\u8BF7\u7406\u7531",
381
+ "kbAccess.reasonPlaceholder": "\u8BF4\u660E\u4E1A\u52A1\u539F\u56E0\uFF08\u5BA1\u6279\u4EBA\u53EF\u89C1\uFF09",
382
+ "kbAccess.rejectTip": "\u62D2\u7EDD\u8BE5\u8BBF\u95EE\u7533\u8BF7",
383
+ "kbAccess.requestRenewal": "\u7533\u8BF7\u7EED\u671F",
384
+ "kbAccess.requestToPrefix": "\u8BF7\u6C42\u5C06\u53D1\u9001\u7ED9\uFF1A{p0}",
385
+ "kbAccess.restrictedContent": "\u53D7\u9650\u5185\u5BB9",
386
+ "kbAccess.restrictedHint": "\u6B64\u5185\u5BB9\u4EC5\u5BF9\u6388\u6743\u8005\u5F00\u653E",
387
+ "kbAccess.revokedHint": "\u8BBF\u95EE\u5DF2\u88AB\u6536\u56DE",
388
+ "kbAccess.roleLabel": "\u7533\u8BF7\u89D2\u8272",
389
+ "kbAccess.submitRequest": "\u63D0\u4EA4\u7533\u8BF7",
390
+ "kbAccess.switchIdentity": "\u5207\u6362\u8EAB\u4EFD",
391
+ "kbAccess.switchIdentityTip": "\u5207\u6362\u8EAB\u4EFD\u540E\u91CD\u65B0\u68C0\u67E5\u6743\u9650",
392
+ "kbAccess.unknownRequester": "\u672A\u77E5\u8BF7\u6C42\u4EBA",
393
+ "kbAccess.waitingApproval": "\u7B49\u5F85 {p0} \u5BA1\u6279",
394
+ /* ── kbAcl ── */
395
+ "kbAcl.breakHint": "\u505C\u6B62\u4ECE\u7236\u7EA7\u7EE7\u627F\uFF0C\u6539\u4E3A\u72EC\u7ACB\u7BA1\u7406\u672C\u9879\u6743\u9650",
396
+ "kbAcl.breakInheritance": "\u505C\u6B62\u7EE7\u627F",
397
+ "kbAcl.brokenNotice": "\u5DF2\u505C\u6B62\u7EE7\u627F\u2014\u2014\u672C\u9879\u6743\u9650\u72EC\u7ACB\u4E8E\u7236\u7EA7",
398
+ "kbAcl.detachedChildren": "{p0}\uFF1A{p1} \u4E2A\u5B50\u9879\u5DF2\u8131\u79BB",
399
+ "kbAcl.directAccess": "\u76F4\u63A5\u8BBF\u95EE",
400
+ "kbAcl.exception": "\u4F8B\u5916",
401
+ "kbAcl.expiredOn": "\u5DF2\u8FC7\u671F\uFF08{p0}\uFF09",
402
+ "kbAcl.expiresIn": "{p0} \u5230\u671F",
403
+ "kbAcl.grantAccess": "\u6388\u4E88\u8BBF\u95EE",
404
+ "kbAcl.inheritedFrom": "\u7EE7\u627F\u81EA {p0}",
405
+ "kbAcl.inheritedFromLabel": "\u7EE7\u627F\u81EA",
406
+ "kbAcl.linkAccess": "\u94FE\u63A5\u8BBF\u95EE",
407
+ "kbAcl.noDirect": "\u6682\u65E0\u76F4\u63A5\u6388\u6743",
408
+ "kbAcl.noLinks": "\u65E0\u94FE\u63A5",
409
+ "kbAcl.removeEntry": "\u79FB\u9664 {p0}",
410
+ "kbAcl.restoreHint": "\u6062\u590D\u7EE7\u627F\u5C06\u4E22\u5F03\u672C\u9879\u81EA\u5B9A\u4E49\u7684\u6743\u9650",
411
+ "kbAcl.restoreInheritance": "\u6062\u590D\u7EE7\u627F",
412
+ "kbAcl.rootNotice": "\u6839\u7EA7\u8D44\u6E90\u2014\u2014\u65E0\u7236\u7EA7\u7EE7\u627F",
413
+ "kbAcl.systemBadge": "\u7CFB\u7EDF\u7BA1\u7406",
414
+ "kbAcl.systemNote": "\u7CFB\u7EDF\u81EA\u52A8\uFF0C\u4E0D\u53EF\u624B\u5DE5\u79FB\u9664",
415
+ "kbAcl.unnamedResource": "\u672A\u547D\u540D\u8D44\u6E90",
416
+ "kbAcl.visibleToCount": "\u5BF9 {p0} \u4EBA\u53EF\u89C1",
417
+ /* ── kbAnswer ── */
418
+ "kbAnswer.chartBar": "\u67F1\u72B6",
419
+ "kbAnswer.chartLine": "\u6298\u7EBF",
420
+ "kbAnswer.chartPie": "\u997C\u56FE",
421
+ "kbAnswer.exportNoun": "\u5BFC\u51FA {p0}",
422
+ "kbAnswer.filtered": "\u5DF2\u6309\u4F60\u7684\u6570\u636E\u6743\u9650\u8FC7\u6EE4",
423
+ "kbAnswer.filteredDetail": "\u5DF2\u6309\u4F60\u7684\u6570\u636E\u6743\u9650\u8FC7\u6EE4\uFF1A{p0}",
424
+ "kbAnswer.followups": "\u8FFD\u95EE\u5EFA\u8BAE",
425
+ "kbAnswer.hitAssets": "\u547D\u4E2D\u8D44\u4EA7\uFF1A{p0}",
426
+ "kbAnswer.kindCurated": "\u4EBA\u5DE5\u7B56\u5C55",
427
+ "kbAnswer.kindFunction": "\u51FD\u6570",
428
+ "kbAnswer.kindParameterized": "\u53C2\u6570\u5316\u67E5\u8BE2",
429
+ "kbAnswer.maskedPrefix": "\u5DF2\u8131\u654F\u5217\uFF1A",
430
+ "kbAnswer.rerunTip": "\u53C2\u6570\u53EF\u6539\u91CD\u8DD1",
431
+ "kbAnswer.truncated": "\u5DF2\u622A\u65AD\uFF1A\u663E\u793A {p0}/{p1} \u884C{p2}",
432
+ "kbAnswer.verifiedBadge": "\u8BA4\u8BC1\u7B54\u6848",
433
+ /* ── kbAudit ── */
434
+ "kbAudit.actionDetail": "\u5904\u7F6E\uFF1A{p0} \xB7 {p1}",
435
+ "kbAudit.actionLabel": "\u5904\u7F6E",
436
+ "kbAudit.alertedNote": "\u5DF2\u5B9E\u65F6\u544A\u8B66\u5B89\u5168\u56E2\u961F",
437
+ "kbAudit.channelFilterAria": "\u5BA1\u8BA1\u901A\u9053\u8FC7\u6EE4",
438
+ "kbAudit.channelPermission": "\u6743\u9650\u53D8\u66F4",
439
+ "kbAudit.channelRead": "\u8BFB\u53D6",
440
+ "kbAudit.channelRequest": "\u7533\u8BF7",
441
+ "kbAudit.channelSystem": "\u7CFB\u7EDF",
442
+ "kbAudit.empty": "\u6682\u65E0\u5BA1\u8BA1\u4E8B\u4EF6",
443
+ "kbAudit.exportTip": "\u5BFC\u51FA\u5F53\u524D\u8FC7\u6EE4\u89C6\u56FE\u4E3A CSV",
444
+ "kbAudit.hygieneLabel": "\u6743\u9650\u5F02\u5473",
445
+ "kbAudit.noHygiene": "\u672A\u53D1\u73B0\u6743\u9650\u5F02\u5473",
446
+ /* ── kbCanvas ── */
447
+ "kbCanvas.splitterAria": "\u8C03\u6574\u753B\u5E03\u53CC\u680F\u6BD4\u4F8B",
448
+ "kbCanvas.splitterTip": "\u62D6\u62FD\u8C03\u6574\u6BD4\u4F8B\uFF08\u2190/\u2192 \u5FAE\u8C03\uFF0C\u53CC\u51FB\u590D\u4F4D\uFF09",
449
+ /* ── kbCheckpoint ── */
450
+ "kbCheckpoint.chatAuditNote": "\u8BA8\u8BBA\u5386\u53F2\u6709\u5BA1\u8BA1\u4EF7\u503C",
451
+ "kbCheckpoint.label": "\u68C0\u67E5\u70B9",
452
+ "kbCheckpoint.restore": "\u6062\u590D\u68C0\u67E5\u70B9",
453
+ "kbCheckpoint.scopeBoth": "\u5185\u5BB9\u4E0E\u5BF9\u8BDD",
454
+ "kbCheckpoint.scopeChat": "\u4EC5\u5BF9\u8BDD",
455
+ "kbCheckpoint.scopeContent": "\u4EC5\u5185\u5BB9\uFF08\u4FDD\u7559\u5BF9\u8BDD\uFF09",
456
+ "kbCheckpoint.scopeMissing": "\u8BE5\u68C0\u67E5\u70B9\u672A\u5305\u542B\u6B64\u6062\u590D\u8303\u56F4",
457
+ /* ── kbChunks ── */
458
+ "kbChunks.addKeyword": "+ \u5173\u952E\u8BCD",
459
+ "kbChunks.chunkAddKeywordAria": "chunk {p0} \u65B0\u589E\u5173\u952E\u8BCD",
460
+ "kbChunks.chunkContentAria": "chunk {p0} \u5185\u5BB9",
461
+ "kbChunks.chunkEnableAria": "chunk {p0} \u542F\u7528",
462
+ "kbChunks.deleteChunkAria": "\u5220\u9664 chunk {p0}",
463
+ "kbChunks.disableNote": "\u5173\u95ED\u540E\u4E0D\u5220\u9664\uFF0C\u4EC5\u6392\u9664\u51FA\u68C0\u7D22",
464
+ "kbChunks.edited": "\u5DF2\u7F16\u8F91",
465
+ "kbChunks.empty": "\u6682\u65E0 chunk",
466
+ "kbChunks.modeFull": "\u5168\u6587",
467
+ "kbChunks.modeLabel": "\u641C\u7D22\u6A21\u5F0F",
468
+ "kbChunks.modeVector": "\u8BED\u4E49",
469
+ "kbChunks.removeKeyword": "\u79FB\u9664\u5173\u952E\u8BCD {p0}",
470
+ "kbChunks.searchAria": "\u641C\u7D22 chunk",
471
+ "kbChunks.searchFullPlaceholder": "\u5168\u6587\u641C\u7D22 chunk\u2026",
472
+ "kbChunks.searchVectorPlaceholder": "\u8BED\u4E49\u641C\u7D22 chunk\u2026",
473
+ /* ── kbCitation ── */
474
+ "kbCitation.sourceN": "\u6765\u6E90 {p0}",
475
+ "kbCitation.unavailable": "\u6765\u6E90\u5DF2\u4E0D\u53EF\u7528",
476
+ /* ── kbClarify ── */
477
+ "kbClarify.parsedPrefix": "\u5DF2\u89E3\u6790\uFF1A",
478
+ /* ── kbConflict ── */
479
+ "kbConflict.owner": "\u8D23\u4EFB\u4EBA {p0}",
480
+ /* ── kbConnector ── */
481
+ "kbConnector.changeRate": "\u53D8\u66F4\u7387",
482
+ "kbConnector.crawlRate": "\u6293\u53D6\u7387",
483
+ "kbConnector.credentials": "\u51ED\u8BC1",
484
+ "kbConnector.credentialsExpired": "\u51ED\u8BC1\u8FC7\u671F",
485
+ "kbConnector.editSchedule": "\u7F16\u8F91\u8BA1\u5212",
486
+ "kbConnector.empty": "\u6682\u65E0\u8FDE\u63A5\u5668",
487
+ "kbConnector.failing": "\u5F02\u5E38",
488
+ "kbConnector.lastSync": "\u6700\u8FD1\u540C\u6B65 {p0}",
489
+ "kbConnector.neverSynced": "\u4ECE\u672A\u540C\u6B65",
490
+ "kbConnector.notConfigured": "\u672A\u914D\u7F6E",
491
+ "kbConnector.off": "\u5DF2\u505C\u7528",
492
+ "kbConnector.perDay": "{p0}/\u5929",
493
+ "kbConnector.reauth": "\u91CD\u65B0\u6388\u6743",
494
+ "kbConnector.stale": "\u505C\u6EDE",
495
+ "kbConnector.syncNow": "\u7ACB\u5373\u540C\u6B65",
496
+ "kbConnector.synced": "\u5DF2\u540C\u6B65",
497
+ /* ── kbCore ── */
498
+ "kbCore.accessDenied": "\u672A\u901A\u8FC7",
499
+ "kbCore.accessExpired": "\u5DF2\u8FC7\u671F",
500
+ "kbCore.accessExpiring": "\u5373\u5C06\u5230\u671F",
501
+ "kbCore.accessGranted": "\u5DF2\u5F00\u901A",
502
+ "kbCore.accessNotRequested": "\u672A\u7533\u8BF7",
503
+ "kbCore.accessPending": "\u5F85\u5BA1\u6279",
504
+ "kbCore.accessRequested": "\u5DF2\u63D0\u4EA4",
505
+ "kbCore.accessRevoked": "\u5DF2\u6536\u56DE",
506
+ "kbCore.auditApprove": "\u6279\u51C6",
507
+ "kbCore.auditBreakGlass": "\u5E94\u6025\u8BBF\u95EE",
508
+ "kbCore.auditDelegation": "\u59D4\u6D3E",
509
+ "kbCore.auditDeny": "\u62D2\u7EDD",
510
+ "kbCore.auditGrant": "\u6388\u4E88",
511
+ "kbCore.auditPermissionChange": "\u6743\u9650\u53D8\u66F4",
512
+ "kbCore.auditPreview": "\u9884\u89C8",
513
+ "kbCore.auditRead": "\u8BFB\u53D6",
514
+ "kbCore.auditRequest": "\u7533\u8BF7",
515
+ "kbCore.auditRevoke": "\u6536\u56DE",
516
+ "kbCore.auditSync": "\u6743\u9650\u540C\u6B65",
517
+ "kbCore.daysAgo": "{p0} \u5929\u524D",
518
+ "kbCore.hoursAgo": "{p0} \u5C0F\u65F6\u524D",
519
+ "kbCore.hygieneBroadGroup": "\u8FC7\u5BBD\u7EC4\u6388\u6743",
520
+ "kbCore.hygieneBrokenInheritance": "\u65AD\u7EE7\u627F",
521
+ "kbCore.hygieneOrgWideLink": "\u7EC4\u7EC7\u7EA7\u94FE\u63A5",
522
+ "kbCore.hygieneOrphanedOwner": "\u8D1F\u8D23\u4EBA\u7F3A\u4F4D",
523
+ "kbCore.hygieneOverexposed": "\u8FC7\u5EA6\u66B4\u9732",
524
+ "kbCore.hygieneSensitiveMismatch": "\u654F\u611F\u5EA6\u9519\u914D",
525
+ "kbCore.justNow": "\u521A\u521A",
526
+ "kbCore.levelComment": "\u53EF\u8BC4\u8BBA",
527
+ "kbCore.levelEdit": "\u53EF\u7F16\u8F91",
528
+ "kbCore.levelNone": "\u65E0\u6743\u9650",
529
+ "kbCore.levelOwner": "\u8D1F\u8D23\u4EBA",
530
+ "kbCore.levelView": "\u53EF\u67E5\u770B",
531
+ "kbCore.minutesAgo": "{p0} \u5206\u949F\u524D",
532
+ "kbCore.runCancelled": "\u5DF2\u53D6\u6D88",
533
+ "kbCore.runDone": "\u5DF2\u5B8C\u6210",
534
+ "kbCore.runFailed": "\u5931\u8D25",
535
+ "kbCore.runQueued": "\u6392\u961F\u4E2D",
536
+ "kbCore.runRunning": "\u8FDB\u884C\u4E2D",
537
+ "kbCore.runUnstarted": "\u672A\u5F00\u59CB",
538
+ "kbCore.stageAgent": "\u4EE3\u7406",
539
+ "kbCore.stageChunk": "\u5207\u7247",
540
+ "kbCore.stageEmbed": "\u5411\u91CF\u5316",
541
+ "kbCore.stageGeneration": "\u751F\u6210",
542
+ "kbCore.stageGuard": "\u62A4\u680F",
543
+ "kbCore.stageQuery": "\u67E5\u8BE2",
544
+ "kbCore.stageRerank": "\u91CD\u6392",
545
+ "kbCore.stageRetrieval": "\u68C0\u7D22",
546
+ "kbCore.stageTool": "\u5DE5\u5177",
547
+ "kbCore.typeApi": "\u63A5\u53E3",
548
+ "kbCore.typeCode": "\u4EE3\u7801",
549
+ "kbCore.typeDatabase": "\u6570\u636E\u5E93",
550
+ "kbCore.typeDocument": "\u6587\u6863",
551
+ "kbCore.typeEmail": "\u90AE\u4EF6",
552
+ "kbCore.typeImage": "\u56FE\u7247",
553
+ "kbCore.typeKb": "\u77E5\u8BC6\u5E93",
554
+ "kbCore.typeTable": "\u8868\u683C",
555
+ "kbCore.typeTicket": "\u5DE5\u5355",
556
+ "kbCore.typeWebpage": "\u7F51\u9875",
557
+ "kbCore.unnamedSource": "\u672A\u547D\u540D\u6765\u6E90",
558
+ "kbCore.unnamedSubject": "\u672A\u547D\u540D\u4E3B\u4F53",
559
+ "kbCore.visHidden": "\u4E0D\u53EF\u89C1",
560
+ "kbCore.visMetadataOnly": "\u4EC5\u5143\u6570\u636E",
561
+ "kbCore.visSummaryOnly": "\u4EC5\u6458\u8981",
562
+ "kbCore.visVisible": "\u53EF\u89C1",
563
+ /* ── kbEval ── */
564
+ "kbEval.avgA": "A \u5747\u5206 {p0}",
565
+ "kbEval.avgB": "B \u5747\u5206 {p0}",
566
+ "kbEval.compare": "\u5BF9\u6BD4",
567
+ "kbEval.runSelectAria": "\u9009\u62E9\u5BF9\u6BD4\u8FD0\u884C",
568
+ "kbEval.expected": "\u671F\u671B",
569
+ "kbEval.gradeImprovement": "\u63D0\u5347",
570
+ "kbEval.gradeRegression": "\u56DE\u5F52",
571
+ "kbEval.gradeTie": "\u6301\u5E73",
572
+ "kbEval.gradeTradeoff": "\u6743\u8861",
573
+ "kbEval.noData": "\u6CA1\u6709\u5BF9\u6BD4\u6570\u636E",
574
+ "kbEval.onlyRegression": "\u4EC5\u770B\u56DE\u5F52",
575
+ "kbEval.outputA": "\u8F93\u51FA A",
576
+ "kbEval.outputB": "\u8F93\u51FA B",
577
+ "kbEval.outputN": "\u8F93\u51FA {p0}",
578
+ /* ── kbExplain ── */
579
+ "kbExplain.empty": "\u6682\u65E0\u53E3\u5F84\u4FE1\u606F",
580
+ "kbExplain.groupAgg": "\u805A\u5408",
581
+ "kbExplain.groupColumn": "\u5217",
582
+ "kbExplain.groupFilter": "\u7B5B\u9009",
583
+ "kbExplain.groupTable": "\u8868",
584
+ "kbExplain.trigger": "\u8FD9\u4E2A\u6570\u5B57\u662F\u600E\u4E48\u7B97\u51FA\u6765\u7684",
585
+ "kbExplain.viewDefinition": "\u67E5\u770B\u53E3\u5F84",
586
+ /* ── kbFilter ── */
587
+ "kbFilter.addGroup": "+ \u7EC4",
588
+ "kbFilter.addRule": "+ \u89C4\u5219",
589
+ "kbFilter.and": "\u4E14",
590
+ "kbFilter.combineMode": "\u7EC4\u5408\u65B9\u5F0F {p0}",
591
+ "kbFilter.copyDsl": "\u590D\u5236 DSL",
592
+ "kbFilter.deleteGroup": "\u5220\u9664\u7EC4",
593
+ "kbFilter.deleteRule": "\u5220\u9664\u89C4\u5219",
594
+ "kbFilter.fieldLabel": "\u5B57\u6BB5",
595
+ "kbFilter.fieldPlaceholder": "\u8FC7\u6EE4\u5B57\u6BB5",
596
+ "kbFilter.noValueNeeded": "\uFF08\u65E0\u9700\u503C\uFF09",
597
+ "kbFilter.none": "\uFF08\u65E0\u8FC7\u6EE4\uFF09",
598
+ "kbFilter.opContains": "\u5305\u542B",
599
+ "kbFilter.opEq": "\u7B49\u4E8E",
600
+ "kbFilter.opExists": "\u5B58\u5728",
601
+ "kbFilter.opGt": "\u5927\u4E8E",
602
+ "kbFilter.opGte": "\u5927\u4E8E\u7B49\u4E8E",
603
+ "kbFilter.opIn": "\u5C5E\u4E8E",
604
+ "kbFilter.opLt": "\u5C0F\u4E8E",
605
+ "kbFilter.opLte": "\u5C0F\u4E8E\u7B49\u4E8E",
606
+ "kbFilter.opNe": "\u4E0D\u7B49\u4E8E",
607
+ "kbFilter.operatorLabel": "\u64CD\u4F5C\u7B26",
608
+ "kbFilter.or": "\u6216",
609
+ "kbFilter.toggleAndOr": "\u5207\u6362 AND / OR",
610
+ "kbFilter.valueAria": "\u8FC7\u6EE4\u503C",
611
+ "kbFilter.valueLabel": "\u503C",
612
+ "kbFilter.valuePlaceholder": "\u503C 1, \u503C 2\uFF08\u9017\u53F7\u5206\u9694\uFF09",
613
+ /* ── kbGap ── */
614
+ "kbGap.addSynonym": "\u52A0\u540C\u4E49\u8BCD",
615
+ "kbGap.colCount": "\u6B21\u6570",
616
+ "kbGap.colLastSeen": "\u6700\u8FD1\u51FA\u73B0",
617
+ "kbGap.colQuery": "\u67E5\u8BE2",
618
+ "kbGap.colShare": "\u5360\u6BD4",
619
+ "kbGap.createDoc": "\u5EFA\u6587\u6863",
620
+ "kbGap.empty": "\u6CA1\u6709\u672A\u547D\u4E2D\u67E5\u8BE2\u2014\u2014\u8986\u76D6\u826F\u597D",
621
+ "kbGap.title": "\u672A\u547D\u4E2D\u67E5\u8BE2\u8D8B\u52BF",
622
+ "kbGap.zeroClickHint": "\u7528\u6237\u53EF\u80FD\u5DF2\u4ECE\u5F15\u7528\u7247\u6BB5\u5F97\u5230\u7B54\u6848\uFF1B\u96F6\u70B9\u51FB\u9700\u4EBA\u5DE5\u5224\u8BFB\uFF0C\u4E0D\u76F4\u63A5\u89C6\u4E3A\u5931\u8D25",
623
+ "kbGap.zeroClickRate": "\u96F6\u70B9\u51FB\u7387",
624
+ "kbGap.zeroClickTitle": "\u96F6\u70B9\u51FB \u2260 \u5931\u8D25",
625
+ /* ── kbHittest ── */
626
+ "kbHittest.addAria": "\u65B0\u589E\u6D4B\u8BD5\u95EE\u9898",
627
+ "kbHittest.addPlaceholder": "\u65B0\u589E\u95EE\u9898\uFF0CEnter \u6DFB\u52A0",
628
+ "kbHittest.avgScore": "\u5747\u5206",
629
+ "kbHittest.deleteQuestion": "\u5220\u9664\u95EE\u9898",
630
+ "kbHittest.empty": "\u6682\u65E0\u6D4B\u8BD5\u95EE\u9898\u2014\u2014\u6DFB\u52A0\u7B2C\u4E00\u6761\uFF0C\u5F00\u59CB\u53EC\u56DE\u56DE\u5F52",
631
+ "kbHittest.expectHit": "\u671F\u671B\u547D\u4E2D\u5728\u524D\u6392\u547D\u4E2D\u4E2D",
632
+ "kbHittest.expectMiss": "\u671F\u671B\u672A\u547D\u4E2D",
633
+ "kbHittest.hitRate": "\u547D\u4E2D\u7387",
634
+ "kbHittest.noExpectation": "\u672A\u8BBE\u671F\u671B",
635
+ "kbHittest.notRun": "\u672A\u8FD0\u884C",
636
+ "kbHittest.pass": "\u901A\u8FC7",
637
+ "kbHittest.pin": "\u7F6E\u9876\u56FA\u5B9A",
638
+ "kbHittest.runAll": "\u8FD0\u884C\u5168\u90E8",
639
+ "kbHittest.sessionOnly": "\u53C2\u6570\u4EC5\u672C\u6B21\u4F1A\u8BDD\u751F\u6548",
640
+ "kbHittest.sessionOnlyHint": "\u6D4B\u8BD5\u8FD0\u884C\u7684\u68C0\u7D22\u53C2\u6570\uFF08topK/\u9608\u503C/\u91CD\u6392\uFF09\u4E0D\u843D\u5E93\uFF0C\u4EC5\u672C\u6B21\u4F1A\u8BDD\u751F\u6548",
641
+ "kbHittest.unpin": "\u53D6\u6D88\u7F6E\u9876",
642
+ /* ── kbMetadata ── */
643
+ "kbMetadata.addField": "\u65B0\u589E\u5B57\u6BB5",
644
+ "kbMetadata.builtIn": "\u5185\u7F6E",
645
+ "kbMetadata.colField": "\u5B57\u6BB5",
646
+ "kbMetadata.colType": "\u7C7B\u578B",
647
+ "kbMetadata.colValue": "\u503C",
648
+ "kbMetadata.empty": "\u6682\u65E0\u5143\u6570\u636E\u5B57\u6BB5",
649
+ "kbMetadata.nameLabel": "\u65B0\u5B57\u6BB5\u540D",
650
+ "kbMetadata.namePlaceholder": "\u5B57\u6BB5\u540D\uFF0C\u5982 department",
651
+ "kbMetadata.removeField": "\u79FB\u9664\u5B57\u6BB5 {p0}",
652
+ "kbMetadata.typeLabel": "\u65B0\u5B57\u6BB5\u7C7B\u578B",
653
+ "kbMetadata.valueOf": "{p0} \u7684\u503C",
654
+ /* ── kbPassage ── */
655
+ "kbPassage.blockRange": "\u5757 {p0}\u2013{p1}",
656
+ "kbPassage.close": "\u5173\u95ED\u539F\u6587",
657
+ "kbPassage.expandContext": "\u5C55\u5F00\u4E0A\u4E0B\u6587",
658
+ "kbPassage.locate": "\u539F\u6587\u5B9A\u4F4D",
659
+ "kbPassage.none": "\uFF08\u65E0\u539F\u6587\uFF09",
660
+ "kbPassage.pageRange": "\u7B2C {p0}\u2013{p1} \u9875",
661
+ "kbPassage.restricted": "\u5185\u5BB9\u53D7\u9650",
662
+ "kbPassage.unitByte": "\u5B57\u8282",
663
+ "kbPassage.unitChar": "\u5B57\u7B26",
664
+ /* ── kbPipeline ── */
665
+ "kbPipeline.empty": "\u6682\u65E0\u89E3\u6790\u4EFB\u52A1",
666
+ "kbPipeline.progress": "\u89E3\u6790\u8FDB\u5EA6",
667
+ "kbPipeline.rerun": "\u91CD\u8DD1",
668
+ "kbPipeline.unknownStage": "\u672A\u77E5\u9636\u6BB5",
669
+ /* ── kbQa ── */
670
+ "kbQa.colAnswer": "\u7B54\u6848",
671
+ "kbQa.colQuestion": "\u95EE\u9898",
672
+ "kbQa.csvHint": "CSV \u6A21\u677F\uFF1Aquestion,answer\uFF08\u6BCF\u884C\u4E00\u5BF9\uFF0CUTF-8\uFF09",
673
+ "kbQa.deleteRow": "\u5220\u9664\u7B2C {p0} \u884C",
674
+ "kbQa.empty": "\u6682\u65E0\u8BA4\u8BC1\u95EE\u7B54\u5BF9",
675
+ "kbQa.importCsv": "\u5BFC\u5165 CSV",
676
+ /* ── kbRerank ── */
677
+ "kbRerank.after": "\u91CD\u6392\u540E",
678
+ "kbRerank.before": "\u91CD\u6392\u524D",
679
+ "kbRerank.compareTitle": "\u91CD\u6392\u5BF9\u6BD4",
680
+ "kbRerank.down": "\u4E0B\u964D {p0} \u4F4D",
681
+ "kbRerank.dropped": "\u843D\u9009",
682
+ "kbRerank.empty": "\u4E24\u4FA7\u5747\u4E3A\u7A7A\u2014\u2014\u8FD0\u884C\u68C0\u7D22\u540E\u518D\u5BF9\u6BD4",
683
+ "kbRerank.enableCompare": "\u542F\u7528\u91CD\u6392\u5BF9\u6BD4",
684
+ "kbRerank.newIn": "\u65B0\u8FDB",
685
+ "kbRerank.unmarked": "\u672A\u6807",
686
+ "kbRerank.up": "\u4E0A\u5347 {p0} \u4F4D",
687
+ /* ── kbRetrieval ── */
688
+ "kbRetrieval.breakdown": "\u62C6\u89E3",
689
+ "kbRetrieval.copyParams": "\u590D\u5236\u53C2\u6570 JSON",
690
+ "kbRetrieval.decreaseTopK": "\u51CF\u5C11 topK",
691
+ "kbRetrieval.empty": "\u8F93\u5165\u95EE\u9898\u5E76\u8FD0\u884C\uFF0C\u547D\u4E2D\u7ED3\u679C\u5C06\u51FA\u73B0\u5728\u8FD9\u91CC",
692
+ "kbRetrieval.failOpenNotice": "fail-open\uFF1A\u5F53\u524D\u67E5\u8BE2\u672A\u643A\u5E26\u8EAB\u4EFD\u8FC7\u6EE4\uFF0C\u5C06\u8FD4\u56DE\u5168\u90E8\u5019\u9009\uFF08\u4EC5\u9650\u8C03\u8BD5\uFF09",
693
+ "kbRetrieval.hybridWeight": "\u6DF7\u5408\u6743\u91CD\uFF08\u5DE6\u8BED\u4E49\u53F3\u5173\u952E\u8BCD\uFF09",
694
+ "kbRetrieval.identityLabel": "\u68C0\u7D22\u8EAB\u4EFD",
695
+ "kbRetrieval.identityShort": "\u8EAB\u4EFD",
696
+ "kbRetrieval.increaseTopK": "\u589E\u52A0 topK",
697
+ "kbRetrieval.keywordHint": "\u5173\u952E\u8BCD\uFF1A\u5927\u5E93\u5FEB\u901F\u7CBE\u786E",
698
+ "kbRetrieval.layerLabel": "\u8FC7\u6EE4\u5C42",
699
+ "kbRetrieval.layerNone": "none\uFF1Afail-open\uFF0C\u65E0\u8EAB\u4EFD\u8FC7\u6EE4\u8FD4\u56DE\u5168\u90E8\u2014\u2014\u5371\u9669\uFF0C\u4EC5\u6F14\u793A",
700
+ "kbRetrieval.layerPost": "post-filter\uFF1A\u5206\u6570\u5DF2\u53EF\u89C2\u5BDF\u2014\u2014\u7F3A\u9677\u5C42\uFF0C\u4EC5\u6F14\u793A",
701
+ "kbRetrieval.layerPre": "pre-filter\uFF1AACL \u5728\u68C0\u7D22\u6267\u884C\u4F53\u5185\u751F\u6548\u2014\u2014\u5B89\u5168\u57FA\u7EBF",
702
+ "kbRetrieval.leakNote": "\u5206\u6BCD\u672A\u8FC7\u6EE4\u524D\u8BA1\u6570\u5C5E\u6CC4\u9732\uFF0C\u4E0D\u663E\u793A",
703
+ "kbRetrieval.modeHybrid": "\u6DF7\u5408",
704
+ "kbRetrieval.modeKeyword": "\u5173\u952E\u8BCD",
705
+ "kbRetrieval.modeLabel": "\u68C0\u7D22\u6A21\u5F0F",
706
+ "kbRetrieval.modeVector": "\u5411\u91CF",
707
+ "kbRetrieval.postFilterNotice": "post-filter\uFF1A\u5206\u6570\u5DF2\u5728\u8FC7\u6EE4\u524D\u4EA7\u751F\uFF08\u7F3A\u9677\u5C42\u6F14\u793A\uFF09",
708
+ "kbRetrieval.queryLabel": "\u68C0\u7D22\u95EE\u9898",
709
+ "kbRetrieval.queryPlaceholder": "\u68C0\u7D22\u95EE\u9898\uFF0CEnter \u8FD0\u884C",
710
+ "kbRetrieval.rerankLabel": "\u91CD\u6392",
711
+ "kbRetrieval.rerankThresholdOff": "\u9608\u503C \u5173 \xB7 \u5B58\u6D3B {p0}",
712
+ "kbRetrieval.rerankThresholdOn": "\u9608\u503C {p0} \xB7 \u5B58\u6D3B {p1}",
713
+ "kbRetrieval.running": "\u8FD0\u884C\u4E2D\u2026",
714
+ "kbRetrieval.thresholdLabel": "\u5206\u6570\u9608\u503C",
715
+ "kbRetrieval.thresholdValue": "\u9608\u503C N/A",
716
+ "kbRetrieval.vectorHint": "\u8BED\u4E49\uFF1A\u8DE8\u8BED\u8A00/\u65E0\u7CBE\u786E\u8BCD",
717
+ "kbRetrieval.vectorPercent": "\u8BED\u4E49 {p0}",
718
+ "kbRetrieval.weightValue": "\u5411\u91CF {p0}% / \u5173\u952E\u8BCD {p1}%",
719
+ /* ── kbReview ── */
720
+ "kbReview.assignee": "\u5206\u914D\u4EBA",
721
+ "kbReview.doneNext": "\u5B8C\u6210\u5E76\u4E0B\u4E00\u6761",
722
+ "kbReview.empty": "\u6CA1\u6709\u5F85\u5BA1\u67E5\u6761\u76EE",
723
+ "kbReview.emptyAssignee": "\u8BE5\u5206\u914D\u4EBA\u4E0B\u6CA1\u6709\u6761\u76EE",
724
+ "kbReview.emptyQueue": "\u961F\u5217\u4E3A\u7A7A",
725
+ "kbReview.kbCloseHint": "\u5173\u95ED\u63D0\u793A",
726
+ "kbReview.kbSelectOption": "\u9009\u62E9\u9009\u9879",
727
+ "kbReview.kbSwitchItem": "\u5207\u6362\u6761\u76EE",
728
+ "kbReview.kbToggleHint": "\u663E\u793A/\u9690\u85CF\u672C\u63D0\u793A",
729
+ "kbReview.shortcuts": "? \u5FEB\u6377\u952E",
730
+ "kbReview.typeAnswer": "\u56DE\u7B54",
731
+ "kbReview.typeMessage": "\u6D88\u606F",
732
+ "kbReview.typeTrace": "\u8F68\u8FF9",
733
+ "kbReview.unassigned": "\u672A\u5206\u914D",
734
+ /* ── kbSandbox ── */
735
+ "kbSandbox.noResolver": "\u5BBF\u4E3B\u672A\u63D0\u4F9B ui:// \u89E3\u6790\u5668",
736
+ "kbSandbox.notReady": "kb-sandbox: \u5E94\u7528\u672A\u5C31\u7EEA",
737
+ "kbSandbox.resolveFailed": "ui:// \u89E3\u6790\u5931\u8D25\uFF1A{p0}",
738
+ "kbSandbox.timeout": "kb-sandbox: \u8C03\u7528\u8D85\u65F6\uFF08{p0}ms\uFF09",
739
+ "kbSandbox.title": "MCP App \u6C99\u7BB1",
740
+ /* ── kbSegment ── */
741
+ "kbSegment.avgLength": "\u5747\u957F {p0}",
742
+ "kbSegment.childNote": "\u5B50\u5206\u6BB5\u6309\u957F\u5EA6\u81EA\u52A8\u751F\u6210",
743
+ "kbSegment.cleanBlankLines": "\u5408\u5E76\u8FDE\u7EED\u7A7A\u884C",
744
+ "kbSegment.cleanEmails": "\u53BB\u9664\u90AE\u7BB1",
745
+ "kbSegment.cleanLinks": "\u53BB\u9664\u94FE\u63A5",
746
+ "kbSegment.empty": "\u6837\u672C\u4E3A\u7A7A\uFF0C\u6682\u65E0\u53EF\u9884\u89C8\u5206\u6BB5",
747
+ "kbSegment.maxLengthLabel": "\u6700\u5927\u957F\u5EA6",
748
+ "kbSegment.maxLengthPlaceholder": "\u5206\u6BB5\u6700\u5927\u957F\u5EA6",
749
+ "kbSegment.modeAuto": "\u81EA\u52A8",
750
+ "kbSegment.modeCustom": "\u81EA\u5B9A\u4E49",
751
+ "kbSegment.modeLabel": "\u5206\u6BB5\u6A21\u5F0F",
752
+ "kbSegment.modeNote": "\u5206\u6BB5\u6A21\u5F0F\u521B\u5EFA\u540E\u4E0D\u53EF\u66F4\u6539\uFF0C\u53C2\u6570\u53EF\u968F\u65F6\u8C03\u6574",
753
+ "kbSegment.modeParentChild": "\u7236\u5B50",
754
+ "kbSegment.overlapInvalid": "\u91CD\u53E0\u9700\u5C0F\u4E8E\u6700\u5927\u957F\u5EA6",
755
+ "kbSegment.overlapLabel": "\u91CD\u53E0",
756
+ "kbSegment.overlapPlaceholder": "\u5206\u6BB5\u91CD\u53E0",
757
+ "kbSegment.previewNote": "\u5171 {p0} \u6BB5\uFF0C\u4EC5\u9884\u89C8\u524D {p1} \u6BB5",
758
+ "kbSegment.segmentsCount": "{p0} \u6BB5",
759
+ "kbSegment.separatorLabel": "\u5206\u9694\u7B26",
760
+ "kbSegment.separatorPlaceholder": "\u5206\u6BB5\u5206\u9694\u7B26",
761
+ "kbSegment.toggleTip": "\u70B9\u51FB\u5C55\u5F00/\u6536\u8D77",
762
+ /* ── kbSources ── */
763
+ "kbSources.cited": "\u88AB\u5F15 \xD7{p0}",
764
+ "kbSources.empty": "\u4E0B\u4E00\u6761\u7B54\u6848\u5F15\u7528\u7684\u6BB5\u843D\u5C06\u51FA\u73B0\u5728\u8FD9\u91CC",
765
+ /* ── kbSql ── */
766
+ "kbSql.adminOnly": "\u4EC5\u7BA1\u7406\u5458\u53EF\u89C1",
767
+ "kbSql.applyFix": "\u5E94\u7528\u4FEE\u590D\u5E76\u91CD\u8DD1",
768
+ "kbSql.confirmRerun": "\u786E\u8BA4\u5E76\u91CD\u8DD1",
769
+ "kbSql.editRerun": "\u7F16\u8F91\u91CD\u8DD1",
770
+ "kbSql.fixReady": "\u68C0\u6D4B\u5230\u4E0A\u7248\u62A5\u9519\uFF0C\u4FEE\u590D\u5EFA\u8BAE\u5DF2\u5C31\u7EEA",
771
+ "kbSql.generated": "\u751F\u6210\u7684 SQL",
772
+ /* ── kbTrace ── */
773
+ "kbTrace.empty": "\u6682\u65E0\u8C03\u7528\u94FE\u6570\u636E",
774
+ "kbTrace.hits": "\u547D\u4E2D {p0}",
775
+ /* ── kbVisibility ── */
776
+ "kbVisibility.adminOnlyNote": "\u4EE5\u4E0A\u5BF9\u7167\u4EC5\u9650 admin \u5BA1\u8BA1",
777
+ "kbVisibility.adminWarn": "admin \u5BA1\u8BA1\u89C6\u56FE\u2014\u2014\u547D\u4E2D\u5DEE\u5F02\u5BF9\u7167\u5BF9\u666E\u901A\u7528\u6237\u6784\u6210\u6CC4\u9732\uFF0C\u52FF\u5D4C\u5165\u7EC8\u7AEF\u7528\u6237\u754C\u9762",
778
+ "kbVisibility.failOpenNote": "fail-open\uFF1AKendra \u65E0\u8EAB\u4EFD\u4E0A\u4E0B\u6587\u8FD4\u56DE\u5168\u90E8\u6587\u6863\u2014\u2014\u68C0\u7D22\u5FC5\u987B\u643A\u5E26\u670D\u52A1\u7AEF\u8EAB\u4EFD",
779
+ "kbVisibility.focusColumn": "\u805A\u7126\u8EAB\u4EFD {p0} \u7684\u5217",
780
+ "kbVisibility.layerValue": "\u8FC7\u6EE4\u5C42\uFF1A{p0}",
781
+ "kbVisibility.leakageNote": "\u8BA1\u6570\u5DEE\u5F02\u5373 volume leakage\uFF1A\u5BF9\u666E\u901A\u7528\u6237\u53EA\u53EF\u7ED9\u300C\u5DF2\u6309\u6743\u9650\u8FC7\u6EE4\u300D\u6052\u5B9A\u6587\u6848\uFF0C\u7F13\u89E3\u53EA\u6709 padding \u53D6\u6574",
782
+ "kbVisibility.postFilterNote": "post-filter\uFF1AtopK \u88AB\u65E0\u6743\u7ED3\u679C\u5360\u7528\u4E14\u76F8\u4F3C\u5EA6\u5206\u6570\u53EF\u88AB\u89C2\u5BDF",
783
+ "kbVisibility.queryLabel": "\u67E5\u8BE2\uFF1A{p0}",
784
+ "kbVisibility.safeCount": "\u5B89\u5168\u8BA1\u6570 {p0}",
785
+ "kbVisibility.sourceUnavailable": "\u539F\u6587\u4E0D\u53EF\u7528",
786
+ "kbVisibility.unnamedHit": "\u672A\u547D\u540D\u547D\u4E2D",
787
+ /* ── kbWhoCan ── */
788
+ "kbWhoCan.check": "\u68C0\u67E5",
789
+ "kbWhoCan.checkIdentity": "\u68C0\u67E5\u8EAB\u4EFD",
790
+ "kbWhoCan.daysUntil": "{p0} \u5929\u540E",
791
+ "kbWhoCan.deniedBy": "\u88AB\u7B56\u7565\u62D2\u7EDD\uFF1A{p0}",
792
+ "kbWhoCan.denyVeto": "\u88AB Deny \u4E00\u7968\u5426\u51B3",
793
+ "kbWhoCan.direct": "\u76F4\u63A5",
794
+ "kbWhoCan.expiresSoon": "\u6700\u8FD1\u5230\u671F {p0}",
795
+ "kbWhoCan.hoursUntil": "{p0} \u5C0F\u65F6\u540E",
796
+ "kbWhoCan.inherit": "\u7EE7\u627F",
797
+ "kbWhoCan.link": "\u94FE\u63A5",
798
+ "kbWhoCan.noDeny": "\u65E0 Deny \u751F\u6548",
799
+ "kbWhoCan.noIdentity": "\u672A\u63D0\u4F9B\u53EF\u68C0\u67E5\u7684\u8EAB\u4EFD",
800
+ "kbWhoCan.none": "\u672A\u547D\u4E2D\u4EFB\u4F55\u6388\u6743\u2014\u2014\u9ED8\u8BA4\u62D2\u7EDD",
801
+ "kbWhoCan.recheckTip": "\u91CD\u65B0\u68C0\u67E5\u5F53\u524D\u8EAB\u4EFD\u7684\u6709\u6548\u6743\u9650",
802
+ "kbWhoCan.stackRule": "\u53E0\u52A0\u89C4\u5219\uFF1A\u591A\u6765\u6E90\u5E76\u96C6 \u2192 {p0}\uFF1B{p1}",
803
+ /* ── mentions ── */
804
+ "mentions.create": "\u521B\u5EFA\u201C{p0}\u201D",
805
+ "mentions.customBadge": "\u81EA\u5B9A\u4E49",
806
+ "mentions.loading": "\u52A0\u8F7D\u4E2D\u2026",
807
+ /* ── notification ── */
808
+ "notification.groupBusy": "\u64CD\u4F5C\u7ED3\u675F\u540E\u53EF\u4EE5\u6536\u8D77\u8FD9\u7EC4\u901A\u77E5\u3002",
809
+ "notification.groupUnread": "{count} \u6761\u540C\u7EC4\u901A\u77E5\uFF0C{unread} \u6761\u672A\u8BFB",
810
+ "notification.groupCount": "{count} \u6761\u540C\u7EC4\u901A\u77E5",
811
+ "notification.groupExpanded": "\u6536\u8D77\u8FD9\u7EC4\u901A\u77E5",
812
+ "notification.ariaLabel": "\u901A\u77E5",
813
+ "notification.viewDetails": "\u67E5\u770B\u8BE6\u60C5",
814
+ /* ── pagination ── */
815
+ "pagination.next": "\u4E0B\u4E00\u9875",
816
+ "pagination.pageSize": "{p0} \u6761/\u9875",
817
+ "pagination.prev": "\u4E0A\u4E00\u9875",
818
+ /* ── select ── */
819
+ "select.fieldLabel": "\u9009\u62E9\u9009\u9879",
820
+ "select.noMatch": "\u65E0\u5339\u914D\u9879",
821
+ "select.remove": "\u79FB\u9664 {p0}",
822
+ "select.searchPlaceholder": "\u641C\u7D22\u2026",
823
+ /* ── cascader / tree-select ── */
824
+ "cascader.placeholder": "\u8BF7\u9009\u62E9",
825
+ "cascader.noMatch": "\u65E0\u5339\u914D",
826
+ "cascader.search": "\u641C\u7D22",
827
+ "treeSelect.placeholder": "\u8BF7\u9009\u62E9",
828
+ "treeSelect.noMatch": "\u65E0\u5339\u914D",
829
+ "treeSelect.search": "\u641C\u7D22",
830
+ /* ── tagInput ── */
831
+ "tagInput.ariaLabel": "\u6807\u7B7E\u8F93\u5165\uFF0C\u5171 {p0} \u4E2A",
832
+ "tagInput.remove": "\u79FB\u9664 {p0}",
833
+ "tagInput.field": "\u6DFB\u52A0\u6807\u7B7E",
834
+ "tagInput.added": "\u5DF2\u6DFB\u52A0 {p0} \u4E2A\u6807\u7B7E\u3002",
835
+ "tagInput.removed": "\u5DF2\u79FB\u9664 {p0}\u3002",
836
+ "tagInput.duplicate": "\u5DF2\u6709\u300C{p0}\u300D\uFF0C\u53EF\u4EE5\u7F16\u8F91\u540E\u91CD\u8BD5\u3002",
837
+ "tagInput.limit": "\u6700\u591A {p0} \u4E2A\u6807\u7B7E\uFF0C\u8BF7\u5148\u79FB\u9664\u4E00\u4E2A\u3002",
838
+ /* ── upload ── */
839
+ "upload.remove": "\u79FB\u9664 {p0}",
840
+ "upload.tooBig": "\u6587\u4EF6\u8D85\u8FC7 {p0}",
841
+ "upload.tooMany": "\u6700\u591A {p0} \u4E2A\u6587\u4EF6",
842
+ "upload.typeNotAllowed": "\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301"
843
+ };
844
+ var ICEN_LOCALE_EN_US = {
845
+ /* ── aiBranch ── */
846
+ "aiBranch.nextVersion": "Next version",
847
+ "aiBranch.prevVersion": "Previous version",
848
+ "aiBranch.version": "Branch version",
849
+ /* ── aiChat ── */
850
+ "aiChat.backToBottom": "Back to bottom",
851
+ "aiChat.backToBottomCount": "Back to bottom \xB7 {p0} new messages",
852
+ "aiChat.continue": "Continue generating",
853
+ "aiChat.download": "Download",
854
+ "aiChat.file": "File",
855
+ "aiChat.roleSystem": "Sys",
856
+ "aiChat.roleTool": "Tool",
857
+ "aiChat.roleUser": "Me",
858
+ "aiChat.thinking": "Thinking {p0}",
859
+ /* ── aiComposer ── */
860
+ "aiComposer.attachAgent": "Agent",
861
+ "aiComposer.library": "Add context and commands",
862
+ "aiComposer.searchLibrary": "Search skills, tools, files and commands",
863
+ "aiComposer.all": "All",
864
+ "aiComposer.skills": "Skills",
865
+ "aiComposer.tools": "Tools",
866
+ "aiComposer.libraryHint": "Context travels with the message \xB7 Commands open in the editor",
867
+ "aiComposer.commandHint": "\u2191 \u2193 Browse \xB7 Enter Run \xB7 Esc Return",
868
+ "aiComposer.refHint": "\u2191 \u2193 Browse \xB7 Enter Reference \xB7 Esc Return",
869
+ "aiComposer.noLibraryMatch": "No matching items. Try another keyword.",
870
+ "aiComposer.filesNeedAdapter": "Connect file uploads with prepareMessage, then retry. Files are retained with this request.",
871
+ "aiComposer.attachDoc": "Document",
872
+ "aiComposer.attachFile": "File",
873
+ "aiComposer.attachFolder": "Folder",
874
+ "aiComposer.cacheInvalidHint": "Switching models invalidates the prompt cache",
875
+ "aiComposer.commands": "Commands",
876
+ "aiComposer.currentTodos": "Current todos",
877
+ "aiComposer.done": "Done",
878
+ "aiComposer.justNow": "Just now \xB7 {p0}",
879
+ "aiComposer.modelAria": "Model {p0} ({p1})",
880
+ "aiComposer.noCommandMatch": "No matching commands",
881
+ "aiComposer.noModelMatch": "No matching models",
882
+ "aiComposer.noRefMatch": "No matching references",
883
+ "aiComposer.placeholder": "Type a message, / for commands \xB7 @ for references \xB7 Enter to send",
884
+ "aiComposer.refs": "References",
885
+ "aiComposer.removeAttachment": "Remove attachment {p0}",
886
+ "aiComposer.removeQueued": "Remove queued message {p0}",
887
+ "aiComposer.removeRef": "Remove reference {p0}",
888
+ "aiComposer.searchModels": "Search models",
889
+ "aiComposer.selectModel": "Select model",
890
+ "aiComposer.send": "Send",
891
+ "aiComposer.stop": "Stop generating",
892
+ "aiComposer.stopped": "Stopped",
893
+ "aiComposer.todoChip": "Todos {p0}/{p1}",
894
+ "aiComposer.todoHasError": " (has failures)",
895
+ /* ── aiCore ── */
896
+ "aiCore.kindBrowser": "Browse",
897
+ "aiCore.kindChart": "Chart",
898
+ "aiCore.kindDelete": "Delete",
899
+ "aiCore.kindEdit": "Edit",
900
+ "aiCore.kindFetch": "Fetch",
901
+ "aiCore.kindGlob": "Match",
902
+ "aiCore.kindGrep": "Search",
903
+ "aiCore.kindNote": "Note",
904
+ "aiCore.kindPlan": "Plan",
905
+ "aiCore.kindRead": "Read",
906
+ "aiCore.kindSearch": "Search",
907
+ "aiCore.kindShell": "Shell",
908
+ "aiCore.kindSkill": "Skill",
909
+ "aiCore.kindSubagent": "Subagent",
910
+ "aiCore.kindTodo": "Todo",
911
+ "aiCore.kindWrite": "Write",
912
+ "aiCore.statusApproval": "Awaiting approval",
913
+ "aiCore.statusCancelled": "Cancelled",
914
+ "aiCore.statusDone": "Done",
915
+ "aiCore.statusError": "Failed",
916
+ "aiCore.statusPending": "Pending",
917
+ "aiCore.statusRunning": "Running",
918
+ "aiCore.statusStreaming": "Streaming",
919
+ "aiCore.todoProgress": "{p0}/{p1} done",
920
+ /* ── aiDiff ── */
921
+ "aiDiff.accepted": "Accepted",
922
+ "aiDiff.binary": "Binary file \u2014 text diff unavailable",
923
+ "aiDiff.empty": "No diff content",
924
+ "aiDiff.rejected": "Rejected",
925
+ /* ── aiFeedback ── */
926
+ "aiFeedback.helpful": "Helpful",
927
+ "aiFeedback.notHelpful": "Not helpful",
928
+ "aiFeedback.reasonCitationMismatch": "Citations do not match",
929
+ "aiFeedback.reasonOutdated": "Outdated content",
930
+ "aiFeedback.reasonUnauthorized": "Unauthorized information",
931
+ "aiFeedback.reasonUnsourced": "No citation basis",
932
+ "aiFeedback.reasonWrong": "Incorrect answer",
933
+ "aiFeedback.thanks": "Thanks for the feedback \u2014 it is linked to this answer\u2019s tracking record",
934
+ /* ── aiPanel ── */
935
+ "aiPanel.audit": "Audit",
936
+ "aiPanel.cacheRead": "Cache read",
937
+ "aiPanel.cacheWrite": "Cache write",
938
+ "aiPanel.callsTokens": "{p0} calls \xB7 {p1} tok",
939
+ "aiPanel.clearAudit": "Clear audit",
940
+ "aiPanel.context": "Context",
941
+ "aiPanel.contextWindow": "Context window",
942
+ "aiPanel.errorsCount": "{p0} failed",
943
+ "aiPanel.files": "Files ({p0})",
944
+ "aiPanel.itemStatus": "{p0}, status: {p1}",
945
+ "aiPanel.noAudit": "No audit records",
946
+ "aiPanel.noUsage": "No usage yet",
947
+ "aiPanel.reasoning": "Reasoning",
948
+ "aiPanel.requestsCount": "{p0} requests",
949
+ "aiPanel.ringPercent": "Context window {p0}% full, click for details",
950
+ "aiPanel.ringUsed": "{p0} used, click for details",
951
+ "aiPanel.taskProgress": "Task progress",
952
+ "aiPanel.toolsCount": "{p0} tools",
953
+ "aiPanel.usage": "Usage",
954
+ "aiPanel.usageAria": "Usage: {p0}",
955
+ /* ── aiProvider ── */
956
+ "aiProvider.audioUrlOnly": "audio with URL only (input_audio requires base64 \u2014 fetch and inline it first)",
957
+ "aiProvider.audioUrlOnlyAnthropic": "audio with URL only (audio blocks need a base64 source)",
958
+ "aiProvider.base64File": "base64 file (file parts need a Files API file_id \u2014 use the url slot)",
959
+ "aiProvider.corsHint": "; direct browser access to {p0} ({p1}) will likely be blocked by CORS \u2014 route through a proxy or self-hosted gateway",
960
+ "aiProvider.emptyResponse": "Empty response",
961
+ "aiProvider.glmLabel": "GLM (Zhipu)",
962
+ "aiProvider.invalidJson": "Response is not valid JSON",
963
+ "aiProvider.kimiLabel": "Kimi (Moonshot)",
964
+ "aiProvider.networkFailed": "Network request failed: {p0}{p1}",
965
+ "aiProvider.nonPdfDocument": "non-PDF file block (document blocks must be application/pdf, got {p0})",
966
+ "aiProvider.requestCancelled": "Request cancelled",
967
+ "aiProvider.resourceRef": "[resource] {p0} ({p1})",
968
+ "aiProvider.streamError": "Streaming response error",
969
+ "aiProvider.toolRoleNoCallId": "role 'tool' without toolCallId (OpenAI family requires tool_call_id)",
970
+ "aiProvider.toolRoleNoUseId": "role 'tool' without toolCallId (Anthropic family needs tool_use_id for tool_result)",
971
+ "aiProvider.unsupported": "{p0} wire protocol does not support {p1}",
972
+ "aiProvider.videoUnsupported": "video input (no mainstream chat API supports it)",
973
+ "aiProvider.videoUnsupportedAnthropic": "video input",
974
+ /* ── aiThreads ── */
975
+ "aiThreads.actionsAria": "Conversation actions",
976
+ "aiThreads.archived": "Archived",
977
+ /* ── aiTool ── */
978
+ "aiTool.allow": "Allow",
979
+ "aiTool.reject": "Reject",
980
+ /* ── aiTools ── */
981
+ "aiTools.chart.area": "fill area under multi-series line",
982
+ "aiTools.chart.data": "raw records of any dimensionality + dims field mapping (auto-pivoted into category \xD7 series)",
983
+ "aiTools.chart.dates": "contribution-calendar ISO dates (paired with values)",
984
+ "aiTools.chart.description": "Render a chart visualization in the user interface. Input is a chart spec (pure JSON): give one of labels+values (categories and values), series (multi-series), segments (share), points (scatter/bubble), dates (contribution calendar); when type is omitted the chart type is inferred from the data shape (time series\u2192line, share\u2192donut, dates\u2192contribution calendar, coordinate points\u2192scatter). The chart has interactions (hover tooltip/click/right-click) and a hideable legend.",
985
+ "aiTools.chart.dims": "Field mapping for data[]: {label?, series?, value?, x?, y?}",
986
+ "aiTools.chart.format": "value format: {notation?: compact|percent|ms, unit?}",
987
+ "aiTools.chart.labels": "category axis (line/vbar/hbar)",
988
+ "aiTools.chart.legend": "false = hide legend initially",
989
+ "aiTools.chart.lttb": "downsample large datasets: true=auto cap, number=max points kept (renderer contract, lands with the chart heavy-data track)",
990
+ "aiTools.chart.marks": "marker layer (threshold lines/reference ranges/highlighted points), elements are plain JSON descriptors (renderer contract, lands with chart heavy scenarios)",
991
+ "aiTools.chart.points": "scatter/bubble: [{x,y,size?,label?}]",
992
+ "aiTools.chart.radarAxes": "radar axis names",
993
+ "aiTools.chart.segments": "share data (donut/stack): [{label,value}]",
994
+ "aiTools.chart.series": "multi-series (line/vbar/radar)",
995
+ "aiTools.chart.stacked": "stack multi-series vbar (grouped by default)",
996
+ "aiTools.chart.title": "chart title (rendered at the left of the header row)",
997
+ "aiTools.chart.tooltip": "false = disable built-in tooltip",
998
+ "aiTools.chart.type": "chart type; auto-inferred when omitted",
999
+ "aiTools.chart.values": "single-series values (paired with labels)",
1000
+ "aiTools.chart.zoom": "zoom interaction: 'x'=category-axis range zoom, 'brush'=brush zoom",
1001
+ "aiTools.datatable.columns": "column definitions: [{ key, title, sortable?, filterable? }] (key maps to a field name in rows)",
1002
+ "aiTools.datatable.description": "Render a searchable, paginated, CSV-exportable data table in the user interface. Input is pure JSON: columns = column definitions (key/title required), rows = array of row objects whose field names align with columns[].key. Returns a { title, rows: count } summary.",
1003
+ "aiTools.datatable.rows": "row data array: each item is an object whose field names align with columns[].key",
1004
+ "aiTools.datatable.title": "table title (rendered at the left of the toolbar)",
1005
+ "aiTools.execFailed": "Tool execution failed: {p0}",
1006
+ "aiTools.execTimeout": "timed out ({p0}ms)",
1007
+ "aiTools.manifestHeader": "Available UI tools (results mount in the UI when called):",
1008
+ "aiTools.missingRequired": "missing required field",
1009
+ "aiTools.none": "(no UI tools registered)",
1010
+ "aiTools.notInEnum": "not in allowed values ({p0})",
1011
+ "aiTools.numMax": "value {p0} is above maximum {p1}",
1012
+ "aiTools.numMin": "value {p0} is below minimum {p1}",
1013
+ "aiTools.removeMount": "Remove {p0} mount",
1014
+ "aiTools.strMax": "length {p0} exceeds maximum {p1}",
1015
+ "aiTools.strMin": "length {p0} is below minimum {p1}",
1016
+ "aiTools.typeMismatch": "expected {p0}, got {p1}",
1017
+ "aiTools.validationFailed": "argument validation failed ({p0} issues)",
1018
+ /* ── autocomplete ── */
1019
+ "suggestions.loading": "Finding suggestions\u2026",
1020
+ "suggestions.error": "Suggestions could not be loaded. Try again.",
1021
+ "suggestions.options": "Suggestions",
1022
+ "suggestions.empty": "No matching suggestions",
1023
+ "autocomplete.empty": "No matches",
1024
+ /* ── backTop ── */
1025
+ "backTop.label": "Back to top",
1026
+ /* ── carousel ── */
1027
+ "carousel.item": "Item {p0}",
1028
+ "carousel.region": "Carousel",
1029
+ "carousel.slide": "Slide",
1030
+ "carousel.status": "Item {p0} of {p1}",
1031
+ /* ── charts ── */
1032
+ "charts.calendarWeekdays": ["M", "", "W", "", "F", "", "S"],
1033
+ "charts.few": "Few",
1034
+ "charts.hideLegend": "Hide legend",
1035
+ "charts.loading": "Loading",
1036
+ "charts.many": "Many",
1037
+ "charts.monthLabel": "{p0}",
1038
+ "charts.noData": "No data",
1039
+ "charts.resetZoom": "Reset zoom",
1040
+ "charts.sampled": "Sampled \u2192 {p0} points",
1041
+ "charts.type.area": "Area chart",
1042
+ "charts.type.donut": "Donut chart",
1043
+ "charts.type.gauge": "Gauge",
1044
+ "charts.type.graph": "Graph",
1045
+ "charts.type.heatmap": "Heatmap",
1046
+ "charts.type.line": "Line chart",
1047
+ "charts.type.map": "Map",
1048
+ "charts.type.radar": "Radar chart",
1049
+ "charts.type.scatter": "Scatter plot",
1050
+ "charts.type.sparkline": "Sparkline",
1051
+ "charts.seriesName": "Series {p0}",
1052
+ "charts.showLegend": "Show legend",
1053
+ "charts.value": "Value",
1054
+ /* ── themeSwitcher ── */
1055
+ "themeSwitcher.appearance": "Appearance",
1056
+ "themeSwitcher.theme": "Theme",
1057
+ "themeSwitcher.primitive": "Primitive",
1058
+ "themeSwitcher.mode": "Color mode",
1059
+ "themeSwitcher.light": "Light",
1060
+ "themeSwitcher.dark": "Dark",
1061
+ "themeSwitcher.modern": "Modern",
1062
+ "themeSwitcher.dongyun": "Dongyun",
1063
+ "themeSwitcher.jugou": "Jugou",
1064
+ "themeSwitcher.piano": "Piano",
1065
+ "themeSwitcher.monet": "Monet",
1066
+ "themeSwitcher.vangogh": "Van Gogh",
1067
+ "themeSwitcher.chinese": "Chinese",
1068
+ "themeSwitcher.soviet": "Soviet",
1069
+ "themeSwitcher.pixel": "Pixel",
1070
+ /* ── codeBlock ── */
1071
+ "codeBlock.collapse": "Collapse",
1072
+ "codeBlock.region": "Code content",
1073
+ "codeBlock.copyFailed": "Could not copy. Try again.",
1074
+ "codeBlock.copyRetry": "Retry copy",
1075
+ "codeBlock.copy": "Copy",
1076
+ "codeBlock.foldCollapse": "Collapse code",
1077
+ "codeBlock.foldExpand": "Expand code",
1078
+ "codeBlock.linesTotal": "{p0} lines total",
1079
+ "codeBlock.numHide": "Hide line numbers",
1080
+ "codeBlock.numShow": "Show line numbers",
1081
+ "codeBlock.tailAria": "Expand or collapse code",
1082
+ "codeBlock.wrapOff": "Disable wrapping",
1083
+ "codeBlock.wrapOn": "Wrap lines",
1084
+ /* ── common ── */
1085
+ "common.accept": "Accept",
1086
+ "common.add": "Add",
1087
+ "common.all": "All",
1088
+ "common.approve": "Approve",
1089
+ "common.cancel": "Cancel",
1090
+ "common.actionFailed": "Action failed. Try again.",
1091
+ "common.close": "Close",
1092
+ "common.confirm": "Confirm",
1093
+ "common.copied": "Copied",
1094
+ "common.copy": "Copy",
1095
+ "common.delete": "Delete",
1096
+ "common.enable": "Enable",
1097
+ "common.exportCsv": "Export CSV",
1098
+ "common.healthy": "Healthy",
1099
+ "common.input": "Input",
1100
+ "common.loadingEllipsis": "Loading\u2026",
1101
+ "common.official": "Official",
1102
+ "common.output": "Output",
1103
+ "common.page": "Page {p0}",
1104
+ "common.reject": "Reject",
1105
+ "common.remove": "Remove",
1106
+ "common.requestAccess": "Request access",
1107
+ "common.requestAccessFor": "Request access to {p0}",
1108
+ "common.restricted": "Restricted",
1109
+ "common.retry": "Retry",
1110
+ "common.rows": "{p0} rows",
1111
+ "common.run": "Run",
1112
+ "common.steps": "{p0} steps",
1113
+ "common.submit": "Submit",
1114
+ "common.unknown": "Unknown",
1115
+ /* ── contextMenu ── */
1116
+ "contextMenu.back": "Back",
1117
+ "contextMenu.copyPageLink": "Copy page link",
1118
+ "contextMenu.forward": "Forward",
1119
+ "contextMenu.refresh": "Reload",
1120
+ /* ── copy ── */
1121
+ "copy.copied": "Copied",
1122
+ "copy.failed": "Could not copy. Try again.",
1123
+ "copy.denied": "Clipboard API denied ({p0}) and execCommand fallback failed",
1124
+ "copy.unavailable": "Clipboard unavailable (no Clipboard API and execCommand fallback failed)",
1125
+ "copy.unknown": "Unknown error",
1126
+ /* ── datatable ── */
1127
+ "datatable.clear": "Clear",
1128
+ "datatable.collapseGroup": "Collapse group {p0}",
1129
+ "datatable.columnSettingsAria": "Column settings",
1130
+ "datatable.countUnit": "{p0} items",
1131
+ "datatable.editHint": "Edit {p0}: double-click or press Enter",
1132
+ "datatable.editHintWithValue": "{p0} (double-click or press Enter to edit {p1})",
1133
+ "datatable.empty": "No data",
1134
+ "datatable.emptyValue": "(empty)",
1135
+ "datatable.expandGroup": "Expand group {p0}",
1136
+ "datatable.expandRow": "Expand row",
1137
+ "datatable.filterChipAria": "Filter: {p0}",
1138
+ "datatable.pageSizeAria": "Items per page",
1139
+ "datatable.paginationAria": "Pagination",
1140
+ "datatable.reset": "Reset",
1141
+ "datatable.resizeAria": "Resize column {p0}",
1142
+ "datatable.searchAria": "Search table",
1143
+ "datatable.searchPlaceholder": "Search\u2026",
1144
+ "datatable.selectAll": "Select all",
1145
+ "datatable.selectRow": "Select this row",
1146
+ "datatable.selectedCount": "{p0} selected",
1147
+ "datatable.totalCount": "{p0} items total",
1148
+ "datatable.totalLabel": "Total",
1149
+ /* ── datePicker ── */
1150
+ "datePicker.noDates": "No available dates",
1151
+ "datePicker.clear": "Clear",
1152
+ "datePicker.nextMonth": "Next month",
1153
+ "datePicker.prevMonth": "Previous month",
1154
+ "datePicker.selectDate": "Select date",
1155
+ "datePicker.today": "Today",
1156
+ "datePicker.weekdays": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
1157
+ "datePicker.weekdaysSunFirst": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
1158
+ "datePicker.yearMonth": "{p1} {p0}",
1159
+ /* ── formValidate ── */
1160
+ "formValidate.email": "Enter a valid email address",
1161
+ "formValidate.invalid": "Invalid input",
1162
+ "formValidate.matches": "The two entries do not match",
1163
+ "formValidate.max": "Must not be greater than {max}",
1164
+ "formValidate.maxlength": "Enter at most {max} characters",
1165
+ "formValidate.min": "Must not be less than {min}",
1166
+ "formValidate.minlength": "Enter at least {min} characters",
1167
+ "formValidate.number": "Enter a valid number",
1168
+ "formValidate.pattern": "Invalid format",
1169
+ "formValidate.required": "This field is required",
1170
+ "formValidate.selectPlaceholder": "Please select",
1171
+ "formValidate.step": "Must be a multiple of {step}",
1172
+ "formValidate.summary": "{p0} fields need attention \u2014 fix them and submit again",
1173
+ "formValidate.tool.description": "Render a structured form to the user to collect input",
1174
+ "formValidate.tool.fields": "Field list",
1175
+ "formValidate.tool.help": "help text below the field",
1176
+ "formValidate.tool.label": "Field label",
1177
+ "formValidate.tool.max": "maximum value (for number)",
1178
+ "formValidate.tool.min": "minimum value (for number)",
1179
+ "formValidate.tool.name": "field name (the submitted value key)",
1180
+ "formValidate.tool.options": "select options (string or {label,value})",
1181
+ "formValidate.tool.pattern": "regex constraint (HTML pattern syntax, full-string match)",
1182
+ "formValidate.tool.required": "whether the field is required",
1183
+ "formValidate.tool.submitText": 'submit button label, defaults to "Submit"',
1184
+ "formValidate.tool.title": "form title (optional)",
1185
+ "formValidate.tool.type": "control type, default text",
1186
+ "formValidate.url": "Enter a valid URL",
1187
+ /* ── input ── */
1188
+ "input.clearSearch": "Clear search",
1189
+ "input.hidePassword": "Hide password",
1190
+ "input.otpPosition": "Digit {p0} of {p1}",
1191
+ "panel.expand": "Expand",
1192
+ "panel.collapse": "Collapse",
1193
+ "input.showPassword": "Show password",
1194
+ /* ── kbAccess ── */
1195
+ "kbAccess.approveTip": "Approve this access request",
1196
+ "kbAccess.approvedBadge": "Approved \xB7 {p0}",
1197
+ "kbAccess.approverNotePlaceholder": "Note to the requester (optional)",
1198
+ "kbAccess.daysLeft": "in {p0} days",
1199
+ "kbAccess.defaultSubject": "this content",
1200
+ "kbAccess.deniedHint": "Denied \u2014 adjust the reason and apply again",
1201
+ "kbAccess.denyNoteLabel": "Denial note (optional)",
1202
+ "kbAccess.duration30d": "30 days",
1203
+ "kbAccess.duration7d": "7 days",
1204
+ "kbAccess.durationForever": "Permanent",
1205
+ "kbAccess.durationLabel": "Access duration",
1206
+ "kbAccess.expired": "Expired",
1207
+ "kbAccess.expiresAt": "expires {p0}",
1208
+ "kbAccess.grantAsPrefix": "Approve as {p0}",
1209
+ "kbAccess.grantRoleLabel": "Approve role",
1210
+ "kbAccess.hoursLeft": "in {p0} h",
1211
+ "kbAccess.minutesLeft": "in {p0} min",
1212
+ "kbAccess.ownerLabel": "Content owner",
1213
+ "kbAccess.ownerPrefix": "Owner: {p0}",
1214
+ "kbAccess.reapply": "Apply again",
1215
+ "kbAccess.reasonLabel": "Request reason",
1216
+ "kbAccess.reasonPlaceholder": "Explain the business reason (visible to approvers)",
1217
+ "kbAccess.rejectTip": "Deny this access request",
1218
+ "kbAccess.requestRenewal": "Request renewal",
1219
+ "kbAccess.requestToPrefix": "The request will be sent to: {p0}",
1220
+ "kbAccess.restrictedContent": "Restricted content",
1221
+ "kbAccess.restrictedHint": "This content is open to authorized viewers only",
1222
+ "kbAccess.revokedHint": "Access has been revoked",
1223
+ "kbAccess.roleLabel": "Requested role",
1224
+ "kbAccess.submitRequest": "Submit request",
1225
+ "kbAccess.switchIdentity": "Switch identity",
1226
+ "kbAccess.switchIdentityTip": "Re-check permissions after switching identity",
1227
+ "kbAccess.unknownRequester": "Unknown requester",
1228
+ "kbAccess.waitingApproval": "Awaiting approval by {p0}",
1229
+ /* ── kbAcl ── */
1230
+ "kbAcl.breakHint": "Stop inheriting from the parent and manage this item\u2019s permissions independently",
1231
+ "kbAcl.breakInheritance": "Stop inheriting",
1232
+ "kbAcl.brokenNotice": "Inheritance stopped \u2014 this item\u2019s permissions are independent of the parent",
1233
+ "kbAcl.detachedChildren": ": {p0} child items detached",
1234
+ "kbAcl.directAccess": "Direct access",
1235
+ "kbAcl.exception": "Exception",
1236
+ "kbAcl.expiredOn": "Expired ({p0})",
1237
+ "kbAcl.expiresIn": "expires {p0}",
1238
+ "kbAcl.grantAccess": "Grant access",
1239
+ "kbAcl.inheritedFrom": "Inherited from {p0}",
1240
+ "kbAcl.inheritedFromLabel": "Inherited from",
1241
+ "kbAcl.linkAccess": "Link access",
1242
+ "kbAcl.noDirect": "No direct grants yet",
1243
+ "kbAcl.noLinks": "No links",
1244
+ "kbAcl.removeEntry": "Remove {p0}",
1245
+ "kbAcl.restoreHint": "Restoring inheritance discards the custom permissions on this item",
1246
+ "kbAcl.restoreInheritance": "Restore inheritance",
1247
+ "kbAcl.rootNotice": "Root resource \u2014 no parent to inherit from",
1248
+ "kbAcl.systemBadge": "System managed",
1249
+ "kbAcl.systemNote": "Managed by the system; cannot be removed manually",
1250
+ "kbAcl.unnamedResource": "Unnamed resource",
1251
+ "kbAcl.visibleToCount": "Visible to {p0} people",
1252
+ /* ── kbAnswer ── */
1253
+ "kbAnswer.chartBar": "Bar",
1254
+ "kbAnswer.chartLine": "Line",
1255
+ "kbAnswer.chartPie": "Pie",
1256
+ "kbAnswer.exportNoun": "Export {p0}",
1257
+ "kbAnswer.filtered": "Filtered by your data permissions",
1258
+ "kbAnswer.filteredDetail": "Filtered by your data permissions: {p0}",
1259
+ "kbAnswer.followups": "Suggested follow-ups",
1260
+ "kbAnswer.hitAssets": "Matched assets: {p0}",
1261
+ "kbAnswer.kindCurated": "Curated",
1262
+ "kbAnswer.kindFunction": "Function",
1263
+ "kbAnswer.kindParameterized": "Parameterized query",
1264
+ "kbAnswer.maskedPrefix": "Masked columns: {p0}",
1265
+ "kbAnswer.rerunTip": "Parameters editable \u2014 rerun anytime",
1266
+ "kbAnswer.truncated": "Truncated: showing {p0} / {p1} rows",
1267
+ "kbAnswer.verifiedBadge": "Verified answer",
1268
+ /* ── kbAudit ── */
1269
+ "kbAudit.actionDetail": "Action: {p0} \xB7 {p1}",
1270
+ "kbAudit.actionLabel": "Action",
1271
+ "kbAudit.alertedNote": "Security team alerted in real time",
1272
+ "kbAudit.channelFilterAria": "Filter audit channels",
1273
+ "kbAudit.channelPermission": "Permission change",
1274
+ "kbAudit.channelRead": "Read",
1275
+ "kbAudit.channelRequest": "Request",
1276
+ "kbAudit.channelSystem": "System",
1277
+ "kbAudit.empty": "No audit events",
1278
+ "kbAudit.exportTip": "Export the current filtered view as CSV",
1279
+ "kbAudit.hygieneLabel": "Permission hygiene issues",
1280
+ "kbAudit.noHygiene": "No hygiene issues found",
1281
+ /* ── kbCanvas ── */
1282
+ "kbCanvas.splitterAria": "Adjust canvas split ratio",
1283
+ "kbCanvas.splitterTip": "Drag to resize (\u2190/\u2192 to nudge, double-click to reset)",
1284
+ /* ── kbCheckpoint ── */
1285
+ "kbCheckpoint.chatAuditNote": "Discussion history has audit value",
1286
+ "kbCheckpoint.label": "Checkpoint",
1287
+ "kbCheckpoint.restore": "Restore checkpoint",
1288
+ "kbCheckpoint.scopeBoth": "Content and conversation",
1289
+ "kbCheckpoint.scopeChat": "Conversation only",
1290
+ "kbCheckpoint.scopeContent": "Content only (keep conversation)",
1291
+ "kbCheckpoint.scopeMissing": "This checkpoint does not cover the selected restore scope",
1292
+ /* ── kbChunks ── */
1293
+ "kbChunks.addKeyword": "+ Keyword",
1294
+ "kbChunks.chunkAddKeywordAria": "chunk {p0} add keyword",
1295
+ "kbChunks.chunkContentAria": "chunk {p0} content",
1296
+ "kbChunks.chunkEnableAria": "chunk {p0} enable",
1297
+ "kbChunks.deleteChunkAria": "Delete chunk {p0}",
1298
+ "kbChunks.disableNote": "Disabling does not delete \u2014 the chunk is only excluded from retrieval",
1299
+ "kbChunks.edited": "Edited",
1300
+ "kbChunks.empty": "No chunks",
1301
+ "kbChunks.modeFull": "Full-text",
1302
+ "kbChunks.modeLabel": "Search mode",
1303
+ "kbChunks.modeVector": "Semantic",
1304
+ "kbChunks.removeKeyword": "Remove keyword {p0}",
1305
+ "kbChunks.searchAria": "Search chunks",
1306
+ "kbChunks.searchFullPlaceholder": "Full-text search chunks\u2026",
1307
+ "kbChunks.searchVectorPlaceholder": "Semantic search chunks\u2026",
1308
+ /* ── kbCitation ── */
1309
+ "kbCitation.sourceN": "Source {p0}",
1310
+ "kbCitation.unavailable": "Source unavailable",
1311
+ /* ── kbClarify ── */
1312
+ "kbClarify.parsedPrefix": "Parsed: {p0}",
1313
+ /* ── kbConflict ── */
1314
+ "kbConflict.owner": "Owner {p0}",
1315
+ /* ── kbConnector ── */
1316
+ "kbConnector.changeRate": "Change rate",
1317
+ "kbConnector.crawlRate": "Crawl rate",
1318
+ "kbConnector.credentials": "Credentials",
1319
+ "kbConnector.credentialsExpired": "Credentials expired",
1320
+ "kbConnector.editSchedule": "Edit schedule",
1321
+ "kbConnector.empty": "No connectors",
1322
+ "kbConnector.failing": "Failing",
1323
+ "kbConnector.lastSync": "Last synced {p0}",
1324
+ "kbConnector.neverSynced": "Never synced",
1325
+ "kbConnector.notConfigured": "Not configured",
1326
+ "kbConnector.off": "Disabled",
1327
+ "kbConnector.perDay": "{p0}/day",
1328
+ "kbConnector.reauth": "Re-authorize",
1329
+ "kbConnector.stale": "Stale",
1330
+ "kbConnector.syncNow": "Sync now",
1331
+ "kbConnector.synced": "Synced",
1332
+ /* ── kbCore ── */
1333
+ "kbCore.accessDenied": "Denied",
1334
+ "kbCore.accessExpired": "Expired",
1335
+ "kbCore.accessExpiring": "Expiring soon",
1336
+ "kbCore.accessGranted": "Granted",
1337
+ "kbCore.accessNotRequested": "Not requested",
1338
+ "kbCore.accessPending": "Pending review",
1339
+ "kbCore.accessRequested": "Submitted",
1340
+ "kbCore.accessRevoked": "Revoked",
1341
+ "kbCore.auditApprove": "Approve",
1342
+ "kbCore.auditBreakGlass": "Break-glass access",
1343
+ "kbCore.auditDelegation": "Delegation",
1344
+ "kbCore.auditDeny": "Deny",
1345
+ "kbCore.auditGrant": "Grant",
1346
+ "kbCore.auditPermissionChange": "Permission change",
1347
+ "kbCore.auditPreview": "Preview",
1348
+ "kbCore.auditRead": "Read",
1349
+ "kbCore.auditRequest": "Request",
1350
+ "kbCore.auditRevoke": "Revoke",
1351
+ "kbCore.auditSync": "Permission sync",
1352
+ "kbCore.daysAgo": "{p0} d ago",
1353
+ "kbCore.hoursAgo": "{p0} h ago",
1354
+ "kbCore.hygieneBroadGroup": "Over-broad group grant",
1355
+ "kbCore.hygieneBrokenInheritance": "Broken inheritance",
1356
+ "kbCore.hygieneOrgWideLink": "Org-wide link",
1357
+ "kbCore.hygieneOrphanedOwner": "Owner missing",
1358
+ "kbCore.hygieneOverexposed": "Overexposed",
1359
+ "kbCore.hygieneSensitiveMismatch": "Sensitivity mismatch",
1360
+ "kbCore.justNow": "Just now",
1361
+ "kbCore.levelComment": "Can comment",
1362
+ "kbCore.levelEdit": "Can edit",
1363
+ "kbCore.levelNone": "No access",
1364
+ "kbCore.levelOwner": "Owner",
1365
+ "kbCore.levelView": "Can view",
1366
+ "kbCore.minutesAgo": "{p0} min ago",
1367
+ "kbCore.runCancelled": "Cancelled",
1368
+ "kbCore.runDone": "Done",
1369
+ "kbCore.runFailed": "Failed",
1370
+ "kbCore.runQueued": "Queued",
1371
+ "kbCore.runRunning": "Running",
1372
+ "kbCore.runUnstarted": "Not started",
1373
+ "kbCore.stageAgent": "Agent",
1374
+ "kbCore.stageChunk": "Chunking",
1375
+ "kbCore.stageEmbed": "Embedding",
1376
+ "kbCore.stageGeneration": "Generation",
1377
+ "kbCore.stageGuard": "Guardrail",
1378
+ "kbCore.stageQuery": "Query",
1379
+ "kbCore.stageRerank": "Rerank",
1380
+ "kbCore.stageRetrieval": "Retrieval",
1381
+ "kbCore.stageTool": "Tool",
1382
+ "kbCore.typeApi": "API",
1383
+ "kbCore.typeCode": "Code",
1384
+ "kbCore.typeDatabase": "Database",
1385
+ "kbCore.typeDocument": "Document",
1386
+ "kbCore.typeEmail": "Email",
1387
+ "kbCore.typeImage": "Image",
1388
+ "kbCore.typeKb": "Knowledge base",
1389
+ "kbCore.typeTable": "Table",
1390
+ "kbCore.typeTicket": "Ticket",
1391
+ "kbCore.typeWebpage": "Webpage",
1392
+ "kbCore.unnamedSource": "Unnamed source",
1393
+ "kbCore.unnamedSubject": "Unnamed subject",
1394
+ "kbCore.visHidden": "Hidden",
1395
+ "kbCore.visMetadataOnly": "Metadata only",
1396
+ "kbCore.visSummaryOnly": "Summary only",
1397
+ "kbCore.visVisible": "Visible",
1398
+ /* ── kbEval ── */
1399
+ "kbEval.avgA": "A avg {p0}",
1400
+ "kbEval.avgB": "B avg {p0}",
1401
+ "kbEval.runSelectAria": "\u9009\u62E9\u5BF9\u6BD4\u8FD0\u884C",
1402
+ "kbEval.compare": "Compare",
1403
+ "kbEval.expected": "Expected",
1404
+ "kbEval.gradeImprovement": "Improvement",
1405
+ "kbEval.gradeRegression": "Regression",
1406
+ "kbEval.gradeTie": "Tie",
1407
+ "kbEval.gradeTradeoff": "Trade-off",
1408
+ "kbEval.noData": "No comparison data",
1409
+ "kbEval.onlyRegression": "Regressions only",
1410
+ "kbEval.outputA": "Output A",
1411
+ "kbEval.outputB": "Output B",
1412
+ "kbEval.outputN": "Output {p0}",
1413
+ /* ── kbExplain ── */
1414
+ "kbExplain.empty": "No definition available",
1415
+ "kbExplain.groupAgg": "Aggregation",
1416
+ "kbExplain.groupColumn": "Column",
1417
+ "kbExplain.groupFilter": "Filter",
1418
+ "kbExplain.groupTable": "Table",
1419
+ "kbExplain.trigger": "How is this number calculated?",
1420
+ "kbExplain.viewDefinition": "View definition",
1421
+ /* ── kbFilter ── */
1422
+ "kbFilter.addGroup": "+ Group",
1423
+ "kbFilter.addRule": "+ Rule",
1424
+ "kbFilter.and": "AND",
1425
+ "kbFilter.combineMode": "Combination: {p0}",
1426
+ "kbFilter.copyDsl": "Copy DSL",
1427
+ "kbFilter.deleteGroup": "Delete group",
1428
+ "kbFilter.deleteRule": "Delete rule",
1429
+ "kbFilter.fieldLabel": "Field",
1430
+ "kbFilter.fieldPlaceholder": "Filter field",
1431
+ "kbFilter.noValueNeeded": "(no value needed)",
1432
+ "kbFilter.none": "(no filter)",
1433
+ "kbFilter.opContains": "contains",
1434
+ "kbFilter.opEq": "equals",
1435
+ "kbFilter.opExists": "exists",
1436
+ "kbFilter.opGt": "greater than",
1437
+ "kbFilter.opGte": "at least",
1438
+ "kbFilter.opIn": "in",
1439
+ "kbFilter.opLt": "less than",
1440
+ "kbFilter.opLte": "at most",
1441
+ "kbFilter.opNe": "not equals",
1442
+ "kbFilter.operatorLabel": "Operator",
1443
+ "kbFilter.or": "OR",
1444
+ "kbFilter.toggleAndOr": "Toggle AND / OR",
1445
+ "kbFilter.valueAria": "Filter value",
1446
+ "kbFilter.valueLabel": "Value",
1447
+ "kbFilter.valuePlaceholder": "Value 1, value 2 (comma-separated)",
1448
+ /* ── kbGap ── */
1449
+ "kbGap.addSynonym": "Add synonym",
1450
+ "kbGap.colCount": "Count",
1451
+ "kbGap.colLastSeen": "Last seen",
1452
+ "kbGap.colQuery": "Query",
1453
+ "kbGap.colShare": "Share",
1454
+ "kbGap.createDoc": "Create doc",
1455
+ "kbGap.empty": "No missed queries \u2014 coverage looks good",
1456
+ "kbGap.title": "Missed-query trends",
1457
+ "kbGap.zeroClickHint": "Users may have gotten the answer from the cited snippet; zero-click needs manual interpretation and is not directly a failure",
1458
+ "kbGap.zeroClickRate": "Zero-click rate",
1459
+ "kbGap.zeroClickTitle": "Zero clicks \u2260 failure",
1460
+ /* ── kbHittest ── */
1461
+ "kbHittest.addAria": "Add test question",
1462
+ "kbHittest.addPlaceholder": "Add a test question, Enter to add",
1463
+ "kbHittest.avgScore": "Avg score",
1464
+ "kbHittest.deleteQuestion": "Delete question",
1465
+ "kbHittest.empty": "No test questions yet \u2014 add the first one to start recall regression",
1466
+ "kbHittest.expectHit": "Expected hit in top results",
1467
+ "kbHittest.expectMiss": "Expected miss",
1468
+ "kbHittest.hitRate": "Hit rate",
1469
+ "kbHittest.noExpectation": "No expectation set",
1470
+ "kbHittest.notRun": "Not run",
1471
+ "kbHittest.pass": "Pass",
1472
+ "kbHittest.pin": "Pin",
1473
+ "kbHittest.runAll": "Run all",
1474
+ "kbHittest.sessionOnly": "Parameters apply to this session only",
1475
+ "kbHittest.sessionOnlyHint": "Retrieval parameters of test runs (topK/threshold/rerank) are not persisted \u2014 this session only",
1476
+ "kbHittest.unpin": "Unpin",
1477
+ /* ── kbMetadata ── */
1478
+ "kbMetadata.addField": "Add field",
1479
+ "kbMetadata.builtIn": "Built-in",
1480
+ "kbMetadata.colField": "Field",
1481
+ "kbMetadata.colType": "Type",
1482
+ "kbMetadata.colValue": "Value",
1483
+ "kbMetadata.empty": "No metadata fields",
1484
+ "kbMetadata.nameLabel": "New field name",
1485
+ "kbMetadata.namePlaceholder": "Field name, e.g. department",
1486
+ "kbMetadata.removeField": "Remove field {p0}",
1487
+ "kbMetadata.typeLabel": "New field type",
1488
+ "kbMetadata.valueOf": "value of {p0}",
1489
+ /* ── kbPassage ── */
1490
+ "kbPassage.blockRange": "Blocks {p0}\u2013{p1}",
1491
+ "kbPassage.close": "Close source text",
1492
+ "kbPassage.expandContext": "Expand context",
1493
+ "kbPassage.locate": "Locate in source",
1494
+ "kbPassage.none": "(no source text)",
1495
+ "kbPassage.pageRange": "Pages {p0}\u2013{p1}",
1496
+ "kbPassage.restricted": "Content restricted",
1497
+ "kbPassage.unitByte": "bytes",
1498
+ "kbPassage.unitChar": "chars",
1499
+ /* ── kbPipeline ── */
1500
+ "kbPipeline.empty": "No parsing tasks",
1501
+ "kbPipeline.progress": "Parsing progress",
1502
+ "kbPipeline.rerun": "Rerun",
1503
+ "kbPipeline.unknownStage": "Unknown stage",
1504
+ /* ── kbQa ── */
1505
+ "kbQa.colAnswer": "Answer",
1506
+ "kbQa.colQuestion": "Question",
1507
+ "kbQa.csvHint": "CSV template: question,answer (one pair per line, UTF-8)",
1508
+ "kbQa.deleteRow": "Delete row {p0}",
1509
+ "kbQa.empty": "No curated Q&A pairs",
1510
+ "kbQa.importCsv": "Import CSV",
1511
+ /* ── kbRerank ── */
1512
+ "kbRerank.after": "After rerank",
1513
+ "kbRerank.before": "Before rerank",
1514
+ "kbRerank.compareTitle": "Rerank comparison",
1515
+ "kbRerank.down": "Down {p0}",
1516
+ "kbRerank.dropped": "Dropped",
1517
+ "kbRerank.empty": "Both sides empty \u2014 run a retrieval first",
1518
+ "kbRerank.enableCompare": "Enable rerank comparison",
1519
+ "kbRerank.newIn": "New",
1520
+ "kbRerank.unmarked": "Unmarked",
1521
+ "kbRerank.up": "Up {p0}",
1522
+ /* ── kbRetrieval ── */
1523
+ "kbRetrieval.breakdown": "Breakdown",
1524
+ "kbRetrieval.copyParams": "Copy params JSON",
1525
+ "kbRetrieval.decreaseTopK": "Decrease topK",
1526
+ "kbRetrieval.empty": "Enter a question and run \u2014 hits will appear here",
1527
+ "kbRetrieval.failOpenNotice": "fail-open: the current query carries no identity filter and will return all candidates (debug only)",
1528
+ "kbRetrieval.hybridWeight": "Hybrid weight (semantic left, keyword right)",
1529
+ "kbRetrieval.identityLabel": "Retrieval identity",
1530
+ "kbRetrieval.identityShort": "Identity",
1531
+ "kbRetrieval.increaseTopK": "Increase topK",
1532
+ "kbRetrieval.keywordHint": "Keyword: fast and exact on large corpora",
1533
+ "kbRetrieval.layerLabel": "Filter layer",
1534
+ "kbRetrieval.layerNone": "none: fail-open, no identity filter returns everything \u2014 dangerous, demo only",
1535
+ "kbRetrieval.layerPost": "post-filter: scores already observable \u2014 flawed layer, demo only",
1536
+ "kbRetrieval.layerPre": "pre-filter: ACL applies inside retrieval \u2014 the security baseline",
1537
+ "kbRetrieval.leakNote": "Pre-filter counts are leakage \u2014 not shown",
1538
+ "kbRetrieval.modeHybrid": "Hybrid",
1539
+ "kbRetrieval.modeKeyword": "Keyword",
1540
+ "kbRetrieval.modeLabel": "Retrieval mode",
1541
+ "kbRetrieval.modeVector": "Vector",
1542
+ "kbRetrieval.postFilterNotice": "post-filter: scores were produced before filtering (flawed-layer demo)",
1543
+ "kbRetrieval.queryLabel": "Retrieval question",
1544
+ "kbRetrieval.queryPlaceholder": "Retrieval question, Enter to run",
1545
+ "kbRetrieval.rerankLabel": "Rerank",
1546
+ "kbRetrieval.rerankThresholdOff": "threshold off \xB7 keep {p0}",
1547
+ "kbRetrieval.rerankThresholdOn": "threshold {p0} \xB7 keep {p1}",
1548
+ "kbRetrieval.running": "Running\u2026",
1549
+ "kbRetrieval.thresholdLabel": "Score threshold",
1550
+ "kbRetrieval.thresholdValue": "Threshold {p0}",
1551
+ "kbRetrieval.vectorHint": "Semantic: cross-lingual / no exact terms",
1552
+ "kbRetrieval.vectorPercent": "Semantic {p0}",
1553
+ "kbRetrieval.weightValue": "Vector {p0}% / keyword {p1}%",
1554
+ /* ── kbReview ── */
1555
+ "kbReview.assignee": "Assignee",
1556
+ "kbReview.doneNext": "Done, next item",
1557
+ "kbReview.empty": "No items to review",
1558
+ "kbReview.emptyAssignee": "No items under this assignee",
1559
+ "kbReview.emptyQueue": "Queue is empty",
1560
+ "kbReview.kbCloseHint": "Close hint",
1561
+ "kbReview.kbSelectOption": "Select option",
1562
+ "kbReview.kbSwitchItem": "Switch item",
1563
+ "kbReview.kbToggleHint": "Show/hide this hint",
1564
+ "kbReview.shortcuts": "? Shortcuts",
1565
+ "kbReview.typeAnswer": "Answer",
1566
+ "kbReview.typeMessage": "Message",
1567
+ "kbReview.typeTrace": "Trace",
1568
+ "kbReview.unassigned": "Unassigned",
1569
+ /* ── kbSandbox ── */
1570
+ "kbSandbox.noResolver": "The host provides no ui:// resolver",
1571
+ "kbSandbox.notReady": "kb-sandbox: app not ready",
1572
+ "kbSandbox.resolveFailed": "ui:// resolution failed: {p0}",
1573
+ "kbSandbox.timeout": "kb-sandbox: call timed out ({p0} ms)",
1574
+ "kbSandbox.title": "MCP App sandbox",
1575
+ /* ── kbSegment ── */
1576
+ "kbSegment.avgLength": "avg {p0}",
1577
+ "kbSegment.childNote": "Child segments are generated automatically by length",
1578
+ "kbSegment.cleanBlankLines": "Merge consecutive blank lines",
1579
+ "kbSegment.cleanEmails": "Strip emails",
1580
+ "kbSegment.cleanLinks": "Strip links",
1581
+ "kbSegment.empty": "Sample is empty \u2014 nothing to preview",
1582
+ "kbSegment.maxLengthLabel": "Max length",
1583
+ "kbSegment.maxLengthPlaceholder": "Max segment length",
1584
+ "kbSegment.modeAuto": "Auto",
1585
+ "kbSegment.modeCustom": "Custom",
1586
+ "kbSegment.modeLabel": "Segmentation mode",
1587
+ "kbSegment.modeNote": "The segmentation mode cannot be changed after creation; parameters can be adjusted anytime",
1588
+ "kbSegment.modeParentChild": "Parent-child",
1589
+ "kbSegment.overlapInvalid": "Overlap must be smaller than max length",
1590
+ "kbSegment.overlapLabel": "Overlap",
1591
+ "kbSegment.overlapPlaceholder": "Segment overlap",
1592
+ "kbSegment.previewNote": "{p0} segments total, previewing the first {p1}",
1593
+ "kbSegment.segmentsCount": "{p0} segments",
1594
+ "kbSegment.separatorLabel": "Separator",
1595
+ "kbSegment.separatorPlaceholder": "Segment separator",
1596
+ "kbSegment.toggleTip": "Click to expand/collapse",
1597
+ /* ── kbSources ── */
1598
+ "kbSources.cited": "Cited \xD7{p0}",
1599
+ "kbSources.empty": "Passages cited by the next answer will appear here",
1600
+ /* ── kbSql ── */
1601
+ "kbSql.adminOnly": "Admins only",
1602
+ "kbSql.applyFix": "Apply fix and rerun",
1603
+ "kbSql.confirmRerun": "Confirm and rerun",
1604
+ "kbSql.editRerun": "Edit & rerun",
1605
+ "kbSql.fixReady": "The previous run errored \u2014 a fix suggestion is ready",
1606
+ "kbSql.generated": "Generated SQL",
1607
+ /* ── kbTrace ── */
1608
+ "kbTrace.empty": "No trace data",
1609
+ "kbTrace.hits": "{p0} hits",
1610
+ /* ── kbVisibility ── */
1611
+ "kbVisibility.adminOnlyNote": "The comparison above is admin-audit only",
1612
+ "kbVisibility.adminWarn": "Admin audit view \u2014 hit-difference comparison leaks to regular users; do not embed in end-user UI",
1613
+ "kbVisibility.failOpenNote": "fail-open: Kendra returns all documents without identity context \u2014 retrieval must carry the server-side identity",
1614
+ "kbVisibility.focusColumn": "Column for identity {p0}",
1615
+ "kbVisibility.layerValue": "Filter layer: {p0}",
1616
+ "kbVisibility.leakageNote": "Count differences are volume leakage: regular users may only see a constant \u201Cfiltered by permissions\u201D message; the only mitigation is padding to rounded numbers",
1617
+ "kbVisibility.postFilterNote": "post-filter: topK is consumed by unauthorized results and similarity scores are observable",
1618
+ "kbVisibility.queryLabel": "Query: {p0}",
1619
+ "kbVisibility.safeCount": "Safe count {p0}",
1620
+ "kbVisibility.sourceUnavailable": "Source text unavailable",
1621
+ "kbVisibility.unnamedHit": "Unnamed hit",
1622
+ /* ── kbWhoCan ── */
1623
+ "kbWhoCan.check": "Check",
1624
+ "kbWhoCan.checkIdentity": "Check identity",
1625
+ "kbWhoCan.daysUntil": "in {p0} days",
1626
+ "kbWhoCan.deniedBy": "Denied by policy: {p0}",
1627
+ "kbWhoCan.denyVeto": "Vetoed by an explicit Deny",
1628
+ "kbWhoCan.direct": "Direct",
1629
+ "kbWhoCan.expiresSoon": "Expires soon {p0}",
1630
+ "kbWhoCan.hoursUntil": "in {p0} hours",
1631
+ "kbWhoCan.inherit": "Inherited",
1632
+ "kbWhoCan.link": "Link",
1633
+ "kbWhoCan.noDeny": "No Deny applies",
1634
+ "kbWhoCan.noIdentity": "No identity provided to check",
1635
+ "kbWhoCan.none": "No grant matched \u2014 deny by default",
1636
+ "kbWhoCan.recheckTip": "Re-check effective permissions for the current identity",
1637
+ "kbWhoCan.stackRule": "Stacking rule: union of sources \u2192 {p0};",
1638
+ /* ── mentions ── */
1639
+ "mentions.create": 'Create "{p0}"',
1640
+ "mentions.customBadge": "Custom",
1641
+ "mentions.loading": "Loading\u2026",
1642
+ /* ── notification ── */
1643
+ "notification.groupBusy": "This group can be collapsed when its action finishes.",
1644
+ "notification.groupUnread": "{count} grouped notifications, {unread} unread",
1645
+ "notification.groupCount": "{count} grouped notifications",
1646
+ "notification.groupExpanded": "Collapse group",
1647
+ "notification.ariaLabel": "Notifications",
1648
+ "notification.viewDetails": "View details",
1649
+ /* ── pagination ── */
1650
+ "pagination.next": "Next page",
1651
+ "pagination.pageSize": "{p0} / page",
1652
+ "pagination.prev": "Previous page",
1653
+ /* ── select ── */
1654
+ "select.fieldLabel": "Select options",
1655
+ "select.noMatch": "No matches",
1656
+ "select.remove": "Remove {p0}",
1657
+ "select.searchPlaceholder": "Search\u2026",
1658
+ /* ── cascader / tree-select ── */
1659
+ "cascader.placeholder": "Select\u2026",
1660
+ "cascader.noMatch": "No matches",
1661
+ "cascader.search": "Search",
1662
+ "treeSelect.placeholder": "Select\u2026",
1663
+ "treeSelect.noMatch": "No matches",
1664
+ "treeSelect.search": "Search",
1665
+ /* ── tagInput ── */
1666
+ "tagInput.ariaLabel": "Tag input, {p0} tags",
1667
+ "tagInput.remove": "Remove {p0}",
1668
+ "tagInput.field": "Add a tag",
1669
+ "tagInput.added": "Added {p0} tags.",
1670
+ "tagInput.removed": "Removed {p0}.",
1671
+ "tagInput.duplicate": "\u201C{p0}\u201D already exists. Edit it and try again.",
1672
+ "tagInput.limit": "Up to {p0} tags. Remove one to add another.",
1673
+ /* ── upload ── */
1674
+ "upload.remove": "Remove {p0}",
1675
+ "upload.tooBig": "File exceeds {p0}",
1676
+ "upload.tooMany": "At most {p0} files",
1677
+ "upload.typeNotAllowed": "File type not supported"
1678
+ };
1679
+ var current = { ...ICEN_LOCALE_ZH_CN };
1680
+ function getIcenLocale() {
1681
+ const snap = {};
1682
+ for (const [k, v] of Object.entries(current)) {
1683
+ snap[k] = Array.isArray(v) ? Object.freeze([...v]) : v;
1684
+ }
1685
+ return Object.freeze(snap);
1686
+ }
1687
+ function t(key, vars) {
1688
+ const raw = current[key] ?? ICEN_LOCALE_ZH_CN[key];
1689
+ if (vars == null || Array.isArray(raw)) return raw;
1690
+ return raw.replace(/\{(\w+)\}/g, (m, name) => name in vars ? String(vars[name]) : m);
1691
+ }
1692
+ function setIcenLocale(patch) {
1693
+ const changed = Object.keys(patch).filter((k) => patch[k] !== void 0);
1694
+ if (changed.length === 0) return;
1695
+ current = { ...current, ...patch };
1696
+ if (typeof document === "undefined") return;
1697
+ emitIcen(document, "icen:locale-change", { changed });
1698
+ }
1699
+ function resetIcenLocale() {
1700
+ current = { ...ICEN_LOCALE_ZH_CN };
1701
+ if (typeof document === "undefined") return;
1702
+ emitIcen(document, "icen:locale-change", { changed: Object.keys(ICEN_LOCALE_ZH_CN) });
1703
+ }
1704
+ export {
1705
+ ICEN_LOCALE_EN_US,
1706
+ ICEN_LOCALE_ZH_CN,
1707
+ getIcenLocale,
1708
+ resetIcenLocale,
1709
+ setIcenLocale,
1710
+ t
1711
+ };