@icen.ai/ui 0.8.1 → 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 (335) hide show
  1. package/AGENTS.md +176 -75
  2. package/README.md +66 -88
  3. package/dist/base.css +208 -179
  4. package/dist/behaviors/accordion.mjs +8 -8
  5. package/dist/behaviors/ai-branch.d.mts +19 -0
  6. package/dist/behaviors/ai-branch.mjs +1133 -0
  7. package/dist/behaviors/ai-chat.d.mts +12 -10
  8. package/dist/behaviors/ai-chat.mjs +1125 -155
  9. package/dist/behaviors/ai-composer.d.mts +44 -12
  10. package/dist/behaviors/ai-composer.mjs +2084 -523
  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 +26 -0
  15. package/dist/behaviors/ai-feedback.mjs +1212 -0
  16. package/dist/behaviors/ai-panel.d.mts +21 -7
  17. package/dist/behaviors/ai-panel.mjs +1308 -264
  18. package/dist/behaviors/ai-provider.mjs +1003 -101
  19. package/dist/behaviors/ai-threads.d.mts +38 -0
  20. package/dist/behaviors/ai-threads.mjs +1233 -0
  21. package/dist/behaviors/ai-tool.d.mts +2 -2
  22. package/dist/behaviors/ai-tool.mjs +2042 -396
  23. package/dist/behaviors/ai-tools.d.mts +89 -16
  24. package/dist/behaviors/ai-tools.mjs +4453 -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 +174 -8
  34. package/dist/behaviors/charts.mjs +2632 -192
  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 +313 -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 +34 -0
  68. package/dist/behaviors/kb-access.mjs +2459 -0
  69. package/dist/behaviors/kb-acl.d.mts +50 -0
  70. package/dist/behaviors/kb-acl.mjs +1345 -0
  71. package/dist/behaviors/kb-answer.d.mts +38 -0
  72. package/dist/behaviors/kb-answer.mjs +3707 -0
  73. package/dist/behaviors/kb-audit.d.mts +23 -0
  74. package/dist/behaviors/kb-audit.mjs +1297 -0
  75. package/dist/behaviors/kb-canvas.d.mts +44 -0
  76. package/dist/behaviors/kb-canvas.mjs +1512 -0
  77. package/dist/behaviors/kb-chain.d.mts +15 -0
  78. package/dist/behaviors/kb-chain.mjs +1192 -0
  79. package/dist/behaviors/kb-checkpoint.d.mts +16 -0
  80. package/dist/behaviors/kb-checkpoint.mjs +1492 -0
  81. package/dist/behaviors/kb-chunks.d.mts +31 -0
  82. package/dist/behaviors/kb-chunks.mjs +1414 -0
  83. package/dist/behaviors/kb-citation.d.mts +38 -0
  84. package/dist/behaviors/kb-citation.mjs +1699 -0
  85. package/dist/behaviors/kb-clarify.d.mts +20 -0
  86. package/dist/behaviors/kb-clarify.mjs +1176 -0
  87. package/dist/behaviors/kb-conflict.d.mts +22 -0
  88. package/dist/behaviors/kb-conflict.mjs +1206 -0
  89. package/dist/behaviors/kb-connector.d.mts +17 -0
  90. package/dist/behaviors/kb-connector.mjs +1303 -0
  91. package/dist/behaviors/kb-core.d.mts +534 -0
  92. package/dist/behaviors/kb-core.mjs +1805 -0
  93. package/dist/behaviors/kb-eval.d.mts +22 -0
  94. package/dist/behaviors/kb-eval.mjs +2235 -0
  95. package/dist/behaviors/kb-explain.d.mts +11 -0
  96. package/dist/behaviors/kb-explain.mjs +1165 -0
  97. package/dist/behaviors/kb-filter.d.mts +31 -0
  98. package/dist/behaviors/kb-filter.mjs +2417 -0
  99. package/dist/behaviors/kb-gap.d.mts +27 -0
  100. package/dist/behaviors/kb-gap.mjs +1195 -0
  101. package/dist/behaviors/kb-hittest.d.mts +34 -0
  102. package/dist/behaviors/kb-hittest.mjs +1352 -0
  103. package/dist/behaviors/kb-metadata.d.mts +29 -0
  104. package/dist/behaviors/kb-metadata.mjs +1248 -0
  105. package/dist/behaviors/kb-passage.d.mts +41 -0
  106. package/dist/behaviors/kb-passage.mjs +1469 -0
  107. package/dist/behaviors/kb-pipeline.d.mts +18 -0
  108. package/dist/behaviors/kb-pipeline.mjs +1301 -0
  109. package/dist/behaviors/kb-qa.d.mts +26 -0
  110. package/dist/behaviors/kb-qa.mjs +1260 -0
  111. package/dist/behaviors/kb-rerank.d.mts +20 -0
  112. package/dist/behaviors/kb-rerank.mjs +1248 -0
  113. package/dist/behaviors/kb-retrieval.d.mts +49 -0
  114. package/dist/behaviors/kb-retrieval.mjs +2585 -0
  115. package/dist/behaviors/kb-review.d.mts +44 -0
  116. package/dist/behaviors/kb-review.mjs +2282 -0
  117. package/dist/behaviors/kb-sandbox.d.mts +33 -0
  118. package/dist/behaviors/kb-sandbox.mjs +1247 -0
  119. package/dist/behaviors/kb-segment.d.mts +32 -0
  120. package/dist/behaviors/kb-segment.mjs +1431 -0
  121. package/dist/behaviors/kb-select.d.mts +24 -0
  122. package/dist/behaviors/kb-select.mjs +1989 -0
  123. package/dist/behaviors/kb-sources.d.mts +27 -0
  124. package/dist/behaviors/kb-sources.mjs +1287 -0
  125. package/dist/behaviors/kb-sql.d.mts +43 -0
  126. package/dist/behaviors/kb-sql.mjs +1865 -0
  127. package/dist/behaviors/kb-trace.d.mts +16 -0
  128. package/dist/behaviors/kb-trace.mjs +1328 -0
  129. package/dist/behaviors/kb-visibility.d.mts +44 -0
  130. package/dist/behaviors/kb-visibility.mjs +1331 -0
  131. package/dist/behaviors/kb-who-can.d.mts +32 -0
  132. package/dist/behaviors/kb-who-can.mjs +2216 -0
  133. package/dist/behaviors/mentions.d.mts +93 -0
  134. package/dist/behaviors/mentions.mjs +2152 -0
  135. package/dist/behaviors/modal.d.mts +4 -3
  136. package/dist/behaviors/modal.mjs +1055 -33
  137. package/dist/behaviors/nav.d.mts +1 -1
  138. package/dist/behaviors/nav.mjs +6 -6
  139. package/dist/behaviors/notification.d.mts +16 -8
  140. package/dist/behaviors/notification.mjs +1615 -265
  141. package/dist/behaviors/panel.d.mts +4 -0
  142. package/dist/behaviors/panel.mjs +994 -0
  143. package/dist/behaviors/popover.d.mts +28 -5
  144. package/dist/behaviors/popover.mjs +225 -24
  145. package/dist/behaviors/select.d.mts +5 -2
  146. package/dist/behaviors/select.mjs +1410 -117
  147. package/dist/behaviors/sidebar.d.mts +1 -1
  148. package/dist/behaviors/sidebar.mjs +13 -13
  149. package/dist/behaviors/slider.d.mts +1 -1
  150. package/dist/behaviors/slider.mjs +9 -9
  151. package/dist/behaviors/split-pane.d.mts +1 -1
  152. package/dist/behaviors/split-pane.mjs +7 -7
  153. package/dist/behaviors/suggestions.d.mts +27 -0
  154. package/dist/behaviors/suggestions.mjs +1089 -0
  155. package/dist/behaviors/svg-parse.d.mts +14 -0
  156. package/dist/behaviors/svg-parse.mjs +37 -0
  157. package/dist/behaviors/tabs.d.mts +2 -2
  158. package/dist/behaviors/tabs.mjs +25 -25
  159. package/dist/behaviors/tag-input.d.mts +23 -5
  160. package/dist/behaviors/tag-input.mjs +1359 -104
  161. package/dist/behaviors/theme-switcher.d.mts +24 -0
  162. package/dist/behaviors/theme-switcher.mjs +1981 -0
  163. package/dist/behaviors/theme.d.mts +15 -8
  164. package/dist/behaviors/theme.mjs +390 -28
  165. package/dist/behaviors/toast.d.mts +24 -25
  166. package/dist/behaviors/toast.mjs +1266 -88
  167. package/dist/behaviors/tooltip.d.mts +4 -0
  168. package/dist/behaviors/tooltip.mjs +378 -0
  169. package/dist/behaviors/tree-select.d.mts +69 -0
  170. package/dist/behaviors/tree-select.mjs +1907 -0
  171. package/dist/behaviors/tree.d.mts +1 -1
  172. package/dist/behaviors/tree.mjs +15 -15
  173. package/dist/behaviors/upload.d.mts +3 -2
  174. package/dist/behaviors/upload.mjs +1076 -66
  175. package/dist/cli.mjs +5 -6
  176. package/dist/components/ai-branch.mjs +3 -0
  177. package/dist/components/ai-chat.css +846 -458
  178. package/dist/components/ai-diff.css +153 -132
  179. package/dist/components/ai-feedback.mjs +3 -0
  180. package/dist/components/ai-panel.css +495 -270
  181. package/dist/components/ai-threads.mjs +3 -0
  182. package/dist/components/ai-tool.css +393 -238
  183. package/dist/components/autocomplete.css +61 -0
  184. package/dist/components/autocomplete.mjs +3 -0
  185. package/dist/components/back-top.css +34 -31
  186. package/dist/components/badge.css +44 -41
  187. package/dist/components/breadcrumb.css +67 -46
  188. package/dist/components/btn.css +80 -74
  189. package/dist/components/card.css +117 -106
  190. package/dist/components/cascader.css +311 -0
  191. package/dist/components/cascader.mjs +3 -0
  192. package/dist/components/chart-area.css +8 -2
  193. package/dist/components/chart-bar.css +95 -33
  194. package/dist/components/chart-gauge.css +14 -11
  195. package/dist/components/chart-graph.css +60 -0
  196. package/dist/components/chart-graph.mjs +4 -0
  197. package/dist/components/chart-heatmap.css +96 -90
  198. package/dist/components/chart-line.css +8 -3
  199. package/dist/components/chart-map.mjs +3 -0
  200. package/dist/components/chart-pie.css +9 -6
  201. package/dist/components/chart-radar.css +8 -5
  202. package/dist/components/chart-scatter.css +9 -6
  203. package/dist/components/chart-scatter.mjs +1 -1
  204. package/dist/components/chart-sparkline.css +5 -2
  205. package/dist/components/chart-stack.css +14 -11
  206. package/dist/components/charts.css +190 -67
  207. package/dist/components/charts.mjs +1 -0
  208. package/dist/components/code-block.css +418 -0
  209. package/dist/components/code-block.mjs +4 -0
  210. package/dist/components/command-palette.css +138 -117
  211. package/dist/components/content.css +257 -251
  212. package/dist/components/copy.css +72 -44
  213. package/dist/components/datatable.css +423 -181
  214. package/dist/components/date-picker.css +135 -104
  215. package/dist/components/empty.css +68 -65
  216. package/dist/components/feedback.css +201 -183
  217. package/dist/components/form-validate.css +120 -0
  218. package/dist/components/form-validate.mjs +3 -0
  219. package/dist/components/form.css +150 -127
  220. package/dist/components/icon.css +102 -0
  221. package/dist/components/icon.mjs +3 -0
  222. package/dist/components/input.css +159 -104
  223. package/dist/components/kb-access.mjs +4 -0
  224. package/dist/components/kb-acl.mjs +4 -0
  225. package/dist/components/kb-agent.css +496 -0
  226. package/dist/components/kb-answer.mjs +4 -0
  227. package/dist/components/kb-audit.mjs +4 -0
  228. package/dist/components/kb-canvas.mjs +4 -0
  229. package/dist/components/kb-chain.mjs +4 -0
  230. package/dist/components/kb-checkpoint.mjs +4 -0
  231. package/dist/components/kb-chunks.mjs +4 -0
  232. package/dist/components/kb-citation.mjs +4 -0
  233. package/dist/components/kb-clarify.mjs +4 -0
  234. package/dist/components/kb-conflict.mjs +4 -0
  235. package/dist/components/kb-connector.mjs +4 -0
  236. package/dist/components/kb-data.css +653 -0
  237. package/dist/components/kb-eval.mjs +4 -0
  238. package/dist/components/kb-explain.mjs +4 -0
  239. package/dist/components/kb-filter.mjs +4 -0
  240. package/dist/components/kb-gap.mjs +4 -0
  241. package/dist/components/kb-ground.css +578 -0
  242. package/dist/components/kb-hittest.mjs +4 -0
  243. package/dist/components/kb-ingest.css +882 -0
  244. package/dist/components/kb-metadata.mjs +4 -0
  245. package/dist/components/kb-ops.css +554 -0
  246. package/dist/components/kb-passage.mjs +4 -0
  247. package/dist/components/kb-perm.css +433 -0
  248. package/dist/components/kb-pipeline.mjs +4 -0
  249. package/dist/components/kb-qa.mjs +4 -0
  250. package/dist/components/kb-rerank.mjs +4 -0
  251. package/dist/components/kb-retrieval.mjs +4 -0
  252. package/dist/components/kb-review.mjs +4 -0
  253. package/dist/components/kb-sandbox.mjs +4 -0
  254. package/dist/components/kb-search.css +897 -0
  255. package/dist/components/kb-segment.mjs +4 -0
  256. package/dist/components/kb-sources.mjs +4 -0
  257. package/dist/components/kb-sql.mjs +4 -0
  258. package/dist/components/kb-trace.mjs +4 -0
  259. package/dist/components/kb-visibility.mjs +4 -0
  260. package/dist/components/kb-who-can.mjs +4 -0
  261. package/dist/components/kb.css +263 -0
  262. package/dist/components/kb.mjs +9 -0
  263. package/dist/components/layout.css +85 -82
  264. package/dist/components/material-chinese.css +73 -0
  265. package/dist/components/material-soviet.css +76 -0
  266. package/dist/components/material.css +275 -0
  267. package/dist/components/media.css +220 -166
  268. package/dist/components/mentions.css +189 -0
  269. package/dist/components/mentions.mjs +3 -0
  270. package/dist/components/menu.css +113 -105
  271. package/dist/components/modal.css +107 -112
  272. package/dist/components/nav.css +118 -115
  273. package/dist/components/notification.css +238 -174
  274. package/dist/components/pagination.css +56 -53
  275. package/dist/components/panel.css +66 -63
  276. package/dist/components/panel.mjs +1 -0
  277. package/dist/components/pill.css +81 -71
  278. package/dist/components/popover.css +67 -53
  279. package/dist/components/scroll-area.css +113 -110
  280. package/dist/components/segmented.css +146 -143
  281. package/dist/components/select.css +206 -186
  282. package/dist/components/sidebar.css +137 -127
  283. package/dist/components/slider.css +117 -114
  284. package/dist/components/split-pane.css +112 -109
  285. package/dist/components/stat.css +112 -106
  286. package/dist/components/steps.css +109 -103
  287. package/dist/components/switch.css +138 -134
  288. package/dist/components/table.css +131 -107
  289. package/dist/components/tabs.css +114 -108
  290. package/dist/components/tag-input.css +48 -133
  291. package/dist/components/tag.css +81 -71
  292. package/dist/components/theme-switcher.css +105 -0
  293. package/dist/components/theme-switcher.mjs +3 -0
  294. package/dist/components/toast.css +100 -86
  295. package/dist/components/toolbar.css +45 -42
  296. package/dist/components/tooltip.css +102 -43
  297. package/dist/components/tooltip.mjs +1 -0
  298. package/dist/components/tree-select.css +416 -0
  299. package/dist/components/tree-select.mjs +3 -0
  300. package/dist/components/upload.css +135 -92
  301. package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
  302. package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
  303. package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
  304. package/dist/fonts/OFL.txt +96 -0
  305. package/dist/fonts/README.md +14 -0
  306. package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
  307. package/dist/index.d.mts +64 -15
  308. package/dist/index.mjs +28049 -8595
  309. package/dist/react.d.mts +91 -0
  310. package/dist/react.mjs +8208 -0
  311. package/dist/registry.json +454 -15
  312. package/dist/tokens/chinese.css +44 -0
  313. package/dist/tokens/colors.css +365 -1222
  314. package/dist/tokens/design.css +109 -0
  315. package/dist/tokens/dtcg.json +11198 -0
  316. package/dist/tokens/figma.variables.json +7017 -0
  317. package/dist/tokens/icon-masks.css +78 -0
  318. package/dist/tokens/pixel.css +50 -0
  319. package/dist/tokens/soviet.css +44 -0
  320. package/dist/tokens/style-profiles.css +36 -547
  321. package/dist/tokens/themes.json +308 -0
  322. package/dist/tokens/tokens-studio.json +6728 -0
  323. package/dist/tokens/typography.css +21 -18
  324. package/dist/tokens.css +1555 -1801
  325. package/dist/ui.css +16147 -8597
  326. package/dist/vue.d.mts +344 -0
  327. package/dist/vue.mjs +7781 -0
  328. package/docs/spec/ai-input-experience.md +75 -0
  329. package/docs/spec/ai-native.md +238 -147
  330. package/docs/spec/design-philosophy.md +189 -0
  331. package/docs/spec/design-primitives.md +196 -0
  332. package/docs/spec/kb-family.md +475 -0
  333. package/package.json +42 -7
  334. package/dist/retro-effects.css +0 -255
  335. package/dist/tokens/retro-effects.css +0 -255
@@ -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
+ };